summaryrefslogtreecommitdiff
path: root/idl/source/objects
ModeNameSize
-rw-r--r--basobj.cxx23597logplain
-rw-r--r--bastype.cxx16889logplain
-rw-r--r--makefile.mk1687logplain
-rw-r--r--module.cxx22302logplain
-rw-r--r--object.cxx35580logplain
-rw-r--r--slot.cxx57959logplain
-rw-r--r--types.cxx83179logplain
dinates main, development code repositoryroot
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat
-rw-r--r--.gitattributes2
-rw-r--r--.gitignore87
-rw-r--r--Makefile.in17
-rw-r--r--MathMLDTD/math.dtd957
-rw-r--r--MathMLDTD/prj/build.lst3
-rw-r--r--MathMLDTD/prj/d.lst2
-rw-r--r--MathMLDTD/w3c_ipr_software_notice.html105
-rw-r--r--UnoControls/inc/basecontainercontrol.hxx567
-rw-r--r--UnoControls/inc/basecontrol.hxx1231
-rw-r--r--UnoControls/inc/definesunocontrols.hxx135
-rw-r--r--UnoControls/inc/multiplexer.hxx771
-rw-r--r--UnoControls/prj/build.lst5
-rw-r--r--UnoControls/prj/d.lst5
-rw-r--r--UnoControls/source/base/basecontainercontrol.cxx642
-rw-r--r--UnoControls/source/base/basecontrol.cxx1019
-rw-r--r--UnoControls/source/base/makefile.mk69
-rw-r--r--UnoControls/source/base/multiplexer.cxx577
-rw-r--r--UnoControls/source/base/registercontrols.cxx322
-rw-r--r--UnoControls/source/controls/OConnectionPointContainerHelper.cxx187
-rw-r--r--UnoControls/source/controls/OConnectionPointHelper.cxx271
-rw-r--r--UnoControls/source/controls/framecontrol.cxx604
-rw-r--r--UnoControls/source/controls/makefile.mk49
-rw-r--r--UnoControls/source/controls/progressbar.cxx558
-rw-r--r--UnoControls/source/controls/progressmonitor.cxx1066
-rw-r--r--UnoControls/source/controls/statusindicator.cxx558
-rw-r--r--UnoControls/source/inc/OConnectionPointContainerHelper.hxx262
-rw-r--r--UnoControls/source/inc/OConnectionPointHelper.hxx306
-rw-r--r--UnoControls/source/inc/framecontrol.hxx624
-rw-r--r--UnoControls/source/inc/progressbar.hxx445
-rw-r--r--UnoControls/source/inc/progressmonitor.hxx805
-rw-r--r--UnoControls/source/inc/statusindicator.hxx580
-rw-r--r--UnoControls/util/exports.map10
-rw-r--r--UnoControls/util/makefile.mk61
-rw-r--r--UnoControls/util/makefile.pmk27
-rw-r--r--UnoControls/util/target.pmk35
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/AccessBridge.java250
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/KeyHandler.java138
-rw-r--r--accessibility/bridge/org/openoffice/accessibility/PopupWindow.java210
-rw-r--r--accessibility/bridge/org/openoffice/accessibility/WindowsAccessBridgeAdapter.java654
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/makefile.mk55
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/manifest2
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AbstractButton.java176
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl.java71
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleComponentImpl.java233
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleEditableTextImpl.java367
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleExtendedState.java53
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleHypertextImpl.java191
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleIconImpl.java73
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleKeyBinding.java386
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleObjectFactory.java545
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleRelationAdapter.java64
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleRoleAdapter.java148
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleSelectionImpl.java99
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleStateAdapter.java214
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java678
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/AccessibleValueImpl.java96
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Alert.java66
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Application.java45
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Button.java157
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/CheckBox.java51
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/ComboBox.java117
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Component.java740
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Container.java763
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java161
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Dialog.java633
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/FocusTraversalPolicy.java89
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Frame.java646
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Icon.java76
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Label.java130
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/List.java452
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Menu.java328
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/MenuContainer.java167
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/MenuItem.java99
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/NativeFrame.java35
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Paragraph.java222
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/RadioButton.java50
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/ScrollBar.java126
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Separator.java71
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Table.java727
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/TextComponent.java194
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/ToggleButton.java62
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/ToolTip.java117
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Tree.java768
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/Window.java551
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleEventLog.java186
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleHypertextLog.java61
-rw-r--r--accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog.java270
-rwxr-xr-xaccessibility/bridge/org/openoffice/java/accessibility/makefile.mk126
-rw-r--r--accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx317
-rw-r--r--accessibility/bridge/source/java/exports.dxp4
-rw-r--r--accessibility/bridge/source/java/makefile.mk70
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBox.hxx311
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx527
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx95
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx281
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx81
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxTable.hxx175
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableBase.hxx280
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableCell.hxx143
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControl.hxx266
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx467
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlHeader.hxx218
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlHeaderCell.hxx102
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlTable.hxx226
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlTableBase.hxx236
-rw-r--r--accessibility/inc/accessibility/extended/AccessibleGridControlTableCell.hxx168
-rw-r--r--accessibility/inc/accessibility/extended/accessiblebrowseboxcell.hxx86
-rw-r--r--accessibility/inc/accessibility/extended/accessibleeditbrowseboxcell.hxx156
-rw-r--r--accessibility/inc/accessibility/extended/accessibleiconchoicectrl.hxx119
-rw-r--r--accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx213
-rw-r--r--accessibility/inc/accessibility/extended/accessiblelistbox.hxx125
-rw-r--r--accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx223
-rw-r--r--accessibility/inc/accessibility/extended/accessibletabbar.hxx120
-rw-r--r--accessibility/inc/accessibility/extended/accessibletabbarbase.hxx78
-rw-r--r--accessibility/inc/accessibility/extended/accessibletabbarpage.hxx137
-rw-r--r--accessibility/inc/accessibility/extended/accessibletabbarpagelist.hxx141
-rw-r--r--accessibility/inc/accessibility/extended/accessibletablistbox.hxx115
-rw-r--r--accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx122
-rw-r--r--accessibility/inc/accessibility/extended/listboxaccessible.hxx95
-rw-r--r--accessibility/inc/accessibility/extended/textwindowaccessibility.hxx711
-rw-r--r--accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx70
-rw-r--r--accessibility/inc/accessibility/helper/acc_factory.hxx50
-rw-r--r--accessibility/inc/accessibility/helper/accessiblestrings.hrc52
-rw-r--r--accessibility/inc/accessibility/helper/accresmgr.hxx72
-rw-r--r--accessibility/inc/accessibility/helper/characterattributeshelper.hxx60
-rw-r--r--accessibility/inc/accessibility/helper/listboxhelper.hxx196
-rw-r--r--accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx157
-rw-r--r--accessibility/inc/accessibility/standard/accessiblemenucomponent.hxx102
-rw-r--r--accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx95
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx184
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblebutton.hxx90
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblecheckbox.hxx97
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblecombobox.hxx69
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibledropdowncombobox.hxx73
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibledropdownlistbox.hxx71
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx124
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblefixedhyperlink.hxx54
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblefixedtext.hxx54
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx228
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblelistbox.hxx63
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblelistboxlist.hxx112
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx200
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx86
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx72
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblemenuitem.hxx121
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblemenuseparator.hxx54
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblepopupmenu.hxx59
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx88
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx87
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx80
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx144
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx103
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx148
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx66
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletextcomponent.hxx93
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletextfield.hxx105
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx112
-rw-r--r--accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx170
-rw-r--r--accessibility/inc/makefile.mk47
-rw-r--r--accessibility/inc/pch/precompiled_accessibility.cxx29
-rw-r--r--accessibility/inc/pch/precompiled_accessibility.hxx37
-rwxr-xr-xaccessibility/prj/build.lst18
-rw-r--r--accessibility/prj/d.lst8
-rw-r--r--accessibility/prj/l10n1
-rw-r--r--accessibility/source/extended/AccessibleBrowseBox.cxx401
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxBase.cxx658
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx172
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx419
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx173
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTable.cxx278
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx355
-rw-r--r--accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx354
-rw-r--r--accessibility/source/extended/AccessibleGridControl.cxx379
-rw-r--r--accessibility/source/extended/AccessibleGridControlBase.cxx548
-rw-r--r--accessibility/source/extended/AccessibleGridControlHeader.cxx309
-rw-r--r--accessibility/source/extended/AccessibleGridControlHeaderCell.cxx170
-rw-r--r--accessibility/source/extended/AccessibleGridControlTable.cxx401
-rw-r--r--accessibility/source/extended/AccessibleGridControlTableBase.cxx305
-rw-r--r--accessibility/source/extended/AccessibleGridControlTableCell.cxx376
-rw-r--r--accessibility/source/extended/accessiblebrowseboxcell.cxx92
-rw-r--r--accessibility/source/extended/accessibleeditbrowseboxcell.cxx273
-rw-r--r--accessibility/source/extended/accessibleiconchoicectrl.cxx372
-rw-r--r--accessibility/source/extended/accessibleiconchoicectrlentry.cxx756
-rw-r--r--accessibility/source/extended/accessiblelistbox.cxx432
-rw-r--r--accessibility/source/extended/accessiblelistboxentry.cxx970
-rw-r--r--accessibility/source/extended/accessibletabbar.cxx554
-rw-r--r--accessibility/source/extended/accessibletabbarbase.cxx114
-rw-r--r--accessibility/source/extended/accessibletabbarpage.cxx511
-rw-r--r--accessibility/source/extended/accessibletabbarpagelist.cxx805
-rw-r--r--accessibility/source/extended/accessibletablistbox.cxx146
-rw-r--r--accessibility/source/extended/accessibletablistboxtable.cxx383
-rw-r--r--accessibility/source/extended/listboxaccessible.cxx103
-rw-r--r--accessibility/source/extended/makefile.mk75
-rw-r--r--accessibility/source/extended/textwindowaccessibility.cxx2250
-rw-r--r--accessibility/source/helper/acc_factory.cxx528
-rw-r--r--accessibility/source/helper/accessiblestrings.src72
-rw-r--r--accessibility/source/helper/accresmgr.cxx84
-rw-r--r--accessibility/source/helper/characterattributeshelper.cxx119
-rw-r--r--accessibility/source/helper/makefile.mk53
-rw-r--r--accessibility/source/inc/floatingwindowaccessible.hxx45
-rw-r--r--accessibility/source/standard/accessiblemenubasecomponent.cxx783
-rw-r--r--accessibility/source/standard/accessiblemenucomponent.cxx471
-rw-r--r--accessibility/source/standard/accessiblemenuitemcomponent.cxx503
-rw-r--r--accessibility/source/standard/floatingwindowaccessible.cxx70
-rw-r--r--accessibility/source/standard/makefile.mk78
-rw-r--r--accessibility/source/standard/vclxaccessiblebox.cxx374
-rw-r--r--accessibility/source/standard/vclxaccessiblebutton.cxx326
-rw-r--r--accessibility/source/standard/vclxaccessiblecheckbox.cxx361
-rw-r--r--accessibility/source/standard/vclxaccessiblecombobox.cxx96
-rw-r--r--accessibility/source/standard/vclxaccessibledropdowncombobox.cxx142
-rw-r--r--accessibility/source/standard/vclxaccessibledropdownlistbox.cxx110
-rw-r--r--accessibility/source/standard/vclxaccessibleedit.cxx630
-rw-r--r--accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx85
-rw-r--r--accessibility/source/standard/vclxaccessiblefixedtext.cxx96
-rw-r--r--accessibility/source/standard/vclxaccessiblelist.cxx854
-rw-r--r--accessibility/source/standard/vclxaccessiblelistbox.cxx108
-rw-r--r--accessibility/source/standard/vclxaccessiblelistboxlist.cxx335
-rw-r--r--accessibility/source/standard/vclxaccessiblelistitem.cxx674
-rw-r--r--accessibility/source/standard/vclxaccessiblemenu.cxx255
-rw-r--r--accessibility/source/standard/vclxaccessiblemenubar.cxx211
-rw-r--r--accessibility/source/standard/vclxaccessiblemenuitem.cxx607
-rw-r--r--accessibility/source/standard/vclxaccessiblemenuseparator.cxx85
-rw-r--r--accessibility/source/standard/vclxaccessiblepopupmenu.cxx111
-rw-r--r--accessibility/source/standard/vclxaccessibleradiobutton.cxx314
-rw-r--r--accessibility/source/standard/vclxaccessiblescrollbar.cxx280
-rw-r--r--accessibility/source/standard/vclxaccessiblestatusbar.cxx366
-rw-r--r--accessibility/source/standard/vclxaccessiblestatusbaritem.cxx629
-rw-r--r--accessibility/source/standard/vclxaccessibletabcontrol.cxx515
-rw-r--r--accessibility/source/standard/vclxaccessibletabpage.cxx702
-rw-r--r--accessibility/source/standard/vclxaccessibletabpagewindow.cxx141
-rw-r--r--accessibility/source/standard/vclxaccessibletextcomponent.cxx362
-rw-r--r--accessibility/source/standard/vclxaccessibletextfield.cxx154
-rw-r--r--accessibility/source/standard/vclxaccessibletoolbox.cxx855
-rw-r--r--accessibility/source/standard/vclxaccessibletoolboxitem.cxx718
-rw-r--r--accessibility/util/acc.map7
-rw-r--r--accessibility/util/makefile.mk86
-rw-r--r--accessibility/workben/TODO13
-rw-r--r--accessibility/workben/makefile9
-rw-r--r--accessibility/workben/makefile.in31
-rw-r--r--accessibility/workben/makefile.mk39
-rw-r--r--accessibility/workben/org/openoffice/accessibility/Makefile6
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java690
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java187
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/Makefile13
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java322
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java412
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile15
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java104
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java237
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common34
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk55
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/makefile.common30
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/makefile.mk57
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/manifest3
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java154
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java166
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java89
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java217
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java123
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java92
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile40
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java215
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common35
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk51
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java195
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java115
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java119
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java124
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java148
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java160
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/Makefile13
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java90
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java310
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java35
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java147
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java267
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java150
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java199
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java161
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java467
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java117
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common45
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk51
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java122
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile13
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java208
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java179
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java136
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java122
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common34
-rw-r--r--accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk51
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java92
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/Connector.java50
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java421
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/Makefile38
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java125
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java263
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java169
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/Options.java106
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java413
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/makefile.common36
-rw-r--r--accessibility/workben/org/openoffice/accessibility/misc/makefile.mk55
-rw-r--r--acinclude.m4138
-rw-r--r--afms/delzip0
-rw-r--r--afms/makefile.mk59
-rw-r--r--afms/prj/build.lst3
-rw-r--r--afms/prj/d.lst3
-rwxr-xr-xagg/inc/agg_alpha_mask_u8.h499
-rwxr-xr-xagg/inc/agg_arc.h74
-rwxr-xr-xagg/inc/agg_array.h887
-rwxr-xr-xagg/inc/agg_arrowhead.h82
-rwxr-xr-xagg/inc/agg_basics.h343
-rwxr-xr-xagg/inc/agg_bezier_arc.h158
-rwxr-xr-xagg/inc/agg_bitset_iterator.h54
-rwxr-xr-xagg/inc/agg_bounding_rect.h116
-rwxr-xr-xagg/inc/agg_bspline.h77
-rwxr-xr-xagg/inc/agg_clip_liang_barsky.h209
-rwxr-xr-xagg/inc/agg_color_gray.h364
-rwxr-xr-xagg/inc/agg_color_rgba.h618
-rwxr-xr-xagg/inc/agg_config.h31
-rwxr-xr-xagg/inc/agg_conv_adaptor_vcgen.h169
-rwxr-xr-xagg/inc/agg_conv_adaptor_vpgen.h166
-rwxr-xr-xagg/inc/agg_conv_bspline.h48
-rwxr-xr-xagg/inc/agg_conv_clip_polygon.h69
-rwxr-xr-xagg/inc/agg_conv_clip_polyline.h69
-rwxr-xr-xagg/inc/agg_conv_close_polygon.h132
-rwxr-xr-xagg/inc/agg_conv_concat.h80
-rwxr-xr-xagg/inc/agg_conv_contour.h65
-rwxr-xr-xagg/inc/agg_conv_curve.h174
-rwxr-xr-xagg/inc/agg_conv_dash.h68
-rwxr-xr-xagg/inc/agg_conv_gpc.h443
-rwxr-xr-xagg/inc/agg_conv_marker.h154
-rwxr-xr-xagg/inc/agg_conv_marker_adaptor.h51
-rwxr-xr-xagg/inc/agg_conv_segmentator.h48
-rwxr-xr-xagg/inc/agg_conv_shorten_path.h50
-rwxr-xr-xagg/inc/agg_conv_smooth_poly1.h80
-rwxr-xr-xagg/inc/agg_conv_stroke.h73
-rwxr-xr-xagg/inc/agg_conv_transform.h75
-rwxr-xr-xagg/inc/agg_conv_unclose_polygon.h59
-rwxr-xr-xagg/inc/agg_curves.h150
-rwxr-xr-xagg/inc/agg_dda_line.h290
-rwxr-xr-xagg/inc/agg_ellipse.h98
-rwxr-xr-xagg/inc/agg_ellipse_bresenham.h113
-rwxr-xr-xagg/inc/agg_embedded_raster_fonts.h59
-rwxr-xr-xagg/inc/agg_font_cache_manager.h397
-rwxr-xr-xagg/inc/agg_gamma_functions.h123
-rwxr-xr-xagg/inc/agg_gamma_lut.h114
-rwxr-xr-xagg/inc/agg_glyph_raster_bin.h155
-rwxr-xr-xagg/inc/agg_gsv_text.h154
-rwxr-xr-xagg/inc/agg_image_filters.h449
-rwxr-xr-xagg/inc/agg_line_aa_basics.h152
-rwxr-xr-xagg/inc/agg_math.h247
-rwxr-xr-xagg/inc/agg_math_stroke.h340
-rwxr-xr-xagg/inc/agg_path_storage.h364
-rwxr-xr-xagg/inc/agg_path_storage_integer.h300
-rwxr-xr-xagg/inc/agg_pattern_filters_rgba.h122
-rwxr-xr-xagg/inc/agg_pixfmt_amask_adaptor.h265
-rwxr-xr-xagg/inc/agg_pixfmt_gray.h703
-rwxr-xr-xagg/inc/agg_pixfmt_rgb.h760
-rwxr-xr-xagg/inc/agg_pixfmt_rgb_packed.h1277
-rwxr-xr-xagg/inc/agg_pixfmt_rgba.h1312
-rwxr-xr-xagg/inc/agg_rasterizer_outline.h146
-rwxr-xr-xagg/inc/agg_rasterizer_outline_aa.h516
-rwxr-xr-xagg/inc/agg_rasterizer_scanline_aa.h743
-rwxr-xr-xagg/inc/agg_render_scanlines.h66
-rwxr-xr-xagg/inc/agg_renderer_base.h618
-rwxr-xr-xagg/inc/agg_renderer_markers.h707
-rwxr-xr-xagg/inc/agg_renderer_mclip.h383
-rwxr-xr-xagg/inc/agg_renderer_outline_aa.h1545
-rwxr-xr-xagg/inc/agg_renderer_outline_image.h924
-rwxr-xr-xagg/inc/agg_renderer_primitives.h224
-rwxr-xr-xagg/inc/agg_renderer_raster_text.h264
-rwxr-xr-xagg/inc/agg_renderer_scanline.h450
-rwxr-xr-xagg/inc/agg_rendering_buffer.h179
-rwxr-xr-xagg/inc/agg_rendering_buffer_dynarow.h184
-rwxr-xr-xagg/inc/agg_rounded_rect.h79
-rwxr-xr-xagg/inc/agg_scanline_bin.h171
-rwxr-xr-xagg/inc/agg_scanline_boolean_algebra.h1559
-rwxr-xr-xagg/inc/agg_scanline_p.h197
-rwxr-xr-xagg/inc/agg_scanline_storage_aa.h796
-rwxr-xr-xagg/inc/agg_scanline_storage_bin.h569
-rwxr-xr-xagg/inc/agg_scanline_u.h323
-rwxr-xr-xagg/inc/agg_shorten_path.h66
-rwxr-xr-xagg/inc/agg_simul_eq.h147
-rwxr-xr-xagg/inc/agg_span_allocator.h72
-rwxr-xr-xagg/inc/agg_span_converter.h53
-rwxr-xr-xagg/inc/agg_span_generator.h50
-rwxr-xr-xagg/inc/agg_span_gouraud.h180
-rwxr-xr-xagg/inc/agg_span_gouraud_gray.h185
-rwxr-xr-xagg/inc/agg_span_gouraud_rgba.h206
-rwxr-xr-xagg/inc/agg_span_gradient.h422
-rwxr-xr-xagg/inc/agg_span_gradient_alpha.h123
-rwxr-xr-xagg/inc/agg_span_image_filter.h110
-rwxr-xr-xagg/inc/agg_span_image_filter_gray.h701
-rwxr-xr-xagg/inc/agg_span_image_filter_rgb.h840
-rwxr-xr-xagg/inc/agg_span_image_filter_rgba.h864
-rwxr-xr-xagg/inc/agg_span_image_resample.h180
-rwxr-xr-xagg/inc/agg_span_image_resample_gray.h359
-rwxr-xr-xagg/inc/agg_span_image_resample_rgb.h393
-rwxr-xr-xagg/inc/agg_span_image_resample_rgba.h393
-rwxr-xr-xagg/inc/agg_span_interpolator_adaptor.h77
-rwxr-xr-xagg/inc/agg_span_interpolator_linear.h232
-rwxr-xr-xagg/inc/agg_span_interpolator_persp.h462
-rwxr-xr-xagg/inc/agg_span_interpolator_trans.h97
-rwxr-xr-xagg/inc/agg_span_pattern.h278
-rwxr-xr-xagg/inc/agg_span_pattern_filter_gray.h472
-rwxr-xr-xagg/inc/agg_span_pattern_filter_rgb.h568
-rwxr-xr-xagg/inc/agg_span_pattern_filter_rgba.h584
-rwxr-xr-xagg/inc/agg_span_pattern_resample_gray.h320
-rwxr-xr-xagg/inc/agg_span_pattern_resample_rgb.h346
-rwxr-xr-xagg/inc/agg_span_pattern_resample_rgba.h354
-rwxr-xr-xagg/inc/agg_span_pattern_rgb.h165
-rwxr-xr-xagg/inc/agg_span_pattern_rgba.h111
-rwxr-xr-xagg/inc/agg_span_solid.h63
-rwxr-xr-xagg/inc/agg_span_subdiv_adaptor.h141
-rwxr-xr-xagg/inc/agg_trans_affine.h344
-rwxr-xr-xagg/inc/agg_trans_bilinear.h166
-rwxr-xr-xagg/inc/agg_trans_double_path.h131
-rwxr-xr-xagg/inc/agg_trans_lens.h79
-rwxr-xr-xagg/inc/agg_trans_perspective.h192
-rwxr-xr-xagg/inc/agg_trans_single_path.h97
-rwxr-xr-xagg/inc/agg_trans_viewport.h304
-rwxr-xr-xagg/inc/agg_trans_warp_magnifier.h51
-rwxr-xr-xagg/inc/agg_vcgen_bspline.h74
-rwxr-xr-xagg/inc/agg_vcgen_contour.h96
-rwxr-xr-xagg/inc/agg_vcgen_dash.h99
-rwxr-xr-xagg/inc/agg_vcgen_markers_term.h72
-rwxr-xr-xagg/inc/agg_vcgen_smooth_poly1.h87
-rwxr-xr-xagg/inc/agg_vcgen_stroke.h114
-rwxr-xr-xagg/inc/agg_vcgen_vertex_sequence.h135
-rwxr-xr-xagg/inc/agg_vertex_iterator.h133
-rwxr-xr-xagg/inc/agg_vertex_sequence.h176
-rwxr-xr-xagg/inc/agg_vpgen_clip_polygon.h83
-rwxr-xr-xagg/inc/agg_vpgen_clip_polyline.h121
-rwxr-xr-xagg/inc/agg_vpgen_segmentator.h61
-rwxr-xr-xagg/prj/build.lst5
-rwxr-xr-xagg/prj/d.lst11
-rw-r--r--agg/source/agg.flt3
-rwxr-xr-xagg/source/agg_arc.cpp105
-rwxr-xr-xagg/source/agg_arrowhead.cpp110
-rwxr-xr-xagg/source/agg_bezier_arc.cpp237
-rwxr-xr-xagg/source/agg_bspline.cpp299
-rwxr-xr-xagg/source/agg_curves.cpp246
-rwxr-xr-xagg/source/agg_embedded_raster_fonts.cpp10426
-rwxr-xr-xagg/source/agg_gsv_text.cpp688
-rwxr-xr-xagg/source/agg_image_filters.cpp120
-rwxr-xr-xagg/source/agg_line_aa_basics.cpp82
-rwxr-xr-xagg/source/agg_line_profile_aa.cpp117
-rwxr-xr-xagg/source/agg_path_storage.cpp525
-rwxr-xr-xagg/source/agg_rasterizer_scanline_aa.cpp621
-rwxr-xr-xagg/source/agg_rounded_rect.cpp164
-rwxr-xr-xagg/source/agg_sqrt_tables.cpp115
-rwxr-xr-xagg/source/agg_trans_affine.cpp195
-rwxr-xr-xagg/source/agg_trans_double_path.cpp273
-rwxr-xr-xagg/source/agg_trans_single_path.cpp202
-rwxr-xr-xagg/source/agg_trans_warp_magnifier.cpp50
-rwxr-xr-xagg/source/agg_vcgen_bspline.cpp194
-rwxr-xr-xagg/source/agg_vcgen_contour.cpp191
-rwxr-xr-xagg/source/agg_vcgen_dash.cpp237
-rwxr-xr-xagg/source/agg_vcgen_markers_term.cpp103
-rwxr-xr-xagg/source/agg_vcgen_smooth_poly1.cpp226
-rwxr-xr-xagg/source/agg_vcgen_stroke.cpp246
-rwxr-xr-xagg/source/agg_vpgen_clip_polygon.cpp133
-rwxr-xr-xagg/source/agg_vpgen_clip_polyline.cpp142
-rwxr-xr-xagg/source/agg_vpgen_segmentator.cpp67
-rwxr-xr-xagg/source/makefile.mk91
-rw-r--r--animations/inc/animations/animationnodehelper.hxx130
-rw-r--r--animations/prj/build.lst3
-rw-r--r--animations/prj/d.lst9
-rw-r--r--animations/source/animcore/animcore.cxx2089
-rw-r--r--animations/source/animcore/animcore.map9
-rw-r--r--animations/source/animcore/animcore.xml30
-rw-r--r--animations/source/animcore/factreg.cxx100
-rw-r--r--animations/source/animcore/factreg.hxx51
-rw-r--r--animations/source/animcore/makefile.mk70
-rw-r--r--animations/source/animcore/targetpropertiescreator.cxx504
-rw-r--r--apache-commons/download/README16
-rw-r--r--apache-commons/download/commons-codec-1.3-src.tar.gzbin0 -> 80427 bytes
-rw-r--r--apache-commons/download/commons-httpclient-3.1-src.tar.gzbin0 -> 1882664 bytes
-rw-r--r--apache-commons/download/commons-lang-2.3-src.tar.gzbin0 -> 474681 bytes
-rw-r--r--apache-commons/download/commons-logging-1.1.1-src.tar.gzbin0 -> 189448 bytes
-rw-r--r--apache-commons/java/codec/makefile.mk73
-rw-r--r--apache-commons/java/httpclient/makefile.mk78
-rw-r--r--apache-commons/java/lang/makefile.mk75
-rw-r--r--apache-commons/java/logging/makefile.mk77
-rw-r--r--apache-commons/patches/codec.patch17
-rw-r--r--apache-commons/patches/logging.patch15
-rw-r--r--apache-commons/prj/build.lst6
-rw-r--r--apache-commons/prj/d.lst5
-rw-r--r--apple_remote/AppleRemote.m125
-rw-r--r--apple_remote/GlobalKeyboardDevice.m249
-rw-r--r--apple_remote/HIDRemoteControlDevice.m518
-rw-r--r--apple_remote/KeyspanFrontRowControl.m97
-rw-r--r--apple_remote/MultiClickRemoteBehavior.m213
-rw-r--r--apple_remote/RemoteControl.m146
-rw-r--r--apple_remote/RemoteControlContainer.m140
-rw-r--r--apple_remote/RemoteMainController.m177
-rw-r--r--apple_remote/inc/AppleRemote.h40
-rw-r--r--apple_remote/inc/GlobalKeyboardDevice.h54
-rw-r--r--apple_remote/inc/HIDRemoteControlDevice.h67
-rw-r--r--apple_remote/inc/KeyspanFrontRowControl.h42
-rw-r--r--apple_remote/inc/MultiClickRemoteBehavior.h93
-rw-r--r--apple_remote/inc/RemoteControl.h105
-rw-r--r--apple_remote/inc/RemoteControlContainer.h41
-rw-r--r--apple_remote/inc/RemoteMainController.h49
-rw-r--r--apple_remote/makefile.mk82
-rw-r--r--apple_remote/prj/build.lst2
-rw-r--r--apple_remote/prj/d.lst5
-rw-r--r--autodoc/inc/ary/actions.hxx103
-rw-r--r--autodoc/inc/ary/ary.hxx90
-rw-r--r--autodoc/inc/ary/ary_disp.hxx111
-rw-r--r--autodoc/inc/ary/arygroup.hxx107
-rw-r--r--autodoc/inc/ary/ceslot.hxx103
-rw-r--r--autodoc/inc/ary/cessentl.hxx88
-rw-r--r--autodoc/inc/ary/cpp/c_builtintype.hxx97
-rw-r--r--autodoc/inc/ary/cpp/c_ce.hxx103
-rw-r--r--autodoc/inc/ary/cpp/c_class.hxx245
-rw-r--r--autodoc/inc/ary/cpp/c_cppentity.hxx91
-rw-r--r--autodoc/inc/ary/cpp/c_de.hxx104
-rw-r--r--autodoc/inc/ary/cpp/c_define.hxx82
-rw-r--r--autodoc/inc/ary/cpp/c_enum.hxx116
-rw-r--r--autodoc/inc/ary/cpp/c_enuval.hxx96
-rw-r--r--autodoc/inc/ary/cpp/c_funct.hxx149
-rw-r--r--autodoc/inc/ary/cpp/c_gate.hxx121
-rw-r--r--autodoc/inc/ary/cpp/c_macro.hxx84
-rw-r--r--autodoc/inc/ary/cpp/c_namesp.hxx194
-rw-r--r--autodoc/inc/ary/cpp/c_osigna.hxx122
-rw-r--r--autodoc/inc/ary/cpp/c_slntry.hxx110
-rw-r--r--autodoc/inc/ary/cpp/c_traits.hxx216
-rw-r--r--autodoc/inc/ary/cpp/c_tydef.hxx100
-rw-r--r--autodoc/inc/ary/cpp/c_type.hxx133
-rw-r--r--autodoc/inc/ary/cpp/c_types4cpp.hxx134
-rw-r--r--autodoc/inc/ary/cpp/c_vari.hxx114
-rw-r--r--autodoc/inc/ary/cpp/c_vfflag.hxx151
-rw-r--r--autodoc/inc/ary/cpp/cp_ce.hxx173
-rw-r--r--autodoc/inc/ary/cpp/cp_def.hxx99
-rw-r--r--autodoc/inc/ary/cpp/cp_type.hxx96
-rw-r--r--autodoc/inc/ary/cpp/inpcontx.hxx216
-rw-r--r--autodoc/inc/ary/cpp/namechain.hxx140
-rw-r--r--autodoc/inc/ary/cpp/usedtype.hxx212
-rw-r--r--autodoc/inc/ary/doc/d_boolean.hxx96
-rw-r--r--autodoc/inc/ary/doc/d_docu.hxx106
-rw-r--r--autodoc/inc/ary/doc/d_node.hxx109
-rw-r--r--autodoc/inc/ary/doc/d_oldcppdocu.hxx130
-rw-r--r--autodoc/inc/ary/doc/d_oldidldocu.hxx111
-rw-r--r--autodoc/inc/ary/doc/d_parametrized.hxx121
-rw-r--r--autodoc/inc/ary/doc/d_types4doc.hxx70
-rw-r--r--autodoc/inc/ary/doc/ht/dht_interpreter.hxx76
-rw-r--r--autodoc/inc/ary/entity.hxx81
-rw-r--r--autodoc/inc/ary/getncast.hxx88
-rw-r--r--autodoc/inc/ary/idl/i_attribute.hxx135
-rw-r--r--autodoc/inc/ary/idl/i_ce.hxx135
-rw-r--r--autodoc/inc/ary/idl/i_ce2s.hxx95
-rw-r--r--autodoc/inc/ary/idl/i_comrela.hxx80
-rw-r--r--autodoc/inc/ary/idl/i_constant.hxx112
-rw-r--r--autodoc/inc/ary/idl/i_constgroup.hxx101
-rw-r--r--autodoc/inc/ary/idl/i_enum.hxx100
-rw-r--r--autodoc/inc/ary/idl/i_enumvalue.hxx103
-rw-r--r--autodoc/inc/ary/idl/i_exception.hxx107
-rw-r--r--autodoc/inc/ary/idl/i_function.hxx160
-rw-r--r--autodoc/inc/ary/idl/i_gate.hxx83
-rw-r--r--autodoc/inc/ary/idl/i_interface.hxx127
-rw-r--r--autodoc/inc/ary/idl/i_module.hxx114
-rw-r--r--autodoc/inc/ary/idl/i_namelookup.hxx95
-rw-r--r--autodoc/inc/ary/idl/i_param.hxx75
-rw-r--r--autodoc/inc/ary/idl/i_property.hxx143
-rw-r--r--autodoc/inc/ary/idl/i_service.hxx139
-rw-r--r--autodoc/inc/ary/idl/i_singleton.hxx105
-rw-r--r--autodoc/inc/ary/idl/i_siservice.hxx107
-rw-r--r--autodoc/inc/ary/idl/i_sisingleton.hxx100
-rw-r--r--autodoc/inc/ary/idl/i_struct.hxx130
-rw-r--r--autodoc/inc/ary/idl/i_structelem.hxx103
-rw-r--r--autodoc/inc/ary/idl/i_traits.hxx78
-rw-r--r--autodoc/inc/ary/idl/i_type.hxx142
-rw-r--r--autodoc/inc/ary/idl/i_typedef.hxx90
-rw-r--r--autodoc/inc/ary/idl/i_types4idl.hxx142
-rw-r--r--autodoc/inc/ary/idl/ik_attribute.hxx85
-rw-r--r--autodoc/inc/ary/idl/ik_ce.hxx146
-rw-r--r--autodoc/inc/ary/idl/ik_constant.hxx76
-rw-r--r--autodoc/inc/ary/idl/ik_constgroup.hxx73
-rw-r--r--autodoc/inc/ary/idl/ik_enum.hxx85
-rw-r--r--autodoc/inc/ary/idl/ik_enumvalue.hxx73
-rw-r--r--autodoc/inc/ary/idl/ik_exception.hxx82
-rw-r--r--autodoc/inc/ary/idl/ik_function.hxx96
-rw-r--r--autodoc/inc/ary/idl/ik_interface.hxx112
-rw-r--r--autodoc/inc/ary/idl/ik_module.hxx114
-rw-r--r--autodoc/inc/ary/idl/ik_property.hxx89
-rw-r--r--autodoc/inc/ary/idl/ik_service.hxx88
-rw-r--r--autodoc/inc/ary/idl/ik_singleton.hxx73
-rw-r--r--autodoc/inc/ary/idl/ik_siservice.hxx75
-rw-r--r--autodoc/inc/ary/idl/ik_sisingleton.hxx73
-rw-r--r--autodoc/inc/ary/idl/ik_struct.hxx91
-rw-r--r--autodoc/inc/ary/idl/ik_structelem.hxx72
-rw-r--r--autodoc/inc/ary/idl/ik_typedef.hxx83
-rw-r--r--autodoc/inc/ary/idl/ip_ce.hxx210
-rw-r--r--autodoc/inc/ary/idl/ip_type.hxx83
-rw-r--r--autodoc/inc/ary/info/all_dts.hxx160
-rw-r--r--autodoc/inc/ary/info/all_tags.hxx289
-rw-r--r--autodoc/inc/ary/info/ci_attag.hxx101
-rw-r--r--autodoc/inc/ary/info/ci_text.hxx85
-rw-r--r--autodoc/inc/ary/info/docstore.hxx116
-rw-r--r--autodoc/inc/ary/info/infodisp.hxx114
-rw-r--r--autodoc/inc/ary/info/inftypes.hxx122
-rw-r--r--autodoc/inc/ary/itrange.hxx80
-rw-r--r--autodoc/inc/ary/loc/loc_dir.hxx145
-rw-r--r--autodoc/inc/ary/loc/loc_file.hxx68
-rw-r--r--autodoc/inc/ary/loc/loc_filebase.hxx72
-rw-r--r--autodoc/inc/ary/loc/loc_le.hxx94
-rw-r--r--autodoc/inc/ary/loc/loc_root.hxx110
-rw-r--r--autodoc/inc/ary/loc/loc_traits.hxx115
-rw-r--r--autodoc/inc/ary/loc/loc_types4loc.hxx54
-rw-r--r--autodoc/inc/ary/loc/locp_le.hxx88
-rw-r--r--autodoc/inc/ary/namesort.hxx75
-rw-r--r--autodoc/inc/ary/object.hxx70
-rw-r--r--autodoc/inc/ary/qualiname.hxx103
-rw-r--r--autodoc/inc/ary/sequentialids.hxx153
-rw-r--r--autodoc/inc/ary/stdconstiter.hxx98
-rw-r--r--autodoc/inc/ary/symtreenode.hxx344
-rw-r--r--autodoc/inc/ary/types.hxx130
-rw-r--r--autodoc/inc/ary/udmhost.hxx62
-rw-r--r--autodoc/inc/ary_i/ci_atag2.hxx79
-rw-r--r--autodoc/inc/ary_i/ci_text2.hxx92
-rw-r--r--autodoc/inc/ary_i/d_token.hxx282
-rw-r--r--autodoc/inc/ary_i/disdocum.hxx146
-rw-r--r--autodoc/inc/autodoc/displaying.hxx76
-rw-r--r--autodoc/inc/autodoc/dsp_html_std.hxx213
-rw-r--r--autodoc/inc/autodoc/dsp_txt_flist.hxx65
-rw-r--r--autodoc/inc/autodoc/filecoli.hxx72
-rw-r--r--autodoc/inc/autodoc/parsing.hxx78
-rw-r--r--autodoc/inc/autodoc/prs_code.hxx76
-rw-r--r--autodoc/inc/autodoc/prs_docu.hxx59
-rw-r--r--autodoc/inc/autodoc/x_parsing.hxx73
-rw-r--r--autodoc/inc/display/corframe.hxx82
-rw-r--r--autodoc/inc/parser/parser.hxx57
-rw-r--r--autodoc/inc/parser/parserinfo.hxx64
-rw-r--r--autodoc/inc/parser/unoidl.hxx79
-rw-r--r--autodoc/prj/build.lst67
-rw-r--r--autodoc/prj/d.lst3
-rw-r--r--autodoc/source/ary/cpp/c_builtintype.cxx127
-rw-r--r--autodoc/source/ary/cpp/c_class.cxx284
-rw-r--r--autodoc/source/ary/cpp/c_de.cxx51
-rw-r--r--autodoc/source/ary/cpp/c_define.cxx76
-rw-r--r--autodoc/source/ary/cpp/c_enum.cxx134
-rw-r--r--autodoc/source/ary/cpp/c_enuval.cxx87
-rw-r--r--autodoc/source/ary/cpp/c_funct.cxx247
-rw-r--r--autodoc/source/ary/cpp/c_macro.cxx78
-rw-r--r--autodoc/source/ary/cpp/c_namesp.cxx294
-rw-r--r--autodoc/source/ary/cpp/c_osigna.cxx76
-rw-r--r--autodoc/source/ary/cpp/c_reposypart.cxx523
-rw-r--r--autodoc/source/ary/cpp/c_reposypart.hxx114
-rw-r--r--autodoc/source/ary/cpp/c_slots.cxx106
-rw-r--r--autodoc/source/ary/cpp/c_slots.hxx84
-rw-r--r--autodoc/source/ary/cpp/c_traits.cxx223
-rw-r--r--autodoc/source/ary/cpp/c_tydef.cxx94
-rw-r--r--autodoc/source/ary/cpp/c_vari.cxx96
-rw-r--r--autodoc/source/ary/cpp/ca_ce.cxx622
-rw-r--r--autodoc/source/ary/cpp/ca_ce.hxx213
-rw-r--r--autodoc/source/ary/cpp/ca_def.cxx111
-rw-r--r--autodoc/source/ary/cpp/ca_def.hxx115
-rw-r--r--autodoc/source/ary/cpp/ca_type.cxx136
-rw-r--r--autodoc/source/ary/cpp/ca_type.hxx127
-rw-r--r--autodoc/source/ary/cpp/cs_ce.cxx104
-rw-r--r--autodoc/source/ary/cpp/cs_ce.hxx105
-rw-r--r--autodoc/source/ary/cpp/cs_def.cxx86
-rw-r--r--autodoc/source/ary/cpp/cs_def.hxx107
-rw-r--r--autodoc/source/ary/cpp/cs_type.cxx112
-rw-r--r--autodoc/source/ary/cpp/cs_type.hxx138
-rw-r--r--autodoc/source/ary/cpp/makefile.mk80
-rw-r--r--autodoc/source/ary/cpp/namechain.cxx196
-rw-r--r--autodoc/source/ary/cpp/tplparam.cxx74
-rw-r--r--autodoc/source/ary/cpp/tplparam.hxx84
-rw-r--r--autodoc/source/ary/cpp/usedtype.cxx575
-rw-r--r--autodoc/source/ary/doc/d_boolean.cxx55
-rw-r--r--autodoc/source/ary/doc/d_docu.cxx59
-rw-r--r--autodoc/source/ary/doc/d_node.cxx69
-rw-r--r--autodoc/source/ary/doc/d_oldcppdocu.cxx336
-rw-r--r--autodoc/source/ary/doc/d_oldidldocu.cxx76
-rw-r--r--autodoc/source/ary/doc/makefile.mk58
-rw-r--r--autodoc/source/ary/idl/i2s_calculator.cxx992
-rw-r--r--autodoc/source/ary/idl/i2s_calculator.hxx295
-rw-r--r--autodoc/source/ary/idl/i_attribute.cxx159
-rw-r--r--autodoc/source/ary/idl/i_ce.cxx80
-rw-r--r--autodoc/source/ary/idl/i_ce2s.cxx84
-rw-r--r--autodoc/source/ary/idl/i_comrela.cxx47
-rw-r--r--autodoc/source/ary/idl/i_constant.cxx123
-rw-r--r--autodoc/source/ary/idl/i_constgroup.cxx114
-rw-r--r--autodoc/source/ary/idl/i_enum.cxx143
-rw-r--r--autodoc/source/ary/idl/i_enumvalue.cxx116
-rw-r--r--autodoc/source/ary/idl/i_exception.cxx139
-rw-r--r--autodoc/source/ary/idl/i_function.cxx165
-rw-r--r--autodoc/source/ary/idl/i_interface.cxx196
-rw-r--r--autodoc/source/ary/idl/i_module.cxx204
-rw-r--r--autodoc/source/ary/idl/i_namelookup.cxx62
-rw-r--r--autodoc/source/ary/idl/i_nnfinder.hxx118
-rw-r--r--autodoc/source/ary/idl/i_param.cxx57
-rw-r--r--autodoc/source/ary/idl/i_property.cxx171
-rw-r--r--autodoc/source/ary/idl/i_reposypart.cxx119
-rw-r--r--autodoc/source/ary/idl/i_reposypart.hxx96
-rw-r--r--autodoc/source/ary/idl/i_service.cxx171
-rw-r--r--autodoc/source/ary/idl/i_singleton.cxx112
-rw-r--r--autodoc/source/ary/idl/i_siservice.cxx121
-rw-r--r--autodoc/source/ary/idl/i_sisingleton.cxx113
-rw-r--r--autodoc/source/ary/idl/i_struct.cxx163
-rw-r--r--autodoc/source/ary/idl/i_structelem.cxx117
-rw-r--r--autodoc/source/ary/idl/i_traits.cxx72
-rw-r--r--autodoc/source/ary/idl/i_typedef.cxx145
-rw-r--r--autodoc/source/ary/idl/ia_ce.cxx581
-rw-r--r--autodoc/source/ary/idl/ia_ce.hxx253
-rw-r--r--autodoc/source/ary/idl/ia_type.cxx364
-rw-r--r--autodoc/source/ary/idl/ia_type.hxx170
-rw-r--r--autodoc/source/ary/idl/is_ce.cxx65
-rw-r--r--autodoc/source/ary/idl/is_ce.hxx79
-rw-r--r--autodoc/source/ary/idl/is_type.cxx83
-rw-r--r--autodoc/source/ary/idl/is_type.hxx122
-rw-r--r--autodoc/source/ary/idl/it_builtin.cxx79
-rw-r--r--autodoc/source/ary/idl/it_builtin.hxx76
-rw-r--r--autodoc/source/ary/idl/it_ce.cxx100
-rw-r--r--autodoc/source/ary/idl/it_ce.hxx88
-rw-r--r--autodoc/source/ary/idl/it_explicit.cxx100
-rw-r--r--autodoc/source/ary/idl/it_explicit.hxx93
-rw-r--r--autodoc/source/ary/idl/it_named.hxx76
-rw-r--r--autodoc/source/ary/idl/it_sequence.cxx91
-rw-r--r--autodoc/source/ary/idl/it_sequence.hxx84
-rw-r--r--autodoc/source/ary/idl/it_tplparam.cxx92
-rw-r--r--autodoc/source/ary/idl/it_tplparam.hxx98
-rw-r--r--autodoc/source/ary/idl/it_xnameroom.cxx100
-rw-r--r--autodoc/source/ary/idl/it_xnameroom.hxx123
-rw-r--r--autodoc/source/ary/idl/makefile.mk87
-rw-r--r--autodoc/source/ary/inc/cpp_internalgate.hxx66
-rw-r--r--autodoc/source/ary/inc/cross_refs.hxx99
-rw-r--r--autodoc/source/ary/inc/idl_internalgate.hxx66
-rw-r--r--autodoc/source/ary/inc/idsort.hxx52
-rw-r--r--autodoc/source/ary/inc/loc_internalgate.hxx63
-rw-r--r--autodoc/source/ary/inc/nametreenode.hxx210
-rw-r--r--autodoc/source/ary/inc/reposy.hxx91
-rw-r--r--autodoc/source/ary/inc/sci_impl.hxx413
-rw-r--r--autodoc/source/ary/inc/slots.hxx163
-rw-r--r--autodoc/source/ary/inc/sorted_idset.hxx97
-rw-r--r--autodoc/source/ary/inc/sortedids.hxx237
-rw-r--r--autodoc/source/ary/inc/store/s_base.hxx180
-rw-r--r--autodoc/source/ary/inc/store/s_iterator.hxx237
-rw-r--r--autodoc/source/ary/inc/store/s_storage.hxx294
-rw-r--r--autodoc/source/ary/inc/traits_impl.hxx119
-rw-r--r--autodoc/source/ary/info/all_dts.cxx105
-rw-r--r--autodoc/source/ary/info/all_tags.cxx569
-rw-r--r--autodoc/source/ary/info/ci_attag.cxx93
-rw-r--r--autodoc/source/ary/info/ci_text.cxx71
-rw-r--r--autodoc/source/ary/info/makefile.mk60
-rw-r--r--autodoc/source/ary/kernel/ary_disp.cxx108
-rw-r--r--autodoc/source/ary/kernel/cessentl.cxx86
-rw-r--r--autodoc/source/ary/kernel/makefile.mk63
-rw-r--r--autodoc/source/ary/kernel/namesort.cxx100
-rw-r--r--autodoc/source/ary/kernel/qualiname.cxx105
-rw-r--r--autodoc/source/ary/kernel/reposy.cxx218
-rw-r--r--autodoc/source/ary/kernel/slots.cxx164
-rw-r--r--autodoc/source/ary/loc/loc_dir.cxx134
-rw-r--r--autodoc/source/ary/loc/loc_file.cxx66
-rw-r--r--autodoc/source/ary/loc/loc_filebase.cxx63
-rw-r--r--autodoc/source/ary/loc/loc_root.cxx83
-rw-r--r--autodoc/source/ary/loc/loc_traits.cxx91
-rw-r--r--autodoc/source/ary/loc/loca_le.cxx181
-rw-r--r--autodoc/source/ary/loc/loca_le.hxx98
-rw-r--r--autodoc/source/ary/loc/locs_le.cxx67
-rw-r--r--autodoc/source/ary/loc/locs_le.hxx88
-rw-r--r--autodoc/source/ary/loc/makefile.mk61
-rw-r--r--autodoc/source/ary_i/kernel/ci_atag2.cxx57
-rw-r--r--autodoc/source/ary_i/kernel/ci_text2.cxx139
-rw-r--r--autodoc/source/ary_i/kernel/d_token.cxx187
-rw-r--r--autodoc/source/ary_i/kernel/makefile.mk60
-rw-r--r--autodoc/source/display/html/aryattrs.cxx248
-rw-r--r--autodoc/source/display/html/aryattrs.hxx154
-rw-r--r--autodoc/source/display/html/cfrstd.cxx344
-rw-r--r--autodoc/source/display/html/chd_udk2.cxx201
-rw-r--r--autodoc/source/display/html/cre_link.cxx269
-rw-r--r--autodoc/source/display/html/cre_link.hxx133
-rw-r--r--autodoc/source/display/html/dsply_cl.cxx108
-rw-r--r--autodoc/source/display/html/dsply_cl.hxx87
-rw-r--r--autodoc/source/display/html/dsply_da.cxx199
-rw-r--r--autodoc/source/display/html/dsply_da.hxx107
-rw-r--r--autodoc/source/display/html/dsply_op.cxx207
-rw-r--r--autodoc/source/display/html/dsply_op.hxx104
-rw-r--r--autodoc/source/display/html/easywri.cxx65
-rw-r--r--autodoc/source/display/html/easywri.hxx80
-rw-r--r--autodoc/source/display/html/hd_chlst.cxx589
-rw-r--r--autodoc/source/display/html/hd_chlst.hxx206
-rw-r--r--autodoc/source/display/html/hd_docu.cxx486
-rw-r--r--autodoc/source/display/html/hd_docu.hxx196
-rw-r--r--autodoc/source/display/html/hdimpl.cxx546
-rw-r--r--autodoc/source/display/html/hdimpl.hxx247
-rw-r--r--autodoc/source/display/html/html_kit.cxx305
-rw-r--r--autodoc/source/display/html/html_kit.hxx198
-rw-r--r--autodoc/source/display/html/makefile.mk78
-rw-r--r--autodoc/source/display/html/nav_main.cxx377
-rw-r--r--autodoc/source/display/html/nav_main.hxx118
-rw-r--r--autodoc/source/display/html/navibar.cxx315
-rw-r--r--autodoc/source/display/html/navibar.hxx118
-rw-r--r--autodoc/source/display/html/opageenv.cxx489
-rw-r--r--autodoc/source/display/html/opageenv.hxx128
-rw-r--r--autodoc/source/display/html/outfile.cxx392
-rw-r--r--autodoc/source/display/html/outfile.hxx86
-rw-r--r--autodoc/source/display/html/pagemake.cxx576
-rw-r--r--autodoc/source/display/html/pagemake.hxx164
-rw-r--r--autodoc/source/display/html/pm_aldef.cxx245
-rw-r--r--autodoc/source/display/html/pm_aldef.hxx88
-rw-r--r--autodoc/source/display/html/pm_base.cxx77
-rw-r--r--autodoc/source/display/html/pm_base.hxx88
-rw-r--r--autodoc/source/display/html/pm_class.cxx811
-rw-r--r--autodoc/source/display/html/pm_class.hxx131
-rw-r--r--autodoc/source/display/html/pm_help.cxx232
-rw-r--r--autodoc/source/display/html/pm_help.hxx63
-rw-r--r--autodoc/source/display/html/pm_index.cxx317
-rw-r--r--autodoc/source/display/html/pm_index.hxx135
-rw-r--r--autodoc/source/display/html/pm_namsp.cxx173
-rw-r--r--autodoc/source/display/html/pm_namsp.hxx78
-rw-r--r--autodoc/source/display/html/pm_start.cxx137
-rw-r--r--autodoc/source/display/html/pm_start.hxx63
-rw-r--r--autodoc/source/display/html/protarea.cxx138
-rw-r--r--autodoc/source/display/html/protarea.hxx94
-rw-r--r--autodoc/source/display/html/strconst.hxx78
-rw-r--r--autodoc/source/display/idl/hfi_constgroup.cxx138
-rw-r--r--autodoc/source/display/idl/hfi_constgroup.hxx66
-rw-r--r--autodoc/source/display/idl/hfi_doc.cxx191
-rw-r--r--autodoc/source/display/idl/hfi_doc.hxx85
-rw-r--r--autodoc/source/display/idl/hfi_enum.cxx133
-rw-r--r--autodoc/source/display/idl/hfi_enum.hxx68
-rw-r--r--autodoc/source/display/idl/hfi_globalindex.cxx275
-rw-r--r--autodoc/source/display/idl/hfi_globalindex.hxx89
-rw-r--r--autodoc/source/display/idl/hfi_hierarchy.cxx202
-rw-r--r--autodoc/source/display/idl/hfi_hierarchy.hxx124
-rw-r--r--autodoc/source/display/idl/hfi_interface.cxx357
-rw-r--r--autodoc/source/display/idl/hfi_interface.hxx90
-rw-r--r--autodoc/source/display/idl/hfi_linklist.cxx378
-rw-r--r--autodoc/source/display/idl/hfi_linklist.hxx145
-rw-r--r--autodoc/source/display/idl/hfi_method.cxx357
-rw-r--r--autodoc/source/display/idl/hfi_method.hxx104
-rw-r--r--autodoc/source/display/idl/hfi_module.cxx299
-rw-r--r--autodoc/source/display/idl/hfi_module.hxx83
-rw-r--r--autodoc/source/display/idl/hfi_navibar.cxx225
-rw-r--r--autodoc/source/display/idl/hfi_navibar.hxx82
-rw-r--r--autodoc/source/display/idl/hfi_property.cxx451
-rw-r--r--autodoc/source/display/idl/hfi_property.hxx182
-rw-r--r--autodoc/source/display/idl/hfi_service.cxx363
-rw-r--r--autodoc/source/display/idl/hfi_service.hxx99
-rw-r--r--autodoc/source/display/idl/hfi_singleton.cxx133
-rw-r--r--autodoc/source/display/idl/hfi_singleton.hxx69
-rw-r--r--autodoc/source/display/idl/hfi_siservice.cxx175
-rw-r--r--autodoc/source/display/idl/hfi_siservice.hxx72
-rw-r--r--autodoc/source/display/idl/hfi_struct.cxx203
-rw-r--r--autodoc/source/display/idl/hfi_struct.hxx78
-rw-r--r--autodoc/source/display/idl/hfi_tag.cxx354
-rw-r--r--autodoc/source/display/idl/hfi_tag.hxx177
-rw-r--r--autodoc/source/display/idl/hfi_typedef.cxx92
-rw-r--r--autodoc/source/display/idl/hfi_typedef.hxx65
-rw-r--r--autodoc/source/display/idl/hfi_typetext.cxx757
-rw-r--r--autodoc/source/display/idl/hfi_typetext.hxx158
-rw-r--r--autodoc/source/display/idl/hfi_xrefpage.cxx273
-rw-r--r--autodoc/source/display/idl/hfi_xrefpage.hxx104
-rw-r--r--autodoc/source/display/idl/hi_ary.cxx283
-rw-r--r--autodoc/source/display/idl/hi_ary.hxx162
-rw-r--r--autodoc/source/display/idl/hi_display.cxx207
-rw-r--r--autodoc/source/display/idl/hi_env.cxx199
-rw-r--r--autodoc/source/display/idl/hi_env.hxx161
-rw-r--r--autodoc/source/display/idl/hi_factory.cxx321
-rw-r--r--autodoc/source/display/idl/hi_factory.hxx169
-rw-r--r--autodoc/source/display/idl/hi_linkhelper.cxx96
-rw-r--r--autodoc/source/display/idl/hi_linkhelper.hxx107
-rw-r--r--autodoc/source/display/idl/hi_main.cxx764
-rw-r--r--autodoc/source/display/idl/hi_main.hxx178
-rw-r--r--autodoc/source/display/idl/makefile.mk77
-rw-r--r--autodoc/source/display/inc/cfrstd.hxx80
-rw-r--r--autodoc/source/display/inc/html/chd_udk2.hxx95
-rw-r--r--autodoc/source/display/inc/idl/hi_display.hxx111
-rw-r--r--autodoc/source/display/inc/toolkit/hf_docentry.hxx59
-rw-r--r--autodoc/source/display/inc/toolkit/hf_funcdecl.hxx104
-rw-r--r--autodoc/source/display/inc/toolkit/hf_linachain.hxx72
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_main.hxx92
-rw-r--r--autodoc/source/display/inc/toolkit/hf_navi_sub.hxx81
-rw-r--r--autodoc/source/display/inc/toolkit/hf_title.hxx91
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfactory.hxx102
-rw-r--r--autodoc/source/display/inc/toolkit/htmlfile.hxx86
-rw-r--r--autodoc/source/display/inc/toolkit/out_node.hxx129
-rw-r--r--autodoc/source/display/inc/toolkit/out_position.hxx117
-rw-r--r--autodoc/source/display/inc/toolkit/out_tree.hxx136
-rw-r--r--autodoc/source/display/inc/toolkit/outputstack.hxx73
-rw-r--r--autodoc/source/display/kernel/displfct.cxx89
-rw-r--r--autodoc/source/display/kernel/displfct.hxx63
-rw-r--r--autodoc/source/display/kernel/makefile.mk55
-rw-r--r--autodoc/source/display/toolkit/hf_docentry.cxx74
-rw-r--r--autodoc/source/display/toolkit/hf_funcdecl.cxx203
-rw-r--r--autodoc/source/display/toolkit/hf_linachain.cxx110
-rw-r--r--autodoc/source/display/toolkit/hf_navi_main.cxx238
-rw-r--r--autodoc/source/display/toolkit/hf_navi_sub.cxx103
-rw-r--r--autodoc/source/display/toolkit/hf_title.cxx169
-rw-r--r--autodoc/source/display/toolkit/htmlfile.cxx211
-rw-r--r--autodoc/source/display/toolkit/makefile.mk64
-rw-r--r--autodoc/source/display/toolkit/out_node.cxx189
-rw-r--r--autodoc/source/display/toolkit/out_position.cxx239
-rw-r--r--autodoc/source/display/toolkit/out_tree.cxx53
-rw-r--r--autodoc/source/display/toolkit/outputstack.cxx58
-rw-r--r--autodoc/source/exes/adc_uni/adc_cl.cxx568
-rw-r--r--autodoc/source/exes/adc_uni/adc_cmd.hxx131
-rw-r--r--autodoc/source/exes/adc_uni/adc_cmd_parse.cxx343
-rw-r--r--autodoc/source/exes/adc_uni/adc_cmd_parse.hxx208
-rw-r--r--autodoc/source/exes/adc_uni/adc_cmds.cxx177
-rw-r--r--autodoc/source/exes/adc_uni/adc_cmds.hxx125
-rw-r--r--autodoc/source/exes/adc_uni/adc_msg.cxx208
-rw-r--r--autodoc/source/exes/adc_uni/cmd_run.cxx613
-rw-r--r--autodoc/source/exes/adc_uni/cmd_run.hxx104
-rw-r--r--autodoc/source/exes/adc_uni/cmd_sincedata.cxx129
-rw-r--r--autodoc/source/exes/adc_uni/cmd_sincedata.hxx91
-rw-r--r--autodoc/source/exes/adc_uni/main.cxx54
-rw-r--r--autodoc/source/exes/adc_uni/makefile.mk104
-rw-r--r--autodoc/source/exes/adc_uni/spec-CommandLine.txt181
-rw-r--r--autodoc/source/exes/adc_uni/spec-DevGuideReferenceFile.txt0
-rw-r--r--autodoc/source/exes/adc_uni/spec-SinceTag_Handling.txt49
-rw-r--r--autodoc/source/inc/adc_cl.hxx193
-rw-r--r--autodoc/source/inc/adc_msg.hxx141
-rw-r--r--autodoc/source/inc/docu_node_ids.hxx64
-rw-r--r--autodoc/source/inc/estack.hxx94
-rw-r--r--autodoc/source/inc/luxenum.hxx103
-rw-r--r--autodoc/source/inc/manip.hxx61
-rw-r--r--autodoc/source/inc/precomp.h66
-rw-r--r--autodoc/source/inc/prprpr.hxx58
-rw-r--r--autodoc/source/inc/tools/filecoll.hxx69
-rw-r--r--autodoc/source/inc/tools/tkpchars.hxx170
-rw-r--r--autodoc/source/mkinc/fullcpp.mk54
-rw-r--r--autodoc/source/parser/adoc/a_rdocu.cxx90
-rw-r--r--autodoc/source/parser/adoc/adoc_tok.cxx47
-rw-r--r--autodoc/source/parser/adoc/cx_a_std.cxx516
-rw-r--r--autodoc/source/parser/adoc/cx_a_sub.cxx182
-rw-r--r--autodoc/source/parser/adoc/docu_pe.cxx403
-rw-r--r--autodoc/source/parser/adoc/makefile.mk62
-rw-r--r--autodoc/source/parser/adoc/prs_adoc.cxx57
-rw-r--r--autodoc/source/parser/adoc/tk_attag.cxx111
-rw-r--r--autodoc/source/parser/adoc/tk_docw.cxx128
-rw-r--r--autodoc/source/parser/cpp/all_toks.cxx151
-rw-r--r--autodoc/source/parser/cpp/all_toks.hxx219
-rw-r--r--autodoc/source/parser/cpp/c_dealer.cxx149
-rw-r--r--autodoc/source/parser/cpp/c_dealer.hxx108
-rw-r--r--autodoc/source/parser/cpp/c_rcode.cxx161
-rw-r--r--autodoc/source/parser/cpp/c_rcode.hxx104
-rw-r--r--autodoc/source/parser/cpp/cpp_pe.cxx78
-rw-r--r--autodoc/source/parser/cpp/cpp_pe.hxx81
-rw-r--r--autodoc/source/parser/cpp/cpp_tok.hxx63
-rw-r--r--autodoc/source/parser/cpp/cx_base.cxx77
-rw-r--r--autodoc/source/parser/cpp/cx_base.hxx96
-rw-r--r--autodoc/source/parser/cpp/cx_c_pp.cxx180
-rw-r--r--autodoc/source/parser/cpp/cx_c_pp.hxx95
-rw-r--r--autodoc/source/parser/cpp/cx_c_std.cxx529
-rw-r--r--autodoc/source/parser/cpp/cx_c_std.hxx92
-rw-r--r--autodoc/source/parser/cpp/cx_c_sub.cxx157
-rw-r--r--autodoc/source/parser/cpp/cx_c_sub.hxx103
-rw-r--r--autodoc/source/parser/cpp/cxt2ary.cxx357
-rw-r--r--autodoc/source/parser/cpp/cxt2ary.hxx198
-rw-r--r--autodoc/source/parser/cpp/defdescr.cxx225
-rw-r--r--autodoc/source/parser/cpp/defdescr.hxx97
-rw-r--r--autodoc/source/parser/cpp/fevnthdl.hxx105
-rw-r--r--autodoc/source/parser/cpp/icprivow.cxx192
-rw-r--r--autodoc/source/parser/cpp/icprivow.hxx123
-rw-r--r--autodoc/source/parser/cpp/makefile.mk87
-rw-r--r--autodoc/source/parser/cpp/pe_base.cxx224
-rw-r--r--autodoc/source/parser/cpp/pe_base.hxx123
-rw-r--r--autodoc/source/parser/cpp/pe_class.cxx503
-rw-r--r--autodoc/source/parser/cpp/pe_class.hxx256
-rw-r--r--autodoc/source/parser/cpp/pe_defs.cxx180
-rw-r--r--autodoc/source/parser/cpp/pe_defs.hxx94
-rw-r--r--autodoc/source/parser/cpp/pe_enum.cxx189
-rw-r--r--autodoc/source/parser/cpp/pe_enum.hxx138
-rw-r--r--autodoc/source/parser/cpp/pe_enval.cxx168
-rw-r--r--autodoc/source/parser/cpp/pe_enval.hxx99
-rw-r--r--autodoc/source/parser/cpp/pe_expr.cxx204
-rw-r--r--autodoc/source/parser/cpp/pe_expr.hxx105
-rw-r--r--autodoc/source/parser/cpp/pe_file.cxx317
-rw-r--r--autodoc/source/parser/cpp/pe_file.hxx209
-rw-r--r--autodoc/source/parser/cpp/pe_funct.cxx610
-rw-r--r--autodoc/source/parser/cpp/pe_funct.hxx281
-rw-r--r--autodoc/source/parser/cpp/pe_ignor.cxx116
-rw-r--r--autodoc/source/parser/cpp/pe_ignor.hxx75
-rw-r--r--autodoc/source/parser/cpp/pe_namsp.cxx163
-rw-r--r--autodoc/source/parser/cpp/pe_namsp.hxx99
-rw-r--r--autodoc/source/parser/cpp/pe_param.cxx280
-rw-r--r--autodoc/source/parser/cpp/pe_param.hxx138
-rw-r--r--autodoc/source/parser/cpp/pe_tpltp.cxx175
-rw-r--r--autodoc/source/parser/cpp/pe_tpltp.hxx106
-rw-r--r--autodoc/source/parser/cpp/pe_tydef.cxx143
-rw-r--r--autodoc/source/parser/cpp/pe_tydef.hxx90
-rw-r--r--autodoc/source/parser/cpp/pe_type.cxx554
-rw-r--r--autodoc/source/parser/cpp/pe_type.hxx185
-rw-r--r--autodoc/source/parser/cpp/pe_vafu.cxx649
-rw-r--r--autodoc/source/parser/cpp/pe_vafu.hxx289
-rw-r--r--autodoc/source/parser/cpp/pe_vari.cxx187
-rw-r--r--autodoc/source/parser/cpp/pe_vari.hxx130
-rw-r--r--autodoc/source/parser/cpp/pev.hxx304
-rw-r--r--autodoc/source/parser/cpp/preproc.cxx231
-rw-r--r--autodoc/source/parser/cpp/preproc.hxx116
-rw-r--r--autodoc/source/parser/cpp/prs_cpp.cxx248
-rw-r--r--autodoc/source/parser/cpp/sdocdist.hxx158
-rw-r--r--autodoc/source/parser/cpp/sfscope.hxx69
-rw-r--r--autodoc/source/parser/cpp/sownstck.hxx325
-rw-r--r--autodoc/source/parser/cpp/srecover.hxx132
-rw-r--r--autodoc/source/parser/cpp/tkp_cpp.cxx92
-rw-r--r--autodoc/source/parser/cpp/tkp_cpp.hxx99
-rw-r--r--autodoc/source/parser/cpp/tokintpr.hxx117
-rw-r--r--autodoc/source/parser/inc/adoc/a_rdocu.hxx71
-rw-r--r--autodoc/source/parser/inc/adoc/adoc_tok.hxx62
-rw-r--r--autodoc/source/parser/inc/adoc/atokdeal.hxx60
-rw-r--r--autodoc/source/parser/inc/adoc/cx_a_std.hxx105
-rw-r--r--autodoc/source/parser/inc/adoc/cx_a_sub.hxx146
-rw-r--r--autodoc/source/parser/inc/adoc/docu_pe.hxx192
-rw-r--r--autodoc/source/parser/inc/adoc/prs_adoc.hxx55
-rw-r--r--autodoc/source/parser/inc/adoc/tk_attag.hxx98
-rw-r--r--autodoc/source/parser/inc/adoc/tk_docw.hxx117
-rw-r--r--autodoc/source/parser/inc/adoc/tokintpr.hxx117
-rw-r--r--autodoc/source/parser/inc/cpp/ctokdeal.hxx74
-rw-r--r--autodoc/source/parser/inc/cpp/prs_cpp.hxx67
-rw-r--r--autodoc/source/parser/inc/doc_deal.hxx89
-rw-r--r--autodoc/source/parser/inc/semantic/callf.hxx287
-rw-r--r--autodoc/source/parser/inc/semantic/parseenv.hxx110
-rw-r--r--autodoc/source/parser/inc/semantic/sub_pe.hxx112
-rw-r--r--autodoc/source/parser/inc/semantic/sub_peu.hxx131
-rw-r--r--autodoc/source/parser/inc/tokens/parseinc.hxx203
-rw-r--r--autodoc/source/parser/inc/tokens/stmstarr.hxx85
-rw-r--r--autodoc/source/parser/inc/tokens/stmstate.hxx68
-rw-r--r--autodoc/source/parser/inc/tokens/stmstfin.hxx80
-rw-r--r--autodoc/source/parser/inc/tokens/tkp.hxx99
-rw-r--r--autodoc/source/parser/inc/tokens/tkpcontx.hxx140
-rw-r--r--autodoc/source/parser/inc/tokens/tkpstama.hxx123
-rw-r--r--autodoc/source/parser/inc/tokens/tokdeal.hxx77
-rw-r--r--autodoc/source/parser/inc/tokens/token.hxx66
-rw-r--r--autodoc/source/parser/inc/tokens/tokproct.hxx83
-rw-r--r--autodoc/source/parser/inc/x_docu.hxx58
-rw-r--r--autodoc/source/parser/inc/x_parse.hxx63
-rw-r--r--autodoc/source/parser/kernel/makefile.mk58
-rw-r--r--autodoc/source/parser/kernel/parsefct.cxx81
-rw-r--r--autodoc/source/parser/kernel/parsefct.hxx60
-rw-r--r--autodoc/source/parser/kernel/x_docu.cxx61
-rw-r--r--autodoc/source/parser/kernel/x_parse.cxx98
-rw-r--r--autodoc/source/parser/semantic/makefile.mk58
-rw-r--r--autodoc/source/parser/semantic/parseenv.cxx86
-rw-r--r--autodoc/source/parser/tokens/makefile.mk62
-rw-r--r--autodoc/source/parser/tokens/stmstarr.cxx99
-rw-r--r--autodoc/source/parser/tokens/stmstate.cxx46
-rw-r--r--autodoc/source/parser/tokens/stmstfin.cxx61
-rw-r--r--autodoc/source/parser/tokens/tkp.cxx72
-rw-r--r--autodoc/source/parser/tokens/tkpcontx.cxx68
-rw-r--r--autodoc/source/parser/tokens/tkpstama.cxx177
-rw-r--r--autodoc/source/parser/tokens/tokdeal.cxx50
-rw-r--r--autodoc/source/parser_i/idl/cx_idlco.cxx545
-rw-r--r--autodoc/source/parser_i/idl/cx_sub.cxx146
-rw-r--r--autodoc/source/parser_i/idl/distrib.cxx264
-rw-r--r--autodoc/source/parser_i/idl/makefile.mk84
-rw-r--r--autodoc/source/parser_i/idl/parsenv2.cxx212
-rw-r--r--autodoc/source/parser_i/idl/pe_attri.cxx294
-rw-r--r--autodoc/source/parser_i/idl/pe_const.cxx280
-rw-r--r--autodoc/source/parser_i/idl/pe_enum2.cxx251
-rw-r--r--autodoc/source/parser_i/idl/pe_evalu.cxx182
-rw-r--r--autodoc/source/parser_i/idl/pe_excp.cxx298
-rw-r--r--autodoc/source/parser_i/idl/pe_file2.cxx318
-rw-r--r--autodoc/source/parser_i/idl/pe_func2.cxx445
-rw-r--r--autodoc/source/parser_i/idl/pe_iface.cxx467
-rw-r--r--autodoc/source/parser_i/idl/pe_property.cxx238
-rw-r--r--autodoc/source/parser_i/idl/pe_selem.cxx205
-rw-r--r--autodoc/source/parser_i/idl/pe_servi.cxx393
-rw-r--r--autodoc/source/parser_i/idl/pe_singl.cxx272
-rw-r--r--autodoc/source/parser_i/idl/pe_struc.cxx327
-rw-r--r--autodoc/source/parser_i/idl/pe_tydf2.cxx184
-rw-r--r--autodoc/source/parser_i/idl/pe_type2.cxx314
-rw-r--r--autodoc/source/parser_i/idl/pe_vari2.cxx173
-rw-r--r--autodoc/source/parser_i/idl/pestate.cxx140
-rw-r--r--autodoc/source/parser_i/idl/semnode.cxx82
-rw-r--r--autodoc/source/parser_i/idl/tk_const.cxx57
-rw-r--r--autodoc/source/parser_i/idl/tk_ident.cxx68
-rw-r--r--autodoc/source/parser_i/idl/tk_keyw.cxx225
-rw-r--r--autodoc/source/parser_i/idl/tk_punct.cxx113
-rw-r--r--autodoc/source/parser_i/idl/tkp_uidl.cxx74
-rw-r--r--autodoc/source/parser_i/idl/unoidl.cxx176
-rw-r--r--autodoc/source/parser_i/idoc/cx_docu2.cxx267
-rw-r--r--autodoc/source/parser_i/idoc/cx_dsapi.cxx533
-rw-r--r--autodoc/source/parser_i/idoc/docu_pe2.cxx606
-rw-r--r--autodoc/source/parser_i/idoc/makefile.mk62
-rw-r--r--autodoc/source/parser_i/idoc/tk_atag2.cxx83
-rw-r--r--autodoc/source/parser_i/idoc/tk_docw2.cxx119
-rw-r--r--autodoc/source/parser_i/idoc/tk_html.cxx58
-rw-r--r--autodoc/source/parser_i/idoc/tk_xml.cxx174
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/cx_docu2.hxx233
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/cx_dsapi.hxx123
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx174
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/dsapitok.hxx65
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tk_atag2.hxx88
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tk_docw2.hxx121
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tk_html.hxx73
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tk_xml.hxx201
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tokintpr.hxx94
-rw-r--r--autodoc/source/parser_i/inc/s2_dsapi/tokrecv.hxx60
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/cx_idlco.hxx98
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx131
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/distrib.hxx272
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx142
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx135
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx145
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx131
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx127
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx259
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx140
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx167
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx184
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_modul.hxx63
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_property.hxx123
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx121
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx149
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx150
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx285
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx124
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx116
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx107
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/pestate.hxx106
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/semnode.hxx132
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/smp_uidl.hxx82
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tk_const.hxx64
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tk_ident.hxx75
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx251
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tk_punct.hxx113
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tkp_uidl.hxx84
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tokintpr.hxx98
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx93
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/tokrecv.hxx60
-rw-r--r--autodoc/source/parser_i/inc/s2_luidl/uidl_tok.hxx64
-rw-r--r--autodoc/source/parser_i/inc/semantic/parsenv2.hxx51
-rw-r--r--autodoc/source/parser_i/inc/tokens/stmstar2.hxx83
-rw-r--r--autodoc/source/parser_i/inc/tokens/stmstat2.hxx68
-rw-r--r--autodoc/source/parser_i/inc/tokens/stmstfi2.hxx80
-rw-r--r--autodoc/source/parser_i/inc/tokens/tkp2.hxx84
-rw-r--r--autodoc/source/parser_i/inc/tokens/tkpcont2.hxx123
-rw-r--r--autodoc/source/parser_i/inc/tokens/tkpstam2.hxx121
-rw-r--r--autodoc/source/parser_i/inc/tokens/token2.hxx63
-rw-r--r--autodoc/source/parser_i/inc/x_parse2.hxx67
-rw-r--r--autodoc/source/parser_i/tokens/makefile.mk63
-rw-r--r--autodoc/source/parser_i/tokens/stmstar2.cxx102
-rw-r--r--autodoc/source/parser_i/tokens/stmstat2.cxx46
-rw-r--r--autodoc/source/parser_i/tokens/stmstfi2.cxx61
-rw-r--r--autodoc/source/parser_i/tokens/tkp2.cxx62
-rw-r--r--autodoc/source/parser_i/tokens/tkpcont2.cxx65
-rw-r--r--autodoc/source/parser_i/tokens/tkpstam2.cxx174
-rw-r--r--autodoc/source/parser_i/tokens/x_parse2.cxx61
-rw-r--r--autodoc/source/tools/filecoll.cxx132
-rw-r--r--autodoc/source/tools/makefile.mk58
-rw-r--r--autodoc/source/tools/tkpchars.cxx159
-rw-r--r--automation/inc/automation/automation.hxx52
-rw-r--r--automation/inc/automation/commdefines.hxx148
-rw-r--r--automation/inc/automation/commtypes.hxx100
-rw-r--r--automation/inc/automation/communi.hxx180
-rw-r--r--automation/inc/automation/simplecm.hxx393
-rw-r--r--automation/inc/makefile.mk47
-rw-r--r--automation/inc/pch/precompiled_automation.cxx29
-rw-r--r--automation/inc/pch/precompiled_automation.hxx32
-rw-r--r--automation/packimages/makefile.mk63
-rw-r--r--automation/prj/build.lst11
-rw-r--r--automation/prj/d.lst27
-rw-r--r--automation/prj/l10n1
-rw-r--r--automation/source/app/makefile.mk52
-rw-r--r--automation/source/app/testbasi.cxx161
-rw-r--r--automation/source/app/testbasi.hxx64
-rw-r--r--automation/source/communi/communi.cxx596
-rw-r--r--automation/source/communi/makefile.mk44
-rw-r--r--automation/source/inc/cmdbasestream.hxx85
-rw-r--r--automation/source/inc/icommstream.hxx64
-rw-r--r--automation/source/inc/rcontrol.hxx496
-rw-r--r--automation/source/inc/sttresid.hxx42
-rw-r--r--automation/source/inc/svcommstream.hxx56
-rw-r--r--automation/source/inc/testapp.hxx195
-rw-r--r--automation/source/inc/testtool.hxx72
-rw-r--r--automation/source/miniapp/editwin.cxx127
-rw-r--r--automation/source/miniapp/editwin.hxx70
-rw-r--r--automation/source/miniapp/hid.lst27
-rw-r--r--automation/source/miniapp/makefile.mk54
-rw-r--r--automation/source/miniapp/servres.cxx60
-rw-r--r--automation/source/miniapp/servres.hrc40
-rw-r--r--automation/source/miniapp/servres.hxx81
-rw-r--r--automation/source/miniapp/servres.src233
-rw-r--r--automation/source/miniapp/servuid.hxx37
-rw-r--r--automation/source/miniapp/test.bas126
-rw-r--r--automation/source/miniapp/test.sid5
-rw-r--r--automation/source/miniapp/test.win13
-rw-r--r--automation/source/miniapp/testapp.cxx350
-rw-r--r--automation/source/miniapp/testapp.hxx125
-rw-r--r--automation/source/mozillaserver/makefile.mk153
-rw-r--r--automation/source/mozillaserver/mozillatesttoolserver.idl52
-rw-r--r--automation/source/mozillaserver/xmozillatesttoolserver.idl157
-rw-r--r--automation/source/server/XMLParser.cxx695
-rw-r--r--automation/source/server/cmdbasestream.cxx301
-rw-r--r--automation/source/server/editwin.cxx164
-rw-r--r--automation/source/server/editwin.hxx74
-rw-r--r--automation/source/server/makefile.mk71
-rw-r--r--automation/source/server/prof_nul.cxx96
-rw-r--r--automation/source/server/prof_usl.cxx136
-rw-r--r--automation/source/server/profiler.cxx264
-rw-r--r--automation/source/server/profiler.hxx137
-rw-r--r--automation/source/server/recorder.cxx1095
-rw-r--r--automation/source/server/recorder.hxx84
-rw-r--r--automation/source/server/retstrm.cxx122
-rw-r--r--automation/source/server/retstrm.hxx84
-rw-r--r--automation/source/server/scmdstrm.cxx215
-rw-r--r--automation/source/server/scmdstrm.hxx61
-rw-r--r--automation/source/server/server.cxx978
-rw-r--r--automation/source/server/server.hxx81
-rw-r--r--automation/source/server/sta_list.cxx1223
-rw-r--r--automation/source/server/statemnt.cxx6600
-rw-r--r--automation/source/server/statemnt.hxx500
-rw-r--r--automation/source/server/svcommstream.cxx48
-rw-r--r--automation/source/server/testtool.hrc55
-rw-r--r--automation/source/simplecm/communiio.hxx65
-rw-r--r--automation/source/simplecm/makefile.mk46
-rw-r--r--automation/source/simplecm/packethandler.cxx334
-rw-r--r--automation/source/simplecm/packethandler.hxx69
-rw-r--r--automation/source/simplecm/simplecm.cxx702
-rw-r--r--automation/source/simplecm/tcpio.cxx71
-rw-r--r--automation/source/simplecm/tcpio.hxx61
-rw-r--r--automation/source/testtool/cmdstrm.cxx470
-rw-r--r--automation/source/testtool/cmdstrm.hxx78
-rw-r--r--automation/source/testtool/comm_bas.cxx442
-rw-r--r--automation/source/testtool/comm_bas.hxx120
-rw-r--r--automation/source/testtool/cretstrm.cxx73
-rw-r--r--automation/source/testtool/cretstrm.hxx55
-rw-r--r--automation/source/testtool/filter.pl143
-rw-r--r--automation/source/testtool/httprequest.cxx239
-rw-r--r--automation/source/testtool/httprequest.hxx85
-rw-r--r--automation/source/testtool/makefile.mk114
-rw-r--r--automation/source/testtool/objtest.cxx4266
-rw-r--r--automation/source/testtool/objtest.hxx403
-rw-r--r--automation/source/testtool/registry_win.cxx89
-rw-r--r--automation/source/testtool/registry_win.hxx31
-rw-r--r--automation/source/testtool/sysdir_win.cxx105
-rw-r--r--automation/source/testtool/sysdir_win.hxx31
-rw-r--r--automation/source/testtool/tcommuni.cxx200
-rw-r--r--automation/source/testtool/tcommuni.hxx67
-rw-r--r--automation/source/testtool/testtool.ini19
-rw-r--r--automation/util/makefile.mk288
-rwxr-xr-xautomation/util/manually_added_ids.hid8
-rw-r--r--avmedia/inc/avmedia/mediaitem.hxx133
-rw-r--r--avmedia/inc/avmedia/mediaplayer.hxx96
-rw-r--r--avmedia/inc/avmedia/mediatoolbox.hxx65
-rw-r--r--avmedia/inc/avmedia/mediawindow.hxx170
-rw-r--r--avmedia/inc/helpids.hrc46
-rw-r--r--avmedia/inc/mediacontrol.hxx114
-rw-r--r--avmedia/prj/build.lst11
-rw-r--r--avmedia/prj/d.lst18
-rw-r--r--avmedia/source/framework/makefile.mk57
-rw-r--r--avmedia/source/framework/mediacontrol.cxx635
-rw-r--r--avmedia/source/framework/mediacontrol.hrc53
-rw-r--r--avmedia/source/framework/mediacontrol.src193
-rw-r--r--avmedia/source/framework/mediaitem.cxx329
-rw-r--r--avmedia/source/framework/mediamisc.cxx48
-rw-r--r--avmedia/source/framework/mediaplayer.cxx166
-rw-r--r--avmedia/source/framework/mediatoolbox.cxx168
-rw-r--r--avmedia/source/framework/soundhandler.cxx563
-rw-r--r--avmedia/source/framework/soundhandler.hxx187
-rw-r--r--avmedia/source/framework/soundhandler.xml49
-rw-r--r--avmedia/source/inc/mediamisc.hxx45
-rw-r--r--avmedia/source/java/FrameGrabber.java190
-rw-r--r--avmedia/source/java/Manager.java148
-rw-r--r--avmedia/source/java/MediaUno.java76
-rw-r--r--avmedia/source/java/Player.java325
-rw-r--r--avmedia/source/java/PlayerWindow.java602
-rw-r--r--avmedia/source/java/WindowAdapter.java508
-rw-r--r--avmedia/source/java/avmedia.jarbin0 -> 16420 bytes
-rw-r--r--avmedia/source/java/makefile.mk61
-rw-r--r--avmedia/source/java/manifest2
-rw-r--r--avmedia/source/java/win/SystemWindowAdapter.java53
-rw-r--r--avmedia/source/java/x11/SystemWindowAdapter.java123
-rw-r--r--avmedia/source/quicktime/avmediaQuickTime.map8
-rw-r--r--avmedia/source/quicktime/framegrabber.cxx152
-rw-r--r--avmedia/source/quicktime/framegrabber.hxx73
-rw-r--r--avmedia/source/quicktime/makefile.mk85
-rw-r--r--avmedia/source/quicktime/manager.cxx96
-rw-r--r--avmedia/source/quicktime/manager.hxx66
-rw-r--r--avmedia/source/quicktime/player.cxx501
-rw-r--r--avmedia/source/quicktime/player.hxx113
-rw-r--r--avmedia/source/quicktime/quicktimecommon.hxx81
-rw-r--r--avmedia/source/quicktime/quicktimeuno.cxx106
-rw-r--r--avmedia/source/quicktime/window.cxx353
-rw-r--r--avmedia/source/quicktime/window.hxx115
-rw-r--r--avmedia/source/viewer/makefile.mk57
-rw-r--r--avmedia/source/viewer/mediaevent_impl.cxx223
-rw-r--r--avmedia/source/viewer/mediaevent_impl.hxx89
-rw-r--r--avmedia/source/viewer/mediawindow.cxx580
-rw-r--r--avmedia/source/viewer/mediawindow.hrc9
-rw-r--r--avmedia/source/viewer/mediawindow.src77
-rw-r--r--avmedia/source/viewer/mediawindow_impl.cxx546
-rw-r--r--avmedia/source/viewer/mediawindow_impl.hxx145
-rw-r--r--avmedia/source/viewer/mediawindowbase_impl.cxx442
-rw-r--r--avmedia/source/viewer/mediawindowbase_impl.hxx131
-rw-r--r--avmedia/source/win/exports.dxp4
-rw-r--r--avmedia/source/win/framegrabber.cxx247
-rw-r--r--avmedia/source/win/framegrabber.hxx74
-rw-r--r--avmedia/source/win/interface.hxx123
-rw-r--r--avmedia/source/win/makefile.mk82
-rw-r--r--avmedia/source/win/manager.cxx97
-rw-r--r--avmedia/source/win/manager.hxx66
-rw-r--r--avmedia/source/win/player.cxx494
-rw-r--r--avmedia/source/win/player.hxx123
-rw-r--r--avmedia/source/win/wincommon.hxx56
-rw-r--r--avmedia/source/win/window.cxx740
-rw-r--r--avmedia/source/win/window.hxx125
-rw-r--r--avmedia/source/win/winuno.cxx104
-rw-r--r--avmedia/source/xine/exports.dxp4
-rw-r--r--avmedia/source/xine/makefile.mk64
-rw-r--r--avmedia/source/xine/manager.cxx91
-rw-r--r--avmedia/source/xine/manager.hxx66
-rw-r--r--avmedia/source/xine/player.cxx262
-rw-r--r--avmedia/source/xine/player.hxx84
-rw-r--r--avmedia/source/xine/window.cxx571
-rw-r--r--avmedia/source/xine/window.hxx114
-rw-r--r--avmedia/source/xine/xinecommon.hxx65
-rw-r--r--avmedia/source/xine/xineuno.cxx106
-rwxr-xr-xavmedia/util/hidother.src41
-rw-r--r--avmedia/util/makefile.mk79
-rw-r--r--basctl/inc/basidesh.hrc188
-rw-r--r--basctl/inc/helpid.hrc85
-rw-r--r--basctl/inc/iderdll.hxx54
-rw-r--r--basctl/inc/makefile.mk48
-rw-r--r--basctl/inc/pch/precompiled_basctl.cxx29
-rw-r--r--basctl/inc/pch/precompiled_basctl.hxx211
-rw-r--r--basctl/prj/build.lst9
-rw-r--r--basctl/prj/d.lst26
-rw-r--r--basctl/sdi/baside.sdi470
-rw-r--r--basctl/sdi/basslots.hrc29
-rw-r--r--basctl/sdi/basslots.sdi47
-rw-r--r--basctl/sdi/makefile.mk54
-rw-r--r--basctl/source/accessibility/accessibledialogcontrolshape.cxx619
-rw-r--r--basctl/source/accessibility/accessibledialogwindow.cxx1123
-rw-r--r--basctl/source/accessibility/makefile.mk48
-rw-r--r--basctl/source/basicide/basdoc.cxx134
-rw-r--r--basctl/source/basicide/basdoc.hxx66
-rw-r--r--basctl/source/basicide/basicbox.cxx546
-rw-r--r--basctl/source/basicide/basicbox.hxx152
-rw-r--r--basctl/source/basicide/basicmod.hxx46
-rw-r--r--basctl/source/basicide/basicprint.src40
-rw-r--r--basctl/source/basicide/basicrenderable.cxx194
-rw-r--r--basctl/source/basicide/basicrenderable.hxx73
-rw-r--r--basctl/source/basicide/baside2.cxx1722
-rw-r--r--basctl/source/basicide/baside2.hrc50
-rw-r--r--basctl/source/basicide/baside2.hxx506
-rw-r--r--basctl/source/basicide/baside2b.cxx2320
-rw-r--r--basctl/source/basicide/baside3.cxx1412
-rw-r--r--basctl/source/basicide/baside4.cxx31
-rw-r--r--basctl/source/basicide/basidectrlr.cxx152
-rw-r--r--basctl/source/basicide/basides1.cxx1422
-rw-r--r--basctl/source/basicide/basides2.cxx331
-rw-r--r--basctl/source/basicide/basides3.cxx177
-rw-r--r--basctl/source/basicide/basidesh.cxx966
-rw-r--r--basctl/source/basicide/basidesh.src731
-rw-r--r--basctl/source/basicide/basobj2.cxx403
-rw-r--r--basctl/source/basicide/basobj3.cxx528
-rw-r--r--basctl/source/basicide/bastype2.cxx705
-rw-r--r--basctl/source/basicide/bastype2.hxx212
-rw-r--r--basctl/source/basicide/bastype3.cxx464
-rw-r--r--basctl/source/basicide/bastype3.hxx64
-rw-r--r--basctl/source/basicide/bastype4.hxx67
-rw-r--r--basctl/source/basicide/bastypes.cxx999
-rw-r--r--basctl/source/basicide/brkdlg.cxx280
-rw-r--r--basctl/source/basicide/brkdlg.hrc45
-rw-r--r--basctl/source/basicide/brkdlg.hxx74
-rw-r--r--basctl/source/basicide/brkdlg.src130
-rw-r--r--basctl/source/basicide/doceventnotifier.cxx276
-rw-r--r--basctl/source/basicide/docsignature.cxx115
-rw-r--r--basctl/source/basicide/documentenumeration.cxx203
-rw-r--r--basctl/source/basicide/documentenumeration.hxx106
-rw-r--r--basctl/source/basicide/ide_pch.cxx31
-rw-r--r--basctl/source/basicide/ide_pch.hxx70
-rw-r--r--basctl/source/basicide/iderdll.cxx230
-rw-r--r--basctl/source/basicide/iderdll2.hxx108
-rw-r--r--basctl/source/basicide/idetemp.hxx65
-rw-r--r--basctl/source/basicide/localizationmgr.cxx1226
-rw-r--r--basctl/source/basicide/macrodlg.cxx905
-rw-r--r--basctl/source/basicide/macrodlg.hrc59
-rw-r--r--basctl/source/basicide/macrodlg.hxx113
-rw-r--r--basctl/source/basicide/macrodlg.src231
-rw-r--r--basctl/source/basicide/makefile.mk104
-rw-r--r--basctl/source/basicide/moduldl2.cxx1728
-rw-r--r--basctl/source/basicide/moduldlg.cxx1036
-rw-r--r--basctl/source/basicide/moduldlg.hrc68
-rw-r--r--basctl/source/basicide/moduldlg.hxx276
-rw-r--r--basctl/source/basicide/moduldlg.src411
-rw-r--r--basctl/source/basicide/moptions.hrc47
-rw-r--r--basctl/source/basicide/moptions.src147
-rw-r--r--basctl/source/basicide/objdlg.cxx306
-rw-r--r--basctl/source/basicide/objdlg.hrc40
-rw-r--r--basctl/source/basicide/objdlg.hxx97
-rw-r--r--basctl/source/basicide/objdlg.src93
-rw-r--r--basctl/source/basicide/register.cxx118
-rw-r--r--basctl/source/basicide/scriptdocument.cxx1593
-rw-r--r--basctl/source/basicide/tbxctl.cxx241
-rw-r--r--basctl/source/basicide/tbxctl.hrc30
-rw-r--r--basctl/source/basicide/tbxctl.hxx93
-rw-r--r--basctl/source/basicide/tbxctl.src273
-rw-r--r--basctl/source/basicide/unomodel.cxx128
-rw-r--r--basctl/source/basicide/unomodel.hxx66
-rw-r--r--basctl/source/dlged/dlged.cxx1423
-rw-r--r--basctl/source/dlged/dlgedclip.cxx149
-rw-r--r--basctl/source/dlged/dlgedfac.cxx268
-rw-r--r--basctl/source/dlged/dlgedfunc.cxx637
-rw-r--r--basctl/source/dlged/dlgedlist.cxx127
-rw-r--r--basctl/source/dlged/dlgedmod.cxx79
-rw-r--r--basctl/source/dlged/dlgedobj.cxx1896
-rw-r--r--basctl/source/dlged/dlgedpage.cxx86
-rw-r--r--basctl/source/dlged/dlgedview.cxx216
-rw-r--r--basctl/source/dlged/dlgresid.src175
-rw-r--r--basctl/source/dlged/makefile.mk63
-rw-r--r--basctl/source/dlged/managelang.cxx430
-rw-r--r--basctl/source/dlged/managelang.hrc106
-rw-r--r--basctl/source/dlged/managelang.src232
-rw-r--r--basctl/source/dlged/propbrw.cxx628
-rw-r--r--basctl/source/inc/accessibledialogcontrolshape.hxx147
-rw-r--r--basctl/source/inc/accessibledialogwindow.hxx175
-rw-r--r--basctl/source/inc/baside3.hxx119
-rw-r--r--basctl/source/inc/basidectrlr.hxx74
-rw-r--r--basctl/source/inc/basidesh.hxx239
-rw-r--r--basctl/source/inc/basobj.hxx127
-rw-r--r--basctl/source/inc/bastypes.hxx332
-rw-r--r--basctl/source/inc/dlged.hxx209
-rw-r--r--basctl/source/inc/dlgedclip.hxx65
-rw-r--r--basctl/source/inc/dlgeddef.hxx83
-rw-r--r--basctl/source/inc/dlgedfac.hxx49
-rw-r--r--basctl/source/inc/dlgedfunc.hxx95
-rw-r--r--basctl/source/inc/dlgedlist.hxx84
-rw-r--r--basctl/source/inc/dlgedmod.hxx65
-rw-r--r--basctl/source/inc/dlgedobj.hxx196
-rw-r--r--basctl/source/inc/dlgedpage.hxx61
-rw-r--r--basctl/source/inc/dlgedview.hxx60
-rw-r--r--basctl/source/inc/dlgresid.hrc77
-rw-r--r--basctl/source/inc/doceventnotifier.hxx96
-rw-r--r--basctl/source/inc/docsignature.hxx89
-rw-r--r--basctl/source/inc/iderid.hxx40
-rw-r--r--basctl/source/inc/localizationmgr.hxx155
-rw-r--r--basctl/source/inc/managelang.hxx125
-rw-r--r--basctl/source/inc/propbrw.hxx115
-rw-r--r--basctl/source/inc/sbxitem.hxx76
-rw-r--r--basctl/source/inc/scriptdocument.hxx536
-rw-r--r--basctl/source/inc/svheader.hxx89
-rw-r--r--basctl/uiconfig/basicide/accelerator/en-GB/default.xml11
-rw-r--r--basctl/uiconfig/basicide/accelerator/en-US/default.xml11
-rw-r--r--basctl/uiconfig/basicide/menubar/menubar.xml91
-rw-r--r--basctl/uiconfig/basicide/statusbar/statusbar.xml10
-rw-r--r--basctl/uiconfig/basicide/toolbar/dialogbar.xml9
-rw-r--r--basctl/uiconfig/basicide/toolbar/fullscreenbar.xml5
-rw-r--r--basctl/uiconfig/basicide/toolbar/insertcontrolsbar.xml43
-rw-r--r--basctl/uiconfig/basicide/toolbar/macrobar.xml22
-rw-r--r--basctl/uiconfig/basicide/toolbar/standardbar.xml25
-rw-r--r--basctl/uiconfig/basicide/toolbar/translationbar.xml6
-rwxr-xr-xbasctl/util/basctl.map11
-rw-r--r--basctl/util/basctl.xml23
-rw-r--r--basctl/util/hidother.hrc27
-rw-r--r--basctl/util/hidother.src45
-rw-r--r--basctl/util/makefile.mk105
-rw-r--r--basctl/util/makefile.pmk28
-rw-r--r--basebmp/inc/basebmp/accessor.hxx119
-rw-r--r--basebmp/inc/basebmp/accessoradapters.hxx526
-rw-r--r--basebmp/inc/basebmp/accessorfunctors.hxx187
-rw-r--r--basebmp/inc/basebmp/accessortraits.hxx130
-rw-r--r--basebmp/inc/basebmp/bitmapdevice.hxx692
-rw-r--r--basebmp/inc/basebmp/clippedlinerenderer.hxx412
-rw-r--r--basebmp/inc/basebmp/color.hxx99
-rw-r--r--basebmp/inc/basebmp/colorblendaccessoradapter.hxx148
-rw-r--r--basebmp/inc/basebmp/colormisc.hxx191
-rw-r--r--basebmp/inc/basebmp/colortraits.hxx150
-rwxr-xr-xbasebmp/inc/basebmp/compositeiterator.hxx367
-rw-r--r--basebmp/inc/basebmp/debug.hxx50
-rw-r--r--basebmp/inc/basebmp/drawmodes.hxx55
-rw-r--r--basebmp/inc/basebmp/endian.hxx57
-rw-r--r--basebmp/inc/basebmp/fillimage.hxx69
-rw-r--r--basebmp/inc/basebmp/genericcolorimageaccessor.hxx82
-rw-r--r--basebmp/inc/basebmp/greylevelformats.hxx135
-rw-r--r--basebmp/inc/basebmp/iteratortraits.hxx55
-rw-r--r--basebmp/inc/basebmp/linerenderer.hxx181
-rw-r--r--basebmp/inc/basebmp/metafunctions.hxx222
-rw-r--r--basebmp/inc/basebmp/nonstandarditerator.hxx45
-rw-r--r--basebmp/inc/basebmp/packedpixeliterator.hxx677
-rw-r--r--basebmp/inc/basebmp/paletteformats.hxx147
-rw-r--r--basebmp/inc/basebmp/paletteimageaccessor.hxx168
-rw-r--r--basebmp/inc/basebmp/pixelformatadapters.hxx108
-rw-r--r--basebmp/inc/basebmp/pixeliterator.hxx355
-rw-r--r--basebmp/inc/basebmp/polypolygonrenderer.hxx366
-rw-r--r--basebmp/inc/basebmp/rgb24pixelformats.hxx98
-rw-r--r--basebmp/inc/basebmp/rgbmaskpixelformats.hxx289
-rw-r--r--basebmp/inc/basebmp/scaleimage.hxx195
-rw-r--r--basebmp/inc/basebmp/scanlineformats.hxx56
-rw-r--r--basebmp/inc/basebmp/stridedarrayiterator.hxx114
-rw-r--r--basebmp/inc/basebmp/tools.hxx91
-rw-r--r--basebmp/inc/basebmp/truecolormaskaccessor.hxx290
-rw-r--r--basebmp/prj/build.lst5
-rw-r--r--basebmp/prj/d.lst9
-rw-r--r--basebmp/source/bitmapdevice.cxx2064
-rw-r--r--basebmp/source/debug.cxx106
-rw-r--r--basebmp/source/intconversion.hxx88
-rw-r--r--basebmp/source/makefile.mk76
-rw-r--r--basebmp/source/polypolygonrenderer.cxx127
-rw-r--r--basebmp/test/basictest.cxx303
-rw-r--r--basebmp/test/bmpdemo.cxx1256
-rw-r--r--basebmp/test/bmpmasktest.cxx189
-rw-r--r--basebmp/test/bmptest.cxx216
-rw-r--r--basebmp/test/cliptest.cxx283
-rw-r--r--basebmp/test/export.map34
-rw-r--r--basebmp/test/filltest.cxx277
-rw-r--r--basebmp/test/linetest.cxx225
-rw-r--r--basebmp/test/makefile.mk136
-rw-r--r--basebmp/test/masktest.cxx177
-rw-r--r--basebmp/test/polytest.cxx297
-rw-r--r--basebmp/test/tools.cxx49
-rw-r--r--basebmp/test/tools.hxx31
-rw-r--r--basebmp/util/basebmp.flt4
-rw-r--r--basebmp/util/makefile.mk66
-rw-r--r--basegfx/inc/basegfx/color/bcolor.hxx237
-rw-r--r--basegfx/inc/basegfx/color/bcolormodifier.hxx143
-rw-r--r--basegfx/inc/basegfx/color/bcolortools.hxx72
-rw-r--r--basegfx/inc/basegfx/curve/b2dbeziertools.hxx63
-rw-r--r--basegfx/inc/basegfx/curve/b2dcubicbezier.hxx222
-rw-r--r--basegfx/inc/basegfx/curve/b2dquadraticbezier.hxx73
-rw-r--r--basegfx/inc/basegfx/matrix/b2dhommatrix.hxx168
-rw-r--r--basegfx/inc/basegfx/matrix/b2dhommatrixtools.hxx227
-rw-r--r--basegfx/inc/basegfx/matrix/b3dhommatrix.hxx175
-rw-r--r--basegfx/inc/basegfx/numeric/ftools.hxx203
-rw-r--r--basegfx/inc/basegfx/pixel/bpixel.hxx222
-rw-r--r--basegfx/inc/basegfx/point/b2dhompoint.hxx235
-rw-r--r--basegfx/inc/basegfx/point/b2dpoint.hxx151
-rw-r--r--basegfx/inc/basegfx/point/b2ipoint.hxx127
-rw-r--r--basegfx/inc/basegfx/point/b3dhompoint.hxx405
-rw-r--r--basegfx/inc/basegfx/point/b3dpoint.hxx150
-rw-r--r--basegfx/inc/basegfx/point/b3ipoint.hxx139
-rw-r--r--basegfx/inc/basegfx/polygon/b2dlinegeometry.hxx144
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygon.hxx268
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygonclipper.hxx82
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygoncutandtouch.hxx73
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygontools.hxx530
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolygontriangulator.hxx49
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygon.hxx131
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygoncutter.hxx119
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygonfillrule.hxx60
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygonrasterconverter.hxx141
-rw-r--r--basegfx/inc/basegfx/polygon/b2dpolypolygontools.hxx279
-rw-r--r--basegfx/inc/basegfx/polygon/b3dgeometry.hxx70
-rw-r--r--basegfx/inc/basegfx/polygon/b3dpolygon.hxx141
-rw-r--r--basegfx/inc/basegfx/polygon/b3dpolygonclipper.hxx86
-rw-r--r--basegfx/inc/basegfx/polygon/b3dpolygontools.hxx191
-rw-r--r--basegfx/inc/basegfx/polygon/b3dpolypolygon.hxx125
-rw-r--r--basegfx/inc/basegfx/polygon/b3dpolypolygontools.hxx154
-rw-r--r--basegfx/inc/basegfx/range/b1drange.hxx165
-rw-r--r--basegfx/inc/basegfx/range/b1ibox.hxx143
-rw-r--r--basegfx/inc/basegfx/range/b1irange.hxx144
-rw-r--r--basegfx/inc/basegfx/range/b2dconnectedranges.hxx263
-rw-r--r--basegfx/inc/basegfx/range/b2dmultirange.hxx114
-rw-r--r--basegfx/inc/basegfx/range/b2drange.hxx295
-rw-r--r--basegfx/inc/basegfx/range/b2drectangle.hxx42
-rw-r--r--basegfx/inc/basegfx/range/b2ibox.hxx251
-rw-r--r--basegfx/inc/basegfx/range/b2irange.hxx254
-rw-r--r--basegfx/inc/basegfx/range/b2irectangle.hxx42
-rw-r--r--basegfx/inc/basegfx/range/b3drange.hxx302
-rw-r--r--basegfx/inc/basegfx/range/b3dvolume.hxx42
-rw-r--r--basegfx/inc/basegfx/range/b3ibox.hxx259
-rw-r--r--basegfx/inc/basegfx/range/b3irange.hxx262
-rw-r--r--basegfx/inc/basegfx/range/b3ivolume.hxx42
-rw-r--r--basegfx/inc/basegfx/range/basicbox.hxx136
-rw-r--r--basegfx/inc/basegfx/range/basicrange.hxx297
-rw-r--r--basegfx/inc/basegfx/range/rangeexpander.hxx83
-rw-r--r--basegfx/inc/basegfx/raster/bpixelraster.hxx116
-rw-r--r--basegfx/inc/basegfx/raster/bzpixelraster.hxx96
-rw-r--r--basegfx/inc/basegfx/raster/rasterconvert3d.hxx345
-rwxr-xr-xbasegfx/inc/basegfx/tools/canvastools.hxx221
-rw-r--r--basegfx/inc/basegfx/tools/debugplotter.hxx107
-rw-r--r--basegfx/inc/basegfx/tools/gradienttools.hxx398
-rw-r--r--basegfx/inc/basegfx/tools/rectcliptools.hxx88
-rw-r--r--basegfx/inc/basegfx/tools/tools.hxx131
-rwxr-xr-xbasegfx/inc/basegfx/tools/unopolypolygon.hxx112
-rw-r--r--basegfx/inc/basegfx/tuple/b2dtuple.hxx357
-rw-r--r--basegfx/inc/basegfx/tuple/b2i64tuple.hxx312
-rw-r--r--basegfx/inc/basegfx/tuple/b2ituple.hxx237
-rw-r--r--basegfx/inc/basegfx/tuple/b3dtuple.hxx431
-rw-r--r--basegfx/inc/basegfx/tuple/b3i64tuple.hxx349
-rw-r--r--basegfx/inc/basegfx/tuple/b3ituple.hxx349
-rw-r--r--basegfx/inc/basegfx/vector/b2dsize.hxx42
-rw-r--r--basegfx/inc/basegfx/vector/b2dvector.hxx267
-rw-r--r--basegfx/inc/basegfx/vector/b2enums.hxx76
-rw-r--r--basegfx/inc/basegfx/vector/b2isize.hxx42
-rw-r--r--basegfx/inc/basegfx/vector/b2ivector.hxx230
-rw-r--r--basegfx/inc/basegfx/vector/b3dsize.hxx42
-rw-r--r--basegfx/inc/basegfx/vector/b3dvector.hxx340
-rw-r--r--basegfx/inc/basegfx/vector/b3isize.hxx42
-rw-r--r--basegfx/inc/basegfx/vector/b3ivector.hxx259
-rw-r--r--basegfx/inc/makefile.mk47
-rw-r--r--basegfx/inc/pch/precompiled_basegfx.cxx29
-rw-r--r--basegfx/inc/pch/precompiled_basegfx.hxx32
-rw-r--r--basegfx/prj/build.lst18
-rw-r--r--basegfx/prj/d.lst109
-rw-r--r--basegfx/source/color/bcolor.cxx40
-rw-r--r--basegfx/source/color/bcolormodifier.cxx72
-rw-r--r--basegfx/source/color/bcolortools.cxx268
-rw-r--r--basegfx/source/color/makefile.mk49
-rw-r--r--basegfx/source/curve/b2dbeziertools.cxx163
-rw-r--r--basegfx/source/curve/b2dcubicbezier.cxx1106
-rw-r--r--basegfx/source/curve/b2dquadraticbezier.cxx105
-rw-r--r--basegfx/source/curve/makefile.mk49
-rw-r--r--basegfx/source/inc/PolygonPoint.hxx538
-rw-r--r--basegfx/source/inc/hommatrixtemplate.hxx613
-rw-r--r--basegfx/source/inc/polygontemplate.hxx538
-rw-r--r--basegfx/source/matrix/b2dhommatrix.cxx454
-rw-r--r--basegfx/source/matrix/b2dhommatrixtools.cxx373
-rw-r--r--basegfx/source/matrix/b3dhommatrix.cxx596
-rw-r--r--basegfx/source/matrix/makefile.mk49
-rw-r--r--basegfx/source/numeric/ftools.cxx38
-rw-r--r--basegfx/source/numeric/makefile.mk47
-rw-r--r--basegfx/source/pixel/bpixel.cxx51
-rw-r--r--basegfx/source/pixel/makefile.mk47
-rw-r--r--basegfx/source/point/b2dhompoint.cxx259
-rw-r--r--basegfx/source/point/b2dpoint.cxx85
-rw-r--r--basegfx/source/point/b2ipoint.cxx76
-rw-r--r--basegfx/source/point/b3dhompoint.cxx44
-rw-r--r--basegfx/source/point/b3dpoint.cxx85
-rw-r--r--basegfx/source/point/b3ipoint.cxx79
-rw-r--r--basegfx/source/point/makefile.mk52
-rw-r--r--basegfx/source/polygon/b2dlinegeometry.cxx725
-rw-r--r--basegfx/source/polygon/b2dpolygon.cxx1592
-rw-r--r--basegfx/source/polygon/b2dpolygonclipper.cxx873
-rw-r--r--basegfx/source/polygon/b2dpolygoncutandtouch.cxx1209
-rw-r--r--basegfx/source/polygon/b2dpolygontools.cxx3594
-rw-r--r--basegfx/source/polygon/b2dpolygontriangulator.cxx466
-rw-r--r--basegfx/source/polygon/b2dpolypolygon.cxx380
-rw-r--r--basegfx/source/polygon/b2dpolypolygoncutter.cxx1014
-rw-r--r--basegfx/source/polygon/b2dpolypolygonrasterconverter.cxx702
-rw-r--r--basegfx/source/polygon/b2dpolypolygontools.cxx585
-rw-r--r--basegfx/source/polygon/b2dsvgpolypolygon.cxx1105
-rw-r--r--basegfx/source/polygon/b3dgeometry.cxx55
-rw-r--r--basegfx/source/polygon/b3dpolygon.cxx1816
-rw-r--r--basegfx/source/polygon/b3dpolygonclipper.cxx574
-rw-r--r--basegfx/source/polygon/b3dpolygontools.cxx1263
-rw-r--r--basegfx/source/polygon/b3dpolypolygon.cxx446
-rw-r--r--basegfx/source/polygon/b3dpolypolygontools.cxx556
-rw-r--r--basegfx/source/polygon/makefile.mk62
-rw-r--r--basegfx/source/range/b1drange.cxx56
-rw-r--r--basegfx/source/range/b2dmultirange.cxx279
-rw-r--r--basegfx/source/range/b2drange.cxx74
-rw-r--r--basegfx/source/range/b2xrange.cxx142
-rw-r--r--basegfx/source/range/b3drange.cxx85
-rw-r--r--basegfx/source/range/makefile.mk51
-rw-r--r--basegfx/source/raster/bpixelraster.cxx40
-rw-r--r--basegfx/source/raster/bzpixelraster.cxx40
-rw-r--r--basegfx/source/raster/makefile.mk49
-rw-r--r--basegfx/source/raster/rasterconvert3d.cxx353
-rwxr-xr-xbasegfx/source/tools/canvastools.cxx674
-rwxr-xr-xbasegfx/source/tools/debugplotter.cxx413
-rw-r--r--basegfx/source/tools/gradienttools.cxx360
-rw-r--r--basegfx/source/tools/liangbarsky.cxx132
-rwxr-xr-xbasegfx/source/tools/makefile.mk49
-rw-r--r--basegfx/source/tools/tools.cxx124
-rwxr-xr-xbasegfx/source/tools/unopolypolygon.cxx486
-rw-r--r--basegfx/source/tuple/b2dtuple.cxx84
-rw-r--r--basegfx/source/tuple/b2i64tuple.cxx44
-rw-r--r--basegfx/source/tuple/b2ituple.cxx153
-rw-r--r--basegfx/source/tuple/b3dtuple.cxx55
-rw-r--r--basegfx/source/tuple/b3i64tuple.cxx43
-rw-r--r--basegfx/source/tuple/b3ituple.cxx43
-rw-r--r--basegfx/source/tuple/makefile.mk52
-rw-r--r--basegfx/source/vector/b2dvector.cxx219
-rw-r--r--basegfx/source/vector/b2ivector.cxx159
-rw-r--r--basegfx/source/vector/b3dvector.cxx115
-rw-r--r--basegfx/source/vector/b3ivector.cxx51
-rw-r--r--basegfx/source/vector/makefile.mk50
-rw-r--r--basegfx/source/workbench/Makefile16
-rw-r--r--basegfx/source/workbench/bezierclip.cxx2057
-rw-r--r--basegfx/source/workbench/bezierclip.hxx93
-rw-r--r--basegfx/source/workbench/convexhull.cxx213
-rw-r--r--basegfx/source/workbench/gauss.hxx172
-rw-r--r--basegfx/test/basegfx1d.cxx77
-rw-r--r--basegfx/test/basegfx2d.cxx1649
-rw-r--r--basegfx/test/basegfx3d.cxx226
-rw-r--r--basegfx/test/export.map34
-rw-r--r--basegfx/test/makefile.mk93
-rw-r--r--basegfx/test/tests.txt20
-rw-r--r--basegfx/test/testtools.cxx235
-rw-r--r--basegfx/test/testtools.hxx98
-rw-r--r--basegfx/util/basegfx.flt6
-rw-r--r--basegfx/util/makefile.mk85
-rw-r--r--basic/inc/basic/basicmanagerrepository.hxx146
-rw-r--r--basic/inc/basic/basicrt.hxx79
-rw-r--r--basic/inc/basic/basmgr.hxx261
-rw-r--r--basic/inc/basic/basrdll.hxx59
-rw-r--r--basic/inc/basic/dispdefs.hxx38
-rw-r--r--basic/inc/basic/mybasic.hxx94
-rw-r--r--basic/inc/basic/process.hxx63
-rw-r--r--basic/inc/basic/sbdef.hxx110
-rw-r--r--basic/inc/basic/sberrors.hxx559
-rw-r--r--basic/inc/basic/sbmeth.hxx101
-rw-r--r--basic/inc/basic/sbmod.hxx169
-rw-r--r--basic/inc/basic/sbprop.hxx80
-rw-r--r--basic/inc/basic/sbstar.hxx215
-rw-r--r--basic/inc/basic/sbstdobj.hxx145
-rw-r--r--basic/inc/basic/sbuno.hxx45
-rw-r--r--basic/inc/basic/sbx.hxx369
-rw-r--r--basic/inc/basic/sbxbase.hxx60
-rw-r--r--basic/inc/basic/sbxcore.hxx181
-rw-r--r--basic/inc/basic/sbxdef.hxx380
-rw-r--r--basic/inc/basic/sbxfac.hxx48
-rw-r--r--basic/inc/basic/sbxform.hxx181
-rw-r--r--basic/inc/basic/sbxmeth.hxx62
-rw-r--r--basic/inc/basic/sbxmstrm.hxx49
-rw-r--r--basic/inc/basic/sbxobj.hxx125
-rw-r--r--basic/inc/basic/sbxprop.hxx61
-rw-r--r--basic/inc/basic/sbxvar.hxx505
-rw-r--r--basic/inc/basic/testtool.hxx160
-rw-r--r--basic/inc/basic/ttglobal.hrc49
-rw-r--r--basic/inc/basic/ttstrhlp.hxx74
-rw-r--r--basic/inc/basrid.hxx45
-rw-r--r--basic/inc/makefile.mk47
-rw-r--r--basic/inc/modsizeexceeded.hxx61
-rw-r--r--basic/inc/pch/precompiled_basic.cxx29
-rw-r--r--basic/inc/pch/precompiled_basic.hxx288
-rw-r--r--basic/inc/sb.hrc47
-rw-r--r--basic/inc/sb.hxx42
-rw-r--r--basic/inc/svtmsg.hrc115
-rw-r--r--basic/inc/testtool.hrc36
-rw-r--r--basic/inc/ttmsg.hrc111
-rw-r--r--basic/prj/build.lst13
-rw-r--r--basic/prj/d.lst59
-rw-r--r--basic/source/app/app.cxx1948
-rw-r--r--basic/source/app/app.hxx196
-rw-r--r--basic/source/app/appbased.cxx299
-rw-r--r--basic/source/app/appbased.hxx74
-rw-r--r--basic/source/app/appedit.cxx301
-rw-r--r--basic/source/app/appedit.hxx70
-rw-r--r--basic/source/app/apperror.cxx115
-rw-r--r--basic/source/app/apperror.hxx49
-rw-r--r--basic/source/app/appwin.cxx657
-rw-r--r--basic/source/app/appwin.hxx138
-rw-r--r--basic/source/app/basic.hrc184
-rw-r--r--basic/source/app/basic.src1472
-rw-r--r--basic/source/app/basicrt.cxx144
-rw-r--r--basic/source/app/basmsg.hrc45
-rw-r--r--basic/source/app/basmsg.src54
-rw-r--r--basic/source/app/brkpnts.cxx386
-rw-r--r--basic/source/app/brkpnts.hxx94
-rw-r--r--basic/source/app/dataedit.hxx116
-rw-r--r--basic/source/app/dialogs.cxx1507
-rw-r--r--basic/source/app/dialogs.hxx371
-rw-r--r--basic/source/app/makefile.mk101
-rw-r--r--basic/source/app/msgedit.cxx999
-rw-r--r--basic/source/app/msgedit.hxx114
-rw-r--r--basic/source/app/mybasic.cxx304
-rw-r--r--basic/source/app/printer.cxx122
-rw-r--r--basic/source/app/printer.hxx52
-rw-r--r--basic/source/app/process.cxx229
-rw-r--r--basic/source/app/processw.cxx282
-rw-r--r--basic/source/app/processw.hxx90
-rw-r--r--basic/source/app/resids.hrc158
-rw-r--r--basic/source/app/status.cxx125
-rw-r--r--basic/source/app/status.hxx54
-rw-r--r--basic/source/app/svtmsg.src339
-rw-r--r--basic/source/app/testbasi.cxx31
-rw-r--r--basic/source/app/testtool.idl47
-rw-r--r--basic/source/app/testtool.src61
-rw-r--r--basic/source/app/textedit.cxx866
-rw-r--r--basic/source/app/textedit.hxx138
-rw-r--r--basic/source/app/ttbasic.cxx36
-rw-r--r--basic/source/app/ttbasic.hxx32
-rw-r--r--basic/source/app/ttmsg.src160
-rw-r--r--basic/source/basmgr/basicmanagerrepository.cxx641
-rw-r--r--basic/source/basmgr/basmgr.cxx2470
-rw-r--r--basic/source/basmgr/makefile.mk46
-rw-r--r--basic/source/classes/disas.cxx664
-rw-r--r--basic/source/classes/eventatt.cxx596
-rw-r--r--basic/source/classes/image.cxx544
-rw-r--r--basic/source/classes/makefile.mk66
-rw-r--r--basic/source/classes/propacc.cxx430
-rw-r--r--basic/source/classes/sb.cxx1833
-rw-r--r--basic/source/classes/sb.src677
-rw-r--r--basic/source/classes/sbintern.cxx82
-rwxr-xr-xbasic/source/classes/sbunoobj.cxx4117
-rw-r--r--basic/source/classes/sbxmod.cxx1500
-rw-r--r--basic/source/comp/buffer.cxx250
-rw-r--r--basic/source/comp/codegen.cxx528
-rw-r--r--basic/source/comp/dim.cxx1104
-rw-r--r--basic/source/comp/exprgen.cxx297
-rw-r--r--basic/source/comp/exprnode.cxx478
-rw-r--r--basic/source/comp/exprtree.cxx1101
-rw-r--r--basic/source/comp/io.cxx321
-rw-r--r--basic/source/comp/loops.cxx558
-rw-r--r--basic/source/comp/makefile.mk73
-rw-r--r--basic/source/comp/parser.cxx816
-rw-r--r--basic/source/comp/sbcomp.cxx171
-rw-r--r--basic/source/comp/scanner.cxx582
-rw-r--r--basic/source/comp/symtbl.cxx534
-rw-r--r--basic/source/comp/token.cxx698
-rw-r--r--basic/source/inc/buffer.hxx63
-rw-r--r--basic/source/inc/codegen.hxx91
-rw-r--r--basic/source/inc/collelem.hxx47
-rw-r--r--basic/source/inc/disas.hxx72
-rw-r--r--basic/source/inc/dlgcont.hxx172
-rw-r--r--basic/source/inc/expr.hxx257
-rw-r--r--basic/source/inc/filefmt.hxx178
-rw-r--r--basic/source/inc/image.hxx111
-rw-r--r--basic/source/inc/iosys.hxx113
-rw-r--r--basic/source/inc/namecont.hxx736
-rw-r--r--basic/source/inc/object.hxx100
-rw-r--r--basic/source/inc/opcodes.hxx171
-rw-r--r--basic/source/inc/parser.hxx151
-rw-r--r--basic/source/inc/propacc.hxx203
-rw-r--r--basic/source/inc/runtime.hxx526
-rw-r--r--basic/source/inc/sbcomp.hxx38
-rw-r--r--basic/source/inc/sbintern.hxx141
-rw-r--r--basic/source/inc/sbjsmeth.hxx53
-rw-r--r--basic/source/inc/sbjsmod.hxx50
-rw-r--r--basic/source/inc/sbunoobj.hxx325
-rw-r--r--basic/source/inc/scanner.hxx146
-rw-r--r--basic/source/inc/scriptcont.hxx179
-rw-r--r--basic/source/inc/stdobj.hxx51
-rw-r--r--basic/source/inc/symtbl.hxx243
-rw-r--r--basic/source/inc/token.hxx165
-rw-r--r--basic/source/runtime/basrdll.cxx104
-rw-r--r--basic/source/runtime/ddectrl.cxx192
-rw-r--r--basic/source/runtime/ddectrl.hxx64
-rw-r--r--basic/source/runtime/dllmgr.cxx671
-rw-r--r--basic/source/runtime/dllmgr.hxx95
-rw-r--r--basic/source/runtime/inputbox.cxx197
-rw-r--r--basic/source/runtime/iosys.cxx1048
-rw-r--r--basic/source/runtime/makefile.mk89
-rw-r--r--basic/source/runtime/methods.cxx4544
-rw-r--r--basic/source/runtime/methods1.cxx2607
-rw-r--r--basic/source/runtime/os2.asm103
-rw-r--r--basic/source/runtime/props.cxx761
-rw-r--r--basic/source/runtime/rtlproto.hxx347
-rw-r--r--basic/source/runtime/runtime.cxx1155
-rw-r--r--basic/source/runtime/stdobj.cxx780
-rw-r--r--basic/source/runtime/stdobj1.cxx551
-rw-r--r--basic/source/runtime/step0.cxx1270
-rw-r--r--basic/source/runtime/step1.cxx568
-rw-r--r--basic/source/runtime/step2.cxx1213
-rw-r--r--basic/source/runtime/win.asm80
-rw-r--r--basic/source/runtime/wnt-mingw.s93
-rw-r--r--basic/source/runtime/wnt.asm92
-rw-r--r--basic/source/sample/collelem.cxx79
-rw-r--r--basic/source/sample/makefile.mk58
-rw-r--r--basic/source/sample/object.cxx278
-rw-r--r--basic/source/sample/sample.bas39
-rw-r--r--basic/source/sbx/format.src85
-rw-r--r--basic/source/sbx/makefile.mk77
-rw-r--r--basic/source/sbx/sbxarray.cxx857
-rw-r--r--basic/source/sbx/sbxbase.cxx462
-rw-r--r--basic/source/sbx/sbxbool.cxx252
-rw-r--r--basic/source/sbx/sbxbyte.cxx329
-rw-r--r--basic/source/sbx/sbxchar.cxx325
-rw-r--r--basic/source/sbx/sbxcoll.cxx301
-rw-r--r--basic/source/sbx/sbxconv.hxx151
-rw-r--r--basic/source/sbx/sbxcurr.cxx395
-rw-r--r--basic/source/sbx/sbxdate.cxx412
-rw-r--r--basic/source/sbx/sbxdbl.cxx306
-rw-r--r--basic/source/sbx/sbxdec.cxx797
-rw-r--r--basic/source/sbx/sbxdec.hxx122
-rw-r--r--basic/source/sbx/sbxexec.cxx401
-rw-r--r--basic/source/sbx/sbxform.cxx1168
-rw-r--r--basic/source/sbx/sbxint.cxx967
-rw-r--r--basic/source/sbx/sbxlng.cxx341
-rw-r--r--basic/source/sbx/sbxmstrm.cxx39
-rw-r--r--basic/source/sbx/sbxobj.cxx1145
-rw-r--r--basic/source/sbx/sbxres.cxx91
-rw-r--r--basic/source/sbx/sbxres.hxx87
-rw-r--r--basic/source/sbx/sbxscan.cxx963
-rw-r--r--basic/source/sbx/sbxsng.cxx359
-rw-r--r--basic/source/sbx/sbxstr.cxx321
-rw-r--r--basic/source/sbx/sbxuint.cxx331
-rw-r--r--basic/source/sbx/sbxulng.cxx321
-rw-r--r--basic/source/sbx/sbxvals.cxx109
-rw-r--r--basic/source/sbx/sbxvalue.cxx1851
-rw-r--r--basic/source/sbx/sbxvar.cxx585
-rw-r--r--basic/source/uno/dlgcont.cxx655
-rw-r--r--basic/source/uno/makefile.mk49
-rw-r--r--basic/source/uno/modsizeexceeded.cxx68
-rw-r--r--basic/source/uno/namecont.cxx3335
-rw-r--r--basic/source/uno/sbmodule.cxx44
-rw-r--r--basic/source/uno/sbmodule.hxx45
-rw-r--r--basic/source/uno/sbservices.cxx63
-rw-r--r--basic/source/uno/scriptcont.cxx1171
-rw-r--r--basic/util/makefile.mk145
-rw-r--r--basic/win/res/basic.icobin0 -> 766 bytes
-rw-r--r--basic/win/res/testtool.icobin0 -> 766 bytes
-rw-r--r--basic/win/res/work.icobin0 -> 766 bytes
-rw-r--r--basic/workben/basmgr.src31
-rw-r--r--basic/workben/makefile.mk89
-rw-r--r--basic/workben/mgrtest.cxx591
-rw-r--r--bean/com/sun/star/beans/ContainerFactory.java47
-rw-r--r--bean/com/sun/star/beans/JavaWindowPeerFake.java122
-rw-r--r--bean/com/sun/star/beans/LocalOfficeConnection.java617
-rw-r--r--bean/com/sun/star/beans/LocalOfficeWindow.java309
-rw-r--r--bean/com/sun/star/beans/NativeConnection.java59
-rw-r--r--bean/com/sun/star/beans/NativeService.java36
-rw-r--r--bean/com/sun/star/beans/OfficeConnection.java79
-rw-r--r--bean/com/sun/star/beans/OfficeWindow.java55
-rw-r--r--bean/com/sun/star/beans/makefile.mk64
-rw-r--r--bean/com/sun/star/comp/beans/CallWatchThread.java128
-rw-r--r--bean/com/sun/star/comp/beans/ContainerFactory.java47
-rw-r--r--bean/com/sun/star/comp/beans/Controller.java110
-rw-r--r--bean/com/sun/star/comp/beans/Frame.java182
-rw-r--r--bean/com/sun/star/comp/beans/HasConnectionException.java40
-rw-r--r--bean/com/sun/star/comp/beans/InvalidArgumentException.java38
-rw-r--r--bean/com/sun/star/comp/beans/JavaWindowPeerFake.java122
-rw-r--r--bean/com/sun/star/comp/beans/LocalOfficeConnection.java823
-rw-r--r--bean/com/sun/star/comp/beans/LocalOfficeWindow.java288
-rw-r--r--bean/com/sun/star/comp/beans/NativeConnection.java62
-rw-r--r--bean/com/sun/star/comp/beans/NativeService.java37
-rw-r--r--bean/com/sun/star/comp/beans/NoConnectionException.java40
-rw-r--r--bean/com/sun/star/comp/beans/NoDocumentException.java38
-rw-r--r--bean/com/sun/star/comp/beans/OOoBean.java1511
-rw-r--r--bean/com/sun/star/comp/beans/OfficeConnection.java80
-rw-r--r--bean/com/sun/star/comp/beans/OfficeDocument.java226
-rw-r--r--bean/com/sun/star/comp/beans/OfficeWindow.java56
-rw-r--r--bean/com/sun/star/comp/beans/SystemWindowException.java41
-rw-r--r--bean/com/sun/star/comp/beans/Wrapper.java108
-rw-r--r--bean/com/sun/star/comp/beans/makefile.mk75
-rw-r--r--bean/native/unix/com_sun_star_beans_LocalOfficeWindow.c99
-rw-r--r--bean/native/unix/com_sun_star_comp_beans_LocalOfficeWindow.c147
-rw-r--r--bean/native/unix/makefile.mk39
-rw-r--r--bean/native/win32/com_sun_star_beans_LocalOfficeWindow.c102
-rw-r--r--bean/native/win32/com_sun_star_comp_beans_LocalOfficeWindow.c217
-rw-r--r--bean/native/win32/makefile.mk34
-rw-r--r--bean/native/win32/officebean.dxp4
-rw-r--r--bean/prj/build.lst6
-rw-r--r--bean/prj/d.lst5
-rw-r--r--bean/qa/complex/OOoBeanTest.java656
-rw-r--r--bean/qa/complex/ScreenComparer.java233
-rw-r--r--bean/qa/complex/WriterFrame.java209
-rw-r--r--bean/qa/complex/makefile.mk95
-rw-r--r--bean/test/Test.java68
-rw-r--r--bean/test/applet/oooapplet/OOoViewer.java208
-rw-r--r--bean/test/applet/oooapplet/bean.policy16
-rw-r--r--bean/test/applet/oooapplet/example.html22
-rw-r--r--bean/test/applet/oooapplet/makefile.mk88
-rw-r--r--bean/test/makefile.mk95
-rw-r--r--bean/util/delzip0
-rw-r--r--bean/util/makefile.mk56
-rw-r--r--beanshell/bsh-2.0b1-src.patch83
-rw-r--r--beanshell/makefile.mk57
-rw-r--r--beanshell/prj/build.lst3
-rw-r--r--beanshell/prj/d.lst1
-rw-r--r--berkeleydb/db-4.7.25-mingw.patch348
-rw-r--r--berkeleydb/db-4.7.25.patch1053
-rw-r--r--berkeleydb/makefile.mk186
-rw-r--r--berkeleydb/prj/build.lst3
-rw-r--r--berkeleydb/prj/d.lst15
-rw-r--r--bitstream_vera_fonts/fonts/ttf_dejavu/makefile.mk60
-rw-r--r--bitstream_vera_fonts/fonts/ttf_gentium/makefile.mk60
-rw-r--r--bitstream_vera_fonts/fonts/ttf_liberation/makefile.mk62
-rw-r--r--bitstream_vera_fonts/prj/build.lst5
-rw-r--r--bitstream_vera_fonts/prj/d.lst8
-rw-r--r--boost/README.Regex_Experimental30
-rw-r--r--boost/Regex_Experimental.tar.gzbin0 -> 3463 bytes
-rw-r--r--boost/boost_1_39_0.patch201
-rw-r--r--boost/makefile.mk104
-rw-r--r--boost/prj/build.lst3
-rw-r--r--boost/prj/d.lst302
-rw-r--r--bootstrap.179
-rw-r--r--bridges/inc/bridges/cpp_uno/bridge.hxx503
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/arraypointer.hxx55
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/bridge.hxx128
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/cppinterfaceproxy.hxx106
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/types.hxx77
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/unointerfaceproxy.hxx116
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/vtablefactory.hxx214
-rw-r--r--bridges/inc/bridges/cpp_uno/shared/vtables.hxx108
-rw-r--r--bridges/inc/bridges/cpp_uno/type_misc.hxx129
-rw-r--r--bridges/inc/bridges/remote/bridgeimpl.hxx94
-rw-r--r--bridges/inc/bridges/remote/connection.h67
-rw-r--r--bridges/inc/bridges/remote/context.h260
-rw-r--r--bridges/inc/bridges/remote/counter.hxx57
-rw-r--r--bridges/inc/bridges/remote/helper.hxx68
-rw-r--r--bridges/inc/bridges/remote/mapping.hxx69
-rw-r--r--bridges/inc/bridges/remote/proxy.hxx91
-rw-r--r--bridges/inc/bridges/remote/remote.h93
-rw-r--r--bridges/inc/bridges/remote/remote.hxx73
-rw-r--r--bridges/inc/bridges/remote/stub.hxx64
-rw-r--r--bridges/inc/makefile.mk47
-rw-r--r--bridges/inc/pch/precompiled_bridges.cxx29
-rw-r--r--bridges/inc/pch/precompiled_bridges.hxx152
-rw-r--r--bridges/prj/build.lst35
-rw-r--r--bridges/prj/d.lst28
-rw-r--r--bridges/source/bridge_exports.map8
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/call.s248
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/cc50_solaris_intel.hxx73
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/cpp2uno.cxx527
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/except.cxx449
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/hash.cxx263
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/makefile.mk75
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_intel/uno2cpp.cxx418
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/call.s199
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/cc50_solaris_sparc.hxx87
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/cpp2uno.cxx530
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/except.cxx445
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/flushcode.hxx48
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/hash.cxx264
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/makefile.mk80
-rw-r--r--bridges/source/cpp_uno/cc50_solaris_sparc/uno2cpp.cxx396
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/callvirtualmethod.hxx36
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/callvirtualmethod.s59
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/cpp2uno.cxx611
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/exceptions.cxx459
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/exceptions.hxx72
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/flushcode.hxx48
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/fp.hxx113
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/fp.s602
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/isdirectreturntype.cxx81
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/isdirectreturntype.hxx41
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/makefile.mk61
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/uno2cpp.cxx509
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/vtableslotcall.hxx35
-rw-r--r--bridges/source/cpp_uno/cc5_solaris_sparc64/vtableslotcall.s51
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/call.s268
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/cpp2uno.cxx490
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/except.cxx338
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/makefile.mk84
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_intel/uno2cpp.cxx444
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.cxx803
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/abi.hxx67
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/call.s93
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/cpp2uno.cxx541
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/except.cxx338
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/makefile.mk80
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_freebsd_x86-64/uno2cpp.cxx558
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/armhelper.s22
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/cpp2uno.cxx532
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/except.cxx341
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/makefile.mk84
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/share.hxx93
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/uno2cpp.cxx630
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/call.cxx142
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/cpp2uno.cxx725
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/except.cxx334
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/makefile.mk82
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/share.hxx99
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_hppa/uno2cpp.cxx521
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/call.s20
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/cpp2uno.cxx684
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/except.cxx287
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/makefile.mk83
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/share.hxx130
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_ia64/uno2cpp.cxx690
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/call.s274
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/cpp2uno.cxx489
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/except.cxx330
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/makefile.mk84
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx451
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/cpp2uno.cxx536
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/except.cxx334
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/makefile.mk80
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/share.hxx91
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_m68k/uno2cpp.cxx493
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_mips/cpp2uno.cxx803
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_mips/except.cxx325
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_mips/makefile.mk81
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_mips/share.hxx91
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_mips/uno2cpp.cxx597
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc/cpp2uno.cxx795
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc/except.cxx287
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc/makefile.mk80
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc/share.hxx91
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc/uno2cpp.cxx672
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc64/cpp2uno.cxx722
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc64/except.cxx287
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc64/makefile.mk79
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc64/share.hxx96
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_powerpc64/uno2cpp.cxx600
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/cpp2uno.cxx695
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/except.cxx287
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/makefile.mk77
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/share.hxx92
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390/uno2cpp.cxx635
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/cpp2uno.cxx657
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/except.cxx287
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/makefile.mk77
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/share.hxx98
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_s390x/uno2cpp.cxx537
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/call.s10
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/cpp2uno.cxx575
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/except.cxx328
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/makefile.mk81
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/share.hxx97
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_sparc/uno2cpp.cxx600
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/abi.cxx803
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/abi.hxx67
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/call.s96
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx520
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/except.cxx330
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/makefile.mk80
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx571
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/call.s327
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/cpp2uno.cxx519
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx329
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/makefile.mk79
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/share.hxx92
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/uno2cpp.cxx495
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/cpp2uno.cxx730
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/except.cxx286
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/makefile.mk78
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/share.hxx91
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_powerpc/uno2cpp.cxx634
-rw-r--r--bridges/source/cpp_uno/gcc3_netbsd_intel/cpp2uno.cxx563
-rw-r--r--bridges/source/cpp_uno/gcc3_netbsd_intel/except.cxx331
-rw-r--r--bridges/source/cpp_uno/gcc3_netbsd_intel/makefile.mk75
-rw-r--r--bridges/source/cpp_uno/gcc3_netbsd_intel/share.hxx86
-rw-r--r--bridges/source/cpp_uno/gcc3_netbsd_intel/uno2cpp.cxx433
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/cpp2uno.cxx525
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/defs/gcc3_uno.def915
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/except.cxx349
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/makefile.mk73
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_os2_intel/uno2cpp.cxx451
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/cpp2uno.cxx523
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/except.cxx329
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/makefile.mk73
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/share.hxx90
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_intel/uno2cpp.cxx427
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_sparc/cpp2uno.cxx564
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_sparc/except.cxx327
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_sparc/makefile.mk77
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_sparc/share.hxx97
-rw-r--r--bridges/source/cpp_uno/gcc3_solaris_sparc/uno2cpp.cxx595
-rw-r--r--bridges/source/cpp_uno/mingw_intel/call.s261
-rw-r--r--bridges/source/cpp_uno/mingw_intel/cpp2uno.cxx518
-rw-r--r--bridges/source/cpp_uno/mingw_intel/dllinit.cxx56
-rw-r--r--bridges/source/cpp_uno/mingw_intel/except.cxx314
-rw-r--r--bridges/source/cpp_uno/mingw_intel/makefile.mk94
-rw-r--r--bridges/source/cpp_uno/mingw_intel/share.hxx90
-rw-r--r--bridges/source/cpp_uno/mingw_intel/smallstruct.cxx79
-rw-r--r--bridges/source/cpp_uno/mingw_intel/smallstruct.hxx35
-rw-r--r--bridges/source/cpp_uno/mingw_intel/uno2cpp.cxx500
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/cpp2uno.cxx488
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/dllinit.cxx58
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/except.cxx632
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/makefile.mk83
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/msci.hxx57
-rw-r--r--bridges/source/cpp_uno/msvc_win32_intel/uno2cpp.cxx465
-rw-r--r--bridges/source/cpp_uno/shared/bridge.cxx226
-rw-r--r--bridges/source/cpp_uno/shared/component.cxx272
-rw-r--r--bridges/source/cpp_uno/shared/component.hxx39
-rw-r--r--bridges/source/cpp_uno/shared/cppinterfaceproxy.cxx205
-rw-r--r--bridges/source/cpp_uno/shared/guardedarray.hxx52
-rw-r--r--bridges/source/cpp_uno/shared/makefile.mk53
-rw-r--r--bridges/source/cpp_uno/shared/types.cxx126
-rw-r--r--bridges/source/cpp_uno/shared/unointerfaceproxy.cxx142
-rw-r--r--bridges/source/cpp_uno/shared/vtablefactory.cxx382
-rw-r--r--bridges/source/cpp_uno/shared/vtables.cxx154
-rw-r--r--bridges/source/jni_uno/java/com/sun/star/bridges/jni_uno/JNI_info_holder.java52
-rw-r--r--bridges/source/jni_uno/java/com/sun/star/bridges/jni_uno/JNI_proxy.java218
-rw-r--r--bridges/source/jni_uno/java/com/sun/star/bridges/jni_uno/makefile.mk53
-rw-r--r--bridges/source/jni_uno/java/com/sun/star/bridges/jni_uno/manifest1
-rw-r--r--bridges/source/jni_uno/java_uno.map27
-rw-r--r--bridges/source/jni_uno/jni_base.h292
-rw-r--r--bridges/source/jni_uno/jni_bridge.cxx569
-rw-r--r--bridges/source/jni_uno/jni_bridge.h124
-rw-r--r--bridges/source/jni_uno/jni_data.cxx2576
-rw-r--r--bridges/source/jni_uno/jni_helper.h162
-rw-r--r--bridges/source/jni_uno/jni_info.cxx996
-rw-r--r--bridges/source/jni_uno/jni_info.h375
-rw-r--r--bridges/source/jni_uno/jni_java2uno.cxx704
-rw-r--r--bridges/source/jni_uno/jni_uno2java.cxx873
-rw-r--r--bridges/source/jni_uno/makefile.mk85
-rw-r--r--bridges/source/jni_uno/nativethreadpool.cxx230
-rw-r--r--bridges/source/remote/context/context.cxx499
-rw-r--r--bridges/source/remote/context/exports.dxp5
-rw-r--r--bridges/source/remote/context/makefile.mk65
-rwxr-xr-xbridges/source/remote/context/rmcxt.map10
-rw-r--r--bridges/source/remote/idl/corba.idl88
-rw-r--r--bridges/source/remote/static/helper.cxx209
-rw-r--r--bridges/source/remote/static/makefile.mk61
-rw-r--r--bridges/source/remote/static/mapping.cxx218
-rw-r--r--bridges/source/remote/static/proxy.cxx338
-rw-r--r--bridges/source/remote/static/remote.cxx161
-rw-r--r--bridges/source/remote/static/remote_types.cxx96
-rw-r--r--bridges/source/remote/static/remote_types.hxx89
-rw-r--r--bridges/source/remote/static/stub.cxx336
-rw-r--r--bridges/source/remote/urp/makefile.mk78
-rw-r--r--bridges/source/remote/urp/urp_bridgeimpl.cxx250
-rw-r--r--bridges/source/remote/urp/urp_bridgeimpl.hxx133
-rw-r--r--bridges/source/remote/urp/urp_cache.h57
-rw-r--r--bridges/source/remote/urp/urp_cache.hxx160
-rw-r--r--bridges/source/remote/urp/urp_dispatch.cxx116
-rw-r--r--bridges/source/remote/urp/urp_dispatch.hxx78
-rw-r--r--bridges/source/remote/urp/urp_environment.cxx551
-rw-r--r--bridges/source/remote/urp/urp_job.cxx939
-rw-r--r--bridges/source/remote/urp/urp_job.hxx378
-rw-r--r--bridges/source/remote/urp/urp_log.cxx147
-rw-r--r--bridges/source/remote/urp/urp_log.hxx50
-rw-r--r--bridges/source/remote/urp/urp_marshal.cxx235
-rw-r--r--bridges/source/remote/urp/urp_marshal.hxx343
-rw-r--r--bridges/source/remote/urp/urp_marshal_decl.hxx106
-rw-r--r--bridges/source/remote/urp/urp_property.hxx93
-rw-r--r--bridges/source/remote/urp/urp_propertyobject.cxx793
-rw-r--r--bridges/source/remote/urp/urp_propertyobject.hxx108
-rw-r--r--bridges/source/remote/urp/urp_reader.cxx832
-rw-r--r--bridges/source/remote/urp/urp_reader.hxx78
-rw-r--r--bridges/source/remote/urp/urp_replycontainer.hxx75
-rw-r--r--bridges/source/remote/urp/urp_threadid.cxx48
-rw-r--r--bridges/source/remote/urp/urp_threadid.hxx59
-rw-r--r--bridges/source/remote/urp/urp_unmarshal.cxx707
-rw-r--r--bridges/source/remote/urp/urp_unmarshal.hxx280
-rw-r--r--bridges/source/remote/urp/urp_writer.cxx269
-rw-r--r--bridges/source/remote/urp/urp_writer.hxx83
-rw-r--r--bridges/test/com/sun/star/lib/TestBed.java232
-rw-r--r--bridges/test/com/sun/star/lib/makefile.mk36
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug107753_Test.java394
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug108825_Test.java163
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug110892_Test.java124
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug111153_Test.java103
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug114133_Test.java76
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug51323_Test.java84
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug92174_Test.java99
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug97697_Test.java105
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug98508_Test.idl37
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/Bug98508_Test.java104
-rwxr-xr-xbridges/test/com/sun/star/lib/uno/bridges/java_remote/MethodIdTest.java473
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/PolyStructTest.idl52
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/PolyStructTest.java260
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/StopMessageDispatcherTest.java108
-rw-r--r--bridges/test/com/sun/star/lib/uno/bridges/java_remote/makefile.mk51
-rw-r--r--bridges/test/inter_libs_exc/inter.cxx66
-rw-r--r--bridges/test/inter_libs_exc/makefile.mk80
-rw-r--r--bridges/test/inter_libs_exc/share.h7
-rw-r--r--bridges/test/inter_libs_exc/starter.cxx65
-rw-r--r--bridges/test/inter_libs_exc/starter.map7
-rw-r--r--bridges/test/inter_libs_exc/thrower.cxx48
-rw-r--r--bridges/test/inter_libs_exc/thrower.map7
-rw-r--r--bridges/test/java_uno/acquire/TestAcquire.java304
-rw-r--r--bridges/test/java_uno/acquire/makefile.mk117
-rw-r--r--bridges/test/java_uno/acquire/readme.txt21
-rw-r--r--bridges/test/java_uno/acquire/testacquire.cxx574
-rw-r--r--bridges/test/java_uno/acquire/testacquire.map8
-rw-r--r--bridges/test/java_uno/acquire/types.idl68
-rw-r--r--bridges/test/java_uno/any/TestAny.java2267
-rw-r--r--bridges/test/java_uno/any/TestJni.java48
-rw-r--r--bridges/test/java_uno/any/TestRemote.java64
-rw-r--r--bridges/test/java_uno/any/makefile.mk127
-rw-r--r--bridges/test/java_uno/any/test_javauno_any.map6
-rw-r--r--bridges/test/java_uno/any/transport.cxx108
-rw-r--r--bridges/test/java_uno/any/types.idl42
-rw-r--r--bridges/test/java_uno/equals/TestEquals.java1304
-rw-r--r--bridges/test/java_uno/equals/makefile.mk96
-rw-r--r--bridges/test/java_uno/equals/testequals.cxx232
-rw-r--r--bridges/test/java_uno/equals/testequals.map8
-rw-r--r--bridges/test/java_uno/equals/types.idl47
-rw-r--r--bridges/test/java_uno/nativethreadpool/Relay.java125
-rw-r--r--bridges/test/java_uno/nativethreadpool/makefile.mk121
-rw-r--r--bridges/test/java_uno/nativethreadpool/readme39
-rw-r--r--bridges/test/java_uno/nativethreadpool/relay.manifest2
-rw-r--r--bridges/test/java_uno/nativethreadpool/testnativethreadpoolclient.cxx184
-rw-r--r--bridges/test/java_uno/nativethreadpool/testnativethreadpoolserver.cxx146
-rw-r--r--bridges/test/java_uno/nativethreadpool/types.idl40
-rw-r--r--bridges/test/java_uno/nativethreadpool/version.map35
-rw-r--r--bridges/test/makefile.mk175
-rw-r--r--bridges/test/performance/makefile.mk62
-rw-r--r--bridges/test/performance/testperformance.cxx190
-rw-r--r--bridges/test/test_bridge.idl82
-rw-r--r--bridges/test/testclient.cxx247
-rw-r--r--bridges/test/testclient.java156
-rw-r--r--bridges/test/testcomp.cxx799
-rw-r--r--bridges/test/testcomp.h156
-rw-r--r--bridges/test/testoffice.cxx279
-rw-r--r--bridges/test/testsameprocess.cxx215
-rw-r--r--bridges/test/testserver.cxx253
-rw-r--r--bridges/unotypes/makefile.mk63
-rw-r--r--bridges/version.mk40
-rw-r--r--cairo/cairo-1.8.0.patch251
-rwxr-xr-xcairo/cairo/dummy_pkg_config3
-rw-r--r--cairo/cairo/makefile.mk202
-rw-r--r--cairo/pixman-0.12.0.patch25
-rw-r--r--cairo/pixman/makefile.mk162
-rw-r--r--cairo/prj/build.lst4
-rw-r--r--cairo/prj/d.lst12
-rw-r--r--canvas/inc/canvas/base/basemutexhelper.hxx69
-rw-r--r--canvas/inc/canvas/base/bitmapcanvasbase.hxx134
-rw-r--r--canvas/inc/canvas/base/bufferedgraphicdevicebase.hxx293
-rw-r--r--canvas/inc/canvas/base/cachedprimitivebase.hxx122
-rw-r--r--canvas/inc/canvas/base/canvasbase.hxx483
-rw-r--r--canvas/inc/canvas/base/canvascustomspritebase.hxx277
-rw-r--r--canvas/inc/canvas/base/canvascustomspritehelper.hxx293
-rw-r--r--canvas/inc/canvas/base/doublebitmapbase.hxx151
-rw-r--r--canvas/inc/canvas/base/floatbitmapbase.hxx155
-rw-r--r--canvas/inc/canvas/base/graphicdevicebase.hxx445
-rw-r--r--canvas/inc/canvas/base/integerbitmapbase.hxx151
-rw-r--r--canvas/inc/canvas/base/sprite.hxx119
-rw-r--r--canvas/inc/canvas/base/spritecanvasbase.hxx202
-rw-r--r--canvas/inc/canvas/base/spritesurface.hxx73
-rw-r--r--canvas/inc/canvas/canvastools.hxx670
-rw-r--r--canvas/inc/canvas/debug.hxx65
-rw-r--r--canvas/inc/canvas/elapsedtime.hxx182
-rw-r--r--canvas/inc/canvas/parametricpolypolygon.hxx172
-rw-r--r--canvas/inc/canvas/prioritybooster.hxx65
-rw-r--r--canvas/inc/canvas/propertysethelper.hxx161
-rw-r--r--canvas/inc/canvas/rendering/bitmap.hxx320
-rw-r--r--canvas/inc/canvas/rendering/icachedprimitive.hxx66
-rw-r--r--canvas/inc/canvas/rendering/icolorbuffer.hxx94
-rw-r--r--canvas/inc/canvas/rendering/irendermodule.hxx149
-rw-r--r--canvas/inc/canvas/rendering/isurface.hxx88
-rw-r--r--canvas/inc/canvas/rendering/isurfaceproxy.hxx113
-rw-r--r--canvas/inc/canvas/rendering/isurfaceproxymanager.hxx79
-rw-r--r--canvas/inc/canvas/spriteredrawmanager.hxx434
-rw-r--r--canvas/inc/canvas/vclwrapper.hxx149
-rw-r--r--canvas/inc/canvas/verbosetrace.hxx38
-rw-r--r--canvas/inc/canvas/verifyinput.hxx720
-rw-r--r--canvas/inc/makefile.mk47
-rw-r--r--canvas/inc/pch/precompiled_canvas.cxx29
-rw-r--r--canvas/inc/pch/precompiled_canvas.hxx32
-rw-r--r--canvas/overview.txt50
-rw-r--r--canvas/prj/build.lst11
-rw-r--r--canvas/prj/d.lst26
-rw-r--r--canvas/source/cairo/cairo_cachedbitmap.cxx90
-rw-r--r--canvas/source/cairo/cairo_cachedbitmap.hxx67
-rw-r--r--canvas/source/cairo/cairo_cairo.cxx64
-rw-r--r--canvas/source/cairo/cairo_cairo.hxx97
-rw-r--r--canvas/source/cairo/cairo_canvas.cxx195
-rw-r--r--canvas/source/cairo/cairo_canvas.hxx162
-rw-r--r--canvas/source/cairo/cairo_canvasbitmap.cxx286
-rw-r--r--canvas/source/cairo/cairo_canvasbitmap.hxx138
-rw-r--r--canvas/source/cairo/cairo_canvascustomsprite.cxx175
-rw-r--r--canvas/source/cairo/cairo_canvascustomsprite.hxx156
-rw-r--r--canvas/source/cairo/cairo_canvasfont.cxx193
-rw-r--r--canvas/source/cairo/cairo_canvasfont.hxx96
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx1882
-rw-r--r--canvas/source/cairo/cairo_canvashelper.hxx335
-rw-r--r--canvas/source/cairo/cairo_canvashelper_text.cxx398
-rw-r--r--canvas/source/cairo/cairo_canvashelper_texturefill.cxx144
-rw-r--r--canvas/source/cairo/cairo_devicehelper.cxx302
-rw-r--r--canvas/source/cairo/cairo_devicehelper.hxx143
-rw-r--r--canvas/source/cairo/cairo_quartz_cairo.cxx347
-rw-r--r--canvas/source/cairo/cairo_quartz_cairo.hxx73
-rw-r--r--canvas/source/cairo/cairo_repainttarget.hxx60
-rw-r--r--canvas/source/cairo/cairo_services.cxx83
-rw-r--r--canvas/source/cairo/cairo_sprite.hxx71
-rw-r--r--canvas/source/cairo/cairo_spritecanvas.cxx232
-rw-r--r--canvas/source/cairo/cairo_spritecanvas.hxx175
-rw-r--r--canvas/source/cairo/cairo_spritecanvashelper.cxx544
-rw-r--r--canvas/source/cairo/cairo_spritecanvashelper.hxx147
-rw-r--r--canvas/source/cairo/cairo_spritedevicehelper.cxx201
-rw-r--r--canvas/source/cairo/cairo_spritedevicehelper.hxx95
-rw-r--r--canvas/source/cairo/cairo_spritehelper.cxx183
-rw-r--r--canvas/source/cairo/cairo_spritehelper.hxx115
-rw-r--r--canvas/source/cairo/cairo_spritesurface.hxx70
-rw-r--r--canvas/source/cairo/cairo_surfaceprovider.hxx82
-rw-r--r--canvas/source/cairo/cairo_textlayout.cxx656
-rw-r--r--canvas/source/cairo/cairo_textlayout.hxx120
-rw-r--r--canvas/source/cairo/cairo_win32_cairo.cxx325
-rw-r--r--canvas/source/cairo/cairo_win32_cairo.hxx70
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.cxx352
-rw-r--r--canvas/source/cairo/cairo_xlib_cairo.hxx106
-rw-r--r--canvas/source/cairo/exports.dxp3
-rw-r--r--canvas/source/cairo/exports.map8
-rw-r--r--canvas/source/cairo/makefile.mk132
-rwxr-xr-xcanvas/source/directx/dx_5rm.cxx2283
-rwxr-xr-xcanvas/source/directx/dx_9rm.cxx1363
-rwxr-xr-xcanvas/source/directx/dx_bitmap.cxx219
-rwxr-xr-xcanvas/source/directx/dx_bitmap.hxx93
-rwxr-xr-xcanvas/source/directx/dx_bitmapcanvashelper.cxx246
-rwxr-xr-xcanvas/source/directx/dx_bitmapcanvashelper.hxx136
-rw-r--r--canvas/source/directx/dx_bitmapprovider.hxx45
-rw-r--r--canvas/source/directx/dx_canvas.cxx255
-rw-r--r--canvas/source/directx/dx_canvas.hxx176
-rwxr-xr-xcanvas/source/directx/dx_canvasbitmap.cxx277
-rwxr-xr-xcanvas/source/directx/dx_canvasbitmap.hxx104
-rwxr-xr-xcanvas/source/directx/dx_canvascustomsprite.cxx123
-rwxr-xr-xcanvas/source/directx/dx_canvascustomsprite.hxx139
-rwxr-xr-xcanvas/source/directx/dx_canvasfont.cxx180
-rwxr-xr-xcanvas/source/directx/dx_canvasfont.hxx104
-rwxr-xr-xcanvas/source/directx/dx_canvashelper.cxx814
-rwxr-xr-xcanvas/source/directx/dx_canvashelper.hxx257
-rwxr-xr-xcanvas/source/directx/dx_canvashelper_texturefill.cxx737
-rwxr-xr-xcanvas/source/directx/dx_config.cxx176
-rw-r--r--canvas/source/directx/dx_config.hxx89
-rwxr-xr-xcanvas/source/directx/dx_devicehelper.cxx236
-rwxr-xr-xcanvas/source/directx/dx_devicehelper.hxx121
-rwxr-xr-xcanvas/source/directx/dx_gdiplususer.cxx81
-rwxr-xr-xcanvas/source/directx/dx_gdiplususer.hxx55
-rw-r--r--canvas/source/directx/dx_graphicsprovider.hxx53
-rw-r--r--canvas/source/directx/dx_ibitmap.hxx70
-rwxr-xr-xcanvas/source/directx/dx_impltools.cxx668
-rwxr-xr-xcanvas/source/directx/dx_impltools.hxx142
-rwxr-xr-xcanvas/source/directx/dx_linepolypolygon.cxx65
-rwxr-xr-xcanvas/source/directx/dx_linepolypolygon.hxx56
-rwxr-xr-xcanvas/source/directx/dx_rendermodule.hxx90
-rwxr-xr-xcanvas/source/directx/dx_sprite.hxx51
-rwxr-xr-xcanvas/source/directx/dx_spritecanvas.cxx211
-rwxr-xr-xcanvas/source/directx/dx_spritecanvas.hxx156
-rwxr-xr-xcanvas/source/directx/dx_spritecanvashelper.cxx382
-rwxr-xr-xcanvas/source/directx/dx_spritecanvashelper.hxx161
-rw-r--r--canvas/source/directx/dx_spritedevicehelper.cxx259
-rw-r--r--canvas/source/directx/dx_spritedevicehelper.hxx114
-rwxr-xr-xcanvas/source/directx/dx_spritehelper.cxx216
-rwxr-xr-xcanvas/source/directx/dx_spritehelper.hxx111
-rw-r--r--canvas/source/directx/dx_surfacebitmap.cxx804
-rw-r--r--canvas/source/directx/dx_surfacebitmap.hxx147
-rwxr-xr-xcanvas/source/directx/dx_surfacegraphics.cxx85
-rwxr-xr-xcanvas/source/directx/dx_surfacegraphics.hxx45
-rwxr-xr-xcanvas/source/directx/dx_textlayout.cxx280
-rwxr-xr-xcanvas/source/directx/dx_textlayout.hxx115
-rwxr-xr-xcanvas/source/directx/dx_textlayout_drawhelper.cxx312
-rwxr-xr-xcanvas/source/directx/dx_textlayout_drawhelper.hxx86
-rwxr-xr-xcanvas/source/directx/dx_vcltools.cxx523
-rwxr-xr-xcanvas/source/directx/dx_vcltools.hxx64
-rwxr-xr-xcanvas/source/directx/dx_winstuff.hxx219
-rw-r--r--canvas/source/directx/exports.dxp3
-rw-r--r--canvas/source/directx/makefile.mk219
-rw-r--r--canvas/source/factory/canvasfactory.map8
-rw-r--r--canvas/source/factory/cf_service.cxx553
-rw-r--r--canvas/source/factory/makefile.mk56
-rw-r--r--canvas/source/java/BackBuffer.java112
-rw-r--r--canvas/source/java/BezierPolyPolygon.java151
-rw-r--r--canvas/source/java/BitmapCanvas.java136
-rw-r--r--canvas/source/java/BufferedGraphics2D.java600
-rw-r--r--canvas/source/java/CanvasBase.java341
-rw-r--r--canvas/source/java/CanvasBitmap.java252
-rw-r--r--canvas/source/java/CanvasClonedSprite.java185
-rw-r--r--canvas/source/java/CanvasCustomSprite.java204
-rw-r--r--canvas/source/java/CanvasFont.java116
-rw-r--r--canvas/source/java/CanvasGraphicDevice.java222
-rw-r--r--canvas/source/java/CanvasSprite.java308
-rw-r--r--canvas/source/java/CanvasTest_perftest.java676
-rw-r--r--canvas/source/java/CanvasUtils.java627
-rw-r--r--canvas/source/java/JavaCanvas.java675
-rw-r--r--canvas/source/java/LinePolyPolygon.java192
-rw-r--r--canvas/source/java/SpriteBase.java34
-rw-r--r--canvas/source/java/SpriteRep.java175
-rw-r--r--canvas/source/java/SpriteRunner.java200
-rw-r--r--canvas/source/java/TextLayout.java205
-rw-r--r--canvas/source/java/aqua/WindowAdapter.java202
-rw-r--r--canvas/source/java/java_Service.java118
-rw-r--r--canvas/source/java/makefile.mk93
-rw-r--r--canvas/source/java/manifest1
-rw-r--r--canvas/source/java/perftest/PerfTest.java314
-rw-r--r--canvas/source/java/perftest/WindowAdapter.java197
-rw-r--r--canvas/source/java/perftest/makefile.mk55
-rw-r--r--canvas/source/java/perftest/manifest1
-rw-r--r--canvas/source/java/win/WindowAdapter.java199
-rw-r--r--canvas/source/java/x11/WindowAdapter.java197
-rw-r--r--canvas/source/null/exports.dxp3
-rw-r--r--canvas/source/null/exports.map8
-rw-r--r--canvas/source/null/makefile.mk70
-rw-r--r--canvas/source/null/null_canvasbitmap.cxx84
-rw-r--r--canvas/source/null/null_canvasbitmap.hxx92
-rw-r--r--canvas/source/null/null_canvascustomsprite.cxx105
-rw-r--r--canvas/source/null/null_canvascustomsprite.hxx136
-rw-r--r--canvas/source/null/null_canvasfont.cxx121
-rw-r--r--canvas/source/null/null_canvasfont.hxx95
-rw-r--r--canvas/source/null/null_canvashelper.cxx336
-rw-r--r--canvas/source/null/null_canvashelper.hxx273
-rw-r--r--canvas/source/null/null_devicehelper.cxx239
-rw-r--r--canvas/source/null/null_devicehelper.hxx107
-rw-r--r--canvas/source/null/null_spritecanvas.cxx166
-rw-r--r--canvas/source/null/null_spritecanvas.hxx149
-rw-r--r--canvas/source/null/null_spritecanvashelper.cxx131
-rw-r--r--canvas/source/null/null_spritecanvashelper.hxx136
-rw-r--r--canvas/source/null/null_spritehelper.cxx97
-rw-r--r--canvas/source/null/null_spritehelper.hxx105
-rw-r--r--canvas/source/null/null_textlayout.cxx261
-rw-r--r--canvas/source/null/null_textlayout.hxx107
-rw-r--r--canvas/source/null/null_usagecounter.hxx76
-rw-r--r--canvas/source/null/sprite.hxx47
-rw-r--r--canvas/source/simplecanvas/exports.dxp3
-rw-r--r--canvas/source/simplecanvas/exports.map8
-rw-r--r--canvas/source/simplecanvas/makefile.mk63
-rw-r--r--canvas/source/simplecanvas/simplecanvasimpl.cxx400
-rw-r--r--canvas/source/tools/bitmap.cxx838
-rw-r--r--canvas/source/tools/cachedprimitivebase.cxx112
-rw-r--r--canvas/source/tools/canvascustomspritehelper.cxx496
-rw-r--r--canvas/source/tools/canvastools.cxx996
-rw-r--r--canvas/source/tools/canvastools.flt4
-rw-r--r--canvas/source/tools/elapsedtime.cxx224
-rw-r--r--canvas/source/tools/image.cxx2394
-rw-r--r--canvas/source/tools/image.hxx298
-rw-r--r--canvas/source/tools/image_sysprereq.h102
-rw-r--r--canvas/source/tools/imagecachedprimitive.hxx57
-rw-r--r--canvas/source/tools/makefile.mk101
-rw-r--r--canvas/source/tools/page.cxx152
-rw-r--r--canvas/source/tools/page.hxx157
-rw-r--r--canvas/source/tools/pagemanager.cxx216
-rw-r--r--canvas/source/tools/pagemanager.hxx94
-rw-r--r--canvas/source/tools/parametricpolypolygon.cxx232
-rw-r--r--canvas/source/tools/prioritybooster.cxx83
-rw-r--r--canvas/source/tools/propertysethelper.cxx187
-rw-r--r--canvas/source/tools/spriteredrawmanager.cxx520
-rw-r--r--canvas/source/tools/surface.cxx496
-rw-r--r--canvas/source/tools/surface.hxx162
-rw-r--r--canvas/source/tools/surfaceproxy.cxx182
-rw-r--r--canvas/source/tools/surfaceproxy.hxx134
-rw-r--r--canvas/source/tools/surfaceproxymanager.cxx86
-rw-r--r--canvas/source/tools/surfacerect.hxx135
-rw-r--r--canvas/source/tools/verifyinput.cxx926
-rw-r--r--canvas/source/vcl/backbuffer.cxx71
-rw-r--r--canvas/source/vcl/backbuffer.hxx67
-rw-r--r--canvas/source/vcl/bitmapbackbuffer.cxx165
-rw-r--r--canvas/source/vcl/bitmapbackbuffer.hxx104
-rw-r--r--canvas/source/vcl/cachedbitmap.cxx104
-rw-r--r--canvas/source/vcl/cachedbitmap.hxx78
-rw-r--r--canvas/source/vcl/canvas.cxx161
-rw-r--r--canvas/source/vcl/canvas.hxx132
-rw-r--r--canvas/source/vcl/canvasbitmap.cxx144
-rw-r--r--canvas/source/vcl/canvasbitmap.hxx129
-rw-r--r--canvas/source/vcl/canvasbitmaphelper.cxx567
-rw-r--r--canvas/source/vcl/canvasbitmaphelper.hxx129
-rw-r--r--canvas/source/vcl/canvascustomsprite.cxx197
-rw-r--r--canvas/source/vcl/canvascustomsprite.hxx133
-rw-r--r--canvas/source/vcl/canvasfont.cxx183
-rw-r--r--canvas/source/vcl/canvasfont.hxx100
-rw-r--r--canvas/source/vcl/canvashelper.cxx1428
-rw-r--r--canvas/source/vcl/canvashelper.hxx344
-rw-r--r--canvas/source/vcl/canvashelper_texturefill.cxx1359
-rw-r--r--canvas/source/vcl/devicehelper.cxx242
-rw-r--r--canvas/source/vcl/devicehelper.hxx103
-rw-r--r--canvas/source/vcl/exports.dxp3
-rw-r--r--canvas/source/vcl/exports.map8
-rw-r--r--canvas/source/vcl/impltools.cxx544
-rw-r--r--canvas/source/vcl/impltools.hxx201
-rw-r--r--canvas/source/vcl/makefile.mk85
-rw-r--r--canvas/source/vcl/outdevprovider.hxx61
-rw-r--r--canvas/source/vcl/repainttarget.hxx63
-rw-r--r--canvas/source/vcl/services.cxx90
-rw-r--r--canvas/source/vcl/sprite.hxx71
-rw-r--r--canvas/source/vcl/spritecanvas.cxx178
-rw-r--r--canvas/source/vcl/spritecanvas.hxx173
-rw-r--r--canvas/source/vcl/spritecanvashelper.cxx718
-rw-r--r--canvas/source/vcl/spritecanvashelper.hxx179
-rw-r--r--canvas/source/vcl/spritedevicehelper.cxx158
-rw-r--r--canvas/source/vcl/spritedevicehelper.hxx82
-rw-r--r--canvas/source/vcl/spritehelper.cxx443
-rw-r--r--canvas/source/vcl/spritehelper.hxx121
-rw-r--r--canvas/source/vcl/textlayout.cxx496
-rw-r--r--canvas/source/vcl/textlayout.hxx115
-rw-r--r--canvas/source/vcl/windowoutdevholder.cxx57
-rw-r--r--canvas/source/vcl/windowoutdevholder.hxx66
-rw-r--r--canvas/workben/canvasdemo.cxx712
-rw-r--r--canvas/workben/makefile.mk37
-rw-r--r--chart2/chartview.pmk30
-rw-r--r--chart2/inc/makefile.mk47
-rw-r--r--chart2/inc/pch/precompiled_chart2.cxx29
-rw-r--r--chart2/inc/pch/precompiled_chart2.hxx275
-rw-r--r--chart2/prj/build.lst26
-rw-r--r--chart2/prj/d.lst26
-rw-r--r--chart2/qa/TestCaseOldAPI.java1033
-rw-r--r--chart2/qa/data.chd14
-rw-r--r--chart2/qa/makefile.mk70
-rw-r--r--chart2/qa/unoapi/knownissues.xcl63
-rw-r--r--chart2/qa/unoapi/makefile.mk42
-rw-r--r--chart2/qa/unoapi/sch.sce26
-rw-r--r--chart2/qa/unoapi/testdocuments/TransparencyChart.sxsbin0 -> 10846 bytes
-rw-r--r--chart2/qa/unoapi/testdocuments/emptyChart.sdsbin0 -> 44544 bytes
-rw-r--r--chart2/qa/unoapi/testdocuments/space-metal.jpgbin0 -> 4313 bytes
-rw-r--r--chart2/source/controller/accessibility/AccStatisticsObject.cxx81
-rw-r--r--chart2/source/controller/accessibility/AccStatisticsObject.hxx68
-rw-r--r--chart2/source/controller/accessibility/AccessibleBase.cxx1010
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartElement.cxx332
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartElement.hxx142
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartShape.cxx289
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartShape.hxx104
-rw-r--r--chart2/source/controller/accessibility/AccessibleChartView.cxx416
-rw-r--r--chart2/source/controller/accessibility/AccessibleTextHelper.cxx203
-rw-r--r--chart2/source/controller/accessibility/AccessibleViewForwarder.cxx116
-rw-r--r--chart2/source/controller/accessibility/AccessibleViewForwarder.hxx65
-rw-r--r--chart2/source/controller/accessibility/ChartElementFactory.cxx145
-rw-r--r--chart2/source/controller/accessibility/ChartElementFactory.hxx48
-rw-r--r--chart2/source/controller/accessibility/makefile.mk54
-rw-r--r--chart2/source/controller/chartapiwrapper/AreaWrapper.cxx207
-rw-r--r--chart2/source/controller/chartapiwrapper/AreaWrapper.hxx105
-rw-r--r--chart2/source/controller/chartapiwrapper/AxisWrapper.cxx596
-rw-r--r--chart2/source/controller/chartapiwrapper/AxisWrapper.hxx140
-rw-r--r--chart2/source/controller/chartapiwrapper/Chart2ModelContact.cxx300
-rw-r--r--chart2/source/controller/chartapiwrapper/Chart2ModelContact.hxx159
-rw-r--r--chart2/source/controller/chartapiwrapper/ChartDataWrapper.cxx627
-rw-r--r--chart2/source/controller/chartapiwrapper/ChartDataWrapper.hxx149
-rw-r--r--chart2/source/controller/chartapiwrapper/ChartDocumentWrapper.cxx1578
-rw-r--r--chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.cxx887
-rw-r--r--chart2/source/controller/chartapiwrapper/DataSeriesPointWrapper.hxx160
-rw-r--r--chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx2113
-rw-r--r--chart2/source/controller/chartapiwrapper/DiagramWrapper.hxx305
-rw-r--r--chart2/source/controller/chartapiwrapper/GridWrapper.cxx211
-rw-r--r--chart2/source/controller/chartapiwrapper/GridWrapper.hxx103
-rw-r--r--chart2/source/controller/chartapiwrapper/LegendWrapper.cxx459
-rw-r--r--chart2/source/controller/chartapiwrapper/LegendWrapper.hxx113
-rw-r--r--chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.cxx435
-rw-r--r--chart2/source/controller/chartapiwrapper/MinMaxLineWrapper.hxx139
-rw-r--r--chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx48
-rw-r--r--chart2/source/controller/chartapiwrapper/TitleWrapper.cxx534
-rw-r--r--chart2/source/controller/chartapiwrapper/TitleWrapper.hxx133
-rw-r--r--chart2/source/controller/chartapiwrapper/UpDownBarWrapper.cxx402
-rw-r--r--chart2/source/controller/chartapiwrapper/UpDownBarWrapper.hxx137
-rw-r--r--chart2/source/controller/chartapiwrapper/WallFloorWrapper.cxx192
-rw-r--r--chart2/source/controller/chartapiwrapper/WallFloorWrapper.hxx89
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAddInProperty.cxx158
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAddInProperty.hxx111
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAutomaticPositionProperties.cxx156
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAutomaticPositionProperties.hxx49
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.cxx448
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedAxisAndGridExistenceProperties.hxx76
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedCharacterHeightProperty.cxx172
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedCharacterHeightProperty.hxx102
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedDataCaptionProperties.cxx193
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedDataCaptionProperties.hxx61
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedGapwidthProperty.cxx201
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedGapwidthProperty.hxx87
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedNumberFormatProperty.cxx199
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedNumberFormatProperty.hxx92
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedScaleProperty.cxx511
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedScaleProperty.hxx92
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedScaleTextProperties.cxx167
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedScaleTextProperties.hxx54
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSceneProperty.cxx131
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSceneProperty.hxx82
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSeriesAreaOrLineProperty.cxx70
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSeriesAreaOrLineProperty.hxx60
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSeriesOrDiagramProperty.hxx189
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSplineProperties.cxx287
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSplineProperties.hxx59
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedStatisticProperties.cxx1155
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedStatisticProperties.hxx57
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedStockProperties.cxx330
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedStockProperties.hxx59
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.cxx593
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedSymbolProperties.hxx61
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedTextRotationProperty.cxx87
-rw-r--r--chart2/source/controller/chartapiwrapper/WrappedTextRotationProperty.hxx58
-rw-r--r--chart2/source/controller/chartapiwrapper/makefile.mk77
-rw-r--r--chart2/source/controller/controller.map8
-rw-r--r--chart2/source/controller/dialogs/Bitmaps.hrc216
-rw-r--r--chart2/source/controller/dialogs/Bitmaps.src543
-rw-r--r--chart2/source/controller/dialogs/Bitmaps_HC.hrc213
-rw-r--r--chart2/source/controller/dialogs/Bitmaps_HC.src543
-rw-r--r--chart2/source/controller/dialogs/ChangingResource.cxx52
-rw-r--r--chart2/source/controller/dialogs/ChangingResource.hxx62
-rw-r--r--chart2/source/controller/dialogs/ChartTypeDialogController.cxx1285
-rw-r--r--chart2/source/controller/dialogs/ChartTypeDialogController.hxx317
-rw-r--r--chart2/source/controller/dialogs/ChartTypeTemplateProvider.hxx52
-rw-r--r--chart2/source/controller/dialogs/CommonResources.hrc79
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.cxx1364
-rw-r--r--chart2/source/controller/dialogs/DataBrowser.hxx204
-rw-r--r--chart2/source/controller/dialogs/DataBrowserModel.cxx1000
-rw-r--r--chart2/source/controller/dialogs/DataBrowserModel.hxx181
-rw-r--r--chart2/source/controller/dialogs/DialogModel.cxx838
-rw-r--r--chart2/source/controller/dialogs/DialogModel.hxx197
-rw-r--r--chart2/source/controller/dialogs/ObjectNameProvider.cxx852
-rw-r--r--chart2/source/controller/dialogs/RangeEdit.cxx70
-rw-r--r--chart2/source/controller/dialogs/RangeSelectionButton.cxx56
-rw-r--r--chart2/source/controller/dialogs/RangeSelectionHelper.cxx198
-rw-r--r--chart2/source/controller/dialogs/RangeSelectionListener.cxx75
-rw-r--r--chart2/source/controller/dialogs/ResourceIds.hrc86
-rw-r--r--chart2/source/controller/dialogs/Strings.src608
-rw-r--r--chart2/source/controller/dialogs/Strings_AdditionalControls.src57
-rw-r--r--chart2/source/controller/dialogs/Strings_ChartTypes.src153
-rw-r--r--chart2/source/controller/dialogs/Strings_Scale.src44
-rw-r--r--chart2/source/controller/dialogs/Strings_Statistic.src72
-rw-r--r--chart2/source/controller/dialogs/TabPages.hrc173
-rw-r--r--chart2/source/controller/dialogs/TextDirectionListBox.cxx60
-rw-r--r--chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx70
-rw-r--r--chart2/source/controller/dialogs/TitleDialogData.cxx124
-rw-r--r--chart2/source/controller/dialogs/dlg_ChartType.cxx78
-rw-r--r--chart2/source/controller/dialogs/dlg_ChartType.hrc35
-rw-r--r--chart2/source/controller/dialogs/dlg_ChartType.src57
-rw-r--r--chart2/source/controller/dialogs/dlg_ChartType_UNO.cxx139
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard.cxx267
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard.hrc32
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard.src39
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard_UNO.cxx433
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.cxx363
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.hrc47
-rw-r--r--chart2/source/controller/dialogs/dlg_DataEditor.src148
-rw-r--r--chart2/source/controller/dialogs/dlg_DataSource.cxx253
-rw-r--r--chart2/source/controller/dialogs/dlg_DataSource.hrc33
-rw-r--r--chart2/source/controller/dialogs/dlg_DataSource.src48
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertAxis_Grid.cxx164
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertAxis_Grid.hrc46
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertAxis_Grid.src99
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertDataLabel.cxx74
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertDataLabel.hrc32
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertDataLabel.src42
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertErrorBars.cxx134
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertErrorBars.hrc31
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertErrorBars.src43
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertLegend.cxx78
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertLegend.hrc31
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertLegend.src47
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTitle.cxx67
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTitle.hrc31
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTitle.src42
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTrendline.cxx114
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTrendline.hrc31
-rw-r--r--chart2/source/controller/dialogs/dlg_InsertTrendline.src48
-rw-r--r--chart2/source/controller/dialogs/dlg_NumberFormat.cxx86
-rw-r--r--chart2/source/controller/dialogs/dlg_NumberFormat.hxx54
-rw-r--r--chart2/source/controller/dialogs/dlg_ObjectProperties.cxx652
-rw-r--r--chart2/source/controller/dialogs/dlg_ObjectProperties.src39
-rw-r--r--chart2/source/controller/dialogs/dlg_ShapeFont.cxx92
-rw-r--r--chart2/source/controller/dialogs/dlg_ShapeFont.src62
-rw-r--r--chart2/source/controller/dialogs/dlg_ShapeParagraph.cxx93
-rw-r--r--chart2/source/controller/dialogs/dlg_ShapeParagraph.src67
-rw-r--r--chart2/source/controller/dialogs/dlg_View3D.cxx118
-rw-r--r--chart2/source/controller/dialogs/dlg_View3D.hrc40
-rw-r--r--chart2/source/controller/dialogs/dlg_View3D.src48
-rw-r--r--chart2/source/controller/dialogs/hidother.src116
-rw-r--r--chart2/source/controller/dialogs/makefile.mk205
-rw-r--r--chart2/source/controller/dialogs/res_BarGeometry.cxx112
-rw-r--r--chart2/source/controller/dialogs/res_BarGeometry.hxx67
-rw-r--r--chart2/source/controller/dialogs/res_BarGeometry.src49
-rw-r--r--chart2/source/controller/dialogs/res_DataLabel.cxx419
-rw-r--r--chart2/source/controller/dialogs/res_DataLabel.hxx104
-rw-r--r--chart2/source/controller/dialogs/res_DataLabel_IDs.hrc45
-rw-r--r--chart2/source/controller/dialogs/res_DataLabel_tmpl.hrc169
-rw-r--r--chart2/source/controller/dialogs/res_ErrorBar.cxx770
-rw-r--r--chart2/source/controller/dialogs/res_ErrorBar_IDs.hrc63
-rw-r--r--chart2/source/controller/dialogs/res_ErrorBar_tmpl.hrc228
-rw-r--r--chart2/source/controller/dialogs/res_LegendPosition.cxx265
-rw-r--r--chart2/source/controller/dialogs/res_LegendPosition.hxx90
-rw-r--r--chart2/source/controller/dialogs/res_LegendPosition_IDs.hrc32
-rw-r--r--chart2/source/controller/dialogs/res_LegendPosition_tmpl.hrc80
-rw-r--r--chart2/source/controller/dialogs/res_SecondaryAxisCheckBoxes_tmpl.hrc59
-rw-r--r--chart2/source/controller/dialogs/res_TextSeparator.cxx155
-rw-r--r--chart2/source/controller/dialogs/res_TextSeparator.hxx75
-rw-r--r--chart2/source/controller/dialogs/res_TextSeparator.src49
-rw-r--r--chart2/source/controller/dialogs/res_Titles.cxx224
-rw-r--r--chart2/source/controller/dialogs/res_Titles.hrc47
-rw-r--r--chart2/source/controller/dialogs/res_Titles.hxx77
-rw-r--r--chart2/source/controller/dialogs/res_Titlesx_tmpl.hrc149
-rw-r--r--chart2/source/controller/dialogs/res_Trendline.cxx282
-rw-r--r--chart2/source/controller/dialogs/res_Trendline.hxx83
-rw-r--r--chart2/source/controller/dialogs/res_Trendline_IDs.hrc44
-rw-r--r--chart2/source/controller/dialogs/res_Trendline_tmpl.hrc123
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneAppearance.cxx363
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneAppearance.hrc38
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneAppearance.hxx99
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneAppearance.src98
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneGeometry.cxx296
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneGeometry.hrc40
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneGeometry.hxx112
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneGeometry.src147
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx650
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.hrc46
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx145
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.src162
-rw-r--r--chart2/source/controller/dialogs/tp_AxisLabel.cxx323
-rw-r--r--chart2/source/controller/dialogs/tp_AxisLabel.hxx99
-rw-r--r--chart2/source/controller/dialogs/tp_AxisLabel.src186
-rw-r--r--chart2/source/controller/dialogs/tp_AxisPositions.cxx498
-rw-r--r--chart2/source/controller/dialogs/tp_AxisPositions.hxx112
-rw-r--r--chart2/source/controller/dialogs/tp_AxisPositions.src292
-rw-r--r--chart2/source/controller/dialogs/tp_ChartType.cxx1163
-rw-r--r--chart2/source/controller/dialogs/tp_ChartType.hrc62
-rw-r--r--chart2/source/controller/dialogs/tp_ChartType.hxx125
-rw-r--r--chart2/source/controller/dialogs/tp_ChartType.src259
-rw-r--r--chart2/source/controller/dialogs/tp_DataLabel.cxx74
-rw-r--r--chart2/source/controller/dialogs/tp_DataLabel.hxx64
-rw-r--r--chart2/source/controller/dialogs/tp_DataLabel.src42
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.cxx1076
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.hrc50
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.hxx179
-rw-r--r--chart2/source/controller/dialogs/tp_DataSource.src171
-rw-r--r--chart2/source/controller/dialogs/tp_DataSourceControls.cxx57
-rw-r--r--chart2/source/controller/dialogs/tp_DataSourceControls.hxx70
-rw-r--r--chart2/source/controller/dialogs/tp_ErrorBars.cxx100
-rw-r--r--chart2/source/controller/dialogs/tp_ErrorBars.hxx65
-rw-r--r--chart2/source/controller/dialogs/tp_ErrorBars.src38
-rw-r--r--chart2/source/controller/dialogs/tp_LegendPosition.cxx88
-rw-r--r--chart2/source/controller/dialogs/tp_LegendPosition.hxx69
-rw-r--r--chart2/source/controller/dialogs/tp_LegendPosition.src65
-rw-r--r--chart2/source/controller/dialogs/tp_Location.cxx71
-rw-r--r--chart2/source/controller/dialogs/tp_Location.hrc32
-rw-r--r--chart2/source/controller/dialogs/tp_Location.hxx76
-rw-r--r--chart2/source/controller/dialogs/tp_Location.src73
-rw-r--r--chart2/source/controller/dialogs/tp_PointGeometry.cxx104
-rw-r--r--chart2/source/controller/dialogs/tp_PointGeometry.hxx58
-rw-r--r--chart2/source/controller/dialogs/tp_PointGeometry.src36
-rw-r--r--chart2/source/controller/dialogs/tp_PolarOptions.cxx126
-rw-r--r--chart2/source/controller/dialogs/tp_PolarOptions.hrc40
-rw-r--r--chart2/source/controller/dialogs/tp_PolarOptions.hxx67
-rw-r--r--chart2/source/controller/dialogs/tp_PolarOptions.src87
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.cxx414
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.hrc40
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.hxx124
-rw-r--r--chart2/source/controller/dialogs/tp_RangeChooser.src94
-rw-r--r--chart2/source/controller/dialogs/tp_Scale.cxx518
-rw-r--r--chart2/source/controller/dialogs/tp_Scale.hxx126
-rw-r--r--chart2/source/controller/dialogs/tp_Scale.src190
-rw-r--r--chart2/source/controller/dialogs/tp_SeriesToAxis.cxx313
-rw-r--r--chart2/source/controller/dialogs/tp_SeriesToAxis.hrc45
-rw-r--r--chart2/source/controller/dialogs/tp_SeriesToAxis.hxx95
-rw-r--r--chart2/source/controller/dialogs/tp_SeriesToAxis.src176
-rw-r--r--chart2/source/controller/dialogs/tp_TitleRotation.cxx126
-rw-r--r--chart2/source/controller/dialogs/tp_TitleRotation.hxx69
-rw-r--r--chart2/source/controller/dialogs/tp_TitleRotation.src93
-rw-r--r--chart2/source/controller/dialogs/tp_Trendline.cxx77
-rw-r--r--chart2/source/controller/dialogs/tp_Trendline.hxx59
-rw-r--r--chart2/source/controller/dialogs/tp_Trendline.src38
-rw-r--r--chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.cxx187
-rw-r--r--chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.hrc50
-rw-r--r--chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.hxx93
-rw-r--r--chart2/source/controller/dialogs/tp_Wizard_TitlesAndObjects.src92
-rw-r--r--chart2/source/controller/drawinglayer/DrawViewWrapper.cxx436
-rw-r--r--chart2/source/controller/drawinglayer/ViewElementListProvider.cxx274
-rw-r--r--chart2/source/controller/drawinglayer/makefile.mk49
-rw-r--r--chart2/source/controller/inc/AccessibleBase.hxx379
-rw-r--r--chart2/source/controller/inc/AccessibleChartView.hxx155
-rw-r--r--chart2/source/controller/inc/AccessibleTextHelper.hxx113
-rw-r--r--chart2/source/controller/inc/AxisItemConverter.hxx92
-rw-r--r--chart2/source/controller/inc/CharacterPropertyItemConverter.hxx84
-rw-r--r--chart2/source/controller/inc/ChartDocumentWrapper.hxx235
-rw-r--r--chart2/source/controller/inc/ChartRenderer.hxx76
-rw-r--r--chart2/source/controller/inc/ConfigurationAccess.hxx59
-rw-r--r--chart2/source/controller/inc/DataPointItemConverter.hxx110
-rw-r--r--chart2/source/controller/inc/DrawViewWrapper.hxx112
-rwxr-xr-xchart2/source/controller/inc/ErrorBarItemConverter.hxx84
-rw-r--r--chart2/source/controller/inc/GraphicPropertyItemConverter.hxx85
-rw-r--r--chart2/source/controller/inc/HelpIds.hrc182
-rw-r--r--chart2/source/controller/inc/ItemConverter.hxx215
-rw-r--r--chart2/source/controller/inc/ItemPropertyMap.hxx90
-rw-r--r--chart2/source/controller/inc/LegendItemConverter.hxx79
-rw-r--r--chart2/source/controller/inc/MenuResIds.hrc41
-rw-r--r--chart2/source/controller/inc/MultipleChartConverters.hxx130
-rw-r--r--chart2/source/controller/inc/MultipleItemConverter.hxx60
-rw-r--r--chart2/source/controller/inc/ObjectHierarchy.hxx120
-rw-r--r--chart2/source/controller/inc/ObjectNameProvider.hxx87
-rw-r--r--chart2/source/controller/inc/PositionAndSizeHelper.hxx61
-rwxr-xr-xchart2/source/controller/inc/RangeEdit.hxx56
-rw-r--r--chart2/source/controller/inc/RangeSelectionButton.hxx55
-rwxr-xr-xchart2/source/controller/inc/RangeSelectionHelper.hxx87
-rw-r--r--chart2/source/controller/inc/RangeSelectionListener.hxx79
-rw-r--r--chart2/source/controller/inc/RegressionCurveItemConverter.hxx82
-rw-r--r--chart2/source/controller/inc/RegressionEquationItemConverter.hxx83
-rw-r--r--chart2/source/controller/inc/SchSlotIds.hxx234
-rw-r--r--chart2/source/controller/inc/SeriesOptionsItemConverter.hxx102
-rw-r--r--chart2/source/controller/inc/ShapeController.hrc50
-rw-r--r--chart2/source/controller/inc/StatisticsItemConverter.hxx75
-rw-r--r--chart2/source/controller/inc/TabPageNotifiable.hxx51
-rw-r--r--chart2/source/controller/inc/TextDirectionListBox.hxx49
-rw-r--r--chart2/source/controller/inc/TimerTriggeredControllerLock.hxx63
-rw-r--r--chart2/source/controller/inc/TitleDialogData.hxx67
-rw-r--r--chart2/source/controller/inc/TitleItemConverter.hxx80
-rw-r--r--chart2/source/controller/inc/ViewElementListProvider.hxx70
-rw-r--r--chart2/source/controller/inc/dlg_ChartType.hxx76
-rw-r--r--chart2/source/controller/inc/dlg_ChartType_UNO.hxx86
-rw-r--r--chart2/source/controller/inc/dlg_CreationWizard.hxx105
-rw-r--r--chart2/source/controller/inc/dlg_CreationWizard_UNO.hxx129
-rw-r--r--chart2/source/controller/inc/dlg_DataEditor.hxx121
-rw-r--r--chart2/source/controller/inc/dlg_DataSource.hxx100
-rw-r--r--chart2/source/controller/inc/dlg_InsertAxis_Grid.hxx101
-rw-r--r--chart2/source/controller/inc/dlg_InsertDataLabel.hxx72
-rw-r--r--chart2/source/controller/inc/dlg_InsertErrorBars.hxx78
-rw-r--r--chart2/source/controller/inc/dlg_InsertLegend.hxx72
-rw-r--r--chart2/source/controller/inc/dlg_InsertTitle.hxx64
-rw-r--r--chart2/source/controller/inc/dlg_InsertTrendline.hxx68
-rw-r--r--chart2/source/controller/inc/dlg_ObjectProperties.hxx155
-rw-r--r--chart2/source/controller/inc/dlg_ShapeFont.hxx59
-rw-r--r--chart2/source/controller/inc/dlg_ShapeParagraph.hxx54
-rw-r--r--chart2/source/controller/inc/dlg_View3D.hxx84
-rw-r--r--chart2/source/controller/inc/res_ErrorBar.hxx154
-rw-r--r--chart2/source/controller/itemsetwrapper/AxisItemConverter.cxx835
-rw-r--r--chart2/source/controller/itemsetwrapper/CharacterPropertyItemConverter.cxx518
-rw-r--r--chart2/source/controller/itemsetwrapper/DataPointItemConverter.cxx700
-rwxr-xr-xchart2/source/controller/itemsetwrapper/ErrorBarItemConverter.cxx456
-rw-r--r--chart2/source/controller/itemsetwrapper/GraphicPropertyItemConverter.cxx809
-rw-r--r--chart2/source/controller/itemsetwrapper/ItemConverter.cxx269
-rw-r--r--chart2/source/controller/itemsetwrapper/LegendItemConverter.cxx236
-rw-r--r--chart2/source/controller/itemsetwrapper/MultipleChartConverters.cxx233
-rw-r--r--chart2/source/controller/itemsetwrapper/MultipleItemConverter.cxx84
-rw-r--r--chart2/source/controller/itemsetwrapper/RegressionCurveItemConverter.cxx276
-rw-r--r--chart2/source/controller/itemsetwrapper/RegressionEquationItemConverter.cxx187
-rw-r--r--chart2/source/controller/itemsetwrapper/SchWhichPairs.hxx275
-rw-r--r--chart2/source/controller/itemsetwrapper/SeriesOptionsItemConverter.cxx453
-rw-r--r--chart2/source/controller/itemsetwrapper/StatisticsItemConverter.cxx697
-rw-r--r--chart2/source/controller/itemsetwrapper/TitleItemConverter.cxx245
-rw-r--r--chart2/source/controller/itemsetwrapper/makefile.mk60
-rw-r--r--chart2/source/controller/main/ChartController.cxx1601
-rw-r--r--chart2/source/controller/main/ChartController.hxx735
-rw-r--r--chart2/source/controller/main/ChartController_EditData.cxx80
-rw-r--r--chart2/source/controller/main/ChartController_Insert.cxx946
-rw-r--r--chart2/source/controller/main/ChartController_Position.cxx192
-rw-r--r--chart2/source/controller/main/ChartController_Properties.cxx860
-rw-r--r--chart2/source/controller/main/ChartController_TextEdit.cxx271
-rw-r--r--chart2/source/controller/main/ChartController_Tools.cxx880
-rw-r--r--chart2/source/controller/main/ChartController_Window.cxx2020
-rw-r--r--chart2/source/controller/main/ChartDropTargetHelper.cxx204
-rw-r--r--chart2/source/controller/main/ChartDropTargetHelper.hxx69
-rw-r--r--chart2/source/controller/main/ChartFrameloader.cxx208
-rw-r--r--chart2/source/controller/main/ChartFrameloader.hxx91
-rw-r--r--chart2/source/controller/main/ChartRenderer.cxx178
-rw-r--r--chart2/source/controller/main/ChartTransferable.cxx172
-rw-r--r--chart2/source/controller/main/ChartTransferable.hxx67
-rw-r--r--chart2/source/controller/main/ChartWindow.cxx271
-rw-r--r--chart2/source/controller/main/ChartWindow.hxx88
-rw-r--r--chart2/source/controller/main/CommandDispatch.cxx211
-rw-r--r--chart2/source/controller/main/CommandDispatch.hxx151
-rw-r--r--chart2/source/controller/main/CommandDispatchContainer.cxx216
-rw-r--r--chart2/source/controller/main/CommandDispatchContainer.hxx159
-rw-r--r--chart2/source/controller/main/ConfigurationAccess.cxx120
-rw-r--r--chart2/source/controller/main/ControllerCommandDispatch.cxx788
-rw-r--r--chart2/source/controller/main/ControllerCommandDispatch.hxx136
-rw-r--r--chart2/source/controller/main/DragMethod_Base.cxx93
-rw-r--r--chart2/source/controller/main/DragMethod_Base.hxx69
-rw-r--r--chart2/source/controller/main/DragMethod_PieSegment.cxx163
-rw-r--r--chart2/source/controller/main/DragMethod_PieSegment.hxx64
-rw-r--r--chart2/source/controller/main/DragMethod_RotateDiagram.cxx237
-rw-r--r--chart2/source/controller/main/DragMethod_RotateDiagram.hxx92
-rw-r--r--chart2/source/controller/main/DrawCommandDispatch.cxx674
-rw-r--r--chart2/source/controller/main/DrawCommandDispatch.hrc50
-rw-r--r--chart2/source/controller/main/DrawCommandDispatch.hxx93
-rw-r--r--chart2/source/controller/main/ElementSelector.cxx344
-rw-r--r--chart2/source/controller/main/ElementSelector.hxx123
-rw-r--r--chart2/source/controller/main/FeatureCommandDispatchBase.cxx114
-rw-r--r--chart2/source/controller/main/FeatureCommandDispatchBase.hxx115
-rw-r--r--chart2/source/controller/main/ImplUndoManager.cxx505
-rw-r--r--chart2/source/controller/main/ImplUndoManager.hxx227
-rw-r--r--chart2/source/controller/main/ObjectHierarchy.cxx855
-rw-r--r--chart2/source/controller/main/PositionAndSizeHelper.cxx196
-rw-r--r--chart2/source/controller/main/SelectionHelper.cxx685
-rw-r--r--chart2/source/controller/main/SelectionHelper.hxx139
-rw-r--r--chart2/source/controller/main/ShapeController.cxx738
-rw-r--r--chart2/source/controller/main/ShapeController.hxx100
-rw-r--r--chart2/source/controller/main/ShapeToolbarController.cxx298
-rw-r--r--chart2/source/controller/main/ShapeToolbarController.hxx103
-rw-r--r--chart2/source/controller/main/StatusBarCommandDispatch.cxx156
-rw-r--r--chart2/source/controller/main/StatusBarCommandDispatch.hxx110
-rw-r--r--chart2/source/controller/main/UndoCommandDispatch.cxx147
-rw-r--r--chart2/source/controller/main/UndoCommandDispatch.hxx86
-rw-r--r--chart2/source/controller/main/UndoGuard.cxx135
-rw-r--r--chart2/source/controller/main/UndoManager.cxx436
-rw-r--r--chart2/source/controller/main/_serviceregistration_controller.cxx125
-rw-r--r--chart2/source/controller/main/makefile.mk84
-rw-r--r--chart2/source/controller/makefile.mk128
-rw-r--r--chart2/source/controller/menus/ShapeContextMenu.src124
-rw-r--r--chart2/source/controller/menus/ShapeEditContextMenu.src65
-rw-r--r--chart2/source/controller/menus/makefile.mk63
-rw-r--r--chart2/source/inc/AxisHelper.hxx244
-rw-r--r--chart2/source/inc/AxisIndexDefines.hxx38
-rw-r--r--chart2/source/inc/BaseGFXHelper.hxx102
-rw-r--r--chart2/source/inc/CachedDataSequence.hxx192
-rw-r--r--chart2/source/inc/CharacterProperties.hxx147
-rw-r--r--chart2/source/inc/ChartDebugTrace.hxx69
-rw-r--r--chart2/source/inc/ChartModelHelper.hxx113
-rw-r--r--chart2/source/inc/ChartTypeHelper.hxx104
-rw-r--r--chart2/source/inc/ChartViewHelper.hxx51
-rw-r--r--chart2/source/inc/CloneHelper.hxx124
-rw-r--r--chart2/source/inc/ColorPerPointHelper.hxx65
-rw-r--r--chart2/source/inc/CommonConverters.hxx279
-rw-r--r--chart2/source/inc/CommonFunctors.hxx228
-rw-r--r--chart2/source/inc/ConfigColorScheme.hxx94
-rw-r--r--chart2/source/inc/ConfigItemListener.hxx45
-rw-r--r--chart2/source/inc/ContainerHelper.hxx181
-rw-r--r--chart2/source/inc/ControllerLockGuard.hxx93
-rw-r--r--chart2/source/inc/DataSeriesHelper.hxx213
-rw-r--r--chart2/source/inc/DataSource.hxx83
-rw-r--r--chart2/source/inc/DataSourceHelper.hxx164
-rw-r--r--chart2/source/inc/DiagramHelper.hxx329
-rw-r--r--chart2/source/inc/DisposeHelper.hxx101
-rw-r--r--chart2/source/inc/ErrorBar.hxx160
-rw-r--r--chart2/source/inc/EventListenerHelper.hxx222
-rw-r--r--chart2/source/inc/ExplicitCategoriesProvider.hxx108
-rw-r--r--chart2/source/inc/ExponentialRegressionCurveCalculator.hxx74
-rw-r--r--chart2/source/inc/FastPropertyIdRanges.hxx57
-rw-r--r--chart2/source/inc/FillProperties.hxx91
-rw-r--r--chart2/source/inc/FormattedStringHelper.hxx57
-rwxr-xr-xchart2/source/inc/InternalData.hxx109
-rw-r--r--chart2/source/inc/InternalDataProvider.hxx246
-rw-r--r--chart2/source/inc/LabeledDataSequence.hxx115
-rw-r--r--chart2/source/inc/LegendHelper.hxx78
-rw-r--r--chart2/source/inc/LifeTime.hxx255
-rw-r--r--chart2/source/inc/LineProperties.hxx77
-rw-r--r--chart2/source/inc/LinearRegressionCurveCalculator.hxx74
-rw-r--r--chart2/source/inc/LogarithmicRegressionCurveCalculator.hxx74
-rw-r--r--chart2/source/inc/MeanValueRegressionCurveCalculator.hxx73
-rw-r--r--chart2/source/inc/MediaDescriptorHelper.hxx207
-rw-r--r--chart2/source/inc/ModifyListenerCallBack.hxx68
-rw-r--r--chart2/source/inc/ModifyListenerHelper.hxx307
-rw-r--r--chart2/source/inc/MutexContainer.hxx50
-rw-r--r--chart2/source/inc/NameContainer.hxx104
-rw-r--r--chart2/source/inc/NamedFillProperties.hxx75
-rw-r--r--chart2/source/inc/NamedLineProperties.hxx75
-rw-r--r--chart2/source/inc/NamedProperties.hxx62
-rw-r--r--chart2/source/inc/NoWarningThisInCTOR.hxx46
-rw-r--r--chart2/source/inc/OPropertySet.hxx319
-rw-r--r--chart2/source/inc/ObjectIdentifier.hxx278
-rw-r--r--chart2/source/inc/PotentialRegressionCurveCalculator.hxx76
-rw-r--r--chart2/source/inc/PropertyHelper.hxx197
-rw-r--r--chart2/source/inc/RangeHighlighter.hxx116
-rw-r--r--chart2/source/inc/ReferenceSizeProvider.hxx145
-rw-r--r--chart2/source/inc/RegressionCurveCalculator.hxx93
-rw-r--r--chart2/source/inc/RegressionCurveHelper.hxx241
-rw-r--r--chart2/source/inc/RelativePositionHelper.hxx120
-rw-r--r--chart2/source/inc/RelativeSizeHelper.hxx59
-rw-r--r--chart2/source/inc/ResId.hxx48
-rw-r--r--chart2/source/inc/RessourceManager.hxx53
-rw-r--r--chart2/source/inc/Scaling.hxx210
-rw-r--r--chart2/source/inc/SceneProperties.hxx96
-rw-r--r--chart2/source/inc/ServiceMacros.hxx146
-rw-r--r--chart2/source/inc/StackMode.hxx47
-rw-r--r--chart2/source/inc/StatisticsHelper.hxx133
-rw-r--r--chart2/source/inc/Strings.hrc409
-rw-r--r--chart2/source/inc/ThreeDHelper.hxx159
-rw-r--r--chart2/source/inc/TitleHelper.hxx101
-rw-r--r--chart2/source/inc/TrueGuard.hxx48
-rw-r--r--chart2/source/inc/UncachedDataSequence.hxx206
-rw-r--r--chart2/source/inc/UndoGuard.hxx120
-rw-r--r--chart2/source/inc/UndoManager.hxx180
-rw-r--r--chart2/source/inc/UserDefinedProperties.hxx69
-rw-r--r--chart2/source/inc/WeakListenerAdapter.hxx127
-rw-r--r--chart2/source/inc/WrappedDefaultProperty.hxx66
-rw-r--r--chart2/source/inc/WrappedDirectStateProperty.hxx53
-rw-r--r--chart2/source/inc/WrappedIgnoreProperty.hxx81
-rw-r--r--chart2/source/inc/WrappedProperty.hxx86
-rw-r--r--chart2/source/inc/WrappedPropertySet.hxx145
-rw-r--r--chart2/source/inc/XMLRangeHelper.hxx74
-rw-r--r--chart2/source/inc/charttoolsdllapi.hxx41
-rw-r--r--chart2/source/inc/chartview/ChartSfxItemIds.hxx262
-rw-r--r--chart2/source/inc/chartview/DataPointSymbolSupplier.hxx59
-rw-r--r--chart2/source/inc/chartview/DrawModelWrapper.hxx114
-rw-r--r--chart2/source/inc/chartview/ExplicitValueProvider.hxx109
-rw-r--r--chart2/source/inc/chartview/NumberFormatterWrapper.hxx82
-rw-r--r--chart2/source/inc/chartview/chartviewdllapi.hxx41
-rw-r--r--chart2/source/inc/chartview/servicenames_charttypes.hxx47
-rw-r--r--chart2/source/inc/exports.dxp3
-rw-r--r--chart2/source/inc/macros.hxx53
-rw-r--r--chart2/source/inc/servicenames.hxx71
-rw-r--r--chart2/source/inc/servicenames_charttypes.hxx49
-rw-r--r--chart2/source/inc/servicenames_coosystems.hxx43
-rw-r--r--chart2/source/inc/servicenames_dlwrapper.hxx41
-rw-r--r--chart2/source/model/filter/XMLFilter.cxx873
-rw-r--r--chart2/source/model/filter/makefile.mk49
-rw-r--r--chart2/source/model/inc/BaseCoordinateSystem.hxx190
-rw-r--r--chart2/source/model/inc/CartesianCoordinateSystem.hxx93
-rw-r--r--chart2/source/model/inc/ChartTypeManager.hxx92
-rw-r--r--chart2/source/model/inc/DataSeries.hxx230
-rw-r--r--chart2/source/model/inc/DataSeriesTree.hxx91
-rw-r--r--chart2/source/model/inc/Diagram.hxx241
-rw-r--r--chart2/source/model/inc/PolarCoordinateSystem.hxx93
-rw-r--r--chart2/source/model/inc/StockBar.hxx119
-rw-r--r--chart2/source/model/inc/XMLFilter.hxx223
-rw-r--r--chart2/source/model/inc/_serviceregistration_charttypes.hxx40
-rw-r--r--chart2/source/model/main/Axis.cxx615
-rw-r--r--chart2/source/model/main/Axis.hxx184
-rw-r--r--chart2/source/model/main/BaseCoordinateSystem.cxx409
-rw-r--r--chart2/source/model/main/CartesianCoordinateSystem.cxx155
-rwxr-xr-xchart2/source/model/main/ChartModel.cxx1378
-rw-r--r--chart2/source/model/main/ChartModel.hxx616
-rw-r--r--chart2/source/model/main/ChartModel_Persistence.cxx855
-rw-r--r--chart2/source/model/main/DataPoint.cxx319
-rw-r--r--chart2/source/model/main/DataPoint.hxx143
-rw-r--r--chart2/source/model/main/DataPointProperties.cxx438
-rw-r--r--chart2/source/model/main/DataPointProperties.hxx101
-rw-r--r--chart2/source/model/main/DataSeries.cxx593
-rw-r--r--chart2/source/model/main/DataSeriesProperties.cxx98
-rw-r--r--chart2/source/model/main/DataSeriesProperties.hxx63
-rw-r--r--chart2/source/model/main/Diagram.cxx679
-rw-r--r--chart2/source/model/main/FormattedString.cxx261
-rw-r--r--chart2/source/model/main/FormattedString.hxx140
-rw-r--r--chart2/source/model/main/GridProperties.cxx273
-rw-r--r--chart2/source/model/main/GridProperties.hxx128
-rw-r--r--chart2/source/model/main/LayoutContainer.cxx138
-rw-r--r--chart2/source/model/main/LayoutContainer.hxx90
-rw-r--r--chart2/source/model/main/Legend.cxx369
-rw-r--r--chart2/source/model/main/Legend.hxx154
-rw-r--r--chart2/source/model/main/PageBackground.cxx255
-rw-r--r--chart2/source/model/main/PageBackground.hxx132
-rw-r--r--chart2/source/model/main/PolarCoordinateSystem.cxx155
-rw-r--r--chart2/source/model/main/StockBar.cxx267
-rw-r--r--chart2/source/model/main/Title.cxx411
-rw-r--r--chart2/source/model/main/Title.hxx147
-rw-r--r--chart2/source/model/main/Wall.cxx260
-rw-r--r--chart2/source/model/main/Wall.hxx127
-rw-r--r--chart2/source/model/main/_serviceregistration_model.cxx220
-rw-r--r--chart2/source/model/main/makefile.mk67
-rw-r--r--chart2/source/model/makefile.mk100
-rw-r--r--chart2/source/model/model.map8
-rw-r--r--chart2/source/model/template/AreaChartType.cxx77
-rw-r--r--chart2/source/model/template/AreaChartType.hxx64
-rw-r--r--chart2/source/model/template/AreaChartTypeTemplate.cxx295
-rw-r--r--chart2/source/model/template/AreaChartTypeTemplate.hxx103
-rw-r--r--chart2/source/model/template/BarChartType.cxx78
-rw-r--r--chart2/source/model/template/BarChartType.hxx64
-rw-r--r--chart2/source/model/template/BarChartTypeTemplate.cxx354
-rw-r--r--chart2/source/model/template/BarChartTypeTemplate.hxx121
-rw-r--r--chart2/source/model/template/BubbleChartType.cxx242
-rw-r--r--chart2/source/model/template/BubbleChartType.hxx86
-rw-r--r--chart2/source/model/template/BubbleChartTypeTemplate.cxx313
-rw-r--r--chart2/source/model/template/BubbleChartTypeTemplate.hxx101
-rw-r--r--chart2/source/model/template/BubbleDataInterpreter.cxx308
-rw-r--r--chart2/source/model/template/BubbleDataInterpreter.hxx61
-rw-r--r--chart2/source/model/template/CandleStickChartType.cxx355
-rw-r--r--chart2/source/model/template/CandleStickChartType.hxx90
-rw-r--r--chart2/source/model/template/ChartType.cxx325
-rw-r--r--chart2/source/model/template/ChartType.hxx183
-rw-r--r--chart2/source/model/template/ChartTypeManager.cxx619
-rw-r--r--chart2/source/model/template/ChartTypeTemplate.cxx933
-rw-r--r--chart2/source/model/template/ChartTypeTemplate.hxx299
-rw-r--r--chart2/source/model/template/ColumnChartType.cxx202
-rw-r--r--chart2/source/model/template/ColumnChartType.hxx74
-rw-r--r--chart2/source/model/template/ColumnLineChartTypeTemplate.cxx448
-rw-r--r--chart2/source/model/template/ColumnLineChartTypeTemplate.hxx119
-rw-r--r--chart2/source/model/template/ColumnLineDataInterpreter.cxx101
-rw-r--r--chart2/source/model/template/ColumnLineDataInterpreter.hxx59
-rw-r--r--chart2/source/model/template/DataInterpreter.cxx461
-rw-r--r--chart2/source/model/template/DataInterpreter.hxx100
-rw-r--r--chart2/source/model/template/FilledNetChartType.cxx94
-rw-r--r--chart2/source/model/template/FilledNetChartType.hxx63
-rw-r--r--chart2/source/model/template/LineChartType.cxx214
-rw-r--r--chart2/source/model/template/LineChartType.hxx75
-rw-r--r--chart2/source/model/template/LineChartTypeTemplate.cxx412
-rw-r--r--chart2/source/model/template/LineChartTypeTemplate.hxx109
-rw-r--r--chart2/source/model/template/NetChartType.cxx180
-rw-r--r--chart2/source/model/template/NetChartType.hxx93
-rw-r--r--chart2/source/model/template/NetChartTypeTemplate.cxx229
-rw-r--r--chart2/source/model/template/NetChartTypeTemplate.hxx87
-rw-r--r--chart2/source/model/template/PieChartType.cxx239
-rw-r--r--chart2/source/model/template/PieChartType.hxx81
-rw-r--r--chart2/source/model/template/PieChartTypeTemplate.cxx669
-rw-r--r--chart2/source/model/template/PieChartTypeTemplate.hxx140
-rw-r--r--chart2/source/model/template/ScatterChartType.cxx296
-rw-r--r--chart2/source/model/template/ScatterChartType.hxx91
-rw-r--r--chart2/source/model/template/ScatterChartTypeTemplate.cxx430
-rw-r--r--chart2/source/model/template/ScatterChartTypeTemplate.hxx110
-rw-r--r--chart2/source/model/template/StockChartTypeTemplate.cxx555
-rw-r--r--chart2/source/model/template/StockChartTypeTemplate.hxx138
-rw-r--r--chart2/source/model/template/StockDataInterpreter.cxx344
-rw-r--r--chart2/source/model/template/StockDataInterpreter.hxx69
-rw-r--r--chart2/source/model/template/XYDataInterpreter.cxx273
-rw-r--r--chart2/source/model/template/XYDataInterpreter.hxx61
-rw-r--r--chart2/source/model/template/_serviceregistration_charttypes.cxx138
-rw-r--r--chart2/source/model/template/makefile.mk82
-rw-r--r--chart2/source/tools/AxisHelper.cxx956
-rw-r--r--chart2/source/tools/BaseGFXHelper.cxx222
-rw-r--r--chart2/source/tools/CachedDataSequence.cxx409
-rw-r--r--chart2/source/tools/CharacterProperties.cxx608
-rw-r--r--chart2/source/tools/ChartDebugTrace.cxx417
-rw-r--r--chart2/source/tools/ChartModelHelper.cxx262
-rw-r--r--chart2/source/tools/ChartTypeHelper.cxx684
-rw-r--r--chart2/source/tools/ChartViewHelper.cxx72
-rw-r--r--chart2/source/tools/ColorPerPointHelper.cxx97
-rw-r--r--chart2/source/tools/CommonConverters.cxx549
-rw-r--r--chart2/source/tools/ConfigColorScheme.cxx202
-rw-r--r--chart2/source/tools/ControllerLockGuard.cxx89
-rw-r--r--chart2/source/tools/DataSeriesHelper.cxx918
-rw-r--r--chart2/source/tools/DataSource.cxx91
-rw-r--r--chart2/source/tools/DataSourceHelper.cxx552
-rw-r--r--chart2/source/tools/DiagramHelper.cxx1404
-rw-r--r--chart2/source/tools/ErrorBar.cxx363
-rw-r--r--chart2/source/tools/ExplicitCategoriesProvider.cxx422
-rw-r--r--chart2/source/tools/ExponentialRegressionCurveCalculator.cxx183
-rw-r--r--chart2/source/tools/FillProperties.cxx277
-rw-r--r--chart2/source/tools/FormattedStringHelper.cxx80
-rw-r--r--chart2/source/tools/ImplOPropertySet.cxx207
-rw-r--r--chart2/source/tools/ImplOPropertySet.hxx96
-rwxr-xr-xchart2/source/tools/InternalData.cxx530
-rw-r--r--chart2/source/tools/InternalDataProvider.cxx1314
-rw-r--r--chart2/source/tools/LabeledDataSequence.cxx179
-rw-r--r--chart2/source/tools/LegendHelper.cxx147
-rw-r--r--chart2/source/tools/LifeTime.cxx534
-rw-r--r--chart2/source/tools/LineProperties.cxx185
-rw-r--r--chart2/source/tools/LinearRegressionCurveCalculator.cxx179
-rw-r--r--chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx191
-rw-r--r--chart2/source/tools/MeanValueRegressionCurveCalculator.cxx143
-rw-r--r--chart2/source/tools/MediaDescriptorHelper.cxx221
-rw-r--r--chart2/source/tools/ModifyListenerCallBack.cxx134
-rw-r--r--chart2/source/tools/ModifyListenerHelper.cxx213
-rw-r--r--chart2/source/tools/MutexContainer.cxx43
-rw-r--r--chart2/source/tools/NameContainer.cxx189
-rw-r--r--chart2/source/tools/NamedFillProperties.cxx114
-rw-r--r--chart2/source/tools/NamedLineProperties.cxx99
-rw-r--r--chart2/source/tools/NamedProperties.cxx59
-rw-r--r--chart2/source/tools/OPropertySet.cxx530
-rw-r--r--chart2/source/tools/ObjectIdentifier.cxx1491
-rw-r--r--chart2/source/tools/PotentialRegressionCurveCalculator.cxx177
-rw-r--r--chart2/source/tools/PropertyHelper.cxx314
-rw-r--r--chart2/source/tools/RangeHighlighter.cxx402
-rw-r--r--chart2/source/tools/ReferenceSizeProvider.cxx378
-rw-r--r--chart2/source/tools/RegressionCalculationHelper.hxx131
-rw-r--r--chart2/source/tools/RegressionCurveCalculator.cxx168
-rw-r--r--chart2/source/tools/RegressionCurveHelper.cxx736
-rw-r--r--chart2/source/tools/RegressionCurveModel.cxx441
-rw-r--r--chart2/source/tools/RegressionCurveModel.hxx259
-rw-r--r--chart2/source/tools/RegressionEquation.cxx362
-rw-r--r--chart2/source/tools/RegressionEquation.hxx143
-rw-r--r--chart2/source/tools/RelativePositionHelper.cxx399
-rw-r--r--chart2/source/tools/RelativeSizeHelper.cxx100
-rw-r--r--chart2/source/tools/ResId.cxx47
-rw-r--r--chart2/source/tools/RessourceManager.cxx49
-rw-r--r--chart2/source/tools/Scaling.cxx271
-rw-r--r--chart2/source/tools/SceneProperties.cxx382
-rw-r--r--chart2/source/tools/StatisticsHelper.cxx403
-rw-r--r--chart2/source/tools/ThreeDHelper.cxx1527
-rw-r--r--chart2/source/tools/TitleHelper.cxx378
-rw-r--r--chart2/source/tools/TrueGuard.cxx47
-rw-r--r--chart2/source/tools/UncachedDataSequence.cxx379
-rw-r--r--chart2/source/tools/UserDefinedProperties.cxx73
-rw-r--r--chart2/source/tools/WeakListenerAdapter.cxx76
-rw-r--r--chart2/source/tools/WrappedDefaultProperty.cxx92
-rw-r--r--chart2/source/tools/WrappedDirectStateProperty.cxx59
-rw-r--r--chart2/source/tools/WrappedIgnoreProperty.cxx148
-rw-r--r--chart2/source/tools/WrappedProperty.cxx150
-rw-r--r--chart2/source/tools/WrappedPropertySet.cxx485
-rw-r--r--chart2/source/tools/XMLRangeHelper.cxx418
-rw-r--r--chart2/source/tools/_serviceregistration_tools.cxx200
-rw-r--r--chart2/source/tools/exports.flt3
-rw-r--r--chart2/source/tools/makefile.mk189
-rw-r--r--chart2/source/tools/tools.map8
-rw-r--r--chart2/source/view/axes/MinimumAndMaximumSupplier.cxx201
-rw-r--r--chart2/source/view/axes/ScaleAutomatism.cxx760
-rw-r--r--chart2/source/view/axes/TickmarkHelper.cxx935
-rw-r--r--chart2/source/view/axes/TickmarkHelper.hxx276
-rw-r--r--chart2/source/view/axes/TickmarkProperties.hxx53
-rw-r--r--chart2/source/view/axes/VAxisBase.cxx253
-rw-r--r--chart2/source/view/axes/VAxisBase.hxx107
-rw-r--r--chart2/source/view/axes/VAxisOrGridBase.cxx98
-rw-r--r--chart2/source/view/axes/VAxisOrGridBase.hxx83
-rw-r--r--chart2/source/view/axes/VAxisProperties.cxx485
-rw-r--r--chart2/source/view/axes/VAxisProperties.hxx168
-rw-r--r--chart2/source/view/axes/VCartesianAxis.cxx1600
-rw-r--r--chart2/source/view/axes/VCartesianAxis.hxx146
-rw-r--r--chart2/source/view/axes/VCartesianCoordinateSystem.cxx250
-rw-r--r--chart2/source/view/axes/VCartesianCoordinateSystem.hxx64
-rw-r--r--chart2/source/view/axes/VCartesianGrid.cxx339
-rw-r--r--chart2/source/view/axes/VCartesianGrid.hxx71
-rw-r--r--chart2/source/view/axes/VCoordinateSystem.cxx598
-rw-r--r--chart2/source/view/axes/VPolarAngleAxis.cxx234
-rw-r--r--chart2/source/view/axes/VPolarAngleAxis.hxx66
-rw-r--r--chart2/source/view/axes/VPolarAxis.cxx83
-rw-r--r--chart2/source/view/axes/VPolarAxis.hxx71
-rw-r--r--chart2/source/view/axes/VPolarCoordinateSystem.cxx211
-rw-r--r--chart2/source/view/axes/VPolarCoordinateSystem.hxx68
-rw-r--r--chart2/source/view/axes/VPolarGrid.cxx273
-rw-r--r--chart2/source/view/axes/VPolarGrid.hxx96
-rw-r--r--chart2/source/view/axes/VPolarRadiusAxis.cxx186
-rw-r--r--chart2/source/view/axes/VPolarRadiusAxis.hxx98
-rw-r--r--chart2/source/view/axes/makefile.mk66
-rw-r--r--chart2/source/view/charttypes/AreaChart.cxx1005
-rw-r--r--chart2/source/view/charttypes/AreaChart.hxx134
-rw-r--r--chart2/source/view/charttypes/BarChart.cxx1007
-rw-r--r--chart2/source/view/charttypes/BarChart.hxx110
-rw-r--r--chart2/source/view/charttypes/BarPositionHelper.cxx138
-rw-r--r--chart2/source/view/charttypes/BarPositionHelper.hxx76
-rw-r--r--chart2/source/view/charttypes/BubbleChart.cxx417
-rw-r--r--chart2/source/view/charttypes/BubbleChart.hxx94
-rw-r--r--chart2/source/view/charttypes/CandleStickChart.cxx398
-rw-r--r--chart2/source/view/charttypes/CandleStickChart.hxx89
-rw-r--r--chart2/source/view/charttypes/CategoryPositionHelper.cxx100
-rw-r--r--chart2/source/view/charttypes/CategoryPositionHelper.hxx68
-rw-r--r--chart2/source/view/charttypes/PieChart.cxx886
-rw-r--r--chart2/source/view/charttypes/PieChart.hxx143
-rw-r--r--chart2/source/view/charttypes/Splines.cxx545
-rw-r--r--chart2/source/view/charttypes/Splines.hxx61
-rw-r--r--chart2/source/view/charttypes/VSeriesPlotter.cxx2096
-rw-r--r--chart2/source/view/charttypes/makefile.mk55
-rw-r--r--chart2/source/view/diagram/VDiagram.cxx814
-rw-r--r--chart2/source/view/diagram/makefile.mk48
-rw-r--r--chart2/source/view/exports.flt4
-rw-r--r--chart2/source/view/inc/Clipping.hxx70
-rw-r--r--chart2/source/view/inc/LabelAlignment.hxx41
-rw-r--r--chart2/source/view/inc/LabelPositionHelper.hxx86
-rw-r--r--chart2/source/view/inc/LegendEntryProvider.hxx63
-rw-r--r--chart2/source/view/inc/Linear3DTransformation.hxx67
-rw-r--r--chart2/source/view/inc/MinimumAndMaximumSupplier.hxx100
-rw-r--r--chart2/source/view/inc/PlotterBase.hxx126
-rw-r--r--chart2/source/view/inc/PlottingPositionHelper.hxx406
-rw-r--r--chart2/source/view/inc/PolarLabelPositionHelper.hxx76
-rw-r--r--chart2/source/view/inc/PropertyMapper.hxx133
-rw-r--r--chart2/source/view/inc/ScaleAutomatism.hxx119
-rw-r--r--chart2/source/view/inc/ShapeFactory.hxx249
-rw-r--r--chart2/source/view/inc/Stripe.hxx85
-rw-r--r--chart2/source/view/inc/VCoordinateSystem.hxx212
-rw-r--r--chart2/source/view/inc/VDataSeries.hxx264
-rw-r--r--chart2/source/view/inc/VDiagram.hxx136
-rw-r--r--chart2/source/view/inc/VLegendSymbolFactory.hxx77
-rw-r--r--chart2/source/view/inc/VLineProperties.hxx61
-rw-r--r--chart2/source/view/inc/VPolarTransformation.hxx67
-rw-r--r--chart2/source/view/inc/VSeriesPlotter.hxx451
-rw-r--r--chart2/source/view/inc/ViewDefines.hxx48
-rw-r--r--chart2/source/view/main/ChartItemPool.cxx257
-rw-r--r--chart2/source/view/main/ChartItemPool.hxx58
-rw-r--r--chart2/source/view/main/ChartView.cxx3005
-rw-r--r--chart2/source/view/main/ChartView.hxx255
-rw-r--r--chart2/source/view/main/Clipping.cxx304
-rw-r--r--chart2/source/view/main/DataPointSymbolSupplier.cxx66
-rw-r--r--chart2/source/view/main/DrawModelWrapper.cxx411
-rw-r--r--chart2/source/view/main/LabelPositionHelper.cxx488
-rw-r--r--chart2/source/view/main/Linear3DTransformation.cxx107
-rw-r--r--chart2/source/view/main/NumberFormatterWrapper.cxx169
-rw-r--r--chart2/source/view/main/PlotterBase.cxx135
-rw-r--r--chart2/source/view/main/PlottingPositionHelper.cxx667
-rw-r--r--chart2/source/view/main/PolarLabelPositionHelper.cxx188
-rw-r--r--chart2/source/view/main/PropertyMapper.cxx539
-rw-r--r--chart2/source/view/main/ShapeFactory.cxx1996
-rw-r--r--chart2/source/view/main/Stripe.cxx223
-rw-r--r--chart2/source/view/main/VDataSeries.cxx986
-rw-r--r--chart2/source/view/main/VLegend.cxx793
-rw-r--r--chart2/source/view/main/VLegend.hxx111
-rw-r--r--chart2/source/view/main/VLegendSymbolFactory.cxx364
-rw-r--r--chart2/source/view/main/VLineProperties.cxx109
-rw-r--r--chart2/source/view/main/VPolarTransformation.cxx94
-rw-r--r--chart2/source/view/main/VTitle.cxx284
-rw-r--r--chart2/source/view/main/VTitle.hxx83
-rw-r--r--chart2/source/view/main/_serviceregistration_view.cxx71
-rw-r--r--chart2/source/view/main/makefile.mk68
-rw-r--r--chart2/source/view/makefile.mk120
-rw-r--r--chart2/source/view/view.map9
-rw-r--r--chart2/uiconfig/accelerator/en-US/default.xml30
-rw-r--r--chart2/uiconfig/menubar/menubar.xml156
-rw-r--r--chart2/uiconfig/statusbar/statusbar.xml6
-rw-r--r--chart2/uiconfig/toolbar/arrowshapes.xml34
-rw-r--r--chart2/uiconfig/toolbar/basicshapes.xml29
-rw-r--r--chart2/uiconfig/toolbar/calloutshapes.xml11
-rw-r--r--chart2/uiconfig/toolbar/drawbar.xml20
-rw-r--r--chart2/uiconfig/toolbar/flowchartshapes.xml36
-rw-r--r--chart2/uiconfig/toolbar/standardbar.xml22
-rw-r--r--chart2/uiconfig/toolbar/starshapes.xml17
-rw-r--r--chart2/uiconfig/toolbar/symbolshapes.xml24
-rw-r--r--chart2/uiconfig/toolbar/toolbar.xml15
-rw-r--r--chart2/util/makefile.mk60
-rw-r--r--chart2/util/makefile.pmk46
-rw-r--r--chart2/util/target.pmk32
-rw-r--r--chart2/workbench/addin/exports.dxp3
-rw-r--r--chart2/workbench/addin/makefile.mk86
-rw-r--r--chart2/workbench/addin/sampleaddin.cxx716
-rw-r--r--chart2/workbench/addin/sampleaddin.def7
-rw-r--r--chart2/workbench/addin/sampleaddin.hxx161
-rw-r--r--cli_ure/inc/makefile.mk48
-rw-r--r--cli_ure/inc/pch/precompiled_cli_ure.cxx29
-rw-r--r--cli_ure/inc/pch/precompiled_cli_ure.hxx32
-rw-r--r--cli_ure/prj/build.lst13
-rw-r--r--cli_ure/prj/d.lst13
-rw-r--r--cli_ure/qa/climaker/ClimakerTestCase.java98
-rw-r--r--cli_ure/qa/climaker/climaker.cs1487
-rw-r--r--cli_ure/qa/climaker/makefile.mk135
-rw-r--r--cli_ure/qa/climaker/testobjects.cs588
-rw-r--r--cli_ure/qa/climaker/types.idl483
-rw-r--r--cli_ure/qa/versioning/readme.txt28
-rw-r--r--cli_ure/readme.txt272
-rw-r--r--cli_ure/source/basetypes/assembly.cs2
-rw-r--r--cli_ure/source/basetypes/cli_basetypes_config11
-rw-r--r--cli_ure/source/basetypes/makefile.mk112
-rw-r--r--cli_ure/source/basetypes/uno/Any.cs211
-rw-r--r--cli_ure/source/basetypes/uno/BoundAttribute.cs46
-rw-r--r--cli_ure/source/basetypes/uno/ExceptionAttribute.cs70
-rw-r--r--cli_ure/source/basetypes/uno/OnewayAttribute.cs43
-rw-r--r--cli_ure/source/basetypes/uno/ParameterizedTypeAttribute.cs68
-rw-r--r--cli_ure/source/basetypes/uno/PolymorphicType.cs443
-rw-r--r--cli_ure/source/basetypes/uno/TypeArgumentsAttribute.cs84
-rw-r--r--cli_ure/source/basetypes/uno/TypeParametersAttribute.cs65
-rw-r--r--cli_ure/source/climaker/climaker.exe.config10
-rw-r--r--cli_ure/source/climaker/climaker_app.cxx749
-rw-r--r--cli_ure/source/climaker/climaker_emit.cxx2323
-rw-r--r--cli_ure/source/climaker/climaker_share.h268
-rw-r--r--cli_ure/source/climaker/makefile.mk139
-rw-r--r--cli_ure/source/cliuno.snkbin0 -> 596 bytes
-rw-r--r--cli_ure/source/makefile.mk48
-rw-r--r--cli_ure/source/native/assembly.cxx36
-rw-r--r--cli_ure/source/native/cli_cppuhelper_config11
-rw-r--r--cli_ure/source/native/makefile.mk191
-rw-r--r--cli_ure/source/native/msvc.map6
-rw-r--r--cli_ure/source/native/native_bootstrap.cxx433
-rw-r--r--cli_ure/source/native/native_share.h120
-rw-r--r--cli_ure/source/native/path.cxx218
-rw-r--r--cli_ure/source/scripts/increment_version.pl281
-rw-r--r--cli_ure/source/scripts/subst_template.pl133
-rw-r--r--cli_ure/source/uno_bridge/README.txt20
-rw-r--r--cli_ure/source/uno_bridge/bridge_exports.map8
-rw-r--r--cli_ure/source/uno_bridge/cli_base.h180
-rw-r--r--cli_ure/source/uno_bridge/cli_bridge.cxx369
-rw-r--r--cli_ure/source/uno_bridge/cli_bridge.h120
-rw-r--r--cli_ure/source/uno_bridge/cli_data.cxx2011
-rw-r--r--cli_ure/source/uno_bridge/cli_environment.cxx173
-rw-r--r--cli_ure/source/uno_bridge/cli_environment.h114
-rw-r--r--cli_ure/source/uno_bridge/cli_proxy.cxx1178
-rw-r--r--cli_ure/source/uno_bridge/cli_proxy.h299
-rw-r--r--cli_ure/source/uno_bridge/cli_uno.cxx290
-rw-r--r--cli_ure/source/uno_bridge/makefile.mk95
-rw-r--r--cli_ure/source/ure/assembly.cs2
-rw-r--r--cli_ure/source/ure/cli_ure_config11
-rw-r--r--cli_ure/source/ure/makefile.mk109
-rw-r--r--cli_ure/source/ure/uno/util/DisposeGuard.cs59
-rw-r--r--cli_ure/source/ure/uno/util/WeakAdapter.cs120
-rw-r--r--cli_ure/source/ure/uno/util/WeakBase.cs178
-rw-r--r--cli_ure/source/ure/uno/util/WeakComponentBase.cs194
-rw-r--r--cli_ure/unotypes/cli_uretypes_config11
-rw-r--r--cli_ure/unotypes/makefile.mk79
-rw-r--r--cli_ure/util/makefile.pmk35
-rw-r--r--cli_ure/util/target.pmk44
-rw-r--r--cli_ure/version/incversions.txt39
-rw-r--r--cli_ure/version/makefile.mk69
-rw-r--r--cli_ure/version/version.txt47
-rw-r--r--cli_ure/workbench/dynload/dynload.cs35
-rw-r--r--cli_ure/workbench/dynload/makefile.mk68
-rw-r--r--cli_ure/workbench/dynload/readme.txt2
-rwxr-xr-xcodemaker/codemaker.pmk53
-rw-r--r--codemaker/inc/codemaker/codemaker.hxx56
-rw-r--r--codemaker/inc/codemaker/commoncpp.hxx57
-rw-r--r--codemaker/inc/codemaker/commonjava.hxx44
-rw-r--r--codemaker/inc/codemaker/dependencies.hxx149
-rw-r--r--codemaker/inc/codemaker/exceptiontree.hxx124
-rw-r--r--codemaker/inc/codemaker/generatedtypeset.hxx79
-rw-r--r--codemaker/inc/codemaker/global.hxx151
-rw-r--r--codemaker/inc/codemaker/options.hxx98
-rw-r--r--codemaker/inc/codemaker/typemanager.hxx182
-rw-r--r--codemaker/inc/codemaker/unotype.hxx110
-rw-r--r--codemaker/inc/makefile.mk47
-rw-r--r--codemaker/inc/pch/precompiled_codemaker.cxx29
-rw-r--r--codemaker/inc/pch/precompiled_codemaker.hxx32
-rw-r--r--codemaker/prj/build.lst11
-rw-r--r--codemaker/prj/d.lst14
-rw-r--r--codemaker/source/bonobowrappermaker/corbamaker.cxx239
-rw-r--r--codemaker/source/bonobowrappermaker/corbaoptions.cxx256
-rw-r--r--codemaker/source/bonobowrappermaker/corbaoptions.hxx51
-rw-r--r--codemaker/source/bonobowrappermaker/corbatype.cxx2782
-rw-r--r--codemaker/source/bonobowrappermaker/corbatype.hxx310
-rw-r--r--codemaker/source/bonobowrappermaker/makefile.mk62
-rw-r--r--codemaker/source/codemaker/codemaker.cxx188
-rw-r--r--codemaker/source/codemaker/dependencies.cxx281
-rw-r--r--codemaker/source/codemaker/exceptiontree.cxx106
-rw-r--r--codemaker/source/codemaker/global.cxx449
-rw-r--r--codemaker/source/codemaker/makefile.mk51
-rw-r--r--codemaker/source/codemaker/options.cxx99
-rw-r--r--codemaker/source/codemaker/typemanager.cxx403
-rw-r--r--codemaker/source/codemaker/unotype.cxx103
-rw-r--r--codemaker/source/commoncpp/commoncpp.cxx355
-rw-r--r--codemaker/source/commoncpp/makefile.mk42
-rw-r--r--codemaker/source/commonjava/commonjava.cxx167
-rw-r--r--codemaker/source/commonjava/makefile.mk42
-rw-r--r--codemaker/source/cppumaker/cppumaker.cxx244
-rw-r--r--codemaker/source/cppumaker/cppuoptions.cxx355
-rw-r--r--codemaker/source/cppumaker/cppuoptions.hxx51
-rw-r--r--codemaker/source/cppumaker/cpputype.cxx4504
-rw-r--r--codemaker/source/cppumaker/cpputype.hxx406
-rw-r--r--codemaker/source/cppumaker/dumputils.cxx91
-rw-r--r--codemaker/source/cppumaker/dumputils.hxx46
-rw-r--r--codemaker/source/cppumaker/includes.cxx280
-rw-r--r--codemaker/source/cppumaker/includes.hxx121
-rw-r--r--codemaker/source/cppumaker/makefile.mk65
-rw-r--r--codemaker/source/cunomaker/cunomaker.cxx186
-rw-r--r--codemaker/source/cunomaker/cunooptions.cxx330
-rw-r--r--codemaker/source/cunomaker/cunooptions.hxx51
-rw-r--r--codemaker/source/cunomaker/cunotype.cxx3533
-rw-r--r--codemaker/source/cunomaker/cunotype.hxx309
-rw-r--r--codemaker/source/cunomaker/makefile.mk61
-rw-r--r--codemaker/source/idlmaker/idlmaker.cxx186
-rw-r--r--codemaker/source/idlmaker/idloptions.cxx251
-rw-r--r--codemaker/source/idlmaker/idloptions.hxx51
-rw-r--r--codemaker/source/idlmaker/idltype.cxx1752
-rw-r--r--codemaker/source/idlmaker/idltype.hxx249
-rw-r--r--codemaker/source/idlmaker/makefile.mk62
-rw-r--r--codemaker/source/javamaker/classfile.cxx903
-rw-r--r--codemaker/source/javamaker/classfile.hxx274
-rw-r--r--codemaker/source/javamaker/javamaker.cxx247
-rw-r--r--codemaker/source/javamaker/javaoptions.cxx299
-rw-r--r--codemaker/source/javamaker/javaoptions.hxx51
-rw-r--r--codemaker/source/javamaker/javatype.cxx3374
-rw-r--r--codemaker/source/javamaker/javatype.hxx45
-rw-r--r--codemaker/source/javamaker/makefile.mk58
-rw-r--r--codemaker/test/cppumaker/makefile.mk71
-rw-r--r--codemaker/test/cppumaker/test_codemaker_cppumaker.cxx567
-rw-r--r--codemaker/test/cppumaker/types.idl717
-rw-r--r--codemaker/test/cppumaker/version.map34
-rw-r--r--codemaker/test/javamaker/Test.java559
-rw-r--r--codemaker/test/javamaker/java15/Test.java100
-rw-r--r--codemaker/test/javamaker/java15/makefile.mk41
-rw-r--r--codemaker/test/javamaker/java15/types.idl50
-rw-r--r--codemaker/test/javamaker/makefile.mk41
-rw-r--r--codemaker/test/javamaker/types.idl433
-rw-r--r--comphelper/inc/comphelper/ChainablePropertySet.hxx156
-rw-r--r--comphelper/inc/comphelper/ChainablePropertySetInfo.hxx77
-rw-r--r--comphelper/inc/comphelper/IdPropArrayHelper.hxx123
-rw-r--r--comphelper/inc/comphelper/InlineContainer.hxx149
-rw-r--r--comphelper/inc/comphelper/MasterPropertySet.hxx155
-rw-r--r--comphelper/inc/comphelper/MasterPropertySetInfo.hxx69
-rw-r--r--comphelper/inc/comphelper/PropertyInfoHash.hxx71
-rw-r--r--comphelper/inc/comphelper/SelectionMultiplex.hxx117
-rw-r--r--comphelper/inc/comphelper/SettingsHelper.hxx123
-rw-r--r--comphelper/inc/comphelper/TypeGeneration.hxx124
-rw-r--r--comphelper/inc/comphelper/accessiblecomponenthelper.hxx144
-rw-r--r--comphelper/inc/comphelper/accessiblecontexthelper.hxx376
-rw-r--r--comphelper/inc/comphelper/accessibleeventbuffer.hxx133
-rw-r--r--comphelper/inc/comphelper/accessibleeventnotifier.hxx173
-rw-r--r--comphelper/inc/comphelper/accessiblekeybindinghelper.hxx83
-rw-r--r--comphelper/inc/comphelper/accessibleselectionhelper.hxx134
-rw-r--r--comphelper/inc/comphelper/accessibletexthelper.hxx185
-rw-r--r--comphelper/inc/comphelper/accessiblewrapper.hxx411
-rw-r--r--comphelper/inc/comphelper/accimplaccess.hxx166
-rw-r--r--comphelper/inc/comphelper/anytostring.hxx50
-rw-r--r--comphelper/inc/comphelper/asyncnotification.hxx198
-rw-r--r--comphelper/inc/comphelper/attributelist.hxx77
-rw-r--r--comphelper/inc/comphelper/basicio.hxx106
-rw-r--r--comphelper/inc/comphelper/broadcasthelper.hxx69
-rw-r--r--comphelper/inc/comphelper/classids.hxx574
-rw-r--r--comphelper/inc/comphelper/comphelperdllapi.h14
-rw-r--r--comphelper/inc/comphelper/componentbase.hxx161
-rw-r--r--comphelper/inc/comphelper/componentcontext.hxx252
-rw-r--r--comphelper/inc/comphelper/componentfactory.hxx118
-rw-r--r--comphelper/inc/comphelper/componentmodule.hxx441
-rw-r--r--comphelper/inc/comphelper/composedprops.hxx127
-rw-r--r--comphelper/inc/comphelper/configurationhelper.hxx261
-rw-r--r--comphelper/inc/comphelper/container.hxx85
-rw-r--r--comphelper/inc/comphelper/containermultiplexer.hxx115
-rw-r--r--comphelper/inc/comphelper/docpasswordhelper.hxx209
-rw-r--r--comphelper/inc/comphelper/docpasswordrequest.hxx88
-rw-r--r--comphelper/inc/comphelper/documentconstants.hxx113
-rw-r--r--comphelper/inc/comphelper/documentinfo.hxx59
-rw-r--r--comphelper/inc/comphelper/embeddedobjectcontainer.hxx188
-rw-r--r--comphelper/inc/comphelper/enumhelper.hxx150
-rw-r--r--comphelper/inc/comphelper/eventattachermgr.hxx68
-rw-r--r--comphelper/inc/comphelper/evtlistenerhlp.hxx56
-rwxr-xr-xcomphelper/inc/comphelper/evtmethodhelper.hxx41
-rw-r--r--comphelper/inc/comphelper/extract.hxx164
-rw-r--r--comphelper/inc/comphelper/fileformat.h41
-rw-r--r--comphelper/inc/comphelper/genericpropertyset.hxx41
-rw-r--r--comphelper/inc/comphelper/guarding.hxx63
-rw-r--r--comphelper/inc/comphelper/ihwrapnofilter.hxx102
-rw-r--r--comphelper/inc/comphelper/implbase_var.hxx403
-rw-r--r--comphelper/inc/comphelper/implementationreference.hxx273
-rw-r--r--comphelper/inc/comphelper/interaction.hxx170
-rw-r--r--comphelper/inc/comphelper/legacysingletonfactory.hxx72
-rw-r--r--comphelper/inc/comphelper/listenernotification.hxx308
-rw-r--r--comphelper/inc/comphelper/locale.hxx443
-rw-r--r--comphelper/inc/comphelper/logging.hxx794
-rw-r--r--comphelper/inc/comphelper/make_shared_from_uno.hxx75
-rw-r--r--comphelper/inc/comphelper/makesequence.hxx87
-rw-r--r--comphelper/inc/comphelper/mediadescriptor.hxx288
-rw-r--r--comphelper/inc/comphelper/mimeconfighelper.hxx133
-rw-r--r--comphelper/inc/comphelper/namecontainer.hxx42
-rw-r--r--comphelper/inc/comphelper/namedvaluecollection.hxx348
-rw-r--r--comphelper/inc/comphelper/numberedcollection.hxx198
-rw-r--r--comphelper/inc/comphelper/numbers.hxx74
-rw-r--r--comphelper/inc/comphelper/officeresourcebundle.hxx116
-rw-r--r--comphelper/inc/comphelper/ofopxmlhelper.hxx139
-rw-r--r--comphelper/inc/comphelper/optional.hxx90
-rw-r--r--comphelper/inc/comphelper/optionalvalue.hxx187
-rw-r--r--comphelper/inc/comphelper/oslfile2streamwrap.hxx108
-rw-r--r--comphelper/inc/comphelper/otransactedfilestream.hxx136
-rw-r--r--comphelper/inc/comphelper/processfactory.hxx98
-rw-r--r--comphelper/inc/comphelper/propagg.hxx329
-rw-r--r--comphelper/inc/comphelper/proparrhlp.hxx182
-rw-r--r--comphelper/inc/comphelper/property.hxx238
-rw-r--r--comphelper/inc/comphelper/propertybag.hxx237
-rw-r--r--comphelper/inc/comphelper/propertycontainer.hxx97
-rw-r--r--comphelper/inc/comphelper/propertycontainerhelper.hxx218
-rw-r--r--comphelper/inc/comphelper/propertysethelper.hxx102
-rw-r--r--comphelper/inc/comphelper/propertysetinfo.hxx103
-rw-r--r--comphelper/inc/comphelper/propertystatecontainer.hxx120
-rw-r--r--comphelper/inc/comphelper/propmultiplex.hxx116
-rw-r--r--comphelper/inc/comphelper/propstate.hxx112
-rw-r--r--comphelper/inc/comphelper/proxyaggregation.hxx229
-rw-r--r--comphelper/inc/comphelper/querydeep.hxx484
-rw-r--r--comphelper/inc/comphelper/regpathhelper.hxx71
-rw-r--r--comphelper/inc/comphelper/scopeguard.hxx72
-rw-r--r--comphelper/inc/comphelper/seekableinput.hxx84
-rw-r--r--comphelper/inc/comphelper/seqstream.hxx146
-rw-r--r--comphelper/inc/comphelper/sequence.hxx389
-rw-r--r--comphelper/inc/comphelper/sequenceashashmap.hxx384
-rw-r--r--comphelper/inc/comphelper/sequenceasvector.hxx247
-rw-r--r--comphelper/inc/comphelper/servicedecl.hxx459
-rw-r--r--comphelper/inc/comphelper/servicehelper.hxx105
-rw-r--r--comphelper/inc/comphelper/serviceinfohelper.hxx63
-rw-r--r--comphelper/inc/comphelper/sharedmutex.hxx91
-rw-r--r--comphelper/inc/comphelper/stl_types.hxx282
-rw-r--r--comphelper/inc/comphelper/stlunosequence.hxx86
-rw-r--r--comphelper/inc/comphelper/storagehelper.hxx166
-rw-r--r--comphelper/inc/comphelper/streamsection.hxx88
-rw-r--r--comphelper/inc/comphelper/string.hxx135
-rw-r--r--comphelper/inc/comphelper/synchronousdispatch.hxx74
-rw-r--r--comphelper/inc/comphelper/types.hxx180
-rw-r--r--comphelper/inc/comphelper/uieventslogger.hxx57
-rw-r--r--comphelper/inc/comphelper/uno3.hxx302
-rw-r--r--comphelper/inc/comphelper/unwrapargs.hxx150
-rw-r--r--comphelper/inc/comphelper/weak.hxx63
-rw-r--r--comphelper/inc/comphelper/weakbag.hxx92
-rw-r--r--comphelper/inc/comphelper/weakeventlistener.hxx189
-rw-r--r--comphelper/inc/makefile.mk48
-rw-r--r--comphelper/inc/pch/precompiled_comphelper.cxx29
-rw-r--r--comphelper/inc/pch/precompiled_comphelper.hxx32
-rw-r--r--comphelper/prj/build.lst13
-rw-r--r--comphelper/prj/d.lst14
-rw-r--r--comphelper/qa/complex/comphelper/Map.java514
-rw-r--r--comphelper/qa/complex/comphelper/SequenceOutputStreamUnitTest.java71
-rw-r--r--comphelper/qa/complex/comphelper/Test01.java107
-rw-r--r--comphelper/qa/complex/comphelper/TestHelper.java49
-rw-r--r--comphelper/qa/complex/comphelper_all.sce2
-rw-r--r--comphelper/qa/complex/makefile.mk97
-rw-r--r--comphelper/qa/makefile.mk54
-rw-r--r--comphelper/qa/test_string.cxx82
-rw-r--r--comphelper/qa/test_weakbag.cxx70
-rw-r--r--comphelper/qa/version.map34
-rw-r--r--comphelper/source/compare/AnyCompareFactory.cxx191
-rw-r--r--comphelper/source/compare/makefile.mk47
-rw-r--r--comphelper/source/container/IndexedPropertyValuesContainer.cxx270
-rw-r--r--comphelper/source/container/NamedPropertyValuesContainer.cxx239
-rw-r--r--comphelper/source/container/container.cxx153
-rw-r--r--comphelper/source/container/containermultiplexer.cxx203
-rw-r--r--comphelper/source/container/embeddedobjectcontainer.cxx1663
-rw-r--r--comphelper/source/container/enumerablemap.cxx1000
-rw-r--r--comphelper/source/container/enumhelper.cxx297
-rw-r--r--comphelper/source/container/makefile.mk55
-rw-r--r--comphelper/source/container/namecontainer.cxx211
-rw-r--r--comphelper/source/eventattachermgr/eventattachermgr.cxx1036
-rw-r--r--comphelper/source/eventattachermgr/makefile.mk50
-rw-r--r--comphelper/source/inc/comphelper_module.hxx43
-rw-r--r--comphelper/source/misc/SelectionMultiplex.cxx174
-rw-r--r--comphelper/source/misc/accessiblecomponenthelper.cxx221
-rw-r--r--comphelper/source/misc/accessiblecontexthelper.cxx356
-rw-r--r--comphelper/source/misc/accessibleeventbuffer.cxx110
-rw-r--r--comphelper/source/misc/accessibleeventnotifier.cxx259
-rw-r--r--comphelper/source/misc/accessiblekeybindinghelper.cxx114
-rw-r--r--comphelper/source/misc/accessibleselectionhelper.cxx192
-rw-r--r--comphelper/source/misc/accessibletexthelper.cxx915
-rw-r--r--comphelper/source/misc/accessiblewrapper.cxx683
-rw-r--r--comphelper/source/misc/accimplaccess.cxx189
-rw-r--r--comphelper/source/misc/anytostring.cxx335
-rw-r--r--comphelper/source/misc/asyncnotification.cxx281
-rw-r--r--comphelper/source/misc/comphelper_module.cxx41
-rw-r--r--comphelper/source/misc/comphelper_services.cxx77
-rw-r--r--comphelper/source/misc/componentbase.cxx74
-rw-r--r--comphelper/source/misc/componentcontext.cxx151
-rw-r--r--comphelper/source/misc/componentmodule.cxx237
-rw-r--r--comphelper/source/misc/configurationhelper.cxx207
-rw-r--r--comphelper/source/misc/docpasswordhelper.cxx149
-rw-r--r--comphelper/source/misc/docpasswordrequest.cxx150
-rw-r--r--comphelper/source/misc/documentinfo.cxx197
-rw-r--r--comphelper/source/misc/documentiologring.cxx179
-rw-r--r--comphelper/source/misc/documentiologring.hxx88
-rw-r--r--comphelper/source/misc/evtlistenerhlp.cxx52
-rwxr-xr-xcomphelper/source/misc/evtmethodhelper.cxx77
-rw-r--r--comphelper/source/misc/ihwrapnofilter.cxx117
-rw-r--r--comphelper/source/misc/instancelocker.cxx512
-rw-r--r--comphelper/source/misc/instancelocker.hxx133
-rw-r--r--comphelper/source/misc/interaction.cxx99
-rw-r--r--comphelper/source/misc/legacysingletonfactory.cxx197
-rw-r--r--comphelper/source/misc/listenernotification.cxx127
-rw-r--r--comphelper/source/misc/locale.cxx683
-rw-r--r--comphelper/source/misc/logging.cxx405
-rw-r--r--comphelper/source/misc/makefile.mk99
-rw-r--r--comphelper/source/misc/mediadescriptor.cxx956
-rw-r--r--comphelper/source/misc/mimeconfighelper.cxx805
-rw-r--r--comphelper/source/misc/namedvaluecollection.cxx331
-rw-r--r--comphelper/source/misc/numberedcollection.cxx276
-rw-r--r--comphelper/source/misc/numbers.cxx150
-rw-r--r--comphelper/source/misc/officeresourcebundle.cxx240
-rw-r--r--comphelper/source/misc/proxyaggregation.cxx276
-rw-r--r--comphelper/source/misc/querydeep.cxx76
-rw-r--r--comphelper/source/misc/regpathhelper.cxx235
-rw-r--r--comphelper/source/misc/scopeguard.cxx71
-rw-r--r--comphelper/source/misc/sequence.cxx103
-rw-r--r--comphelper/source/misc/sequenceashashmap.cxx400
-rw-r--r--comphelper/source/misc/servicedecl.cxx196
-rw-r--r--comphelper/source/misc/serviceinfohelper.cxx112
-rw-r--r--comphelper/source/misc/sharedmutex.cxx62
-rw-r--r--comphelper/source/misc/storagehelper.cxx435
-rw-r--r--comphelper/source/misc/string.cxx125
-rw-r--r--comphelper/source/misc/synchronousdispatch.cxx102
-rw-r--r--comphelper/source/misc/types.cxx477
-rw-r--r--comphelper/source/misc/uieventslogger.cxx686
-rw-r--r--comphelper/source/misc/weak.cxx76
-rw-r--r--comphelper/source/misc/weakeventlistener.cxx93
-rw-r--r--comphelper/source/officeinstdir/makefile.mk50
-rw-r--r--comphelper/source/officeinstdir/officeinstallationdirectories.cxx350
-rw-r--r--comphelper/source/officeinstdir/officeinstallationdirectories.hxx107
-rw-r--r--comphelper/source/processfactory/componentfactory.cxx86
-rw-r--r--comphelper/source/processfactory/makefile.mk52
-rw-r--r--comphelper/source/processfactory/processfactory.cxx127
-rw-r--r--comphelper/source/property/ChainablePropertySet.cxx321
-rw-r--r--comphelper/source/property/ChainablePropertySetInfo.cxx142
-rw-r--r--comphelper/source/property/MasterPropertySet.cxx505
-rw-r--r--comphelper/source/property/MasterPropertySetInfo.cxx170
-rw-r--r--comphelper/source/property/TypeGeneration.cxx237
-rw-r--r--comphelper/source/property/composedprops.cxx357
-rw-r--r--comphelper/source/property/genericpropertyset.cxx301
-rw-r--r--comphelper/source/property/makefile.mk65
-rw-r--r--comphelper/source/property/opropertybag.cxx585
-rw-r--r--comphelper/source/property/opropertybag.hxx242
-rw-r--r--comphelper/source/property/propagg.cxx1027
-rw-r--r--comphelper/source/property/property.cxx245
-rw-r--r--comphelper/source/property/propertybag.cxx221
-rw-r--r--comphelper/source/property/propertycontainer.cxx105
-rw-r--r--comphelper/source/property/propertycontainerhelper.cxx552
-rw-r--r--comphelper/source/property/propertysethelper.cxx328
-rw-r--r--comphelper/source/property/propertysetinfo.cxx214
-rw-r--r--comphelper/source/property/propertystatecontainer.cxx339
-rw-r--r--comphelper/source/property/propmultiplex.cxx182
-rw-r--r--comphelper/source/property/propstate.cxx261
-rw-r--r--comphelper/source/streaming/basicio.cxx174
-rw-r--r--comphelper/source/streaming/makefile.mk54
-rw-r--r--comphelper/source/streaming/memorystream.cxx247
-rw-r--r--comphelper/source/streaming/oslfile2streamwrap.cxx198
-rw-r--r--comphelper/source/streaming/otransactedfilestream.cxx824
-rw-r--r--comphelper/source/streaming/seekableinput.cxx267
-rw-r--r--comphelper/source/streaming/seqinputstreamserv.cxx251
-rw-r--r--comphelper/source/streaming/seqoutputstreamserv.cxx172
-rw-r--r--comphelper/source/streaming/seqstream.cxx243
-rw-r--r--comphelper/source/streaming/streamsection.cxx122
-rw-r--r--comphelper/source/xml/attributelist.cxx179
-rw-r--r--comphelper/source/xml/makefile.mk48
-rw-r--r--comphelper/source/xml/ofopxmlhelper.cxx467
-rw-r--r--comphelper/test/uno_iterators/makefile.mk48
-rw-r--r--comphelper/test/uno_iterators/uno_iterators.cxx218
-rw-r--r--comphelper/util/exports.dxp3
-rw-r--r--comphelper/util/makefile.mk70
-rw-r--r--comphelper/util/makefile.pmk35
-rw-r--r--comphelper/version.mk46
-rwxr-xr-xconfig.sub1566
-rw-r--r--configmgr/inc/configmgr/detail/configmgrdllapi.hxx41
-rw-r--r--configmgr/inc/configmgr/update.hxx51
-rw-r--r--configmgr/inc/makefile.mk38
-rw-r--r--configmgr/inc/pch/precompiled_configmgr.cxx28
-rw-r--r--configmgr/inc/pch/precompiled_configmgr.hxx32
-rw-r--r--configmgr/prj/build.lst3
-rw-r--r--configmgr/prj/d.lst8
-rw-r--r--configmgr/qa/unit/data.xcd5190
-rw-r--r--configmgr/qa/unit/makefile.mk91
-rw-r--r--configmgr/qa/unit/no_localization0
-rw-r--r--configmgr/qa/unit/test.cxx678
-rw-r--r--configmgr/qa/unit/urebootstrap.ini30
-rw-r--r--configmgr/qa/unit/version.map34
-rw-r--r--configmgr/qa/unoapi/makefile.mk38
-rw-r--r--configmgr/qa/unoapi/module.sce29
-rw-r--r--configmgr/source/README156
-rw-r--r--configmgr/source/access.cxx2186
-rw-r--r--configmgr/source/access.hxx582
-rw-r--r--configmgr/source/broadcaster.cxx237
-rw-r--r--configmgr/source/broadcaster.hxx181
-rw-r--r--configmgr/source/childaccess.cxx391
-rw-r--r--configmgr/source/childaccess.hxx157
-rw-r--r--configmgr/source/components.cxx652
-rw-r--r--configmgr/source/components.hxx151
-rw-r--r--configmgr/source/configurationprovider.cxx519
-rw-r--r--configmgr/source/configurationprovider.hxx67
-rw-r--r--configmgr/source/configurationregistry.cxx950
-rw-r--r--configmgr/source/configurationregistry.hxx57
-rw-r--r--configmgr/source/data.cxx318
-rw-r--r--configmgr/source/data.hxx86
-rw-r--r--configmgr/source/defaultprovider.cxx131
-rw-r--r--configmgr/source/defaultprovider.hxx59
-rw-r--r--configmgr/source/groupnode.cxx88
-rw-r--r--configmgr/source/groupnode.hxx75
-rw-r--r--configmgr/source/localizedpropertynode.cxx87
-rw-r--r--configmgr/source/localizedpropertynode.hxx76
-rw-r--r--configmgr/source/localizedvaluenode.cxx78
-rw-r--r--configmgr/source/localizedvaluenode.hxx66
-rw-r--r--configmgr/source/lock.cxx39
-rw-r--r--configmgr/source/lock.hxx41
-rw-r--r--configmgr/source/makefile.mk83
-rw-r--r--configmgr/source/modifications.cxx66
-rw-r--r--configmgr/source/modifications.hxx65
-rw-r--r--configmgr/source/node.cxx108
-rw-r--r--configmgr/source/node.hxx86
-rw-r--r--configmgr/source/nodemap.cxx50
-rw-r--r--configmgr/source/nodemap.hxx49
-rw-r--r--configmgr/source/pad.cxx91
-rw-r--r--configmgr/source/pad.hxx61
-rw-r--r--configmgr/source/parsemanager.cxx85
-rw-r--r--configmgr/source/parsemanager.hxx69
-rw-r--r--configmgr/source/parser.hxx62
-rw-r--r--configmgr/source/path.hxx43
-rw-r--r--configmgr/source/propertynode.cxx110
-rw-r--r--configmgr/source/propertynode.hxx83
-rw-r--r--configmgr/source/rootaccess.cxx319
-rw-r--r--configmgr/source/rootaccess.hxx155
-rw-r--r--configmgr/source/services.cxx118
-rw-r--r--configmgr/source/setnode.cxx126
-rw-r--r--configmgr/source/setnode.hxx84
-rw-r--r--configmgr/source/span.hxx64
-rw-r--r--configmgr/source/type.cxx187
-rw-r--r--configmgr/source/type.hxx56
-rw-r--r--configmgr/source/update.cxx66
-rw-r--r--configmgr/source/valueparser.cxx476
-rw-r--r--configmgr/source/valueparser.hxx94
-rw-r--r--configmgr/source/writemodfile.cxx631
-rw-r--r--configmgr/source/writemodfile.hxx45
-rw-r--r--configmgr/source/xcdparser.cxx183
-rw-r--r--configmgr/source/xcdparser.hxx78
-rw-r--r--configmgr/source/xcsparser.cxx598
-rw-r--r--configmgr/source/xcsparser.hxx106
-rw-r--r--configmgr/source/xcuparser.cxx1077
-rw-r--r--configmgr/source/xcuparser.hxx142
-rw-r--r--configmgr/source/xmldata.cxx204
-rw-r--r--configmgr/source/xmldata.hxx58
-rw-r--r--configmgr/source/xmlreader.cxx1054
-rw-r--r--configmgr/source/xmlreader.hxx186
-rwxr-xr-xconfigure.cmd7
-rw-r--r--configure.in6811
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/FileSystemRuntimeException.java73
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeInputStreamHelper.java74
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeLibraries.java80
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeOutputStreamHelper.java48
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/NativeStorageAccess.java80
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageAccess.java171
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageFileAccess.java107
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageNativeInputStream.java53
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/StorageNativeOutputStream.java143
-rw-r--r--connectivity/com/sun/star/sdbcx/comp/hsqldb/makefile.mk66
-rw-r--r--connectivity/dbtools.pmk29
-rw-r--r--connectivity/inc/connectivity/BlobHelper.hxx51
-rw-r--r--connectivity/inc/connectivity/CommonTools.hxx216
-rw-r--r--connectivity/inc/connectivity/ConnectionWrapper.hxx98
-rw-r--r--connectivity/inc/connectivity/DateConversion.hxx94
-rwxr-xr-xconnectivity/inc/connectivity/DriversConfig.hxx87
-rw-r--r--connectivity/inc/connectivity/FValue.hxx467
-rw-r--r--connectivity/inc/connectivity/IParseContext.hxx108
-rw-r--r--connectivity/inc/connectivity/PColumn.hxx150
-rw-r--r--connectivity/inc/connectivity/ParameterCont.hxx59
-rw-r--r--connectivity/inc/connectivity/StdTypeDefs.hxx48
-rw-r--r--connectivity/inc/connectivity/TColumnsHelper.hxx70
-rw-r--r--connectivity/inc/connectivity/TIndex.hxx56
-rw-r--r--connectivity/inc/connectivity/TIndexColumns.hxx50
-rw-r--r--connectivity/inc/connectivity/TIndexes.hxx57
-rw-r--r--connectivity/inc/connectivity/TKey.hxx54
-rw-r--r--connectivity/inc/connectivity/TKeyColumns.hxx50
-rw-r--r--connectivity/inc/connectivity/TKeys.hxx66
-rw-r--r--connectivity/inc/connectivity/TTableHelper.hxx161
-rw-r--r--connectivity/inc/connectivity/conncleanup.hxx97
-rw-r--r--connectivity/inc/connectivity/dbcharset.hxx168
-rw-r--r--connectivity/inc/connectivity/dbconversion.hxx224
-rw-r--r--connectivity/inc/connectivity/dbexception.hxx377
-rw-r--r--connectivity/inc/connectivity/dbmetadata.hxx200
-rw-r--r--connectivity/inc/connectivity/dbtools.hxx780
-rw-r--r--connectivity/inc/connectivity/dbtoolsdllapi.hxx40
-rw-r--r--connectivity/inc/connectivity/filtermanager.hxx131
-rw-r--r--connectivity/inc/connectivity/formattedcolumnvalue.hxx105
-rw-r--r--connectivity/inc/connectivity/parameters.hxx426
-rw-r--r--connectivity/inc/connectivity/paramwrapper.hxx208
-rw-r--r--connectivity/inc/connectivity/predicateinput.hxx126
-rw-r--r--connectivity/inc/connectivity/sdbcx/IRefreshable.hxx57
-rw-r--r--connectivity/inc/connectivity/sdbcx/VCatalog.hxx132
-rw-r--r--connectivity/inc/connectivity/sdbcx/VCollection.hxx243
-rw-r--r--connectivity/inc/connectivity/sdbcx/VColumn.hxx117
-rw-r--r--connectivity/inc/connectivity/sdbcx/VDescriptor.hxx102
-rw-r--r--connectivity/inc/connectivity/sdbcx/VGroup.hxx113
-rw-r--r--connectivity/inc/connectivity/sdbcx/VIndex.hxx117
-rw-r--r--connectivity/inc/connectivity/sdbcx/VIndexColumn.hxx69
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKey.hxx128
-rw-r--r--connectivity/inc/connectivity/sdbcx/VKeyColumn.hxx71
-rw-r--r--connectivity/inc/connectivity/sdbcx/VTable.hxx148
-rw-r--r--connectivity/inc/connectivity/sdbcx/VTypeDef.hxx47
-rw-r--r--connectivity/inc/connectivity/sdbcx/VUser.hxx107
-rw-r--r--connectivity/inc/connectivity/sdbcx/VView.hxx108
-rw-r--r--connectivity/inc/connectivity/sqlerror.hxx340
-rw-r--r--connectivity/inc/connectivity/sqliterator.hxx358
-rw-r--r--connectivity/inc/connectivity/sqlnode.hxx467
-rw-r--r--connectivity/inc/connectivity/sqlparse.hxx261
-rw-r--r--connectivity/inc/connectivity/standardsqlstate.hxx73
-rw-r--r--connectivity/inc/connectivity/statementcomposer.hxx111
-rw-r--r--connectivity/inc/connectivity/virtualdbtools.hxx358
-rw-r--r--connectivity/inc/connectivity/warningscontainer.hxx107
-rw-r--r--connectivity/inc/makefile.mk47
-rw-r--r--connectivity/inc/pch/precompiled_connectivity.cxx29
-rw-r--r--connectivity/inc/pch/precompiled_connectivity.hxx334
-rwxr-xr-xconnectivity/makefile.pmk62
-rw-r--r--connectivity/prj/build.lst32
-rw-r--r--connectivity/prj/d.lst33
-rw-r--r--connectivity/qa/connectivity/GeneralTest.java62
-rw-r--r--connectivity/qa/connectivity/makefile.mk65
-rwxr-xr-xconnectivity/qa/connectivity/tools/AbstractDatabase.java222
-rw-r--r--connectivity/qa/connectivity/tools/CRMDatabase.java292
-rw-r--r--connectivity/qa/connectivity/tools/DataSource.java145
-rwxr-xr-xconnectivity/qa/connectivity/tools/DatabaseAccess.java63
-rwxr-xr-xconnectivity/qa/connectivity/tools/DbaseDatabase.java98
-rw-r--r--connectivity/qa/connectivity/tools/HsqlColumnDescriptor.java84
-rw-r--r--connectivity/qa/connectivity/tools/HsqlDatabase.java213
-rw-r--r--connectivity/qa/connectivity/tools/HsqlTableDescriptor.java102
-rw-r--r--connectivity/qa/connectivity/tools/QueryDefinition.java74
-rw-r--r--connectivity/qa/connectivity/tools/RowSet.java292
-rw-r--r--connectivity/qa/connectivity/tools/makefile.mk68
-rw-r--r--connectivity/qa/connectivity/tools/sdb/Connection.java93
-rw-r--r--connectivity/qa/drivers/dbase/.nbattrs10
-rw-r--r--connectivity/qa/drivers/dbase/DBaseDateFunctions.java309
-rw-r--r--connectivity/qa/drivers/dbase/DBaseDriverTest.java94
-rw-r--r--connectivity/qa/drivers/dbase/DBaseNumericFunctions.java402
-rwxr-xr-xconnectivity/qa/drivers/dbase/DBaseSqlTests.java96
-rw-r--r--connectivity/qa/drivers/dbase/DBaseStringFunctions.java323
-rw-r--r--connectivity/qa/drivers/dbase/makefile.mk64
-rw-r--r--connectivity/qa/drivers/dbase/test.properties4
-rw-r--r--connectivity/qa/drivers/hsqldb/DatabaseMetaData.java152
-rw-r--r--connectivity/qa/drivers/hsqldb/DriverTest.java170
-rw-r--r--connectivity/qa/drivers/hsqldb/TestCacheSize.java617
-rw-r--r--connectivity/qa/drivers/jdbc/LongVarCharTest.java131
-rw-r--r--connectivity/qa/drivers/jdbc/makefile.mk66
-rw-r--r--connectivity/source/commontools/AutoRetrievingBase.cxx71
-rw-r--r--connectivity/source/commontools/BlobHelper.cxx69
-rw-r--r--connectivity/source/commontools/CommonTools.cxx369
-rw-r--r--connectivity/source/commontools/ConnectionWrapper.cxx267
-rw-r--r--connectivity/source/commontools/DateConversion.cxx468
-rwxr-xr-xconnectivity/source/commontools/DriversConfig.cxx262
-rw-r--r--connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx913
-rw-r--r--connectivity/source/commontools/FDatabaseMetaDataResultSetMetaData.cxx692
-rw-r--r--connectivity/source/commontools/FValue.cxx2270
-rw-r--r--connectivity/source/commontools/ParamterSubstitution.cxx132
-rw-r--r--connectivity/source/commontools/RowFunctionParser.cxx499
-rw-r--r--connectivity/source/commontools/TColumnsHelper.cxx246
-rw-r--r--connectivity/source/commontools/TConnection.cxx106
-rw-r--r--connectivity/source/commontools/TDatabaseMetaDataBase.cxx333
-rw-r--r--connectivity/source/commontools/TIndex.cxx110
-rw-r--r--connectivity/source/commontools/TIndexColumns.cxx127
-rw-r--r--connectivity/source/commontools/TIndexes.cxx248
-rw-r--r--connectivity/source/commontools/TKey.cxx119
-rw-r--r--connectivity/source/commontools/TKeyColumns.cxx145
-rw-r--r--connectivity/source/commontools/TKeys.cxx302
-rw-r--r--connectivity/source/commontools/TPrivilegesResultSet.cxx155
-rw-r--r--connectivity/source/commontools/TSkipDeletedSet.cxx278
-rw-r--r--connectivity/source/commontools/TSortIndex.cxx178
-rw-r--r--connectivity/source/commontools/TTableHelper.cxx578
-rw-r--r--connectivity/source/commontools/conncleanup.cxx247
-rw-r--r--connectivity/source/commontools/dbcharset.cxx232
-rw-r--r--connectivity/source/commontools/dbconversion.cxx490
-rw-r--r--connectivity/source/commontools/dbexception.cxx564
-rw-r--r--connectivity/source/commontools/dbmetadata.cxx448
-rw-r--r--connectivity/source/commontools/dbtools.cxx2131
-rw-r--r--connectivity/source/commontools/dbtools2.cxx968
-rw-r--r--connectivity/source/commontools/filtermanager.cxx198
-rw-r--r--connectivity/source/commontools/formattedcolumnvalue.cxx320
-rw-r--r--connectivity/source/commontools/makefile.mk103
-rw-r--r--connectivity/source/commontools/parameters.cxx1120
-rw-r--r--connectivity/source/commontools/paramwrapper.cxx364
-rw-r--r--connectivity/source/commontools/predicateinput.cxx391
-rw-r--r--connectivity/source/commontools/propertyids.cxx196
-rw-r--r--connectivity/source/commontools/sqlerror.cxx363
-rw-r--r--connectivity/source/commontools/statementcomposer.cxx315
-rw-r--r--connectivity/source/commontools/warningscontainer.cxx123
-rw-r--r--connectivity/source/cpool/ZConnectionPool.cxx336
-rw-r--r--connectivity/source/cpool/ZConnectionPool.hxx155
-rw-r--r--connectivity/source/cpool/ZConnectionWrapper.cxx258
-rw-r--r--connectivity/source/cpool/ZConnectionWrapper.hxx87
-rw-r--r--connectivity/source/cpool/ZDriverWrapper.cxx135
-rw-r--r--connectivity/source/cpool/ZDriverWrapper.hxx89
-rw-r--r--connectivity/source/cpool/ZPoolCollection.cxx581
-rw-r--r--connectivity/source/cpool/ZPoolCollection.hxx148
-rw-r--r--connectivity/source/cpool/ZPooledConnection.cxx88
-rw-r--r--connectivity/source/cpool/ZPooledConnection.hxx68
-rw-r--r--connectivity/source/cpool/Zregistration.cxx108
-rw-r--r--connectivity/source/cpool/dbpool.map8
-rw-r--r--connectivity/source/cpool/dbpool.xml28
-rw-r--r--connectivity/source/cpool/exports.dxp3
-rw-r--r--connectivity/source/cpool/makefile.mk81
-rw-r--r--connectivity/source/dbtools/dbt.map8
-rw-r--r--connectivity/source/dbtools/dbt.xml16
-rw-r--r--connectivity/source/dbtools/exports.dxp3
-rw-r--r--connectivity/source/dbtools/makefile.mk97
-rw-r--r--connectivity/source/drivers/adabas/BCatalog.cxx168
-rw-r--r--connectivity/source/drivers/adabas/BColumns.cxx183
-rw-r--r--connectivity/source/drivers/adabas/BConnection.cxx274
-rw-r--r--connectivity/source/drivers/adabas/BDatabaseMetaData.cxx161
-rw-r--r--connectivity/source/drivers/adabas/BDriver.cxx1819
-rw-r--r--connectivity/source/drivers/adabas/BFunctions.cxx275
-rw-r--r--connectivity/source/drivers/adabas/BGroup.cxx94
-rw-r--r--connectivity/source/drivers/adabas/BGroups.cxx93
-rw-r--r--connectivity/source/drivers/adabas/BIndex.cxx106
-rw-r--r--connectivity/source/drivers/adabas/BIndexColumns.cxx124
-rw-r--r--connectivity/source/drivers/adabas/BIndexes.cxx192
-rw-r--r--connectivity/source/drivers/adabas/BKeys.cxx181
-rw-r--r--connectivity/source/drivers/adabas/BPreparedStatement.cxx76
-rw-r--r--connectivity/source/drivers/adabas/BResultSet.cxx223
-rw-r--r--connectivity/source/drivers/adabas/BResultSetMetaData.cxx87
-rw-r--r--connectivity/source/drivers/adabas/BStatement.cxx79
-rw-r--r--connectivity/source/drivers/adabas/BTable.cxx376
-rw-r--r--connectivity/source/drivers/adabas/BTables.cxx522
-rw-r--r--connectivity/source/drivers/adabas/BUser.cxx332
-rw-r--r--connectivity/source/drivers/adabas/BUsers.cxx128
-rw-r--r--connectivity/source/drivers/adabas/BViews.cxx194
-rw-r--r--connectivity/source/drivers/adabas/Bservices.cxx176
-rw-r--r--connectivity/source/drivers/adabas/adabas.map8
-rw-r--r--connectivity/source/drivers/adabas/adabas.mxp.map148
-rwxr-xr-xconnectivity/source/drivers/adabas/adabas.xcu125
-rw-r--r--connectivity/source/drivers/adabas/adabas.xml27
-rw-r--r--connectivity/source/drivers/adabas/exports.dxp3
-rw-r--r--connectivity/source/drivers/adabas/makefile.mk106
-rw-r--r--connectivity/source/drivers/ado/ACallableStatement.cxx235
-rw-r--r--connectivity/source/drivers/ado/ACatalog.cxx127
-rw-r--r--connectivity/source/drivers/ado/AColumn.cxx299
-rw-r--r--connectivity/source/drivers/ado/AColumns.cxx142
-rw-r--r--connectivity/source/drivers/ado/AConnection.cxx625
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaData.cxx1093
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaDataImpl.cxx608
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx1218
-rw-r--r--connectivity/source/drivers/ado/ADatabaseMetaDataResultSetMetaData.cxx233
-rw-r--r--connectivity/source/drivers/ado/ADriver.cxx271
-rw-r--r--connectivity/source/drivers/ado/AGroup.cxx192
-rw-r--r--connectivity/source/drivers/ado/AGroups.cxx88
-rw-r--r--connectivity/source/drivers/ado/AIndex.cxx157
-rw-r--r--connectivity/source/drivers/ado/AIndexes.cxx90
-rw-r--r--connectivity/source/drivers/ado/AKey.cxx167
-rw-r--r--connectivity/source/drivers/ado/AKeyColumn.cxx71
-rw-r--r--connectivity/source/drivers/ado/AKeyColumns.cxx97
-rw-r--r--connectivity/source/drivers/ado/AKeys.cxx115
-rw-r--r--connectivity/source/drivers/ado/APreparedStatement.cxx564
-rw-r--r--connectivity/source/drivers/ado/AResultSet.cxx1169
-rw-r--r--connectivity/source/drivers/ado/AResultSetMetaData.cxx262
-rw-r--r--connectivity/source/drivers/ado/AStatement.cxx841
-rw-r--r--connectivity/source/drivers/ado/ATable.cxx257
-rw-r--r--connectivity/source/drivers/ado/ATables.cxx115
-rw-r--r--connectivity/source/drivers/ado/AUser.cxx227
-rw-r--r--connectivity/source/drivers/ado/AUsers.cxx87
-rw-r--r--connectivity/source/drivers/ado/AView.cxx123
-rw-r--r--connectivity/source/drivers/ado/AViews.cxx104
-rw-r--r--connectivity/source/drivers/ado/Aolevariant.cxx791
-rw-r--r--connectivity/source/drivers/ado/Aservices.cxx175
-rw-r--r--connectivity/source/drivers/ado/Awrapado.cxx2201
-rwxr-xr-xconnectivity/source/drivers/ado/ado.xcu244
-rw-r--r--connectivity/source/drivers/ado/ado.xml29
-rw-r--r--connectivity/source/drivers/ado/ado_post_sys_include.h32
-rw-r--r--connectivity/source/drivers/ado/ado_pre_sys_include.h37
-rw-r--r--connectivity/source/drivers/ado/adoimp.cxx336
-rw-r--r--connectivity/source/drivers/ado/exports.dxp3
-rw-r--r--connectivity/source/drivers/ado/makefile.mk114
-rw-r--r--connectivity/source/drivers/calc/CCatalog.cxx80
-rw-r--r--connectivity/source/drivers/calc/CColumns.cxx55
-rw-r--r--connectivity/source/drivers/calc/CConnection.cxx295
-rw-r--r--connectivity/source/drivers/calc/CDatabaseMetaData.cxx490
-rw-r--r--connectivity/source/drivers/calc/CDriver.cxx105
-rw-r--r--connectivity/source/drivers/calc/CPreparedStatement.cxx43
-rw-r--r--connectivity/source/drivers/calc/CResultSet.cxx191
-rw-r--r--connectivity/source/drivers/calc/CStatement.cxx43
-rw-r--r--connectivity/source/drivers/calc/CTable.cxx870
-rw-r--r--connectivity/source/drivers/calc/CTables.cxx62
-rw-r--r--connectivity/source/drivers/calc/CalcDriver.xml32
-rw-r--r--connectivity/source/drivers/calc/Cservices.cxx175
-rw-r--r--connectivity/source/drivers/calc/calc.map8
-rwxr-xr-xconnectivity/source/drivers/calc/calc.xcu63
-rw-r--r--connectivity/source/drivers/calc/exports.dxp3
-rw-r--r--connectivity/source/drivers/calc/makefile.mk96
-rw-r--r--connectivity/source/drivers/dbase/DCatalog.cxx70
-rw-r--r--connectivity/source/drivers/dbase/DCode.cxx131
-rw-r--r--connectivity/source/drivers/dbase/DColumns.cxx91
-rw-r--r--connectivity/source/drivers/dbase/DConnection.cxx135
-rw-r--r--connectivity/source/drivers/dbase/DDatabaseMetaData.cxx416
-rw-r--r--connectivity/source/drivers/dbase/DDriver.cxx127
-rw-r--r--connectivity/source/drivers/dbase/DIndex.cxx679
-rw-r--r--connectivity/source/drivers/dbase/DIndexColumns.cxx94
-rw-r--r--connectivity/source/drivers/dbase/DIndexIter.cxx315
-rw-r--r--connectivity/source/drivers/dbase/DIndexes.cxx137
-rw-r--r--connectivity/source/drivers/dbase/DNoException.cxx650
-rw-r--r--connectivity/source/drivers/dbase/DPreparedStatement.cxx42
-rw-r--r--connectivity/source/drivers/dbase/DResultSet.cxx249
-rw-r--r--connectivity/source/drivers/dbase/DStatement.cxx44
-rw-r--r--connectivity/source/drivers/dbase/DTable.cxx2853
-rw-r--r--connectivity/source/drivers/dbase/DTables.cxx144
-rw-r--r--connectivity/source/drivers/dbase/Dservices.cxx175
-rw-r--r--connectivity/source/drivers/dbase/dbase.map10
-rw-r--r--connectivity/source/drivers/dbase/dbase.mxp.map173
-rwxr-xr-xconnectivity/source/drivers/dbase/dbase.xcu95
-rw-r--r--connectivity/source/drivers/dbase/dbase.xml33
-rw-r--r--connectivity/source/drivers/dbase/dindexnode.cxx1056
-rw-r--r--connectivity/source/drivers/dbase/exports.dxp3
-rw-r--r--connectivity/source/drivers/dbase/makefile.mk129
-rw-r--r--connectivity/source/drivers/evoab/LCatalog.cxx72
-rw-r--r--connectivity/source/drivers/evoab/LCatalog.hxx49
-rw-r--r--connectivity/source/drivers/evoab/LColumnAlias.cxx232
-rw-r--r--connectivity/source/drivers/evoab/LColumnAlias.hxx113
-rw-r--r--connectivity/source/drivers/evoab/LColumns.cxx57
-rw-r--r--connectivity/source/drivers/evoab/LColumns.hxx52
-rw-r--r--connectivity/source/drivers/evoab/LConfigAccess.cxx161
-rw-r--r--connectivity/source/drivers/evoab/LConfigAccess.hxx46
-rw-r--r--connectivity/source/drivers/evoab/LConnection.cxx267
-rw-r--r--connectivity/source/drivers/evoab/LConnection.hxx78
-rw-r--r--connectivity/source/drivers/evoab/LDatabaseMetaData.cxx391
-rw-r--r--connectivity/source/drivers/evoab/LDatabaseMetaData.hxx56
-rw-r--r--connectivity/source/drivers/evoab/LDebug.cxx42
-rw-r--r--connectivity/source/drivers/evoab/LDebug.hxx42
-rw-r--r--connectivity/source/drivers/evoab/LDriver.cxx505
-rw-r--r--connectivity/source/drivers/evoab/LDriver.hxx115
-rw-r--r--connectivity/source/drivers/evoab/LFolderList.cxx563
-rw-r--r--connectivity/source/drivers/evoab/LFolderList.hxx92
-rw-r--r--connectivity/source/drivers/evoab/LNoException.cxx324
-rw-r--r--connectivity/source/drivers/evoab/LPreparedStatement.cxx43
-rw-r--r--connectivity/source/drivers/evoab/LPreparedStatement.hxx50
-rw-r--r--connectivity/source/drivers/evoab/LResultSet.cxx190
-rw-r--r--connectivity/source/drivers/evoab/LResultSet.hxx81
-rw-r--r--connectivity/source/drivers/evoab/LServices.cxx175
-rw-r--r--connectivity/source/drivers/evoab/LStatement.cxx43
-rw-r--r--connectivity/source/drivers/evoab/LStatement.hxx49
-rw-r--r--connectivity/source/drivers/evoab/LTable.cxx870
-rw-r--r--connectivity/source/drivers/evoab/LTable.hxx100
-rw-r--r--connectivity/source/drivers/evoab/LTables.cxx62
-rw-r--r--connectivity/source/drivers/evoab/LTables.hxx52
-rw-r--r--connectivity/source/drivers/evoab/evoab.map8
-rwxr-xr-xconnectivity/source/drivers/evoab/evoab.xcu61
-rw-r--r--connectivity/source/drivers/evoab/evoab.xml33
-rw-r--r--connectivity/source/drivers/evoab/exports.dxp3
-rw-r--r--connectivity/source/drivers/evoab/makefile.mk104
-rw-r--r--connectivity/source/drivers/evoab2/EApi.cxx135
-rw-r--r--connectivity/source/drivers/evoab2/EApi.h143
-rw-r--r--connectivity/source/drivers/evoab2/NCatalog.cxx100
-rw-r--r--connectivity/source/drivers/evoab2/NCatalog.hxx56
-rw-r--r--connectivity/source/drivers/evoab2/NColumns.cxx89
-rw-r--r--connectivity/source/drivers/evoab2/NColumns.hxx57
-rw-r--r--connectivity/source/drivers/evoab2/NConnection.cxx292
-rw-r--r--connectivity/source/drivers/evoab2/NConnection.hxx123
-rw-r--r--connectivity/source/drivers/evoab2/NDatabaseMetaData.cxx1192
-rw-r--r--connectivity/source/drivers/evoab2/NDatabaseMetaData.hxx236
-rw-r--r--connectivity/source/drivers/evoab2/NDebug.cxx40
-rw-r--r--connectivity/source/drivers/evoab2/NDebug.hxx42
-rw-r--r--connectivity/source/drivers/evoab2/NDriver.cxx190
-rw-r--r--connectivity/source/drivers/evoab2/NDriver.hxx98
-rw-r--r--connectivity/source/drivers/evoab2/NPreparedStatement.cxx335
-rw-r--r--connectivity/source/drivers/evoab2/NPreparedStatement.hxx138
-rw-r--r--connectivity/source/drivers/evoab2/NResultSet.cxx1020
-rw-r--r--connectivity/source/drivers/evoab2/NResultSet.hxx183
-rw-r--r--connectivity/source/drivers/evoab2/NResultSetMetaData.cxx194
-rw-r--r--connectivity/source/drivers/evoab2/NResultSetMetaData.hxx88
-rw-r--r--connectivity/source/drivers/evoab2/NServices.cxx175
-rw-r--r--connectivity/source/drivers/evoab2/NStatement.cxx681
-rw-r--r--connectivity/source/drivers/evoab2/NStatement.hxx288
-rw-r--r--connectivity/source/drivers/evoab2/NTable.cxx89
-rw-r--r--connectivity/source/drivers/evoab2/NTable.hxx67
-rw-r--r--connectivity/source/drivers/evoab2/NTables.cxx105
-rw-r--r--connectivity/source/drivers/evoab2/NTables.hxx54
-rw-r--r--connectivity/source/drivers/evoab2/evoab.xml30
-rw-r--r--connectivity/source/drivers/evoab2/evoab2.map8
-rwxr-xr-xconnectivity/source/drivers/evoab2/evoab2.xcu76
-rw-r--r--connectivity/source/drivers/evoab2/makefile.mk112
-rw-r--r--connectivity/source/drivers/file/FCatalog.cxx121
-rw-r--r--connectivity/source/drivers/file/FColumns.cxx93
-rw-r--r--connectivity/source/drivers/file/FConnection.cxx461
-rw-r--r--connectivity/source/drivers/file/FDatabaseMetaData.cxx1223
-rw-r--r--connectivity/source/drivers/file/FDateFunctions.cxx289
-rw-r--r--connectivity/source/drivers/file/FDriver.cxx285
-rw-r--r--connectivity/source/drivers/file/FNoException.cxx131
-rw-r--r--connectivity/source/drivers/file/FNumericFunctions.cxx249
-rw-r--r--connectivity/source/drivers/file/FPreparedStatement.cxx633
-rw-r--r--connectivity/source/drivers/file/FResultSet.cxx1896
-rw-r--r--connectivity/source/drivers/file/FResultSetMetaData.cxx219
-rw-r--r--connectivity/source/drivers/file/FStatement.cxx860
-rw-r--r--connectivity/source/drivers/file/FStringFunctions.cxx267
-rw-r--r--connectivity/source/drivers/file/FTable.cxx257
-rw-r--r--connectivity/source/drivers/file/FTables.cxx83
-rw-r--r--connectivity/source/drivers/file/fanalyzer.cxx322
-rw-r--r--connectivity/source/drivers/file/fcode.cxx519
-rw-r--r--connectivity/source/drivers/file/fcomp.cxx920
-rw-r--r--connectivity/source/drivers/file/file.xml32
-rw-r--r--connectivity/source/drivers/file/makefile.mk108
-rw-r--r--connectivity/source/drivers/file/quotedstring.cxx164
-rw-r--r--connectivity/source/drivers/flat/ECatalog.cxx75
-rw-r--r--connectivity/source/drivers/flat/EColumns.cxx56
-rw-r--r--connectivity/source/drivers/flat/EConnection.cxx181
-rw-r--r--connectivity/source/drivers/flat/EDatabaseMetaData.cxx267
-rw-r--r--connectivity/source/drivers/flat/EDriver.cxx145
-rw-r--r--connectivity/source/drivers/flat/EPreparedStatement.cxx46
-rw-r--r--connectivity/source/drivers/flat/EResultSet.cxx189
-rw-r--r--connectivity/source/drivers/flat/EStatement.cxx43
-rw-r--r--connectivity/source/drivers/flat/ETable.cxx844
-rw-r--r--connectivity/source/drivers/flat/ETables.cxx62
-rw-r--r--connectivity/source/drivers/flat/Eservices.cxx175
-rw-r--r--connectivity/source/drivers/flat/exports.dxp3
-rw-r--r--connectivity/source/drivers/flat/flat.map8
-rw-r--r--connectivity/source/drivers/flat/flat.mxp.map141
-rwxr-xr-xconnectivity/source/drivers/flat/flat.xcu110
-rw-r--r--connectivity/source/drivers/flat/flat.xml33
-rw-r--r--connectivity/source/drivers/flat/makefile.mk107
-rw-r--r--connectivity/source/drivers/hsqldb/HCatalog.cxx166
-rw-r--r--connectivity/source/drivers/hsqldb/HColumns.cxx89
-rw-r--r--connectivity/source/drivers/hsqldb/HConnection.cxx422
-rw-r--r--connectivity/source/drivers/hsqldb/HDriver.cxx886
-rw-r--r--connectivity/source/drivers/hsqldb/HStorage.hxx118
-rw-r--r--connectivity/source/drivers/hsqldb/HStorageAccess.cxx555
-rw-r--r--connectivity/source/drivers/hsqldb/HStorageMap.cxx360
-rw-r--r--connectivity/source/drivers/hsqldb/HTable.cxx427
-rw-r--r--connectivity/source/drivers/hsqldb/HTables.cxx200
-rw-r--r--connectivity/source/drivers/hsqldb/HTerminateListener.cxx64
-rw-r--r--connectivity/source/drivers/hsqldb/HTerminateListener.hxx66
-rw-r--r--connectivity/source/drivers/hsqldb/HTools.cxx73
-rw-r--r--connectivity/source/drivers/hsqldb/HUser.cxx351
-rw-r--r--connectivity/source/drivers/hsqldb/HUsers.cxx120
-rw-r--r--connectivity/source/drivers/hsqldb/HView.cxx213
-rw-r--r--connectivity/source/drivers/hsqldb/HViews.cxx169
-rw-r--r--connectivity/source/drivers/hsqldb/Hservices.cxx177
-rw-r--r--connectivity/source/drivers/hsqldb/StorageFileAccess.cxx180
-rw-r--r--connectivity/source/drivers/hsqldb/StorageNativeInputStream.cxx306
-rw-r--r--connectivity/source/drivers/hsqldb/StorageNativeOutputStream.cxx219
-rw-r--r--connectivity/source/drivers/hsqldb/accesslog.cxx83
-rw-r--r--connectivity/source/drivers/hsqldb/accesslog.hxx145
-rw-r--r--connectivity/source/drivers/hsqldb/exports.dxp30
-rw-r--r--connectivity/source/drivers/hsqldb/hsqldb.map35
-rwxr-xr-xconnectivity/source/drivers/hsqldb/hsqldb.xcu73
-rw-r--r--connectivity/source/drivers/hsqldb/hsqldb.xml28
-rw-r--r--connectivity/source/drivers/hsqldb/hsqlui.hrc36
-rw-r--r--connectivity/source/drivers/hsqldb/hsqlui.src53
-rw-r--r--connectivity/source/drivers/hsqldb/makefile.mk117
-rw-r--r--connectivity/source/drivers/jdbc/Array.cxx152
-rw-r--r--connectivity/source/drivers/jdbc/Blob.cxx148
-rw-r--r--connectivity/source/drivers/jdbc/Boolean.cxx68
-rw-r--r--connectivity/source/drivers/jdbc/CallableStatement.cxx359
-rw-r--r--connectivity/source/drivers/jdbc/Class.cxx73
-rw-r--r--connectivity/source/drivers/jdbc/Clob.cxx146
-rw-r--r--connectivity/source/drivers/jdbc/ConnectionLog.cxx134
-rw-r--r--connectivity/source/drivers/jdbc/ContextClassLoader.cxx131
-rw-r--r--connectivity/source/drivers/jdbc/DatabaseMetaData.cxx1462
-rw-r--r--connectivity/source/drivers/jdbc/Date.cxx53
-rw-r--r--connectivity/source/drivers/jdbc/DriverPropertyInfo.cxx141
-rw-r--r--connectivity/source/drivers/jdbc/Exception.cxx48
-rw-r--r--connectivity/source/drivers/jdbc/InputStream.cxx110
-rw-r--r--connectivity/source/drivers/jdbc/JBigDecimal.cxx89
-rw-r--r--connectivity/source/drivers/jdbc/JConnection.cxx873
-rw-r--r--connectivity/source/drivers/jdbc/JDriver.cxx256
-rw-r--r--connectivity/source/drivers/jdbc/JStatement.cxx823
-rw-r--r--connectivity/source/drivers/jdbc/Object.cxx437
-rw-r--r--connectivity/source/drivers/jdbc/PreparedStatement.cxx666
-rw-r--r--connectivity/source/drivers/jdbc/Reader.cxx121
-rw-r--r--connectivity/source/drivers/jdbc/Ref.cxx61
-rw-r--r--connectivity/source/drivers/jdbc/ResultSet.cxx1087
-rw-r--r--connectivity/source/drivers/jdbc/ResultSetMetaData.cxx238
-rw-r--r--connectivity/source/drivers/jdbc/SQLException.cxx100
-rw-r--r--connectivity/source/drivers/jdbc/SQLWarning.cxx48
-rw-r--r--connectivity/source/drivers/jdbc/String.cxx82
-rw-r--r--connectivity/source/drivers/jdbc/Throwable.cxx69
-rw-r--r--connectivity/source/drivers/jdbc/Timestamp.cxx201
-rw-r--r--connectivity/source/drivers/jdbc/exports.dxp3
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.map8
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.mxp.map154
-rwxr-xr-xconnectivity/source/drivers/jdbc/jdbc.xcu209
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.xml30
-rw-r--r--connectivity/source/drivers/jdbc/jservices.cxx177
-rw-r--r--connectivity/source/drivers/jdbc/makefile.mk112
-rw-r--r--connectivity/source/drivers/jdbc/tools.cxx274
-rw-r--r--connectivity/source/drivers/kab/KCatalog.cxx124
-rw-r--r--connectivity/source/drivers/kab/KCatalog.hxx64
-rw-r--r--connectivity/source/drivers/kab/KColumns.cxx97
-rw-r--r--connectivity/source/drivers/kab/KColumns.hxx54
-rw-r--r--connectivity/source/drivers/kab/KConnection.cxx328
-rw-r--r--connectivity/source/drivers/kab/KConnection.hxx139
-rw-r--r--connectivity/source/drivers/kab/KDEInit.cxx155
-rw-r--r--connectivity/source/drivers/kab/KDEInit.h44
-rw-r--r--connectivity/source/drivers/kab/KDatabaseMetaData.cxx1080
-rw-r--r--connectivity/source/drivers/kab/KDatabaseMetaData.hxx213
-rw-r--r--connectivity/source/drivers/kab/KDriver.cxx473
-rw-r--r--connectivity/source/drivers/kab/KDriver.hxx223
-rw-r--r--connectivity/source/drivers/kab/KPreparedStatement.cxx390
-rw-r--r--connectivity/source/drivers/kab/KPreparedStatement.hxx119
-rw-r--r--connectivity/source/drivers/kab/KResultSet.cxx987
-rw-r--r--connectivity/source/drivers/kab/KResultSet.hxx224
-rw-r--r--connectivity/source/drivers/kab/KResultSetMetaData.cxx187
-rw-r--r--connectivity/source/drivers/kab/KResultSetMetaData.hxx92
-rw-r--r--connectivity/source/drivers/kab/KServices.cxx177
-rw-r--r--connectivity/source/drivers/kab/KStatement.cxx583
-rw-r--r--connectivity/source/drivers/kab/KStatement.hxx172
-rw-r--r--connectivity/source/drivers/kab/KTable.cxx96
-rw-r--r--connectivity/source/drivers/kab/KTable.hxx68
-rw-r--r--connectivity/source/drivers/kab/KTables.cxx90
-rw-r--r--connectivity/source/drivers/kab/KTables.hxx61
-rw-r--r--connectivity/source/drivers/kab/exports.dxp3
-rw-r--r--connectivity/source/drivers/kab/kab.map8
-rwxr-xr-xconnectivity/source/drivers/kab/kab.xcu46
-rw-r--r--connectivity/source/drivers/kab/kab.xml79
-rw-r--r--connectivity/source/drivers/kab/kabdrv.map9
-rw-r--r--connectivity/source/drivers/kab/kcondition.cxx229
-rw-r--r--connectivity/source/drivers/kab/kcondition.hxx162
-rw-r--r--connectivity/source/drivers/kab/kfields.cxx94
-rw-r--r--connectivity/source/drivers/kab/kfields.hxx47
-rw-r--r--connectivity/source/drivers/kab/korder.cxx88
-rw-r--r--connectivity/source/drivers/kab/korder.hxx74
-rw-r--r--connectivity/source/drivers/kab/makefile.mk137
-rwxr-xr-xconnectivity/source/drivers/macab/MacabAddressBook.cxx256
-rwxr-xr-xconnectivity/source/drivers/macab/MacabAddressBook.hxx72
-rwxr-xr-xconnectivity/source/drivers/macab/MacabCatalog.cxx124
-rwxr-xr-xconnectivity/source/drivers/macab/MacabCatalog.hxx64
-rwxr-xr-xconnectivity/source/drivers/macab/MacabColumns.cxx97
-rwxr-xr-xconnectivity/source/drivers/macab/MacabColumns.hxx54
-rwxr-xr-xconnectivity/source/drivers/macab/MacabConnection.cxx323
-rwxr-xr-xconnectivity/source/drivers/macab/MacabConnection.hxx131
-rwxr-xr-xconnectivity/source/drivers/macab/MacabDatabaseMetaData.cxx1126
-rwxr-xr-xconnectivity/source/drivers/macab/MacabDatabaseMetaData.hxx212
-rwxr-xr-xconnectivity/source/drivers/macab/MacabDriver.cxx348
-rwxr-xr-xconnectivity/source/drivers/macab/MacabDriver.hxx196
-rw-r--r--connectivity/source/drivers/macab/MacabGroup.cxx102
-rw-r--r--connectivity/source/drivers/macab/MacabGroup.hxx51
-rw-r--r--connectivity/source/drivers/macab/MacabHeader.cxx343
-rw-r--r--connectivity/source/drivers/macab/MacabHeader.hxx71
-rwxr-xr-xconnectivity/source/drivers/macab/MacabPreparedStatement.cxx407
-rwxr-xr-xconnectivity/source/drivers/macab/MacabPreparedStatement.hxx119
-rwxr-xr-xconnectivity/source/drivers/macab/MacabRecord.cxx347
-rwxr-xr-xconnectivity/source/drivers/macab/MacabRecord.hxx77
-rwxr-xr-xconnectivity/source/drivers/macab/MacabRecords.cxx1212
-rwxr-xr-xconnectivity/source/drivers/macab/MacabRecords.hxx136
-rwxr-xr-xconnectivity/source/drivers/macab/MacabResultSet.cxx1073
-rwxr-xr-xconnectivity/source/drivers/macab/MacabResultSet.hxx226
-rwxr-xr-xconnectivity/source/drivers/macab/MacabResultSetMetaData.cxx224
-rwxr-xr-xconnectivity/source/drivers/macab/MacabResultSetMetaData.hxx94
-rwxr-xr-xconnectivity/source/drivers/macab/MacabServices.cxx177
-rwxr-xr-xconnectivity/source/drivers/macab/MacabStatement.cxx610
-rwxr-xr-xconnectivity/source/drivers/macab/MacabStatement.hxx176
-rwxr-xr-xconnectivity/source/drivers/macab/MacabTable.cxx96
-rwxr-xr-xconnectivity/source/drivers/macab/MacabTable.hxx68
-rwxr-xr-xconnectivity/source/drivers/macab/MacabTables.cxx90
-rwxr-xr-xconnectivity/source/drivers/macab/MacabTables.hxx61
-rwxr-xr-xconnectivity/source/drivers/macab/exports.dxp3
-rwxr-xr-xconnectivity/source/drivers/macab/macab.map8
-rwxr-xr-xconnectivity/source/drivers/macab/macab.xcu46
-rwxr-xr-xconnectivity/source/drivers/macab/macab.xml79
-rwxr-xr-xconnectivity/source/drivers/macab/macabcondition.cxx250
-rwxr-xr-xconnectivity/source/drivers/macab/macabcondition.hxx169
-rwxr-xr-xconnectivity/source/drivers/macab/macabdrv.map6
-rwxr-xr-xconnectivity/source/drivers/macab/macaborder.cxx86
-rwxr-xr-xconnectivity/source/drivers/macab/macaborder.hxx74
-rw-r--r--connectivity/source/drivers/macab/macabutilities.hxx149
-rwxr-xr-xconnectivity/source/drivers/macab/makefile.mk133
-rw-r--r--connectivity/source/drivers/mozab/MCatalog.cxx127
-rw-r--r--connectivity/source/drivers/mozab/MCatalog.hxx66
-rw-r--r--connectivity/source/drivers/mozab/MColumnAlias.cxx191
-rw-r--r--connectivity/source/drivers/mozab/MColumnAlias.hxx85
-rw-r--r--connectivity/source/drivers/mozab/MColumns.cxx99
-rw-r--r--connectivity/source/drivers/mozab/MColumns.hxx58
-rw-r--r--connectivity/source/drivers/mozab/MConfigAccess.cxx273
-rw-r--r--connectivity/source/drivers/mozab/MConfigAccess.hxx39
-rw-r--r--connectivity/source/drivers/mozab/MConnection.cxx603
-rw-r--r--connectivity/source/drivers/mozab/MConnection.hxx231
-rw-r--r--connectivity/source/drivers/mozab/MDatabaseMetaData.cxx1031
-rw-r--r--connectivity/source/drivers/mozab/MDatabaseMetaData.hxx204
-rw-r--r--connectivity/source/drivers/mozab/MDriver.cxx329
-rw-r--r--connectivity/source/drivers/mozab/MDriver.hxx110
-rw-r--r--connectivity/source/drivers/mozab/MExtConfigAccess.hxx46
-rw-r--r--connectivity/source/drivers/mozab/MPreparedStatement.cxx543
-rw-r--r--connectivity/source/drivers/mozab/MPreparedStatement.hxx169
-rw-r--r--connectivity/source/drivers/mozab/MResultSet.cxx1977
-rw-r--r--connectivity/source/drivers/mozab/MResultSet.hxx366
-rw-r--r--connectivity/source/drivers/mozab/MResultSetMetaData.cxx212
-rw-r--r--connectivity/source/drivers/mozab/MResultSetMetaData.hxx98
-rw-r--r--connectivity/source/drivers/mozab/MServices.cxx225
-rw-r--r--connectivity/source/drivers/mozab/MStatement.cxx561
-rw-r--r--connectivity/source/drivers/mozab/MStatement.hxx213
-rw-r--r--connectivity/source/drivers/mozab/MTable.cxx95
-rw-r--r--connectivity/source/drivers/mozab/MTable.hxx72
-rw-r--r--connectivity/source/drivers/mozab/MTables.cxx104
-rw-r--r--connectivity/source/drivers/mozab/MTables.hxx55
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx334
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.hxx101
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSFolders.cxx171
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSFolders.hxx46
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSINIParser.cxx145
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSINIParser.hxx84
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSInit.cxx347
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSInit.hxx45
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx631
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfile.hxx74
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDirServiceProvider.cxx240
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDirServiceProvider.hxx83
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx535
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.hxx134
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileManager.cxx113
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSProfileManager.hxx80
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSRunnable.cxx98
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MNSRunnable.hxx68
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/makefile.mk93
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozbootstrap.map8
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozilla_nsinit.h54
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozilla_nsprofile.h89
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozilla_nsprofiledirserviceprovider.h41
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozilla_profile_discover.h46
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozilla_profilemanager.h84
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/post_include_windows.h30
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/pre_include_windows.h31
-rw-r--r--connectivity/source/drivers/mozab/exports.dxp3
-rw-r--r--connectivity/source/drivers/mozab/makefile.mk186
-rw-r--r--connectivity/source/drivers/mozab/makefile_mozab.mk128
-rw-r--r--connectivity/source/drivers/mozab/mozab.map8
-rwxr-xr-xconnectivity/source/drivers/mozab/mozab.xcu154
-rw-r--r--connectivity/source/drivers/mozab/mozab.xml82
-rwxr-xr-xconnectivity/source/drivers/mozab/mozab2.xcu118
-rw-r--r--connectivity/source/drivers/mozab/mozabdrv.map8
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx806
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.hxx80
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MErrorResource.hxx77
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MLdapAttributeMap.cxx450
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MLdapAttributeMap.hxx75
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSDeclares.hxx52
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSInclude.hxx81
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSMozabProxy.cxx404
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSMozabProxy.hxx119
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSTerminateListener.cxx86
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNSTerminateListener.hxx57
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNameMapper.cxx142
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MNameMapper.hxx83
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MQuery.cxx823
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MQuery.hxx282
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MQueryHelper.cxx635
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MQueryHelper.hxx142
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MTypeConverter.cxx138
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/MTypeConverter.hxx66
-rw-r--r--connectivity/source/drivers/mozab/mozillasrc/makefile.mk77
-rw-r--r--connectivity/source/drivers/mozab/post_include_mozilla.h58
-rw-r--r--connectivity/source/drivers/mozab/pre_include_mozilla.h70
-rw-r--r--connectivity/source/drivers/mysql/YCatalog.cxx174
-rw-r--r--connectivity/source/drivers/mysql/YColumns.cxx89
-rw-r--r--connectivity/source/drivers/mysql/YDriver.cxx481
-rw-r--r--connectivity/source/drivers/mysql/YTable.cxx381
-rw-r--r--connectivity/source/drivers/mysql/YTables.cxx218
-rw-r--r--connectivity/source/drivers/mysql/YUser.cxx350
-rw-r--r--connectivity/source/drivers/mysql/YUsers.cxx118
-rw-r--r--connectivity/source/drivers/mysql/YViews.cxx162
-rw-r--r--connectivity/source/drivers/mysql/Yservices.cxx176
-rw-r--r--connectivity/source/drivers/mysql/exports.dxp3
-rw-r--r--connectivity/source/drivers/mysql/makefile.mk84
-rw-r--r--connectivity/source/drivers/mysql/mysql.map8
-rwxr-xr-xconnectivity/source/drivers/mysql/mysql.xcu233
-rw-r--r--connectivity/source/drivers/mysql/mysql.xml29
-rw-r--r--connectivity/source/drivers/odbc/OFunctions.cxx285
-rw-r--r--connectivity/source/drivers/odbc/ORealDriver.cxx369
-rw-r--r--connectivity/source/drivers/odbc/ORealDriver.hxx50
-rw-r--r--connectivity/source/drivers/odbc/makefile.mk78
-rw-r--r--connectivity/source/drivers/odbc/odbc.map8
-rwxr-xr-xconnectivity/source/drivers/odbc/odbc.xcu175
-rw-r--r--connectivity/source/drivers/odbc/odbc.xml28
-rw-r--r--connectivity/source/drivers/odbc/oservices.cxx177
-rw-r--r--connectivity/source/drivers/odbcbase/OConnection.cxx670
-rw-r--r--connectivity/source/drivers/odbcbase/ODatabaseMetaData.cxx1743
-rw-r--r--connectivity/source/drivers/odbcbase/ODatabaseMetaDataResultSet.cxx1323
-rw-r--r--connectivity/source/drivers/odbcbase/ODriver.cxx229
-rw-r--r--connectivity/source/drivers/odbcbase/OPreparedStatement.cxx973
-rw-r--r--connectivity/source/drivers/odbcbase/OResultSet.cxx1753
-rw-r--r--connectivity/source/drivers/odbcbase/OResultSetMetaData.cxx312
-rw-r--r--connectivity/source/drivers/odbcbase/OStatement.cxx1154
-rw-r--r--connectivity/source/drivers/odbcbase/OTools.cxx945
-rw-r--r--connectivity/source/drivers/odbcbase/makefile.mk90
-rw-r--r--connectivity/source/inc/AutoRetrievingBase.hxx59
-rw-r--r--connectivity/source/inc/FDatabaseMetaDataResultSet.hxx279
-rw-r--r--connectivity/source/inc/FDatabaseMetaDataResultSetMetaData.hxx114
-rw-r--r--connectivity/source/inc/OColumn.hxx146
-rw-r--r--connectivity/source/inc/OSubComponent.hxx92
-rw-r--r--connectivity/source/inc/OTypeInfo.hxx92
-rw-r--r--connectivity/source/inc/ParameterSubstitution.hxx71
-rw-r--r--connectivity/source/inc/RowFunctionParser.hxx152
-rw-r--r--connectivity/source/inc/TConnection.hxx92
-rw-r--r--connectivity/source/inc/TDatabaseMetaDataBase.hxx142
-rw-r--r--connectivity/source/inc/TKeyValue.hxx82
-rw-r--r--connectivity/source/inc/TPrivilegesResultSet.hxx54
-rw-r--r--connectivity/source/inc/TResultSetHelper.hxx58
-rw-r--r--connectivity/source/inc/TSkipDeletedSet.hxx105
-rw-r--r--connectivity/source/inc/TSortIndex.hxx139
-rw-r--r--connectivity/source/inc/UStringDescription_Impl.hxx106
-rw-r--r--connectivity/source/inc/adabas/BCatalog.hxx77
-rw-r--r--connectivity/source/inc/adabas/BColumn.hxx54
-rw-r--r--connectivity/source/inc/adabas/BColumns.hxx61
-rw-r--r--connectivity/source/inc/adabas/BConnection.hxx78
-rw-r--r--connectivity/source/inc/adabas/BDatabaseMetaData.hxx55
-rw-r--r--connectivity/source/inc/adabas/BDriver.hxx177
-rw-r--r--connectivity/source/inc/adabas/BGroup.hxx50
-rw-r--r--connectivity/source/inc/adabas/BGroups.hxx66
-rw-r--r--connectivity/source/inc/adabas/BIndex.hxx58
-rw-r--r--connectivity/source/inc/adabas/BIndexColumn.hxx58
-rw-r--r--connectivity/source/inc/adabas/BIndexColumns.hxx58
-rw-r--r--connectivity/source/inc/adabas/BIndexes.hxx58
-rw-r--r--connectivity/source/inc/adabas/BKeys.hxx55
-rw-r--r--connectivity/source/inc/adabas/BPreparedStatement.hxx52
-rw-r--r--connectivity/source/inc/adabas/BResultSet.hxx60
-rw-r--r--connectivity/source/inc/adabas/BResultSetMetaData.hxx56
-rw-r--r--connectivity/source/inc/adabas/BStatement.hxx62
-rw-r--r--connectivity/source/inc/adabas/BTable.hxx110
-rw-r--r--connectivity/source/inc/adabas/BTables.hxx80
-rw-r--r--connectivity/source/inc/adabas/BUser.hxx82
-rw-r--r--connectivity/source/inc/adabas/BUsers.hxx66
-rw-r--r--connectivity/source/inc/adabas/BViews.hxx64
-rw-r--r--connectivity/source/inc/ado/ACallableStatement.hxx88
-rw-r--r--connectivity/source/inc/ado/ACatalog.hxx61
-rw-r--r--connectivity/source/inc/ado/ACollection.hxx231
-rw-r--r--connectivity/source/inc/ado/AColumn.hxx70
-rw-r--r--connectivity/source/inc/ado/AColumns.hxx68
-rw-r--r--connectivity/source/inc/ado/AConnection.hxx151
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaData.hxx230
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaDataResultSet.hxx227
-rw-r--r--connectivity/source/inc/ado/ADatabaseMetaDataResultSetMetaData.hxx115
-rw-r--r--connectivity/source/inc/ado/ADriver.hxx93
-rw-r--r--connectivity/source/inc/ado/AGroup.hxx76
-rw-r--r--connectivity/source/inc/ado/AGroups.hxx69
-rw-r--r--connectivity/source/inc/ado/AIndex.hxx65
-rw-r--r--connectivity/source/inc/ado/AIndexColumn.hxx58
-rw-r--r--connectivity/source/inc/ado/AIndexColumns.hxx55
-rw-r--r--connectivity/source/inc/ado/AIndexes.hxx66
-rw-r--r--connectivity/source/inc/ado/AKey.hxx73
-rw-r--r--connectivity/source/inc/ado/AKeyColumn.hxx58
-rw-r--r--connectivity/source/inc/ado/AKeyColumns.hxx55
-rw-r--r--connectivity/source/inc/ado/AKeys.hxx66
-rw-r--r--connectivity/source/inc/ado/APreparedStatement.hxx124
-rw-r--r--connectivity/source/inc/ado/AResultSet.hxx237
-rw-r--r--connectivity/source/inc/ado/AResultSetMetaData.hxx93
-rw-r--r--connectivity/source/inc/ado/AStatement.hxx201
-rw-r--r--connectivity/source/inc/ado/ATable.hxx88
-rw-r--r--connectivity/source/inc/ado/ATables.hxx65
-rw-r--r--connectivity/source/inc/ado/AUser.hxx102
-rw-r--r--connectivity/source/inc/ado/AUsers.hxx70
-rw-r--r--connectivity/source/inc/ado/AView.hxx66
-rw-r--r--connectivity/source/inc/ado/AViews.hxx64
-rw-r--r--connectivity/source/inc/ado/Aolevariant.hxx175
-rw-r--r--connectivity/source/inc/ado/Aolewrap.hxx245
-rw-r--r--connectivity/source/inc/ado/Awrapado.hxx419
-rw-r--r--connectivity/source/inc/ado/Awrapadox.hxx149
-rw-r--r--connectivity/source/inc/ado/WrapCatalog.hxx58
-rw-r--r--connectivity/source/inc/ado/WrapColumn.hxx72
-rw-r--r--connectivity/source/inc/ado/WrapIndex.hxx60
-rw-r--r--connectivity/source/inc/ado/WrapKey.hxx62
-rw-r--r--connectivity/source/inc/ado/WrapTable.hxx65
-rw-r--r--connectivity/source/inc/ado/WrapTypeDefs.hxx53
-rw-r--r--connectivity/source/inc/ado/adoimp.hxx112
-rw-r--r--connectivity/source/inc/calc/CCatalog.hxx50
-rw-r--r--connectivity/source/inc/calc/CColumns.hxx53
-rw-r--r--connectivity/source/inc/calc/CConnection.hxx97
-rw-r--r--connectivity/source/inc/calc/CDatabaseMetaData.hxx61
-rw-r--r--connectivity/source/inc/calc/CDriver.hxx65
-rw-r--r--connectivity/source/inc/calc/CPreparedStatement.hxx50
-rw-r--r--connectivity/source/inc/calc/CResultSet.hxx90
-rw-r--r--connectivity/source/inc/calc/CStatement.hxx50
-rw-r--r--connectivity/source/inc/calc/CTable.hxx107
-rw-r--r--connectivity/source/inc/calc/CTables.hxx52
-rw-r--r--connectivity/source/inc/dbase/DCatalog.hxx49
-rw-r--r--connectivity/source/inc/dbase/DCode.hxx69
-rw-r--r--connectivity/source/inc/dbase/DColumns.hxx55
-rw-r--r--connectivity/source/inc/dbase/DConnection.hxx58
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaData.hxx68
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaDataResultSet.hxx196
-rw-r--r--connectivity/source/inc/dbase/DDatabaseMetaDataResultSetMetaData.hxx108
-rw-r--r--connectivity/source/inc/dbase/DDriver.hxx61
-rw-r--r--connectivity/source/inc/dbase/DIndex.hxx160
-rw-r--r--connectivity/source/inc/dbase/DIndexColumns.hxx60
-rw-r--r--connectivity/source/inc/dbase/DIndexIter.hxx85
-rw-r--r--connectivity/source/inc/dbase/DIndexPage.hxx89
-rw-r--r--connectivity/source/inc/dbase/DIndexes.hxx61
-rw-r--r--connectivity/source/inc/dbase/DPreparedStatement.hxx50
-rw-r--r--connectivity/source/inc/dbase/DResultSet.hxx90
-rw-r--r--connectivity/source/inc/dbase/DStatement.hxx49
-rw-r--r--connectivity/source/inc/dbase/DTable.hxx185
-rw-r--r--connectivity/source/inc/dbase/DTables.hxx58
-rw-r--r--connectivity/source/inc/dbase/dindexnode.hxx347
-rw-r--r--connectivity/source/inc/diagnose_ex.h46
-rw-r--r--connectivity/source/inc/file/FCatalog.hxx71
-rw-r--r--connectivity/source/inc/file/FColumns.hxx59
-rw-r--r--connectivity/source/inc/file/FConnection.hxx160
-rw-r--r--connectivity/source/inc/file/FDatabaseMetaData.hxx197
-rw-r--r--connectivity/source/inc/file/FDateFunctions.hxx242
-rw-r--r--connectivity/source/inc/file/FDriver.hxx87
-rw-r--r--connectivity/source/inc/file/FNumericFunctions.hxx376
-rw-r--r--connectivity/source/inc/file/FPreparedStatement.hxx135
-rw-r--r--connectivity/source/inc/file/FResultSet.hxx357
-rw-r--r--connectivity/source/inc/file/FResultSetMetaData.hxx91
-rw-r--r--connectivity/source/inc/file/FStatement.hxx223
-rw-r--r--connectivity/source/inc/file/FStringFunctions.hxx283
-rw-r--r--connectivity/source/inc/file/FTable.hxx120
-rw-r--r--connectivity/source/inc/file/FTables.hxx61
-rw-r--r--connectivity/source/inc/file/fanalyzer.hxx96
-rw-r--r--connectivity/source/inc/file/fcode.hxx396
-rw-r--r--connectivity/source/inc/file/fcomp.hxx120
-rw-r--r--connectivity/source/inc/file/filedllapi.hxx40
-rw-r--r--connectivity/source/inc/file/quotedstring.hxx55
-rw-r--r--connectivity/source/inc/flat/ECatalog.hxx49
-rw-r--r--connectivity/source/inc/flat/EColumns.hxx52
-rw-r--r--connectivity/source/inc/flat/EConnection.hxx71
-rw-r--r--connectivity/source/inc/flat/EDatabaseMetaData.hxx55
-rw-r--r--connectivity/source/inc/flat/EDriver.hxx61
-rw-r--r--connectivity/source/inc/flat/EPreparedStatement.hxx50
-rw-r--r--connectivity/source/inc/flat/EResultSet.hxx81
-rw-r--r--connectivity/source/inc/flat/EStatement.hxx49
-rw-r--r--connectivity/source/inc/flat/ETable.hxx103
-rw-r--r--connectivity/source/inc/flat/ETables.hxx52
-rw-r--r--connectivity/source/inc/hsqldb/HCatalog.hxx72
-rw-r--r--connectivity/source/inc/hsqldb/HColumns.hxx70
-rw-r--r--connectivity/source/inc/hsqldb/HConnection.hxx186
-rw-r--r--connectivity/source/inc/hsqldb/HDriver.hxx144
-rw-r--r--connectivity/source/inc/hsqldb/HStorageAccess.h95
-rw-r--r--connectivity/source/inc/hsqldb/HStorageAccess.hxx43
-rw-r--r--connectivity/source/inc/hsqldb/HStorageMap.hxx94
-rw-r--r--connectivity/source/inc/hsqldb/HTable.hxx128
-rw-r--r--connectivity/source/inc/hsqldb/HTables.hxx78
-rw-r--r--connectivity/source/inc/hsqldb/HTools.hxx65
-rw-r--r--connectivity/source/inc/hsqldb/HUser.hxx82
-rw-r--r--connectivity/source/inc/hsqldb/HUsers.hxx62
-rw-r--r--connectivity/source/inc/hsqldb/HView.hxx97
-rw-r--r--connectivity/source/inc/hsqldb/HViews.hxx63
-rw-r--r--connectivity/source/inc/hsqldb/StorageFileAccess.h37
-rw-r--r--connectivity/source/inc/hsqldb/StorageNativeInputStream.h70
-rw-r--r--connectivity/source/inc/internalnode.hxx60
-rw-r--r--connectivity/source/inc/java/ContextClassLoader.hxx103
-rw-r--r--connectivity/source/inc/java/GlobalRef.hxx122
-rw-r--r--connectivity/source/inc/java/LocalRef.hxx106
-rw-r--r--connectivity/source/inc/java/io/InputStream.hxx60
-rw-r--r--connectivity/source/inc/java/io/Reader.hxx61
-rw-r--r--connectivity/source/inc/java/lang/Boolean.hxx54
-rw-r--r--connectivity/source/inc/java/lang/Class.hxx55
-rw-r--r--connectivity/source/inc/java/lang/Exception.hxx51
-rw-r--r--connectivity/source/inc/java/lang/Object.hxx177
-rw-r--r--connectivity/source/inc/java/lang/String.hxx54
-rw-r--r--connectivity/source/inc/java/lang/Throwable.hxx54
-rw-r--r--connectivity/source/inc/java/math/BigDecimal.hxx53
-rw-r--r--connectivity/source/inc/java/sql/Array.hxx63
-rw-r--r--connectivity/source/inc/java/sql/Blob.hxx63
-rw-r--r--connectivity/source/inc/java/sql/CallableStatement.hxx91
-rw-r--r--connectivity/source/inc/java/sql/Clob.hxx63
-rw-r--r--connectivity/source/inc/java/sql/Connection.hxx151
-rw-r--r--connectivity/source/inc/java/sql/ConnectionLog.hxx142
-rw-r--r--connectivity/source/inc/java/sql/DatabaseMetaData.hxx224
-rw-r--r--connectivity/source/inc/java/sql/Driver.hxx76
-rw-r--r--connectivity/source/inc/java/sql/DriverPropertyInfo.hxx61
-rw-r--r--connectivity/source/inc/java/sql/JStatement.hxx219
-rw-r--r--connectivity/source/inc/java/sql/PreparedStatement.hxx113
-rw-r--r--connectivity/source/inc/java/sql/Ref.hxx58
-rw-r--r--connectivity/source/inc/java/sql/ResultSet.hxx208
-rw-r--r--connectivity/source/inc/java/sql/ResultSetMetaData.hxx82
-rw-r--r--connectivity/source/inc/java/sql/SQLException.hxx68
-rw-r--r--connectivity/source/inc/java/sql/SQLWarning.hxx64
-rw-r--r--connectivity/source/inc/java/sql/Timestamp.hxx99
-rw-r--r--connectivity/source/inc/java/tools.hxx92
-rw-r--r--connectivity/source/inc/java/util/Date.hxx54
-rw-r--r--connectivity/source/inc/java/util/Property.hxx49
-rw-r--r--connectivity/source/inc/mysql/YCatalog.hxx73
-rw-r--r--connectivity/source/inc/mysql/YColumns.hxx70
-rw-r--r--connectivity/source/inc/mysql/YDriver.hxx126
-rw-r--r--connectivity/source/inc/mysql/YTable.hxx128
-rw-r--r--connectivity/source/inc/mysql/YTables.hxx78
-rw-r--r--connectivity/source/inc/mysql/YUser.hxx82
-rw-r--r--connectivity/source/inc/mysql/YUsers.hxx62
-rw-r--r--connectivity/source/inc/mysql/YViews.hxx64
-rw-r--r--connectivity/source/inc/odbc/OBoundParam.hxx222
-rw-r--r--connectivity/source/inc/odbc/OConnection.hxx160
-rw-r--r--connectivity/source/inc/odbc/ODatabaseMetaData.hxx224
-rw-r--r--connectivity/source/inc/odbc/ODatabaseMetaDataResultSet.hxx242
-rw-r--r--connectivity/source/inc/odbc/ODefs3.hxx92
-rw-r--r--connectivity/source/inc/odbc/ODriver.hxx90
-rw-r--r--connectivity/source/inc/odbc/OFunctiondefs.hxx175
-rw-r--r--connectivity/source/inc/odbc/OFunctions.hxx556
-rw-r--r--connectivity/source/inc/odbc/OPreparedStatement.hxx171
-rw-r--r--connectivity/source/inc/odbc/OResultSet.hxx326
-rw-r--r--connectivity/source/inc/odbc/OResultSetMetaData.hxx126
-rw-r--r--connectivity/source/inc/odbc/OStatement.hxx248
-rw-r--r--connectivity/source/inc/odbc/OTools.hxx276
-rw-r--r--connectivity/source/inc/odbc/odbcbasedllapi.hxx40
-rw-r--r--connectivity/source/inc/propertyids.hxx159
-rw-r--r--connectivity/source/inc/resource/adabas_res.hrc43
-rw-r--r--connectivity/source/inc/resource/ado_res.hrc50
-rw-r--r--connectivity/source/inc/resource/calc_res.hrc41
-rw-r--r--connectivity/source/inc/resource/common_res.hrc78
-rw-r--r--connectivity/source/inc/resource/conn_shared_res.hrc73
-rw-r--r--connectivity/source/inc/resource/dbase_res.hrc61
-rw-r--r--connectivity/source/inc/resource/evoab2_res.hrc42
-rw-r--r--connectivity/source/inc/resource/file_res.hrc48
-rw-r--r--connectivity/source/inc/resource/hsqldb_res.hrc47
-rw-r--r--connectivity/source/inc/resource/jdbc_log.hrc90
-rw-r--r--connectivity/source/inc/resource/kab_res.hrc43
-rw-r--r--connectivity/source/inc/resource/macab_res.hrc41
-rw-r--r--connectivity/source/inc/resource/mozab_res.hrc74
-rw-r--r--connectivity/source/inc/resource/sharedresources.hxx164
-rw-r--r--connectivity/source/inc/sqlscan.hxx90
-rw-r--r--connectivity/source/manager/exports.dxp3
-rw-r--r--connectivity/source/manager/makefile.mk79
-rw-r--r--connectivity/source/manager/mdrivermanager.cxx741
-rw-r--r--connectivity/source/manager/mdrivermanager.hxx146
-rw-r--r--connectivity/source/manager/mregistration.cxx112
-rw-r--r--connectivity/source/manager/sdbc.map8
-rw-r--r--connectivity/source/manager/sdbc.mxp.map53
-rw-r--r--connectivity/source/parse/PColumn.cxx243
-rw-r--r--connectivity/source/parse/internalnode.cxx85
-rw-r--r--connectivity/source/parse/makefile.mk67
-rw-r--r--connectivity/source/parse/sqlbison.y3629
-rw-r--r--connectivity/source/parse/sqlflex.l764
-rw-r--r--connectivity/source/parse/sqliterator.cxx2169
-rw-r--r--connectivity/source/parse/sqlnode.cxx2829
-rw-r--r--connectivity/source/parse/wrap_sqlbison.cxx31
-rw-r--r--connectivity/source/parse/wrap_sqlflex.cxx35
-rw-r--r--connectivity/source/resource/conn_error_message.src99
-rw-r--r--connectivity/source/resource/conn_log_res.src312
-rw-r--r--connectivity/source/resource/conn_shared_res.src649
-rw-r--r--connectivity/source/resource/makefile.mk108
-rw-r--r--connectivity/source/resource/sharedresources.cxx242
-rw-r--r--connectivity/source/sdbcx/VCatalog.cxx241
-rw-r--r--connectivity/source/sdbcx/VCollection.cxx603
-rw-r--r--connectivity/source/sdbcx/VColumn.cxx227
-rw-r--r--connectivity/source/sdbcx/VDescriptor.cxx155
-rw-r--r--connectivity/source/sdbcx/VGroup.cxx183
-rw-r--r--connectivity/source/sdbcx/VIndex.cxx223
-rw-r--r--connectivity/source/sdbcx/VIndexColumn.cxx119
-rw-r--r--connectivity/source/sdbcx/VKey.cxx228
-rw-r--r--connectivity/source/sdbcx/VKeyColumn.cxx124
-rw-r--r--connectivity/source/sdbcx/VTable.cxx336
-rw-r--r--connectivity/source/sdbcx/VUser.cxx194
-rw-r--r--connectivity/source/sdbcx/VView.cxx150
-rw-r--r--connectivity/source/sdbcx/makefile.mk63
-rw-r--r--connectivity/source/simpledbt/charset_s.cxx73
-rw-r--r--connectivity/source/simpledbt/charset_s.hxx68
-rw-r--r--connectivity/source/simpledbt/dbtfactory.cxx114
-rw-r--r--connectivity/source/simpledbt/dbtfactory.hxx81
-rw-r--r--connectivity/source/simpledbt/makefile.mk53
-rw-r--r--connectivity/source/simpledbt/parsenode_s.cxx93
-rw-r--r--connectivity/source/simpledbt/parsenode_s.hxx81
-rw-r--r--connectivity/source/simpledbt/parser_s.cxx86
-rw-r--r--connectivity/source/simpledbt/parser_s.hxx74
-rw-r--r--connectivity/source/simpledbt/refbase.cxx64
-rw-r--r--connectivity/source/simpledbt/refbase.hxx61
-rw-r--r--connectivity/source/simpledbt/staticdbtools_s.cxx212
-rw-r--r--connectivity/source/simpledbt/staticdbtools_s.hxx207
-rwxr-xr-xconnectivity/target.pmk36
-rwxr-xr-xconnectivity/util/makefile.mk62
-rw-r--r--connectivity/version.mk119
-rw-r--r--connectivity/workben/TT/StartTest.classbin0 -> 183 bytes
-rw-r--r--connectivity/workben/TT/StartTest.java293
-rw-r--r--connectivity/workben/iniParser/main.cxx189
-rw-r--r--connectivity/workben/iniParser/makefile.mk62
-rw-r--r--connectivity/workben/little/main.cxx117
-rw-r--r--connectivity/workben/little/makefile.mk60
-rw-r--r--connectivity/workben/skeleton/SResultSet.hxx246
-rw-r--r--connectivity/workben/skeleton/how_to_write_a_driver.txt51
-rw-r--r--connectivity/workben/testmoz/initUNO.cxx45
-rw-r--r--connectivity/workben/testmoz/main.cxx724
-rw-r--r--connectivity/workben/testmoz/makefile.mk70
-rw-r--r--connectivity/workben/testmoz/mozthread.cxx477
-rw-r--r--cosv/inc/cosv/bstream.hxx150
-rw-r--r--cosv/inc/cosv/comdline.hxx70
-rw-r--r--cosv/inc/cosv/comfunc.hxx125
-rw-r--r--cosv/inc/cosv/commandline.hxx180
-rw-r--r--cosv/inc/cosv/csv_env.hxx154
-rw-r--r--cosv/inc/cosv/csv_ostream.hxx134
-rw-r--r--cosv/inc/cosv/csv_precomp.h46
-rw-r--r--cosv/inc/cosv/datetime.hxx84
-rw-r--r--cosv/inc/cosv/dirchain.hxx180
-rw-r--r--cosv/inc/cosv/file.hxx137
-rw-r--r--cosv/inc/cosv/mbstream.hxx93
-rw-r--r--cosv/inc/cosv/openclose.hxx144
-rw-r--r--cosv/inc/cosv/persist.hxx105
-rw-r--r--cosv/inc/cosv/ploc.hxx129
-rw-r--r--cosv/inc/cosv/ploc_dir.hxx118
-rw-r--r--cosv/inc/cosv/plocroot.hxx80
-rw-r--r--cosv/inc/cosv/std_outp.hxx136
-rw-r--r--cosv/inc/cosv/str_types.hxx94
-rw-r--r--cosv/inc/cosv/streamstr.hxx391
-rw-r--r--cosv/inc/cosv/string.hxx579
-rw-r--r--cosv/inc/cosv/stringdata.hxx135
-rw-r--r--cosv/inc/cosv/tpl/dyn.hxx238
-rw-r--r--cosv/inc/cosv/tpl/funcall.hxx307
-rw-r--r--cosv/inc/cosv/tpl/processor.hxx183
-rw-r--r--cosv/inc/cosv/tpl/range.hxx191
-rw-r--r--cosv/inc/cosv/tpl/swelist.hxx369
-rw-r--r--cosv/inc/cosv/tpl/tpltools.hxx228
-rw-r--r--cosv/inc/cosv/tpl/vvector.hxx539
-rw-r--r--cosv/inc/cosv/x.hxx71
-rw-r--r--cosv/prj/build.lst16
-rw-r--r--cosv/prj/d.lst8
-rw-r--r--cosv/source/comphelp/badcast.cxx45
-rw-r--r--cosv/source/comphelp/makefile.mk55
-rw-r--r--cosv/source/fullcpp.mk57
-rw-r--r--cosv/source/inc/precomp.h36
-rw-r--r--cosv/source/service/comdline.cxx57
-rw-r--r--cosv/source/service/comfunc.cxx155
-rw-r--r--cosv/source/service/commandline.cxx342
-rw-r--r--cosv/source/service/csv_ostream.cxx92
-rw-r--r--cosv/source/service/datetime.cxx84
-rw-r--r--cosv/source/service/makefile.mk59
-rw-r--r--cosv/source/service/std_outp.cxx81
-rw-r--r--cosv/source/storage/dirchain.cxx155
-rw-r--r--cosv/source/storage/file.cxx242
-rw-r--r--cosv/source/storage/makefile.mk69
-rw-r--r--cosv/source/storage/mbstream.cxx119
-rw-r--r--cosv/source/storage/persist.cxx113
-rw-r--r--cosv/source/storage/ploc.cxx157
-rw-r--r--cosv/source/storage/ploc_dir.cxx364
-rw-r--r--cosv/source/storage/plocroot.cxx525
-rw-r--r--cosv/source/strings/makefile.mk58
-rw-r--r--cosv/source/strings/str_types.cxx44
-rw-r--r--cosv/source/strings/streamstr.cxx981
-rw-r--r--cosv/source/strings/string.cxx414
-rw-r--r--cosv/source/unittest/file_ut.cxx121
-rw-r--r--cosv/source/unittest/makefile.mk80
-rw-r--r--cosv/source/unittest/string_ut.cxx140
-rw-r--r--cosv/source/unittest/ut.hxx53
-rw-r--r--cosv/source/unittest/ut_main.cxx47
-rw-r--r--cosv/util/makefile.mk58
-rw-r--r--cppcanvas/inc/cppcanvas/basegfxfactory.hxx104
-rw-r--r--cppcanvas/inc/cppcanvas/bitmap.hxx80
-rw-r--r--cppcanvas/inc/cppcanvas/bitmapcanvas.hxx66
-rw-r--r--cppcanvas/inc/cppcanvas/canvas.hxx116
-rw-r--r--cppcanvas/inc/cppcanvas/canvasgraphic.hxx170
-rw-r--r--cppcanvas/inc/cppcanvas/color.hxx95
-rw-r--r--cppcanvas/inc/cppcanvas/customsprite.hxx53
-rw-r--r--cppcanvas/inc/cppcanvas/font.hxx65
-rw-r--r--cppcanvas/inc/cppcanvas/polypolygon.hxx93
-rw-r--r--cppcanvas/inc/cppcanvas/renderer.hxx147
-rw-r--r--cppcanvas/inc/cppcanvas/sprite.hxx116
-rw-r--r--cppcanvas/inc/cppcanvas/spritecanvas.hxx81
-rw-r--r--cppcanvas/inc/cppcanvas/text.hxx55
-rw-r--r--cppcanvas/inc/cppcanvas/vclfactory.hxx147
-rw-r--r--cppcanvas/inc/makefile.mk47
-rw-r--r--cppcanvas/inc/pch/precompiled_cppcanvas.cxx29
-rw-r--r--cppcanvas/inc/pch/precompiled_cppcanvas.hxx32
-rw-r--r--cppcanvas/prj/build.lst7
-rw-r--r--cppcanvas/prj/d.lst19
-rw-r--r--cppcanvas/source/inc/action.hxx164
-rw-r--r--cppcanvas/source/inc/canvasgraphichelper.hxx86
-rw-r--r--cppcanvas/source/inc/implrenderer.hxx187
-rw-r--r--cppcanvas/source/inc/tools.hxx56
-rw-r--r--cppcanvas/source/mtfrenderer/bitmapaction.cxx238
-rw-r--r--cppcanvas/source/mtfrenderer/bitmapaction.hxx81
-rw-r--r--cppcanvas/source/mtfrenderer/cachedprimitivebase.cxx93
-rw-r--r--cppcanvas/source/mtfrenderer/cachedprimitivebase.hxx95
-rw-r--r--cppcanvas/source/mtfrenderer/implrenderer.cxx3260
-rw-r--r--cppcanvas/source/mtfrenderer/lineaction.cxx167
-rw-r--r--cppcanvas/source/mtfrenderer/lineaction.hxx73
-rw-r--r--cppcanvas/source/mtfrenderer/makefile.mk57
-rw-r--r--cppcanvas/source/mtfrenderer/mtftools.cxx693
-rw-r--r--cppcanvas/source/mtfrenderer/mtftools.hxx270
-rw-r--r--cppcanvas/source/mtfrenderer/outdevstate.hxx145
-rw-r--r--cppcanvas/source/mtfrenderer/pointaction.cxx187
-rw-r--r--cppcanvas/source/mtfrenderer/pointaction.hxx78
-rw-r--r--cppcanvas/source/mtfrenderer/polypolyaction.cxx538
-rw-r--r--cppcanvas/source/mtfrenderer/polypolyaction.hxx101
-rw-r--r--cppcanvas/source/mtfrenderer/textaction.cxx2315
-rw-r--r--cppcanvas/source/mtfrenderer/textaction.hxx102
-rw-r--r--cppcanvas/source/mtfrenderer/transparencygroupaction.cxx592
-rw-r--r--cppcanvas/source/mtfrenderer/transparencygroupaction.hxx140
-rw-r--r--cppcanvas/source/tools/canvasgraphichelper.cxx151
-rw-r--r--cppcanvas/source/tools/makefile.mk50
-rw-r--r--cppcanvas/source/tools/tools.cxx62
-rw-r--r--cppcanvas/source/wrapper/basegfxfactory.cxx164
-rw-r--r--cppcanvas/source/wrapper/implbitmap.cxx126
-rw-r--r--cppcanvas/source/wrapper/implbitmap.hxx82
-rw-r--r--cppcanvas/source/wrapper/implbitmapcanvas.cxx73
-rw-r--r--cppcanvas/source/wrapper/implbitmapcanvas.hxx76
-rw-r--r--cppcanvas/source/wrapper/implcanvas.cxx141
-rw-r--r--cppcanvas/source/wrapper/implcanvas.hxx104
-rw-r--r--cppcanvas/source/wrapper/implcolor.cxx68
-rw-r--r--cppcanvas/source/wrapper/implcolor.hxx66
-rw-r--r--cppcanvas/source/wrapper/implcustomsprite.cxx82
-rw-r--r--cppcanvas/source/wrapper/implcustomsprite.hxx71
-rw-r--r--cppcanvas/source/wrapper/implfont.cxx91
-rw-r--r--cppcanvas/source/wrapper/implfont.hxx83
-rw-r--r--cppcanvas/source/wrapper/implpolypolygon.cxx201
-rw-r--r--cppcanvas/source/wrapper/implpolypolygon.hxx99
-rw-r--r--cppcanvas/source/wrapper/implsprite.cxx236
-rw-r--r--cppcanvas/source/wrapper/implsprite.hxx95
-rw-r--r--cppcanvas/source/wrapper/implspritecanvas.cxx159
-rw-r--r--cppcanvas/source/wrapper/implspritecanvas.hxx110
-rw-r--r--cppcanvas/source/wrapper/impltext.cxx101
-rw-r--r--cppcanvas/source/wrapper/impltext.hxx78
-rw-r--r--cppcanvas/source/wrapper/makefile.mk60
-rw-r--r--cppcanvas/source/wrapper/vclfactory.cxx363
-rw-r--r--cppcanvas/util/cppcanvas.flt4
-rw-r--r--cppcanvas/util/makefile.mk70
-rw-r--r--cppu/inc/com/sun/star/uno/Any.h383
-rw-r--r--cppu/inc/com/sun/star/uno/Any.hxx589
-rw-r--r--cppu/inc/com/sun/star/uno/Reference.h533
-rw-r--r--cppu/inc/com/sun/star/uno/Reference.hxx431
-rw-r--r--cppu/inc/com/sun/star/uno/Sequence.h288
-rw-r--r--cppu/inc/com/sun/star/uno/Sequence.hxx307
-rw-r--r--cppu/inc/com/sun/star/uno/Type.h458
-rw-r--r--cppu/inc/com/sun/star/uno/Type.hxx327
-rw-r--r--cppu/inc/com/sun/star/uno/genfunc.h69
-rw-r--r--cppu/inc/com/sun/star/uno/genfunc.hxx88
-rw-r--r--cppu/inc/cppu/Enterable.hxx114
-rw-r--r--cppu/inc/cppu/EnvDcp.hxx75
-rw-r--r--cppu/inc/cppu/EnvGuards.hxx113
-rw-r--r--cppu/inc/cppu/FreeReference.hxx166
-rw-r--r--cppu/inc/cppu/Map.hxx113
-rw-r--r--cppu/inc/cppu/Shield.hxx90
-rw-r--r--cppu/inc/cppu/helper/purpenv/Environment.hxx46
-rw-r--r--cppu/inc/cppu/helper/purpenv/Mapping.hxx68
-rw-r--r--cppu/inc/cppu/macros.hxx65
-rw-r--r--cppu/inc/cppu/unotype.hxx377
-rw-r--r--cppu/inc/makefile.mk48
-rw-r--r--cppu/inc/pch/precompiled_cppu.cxx29
-rw-r--r--cppu/inc/pch/precompiled_cppu.hxx32
-rw-r--r--cppu/inc/typelib/typeclass.h104
-rw-r--r--cppu/inc/typelib/typedescription.h1160
-rw-r--r--cppu/inc/typelib/typedescription.hxx226
-rw-r--r--cppu/inc/typelib/uik.h53
-rw-r--r--cppu/inc/uno/Enterable.h112
-rw-r--r--cppu/inc/uno/EnvDcp.h63
-rw-r--r--cppu/inc/uno/any2.h178
-rw-r--r--cppu/inc/uno/cuno.h50
-rw-r--r--cppu/inc/uno/current_context.h68
-rw-r--r--cppu/inc/uno/current_context.hxx127
-rw-r--r--cppu/inc/uno/data.h257
-rw-r--r--cppu/inc/uno/dispatcher.h97
-rw-r--r--cppu/inc/uno/dispatcher.hxx175
-rw-r--r--cppu/inc/uno/environment.h385
-rw-r--r--cppu/inc/uno/environment.hxx278
-rw-r--r--cppu/inc/uno/lbnames.h103
-rw-r--r--cppu/inc/uno/mapping.h203
-rw-r--r--cppu/inc/uno/mapping.hxx354
-rw-r--r--cppu/inc/uno/sequence2.h187
-rw-r--r--cppu/inc/uno/threadpool.h189
-rw-r--r--cppu/prj/build.lst12
-rw-r--r--cppu/prj/d.lst74
-rw-r--r--cppu/qa/makefile.mk94
-rw-r--r--cppu/qa/test_any.cxx2330
-rw-r--r--cppu/qa/test_recursion.cxx57
-rw-r--r--cppu/qa/test_reference.cxx156
-rw-r--r--cppu/qa/test_unotype.cxx812
-rw-r--r--cppu/qa/types.idl63
-rw-r--r--cppu/qa/version.map34
-rw-r--r--cppu/source/AffineBridge/AffineBridge.cxx364
-rw-r--r--cppu/source/AffineBridge/makefile.mk44
-rwxr-xr-xcppu/source/LogBridge/LogBridge.cxx277
-rwxr-xr-xcppu/source/LogBridge/makefile.mk44
-rw-r--r--cppu/source/UnsafeBridge/UnsafeBridge.cxx163
-rw-r--r--cppu/source/UnsafeBridge/makefile.mk44
-rw-r--r--cppu/source/cppu/cppu_opt.cxx81
-rw-r--r--cppu/source/cppu/makefile.mk45
-rw-r--r--cppu/source/helper/purpenv/Proxy.hxx89
-rw-r--r--cppu/source/helper/purpenv/export.mk19
-rw-r--r--cppu/source/helper/purpenv/helper_purpenv_Environment.cxx537
-rw-r--r--cppu/source/helper/purpenv/helper_purpenv_Mapping.cxx233
-rw-r--r--cppu/source/helper/purpenv/helper_purpenv_Proxy.cxx530
-rw-r--r--cppu/source/helper/purpenv/makefile.mk46
-rw-r--r--cppu/source/threadpool/current.cxx299
-rw-r--r--cppu/source/threadpool/current.hxx48
-rw-r--r--cppu/source/threadpool/jobqueue.cxx191
-rw-r--r--cppu/source/threadpool/jobqueue.hxx79
-rw-r--r--cppu/source/threadpool/makefile.mk49
-rw-r--r--cppu/source/threadpool/thread.cxx217
-rw-r--r--cppu/source/threadpool/thread.hxx88
-rw-r--r--cppu/source/threadpool/threadident.cxx135
-rw-r--r--cppu/source/threadpool/threadpool.cxx502
-rw-r--r--cppu/source/threadpool/threadpool.hxx129
-rw-r--r--cppu/source/typelib/makefile.mk45
-rw-r--r--cppu/source/typelib/static_types.cxx673
-rw-r--r--cppu/source/typelib/typelib.cxx2671
-rw-r--r--cppu/source/uno/EnvDcp.c49
-rw-r--r--cppu/source/uno/EnvStack.cxx380
-rw-r--r--cppu/source/uno/IdentityMapping.cxx106
-rw-r--r--cppu/source/uno/IdentityMapping.hxx39
-rw-r--r--cppu/source/uno/any.cxx150
-rw-r--r--cppu/source/uno/assign.hxx635
-rw-r--r--cppu/source/uno/cascade_mapping.cxx341
-rw-r--r--cppu/source/uno/cascade_mapping.hxx41
-rw-r--r--cppu/source/uno/constr.hxx267
-rw-r--r--cppu/source/uno/copy.hxx886
-rw-r--r--cppu/source/uno/data.cxx617
-rw-r--r--cppu/source/uno/destr.hxx438
-rw-r--r--cppu/source/uno/env_subst.cxx54
-rw-r--r--cppu/source/uno/env_subst.hxx41
-rw-r--r--cppu/source/uno/eq.hxx668
-rw-r--r--cppu/source/uno/lbenv.cxx1182
-rw-r--r--cppu/source/uno/lbmap.cxx692
-rw-r--r--cppu/source/uno/loadmodule.cxx55
-rw-r--r--cppu/source/uno/loadmodule.hxx51
-rw-r--r--cppu/source/uno/makefile.mk55
-rw-r--r--cppu/source/uno/prim.hxx206
-rw-r--r--cppu/source/uno/sequence.cxx1016
-rwxr-xr-xcppu/test/AffineBridge/AffineBridge.test.pl72
-rw-r--r--cppu/test/AffineBridge/makefile.mk42
-rw-r--r--cppu/test/AntiEnvGuard/AntiEnvGuard.test.cxx131
-rw-r--r--cppu/test/AntiEnvGuard/makefile.mk46
-rw-r--r--cppu/test/EnvDcp/EnvDcp.test.cxx111
-rw-r--r--cppu/test/EnvDcp/makefile.mk46
-rw-r--r--cppu/test/EnvGuard/EnvGuard.test.cxx152
-rw-r--r--cppu/test/EnvGuard/makefile.mk46
-rwxr-xr-xcppu/test/EnvStack/EnvStack.test.pl89
-rw-r--r--cppu/test/EnvStack/makefile.mk47
-rw-r--r--cppu/test/EnvStack_tester/EnvStack.tester.cxx200
-rw-r--r--cppu/test/EnvStack_tester/EnvStack.tester.hxx61
-rw-r--r--cppu/test/EnvStack_tester/ProbeEnv.cxx148
-rw-r--r--cppu/test/EnvStack_tester/ProbeEnv.def8
-rw-r--r--cppu/test/EnvStack_tester/makefile.mk126
-rw-r--r--cppu/test/Environment.test.cxx75
-rw-r--r--cppu/test/FreeReference/FreeReference.test.cxx414
-rw-r--r--cppu/test/FreeReference/makefile.mk55
-rw-r--r--cppu/test/IdentityMapping.test.cxx77
-rw-r--r--cppu/test/Map/Map.test.cxx258
-rw-r--r--cppu/test/Map/makefile.mk55
-rw-r--r--cppu/test/Mapping.test.cxx77
-rw-r--r--cppu/test/ObjectFactory/CppObject.cxx103
-rw-r--r--cppu/test/ObjectFactory/CppObject.hxx62
-rw-r--r--cppu/test/ObjectFactory/ObjectFactory.cxx69
-rw-r--r--cppu/test/ObjectFactory/ObjectFactory.hxx48
-rw-r--r--cppu/test/ObjectFactory/UnoObject.cxx227
-rw-r--r--cppu/test/ObjectFactory/UnoObject.hxx43
-rw-r--r--cppu/test/ObjectFactory/callee.hxx39
-rw-r--r--cppu/test/ObjectFactory/empty.def5
-rw-r--r--cppu/test/ObjectFactory/makefile.mk48
-rw-r--r--cppu/test/Shield/Shield.test.cxx249
-rw-r--r--cppu/test/Shield/makefile.mk55
-rwxr-xr-xcppu/test/UnsafeBridge/UnsafeBridge.test.pl72
-rw-r--r--cppu/test/UnsafeBridge/makefile.mk42
-rw-r--r--cppu/test/alignment.idl205
-rw-r--r--cppu/test/alignment/diagnose.h67
-rw-r--r--cppu/test/alignment/makefile.mk84
-rw-r--r--cppu/test/alignment/pass1.cxx240
-rw-r--r--cppu/test/cascade_mapping/TestMapping.cxx194
-rw-r--r--cppu/test/cascade_mapping/TestMapping.def11
-rw-r--r--cppu/test/cascade_mapping/TestProxy.cxx179
-rw-r--r--cppu/test/cascade_mapping/TestProxy.hxx70
-rwxr-xr-xcppu/test/cascade_mapping/cascade_mapping.test.pl91
-rw-r--r--cppu/test/cascade_mapping/makefile.mk90
-rw-r--r--cppu/test/cascade_mapping/path.test.cxx60
-rw-r--r--cppu/test/cascade_mapping/path.test.def8
-rw-r--r--cppu/test/cpputest.idl94
-rw-r--r--cppu/test/env_substs/env_subst.test.cxx95
-rw-r--r--cppu/test/env_substs/makefile.mk46
-rw-r--r--cppu/test/env_tester/TestEnvironment.cxx37
-rw-r--r--cppu/test/env_tester/TestEnvironment.def7
-rw-r--r--cppu/test/env_tester/env.tester.cxx104
-rw-r--r--cppu/test/env_tester/makefile.mk67
-rw-r--r--cppu/test/env_tester/purpenv.test.cxx401
-rw-r--r--cppu/test/env_tester/register.test.cxx234
-rw-r--r--cppu/test/language_binding.idl239
-rw-r--r--cppu/test/makefile.mk156
-rw-r--r--cppu/test/mapping_tester/Mapping.tester.hxx75
-rw-r--r--cppu/test/mapping_tester/makefile.mk63
-rw-r--r--cppu/test/mapping_tester/mapping.tester.cxx456
-rw-r--r--cppu/test/purpenvhelper/TestEnv.cxx129
-rw-r--r--cppu/test/purpenvhelper/TestEnv.def8
-rw-r--r--cppu/test/purpenvhelper/makefile.mk54
-rwxr-xr-xcppu/test/purpenvhelper/purpenvhelper.test.pl67
-rw-r--r--cppu/test/purpose_envs/makefile.mk44
-rwxr-xr-xcppu/test/purpose_envs/purpose_envs.test.pl67
-rw-r--r--cppu/test/surrogate.hxx155
-rw-r--r--cppu/test/test_Cincludes.c9
-rw-r--r--cppu/test/test_cuno.c784
-rw-r--r--cppu/test/test_di.cxx888
-rw-r--r--cppu/test/test_sec.cxx211
-rw-r--r--cppu/test/testcppu.cxx1241
-rw-r--r--cppu/test/testthreadpool.cxx193
-rwxr-xr-xcppu/util/cppu.map127
-rw-r--r--cppu/util/empty.def6
-rw-r--r--cppu/util/extra.mk89
-rw-r--r--cppu/util/makefile.mk105
-rw-r--r--cppu/util/makefile.pmk32
-rw-r--r--cppu/util/purpenvhelper3MSC.map8
-rw-r--r--cppu/util/target.pmk62
-rw-r--r--cppu/util/uno_purpenvhelperC52.map9
-rw-r--r--cppu/util/uno_purpenvhelpergcc3.map8
-rw-r--r--cppu/util/uno_purpenvhelperwntgcc.map8
-rw-r--r--cppu/util/unsafe_os2.map7
-rwxr-xr-xcppuhelper/inc/cppuhelper/access_control.hxx124
-rw-r--r--cppuhelper/inc/cppuhelper/basemutex.hxx49
-rw-r--r--cppuhelper/inc/cppuhelper/bootstrap.hxx223
-rw-r--r--cppuhelper/inc/cppuhelper/compbase.hxx115
-rw-r--r--cppuhelper/inc/cppuhelper/compbase1.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase10.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase11.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase12.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase2.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase3.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase4.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase5.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase6.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase7.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase8.hxx137
-rw-r--r--cppuhelper/inc/cppuhelper/compbase9.hxx136
-rw-r--r--cppuhelper/inc/cppuhelper/compbase_ex.hxx176
-rw-r--r--cppuhelper/inc/cppuhelper/component.hxx120
-rw-r--r--cppuhelper/inc/cppuhelper/component_context.hxx96
-rw-r--r--cppuhelper/inc/cppuhelper/exc_hlp.hxx98
-rw-r--r--cppuhelper/inc/cppuhelper/factory.hxx260
-rw-r--r--cppuhelper/inc/cppuhelper/findsofficepath.h45
-rw-r--r--cppuhelper/inc/cppuhelper/implbase.hxx298
-rw-r--r--cppuhelper/inc/cppuhelper/implbase1.hxx295
-rw-r--r--cppuhelper/inc/cppuhelper/implbase10.hxx300
-rw-r--r--cppuhelper/inc/cppuhelper/implbase11.hxx301
-rw-r--r--cppuhelper/inc/cppuhelper/implbase12.hxx302
-rw-r--r--cppuhelper/inc/cppuhelper/implbase2.hxx291
-rw-r--r--cppuhelper/inc/cppuhelper/implbase3.hxx293
-rw-r--r--cppuhelper/inc/cppuhelper/implbase4.hxx294
-rw-r--r--cppuhelper/inc/cppuhelper/implbase5.hxx295
-rw-r--r--cppuhelper/inc/cppuhelper/implbase6.hxx296
-rw-r--r--cppuhelper/inc/cppuhelper/implbase7.hxx298
-rw-r--r--cppuhelper/inc/cppuhelper/implbase8.hxx298
-rw-r--r--cppuhelper/inc/cppuhelper/implbase9.hxx300
-rw-r--r--cppuhelper/inc/cppuhelper/implbase_ex.hxx174
-rw-r--r--cppuhelper/inc/cppuhelper/implbase_ex_post.hxx231
-rw-r--r--cppuhelper/inc/cppuhelper/implbase_ex_pre.hxx36
-rw-r--r--cppuhelper/inc/cppuhelper/implementationentry.hxx111
-rw-r--r--cppuhelper/inc/cppuhelper/interfacecontainer.h604
-rw-r--r--cppuhelper/inc/cppuhelper/interfacecontainer.hxx203
-rw-r--r--cppuhelper/inc/cppuhelper/propertysetmixin.hxx488
-rw-r--r--cppuhelper/inc/cppuhelper/propshlp.hxx640
-rw-r--r--cppuhelper/inc/cppuhelper/proptypehlp.h76
-rw-r--r--cppuhelper/inc/cppuhelper/proptypehlp.hxx530
-rw-r--r--cppuhelper/inc/cppuhelper/queryinterface.hxx541
-rw-r--r--cppuhelper/inc/cppuhelper/servicefactory.hxx122
-rw-r--r--cppuhelper/inc/cppuhelper/shlib.hxx82
-rw-r--r--cppuhelper/inc/cppuhelper/stdidlclass.hxx389
-rw-r--r--cppuhelper/inc/cppuhelper/typeprovider.hxx242
-rw-r--r--cppuhelper/inc/cppuhelper/unourl.hxx192
-rw-r--r--cppuhelper/inc/cppuhelper/weak.hxx172
-rw-r--r--cppuhelper/inc/cppuhelper/weakagg.hxx111
-rw-r--r--cppuhelper/inc/cppuhelper/weakref.hxx169
-rw-r--r--cppuhelper/inc/makefile.mk47
-rw-r--r--cppuhelper/inc/pch/precompiled_cppuhelper.cxx29
-rw-r--r--cppuhelper/inc/pch/precompiled_cppuhelper.hxx32
-rw-r--r--cppuhelper/prj/build.lst5
-rw-r--r--cppuhelper/prj/d.lst76
-rw-r--r--cppuhelper/qa/ifcontainer/cppu_ifcontainer.cxx283
-rw-r--r--cppuhelper/qa/ifcontainer/export.map7
-rw-r--r--cppuhelper/qa/ifcontainer/makefile.mk60
-rw-r--r--cppuhelper/qa/propertysetmixin/JavaSupplier.java322
-rw-r--r--cppuhelper/qa/propertysetmixin/comp.map36
-rw-r--r--cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx436
-rw-r--r--cppuhelper/qa/propertysetmixin/makefile.mk138
-rw-r--r--cppuhelper/qa/propertysetmixin/manifest2
-rw-r--r--cppuhelper/qa/propertysetmixin/test.gcc3.map36
-rw-r--r--cppuhelper/qa/propertysetmixin/test.map34
-rw-r--r--cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx674
-rw-r--r--cppuhelper/qa/propertysetmixin/types.idl85
-rw-r--r--cppuhelper/qa/sce/test_unourl.sce1
-rw-r--r--cppuhelper/qa/unourl/cppu_unourl.cxx481
-rw-r--r--cppuhelper/qa/unourl/export.map7
-rw-r--r--cppuhelper/qa/unourl/makefile.mk60
-rw-r--r--cppuhelper/qa/weak/makefile.mk52
-rw-r--r--cppuhelper/qa/weak/test_weak.cxx109
-rw-r--r--cppuhelper/qa/weak/version.map34
-rw-r--r--cppuhelper/source/access_control.cxx149
-rw-r--r--cppuhelper/source/bootstrap.cxx664
-rwxr-xr-xcppuhelper/source/cc5_solaris_sparc.map388
-rw-r--r--cppuhelper/source/component.cxx248
-rw-r--r--cppuhelper/source/component_context.cxx899
-rw-r--r--cppuhelper/source/exc_thrower.cxx298
-rw-r--r--cppuhelper/source/factory.cxx1129
-rw-r--r--cppuhelper/source/findsofficepath.c205
-rw-r--r--cppuhelper/source/gcc3.map383
-rw-r--r--cppuhelper/source/gcc3os2.map376
-rw-r--r--cppuhelper/source/implbase.cxx471
-rw-r--r--cppuhelper/source/implbase_ex.cxx469
-rw-r--r--cppuhelper/source/implementationentry.cxx102
-rw-r--r--cppuhelper/source/interfacecontainer.cxx731
-rw-r--r--cppuhelper/source/macro_expander.cxx198
-rw-r--r--cppuhelper/source/macro_expander.hxx60
-rw-r--r--cppuhelper/source/makefile.mk192
-rw-r--r--cppuhelper/source/msvc_win32_intel.map279
-rw-r--r--cppuhelper/source/propertysetmixin.cxx1428
-rw-r--r--cppuhelper/source/propshlp.cxx1241
-rw-r--r--cppuhelper/source/servicefactory.cxx660
-rw-r--r--cppuhelper/source/shlib.cxx609
-rw-r--r--cppuhelper/source/stdidlclass.cxx259
-rw-r--r--cppuhelper/source/tdmgr.cxx762
-rw-r--r--cppuhelper/source/typeprovider.cxx326
-rw-r--r--cppuhelper/source/unorc30
-rw-r--r--cppuhelper/source/unourl.cxx298
-rw-r--r--cppuhelper/source/weak.cxx553
-rw-r--r--cppuhelper/test/bootstrap/TestEnv.cxx128
-rw-r--r--cppuhelper/test/bootstrap/TestEnv.def8
-rw-r--r--cppuhelper/test/bootstrap/bootstrap.test.cxx320
-rw-r--r--cppuhelper/test/bootstrap/makefile.mk61
-rw-r--r--cppuhelper/test/cfg_data/instance/uno/components.xml76
-rw-r--r--cppuhelper/test/cfg_data/template/uno/components.xml24
-rw-r--r--cppuhelper/test/cfg_test.cxx303
-rw-r--r--cppuhelper/test/cfg_test.map8
-rw-r--r--cppuhelper/test/helpertest.idl84
-rw-r--r--cppuhelper/test/loader/loader.test.cxx205
-rw-r--r--cppuhelper/test/loader/makefile.mk59
-rw-r--r--cppuhelper/test/makefile.mk168
-rw-r--r--cppuhelper/test/testcmp/TestComponent.cxx247
-rw-r--r--cppuhelper/test/testcmp/TestComponent.hxx56
-rwxr-xr-xcppuhelper/test/testcmp/TestComponent.uno.def11
-rw-r--r--cppuhelper/test/testcmp/makefile.mk49
-rw-r--r--cppuhelper/test/testcontainer.cxx153
-rw-r--r--cppuhelper/test/testdefaultbootstrapping.cxx84
-rw-r--r--cppuhelper/test/testdefaultbootstrapping.pl277
-rw-r--r--cppuhelper/test/testhelper.cxx104
-rw-r--r--cppuhelper/test/testhelper.hxx31
-rw-r--r--cppuhelper/test/testidlclass.cxx227
-rw-r--r--cppuhelper/test/testimplhelper.cxx581
-rw-r--r--cppuhelper/test/testlib/UNO.pm68
-rwxr-xr-xcppuhelper/test/testlib/defbootstrap.map8
-rw-r--r--cppuhelper/test/testlib/defbootstrap_lib.cxx117
-rwxr-xr-xcppuhelper/test/testlib/makefile.mk103
-rw-r--r--cppuhelper/test/testpropshlp.cxx1181
-rw-r--r--cppuhelper/test/testproptyphlp.cxx84
-rw-r--r--cppuhelper/unotypes/cppuhelper/detail/XExceptionThrower.idl47
-rw-r--r--cppuhelper/unotypes/makefile.mk52
-rw-r--r--cppunit/cppunit-1.8.0-r1.patch2415
-rw-r--r--cppunit/makefile.mk63
-rw-r--r--cppunit/prj/build.lst3
-rw-r--r--cppunit/prj/d.lst10
-rw-r--r--cpputools/prj/build.lst8
-rw-r--r--cpputools/prj/d.lst12
-rwxr-xr-xcpputools/source/regcomplazy/makefile.mk54
-rwxr-xr-xcpputools/source/regcomplazy/regcomplazy.cxx282
-rw-r--r--cpputools/source/registercomponent/makefile.mk75
-rw-r--r--cpputools/source/registercomponent/registercomponent.cxx855
-rw-r--r--cpputools/source/regsingleton/makefile.mk79
-rw-r--r--cpputools/source/regsingleton/regsingleton.cxx173
-rw-r--r--cpputools/source/sp2bv/makefile.mk56
-rw-r--r--cpputools/source/sp2bv/readme.txt10
-rw-r--r--cpputools/source/sp2bv/sp2bv.cxx141
-rw-r--r--cpputools/source/unoexe/makefile.mk91
-rw-r--r--cpputools/source/unoexe/unoexe.cxx899
-rwxr-xr-xcrashrep/prj/build.lst5
-rwxr-xr-xcrashrep/prj/d.lst4
-rw-r--r--crashrep/source/all/crashrep.ulf220
-rw-r--r--crashrep/source/all/makefile.mk49
-rwxr-xr-xcrashrep/source/unx/crash_report.sh48
-rwxr-xr-xcrashrep/source/unx/main.cxx1122
-rwxr-xr-xcrashrep/source/unx/makefile.mk76
-rwxr-xr-xcrashrep/source/win32/base64.cpp83
-rwxr-xr-xcrashrep/source/win32/base64.h45
-rwxr-xr-xcrashrep/source/win32/ctrylnglist.txt29
-rwxr-xr-xcrashrep/source/win32/makefile.mk89
-rwxr-xr-xcrashrep/source/win32/rcfooter.txt1
-rwxr-xr-xcrashrep/source/win32/rcheader.txt114
-rwxr-xr-xcrashrep/source/win32/rctemplate.txt192
-rwxr-xr-xcrashrep/source/win32/resource.h120
-rwxr-xr-xcrashrep/source/win32/soreport.cpp2982
-rw-r--r--cui/inc/makefile.mk48
-rw-r--r--cui/inc/pch/precompiled_cui.cxx29
-rw-r--r--cui/inc/pch/precompiled_cui.hxx965
-rw-r--r--cui/prj/build.lst9
-rwxr-xr-xcui/prj/d.lst8
-rw-r--r--cui/source/customize/acccfg.cxx1699
-rw-r--r--cui/source/customize/acccfg.hrc75
-rw-r--r--cui/source/customize/acccfg.src357
-rw-r--r--cui/source/customize/cfg.cxx6053
-rw-r--r--cui/source/customize/cfg.hrc105
-rw-r--r--cui/source/customize/cfg.src872
-rw-r--r--cui/source/customize/cfgutil.cxx1798
-rw-r--r--cui/source/customize/eventdlg.cxx247
-rw-r--r--cui/source/customize/eventdlg.hrc43
-rw-r--r--cui/source/customize/eventdlg.hxx78
-rw-r--r--cui/source/customize/eventdlg.src111
-rw-r--r--cui/source/customize/macropg.cxx1049
-rw-r--r--cui/source/customize/macropg.hrc101
-rw-r--r--cui/source/customize/macropg.src459
-rw-r--r--cui/source/customize/macropg_impl.hxx73
-rw-r--r--cui/source/customize/makefile.mk63
-rw-r--r--cui/source/customize/selector.cxx1253
-rw-r--r--cui/source/customize/selector.hrc57
-rw-r--r--cui/source/customize/selector.src212
-rw-r--r--cui/source/dialogs/SpellAttrib.cxx172
-rw-r--r--cui/source/dialogs/SpellAttrib.hxx173
-rw-r--r--cui/source/dialogs/SpellDialog.cxx2152
-rw-r--r--cui/source/dialogs/SpellDialog.hrc55
-rw-r--r--cui/source/dialogs/SpellDialog.src242
-rw-r--r--cui/source/dialogs/charmap.hrc51
-rw-r--r--cui/source/dialogs/charmap.src159
-rw-r--r--cui/source/dialogs/commonlingui.cxx289
-rw-r--r--cui/source/dialogs/commonlingui.hxx171
-rw-r--r--cui/source/dialogs/commonlingui.src153
-rw-r--r--cui/source/dialogs/cuicharmap.cxx589
-rw-r--r--cui/source/dialogs/cuifmsearch.cxx965
-rw-r--r--cui/source/dialogs/cuigaldlg.cxx1269
-rw-r--r--cui/source/dialogs/cuigrfflt.cxx756
-rw-r--r--cui/source/dialogs/cuihyperdlg.cxx414
-rw-r--r--cui/source/dialogs/cuiimapdlg.hrc44
-rw-r--r--cui/source/dialogs/cuiimapdlg.src148
-rw-r--r--cui/source/dialogs/cuiimapwnd.cxx97
-rw-r--r--cui/source/dialogs/cuitbxform.cxx65
-rw-r--r--cui/source/dialogs/dlgname.cxx236
-rw-r--r--cui/source/dialogs/dlgname.hrc46
-rw-r--r--cui/source/dialogs/dlgname.src269
-rw-r--r--cui/source/dialogs/fmsearch.hrc86
-rw-r--r--cui/source/dialogs/fmsearch.src329
-rw-r--r--cui/source/dialogs/gallery.src479
-rw-r--r--cui/source/dialogs/grfflt.hrc80
-rw-r--r--cui/source/dialogs/grfflt.src454
-rw-r--r--cui/source/dialogs/hangulhanjadlg.cxx1910
-rw-r--r--cui/source/dialogs/hangulhanjadlg.hrc197
-rw-r--r--cui/source/dialogs/hangulhanjadlg.src428
-rw-r--r--cui/source/dialogs/hldocntp.cxx518
-rw-r--r--cui/source/dialogs/hldoctp.cxx380
-rw-r--r--cui/source/dialogs/hlinettp.cxx544
-rw-r--r--cui/source/dialogs/hlmailtp.cxx361
-rw-r--r--cui/source/dialogs/hlmarkwn.cxx543
-rw-r--r--cui/source/dialogs/hlmarkwn.hrc34
-rw-r--r--cui/source/dialogs/hlmarkwn.src95
-rw-r--r--cui/source/dialogs/hltpbase.cxx870
-rw-r--r--cui/source/dialogs/hyperdlg.hrc100
-rw-r--r--cui/source/dialogs/hyperdlg.src968
-rw-r--r--cui/source/dialogs/hyphen.cxx513
-rw-r--r--cui/source/dialogs/hyphen.hrc45
-rw-r--r--cui/source/dialogs/hyphen.src143
-rw-r--r--cui/source/dialogs/iconcdlg.cxx1435
-rw-r--r--cui/source/dialogs/iconcdlg.src60
-rw-r--r--cui/source/dialogs/insdlg.cxx1057
-rw-r--r--cui/source/dialogs/insrc.cxx82
-rw-r--r--cui/source/dialogs/insrc.hrc40
-rw-r--r--cui/source/dialogs/insrc.src115
-rw-r--r--cui/source/dialogs/linkdlg.cxx713
-rw-r--r--cui/source/dialogs/makefile.mk118
-rw-r--r--cui/source/dialogs/multifil.cxx184
-rw-r--r--cui/source/dialogs/multipat.cxx360
-rw-r--r--cui/source/dialogs/multipat.hrc44
-rw-r--r--cui/source/dialogs/multipat.src150
-rw-r--r--cui/source/dialogs/newtabledlg.cxx71
-rw-r--r--cui/source/dialogs/newtabledlg.hrc35
-rw-r--r--cui/source/dialogs/newtabledlg.src135
-rw-r--r--cui/source/dialogs/pastedlg.cxx307
-rw-r--r--cui/source/dialogs/plfilter.cxx126
-rw-r--r--cui/source/dialogs/postdlg.cxx259
-rw-r--r--cui/source/dialogs/postdlg.hrc51
-rw-r--r--cui/source/dialogs/postdlg.src157
-rw-r--r--cui/source/dialogs/scriptdlg.cxx1691
-rw-r--r--cui/source/dialogs/scriptdlg.hrc80
-rw-r--r--cui/source/dialogs/scriptdlg.src307
-rw-r--r--cui/source/dialogs/sdrcelldlg.cxx101
-rw-r--r--cui/source/dialogs/sdrcelldlg.src141
-rw-r--r--cui/source/dialogs/showcols.cxx138
-rw-r--r--cui/source/dialogs/showcols.src102
-rw-r--r--cui/source/dialogs/splitcelldlg.cxx111
-rw-r--r--cui/source/dialogs/splitcelldlg.hrc42
-rw-r--r--cui/source/dialogs/splitcelldlg.src132
-rw-r--r--cui/source/dialogs/srchxtra.cxx289
-rw-r--r--cui/source/dialogs/srchxtra.hrc51
-rw-r--r--cui/source/dialogs/srchxtra.src279
-rw-r--r--cui/source/dialogs/svuidlg.hrc134
-rw-r--r--cui/source/dialogs/svuidlg.src708
-rw-r--r--cui/source/dialogs/tbxform.src64
-rw-r--r--cui/source/dialogs/thesdlg.cxx492
-rw-r--r--cui/source/dialogs/thesdlg.hrc59
-rw-r--r--cui/source/dialogs/thesdlg.src208
-rw-r--r--cui/source/dialogs/winpluginlib.cpp226
-rw-r--r--cui/source/dialogs/zoom.cxx534
-rw-r--r--cui/source/dialogs/zoom.hrc53
-rw-r--r--cui/source/dialogs/zoom.src157
-rw-r--r--cui/source/factory/cuiexp.cxx51
-rw-r--r--cui/source/factory/cuiresmgr.cxx50
-rw-r--r--cui/source/factory/dlgfact.cxx1954
-rw-r--r--cui/source/factory/dlgfact.hxx802
-rw-r--r--cui/source/factory/init.cxx53
-rw-r--r--cui/source/factory/makefile.mk52
-rw-r--r--cui/source/inc/ControlFocusHelper.hxx48
-rw-r--r--cui/source/inc/SpellDialog.hxx258
-rw-r--r--cui/source/inc/acccfg.hxx285
-rw-r--r--cui/source/inc/align.hxx101
-rw-r--r--cui/source/inc/autocdlg.hxx518
-rw-r--r--cui/source/inc/backgrnd.hxx170
-rw-r--r--cui/source/inc/bbdlg.hxx56
-rw-r--r--cui/source/inc/border.hxx156
-rw-r--r--cui/source/inc/cfg.hxx833
-rw-r--r--cui/source/inc/cfgutil.hxx217
-rw-r--r--cui/source/inc/chardlg.hxx397
-rw-r--r--cui/source/inc/connect.hxx118
-rw-r--r--cui/source/inc/cuicharmap.hxx143
-rw-r--r--cui/source/inc/cuifmsearch.hxx227
-rw-r--r--cui/source/inc/cuigaldlg.hxx372
-rw-r--r--cui/source/inc/cuigrfflt.hxx253
-rw-r--r--cui/source/inc/cuihyperdlg.hxx114
-rw-r--r--cui/source/inc/cuiimapwnd.hxx54
-rw-r--r--cui/source/inc/cuioptgenrl.hxx128
-rw-r--r--cui/source/inc/cuires.hrc431
-rw-r--r--cui/source/inc/cuisrchdlg.hxx73
-rw-r--r--cui/source/inc/cuitabarea.hxx802
-rw-r--r--cui/source/inc/cuitabline.hxx430
-rw-r--r--cui/source/inc/cuitbxform.hxx29
-rw-r--r--cui/source/inc/dbregister.hxx160
-rw-r--r--cui/source/inc/defdlgname.hxx40
-rw-r--r--cui/source/inc/dialmgr.hxx48
-rw-r--r--cui/source/inc/dlgname.hxx204
-rw-r--r--cui/source/inc/dstribut.hxx125
-rw-r--r--cui/source/inc/gallery.hrc101
-rw-r--r--cui/source/inc/grfpage.hxx140
-rw-r--r--cui/source/inc/hangulhanjadlg.hxx350
-rw-r--r--cui/source/inc/headertablistbox.hxx68
-rw-r--r--cui/source/inc/helpid.hrc390
-rw-r--r--cui/source/inc/hldocntp.hxx78
-rw-r--r--cui/source/inc/hldoctp.hxx93
-rw-r--r--cui/source/inc/hlinettp.hxx107
-rw-r--r--cui/source/inc/hlmailtp.hxx77
-rw-r--r--cui/source/inc/hlmarkwn.hxx111
-rw-r--r--cui/source/inc/hlmarkwn_def.hxx36
-rw-r--r--cui/source/inc/hltpbase.hxx208
-rw-r--r--cui/source/inc/hyphen.hxx119
-rw-r--r--cui/source/inc/iconcdlg.hxx289
-rw-r--r--cui/source/inc/insdlg.hxx214
-rw-r--r--cui/source/inc/insrc.hxx69
-rw-r--r--cui/source/inc/internationaloptions.hxx58
-rw-r--r--cui/source/inc/labdlg.hxx144
-rw-r--r--cui/source/inc/linkdlg.hxx134
-rw-r--r--cui/source/inc/macroass.hxx143
-rw-r--r--cui/source/inc/macropg.hxx175
-rw-r--r--cui/source/inc/measure.hxx127
-rw-r--r--cui/source/inc/multifil.hxx59
-rw-r--r--cui/source/inc/multipat.hxx89
-rw-r--r--cui/source/inc/newtabledlg.hxx62
-rw-r--r--cui/source/inc/numfmt.hxx188
-rw-r--r--cui/source/inc/numpages.hxx469
-rw-r--r--cui/source/inc/optasian.hxx81
-rw-r--r--cui/source/inc/optdict.hxx188
-rw-r--r--cui/source/inc/optimprove.hxx138
-rw-r--r--cui/source/inc/optlingu.hxx181
-rw-r--r--cui/source/inc/optpath.hxx116
-rw-r--r--cui/source/inc/page.hxx238
-rw-r--r--cui/source/inc/paragrph.hxx327
-rw-r--r--cui/source/inc/pastedlg.hxx95
-rw-r--r--cui/source/inc/postdlg.hxx126
-rw-r--r--cui/source/inc/radiobtnbox.hxx62
-rw-r--r--cui/source/inc/scriptdlg.hxx248
-rw-r--r--cui/source/inc/sdrcelldlg.hxx63
-rw-r--r--cui/source/inc/selector.hxx246
-rw-r--r--cui/source/inc/showcols.hxx66
-rw-r--r--cui/source/inc/splitcelldlg.hxx69
-rw-r--r--cui/source/inc/srchxtra.hxx108
-rw-r--r--cui/source/inc/tabstpge.hxx159
-rw-r--r--cui/source/inc/textanim.hxx128
-rw-r--r--cui/source/inc/textattr.hxx135
-rw-r--r--cui/source/inc/thesdlg.hxx121
-rw-r--r--cui/source/inc/transfrm.hxx305
-rw-r--r--cui/source/inc/treeopt.hxx359
-rw-r--r--cui/source/inc/zoom.hxx117
-rw-r--r--cui/source/options/cfgchart.cxx324
-rw-r--r--cui/source/options/cfgchart.hxx116
-rw-r--r--cui/source/options/connpoolconfig.cxx223
-rw-r--r--cui/source/options/connpoolconfig.hxx54
-rw-r--r--cui/source/options/connpooloptions.cxx507
-rw-r--r--cui/source/options/connpooloptions.hrc49
-rw-r--r--cui/source/options/connpooloptions.hxx92
-rw-r--r--cui/source/options/connpooloptions.src166
-rw-r--r--cui/source/options/connpoolsettings.cxx120
-rw-r--r--cui/source/options/connpoolsettings.hxx108
-rw-r--r--cui/source/options/cuisrchdlg.cxx100
-rw-r--r--cui/source/options/dbregister.cxx524
-rw-r--r--cui/source/options/dbregister.hrc42
-rw-r--r--cui/source/options/dbregister.src90
-rw-r--r--cui/source/options/dbregisterednamesconfig.cxx141
-rw-r--r--cui/source/options/dbregisterednamesconfig.hxx54
-rw-r--r--cui/source/options/dbregistersettings.cxx76
-rw-r--r--cui/source/options/dbregistersettings.hxx95
-rw-r--r--cui/source/options/doclinkdialog.cxx224
-rw-r--r--cui/source/options/doclinkdialog.hrc50
-rw-r--r--cui/source/options/doclinkdialog.hxx93
-rw-r--r--cui/source/options/doclinkdialog.src151
-rw-r--r--cui/source/options/fontsubs.cxx611
-rw-r--r--cui/source/options/fontsubs.hrc62
-rw-r--r--cui/source/options/fontsubs.hxx134
-rw-r--r--cui/source/options/fontsubs.src196
-rw-r--r--cui/source/options/internationaloptions.cxx164
-rw-r--r--cui/source/options/internationaloptions.hrc72
-rw-r--r--cui/source/options/internationaloptions.src103
-rw-r--r--cui/source/options/makefile.mk118
-rw-r--r--cui/source/options/optHeaderTabListbox.cxx87
-rw-r--r--cui/source/options/optHeaderTabListbox.hxx45
-rw-r--r--cui/source/options/optaccessibility.cxx185
-rw-r--r--cui/source/options/optaccessibility.hrc84
-rw-r--r--cui/source/options/optaccessibility.hxx65
-rw-r--r--cui/source/options/optaccessibility.src152
-rw-r--r--cui/source/options/optasian.cxx467
-rw-r--r--cui/source/options/optasian.hrc49
-rw-r--r--cui/source/options/optasian.src174
-rw-r--r--cui/source/options/optchart.cxx236
-rw-r--r--cui/source/options/optchart.hrc37
-rw-r--r--cui/source/options/optchart.hxx89
-rw-r--r--cui/source/options/optchart.src83
-rw-r--r--cui/source/options/optcolor.cxx1630
-rw-r--r--cui/source/options/optcolor.hrc219
-rw-r--r--cui/source/options/optcolor.hxx81
-rw-r--r--cui/source/options/optcolor.src549
-rw-r--r--cui/source/options/optctl.cxx170
-rw-r--r--cui/source/options/optctl.hrc58
-rw-r--r--cui/source/options/optctl.hxx70
-rw-r--r--cui/source/options/optctl.src116
-rw-r--r--cui/source/options/optdict.cxx802
-rw-r--r--cui/source/options/optdict.hrc65
-rw-r--r--cui/source/options/optdict.src279
-rw-r--r--cui/source/options/optfltr.cxx436
-rw-r--r--cui/source/options/optfltr.hrc55
-rw-r--r--cui/source/options/optfltr.hxx115
-rw-r--r--cui/source/options/optfltr.src201
-rw-r--r--cui/source/options/optgdlg.cxx1919
-rw-r--r--cui/source/options/optgdlg.hrc205
-rw-r--r--cui/source/options/optgdlg.hxx217
-rw-r--r--cui/source/options/optgdlg.src640
-rw-r--r--cui/source/options/optgenrl.cxx582
-rw-r--r--cui/source/options/optgenrl.hrc85
-rw-r--r--cui/source/options/optgenrl.src312
-rw-r--r--cui/source/options/opthtml.cxx267
-rw-r--r--cui/source/options/opthtml.hrc63
-rw-r--r--cui/source/options/opthtml.hxx89
-rw-r--r--cui/source/options/opthtml.src287
-rw-r--r--cui/source/options/optimprove.cxx227
-rw-r--r--cui/source/options/optimprove.hrc50
-rw-r--r--cui/source/options/optimprove.src121
-rw-r--r--cui/source/options/optimprove2.cxx269
-rw-r--r--cui/source/options/optinet2.cxx2336
-rw-r--r--cui/source/options/optinet2.hrc177
-rw-r--r--cui/source/options/optinet2.hxx352
-rw-r--r--cui/source/options/optinet2.src644
-rw-r--r--cui/source/options/optjava.cxx1135
-rw-r--r--cui/source/options/optjava.hrc83
-rw-r--r--cui/source/options/optjava.hxx214
-rw-r--r--cui/source/options/optjava.src287
-rw-r--r--cui/source/options/optjsearch.cxx382
-rw-r--r--cui/source/options/optjsearch.hrc50
-rw-r--r--cui/source/options/optjsearch.hxx93
-rw-r--r--cui/source/options/optjsearch.src220
-rw-r--r--cui/source/options/optlingu.cxx2552
-rw-r--r--cui/source/options/optlingu.hrc88
-rw-r--r--cui/source/options/optlingu.src354
-rw-r--r--cui/source/options/optmemory.cxx271
-rw-r--r--cui/source/options/optmemory.hrc86
-rw-r--r--cui/source/options/optmemory.hxx89
-rw-r--r--cui/source/options/optmemory.src207
-rw-r--r--cui/source/options/optpath.cxx863
-rw-r--r--cui/source/options/optpath.hrc43
-rw-r--r--cui/source/options/optpath.src200
-rw-r--r--cui/source/options/optsave.cxx827
-rw-r--r--cui/source/options/optsave.hrc81
-rw-r--r--cui/source/options/optsave.hxx105
-rw-r--r--cui/source/options/optsave.src322
-rw-r--r--cui/source/options/optspell.hrc42
-rw-r--r--cui/source/options/optspell.src125
-rw-r--r--cui/source/options/optupdt.cxx412
-rw-r--r--cui/source/options/optupdt.hrc49
-rw-r--r--cui/source/options/optupdt.hxx81
-rw-r--r--cui/source/options/optupdt.src111
-rw-r--r--cui/source/options/radiobtnbox.cxx115
-rw-r--r--cui/source/options/readonlyimage.cxx81
-rw-r--r--cui/source/options/readonlyimage.hxx43
-rw-r--r--cui/source/options/readonlyimage.src52
-rw-r--r--cui/source/options/sdbcdriverenum.cxx129
-rw-r--r--cui/source/options/sdbcdriverenum.hxx76
-rw-r--r--cui/source/options/securityoptions.cxx104
-rw-r--r--cui/source/options/securityoptions.hrc80
-rw-r--r--cui/source/options/securityoptions.hxx91
-rw-r--r--cui/source/options/securityoptions.src165
-rw-r--r--cui/source/options/treeopt.cxx2847
-rw-r--r--cui/source/options/treeopt.hrc100
-rw-r--r--cui/source/options/treeopt.src351
-rw-r--r--cui/source/options/webconninfo.cxx374
-rw-r--r--cui/source/options/webconninfo.hrc62
-rw-r--r--cui/source/options/webconninfo.hxx85
-rw-r--r--cui/source/options/webconninfo.src103
-rw-r--r--cui/source/tabpages/align.cxx296
-rw-r--r--cui/source/tabpages/align.hrc84
-rw-r--r--cui/source/tabpages/align.src248
-rw-r--r--cui/source/tabpages/autocdlg.cxx2867
-rw-r--r--cui/source/tabpages/autocdlg.hrc159
-rw-r--r--cui/source/tabpages/autocdlg.src864
-rw-r--r--cui/source/tabpages/backgrnd.cxx1977
-rw-r--r--cui/source/tabpages/backgrnd.hrc70
-rw-r--r--cui/source/tabpages/backgrnd.src306
-rw-r--r--cui/source/tabpages/bbdlg.cxx72
-rw-r--r--cui/source/tabpages/bbdlg.src85
-rw-r--r--cui/source/tabpages/border.cxx1267
-rw-r--r--cui/source/tabpages/border.hrc106
-rw-r--r--cui/source/tabpages/border.src428
-rw-r--r--cui/source/tabpages/borderconn.cxx311
-rw-r--r--cui/source/tabpages/borderconn.hxx76
-rw-r--r--cui/source/tabpages/chardlg.cxx4063
-rw-r--r--cui/source/tabpages/chardlg.h71
-rw-r--r--cui/source/tabpages/chardlg.hrc181
-rw-r--r--cui/source/tabpages/chardlg.src1125
-rw-r--r--cui/source/tabpages/connect.cxx564
-rw-r--r--cui/source/tabpages/connect.hrc45
-rw-r--r--cui/source/tabpages/connect.src267
-rw-r--r--cui/source/tabpages/dstribut.cxx244
-rw-r--r--cui/source/tabpages/dstribut.hrc55
-rw-r--r--cui/source/tabpages/dstribut.src291
-rw-r--r--cui/source/tabpages/frmdirlbox.src93
-rw-r--r--cui/source/tabpages/grfpage.cxx835
-rw-r--r--cui/source/tabpages/grfpage.hrc53
-rw-r--r--cui/source/tabpages/grfpage.src332
-rw-r--r--cui/source/tabpages/labdlg.cxx650
-rw-r--r--cui/source/tabpages/labdlg.hrc77
-rw-r--r--cui/source/tabpages/labdlg.src298
-rw-r--r--cui/source/tabpages/macroass.cxx716
-rw-r--r--cui/source/tabpages/macroass.hrc82
-rw-r--r--cui/source/tabpages/macroass.src142
-rw-r--r--cui/source/tabpages/makefile.mk110
-rw-r--r--cui/source/tabpages/measure.cxx874
-rw-r--r--cui/source/tabpages/measure.hrc53
-rw-r--r--cui/source/tabpages/measure.src309
-rw-r--r--cui/source/tabpages/numfmt.cxx1950
-rw-r--r--cui/source/tabpages/numfmt.hrc74
-rw-r--r--cui/source/tabpages/numfmt.src294
-rw-r--r--cui/source/tabpages/numpages.cxx4078
-rw-r--r--cui/source/tabpages/numpages.hrc132
-rw-r--r--cui/source/tabpages/numpages.src811
-rw-r--r--cui/source/tabpages/page.cxx1771
-rw-r--r--cui/source/tabpages/page.h71
-rw-r--r--cui/source/tabpages/page.hrc84
-rw-r--r--cui/source/tabpages/page.src504
-rw-r--r--cui/source/tabpages/paragrph.cxx2372
-rw-r--r--cui/source/tabpages/paragrph.hrc121
-rw-r--r--cui/source/tabpages/paragrph.src732
-rw-r--r--cui/source/tabpages/strings.src178
-rw-r--r--cui/source/tabpages/swpossizetabpage.cxx1971
-rw-r--r--cui/source/tabpages/swpossizetabpage.hrc59
-rw-r--r--cui/source/tabpages/swpossizetabpage.hxx158
-rw-r--r--cui/source/tabpages/swpossizetabpage.src295
-rw-r--r--cui/source/tabpages/tabarea.cxx368
-rw-r--r--cui/source/tabpages/tabarea.hrc187
-rw-r--r--cui/source/tabpages/tabarea.src1539
-rw-r--r--cui/source/tabpages/tabline.cxx298
-rw-r--r--cui/source/tabpages/tabline.hrc106
-rw-r--r--cui/source/tabpages/tabline.src801
-rw-r--r--cui/source/tabpages/tabstpge.cxx744
-rw-r--r--cui/source/tabpages/tabstpge.hrc63
-rw-r--r--cui/source/tabpages/tabstpge.src231
-rw-r--r--cui/source/tabpages/textanim.cxx757
-rw-r--r--cui/source/tabpages/textanim.hrc47
-rw-r--r--cui/source/tabpages/textanim.src320
-rw-r--r--cui/source/tabpages/textattr.cxx798
-rw-r--r--cui/source/tabpages/textattr.hrc46
-rw-r--r--cui/source/tabpages/textattr.src244
-rw-r--r--cui/source/tabpages/tparea.cxx2580
-rw-r--r--cui/source/tabpages/tpbitmap.cxx1161
-rw-r--r--cui/source/tabpages/tpcolor.cxx1273
-rw-r--r--cui/source/tabpages/tpgradnt.cxx935
-rw-r--r--cui/source/tabpages/tphatch.cxx893
-rw-r--r--cui/source/tabpages/tpline.cxx1923
-rw-r--r--cui/source/tabpages/tplnedef.cxx1012
-rw-r--r--cui/source/tabpages/tplneend.cxx747
-rw-r--r--cui/source/tabpages/tpshadow.cxx610
-rw-r--r--cui/source/tabpages/transfrm.cxx1697
-rw-r--r--cui/source/tabpages/transfrm.hrc76
-rw-r--r--cui/source/tabpages/transfrm.src609
-rw-r--r--cui/util/cui.map7
-rw-r--r--cui/util/hidother.src202
-rw-r--r--cui/util/makefile.mk106
-rw-r--r--cui/util/makefile.pmk40
-rw-r--r--curl/curl-7.19.7.patch83
-rw-r--r--curl/curl-7.19.7_win.patch19
-rw-r--r--curl/makefile.mk158
-rw-r--r--curl/prj/build.lst3
-rw-r--r--curl/prj/d.lst15
-rw-r--r--dbaccess/inc/AsyncronousLink.hxx71
-rw-r--r--dbaccess/inc/IController.hxx140
-rw-r--r--dbaccess/inc/IEnvironment.hxx77
-rw-r--r--dbaccess/inc/IReference.hxx44
-rw-r--r--dbaccess/inc/ToolBoxHelper.hxx95
-rw-r--r--dbaccess/inc/controllerframe.hxx84
-rw-r--r--dbaccess/inc/dataview.hxx99
-rw-r--r--dbaccess/inc/dbaccess_helpid.hrc475
-rw-r--r--dbaccess/inc/dbaccess_slotid.hrc114
-rw-r--r--dbaccess/inc/dbaccessdllapi.h43
-rw-r--r--dbaccess/inc/documentcontroller.hxx118
-rw-r--r--dbaccess/inc/genericcontroller.hxx539
-rw-r--r--dbaccess/inc/makefile.mk47
-rw-r--r--dbaccess/inc/pch/precompiled_dbaccess.cxx29
-rw-r--r--dbaccess/inc/pch/precompiled_dbaccess.hxx520
-rw-r--r--dbaccess/inc/singledoccontroller.hxx226
-rw-r--r--dbaccess/prj/build.lst29
-rw-r--r--dbaccess/prj/d.lst91
-rw-r--r--dbaccess/prj/dba.xml97
-rw-r--r--dbaccess/prj/dbu.xml134
-rw-r--r--dbaccess/qa/complex/dbaccess/ApplicationController.java176
-rw-r--r--dbaccess/qa/complex/dbaccess/Beamer.java191
-rw-r--r--dbaccess/qa/complex/dbaccess/CRMBasedTestCase.java83
-rwxr-xr-xdbaccess/qa/complex/dbaccess/CopyTableInterActionHandler.java50
-rwxr-xr-xdbaccess/qa/complex/dbaccess/CopyTableWizard.java236
-rw-r--r--dbaccess/qa/complex/dbaccess/DataSource.java110
-rwxr-xr-xdbaccess/qa/complex/dbaccess/DatabaseApplication.java101
-rw-r--r--dbaccess/qa/complex/dbaccess/DatabaseDocument.java1034
-rw-r--r--dbaccess/qa/complex/dbaccess/FileHelper.java44
-rw-r--r--dbaccess/qa/complex/dbaccess/Parser.java208
-rw-r--r--dbaccess/qa/complex/dbaccess/PropertyBag.java294
-rw-r--r--dbaccess/qa/complex/dbaccess/Query.java126
-rw-r--r--dbaccess/qa/complex/dbaccess/QueryInQuery.java192
-rw-r--r--dbaccess/qa/complex/dbaccess/RowSet.java1026
-rw-r--r--dbaccess/qa/complex/dbaccess/RowSetEventListener.java111
-rwxr-xr-xdbaccess/qa/complex/dbaccess/SingleSelectQueryComposer.java364
-rw-r--r--dbaccess/qa/complex/dbaccess/TestCase.java126
-rw-r--r--dbaccess/qa/complex/dbaccess/UISettings.java152
-rw-r--r--dbaccess/qa/complex/dbaccess/dbaccess.sce12
-rwxr-xr-xdbaccess/qa/complex/dbaccess/makefile.mk83
-rw-r--r--dbaccess/qa/unoapi/dbaccess.props6
-rw-r--r--dbaccess/qa/unoapi/dbaccess.sce15
-rw-r--r--dbaccess/qa/unoapi/knownissues.xcl62
-rw-r--r--dbaccess/qa/unoapi/makefile.mk49
-rwxr-xr-xdbaccess/qa/unoapi/testdocuments/TestDB/testDB.dbfbin0 -> 949 bytes
-rwxr-xr-xdbaccess/qa/unoapi/testdocuments/TestDB/testDB.dbtbin0 -> 512 bytes
-rw-r--r--dbaccess/source/core/api/BookmarkSet.cxx278
-rw-r--r--dbaccess/source/core/api/BookmarkSet.hxx75
-rw-r--r--dbaccess/source/core/api/CIndexColumn.hxx59
-rw-r--r--dbaccess/source/core/api/CIndexes.cxx123
-rw-r--r--dbaccess/source/core/api/CIndexes.hxx58
-rw-r--r--dbaccess/source/core/api/CRowSetColumn.cxx111
-rw-r--r--dbaccess/source/core/api/CRowSetColumn.hxx65
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.cxx268
-rw-r--r--dbaccess/source/core/api/CRowSetDataColumn.hxx112
-rw-r--r--dbaccess/source/core/api/CacheSet.cxx772
-rw-r--r--dbaccess/source/core/api/CacheSet.hxx172
-rw-r--r--dbaccess/source/core/api/FilteredContainer.cxx498
-rw-r--r--dbaccess/source/core/api/HelperCollections.cxx122
-rw-r--r--dbaccess/source/core/api/HelperCollections.hxx128
-rw-r--r--dbaccess/source/core/api/KeySet.cxx1486
-rw-r--r--dbaccess/source/core/api/KeySet.hxx214
-rw-r--r--dbaccess/source/core/api/RowSet.cxx2946
-rw-r--r--dbaccess/source/core/api/RowSet.hxx569
-rw-r--r--dbaccess/source/core/api/RowSetBase.cxx1526
-rw-r--r--dbaccess/source/core/api/RowSetBase.hxx436
-rw-r--r--dbaccess/source/core/api/RowSetCache.cxx1630
-rw-r--r--dbaccess/source/core/api/RowSetCache.hxx257
-rw-r--r--dbaccess/source/core/api/RowSetCacheIterator.cxx152
-rw-r--r--dbaccess/source/core/api/RowSetCacheIterator.hxx92
-rw-r--r--dbaccess/source/core/api/RowSetRow.hxx108
-rw-r--r--dbaccess/source/core/api/SingleSelectQueryComposer.cxx1760
-rw-r--r--dbaccess/source/core/api/StaticSet.cxx392
-rw-r--r--dbaccess/source/core/api/StaticSet.hxx93
-rw-r--r--dbaccess/source/core/api/TableDeco.cxx758
-rw-r--r--dbaccess/source/core/api/callablestatement.cxx344
-rw-r--r--dbaccess/source/core/api/column.cxx466
-rw-r--r--dbaccess/source/core/api/columnsettings.cxx182
-rw-r--r--dbaccess/source/core/api/datacolumn.cxx485
-rw-r--r--dbaccess/source/core/api/datacolumn.hxx129
-rw-r--r--dbaccess/source/core/api/datasettings.cxx254
-rw-r--r--dbaccess/source/core/api/definitioncolumn.cxx670
-rw-r--r--dbaccess/source/core/api/makefile.mk78
-rw-r--r--dbaccess/source/core/api/preparedstatement.cxx473
-rw-r--r--dbaccess/source/core/api/query.cxx438
-rw-r--r--dbaccess/source/core/api/query.hxx186
-rw-r--r--dbaccess/source/core/api/querycomposer.cxx389
-rw-r--r--dbaccess/source/core/api/querycontainer.cxx475
-rw-r--r--dbaccess/source/core/api/querydescriptor.cxx323
-rw-r--r--dbaccess/source/core/api/querydescriptor.hxx183
-rw-r--r--dbaccess/source/core/api/resultcolumn.cxx351
-rw-r--r--dbaccess/source/core/api/resultcolumn.hxx101
-rw-r--r--dbaccess/source/core/api/resultset.cxx1208
-rw-r--r--dbaccess/source/core/api/resultset.hxx278
-rw-r--r--dbaccess/source/core/api/statement.cxx696
-rw-r--r--dbaccess/source/core/api/table.cxx500
-rw-r--r--dbaccess/source/core/api/tablecontainer.cxx516
-rw-r--r--dbaccess/source/core/api/viewcontainer.cxx320
-rw-r--r--dbaccess/source/core/dataaccess/ComponentDefinition.cxx328
-rw-r--r--dbaccess/source/core/dataaccess/ComponentDefinition.hxx207
-rw-r--r--dbaccess/source/core/dataaccess/ContentHelper.cxx762
-rw-r--r--dbaccess/source/core/dataaccess/ModelImpl.cxx1521
-rw-r--r--dbaccess/source/core/dataaccess/ModelImpl.hxx651
-rw-r--r--dbaccess/source/core/dataaccess/SharedConnection.cxx186
-rw-r--r--dbaccess/source/core/dataaccess/SharedConnection.hxx172
-rw-r--r--dbaccess/source/core/dataaccess/bookmarkcontainer.cxx421
-rw-r--r--dbaccess/source/core/dataaccess/bookmarkcontainer.hxx208
-rw-r--r--dbaccess/source/core/dataaccess/commandcontainer.cxx115
-rw-r--r--dbaccess/source/core/dataaccess/commandcontainer.hxx93
-rw-r--r--dbaccess/source/core/dataaccess/commanddefinition.cxx179
-rw-r--r--dbaccess/source/core/dataaccess/commanddefinition.hxx144
-rw-r--r--dbaccess/source/core/dataaccess/connection.cxx926
-rw-r--r--dbaccess/source/core/dataaccess/connection.hxx288
-rw-r--r--dbaccess/source/core/dataaccess/dataaccessdescriptor.cxx348
-rw-r--r--dbaccess/source/core/dataaccess/databasecontext.cxx808
-rw-r--r--dbaccess/source/core/dataaccess/databasecontext.hxx213
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.cxx1928
-rw-r--r--dbaccess/source/core/dataaccess/databasedocument.hxx672
-rw-r--r--dbaccess/source/core/dataaccess/databaseregistrations.cxx399
-rw-r--r--dbaccess/source/core/dataaccess/databaseregistrations.hxx51
-rw-r--r--dbaccess/source/core/dataaccess/datasource.cxx1487
-rw-r--r--dbaccess/source/core/dataaccess/datasource.hxx305
-rw-r--r--dbaccess/source/core/dataaccess/definitioncontainer.cxx748
-rw-r--r--dbaccess/source/core/dataaccess/documentcontainer.cxx783
-rw-r--r--dbaccess/source/core/dataaccess/documentcontainer.hxx160
-rw-r--r--dbaccess/source/core/dataaccess/documentdefinition.cxx2196
-rw-r--r--dbaccess/source/core/dataaccess/documentdefinition.hxx331
-rw-r--r--dbaccess/source/core/dataaccess/documenteventexecutor.cxx231
-rw-r--r--dbaccess/source/core/dataaccess/documenteventexecutor.hxx78
-rw-r--r--dbaccess/source/core/dataaccess/documenteventnotifier.cxx319
-rw-r--r--dbaccess/source/core/dataaccess/documenteventnotifier.hxx144
-rw-r--r--dbaccess/source/core/dataaccess/documentevents.cxx265
-rw-r--r--dbaccess/source/core/dataaccess/documentevents.hxx90
-rw-r--r--dbaccess/source/core/dataaccess/intercept.cxx447
-rw-r--r--dbaccess/source/core/dataaccess/intercept.hxx190
-rw-r--r--dbaccess/source/core/dataaccess/makefile.mk69
-rw-r--r--dbaccess/source/core/dataaccess/myucp_datasupplier.cxx430
-rw-r--r--dbaccess/source/core/dataaccess/myucp_datasupplier.hxx83
-rw-r--r--dbaccess/source/core/dataaccess/myucp_resultset.cxx106
-rw-r--r--dbaccess/source/core/dataaccess/myucp_resultset.hxx67
-rw-r--r--dbaccess/source/core/inc/ContainerListener.hxx97
-rw-r--r--dbaccess/source/core/inc/ContainerMediator.hxx123
-rw-r--r--dbaccess/source/core/inc/ContentHelper.hxx247
-rw-r--r--dbaccess/source/core/inc/DatabaseDataProvider.hxx255
-rw-r--r--dbaccess/source/core/inc/FilteredContainer.hxx144
-rw-r--r--dbaccess/source/core/inc/PropertyForward.hxx96
-rw-r--r--dbaccess/source/core/inc/RefreshListener.hxx59
-rw-r--r--dbaccess/source/core/inc/SingleSelectQueryComposer.hxx279
-rw-r--r--dbaccess/source/core/inc/TableDeco.hxx220
-rw-r--r--dbaccess/source/core/inc/callablestatement.hxx95
-rw-r--r--dbaccess/source/core/inc/column.hxx258
-rw-r--r--dbaccess/source/core/inc/columnsettings.hxx109
-rw-r--r--dbaccess/source/core/inc/commandbase.hxx71
-rw-r--r--dbaccess/source/core/inc/composertools.hxx142
-rw-r--r--dbaccess/source/core/inc/containerapprove.hxx80
-rw-r--r--dbaccess/source/core/inc/core_resource.hrc113
-rw-r--r--dbaccess/source/core/inc/core_resource.hxx130
-rw-r--r--dbaccess/source/core/inc/datasettings.hxx109
-rw-r--r--dbaccess/source/core/inc/dbamiscres.hrc62
-rw-r--r--dbaccess/source/core/inc/definitioncolumn.hxx316
-rw-r--r--dbaccess/source/core/inc/definitioncontainer.hxx375
-rw-r--r--dbaccess/source/core/inc/module_dba.hxx45
-rw-r--r--dbaccess/source/core/inc/object.hxx40
-rw-r--r--dbaccess/source/core/inc/objectnameapproval.hxx95
-rw-r--r--dbaccess/source/core/inc/preparedstatement.hxx132
-rw-r--r--dbaccess/source/core/inc/querycomposer.hxx139
-rw-r--r--dbaccess/source/core/inc/querycontainer.hxx234
-rw-r--r--dbaccess/source/core/inc/sdbcoretools.hxx82
-rw-r--r--dbaccess/source/core/inc/statement.hxx220
-rw-r--r--dbaccess/source/core/inc/table.hxx198
-rw-r--r--dbaccess/source/core/inc/tablecontainer.hxx149
-rw-r--r--dbaccess/source/core/inc/userinformation.hxx50
-rw-r--r--dbaccess/source/core/inc/veto.hxx79
-rw-r--r--dbaccess/source/core/inc/viewcontainer.hxx139
-rw-r--r--dbaccess/source/core/misc/ContainerListener.cxx131
-rw-r--r--dbaccess/source/core/misc/ContainerMediator.cxx281
-rw-r--r--dbaccess/source/core/misc/DatabaseDataProvider.cxx980
-rw-r--r--dbaccess/source/core/misc/PropertyForward.cxx173
-rw-r--r--dbaccess/source/core/misc/apitools.cxx155
-rw-r--r--dbaccess/source/core/misc/dbastrings.cxx48
-rw-r--r--dbaccess/source/core/misc/dsntypes.cxx623
-rw-r--r--dbaccess/source/core/misc/makefile.mk60
-rw-r--r--dbaccess/source/core/misc/module_dba.cxx43
-rw-r--r--dbaccess/source/core/misc/objectnameapproval.cxx116
-rw-r--r--dbaccess/source/core/misc/sdbcoretools.cxx167
-rw-r--r--dbaccess/source/core/misc/services.cxx138
-rw-r--r--dbaccess/source/core/misc/userinformation.cxx59
-rw-r--r--dbaccess/source/core/misc/veto.cxx78
-rw-r--r--dbaccess/source/core/resource/core_resource.cxx119
-rw-r--r--dbaccess/source/core/resource/makefile.mk48
-rw-r--r--dbaccess/source/core/resource/strings.src326
-rw-r--r--dbaccess/source/ext/adabas/ANewDb.cxx161
-rw-r--r--dbaccess/source/ext/adabas/ANewDb.hxx100
-rw-r--r--dbaccess/source/ext/adabas/ASQLNameEdit.hxx61
-rw-r--r--dbaccess/source/ext/adabas/ASqlNameEdit.cxx80
-rw-r--r--dbaccess/source/ext/adabas/Acomponentmodule.cxx351
-rw-r--r--dbaccess/source/ext/adabas/Acomponentmodule.hxx294
-rw-r--r--dbaccess/source/ext/adabas/AdabasNewDb.cxx805
-rw-r--r--dbaccess/source/ext/adabas/AdabasNewDb.hrc78
-rw-r--r--dbaccess/source/ext/adabas/AdabasNewDb.hxx165
-rw-r--r--dbaccess/source/ext/adabas/AdabasNewDb.src455
-rw-r--r--dbaccess/source/ext/adabas/Aservices.cxx114
-rw-r--r--dbaccess/source/ext/adabas/Astringconstants.cxx60
-rw-r--r--dbaccess/source/ext/adabas/Astringconstants.hrc103
-rw-r--r--dbaccess/source/ext/adabas/adabasui.dxp4
-rw-r--r--dbaccess/source/ext/adabas/adabasui.map8
-rw-r--r--dbaccess/source/ext/adabas/adabasui_resource.hrc92
-rw-r--r--dbaccess/source/ext/adabas/adabasuistrings.cxx37
-rw-r--r--dbaccess/source/ext/adabas/adabasuistrings.hrc42
-rw-r--r--dbaccess/source/ext/adabas/exports.dxp3
-rw-r--r--dbaccess/source/ext/adabas/makefile.mk93
-rw-r--r--dbaccess/source/ext/macromigration/dbmm.map8
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_global.hrc86
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_module.cxx45
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_module.hxx45
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_services.cxx58
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_types.cxx63
-rw-r--r--dbaccess/source/ext/macromigration/dbmm_types.hxx69
-rw-r--r--dbaccess/source/ext/macromigration/docinteraction.cxx142
-rw-r--r--dbaccess/source/ext/macromigration/docinteraction.hxx95
-rw-r--r--dbaccess/source/ext/macromigration/macromigration.hrc96
-rw-r--r--dbaccess/source/ext/macromigration/macromigration.src453
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationdialog.cxx628
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationdialog.hxx94
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationpages.cxx361
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationpages.hxx182
-rw-r--r--dbaccess/source/ext/macromigration/macromigrationwizard.cxx263
-rw-r--r--dbaccess/source/ext/macromigration/makefile.mk101
-rw-r--r--dbaccess/source/ext/macromigration/migrationengine.cxx1990
-rw-r--r--dbaccess/source/ext/macromigration/migrationengine.hxx100
-rw-r--r--dbaccess/source/ext/macromigration/migrationerror.hxx173
-rw-r--r--dbaccess/source/ext/macromigration/migrationlog.cxx512
-rw-r--r--dbaccess/source/ext/macromigration/migrationlog.hxx128
-rw-r--r--dbaccess/source/ext/macromigration/migrationprogress.hxx58
-rw-r--r--dbaccess/source/ext/macromigration/progresscapture.cxx135
-rw-r--r--dbaccess/source/ext/macromigration/progresscapture.hxx79
-rw-r--r--dbaccess/source/ext/macromigration/progressmixer.cxx216
-rw-r--r--dbaccess/source/ext/macromigration/progressmixer.hxx100
-rw-r--r--dbaccess/source/ext/macromigration/rangeprogressbar.hxx104
-rw-r--r--dbaccess/source/filter/migration/cfgimport.cxx1260
-rw-r--r--dbaccess/source/filter/migration/cfgimport.hxx223
-rw-r--r--dbaccess/source/filter/migration/cfgservices.cxx115
-rw-r--r--dbaccess/source/filter/migration/exports.map9
-rw-r--r--dbaccess/source/filter/migration/makefile.mk74
-rw-r--r--dbaccess/source/filter/xml/dbloader2.cxx660
-rw-r--r--dbaccess/source/filter/xml/exports.map9
-rw-r--r--dbaccess/source/filter/xml/makefile.mk114
-rw-r--r--dbaccess/source/filter/xml/xmlAutoStyle.cxx109
-rw-r--r--dbaccess/source/filter/xml/xmlAutoStyle.hxx66
-rw-r--r--dbaccess/source/filter/xml/xmlColumn.cxx221
-rw-r--r--dbaccess/source/filter/xml/xmlColumn.hxx66
-rw-r--r--dbaccess/source/filter/xml/xmlComponent.cxx155
-rw-r--r--dbaccess/source/filter/xml/xmlComponent.hxx64
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionData.cxx137
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionData.hxx60
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionResource.cxx130
-rw-r--r--dbaccess/source/filter/xml/xmlConnectionResource.hxx55
-rw-r--r--dbaccess/source/filter/xml/xmlDataSource.cxx309
-rw-r--r--dbaccess/source/filter/xml/xmlDataSource.hxx66
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceInfo.cxx173
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceInfo.hxx52
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSetting.cxx271
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSetting.hxx81
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSettings.cxx114
-rw-r--r--dbaccess/source/filter/xml/xmlDataSourceSettings.hxx53
-rw-r--r--dbaccess/source/filter/xml/xmlDatabase.cxx162
-rw-r--r--dbaccess/source/filter/xml/xmlDatabase.hxx56
-rw-r--r--dbaccess/source/filter/xml/xmlDatabaseDescription.cxx122
-rw-r--r--dbaccess/source/filter/xml/xmlDatabaseDescription.hxx60
-rw-r--r--dbaccess/source/filter/xml/xmlDocuments.cxx150
-rw-r--r--dbaccess/source/filter/xml/xmlDocuments.hxx79
-rw-r--r--dbaccess/source/filter/xml/xmlEnums.hxx172
-rw-r--r--dbaccess/source/filter/xml/xmlExport.cxx1479
-rw-r--r--dbaccess/source/filter/xml/xmlExport.hxx243
-rw-r--r--dbaccess/source/filter/xml/xmlFileBasedDatabase.cxx153
-rw-r--r--dbaccess/source/filter/xml/xmlFileBasedDatabase.hxx54
-rw-r--r--dbaccess/source/filter/xml/xmlHelper.cxx218
-rw-r--r--dbaccess/source/filter/xml/xmlHelper.hxx76
-rw-r--r--dbaccess/source/filter/xml/xmlHierarchyCollection.cxx203
-rw-r--r--dbaccess/source/filter/xml/xmlHierarchyCollection.hxx75
-rw-r--r--dbaccess/source/filter/xml/xmlLogin.cxx157
-rw-r--r--dbaccess/source/filter/xml/xmlLogin.hxx52
-rw-r--r--dbaccess/source/filter/xml/xmlQuery.cxx174
-rw-r--r--dbaccess/source/filter/xml/xmlQuery.hxx66
-rw-r--r--dbaccess/source/filter/xml/xmlServerDatabase.cxx193
-rw-r--r--dbaccess/source/filter/xml/xmlServerDatabase.hxx55
-rw-r--r--dbaccess/source/filter/xml/xmlStyleImport.cxx363
-rw-r--r--dbaccess/source/filter/xml/xmlStyleImport.hxx157
-rw-r--r--dbaccess/source/filter/xml/xmlTable.cxx295
-rw-r--r--dbaccess/source/filter/xml/xmlTable.hxx91
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterList.cxx132
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterList.hxx79
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterPattern.cxx76
-rw-r--r--dbaccess/source/filter/xml/xmlTableFilterPattern.hxx56
-rw-r--r--dbaccess/source/filter/xml/xmlfilter.cxx987
-rw-r--r--dbaccess/source/filter/xml/xmlfilter.hxx210
-rw-r--r--dbaccess/source/filter/xml/xmlservices.cxx126
-rw-r--r--dbaccess/source/inc/apitools.hxx455
-rw-r--r--dbaccess/source/inc/cfg_reghelper.hxx60
-rw-r--r--dbaccess/source/inc/cfgstrings.hrc99
-rw-r--r--dbaccess/source/inc/constasciistring.hxx61
-rw-r--r--dbaccess/source/inc/dbadllapi.hxx41
-rw-r--r--dbaccess/source/inc/dbastrings.hrc51
-rw-r--r--dbaccess/source/inc/dbu_reghelper.hxx60
-rw-r--r--dbaccess/source/inc/dbustrings.hrc78
-rw-r--r--dbaccess/source/inc/dsntypes.hxx238
-rw-r--r--dbaccess/source/inc/flt_reghelper.hxx60
-rw-r--r--dbaccess/source/inc/registrationhelper.hxx168
-rw-r--r--dbaccess/source/inc/sdbtstrings.hrc42
-rw-r--r--dbaccess/source/inc/stringconstants.hrc430
-rw-r--r--dbaccess/source/inc/stringconstants.inc269
-rw-r--r--dbaccess/source/inc/xmlstrings.hrc45
-rw-r--r--dbaccess/source/sdbtools/connection/connectiondependent.hxx156
-rw-r--r--dbaccess/source/sdbtools/connection/connectiontools.cxx197
-rw-r--r--dbaccess/source/sdbtools/connection/connectiontools.hxx125
-rw-r--r--dbaccess/source/sdbtools/connection/datasourcemetadata.cxx93
-rw-r--r--dbaccess/source/sdbtools/connection/datasourcemetadata.hxx97
-rw-r--r--dbaccess/source/sdbtools/connection/makefile.mk49
-rw-r--r--dbaccess/source/sdbtools/connection/objectnames.cxx498
-rw-r--r--dbaccess/source/sdbtools/connection/objectnames.hxx98
-rw-r--r--dbaccess/source/sdbtools/connection/tablename.cxx275
-rw-r--r--dbaccess/source/sdbtools/connection/tablename.hxx109
-rw-r--r--dbaccess/source/sdbtools/inc/module_sdbt.hxx47
-rw-r--r--dbaccess/source/sdbtools/inc/sdbt_resource.hrc48
-rw-r--r--dbaccess/source/sdbtools/misc/makefile.mk47
-rw-r--r--dbaccess/source/sdbtools/misc/module_sdbt.cxx45
-rw-r--r--dbaccess/source/sdbtools/misc/sdbt_services.cxx107
-rw-r--r--dbaccess/source/sdbtools/resource/makefile.mk45
-rw-r--r--dbaccess/source/sdbtools/resource/sdbt_strings.src65
-rw-r--r--dbaccess/source/shared/cfg_reghelper.cxx49
-rw-r--r--dbaccess/source/shared/cfgstrings.cxx91
-rw-r--r--dbaccess/source/shared/dbu_reghelper.cxx48
-rw-r--r--dbaccess/source/shared/dbustrings.cxx73
-rw-r--r--dbaccess/source/shared/flt_reghelper.cxx49
-rw-r--r--dbaccess/source/shared/makefile.mk76
-rw-r--r--dbaccess/source/shared/registrationhelper.cxx215
-rw-r--r--dbaccess/source/shared/sdbtstrings.cxx35
-rw-r--r--dbaccess/source/shared/xmlstrings.cxx36
-rw-r--r--dbaccess/source/ui/app/AppController.cxx2968
-rw-r--r--dbaccess/source/ui/app/AppController.hxx570
-rw-r--r--dbaccess/source/ui/app/AppControllerDnD.cxx942
-rw-r--r--dbaccess/source/ui/app/AppControllerGen.cxx795
-rw-r--r--dbaccess/source/ui/app/AppDetailPageHelper.cxx1527
-rw-r--r--dbaccess/source/ui/app/AppDetailPageHelper.hxx403
-rw-r--r--dbaccess/source/ui/app/AppDetailView.cxx1007
-rw-r--r--dbaccess/source/ui/app/AppDetailView.hxx405
-rw-r--r--dbaccess/source/ui/app/AppIconControl.cxx135
-rw-r--r--dbaccess/source/ui/app/AppIconControl.hxx62
-rw-r--r--dbaccess/source/ui/app/AppSwapWindow.cxx232
-rw-r--r--dbaccess/source/ui/app/AppSwapWindow.hxx112
-rw-r--r--dbaccess/source/ui/app/AppTitleWindow.cxx188
-rw-r--r--dbaccess/source/ui/app/AppTitleWindow.hxx85
-rw-r--r--dbaccess/source/ui/app/AppView.cxx659
-rw-r--r--dbaccess/source/ui/app/AppView.hxx332
-rw-r--r--dbaccess/source/ui/app/IApplicationController.hxx100
-rw-r--r--dbaccess/source/ui/app/app.src476
-rw-r--r--dbaccess/source/ui/app/dbu_app.hrc78
-rw-r--r--dbaccess/source/ui/app/makefile.mk69
-rw-r--r--dbaccess/source/ui/app/subcomponentmanager.cxx527
-rw-r--r--dbaccess/source/ui/app/subcomponentmanager.hxx114
-rw-r--r--dbaccess/source/ui/app/window_layout.txt31
-rw-r--r--dbaccess/source/ui/browser/AsyncronousLink.cxx112
-rw-r--r--dbaccess/source/ui/browser/bcommon.src35
-rw-r--r--dbaccess/source/ui/browser/brwctrlr.cxx3301
-rw-r--r--dbaccess/source/ui/browser/brwview.cxx395
-rw-r--r--dbaccess/source/ui/browser/dataview.cxx245
-rw-r--r--dbaccess/source/ui/browser/dbexchange.cxx283
-rw-r--r--dbaccess/source/ui/browser/dbloader.cxx358
-rw-r--r--dbaccess/source/ui/browser/dbtreemodel.cxx55
-rw-r--r--dbaccess/source/ui/browser/dbtreemodel.hxx79
-rw-r--r--dbaccess/source/ui/browser/dbtreeview.cxx131
-rw-r--r--dbaccess/source/ui/browser/dbtreeview.hxx82
-rw-r--r--dbaccess/source/ui/browser/dsEntriesNoExp.cxx279
-rw-r--r--dbaccess/source/ui/browser/dsbrowserDnD.cxx295
-rw-r--r--dbaccess/source/ui/browser/exsrcbrw.cxx500
-rw-r--r--dbaccess/source/ui/browser/formadapter.cxx1794
-rw-r--r--dbaccess/source/ui/browser/genericcontroller.cxx1674
-rw-r--r--dbaccess/source/ui/browser/makefile.mk71
-rw-r--r--dbaccess/source/ui/browser/sbabrw.src205
-rw-r--r--dbaccess/source/ui/browser/sbagrid.cxx1795
-rw-r--r--dbaccess/source/ui/browser/sbagrid.src139
-rw-r--r--dbaccess/source/ui/browser/sbamultiplex.cxx111
-rw-r--r--dbaccess/source/ui/browser/unodatbr.cxx3675
-rw-r--r--dbaccess/source/ui/control/ColumnControlWindow.cxx198
-rw-r--r--dbaccess/source/ui/control/FieldDescControl.cxx1941
-rw-r--r--dbaccess/source/ui/control/RelationControl.cxx751
-rw-r--r--dbaccess/source/ui/control/ScrollHelper.cxx81
-rw-r--r--dbaccess/source/ui/control/SqlNameEdit.cxx100
-rw-r--r--dbaccess/source/ui/control/TableGrantCtrl.cxx516
-rw-r--r--dbaccess/source/ui/control/TableGrantCtrl.src96
-rw-r--r--dbaccess/source/ui/control/VertSplitView.cxx220
-rw-r--r--dbaccess/source/ui/control/charsetlistbox.cxx118
-rw-r--r--dbaccess/source/ui/control/curledit.cxx158
-rw-r--r--dbaccess/source/ui/control/dbtreelistbox.cxx756
-rw-r--r--dbaccess/source/ui/control/listviewitems.cxx84
-rw-r--r--dbaccess/source/ui/control/makefile.mk78
-rw-r--r--dbaccess/source/ui/control/marktree.cxx247
-rw-r--r--dbaccess/source/ui/control/opendoccontrols.cxx363
-rw-r--r--dbaccess/source/ui/control/sqledit.cxx220
-rw-r--r--dbaccess/source/ui/control/statusbarontroller.cxx50
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx730
-rw-r--r--dbaccess/source/ui/control/tabletree.hrc37
-rw-r--r--dbaccess/source/ui/control/tabletree.src88
-rw-r--r--dbaccess/source/ui/control/toolboxcontroller.cxx321
-rw-r--r--dbaccess/source/ui/control/undosqledit.cxx50
-rw-r--r--dbaccess/source/ui/control/undosqledit.src66
-rw-r--r--dbaccess/source/ui/dlg/AdabasPage.hrc50
-rw-r--r--dbaccess/source/ui/dlg/AdabasStat.cxx333
-rw-r--r--dbaccess/source/ui/dlg/AdabasStat.hrc52
-rw-r--r--dbaccess/source/ui/dlg/AdabasStat.hxx98
-rw-r--r--dbaccess/source/ui/dlg/AdabasStat.src231
-rw-r--r--dbaccess/source/ui/dlg/AutoControls.src102
-rw-r--r--dbaccess/source/ui/dlg/AutoControls_tmpl.hrc516
-rw-r--r--dbaccess/source/ui/dlg/CollectionView.cxx397
-rw-r--r--dbaccess/source/ui/dlg/CollectionView.hrc50
-rw-r--r--dbaccess/source/ui/dlg/CollectionView.src167
-rw-r--r--dbaccess/source/ui/dlg/ConnectionHelper.cxx994
-rw-r--r--dbaccess/source/ui/dlg/ConnectionHelper.hxx140
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.cxx466
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.hrc59
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.hxx114
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.src187
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPageSetup.cxx321
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPageSetup.hxx117
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx1027
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx344
-rw-r--r--dbaccess/source/ui/dlg/DbAdminImpl.cxx1159
-rw-r--r--dbaccess/source/ui/dlg/DbAdminImpl.hxx215
-rw-r--r--dbaccess/source/ui/dlg/DriverSettings.cxx116
-rw-r--r--dbaccess/source/ui/dlg/DriverSettings.hxx112
-rw-r--r--dbaccess/source/ui/dlg/ExtensionNotPresent.cxx218
-rw-r--r--dbaccess/source/ui/dlg/ExtensionNotPresent.hrc48
-rw-r--r--dbaccess/source/ui/dlg/ExtensionNotPresent.src89
-rw-r--r--dbaccess/source/ui/dlg/RelationDlg.cxx303
-rw-r--r--dbaccess/source/ui/dlg/RelationDlg.hrc54
-rw-r--r--dbaccess/source/ui/dlg/RelationDlg.src185
-rw-r--r--dbaccess/source/ui/dlg/TablesSingleDlg.cxx151
-rw-r--r--dbaccess/source/ui/dlg/TextConnectionHelper.cxx617
-rw-r--r--dbaccess/source/ui/dlg/TextConnectionHelper.hxx140
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.cxx393
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.hrc59
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.hxx107
-rw-r--r--dbaccess/source/ui/dlg/UserAdmin.src242
-rw-r--r--dbaccess/source/ui/dlg/UserAdminDlg.cxx206
-rw-r--r--dbaccess/source/ui/dlg/UserAdminDlg.hrc33
-rw-r--r--dbaccess/source/ui/dlg/UserAdminDlg.src60
-rwxr-xr-xdbaccess/source/ui/dlg/admincontrols.cxx311
-rwxr-xr-xdbaccess/source/ui/dlg/admincontrols.hrc49
-rwxr-xr-xdbaccess/source/ui/dlg/admincontrols.hxx82
-rwxr-xr-xdbaccess/source/ui/dlg/admincontrols.src131
-rw-r--r--dbaccess/source/ui/dlg/adminpages.cxx329
-rw-r--r--dbaccess/source/ui/dlg/adminpages.hxx297
-rw-r--r--dbaccess/source/ui/dlg/adodatalinks.cxx211
-rw-r--r--dbaccess/source/ui/dlg/adodatalinks.hxx39
-rw-r--r--dbaccess/source/ui/dlg/adtabdlg.cxx533
-rw-r--r--dbaccess/source/ui/dlg/adtabdlg.hrc47
-rw-r--r--dbaccess/source/ui/dlg/adtabdlg.src102
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.cxx565
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.hrc75
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.hxx150
-rw-r--r--dbaccess/source/ui/dlg/advancedsettings.src366
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.cxx512
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.hrc111
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.src787
-rw-r--r--dbaccess/source/ui/dlg/dbadmin2.src188
-rw-r--r--dbaccess/source/ui/dlg/dbadminsetup.hrc136
-rw-r--r--dbaccess/source/ui/dlg/dbadminsetup.src673
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.cxx583
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.hrc26
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.hxx166
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.src246
-rw-r--r--dbaccess/source/ui/dlg/dbwiz.cxx421
-rw-r--r--dbaccess/source/ui/dlg/dbwizsetup.cxx1244
-rw-r--r--dbaccess/source/ui/dlg/detailpages.cxx1151
-rw-r--r--dbaccess/source/ui/dlg/detailpages.hxx388
-rw-r--r--dbaccess/source/ui/dlg/directsql.cxx367
-rw-r--r--dbaccess/source/ui/dlg/directsql.hrc43
-rw-r--r--dbaccess/source/ui/dlg/directsql.src134
-rw-r--r--dbaccess/source/ui/dlg/dlgattr.cxx148
-rw-r--r--dbaccess/source/ui/dlg/dlgattr.src122
-rw-r--r--dbaccess/source/ui/dlg/dlgsave.cxx485
-rw-r--r--dbaccess/source/ui/dlg/dlgsave.hrc53
-rw-r--r--dbaccess/source/ui/dlg/dlgsave.src141
-rw-r--r--dbaccess/source/ui/dlg/dlgsize.cxx130
-rw-r--r--dbaccess/source/ui/dlg/dlgsize.hrc39
-rw-r--r--dbaccess/source/ui/dlg/dlgsize.src189
-rw-r--r--dbaccess/source/ui/dlg/dsnItem.hxx69
-rw-r--r--dbaccess/source/ui/dlg/dsselect.cxx318
-rw-r--r--dbaccess/source/ui/dlg/dsselect.hrc41
-rw-r--r--dbaccess/source/ui/dlg/dsselect.hxx95
-rw-r--r--dbaccess/source/ui/dlg/dsselect.src107
-rw-r--r--dbaccess/source/ui/dlg/finteraction.cxx88
-rw-r--r--dbaccess/source/ui/dlg/finteraction.hxx75
-rw-r--r--dbaccess/source/ui/dlg/generalpage.cxx636
-rw-r--r--dbaccess/source/ui/dlg/generalpage.hxx177
-rw-r--r--dbaccess/source/ui/dlg/indexdialog.cxx962
-rw-r--r--dbaccess/source/ui/dlg/indexdialog.hrc49
-rw-r--r--dbaccess/source/ui/dlg/indexdialog.src236
-rw-r--r--dbaccess/source/ui/dlg/indexfieldscontrol.cxx514
-rw-r--r--dbaccess/source/ui/dlg/makefile.mk156
-rw-r--r--dbaccess/source/ui/dlg/odbcconfig.cxx403
-rw-r--r--dbaccess/source/ui/dlg/odbcconfig.hxx140
-rw-r--r--dbaccess/source/ui/dlg/optionalboolitem.cxx76
-rw-r--r--dbaccess/source/ui/dlg/optionalboolitem.hxx67
-rw-r--r--dbaccess/source/ui/dlg/paramdialog.cxx452
-rw-r--r--dbaccess/source/ui/dlg/paramdialog.hrc46
-rw-r--r--dbaccess/source/ui/dlg/paramdialog.src100
-rw-r--r--dbaccess/source/ui/dlg/queryfilter.cxx921
-rw-r--r--dbaccess/source/ui/dlg/queryfilter.hrc64
-rw-r--r--dbaccess/source/ui/dlg/queryfilter.src222
-rw-r--r--dbaccess/source/ui/dlg/queryorder.cxx334
-rw-r--r--dbaccess/source/ui/dlg/queryorder.hrc57
-rw-r--r--dbaccess/source/ui/dlg/queryorder.src211
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.cxx817
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.hrc50
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.src161
-rw-r--r--dbaccess/source/ui/dlg/tablespage.cxx694
-rw-r--r--dbaccess/source/ui/dlg/tablespage.hxx135
-rw-r--r--dbaccess/source/ui/dlg/textconnectionsettings.cxx106
-rw-r--r--dbaccess/source/ui/dlg/textconnectionsettings.src60
-rw-r--r--dbaccess/source/ui/imagelists/dbimagelists.src262
-rw-r--r--dbaccess/source/ui/imagelists/makefile.mk49
-rw-r--r--dbaccess/source/ui/inc/AccessibleBaseIFace.hxx54
-rw-r--r--dbaccess/source/ui/inc/AppElementType.hxx66
-rw-r--r--dbaccess/source/ui/inc/CollectionView.hxx100
-rw-r--r--dbaccess/source/ui/inc/ColumnControlWindow.hxx90
-rw-r--r--dbaccess/source/ui/inc/ConnectionLine.hxx115
-rw-r--r--dbaccess/source/ui/inc/ConnectionLineAccess.hxx113
-rw-r--r--dbaccess/source/ui/inc/ConnectionLineData.hxx111
-rw-r--r--dbaccess/source/ui/inc/DExport.hxx189
-rw-r--r--dbaccess/source/ui/inc/ExtensionNotPresent.hxx101
-rw-r--r--dbaccess/source/ui/inc/FieldControls.hxx199
-rw-r--r--dbaccess/source/ui/inc/FieldDescControl.hxx241
-rw-r--r--dbaccess/source/ui/inc/FieldDescriptions.hxx132
-rw-r--r--dbaccess/source/ui/inc/GeneralUndo.hxx59
-rw-r--r--dbaccess/source/ui/inc/HtmlReader.hxx100
-rw-r--r--dbaccess/source/ui/inc/IClipBoardTest.hxx49
-rw-r--r--dbaccess/source/ui/inc/IItemSetHelper.hxx76
-rw-r--r--dbaccess/source/ui/inc/IUpdateHelper.hxx52
-rw-r--r--dbaccess/source/ui/inc/JAccess.hxx90
-rw-r--r--dbaccess/source/ui/inc/JoinController.hxx183
-rw-r--r--dbaccess/source/ui/inc/JoinDesignView.hxx91
-rw-r--r--dbaccess/source/ui/inc/JoinExchange.hxx97
-rw-r--r--dbaccess/source/ui/inc/JoinTableView.hxx337
-rw-r--r--dbaccess/source/ui/inc/QEnumTypes.hxx90
-rw-r--r--dbaccess/source/ui/inc/QueryDesignView.hxx185
-rw-r--r--dbaccess/source/ui/inc/QueryTableView.hxx149
-rw-r--r--dbaccess/source/ui/inc/QueryTextView.hxx76
-rw-r--r--dbaccess/source/ui/inc/QueryViewSwitch.hxx99
-rw-r--r--dbaccess/source/ui/inc/RTableConnectionData.hxx108
-rw-r--r--dbaccess/source/ui/inc/RefFunctor.hxx60
-rw-r--r--dbaccess/source/ui/inc/RelControliFace.hxx60
-rw-r--r--dbaccess/source/ui/inc/RelationControl.hrc34
-rw-r--r--dbaccess/source/ui/inc/RelationControl.hxx108
-rw-r--r--dbaccess/source/ui/inc/RelationController.hxx101
-rw-r--r--dbaccess/source/ui/inc/RelationDesignView.hxx74
-rw-r--r--dbaccess/source/ui/inc/RelationDlg.hxx130
-rw-r--r--dbaccess/source/ui/inc/RelationTableView.hxx82
-rw-r--r--dbaccess/source/ui/inc/RtfReader.hxx84
-rw-r--r--dbaccess/source/ui/inc/ScrollHelper.hxx81
-rw-r--r--dbaccess/source/ui/inc/SqlNameEdit.hxx112
-rw-r--r--dbaccess/source/ui/inc/TableConnection.hxx123
-rw-r--r--dbaccess/source/ui/inc/TableConnectionData.hxx119
-rw-r--r--dbaccess/source/ui/inc/TableController.hxx178
-rw-r--r--dbaccess/source/ui/inc/TableCopyHelper.hxx225
-rw-r--r--dbaccess/source/ui/inc/TableDesignControl.hxx108
-rw-r--r--dbaccess/source/ui/inc/TableDesignHelpBar.hxx81
-rw-r--r--dbaccess/source/ui/inc/TableDesignView.hxx131
-rw-r--r--dbaccess/source/ui/inc/TableFieldDescription.hxx161
-rw-r--r--dbaccess/source/ui/inc/TableGrantCtrl.hxx126
-rw-r--r--dbaccess/source/ui/inc/TableRow.hxx101
-rw-r--r--dbaccess/source/ui/inc/TableRowExchange.hxx57
-rw-r--r--dbaccess/source/ui/inc/TableWindow.hxx209
-rw-r--r--dbaccess/source/ui/inc/TableWindowAccess.hxx124
-rw-r--r--dbaccess/source/ui/inc/TableWindowData.hxx106
-rw-r--r--dbaccess/source/ui/inc/TableWindowListBox.hxx109
-rw-r--r--dbaccess/source/ui/inc/TableWindowTitle.hxx59
-rw-r--r--dbaccess/source/ui/inc/TablesSingleDlg.hxx93
-rw-r--r--dbaccess/source/ui/inc/TokenWriter.hxx281
-rw-r--r--dbaccess/source/ui/inc/TypeInfo.hxx152
-rw-r--r--dbaccess/source/ui/inc/UITools.hxx474
-rw-r--r--dbaccess/source/ui/inc/UserAdminDlg.hxx100
-rw-r--r--dbaccess/source/ui/inc/VertSplitView.hxx60
-rw-r--r--dbaccess/source/ui/inc/WCPage.hxx120
-rw-r--r--dbaccess/source/ui/inc/WColumnSelect.hxx109
-rw-r--r--dbaccess/source/ui/inc/WCopyTable.hxx420
-rw-r--r--dbaccess/source/ui/inc/WExtendPages.hxx86
-rw-r--r--dbaccess/source/ui/inc/WNameMatch.hxx112
-rw-r--r--dbaccess/source/ui/inc/WTabPage.hxx60
-rw-r--r--dbaccess/source/ui/inc/WTypeSelect.hxx142
-rw-r--r--dbaccess/source/ui/inc/adtabdlg.hxx140
-rw-r--r--dbaccess/source/ui/inc/advancedsettingsdlg.hxx94
-rw-r--r--dbaccess/source/ui/inc/asyncmodaldialog.hxx67
-rw-r--r--dbaccess/source/ui/inc/browserids.hxx122
-rw-r--r--dbaccess/source/ui/inc/brwctrlr.hxx435
-rw-r--r--dbaccess/source/ui/inc/brwview.hxx125
-rw-r--r--dbaccess/source/ui/inc/callbacks.hxx133
-rw-r--r--dbaccess/source/ui/inc/charsetlistbox.hxx65
-rw-r--r--dbaccess/source/ui/inc/charsets.hxx150
-rw-r--r--dbaccess/source/ui/inc/commontypes.hxx60
-rw-r--r--dbaccess/source/ui/inc/curledit.hxx93
-rw-r--r--dbaccess/source/ui/inc/databaseobjectview.hxx285
-rw-r--r--dbaccess/source/ui/inc/datasourceconnector.hxx102
-rw-r--r--dbaccess/source/ui/inc/datasourcemap.hxx274
-rw-r--r--dbaccess/source/ui/inc/dbadmin.hxx144
-rw-r--r--dbaccess/source/ui/inc/dbexchange.hxx114
-rw-r--r--dbaccess/source/ui/inc/dbtreelistbox.hxx167
-rw-r--r--dbaccess/source/ui/inc/dbu_brw.hrc55
-rw-r--r--dbaccess/source/ui/inc/dbu_control.hrc56
-rw-r--r--dbaccess/source/ui/inc/dbu_dlg.hrc135
-rw-r--r--dbaccess/source/ui/inc/dbu_misc.hrc62
-rw-r--r--dbaccess/source/ui/inc/dbu_qry.hrc96
-rw-r--r--dbaccess/source/ui/inc/dbu_rel.hrc50
-rw-r--r--dbaccess/source/ui/inc/dbu_resource.hrc420
-rw-r--r--dbaccess/source/ui/inc/dbu_tbl.hrc98
-rw-r--r--dbaccess/source/ui/inc/dbu_uno.hrc56
-rw-r--r--dbaccess/source/ui/inc/dbwiz.hxx144
-rw-r--r--dbaccess/source/ui/inc/dbwizsetup.hxx211
-rw-r--r--dbaccess/source/ui/inc/defaultobjectnamecheck.hxx152
-rw-r--r--dbaccess/source/ui/inc/directsql.hxx159
-rw-r--r--dbaccess/source/ui/inc/dlgattr.hrc37
-rw-r--r--dbaccess/source/ui/inc/dlgattr.hxx68
-rw-r--r--dbaccess/source/ui/inc/dlgsave.hxx105
-rw-r--r--dbaccess/source/ui/inc/dlgsize.hxx78
-rw-r--r--dbaccess/source/ui/inc/dsitems.hxx105
-rw-r--r--dbaccess/source/ui/inc/dsmeta.hxx142
-rw-r--r--dbaccess/source/ui/inc/exsrcbrw.hxx112
-rw-r--r--dbaccess/source/ui/inc/formadapter.hxx523
-rw-r--r--dbaccess/source/ui/inc/imageprovider.hxx192
-rw-r--r--dbaccess/source/ui/inc/indexcollection.hxx125
-rw-r--r--dbaccess/source/ui/inc/indexdialog.hxx209
-rw-r--r--dbaccess/source/ui/inc/indexes.hxx107
-rw-r--r--dbaccess/source/ui/inc/indexfieldscontrol.hxx117
-rw-r--r--dbaccess/source/ui/inc/linkeddocuments.hxx168
-rw-r--r--dbaccess/source/ui/inc/listviewitems.hxx70
-rw-r--r--dbaccess/source/ui/inc/localresaccess.hxx64
-rw-r--r--dbaccess/source/ui/inc/makefile.mk43
-rw-r--r--dbaccess/source/ui/inc/marktree.hxx86
-rw-r--r--dbaccess/source/ui/inc/moduledbu.hxx107
-rw-r--r--dbaccess/source/ui/inc/objectnamecheck.hxx74
-rw-r--r--dbaccess/source/ui/inc/opendoccontrols.hxx99
-rw-r--r--dbaccess/source/ui/inc/paramdialog.hxx152
-rw-r--r--dbaccess/source/ui/inc/propertysetitem.hxx71
-rw-r--r--dbaccess/source/ui/inc/propertystorage.hxx94
-rw-r--r--dbaccess/source/ui/inc/querycontainerwindow.hxx135
-rw-r--r--dbaccess/source/ui/inc/querycontroller.hxx228
-rw-r--r--dbaccess/source/ui/inc/queryfilter.hxx163
-rw-r--r--dbaccess/source/ui/inc/queryorder.hxx138
-rw-r--r--dbaccess/source/ui/inc/queryview.hxx59
-rw-r--r--dbaccess/source/ui/inc/sbagrid.hrc125
-rw-r--r--dbaccess/source/ui/inc/sbagrid.hxx363
-rw-r--r--dbaccess/source/ui/inc/sbamultiplex.hxx488
-rw-r--r--dbaccess/source/ui/inc/sqledit.hxx89
-rw-r--r--dbaccess/source/ui/inc/sqlmessage.hxx143
-rw-r--r--dbaccess/source/ui/inc/statusbarontroller.hxx62
-rw-r--r--dbaccess/source/ui/inc/stringlistitem.hxx72
-rw-r--r--dbaccess/source/ui/inc/tabletree.hxx212
-rw-r--r--dbaccess/source/ui/inc/textconnectionsettings.hxx79
-rw-r--r--dbaccess/source/ui/inc/toolbox_tmpl.hrc100
-rw-r--r--dbaccess/source/ui/inc/toolboxcontroller.hxx85
-rw-r--r--dbaccess/source/ui/inc/undosqledit.hxx61
-rw-r--r--dbaccess/source/ui/inc/unoadmin.hxx87
-rw-r--r--dbaccess/source/ui/inc/unodatbr.hxx539
-rw-r--r--dbaccess/source/ui/inc/unosqlmessage.hxx92
-rw-r--r--dbaccess/source/ui/misc/DExport.cxx904
-rw-r--r--dbaccess/source/ui/misc/HtmlReader.cxx594
-rw-r--r--dbaccess/source/ui/misc/ModuleHelper.cxx44
-rw-r--r--dbaccess/source/ui/misc/RowSetDrop.cxx273
-rw-r--r--dbaccess/source/ui/misc/RtfReader.cxx377
-rw-r--r--dbaccess/source/ui/misc/TableCopyHelper.cxx435
-rw-r--r--dbaccess/source/ui/misc/TokenWriter.cxx1138
-rw-r--r--dbaccess/source/ui/misc/ToolBoxHelper.cxx140
-rw-r--r--dbaccess/source/ui/misc/UITools.cxx1887
-rw-r--r--dbaccess/source/ui/misc/UpdateHelperImpl.hxx149
-rw-r--r--dbaccess/source/ui/misc/WCPage.cxx418
-rw-r--r--dbaccess/source/ui/misc/WColumnSelect.cxx452
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx1701
-rw-r--r--dbaccess/source/ui/misc/WExtendPages.cxx92
-rw-r--r--dbaccess/source/ui/misc/WNameMatch.cxx450
-rw-r--r--dbaccess/source/ui/misc/WTypeSelect.cxx506
-rw-r--r--dbaccess/source/ui/misc/WizardPages.hrc81
-rw-r--r--dbaccess/source/ui/misc/WizardPages.src630
-rw-r--r--dbaccess/source/ui/misc/asyncmodaldialog.cxx121
-rw-r--r--dbaccess/source/ui/misc/charsets.cxx196
-rw-r--r--dbaccess/source/ui/misc/controllerframe.cxx443
-rw-r--r--dbaccess/source/ui/misc/databaseobjectview.cxx381
-rw-r--r--dbaccess/source/ui/misc/datasourceconnector.cxx277
-rw-r--r--dbaccess/source/ui/misc/dbumiscres.hrc62
-rw-r--r--dbaccess/source/ui/misc/dbumiscres.src100
-rw-r--r--dbaccess/source/ui/misc/defaultobjectnamecheck.cxx232
-rw-r--r--dbaccess/source/ui/misc/documentcontroller.cxx137
-rw-r--r--dbaccess/source/ui/misc/dsmeta.cxx213
-rw-r--r--dbaccess/source/ui/misc/imageprovider.cxx261
-rw-r--r--dbaccess/source/ui/misc/indexcollection.cxx424
-rw-r--r--dbaccess/source/ui/misc/linkeddocuments.cxx492
-rw-r--r--dbaccess/source/ui/misc/makefile.mk86
-rw-r--r--dbaccess/source/ui/misc/moduledbu.cxx146
-rw-r--r--dbaccess/source/ui/misc/propertysetitem.cxx86
-rw-r--r--dbaccess/source/ui/misc/propertystorage.cxx136
-rw-r--r--dbaccess/source/ui/misc/singledoccontroller.cxx708
-rw-r--r--dbaccess/source/ui/misc/stringlistitem.cxx87
-rw-r--r--dbaccess/source/ui/misc/uiservices.cxx166
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionData.hxx63
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLine.cxx397
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLineAccess.cxx272
-rw-r--r--dbaccess/source/ui/querydesign/ConnectionLineData.cxx106
-rw-r--r--dbaccess/source/ui/querydesign/JAccess.cxx145
-rw-r--r--dbaccess/source/ui/querydesign/JoinController.cxx603
-rw-r--r--dbaccess/source/ui/querydesign/JoinDesignView.cxx170
-rw-r--r--dbaccess/source/ui/querydesign/JoinExchange.cxx186
-rw-r--r--dbaccess/source/ui/querydesign/JoinTableView.cxx1773
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnection.cxx111
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnection.hxx62
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnectionData.cxx178
-rw-r--r--dbaccess/source/ui/querydesign/QTableConnectionData.hxx99
-rw-r--r--dbaccess/source/ui/querydesign/QTableWindow.cxx284
-rw-r--r--dbaccess/source/ui/querydesign/QTableWindow.hxx100
-rw-r--r--dbaccess/source/ui/querydesign/QTableWindowData.cxx62
-rw-r--r--dbaccess/source/ui/querydesign/QTableWindowData.hxx59
-rw-r--r--dbaccess/source/ui/querydesign/Query.hrc35
-rw-r--r--dbaccess/source/ui/querydesign/QueryAddTabConnUndoAction.hxx63
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignFieldUndoAct.hxx165
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignUndoAction.hxx50
-rw-r--r--dbaccess/source/ui/querydesign/QueryDesignView.cxx3233
-rw-r--r--dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.cxx56
-rw-r--r--dbaccess/source/ui/querydesign/QueryMoveTabWinUndoAct.hxx72
-rw-r--r--dbaccess/source/ui/querydesign/QuerySizeTabWinUndoAct.hxx88
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabConnUndoAction.cxx150
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabConnUndoAction.hxx59
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabWinShowUndoAct.hxx66
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabWinUndoAct.cxx155
-rw-r--r--dbaccess/source/ui/querydesign/QueryTabWinUndoAct.hxx87
-rw-r--r--dbaccess/source/ui/querydesign/QueryTableView.cxx1100
-rw-r--r--dbaccess/source/ui/querydesign/QueryTextView.cxx179
-rw-r--r--dbaccess/source/ui/querydesign/QueryViewSwitch.cxx320
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx2874
-rw-r--r--dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx362
-rw-r--r--dbaccess/source/ui/querydesign/TableConnection.cxx256
-rw-r--r--dbaccess/source/ui/querydesign/TableConnectionData.cxx202
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldDescription.cxx244
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldInfo.cxx59
-rw-r--r--dbaccess/source/ui/querydesign/TableFieldInfo.hxx57
-rw-r--r--dbaccess/source/ui/querydesign/TableWindow.cxx846
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowAccess.cxx319
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowData.cxx157
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowListBox.cxx423
-rw-r--r--dbaccess/source/ui/querydesign/TableWindowTitle.cxx248
-rw-r--r--dbaccess/source/ui/querydesign/class.jpgbin0 -> 224242 bytes
-rw-r--r--dbaccess/source/ui/querydesign/makefile.mk89
-rw-r--r--dbaccess/source/ui/querydesign/query.src423
-rw-r--r--dbaccess/source/ui/querydesign/querycontainerwindow.cxx282
-rw-r--r--dbaccess/source/ui/querydesign/querycontroller.cxx1779
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.cxx399
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.hrc61
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.hxx120
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.src194
-rw-r--r--dbaccess/source/ui/querydesign/queryview.cxx62
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnection.cxx157
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnection.hxx59
-rw-r--r--dbaccess/source/ui/relationdesign/RTableConnectionData.cxx471
-rw-r--r--dbaccess/source/ui/relationdesign/RTableWindow.hxx51
-rw-r--r--dbaccess/source/ui/relationdesign/RelationController.cxx616
-rw-r--r--dbaccess/source/ui/relationdesign/RelationDesignView.cxx153
-rw-r--r--dbaccess/source/ui/relationdesign/RelationTableView.cxx487
-rw-r--r--dbaccess/source/ui/relationdesign/makefile.mk58
-rw-r--r--dbaccess/source/ui/relationdesign/relation.src130
-rw-r--r--dbaccess/source/ui/tabledesign/FieldDescGenWin.cxx203
-rw-r--r--dbaccess/source/ui/tabledesign/FieldDescGenWin.hxx88
-rw-r--r--dbaccess/source/ui/tabledesign/FieldDescriptions.cxx670
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.cxx1950
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.hxx230
-rw-r--r--dbaccess/source/ui/tabledesign/TableController.cxx1629
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignControl.cxx241
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignHelpBar.cxx130
-rw-r--r--dbaccess/source/ui/tabledesign/TableDesignView.cxx400
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.cxx177
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.hxx72
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx337
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx115
-rw-r--r--dbaccess/source/ui/tabledesign/TableRow.cxx232
-rw-r--r--dbaccess/source/ui/tabledesign/TableRowExchange.cxx97
-rw-r--r--dbaccess/source/ui/tabledesign/TableUndo.cxx495
-rw-r--r--dbaccess/source/ui/tabledesign/TableUndo.hxx178
-rw-r--r--dbaccess/source/ui/tabledesign/makefile.mk65
-rw-r--r--dbaccess/source/ui/tabledesign/table.src409
-rw-r--r--dbaccess/source/ui/uno/AdabasSettingsDlg.cxx133
-rw-r--r--dbaccess/source/ui/uno/AdabasSettingsDlg.hxx80
-rw-r--r--dbaccess/source/ui/uno/AdvancedSettingsDlg.cxx159
-rw-r--r--dbaccess/source/ui/uno/ColumnControl.cxx151
-rw-r--r--dbaccess/source/ui/uno/ColumnControl.hxx58
-rw-r--r--dbaccess/source/ui/uno/ColumnModel.cxx188
-rw-r--r--dbaccess/source/ui/uno/ColumnModel.hxx134
-rw-r--r--dbaccess/source/ui/uno/ColumnPeer.cxx172
-rw-r--r--dbaccess/source/ui/uno/ColumnPeer.hxx70
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlg.cxx132
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlg.hxx80
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlgSetup.cxx166
-rw-r--r--dbaccess/source/ui/uno/DBTypeWizDlgSetup.hxx84
-rw-r--r--dbaccess/source/ui/uno/TableFilterDlg.cxx133
-rw-r--r--dbaccess/source/ui/uno/TableFilterDlg.hxx80
-rw-r--r--dbaccess/source/ui/uno/UserSettingsDlg.cxx133
-rw-r--r--dbaccess/source/ui/uno/UserSettingsDlg.hxx80
-rw-r--r--dbaccess/source/ui/uno/admindlg.cxx139
-rw-r--r--dbaccess/source/ui/uno/admindlg.hxx80
-rw-r--r--dbaccess/source/ui/uno/composerdialogs.cxx227
-rw-r--r--dbaccess/source/ui/uno/composerdialogs.hxx160
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.cxx1606
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.src80
-rw-r--r--dbaccess/source/ui/uno/dbinteraction.cxx412
-rw-r--r--dbaccess/source/ui/uno/dbinteraction.hxx146
-rw-r--r--dbaccess/source/ui/uno/dbinteraction.src41
-rw-r--r--dbaccess/source/ui/uno/makefile.mk76
-rw-r--r--dbaccess/source/ui/uno/textconnectionsettings_uno.cxx263
-rw-r--r--dbaccess/source/ui/uno/unoDirectSql.cxx156
-rw-r--r--dbaccess/source/ui/uno/unoDirectSql.hxx94
-rw-r--r--dbaccess/source/ui/uno/unoadmin.cxx145
-rw-r--r--dbaccess/source/ui/uno/unosqlmessage.cxx176
-rw-r--r--dbaccess/uiconfig/dbapp/accelerator/de/default.xml4
-rw-r--r--dbaccess/uiconfig/dbapp/accelerator/en-GB/default.xml4
-rw-r--r--dbaccess/uiconfig/dbapp/accelerator/en-US/default.xml4
-rw-r--r--dbaccess/uiconfig/dbapp/accelerator/es/default.xml4
-rw-r--r--dbaccess/uiconfig/dbapp/accelerator/fr/default.xml4
-rw-r--r--dbaccess/uiconfig/dbapp/menubar/menubar.xml143
-rw-r--r--dbaccess/uiconfig/dbapp/statusbar/statusbar.xml8
-rw-r--r--dbaccess/uiconfig/dbapp/toolbar/formobjectbar.xml8
-rw-r--r--dbaccess/uiconfig/dbapp/toolbar/queryobjectbar.xml8
-rw-r--r--dbaccess/uiconfig/dbapp/toolbar/reportobjectbar.xml8
-rw-r--r--dbaccess/uiconfig/dbapp/toolbar/tableobjectbar.xml8
-rw-r--r--dbaccess/uiconfig/dbapp/toolbar/toolbar.xml19
-rw-r--r--dbaccess/uiconfig/dbbrowser/accelerator/de/default.xml4
-rw-r--r--dbaccess/uiconfig/dbbrowser/accelerator/en-GB/default.xml4
-rw-r--r--dbaccess/uiconfig/dbbrowser/accelerator/en-US/default.xml4
-rw-r--r--dbaccess/uiconfig/dbbrowser/accelerator/es/default.xml4
-rw-r--r--dbaccess/uiconfig/dbbrowser/accelerator/fr/default.xml4
-rw-r--r--dbaccess/uiconfig/dbbrowser/menubar/compat.xml1
-rw-r--r--dbaccess/uiconfig/dbbrowser/menubar/preserve.txt1
-rw-r--r--dbaccess/uiconfig/dbbrowser/toolbar/toolbar.xml33
-rw-r--r--dbaccess/uiconfig/dbquery/accelerator/de/default.xml6
-rw-r--r--dbaccess/uiconfig/dbquery/accelerator/en-US/default.xml6
-rw-r--r--dbaccess/uiconfig/dbquery/menubar/menubar.xml84
-rw-r--r--dbaccess/uiconfig/dbquery/toolbar/designobjectbar.xml10
-rw-r--r--dbaccess/uiconfig/dbquery/toolbar/sqlobjectbar.xml5
-rw-r--r--dbaccess/uiconfig/dbquery/toolbar/toolbar.xml20
-rw-r--r--dbaccess/uiconfig/dbrelation/menubar/menubar.xml67
-rw-r--r--dbaccess/uiconfig/dbrelation/toolbar/toolbar.xml13
-rw-r--r--dbaccess/uiconfig/dbtable/menubar/menubar.xml68
-rw-r--r--dbaccess/uiconfig/dbtable/toolbar/toolbar.xml17
-rw-r--r--dbaccess/uiconfig/dbtdata/accelerator/de/default.xml4
-rw-r--r--dbaccess/uiconfig/dbtdata/accelerator/en-GB/default.xml4
-rw-r--r--dbaccess/uiconfig/dbtdata/accelerator/en-US/default.xml4
-rw-r--r--dbaccess/uiconfig/dbtdata/accelerator/es/default.xml4
-rw-r--r--dbaccess/uiconfig/dbtdata/accelerator/fr/default.xml4
-rw-r--r--dbaccess/uiconfig/dbtdata/menubar/menubar.xml76
-rw-r--r--dbaccess/uiconfig/dbtdata/toolbar/toolbar.xml27
-rw-r--r--dbaccess/util/dba.map8
-rw-r--r--dbaccess/util/dba.pmk29
-rw-r--r--dbaccess/util/dbu.map8
-rw-r--r--dbaccess/util/hidother.src516
-rw-r--r--dbaccess/util/makefile.mk241
-rw-r--r--dbaccess/util/makefile.pmk31
-rw-r--r--dbaccess/util/sdbt.map8
-rw-r--r--dbaccess/win32/source/odbcconfig/makefile.mk54
-rw-r--r--dbaccess/win32/source/odbcconfig/odbcconfig.cxx159
-rw-r--r--desktop/inc/app.hxx209
-rw-r--r--desktop/inc/deployment.hrc88
-rw-r--r--desktop/inc/makefile.mk47
-rw-r--r--desktop/inc/pch/precompiled_desktop.cxx29
-rw-r--r--desktop/inc/pch/precompiled_desktop.hxx40
-rw-r--r--desktop/os2/source/applauncher/launcher.cxx122
-rw-r--r--desktop/os2/source/applauncher/launcher.hxx9
-rw-r--r--desktop/os2/source/applauncher/makefile.mk121
-rw-r--r--desktop/os2/source/applauncher/officeloader.cxx3
-rw-r--r--desktop/os2/source/applauncher/quickstart.cxx3
-rw-r--r--desktop/os2/source/applauncher/sbase.cxx3
-rw-r--r--desktop/os2/source/applauncher/scalc.cxx3
-rw-r--r--desktop/os2/source/applauncher/sdraw.cxx3
-rw-r--r--desktop/os2/source/applauncher/simpress.cxx3
-rw-r--r--desktop/os2/source/applauncher/smath.cxx3
-rw-r--r--desktop/os2/source/applauncher/swriter.cxx3
-rw-r--r--desktop/prj/build.lst44
-rw-r--r--desktop/prj/d.lst145
-rw-r--r--desktop/qa/deployment_misc/makefile.mk53
-rw-r--r--desktop/qa/deployment_misc/test_dp_version.cxx90
-rw-r--r--desktop/qa/deployment_misc/version.map34
-rw-r--r--desktop/registry/data/org/openoffice/Office/Jobs.xcu74
-rw-r--r--desktop/registry/data/org/openoffice/Office/makefile.mk77
-rw-r--r--desktop/scripts/basis-link1
-rw-r--r--desktop/scripts/makefile.mk67
-rw-r--r--desktop/scripts/mozwrapper.sh8
-rw-r--r--desktop/scripts/odf-basis-link1
-rw-r--r--desktop/scripts/sbase.sh4
-rw-r--r--desktop/scripts/scalc.sh4
-rw-r--r--desktop/scripts/sdraw.sh4
-rw-r--r--desktop/scripts/simpress.sh4
-rw-r--r--desktop/scripts/smaster.sh4
-rw-r--r--desktop/scripts/smath.sh4
-rw-r--r--desktop/scripts/so-basis-link1
-rw-r--r--desktop/scripts/soffice.sh134
-rw-r--r--desktop/scripts/sweb.sh4
-rw-r--r--desktop/scripts/swriter.sh4
-rw-r--r--desktop/scripts/unoinfo.sh56
-rw-r--r--desktop/scripts/unopkg.sh80
-rw-r--r--desktop/scripts/ure-link1
-rw-r--r--desktop/source/app/app.cxx3004
-rw-r--r--desktop/source/app/appfirststart.cxx270
-rw-r--r--desktop/source/app/appinit.cxx489
-rw-r--r--desktop/source/app/appinit.hxx50
-rw-r--r--desktop/source/app/appsys.cxx69
-rw-r--r--desktop/source/app/appsys.hxx42
-rw-r--r--desktop/source/app/check_ext_deps.cxx256
-rw-r--r--desktop/source/app/checkinstall.cxx118
-rw-r--r--desktop/source/app/checkinstall.hxx42
-rw-r--r--desktop/source/app/cmdlineargs.cxx863
-rw-r--r--desktop/source/app/cmdlineargs.hxx208
-rw-r--r--desktop/source/app/cmdlinehelp.cxx173
-rw-r--r--desktop/source/app/cmdlinehelp.hxx23
-rw-r--r--desktop/source/app/configinit.cxx303
-rw-r--r--desktop/source/app/configinit.hxx71
-rw-r--r--desktop/source/app/copyright_ascii_ooo.c16
-rw-r--r--desktop/source/app/copyright_ascii_sun.c20
-rw-r--r--desktop/source/app/desktop.hrc91
-rw-r--r--desktop/source/app/desktop.src234
-rw-r--r--desktop/source/app/desktopcontext.cxx63
-rw-r--r--desktop/source/app/desktopcontext.hxx50
-rw-r--r--desktop/source/app/desktopresid.cxx44
-rw-r--r--desktop/source/app/desktopresid.hxx44
-rw-r--r--desktop/source/app/dispatchwatcher.cxx514
-rw-r--r--desktop/source/app/dispatchwatcher.hxx124
-rw-r--r--desktop/source/app/exports.dxp3
-rw-r--r--desktop/source/app/langselect.cxx430
-rw-r--r--desktop/source/app/langselect.hxx64
-rw-r--r--desktop/source/app/lockfile.cxx256
-rw-r--r--desktop/source/app/lockfile.hxx99
-rw-r--r--desktop/source/app/lockfile2.cxx70
-rw-r--r--desktop/source/app/main.c36
-rw-r--r--desktop/source/app/makefile.mk101
-rw-r--r--desktop/source/app/officeipcthread.cxx996
-rw-r--r--desktop/source/app/officeipcthread.hxx165
-rw-r--r--desktop/source/app/omutexmember.hxx61
-rw-r--r--desktop/source/app/sofficemain.cxx52
-rw-r--r--desktop/source/app/sofficemain.h43
-rw-r--r--desktop/source/app/userinstall.cxx301
-rw-r--r--desktop/source/app/userinstall.hxx52
-rw-r--r--desktop/source/app/version.map34
-rw-r--r--desktop/source/deployment/deployment.map8
-rw-r--r--desktop/source/deployment/dp_log.cxx211
-rw-r--r--desktop/source/deployment/dp_persmap.cxx253
-rw-r--r--desktop/source/deployment/dp_services.cxx137
-rw-r--r--desktop/source/deployment/dp_xml.cxx259
-rw-r--r--desktop/source/deployment/gui/descedit.cxx100
-rw-r--r--desktop/source/deployment/gui/descedit.hxx57
-rw-r--r--desktop/source/deployment/gui/dp_gui.h101
-rw-r--r--desktop/source/deployment/gui/dp_gui.hrc177
-rw-r--r--desktop/source/deployment/gui/dp_gui_autoscrolledit.cxx74
-rw-r--r--desktop/source/deployment/gui/dp_gui_autoscrolledit.hxx51
-rw-r--r--desktop/source/deployment/gui/dp_gui_backend.src131
-rw-r--r--desktop/source/deployment/gui/dp_gui_dependencydialog.cxx86
-rw-r--r--desktop/source/deployment/gui/dp_gui_dependencydialog.hxx68
-rw-r--r--desktop/source/deployment/gui/dp_gui_dependencydialog.src70
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog.src343
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.cxx1779
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.hxx272
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.src242
-rw-r--r--desktop/source/deployment/gui/dp_gui_extensioncmdqueue.cxx1165
-rw-r--r--desktop/source/deployment/gui/dp_gui_extensioncmdqueue.hxx110
-rw-r--r--desktop/source/deployment/gui/dp_gui_extlistbox.cxx1175
-rw-r--r--desktop/source/deployment/gui/dp_gui_extlistbox.hxx267
-rw-r--r--desktop/source/deployment/gui/dp_gui_service.cxx366
-rw-r--r--desktop/source/deployment/gui/dp_gui_shared.hxx62
-rw-r--r--desktop/source/deployment/gui/dp_gui_system.cxx59
-rw-r--r--desktop/source/deployment/gui/dp_gui_system.hxx37
-rw-r--r--desktop/source/deployment/gui/dp_gui_theextmgr.cxx536
-rw-r--r--desktop/source/deployment/gui/dp_gui_theextmgr.hxx139
-rw-r--r--desktop/source/deployment/gui/dp_gui_thread.cxx82
-rw-r--r--desktop/source/deployment/gui/dp_gui_thread.hxx84
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedata.hxx76
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedialog.cxx1292
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedialog.hxx226
-rw-r--r--desktop/source/deployment/gui/dp_gui_updatedialog.src277
-rw-r--r--desktop/source/deployment/gui/dp_gui_updateinstalldialog.cxx728
-rw-r--r--desktop/source/deployment/gui/dp_gui_updateinstalldialog.hxx138
-rw-r--r--desktop/source/deployment/gui/dp_gui_updateinstalldialog.src203
-rw-r--r--desktop/source/deployment/gui/dp_gui_versionboxes.src76
-rw-r--r--desktop/source/deployment/gui/license_dialog.cxx325
-rw-r--r--desktop/source/deployment/gui/license_dialog.hxx70
-rw-r--r--desktop/source/deployment/gui/makefile.mk108
-rw-r--r--desktop/source/deployment/inc/db.hxx173
-rw-r--r--desktop/source/deployment/inc/dp_dependencies.hxx82
-rw-r--r--desktop/source/deployment/inc/dp_descriptioninfoset.hxx278
-rw-r--r--desktop/source/deployment/inc/dp_identifier.hxx92
-rw-r--r--desktop/source/deployment/inc/dp_interact.h150
-rw-r--r--desktop/source/deployment/inc/dp_misc.h156
-rw-r--r--desktop/source/deployment/inc/dp_misc.mk42
-rw-r--r--desktop/source/deployment/inc/dp_misc_api.hxx40
-rw-r--r--desktop/source/deployment/inc/dp_persmap.h65
-rw-r--r--desktop/source/deployment/inc/dp_platform.hxx56
-rw-r--r--desktop/source/deployment/inc/dp_resource.h67
-rw-r--r--desktop/source/deployment/inc/dp_ucb.h84
-rw-r--r--desktop/source/deployment/inc/dp_version.hxx55
-rw-r--r--desktop/source/deployment/inc/dp_xml.h161
-rw-r--r--desktop/source/deployment/makefile.mk114
-rw-r--r--desktop/source/deployment/manager/dp_activepackages.cxx184
-rw-r--r--desktop/source/deployment/manager/dp_activepackages.hxx80
-rw-r--r--desktop/source/deployment/manager/dp_informationprovider.cxx507
-rw-r--r--desktop/source/deployment/manager/dp_manager.cxx1268
-rw-r--r--desktop/source/deployment/manager/dp_manager.h267
-rw-r--r--desktop/source/deployment/manager/dp_manager.hrc39
-rw-r--r--desktop/source/deployment/manager/dp_manager.src55
-rw-r--r--desktop/source/deployment/manager/dp_managerfac.cxx196
-rw-r--r--desktop/source/deployment/manager/makefile.mk52
-rw-r--r--desktop/source/deployment/migration/dp_migration.cxx251
-rw-r--r--desktop/source/deployment/migration/makefile.mk41
-rw-r--r--desktop/source/deployment/misc/db.cxx272
-rw-r--r--desktop/source/deployment/misc/dp_dependencies.cxx169
-rw-r--r--desktop/source/deployment/misc/dp_descriptioninfoset.cxx578
-rw-r--r--desktop/source/deployment/misc/dp_identifier.cxx73
-rw-r--r--desktop/source/deployment/misc/dp_interact.cxx185
-rw-r--r--desktop/source/deployment/misc/dp_misc.cxx470
-rw-r--r--desktop/source/deployment/misc/dp_misc.hrc33
-rw-r--r--desktop/source/deployment/misc/dp_misc.src40
-rw-r--r--desktop/source/deployment/misc/dp_platform.cxx217
-rw-r--r--desktop/source/deployment/misc/dp_resource.cxx233
-rw-r--r--desktop/source/deployment/misc/dp_ucb.cxx274
-rw-r--r--desktop/source/deployment/misc/dp_version.cxx80
-rw-r--r--desktop/source/deployment/misc/makefile.mk93
-rw-r--r--desktop/source/deployment/registry/component/dp_component.cxx1500
-rw-r--r--desktop/source/deployment/registry/component/dp_component.hrc39
-rw-r--r--desktop/source/deployment/registry/component/dp_component.src54
-rw-r--r--desktop/source/deployment/registry/component/makefile.mk47
-rw-r--r--desktop/source/deployment/registry/configuration/dp_configuration.cxx702
-rw-r--r--desktop/source/deployment/registry/configuration/dp_configuration.hrc36
-rw-r--r--desktop/source/deployment/registry/configuration/dp_configuration.src39
-rw-r--r--desktop/source/deployment/registry/configuration/makefile.mk51
-rw-r--r--desktop/source/deployment/registry/dp_backend.cxx591
-rw-r--r--desktop/source/deployment/registry/dp_registry.cxx528
-rw-r--r--desktop/source/deployment/registry/dp_registry.src59
-rw-r--r--desktop/source/deployment/registry/executable/dp_executable.cxx289
-rw-r--r--desktop/source/deployment/registry/executable/makefile.mk43
-rw-r--r--desktop/source/deployment/registry/help/dp_help.cxx594
-rw-r--r--desktop/source/deployment/registry/help/dp_help.hrc39
-rw-r--r--desktop/source/deployment/registry/help/dp_help.src44
-rw-r--r--desktop/source/deployment/registry/help/makefile.mk51
-rw-r--r--desktop/source/deployment/registry/inc/dp_backend.h322
-rw-r--r--desktop/source/deployment/registry/inc/dp_registry.hrc40
-rw-r--r--desktop/source/deployment/registry/makefile.mk48
-rw-r--r--desktop/source/deployment/registry/package/dp_description.cxx205
-rw-r--r--desktop/source/deployment/registry/package/dp_description.hxx125
-rw-r--r--desktop/source/deployment/registry/package/dp_package.cxx1552
-rw-r--r--desktop/source/deployment/registry/package/dp_package.hrc35
-rw-r--r--desktop/source/deployment/registry/package/dp_package.src34
-rw-r--r--desktop/source/deployment/registry/package/makefile.mk48
-rw-r--r--desktop/source/deployment/registry/script/dp_lib_container.cxx73
-rw-r--r--desktop/source/deployment/registry/script/dp_lib_container.h57
-rw-r--r--desktop/source/deployment/registry/script/dp_script.cxx473
-rw-r--r--desktop/source/deployment/registry/script/dp_script.hrc39
-rw-r--r--desktop/source/deployment/registry/script/dp_script.src49
-rw-r--r--desktop/source/deployment/registry/script/makefile.mk48
-rw-r--r--desktop/source/deployment/registry/sfwk/dp_parceldesc.cxx130
-rw-r--r--desktop/source/deployment/registry/sfwk/dp_parceldesc.hxx89
-rw-r--r--desktop/source/deployment/registry/sfwk/dp_sfwk.cxx398
-rw-r--r--desktop/source/deployment/registry/sfwk/dp_sfwk.hrc35
-rw-r--r--desktop/source/deployment/registry/sfwk/dp_sfwk.src35
-rw-r--r--desktop/source/deployment/registry/sfwk/makefile.mk48
-rw-r--r--desktop/source/deployment/target.pmk36
-rw-r--r--desktop/source/deployment/unopkg/makefile.mk48
-rw-r--r--desktop/source/deployment/unopkg/unopkg.src89
-rw-r--r--desktop/source/inc/exithelper.hxx70
-rw-r--r--desktop/source/inc/helpid.hrc78
-rw-r--r--desktop/source/migration/cfgfilter.cxx333
-rw-r--r--desktop/source/migration/cfgfilter.hxx173
-rw-r--r--desktop/source/migration/makefile.mk59
-rw-r--r--desktop/source/migration/migration.cxx719
-rw-r--r--desktop/source/migration/migration.hxx46
-rw-r--r--desktop/source/migration/migration_impl.hxx121
-rw-r--r--desktop/source/migration/pages.cxx618
-rw-r--r--desktop/source/migration/pages.hxx211
-rw-r--r--desktop/source/migration/services/autocorrmigration.cxx285
-rw-r--r--desktop/source/migration/services/autocorrmigration.hxx102
-rw-r--r--desktop/source/migration/services/basicmigration.cxx274
-rw-r--r--desktop/source/migration/services/basicmigration.hxx102
-rw-r--r--desktop/source/migration/services/cexports.cxx80
-rw-r--r--desktop/source/migration/services/cppumaker.mk36
-rwxr-xr-xdesktop/source/migration/services/extensionmigration.cxx540
-rwxr-xr-xdesktop/source/migration/services/extensionmigration.hxx130
-rw-r--r--desktop/source/migration/services/jvmfwk.cxx529
-rw-r--r--desktop/source/migration/services/jvmfwk.hxx50
-rw-r--r--desktop/source/migration/services/makefile.mk83
-rw-r--r--desktop/source/migration/services/migrationoo2.map8
-rw-r--r--desktop/source/migration/services/migrationoo2.xml78
-rw-r--r--desktop/source/migration/services/misc.hxx48
-rwxr-xr-xdesktop/source/migration/services/wordbookmigration.cxx322
-rwxr-xr-xdesktop/source/migration/services/wordbookmigration.hxx102
-rw-r--r--desktop/source/migration/wizard.cxx549
-rw-r--r--desktop/source/migration/wizard.hrc98
-rw-r--r--desktop/source/migration/wizard.hxx101
-rw-r--r--desktop/source/migration/wizard.src424
-rw-r--r--desktop/source/offacc/acceptor.cxx361
-rw-r--r--desktop/source/offacc/acceptor.hxx128
-rw-r--r--desktop/source/offacc/exports.map10
-rw-r--r--desktop/source/offacc/makefile.mk62
-rw-r--r--desktop/source/pagein/file_image.h78
-rw-r--r--desktop/source/pagein/file_image_unx.c150
-rw-r--r--desktop/source/pagein/makefile.mk165
-rw-r--r--desktop/source/pagein/pagein.c149
-rw-r--r--desktop/source/pkgchk/unopkg/makefile.mk104
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_app.cxx509
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_cmdenv.cxx442
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_main.c36
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_main.h43
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_misc.cxx506
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_shared.h183
-rw-r--r--desktop/source/pkgchk/unopkg/version.map34
-rw-r--r--desktop/source/registration/com/sun/star/registration/Registration.java339
-rw-r--r--desktop/source/registration/com/sun/star/registration/makefile.mk55
-rw-r--r--desktop/source/registration/com/sun/star/registration/manifest2
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/BrowserSupport.java201
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/Installer.java943
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/LinuxSystemEnvironment.java323
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/RegistrationData.java531
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/RegistrationDocument.java440
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/Registry.java554
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/ServiceTag.java636
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/SolarisServiceTag.java64
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/SolarisSystemEnvironment.java421
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/SunConnection.java292
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/SysnetRegistryHelper.java376
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/SystemEnvironment.java436
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/UnauthorizedAccessException.java55
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/Util.java293
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/WindowsSystemEnvironment.java232
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/makefile.mk79
-rw-r--r--desktop/source/registration/com/sun/star/servicetag/resources/product_registration.xsd366
-rw-r--r--desktop/source/so_comp/evaluation.cxx205
-rw-r--r--desktop/source/so_comp/evaluation.hxx92
-rw-r--r--desktop/source/so_comp/exports.map10
-rw-r--r--desktop/source/so_comp/makefile.mk77
-rw-r--r--desktop/source/so_comp/oemjob.cxx280
-rw-r--r--desktop/source/so_comp/oemjob.hxx92
-rw-r--r--desktop/source/so_comp/services.cxx160
-rw-r--r--desktop/source/splash/exports.map10
-rwxr-xr-xdesktop/source/splash/firststart.cxx156
-rwxr-xr-xdesktop/source/splash/firststart.hxx90
-rw-r--r--desktop/source/splash/makefile.mk89
-rwxr-xr-xdesktop/source/splash/services_spl.cxx157
-rw-r--r--desktop/source/splash/splash.cxx669
-rw-r--r--desktop/source/splash/splash.hxx134
-rw-r--r--desktop/test/deployment/dependencies/broken-dependency.oxtbin0 -> 1655 bytes
-rw-r--r--desktop/test/deployment/dependencies/double-dependencies.oxtbin0 -> 1651 bytes
-rw-r--r--desktop/test/deployment/dependencies/empty-dependencies.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/dependencies/funny-dependency.oxtbin0 -> 1730 bytes
-rw-r--r--desktop/test/deployment/dependencies/license-dependency.oxtbin0 -> 1891 bytes
-rw-r--r--desktop/test/deployment/dependencies/many-dependencies.oxtbin0 -> 1702 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr22.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr23.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/minattr24.oxtbin0 -> 1690 bytes
-rw-r--r--desktop/test/deployment/dependencies/no-dependencies.oxtbin0 -> 1611 bytes
-rw-r--r--desktop/test/deployment/dependencies/no-description.oxtbin0 -> 1360 bytes
-rw-r--r--desktop/test/deployment/dependencies/readme.txt82
-rw-r--r--desktop/test/deployment/dependencies/unknown-dependency.oxtbin0 -> 1633 bytes
-rw-r--r--desktop/test/deployment/dependencies/version10000.oxtbin0 -> 1668 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21ns.oxtbin0 -> 1661 bytes
-rw-r--r--desktop/test/deployment/dependencies/version21other.oxtbin0 -> 1679 bytes
-rw-r--r--desktop/test/deployment/dependencies/version22.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/version23.oxtbin0 -> 1666 bytes
-rw-r--r--desktop/test/deployment/dependencies/versionempty.oxtbin0 -> 1675 bytes
-rw-r--r--desktop/test/deployment/dependencies/versionnone.oxtbin0 -> 1674 bytes
-rw-r--r--desktop/test/deployment/description/desc1.oxtbin0 -> 2096 bytes
-rw-r--r--desktop/test/deployment/description/desc2.oxtbin0 -> 2091 bytes
-rw-r--r--desktop/test/deployment/description/desc3.oxtbin0 -> 2070 bytes
-rw-r--r--desktop/test/deployment/description/desc4.oxtbin0 -> 2061 bytes
-rw-r--r--desktop/test/deployment/description/desc5.oxtbin0 -> 2041 bytes
-rwxr-xr-xdesktop/test/deployment/description/readme.txt23
-rw-r--r--desktop/test/deployment/display_name/name1.oxtbin0 -> 704 bytes
-rw-r--r--desktop/test/deployment/display_name/name2.oxtbin0 -> 699 bytes
-rw-r--r--desktop/test/deployment/display_name/name3.oxtbin0 -> 681 bytes
-rw-r--r--desktop/test/deployment/display_name/name4.oxtbin0 -> 675 bytes
-rw-r--r--desktop/test/deployment/display_name/name5.oxtbin0 -> 654 bytes
-rw-r--r--desktop/test/deployment/display_name/readme.txt26
-rw-r--r--desktop/test/deployment/executable_content/build/hello.c45
-rw-r--r--desktop/test/deployment/executable_content/build/makefile.mk51
-rw-r--r--desktop/test/deployment/executable_content/build/readme.txt2
-rw-r--r--desktop/test/deployment/executable_content/hello.oxtbin0 -> 35048 bytes
-rw-r--r--desktop/test/deployment/executable_content/readme.txt12
-rw-r--r--desktop/test/deployment/identifier/explicit/identifier.oxtbin0 -> 1660 bytes
-rw-r--r--desktop/test/deployment/identifier/legacy/identifier.oxtbin0 -> 1634 bytes
-rw-r--r--desktop/test/deployment/identifier/readme.txt33
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.idl40
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.java165
-rw-r--r--desktop/test/deployment/locationtest/LocationTest.odtbin0 -> 7681 bytes
-rw-r--r--desktop/test/deployment/locationtest/MANIFEST.MF2
-rw-r--r--desktop/test/deployment/locationtest/delzip1
-rw-r--r--desktop/test/deployment/locationtest/description.xml13
-rw-r--r--desktop/test/deployment/locationtest/makefile.mk84
-rw-r--r--desktop/test/deployment/locationtest/manifest.xml5
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/MANIFEST.MF2
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/OptionsEventHandler.java449
-rw-r--r--desktop/test/deployment/options/handler/com/sun/star/comp/extensionoptions/makefile.mk53
-rw-r--r--desktop/test/deployment/options/leaf1.oxtbin0 -> 8308 bytes
-rw-r--r--desktop/test/deployment/options/leaf1mod.oxtbin0 -> 8310 bytes
-rw-r--r--desktop/test/deployment/options/leaf2.oxtbin0 -> 8338 bytes
-rw-r--r--desktop/test/deployment/options/leaves1.oxtbin0 -> 21158 bytes
-rw-r--r--desktop/test/deployment/options/leaves2.oxtbin0 -> 21153 bytes
-rw-r--r--desktop/test/deployment/options/leaves3.oxtbin0 -> 21080 bytes
-rw-r--r--desktop/test/deployment/options/modules1.oxtbin0 -> 24317 bytes
-rw-r--r--desktop/test/deployment/options/modules2.oxtbin0 -> 24196 bytes
-rw-r--r--desktop/test/deployment/options/nodes1.oxtbin0 -> 1882 bytes
-rw-r--r--desktop/test/deployment/options/nodes2.oxtbin0 -> 24287 bytes
-rw-r--r--desktop/test/deployment/options/nodes3.oxtbin0 -> 24315 bytes
-rw-r--r--desktop/test/deployment/options/nodes4.oxtbin0 -> 24318 bytes
-rw-r--r--desktop/test/deployment/options/nodes5.oxtbin0 -> 12616 bytes
-rw-r--r--desktop/test/deployment/options/readme.txt200
-rw-r--r--desktop/test/deployment/simple_license/BadDesc.oxtbin0 -> 9663 bytes
-rw-r--r--desktop/test/deployment/simple_license/BadNamespace.oxtbin0 -> 9736 bytes
-rw-r--r--desktop/test/deployment/simple_license/BadRoot.oxtbin0 -> 9073 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale1.oxtbin0 -> 2126 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale2.oxtbin0 -> 2121 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale3.oxtbin0 -> 2101 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale4.oxtbin0 -> 2094 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale5.oxtbin0 -> 2072 bytes
-rw-r--r--desktop/test/deployment/simple_license/Locale6.oxtbin0 -> 1397 bytes
-rw-r--r--desktop/test/deployment/simple_license/LongLic.oxtbin0 -> 9521 bytes
-rw-r--r--desktop/test/deployment/simple_license/MissingLic.oxtbin0 -> 9214 bytes
-rw-r--r--desktop/test/deployment/simple_license/MissingLicRef.oxtbin0 -> 9332 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoDefLang.oxtbin0 -> 9360 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoDesc.oxtbin0 -> 8722 bytes
-rw-r--r--desktop/test/deployment/simple_license/NoLang.oxtbin0 -> 9217 bytes
-rw-r--r--desktop/test/deployment/simple_license/Prefix.oxtbin0 -> 1112 bytes
-rw-r--r--desktop/test/deployment/simple_license/ShortLicense.oxtbin0 -> 9381 bytes
-rw-r--r--desktop/test/deployment/simple_license/ShortLicenseShared.oxtbin0 -> 9382 bytes
-rw-r--r--desktop/test/deployment/simple_license/tests_simple_license.odtbin0 -> 15621 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/change1.oxtbin0 -> 1650 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/change1_mod.oxtbin0 -> 1673 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/readme.txt13
-rw-r--r--desktop/test/deployment/update/changing_display_name/update1/change1.oxtbin0 -> 1675 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/update1/change1.update.xml10
-rw-r--r--desktop/test/deployment/update/changing_display_name/update2/change1.oxtbin0 -> 1687 bytes
-rw-r--r--desktop/test/deployment/update/changing_display_name/update2/change1.update.xml10
-rw-r--r--desktop/test/deployment/update/default_url/default1.oxtbin0 -> 1544 bytes
-rw-r--r--desktop/test/deployment/update/default_url/default2.oxtbin0 -> 1544 bytes
-rw-r--r--desktop/test/deployment/update/default_url/readme.txt9
-rw-r--r--desktop/test/deployment/update/default_url/update/default1.oxtbin0 -> 1546 bytes
-rw-r--r--desktop/test/deployment/update/default_url/update/default1.update.xml10
-rw-r--r--desktop/test/deployment/update/default_url/update/default2.oxtbin0 -> 1546 bytes
-rw-r--r--desktop/test/deployment/update/default_url/update/default2.update.xml10
-rw-r--r--desktop/test/deployment/update/default_url/update/feed1.xml33
-rw-r--r--desktop/test/deployment/update/defect/fail1.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail2.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail3.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/fail4.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/info1.oxtbin0 -> 2188 bytes
-rw-r--r--desktop/test/deployment/update/defect/info2.oxtbin0 -> 2187 bytes
-rw-r--r--desktop/test/deployment/update/defect/info3.oxtbin0 -> 2187 bytes
-rw-r--r--desktop/test/deployment/update/defect/readme.txt15
-rw-r--r--desktop/test/deployment/update/defect/update/fail1.oxtbin0 -> 2193 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail1.update.xml10
-rw-r--r--desktop/test/deployment/update/defect/update/fail2.oxtbin0 -> 2436 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail2.update.xml10
-rw-r--r--desktop/test/deployment/update/defect/update/fail3.oxtbin0 -> 2396 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/fail3.update.xml10
-rw-r--r--desktop/test/deployment/update/defect/update/fail4.oxt0
-rw-r--r--desktop/test/deployment/update/defect/update/fail4.update.xml10
-rw-r--r--desktop/test/deployment/update/defect/update/info1.update.xml0
-rw-r--r--desktop/test/deployment/update/defect/update/info2.update.xml1
-rw-r--r--desktop/test/deployment/update/defect/update/info3.oxtbin0 -> 2189 bytes
-rw-r--r--desktop/test/deployment/update/defect/update/info3.update.xml10
-rw-r--r--desktop/test/deployment/update/dependencies/publisher_en.html9
-rw-r--r--desktop/test/deployment/update/dependencies/readme.txt32
-rw-r--r--desktop/test/deployment/update/dependencies/release-notes_en.html8
-rw-r--r--desktop/test/deployment/update/dependencies/update-dependencies.oxtbin0 -> 1751 bytes
-rw-r--r--desktop/test/deployment/update/dependencies/update/update-dependencies.update.xml71
-rw-r--r--desktop/test/deployment/update/license/lic1.oxtbin0 -> 3608 bytes
-rw-r--r--desktop/test/deployment/update/license/lic2.oxtbin0 -> 3625 bytes
-rw-r--r--desktop/test/deployment/update/license/lic3.oxtbin0 -> 3624 bytes
-rw-r--r--desktop/test/deployment/update/license/readme.txt9
-rw-r--r--desktop/test/deployment/update/license/update/lic1.oxtbin0 -> 3610 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic1.update.xml10
-rw-r--r--desktop/test/deployment/update/license/update/lic2.oxtbin0 -> 3627 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic2.update.xml10
-rw-r--r--desktop/test/deployment/update/license/update/lic3.oxtbin0 -> 3626 bytes
-rw-r--r--desktop/test/deployment/update/license/update/lic3.update.xml10
-rw-r--r--desktop/test/deployment/update/platform/all1.oxtbin0 -> 692 bytes
-rw-r--r--desktop/test/deployment/update/platform/all2.oxtbin0 -> 702 bytes
-rw-r--r--desktop/test/deployment/update/platform/all3.oxtbin0 -> 297 bytes
-rw-r--r--desktop/test/deployment/update/platform/freebsd_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/freebsd_x86_64.oxtbin0 -> 711 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid1.oxtbin0 -> 653 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid2.oxtbin0 -> 653 bytes
-rw-r--r--desktop/test/deployment/update/platform/invalid3.oxtbin0 -> 655 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_arm_eabi.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_arm_oabi.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_ia64.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips_eb.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_mips_el.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_powerpc.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_powerpc64.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_s390.oxtbin0 -> 705 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_s390x.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_sparc.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_x86.oxtbin0 -> 705 bytes
-rw-r--r--desktop/test/deployment/update/platform/linux_x86_64.oxtbin0 -> 708 bytes
-rw-r--r--desktop/test/deployment/update/platform/macosx_powerpc.oxtbin0 -> 710 bytes
-rw-r--r--desktop/test/deployment/update/platform/macosx_x86.oxtbin0 -> 707 bytes
-rw-r--r--desktop/test/deployment/update/platform/mul1.oxtbin0 -> 952 bytes
-rw-r--r--desktop/test/deployment/update/platform/os2_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/readme.txt49
-rw-r--r--desktop/test/deployment/update/platform/solaris_sparc.oxtbin0 -> 709 bytes
-rw-r--r--desktop/test/deployment/update/platform/solaris_x86.oxtbin0 -> 706 bytes
-rw-r--r--desktop/test/deployment/update/platform/windows_x86.oxtbin0 -> 707 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub1.oxtbin0 -> 1882 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub10.oxtbin0 -> 1742 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub11.oxtbin0 -> 1601 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub2.oxtbin0 -> 1866 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub3.oxtbin0 -> 1829 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub4.oxtbin0 -> 1812 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub5.oxtbin0 -> 1769 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub6.oxtbin0 -> 1814 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub7.oxtbin0 -> 1769 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub8.oxtbin0 -> 1853 bytes
-rw-r--r--desktop/test/deployment/update/publisher/pub9.oxtbin0 -> 1779 bytes
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de-DE-altmark.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de-DE.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_de.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-GB.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US-region1.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US-region2.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-US.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en-region3.html9
-rw-r--r--desktop/test/deployment/update/publisher/publisher_en.html9
-rw-r--r--desktop/test/deployment/update/publisher/readme.txt212
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de-DE-altmark.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de-DE.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_de.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-GB.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US-region1.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US-region2.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-US.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en-region3.html8
-rw-r--r--desktop/test/deployment/update/publisher/release-notes_en.html8
-rw-r--r--desktop/test/deployment/update/publisher/update/pub1.oxtbin0 -> 1885 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub1.update.xml36
-rw-r--r--desktop/test/deployment/update/publisher/update/pub10.oxtbin0 -> 1744 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub11.oxtbin0 -> 1603 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub2.oxtbin0 -> 1871 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub2.update.xml34
-rw-r--r--desktop/test/deployment/update/publisher/update/pub3.oxtbin0 -> 1833 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub3.update.xml30
-rw-r--r--desktop/test/deployment/update/publisher/update/pub4.oxtbin0 -> 1815 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub4.update.xml28
-rw-r--r--desktop/test/deployment/update/publisher/update/pub5.oxtbin0 -> 1774 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub5.update.xml24
-rw-r--r--desktop/test/deployment/update/publisher/update/pub6.oxtbin0 -> 1816 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub6.update.xml24
-rw-r--r--desktop/test/deployment/update/publisher/update/pub7.oxtbin0 -> 1771 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub7.update.xml24
-rw-r--r--desktop/test/deployment/update/publisher/update/pub8.oxtbin0 -> 1855 bytes
-rw-r--r--desktop/test/deployment/update/publisher/update/pub9.oxtbin0 -> 1781 bytes
-rw-r--r--desktop/test/deployment/update/readme.txt68
-rw-r--r--desktop/test/deployment/update/simple/plain1.oxtbin0 -> 1642 bytes
-rw-r--r--desktop/test/deployment/update/simple/plain2.oxtbin0 -> 1643 bytes
-rw-r--r--desktop/test/deployment/update/simple/plain3.oxtbin0 -> 1643 bytes
-rw-r--r--desktop/test/deployment/update/simple/readme.txt31
-rw-r--r--desktop/test/deployment/update/simple/update/plain1.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain1.update.xml10
-rw-r--r--desktop/test/deployment/update/simple/update/plain2.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain2.update.xml10
-rw-r--r--desktop/test/deployment/update/simple/update/plain3.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/update/simple/update/plain3.update.xml10
-rw-r--r--desktop/test/deployment/update/updatefeed/feed1.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/feed2.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.update.xml10
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed1.xml33
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed2.oxtbin0 -> 2184 bytes
-rw-r--r--desktop/test/deployment/update/updatefeed/update/feed2.update.xml10
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/MANIFEST.MF2
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/TestExtension.idl40
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/TestExtension.java165
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/delzip1
-rw-r--r--desktop/test/deployment/update/updateinfocreation/build/description.xml13
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/makefile.mk88
-rwxr-xr-xdesktop/test/deployment/update/updateinfocreation/build/manifest.xml5
-rw-r--r--desktop/test/deployment/update/updateinfocreation/readme.txt38
-rw-r--r--desktop/test/deployment/update/updateinfocreation/update/updateinfo.oxtbin0 -> 4295 bytes
-rw-r--r--desktop/test/deployment/update/updateinfocreation/updateinfo.oxtbin0 -> 4295 bytes
-rw-r--r--desktop/test/deployment/update/website_update/readme.txt133
-rw-r--r--desktop/test/deployment/update/website_update/update/web1.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web1.update.xml20
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de-DE-altmark.html18
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de-DE.html18
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_de.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-GB.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US-region1.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US-region2.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-US.html20
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en-region3.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web1_en.html19
-rw-r--r--desktop/test/deployment/update/website_update/update/web2.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web2.update.xml19
-rw-r--r--desktop/test/deployment/update/website_update/update/web3.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web3.update.xml17
-rw-r--r--desktop/test/deployment/update/website_update/update/web4.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web4.update.xml16
-rw-r--r--desktop/test/deployment/update/website_update/update/web5.oxtbin0 -> 1695 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web5.update.xml14
-rw-r--r--desktop/test/deployment/update/website_update/update/web6.oxtbin0 -> 1640 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web6/description.xml11
-rw-r--r--desktop/test/deployment/update/website_update/update/web6/readme.txt5
-rw-r--r--desktop/test/deployment/update/website_update/update/web7.oxtbin0 -> 1897 bytes
-rw-r--r--desktop/test/deployment/update/website_update/update/web7/description.xml36
-rw-r--r--desktop/test/deployment/update/website_update/update/web7/readme.txt5
-rw-r--r--desktop/test/deployment/update/website_update/web1.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web2.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web3.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web4.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web5.oxtbin0 -> 1693 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web6.oxtbin0 -> 1638 bytes
-rw-r--r--desktop/test/deployment/update/website_update/web7.oxtbin0 -> 1894 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/readme.txt18
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url1.oxtbin0 -> 2192 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url1.update.xml11
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url2.oxtbin0 -> 2206 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/update/url2.update.xml10
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload1.update.xml11
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload2.update.xml11
-rw-r--r--desktop/test/deployment/update/wrong_url/update/wrongdownload3.update.xml11
-rw-r--r--desktop/test/deployment/update/wrong_url/url1.oxtbin0 -> 2190 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/url2.oxtbin0 -> 2205 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/url3.oxtbin0 -> 2204 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload1.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload2.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/update/wrong_url/wrongdownload3.oxtbin0 -> 2194 bytes
-rw-r--r--desktop/test/deployment/version/readme.txt85
-rw-r--r--desktop/test/deployment/version/version_0.0/dependency.oxtbin0 -> 1657 bytes
-rw-r--r--desktop/test/deployment/version/version_0.0/license.oxtbin0 -> 1733 bytes
-rw-r--r--desktop/test/deployment/version/version_0.0/plain.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/dependency.oxtbin0 -> 1662 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/license.oxtbin0 -> 1738 bytes
-rw-r--r--desktop/test/deployment/version/version_1.02.4.7.0/plain.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/dependency.oxtbin0 -> 1662 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/license.oxtbin0 -> 1738 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.15.3/plain.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/dependency.oxtbin0 -> 1659 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/license.oxtbin0 -> 1735 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.3/plain.oxtbin0 -> 1620 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/dependency.oxtbin0 -> 1661 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/license.oxtbin0 -> 1737 bytes
-rw-r--r--desktop/test/deployment/version/version_1.2.4.7/plain.oxtbin0 -> 1623 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/dependency.oxtbin0 -> 1654 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/license.oxtbin0 -> 1731 bytes
-rw-r--r--desktop/test/deployment/version/version_badelement/plain.oxtbin0 -> 1616 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/dependency.oxtbin0 -> 1657 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/license.oxtbin0 -> 1733 bytes
-rw-r--r--desktop/test/deployment/version/version_badvalue/plain.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_0.0/dependency.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.02.4.7.0/dependency.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.15.3/dependency.oxtbin0 -> 1624 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.3/dependency.oxtbin0 -> 1620 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_1.2.4.7/dependency.oxtbin0 -> 1623 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_badelement/dependency.oxtbin0 -> 1616 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_badvalue/dependency.oxtbin0 -> 1618 bytes
-rw-r--r--desktop/test/deployment/version/version_nodependencies_none/dependency.oxtbin0 -> 1598 bytes
-rw-r--r--desktop/test/deployment/version/version_none/dependency.oxtbin0 -> 1645 bytes
-rw-r--r--desktop/test/deployment/version/version_none/license.oxtbin0 -> 1722 bytes
-rw-r--r--desktop/test/deployment/version/version_none/plain.oxtbin0 -> 1598 bytes
-rw-r--r--desktop/unx/source/officeloader/makefile.mk47
-rwxr-xr-xdesktop/unx/source/officeloader/officeloader.cxx110
-rw-r--r--desktop/util/hidother.src54
-rw-r--r--desktop/util/makefile.mk344
-rw-r--r--desktop/util/ooverinfo.rc139
-rw-r--r--desktop/util/ooverinfo2.rc89
-rw-r--r--desktop/util/soffice.icobin0 -> 4990 bytes
-rw-r--r--desktop/util/template.manifest10
-rw-r--r--desktop/util/verinfo.rc142
-rw-r--r--desktop/util/writer.r1
-rw-r--r--desktop/win32/source/applauncher/launcher.cxx146
-rw-r--r--desktop/win32/source/applauncher/launcher.hxx21
-rw-r--r--desktop/win32/source/applauncher/makefile.mk148
-rw-r--r--desktop/win32/source/applauncher/ooo/makefile.mk130
-rw-r--r--desktop/win32/source/applauncher/ooo/verinfo.rc97
-rw-r--r--desktop/win32/source/applauncher/sbase.cxx34
-rw-r--r--desktop/win32/source/applauncher/scalc.cxx34
-rw-r--r--desktop/win32/source/applauncher/sdraw.cxx34
-rw-r--r--desktop/win32/source/applauncher/simpress.cxx34
-rw-r--r--desktop/win32/source/applauncher/smath.cxx34
-rw-r--r--desktop/win32/source/applauncher/sweb.cxx34
-rw-r--r--desktop/win32/source/applauncher/swriter.cxx32
-rw-r--r--desktop/win32/source/applauncher/verinfo.rc102
-rw-r--r--desktop/win32/source/extendloaderenvironment.cxx182
-rw-r--r--desktop/win32/source/extendloaderenvironment.hxx95
-rw-r--r--desktop/win32/source/guiloader/genericloader.cxx176
-rw-r--r--desktop/win32/source/guiloader/makefile.mk64
-rw-r--r--desktop/win32/source/guistdio/guistdio.cxx30
-rw-r--r--desktop/win32/source/guistdio/guistdio.inc453
-rw-r--r--desktop/win32/source/guistdio/makefile.mk58
-rw-r--r--desktop/win32/source/guistdio/unopkgio.cxx31
-rw-r--r--desktop/win32/source/lwrapa.cxx32
-rw-r--r--desktop/win32/source/lwrapw.cxx33
-rw-r--r--desktop/win32/source/main.h13
-rw-r--r--desktop/win32/source/makefile.mk63
-rw-r--r--desktop/win32/source/officeloader/makefile.mk63
-rw-r--r--desktop/win32/source/officeloader/officeloader.cxx423
-rw-r--r--desktop/win32/source/rebase/Resource.h38
-rw-r--r--desktop/win32/source/rebase/makefile.mk89
-rw-r--r--desktop/win32/source/rebase/rcfooter.txt2
-rw-r--r--desktop/win32/source/rebase/rcheader.txt39
-rw-r--r--desktop/win32/source/rebase/rctmpl.txt9
-rw-r--r--desktop/win32/source/rebase/rebase.cxx187
-rw-r--r--desktop/win32/source/rebase/rebasegui.cxx197
-rw-r--r--desktop/win32/source/rebase/rebasegui.ulf11
-rw-r--r--desktop/win32/source/rwrapa.cxx32
-rw-r--r--desktop/win32/source/rwrapw.cxx33
-rw-r--r--desktop/win32/source/setup/Resource.h79
-rw-r--r--desktop/win32/source/setup/makefile.mk91
-rw-r--r--desktop/win32/source/setup/rcfooter.txt2
-rw-r--r--desktop/win32/source/setup/rcheader.txt43
-rw-r--r--desktop/win32/source/setup/rctmpl.txt49
-rwxr-xr-xdesktop/win32/source/setup/setup.cpp2066
-rw-r--r--desktop/win32/source/setup/setup.hxx154
-rw-r--r--desktop/win32/source/setup/setup.icobin0 -> 4710 bytes
-rw-r--r--desktop/win32/source/setup/setup.ulf162
-rw-r--r--desktop/win32/source/setup/setup_a.cxx31
-rw-r--r--desktop/win32/source/setup/setup_help.hxx47
-rw-r--r--desktop/win32/source/setup/setup_main.cxx147
-rw-r--r--desktop/win32/source/setup/setup_main.hxx74
-rw-r--r--desktop/win32/source/setup/setup_w.cxx35
-rw-r--r--desktop/win32/source/sowrapper.cxx47
-rw-r--r--desktop/win32/source/unoinfo.cxx148
-rw-r--r--desktop/win32/source/wrapper.h173
-rw-r--r--desktop/win32/source/wrappera.cxx31
-rw-r--r--desktop/win32/source/wrapperw.cxx32
-rw-r--r--desktop/zipintro/delzip1
-rw-r--r--desktop/zipintro/makefile.mk131
-rwxr-xr-xdmake/AUTHORS0
-rwxr-xr-xdmake/COPYING37
-rwxr-xr-xdmake/ChangeLog4259
-rwxr-xr-xdmake/INSTALL3
-rwxr-xr-xdmake/Makefile.am64
-rwxr-xr-xdmake/Makefile.in869
-rwxr-xr-xdmake/NEWS316
-rwxr-xr-xdmake/acinclude.m43
-rwxr-xr-xdmake/aclocal.m4908
-rw-r--r--dmake/alloc.h59
-rwxr-xr-xdmake/autogen.sh63
-rwxr-xr-xdmake/compile142
-rwxr-xr-xdmake/config.guess1463
-rw-r--r--dmake/config.h.in184
-rwxr-xr-xdmake/config.sub1579
-rwxr-xr-xdmake/configure9000
-rwxr-xr-xdmake/configure.in220
-rw-r--r--dmake/dag.c697
-rw-r--r--dmake/db.h66
-rw-r--r--dmake/dbug/dbug.mk66
-rw-r--r--dmake/dbug/dbug/dbug.c1845
-rw-r--r--dmake/dbug/dbug/dbug.h164
-rwxr-xr-xdmake/dbug/dbug/dbug.txt1452
-rw-r--r--dmake/dbug/dbug/dbug.uue368
-rwxr-xr-xdmake/dbug/dbug/example1.c12
-rwxr-xr-xdmake/dbug/dbug/example2.c17
-rwxr-xr-xdmake/dbug/dbug/example3.c16
-rwxr-xr-xdmake/dbug/dbug/factorial.c15
-rwxr-xr-xdmake/dbug/dbug/main.c27
-rwxr-xr-xdmake/dbug/dbug/makeman.sh18
-rw-r--r--dmake/dbug/dbug/readme52
-rwxr-xr-xdmake/dbug/dbug/user.r938
-rw-r--r--dmake/dbug/getwd.c6
-rw-r--r--dmake/dbug/malloc/_changes9
-rw-r--r--dmake/dbug/malloc/_readme133
-rw-r--r--dmake/dbug/malloc/calloc.c49
-rw-r--r--dmake/dbug/malloc/debug.h99
-rw-r--r--dmake/dbug/malloc/dump.c103
-rw-r--r--dmake/dbug/malloc/free.c150
-rw-r--r--dmake/dbug/malloc/m_init.c79
-rw-r--r--dmake/dbug/malloc/m_perror.c73
-rw-r--r--dmake/dbug/malloc/makefile77
-rw-r--r--dmake/dbug/malloc/malloc.3223
-rw-r--r--dmake/dbug/malloc/malloc.c627
-rw-r--r--dmake/dbug/malloc/malloc.h85
-rw-r--r--dmake/dbug/malloc/mallopt.c98
-rw-r--r--dmake/dbug/malloc/memory.c195
-rw-r--r--dmake/dbug/malloc/mlc_chk.c256
-rw-r--r--dmake/dbug/malloc/mlc_chn.c188
-rw-r--r--dmake/dbug/malloc/patchlev1
-rw-r--r--dmake/dbug/malloc/realloc.c180
-rw-r--r--dmake/dbug/malloc/string.c533
-rw-r--r--dmake/dbug/malloc/testmem.c646
-rw-r--r--dmake/dbug/malloc/testmlc.c176
-rw-r--r--dmake/dbug/malloc/tostring.c132
-rw-r--r--dmake/dbug/malloc/tostring.h13
-rw-r--r--dmake/dbug/readme13
-rwxr-xr-xdmake/depcomp530
-rw-r--r--dmake/dmake.c959
-rw-r--r--dmake/dmake.h230
-rw-r--r--dmake/dmakeroot.h.in6
-rw-r--r--dmake/dmdump.c287
-rw-r--r--dmake/dmstring.c300
-rw-r--r--dmake/dstdarg.h43
-rw-r--r--dmake/expand.c1204
-rw-r--r--dmake/extern.h192
-rw-r--r--dmake/function.c726
-rw-r--r--dmake/getinp.c848
-rw-r--r--dmake/hash.c54
-rw-r--r--dmake/imacs.c206
-rw-r--r--dmake/infer.c904
-rwxr-xr-xdmake/install-sh323
-rw-r--r--dmake/itypes.h82
-rw-r--r--dmake/mac/arlib.c56
-rw-r--r--dmake/mac/bogus.c99
-rw-r--r--dmake/mac/config.mk44
-rw-r--r--dmake/mac/dirbrk.c42
-rw-r--r--dmake/mac/directry.c264
-rw-r--r--dmake/mac/dompwmak67
-rw-r--r--dmake/mac/environ.c231
-rw-r--r--dmake/mac/eold.c119
-rw-r--r--dmake/mac/main.c43
-rw-r--r--dmake/mac/make.sh107
-rw-r--r--dmake/mac/make_mac.sh105
-rw-r--r--dmake/mac/public.h173
-rw-r--r--dmake/mac/rmprq.c38
-rw-r--r--dmake/mac/ruletab.c43
-rw-r--r--dmake/mac/startup.h28
-rw-r--r--dmake/mac/sysintf.h41
-rw-r--r--dmake/mac/template.mk7
-rw-r--r--dmake/mac/tempnam.c65
-rw-r--r--dmake/mac/tomacfil.c38
-rw-r--r--dmake/macparse.c232
-rwxr-xr-xdmake/make.bat273
-rw-r--r--dmake/make.c1774
-rwxr-xr-xdmake/make.cmd115
-rw-r--r--dmake/makefile.mk432
-rw-r--r--dmake/man/dmake.nc3644
-rw-r--r--dmake/man/dmake.tf3480
-rw-r--r--dmake/man/readme12
-rwxr-xr-xdmake/missing360
-rwxr-xr-xdmake/mkinstalldirs158
-rw-r--r--dmake/msdos/arlib.c56
-rw-r--r--dmake/msdos/borland/bcc30/config.h48
-rw-r--r--dmake/msdos/borland/bcc30/config.mk8
-rw-r--r--dmake/msdos/borland/bcc30/lib.rsp1
-rw-r--r--dmake/msdos/borland/bcc30/libswp.rsp1
-rwxr-xr-xdmake/msdos/borland/bcc30/mkswp.bat107
-rw-r--r--dmake/msdos/borland/bcc30/obj.rsp34
-rw-r--r--dmake/msdos/borland/bcc30/objswp.rsp36
-rw-r--r--dmake/msdos/borland/bcc30/public.h170
-rw-r--r--dmake/msdos/borland/bcc30/template.mk7
-rw-r--r--dmake/msdos/borland/bcc40/config.h51
-rw-r--r--dmake/msdos/borland/bcc40/config.mk7
-rw-r--r--dmake/msdos/borland/bcc40/lib.rsp2
-rw-r--r--dmake/msdos/borland/bcc40/libswp.rsp1
-rwxr-xr-xdmake/msdos/borland/bcc40/mkswp.bat107
-rw-r--r--dmake/msdos/borland/bcc40/obj.rsp34
-rw-r--r--dmake/msdos/borland/bcc40/objswp.rsp36
-rw-r--r--dmake/msdos/borland/bcc40/public.h170
-rw-r--r--dmake/msdos/borland/bcc40/template.mk7
-rw-r--r--dmake/msdos/borland/bcc45/config.h51
-rw-r--r--dmake/msdos/borland/bcc45/config.mk7
-rw-r--r--dmake/msdos/borland/bcc45/lib.rsp2
-rw-r--r--dmake/msdos/borland/bcc45/libswp.rsp1
-rwxr-xr-xdmake/msdos/borland/bcc45/mkswp.bat107
-rw-r--r--dmake/msdos/borland/bcc45/obj.rsp34
-rw-r--r--dmake/msdos/borland/bcc45/objswp.rsp36
-rw-r--r--dmake/msdos/borland/bcc45/public.h170
-rw-r--r--dmake/msdos/borland/bcc45/template.mk7
-rw-r--r--dmake/msdos/borland/bcc50/config.h51
-rw-r--r--dmake/msdos/borland/bcc50/config.mk7
-rw-r--r--dmake/msdos/borland/bcc50/lib.rsp2
-rw-r--r--dmake/msdos/borland/bcc50/libswp.rsp1
-rwxr-xr-xdmake/msdos/borland/bcc50/mkswp.bat107
-rw-r--r--dmake/msdos/borland/bcc50/obj.rsp34
-rw-r--r--dmake/msdos/borland/bcc50/objswp.rsp36
-rw-r--r--dmake/msdos/borland/bcc50/public.h170
-rw-r--r--dmake/msdos/borland/bcc50/template.mk7
-rw-r--r--dmake/msdos/borland/config.mk46
-rw-r--r--dmake/msdos/borland/tcc20/config.h48
-rw-r--r--dmake/msdos/borland/tcc20/config.mk10
-rw-r--r--dmake/msdos/borland/tcc20/libswp.rsp1
-rwxr-xr-xdmake/msdos/borland/tcc20/mkswp.bat107
-rw-r--r--dmake/msdos/borland/tcc20/objswp.rsp36
-rw-r--r--dmake/msdos/borland/tcc20/public.h170
-rw-r--r--dmake/msdos/borland/tcc20/template.mk7
-rw-r--r--dmake/msdos/borland/tempnam.c109
-rw-r--r--dmake/msdos/borland/utime.c66
-rw-r--r--dmake/msdos/config.mk71
-rw-r--r--dmake/msdos/dchdir.c47
-rw-r--r--dmake/msdos/dirbrk.c42
-rw-r--r--dmake/msdos/dirent.h32
-rw-r--r--dmake/msdos/dirlib.c285
-rw-r--r--dmake/msdos/dosdta.h16
-rw-r--r--dmake/msdos/dstrlwr.c49
-rw-r--r--dmake/msdos/exec.asm1234
-rw-r--r--dmake/msdos/exec.h43
-rw-r--r--dmake/msdos/exec.uue63
-rw-r--r--dmake/msdos/find.c130
-rw-r--r--dmake/msdos/microsft/config.h77
-rw-r--r--dmake/msdos/microsft/config.mk59
-rw-r--r--dmake/msdos/microsft/msc51/config.mk11
-rw-r--r--dmake/msdos/microsft/msc51/lib.rsp1
-rw-r--r--dmake/msdos/microsft/msc51/libswp.rsp1
-rwxr-xr-xdmake/msdos/microsft/msc51/mk.bat102
-rwxr-xr-xdmake/msdos/microsft/msc51/mkswp.bat104
-rw-r--r--dmake/msdos/microsft/msc51/obj.rsp33
-rw-r--r--dmake/msdos/microsft/msc51/objswp.rsp34
-rw-r--r--dmake/msdos/microsft/msc51/public.h170
-rw-r--r--dmake/msdos/microsft/msc51/template.mk7
-rw-r--r--dmake/msdos/microsft/msc60/config.mk11
-rw-r--r--dmake/msdos/microsft/msc60/lib.rsp1
-rw-r--r--dmake/msdos/microsft/msc60/libswp.rsp1
-rwxr-xr-xdmake/msdos/microsft/msc60/mk.bat102
-rwxr-xr-xdmake/msdos/microsft/msc60/mkswp.bat104
-rw-r--r--dmake/msdos/microsft/msc60/obj.rsp33
-rw-r--r--dmake/msdos/microsft/msc60/objswp.rsp34
-rw-r--r--dmake/msdos/microsft/msc60/public.h170
-rw-r--r--dmake/msdos/microsft/msc60/template.mk7
-rw-r--r--dmake/msdos/microsft/optoff.h27
-rw-r--r--dmake/msdos/microsft/tempnam.c110
-rw-r--r--dmake/msdos/rmprq.c44
-rw-r--r--dmake/msdos/ruletab.c45
-rw-r--r--dmake/msdos/runargv.c188
-rw-r--r--dmake/msdos/spawn.c415
-rw-r--r--dmake/msdos/startup.h26
-rw-r--r--dmake/msdos/switchar.c55
-rw-r--r--dmake/msdos/sysintf.h52
-rw-r--r--dmake/msdos/tee.c31
-rw-r--r--dmake/msdos/zortech/config.h52
-rw-r--r--dmake/msdos/zortech/config.mk73
-rw-r--r--dmake/msdos/zortech/environ.c59
-rw-r--r--dmake/msdos/zortech/lib.rsp1
-rw-r--r--dmake/msdos/zortech/libswp.rsp1
-rwxr-xr-xdmake/msdos/zortech/mkswp.bat36
-rw-r--r--dmake/msdos/zortech/obj.rsp34
-rw-r--r--dmake/msdos/zortech/objswp.rsp35
-rw-r--r--dmake/msdos/zortech/public.h169
-rw-r--r--dmake/msdos/zortech/startup.mk153
-rw-r--r--dmake/msdos/zortech/tempnam.c106
-rw-r--r--dmake/os2/config.mk54
-rw-r--r--dmake/os2/dchdir.c41
-rw-r--r--dmake/os2/dirent.h36
-rw-r--r--dmake/os2/ibm/config.h78
-rw-r--r--dmake/os2/ibm/config.mk54
-rw-r--r--dmake/os2/ibm/icc/config.mk11
-rw-r--r--dmake/os2/ibm/icc/lib.rsp1
-rwxr-xr-xdmake/os2/ibm/icc/mk.cmd96
-rw-r--r--dmake/os2/ibm/icc/obj.rsp31
-rw-r--r--dmake/os2/ibm/icc/public.h169
-rw-r--r--dmake/os2/ibm/icc/template.mk7
-rw-r--r--dmake/os2/ibm/icc3/config.mk11
-rw-r--r--dmake/os2/ibm/icc3/lib.rsp1
-rwxr-xr-xdmake/os2/ibm/icc3/mk.cmd192
-rw-r--r--dmake/os2/ibm/icc3/obj.rsp30
-rw-r--r--dmake/os2/ibm/icc3/public.h169
-rw-r--r--dmake/os2/ibm/icc3/template.mk7
-rw-r--r--dmake/os2/ibm/tempnam.c111
-rw-r--r--dmake/os2/ruletab.c47
-rw-r--r--dmake/os2/startup.h27
-rw-r--r--dmake/os2/switchar.c43
-rw-r--r--dmake/os2/sysintf.h62
-rw-r--r--dmake/parse.c176
-rw-r--r--dmake/path.c337
-rw-r--r--dmake/percent.c251
-rw-r--r--dmake/posix.h66
-rw-r--r--dmake/qssl/config.mk43
-rw-r--r--dmake/qssl/make.sh62
-rw-r--r--dmake/qssl/public.h166
-rw-r--r--dmake/qssl/ruletab.c41
-rw-r--r--dmake/qssl/runargv.c298
-rw-r--r--dmake/qssl/setup40
-rw-r--r--dmake/qssl/startup.h28
-rw-r--r--dmake/qssl/stdlib.h48
-rw-r--r--dmake/qssl/sysintf.h42
-rw-r--r--dmake/qssl/template.mk7
-rw-r--r--dmake/qssl/tempnam.c102
-rw-r--r--dmake/qssl/time.h32
-rw-r--r--dmake/quit.c116
-rw-r--r--dmake/rcsclean.awk57
-rw-r--r--dmake/readme/intro.txt40
-rw-r--r--dmake/readme/license.txt248
-rw-r--r--dmake/readme/public/install.txt203
-rw-r--r--dmake/readme/public/mac.txt43
-rw-r--r--dmake/readme/public/msdos.txt124
-rw-r--r--dmake/readme/public/os2.txt76
-rw-r--r--dmake/readme/public/qssl-qnx.txt5
-rw-r--r--dmake/readme/public/srcorg.txt74
-rw-r--r--dmake/readme/public/tos.txt31
-rw-r--r--dmake/readme/public/unix.txt171
-rw-r--r--dmake/readme/read1st.txt58
-rw-r--r--dmake/readme/release.txt196
-rw-r--r--dmake/rulparse.c1740
-rwxr-xr-xdmake/stamp-h1
-rwxr-xr-xdmake/startup/Makefile.am7
-rw-r--r--dmake/startup/Makefile.in492
-rw-r--r--dmake/startup/config.mk.in5
-rw-r--r--dmake/startup/mac/macros.mk41
-rw-r--r--dmake/startup/msdos/borland/bcc30/macros.mk4
-rw-r--r--dmake/startup/msdos/borland/bcc40/macros.mk4
-rw-r--r--dmake/startup/msdos/borland/bcc45/macros.mk4
-rw-r--r--dmake/startup/msdos/borland/bcc50.32/macros.mk4
-rw-r--r--dmake/startup/msdos/borland/bcc50/macros.mk4
-rw-r--r--dmake/startup/msdos/borland/macros.mk33
-rw-r--r--dmake/startup/msdos/borland/tcc20/macros.mk4
-rw-r--r--dmake/startup/msdos/macros.mk62
-rw-r--r--dmake/startup/msdos/microsft/macros.mk34
-rw-r--r--dmake/startup/msdos/recipes.mk9
-rw-r--r--dmake/startup/msdos/zortech/macros.mk30
-rw-r--r--dmake/startup/os2/ibm/macros.mk30
-rw-r--r--dmake/startup/os2/macros.mk60
-rw-r--r--dmake/startup/qssl/macros.mk11
-rw-r--r--dmake/startup/qssl/qnx/macros.mk11
-rw-r--r--dmake/startup/qssl/qnx/recipes.mk8
-rw-r--r--dmake/startup/qssl/recipes.mk8
-rw-r--r--dmake/startup/startup.mk211
-rw-r--r--dmake/startup/summary3
-rw-r--r--dmake/startup/template.mk7
-rw-r--r--dmake/startup/templates/mac/template.mk7
-rw-r--r--dmake/startup/templates/msdos/borland/bcc30/template.mk7
-rw-r--r--dmake/startup/templates/msdos/borland/bcc40/template.mk7
-rw-r--r--dmake/startup/templates/msdos/borland/bcc45/template.mk7
-rw-r--r--dmake/startup/templates/msdos/borland/bcc50/template.mk7
-rw-r--r--dmake/startup/templates/msdos/borland/tcc20/template.mk7
-rw-r--r--dmake/startup/templates/msdos/microsft/msc51/template.mk7
-rw-r--r--dmake/startup/templates/msdos/microsft/msc60/template.mk7
-rw-r--r--dmake/startup/templates/os2/ibm/icc/template.mk7
-rw-r--r--dmake/startup/templates/qssl/template.mk7
-rw-r--r--dmake/startup/templates/tos/template.mk7
-rw-r--r--dmake/startup/templates/unix/386ix/template.mk7
-rw-r--r--dmake/startup/templates/unix/bsd43/template.mk7
-rw-r--r--dmake/startup/templates/unix/bsd43/uw/template.mk7
-rw-r--r--dmake/startup/templates/unix/bsd43/vf/template.mk7
-rw-r--r--dmake/startup/templates/unix/coherent/ver40/template.mk7
-rw-r--r--dmake/startup/templates/unix/coherent/ver42/template.mk7
-rw-r--r--dmake/startup/templates/unix/linux/gnu/template.mk7
-rw-r--r--dmake/startup/templates/unix/solaris/gnu/template.mk7
-rw-r--r--dmake/startup/templates/unix/solaris/template.mk7
-rw-r--r--dmake/startup/templates/unix/sysvr1/template.mk7
-rw-r--r--dmake/startup/templates/unix/sysvr3/pwd/template.mk7
-rw-r--r--dmake/startup/templates/unix/sysvr3/template.mk7
-rw-r--r--dmake/startup/templates/unix/sysvr4/template.mk7
-rw-r--r--dmake/startup/templates/unix/xenix/pwd/template.mk7
-rw-r--r--dmake/startup/templates/unix/xenix/template.mk7
-rw-r--r--dmake/startup/templates/win95/borland/bcc50/template.mk7
-rw-r--r--dmake/startup/templates/win95/microsft/vpp40/template.mk7
-rw-r--r--dmake/startup/templates/winnt/borland/bcc50/template.mk7
-rw-r--r--dmake/startup/templates/winnt/microsft/vpp40/template.mk7
-rw-r--r--dmake/startup/tos/macros.mk24
-rw-r--r--dmake/startup/unix/386ix/macros.mk6
-rwxr-xr-xdmake/startup/unix/Makefile.am8
-rw-r--r--dmake/startup/unix/Makefile.in489
-rw-r--r--dmake/startup/unix/bsd43/macros.mk11
-rw-r--r--dmake/startup/unix/bsd43/recipes.mk13
-rw-r--r--dmake/startup/unix/coherent/macros.mk6
-rw-r--r--dmake/startup/unix/coherent/recipes.mk6
-rw-r--r--dmake/startup/unix/cygwin/Makefile.am6
-rw-r--r--dmake/startup/unix/cygwin/Makefile.in331
-rw-r--r--dmake/startup/unix/cygwin/macros.mk10
-rwxr-xr-xdmake/startup/unix/linux/Makefile.am6
-rw-r--r--dmake/startup/unix/linux/Makefile.in331
-rw-r--r--dmake/startup/unix/linux/gnu/macros.mk6
-rw-r--r--dmake/startup/unix/linux/macros.mk10
-rwxr-xr-xdmake/startup/unix/macosx/Makefile.am6
-rw-r--r--dmake/startup/unix/macosx/Makefile.in331
-rw-r--r--dmake/startup/unix/macosx/gnu/macros.mk6
-rw-r--r--dmake/startup/unix/macosx/macros.mk10
-rw-r--r--dmake/startup/unix/macros.mk5
-rw-r--r--dmake/startup/unix/os2/Makefile.am6
-rw-r--r--dmake/startup/unix/os2/Makefile.in331
-rw-r--r--dmake/startup/unix/os2/macros.mk60
-rw-r--r--dmake/startup/unix/recipes.mk15
-rwxr-xr-xdmake/startup/unix/solaris/Makefile.am6
-rw-r--r--dmake/startup/unix/solaris/Makefile.in331
-rw-r--r--dmake/startup/unix/solaris/macros.mk6
-rw-r--r--dmake/startup/unix/sysvr1/macros.mk6
-rw-r--r--dmake/startup/unix/sysvr3/gnu/macros.mk12
-rw-r--r--dmake/startup/unix/sysvr3/macros.mk7
-rwxr-xr-xdmake/startup/unix/sysvr4/Makefile.am6
-rw-r--r--dmake/startup/unix/sysvr4/Makefile.in331
-rw-r--r--dmake/startup/unix/sysvr4/macros.mk6
-rw-r--r--dmake/startup/unix/xenix/macros.mk6
-rw-r--r--dmake/startup/win95/borland/macros.mk34
-rw-r--r--dmake/startup/win95/macros.mk75
-rw-r--r--dmake/startup/win95/microsft/macros.mk38
-rw-r--r--dmake/startup/win95/recipes.mk9
-rw-r--r--dmake/startup/winnt/Makefile.am8
-rw-r--r--dmake/startup/winnt/Makefile.in489
-rw-r--r--dmake/startup/winnt/borland/macros.mk34
-rw-r--r--dmake/startup/winnt/macros.mk75
-rw-r--r--dmake/startup/winnt/microsft/macros.mk37
-rw-r--r--dmake/startup/winnt/mingw/Makefile.am6
-rw-r--r--dmake/startup/winnt/mingw/Makefile.in331
-rw-r--r--dmake/startup/winnt/mingw/macros.mk10
-rw-r--r--dmake/startup/winnt/msvc6/Makefile.am6
-rw-r--r--dmake/startup/winnt/msvc6/Makefile.in331
-rw-r--r--dmake/startup/winnt/msvc6/macros.mk37
-rw-r--r--dmake/startup/winnt/recipes.mk9
-rw-r--r--dmake/stat.c278
-rw-r--r--dmake/state.c231
-rw-r--r--dmake/stdmacs.h60
-rw-r--r--dmake/struct.h261
-rw-r--r--dmake/sysintf.c1157
-rw-r--r--dmake/tests/Makefile.am22
-rw-r--r--dmake/tests/Makefile.in392
-rw-r--r--dmake/tests/README12
-rwxr-xr-xdmake/tests/function_macros-196
-rwxr-xr-xdmake/tests/function_macros-10122
-rwxr-xr-xdmake/tests/function_macros-264
-rwxr-xr-xdmake/tests/function_macros-340
-rwxr-xr-xdmake/tests/function_macros-435
-rwxr-xr-xdmake/tests/function_macros-546
-rwxr-xr-xdmake/tests/function_macros-642
-rwxr-xr-xdmake/tests/function_macros-739
-rwxr-xr-xdmake/tests/function_macros-8101
-rwxr-xr-xdmake/tests/function_macros-970
-rwxr-xr-xdmake/tests/infra-044
-rwxr-xr-xdmake/tests/macros-141
-rwxr-xr-xdmake/tests/macros-1099
-rwxr-xr-xdmake/tests/macros-11147
-rwxr-xr-xdmake/tests/macros-262
-rwxr-xr-xdmake/tests/macros-371
-rwxr-xr-xdmake/tests/macros-492
-rwxr-xr-xdmake/tests/macros-568
-rwxr-xr-xdmake/tests/macros-662
-rwxr-xr-xdmake/tests/macros-776
-rwxr-xr-xdmake/tests/macros-8157
-rwxr-xr-xdmake/tests/macros-9141
-rwxr-xr-xdmake/tests/misc-135
-rwxr-xr-xdmake/tests/misc-1041
-rwxr-xr-xdmake/tests/misc-1142
-rwxr-xr-xdmake/tests/misc-1240
-rwxr-xr-xdmake/tests/misc-1351
-rwxr-xr-xdmake/tests/misc-1444
-rwxr-xr-xdmake/tests/misc-1553
-rwxr-xr-xdmake/tests/misc-1648
-rwxr-xr-xdmake/tests/misc-1742
-rwxr-xr-xdmake/tests/misc-18169
-rwxr-xr-xdmake/tests/misc-1945
-rwxr-xr-xdmake/tests/misc-240
-rwxr-xr-xdmake/tests/misc-20121
-rwxr-xr-xdmake/tests/misc-2141
-rwxr-xr-xdmake/tests/misc-344
-rwxr-xr-xdmake/tests/misc-462
-rwxr-xr-xdmake/tests/misc-549
-rwxr-xr-xdmake/tests/misc-665
-rwxr-xr-xdmake/tests/misc-747
-rwxr-xr-xdmake/tests/misc-839
-rwxr-xr-xdmake/tests/misc-953
-rwxr-xr-xdmake/tests/recipes-138
-rwxr-xr-xdmake/tests/recipes-241
-rwxr-xr-xdmake/tests/recipes-340
-rwxr-xr-xdmake/tests/recipes-438
-rwxr-xr-xdmake/tests/recipes-562
-rwxr-xr-xdmake/tests/recipes-666
-rwxr-xr-xdmake/tests/recipes-738
-rwxr-xr-xdmake/tests/recipes-8104
-rwxr-xr-xdmake/tests/recipes-9117
-rw-r--r--dmake/tests/targets-178
-rw-r--r--dmake/tests/targets-1050
-rw-r--r--dmake/tests/targets-1138
-rw-r--r--dmake/tests/targets-1247
-rwxr-xr-xdmake/tests/targets-1349
-rwxr-xr-xdmake/tests/targets-1453
-rwxr-xr-xdmake/tests/targets-1556
-rwxr-xr-xdmake/tests/targets-1649
-rwxr-xr-xdmake/tests/targets-1738
-rwxr-xr-xdmake/tests/targets-1852
-rwxr-xr-xdmake/tests/targets-1968
-rw-r--r--dmake/tests/targets-270
-rwxr-xr-xdmake/tests/targets-2065
-rwxr-xr-xdmake/tests/targets-2155
-rwxr-xr-xdmake/tests/targets-2255
-rwxr-xr-xdmake/tests/targets-2356
-rwxr-xr-xdmake/tests/targets-2461
-rwxr-xr-xdmake/tests/targets-2551
-rwxr-xr-xdmake/tests/targets-2657
-rwxr-xr-xdmake/tests/targets-2759
-rwxr-xr-xdmake/tests/targets-28175
-rwxr-xr-xdmake/tests/targets-2959
-rw-r--r--dmake/tests/targets-349
-rwxr-xr-xdmake/tests/targets-3064
-rw-r--r--dmake/tests/targets-470
-rw-r--r--dmake/tests/targets-551
-rw-r--r--dmake/tests/targets-652
-rw-r--r--dmake/tests/targets-754
-rw-r--r--dmake/tests/targets-850
-rw-r--r--dmake/tests/targets-949
-rw-r--r--dmake/tos/config.mk49
-rw-r--r--dmake/tos/make.sh57
-rw-r--r--dmake/tos/public.h166
-rw-r--r--dmake/tos/putenv.c78
-rw-r--r--dmake/tos/ruletab.c42
-rw-r--r--dmake/tos/startup.h28
-rw-r--r--dmake/tos/sysintf.h45
-rw-r--r--dmake/tos/template.mk7
-rw-r--r--dmake/tos/tempnam.c104
-rw-r--r--dmake/unix/386ix/ar.h27
-rw-r--r--dmake/unix/386ix/config.mk27
-rw-r--r--dmake/unix/386ix/make.sh60
-rw-r--r--dmake/unix/386ix/public.h167
-rw-r--r--dmake/unix/386ix/stdlib.h44
-rw-r--r--dmake/unix/386ix/template.mk7
-rw-r--r--dmake/unix/386ix/time.h35
-rwxr-xr-xdmake/unix/Makefile.am7
-rwxr-xr-xdmake/unix/Makefile.in396
-rw-r--r--dmake/unix/arlib.c610
-rw-r--r--dmake/unix/bsd43/config.mk27
-rw-r--r--dmake/unix/bsd43/dirent.h28
-rw-r--r--dmake/unix/bsd43/limits.h32
-rw-r--r--dmake/unix/bsd43/make.sh69
-rw-r--r--dmake/unix/bsd43/public.h167
-rw-r--r--dmake/unix/bsd43/putenv.c78
-rw-r--r--dmake/unix/bsd43/setvbuf.c40
-rw-r--r--dmake/unix/bsd43/stdlib.h44
-rw-r--r--dmake/unix/bsd43/string.h43
-rw-r--r--dmake/unix/bsd43/template.mk7
-rw-r--r--dmake/unix/bsd43/tempnam.c103
-rw-r--r--dmake/unix/bsd43/utime.c70
-rw-r--r--dmake/unix/bsd43/uw/config.mk17
-rw-r--r--dmake/unix/bsd43/uw/make.sh69
-rw-r--r--dmake/unix/bsd43/uw/public.h167
-rw-r--r--dmake/unix/bsd43/uw/template.mk7
-rw-r--r--dmake/unix/bsd43/vf/config.mk11
-rw-r--r--dmake/unix/bsd43/vf/ctype.h51
-rw-r--r--dmake/unix/bsd43/vf/make.sh73
-rw-r--r--dmake/unix/bsd43/vf/memcpy.c36
-rw-r--r--dmake/unix/bsd43/vf/public.h167
-rw-r--r--dmake/unix/bsd43/vf/template.mk7
-rw-r--r--dmake/unix/bsd43/vf/vfprintf.c48
-rw-r--r--dmake/unix/bsdarm32/config.mk27
-rw-r--r--dmake/unix/bsdarm32/dirent.h30
-rw-r--r--dmake/unix/bsdarm32/limits.h29
-rw-r--r--dmake/unix/bsdarm32/make.sh67
-rw-r--r--dmake/unix/bsdarm32/public.h167
-rw-r--r--dmake/unix/bsdarm32/putenv.c78
-rw-r--r--dmake/unix/bsdarm32/stdlib.h44
-rw-r--r--dmake/unix/bsdarm32/string.h42
-rw-r--r--dmake/unix/bsdarm32/template.mk7
-rw-r--r--dmake/unix/bsdarm32/tempnam.c105
-rw-r--r--dmake/unix/bsdarm32/utime.c70
-rw-r--r--dmake/unix/coherent/config.mk26
-rw-r--r--dmake/unix/coherent/stdlib.h44
-rw-r--r--dmake/unix/coherent/time.h32
-rw-r--r--dmake/unix/coherent/ver40/config.mk11
-rw-r--r--dmake/unix/coherent/ver40/getcwd.c49
-rw-r--r--dmake/unix/coherent/ver40/make.sh64
-rw-r--r--dmake/unix/coherent/ver40/public.h167
-rw-r--r--dmake/unix/coherent/ver40/template.mk7
-rw-r--r--dmake/unix/coherent/ver40/vfprintf.c190
-rw-r--r--dmake/unix/coherent/ver42/config.mk11
-rw-r--r--dmake/unix/coherent/ver42/make.sh60
-rw-r--r--dmake/unix/coherent/ver42/public.h167
-rw-r--r--dmake/unix/coherent/ver42/template.mk7
-rw-r--r--dmake/unix/config.mk39
-rw-r--r--dmake/unix/cygwin/public.h172
-rw-r--r--dmake/unix/dcache.c223
-rw-r--r--dmake/unix/dirbrk.c53
-rw-r--r--dmake/unix/linux/config.mk27
-rw-r--r--dmake/unix/linux/gnu/config.mk4
-rw-r--r--dmake/unix/linux/gnu/make.sh193
-rw-r--r--dmake/unix/linux/gnu/public.h172
-rw-r--r--dmake/unix/linux/gnu/template.mk7
-rw-r--r--dmake/unix/macosx/config.mk27
-rw-r--r--dmake/unix/macosx/gnu/config.mk4
-rw-r--r--dmake/unix/macosx/gnu/make.sh63
-rw-r--r--dmake/unix/macosx/gnu/public.h167
-rw-r--r--dmake/unix/macosx/gnu/template.mk7
-rw-r--r--dmake/unix/macosx/tempnam.c102
-rw-r--r--dmake/unix/os2/public.h172
-rw-r--r--dmake/unix/rmprq.c121
-rw-r--r--dmake/unix/ruletab.c44
-rw-r--r--dmake/unix/runargv.c1101
-rw-r--r--dmake/unix/solaris/config.mk27
-rw-r--r--dmake/unix/solaris/getcwd.c231
-rw-r--r--dmake/unix/solaris/gnu/config.mk8
-rw-r--r--dmake/unix/solaris/gnu/make.sh64
-rw-r--r--dmake/unix/solaris/gnu/public.h167
-rw-r--r--dmake/unix/solaris/gnu/template.mk7
-rw-r--r--dmake/unix/solaris/make.sh64
-rw-r--r--dmake/unix/solaris/public.h166
-rw-r--r--dmake/unix/solaris/template.mk7
-rw-r--r--dmake/unix/solaris/tempnam.c103
-rw-r--r--dmake/unix/startup.h27
-rw-r--r--dmake/unix/sysintf.h50
-rw-r--r--dmake/unix/sysvr1/config.mk28
-rw-r--r--dmake/unix/sysvr1/make.sh62
-rw-r--r--dmake/unix/sysvr1/public.h167
-rw-r--r--dmake/unix/sysvr1/putenv.c78
-rw-r--r--dmake/unix/sysvr1/stdlib.h44
-rw-r--r--dmake/unix/sysvr1/template.mk7
-rw-r--r--dmake/unix/sysvr1/time.h32
-rw-r--r--dmake/unix/sysvr1/vfprintf.c58
-rw-r--r--dmake/unix/sysvr3/config.mk27
-rw-r--r--dmake/unix/sysvr3/gnu/public.h165
-rw-r--r--dmake/unix/sysvr3/make.sh60
-rw-r--r--dmake/unix/sysvr3/public.h167
-rw-r--r--dmake/unix/sysvr3/pwd/config.mk20
-rw-r--r--dmake/unix/sysvr3/pwd/getcwd.c231
-rw-r--r--dmake/unix/sysvr3/pwd/make.sh62
-rw-r--r--dmake/unix/sysvr3/pwd/public.h167
-rw-r--r--dmake/unix/sysvr3/pwd/template.mk7
-rw-r--r--dmake/unix/sysvr3/stdlib.h55
-rw-r--r--dmake/unix/sysvr3/template.mk7
-rw-r--r--dmake/unix/sysvr3/time.h32
-rw-r--r--dmake/unix/sysvr4/config.mk27
-rw-r--r--dmake/unix/sysvr4/make.sh60
-rw-r--r--dmake/unix/sysvr4/public.h167
-rw-r--r--dmake/unix/sysvr4/template.mk7
-rw-r--r--dmake/unix/tempnam.c106
-rw-r--r--dmake/unix/xenix/config.mk27
-rw-r--r--dmake/unix/xenix/make.sh60
-rw-r--r--dmake/unix/xenix/public.h167
-rw-r--r--dmake/unix/xenix/pwd/config.mk23
-rw-r--r--dmake/unix/xenix/pwd/getcwd.c231
-rw-r--r--dmake/unix/xenix/pwd/make.sh62
-rw-r--r--dmake/unix/xenix/pwd/public.h167
-rw-r--r--dmake/unix/xenix/pwd/template.mk7
-rw-r--r--dmake/unix/xenix/stdlib.h50
-rw-r--r--dmake/unix/xenix/template.mk7
-rw-r--r--dmake/unix/xenix/time.h32
-rw-r--r--dmake/vextern.h129
-rw-r--r--dmake/win95/borland/bcc50/config.h44
-rw-r--r--dmake/win95/borland/bcc50/config.mk14
-rw-r--r--dmake/win95/borland/bcc50/lib.rsp2
-rwxr-xr-xdmake/win95/borland/bcc50/mk.bat96
-rw-r--r--dmake/win95/borland/bcc50/obj.rsp32
-rw-r--r--dmake/win95/borland/bcc50/public.h168
-rw-r--r--dmake/win95/borland/bcc50/template.mk7
-rw-r--r--dmake/win95/borland/config.mk51
-rw-r--r--dmake/win95/borland/ruletab.c44
-rw-r--r--dmake/win95/borland/sysintf.h55
-rw-r--r--dmake/win95/borland/tempnam.c114
-rw-r--r--dmake/win95/config.mk53
-rw-r--r--dmake/win95/dchdir.c49
-rw-r--r--dmake/win95/microsft/config.h122
-rw-r--r--dmake/win95/microsft/config.mk62
-rw-r--r--dmake/win95/microsft/optoff.h27
-rw-r--r--dmake/win95/microsft/ruletab.c56
-rw-r--r--dmake/win95/microsft/sysintf.h57
-rw-r--r--dmake/win95/microsft/tempnam.c110
-rw-r--r--dmake/win95/microsft/vpp40/config.mk14
-rw-r--r--dmake/win95/microsft/vpp40/lib.rsp1
-rwxr-xr-xdmake/win95/microsft/vpp40/mk.bat41
-rw-r--r--dmake/win95/microsft/vpp40/obj.rsp28
-rw-r--r--dmake/win95/microsft/vpp40/public.h167
-rw-r--r--dmake/win95/microsft/vpp40/runargv.c288
-rw-r--r--dmake/win95/microsft/vpp40/template.mk7
-rw-r--r--dmake/win95/microsft/vpp40/tempnam.c110
-rw-r--r--dmake/win95/startup.h28
-rw-r--r--dmake/win95/switchar.c43
-rw-r--r--dmake/winnt/borland/bcc50/config.h44
-rw-r--r--dmake/winnt/borland/bcc50/config.mk12
-rw-r--r--dmake/winnt/borland/bcc50/lib.rsp2
-rwxr-xr-xdmake/winnt/borland/bcc50/mk.bat95
-rwxr-xr-xdmake/winnt/borland/bcc50/mk.cmd93
-rw-r--r--dmake/winnt/borland/bcc50/obj.rsp31
-rw-r--r--dmake/winnt/borland/bcc50/public.h168
-rw-r--r--dmake/winnt/borland/bcc50/template.mk7
-rw-r--r--dmake/winnt/borland/config.mk51
-rw-r--r--dmake/winnt/borland/ruletab.c44
-rw-r--r--dmake/winnt/borland/sysintf.h55
-rw-r--r--dmake/winnt/borland/tempnam.c114
-rw-r--r--dmake/winnt/config.mk57
-rw-r--r--dmake/winnt/dchdir.c47
-rw-r--r--dmake/winnt/microsft/config.h85
-rw-r--r--dmake/winnt/microsft/config.mk61
-rw-r--r--dmake/winnt/microsft/optoff.h27
-rw-r--r--dmake/winnt/microsft/ruletab.c45
-rw-r--r--dmake/winnt/microsft/sysintf.h57
-rw-r--r--dmake/winnt/microsft/tempnam.c110
-rw-r--r--dmake/winnt/microsft/vpp40/config.mk14
-rw-r--r--dmake/winnt/microsft/vpp40/lib.rsp1
-rwxr-xr-xdmake/winnt/microsft/vpp40/mk.bat32
-rwxr-xr-xdmake/winnt/microsft/vpp40/mk.cmd31
-rw-r--r--dmake/winnt/microsft/vpp40/obj.rsp28
-rw-r--r--dmake/winnt/microsft/vpp40/public.h167
-rw-r--r--dmake/winnt/microsft/vpp40/runargv.c288
-rw-r--r--dmake/winnt/microsft/vpp40/template.mk7
-rw-r--r--dmake/winnt/microsft/vpp40/tempnam.c110
-rw-r--r--dmake/winnt/mingw/public.h167
-rw-r--r--dmake/winnt/mingw/sysintf.h62
-rw-r--r--dmake/winnt/msvc6/public.h167
-rw-r--r--dmake/winnt/msvc6/sysintf.h62
-rw-r--r--dmake/winnt/startup.h29
-rw-r--r--drawinglayer/inc/drawinglayer/animation/animationtiming.hxx148
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/fillattribute.hxx130
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/fillbitmapattribute.hxx79
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/fontattribute.hxx121
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/lineattribute.hxx99
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/linestartendattribute.hxx84
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/materialattribute3d.hxx83
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/sdrallattribute3d.hxx90
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/sdrattribute.hxx215
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/sdrattribute3d.hxx209
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/sdrfillbitmapattribute.hxx84
-rw-r--r--drawinglayer/inc/drawinglayer/attribute/strokeattribute.hxx99
-rw-r--r--drawinglayer/inc/drawinglayer/geometry/viewinformation2d.hxx177
-rw-r--r--drawinglayer/inc/drawinglayer/geometry/viewinformation3d.hxx171
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/alphaprimitive2d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/animatedprimitive2d.hxx178
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/backgroundcolorprimitive2d.hxx93
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/baseprimitive2d.hxx297
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/bitmapprimitive2d.hxx87
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/borderlineprimitive2d.hxx164
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/chartprimitive2d.hxx79
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/controlprimitive2d.hxx120
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/discretebitmapprimitive2d.hxx85
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx110
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/embedded3dprimitive2d.hxx129
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/epsprimitive2d.hxx88
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/fillbitmapprimitive2d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/fillgradientprimitive2d.hxx116
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/fillhatchprimitive2d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/graphicprimitive2d.hxx105
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/gridprimitive2d.hxx126
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/groupprimitive2d.hxx102
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/helplineprimitive2d.hxx121
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/hittestprimitive2d.hxx78
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/invertprimitive2d.hxx66
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/markerarrayprimitive2d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/maskprimitive2d.hxx86
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/mediaprimitive2d.hxx100
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/metafileprimitive2d.hxx101
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/modifiedcolorprimitive2d.hxx86
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/pagepreviewprimitive2d.hxx111
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/pointarrayprimitive2d.hxx90
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/polygonprimitive2d.hxx322
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/polypolygonprimitive2d.hxx444
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/primitivetools2d.hxx199
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/sceneprimitive2d.hxx164
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/shadowprimitive2d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/structuretagprimitive2d.hxx78
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textdecoratedprimitive2d.hxx157
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/texteffectprimitive2d.hxx113
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textenumsprimitive2d.hxx111
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/texthierarchyprimitive2d.hxx219
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textlayoutdevice.hxx159
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textlineprimitive2d.hxx91
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textprimitive2d.hxx149
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/textstrikeoutprimitive2d.hxx159
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/transformprimitive2d.hxx91
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/unifiedalphaprimitive2d.hxx80
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/wallpaperprimitive2d.hxx94
-rw-r--r--drawinglayer/inc/drawinglayer/primitive2d/wrongspellprimitive2d.hxx99
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/baseprimitive3d.hxx220
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/drawinglayer_primitivetypes3d.hxx65
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/groupprimitive3d.hxx88
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/hatchtextureprimitive3d.hxx92
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/hittestprimitive3d.hxx80
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/modifiedcolorprimitive3d.hxx76
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/polygonprimitive3d.hxx141
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/polygontubeprimitive3d.hxx111
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx90
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrcubeprimitive3d.hxx76
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrdecompositiontools3d.hxx97
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrextrudelathetools3d.hxx143
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrextrudeprimitive3d.hxx136
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrlatheprimitive3d.hxx154
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrpolypolygonprimitive3d.hxx88
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrprimitive3d.hxx95
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/sdrsphereprimitive3d.hxx87
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/shadowprimitive3d.hxx91
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/textureprimitive3d.hxx233
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/transformprimitive3d.hxx81
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/baseprocessor2d.hxx73
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/canvasprocessor.hxx127
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/contourextractor2d.hxx63
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/hittestprocessor2d.hxx107
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/linegeometryextractor2d.hxx66
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/textaspolygonextractor2d.hxx100
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/vclmetafileprocessor2d.hxx136
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/vclpixelprocessor2d.hxx72
-rw-r--r--drawinglayer/inc/drawinglayer/processor2d/vclprocessor2d.hxx133
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/baseprocessor3d.hxx104
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/cutfindprocessor3d.hxx78
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/defaultprocessor3d.hxx146
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/geometry2dextractor.hxx74
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/shadow3dextractor.hxx106
-rw-r--r--drawinglayer/inc/drawinglayer/processor3d/zbufferprocessor3d.hxx120
-rw-r--r--drawinglayer/inc/drawinglayer/texture/texture.hxx266
-rw-r--r--drawinglayer/inc/drawinglayer/texture/texture3d.hxx165
-rw-r--r--drawinglayer/inc/makefile.mk47
-rw-r--r--drawinglayer/inc/pch/precompiled_drawinglayer.cxx29
-rw-r--r--drawinglayer/inc/pch/precompiled_drawinglayer.hxx32
-rw-r--r--drawinglayer/prj/build.lst13
-rw-r--r--drawinglayer/prj/d.lst113
-rw-r--r--drawinglayer/source/animation/animationtiming.cxx370
-rw-r--r--drawinglayer/source/animation/makefile.mk44
-rw-r--r--drawinglayer/source/attribute/fillattribute.cxx94
-rw-r--r--drawinglayer/source/attribute/fillbitmapattribute.cxx62
-rw-r--r--drawinglayer/source/attribute/fontattribute.cxx55
-rw-r--r--drawinglayer/source/attribute/lineattribute.cxx43
-rw-r--r--drawinglayer/source/attribute/linestartendattribute.cxx50
-rw-r--r--drawinglayer/source/attribute/makefile.mk54
-rw-r--r--drawinglayer/source/attribute/materialattribute3d.cxx184
-rw-r--r--drawinglayer/source/attribute/sdrallattribute3d.cxx192
-rw-r--r--drawinglayer/source/attribute/sdrattribute.cxx285
-rw-r--r--drawinglayer/source/attribute/sdrattribute3d.cxx211
-rw-r--r--drawinglayer/source/attribute/sdrfillbitmapattribute.cxx229
-rw-r--r--drawinglayer/source/attribute/strokeattribute.cxx55
-rw-r--r--drawinglayer/source/geometry/makefile.mk44
-rw-r--r--drawinglayer/source/geometry/viewinformation2d.cxx545
-rw-r--r--drawinglayer/source/geometry/viewinformation3d.cxx554
-rw-r--r--drawinglayer/source/primitive2d/alphaprimitive2d.cxx70
-rw-r--r--drawinglayer/source/primitive2d/animatedprimitive2d.cxx224
-rw-r--r--drawinglayer/source/primitive2d/backgroundcolorprimitive2d.cxx116
-rw-r--r--drawinglayer/source/primitive2d/baseprimitive2d.cxx278
-rw-r--r--drawinglayer/source/primitive2d/bitmapprimitive2d.cxx81
-rw-r--r--drawinglayer/source/primitive2d/borderlineprimitive2d.cxx235
-rw-r--r--drawinglayer/source/primitive2d/chartprimitive2d.cxx82
-rw-r--r--drawinglayer/source/primitive2d/controlprimitive2d.cxx383
-rw-r--r--drawinglayer/source/primitive2d/discretebitmapprimitive2d.cxx116
-rw-r--r--drawinglayer/source/primitive2d/embedded3dprimitive2d.cxx168
-rw-r--r--drawinglayer/source/primitive2d/epsprimitive2d.cxx103
-rw-r--r--drawinglayer/source/primitive2d/fillbitmapprimitive2d.cxx134
-rw-r--r--drawinglayer/source/primitive2d/fillgradientprimitive2d.cxx286
-rw-r--r--drawinglayer/source/primitive2d/fillhatchprimitive2d.cxx154
-rw-r--r--drawinglayer/source/primitive2d/graphicprimitive2d.cxx944
-rw-r--r--drawinglayer/source/primitive2d/gridprimitive2d.cxx320
-rw-r--r--drawinglayer/source/primitive2d/groupprimitive2d.cxx79
-rw-r--r--drawinglayer/source/primitive2d/helplineprimitive2d.cxx222
-rw-r--r--drawinglayer/source/primitive2d/hittestprimitive2d.cxx68
-rw-r--r--drawinglayer/source/primitive2d/invertprimitive2d.cxx57
-rw-r--r--drawinglayer/source/primitive2d/makefile.mk88
-rw-r--r--drawinglayer/source/primitive2d/markerarrayprimitive2d.cxx157
-rw-r--r--drawinglayer/source/primitive2d/maskprimitive2d.cxx76
-rw-r--r--drawinglayer/source/primitive2d/mediaprimitive2d.cxx156
-rw-r--r--drawinglayer/source/primitive2d/metafileprimitive2d.cxx3085
-rw-r--r--drawinglayer/source/primitive2d/modifiedcolorprimitive2d.cxx71
-rw-r--r--drawinglayer/source/primitive2d/pagepreviewprimitive2d.cxx180
-rw-r--r--drawinglayer/source/primitive2d/pointarrayprimitive2d.cxx93
-rw-r--r--drawinglayer/source/primitive2d/polygonprimitive2d.cxx625
-rw-r--r--drawinglayer/source/primitive2d/polypolygonprimitive2d.cxx543
-rw-r--r--drawinglayer/source/primitive2d/primitivetools2d.cxx170
-rw-r--r--drawinglayer/source/primitive2d/sceneprimitive2d.cxx476
-rw-r--r--drawinglayer/source/primitive2d/shadowprimitive2d.cxx106
-rw-r--r--drawinglayer/source/primitive2d/structuretagprimitive2d.cxx59
-rw-r--r--drawinglayer/source/primitive2d/textdecoratedprimitive2d.cxx606
-rw-r--r--drawinglayer/source/primitive2d/texteffectprimitive2d.cxx239
-rw-r--r--drawinglayer/source/primitive2d/textenumsprimitive2d.cxx121
-rw-r--r--drawinglayer/source/primitive2d/texthierarchyprimitive2d.cxx158
-rw-r--r--drawinglayer/source/primitive2d/textlayoutdevice.cxx444
-rw-r--r--drawinglayer/source/primitive2d/textlineprimitive2d.cxx309
-rw-r--r--drawinglayer/source/primitive2d/textprimitive2d.cxx339
-rw-r--r--drawinglayer/source/primitive2d/textstrikeoutprimitive2d.cxx286
-rw-r--r--drawinglayer/source/primitive2d/transformprimitive2d.cxx79
-rw-r--r--drawinglayer/source/primitive2d/unifiedalphaprimitive2d.cxx121
-rw-r--r--drawinglayer/source/primitive2d/wallpaperprimitive2d.cxx268
-rw-r--r--drawinglayer/source/primitive2d/wrongspellprimitive2d.cxx122
-rw-r--r--drawinglayer/source/primitive3d/baseprimitive3d.cxx278
-rw-r--r--drawinglayer/source/primitive3d/groupprimitive3d.cxx79
-rw-r--r--drawinglayer/source/primitive3d/hatchtextureprimitive3d.cxx319
-rw-r--r--drawinglayer/source/primitive3d/hittestprimitive3d.cxx68
-rw-r--r--drawinglayer/source/primitive3d/makefile.mk62
-rw-r--r--drawinglayer/source/primitive3d/modifiedcolorprimitive3d.cxx71
-rw-r--r--drawinglayer/source/primitive3d/polygonprimitive3d.cxx178
-rw-r--r--drawinglayer/source/primitive3d/polygontubeprimitive3d.cxx579
-rw-r--r--drawinglayer/source/primitive3d/polypolygonprimitive3d.cxx83
-rw-r--r--drawinglayer/source/primitive3d/sdrcubeprimitive3d.cxx227
-rw-r--r--drawinglayer/source/primitive3d/sdrdecompositiontools3d.cxx291
-rw-r--r--drawinglayer/source/primitive3d/sdrextrudelathetools3d.cxx991
-rw-r--r--drawinglayer/source/primitive3d/sdrextrudeprimitive3d.cxx529
-rw-r--r--drawinglayer/source/primitive3d/sdrlatheprimitive3d.cxx388
-rw-r--r--drawinglayer/source/primitive3d/sdrpolypolygonprimitive3d.cxx198
-rw-r--r--drawinglayer/source/primitive3d/sdrprimitive3d.cxx125
-rw-r--r--drawinglayer/source/primitive3d/sdrsphereprimitive3d.cxx228
-rw-r--r--drawinglayer/source/primitive3d/shadowprimitive3d.cxx80
-rw-r--r--drawinglayer/source/primitive3d/textureprimitive3d.cxx219
-rw-r--r--drawinglayer/source/primitive3d/transformprimitive3d.cxx79
-rw-r--r--drawinglayer/source/processor2d/baseprocessor2d.cxx91
-rw-r--r--drawinglayer/source/processor2d/canvasprocessor.cxx2211
-rw-r--r--drawinglayer/source/processor2d/contourextractor2d.cxx203
-rw-r--r--drawinglayer/source/processor2d/helperchartrenderer.cxx155
-rw-r--r--drawinglayer/source/processor2d/helperchartrenderer.hxx60
-rw-r--r--drawinglayer/source/processor2d/helperwrongspellrenderer.cxx96
-rw-r--r--drawinglayer/source/processor2d/helperwrongspellrenderer.hxx65
-rw-r--r--drawinglayer/source/processor2d/hittestprocessor2d.cxx556
-rw-r--r--drawinglayer/source/processor2d/linegeometryextractor2d.cxx144
-rw-r--r--drawinglayer/source/processor2d/makefile.mk58
-rw-r--r--drawinglayer/source/processor2d/textaspolygonextractor2d.cxx247
-rw-r--r--drawinglayer/source/processor2d/vclhelperbitmaprender.cxx272
-rw-r--r--drawinglayer/source/processor2d/vclhelperbitmaprender.hxx66
-rw-r--r--drawinglayer/source/processor2d/vclhelperbitmaptransform.cxx431
-rw-r--r--drawinglayer/source/processor2d/vclhelperbitmaptransform.hxx60
-rw-r--r--drawinglayer/source/processor2d/vclhelperbufferdevice.cxx182
-rw-r--r--drawinglayer/source/processor2d/vclhelperbufferdevice.hxx70
-rw-r--r--drawinglayer/source/processor2d/vclhelpergradient.cxx289
-rw-r--r--drawinglayer/source/processor2d/vclhelpergradient.hxx61
-rw-r--r--drawinglayer/source/processor2d/vclmetafileprocessor2d.cxx1818
-rw-r--r--drawinglayer/source/processor2d/vclpixelprocessor2d.cxx574
-rw-r--r--drawinglayer/source/processor2d/vclprocessor2d.cxx1421
-rw-r--r--drawinglayer/source/processor3d/baseprocessor3d.cxx114
-rw-r--r--drawinglayer/source/processor3d/cutfindprocessor3d.cxx191
-rw-r--r--drawinglayer/source/processor3d/defaultprocessor3d.cxx570
-rw-r--r--drawinglayer/source/processor3d/geometry2dextractor.cxx170
-rw-r--r--drawinglayer/source/processor3d/makefile.mk50
-rw-r--r--drawinglayer/source/processor3d/shadow3dextractor.cxx298
-rw-r--r--drawinglayer/source/processor3d/zbufferprocessor3d.cxx739
-rw-r--r--drawinglayer/source/texture/makefile.mk45
-rw-r--r--drawinglayer/source/texture/texture.cxx720
-rw-r--r--drawinglayer/source/texture/texture3d.cxx263
-rw-r--r--drawinglayer/util/drawinglayer.flt4
-rw-r--r--drawinglayer/util/makefile.mk85
-rw-r--r--dtrans/inc/makefile.mk47
-rw-r--r--dtrans/inc/pch/precompiled_dtrans.cxx29
-rw-r--r--dtrans/inc/pch/precompiled_dtrans.hxx32
-rw-r--r--dtrans/prj/build.lst15
-rw-r--r--dtrans/prj/d.lst9
-rw-r--r--dtrans/source/cnttype/exports.dxp3
-rw-r--r--dtrans/source/cnttype/makefile.mk53
-rw-r--r--dtrans/source/cnttype/mcnttfactory.cxx123
-rw-r--r--dtrans/source/cnttype/mcnttfactory.hxx85
-rw-r--r--dtrans/source/cnttype/mcnttype.cxx427
-rw-r--r--dtrans/source/cnttype/mcnttype.hxx97
-rw-r--r--dtrans/source/cnttype/mcnttype.xml35
-rw-r--r--dtrans/source/cnttype/mctfentry.cxx160
-rw-r--r--dtrans/source/cnttype/wbench/makefile.mk53
-rw-r--r--dtrans/source/cnttype/wbench/testcnttype.cxx269
-rw-r--r--dtrans/source/generic/clipboardmanager.cxx266
-rw-r--r--dtrans/source/generic/clipboardmanager.hxx127
-rw-r--r--dtrans/source/generic/dtrans.cxx131
-rw-r--r--dtrans/source/generic/dtrans.xml44
-rw-r--r--dtrans/source/generic/exports.dxp3
-rw-r--r--dtrans/source/generic/exports.map9
-rw-r--r--dtrans/source/generic/generic_clipboard.cxx205
-rw-r--r--dtrans/source/generic/generic_clipboard.hxx135
-rw-r--r--dtrans/source/generic/makefile.mk67
-rw-r--r--dtrans/source/inc/DtObjFactory.hxx54
-rw-r--r--dtrans/source/inc/MtaOleClipb.hxx134
-rw-r--r--dtrans/source/os2/clipb/OS2Bitmap.cxx248
-rw-r--r--dtrans/source/os2/clipb/Os2Clipboard.cxx447
-rw-r--r--dtrans/source/os2/clipb/Os2Clipboard.hxx136
-rw-r--r--dtrans/source/os2/clipb/Os2Service.cxx106
-rw-r--r--dtrans/source/os2/clipb/Os2Transferable.cxx176
-rw-r--r--dtrans/source/os2/clipb/Os2Transferable.hxx99
-rw-r--r--dtrans/source/os2/clipb/exports.dxp4
-rw-r--r--dtrans/source/os2/clipb/makefile.mk59
-rw-r--r--dtrans/source/os2/clipb/sysdtrans.xml43
-rw-r--r--dtrans/source/test/makefile.mk53
-rw-r--r--dtrans/source/test/test_dtrans.cxx512
-rw-r--r--dtrans/source/win32/clipb/APNDataObject.hxx87
-rw-r--r--dtrans/source/win32/clipb/WinClipbImpl.cxx273
-rw-r--r--dtrans/source/win32/clipb/WinClipbImpl.hxx125
-rw-r--r--dtrans/source/win32/clipb/WinClipboard.cxx322
-rw-r--r--dtrans/source/win32/clipb/WinClipboard.hxx157
-rw-r--r--dtrans/source/win32/clipb/exports.dxp4
-rw-r--r--dtrans/source/win32/clipb/makefile.mk59
-rw-r--r--dtrans/source/win32/clipb/sysdtrans.xml43
-rw-r--r--dtrans/source/win32/clipb/wcbentry.cxx159
-rw-r--r--dtrans/source/win32/dnd/dnd.xml46
-rw-r--r--dtrans/source/win32/dnd/dndentry.cxx153
-rw-r--r--dtrans/source/win32/dnd/exports.dxp3
-rw-r--r--dtrans/source/win32/dnd/globals.cxx139
-rw-r--r--dtrans/source/win32/dnd/globals.hxx94
-rw-r--r--dtrans/source/win32/dnd/idroptarget.cxx114
-rw-r--r--dtrans/source/win32/dnd/idroptarget.hxx74
-rw-r--r--dtrans/source/win32/dnd/makefile.mk66
-rw-r--r--dtrans/source/win32/dnd/source.cxx431
-rw-r--r--dtrans/source/win32/dnd/source.hxx151
-rw-r--r--dtrans/source/win32/dnd/sourcecontext.cxx156
-rw-r--r--dtrans/source/win32/dnd/sourcecontext.hxx89
-rw-r--r--dtrans/source/win32/dnd/target.cxx661
-rw-r--r--dtrans/source/win32/dnd/target.hxx213
-rw-r--r--dtrans/source/win32/dnd/targetdragcontext.cxx59
-rw-r--r--dtrans/source/win32/dnd/targetdragcontext.hxx62
-rw-r--r--dtrans/source/win32/dnd/targetdropcontext.cxx69
-rw-r--r--dtrans/source/win32/dnd/targetdropcontext.hxx72
-rw-r--r--dtrans/source/win32/dtobj/APNDataObject.cxx378
-rw-r--r--dtrans/source/win32/dtobj/APNDataObject.hxx89
-rw-r--r--dtrans/source/win32/dtobj/DOTransferable.cxx605
-rw-r--r--dtrans/source/win32/dtobj/DOTransferable.hxx133
-rw-r--r--dtrans/source/win32/dtobj/DTransHelper.cxx239
-rw-r--r--dtrans/source/win32/dtobj/DTransHelper.hxx214
-rw-r--r--dtrans/source/win32/dtobj/DataFmtTransl.cxx336
-rw-r--r--dtrans/source/win32/dtobj/DataFmtTransl.hxx83
-rw-r--r--dtrans/source/win32/dtobj/DtObjFactory.cxx74
-rw-r--r--dtrans/source/win32/dtobj/Fetc.cxx259
-rw-r--r--dtrans/source/win32/dtobj/Fetc.hxx93
-rw-r--r--dtrans/source/win32/dtobj/FetcList.cxx480
-rw-r--r--dtrans/source/win32/dtobj/FetcList.hxx156
-rw-r--r--dtrans/source/win32/dtobj/FmtFilter.cxx536
-rw-r--r--dtrans/source/win32/dtobj/FmtFilter.hxx90
-rw-r--r--dtrans/source/win32/dtobj/MimeAttrib.hxx50
-rw-r--r--dtrans/source/win32/dtobj/TxtCnvtHlp.cxx145
-rw-r--r--dtrans/source/win32/dtobj/TxtCnvtHlp.hxx63
-rw-r--r--dtrans/source/win32/dtobj/XNotifyingDataObject.cxx163
-rw-r--r--dtrans/source/win32/dtobj/XNotifyingDataObject.hxx105
-rw-r--r--dtrans/source/win32/dtobj/XTDataObject.cxx848
-rw-r--r--dtrans/source/win32/dtobj/XTDataObject.hxx177
-rw-r--r--dtrans/source/win32/dtobj/makefile.mk76
-rw-r--r--dtrans/source/win32/ftransl/exports.dxp3
-rw-r--r--dtrans/source/win32/ftransl/ftransl.cxx648
-rw-r--r--dtrans/source/win32/ftransl/ftransl.hxx132
-rw-r--r--dtrans/source/win32/ftransl/ftransl.xml33
-rw-r--r--dtrans/source/win32/ftransl/ftranslentry.cxx163
-rw-r--r--dtrans/source/win32/ftransl/makefile.mk51
-rw-r--r--dtrans/source/win32/misc/ImplHelper.cxx489
-rw-r--r--dtrans/source/win32/misc/ImplHelper.hxx106
-rw-r--r--dtrans/source/win32/misc/WinClip.hxx45
-rw-r--r--dtrans/source/win32/misc/makefile.mk60
-rw-r--r--dtrans/source/win32/mtaole/MtaOleClipb.cxx893
-rw-r--r--dtrans/source/win32/mtaole/makefile.mk54
-rw-r--r--dtrans/source/win32/workbench/XTDo.cxx431
-rw-r--r--dtrans/source/win32/workbench/XTDo.hxx134
-rw-r--r--dtrans/source/win32/workbench/makefile.mk96
-rw-r--r--dtrans/source/win32/workbench/test_wincb.cxx348
-rw-r--r--dtrans/source/win32/workbench/testmarshal.cxx243
-rw-r--r--dtrans/test/win32/dnd/atlwindow.cxx262
-rw-r--r--dtrans/test/win32/dnd/atlwindow.hxx100
-rw-r--r--dtrans/test/win32/dnd/dndTest.cxx210
-rw-r--r--dtrans/test/win32/dnd/makefile.mk83
-rw-r--r--dtrans/test/win32/dnd/sourcelistener.cxx73
-rw-r--r--dtrans/test/win32/dnd/sourcelistener.hxx65
-rw-r--r--dtrans/test/win32/dnd/targetlistener.cxx103
-rw-r--r--dtrans/test/win32/dnd/targetlistener.hxx74
-rw-r--r--dtrans/test/win32/dnd/transferable.cxx126
-rw-r--r--dtrans/test/win32/dnd/transferable.hxx124
-rw-r--r--dtrans/util/exports.dxp3
-rw-r--r--dtrans/util/exports.map10
-rw-r--r--dtrans/util/makefile.mk182
-rw-r--r--editeng/inc/editeng.hrc43
-rw-r--r--editeng/inc/editeng/AccessibleComponentBase.hxx147
-rw-r--r--editeng/inc/editeng/AccessibleContextBase.hxx400
-rw-r--r--editeng/inc/editeng/AccessibleEditableTextPara.hxx412
-rw-r--r--editeng/inc/editeng/AccessibleImageBullet.hxx237
-rw-r--r--editeng/inc/editeng/AccessibleParaManager.hxx347
-rw-r--r--editeng/inc/editeng/AccessibleSelectionBase.hxx73
-rw-r--r--editeng/inc/editeng/AccessibleStaticTextBase.hxx283
-rw-r--r--editeng/inc/editeng/AccessibleStringWrap.hxx63
-rw-r--r--editeng/inc/editeng/SpellPortions.hxx95
-rw-r--r--editeng/inc/editeng/UnoForbiddenCharsTable.hxx65
-rw-r--r--editeng/inc/editeng/acorrcfg.hxx133
-rw-r--r--editeng/inc/editeng/adjitem.hxx143
-rw-r--r--editeng/inc/editeng/akrnitem.hxx74
-rw-r--r--editeng/inc/editeng/blnkitem.hxx72
-rw-r--r--editeng/inc/editeng/bolnitem.hxx83
-rw-r--r--editeng/inc/editeng/borderline.hxx134
-rw-r--r--editeng/inc/editeng/boxitem.hxx226
-rw-r--r--editeng/inc/editeng/brkitem.hxx103
-rw-r--r--editeng/inc/editeng/brshitem.hxx140
-rw-r--r--editeng/inc/editeng/bulitem.hxx160
-rw-r--r--editeng/inc/editeng/charhiddenitem.hxx61
-rw-r--r--editeng/inc/editeng/charreliefitem.hxx80
-rw-r--r--editeng/inc/editeng/charrotateitem.hxx92
-rw-r--r--editeng/inc/editeng/charscaleitem.hxx78
-rw-r--r--editeng/inc/editeng/cmapitem.hxx89
-rw-r--r--editeng/inc/editeng/cntritem.hxx68
-rw-r--r--editeng/inc/editeng/colritem.hxx95
-rw-r--r--editeng/inc/editeng/crsditem.hxx93
-rw-r--r--editeng/inc/editeng/cscoitem.hxx75
-rw-r--r--editeng/inc/editeng/editdata.hxx388
-rw-r--r--editeng/inc/editeng/editeng.hxx486
-rw-r--r--editeng/inc/editeng/editengdllapi.h43
-rw-r--r--editeng/inc/editeng/editerr.hxx39
-rw-r--r--editeng/inc/editeng/editids.hrc245
-rw-r--r--editeng/inc/editeng/editobj.hxx126
-rw-r--r--editeng/inc/editeng/editrids.hrc432
-rw-r--r--editeng/inc/editeng/editstat.hxx150
-rw-r--r--editeng/inc/editeng/editund2.hxx76
-rw-r--r--editeng/inc/editeng/editview.hxx248
-rw-r--r--editeng/inc/editeng/edtdlg.hxx114
-rw-r--r--editeng/inc/editeng/eedata.hxx74
-rw-r--r--editeng/inc/editeng/eeitem.hxx99
-rw-r--r--editeng/inc/editeng/eeitemid.hxx136
-rw-r--r--editeng/inc/editeng/eerdll.hxx61
-rw-r--r--editeng/inc/editeng/emphitem.hxx88
-rw-r--r--editeng/inc/editeng/escpitem.hxx114
-rw-r--r--editeng/inc/editeng/fhgtitem.hxx116
-rw-r--r--editeng/inc/editeng/flditem.hxx427
-rw-r--r--editeng/inc/editeng/flstitem.hxx79
-rw-r--r--editeng/inc/editeng/fontitem.hxx118
-rw-r--r--editeng/inc/editeng/forbiddencharacterstable.hxx70
-rw-r--r--editeng/inc/editeng/forbiddenruleitem.hxx69
-rw-r--r--editeng/inc/editeng/frmdir.hxx60
-rw-r--r--editeng/inc/editeng/frmdiritem.hxx80
-rw-r--r--editeng/inc/editeng/fwdtitem.hxx108
-rw-r--r--editeng/inc/editeng/hangulhanja.hxx302
-rw-r--r--editeng/inc/editeng/hngpnctitem.hxx69
-rw-r--r--editeng/inc/editeng/hyznitem.hxx106
-rw-r--r--editeng/inc/editeng/itemtype.hxx75
-rw-r--r--editeng/inc/editeng/keepitem.hxx78
-rw-r--r--editeng/inc/editeng/kernitem.hxx80
-rw-r--r--editeng/inc/editeng/langitem.hxx84
-rw-r--r--editeng/inc/editeng/lcolitem.hxx65
-rw-r--r--editeng/inc/editeng/lrspitem.hxx179
-rw-r--r--editeng/inc/editeng/lspcitem.hxx123
-rw-r--r--editeng/inc/editeng/measfld.hxx66
-rw-r--r--editeng/inc/editeng/memberids.hrc196
-rw-r--r--editeng/inc/editeng/mutxhelp.hxx44
-rw-r--r--editeng/inc/editeng/nhypitem.hxx68
-rw-r--r--editeng/inc/editeng/nlbkitem.hxx73
-rw-r--r--editeng/inc/editeng/numdef.hxx30
-rw-r--r--editeng/inc/editeng/numitem.hxx396
-rw-r--r--editeng/inc/editeng/opaqitem.hxx81
-rw-r--r--editeng/inc/editeng/optitems.hxx111
-rw-r--r--editeng/inc/editeng/orphitem.hxx74
-rw-r--r--editeng/inc/editeng/outliner.hxx1047
-rw-r--r--editeng/inc/editeng/outlobj.hxx96
-rw-r--r--editeng/inc/editeng/paperinf.hxx73
-rw-r--r--editeng/inc/editeng/paragraphdata.hxx72
-rw-r--r--editeng/inc/editeng/paravertalignitem.hxx80
-rw-r--r--editeng/inc/editeng/pbinitem.hxx77
-rw-r--r--editeng/inc/editeng/pgrditem.hxx64
-rw-r--r--editeng/inc/editeng/pmdlitem.hxx86
-rw-r--r--editeng/inc/editeng/postitem.hxx89
-rw-r--r--editeng/inc/editeng/prntitem.hxx79
-rw-r--r--editeng/inc/editeng/protitem.hxx105
-rw-r--r--editeng/inc/editeng/prszitem.hxx68
-rw-r--r--editeng/inc/editeng/scriptspaceitem.hxx70
-rw-r--r--editeng/inc/editeng/scripttypeitem.hxx91
-rw-r--r--editeng/inc/editeng/shaditem.hxx111
-rw-r--r--editeng/inc/editeng/shdditem.hxx74
-rw-r--r--editeng/inc/editeng/sizeitem.hxx83
-rw-r--r--editeng/inc/editeng/spltitem.hxx81
-rw-r--r--editeng/inc/editeng/splwrap.hxx159
-rw-r--r--editeng/inc/editeng/svxacorr.hxx395
-rw-r--r--editeng/inc/editeng/svxenum.hxx218
-rw-r--r--editeng/inc/editeng/svxfont.hxx126
-rw-r--r--editeng/inc/editeng/svxrtf.hxx475
-rw-r--r--editeng/inc/editeng/swafopt.hxx105
-rw-r--r--editeng/inc/editeng/tstpitem.hxx185
-rw-r--r--editeng/inc/editeng/twolinesitem.hxx90
-rw-r--r--editeng/inc/editeng/txtrange.hxx118
-rw-r--r--editeng/inc/editeng/udlnitem.hxx133
-rw-r--r--editeng/inc/editeng/ulspitem.hxx113
-rw-r--r--editeng/inc/editeng/unoedhlp.hxx189
-rw-r--r--editeng/inc/editeng/unoedprx.hxx174
-rw-r--r--editeng/inc/editeng/unoedsrc.hxx551
-rw-r--r--editeng/inc/editeng/unofdesc.hxx54
-rw-r--r--editeng/inc/editeng/unofield.hxx137
-rw-r--r--editeng/inc/editeng/unofored.hxx99
-rw-r--r--editeng/inc/editeng/unoforou.hxx127
-rw-r--r--editeng/inc/editeng/unoipset.hxx83
-rw-r--r--editeng/inc/editeng/unolingu.hxx236
-rw-r--r--editeng/inc/editeng/unonrule.hxx95
-rw-r--r--editeng/inc/editeng/unopracc.hxx73
-rw-r--r--editeng/inc/editeng/unoprnms.hxx376
-rw-r--r--editeng/inc/editeng/unotext.hxx675
-rw-r--r--editeng/inc/editeng/unoviwed.hxx62
-rw-r--r--editeng/inc/editeng/unoviwou.hxx68
-rw-r--r--editeng/inc/editeng/wghtitem.hxx89
-rw-r--r--editeng/inc/editeng/widwitem.hxx74
-rw-r--r--editeng/inc/editeng/writingmodeitem.hxx68
-rw-r--r--editeng/inc/editeng/wrlmitem.hxx75
-rw-r--r--editeng/inc/editeng/xmlcnitm.hxx91
-rw-r--r--editeng/inc/editxml.hxx43
-rw-r--r--editeng/inc/helpid.hrc81
-rw-r--r--editeng/inc/makefile.mk52
-rw-r--r--editeng/inc/pch/precompiled_editeng.cxx32
-rw-r--r--editeng/inc/pch/precompiled_editeng.hxx897
-rw-r--r--editeng/prj/build.lst13
-rw-r--r--editeng/prj/d.lst14
-rw-r--r--editeng/source/accessibility/AccessibleComponentBase.cxx237
-rw-r--r--editeng/source/accessibility/AccessibleContextBase.cxx715
-rw-r--r--editeng/source/accessibility/AccessibleEditableTextPara.cxx2201
-rw-r--r--editeng/source/accessibility/AccessibleImageBullet.cxx651
-rw-r--r--editeng/source/accessibility/AccessibleParaManager.cxx420
-rw-r--r--editeng/source/accessibility/AccessibleSelectionBase.cxx108
-rw-r--r--editeng/source/accessibility/AccessibleStaticTextBase.cxx1047
-rw-r--r--editeng/source/accessibility/AccessibleStringWrap.cxx100
-rw-r--r--editeng/source/accessibility/accessibility.src43
-rwxr-xr-xediteng/source/accessibility/makefile.mk58
-rw-r--r--editeng/source/editeng/editattr.cxx454
-rw-r--r--editeng/source/editeng/editattr.hxx426
-rw-r--r--editeng/source/editeng/editdbg.cxx586
-rw-r--r--editeng/source/editeng/editdbg.hxx57
-rw-r--r--editeng/source/editeng/editdoc.cxx2314
-rw-r--r--editeng/source/editeng/editdoc.hxx802
-rw-r--r--editeng/source/editeng/editdoc2.cxx544
-rw-r--r--editeng/source/editeng/editeng.cxx2939
-rw-r--r--editeng/source/editeng/editeng.src124
-rw-r--r--editeng/source/editeng/editobj.cxx1725
-rw-r--r--editeng/source/editeng/editobj2.hxx309
-rw-r--r--editeng/source/editeng/editsel.cxx121
-rw-r--r--editeng/source/editeng/editsel.hxx75
-rw-r--r--editeng/source/editeng/editstt2.hxx130
-rw-r--r--editeng/source/editeng/editundo.cxx750
-rw-r--r--editeng/source/editeng/editundo.hxx315
-rw-r--r--editeng/source/editeng/editview.cxx1595
-rw-r--r--editeng/source/editeng/edtspell.cxx746
-rw-r--r--editeng/source/editeng/edtspell.hxx185
-rw-r--r--editeng/source/editeng/eehtml.cxx850
-rw-r--r--editeng/source/editeng/eehtml.hxx98
-rw-r--r--editeng/source/editeng/eeng_pch.cxx30
-rw-r--r--editeng/source/editeng/eeng_pch.hxx34
-rw-r--r--editeng/source/editeng/eeobj.cxx112
-rw-r--r--editeng/source/editeng/eeobj.hxx72
-rw-r--r--editeng/source/editeng/eerdll.cxx237
-rw-r--r--editeng/source/editeng/eerdll2.hxx61
-rw-r--r--editeng/source/editeng/eertfpar.cxx632
-rw-r--r--editeng/source/editeng/eertfpar.hxx128
-rw-r--r--editeng/source/editeng/impedit.cxx2002
-rw-r--r--editeng/source/editeng/impedit.hxx1208
-rw-r--r--editeng/source/editeng/impedit2.cxx4632
-rw-r--r--editeng/source/editeng/impedit3.cxx4677
-rw-r--r--editeng/source/editeng/impedit4.cxx2955
-rw-r--r--editeng/source/editeng/impedit5.cxx911
-rw-r--r--editeng/source/editeng/makefile.mk80
-rw-r--r--editeng/source/editeng/textconv.cxx629
-rw-r--r--editeng/source/editeng/textconv.hxx122
-rw-r--r--editeng/source/items/bulitem.cxx534
-rw-r--r--editeng/source/items/charhiddenitem.cxx82
-rw-r--r--editeng/source/items/flditem.cxx1098
-rw-r--r--editeng/source/items/frmitems.cxx4467
-rw-r--r--editeng/source/items/itemtype.cxx239
-rw-r--r--editeng/source/items/makefile.mk79
-rw-r--r--editeng/source/items/numitem.cxx1273
-rw-r--r--editeng/source/items/optitems.cxx203
-rw-r--r--editeng/source/items/page.src255
-rw-r--r--editeng/source/items/paperinf.cxx185
-rw-r--r--editeng/source/items/paraitem.cxx1757
-rw-r--r--editeng/source/items/svdfield.cxx65
-rw-r--r--editeng/source/items/svxfont.cxx857
-rw-r--r--editeng/source/items/svxitems.src1027
-rw-r--r--editeng/source/items/textitem.cxx3843
-rw-r--r--editeng/source/items/writingmodeitem.cxx153
-rw-r--r--editeng/source/items/xmlcnitm.cxx248
-rw-r--r--editeng/source/misc/SvXMLAutoCorrectExport.cxx117
-rw-r--r--editeng/source/misc/SvXMLAutoCorrectExport.hxx75
-rw-r--r--editeng/source/misc/SvXMLAutoCorrectImport.cxx266
-rw-r--r--editeng/source/misc/SvXMLAutoCorrectImport.hxx148
-rw-r--r--editeng/source/misc/acorrcfg.cxx675
-rwxr-xr-xediteng/source/misc/edtdlg.cxx43
-rw-r--r--editeng/source/misc/forbiddencharacterstable.cxx92
-rw-r--r--editeng/source/misc/hangulhanja.cxx1171
-rw-r--r--editeng/source/misc/lingu.src104
-rw-r--r--editeng/source/misc/makefile.mk71
-rw-r--r--editeng/source/misc/splwrap.cxx632
-rw-r--r--editeng/source/misc/svxacorr.cxx2753
-rw-r--r--editeng/source/misc/swafopt.cxx158
-rw-r--r--editeng/source/misc/txtrange.cxx719
-rw-r--r--editeng/source/misc/unolingu.cxx1374
-rw-r--r--editeng/source/outliner/makefile.mk60
-rw-r--r--editeng/source/outliner/outl_pch.cxx31
-rw-r--r--editeng/source/outliner/outl_pch.hxx33
-rw-r--r--editeng/source/outliner/outleeng.cxx244
-rw-r--r--editeng/source/outliner/outleeng.hxx93
-rw-r--r--editeng/source/outliner/outlin2.cxx813
-rw-r--r--editeng/source/outliner/outliner.cxx2181
-rw-r--r--editeng/source/outliner/outliner.src84
-rw-r--r--editeng/source/outliner/outlobj.cxx271
-rw-r--r--editeng/source/outliner/outlundo.cxx234
-rw-r--r--editeng/source/outliner/outlundo.hxx140
-rw-r--r--editeng/source/outliner/outlvw.cxx1672
-rw-r--r--editeng/source/outliner/paralist.cxx287
-rw-r--r--editeng/source/outliner/paralist.hxx71
-rw-r--r--editeng/source/rtf/makefile.mk51
-rw-r--r--editeng/source/rtf/rtfgrf.cxx558
-rw-r--r--editeng/source/rtf/rtfitem.cxx2101
-rw-r--r--editeng/source/rtf/segincr.asm39
-rw-r--r--editeng/source/rtf/svxrtf.cxx1514
-rw-r--r--editeng/source/uno/UnoForbiddenCharsTable.cxx145
-rw-r--r--editeng/source/uno/makefile.mk61
-rw-r--r--editeng/source/uno/unoedhlp.cxx197
-rw-r--r--editeng/source/uno/unoedprx.cxx1289
-rw-r--r--editeng/source/uno/unoedsrc.cxx90
-rw-r--r--editeng/source/uno/unofdesc.cxx266
-rw-r--r--editeng/source/uno/unofield.cxx1180
-rw-r--r--editeng/source/uno/unofored.cxx552
-rw-r--r--editeng/source/uno/unoforou.cxx610
-rw-r--r--editeng/source/uno/unoipset.cxx391
-rw-r--r--editeng/source/uno/unonrule.cxx615
-rw-r--r--editeng/source/uno/unopracc.cxx171
-rw-r--r--editeng/source/uno/unotext.cxx2717
-rw-r--r--editeng/source/uno/unotext2.cxx711
-rw-r--r--editeng/source/uno/unoviwed.cxx137
-rw-r--r--editeng/source/uno/unoviwou.cxx173
-rw-r--r--editeng/source/xml/editsource.hxx52
-rw-r--r--editeng/source/xml/makefile.mk50
-rw-r--r--editeng/source/xml/xmltxtexp.cxx500
-rw-r--r--editeng/source/xml/xmltxtimp.cxx260
-rw-r--r--editeng/util/editeng.dxp3
-rw-r--r--editeng/util/hidother.src52
-rw-r--r--editeng/util/makefile.mk102
-rw-r--r--editeng/util/makefile.pmk47
-rw-r--r--embeddedobj/inc/makefile.mk47
-rw-r--r--embeddedobj/inc/pch/precompiled_embeddedobj.cxx29
-rw-r--r--embeddedobj/inc/pch/precompiled_embeddedobj.hxx32
-rw-r--r--embeddedobj/prj/build.lst7
-rw-r--r--embeddedobj/prj/d.lst6
-rw-r--r--embeddedobj/prj/l10n1
-rw-r--r--embeddedobj/qa/embedding/EmbeddingTest.java7
-rw-r--r--embeddedobj/qa/embedding/EmbeddingUnitTest.java91
-rw-r--r--embeddedobj/qa/embedding/Test01.java135
-rw-r--r--embeddedobj/qa/embedding/TestHelper.java36
-rw-r--r--embeddedobj/qa/embedding/makefile.mk84
-rw-r--r--embeddedobj/source/commonembedding/embedobj.cxx701
-rw-r--r--embeddedobj/source/commonembedding/inplaceobj.cxx89
-rw-r--r--embeddedobj/source/commonembedding/makefile.mk56
-rw-r--r--embeddedobj/source/commonembedding/miscobj.cxx697
-rw-r--r--embeddedobj/source/commonembedding/persistence.cxx1893
-rw-r--r--embeddedobj/source/commonembedding/register.cxx133
-rw-r--r--embeddedobj/source/commonembedding/specialobject.cxx245
-rw-r--r--embeddedobj/source/commonembedding/visobj.cxx236
-rw-r--r--embeddedobj/source/commonembedding/xfactory.cxx579
-rw-r--r--embeddedobj/source/commonembedding/xfactory.hxx125
-rw-r--r--embeddedobj/source/general/docholder.cxx1360
-rw-r--r--embeddedobj/source/general/dummyobject.cxx722
-rw-r--r--embeddedobj/source/general/intercept.cxx426
-rw-r--r--embeddedobj/source/general/makefile.mk60
-rw-r--r--embeddedobj/source/general/xcreator.cxx491
-rw-r--r--embeddedobj/source/inc/closepreventer.hxx38
-rw-r--r--embeddedobj/source/inc/commonembobj.hxx502
-rw-r--r--embeddedobj/source/inc/docholder.hxx213
-rw-r--r--embeddedobj/source/inc/dummyobject.hxx297
-rw-r--r--embeddedobj/source/inc/intercept.hxx167
-rw-r--r--embeddedobj/source/inc/oleembobj.hxx544
-rw-r--r--embeddedobj/source/inc/specialobject.hxx90
-rw-r--r--embeddedobj/source/inc/targetstatecontrol.hxx48
-rw-r--r--embeddedobj/source/inc/xcreator.hxx91
-rw-r--r--embeddedobj/source/msole/advisesink.cxx134
-rw-r--r--embeddedobj/source/msole/advisesink.hxx56
-rw-r--r--embeddedobj/source/msole/closepreventer.cxx52
-rw-r--r--embeddedobj/source/msole/exports.dxp3
-rw-r--r--embeddedobj/source/msole/graphconvert.cxx133
-rw-r--r--embeddedobj/source/msole/makefile.mk132
-rw-r--r--embeddedobj/source/msole/mtnotification.hxx55
-rw-r--r--embeddedobj/source/msole/olecomponent.cxx1801
-rw-r--r--embeddedobj/source/msole/olecomponent.hxx194
-rw-r--r--embeddedobj/source/msole/oleembed.cxx1028
-rw-r--r--embeddedobj/source/msole/olemisc.cxx701
-rw-r--r--embeddedobj/source/msole/olepersist.cxx2201
-rw-r--r--embeddedobj/source/msole/oleregister.cxx123
-rw-r--r--embeddedobj/source/msole/olevisual.cxx444
-rw-r--r--embeddedobj/source/msole/olewrapclient.cxx158
-rw-r--r--embeddedobj/source/msole/olewrapclient.hxx56
-rw-r--r--embeddedobj/source/msole/ownview.cxx665
-rw-r--r--embeddedobj/source/msole/ownview.hxx90
-rw-r--r--embeddedobj/source/msole/platform.h49
-rw-r--r--embeddedobj/source/msole/xdialogcreator.cxx385
-rw-r--r--embeddedobj/source/msole/xdialogcreator.hxx77
-rw-r--r--embeddedobj/source/msole/xolefactory.cxx342
-rw-r--r--embeddedobj/source/msole/xolefactory.hxx84
-rw-r--r--embeddedobj/test/Container1/BitmapPainter.java286
-rw-r--r--embeddedobj/test/Container1/EmbedContApp.java1687
-rw-r--r--embeddedobj/test/Container1/EmbedContFrame.java118
-rw-r--r--embeddedobj/test/Container1/JavaWindowPeerFake.java109
-rw-r--r--embeddedobj/test/Container1/NativeView.java177
-rw-r--r--embeddedobj/test/Container1/PaintThread.java153
-rw-r--r--embeddedobj/test/Container1/WindowHelper.java137
-rw-r--r--embeddedobj/test/Container1/makefile.mk87
-rw-r--r--embeddedobj/test/Container1/nativelib/exports.dxp3
-rw-r--r--embeddedobj/test/Container1/nativelib/makefile.mk78
-rw-r--r--embeddedobj/test/Container1/nativelib/nativeview.c186
-rw-r--r--embeddedobj/test/Container1/nativelib/nativeview.h57
-rw-r--r--embeddedobj/test/MainThreadExecutor/exports.dxp3
-rw-r--r--embeddedobj/test/MainThreadExecutor/makefile.mk67
-rw-r--r--embeddedobj/test/MainThreadExecutor/register.cxx101
-rw-r--r--embeddedobj/test/MainThreadExecutor/xexecutor.cxx142
-rw-r--r--embeddedobj/test/MainThreadExecutor/xexecutor.hxx87
-rw-r--r--embeddedobj/test/mtexecutor/bitmapcreator.cxx123
-rw-r--r--embeddedobj/test/mtexecutor/bitmapcreator.hxx69
-rw-r--r--embeddedobj/test/mtexecutor/exports.dxp3
-rw-r--r--embeddedobj/test/mtexecutor/mainthreadexecutor.cxx139
-rw-r--r--embeddedobj/test/mtexecutor/mainthreadexecutor.hxx83
-rw-r--r--embeddedobj/test/mtexecutor/makefile.mk78
-rw-r--r--embeddedobj/test/mtexecutor/mteregister.cxx123
-rw-r--r--embeddedobj/util/exports.dxp3
-rw-r--r--embeddedobj/util/makefile.mk89
-rwxr-xr-xembedserv/prj/build.lst5
-rwxr-xr-xembedserv/prj/d.lst1
-rw-r--r--embedserv/regentries/calc.reg103
-rw-r--r--embedserv/regentries/draw.reg104
-rw-r--r--embedserv/regentries/impress.reg103
-rw-r--r--embedserv/regentries/math.reg103
-rw-r--r--embedserv/regentries/writer.reg103
-rw-r--r--embedserv/source/embed/docholder.cxx1646
-rwxr-xr-xembedserv/source/embed/ed_idataobj.cxx326
-rw-r--r--embedserv/source/embed/ed_iinplace.cxx100
-rwxr-xr-xembedserv/source/embed/ed_ioleobject.cxx504
-rwxr-xr-xembedserv/source/embed/ed_ipersiststr.cxx1018
-rwxr-xr-xembedserv/source/embed/esdll.cxx92
-rwxr-xr-xembedserv/source/embed/guid.cxx213
-rw-r--r--embedserv/source/embed/iipaobj.cxx130
-rw-r--r--embedserv/source/embed/intercept.cxx589
-rwxr-xr-xembedserv/source/embed/makefile.mk81
-rwxr-xr-xembedserv/source/embed/register.cxx133
-rwxr-xr-xembedserv/source/embed/servprov.cxx305
-rwxr-xr-xembedserv/source/embed/stdafx.cpp14
-rw-r--r--embedserv/source/embed/syswinwrapper.cxx477
-rw-r--r--embedserv/source/embed/tracker.cxx838
-rw-r--r--embedserv/source/embed/xwin.cxx346
-rwxr-xr-xembedserv/source/inc/common.h56
-rw-r--r--embedserv/source/inc/docholder.hxx290
-rwxr-xr-xembedserv/source/inc/embeddoc.hxx210
-rw-r--r--embedserv/source/inc/embeddocaccess.hxx85
-rw-r--r--embedserv/source/inc/embservconst.h81
-rw-r--r--embedserv/source/inc/iipaobj.hxx74
-rw-r--r--embedserv/source/inc/intercept.hxx195
-rwxr-xr-xembedserv/source/inc/servprov.hxx100
-rwxr-xr-xembedserv/source/inc/stdafx.h42
-rw-r--r--embedserv/source/inc/syswinwrapper.hxx177
-rw-r--r--embedserv/source/inc/xwin.hxx252
-rw-r--r--embedserv/source/inprocserv/advisesink.cxx187
-rw-r--r--embedserv/source/inprocserv/advisesink.hxx95
-rw-r--r--embedserv/source/inprocserv/dllentry.cxx349
-rw-r--r--embedserv/source/inprocserv/exports.dxp5
-rw-r--r--embedserv/source/inprocserv/inprocembobj.cxx1982
-rw-r--r--embedserv/source/inprocserv/inprocembobj.h242
-rw-r--r--embedserv/source/inprocserv/makefile.mk80
-rw-r--r--embedserv/source/inprocserv/smartpointer.hxx197
-rwxr-xr-xembedserv/util/exports.dxp3
-rwxr-xr-xembedserv/util/makefile.mk96
-rw-r--r--epm/epm-3.7.patch811
-rw-r--r--epm/makefile.mk61
-rw-r--r--epm/prj/build.lst2
-rw-r--r--epm/prj/d.lst3
-rw-r--r--eventattacher/prj/build.lst4
-rw-r--r--eventattacher/prj/d.lst3
-rw-r--r--eventattacher/source/eventattacher.cxx898
-rw-r--r--eventattacher/source/exports.map10
-rw-r--r--eventattacher/source/makefile.mk63
-rw-r--r--expat/expat-2.0.1.patch93
-rw-r--r--expat/expat-winapi.patch13
-rw-r--r--expat/makefile.mk64
-rw-r--r--expat/prj/build.lst3
-rw-r--r--expat/prj/d.lst15
-rw-r--r--extensions/inc/abpilot.hrc45
-rw-r--r--extensions/inc/appsettings.hxx45
-rw-r--r--extensions/inc/bibliography.hrc86
-rw-r--r--extensions/inc/dbpilots.hrc55
-rw-r--r--extensions/inc/extensio.hrc75
-rw-r--r--extensions/inc/makefile.mk47
-rw-r--r--extensions/inc/pch/precompiled_extensions.cxx29
-rw-r--r--extensions/inc/pch/precompiled_extensions.hxx552
-rw-r--r--extensions/inc/propctrlr.hrc337
-rw-r--r--extensions/inc/ucbhelper/ext_content.hxx329
-rw-r--r--extensions/inc/update.hrc49
-rw-r--r--extensions/prj/build.lst36
-rw-r--r--extensions/prj/d.lst41
-rw-r--r--extensions/qa/complex/extensions/OfficeResourceLoader.java121
-rw-r--r--extensions/qa/complex/extensions/extensions_all.sce1
-rw-r--r--extensions/qa/complex/extensions/makefile.mk101
-rw-r--r--extensions/qa/complex/extensions/orl_de.src31
-rw-r--r--extensions/qa/complex/extensions/orl_en-US.src31
-rw-r--r--extensions/qa/integration/extensions/ComponentFactory.java106
-rw-r--r--extensions/qa/integration/extensions/ConsoleWait.java128
-rw-r--r--extensions/qa/integration/extensions/Frame.java226
-rw-r--r--extensions/qa/integration/extensions/HelpTextProvider.java50
-rw-r--r--extensions/qa/integration/extensions/MethodHandler.java239
-rw-r--r--extensions/qa/integration/extensions/ObjectInspector.java176
-rw-r--r--extensions/qa/integration/extensions/ServicesHandler.java228
-rw-r--r--extensions/qa/integration/extensions/TestSkeleton.java71
-rw-r--r--extensions/qa/integration/extensions/extensions_complex.sce1
-rw-r--r--extensions/qa/integration/extensions/makefile.mk83
-rw-r--r--extensions/qa/unoapi/extensions.sce5
-rw-r--r--extensions/qa/unoapi/makefile.mk40
-rw-r--r--extensions/source/abpilot/abp.map8
-rw-r--r--extensions/source/abpilot/abpfinalpage.cxx229
-rw-r--r--extensions/source/abpilot/abpfinalpage.hxx92
-rw-r--r--extensions/source/abpilot/abpresid.hrc219
-rw-r--r--extensions/source/abpilot/abpservices.cxx107
-rw-r--r--extensions/source/abpilot/abptypes.hxx48
-rw-r--r--extensions/source/abpilot/abspage.cxx89
-rw-r--r--extensions/source/abpilot/abspage.hxx75
-rw-r--r--extensions/source/abpilot/abspilot.cxx505
-rw-r--r--extensions/source/abpilot/abspilot.hxx149
-rw-r--r--extensions/source/abpilot/abspilot.src376
-rw-r--r--extensions/source/abpilot/addresssettings.hxx79
-rw-r--r--extensions/source/abpilot/admininvokationimpl.cxx137
-rw-r--r--extensions/source/abpilot/admininvokationimpl.hxx70
-rw-r--r--extensions/source/abpilot/admininvokationpage.cxx114
-rw-r--r--extensions/source/abpilot/admininvokationpage.hxx73
-rw-r--r--extensions/source/abpilot/datasourcehandling.cxx656
-rw-r--r--extensions/source/abpilot/datasourcehandling.hxx226
-rw-r--r--extensions/source/abpilot/exports.dxp3
-rw-r--r--extensions/source/abpilot/fieldmappingimpl.cxx375
-rw-r--r--extensions/source/abpilot/fieldmappingimpl.hxx126
-rw-r--r--extensions/source/abpilot/fieldmappingpage.cxx119
-rw-r--r--extensions/source/abpilot/fieldmappingpage.hxx70
-rw-r--r--extensions/source/abpilot/makefile.mk106
-rw-r--r--extensions/source/abpilot/moduleabp.cxx32
-rw-r--r--extensions/source/abpilot/tableselectionpage.cxx133
-rw-r--r--extensions/source/abpilot/tableselectionpage.hxx73
-rw-r--r--extensions/source/abpilot/typeselectionpage.cxx249
-rw-r--r--extensions/source/abpilot/typeselectionpage.hxx106
-rw-r--r--extensions/source/abpilot/unodialogabp.cxx196
-rw-r--r--extensions/source/abpilot/unodialogabp.hxx101
-rw-r--r--extensions/source/activex/main/README.txt33
-rw-r--r--extensions/source/activex/main/SOActionsApproval.cpp29
-rw-r--r--extensions/source/activex/main/SOActionsApproval.h81
-rw-r--r--extensions/source/activex/main/SOActionsApproval.rgs24
-rw-r--r--extensions/source/activex/main/SOActiveX.cpp1151
-rw-r--r--extensions/source/activex/main/SOActiveX.h176
-rw-r--r--extensions/source/activex/main/SOActiveX.rgs33
-rw-r--r--extensions/source/activex/main/SOComWindowPeer.cpp28
-rw-r--r--extensions/source/activex/main/SOComWindowPeer.h133
-rw-r--r--extensions/source/activex/main/SOComWindowPeer.rgs23
-rw-r--r--extensions/source/activex/main/SODispatchInterceptor.cpp222
-rw-r--r--extensions/source/activex/main/SODispatchInterceptor.h155
-rw-r--r--extensions/source/activex/main/SODispatchInterceptor.rgs23
-rw-r--r--extensions/source/activex/main/StdAfx2.cpp18
-rw-r--r--extensions/source/activex/main/StdAfx2.h42
-rw-r--r--extensions/source/activex/main/com_uno_helper.h24
-rw-r--r--extensions/source/activex/main/example.html26
-rw-r--r--extensions/source/activex/main/makefile.mk159
-rw-r--r--extensions/source/activex/main/resource.h26
-rw-r--r--extensions/source/activex/main/so_activex.cpp688
-rw-r--r--extensions/source/activex/main/so_activex.def13
-rw-r--r--extensions/source/activex/main/so_activex.rc113
-rw-r--r--extensions/source/activex/msidl/makefile.mk62
-rw-r--r--extensions/source/activex/msidl/so_activex.idl210
-rw-r--r--extensions/source/bibliography/bib.hrc111
-rw-r--r--extensions/source/bibliography/bib.src74
-rw-r--r--extensions/source/bibliography/bibbeam.cxx321
-rw-r--r--extensions/source/bibliography/bibbeam.hxx93
-rw-r--r--extensions/source/bibliography/bibconfig.cxx389
-rw-r--r--extensions/source/bibliography/bibconfig.hxx155
-rw-r--r--extensions/source/bibliography/bibcont.cxx275
-rw-r--r--extensions/source/bibliography/bibcont.hxx114
-rw-r--r--extensions/source/bibliography/bibload.cxx807
-rw-r--r--extensions/source/bibliography/bibmod.cxx122
-rw-r--r--extensions/source/bibliography/bibmod.hxx65
-rw-r--r--extensions/source/bibliography/bibprop.hrc45
-rw-r--r--extensions/source/bibliography/bibresid.hxx44
-rw-r--r--extensions/source/bibliography/bibshortcuthandler.hxx87
-rw-r--r--extensions/source/bibliography/bibtools.hxx50
-rw-r--r--extensions/source/bibliography/bibview.cxx232
-rw-r--r--extensions/source/bibliography/bibview.hxx86
-rw-r--r--extensions/source/bibliography/datman.cxx1834
-rw-r--r--extensions/source/bibliography/datman.hrc102
-rw-r--r--extensions/source/bibliography/datman.hxx199
-rw-r--r--extensions/source/bibliography/datman.src469
-rw-r--r--extensions/source/bibliography/exports.map10
-rw-r--r--extensions/source/bibliography/formcontrolcontainer.cxx180
-rw-r--r--extensions/source/bibliography/formcontrolcontainer.hxx84
-rw-r--r--extensions/source/bibliography/framectr.cxx977
-rw-r--r--extensions/source/bibliography/framectr.hxx130
-rw-r--r--extensions/source/bibliography/general.cxx892
-rw-r--r--extensions/source/bibliography/general.hxx210
-rw-r--r--extensions/source/bibliography/hidother.src61
-rw-r--r--extensions/source/bibliography/loadlisteneradapter.cxx239
-rw-r--r--extensions/source/bibliography/loadlisteneradapter.hxx185
-rw-r--r--extensions/source/bibliography/makefile.mk91
-rw-r--r--extensions/source/bibliography/menu.src45
-rw-r--r--extensions/source/bibliography/sections.hrc128
-rw-r--r--extensions/source/bibliography/sections.src584
-rw-r--r--extensions/source/bibliography/toolbar.cxx647
-rw-r--r--extensions/source/bibliography/toolbar.hrc46
-rw-r--r--extensions/source/bibliography/toolbar.hxx189
-rw-r--r--extensions/source/bibliography/toolbar.src241
-rw-r--r--extensions/source/bibliography/uiconfig/sbibliography/menubar/menubar.xml93
-rw-r--r--extensions/source/config/ldap/componentdef.cxx80
-rw-r--r--extensions/source/config/ldap/exports.dxp3
-rw-r--r--extensions/source/config/ldap/ldapaccess.cxx319
-rw-r--r--extensions/source/config/ldap/ldapaccess.hxx168
-rw-r--r--extensions/source/config/ldap/ldapuserprofilebe.cxx280
-rw-r--r--extensions/source/config/ldap/ldapuserprofilebe.hxx158
-rw-r--r--extensions/source/config/ldap/makefile.mk97
-rw-r--r--extensions/source/config/ldap/wrapldapinclude.hxx50
-rw-r--r--extensions/source/dbpilots/commonpagesdbp.cxx509
-rw-r--r--extensions/source/dbpilots/commonpagesdbp.hxx146
-rw-r--r--extensions/source/dbpilots/commonpagesdbp.src230
-rw-r--r--extensions/source/dbpilots/controlwizard.cxx777
-rw-r--r--extensions/source/dbpilots/controlwizard.hxx187
-rw-r--r--extensions/source/dbpilots/dbp.map8
-rw-r--r--extensions/source/dbpilots/dbpilots.src78
-rw-r--r--extensions/source/dbpilots/dbpresid.hrc233
-rw-r--r--extensions/source/dbpilots/dbpservices.cxx112
-rw-r--r--extensions/source/dbpilots/dbptools.cxx70
-rw-r--r--extensions/source/dbpilots/dbptools.hxx48
-rw-r--r--extensions/source/dbpilots/dbptypes.hxx47
-rw-r--r--extensions/source/dbpilots/gridpages.src114
-rw-r--r--extensions/source/dbpilots/gridwizard.cxx481
-rw-r--r--extensions/source/dbpilots/gridwizard.hxx137
-rw-r--r--extensions/source/dbpilots/groupboxpages.src226
-rw-r--r--extensions/source/dbpilots/groupboxwiz.cxx564
-rw-r--r--extensions/source/dbpilots/groupboxwiz.hxx229
-rw-r--r--extensions/source/dbpilots/listcombopages.src203
-rw-r--r--extensions/source/dbpilots/listcombowizard.cxx565
-rw-r--r--extensions/source/dbpilots/listcombowizard.hxx228
-rw-r--r--extensions/source/dbpilots/makefile.mk103
-rw-r--r--extensions/source/dbpilots/moduledbp.cxx32
-rw-r--r--extensions/source/dbpilots/optiongrouplayouter.cxx216
-rw-r--r--extensions/source/dbpilots/optiongrouplayouter.hxx75
-rw-r--r--extensions/source/dbpilots/unoautopilot.hxx106
-rw-r--r--extensions/source/dbpilots/unoautopilot.inl134
-rw-r--r--extensions/source/dbpilots/wizardcontext.hxx92
-rw-r--r--extensions/source/dbpilots/wizardservices.cxx122
-rw-r--r--extensions/source/dbpilots/wizardservices.hxx80
-rw-r--r--extensions/source/inc/componentmodule.cxx341
-rw-r--r--extensions/source/inc/componentmodule.hxx278
-rw-r--r--extensions/source/logging/consolehandler.cxx342
-rw-r--r--extensions/source/logging/csvformatter.cxx382
-rw-r--r--extensions/source/logging/filehandler.cxx441
-rw-r--r--extensions/source/logging/log.map8
-rw-r--r--extensions/source/logging/log_module.cxx43
-rw-r--r--extensions/source/logging/log_module.hxx45
-rw-r--r--extensions/source/logging/log_services.cxx69
-rw-r--r--extensions/source/logging/logger.cxx404
-rw-r--r--extensions/source/logging/loggerconfig.cxx283
-rw-r--r--extensions/source/logging/loggerconfig.hxx65
-rw-r--r--extensions/source/logging/loghandler.cxx204
-rw-r--r--extensions/source/logging/loghandler.hxx154
-rw-r--r--extensions/source/logging/logrecord.cxx103
-rw-r--r--extensions/source/logging/logrecord.hxx68
-rw-r--r--extensions/source/logging/makefile.mk76
-rw-r--r--extensions/source/logging/methodguard.hxx73
-rw-r--r--extensions/source/logging/plaintextformatter.cxx226
-rw-r--r--extensions/source/macosx/spotlight/GetMetadataForFile.m70
-rw-r--r--extensions/source/macosx/spotlight/OOoContentDataParser.h58
-rw-r--r--extensions/source/macosx/spotlight/OOoContentDataParser.m133
-rw-r--r--extensions/source/macosx/spotlight/OOoMetaDataParser.h52
-rw-r--r--extensions/source/macosx/spotlight/OOoMetaDataParser.m200
-rw-r--r--extensions/source/macosx/spotlight/OOoSpotlightImporter.h42
-rw-r--r--extensions/source/macosx/spotlight/OOoSpotlightImporter.m235
-rw-r--r--extensions/source/macosx/spotlight/delzip0
-rw-r--r--extensions/source/macosx/spotlight/ioapi.h98
-rw-r--r--extensions/source/macosx/spotlight/ioapi.m204
-rw-r--r--extensions/source/macosx/spotlight/main.m225
-rw-r--r--extensions/source/macosx/spotlight/makefile.mk96
-rw-r--r--extensions/source/macosx/spotlight/mdimporter/Info.plist70
-rw-r--r--extensions/source/macosx/spotlight/mdimporter/en.lproj/schema.strings1
-rw-r--r--extensions/source/macosx/spotlight/mdimporter/schema.xml397
-rw-r--r--extensions/source/macosx/spotlight/unzip.h377
-rw-r--r--extensions/source/macosx/spotlight/unzip.m1586
-rw-r--r--extensions/source/macosx/spotlight/version.plist16
-rw-r--r--extensions/source/nsplugin/source/exports.dxp16
-rw-r--r--extensions/source/nsplugin/source/exports_wnt.dxp18
-rw-r--r--extensions/source/nsplugin/source/makefile.mk162
-rw-r--r--extensions/source/nsplugin/source/npshell.cxx930
-rw-r--r--extensions/source/nsplugin/source/npshell.hxx91
-rw-r--r--extensions/source/nsplugin/source/ns_debug.hxx40
-rw-r--r--extensions/source/nsplugin/source/nsp_func.hxx103
-rw-r--r--extensions/source/nsplugin/source/nsp_windows.cxx63
-rw-r--r--extensions/source/nsplugin/source/nsp_windows.hxx36
-rw-r--r--extensions/source/nsplugin/source/nsplugin.rc30
-rw-r--r--extensions/source/nsplugin/source/nsplugin_oo.rc30
-rw-r--r--extensions/source/nsplugin/source/so_closelistener.cxx48
-rw-r--r--extensions/source/nsplugin/source/so_closelistener.hxx54
-rw-r--r--extensions/source/nsplugin/source/so_env.cxx394
-rw-r--r--extensions/source/nsplugin/source/so_env.hxx97
-rw-r--r--extensions/source/nsplugin/source/so_instance.cxx503
-rw-r--r--extensions/source/nsplugin/source/so_instance.hxx111
-rw-r--r--extensions/source/nsplugin/source/so_main.cxx507
-rw-r--r--extensions/source/nsplugin/source/so_msg.hxx54
-rw-r--r--extensions/source/ole/comifaces.hxx69
-rw-r--r--extensions/source/ole/jscriptclasses.cxx321
-rw-r--r--extensions/source/ole/jscriptclasses.hxx161
-rw-r--r--extensions/source/ole/makefile.mk131
-rw-r--r--extensions/source/ole/ole2uno.cxx73
-rw-r--r--extensions/source/ole/ole2uno.hxx145
-rw-r--r--extensions/source/ole/oleautobridge.uno.dxp4
-rw-r--r--extensions/source/ole/oledll.cxx70
-rw-r--r--extensions/source/ole/oleobjw.cxx2180
-rw-r--r--extensions/source/ole/oleobjw.hxx259
-rw-r--r--extensions/source/ole/olethread.cxx77
-rw-r--r--extensions/source/ole/servprov.cxx754
-rw-r--r--extensions/source/ole/servprov.hxx280
-rw-r--r--extensions/source/ole/servreg.cxx173
-rw-r--r--extensions/source/ole/unoconversionutilities.hxx2436
-rw-r--r--extensions/source/ole/unoobjw.cxx1688
-rw-r--r--extensions/source/ole/unoobjw.hxx300
-rw-r--r--extensions/source/ole/unotypewrapper.cxx179
-rw-r--r--extensions/source/ole/unotypewrapper.hxx101
-rw-r--r--extensions/source/ole/windata.cxx40
-rw-r--r--extensions/source/ole/windata.hxx198
-rw-r--r--extensions/source/oooimprovecore/core.cxx190
-rw-r--r--extensions/source/oooimprovecore/makefile.mk77
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore.map8
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore_module.cxx37
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore_module.hxx38
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore_services.cxx52
-rw-r--r--extensions/source/oooimprovement/Jobs.xcu25
-rw-r--r--extensions/source/oooimprovement/Logging.xcu8
-rw-r--r--extensions/source/oooimprovement/config.cxx296
-rw-r--r--extensions/source/oooimprovement/config.hxx68
-rw-r--r--extensions/source/oooimprovement/corecontroller.cxx89
-rw-r--r--extensions/source/oooimprovement/corecontroller.hxx84
-rw-r--r--extensions/source/oooimprovement/errormail.cxx207
-rw-r--r--extensions/source/oooimprovement/errormail.hxx54
-rw-r--r--extensions/source/oooimprovement/invite_job.cxx133
-rw-r--r--extensions/source/oooimprovement/invite_job.hxx82
-rw-r--r--extensions/source/oooimprovement/logpacker.cxx114
-rw-r--r--extensions/source/oooimprovement/logpacker.hxx51
-rw-r--r--extensions/source/oooimprovement/logstorage.cxx146
-rw-r--r--extensions/source/oooimprovement/logstorage.hxx55
-rw-r--r--extensions/source/oooimprovement/makefile.mk104
-rw-r--r--extensions/source/oooimprovement/makefile.pmk29
-rw-r--r--extensions/source/oooimprovement/myconfigurationhelper.cxx178
-rw-r--r--extensions/source/oooimprovement/myconfigurationhelper.hxx214
-rw-r--r--extensions/source/oooimprovement/onlogrotate_job.cxx202
-rw-r--r--extensions/source/oooimprovement/onlogrotate_job.hxx83
-rw-r--r--extensions/source/oooimprovement/oooimprovement.map11
-rw-r--r--extensions/source/oooimprovement/oooimprovement_exports.cxx110
-rw-r--r--extensions/source/oooimprovement/soaprequest.cxx200
-rw-r--r--extensions/source/oooimprovement/soaprequest.hxx60
-rw-r--r--extensions/source/oooimprovement/soapsender.cxx160
-rw-r--r--extensions/source/oooimprovement/soapsender.hxx56
-rw-r--r--extensions/source/plugin/aqua/macmgr.cxx646
-rw-r--r--extensions/source/plugin/aqua/makefile.mk75
-rw-r--r--extensions/source/plugin/aqua/sysplug.cxx808
-rw-r--r--extensions/source/plugin/base/context.cxx343
-rw-r--r--extensions/source/plugin/base/evtlstnr.cxx64
-rw-r--r--extensions/source/plugin/base/makefile.mk70
-rw-r--r--extensions/source/plugin/base/manager.cxx225
-rw-r--r--extensions/source/plugin/base/multiplx.cxx332
-rw-r--r--extensions/source/plugin/base/nfuncs.cxx677
-rw-r--r--extensions/source/plugin/base/plcom.cxx71
-rw-r--r--extensions/source/plugin/base/plctrl.cxx323
-rw-r--r--extensions/source/plugin/base/plmodel.cxx203
-rw-r--r--extensions/source/plugin/base/service.cxx120
-rw-r--r--extensions/source/plugin/base/xplugin.cxx1155
-rw-r--r--extensions/source/plugin/inc/plugin/aqua/sysplug.hxx167
-rw-r--r--extensions/source/plugin/inc/plugin/impl.hxx430
-rw-r--r--extensions/source/plugin/inc/plugin/model.hxx136
-rw-r--r--extensions/source/plugin/inc/plugin/multiplx.hxx167
-rw-r--r--extensions/source/plugin/inc/plugin/plcom.hxx85
-rw-r--r--extensions/source/plugin/inc/plugin/plctrl.hxx181
-rw-r--r--extensions/source/plugin/inc/plugin/unx/mediator.hxx183
-rw-r--r--extensions/source/plugin/inc/plugin/unx/plugcon.hxx251
-rw-r--r--extensions/source/plugin/inc/plugin/unx/sysplug.hxx83
-rw-r--r--extensions/source/plugin/inc/plugin/win/sysplug.hxx125
-rw-r--r--extensions/source/plugin/unx/makefile.mk110
-rw-r--r--extensions/source/plugin/unx/mediator.cxx309
-rw-r--r--extensions/source/plugin/unx/npnapi.cxx898
-rw-r--r--extensions/source/plugin/unx/nppapi.cxx602
-rw-r--r--extensions/source/plugin/unx/npwrap.cxx513
-rw-r--r--extensions/source/plugin/unx/plugcon.cxx282
-rw-r--r--extensions/source/plugin/unx/sysplug.cxx131
-rw-r--r--extensions/source/plugin/unx/unxmgr.cxx315
-rw-r--r--extensions/source/plugin/util/exports.map10
-rw-r--r--extensions/source/plugin/util/makefile.mk109
-rw-r--r--extensions/source/plugin/util/makefile.pmk48
-rw-r--r--extensions/source/plugin/win/makefile.mk65
-rw-r--r--extensions/source/plugin/win/sysplug.cxx443
-rw-r--r--extensions/source/plugin/win/winmgr.cxx470
-rw-r--r--extensions/source/preload/makefile.mk85
-rw-r--r--extensions/source/preload/modulepreload.cxx32
-rw-r--r--extensions/source/preload/oemwiz.cxx471
-rw-r--r--extensions/source/preload/oemwiz.hxx156
-rw-r--r--extensions/source/preload/preload.hrc58
-rw-r--r--extensions/source/preload/preload.map8
-rw-r--r--extensions/source/preload/preload.src284
-rw-r--r--extensions/source/preload/preloadservices.cxx71
-rw-r--r--extensions/source/preload/preloadservices.hxx55
-rw-r--r--extensions/source/preload/services.cxx107
-rw-r--r--extensions/source/preload/unoautopilot.hxx107
-rw-r--r--extensions/source/preload/unoautopilot.inl133
-rw-r--r--extensions/source/propctrlr/MasterDetailLinkDialog.cxx157
-rw-r--r--extensions/source/propctrlr/MasterDetailLinkDialog.hxx84
-rw-r--r--extensions/source/propctrlr/browserline.cxx554
-rw-r--r--extensions/source/propctrlr/browserline.hxx144
-rw-r--r--extensions/source/propctrlr/browserlistbox.cxx1331
-rw-r--r--extensions/source/propctrlr/browserlistbox.hxx252
-rw-r--r--extensions/source/propctrlr/browserpage.cxx105
-rw-r--r--extensions/source/propctrlr/browserpage.hxx68
-rw-r--r--extensions/source/propctrlr/browserview.cxx144
-rw-r--r--extensions/source/propctrlr/browserview.hxx89
-rw-r--r--extensions/source/propctrlr/buttonnavigationhandler.cxx295
-rw-r--r--extensions/source/propctrlr/buttonnavigationhandler.hxx90
-rw-r--r--extensions/source/propctrlr/cellbindinghandler.cxx504
-rw-r--r--extensions/source/propctrlr/cellbindinghandler.hxx109
-rw-r--r--extensions/source/propctrlr/cellbindinghelper.cxx565
-rw-r--r--extensions/source/propctrlr/cellbindinghelper.hxx290
-rw-r--r--extensions/source/propctrlr/commoncontrol.cxx206
-rw-r--r--extensions/source/propctrlr/commoncontrol.hxx337
-rw-r--r--extensions/source/propctrlr/composeduiupdate.cxx859
-rw-r--r--extensions/source/propctrlr/composeduiupdate.hxx231
-rw-r--r--extensions/source/propctrlr/controlfontdialog.cxx177
-rw-r--r--extensions/source/propctrlr/controlfontdialog.hxx100
-rw-r--r--extensions/source/propctrlr/controltype.hxx54
-rw-r--r--extensions/source/propctrlr/defaultforminspection.cxx270
-rw-r--r--extensions/source/propctrlr/defaultforminspection.hxx91
-rw-r--r--extensions/source/propctrlr/defaulthelpprovider.cxx206
-rw-r--r--extensions/source/propctrlr/defaulthelpprovider.hxx93
-rw-r--r--extensions/source/propctrlr/editpropertyhandler.cxx323
-rw-r--r--extensions/source/propctrlr/editpropertyhandler.hxx82
-rw-r--r--extensions/source/propctrlr/eformshelper.cxx790
-rw-r--r--extensions/source/propctrlr/eformshelper.hxx269
-rw-r--r--extensions/source/propctrlr/eformspropertyhandler.cxx616
-rw-r--r--extensions/source/propctrlr/eformspropertyhandler.hxx108
-rw-r--r--extensions/source/propctrlr/enumrepresentation.hxx76
-rw-r--r--extensions/source/propctrlr/eventhandler.cxx1285
-rw-r--r--extensions/source/propctrlr/eventhandler.hxx267
-rw-r--r--extensions/source/propctrlr/fontdialog.cxx631
-rw-r--r--extensions/source/propctrlr/fontdialog.hxx83
-rw-r--r--extensions/source/propctrlr/fontdialog.src60
-rw-r--r--extensions/source/propctrlr/fontitemids.hxx66
-rw-r--r--extensions/source/propctrlr/formbrowsertools.cxx148
-rw-r--r--extensions/source/propctrlr/formbrowsertools.hxx108
-rw-r--r--extensions/source/propctrlr/formcomponenthandler.cxx3319
-rw-r--r--extensions/source/propctrlr/formcomponenthandler.hxx470
-rw-r--r--extensions/source/propctrlr/formcontroller.cxx299
-rw-r--r--extensions/source/propctrlr/formcontroller.hxx140
-rw-r--r--extensions/source/propctrlr/formgeometryhandler.cxx826
-rw-r--r--extensions/source/propctrlr/formlinkdialog.cxx676
-rw-r--r--extensions/source/propctrlr/formlinkdialog.hrc44
-rw-r--r--extensions/source/propctrlr/formlinkdialog.hxx150
-rw-r--r--extensions/source/propctrlr/formlinkdialog.src160
-rw-r--r--extensions/source/propctrlr/formlocalid.hrc39
-rw-r--r--extensions/source/propctrlr/formmetadata.cxx706
-rw-r--r--extensions/source/propctrlr/formmetadata.hxx350
-rw-r--r--extensions/source/propctrlr/formres.src1523
-rw-r--r--extensions/source/propctrlr/formresid.hrc389
-rw-r--r--extensions/source/propctrlr/formstrings.cxx36
-rw-r--r--extensions/source/propctrlr/formstrings.hxx307
-rw-r--r--extensions/source/propctrlr/genericpropertyhandler.cxx726
-rw-r--r--extensions/source/propctrlr/genericpropertyhandler.hxx161
-rw-r--r--extensions/source/propctrlr/handlerhelper.cxx299
-rw-r--r--extensions/source/propctrlr/handlerhelper.hxx225
-rw-r--r--extensions/source/propctrlr/inspectorhelpwindow.cxx153
-rw-r--r--extensions/source/propctrlr/inspectorhelpwindow.hxx78
-rw-r--r--extensions/source/propctrlr/inspectormodelbase.cxx272
-rw-r--r--extensions/source/propctrlr/inspectormodelbase.hxx108
-rw-r--r--extensions/source/propctrlr/linedescriptor.hxx70
-rw-r--r--extensions/source/propctrlr/listselectiondlg.cxx173
-rw-r--r--extensions/source/propctrlr/listselectiondlg.hrc39
-rw-r--r--extensions/source/propctrlr/listselectiondlg.hxx89
-rw-r--r--extensions/source/propctrlr/listselectiondlg.src80
-rw-r--r--extensions/source/propctrlr/makefile.mk146
-rw-r--r--extensions/source/propctrlr/modulepcr.cxx48
-rw-r--r--extensions/source/propctrlr/modulepcr.hxx45
-rw-r--r--extensions/source/propctrlr/newdatatype.cxx109
-rw-r--r--extensions/source/propctrlr/newdatatype.hrc38
-rw-r--r--extensions/source/propctrlr/newdatatype.hxx77
-rw-r--r--extensions/source/propctrlr/newdatatype.src77
-rw-r--r--extensions/source/propctrlr/objectinspectormodel.cxx242
-rw-r--r--extensions/source/propctrlr/pcr.map8
-rw-r--r--extensions/source/propctrlr/pcr.xml146
-rw-r--r--extensions/source/propctrlr/pcrcommon.cxx73
-rw-r--r--extensions/source/propctrlr/pcrcommon.hxx153
-rw-r--r--extensions/source/propctrlr/pcrcommontypes.hxx51
-rw-r--r--extensions/source/propctrlr/pcrcomponentcontext.cxx106
-rw-r--r--extensions/source/propctrlr/pcrcomponentcontext.hxx168
-rw-r--r--extensions/source/propctrlr/pcrmiscres.src189
-rw-r--r--extensions/source/propctrlr/pcrservices.cxx145
-rw-r--r--extensions/source/propctrlr/pcrstrings.cxx36
-rw-r--r--extensions/source/propctrlr/pcrstrings.hxx49
-rw-r--r--extensions/source/propctrlr/pcrunodialogs.cxx146
-rw-r--r--extensions/source/propctrlr/pcrunodialogs.hxx94
-rw-r--r--extensions/source/propctrlr/propcontroller.cxx1778
-rw-r--r--extensions/source/propctrlr/propcontroller.hxx430
-rw-r--r--extensions/source/propctrlr/propcontrolobserver.hxx56
-rw-r--r--extensions/source/propctrlr/propertycomposer.cxx516
-rw-r--r--extensions/source/propctrlr/propertycomposer.hxx157
-rw-r--r--extensions/source/propctrlr/propertycontrolextender.cxx145
-rw-r--r--extensions/source/propctrlr/propertycontrolextender.hxx74
-rw-r--r--extensions/source/propctrlr/propertyeditor.cxx542
-rw-r--r--extensions/source/propctrlr/propertyeditor.hxx163
-rw-r--r--extensions/source/propctrlr/propertyhandler.cxx464
-rw-r--r--extensions/source/propctrlr/propertyhandler.hxx457
-rw-r--r--extensions/source/propctrlr/propertyinfo.hxx65
-rw-r--r--extensions/source/propctrlr/propeventtranslation.cxx105
-rw-r--r--extensions/source/propctrlr/propeventtranslation.hxx84
-rw-r--r--extensions/source/propctrlr/proplinelistener.hxx51
-rw-r--r--extensions/source/propctrlr/propres.src63
-rw-r--r--extensions/source/propctrlr/propresid.hrc47
-rw-r--r--extensions/source/propctrlr/pushbuttonnavigation.cxx306
-rw-r--r--extensions/source/propctrlr/pushbuttonnavigation.hxx108
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.cxx313
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.hxx91
-rw-r--r--extensions/source/propctrlr/selectlabeldialog.src83
-rw-r--r--extensions/source/propctrlr/sqlcommanddesign.cxx393
-rw-r--r--extensions/source/propctrlr/sqlcommanddesign.hxx223
-rw-r--r--extensions/source/propctrlr/standardcontrol.cxx1442
-rw-r--r--extensions/source/propctrlr/standardcontrol.hxx445
-rw-r--r--extensions/source/propctrlr/stlops.hxx70
-rw-r--r--extensions/source/propctrlr/stringdefine.hxx99
-rw-r--r--extensions/source/propctrlr/stringrepresentation.cxx650
-rw-r--r--extensions/source/propctrlr/submissionhandler.cxx448
-rw-r--r--extensions/source/propctrlr/submissionhandler.hxx125
-rw-r--r--extensions/source/propctrlr/taborder.cxx424
-rw-r--r--extensions/source/propctrlr/taborder.hrc45
-rw-r--r--extensions/source/propctrlr/taborder.hxx132
-rw-r--r--extensions/source/propctrlr/taborder.src103
-rw-r--r--extensions/source/propctrlr/unourl.cxx70
-rw-r--r--extensions/source/propctrlr/unourl.hxx65
-rw-r--r--extensions/source/propctrlr/usercontrol.cxx356
-rw-r--r--extensions/source/propctrlr/usercontrol.hxx169
-rw-r--r--extensions/source/propctrlr/xsddatatypes.cxx250
-rw-r--r--extensions/source/propctrlr/xsddatatypes.hxx114
-rw-r--r--extensions/source/propctrlr/xsdvalidationhelper.cxx412
-rw-r--r--extensions/source/propctrlr/xsdvalidationhelper.hxx150
-rw-r--r--extensions/source/propctrlr/xsdvalidationpropertyhandler.cxx692
-rw-r--r--extensions/source/propctrlr/xsdvalidationpropertyhandler.hxx103
-rw-r--r--extensions/source/resource/exports.dxp3
-rw-r--r--extensions/source/resource/exports.map10
-rw-r--r--extensions/source/resource/makefile.mk76
-rw-r--r--extensions/source/resource/oooresourceloader.cxx489
-rw-r--r--extensions/source/resource/res_services.cxx128
-rw-r--r--extensions/source/resource/res_services.hxx64
-rw-r--r--extensions/source/resource/resource.cxx471
-rw-r--r--extensions/source/scanner/exports.dxp3
-rw-r--r--extensions/source/scanner/exports.map10
-rw-r--r--extensions/source/scanner/grid.cxx608
-rw-r--r--extensions/source/scanner/grid.hrc42
-rw-r--r--extensions/source/scanner/grid.hxx149
-rw-r--r--extensions/source/scanner/grid.src112
-rw-r--r--extensions/source/scanner/makefile.mk100
-rw-r--r--extensions/source/scanner/sane.cxx999
-rw-r--r--extensions/source/scanner/sane.hxx200
-rw-r--r--extensions/source/scanner/sanedlg.cxx1430
-rw-r--r--extensions/source/scanner/sanedlg.hrc82
-rw-r--r--extensions/source/scanner/sanedlg.hxx152
-rw-r--r--extensions/source/scanner/sanedlg.src301
-rw-r--r--extensions/source/scanner/scanner.cxx103
-rw-r--r--extensions/source/scanner/scanner.hxx115
-rw-r--r--extensions/source/scanner/scanunx.cxx352
-rw-r--r--extensions/source/scanner/scanwin.cxx1053
-rw-r--r--extensions/source/scanner/scnserv.cxx104
-rw-r--r--extensions/source/scanner/twain.cxx532
-rw-r--r--extensions/source/scanner/twain.hxx98
-rw-r--r--extensions/source/svg/exports.map10
-rw-r--r--extensions/source/svg/makefile.mk67
-rw-r--r--extensions/source/svg/svgaction.cxx1458
-rw-r--r--extensions/source/svg/svgaction.hxx164
-rw-r--r--extensions/source/svg/svgcom.hxx82
-rw-r--r--extensions/source/svg/svgprinter.cxx328
-rw-r--r--extensions/source/svg/svgprinter.hxx67
-rw-r--r--extensions/source/svg/svguno.cxx128
-rw-r--r--extensions/source/svg/svgwriter.cxx175
-rw-r--r--extensions/source/svg/svgwriter.hxx60
-rw-r--r--extensions/source/unoactivex/main/initwindowpeer.cxx87
-rw-r--r--extensions/source/update/check/Addons.xcu26
-rw-r--r--extensions/source/update/check/Jobs.xcu42
-rw-r--r--extensions/source/update/check/actionlistener.hxx46
-rw-r--r--extensions/source/update/check/download.cxx381
-rw-r--r--extensions/source/update/check/download.hxx82
-rw-r--r--extensions/source/update/check/makefile.mk134
-rw-r--r--extensions/source/update/check/transform.pl61
-rw-r--r--extensions/source/update/check/updatecheck.cxx1641
-rw-r--r--extensions/source/update/check/updatecheck.hxx192
-rw-r--r--extensions/source/update/check/updatecheckconfig.cxx763
-rw-r--r--extensions/source/update/check/updatecheckconfig.hxx238
-rw-r--r--extensions/source/update/check/updatecheckconfiglistener.hxx43
-rw-r--r--extensions/source/update/check/updatecheckjob.cxx426
-rw-r--r--extensions/source/update/check/updatehdl.cxx1316
-rw-r--r--extensions/source/update/check/updatehdl.hrc80
-rw-r--r--extensions/source/update/check/updatehdl.hxx215
-rw-r--r--extensions/source/update/check/updatehdl.src249
-rw-r--r--extensions/source/update/check/updateinfo.hxx86
-rw-r--r--extensions/source/update/check/updateprotocol.cxx333
-rw-r--r--extensions/source/update/check/updateprotocol.hxx56
-rw-r--r--extensions/source/update/check/updateprotocoltest.cxx94
-rw-r--r--extensions/source/update/check/updchk.xml49
-rw-r--r--extensions/source/update/exports.map10
-rw-r--r--extensions/source/update/feed/makefile.mk64
-rw-r--r--extensions/source/update/feed/test/makefile.mk58
-rw-r--r--extensions/source/update/feed/test/updatefeedtest.cxx106
-rw-r--r--extensions/source/update/feed/updatefeed.cxx875
-rw-r--r--extensions/source/update/feed/updatefeed.xml49
-rw-r--r--extensions/source/update/tools/makefile.mk68
-rw-r--r--extensions/source/update/tools/ztool.cxx63
-rw-r--r--extensions/source/update/ui/makefile.mk74
-rw-r--r--extensions/source/update/ui/updatecheckui.cxx1083
-rw-r--r--extensions/source/update/ui/updatecheckui.hrc36
-rw-r--r--extensions/source/update/ui/updatecheckui.src51
-rw-r--r--extensions/source/update/ui/updchkui.xml34
-rw-r--r--extensions/source/xmlextract/exports.map10
-rw-r--r--extensions/source/xmlextract/makefile.mk65
-rw-r--r--extensions/source/xmlextract/xmxcom.hxx65
-rw-r--r--extensions/source/xmlextract/xmxtrct.cxx197
-rw-r--r--extensions/source/xmlextract/xmxtrct.hxx54
-rw-r--r--extensions/source/xmlextract/xmxuno.cxx100
-rw-r--r--extensions/stardiv/fontest/fontest.idl111
-rw-r--r--extensions/stardiv/fontest/makefile.mk48
-rw-r--r--extensions/stardiv/oinstchk/makefile.mk47
-rw-r--r--extensions/stardiv/oinstchk/oinstchk.idl108
-rw-r--r--extensions/stardiv/pgp/makefile.mk53
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.cpp100
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.def9
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.dsp325
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.idl257
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.rc164
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.sln31
-rw-r--r--extensions/test/ole/AxTestComponents/AxTestComponents.vcproj819
-rw-r--r--extensions/test/ole/AxTestComponents/Basic.cpp1364
-rw-r--r--extensions/test/ole/AxTestComponents/Basic.h269
-rw-r--r--extensions/test/ole/AxTestComponents/Basic.rgs50
-rw-r--r--extensions/test/ole/AxTestComponents/Foo.cpp47
-rw-r--r--extensions/test/ole/AxTestComponents/Foo.h65
-rw-r--r--extensions/test/ole/AxTestComponents/StdAfx.cpp35
-rw-r--r--extensions/test/ole/AxTestComponents/StdAfx.h56
-rw-r--r--extensions/test/ole/AxTestComponents/readme.txt4
-rw-r--r--extensions/test/ole/AxTestComponents/resource.h44
-rw-r--r--extensions/test/ole/DCOM/Clients/WriterDemo/Module1.bas8
-rw-r--r--extensions/test/ole/DCOM/Clients/WriterDemo/client_writerdemo.vbp33
-rw-r--r--extensions/test/ole/DCOM/Clients/WriterDemo/client_writerdemo.vbw1
-rw-r--r--extensions/test/ole/DCOM/Clients/WriterDemo/readme.txt4
-rw-r--r--extensions/test/ole/DCOM/dcom_test/Module1.bas38
-rw-r--r--extensions/test/ole/DCOM/dcom_test/dcom_test.vbp37
-rw-r--r--extensions/test/ole/DCOM/dcom_test/dcom_test.vbw1
-rw-r--r--extensions/test/ole/DCOM/dcom_test/readme.txt5
-rw-r--r--extensions/test/ole/DCOM/scriptComponents/WriterDemo.wsc186
-rw-r--r--extensions/test/ole/DCOM/scriptComponents/readme.txt13
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.cpp72
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.def9
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.idl39
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.rc136
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.sln32
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EventListener.vcproj927
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EvtListener.cpp19
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EvtListener.h35
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/EvtListener.rgs26
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/StdAfx.cpp12
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/StdAfx.h27
-rw-r--r--extensions/test/ole/EventListenerSample/EventListener/resource.h17
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/Module1.bas9
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/VBEventListener.cls78
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/VBasicEventListener.dllbin0 -> 24576 bytes
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/VBasicEventListener.vbp38
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/VBasicEventListener.vbw2
-rw-r--r--extensions/test/ole/EventListenerSample/VBEventListener/readme.txt7
-rw-r--r--extensions/test/ole/EventListenerSample/events.htm98
-rw-r--r--extensions/test/ole/EventListenerSample/readme.txt20
-rw-r--r--extensions/test/ole/JScriptNewStyle.htm1054
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.cpp79
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.def9
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.dsp265
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.h33
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.odl82
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.rc145
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.sln25
-rw-r--r--extensions/test/ole/MfcControl/MfcControl.vcproj581
-rw-r--r--extensions/test/ole/MfcControl/MfcControlCtl.cpp344
-rw-r--r--extensions/test/ole/MfcControl/MfcControlCtl.h96
-rw-r--r--extensions/test/ole/MfcControl/MfcControlCtl.pngbin0 -> 204 bytes
-rw-r--r--extensions/test/ole/MfcControl/MfcControlPpg.cpp76
-rw-r--r--extensions/test/ole/MfcControl/MfcControlPpg.h46
-rw-r--r--extensions/test/ole/MfcControl/Resource.h20
-rw-r--r--extensions/test/ole/MfcControl/StdAfx.cpp5
-rw-r--r--extensions/test/ole/MfcControl/StdAfx.h30
-rw-r--r--extensions/test/ole/OleClient/OleClient.ini5
-rw-r--r--extensions/test/ole/OleClient/axhost.cxx56
-rw-r--r--extensions/test/ole/OleClient/axhost.hxx61
-rw-r--r--extensions/test/ole/OleClient/clientTest.cxx1325
-rw-r--r--extensions/test/ole/OleClient/funcs.cxx354
-rw-r--r--extensions/test/ole/OleClient/makefile.mk72
-rw-r--r--extensions/test/ole/OleClient/readme.txt10
-rw-r--r--extensions/test/ole/OleConverterVar1/convTest.cxx656
-rw-r--r--extensions/test/ole/OleConverterVar1/makefile.mk66
-rw-r--r--extensions/test/ole/OleConverterVar1/readme.txt10
-rw-r--r--extensions/test/ole/OleConverterVar1/smartarray.h233
-rw-r--r--extensions/test/ole/OleTest.htm1063
-rw-r--r--extensions/test/ole/ScriptTest.html1555
-rw-r--r--extensions/test/ole/StarBasic_OleClient/oleclient.bas609
-rw-r--r--extensions/test/ole/StarBasic_OleClient/readme.txt10
-rw-r--r--extensions/test/ole/VisualBasic/AssemblyInfo.vb33
-rw-r--r--extensions/test/ole/VisualBasic/Module1.vb853
-rw-r--r--extensions/test/ole/VisualBasic/Project1.sln20
-rw-r--r--extensions/test/ole/VisualBasic/Project1.vbproj90
-rw-r--r--extensions/test/ole/VisualBasic/readme.txt18
-rw-r--r--extensions/test/ole/callUnoToJava.htm538
-rw-r--r--extensions/test/ole/cpnt/cpnt.cxx2124
-rw-r--r--extensions/test/ole/cpnt/exports.dxp3
-rw-r--r--extensions/test/ole/cpnt/makefile.mk103
-rw-r--r--extensions/test/ole/cpnt/readme.txt21
-rw-r--r--extensions/test/ole/cppToUno/makefile.mk65
-rw-r--r--extensions/test/ole/cppToUno/readme.txt9
-rw-r--r--extensions/test/ole/cppToUno/testcppuno.cxx219
-rw-r--r--extensions/test/ole/cpptest/cpptest.cxx113
-rw-r--r--extensions/test/ole/cpptest/makefile.mk64
-rw-r--r--extensions/test/ole/cpptest/readme.txt6
-rw-r--r--extensions/test/ole/idl/oletest.idl308
-rw-r--r--extensions/test/ole/unloading/makefile.mk70
-rw-r--r--extensions/test/ole/unloading/readme.txt6
-rw-r--r--extensions/test/ole/unloading/unloadTest.cxx226
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/StdAfx.cpp35
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/StdAfx.h56
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/Test.cpp246
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/Test.dsp114
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/Test.sln19
-rw-r--r--extensions/test/ole/unoTocomCalls/Test/Test.vcproj247
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Basic.rgs27
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/BasicTest.rgs27
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Callback.cpp512
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Callback.h135
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Callback.rgs27
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Simple.cpp80
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Simple.h65
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/Simple.rgs27
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/StdAfx.cpp39
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/StdAfx.h57
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.cpp101
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.def10
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.dsp337
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.idl151
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.rc163
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.sln31
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/XCallback_Impl.vcproj816
-rw-r--r--extensions/test/ole/unoTocomCalls/XCallback_Impl/resource.h46
-rw-r--r--extensions/test/ole/unoTocomCalls/readme.txt9
-rw-r--r--extensions/test/pgp/TestPGP.java146
-rw-r--r--extensions/test/pgp/makefile.mk124
-rw-r--r--extensions/test/pgp/readme.txt33
-rw-r--r--extensions/test/sax/exports.dxp2
-rw-r--r--extensions/test/sax/factory.hxx31
-rw-r--r--extensions/test/sax/makefile.mk65
-rw-r--r--extensions/test/sax/testsax.cxx911
-rw-r--r--extensions/test/sax/testwriter.cxx772
-rw-r--r--extensions/test/stm/datatest.cxx1072
-rw-r--r--extensions/test/stm/exports.dxp2
-rw-r--r--extensions/test/stm/makefile.mk62
-rw-r--r--extensions/test/stm/marktest.cxx683
-rw-r--r--extensions/test/stm/pipetest.cxx448
-rw-r--r--extensions/test/stm/testfactreg.cxx172
-rw-r--r--extensions/test/stm/testfactreg.hxx110
-rw-r--r--extensions/util/hidother.src427
-rw-r--r--extensions/util/makefile.mk39
-rw-r--r--extensions/util/makefile.pmk29
-rw-r--r--extensions/util/target.pmk35
-rw-r--r--extensions/workben/makefile.mk174
-rw-r--r--extensions/workben/pythonautotest.cxx623
-rw-r--r--extensions/workben/pythontest.cxx557
-rw-r--r--extensions/workben/testcomponent.cxx222
-rw-r--r--extensions/workben/testframecontrol.cxx320
-rw-r--r--extensions/workben/testpgp.cxx844
-rw-r--r--extensions/workben/testresource.cxx92
-rw-r--r--extensions/workben/testresource.src30
-rw-r--r--external/StAX/README_jsr173_1.0_api.jar3
-rw-r--r--external/gcc3_specific/makefile.mk69
-rw-r--r--external/glibc-2.1.3.patch203
-rw-r--r--external/glibc/makefile.mk56
-rw-r--r--external/mingwheaders/makefile.mk209
-rw-r--r--external/mingwheaders/mingw_atl_headers.patch1654
-rw-r--r--external/mingwheaders/mingw_headers.patch2123
-rw-r--r--external/prj/build.lst5
-rw-r--r--external/prj/d.lst63
-rw-r--r--external/unowinreg/README2
-rw-r--r--extras/prj/build.lst31
-rw-r--r--extras/prj/d.lst12
-rw-r--r--extras/source/autotext/delzip1
-rw-r--r--extras/source/autotext/lang/af-ZA/acor_af-ZA.datbin0 -> 61723 bytes
-rw-r--r--extras/source/autotext/lang/bg/acor_bg-BG.datbin0 -> 3410 bytes
-rw-r--r--extras/source/autotext/lang/bg/crdbus50.baubin0 -> 14598 bytes
-rw-r--r--extras/source/autotext/lang/bg/standard.baubin0 -> 56036 bytes
-rw-r--r--extras/source/autotext/lang/bg/template.baubin0 -> 59956 bytes
-rw-r--r--extras/source/autotext/lang/cs/acor_cs-CZ.datbin0 -> 99637 bytes
-rw-r--r--extras/source/autotext/lang/cs/crdbus50.baubin0 -> 34953 bytes
-rw-r--r--extras/source/autotext/lang/cs/crdbus54.baubin0 -> 34910 bytes
-rw-r--r--extras/source/autotext/lang/cs/standard.baubin0 -> 86365 bytes
-rw-r--r--extras/source/autotext/lang/cs/template.baubin0 -> 58306 bytes
-rw-r--r--extras/source/autotext/lang/da/acor_da-DK.datbin0 -> 68970 bytes
-rw-r--r--extras/source/autotext/lang/da/crdbus50.baubin0 -> 28865 bytes
-rw-r--r--extras/source/autotext/lang/da/standard.baubin0 -> 55464 bytes
-rw-r--r--extras/source/autotext/lang/da/template.baubin0 -> 45130 bytes
-rw-r--r--extras/source/autotext/lang/de/acor_de-DE.datbin0 -> 52613 bytes
-rw-r--r--extras/source/autotext/lang/de/crdbus50.baubin0 -> 20777 bytes
-rw-r--r--extras/source/autotext/lang/de/standard.baubin0 -> 48317 bytes
-rw-r--r--extras/source/autotext/lang/de/template.baubin0 -> 49052 bytes
-rw-r--r--extras/source/autotext/lang/delzip1
-rw-r--r--extras/source/autotext/lang/en-AU/acor_en-AU.datbin0 -> 79211 bytes
-rw-r--r--extras/source/autotext/lang/en-GB/acor_en-GB.datbin0 -> 79212 bytes
-rw-r--r--extras/source/autotext/lang/en-GB/crdbus50.baubin0 -> 30564 bytes
-rw-r--r--extras/source/autotext/lang/en-GB/standard.baubin0 -> 68960 bytes
-rw-r--r--extras/source/autotext/lang/en-GB/template.baubin0 -> 49042 bytes
-rw-r--r--extras/source/autotext/lang/en-US/acor_en-US.datbin0 -> 78472 bytes
-rw-r--r--extras/source/autotext/lang/en-US/crdbus50.baubin0 -> 29311 bytes
-rw-r--r--extras/source/autotext/lang/en-US/standard.baubin0 -> 57462 bytes
-rw-r--r--extras/source/autotext/lang/en-US/template.baubin0 -> 45671 bytes
-rw-r--r--extras/source/autotext/lang/en-ZA/acor_en-ZA.datbin0 -> 81042 bytes
-rw-r--r--extras/source/autotext/lang/es/acor_es-ES.datbin0 -> 39611 bytes
-rw-r--r--extras/source/autotext/lang/es/crdbus50.baubin0 -> 29126 bytes
-rw-r--r--extras/source/autotext/lang/es/standard.baubin0 -> 43448 bytes
-rw-r--r--extras/source/autotext/lang/es/template.baubin0 -> 45738 bytes
-rw-r--r--extras/source/autotext/lang/eu/acor_eu.datbin0 -> 78988 bytes
-rwxr-xr-xextras/source/autotext/lang/eu/crdbus50.baubin0 -> 29311 bytes
-rwxr-xr-xextras/source/autotext/lang/eu/standard.baubin0 -> 57462 bytes
-rwxr-xr-xextras/source/autotext/lang/eu/template.baubin0 -> 45671 bytes
-rw-r--r--extras/source/autotext/lang/fa/acor_fa-IR.datbin0 -> 629744 bytes
-rw-r--r--extras/source/autotext/lang/fi/acor_fi-FI.datbin0 -> 5810 bytes
-rw-r--r--extras/source/autotext/lang/fr/acor_fr-FR.datbin0 -> 31897 bytes
-rw-r--r--extras/source/autotext/lang/fr/crdbus50.baubin0 -> 29255 bytes
-rw-r--r--extras/source/autotext/lang/fr/standard.baubin0 -> 48704 bytes
-rw-r--r--extras/source/autotext/lang/fr/template.baubin0 -> 45856 bytes
-rw-r--r--extras/source/autotext/lang/hu/acor_hu-HU.datbin0 -> 96683 bytes
-rw-r--r--extras/source/autotext/lang/hu/crdbus50.baubin0 -> 29629 bytes
-rw-r--r--extras/source/autotext/lang/hu/crdbus54.baubin0 -> 29564 bytes
-rw-r--r--extras/source/autotext/lang/hu/mytexts.baubin0 -> 577 bytes
-rw-r--r--extras/source/autotext/lang/hu/standard.baubin0 -> 44813 bytes
-rw-r--r--extras/source/autotext/lang/hu/template.baubin0 -> 53009 bytes
-rw-r--r--extras/source/autotext/lang/it/acor_it-IT.datbin0 -> 13337 bytes
-rw-r--r--extras/source/autotext/lang/it/crdbus50.baubin0 -> 29144 bytes
-rw-r--r--extras/source/autotext/lang/it/standard.baubin0 -> 44669 bytes
-rw-r--r--extras/source/autotext/lang/it/template.baubin0 -> 45994 bytes
-rw-r--r--extras/source/autotext/lang/ja/acor_ja-JP.datbin0 -> 77736 bytes
-rw-r--r--extras/source/autotext/lang/ja/crdbus50.baubin0 -> 15065 bytes
-rw-r--r--extras/source/autotext/lang/ja/standard.baubin0 -> 36137 bytes
-rw-r--r--extras/source/autotext/lang/ja/template.baubin0 -> 46244 bytes
-rw-r--r--extras/source/autotext/lang/km/crdbus50.baubin0 -> 29311 bytes
-rw-r--r--extras/source/autotext/lang/km/standard.baubin0 -> 57462 bytes
-rw-r--r--extras/source/autotext/lang/km/template.baubin0 -> 45671 bytes
-rw-r--r--extras/source/autotext/lang/ko/acor_ko-KR.datbin0 -> 77736 bytes
-rw-r--r--extras/source/autotext/lang/ko/crdbus50.baubin0 -> 15587 bytes
-rw-r--r--extras/source/autotext/lang/ko/standard.baubin0 -> 40482 bytes
-rw-r--r--extras/source/autotext/lang/ko/template.baubin0 -> 46406 bytes
-rw-r--r--extras/source/autotext/lang/lb-LU/acor_lb-LU.datbin0 -> 45098 bytes
-rw-r--r--extras/source/autotext/lang/makefile.mk50
-rw-r--r--extras/source/autotext/lang/mn/acor_mn-MN.datbin0 -> 31558 bytes
-rw-r--r--extras/source/autotext/lang/mn/crdbus50.baubin0 -> 31760 bytes
-rw-r--r--extras/source/autotext/lang/mn/standard.baubin0 -> 64482 bytes
-rw-r--r--extras/source/autotext/lang/mn/template.baubin0 -> 50850 bytes
-rw-r--r--extras/source/autotext/lang/nl/acor_nl-NL.datbin0 -> 18708 bytes
-rw-r--r--extras/source/autotext/lang/nl/crdbus50.baubin0 -> 34228 bytes
-rw-r--r--extras/source/autotext/lang/nl/standard.baubin0 -> 40557 bytes
-rw-r--r--extras/source/autotext/lang/nl/template.baubin0 -> 39676 bytes
-rw-r--r--extras/source/autotext/lang/pl/acor_pl-PL.datbin0 -> 79983 bytes
-rw-r--r--extras/source/autotext/lang/pl/crdbus50.baubin0 -> 16633 bytes
-rw-r--r--extras/source/autotext/lang/pl/standard.baubin0 -> 33032 bytes
-rw-r--r--extras/source/autotext/lang/pl/template.baubin0 -> 7581 bytes
-rw-r--r--extras/source/autotext/lang/pt-BR/acor_pt-BR.datbin0 -> 469488 bytes
-rw-r--r--extras/source/autotext/lang/pt-BR/crdbus50.baubin0 -> 14627 bytes
-rw-r--r--extras/source/autotext/lang/pt-BR/standard.baubin0 -> 36413 bytes
-rw-r--r--extras/source/autotext/lang/pt-BR/template.baubin0 -> 46270 bytes
-rw-r--r--extras/source/autotext/lang/pt/acor_pt-PT.datbin0 -> 15141 bytes
-rw-r--r--extras/source/autotext/lang/pt/crdbus50.baubin0 -> 36662 bytes
-rw-r--r--extras/source/autotext/lang/pt/standard.baubin0 -> 61444 bytes
-rw-r--r--extras/source/autotext/lang/pt/template.baubin0 -> 7042 bytes
-rw-r--r--extras/source/autotext/lang/ru/acor_ru-RU.datbin0 -> 25673 bytes
-rw-r--r--extras/source/autotext/lang/ru/crdbus50.baubin0 -> 29311 bytes
-rw-r--r--extras/source/autotext/lang/ru/standard.baubin0 -> 57462 bytes
-rw-r--r--extras/source/autotext/lang/ru/template.baubin0 -> 45671 bytes
-rw-r--r--extras/source/autotext/lang/sk/acor_sk-SK.datbin0 -> 52356 bytes
-rw-r--r--extras/source/autotext/lang/sk/crdbus50.baubin0 -> 30465 bytes
-rw-r--r--extras/source/autotext/lang/sk/crdbus54.baubin0 -> 30842 bytes
-rw-r--r--extras/source/autotext/lang/sk/standard.baubin0 -> 92337 bytes
-rw-r--r--extras/source/autotext/lang/sk/template.baubin0 -> 60907 bytes
-rw-r--r--extras/source/autotext/lang/sl/acor_sl-SI.datbin0 -> 46882 bytes
-rw-r--r--extras/source/autotext/lang/sl/crdbus50.baubin0 -> 30684 bytes
-rw-r--r--extras/source/autotext/lang/sl/crdbus54.baubin0 -> 30620 bytes
-rw-r--r--extras/source/autotext/lang/sl/mytexts.baubin0 -> 570 bytes
-rw-r--r--extras/source/autotext/lang/sl/standard.baubin0 -> 59934 bytes
-rw-r--r--extras/source/autotext/lang/sl/template.baubin0 -> 61243 bytes
-rw-r--r--extras/source/autotext/lang/sv/acor_sv-SE.datbin0 -> 15453 bytes
-rw-r--r--extras/source/autotext/lang/sv/crdbus50.baubin0 -> 29241 bytes
-rw-r--r--extras/source/autotext/lang/sv/standard.baubin0 -> 38778 bytes
-rw-r--r--extras/source/autotext/lang/sv/template.baubin0 -> 45349 bytes
-rw-r--r--extras/source/autotext/lang/tr/acor_tr-TR.datbin0 -> 16444 bytes
-rw-r--r--extras/source/autotext/lang/tr/crdbus50.baubin0 -> 143872 bytes
-rw-r--r--extras/source/autotext/lang/tr/template.baubin0 -> 28672 bytes
-rw-r--r--extras/source/autotext/lang/vi/acor_vi-VN.datbin0 -> 77337 bytes
-rw-r--r--extras/source/autotext/lang/zh-CN/acor_zh-CN.datbin0 -> 14211 bytes
-rw-r--r--extras/source/autotext/lang/zh-CN/crdbus50.baubin0 -> 15356 bytes
-rw-r--r--extras/source/autotext/lang/zh-CN/standard.baubin0 -> 38238 bytes
-rw-r--r--extras/source/autotext/lang/zh-CN/template.baubin0 -> 46139 bytes
-rw-r--r--extras/source/autotext/lang/zh-TW/acor_zh-TW.datbin0 -> 14211 bytes
-rw-r--r--extras/source/autotext/lang/zh-TW/crdbus50.baubin0 -> 15481 bytes
-rw-r--r--extras/source/autotext/lang/zh-TW/standard.baubin0 -> 35426 bytes
-rw-r--r--extras/source/autotext/lang/zh-TW/template.baubin0 -> 47136 bytes
-rw-r--r--extras/source/autotext/makefile.mk53
-rw-r--r--extras/source/autotext/mytexts.baubin0 -> 567 bytes
-rw-r--r--extras/source/database/biblio.dbfbin0 -> 343909 bytes
-rw-r--r--extras/source/database/biblio.dbtbin0 -> 564226 bytes
-rw-r--r--extras/source/database/biblio.odbbin0 -> 1661 bytes
-rw-r--r--extras/source/database/delzip1
-rw-r--r--extras/source/database/makefile.mk53
-rw-r--r--extras/source/gallery/apples.gifbin0 -> 6197 bytes
-rw-r--r--extras/source/gallery/bigapple.gifbin0 -> 35287 bytes
-rw-r--r--extras/source/gallery/bullets/blkpearl.gifbin0 -> 929 bytes
-rw-r--r--extras/source/gallery/bullets/bluarrow.gifbin0 -> 93 bytes
-rw-r--r--extras/source/gallery/bullets/bluball.gifbin0 -> 103 bytes
-rw-r--r--extras/source/gallery/bullets/bludiamd.gifbin0 -> 111 bytes
-rw-r--r--extras/source/gallery/bullets/bluered.gifbin0 -> 507 bytes
-rw-r--r--extras/source/gallery/bullets/blusqare.gifbin0 -> 96 bytes
-rw-r--r--extras/source/gallery/bullets/blustar.gifbin0 -> 146 bytes
-rw-r--r--extras/source/gallery/bullets/coffee_1.gifbin0 -> 644 bytes
-rw-r--r--extras/source/gallery/bullets/coffee_2.gifbin0 -> 656 bytes
-rw-r--r--extras/source/gallery/bullets/coffee_3.gifbin0 -> 625 bytes
-rw-r--r--extras/source/gallery/bullets/coffee_4.gifbin0 -> 605 bytes
-rw-r--r--extras/source/gallery/bullets/coffee_5.gifbin0 -> 671 bytes
-rw-r--r--extras/source/gallery/bullets/con-blue.gifbin0 -> 594 bytes
-rw-r--r--extras/source/gallery/bullets/con-cyan.gifbin0 -> 614 bytes
-rw-r--r--extras/source/gallery/bullets/con-green.gifbin0 -> 393 bytes
-rw-r--r--extras/source/gallery/bullets/con-lilac.gifbin0 -> 600 bytes
-rw-r--r--extras/source/gallery/bullets/con-oran.gifbin0 -> 594 bytes
-rw-r--r--extras/source/gallery/bullets/con-pink.gifbin0 -> 394 bytes
-rw-r--r--extras/source/gallery/bullets/con-red.gifbin0 -> 388 bytes
-rw-r--r--extras/source/gallery/bullets/con-yellow.gifbin0 -> 375 bytes
-rw-r--r--extras/source/gallery/bullets/corner_1.gifbin0 -> 399 bytes
-rw-r--r--extras/source/gallery/bullets/corner_2.gifbin0 -> 399 bytes
-rw-r--r--extras/source/gallery/bullets/corner_3.gifbin0 -> 402 bytes
-rw-r--r--extras/source/gallery/bullets/corner_4.gifbin0 -> 408 bytes
-rw-r--r--extras/source/gallery/bullets/darkball.gifbin0 -> 924 bytes
-rw-r--r--extras/source/gallery/bullets/darkblue.gifbin0 -> 527 bytes
-rw-r--r--extras/source/gallery/bullets/delzip1
-rw-r--r--extras/source/gallery/bullets/gldpearl.gifbin0 -> 929 bytes
-rw-r--r--extras/source/gallery/bullets/golfball.gifbin0 -> 960 bytes
-rw-r--r--extras/source/gallery/bullets/grnarrow.gifbin0 -> 94 bytes
-rw-r--r--extras/source/gallery/bullets/grnball.gifbin0 -> 101 bytes
-rw-r--r--extras/source/gallery/bullets/grndiamd.gifbin0 -> 111 bytes
-rw-r--r--extras/source/gallery/bullets/grnpearl.gifbin0 -> 935 bytes
-rw-r--r--extras/source/gallery/bullets/grnsqare.gifbin0 -> 97 bytes
-rw-r--r--extras/source/gallery/bullets/grnstar.gifbin0 -> 144 bytes
-rw-r--r--extras/source/gallery/bullets/gryarrow.gifbin0 -> 94 bytes
-rw-r--r--extras/source/gallery/bullets/gryball.gifbin0 -> 103 bytes
-rw-r--r--extras/source/gallery/bullets/grydiamd.gifbin0 -> 113 bytes
-rw-r--r--extras/source/gallery/bullets/grysqare.gifbin0 -> 98 bytes
-rw-r--r--extras/source/gallery/bullets/grystar.gifbin0 -> 144 bytes
-rw-r--r--extras/source/gallery/bullets/makefile.mk49
-rw-r--r--extras/source/gallery/bullets/orgarrow.gifbin0 -> 96 bytes
-rw-r--r--extras/source/gallery/bullets/orgball.gifbin0 -> 104 bytes
-rw-r--r--extras/source/gallery/bullets/orgdiamd.gifbin0 -> 149 bytes
-rw-r--r--extras/source/gallery/bullets/orgsqare.gifbin0 -> 99 bytes
-rw-r--r--extras/source/gallery/bullets/orgstar.gifbin0 -> 143 bytes
-rw-r--r--extras/source/gallery/bullets/pebble_1.gifbin0 -> 434 bytes
-rw-r--r--extras/source/gallery/bullets/pebble_2.gifbin0 -> 460 bytes
-rw-r--r--extras/source/gallery/bullets/pebble_3.gifbin0 -> 463 bytes
-rw-r--r--extras/source/gallery/bullets/poliball.gifbin0 -> 945 bytes
-rw-r--r--extras/source/gallery/bullets/popcorn_1.gifbin0 -> 1005 bytes
-rw-r--r--extras/source/gallery/bullets/popcorn_2.gifbin0 -> 1249 bytes
-rw-r--r--extras/source/gallery/bullets/rainbow.gifbin0 -> 527 bytes
-rw-r--r--extras/source/gallery/bullets/redarrow.gifbin0 -> 97 bytes
-rw-r--r--extras/source/gallery/bullets/redball.gifbin0 -> 103 bytes
-rw-r--r--extras/source/gallery/bullets/reddiamd.gifbin0 -> 111 bytes
-rw-r--r--extras/source/gallery/bullets/redsqare.gifbin0 -> 97 bytes
-rw-r--r--extras/source/gallery/bullets/redstar.gifbin0 -> 145 bytes
-rw-r--r--extras/source/gallery/bullets/whtpearl.gifbin0 -> 931 bytes
-rw-r--r--extras/source/gallery/bullets/ylwarrow.gifbin0 -> 126 bytes
-rw-r--r--extras/source/gallery/bullets/ylwball.gifbin0 -> 133 bytes
-rw-r--r--extras/source/gallery/bullets/ylwdiamd.gifbin0 -> 145 bytes
-rw-r--r--extras/source/gallery/bullets/ylwsqare.gifbin0 -> 96 bytes
-rw-r--r--extras/source/gallery/bullets/ylwstar.gifbin0 -> 145 bytes
-rw-r--r--extras/source/gallery/delzip0
-rw-r--r--extras/source/gallery/flower.gifbin0 -> 6073 bytes
-rw-r--r--extras/source/gallery/flowers.gifbin0 -> 9333 bytes
-rw-r--r--extras/source/gallery/gallery_sound/delzip1
-rw-r--r--extras/source/gallery/gallery_sound/makefile.mk49
-rw-r--r--extras/source/gallery/gallery_sound/sg100.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_sound/sg100.thmbin0 -> 538 bytes
-rw-r--r--extras/source/gallery/gallery_sound/sg30.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_sound/sg30.thmbin0 -> 565 bytes
-rw-r--r--extras/source/gallery/gallery_system/delzip1
-rw-r--r--extras/source/gallery/gallery_system/makefile.mk49
-rw-r--r--extras/source/gallery/gallery_system/sg1.sdgbin0 -> 29872 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg1.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg1.thmbin0 -> 2432 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg2.sdgbin0 -> 25785 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg2.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg2.thmbin0 -> 1266 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg24.sdgbin0 -> 49161 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg24.sdvbin0 -> 359424 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg24.thmbin0 -> 1236 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg25.sdgbin0 -> 55650 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg25.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg25.thmbin0 -> 2016 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg3.sdgbin0 -> 270058 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg3.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg3.thmbin0 -> 2503 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg36.sdgbin0 -> 65354 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg36.sdvbin0 -> 589312 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg36.thmbin0 -> 1163 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg4.sdgbin0 -> 60533 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg4.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg4.thmbin0 -> 3323 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg9.sdgbin0 -> 5331 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg9.sdvbin0 -> 2048 bytes
-rw-r--r--extras/source/gallery/gallery_system/sg9.thmbin0 -> 1458 bytes
-rw-r--r--extras/source/gallery/htmlexpo/bludown.gifbin0 -> 873 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blufirs.gifbin0 -> 906 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blufirs_.gifbin0 -> 884 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blulast.gifbin0 -> 909 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blulast_.gifbin0 -> 898 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blunav.gifbin0 -> 1441 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blunext.gifbin0 -> 886 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blunext_.gifbin0 -> 841 bytes
-rw-r--r--extras/source/gallery/htmlexpo/bluprev.gifbin0 -> 893 bytes
-rw-r--r--extras/source/gallery/htmlexpo/bluprev_.gifbin0 -> 841 bytes
-rw-r--r--extras/source/gallery/htmlexpo/blutext.gifbin0 -> 1390 bytes
-rw-r--r--extras/source/gallery/htmlexpo/bluup.gifbin0 -> 874 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubdown.gifbin0 -> 1628 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubfirs.gifbin0 -> 1704 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubfirs_.gifbin0 -> 1320 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cublast.gifbin0 -> 1712 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cublast_.gifbin0 -> 1282 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubnav.gifbin0 -> 1719 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubnext.gifbin0 -> 1651 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubnext_.gifbin0 -> 1244 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubprev.gifbin0 -> 1648 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubprev_.gifbin0 -> 1239 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubtext.gifbin0 -> 1687 bytes
-rw-r--r--extras/source/gallery/htmlexpo/cubup.gifbin0 -> 1646 bytes
-rw-r--r--extras/source/gallery/htmlexpo/delzip1
-rw-r--r--extras/source/gallery/htmlexpo/gredown.gifbin0 -> 1360 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grefirs.gifbin0 -> 1517 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grefirs_.gifbin0 -> 1442 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grelast.gifbin0 -> 1457 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grelast_.gifbin0 -> 1290 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grenav.gifbin0 -> 1582 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grenext.gifbin0 -> 1372 bytes
-rw-r--r--extras/source/gallery/htmlexpo/grenext_.gifbin0 -> 1184 bytes
-rw-r--r--extras/source/gallery/htmlexpo/greprev.gifbin0 -> 1370 bytes
-rw-r--r--extras/source/gallery/htmlexpo/greprev_.gifbin0 -> 1180 bytes
-rw-r--r--extras/source/gallery/htmlexpo/gretext.gifbin0 -> 1433 bytes
-rw-r--r--extras/source/gallery/htmlexpo/greup.gifbin0 -> 1365 bytes
-rw-r--r--extras/source/gallery/htmlexpo/makefile.mk49
-rw-r--r--extras/source/gallery/htmlexpo/simdown.gifbin0 -> 439 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simfirs.gifbin0 -> 477 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simfirs_.gifbin0 -> 477 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simlast.gifbin0 -> 483 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simlast_.gifbin0 -> 624 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simnav.gifbin0 -> 483 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simnext.gifbin0 -> 448 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simnext_.gifbin0 -> 445 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simprev.gifbin0 -> 444 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simprev_.gifbin0 -> 446 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simtext.gifbin0 -> 646 bytes
-rw-r--r--extras/source/gallery/htmlexpo/simup.gifbin0 -> 439 bytes
-rw-r--r--extras/source/gallery/makefile.mk49
-rw-r--r--extras/source/gallery/rulers/blkballs.gifbin0 -> 2272 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr1.gifbin0 -> 6583 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr2.gifbin0 -> 2965 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr3.gifbin0 -> 2011 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr4.gifbin0 -> 2561 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr5.gifbin0 -> 5708 bytes
-rw-r--r--extras/source/gallery/rulers/blurulr6.gifbin0 -> 1878 bytes
-rw-r--r--extras/source/gallery/rulers/delzip1
-rw-r--r--extras/source/gallery/rulers/gldballs.gifbin0 -> 2240 bytes
-rw-r--r--extras/source/gallery/rulers/grnballs.gifbin0 -> 3702 bytes
-rw-r--r--extras/source/gallery/rulers/grnrulr1.gifbin0 -> 2409 bytes
-rw-r--r--extras/source/gallery/rulers/grnrulr2.gifbin0 -> 2759 bytes
-rw-r--r--extras/source/gallery/rulers/grnrulr3.gifbin0 -> 2599 bytes
-rw-r--r--extras/source/gallery/rulers/grnrulr4.gifbin0 -> 3172 bytes
-rw-r--r--extras/source/gallery/rulers/gryrulr1.gifbin0 -> 2144 bytes
-rw-r--r--extras/source/gallery/rulers/gryrulr2.gifbin0 -> 3014 bytes
-rw-r--r--extras/source/gallery/rulers/gryrulr3.gifbin0 -> 1479 bytes
-rw-r--r--extras/source/gallery/rulers/makefile.mk49
-rw-r--r--extras/source/gallery/rulers/orgrulr1.gifbin0 -> 2667 bytes
-rw-r--r--extras/source/gallery/rulers/redrulr1.gifbin0 -> 2138 bytes
-rw-r--r--extras/source/gallery/rulers/redrulr2.gifbin0 -> 2037 bytes
-rw-r--r--extras/source/gallery/rulers/redrulr3.gifbin0 -> 2192 bytes
-rw-r--r--extras/source/gallery/rulers/redrulr4.gifbin0 -> 2089 bytes
-rw-r--r--extras/source/gallery/rulers/redrulr5.gifbin0 -> 1343 bytes
-rw-r--r--extras/source/gallery/rulers/striped.gifbin0 -> 1553 bytes
-rw-r--r--extras/source/gallery/rulers/whtballs.gifbin0 -> 3616 bytes
-rw-r--r--extras/source/gallery/rulers/ylwrulr1.gifbin0 -> 2667 bytes
-rw-r--r--extras/source/gallery/sky.gifbin0 -> 7517 bytes
-rw-r--r--extras/source/gallery/sounds/apert.wavbin0 -> 47760 bytes
-rw-r--r--extras/source/gallery/sounds/apert2.wavbin0 -> 60904 bytes
-rw-r--r--extras/source/gallery/sounds/applause.wavbin0 -> 90472 bytes
-rw-r--r--extras/source/gallery/sounds/beam.wavbin0 -> 43728 bytes
-rw-r--r--extras/source/gallery/sounds/beam2.wavbin0 -> 73456 bytes
-rw-r--r--extras/source/gallery/sounds/cow.wavbin0 -> 37546 bytes
-rw-r--r--extras/source/gallery/sounds/curve.wavbin0 -> 134660 bytes
-rw-r--r--extras/source/gallery/sounds/delzip1
-rw-r--r--extras/source/gallery/sounds/drama.wavbin0 -> 162366 bytes
-rw-r--r--extras/source/gallery/sounds/explos.wavbin0 -> 47532 bytes
-rw-r--r--extras/source/gallery/sounds/falling.wavbin0 -> 87008 bytes
-rw-r--r--extras/source/gallery/sounds/glasses.wavbin0 -> 36270 bytes
-rw-r--r--extras/source/gallery/sounds/gong.wavbin0 -> 191292 bytes
-rw-r--r--extras/source/gallery/sounds/horse.wavbin0 -> 41958 bytes
-rw-r--r--extras/source/gallery/sounds/kling.wavbin0 -> 46376 bytes
-rw-r--r--extras/source/gallery/sounds/kongas.wavbin0 -> 54866 bytes
-rw-r--r--extras/source/gallery/sounds/laser.wavbin0 -> 8408 bytes
-rw-r--r--extras/source/gallery/sounds/left.wavbin0 -> 29788 bytes
-rw-r--r--extras/source/gallery/sounds/makefile.mk49
-rw-r--r--extras/source/gallery/sounds/nature1.wavbin0 -> 83102 bytes
-rw-r--r--extras/source/gallery/sounds/nature2.wavbin0 -> 37164 bytes
-rw-r--r--extras/source/gallery/sounds/ok.wavbin0 -> 8862 bytes
-rw-r--r--extras/source/gallery/sounds/pluck.wavbin0 -> 28510 bytes
-rw-r--r--extras/source/gallery/sounds/roll.wavbin0 -> 242648 bytes
-rw-r--r--extras/source/gallery/sounds/romans.wavbin0 -> 90466 bytes
-rw-r--r--extras/source/gallery/sounds/soft.wavbin0 -> 185752 bytes
-rw-r--r--extras/source/gallery/sounds/space.wavbin0 -> 133758 bytes
-rw-r--r--extras/source/gallery/sounds/space2.wavbin0 -> 192686 bytes
-rw-r--r--extras/source/gallery/sounds/space3.wavbin0 -> 144748 bytes
-rw-r--r--extras/source/gallery/sounds/sparcle.wavbin0 -> 65580 bytes
-rw-r--r--extras/source/gallery/sounds/strom.wavbin0 -> 85106 bytes
-rw-r--r--extras/source/gallery/sounds/theetone.wavbin0 -> 49506 bytes
-rw-r--r--extras/source/gallery/sounds/top.wavbin0 -> 69242 bytes
-rw-r--r--extras/source/gallery/sounds/train.wavbin0 -> 56716 bytes
-rw-r--r--extras/source/gallery/sounds/untie.wavbin0 -> 190884 bytes
-rw-r--r--extras/source/gallery/sounds/ups.wavbin0 -> 28682 bytes
-rw-r--r--extras/source/gallery/sounds/wallewal.wavbin0 -> 104018 bytes
-rw-r--r--extras/source/gallery/www-back/aqua.jpgbin0 -> 5511 bytes
-rw-r--r--extras/source/gallery/www-back/bathroom.jpgbin0 -> 4473 bytes
-rw-r--r--extras/source/gallery/www-back/blocks.jpgbin0 -> 5664 bytes
-rw-r--r--extras/source/gallery/www-back/blow_green.jpgbin0 -> 3159 bytes
-rw-r--r--extras/source/gallery/www-back/blueblop.jpgbin0 -> 4469 bytes
-rw-r--r--extras/source/gallery/www-back/bulging.jpgbin0 -> 4523 bytes
-rw-r--r--extras/source/gallery/www-back/canvas_blue.jpgbin0 -> 5961 bytes
-rw-r--r--extras/source/gallery/www-back/cheese.jpgbin0 -> 3029 bytes
-rw-r--r--extras/source/gallery/www-back/chocolate.jpgbin0 -> 4316 bytes
-rw-r--r--extras/source/gallery/www-back/citrus.jpgbin0 -> 7669 bytes
-rw-r--r--extras/source/gallery/www-back/confetti.jpgbin0 -> 11733 bytes
-rw-r--r--extras/source/gallery/www-back/daisy.jpgbin0 -> 8197 bytes
-rw-r--r--extras/source/gallery/www-back/delzip1
-rw-r--r--extras/source/gallery/www-back/fluffy-grey.jpgbin0 -> 4314 bytes
-rw-r--r--extras/source/gallery/www-back/fluffy.jpgbin0 -> 6890 bytes
-rw-r--r--extras/source/gallery/www-back/fuzzy-blue.jpgbin0 -> 11472 bytes
-rw-r--r--extras/source/gallery/www-back/fuzzy-darkgrey.jpgbin0 -> 7293 bytes
-rw-r--r--extras/source/gallery/www-back/fuzzy-grey.jpgbin0 -> 6340 bytes
-rw-r--r--extras/source/gallery/www-back/fuzzy-lightgrey.jpgbin0 -> 4321 bytes
-rw-r--r--extras/source/gallery/www-back/fuzzy_light.jpgbin0 -> 4880 bytes
-rw-r--r--extras/source/gallery/www-back/gregre.gifbin0 -> 2326 bytes
-rw-r--r--extras/source/gallery/www-back/grey.gifbin0 -> 8529 bytes
-rw-r--r--extras/source/gallery/www-back/grypaws.gifbin0 -> 3537 bytes
-rw-r--r--extras/source/gallery/www-back/ice-blue.jpgbin0 -> 4675 bytes
-rw-r--r--extras/source/gallery/www-back/ice-light.jpgbin0 -> 3182 bytes
-rw-r--r--extras/source/gallery/www-back/imitation_leather.jpgbin0 -> 4207 bytes
-rw-r--r--extras/source/gallery/www-back/interstices.jpgbin0 -> 3964 bytes
-rw-r--r--extras/source/gallery/www-back/jeans.jpgbin0 -> 7002 bytes
-rw-r--r--extras/source/gallery/www-back/jeansblk.jpgbin0 -> 5436 bytes
-rw-r--r--extras/source/gallery/www-back/lawn-artificial.jpgbin0 -> 13522 bytes
-rw-r--r--extras/source/gallery/www-back/lawn.jpgbin0 -> 11635 bytes
-rw-r--r--extras/source/gallery/www-back/lightblue-wet.jpgbin0 -> 5235 bytes
-rw-r--r--extras/source/gallery/www-back/linen-fine.jpgbin0 -> 5580 bytes
-rw-r--r--extras/source/gallery/www-back/lino-green.jpgbin0 -> 6275 bytes
-rw-r--r--extras/source/gallery/www-back/liquid-blue.jpgbin0 -> 3497 bytes
-rw-r--r--extras/source/gallery/www-back/makefile.mk49
-rw-r--r--extras/source/gallery/www-back/marble.jpgbin0 -> 4161 bytes
-rw-r--r--extras/source/gallery/www-back/marble_dark.jpgbin0 -> 6805 bytes
-rw-r--r--extras/source/gallery/www-back/mazes.jpgbin0 -> 9817 bytes
-rw-r--r--extras/source/gallery/www-back/mint.gifbin0 -> 4469 bytes
-rw-r--r--extras/source/gallery/www-back/notes.gifbin0 -> 1429 bytes
-rw-r--r--extras/source/gallery/www-back/pattern.jpgbin0 -> 13299 bytes
-rw-r--r--extras/source/gallery/www-back/pebble-light.jpgbin0 -> 5816 bytes
-rw-r--r--extras/source/gallery/www-back/pink.gifbin0 -> 4687 bytes
-rw-r--r--extras/source/gallery/www-back/pool.jpgbin0 -> 6005 bytes
-rw-r--r--extras/source/gallery/www-back/popcorn.jpgbin0 -> 12694 bytes
-rw-r--r--extras/source/gallery/www-back/purple.jpgbin0 -> 4257 bytes
-rw-r--r--extras/source/gallery/www-back/reddark.jpgbin0 -> 4968 bytes
-rw-r--r--extras/source/gallery/www-back/rings-green.jpgbin0 -> 5094 bytes
-rw-r--r--extras/source/gallery/www-back/rings-orange.jpgbin0 -> 6445 bytes
-rw-r--r--extras/source/gallery/www-back/roses.jpgbin0 -> 8323 bytes
-rw-r--r--extras/source/gallery/www-back/sand-light.jpgbin0 -> 4049 bytes
-rw-r--r--extras/source/gallery/www-back/sand.jpgbin0 -> 5402 bytes
-rw-r--r--extras/source/gallery/www-back/sky.jpgbin0 -> 1969 bytes
-rw-r--r--extras/source/gallery/www-back/soft-structure_grey.jpgbin0 -> 4818 bytes
-rw-r--r--extras/source/gallery/www-back/space.jpgbin0 -> 3011 bytes
-rw-r--r--extras/source/gallery/www-back/stone-dark.jpgbin0 -> 6351 bytes
-rw-r--r--extras/source/gallery/www-back/stone.jpgbin0 -> 7011 bytes
-rw-r--r--extras/source/gallery/www-back/structure.jpgbin0 -> 3834 bytes
-rw-r--r--extras/source/gallery/www-back/structure_darkgreen.gifbin0 -> 3782 bytes
-rw-r--r--extras/source/gallery/www-back/structure_green.jpgbin0 -> 4035 bytes
-rw-r--r--extras/source/gallery/www-back/wall-grey.jpgbin0 -> 5414 bytes
-rw-r--r--extras/source/gallery/www-back/wet-turquoise.jpgbin0 -> 3119 bytes
-rw-r--r--extras/source/gallery/www-back/wood.jpgbin0 -> 10382 bytes
-rw-r--r--extras/source/gallery/www-graf/bluat.gifbin0 -> 1330 bytes
-rw-r--r--extras/source/gallery/www-graf/bluback.gifbin0 -> 1016 bytes
-rw-r--r--extras/source/gallery/www-graf/bludisk.gifbin0 -> 1016 bytes
-rw-r--r--extras/source/gallery/www-graf/bludown.gifbin0 -> 1010 bytes
-rw-r--r--extras/source/gallery/www-graf/bluhome.gifbin0 -> 1031 bytes
-rw-r--r--extras/source/gallery/www-graf/bluinfo.gifbin0 -> 1000 bytes
-rw-r--r--extras/source/gallery/www-graf/bluleft.gifbin0 -> 1017 bytes
-rw-r--r--extras/source/gallery/www-graf/blumail.gifbin0 -> 1017 bytes
-rw-r--r--extras/source/gallery/www-graf/bluminus.gifbin0 -> 989 bytes
-rw-r--r--extras/source/gallery/www-graf/bluplus.gifbin0 -> 1009 bytes
-rw-r--r--extras/source/gallery/www-graf/bluquest.gifbin0 -> 1041 bytes
-rw-r--r--extras/source/gallery/www-graf/bluright.gifbin0 -> 1020 bytes
-rw-r--r--extras/source/gallery/www-graf/bluup.gifbin0 -> 1011 bytes
-rw-r--r--extras/source/gallery/www-graf/delzip1
-rw-r--r--extras/source/gallery/www-graf/gredisk.gifbin0 -> 1016 bytes
-rw-r--r--extras/source/gallery/www-graf/gredown.gifbin0 -> 1010 bytes
-rw-r--r--extras/source/gallery/www-graf/grehome.gifbin0 -> 1031 bytes
-rw-r--r--extras/source/gallery/www-graf/greinfo.gifbin0 -> 1000 bytes
-rw-r--r--extras/source/gallery/www-graf/greleft.gifbin0 -> 1017 bytes
-rw-r--r--extras/source/gallery/www-graf/gremail.gifbin0 -> 1017 bytes
-rw-r--r--extras/source/gallery/www-graf/greminus.gifbin0 -> 989 bytes
-rw-r--r--extras/source/gallery/www-graf/greplus.gifbin0 -> 1009 bytes
-rw-r--r--extras/source/gallery/www-graf/grequest.gifbin0 -> 1041 bytes
-rw-r--r--extras/source/gallery/www-graf/greright.gifbin0 -> 1020 bytes
-rw-r--r--extras/source/gallery/www-graf/greup.gifbin0 -> 1011 bytes
-rw-r--r--extras/source/gallery/www-graf/grnat.gifbin0 -> 1264 bytes
-rw-r--r--extras/source/gallery/www-graf/grnback.gifbin0 -> 1073 bytes
-rw-r--r--extras/source/gallery/www-graf/grndisk.gifbin0 -> 1219 bytes
-rw-r--r--extras/source/gallery/www-graf/grndown.gifbin0 -> 1231 bytes
-rw-r--r--extras/source/gallery/www-graf/grnexcla.gifbin0 -> 1206 bytes
-rw-r--r--extras/source/gallery/www-graf/grnhome.gifbin0 -> 872 bytes
-rw-r--r--extras/source/gallery/www-graf/grninfo.gifbin0 -> 1200 bytes
-rw-r--r--extras/source/gallery/www-graf/grnleft.gifbin0 -> 1227 bytes
-rw-r--r--extras/source/gallery/www-graf/grnmail.gifbin0 -> 1222 bytes
-rw-r--r--extras/source/gallery/www-graf/grnminus.gifbin0 -> 1187 bytes
-rw-r--r--extras/source/gallery/www-graf/grnplus.gifbin0 -> 1204 bytes
-rw-r--r--extras/source/gallery/www-graf/grnquest.gifbin0 -> 1226 bytes
-rw-r--r--extras/source/gallery/www-graf/grnright.gifbin0 -> 1201 bytes
-rw-r--r--extras/source/gallery/www-graf/grnup.gifbin0 -> 1220 bytes
-rw-r--r--extras/source/gallery/www-graf/gryat.gifbin0 -> 1052 bytes
-rw-r--r--extras/source/gallery/www-graf/gryback.gifbin0 -> 1032 bytes
-rw-r--r--extras/source/gallery/www-graf/grydisk.gifbin0 -> 1044 bytes
-rw-r--r--extras/source/gallery/www-graf/grydown.gifbin0 -> 1022 bytes
-rw-r--r--extras/source/gallery/www-graf/gryhome.gifbin0 -> 1050 bytes
-rw-r--r--extras/source/gallery/www-graf/gryinfo.gifbin0 -> 1017 bytes
-rw-r--r--extras/source/gallery/www-graf/gryleft.gifbin0 -> 1030 bytes
-rw-r--r--extras/source/gallery/www-graf/grymail.gifbin0 -> 1036 bytes
-rw-r--r--extras/source/gallery/www-graf/gryminus.gifbin0 -> 1012 bytes
-rw-r--r--extras/source/gallery/www-graf/gryplus.gifbin0 -> 1030 bytes
-rw-r--r--extras/source/gallery/www-graf/gryquest.gifbin0 -> 1023 bytes
-rw-r--r--extras/source/gallery/www-graf/gryright.gifbin0 -> 1033 bytes
-rw-r--r--extras/source/gallery/www-graf/gryup.gifbin0 -> 1027 bytes
-rw-r--r--extras/source/gallery/www-graf/makefile.mk23
-rw-r--r--extras/source/gallery/www-graf/men@work.gifbin0 -> 1287 bytes
-rw-r--r--extras/source/gallery/www-graf/orgat.gifbin0 -> 606 bytes
-rw-r--r--extras/source/gallery/www-graf/orgback.gifbin0 -> 1259 bytes
-rw-r--r--extras/source/gallery/www-graf/orgdisk.gifbin0 -> 421 bytes
-rw-r--r--extras/source/gallery/www-graf/orgdown.gifbin0 -> 560 bytes
-rw-r--r--extras/source/gallery/www-graf/orghome.gifbin0 -> 808 bytes
-rw-r--r--extras/source/gallery/www-graf/orginfo.gifbin0 -> 341 bytes
-rw-r--r--extras/source/gallery/www-graf/orgleft.gifbin0 -> 285 bytes
-rw-r--r--extras/source/gallery/www-graf/orgmail.gifbin0 -> 517 bytes
-rw-r--r--extras/source/gallery/www-graf/orgminus.gifbin0 -> 272 bytes
-rw-r--r--extras/source/gallery/www-graf/orgplus.gifbin0 -> 289 bytes
-rw-r--r--extras/source/gallery/www-graf/orgquest.gifbin0 -> 281 bytes
-rw-r--r--extras/source/gallery/www-graf/orgright.gifbin0 -> 293 bytes
-rw-r--r--extras/source/gallery/www-graf/orgup.gifbin0 -> 1042 bytes
-rw-r--r--extras/source/gallery/www-graf/redat.gifbin0 -> 1413 bytes
-rw-r--r--extras/source/gallery/www-graf/redback.gifbin0 -> 1040 bytes
-rw-r--r--extras/source/gallery/www-graf/reddisk.gifbin0 -> 1019 bytes
-rw-r--r--extras/source/gallery/www-graf/reddown.gifbin0 -> 1015 bytes
-rw-r--r--extras/source/gallery/www-graf/redhome.gifbin0 -> 1032 bytes
-rw-r--r--extras/source/gallery/www-graf/redinfo.gifbin0 -> 1002 bytes
-rw-r--r--extras/source/gallery/www-graf/redleft.gifbin0 -> 1018 bytes
-rw-r--r--extras/source/gallery/www-graf/redmail.gifbin0 -> 1018 bytes
-rw-r--r--extras/source/gallery/www-graf/redminus.gifbin0 -> 993 bytes
-rw-r--r--extras/source/gallery/www-graf/redplus.gifbin0 -> 1015 bytes
-rw-r--r--extras/source/gallery/www-graf/redquest.gifbin0 -> 1045 bytes
-rw-r--r--extras/source/gallery/www-graf/redright.gifbin0 -> 1019 bytes
-rw-r--r--extras/source/gallery/www-graf/redup.gifbin0 -> 1015 bytes
-rw-r--r--extras/source/gallery/www-graf/turdown.gifbin0 -> 669 bytes
-rw-r--r--extras/source/gallery/www-graf/turhome.gifbin0 -> 474 bytes
-rw-r--r--extras/source/gallery/www-graf/turleft.gifbin0 -> 663 bytes
-rw-r--r--extras/source/gallery/www-graf/turright.gifbin0 -> 667 bytes
-rw-r--r--extras/source/gallery/www-graf/turup.gifbin0 -> 663 bytes
-rw-r--r--extras/source/gallery/www-graf/viohome.gifbin0 -> 249 bytes
-rw-r--r--extras/source/gallery/www-graf/violeft.gifbin0 -> 236 bytes
-rw-r--r--extras/source/gallery/www-graf/vioright.gifbin0 -> 238 bytes
-rw-r--r--extras/source/gallery/www-graf/vioup.gifbin0 -> 230 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwdown.gifbin0 -> 149 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwhome.gifbin0 -> 221 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwleft.gifbin0 -> 177 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwmail.gifbin0 -> 208 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwright.gifbin0 -> 177 bytes
-rw-r--r--extras/source/gallery/www-graf/ylwup.gifbin0 -> 150 bytes
-rw-r--r--extras/source/misc_config/autotbl.fmtbin0 -> 48408 bytes
-rw-r--r--extras/source/misc_config/delzip0
-rw-r--r--extras/source/misc_config/makefile.mk49
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/beige.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/bgr.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/dark.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/grey.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/ibg.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/ice.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/orange.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/red.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/violet.css79
-rwxr-xr-xextras/source/misc_config/wizard/form/styles/water.css79
-rw-r--r--extras/source/misc_config/wizard/web/images/calc.gifbin0 -> 1252 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/draw.gifbin0 -> 1386 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/fls.gifbin0 -> 1488 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/graphics.gifbin0 -> 1533 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/html.gifbin0 -> 1366 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/impress.gifbin0 -> 1311 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/media.gifbin0 -> 1407 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/other.gifbin0 -> 1356 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/pdf.gifbin0 -> 1485 bytes
-rw-r--r--extras/source/misc_config/wizard/web/images/writer.gifbin0 -> 1376 bytes
-rw-r--r--extras/source/misc_config/wizard/web/layouts/diagonal/index.html.xsl104
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_bottom/index.html.xsl71
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_bottom/mainframe.html7
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_bottom/tocframe.html.xsl100
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_left/index.html.xsl71
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_left/mainframe.html7
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_left/tocframe.html.xsl96
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_right/index.html.xsl71
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_right/mainframe.html7
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_right/tocframe.html.xsl99
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_top/index.html.xsl71
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_top/mainframe.html7
-rw-r--r--extras/source/misc_config/wizard/web/layouts/frame_top/tocframe.html.xsl99
-rw-r--r--extras/source/misc_config/wizard/web/layouts/layout.xsl204
-rw-r--r--extras/source/misc_config/wizard/web/layouts/layoutF.xsl122
-rw-r--r--extras/source/misc_config/wizard/web/layouts/layoutX.xsl291
-rw-r--r--extras/source/misc_config/wizard/web/layouts/simple/index.html.xsl131
-rw-r--r--extras/source/misc_config/wizard/web/layouts/source.xml.xsl55
-rw-r--r--extras/source/misc_config/wizard/web/layouts/table_2/index.html.xsl185
-rw-r--r--extras/source/misc_config/wizard/web/layouts/table_3/index.html.xsl191
-rw-r--r--extras/source/misc_config/wizard/web/layouts/zigzag/index.html.xsl190
-rwxr-xr-xextras/source/misc_config/wizard/web/preview.html41
-rw-r--r--extras/source/misc_config/wizard/web/styles/beige.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/bg.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/bgr.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/bgrey.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/bwb.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/bwo.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/dark.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/dp.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/forest.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/green.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/greenred.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/grey.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/ibg.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/ice.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/marine.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/orange.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/pc_old.css91
-rw-r--r--extras/source/misc_config/wizard/web/styles/red.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/rgb.css91
-rw-r--r--extras/source/misc_config/wizard/web/styles/strange.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/violet.css79
-rw-r--r--extras/source/misc_config/wizard/web/styles/water.css79
-rw-r--r--extras/source/palettes/cmyk.soc220
-rw-r--r--extras/source/palettes/delzip3
-rw-r--r--extras/source/palettes/gallery.soc65
-rw-r--r--extras/source/palettes/html.soc135
-rw-r--r--extras/source/palettes/lang/bg/arrowhd_bg.soe28
-rw-r--r--extras/source/palettes/lang/bg/classic_bg.sog141
-rw-r--r--extras/source/palettes/lang/bg/hatching_bg.soh39
-rw-r--r--extras/source/palettes/lang/bg/modern_bg.sog31
-rw-r--r--extras/source/palettes/lang/bg/palette_bg.soc81
-rw-r--r--extras/source/palettes/lang/bg/styles_bg.sod10
-rw-r--r--extras/source/palettes/lang/cs/arrowhd_cs.soe28
-rw-r--r--extras/source/palettes/lang/cs/classic_cs.sog141
-rw-r--r--extras/source/palettes/lang/cs/hatching_cs.soh39
-rw-r--r--extras/source/palettes/lang/cs/modern_cs.sog31
-rw-r--r--extras/source/palettes/lang/cs/palette_cs.soc81
-rw-r--r--extras/source/palettes/lang/cs/styles_cs.sod2
-rw-r--r--extras/source/palettes/lang/da/arrowhd_da.soe26
-rw-r--r--extras/source/palettes/lang/da/classic_da.sog139
-rw-r--r--extras/source/palettes/lang/da/hatching_da.soh37
-rw-r--r--extras/source/palettes/lang/da/modern_da.sog29
-rw-r--r--extras/source/palettes/lang/da/palette_da.soc81
-rw-r--r--extras/source/palettes/lang/da/styles_da.sod8
-rw-r--r--extras/source/palettes/lang/de/arrowhd_de.soe28
-rw-r--r--extras/source/palettes/lang/de/classic_de.sog141
-rw-r--r--extras/source/palettes/lang/de/hatching_de.soh39
-rw-r--r--extras/source/palettes/lang/de/modern_de.sog31
-rw-r--r--extras/source/palettes/lang/de/palette_de.soc81
-rw-r--r--extras/source/palettes/lang/de/styles_de.sod10
-rw-r--r--extras/source/palettes/lang/delzip0
-rw-r--r--extras/source/palettes/lang/en-GB/arrowhd_en-GB.soe28
-rw-r--r--extras/source/palettes/lang/en-GB/classic_en-GB.sog141
-rw-r--r--extras/source/palettes/lang/en-GB/hatching_en-GB.soh39
-rw-r--r--extras/source/palettes/lang/en-GB/modern_en-GB.sog31
-rw-r--r--extras/source/palettes/lang/en-GB/palette_en-GB.soc81
-rw-r--r--extras/source/palettes/lang/en-GB/styles_en-GB.sod10
-rw-r--r--extras/source/palettes/lang/en-US/arrowhd_en-US.soe28
-rw-r--r--extras/source/palettes/lang/en-US/classic_en-US.sog141
-rw-r--r--extras/source/palettes/lang/en-US/hatching_en-US.soh39
-rw-r--r--extras/source/palettes/lang/en-US/modern_en-US.sog31
-rw-r--r--extras/source/palettes/lang/en-US/palette_en-US.soc81
-rw-r--r--extras/source/palettes/lang/en-US/styles_en-US.sod10
-rw-r--r--extras/source/palettes/lang/es/arrowhd_es.soe28
-rw-r--r--extras/source/palettes/lang/es/classic_es.sog141
-rw-r--r--extras/source/palettes/lang/es/hatching_es.soh39
-rw-r--r--extras/source/palettes/lang/es/modern_es.sog31
-rw-r--r--extras/source/palettes/lang/es/palette_es.soc81
-rw-r--r--extras/source/palettes/lang/es/styles_es.sod10
-rwxr-xr-xextras/source/palettes/lang/eu/arrowhd_eu.soe28
-rwxr-xr-xextras/source/palettes/lang/eu/classic_eu.sog141
-rwxr-xr-xextras/source/palettes/lang/eu/hatching_eu.soh39
-rwxr-xr-xextras/source/palettes/lang/eu/modern_eu.sog31
-rwxr-xr-xextras/source/palettes/lang/eu/palette_eu.soc81
-rwxr-xr-xextras/source/palettes/lang/eu/styles_eu.sod10
-rw-r--r--extras/source/palettes/lang/fr/arrowhd_fr.soe28
-rw-r--r--extras/source/palettes/lang/fr/classic_fr.sog141
-rw-r--r--extras/source/palettes/lang/fr/hatching_fr.soh39
-rw-r--r--extras/source/palettes/lang/fr/modern_fr.sog31
-rw-r--r--extras/source/palettes/lang/fr/palette_fr.soc81
-rw-r--r--extras/source/palettes/lang/fr/styles_fr.sod10
-rw-r--r--extras/source/palettes/lang/hu/arrowhd_hu.soe28
-rw-r--r--extras/source/palettes/lang/hu/classic_hu.sog141
-rw-r--r--extras/source/palettes/lang/hu/hatching_hu.soh39
-rw-r--r--extras/source/palettes/lang/hu/modern_hu.sog31
-rw-r--r--extras/source/palettes/lang/hu/palette_hu.soc81
-rw-r--r--extras/source/palettes/lang/hu/styles_hu.sod10
-rw-r--r--extras/source/palettes/lang/it/arrowhd_it.soe28
-rw-r--r--extras/source/palettes/lang/it/classic_it.sog141
-rw-r--r--extras/source/palettes/lang/it/hatching_it.soh39
-rw-r--r--extras/source/palettes/lang/it/modern_it.sog31
-rw-r--r--extras/source/palettes/lang/it/palette_it.soc81
-rw-r--r--extras/source/palettes/lang/it/styles_it.sod10
-rw-r--r--extras/source/palettes/lang/ja/arrowhd_ja.soe28
-rw-r--r--extras/source/palettes/lang/ja/classic_ja.sog2
-rw-r--r--extras/source/palettes/lang/ja/hatching_ja.soh39
-rw-r--r--extras/source/palettes/lang/ja/modern_ja.sog31
-rw-r--r--extras/source/palettes/lang/ja/palette_ja.soc81
-rw-r--r--extras/source/palettes/lang/ja/styles_ja.sod10
-rw-r--r--extras/source/palettes/lang/km/arrowhd_km.soe28
-rw-r--r--extras/source/palettes/lang/km/classic_km.sog141
-rw-r--r--extras/source/palettes/lang/km/hatching_km.soh39
-rw-r--r--extras/source/palettes/lang/km/modern_km.sog31
-rw-r--r--extras/source/palettes/lang/km/palette_km.soc81
-rw-r--r--extras/source/palettes/lang/km/styles_km.sod10
-rw-r--r--extras/source/palettes/lang/ko/arrowhd_ko.soe28
-rw-r--r--extras/source/palettes/lang/ko/classic_ko.sog2
-rw-r--r--extras/source/palettes/lang/ko/hatching_ko.soh39
-rw-r--r--extras/source/palettes/lang/ko/modern_ko.sog31
-rw-r--r--extras/source/palettes/lang/ko/palette_ko.soc81
-rw-r--r--extras/source/palettes/lang/ko/styles_ko.sod10
-rw-r--r--extras/source/palettes/lang/makefile.mk47
-rw-r--r--extras/source/palettes/lang/nl/arrowhd_nl.soe28
-rw-r--r--extras/source/palettes/lang/nl/classic_nl.sog141
-rw-r--r--extras/source/palettes/lang/nl/hatching_nl.soh39
-rw-r--r--extras/source/palettes/lang/nl/modern_nl.sog31
-rw-r--r--extras/source/palettes/lang/nl/palette_nl.soc81
-rw-r--r--extras/source/palettes/lang/nl/styles_nl.sod10
-rw-r--r--extras/source/palettes/lang/pl/arrowhd_pl.soebin0 -> 2846 bytes
-rw-r--r--extras/source/palettes/lang/pl/classic_pl.sogbin0 -> 9006 bytes
-rw-r--r--extras/source/palettes/lang/pl/hatching_pl.sohbin0 -> 1300 bytes
-rw-r--r--extras/source/palettes/lang/pl/modern_pl.sogbin0 -> 1598 bytes
-rw-r--r--extras/source/palettes/lang/pl/palette_pl.socbin0 -> 2078 bytes
-rw-r--r--extras/source/palettes/lang/pl/styles_pl.sodbin0 -> 278 bytes
-rw-r--r--extras/source/palettes/lang/pt-BR/arrowhd_pt-BR.soe28
-rw-r--r--extras/source/palettes/lang/pt-BR/classic_pt-BR.sog31
-rw-r--r--extras/source/palettes/lang/pt-BR/hatching_pt-BR.soh39
-rw-r--r--extras/source/palettes/lang/pt-BR/modern_pt-BR.sog31
-rw-r--r--extras/source/palettes/lang/pt-BR/palette_pt-BR.soc81
-rw-r--r--extras/source/palettes/lang/pt-BR/styles_pt-BR.sod3
-rw-r--r--extras/source/palettes/lang/pt/arrowhd_pt.soe28
-rw-r--r--extras/source/palettes/lang/pt/classic_pt.sog141
-rw-r--r--extras/source/palettes/lang/pt/hatching_pt.soh39
-rw-r--r--extras/source/palettes/lang/pt/modern_pt.sog32
-rw-r--r--extras/source/palettes/lang/pt/palette_pt.soc81
-rw-r--r--extras/source/palettes/lang/pt/styles_pt.sod11
-rw-r--r--extras/source/palettes/lang/ru/arrowhd_ru.soebin0 -> 2846 bytes
-rw-r--r--extras/source/palettes/lang/ru/classic_ru.sogbin0 -> 9006 bytes
-rw-r--r--extras/source/palettes/lang/ru/hatching_ru.sohbin0 -> 1300 bytes
-rw-r--r--extras/source/palettes/lang/ru/modern_ru.sogbin0 -> 1598 bytes
-rw-r--r--extras/source/palettes/lang/ru/palette_ru.socbin0 -> 2078 bytes
-rw-r--r--extras/source/palettes/lang/ru/styles_ru.sodbin0 -> 278 bytes
-rw-r--r--extras/source/palettes/lang/sk/arrowhd_sk.soe28
-rw-r--r--extras/source/palettes/lang/sk/classic_sk.sog141
-rw-r--r--extras/source/palettes/lang/sk/hatching_sk.soh39
-rw-r--r--extras/source/palettes/lang/sk/modern_sk.sog31
-rw-r--r--extras/source/palettes/lang/sk/palette_sk.soc81
-rw-r--r--extras/source/palettes/lang/sk/styles_sk.sod10
-rw-r--r--extras/source/palettes/lang/sl/arrowhd_sl.soe28
-rw-r--r--extras/source/palettes/lang/sl/classic_sl.sog141
-rw-r--r--extras/source/palettes/lang/sl/hatching_sl.soh39
-rw-r--r--extras/source/palettes/lang/sl/modern_sl.sog31
-rw-r--r--extras/source/palettes/lang/sl/palette_sl.soc81
-rw-r--r--extras/source/palettes/lang/sl/styles_sl.sod10
-rw-r--r--extras/source/palettes/lang/sv/arrowhd_sv.soe28
-rw-r--r--extras/source/palettes/lang/sv/classic_sv.sog141
-rw-r--r--extras/source/palettes/lang/sv/hatching_sv.soh39
-rw-r--r--extras/source/palettes/lang/sv/modern_sv.sog32
-rw-r--r--extras/source/palettes/lang/sv/palette_sv.soc81
-rw-r--r--extras/source/palettes/lang/sv/styles_sv.sod10
-rw-r--r--extras/source/palettes/lang/tr/arrowhd_tr.soe28
-rw-r--r--extras/source/palettes/lang/tr/classic_tr.sog141
-rw-r--r--extras/source/palettes/lang/tr/hatching_tr.soh39
-rw-r--r--extras/source/palettes/lang/tr/modern_tr.sog31
-rw-r--r--extras/source/palettes/lang/tr/palette_tr.soc81
-rw-r--r--extras/source/palettes/lang/tr/styles_tr.sod10
-rw-r--r--extras/source/palettes/lang/zh-CN/arrowhd_zh-CN.soe28
-rw-r--r--extras/source/palettes/lang/zh-CN/classic_zh-CN.sog2
-rw-r--r--extras/source/palettes/lang/zh-CN/hatching_zh-CN.soh39
-rw-r--r--extras/source/palettes/lang/zh-CN/modern_zh-CN.sog31
-rw-r--r--extras/source/palettes/lang/zh-CN/palette_zh-CN.soc81
-rw-r--r--extras/source/palettes/lang/zh-CN/styles_zh-CN.sod10
-rw-r--r--extras/source/palettes/lang/zh-TW/arrowhd_zh-TW.soe28
-rw-r--r--extras/source/palettes/lang/zh-TW/classic_zh-TW.sog2
-rw-r--r--extras/source/palettes/lang/zh-TW/hatching_zh-TW.soh39
-rw-r--r--extras/source/palettes/lang/zh-TW/modern_zh-TW.sog31
-rw-r--r--extras/source/palettes/lang/zh-TW/palette_zh-TW.soc81
-rw-r--r--extras/source/palettes/lang/zh-TW/styles_zh-TW.sod10
-rw-r--r--extras/source/palettes/makefile.mk51
-rw-r--r--extras/source/palettes/scribus.soc548
-rw-r--r--extras/source/palettes/standard.sobbin0 -> 155895 bytes
-rw-r--r--extras/source/palettes/standard.soc107
-rw-r--r--extras/source/palettes/standard.sod15
-rw-r--r--extras/source/palettes/standard.soe16
-rw-r--r--extras/source/palettes/standard.sog19
-rw-r--r--extras/source/palettes/standard.soh14
-rw-r--r--extras/source/palettes/sun-color.soc55
-rw-r--r--extras/source/palettes/web.soc236
-rw-r--r--extras/source/shellnew/soffice.html12
-rw-r--r--extras/source/shellnew/soffice.odgbin0 -> 8428 bytes
-rw-r--r--extras/source/shellnew/soffice.odpbin0 -> 9026 bytes
-rw-r--r--extras/source/shellnew/soffice.odsbin0 -> 6598 bytes
-rw-r--r--extras/source/shellnew/soffice.odtbin0 -> 7334 bytes
-rw-r--r--extras/source/symbols/delzip1
-rw-r--r--extras/source/symbols/l_2people.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_attention1.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_attention2.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_attention3.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_candy.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_face.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_flower.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_ghost.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_halloween.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_home.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_lamp.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_lock.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_page_b.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_page_g.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_page_y.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_people.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_rose.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_save.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_smiley_1.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_smiley_oh.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_smiley_sad.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_snow.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/l_star.bmpbin0 -> 2136 bytes
-rw-r--r--extras/source/symbols/makefile.mk51
-rw-r--r--extras/source/symbols/s_arrow-1.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_arrow-2.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_arrow-3.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_arrow-4.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_attention1.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_attention2.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_attention3.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ball-b.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ball-g.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ball-r.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ball.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_bug.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_clover.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_egg.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_face.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_flower.bmpbin0 -> 344 bytes
-rw-r--r--extras/source/symbols/s_ghost.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_group.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_halloween.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_heart.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_home.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_lock.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ok-g.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ok-r.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_ok.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_page_b.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_page_g.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_page_y.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_pen-b.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_pen-g.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_pen-r.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_people.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_smily_1.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_smily_oh.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_smily_sad.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_snow.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_star.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_team.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_x-g.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_x-r.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/symbols/s_x.bmpbin0 -> 824 bytes
-rw-r--r--extras/source/templates/lang/delzip1
-rw-r--r--extras/source/templates/lang/makefile.mk49
-rw-r--r--extras/source/templates/layout/lang/bg/lyt-cool.otpbin0 -> 10997 bytes
-rw-r--r--extras/source/templates/layout/lang/bg/lyt-darkblue.otpbin0 -> 10639 bytes
-rw-r--r--extras/source/templates/layout/lang/cs/lyt-cool.otpbin0 -> 10978 bytes
-rw-r--r--extras/source/templates/layout/lang/cs/lyt-darkblue.otpbin0 -> 10725 bytes
-rw-r--r--extras/source/templates/layout/lang/da/lyt-cool.otpbin0 -> 8697 bytes
-rw-r--r--extras/source/templates/layout/lang/da/lyt-darkblue.otpbin0 -> 8699 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-aqua.otpbin0 -> 32080 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-blackandwhite.otpbin0 -> 197893 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-bluegrey.otpbin0 -> 292522 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-bluelinesgrad.otpbin0 -> 47929 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-bluetitledown.otpbin0 -> 75992 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-book.otpbin0 -> 1144700 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-brown.otpbin0 -> 59365 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-charglow.otpbin0 -> 85088 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-forest.otpbin0 -> 721934 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-frepa.otpbin0 -> 68215 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-glacier.otpbin0 -> 652859 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-greengradlines.otpbin0 -> 72050 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-keyboard.otpbin0 -> 516411 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-movwaves.otpbin0 -> 58336 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-numdark.otpbin0 -> 311234 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-ocean.otpbin0 -> 14038 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-organic.otpbin0 -> 64341 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-paper.otpbin0 -> 706360 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-rededges.otpbin0 -> 502732 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-roundedrect.otpbin0 -> 125420 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-sunrise.otpbin0 -> 115779 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-techpoly.otpbin0 -> 312486 bytes
-rwxr-xr-xextras/source/templates/layout/lang/de/lyt-tunnel.otpbin0 -> 52444 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-water.otpbin0 -> 505912 bytes
-rw-r--r--extras/source/templates/layout/lang/de/lyt-wine.otpbin0 -> 652370 bytes
-rw-r--r--extras/source/templates/layout/lang/delzip1
-rw-r--r--extras/source/templates/layout/lang/en-GB/lyt-cool.otpbin0 -> 10052 bytes
-rw-r--r--extras/source/templates/layout/lang/en-GB/lyt-darkblue.otpbin0 -> 10429 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-aqua.otpbin0 -> 32050 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-blackandwhite.otpbin0 -> 198973 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-bluegrey.otpbin0 -> 292498 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-bluelinesgrad.otpbin0 -> 47900 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-bluetitledown.otpbin0 -> 75772 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-book.otpbin0 -> 1144672 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-brown.otpbin0 -> 59337 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-charglow.otpbin0 -> 85053 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-forest.otpbin0 -> 721971 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-frepa.otpbin0 -> 68188 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-glacier.otpbin0 -> 654229 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-greengradlines.otpbin0 -> 71713 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-keyboard.otpbin0 -> 517689 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-movwaves.otpbin0 -> 56012 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-numdark.otpbin0 -> 327978 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-ocean.otpbin0 -> 14004 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-organic.otpbin0 -> 64322 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-paper.otpbin0 -> 706327 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-rededges.otpbin0 -> 502708 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-roundedrect.otpbin0 -> 125387 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-sunrise.otpbin0 -> 115754 bytes
-rwxr-xr-xextras/source/templates/layout/lang/en-US/lyt-techpoly.otpbin0 -> 312460 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-tunnel.otpbin0 -> 52416 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-water.otpbin0 -> 507283 bytes
-rw-r--r--extras/source/templates/layout/lang/en-US/lyt-wine.otpbin0 -> 652454 bytes
-rw-r--r--extras/source/templates/layout/lang/es/lyt-cool.otpbin0 -> 8464 bytes
-rw-r--r--extras/source/templates/layout/lang/es/lyt-darkblue.otpbin0 -> 8457 bytes
-rwxr-xr-xextras/source/templates/layout/lang/eu/lyt-cool.otpbin0 -> 13206 bytes
-rwxr-xr-xextras/source/templates/layout/lang/eu/lyt-darkblue.otpbin0 -> 13637 bytes
-rw-r--r--extras/source/templates/layout/lang/fr/lyt-cool.otpbin0 -> 8443 bytes
-rw-r--r--extras/source/templates/layout/lang/fr/lyt-darkblue.otpbin0 -> 8426 bytes
-rwxr-xr-xextras/source/templates/layout/lang/hu/lyt-cool.otpbin0 -> 10314 bytes
-rwxr-xr-xextras/source/templates/layout/lang/hu/lyt-darkblue.otpbin0 -> 10962 bytes
-rw-r--r--extras/source/templates/layout/lang/it/lyt-cool.otpbin0 -> 8463 bytes
-rw-r--r--extras/source/templates/layout/lang/it/lyt-darkblue.otpbin0 -> 8443 bytes
-rw-r--r--extras/source/templates/layout/lang/ja/lyt-cool.otpbin0 -> 10390 bytes
-rw-r--r--extras/source/templates/layout/lang/ja/lyt-darkblue.otpbin0 -> 10761 bytes
-rw-r--r--extras/source/templates/layout/lang/km/lyt-cool.otpbin0 -> 8957 bytes
-rw-r--r--extras/source/templates/layout/lang/km/lyt-darkblue.otpbin0 -> 8938 bytes
-rw-r--r--extras/source/templates/layout/lang/ko/lyt-cool.otpbin0 -> 9759 bytes
-rw-r--r--extras/source/templates/layout/lang/ko/lyt-darkblue.otpbin0 -> 9322 bytes
-rw-r--r--extras/source/templates/layout/lang/makefile.mk49
-rw-r--r--extras/source/templates/layout/lang/nl/lyt-cool.otpbin0 -> 10136 bytes
-rw-r--r--extras/source/templates/layout/lang/nl/lyt-darkblue.otpbin0 -> 10344 bytes
-rw-r--r--extras/source/templates/layout/lang/pl/lyt-cool.otpbin0 -> 10606 bytes
-rw-r--r--extras/source/templates/layout/lang/pl/lyt-darkblue.otpbin0 -> 10165 bytes
-rw-r--r--extras/source/templates/layout/lang/pt-BR/lyt-cool.otpbin0 -> 9249 bytes
-rw-r--r--extras/source/templates/layout/lang/pt-BR/lyt-darkblue.otpbin0 -> 9155 bytes
-rw-r--r--extras/source/templates/layout/lang/pt/lyt-cool.otpbin0 -> 12067 bytes
-rw-r--r--extras/source/templates/layout/lang/pt/lyt-darkblue.otpbin0 -> 12024 bytes
-rw-r--r--extras/source/templates/layout/lang/ru/lyt-cool.otpbin0 -> 10987 bytes
-rw-r--r--extras/source/templates/layout/lang/ru/lyt-darkblue.otpbin0 -> 11071 bytes
-rw-r--r--extras/source/templates/layout/lang/sk/lyt-cool.otpbin0 -> 9650 bytes
-rw-r--r--extras/source/templates/layout/lang/sk/lyt-darkblue.otpbin0 -> 10832 bytes
-rw-r--r--extras/source/templates/layout/lang/sl/lyt-cool.otpbin0 -> 9895 bytes
-rw-r--r--extras/source/templates/layout/lang/sl/lyt-darkblue.otpbin0 -> 9914 bytes
-rw-r--r--extras/source/templates/layout/lang/sv/lyt-cool.otpbin0 -> 8466 bytes
-rw-r--r--extras/source/templates/layout/lang/sv/lyt-darkblue.otpbin0 -> 8460 bytes
-rw-r--r--extras/source/templates/layout/lang/tr/lyt-cool.otpbin0 -> 8957 bytes
-rw-r--r--extras/source/templates/layout/lang/tr/lyt-darkblue.otpbin0 -> 8938 bytes
-rwxr-xr-xextras/source/templates/layout/lang/vi/lyt-cool.otpbin0 -> 8957 bytes
-rwxr-xr-xextras/source/templates/layout/lang/vi/lyt-darkblue.otpbin0 -> 8938 bytes
-rwxr-xr-xextras/source/templates/layout/lang/vi/lyt-darkblue_new.otpbin0 -> 16607 bytes
-rwxr-xr-xextras/source/templates/layout/lang/vi/lyt_cool_new.otpbin0 -> 16114 bytes
-rw-r--r--extras/source/templates/layout/lang/zh-CN/lyt-cool.otpbin0 -> 9439 bytes
-rw-r--r--extras/source/templates/layout/lang/zh-CN/lyt-darkblue.otpbin0 -> 9330 bytes
-rw-r--r--extras/source/templates/layout/lang/zh-TW/lyt-cool.otpbin0 -> 9837 bytes
-rw-r--r--extras/source/templates/layout/lang/zh-TW/lyt-darkblue.otpbin0 -> 9309 bytes
-rw-r--r--extras/source/templates/presnt/lang/bg/prs-novelty.otpbin0 -> 54229 bytes
-rw-r--r--extras/source/templates/presnt/lang/bg/prs-strategy.otpbin0 -> 68781 bytes
-rw-r--r--extras/source/templates/presnt/lang/cs/prs-novelty.otpbin0 -> 54784 bytes
-rw-r--r--extras/source/templates/presnt/lang/cs/prs-strategy.otpbin0 -> 69075 bytes
-rw-r--r--extras/source/templates/presnt/lang/da/prs-novelty.otpbin0 -> 25093 bytes
-rw-r--r--extras/source/templates/presnt/lang/da/prs-strategy.otpbin0 -> 66669 bytes
-rw-r--r--extras/source/templates/presnt/lang/de/prs-novelty.otpbin0 -> 25464 bytes
-rw-r--r--extras/source/templates/presnt/lang/de/prs-strategy.otpbin0 -> 66954 bytes
-rw-r--r--extras/source/templates/presnt/lang/delzip0
-rw-r--r--extras/source/templates/presnt/lang/en-GB/prs-novelty.otpbin0 -> 54731 bytes
-rw-r--r--extras/source/templates/presnt/lang/en-GB/prs-strategy.otpbin0 -> 69725 bytes
-rw-r--r--extras/source/templates/presnt/lang/en-US/prs-novelty.otpbin0 -> 25355 bytes
-rw-r--r--extras/source/templates/presnt/lang/en-US/prs-strategy.otpbin0 -> 66860 bytes
-rw-r--r--extras/source/templates/presnt/lang/es/prs-novelty.otpbin0 -> 52743 bytes
-rw-r--r--extras/source/templates/presnt/lang/es/prs-strategy.otpbin0 -> 66884 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/eu/prs-novelty.otpbin0 -> 58417 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/eu/prs-strategy.otpbin0 -> 70690 bytes
-rw-r--r--extras/source/templates/presnt/lang/fr/prs-novelty.otpbin0 -> 53725 bytes
-rw-r--r--extras/source/templates/presnt/lang/fr/prs-strategy.otpbin0 -> 66912 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/hu/prs-novelty.otpbin0 -> 54529 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/hu/prs-strategy.otpbin0 -> 68672 bytes
-rw-r--r--extras/source/templates/presnt/lang/it/prs-novelty.otpbin0 -> 52801 bytes
-rw-r--r--extras/source/templates/presnt/lang/it/prs-strategy.otpbin0 -> 66817 bytes
-rw-r--r--extras/source/templates/presnt/lang/ja/prs-novelty.otpbin0 -> 25351 bytes
-rw-r--r--extras/source/templates/presnt/lang/ja/prs-strategy.otpbin0 -> 68096 bytes
-rw-r--r--extras/source/templates/presnt/lang/km/prs-novelty.otpbin0 -> 57314 bytes
-rw-r--r--extras/source/templates/presnt/lang/km/prs-strategy.otpbin0 -> 72026 bytes
-rw-r--r--extras/source/templates/presnt/lang/ko/prs-novelty.otpbin0 -> 53586 bytes
-rw-r--r--extras/source/templates/presnt/lang/ko/prs-strategy.otpbin0 -> 67730 bytes
-rw-r--r--extras/source/templates/presnt/lang/makefile.mk49
-rw-r--r--extras/source/templates/presnt/lang/nl/prs-novelty.otpbin0 -> 54675 bytes
-rw-r--r--extras/source/templates/presnt/lang/nl/prs-strategy.otpbin0 -> 68327 bytes
-rw-r--r--extras/source/templates/presnt/lang/pl/prs-novelty.otpbin0 -> 55915 bytes
-rw-r--r--extras/source/templates/presnt/lang/pl/prs-strategy.otpbin0 -> 68238 bytes
-rw-r--r--extras/source/templates/presnt/lang/pt-BR/prs-novelty.otpbin0 -> 53726 bytes
-rw-r--r--extras/source/templates/presnt/lang/pt-BR/prs-strategy.otpbin0 -> 67814 bytes
-rw-r--r--extras/source/templates/presnt/lang/pt/prs-novelty.otpbin0 -> 55945 bytes
-rw-r--r--extras/source/templates/presnt/lang/pt/prs-strategy.otpbin0 -> 70038 bytes
-rw-r--r--extras/source/templates/presnt/lang/ru/prs-novelty.otpbin0 -> 55520 bytes
-rw-r--r--extras/source/templates/presnt/lang/ru/prs-strategy.otpbin0 -> 69043 bytes
-rw-r--r--extras/source/templates/presnt/lang/sk/prs-novelty.otpbin0 -> 13106 bytes
-rw-r--r--extras/source/templates/presnt/lang/sk/prs-strategy.otpbin0 -> 69109 bytes
-rw-r--r--extras/source/templates/presnt/lang/sl/prs-novelty.otpbin0 -> 53634 bytes
-rw-r--r--extras/source/templates/presnt/lang/sl/prs-strategy.otpbin0 -> 68143 bytes
-rw-r--r--extras/source/templates/presnt/lang/sv/prs-novelty.otpbin0 -> 52672 bytes
-rw-r--r--extras/source/templates/presnt/lang/sv/prs-strategy.otpbin0 -> 66833 bytes
-rw-r--r--extras/source/templates/presnt/lang/tr/prs-novelty.otpbin0 -> 54712 bytes
-rw-r--r--extras/source/templates/presnt/lang/tr/prs-strategy.otpbin0 -> 68733 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/vi/prs-novelty.otpbin0 -> 25355 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/vi/prs-novelty_new.otpbin0 -> 63417 bytes
-rwxr-xr-xextras/source/templates/presnt/lang/vi/prs-strategy.otpbin0 -> 77744 bytes
-rw-r--r--extras/source/templates/presnt/lang/zh-CN/prs-novelty.otpbin0 -> 53205 bytes
-rw-r--r--extras/source/templates/presnt/lang/zh-CN/prs-strategy.otpbin0 -> 67504 bytes
-rw-r--r--extras/source/templates/presnt/lang/zh-TW/prs-novelty.otpbin0 -> 53171 bytes
-rw-r--r--extras/source/templates/presnt/lang/zh-TW/prs-strategy.otpbin0 -> 67522 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/10grey.ottbin0 -> 11474 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/1simple.ottbin0 -> 11153 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/2elegant.ottbin0 -> 16078 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/3modern.ottbin0 -> 11655 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/4classic.ottbin0 -> 11086 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/5blue.ottbin0 -> 11222 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/6orange.ottbin0 -> 11759 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/7red.ottbin0 -> 11614 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/8green.ottbin0 -> 11363 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/9colorful.ottbin0 -> 11207 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-10grey.ottbin0 -> 11438 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-1simple.ottbin0 -> 11012 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-2elegant.ottbin0 -> 16087 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-3modern.ottbin0 -> 11599 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-4classic.ottbin0 -> 11105 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-5blue.ottbin0 -> 11227 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-6orange.ottbin0 -> 11750 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-7red.ottbin0 -> 11377 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-8green.ottbin0 -> 11362 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/bg/aw-9colorful.ottbin0 -> 11158 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/10grey.ottbin0 -> 10427 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/1simple.ottbin0 -> 10232 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/2elegant.ottbin0 -> 14396 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/3modern.ottbin0 -> 10732 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/4classic.ottbin0 -> 10193 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/5blue.ottbin0 -> 10238 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/6orange.ottbin0 -> 10793 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/7red.ottbin0 -> 10716 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/8green.ottbin0 -> 10545 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/9colorful.ottbin0 -> 10192 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-10grey.ottbin0 -> 10427 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-1simple.ottbin0 -> 10232 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-2elegant.ottbin0 -> 14396 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-3modern.ottbin0 -> 10732 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-4classic.ottbin0 -> 10193 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-5blue.ottbin0 -> 10238 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-6orange.ottbin0 -> 10793 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-7red.ottbin0 -> 10716 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-8green.ottbin0 -> 10545 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/cs/aw-9colorful.ottbin0 -> 10192 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/10grey.ottbin0 -> 10031 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/1simple.ottbin0 -> 9789 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/2elegant.ottbin0 -> 13979 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/3modern.ottbin0 -> 10306 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/4classic.ottbin0 -> 9776 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/5blue.ottbin0 -> 9854 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/6orange.ottbin0 -> 10329 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/7red.ottbin0 -> 10274 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/8green.ottbin0 -> 9993 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/9colorful.ottbin0 -> 9821 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-10grey.ottbin0 -> 10031 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-1simple.ottbin0 -> 9788 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-2elegant.ottbin0 -> 13979 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-3modern.ottbin0 -> 10306 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-4classic.ottbin0 -> 9776 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-5blue.ottbin0 -> 9854 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-6orange.ottbin0 -> 10330 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-7red.ottbin0 -> 11424 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-8green.ottbin0 -> 9992 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/da/aw-9colorful.ottbin0 -> 9861 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/10grey.ottbin0 -> 10282 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/1simple.ottbin0 -> 10041 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/2elegant.ottbin0 -> 14230 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/3modern.ottbin0 -> 10554 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/4classic.ottbin0 -> 10056 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/5blue.ottbin0 -> 10114 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/6orange.ottbin0 -> 10554 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/7red.ottbin0 -> 10503 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/8green.ottbin0 -> 10238 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/9colorful.ottbin0 -> 10078 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-10grey.ottbin0 -> 10282 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-1simple.ottbin0 -> 10041 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-2elegant.ottbin0 -> 14230 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-3modern.ottbin0 -> 10554 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-4classic.ottbin0 -> 10056 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-5blue.ottbin0 -> 10114 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-6orange.ottbin0 -> 10554 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-7red.ottbin0 -> 10503 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-8green.ottbin0 -> 10238 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/de/aw-9colorful.ottbin0 -> 10078 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/delzip2
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/10grey.ottbin0 -> 12479 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/1simple.ottbin0 -> 12618 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/2elegant.ottbin0 -> 17817 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/3modern.ottbin0 -> 13030 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/4classic.ottbin0 -> 11232 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/5blue.ottbin0 -> 11537 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/6orange.ottbin0 -> 12219 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/7red.ottbin0 -> 12256 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/8green.ottbin0 -> 11543 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/9colorful.ottbin0 -> 11583 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-10grey.ottbin0 -> 12416 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-1simple.ottbin0 -> 12061 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-2elegant.ottbin0 -> 16831 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-3modern.ottbin0 -> 13023 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-4classic.ottbin0 -> 11787 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-5blue.ottbin0 -> 12138 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-6orange.ottbin0 -> 12773 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-7red.ottbin0 -> 12187 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-8green.ottbin0 -> 12072 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-GB/aw-9colorful.ottbin0 -> 12131 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/10grey.ottbin0 -> 10240 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/1simple.ottbin0 -> 10009 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/2elegant.ottbin0 -> 14214 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/3modern.ottbin0 -> 10529 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/4classic.ottbin0 -> 10011 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/5blue.ottbin0 -> 10088 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/6orange.ottbin0 -> 10529 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/7red.ottbin0 -> 10493 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/8green.ottbin0 -> 10202 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/9colorful.ottbin0 -> 10047 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-10grey.ottbin0 -> 10240 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-1simple.ottbin0 -> 10009 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-2elegant.ottbin0 -> 14215 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-3modern.ottbin0 -> 10529 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-4classic.ottbin0 -> 10011 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-5blue.ottbin0 -> 10087 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-6orange.ottbin0 -> 10530 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-7red.ottbin0 -> 12159 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-8green.ottbin0 -> 10202 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/en-US/aw-9colorful.ottbin0 -> 10087 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/10grey.ottbin0 -> 10132 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/1simple.ottbin0 -> 10132 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/2elegant.ottbin0 -> 11890 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/3modern.ottbin0 -> 10348 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/4classic.ottbin0 -> 9747 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/5blue.ottbin0 -> 9809 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/6orange.ottbin0 -> 10466 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/7red.ottbin0 -> 10515 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/8green.ottbin0 -> 10058 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/9colorful.ottbin0 -> 9853 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-10grey.ottbin0 -> 10132 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-1simple.ottbin0 -> 9829 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-2elegant.ottbin0 -> 11890 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-3modern.ottbin0 -> 10701 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-4classic.ottbin0 -> 9747 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-5blue.ottbin0 -> 9809 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-6orange.ottbin0 -> 10466 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-7red.ottbin0 -> 10132 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-8green.ottbin0 -> 10058 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/es/aw-9colorful.ottbin0 -> 9853 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/10grey.ottbin0 -> 14000 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/1simple.ottbin0 -> 13888 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/2elegant.ottbin0 -> 19679 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/3modern.ottbin0 -> 14841 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/4classic.ottbin0 -> 13315 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/5blue.ottbin0 -> 13192 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/6orange.ottbin0 -> 13903 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/7red.ottbin0 -> 13847 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/8green.ottbin0 -> 13568 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/9colorful.ottbin0 -> 13214 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-10grey.ottbin0 -> 13957 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-1simple.ottbin0 -> 14397 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-2elegant.ottbin0 -> 18599 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-3modern.ottbin0 -> 14874 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-4classic.ottbin0 -> 13876 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-5blue.ottbin0 -> 13765 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-6orange.ottbin0 -> 14456 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-7red.ottbin0 -> 14196 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-8green.ottbin0 -> 14087 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/eu/aw-9colorful.ottbin0 -> 13735 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/10grey.ottbin0 -> 10184 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/1simple.ottbin0 -> 9834 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/2elegant.ottbin0 -> 11884 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/3modern.ottbin0 -> 10422 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/4classic.ottbin0 -> 9807 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/5blue.ottbin0 -> 9873 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/6orange.ottbin0 -> 10435 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/7red.ottbin0 -> 10170 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/8green.ottbin0 -> 10129 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/9colorful.ottbin0 -> 9923 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-10grey.ottbin0 -> 10184 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-1simple.ottbin0 -> 9832 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-2elegant.ottbin0 -> 11884 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-3modern.ottbin0 -> 10422 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-4classic.ottbin0 -> 9807 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-5blue.ottbin0 -> 9873 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-6orange.ottbin0 -> 10435 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-7red.ottbin0 -> 10170 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-8green.ottbin0 -> 10129 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/fr/aw-9colorful.ottbin0 -> 9923 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/10grey.ottbin0 -> 12232 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/1simple.ottbin0 -> 11858 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/2elegant.ottbin0 -> 16589 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/3modern.ottbin0 -> 12428 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/4classic.ottbin0 -> 11631 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/5blue.ottbin0 -> 11964 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/6orange.ottbin0 -> 12340 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/7red.ottbin0 -> 12390 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/8green.ottbin0 -> 11918 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/9colorful.ottbin0 -> 11942 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-10grey.ottbin0 -> 12232 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-1simple.ottbin0 -> 11858 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-2elegant.ottbin0 -> 16589 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-3modern.ottbin0 -> 12428 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-4classic.ottbin0 -> 11631 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-5blue.ottbin0 -> 11964 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-6orange.ottbin0 -> 12340 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-7red.ottbin0 -> 12390 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-8green.ottbin0 -> 11918 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/hu/aw-9colorful.ottbin0 -> 11942 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/10grey.ottbin0 -> 10174 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/1simple.ottbin0 -> 9822 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/2elegant.ottbin0 -> 11869 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/3modern.ottbin0 -> 10363 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/4classic.ottbin0 -> 9739 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/5blue.ottbin0 -> 9814 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/6orange.ottbin0 -> 10441 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/7red.ottbin0 -> 10155 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/8green.ottbin0 -> 10089 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/9colorful.ottbin0 -> 9851 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-10grey.ottbin0 -> 10174 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-1simple.ottbin0 -> 9822 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-2elegant.ottbin0 -> 11869 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-3modern.ottbin0 -> 10363 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-4classic.ottbin0 -> 9739 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-5blue.ottbin0 -> 9814 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-6orange.ottbin0 -> 10441 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-7red.ottbin0 -> 10684 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-8green.ottbin0 -> 10089 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/it/aw-9colorful.ottbin0 -> 9851 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/10grey.ottbin0 -> 12733 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/1simple.ottbin0 -> 12404 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/2elegant.ottbin0 -> 14509 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/3modern.ottbin0 -> 12961 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/4classic.ottbin0 -> 12350 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/5blue.ottbin0 -> 12366 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/6orange.ottbin0 -> 13043 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/7red.ottbin0 -> 12805 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/8green.ottbin0 -> 12665 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/9colorful.ottbin0 -> 12428 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-10grey.ottbin0 -> 12733 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-1simple.ottbin0 -> 12404 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-2elegant.ottbin0 -> 14509 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-3modern.ottbin0 -> 12961 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-4classic.ottbin0 -> 12350 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-5blue.ottbin0 -> 12366 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-6orange.ottbin0 -> 13043 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-7red.ottbin0 -> 12805 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-8green.ottbin0 -> 12665 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ja/aw-9colorful.ottbin0 -> 12428 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/10grey.ottbin0 -> 12935 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/1simple.ottbin0 -> 12448 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/2elegant.ottbin0 -> 17523 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/3modern.ottbin0 -> 13146 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/4classic.ottbin0 -> 12522 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/5blue.ottbin0 -> 12777 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/6orange.ottbin0 -> 13284 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/7red.ottbin0 -> 13099 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/8green.ottbin0 -> 12964 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/9colorful.ottbin0 -> 12807 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-10grey.ottbin0 -> 12927 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-1simple.ottbin0 -> 12470 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-2elegant.ottbin0 -> 17599 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-3modern.ottbin0 -> 13225 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-4classic.ottbin0 -> 12542 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-5blue.ottbin0 -> 12816 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-6orange.ottbin0 -> 13351 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-7red.ottbin0 -> 12882 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-8green.ottbin0 -> 12888 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/km/aw-9colorful.ottbin0 -> 12863 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/10grey.ottbin0 -> 12702 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/1simple.ottbin0 -> 12363 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/2elegant.ottbin0 -> 14482 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/3modern.ottbin0 -> 12951 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/4classic.ottbin0 -> 12294 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/5blue.ottbin0 -> 12362 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/6orange.ottbin0 -> 13035 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/7red.ottbin0 -> 10823 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/8green.ottbin0 -> 12654 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/9colorful.ottbin0 -> 12381 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-10grey.ottbin0 -> 12702 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-1simple.ottbin0 -> 12363 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-2elegant.ottbin0 -> 14482 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-3modern.ottbin0 -> 13538 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-4classic.ottbin0 -> 10263 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-5blue.ottbin0 -> 12362 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-6orange.ottbin0 -> 13035 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-7red.ottbin0 -> 12714 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-8green.ottbin0 -> 12654 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ko/aw-9colorful.ottbin0 -> 12381 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/makefile.mk47
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/10grey.ottbin0 -> 12008 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/1simple.ottbin0 -> 11796 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/2elegant.ottbin0 -> 16528 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/3modern.ottbin0 -> 12231 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/4classic.ottbin0 -> 11684 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/5blue.ottbin0 -> 11856 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/6orange.ottbin0 -> 12263 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/7red.ottbin0 -> 12230 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/8green.ottbin0 -> 11827 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/9colorful.ottbin0 -> 11872 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-10grey.ottbin0 -> 12008 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-1simple.ottbin0 -> 11796 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-2elegant.ottbin0 -> 16528 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-3modern.ottbin0 -> 12261 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-4classic.ottbin0 -> 11684 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-5blue.ottbin0 -> 11856 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-6orange.ottbin0 -> 12263 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-7red.ottbin0 -> 12260 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-8green.ottbin0 -> 11857 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/nl/aw-9colorful.ottbin0 -> 11872 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/10grey.ottbin0 -> 11315 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/1simple.ottbin0 -> 12791 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/2elegant.ottbin0 -> 17591 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/3modern.ottbin0 -> 11235 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/4classic.ottbin0 -> 12694 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/5blue.ottbin0 -> 12784 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/6orange.ottbin0 -> 13261 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/7red.ottbin0 -> 11278 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/8green.ottbin0 -> 11109 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/9colorful.ottbin0 -> 12881 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-10grey.ottbin0 -> 13107 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-1simple.ottbin0 -> 12806 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-2elegant.ottbin0 -> 17608 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-3modern.ottbin0 -> 13273 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-4classic.ottbin0 -> 12709 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-5blue.ottbin0 -> 12799 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-6orange.ottbin0 -> 13276 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-7red.ottbin0 -> 13225 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-8green.ottbin0 -> 12840 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pl/aw-9colorful.ottbin0 -> 12896 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/10grey.ottbin0 -> 10175 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/1simple.ottbin0 -> 9833 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/2elegant.ottbin0 -> 11890 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/3modern.ottbin0 -> 10395 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/4classic.ottbin0 -> 9767 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/5blue.ottbin0 -> 9855 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/6orange.ottbin0 -> 10467 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/7red.ottbin0 -> 10167 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/8green.ottbin0 -> 10009 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/9colorful.ottbin0 -> 9892 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-10grey.ottbin0 -> 10175 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-1simple.ottbin0 -> 9833 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-2elegant.ottbin0 -> 11890 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-3modern.ottbin0 -> 10395 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-4classic.ottbin0 -> 9767 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-5blue.ottbin0 -> 9855 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-6orange.ottbin0 -> 10467 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-7red.ottbin0 -> 10167 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-8green.ottbin0 -> 10009 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt-BR/aw-9colorful.ottbin0 -> 9892 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/10grey.ottbin0 -> 12846 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/1simple.ottbin0 -> 12739 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/2elegant.ottbin0 -> 17215 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/3modern.ottbin0 -> 13615 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/4classic.ottbin0 -> 12486 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/5blue.ottbin0 -> 12539 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/6orange.ottbin0 -> 13032 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/7red.ottbin0 -> 12998 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/8green.ottbin0 -> 12685 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/9colorful.ottbin0 -> 12670 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-10grey.ottbin0 -> 12846 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-1simple.ottbin0 -> 12743 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-2elegant.ottbin0 -> 17203 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-3modern.ottbin0 -> 13614 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-4classic.ottbin0 -> 12485 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-5blue.ottbin0 -> 12539 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-6orange.ottbin0 -> 13032 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-7red.ottbin0 -> 12999 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-8green.ottbin0 -> 12694 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/pt/aw-9colorful.ottbin0 -> 12671 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/10grey.ottbin0 -> 12347 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/1simple.ottbin0 -> 12120 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/2elegant.ottbin0 -> 16668 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/3modern.ottbin0 -> 13134 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/4classic.ottbin0 -> 11954 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/5blue.ottbin0 -> 12066 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/6orange.ottbin0 -> 12519 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/7red.ottbin0 -> 12502 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/8green.ottbin0 -> 12152 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/9colorful.ottbin0 -> 12217 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-10grey.ottbin0 -> 12347 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-1simple.ottbin0 -> 12120 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-2elegant.ottbin0 -> 16670 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-3modern.ottbin0 -> 13135 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-4classic.ottbin0 -> 11954 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-5blue.ottbin0 -> 12066 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-6orange.ottbin0 -> 12519 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-7red.ottbin0 -> 12501 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-8green.ottbin0 -> 12152 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/ru/aw-9colorful.ottbin0 -> 11078 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/10grey.ottbin0 -> 11317 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/1simple.ottbin0 -> 11090 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/2elegant.ottbin0 -> 15913 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/3modern.ottbin0 -> 11699 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/4classic.ottbin0 -> 11077 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/5blue.ottbin0 -> 11138 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/6orange.ottbin0 -> 11662 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/7red.ottbin0 -> 11532 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/8green.ottbin0 -> 11419 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/9colorful.ottbin0 -> 11090 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-10grey.ottbin0 -> 11395 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-1simple.ottbin0 -> 11123 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-2elegant.ottbin0 -> 15917 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-3modern.ottbin0 -> 11704 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-4classic.ottbin0 -> 11075 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-5blue.ottbin0 -> 11142 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-6orange.ottbin0 -> 11662 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-7red.ottbin0 -> 11532 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-8green.ottbin0 -> 11419 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sk/aw-9colorful.ottbin0 -> 11090 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/10grey.ottbin0 -> 10976 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/1simple.ottbin0 -> 10450 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/2elegant.ottbin0 -> 15402 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/3modern.ottbin0 -> 11342 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/4classic.ottbin0 -> 10612 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/5blue.ottbin0 -> 10752 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/6orange.ottbin0 -> 11226 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/7red.ottbin0 -> 11158 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/8green.ottbin0 -> 10914 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/9colorful.ottbin0 -> 10717 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-10grey.ottbin0 -> 10946 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-1simple.ottbin0 -> 10616 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-2elegant.ottbin0 -> 15434 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-3modern.ottbin0 -> 11408 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-4classic.ottbin0 -> 10604 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-5blue.ottbin0 -> 10731 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-6orange.ottbin0 -> 11286 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-7red.ottbin0 -> 11003 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-8green.ottbin0 -> 11001 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sl/aw-9colorful.ottbin0 -> 10737 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/10grey.ottbin0 -> 10138 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/1simple.ottbin0 -> 9812 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/2elegant.ottbin0 -> 11839 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/3modern.ottbin0 -> 10410 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/4classic.ottbin0 -> 9722 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/5blue.ottbin0 -> 9798 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/6orange.ottbin0 -> 10389 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/7red.ottbin0 -> 10179 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/8green.ottbin0 -> 10103 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/9colorful.ottbin0 -> 9824 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-10grey.ottbin0 -> 10138 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-1simple.ottbin0 -> 9812 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-2elegant.ottbin0 -> 11839 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-3modern.ottbin0 -> 10410 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-4classic.ottbin0 -> 9722 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-5blue.ottbin0 -> 9798 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-6orange.ottbin0 -> 10389 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-7red.ottbin0 -> 10179 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-8green.ottbin0 -> 10103 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/sv/aw-9colorful.ottbin0 -> 9824 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/10grey.ottbin0 -> 12001 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/1simple.ottbin0 -> 11939 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/2elegant.ottbin0 -> 16514 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/3modern.ottbin0 -> 12223 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/4classic.ottbin0 -> 11486 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/5blue.ottbin0 -> 11803 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/6orange.ottbin0 -> 12242 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/7red.ottbin0 -> 12294 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/8green.ottbin0 -> 11770 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/9colorful.ottbin0 -> 11806 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-10grey.ottbin0 -> 11998 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-1simple.ottbin0 -> 11748 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-2elegant.ottbin0 -> 16475 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-3modern.ottbin0 -> 12220 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-4classic.ottbin0 -> 11481 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-5blue.ottbin0 -> 11883 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-6orange.ottbin0 -> 12242 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-7red.ottbin0 -> 11772 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-8green.ottbin0 -> 11772 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/tr/aw-9colorful.ottbin0 -> 11853 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/10grey.ottbin0 -> 12525 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/1simple.ottbin0 -> 12597 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/2elegant.ottbin0 -> 17620 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/3modern.ottbin0 -> 12895 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/4classic.ottbin0 -> 12431 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/5blue.ottbin0 -> 12364 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/6orange.ottbin0 -> 12871 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/7red.ottbin0 -> 12743 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/8green.ottbin0 -> 12661 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/9colorful.ottbin0 -> 12297 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-10grey.ottbin0 -> 12642 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-1simple.ottbin0 -> 12743 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-2elegant.ottbin0 -> 17682 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-3modern.ottbin0 -> 13049 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-4classic.ottbin0 -> 12502 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-5blue.ottbin0 -> 12412 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-6orange.ottbin0 -> 12893 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-7red.ottbin0 -> 12858 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-8green.ottbin0 -> 12745 bytes
-rwxr-xr-xextras/source/templates/wizard/agenda/lang/vi/aw-9colorful.ottbin0 -> 12315 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/10grey.ottbin0 -> 12735 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/1simple.ottbin0 -> 12394 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/2elegant.ottbin0 -> 16460 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/3modern.ottbin0 -> 12957 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/4classic.ottbin0 -> 12316 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/5blue.ottbin0 -> 12372 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/6orange.ottbin0 -> 13030 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/7red.ottbin0 -> 12780 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/8green.ottbin0 -> 12679 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/9colorful.ottbin0 -> 12406 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-10grey.ottbin0 -> 12735 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-1simple.ottbin0 -> 12394 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-2elegant.ottbin0 -> 16534 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-3modern.ottbin0 -> 12957 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-4classic.ottbin0 -> 12316 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-5blue.ottbin0 -> 12372 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-6orange.ottbin0 -> 13030 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-7red.ottbin0 -> 12780 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-8green.ottbin0 -> 12679 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-CN/aw-9colorful.ottbin0 -> 12406 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/10grey.ottbin0 -> 12720 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/1simple.ottbin0 -> 12380 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/2elegant.ottbin0 -> 16478 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/3modern.ottbin0 -> 12970 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/4classic.ottbin0 -> 12314 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/5blue.ottbin0 -> 12372 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/6orange.ottbin0 -> 13057 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/7red.ottbin0 -> 12743 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/8green.ottbin0 -> 12691 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/9colorful.ottbin0 -> 12408 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-10grey.ottbin0 -> 12720 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-1simple.ottbin0 -> 12380 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-2elegant.ottbin0 -> 16559 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-3modern.ottbin0 -> 12970 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-4classic.ottbin0 -> 12314 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-5blue.ottbin0 -> 12372 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-6orange.ottbin0 -> 13057 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-7red.ottbin0 -> 12743 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-8green.ottbin0 -> 12691 bytes
-rw-r--r--extras/source/templates/wizard/agenda/lang/zh-TW/aw-9colorful.ottbin0 -> 12408 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/Import_1.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/Import_3.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/Import_4.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/MS-Import_2-1.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/MS-Import_2-2.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/MS-Import_2-3.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/XML-Import_2-1.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/XML-Import_2-2.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/XML-Import_2-3.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/XML-Import_2-4.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/brasil.gifbin0 -> 6075 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/cancel_down.bmpbin0 -> 416 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/cancel_up.bmpbin0 -> 416 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/china.gifbin0 -> 10764 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/delzip0
-rw-r--r--extras/source/templates/wizard/bitmap/denmark.gifbin0 -> 12229 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/down.bmpbin0 -> 644 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/end.bmpbin0 -> 13190 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/euro_1.bmpbin0 -> 23344 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/euro_2.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/euro_3.bmpbin0 -> 66480 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/finland.gifbin0 -> 9569 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/france.gifbin0 -> 7934 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/ftpconnected.gifbin0 -> 114 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/ftpconnecting.gifbin0 -> 166 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/ftperror.gifbin0 -> 123 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/ftpunknown.gifbin0 -> 152 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/germany.wmfbin0 -> 18306 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/greece.gifbin0 -> 13597 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/italia.gifbin0 -> 11213 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/japan.gifbin0 -> 7283 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/makefile.mk47
-rw-r--r--extras/source/templates/wizard/bitmap/maximize.bmpbin0 -> 822 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/minimize.bmpbin0 -> 726 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/netherlands.gifbin0 -> 8639 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/okay_down.bmpbin0 -> 416 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/okay_up.bmpbin0 -> 416 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/polska.gifbin0 -> 7839 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/portugal.gifbin0 -> 5638 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/report.bmpbin0 -> 15744 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/russia.gifbin0 -> 7711 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/spain.gifbin0 -> 6863 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/sweden.gifbin0 -> 8605 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/taiwan.gifbin0 -> 4900 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/turkey.gifbin0 -> 6000 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/tutorial_background.gifbin0 -> 1888 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/up.bmpbin0 -> 644 bytes
-rw-r--r--extras/source/templates/wizard/bitmap/usa.gifbin0 -> 7208 bytes
-rw-r--r--extras/source/templates/wizard/desktop/delzip1
-rw-r--r--extras/source/templates/wizard/desktop/lang/bg/html.stwbin0 -> 5305 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/bg/idxexample.odtbin0 -> 21286 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/bg/url_transfer.htm87
-rw-r--r--extras/source/templates/wizard/desktop/lang/cs/idxexample.odtbin0 -> 21272 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/cs/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/da/html.stwbin0 -> 5227 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/da/idxexample.odtbin0 -> 21140 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/da/url_transfer.htm81
-rw-r--r--extras/source/templates/wizard/desktop/lang/de/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/de/idxexample.odtbin0 -> 21157 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/de/url_transfer.htm85
-rw-r--r--extras/source/templates/wizard/desktop/lang/delzip2
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-GB/html.stwbin0 -> 6140 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-GB/idxexample.odtbin0 -> 21837 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-GB/url_transfer.htm92
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-US/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-US/idxexample.odtbin0 -> 21126 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/en-US/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/es/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/es/idxexample.odtbin0 -> 21146 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/es/url_transfer.htm85
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/eu/html.stwbin0 -> 5335 bytes
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/eu/idxexample.odtbin0 -> 22234 bytes
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/eu/url_transfer.htm80
-rw-r--r--extras/source/templates/wizard/desktop/lang/fr/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/fr/idxexample.odtbin0 -> 21152 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/fr/url_transfer.htm86
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/hu/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/hu/idxexample.odtbin0 -> 21196 bytes
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/hu/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/it/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/it/idxexample.odtbin0 -> 21150 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/it/url_transfer.htm84
-rw-r--r--extras/source/templates/wizard/desktop/lang/ja/html.stwbin0 -> 5529 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/ja/idxexample.odtbin0 -> 24039 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/ja/url_transfer.htm100
-rw-r--r--extras/source/templates/wizard/desktop/lang/km/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/km/idxexample.odtbin0 -> 21643 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/km/url_transfer.htm100
-rw-r--r--extras/source/templates/wizard/desktop/lang/ko/html.stwbin0 -> 5482 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/ko/idxexample.odtbin0 -> 24086 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/ko/url_transfer.htm96
-rw-r--r--extras/source/templates/wizard/desktop/lang/makefile.mk47
-rw-r--r--extras/source/templates/wizard/desktop/lang/nl/html.stwbin0 -> 7211 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/nl/idxexample.odtbin0 -> 9361 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/nl/url_transfer.htm82
-rw-r--r--extras/source/templates/wizard/desktop/lang/pl/idxexample.odtbin0 -> 13229 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/pl/url_transfer.htm84
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt-BR/html.stwbin0 -> 7141 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt-BR/idxexample.odtbin0 -> 21200 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt-BR/url_transfer.htm93
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt/html.stwbin0 -> 8091 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt/idxexample.odtbin0 -> 9339 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/pt/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/ru/idxexample.odtbin0 -> 13458 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/ru/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/sk/html.stwbin0 -> 6059 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sk/idxexample.odtbin0 -> 9399 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sk/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/sl/html.stwbin0 -> 5229 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sl/idxexample.odtbin0 -> 21320 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sl/idxexample.sxwbin0 -> 20352 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sl/url_transfer.htm82
-rw-r--r--extras/source/templates/wizard/desktop/lang/sv/html.stwbin0 -> 5335 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sv/idxexample.odtbin0 -> 21170 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/sv/url_transfer.htm83
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/vi/html.stwbin0 -> 5335 bytes
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/vi/idxexample.odtbin0 -> 22170 bytes
-rwxr-xr-xextras/source/templates/wizard/desktop/lang/vi/url_transfer.htm83
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-CN/html.stwbin0 -> 5877 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-CN/idxexample.odtbin0 -> 24054 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-CN/url_transfer.htm94
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-TW/html.stwbin0 -> 5930 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-TW/idxexample.odtbin0 -> 24033 bytes
-rw-r--r--extras/source/templates/wizard/desktop/lang/zh-TW/url_transfer.htm98
-rw-r--r--extras/source/templates/wizard/desktop/makefile.mk49
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/bus-classic-pri_f.ottbin0 -> 13962 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/bus-classic_f.ottbin0 -> 26328 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/bus-modern-pri_f.ottbin0 -> 13895 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/bus-modern_f.ottbin0 -> 26302 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/pri-bottle_f.ottbin0 -> 48536 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/pri-fax_f.ottbin0 -> 58797 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/pri-lines_f.ottbin0 -> 12413 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/bg/pri-marine_f.ottbin0 -> 19615 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/bus-classic-pri_f.ottbin0 -> 14002 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/bus-classic_f.ottbin0 -> 26389 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/bus-modern-pri_f.ottbin0 -> 13887 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/bus-modern_f.ottbin0 -> 26295 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/pri-bottle_f.ottbin0 -> 48469 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/pri-fax_f.ottbin0 -> 58690 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/pri-lines_f.ottbin0 -> 12506 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/cs/pri-marine_f.ottbin0 -> 19556 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/bus-classic-pri_f.ottbin0 -> 13247 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/bus-classic_f.ottbin0 -> 25604 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/bus-modern-pri_f.ottbin0 -> 13210 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/bus-modern_f.ottbin0 -> 25500 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/pri-bottle_f.ottbin0 -> 47905 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/pri-fax_f.ottbin0 -> 58181 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/pri-lines_f.ottbin0 -> 11991 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/da/pri-marine_f.ottbin0 -> 19005 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/bus-classic-pri_f.ottbin0 -> 16876 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/bus-classic_f.ottbin0 -> 29457 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/bus-modern-pri_f.ottbin0 -> 16793 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/bus-modern_f.ottbin0 -> 29437 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/pri-bottle_f.ottbin0 -> 50477 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/pri-fax_f.ottbin0 -> 60698 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/pri-lines_f.ottbin0 -> 14361 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/de/pri-marine_f.ottbin0 -> 21451 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/delzip1
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/bus-classic-pri_f.ottbin0 -> 14266 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/bus-classic_f.ottbin0 -> 26573 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/bus-modern-pri_f.ottbin0 -> 14167 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/bus-modern_f.ottbin0 -> 26458 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/pri-bottle_f.ottbin0 -> 48319 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/pri-fax_f.ottbin0 -> 58632 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/pri-lines_f.ottbin0 -> 12445 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-GB/pri-marine_f.ottbin0 -> 19486 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/bus-classic-pri_f.ottbin0 -> 13433 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/bus-classic_f.ottbin0 -> 25806 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/bus-modern-pri_f.ottbin0 -> 13391 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/bus-modern_f.ottbin0 -> 25693 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/pri-bottle_f.ottbin0 -> 48122 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/pri-fax_f.ottbin0 -> 58398 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/pri-lines_f.ottbin0 -> 12192 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/en-US/pri-marine_f.ottbin0 -> 19214 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/bus-classic-pri_f.ottbin0 -> 13013 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/bus-classic_f.ottbin0 -> 13717 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/bus-modern-pri_f.ottbin0 -> 12972 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/bus-modern_f.ottbin0 -> 13752 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/pri-bottle_f.ottbin0 -> 47907 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/pri-fax_f.ottbin0 -> 58176 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/pri-lines_f.ottbin0 -> 11998 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/es/pri-marine_f.ottbin0 -> 19028 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/bus-classic-pri_f.ottbin0 -> 16130 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/bus-classic_f.ottbin0 -> 28403 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/bus-modern-pri_f.ottbin0 -> 16032 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/bus-modern_f.ottbin0 -> 28356 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/pri-bottle_f.ottbin0 -> 49792 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/pri-fax_f.ottbin0 -> 60089 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/pri-lines_f.ottbin0 -> 13823 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/eu/pri-marine_f.ottbin0 -> 20942 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/bus-classic-pri_f.ottbin0 -> 17369 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/bus-classic_f.ottbin0 -> 17470 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/bus-modern-pri_f.ottbin0 -> 17295 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/bus-modern_f.ottbin0 -> 17445 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/pri-bottle_f.ottbin0 -> 52227 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/pri-fax_f.ottbin0 -> 62441 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/pri-lines_f.ottbin0 -> 15884 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/fr/pri-marine_f.ottbin0 -> 23099 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/bus-classic-pri_f.ottbin0 -> 15321 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/bus-classic_f.ottbin0 -> 27827 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/bus-modern-pri_f.ottbin0 -> 15210 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/bus-modern_f.ottbin0 -> 27671 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/pri-bottle_f.ottbin0 -> 48943 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/pri-fax_f.ottbin0 -> 59204 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/pri-lines_f.ottbin0 -> 12935 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/hu/pri-marine_f.ottbin0 -> 20155 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/bus-classic-pri_f.ottbin0 -> 15872 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/bus-classic_f.ottbin0 -> 16076 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/bus-modern-pri_f.ottbin0 -> 15969 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/bus-modern_f.ottbin0 -> 16295 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/pri-bottle_f.ottbin0 -> 50212 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/pri-fax_f.ottbin0 -> 60326 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/pri-lines_f.ottbin0 -> 13799 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/it/pri-marine_f.ottbin0 -> 21243 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/bus-classic-pri_f.ottbin0 -> 13383 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/bus-classic_f.ottbin0 -> 14053 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/bus-modern-pri_f.ottbin0 -> 13319 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/bus-modern_f.ottbin0 -> 14128 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/pri-bottle_f.ottbin0 -> 48355 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/pri-fax_f.ottbin0 -> 58538 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/pri-lines_f.ottbin0 -> 12319 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ja/pri-marine_f.ottbin0 -> 19373 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/bus-classic-pri_f.ottbin0 -> 15539 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/bus-classic_f.ottbin0 -> 27837 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/bus-modern-pri_f.ottbin0 -> 15478 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/bus-modern_f.ottbin0 -> 27743 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/pri-bottle_f.ottbin0 -> 49157 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/pri-fax_f.ottbin0 -> 59430 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/pri-lines_f.ottbin0 -> 13259 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/km/pri-marine_f.ottbin0 -> 20312 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/bus-classic-pri_f.ottbin0 -> 13343 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/bus-classic_f.ottbin0 -> 14054 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/bus-modern-pri_f.ottbin0 -> 13289 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/bus-modern_f.ottbin0 -> 13576 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/pri-bottle_f.ottbin0 -> 12483 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/pri-fax_f.ottbin0 -> 13120 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/pri-lines_f.ottbin0 -> 12292 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ko/pri-marine_f.ottbin0 -> 12449 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/makefile.mk49
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/bus-classic-pri_f.ottbin0 -> 14349 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/bus-classic_f.ottbin0 -> 26669 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/bus-modern-pri_f.ottbin0 -> 14322 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/bus-modern_f.ottbin0 -> 26624 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/pri-bottle_f.ottbin0 -> 48410 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/pri-fax_f.ottbin0 -> 58728 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/pri-lines_f.ottbin0 -> 12554 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/nl/pri-marine_f.ottbin0 -> 19533 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/bus-classic-pri_f.ottbin0 -> 15439 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/bus-classic_f.ottbin0 -> 27785 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/bus-modern-pri_f.ottbin0 -> 15409 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/bus-modern_f.ottbin0 -> 27719 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/pri-bottle_f.ottbin0 -> 49546 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/pri-fax_f.ottbin0 -> 59823 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/pri-lines_f.ottbin0 -> 12224 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pl/pri-marine_f.ottbin0 -> 20644 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/bus-classic-pri_f.ottbin0 -> 15944 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/bus-classic_f.ottbin0 -> 16152 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/bus-modern-pri_f.ottbin0 -> 15899 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/bus-modern_f.ottbin0 -> 16225 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/pri-bottle_f.ottbin0 -> 50297 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/pri-fax_f.ottbin0 -> 60408 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/pri-lines_f.ottbin0 -> 13867 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt-BR/pri-marine_f.ottbin0 -> 21372 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/bus-classic-pri_f.ottbin0 -> 15598 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/bus-classic_f.ottbin0 -> 28016 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/bus-modern-pri_f.ottbin0 -> 15585 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/bus-modern_f.ottbin0 -> 27904 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/pri-bottle_f.ottbin0 -> 49710 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/pri-fax_f.ottbin0 -> 60034 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/pri-lines_f.ottbin0 -> 13686 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/pt/pri-marine_f.ottbin0 -> 20846 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/bus-classic-pri_f.ottbin0 -> 14856 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/bus-classic_f.ottbin0 -> 27108 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/bus-modern-pri_f.ottbin0 -> 14879 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/bus-modern_f.ottbin0 -> 27165 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/pri-bottle_f.ottbin0 -> 48761 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/pri-fax_f.ottbin0 -> 59018 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/pri-lines_f.ottbin0 -> 12763 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/ru/pri-marine_f.ottbin0 -> 19920 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/bus-classic-pri_f.ottbin0 -> 14378 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/bus-classic_f.ottbin0 -> 26780 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/bus-modern-pri_f.ottbin0 -> 14281 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/bus-modern_f.ottbin0 -> 26654 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/pri-bottle_f.ottbin0 -> 48863 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/pri-fax_f.ottbin0 -> 59103 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/pri-lines_f.ottbin0 -> 12809 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sk/pri-marine_f.ottbin0 -> 19790 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/bus-classic-pri_f.ottbin0 -> 13578 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/bus-classic_f.ottbin0 -> 26009 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/bus-modern-pri_f.ottbin0 -> 13401 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/bus-modern_f.ottbin0 -> 25879 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/pri-bottle_f.ottbin0 -> 48301 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/pri-fax_f.ottbin0 -> 58562 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/pri-lines_f.ottbin0 -> 12202 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sl/pri-marine_f.ottbin0 -> 19442 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/bus-classic-pri_f.ottbin0 -> 13040 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/bus-classic_f.ottbin0 -> 13727 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/bus-modern-pri_f.ottbin0 -> 12969 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/bus-modern_f.ottbin0 -> 13761 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/pri-bottle_f.ottbin0 -> 47941 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/pri-fax_f.ottbin0 -> 58188 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/pri-lines_f.ottbin0 -> 12009 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/sv/pri-marine_f.ottbin0 -> 19049 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/bus-classic-pri_f.ottbin0 -> 14762 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/bus-classic_f.ottbin0 -> 27043 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/bus-modern-pri_f.ottbin0 -> 14734 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/bus-modern_f.ottbin0 -> 26979 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/pri-bottle_f.ottbin0 -> 48657 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/pri-fax_f.ottbin0 -> 58959 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/pri-lines_f.ottbin0 -> 12676 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/tr/pri-marine_f.ottbin0 -> 19823 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/bus-classic-pri_f.ottbin0 -> 27437 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/bus-classic_f.ottbin0 -> 27438 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/bus-modern-pri_f.ottbin0 -> 14972 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/bus-modern_f.ottbin0 -> 27533 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/pri-bottle_f.ottbin0 -> 49902 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/pri-fax_f.ottbin0 -> 60112 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/pri-lines_f.ottbin0 -> 13539 bytes
-rwxr-xr-xextras/source/templates/wizard/fax/lang/vi/pri-marine_f.ottbin0 -> 20782 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/bus-classic-pri_f.ottbin0 -> 13272 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/bus-classic_f.ottbin0 -> 13980 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/bus-modern-pri_f.ottbin0 -> 13219 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/bus-modern_f.ottbin0 -> 14028 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/pri-bottle_f.ottbin0 -> 48306 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/pri-fax_f.ottbin0 -> 58488 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/pri-lines_f.ottbin0 -> 12263 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-CN/pri-marine_f.ottbin0 -> 19355 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/bus-classic-pri_f.ottbin0 -> 13489 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/bus-classic_f.ottbin0 -> 13990 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/bus-modern-pri_f.ottbin0 -> 13287 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/bus-modern_f.ottbin0 -> 14068 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/pri-bottle_f.ottbin0 -> 48327 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/pri-fax_f.ottbin0 -> 58507 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/pri-lines_f.ottbin0 -> 12286 bytes
-rw-r--r--extras/source/templates/wizard/fax/lang/zh-TW/pri-marine_f.ottbin0 -> 19364 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/bus-elegant_l.ottbin0 -> 33481 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/bus-modern_l.ottbin0 -> 33305 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/bus-office_l.ottbin0 -> 33302 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/off-elegant_l.ottbin0 -> 15115 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/off-modern_l.ottbin0 -> 14690 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/off-office_l.ottbin0 -> 14392 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/pri-bottle_l.ottbin0 -> 48155 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/pri-mail_l.ottbin0 -> 24078 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/pri-marine_l.ottbin0 -> 19317 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/bg/pri-redline_l.ottbin0 -> 12133 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/bus-elegant_l.ottbin0 -> 35308 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/bus-modern_l.ottbin0 -> 35774 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/bus-office_l.ottbin0 -> 35420 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/off-elegant_l.ottbin0 -> 16796 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/off-modern_l.ottbin0 -> 16474 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/off-office_l.ottbin0 -> 16099 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/pri-bottle_l.ottbin0 -> 48166 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/pri-mail_l.ottbin0 -> 24034 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/pri-marine_l.ottbin0 -> 19287 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/cs/pri-redline_l.ottbin0 -> 12291 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/bus-elegant_l.ottbin0 -> 34076 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/bus-modern_l.ottbin0 -> 34201 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/bus-office_l.ottbin0 -> 34097 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/off-elegant_l.ottbin0 -> 15647 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/off-modern_l.ottbin0 -> 15245 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/off-office_l.ottbin0 -> 14769 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/pri-bottle_l.ottbin0 -> 47452 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/pri-mail_l.ottbin0 -> 23344 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/pri-marine_l.ottbin0 -> 18528 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/da/pri-redline_l.ottbin0 -> 11639 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/bus-elegant_l.ottbin0 -> 36299 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/bus-modern_l.ottbin0 -> 36496 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/bus-office_l.ottbin0 -> 36279 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/off-elegant_l.ottbin0 -> 15742 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/off-modern_l.ottbin0 -> 15315 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/off-office_l.ottbin0 -> 14789 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/pri-bottle_l.ottbin0 -> 48191 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/pri-mail_l.ottbin0 -> 24168 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/pri-marine_l.ottbin0 -> 19306 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/de/pri-redline_l.ottbin0 -> 12473 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/delzip1
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/bus-elegant_l.ottbin0 -> 34203 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/bus-modern_l.ottbin0 -> 34370 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/bus-office_l.ottbin0 -> 34188 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/off-elegant_l.ottbin0 -> 15692 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/off-modern_l.ottbin0 -> 15332 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/off-office_l.ottbin0 -> 14881 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/pri-bottle_l.ottbin0 -> 47926 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/pri-mail_l.ottbin0 -> 23854 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/pri-marine_l.ottbin0 -> 19125 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-GB/pri-redline_l.ottbin0 -> 12148 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/bus-elegant_l.ottbin0 -> 33945 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/bus-modern_l.ottbin0 -> 34270 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/bus-office_l.ottbin0 -> 34041 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/off-elegant_l.ottbin0 -> 15629 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/off-modern_l.ottbin0 -> 15341 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/off-office_l.ottbin0 -> 14731 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/pri-bottle_l.ottbin0 -> 48260 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/pri-mail_l.ottbin0 -> 24144 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/pri-marine_l.ottbin0 -> 19326 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/en-US/pri-redline_l.ottbin0 -> 12423 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/bus-elegant_l.ottbin0 -> 35196 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/bus-modern_l.ottbin0 -> 35293 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/bus-office_l.ottbin0 -> 35288 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/off-elegant_l.ottbin0 -> 15714 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/off-modern_l.ottbin0 -> 15514 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/off-office_l.ottbin0 -> 14755 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/pri-bottle_l.ottbin0 -> 48283 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/pri-mail_l.ottbin0 -> 24241 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/pri-marine_l.ottbin0 -> 19443 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/es/pri-redline_l.ottbin0 -> 12544 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/bus-elegant_l.ottbin0 -> 33891 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/bus-modern_l.ottbin0 -> 33889 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/bus-office_l.ottbin0 -> 33857 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/off-elegant_l.ottbin0 -> 15864 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/off-modern_l.ottbin0 -> 15381 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/off-office_l.ottbin0 -> 15020 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/pri-bottle_l.ottbin0 -> 49465 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/pri-mail_l.ottbin0 -> 25367 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/pri-marine_l.ottbin0 -> 20630 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/eu/pri-redline_l.ottbin0 -> 13539 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/bus-elegant_l.ottbin0 -> 35087 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/bus-modern_l.ottbin0 -> 35258 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/bus-office_l.ottbin0 -> 35187 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/off-elegant_l.ottbin0 -> 15706 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/off-modern_l.ottbin0 -> 15517 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/off-office_l.ottbin0 -> 14721 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/pri-bottle_l.ottbin0 -> 48247 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/pri-mail_l.ottbin0 -> 24192 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/pri-marine_l.ottbin0 -> 19393 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/fr/pri-redline_l.ottbin0 -> 12485 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/bus-elegant_l.ottbin0 -> 28811 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/bus-modern_l.ottbin0 -> 29220 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/bus-office_l.ottbin0 -> 28943 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/off-elegant_l.ottbin0 -> 17014 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/off-modern_l.ottbin0 -> 16696 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/off-office_l.ottbin0 -> 16232 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/pri-bottle_l.ottbin0 -> 48573 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/pri-mail_l.ottbin0 -> 24608 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/pri-marine_l.ottbin0 -> 19848 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/hu/pri-redline_l.ottbin0 -> 12724 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/bus-elegant_l.ottbin0 -> 35132 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/bus-modern_l.ottbin0 -> 35272 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/bus-office_l.ottbin0 -> 35239 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/off-elegant_l.ottbin0 -> 15685 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/off-modern_l.ottbin0 -> 15531 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/off-office_l.ottbin0 -> 14763 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/pri-bottle_l.ottbin0 -> 48251 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/pri-mail_l.ottbin0 -> 24212 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/pri-marine_l.ottbin0 -> 19414 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/it/pri-redline_l.ottbin0 -> 12505 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/bus-elegant_l.ottbin0 -> 32851 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/bus-modern_l.ottbin0 -> 32811 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/bus-office_l.ottbin0 -> 32866 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/off-elegant_l.ottbin0 -> 13980 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/off-modern_l.ottbin0 -> 13542 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/off-office_l.ottbin0 -> 13078 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/pri-bottle_l.ottbin0 -> 48475 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/pri-mail_l.ottbin0 -> 24376 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/pri-marine_l.ottbin0 -> 19693 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ja/pri-redline_l.ottbin0 -> 12690 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/bus-elegant_l.ottbin0 -> 33195 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/bus-modern_l.ottbin0 -> 33366 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/bus-office_l.ottbin0 -> 33297 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/off-elegant_l.ottbin0 -> 15136 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/off-modern_l.ottbin0 -> 14766 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/off-office_l.ottbin0 -> 14343 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/pri-bottle_l.ottbin0 -> 48755 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/pri-mail_l.ottbin0 -> 24707 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/pri-marine_l.ottbin0 -> 19963 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/km/pri-redline_l.ottbin0 -> 12974 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/bus-elegant_l.ottbin0 -> 33016 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/bus-modern_l.ottbin0 -> 32993 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/bus-office_l.ottbin0 -> 33110 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/off-elegant_l.ottbin0 -> 14164 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/off-modern_l.ottbin0 -> 13716 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/off-office_l.ottbin0 -> 13242 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/pri-bottle_l.ottbin0 -> 48425 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/pri-mail_l.ottbin0 -> 24371 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/pri-marine_l.ottbin0 -> 19629 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ko/pri-redline_l.ottbin0 -> 12664 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/makefile.mk56
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/bus-elegant_l.ottbin0 -> 35129 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/bus-modern_l.ottbin0 -> 35296 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/bus-office_l.ottbin0 -> 35304 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/off-elegant_l.ottbin0 -> 15686 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/off-modern_l.ottbin0 -> 15300 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/off-office_l.ottbin0 -> 14769 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/pri-bottle_l.ottbin0 -> 48038 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/pri-mail_l.ottbin0 -> 23992 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/pri-marine_l.ottbin0 -> 19194 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/nl/pri-redline_l.ottbin0 -> 12272 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/bus-elegant_l.ottbin0 -> 35321 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/bus-modern_l.ottbin0 -> 35491 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/bus-office_l.ottbin0 -> 35400 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/off-elegant_l.ottbin0 -> 15723 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/off-modern_l.ottbin0 -> 15361 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/off-office_l.ottbin0 -> 14779 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/pri-bottle_l.ottbin0 -> 48075 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/pri-mail_l.ottbin0 -> 24013 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/pri-marine_l.ottbin0 -> 19287 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pl/pri-redline_l.ottbin0 -> 12202 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/bus-elegant_l.ottbin0 -> 32898 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/bus-modern_l.ottbin0 -> 32976 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/bus-office_l.ottbin0 -> 33065 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/off-elegant_l.ottbin0 -> 13883 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/off-modern_l.ottbin0 -> 13540 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/off-office_l.ottbin0 -> 13125 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/pri-bottle_l.ottbin0 -> 48298 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/pri-mail_l.ottbin0 -> 24283 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/pri-marine_l.ottbin0 -> 19487 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt-BR/pri-redline_l.ottbin0 -> 12581 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/bus-elegant_l.ottbin0 -> 34166 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/bus-modern_l.ottbin0 -> 34295 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/bus-office_l.ottbin0 -> 34137 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/off-elegant_l.ottbin0 -> 15666 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/off-modern_l.ottbin0 -> 15271 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/off-office_l.ottbin0 -> 14805 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/pri-bottle_l.ottbin0 -> 49425 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/pri-mail_l.ottbin0 -> 25343 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/pri-marine_l.ottbin0 -> 20592 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/pt/pri-redline_l.ottbin0 -> 13497 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/bus-elegant_l.ottbin0 -> 32769 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/bus-modern_l.ottbin0 -> 32828 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/bus-office_l.ottbin0 -> 32818 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/off-elegant_l.ottbin0 -> 14608 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/off-modern_l.ottbin0 -> 13644 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/off-office_l.ottbin0 -> 13848 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/pri-bottle_l.ottbin0 -> 48536 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/pri-mail_l.ottbin0 -> 24413 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/pri-marine_l.ottbin0 -> 19526 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/ru/pri-redline_l.ottbin0 -> 12568 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/bus-elegant_l.ottbin0 -> 32678 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/bus-modern_l.ottbin0 -> 32647 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/bus-office_l.ottbin0 -> 32986 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/off-elegant_l.ottbin0 -> 14478 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/off-modern_l.ottbin0 -> 13966 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/off-office_l.ottbin0 -> 13750 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/pri-bottle_l.ottbin0 -> 48272 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/pri-mail_l.ottbin0 -> 24170 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/pri-marine_l.ottbin0 -> 19478 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sk/pri-redline_l.ottbin0 -> 12598 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/bus-elegant_l.ottbin0 -> 19390 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/bus-modern_l.ottbin0 -> 19439 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/bus-office_l.ottbin0 -> 19454 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/off-elegant_l.ottbin0 -> 13944 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/off-modern_l.ottbin0 -> 13501 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/off-office_l.ottbin0 -> 13109 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/pri-bottle_l.ottbin0 -> 47978 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/pri-mail_l.ottbin0 -> 23904 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/pri-marine_l.ottbin0 -> 19152 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sl/pri-redline_l.ottbin0 -> 11951 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/bus-elegant_l.ottbin0 -> 35195 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/bus-modern_l.ottbin0 -> 35342 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/bus-office_l.ottbin0 -> 35313 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/off-elegant_l.ottbin0 -> 15768 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/off-modern_l.ottbin0 -> 15347 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/off-office_l.ottbin0 -> 14801 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/pri-bottle_l.ottbin0 -> 48237 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/pri-mail_l.ottbin0 -> 24226 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/pri-marine_l.ottbin0 -> 19359 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/sv/pri-redline_l.ottbin0 -> 12522 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/bus-elegant_l.ottbin0 -> 32509 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/bus-modern_l.ottbin0 -> 32664 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/bus-office_l.ottbin0 -> 32593 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/off-elegant_l.ottbin0 -> 14371 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/off-modern_l.ottbin0 -> 14067 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/off-office_l.ottbin0 -> 13636 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/pri-bottle_l.ottbin0 -> 48166 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/pri-mail_l.ottbin0 -> 24128 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/pri-marine_l.ottbin0 -> 19377 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/tr/pri-redline_l.ottbin0 -> 12290 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/bus-elegant_l.ottbin0 -> 34581 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/bus-modern_l.ottbin0 -> 34704 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/bus-office_l.ottbin0 -> 34605 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/off-elegant_l.ottbin0 -> 15318 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/off-modern_l.ottbin0 -> 14885 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/off-office_l.ottbin0 -> 14412 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/pri-bottle_l.ottbin0 -> 49511 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/pri-mail_l.ottbin0 -> 25281 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/pri-marine_l.ottbin0 -> 20477 bytes
-rwxr-xr-xextras/source/templates/wizard/letter/lang/vi/pri-redline_l.ottbin0 -> 13302 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/bus-elegant_l.ottbin0 -> 32964 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/bus-modern_l.ottbin0 -> 32935 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/bus-office_l.ottbin0 -> 33050 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/off-elegant_l.ottbin0 -> 14136 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/off-modern_l.ottbin0 -> 13669 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/off-office_l.ottbin0 -> 13239 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/pri-bottle_l.ottbin0 -> 48484 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/pri-mail_l.ottbin0 -> 24392 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/pri-marine_l.ottbin0 -> 19680 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-CN/pri-redline_l.ottbin0 -> 12693 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/bus-elegant_l.ottbin0 -> 32949 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/bus-modern_l.ottbin0 -> 32924 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/bus-office_l.ottbin0 -> 33059 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/off-elegant_l.ottbin0 -> 14096 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/off-modern_l.ottbin0 -> 13615 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/off-office_l.ottbin0 -> 13206 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/pri-bottle_l.ottbin0 -> 48497 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/pri-mail_l.ottbin0 -> 24420 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/pri-marine_l.ottbin0 -> 19681 bytes
-rw-r--r--extras/source/templates/wizard/letter/lang/zh-TW/pri-redline_l.ottbin0 -> 12701 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-01.ottbin0 -> 9846 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-011.ottbin0 -> 9686 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-012.ottbin0 -> 9640 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-02.ottbin0 -> 9500 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-021.ottbin0 -> 9520 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-022.ottbin0 -> 9396 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-03.ottbin0 -> 9951 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-031.ottbin0 -> 10031 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-032.ottbin0 -> 9895 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-04.ottbin0 -> 10090 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-041.ottbin0 -> 10224 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-042.ottbin0 -> 9955 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-05.ottbin0 -> 9515 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-051.ottbin0 -> 9518 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-052.ottbin0 -> 9561 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-06.ottbin0 -> 9921 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-061.ottbin0 -> 9906 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-062.ottbin0 -> 9827 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/cnt-default.ottbin0 -> 9657 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-01.ottbin0 -> 37043 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-02.ottbin0 -> 26176 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-03.ottbin0 -> 46632 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-04.ottbin0 -> 25021 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-05.ottbin0 -> 46527 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-06.ottbin0 -> 18351 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-07.ottbin0 -> 8793 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-08.ottbin0 -> 13368 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-09.ottbin0 -> 50528 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/bg/stl-default.ottbin0 -> 7693 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-01.ottbin0 -> 8755 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-011.ottbin0 -> 8773 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-012.ottbin0 -> 8700 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-02.ottbin0 -> 8648 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-021.ottbin0 -> 8695 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-022.ottbin0 -> 8591 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-03.ottbin0 -> 8998 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-031.ottbin0 -> 8994 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-032.ottbin0 -> 8928 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-04.ottbin0 -> 9100 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-041.ottbin0 -> 9250 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-042.ottbin0 -> 8949 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-05.ottbin0 -> 8647 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-051.ottbin0 -> 8685 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-052.ottbin0 -> 8627 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-06.ottbin0 -> 8911 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-061.ottbin0 -> 8867 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-062.ottbin0 -> 8764 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/cnt-default.ottbin0 -> 8773 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-01.ottbin0 -> 35377 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-02.ottbin0 -> 25279 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-03.ottbin0 -> 45733 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-04.ottbin0 -> 23274 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-05.ottbin0 -> 45684 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-06.ottbin0 -> 16844 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-07.ottbin0 -> 8055 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-08.ottbin0 -> 10882 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-09.ottbin0 -> 48611 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/cs/stl-default.ottbin0 -> 6927 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-01.ottbin0 -> 8620 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-011.ottbin0 -> 8613 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-012.ottbin0 -> 8510 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-02.ottbin0 -> 8464 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-021.ottbin0 -> 8537 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-022.ottbin0 -> 8396 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-03.ottbin0 -> 8812 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-031.ottbin0 -> 8806 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-032.ottbin0 -> 8737 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-04.ottbin0 -> 8921 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-041.ottbin0 -> 9058 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-042.ottbin0 -> 8767 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-05.ottbin0 -> 8450 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-051.ottbin0 -> 8435 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-052.ottbin0 -> 8432 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-06.ottbin0 -> 8725 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-061.ottbin0 -> 8654 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-062.ottbin0 -> 8585 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/cnt-default.ottbin0 -> 8589 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-01.ottbin0 -> 35087 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-02.ottbin0 -> 24973 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-03.ottbin0 -> 45383 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-04.ottbin0 -> 22956 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-05.ottbin0 -> 45354 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-06.ottbin0 -> 16531 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-07.ottbin0 -> 7616 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-08.ottbin0 -> 10605 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-09.ottbin0 -> 48279 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/da/stl-default.ottbin0 -> 6627 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-01.ottbin0 -> 8760 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-011.ottbin0 -> 8817 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-012.ottbin0 -> 8690 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-02.ottbin0 -> 8720 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-021.ottbin0 -> 8770 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-022.ottbin0 -> 8598 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-03.ottbin0 -> 9073 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-031.ottbin0 -> 9063 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-032.ottbin0 -> 8956 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-04.ottbin0 -> 9096 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-041.ottbin0 -> 9119 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-042.ottbin0 -> 8981 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-05.ottbin0 -> 8596 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-051.ottbin0 -> 8661 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-052.ottbin0 -> 8625 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-06.ottbin0 -> 8895 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-061.ottbin0 -> 8885 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-062.ottbin0 -> 8765 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/cnt-default.ottbin0 -> 8882 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-01.ottbin0 -> 35301 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-02.ottbin0 -> 25192 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-03.ottbin0 -> 45591 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-04.ottbin0 -> 22663 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-05.ottbin0 -> 45398 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-06.ottbin0 -> 16719 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-07.ottbin0 -> 7792 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-08.ottbin0 -> 11405 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-09.ottbin0 -> 48416 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/de/stl-default.ottbin0 -> 6843 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/delzip2
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-01.ottbin0 -> 10277 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-011.ottbin0 -> 10146 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-012.ottbin0 -> 10137 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-02.ottbin0 -> 10011 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-021.ottbin0 -> 9997 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-022.ottbin0 -> 9833 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-03.ottbin0 -> 10383 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-031.ottbin0 -> 10275 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-032.ottbin0 -> 10174 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-04.ottbin0 -> 10388 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-041.ottbin0 -> 10424 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-042.ottbin0 -> 10381 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-05.ottbin0 -> 9725 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-051.ottbin0 -> 9687 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-052.ottbin0 -> 9703 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-06.ottbin0 -> 10297 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-061.ottbin0 -> 10196 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-062.ottbin0 -> 10129 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/cnt-default.ottbin0 -> 10060 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-01.ottbin0 -> 36755 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-02.ottbin0 -> 25830 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-03.ottbin0 -> 46351 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-04.ottbin0 -> 24172 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-05.ottbin0 -> 46261 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-06.ottbin0 -> 18156 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-07.ottbin0 -> 9121 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-08.ottbin0 -> 12482 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-09.ottbin0 -> 50141 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-GB/stl-default.ottbin0 -> 7561 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-01.ottbin0 -> 8813 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-011.ottbin0 -> 8803 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-012.ottbin0 -> 8707 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-02.ottbin0 -> 8666 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-021.ottbin0 -> 8738 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-022.ottbin0 -> 8594 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-03.ottbin0 -> 9003 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-031.ottbin0 -> 8999 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-032.ottbin0 -> 8931 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-04.ottbin0 -> 9119 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-041.ottbin0 -> 9264 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-042.ottbin0 -> 8959 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-05.ottbin0 -> 8651 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-051.ottbin0 -> 8635 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-052.ottbin0 -> 8633 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-06.ottbin0 -> 8900 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-061.ottbin0 -> 8831 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-062.ottbin0 -> 8763 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/cnt-default.ottbin0 -> 8777 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-01.ottbin0 -> 35361 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-02.ottbin0 -> 25203 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-03.ottbin0 -> 45630 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-04.ottbin0 -> 23224 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-05.ottbin0 -> 45601 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-06.ottbin0 -> 16824 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-07.ottbin0 -> 7951 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-08.ottbin0 -> 10871 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-09.ottbin0 -> 48567 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/en-US/stl-default.ottbin0 -> 6857 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-01.ottbin0 -> 8764 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-011.ottbin0 -> 8824 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-012.ottbin0 -> 8698 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-02.ottbin0 -> 8727 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-021.ottbin0 -> 8776 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-022.ottbin0 -> 8611 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-03.ottbin0 -> 9080 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-031.ottbin0 -> 9067 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-032.ottbin0 -> 8966 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-04.ottbin0 -> 9104 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-041.ottbin0 -> 9128 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-042.ottbin0 -> 8998 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-05.ottbin0 -> 8612 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-051.ottbin0 -> 8664 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-052.ottbin0 -> 8633 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-06.ottbin0 -> 8887 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-061.ottbin0 -> 8877 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-062.ottbin0 -> 8766 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/cnt-default.ottbin0 -> 8892 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-01.ottbin0 -> 38158 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-02.ottbin0 -> 25281 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-03.ottbin0 -> 47640 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-04.ottbin0 -> 22734 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-05.ottbin0 -> 47395 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-06.ottbin0 -> 16709 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-07.ottbin0 -> 7891 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-08.ottbin0 -> 11440 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-09.ottbin0 -> 51540 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/es/stl-default.ottbin0 -> 6941 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-01.ottbin0 -> 11556 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-011.ottbin0 -> 11494 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-012.ottbin0 -> 11496 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-02.ottbin0 -> 11432 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-021.ottbin0 -> 11541 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-022.ottbin0 -> 11427 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-03.ottbin0 -> 11588 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-031.ottbin0 -> 11591 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-032.ottbin0 -> 11602 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-04.ottbin0 -> 11792 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-041.ottbin0 -> 11966 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-042.ottbin0 -> 11725 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-05.ottbin0 -> 11048 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-051.ottbin0 -> 10985 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-052.ottbin0 -> 11106 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-06.ottbin0 -> 11808 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-061.ottbin0 -> 11638 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-062.ottbin0 -> 11663 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/cnt-default.ottbin0 -> 11590 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-01.ottbin0 -> 39568 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-02.ottbin0 -> 27248 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-03.ottbin0 -> 47648 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-04.ottbin0 -> 25668 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-05.ottbin0 -> 47578 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-06.ottbin0 -> 19489 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-07.ottbin0 -> 9840 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-08.ottbin0 -> 13631 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-09.ottbin0 -> 51465 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-10.ottbin0 -> 38022 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/eu/stl-default.ottbin0 -> 8818 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-01.ottbin0 -> 8761 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-011.ottbin0 -> 8813 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-012.ottbin0 -> 8699 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-02.ottbin0 -> 8729 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-021.ottbin0 -> 8786 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-022.ottbin0 -> 8611 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-03.ottbin0 -> 9076 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-031.ottbin0 -> 9057 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-032.ottbin0 -> 8968 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-04.ottbin0 -> 9101 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-041.ottbin0 -> 9116 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-042.ottbin0 -> 8999 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-05.ottbin0 -> 8608 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-051.ottbin0 -> 8651 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-052.ottbin0 -> 8633 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-06.ottbin0 -> 8887 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-061.ottbin0 -> 8868 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-062.ottbin0 -> 8769 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/cnt-default.ottbin0 -> 8888 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-01.ottbin0 -> 35384 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-02.ottbin0 -> 25300 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-03.ottbin0 -> 45705 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-04.ottbin0 -> 22729 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-05.ottbin0 -> 45480 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-06.ottbin0 -> 16730 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-07.ottbin0 -> 7828 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-08.ottbin0 -> 11422 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-09.ottbin0 -> 48481 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/fr/stl-default.ottbin0 -> 6912 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-01.ottbin0 -> 9838 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-011.ottbin0 -> 9870 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-012.ottbin0 -> 9902 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-02.ottbin0 -> 9612 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-021.ottbin0 -> 9589 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-022.ottbin0 -> 9601 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-03.ottbin0 -> 10121 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-031.ottbin0 -> 10136 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-032.ottbin0 -> 10102 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-04.ottbin0 -> 10161 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-041.ottbin0 -> 10318 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-042.ottbin0 -> 10170 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-05.ottbin0 -> 9565 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-051.ottbin0 -> 9577 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-052.ottbin0 -> 9624 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-06.ottbin0 -> 10151 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-061.ottbin0 -> 10151 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-062.ottbin0 -> 10182 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/cnt-default.ottbin0 -> 9779 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-01.ottbin0 -> 36754 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-02.ottbin0 -> 26061 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-03.ottbin0 -> 46450 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-04.ottbin0 -> 24626 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-05.ottbin0 -> 46432 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-06.ottbin0 -> 19218 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-07.ottbin0 -> 9398 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-08.ottbin0 -> 11850 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-09.ottbin0 -> 50209 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/hu/stl-default.ottbin0 -> 7774 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-01.ottbin0 -> 8766 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-011.ottbin0 -> 8818 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-012.ottbin0 -> 8696 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-02.ottbin0 -> 8727 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-021.ottbin0 -> 8765 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-022.ottbin0 -> 8603 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-03.ottbin0 -> 9082 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-031.ottbin0 -> 9063 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-032.ottbin0 -> 8966 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-04.ottbin0 -> 9103 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-041.ottbin0 -> 9121 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-042.ottbin0 -> 8995 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-05.ottbin0 -> 8612 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-051.ottbin0 -> 8657 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-052.ottbin0 -> 8628 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-06.ottbin0 -> 8886 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-061.ottbin0 -> 8868 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-062.ottbin0 -> 8760 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/cnt-default.ottbin0 -> 8888 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-01.ottbin0 -> 38086 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-02.ottbin0 -> 25263 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-03.ottbin0 -> 47639 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-04.ottbin0 -> 22725 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-05.ottbin0 -> 47385 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-06.ottbin0 -> 16692 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-07.ottbin0 -> 7857 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-08.ottbin0 -> 11498 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-09.ottbin0 -> 51470 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/it/stl-default.ottbin0 -> 6923 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-01.ottbin0 -> 11484 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-011.ottbin0 -> 11505 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-012.ottbin0 -> 11384 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-02.ottbin0 -> 11448 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-021.ottbin0 -> 11509 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-022.ottbin0 -> 11334 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-03.ottbin0 -> 11772 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-031.ottbin0 -> 11805 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-032.ottbin0 -> 11647 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-04.ottbin0 -> 11826 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-041.ottbin0 -> 11850 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-042.ottbin0 -> 11683 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-05.ottbin0 -> 11353 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-051.ottbin0 -> 11557 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-052.ottbin0 -> 11508 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-06.ottbin0 -> 11620 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-061.ottbin0 -> 11645 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-062.ottbin0 -> 11510 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/cnt-default.ottbin0 -> 11693 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-01.ottbin0 -> 41044 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-02.ottbin0 -> 28184 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-03.ottbin0 -> 50532 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-04.ottbin0 -> 25686 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-05.ottbin0 -> 50380 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-06.ottbin0 -> 19615 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-07.ottbin0 -> 10746 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-08.ottbin0 -> 14405 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-09.ottbin0 -> 54354 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ja/stl-default.ottbin0 -> 9831 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-01.ottbin0 -> 11316 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-011.ottbin0 -> 11255 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-012.ottbin0 -> 11240 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-02.ottbin0 -> 11144 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-021.ottbin0 -> 11207 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-022.ottbin0 -> 11074 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-03.ottbin0 -> 11699 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-031.ottbin0 -> 11457 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-032.ottbin0 -> 11599 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-04.ottbin0 -> 11751 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-041.ottbin0 -> 11864 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-042.ottbin0 -> 11603 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-05.ottbin0 -> 11084 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-051.ottbin0 -> 10950 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-052.ottbin0 -> 11132 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-06.ottbin0 -> 11457 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-061.ottbin0 -> 11331 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-062.ottbin0 -> 11383 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/cnt-default.ottbin0 -> 11264 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-01.ottbin0 -> 37328 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-02.ottbin0 -> 26732 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-03.ottbin0 -> 47109 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-04.ottbin0 -> 25395 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-05.ottbin0 -> 47104 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-06.ottbin0 -> 19041 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-07.ottbin0 -> 9888 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-08.ottbin0 -> 12584 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-09.ottbin0 -> 50780 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/km/stl-default.ottbin0 -> 8411 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-01.ottbin0 -> 11441 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-011.ottbin0 -> 11456 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-012.ottbin0 -> 11362 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-02.ottbin0 -> 11444 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-021.ottbin0 -> 11484 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-022.ottbin0 -> 11335 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-03.ottbin0 -> 11709 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-031.ottbin0 -> 11760 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-032.ottbin0 -> 11621 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-04.ottbin0 -> 11754 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-041.ottbin0 -> 11757 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-042.ottbin0 -> 11630 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-05.ottbin0 -> 11334 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-051.ottbin0 -> 11385 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-052.ottbin0 -> 11305 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-06.ottbin0 -> 11549 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-061.ottbin0 -> 11583 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-062.ottbin0 -> 11490 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/cnt-default.ottbin0 -> 11679 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-01.ottbin0 -> 41018 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-02.ottbin0 -> 28159 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-03.ottbin0 -> 50596 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-04.ottbin0 -> 25674 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-05.ottbin0 -> 50372 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-06.ottbin0 -> 19619 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-07.ottbin0 -> 10853 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-08.ottbin0 -> 14379 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-09.ottbin0 -> 54368 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ko/stl-default.ottbin0 -> 9817 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/makefile.mk49
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-01.ottbin0 -> 10157 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-011.ottbin0 -> 10260 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-012.ottbin0 -> 10126 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-02.ottbin0 -> 10062 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-021.ottbin0 -> 10083 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-022.ottbin0 -> 9928 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-03.ottbin0 -> 10660 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-031.ottbin0 -> 10609 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-032.ottbin0 -> 10542 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-04.ottbin0 -> 10602 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-041.ottbin0 -> 10520 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-042.ottbin0 -> 10439 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-05.ottbin0 -> 9738 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-051.ottbin0 -> 9748 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-052.ottbin0 -> 9839 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-06.ottbin0 -> 10356 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-061.ottbin0 -> 10322 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-062.ottbin0 -> 10236 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/cnt-default.ottbin0 -> 10290 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-01.ottbin0 -> 36988 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-02.ottbin0 -> 26139 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-03.ottbin0 -> 47719 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-04.ottbin0 -> 24307 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-05.ottbin0 -> 47456 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-06.ottbin0 -> 18359 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-07.ottbin0 -> 9140 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-08.ottbin0 -> 12513 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-09.ottbin0 -> 51480 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/nl/stl-default.ottbin0 -> 7803 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-01.ottbin0 -> 9366 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-011.ottbin0 -> 9366 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-012.ottbin0 -> 9275 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-02.ottbin0 -> 9304 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-021.ottbin0 -> 9364 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-022.ottbin0 -> 9194 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-03.ottbin0 -> 10117 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-031.ottbin0 -> 10098 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-032.ottbin0 -> 10031 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-04.ottbin0 -> 9785 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-041.ottbin0 -> 9822 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-042.ottbin0 -> 9679 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-05.ottbin0 -> 9188 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-051.ottbin0 -> 9248 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-052.ottbin0 -> 9278 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-06.ottbin0 -> 9492 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-061.ottbin0 -> 9482 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-062.ottbin0 -> 9380 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/cnt-default.ottbin0 -> 9477 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-01.ottbin0 -> 38124 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-02.ottbin0 -> 25929 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-03.ottbin0 -> 47641 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-04.ottbin0 -> 22600 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-05.ottbin0 -> 47404 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-06.ottbin0 -> 18088 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-07.ottbin0 -> 8434 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-08.ottbin0 -> 11784 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-09.ottbin0 -> 51499 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pl/stl-default.ottbin0 -> 7545 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-01.ottbin0 -> 8767 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-011.ottbin0 -> 8820 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-012.ottbin0 -> 8702 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-02.ottbin0 -> 8725 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-021.ottbin0 -> 8768 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-022.ottbin0 -> 8605 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-03.ottbin0 -> 9080 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-031.ottbin0 -> 9061 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-032.ottbin0 -> 8969 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-04.ottbin0 -> 9104 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-041.ottbin0 -> 9120 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-042.ottbin0 -> 8996 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-05.ottbin0 -> 8623 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-051.ottbin0 -> 8660 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-052.ottbin0 -> 8632 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-06.ottbin0 -> 8908 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-061.ottbin0 -> 8892 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-062.ottbin0 -> 8775 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/cnt-default.ottbin0 -> 8896 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-01.ottbin0 -> 35355 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-02.ottbin0 -> 25454 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-03.ottbin0 -> 45704 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-04.ottbin0 -> 22711 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-05.ottbin0 -> 45495 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-06.ottbin0 -> 16695 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-07.ottbin0 -> 7943 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-08.ottbin0 -> 11440 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-09.ottbin0 -> 48461 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt-BR/stl-default.ottbin0 -> 6931 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-01.ottbin0 -> 11246 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-011.ottbin0 -> 11262 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-012.ottbin0 -> 11183 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-02.ottbin0 -> 11107 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-021.ottbin0 -> 11112 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-022.ottbin0 -> 10944 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-03.ottbin0 -> 11683 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-031.ottbin0 -> 11628 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-032.ottbin0 -> 11475 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-04.ottbin0 -> 11645 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-041.ottbin0 -> 11749 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-042.ottbin0 -> 11458 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-05.ottbin0 -> 10753 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-051.ottbin0 -> 10761 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-052.ottbin0 -> 10814 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-06.ottbin0 -> 11404 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-061.ottbin0 -> 11450 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-062.ottbin0 -> 11249 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/cnt-default.ottbin0 -> 11240 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-01.ottbin0 -> 38394 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-02.ottbin0 -> 27286 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-03.ottbin0 -> 47749 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-04.ottbin0 -> 25528 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-05.ottbin0 -> 47677 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-06.ottbin0 -> 19547 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-07.ottbin0 -> 10488 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-08.ottbin0 -> 13932 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-09.ottbin0 -> 51649 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/pt/stl-default.ottbin0 -> 8912 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-01.ottbin0 -> 9703 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-011.ottbin0 -> 9772 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-012.ottbin0 -> 9627 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-02.ottbin0 -> 9703 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-021.ottbin0 -> 9746 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-022.ottbin0 -> 9572 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-03.ottbin0 -> 10057 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-031.ottbin0 -> 11196 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-032.ottbin0 -> 9911 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-04.ottbin0 -> 10140 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-041.ottbin0 -> 10260 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-042.ottbin0 -> 9964 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-05.ottbin0 -> 9551 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-051.ottbin0 -> 9589 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-052.ottbin0 -> 9557 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-06.ottbin0 -> 9847 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-061.ottbin0 -> 9794 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-062.ottbin0 -> 9684 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/cnt-default.ottbin0 -> 9847 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-01.ottbin0 -> 37521 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-02.ottbin0 -> 26592 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-03.ottbin0 -> 47036 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-04.ottbin0 -> 24746 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-05.ottbin0 -> 47004 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-06.ottbin0 -> 18766 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-07.ottbin0 -> 9731 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-08.ottbin0 -> 13117 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-09.ottbin0 -> 50866 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/ru/stl-default.ottbin0 -> 8152 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-01.ottbin0 -> 9121 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-011.ottbin0 -> 9224 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-012.ottbin0 -> 9078 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-02.ottbin0 -> 9204 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-021.ottbin0 -> 9210 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-022.ottbin0 -> 8971 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-03.ottbin0 -> 9516 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-031.ottbin0 -> 9509 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-032.ottbin0 -> 9323 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-04.ottbin0 -> 9533 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-041.ottbin0 -> 9657 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-042.ottbin0 -> 9315 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-05.ottbin0 -> 8856 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-051.ottbin0 -> 8875 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-052.ottbin0 -> 8882 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-06.ottbin0 -> 9044 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-061.ottbin0 -> 8987 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-062.ottbin0 -> 9029 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/cnt-default.ottbin0 -> 9246 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-01.ottbin0 -> 36603 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-02.ottbin0 -> 25860 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-03.ottbin0 -> 46251 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-04.ottbin0 -> 23405 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-05.ottbin0 -> 46218 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-06.ottbin0 -> 18890 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-07.ottbin0 -> 8333 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-08.ottbin0 -> 11956 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-09.ottbin0 -> 50068 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sk/stl-default.ottbin0 -> 7493 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-01.ottbin0 -> 9203 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-011.ottbin0 -> 9374 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-012.ottbin0 -> 9443 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-02.ottbin0 -> 9192 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-021.ottbin0 -> 9523 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-022.ottbin0 -> 9356 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-03.ottbin0 -> 9806 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-031.ottbin0 -> 9801 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-032.ottbin0 -> 9713 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-04.ottbin0 -> 9741 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-041.ottbin0 -> 9900 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-042.ottbin0 -> 9480 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-05.ottbin0 -> 9218 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-051.ottbin0 -> 9085 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-052.ottbin0 -> 9139 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-06.ottbin0 -> 9739 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-061.ottbin0 -> 9419 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-062.ottbin0 -> 9273 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/cnt-default.ottbin0 -> 9308 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-01.ottbin0 -> 36900 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-02.ottbin0 -> 25891 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-03.ottbin0 -> 46338 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-04.ottbin0 -> 24065 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-05.ottbin0 -> 46255 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-06.ottbin0 -> 18084 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-07.ottbin0 -> 8470 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-08.ottbin0 -> 12468 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-09.ottbin0 -> 50207 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sl/stl-default.ottbin0 -> 7460 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-01.ottbin0 -> 8766 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-011.ottbin0 -> 8820 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-012.ottbin0 -> 8698 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-02.ottbin0 -> 8726 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-021.ottbin0 -> 8770 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-022.ottbin0 -> 8605 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-03.ottbin0 -> 9080 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-031.ottbin0 -> 9063 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-032.ottbin0 -> 8965 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-04.ottbin0 -> 9103 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-041.ottbin0 -> 9122 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-042.ottbin0 -> 8996 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-05.ottbin0 -> 8614 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-051.ottbin0 -> 8660 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-052.ottbin0 -> 8629 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-06.ottbin0 -> 8897 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-061.ottbin0 -> 8881 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-062.ottbin0 -> 8771 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/cnt-default.ottbin0 -> 8890 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-01.ottbin0 -> 38087 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-02.ottbin0 -> 25254 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-03.ottbin0 -> 47673 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-04.ottbin0 -> 22735 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-05.ottbin0 -> 47420 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-06.ottbin0 -> 16708 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-07.ottbin0 -> 7867 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-08.ottbin0 -> 11465 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-09.ottbin0 -> 51466 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/sv/stl-default.ottbin0 -> 6911 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-01.ottbin0 -> 11124 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-011.ottbin0 -> 11124 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-012.ottbin0 -> 11016 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-02.ottbin0 -> 10967 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-021.ottbin0 -> 10940 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-022.ottbin0 -> 10790 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-03.ottbin0 -> 11364 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-031.ottbin0 -> 11364 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-032.ottbin0 -> 11267 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-04.ottbin0 -> 11449 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-041.ottbin0 -> 11619 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-042.ottbin0 -> 11362 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-05.ottbin0 -> 10812 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-051.ottbin0 -> 10685 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-052.ottbin0 -> 10639 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-06.ottbin0 -> 11509 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-061.ottbin0 -> 11528 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-062.ottbin0 -> 11336 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/cnt-default.ottbin0 -> 11040 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-01.ottbin0 -> 38294 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-02.ottbin0 -> 27580 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-03.ottbin0 -> 48111 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-04.ottbin0 -> 28355 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-05.ottbin0 -> 48212 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-06.ottbin0 -> 20214 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-07.ottbin0 -> 9935 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-08.ottbin0 -> 13187 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-09.ottbin0 -> 51976 bytes
-rwxr-xr-xextras/source/templates/wizard/report/lang/vi/stl-default.ottbin0 -> 8804 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-01.ottbin0 -> 11723 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-011.ottbin0 -> 11740 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-012.ottbin0 -> 11646 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-02.ottbin0 -> 11730 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-021.ottbin0 -> 11771 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-022.ottbin0 -> 11619 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-03.ottbin0 -> 11929 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-031.ottbin0 -> 11990 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-032.ottbin0 -> 11846 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-04.ottbin0 -> 11984 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-041.ottbin0 -> 11983 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-042.ottbin0 -> 11863 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-05.ottbin0 -> 11634 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-051.ottbin0 -> 11684 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-052.ottbin0 -> 11599 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-06.ottbin0 -> 11776 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-061.ottbin0 -> 11808 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-062.ottbin0 -> 11716 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/cnt-default.ottbin0 -> 11859 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-01.ottbin0 -> 40838 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-02.ottbin0 -> 28127 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-03.ottbin0 -> 50561 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-04.ottbin0 -> 25631 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-05.ottbin0 -> 50287 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-06.ottbin0 -> 19586 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-07.ottbin0 -> 10742 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-08.ottbin0 -> 14293 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-09.ottbin0 -> 54270 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-CN/stl-default.ottbin0 -> 9777 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-01.ottbin0 -> 11721 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-011.ottbin0 -> 11738 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-012.ottbin0 -> 11638 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-02.ottbin0 -> 11728 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-021.ottbin0 -> 11769 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-022.ottbin0 -> 11613 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-03.ottbin0 -> 11928 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-031.ottbin0 -> 11987 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-032.ottbin0 -> 11841 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-04.ottbin0 -> 11975 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-041.ottbin0 -> 11981 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-042.ottbin0 -> 11853 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-05.ottbin0 -> 11629 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-051.ottbin0 -> 11681 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-052.ottbin0 -> 11594 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-06.ottbin0 -> 11783 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-061.ottbin0 -> 11804 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-062.ottbin0 -> 11712 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/cnt-default.ottbin0 -> 11858 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-01.ottbin0 -> 40925 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-02.ottbin0 -> 28113 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-03.ottbin0 -> 50478 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-04.ottbin0 -> 25627 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-05.ottbin0 -> 50185 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-06.ottbin0 -> 19581 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-07.ottbin0 -> 10588 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-08.ottbin0 -> 14278 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-09.ottbin0 -> 54305 bytes
-rw-r--r--extras/source/templates/wizard/report/lang/zh-TW/stl-default.ottbin0 -> 9768 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/black_white.otsbin0 -> 9627 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/blackberry.otsbin0 -> 9854 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/default.otsbin0 -> 9500 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/diner.otsbin0 -> 9522 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/fall.otsbin0 -> 8860 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/glacier.otsbin0 -> 9548 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/green_grapes.otsbin0 -> 9634 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/jeans.otsbin0 -> 9514 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/marine.otsbin0 -> 8723 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/millennium.otsbin0 -> 9559 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/nature.otsbin0 -> 9674 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/neon.otsbin0 -> 9990 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/night.otsbin0 -> 9941 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/nostalgic.otsbin0 -> 9267 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/pastell.otsbin0 -> 9532 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/pool.otsbin0 -> 9959 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/pumpkin.otsbin0 -> 9728 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/sunstyle.otsbin0 -> 9513 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/bg/xos.otsbin0 -> 9301 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/black_white.otsbin0 -> 8249 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/blackberry.otsbin0 -> 8165 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/default.otsbin0 -> 8043 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/diner.otsbin0 -> 8608 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/fall.otsbin0 -> 8097 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/glacier.otsbin0 -> 8203 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/green_grapes.otsbin0 -> 8078 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/jeans.otsbin0 -> 8084 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/marine.otsbin0 -> 7969 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/millennium.otsbin0 -> 8207 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/nature.otsbin0 -> 8126 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/neon.otsbin0 -> 8438 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/night.otsbin0 -> 8219 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/nostalgic.otsbin0 -> 8273 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/pastell.otsbin0 -> 8187 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/pool.otsbin0 -> 8383 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/pumpkin.otsbin0 -> 8028 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/sunstyle.otsbin0 -> 8162 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/cs/xos.otsbin0 -> 8090 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/black_white.otsbin0 -> 8020 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/blackberry.otsbin0 -> 7947 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/default.otsbin0 -> 7806 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/diner.otsbin0 -> 8413 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/fall.otsbin0 -> 7878 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/glacier.otsbin0 -> 7976 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/green_grapes.otsbin0 -> 7842 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/jeans.otsbin0 -> 7879 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/marine.otsbin0 -> 7721 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/millennium.otsbin0 -> 7993 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/nature.otsbin0 -> 7898 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/neon.otsbin0 -> 8206 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/night.otsbin0 -> 7990 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/nostalgic.otsbin0 -> 8103 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/pastell.otsbin0 -> 7973 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/pool.otsbin0 -> 8157 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/pumpkin.otsbin0 -> 7797 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/sunstyle.otsbin0 -> 7941 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/da/xos.otsbin0 -> 7846 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/black_white.otsbin0 -> 8287 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/blackberry.otsbin0 -> 8240 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/default.otsbin0 -> 8114 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/diner.otsbin0 -> 8821 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/fall.otsbin0 -> 8100 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/glacier.otsbin0 -> 8290 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/green_grapes.otsbin0 -> 8078 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/jeans.otsbin0 -> 8214 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/marine.otsbin0 -> 8040 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/millennium.otsbin0 -> 8327 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/nature.otsbin0 -> 8158 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/neon.otsbin0 -> 8575 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/night.otsbin0 -> 8325 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/nostalgic.otsbin0 -> 8367 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/pastell.otsbin0 -> 8345 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/pool.otsbin0 -> 8513 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/pumpkin.otsbin0 -> 8186 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/sunstyle.otsbin0 -> 8247 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/de/xos.otsbin0 -> 8289 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/delzip1
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/black_white.otsbin0 -> 9710 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/blackberry.otsbin0 -> 9774 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/default.otsbin0 -> 9698 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/diner.otsbin0 -> 12195 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/fall.otsbin0 -> 9375 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/glacier.otsbin0 -> 9857 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/green_grapes.otsbin0 -> 9436 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/jeans.otsbin0 -> 9713 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/marine.otsbin0 -> 9156 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/millennium.otsbin0 -> 9685 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/nature.otsbin0 -> 9502 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/neon.otsbin0 -> 10133 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/night.otsbin0 -> 10455 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/nostalgic.otsbin0 -> 9605 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/pastell.otsbin0 -> 9813 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/pool.otsbin0 -> 10222 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/pumpkin.otsbin0 -> 9474 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/sunstyle.otsbin0 -> 9726 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-GB/xos.otsbin0 -> 9054 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/black_white.otsbin0 -> 8204 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/blackberry.otsbin0 -> 8150 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/default.otsbin0 -> 8018 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/diner.otsbin0 -> 8590 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/fall.otsbin0 -> 8077 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/glacier.otsbin0 -> 8185 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/green_grapes.otsbin0 -> 8055 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/jeans.otsbin0 -> 8059 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/marine.otsbin0 -> 7941 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/millennium.otsbin0 -> 8189 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/nature.otsbin0 -> 8110 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/neon.otsbin0 -> 8421 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/night.otsbin0 -> 8201 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/nostalgic.otsbin0 -> 8260 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/pastell.otsbin0 -> 8160 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/pool.otsbin0 -> 8360 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/pumpkin.otsbin0 -> 8005 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/sunstyle.otsbin0 -> 8162 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/en-US/xos.otsbin0 -> 8072 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/black_white.otsbin0 -> 8202 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/blackberry.otsbin0 -> 7934 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/default.otsbin0 -> 7930 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/diner.otsbin0 -> 8423 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/fall.otsbin0 -> 7886 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/glacier.otsbin0 -> 8083 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/green_grapes.otsbin0 -> 7929 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/jeans.otsbin0 -> 7870 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/marine.otsbin0 -> 7784 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/millennium.otsbin0 -> 8035 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/nature.otsbin0 -> 8012 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/neon.otsbin0 -> 8276 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/night.otsbin0 -> 8088 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/nostalgic.otsbin0 -> 8248 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/pastell.otsbin0 -> 8002 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/pool.otsbin0 -> 8254 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/pumpkin.otsbin0 -> 7928 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/sunstyle.otsbin0 -> 8024 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/es/xos.otsbin0 -> 8069 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/black_white.otsbin0 -> 11666 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/blackberry.otsbin0 -> 12259 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/default.otsbin0 -> 11939 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/diner.otsbin0 -> 14377 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/fall.otsbin0 -> 12185 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/glacier.otsbin0 -> 12233 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/green_grapes.otsbin0 -> 11853 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/jeans.otsbin0 -> 12003 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/marine.otsbin0 -> 11705 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/millennium.otsbin0 -> 12044 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/nature.otsbin0 -> 12050 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/neon.otsbin0 -> 12676 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/night.otsbin0 -> 12630 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/nostalgic.otsbin0 -> 10732 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/pastell.otsbin0 -> 12021 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/pool.otsbin0 -> 12656 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/pumpkin.otsbin0 -> 12273 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/sunstyle.otsbin0 -> 12024 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/eu/xos.otsbin0 -> 11616 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/black_white.otsbin0 -> 7968 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/blackberry.otsbin0 -> 7954 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/default.otsbin0 -> 7863 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/diner.otsbin0 -> 8408 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/fall.otsbin0 -> 7967 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/glacier.otsbin0 -> 7996 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/green_grapes.otsbin0 -> 7833 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/jeans.otsbin0 -> 7954 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/marine.otsbin0 -> 7842 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/millennium.otsbin0 -> 8072 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/nature.otsbin0 -> 7897 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/neon.otsbin0 -> 8121 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/night.otsbin0 -> 7969 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/nostalgic.otsbin0 -> 8142 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/pastell.otsbin0 -> 8022 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/pool.otsbin0 -> 8136 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/pumpkin.otsbin0 -> 7893 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/sunstyle.otsbin0 -> 7940 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/fr/xos.otsbin0 -> 8049 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/black_white.otsbin0 -> 9996 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/blackberry.otsbin0 -> 10256 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/default.otsbin0 -> 10095 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/diner.otsbin0 -> 12306 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/fall.otsbin0 -> 9530 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/glacier.otsbin0 -> 10259 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/green_grapes.otsbin0 -> 9841 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/jeans.otsbin0 -> 10116 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/marine.otsbin0 -> 9467 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/millennium.otsbin0 -> 10014 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/nature.otsbin0 -> 9847 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/neon.otsbin0 -> 10740 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/night.otsbin0 -> 10616 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/nostalgic.otsbin0 -> 9949 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/pastell.otsbin0 -> 10129 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/pool.otsbin0 -> 10620 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/pumpkin.otsbin0 -> 9868 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/sunstyle.otsbin0 -> 10185 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/hu/xos.otsbin0 -> 9391 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/black_white.otsbin0 -> 8106 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/blackberry.otsbin0 -> 7696 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/default.otsbin0 -> 7921 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/diner.otsbin0 -> 8626 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/fall.otsbin0 -> 7961 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/glacier.otsbin0 -> 8181 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/green_grapes.otsbin0 -> 7611 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/jeans.otsbin0 -> 8080 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/marine.otsbin0 -> 7957 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/millennium.otsbin0 -> 7773 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/nature.otsbin0 -> 7684 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/neon.otsbin0 -> 8290 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/night.otsbin0 -> 8119 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/nostalgic.otsbin0 -> 8194 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/pastell.otsbin0 -> 7801 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/pool.otsbin0 -> 8325 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/pumpkin.otsbin0 -> 7655 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/sunstyle.otsbin0 -> 8042 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/it/xos.otsbin0 -> 8213 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/black_white.otsbin0 -> 8483 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/blackberry.otsbin0 -> 8308 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/default.otsbin0 -> 8266 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/diner.otsbin0 -> 8655 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/fall.otsbin0 -> 8310 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/glacier.otsbin0 -> 8458 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/green_grapes.otsbin0 -> 8159 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/jeans.otsbin0 -> 8414 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/marine.otsbin0 -> 8160 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/millennium.otsbin0 -> 8388 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/nature.otsbin0 -> 8213 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/neon.otsbin0 -> 8521 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/night.otsbin0 -> 8455 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/nostalgic.otsbin0 -> 8591 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/pastell.otsbin0 -> 8443 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/pool.otsbin0 -> 8579 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/pumpkin.otsbin0 -> 8186 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/sunstyle.otsbin0 -> 8357 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ja/xos.otsbin0 -> 8453 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/black_white.otsbin0 -> 11108 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/blackberry.otsbin0 -> 11416 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/default.otsbin0 -> 11153 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/diner.otsbin0 -> 12436 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/fall.otsbin0 -> 11223 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/glacier.otsbin0 -> 11499 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/green_grapes.otsbin0 -> 10882 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/jeans.otsbin0 -> 10985 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/marine.otsbin0 -> 11056 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/millennium.otsbin0 -> 11279 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/nature.otsbin0 -> 11016 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/neon.otsbin0 -> 11886 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/night.otsbin0 -> 11749 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/nostalgic.otsbin0 -> 11487 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/pastell.otsbin0 -> 10891 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/pool.otsbin0 -> 11706 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/pumpkin.otsbin0 -> 10942 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/sunstyle.otsbin0 -> 11273 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/km/xos.otsbin0 -> 10931 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/black_white.otsbin0 -> 8461 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/blackberry.otsbin0 -> 8361 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/default.otsbin0 -> 8219 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/diner.otsbin0 -> 8731 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/fall.otsbin0 -> 8256 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/glacier.otsbin0 -> 8409 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/green_grapes.otsbin0 -> 8235 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/jeans.otsbin0 -> 8319 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/marine.otsbin0 -> 8135 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/millennium.otsbin0 -> 8384 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/nature.otsbin0 -> 8263 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/neon.otsbin0 -> 8508 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/night.otsbin0 -> 8411 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/nostalgic.otsbin0 -> 8552 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/pastell.otsbin0 -> 8381 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/pool.otsbin0 -> 8523 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/pumpkin.otsbin0 -> 8258 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/sunstyle.otsbin0 -> 8279 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ko/xos.otsbin0 -> 8342 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/makefile.mk45
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/black_white.otsbin0 -> 7867 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/blackberry.otsbin0 -> 7814 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/default.otsbin0 -> 7766 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/diner.otsbin0 -> 8187 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/fall.otsbin0 -> 7714 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/glacier.otsbin0 -> 7902 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/green_grapes.otsbin0 -> 7711 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/jeans.otsbin0 -> 7750 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/marine.otsbin0 -> 7605 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/millennium.otsbin0 -> 7878 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/nature.otsbin0 -> 7777 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/neon.otsbin0 -> 8000 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/night.otsbin0 -> 7894 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/nostalgic.otsbin0 -> 7960 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/pastell.otsbin0 -> 7890 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/pool.otsbin0 -> 8118 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/pumpkin.otsbin0 -> 7766 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/sunstyle.otsbin0 -> 7852 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/nl/xos.otsbin0 -> 7874 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/black_white.otsbin0 -> 8198 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/blackberry.otsbin0 -> 8017 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/default.otsbin0 -> 7908 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/diner.otsbin0 -> 8561 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/fall.otsbin0 -> 7908 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/glacier.otsbin0 -> 8021 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/green_grapes.otsbin0 -> 7886 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/jeans.otsbin0 -> 7853 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/marine.otsbin0 -> 7787 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/millennium.otsbin0 -> 7996 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/nature.otsbin0 -> 7895 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/neon.otsbin0 -> 8152 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/night.otsbin0 -> 8025 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/nostalgic.otsbin0 -> 8332 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/pastell.otsbin0 -> 7997 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/pool.otsbin0 -> 8371 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/pumpkin.otsbin0 -> 7920 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/sunstyle.otsbin0 -> 8017 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pl/xos.otsbin0 -> 8040 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/black_white.otsbin0 -> 8261 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/blackberry.otsbin0 -> 8243 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/default.otsbin0 -> 8137 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/diner.otsbin0 -> 8774 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/fall.otsbin0 -> 8213 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/glacier.otsbin0 -> 8299 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/green_grapes.otsbin0 -> 8153 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/jeans.otsbin0 -> 8195 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/marine.otsbin0 -> 8123 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/millennium.otsbin0 -> 8395 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/nature.otsbin0 -> 8223 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/neon.otsbin0 -> 8479 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/night.otsbin0 -> 8315 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/nostalgic.otsbin0 -> 8391 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/pastell.otsbin0 -> 8329 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/pool.otsbin0 -> 8446 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/pumpkin.otsbin0 -> 8203 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/sunstyle.otsbin0 -> 8217 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt-BR/xos.otsbin0 -> 8378 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/black_white.otsbin0 -> 8017 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/blackberry.otsbin0 -> 7912 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/default.otsbin0 -> 7842 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/diner.otsbin0 -> 8344 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/fall.otsbin0 -> 8027 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/glacier.otsbin0 -> 8004 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/green_grapes.otsbin0 -> 7845 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/jeans.otsbin0 -> 7885 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/marine.otsbin0 -> 7873 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/millennium.otsbin0 -> 8109 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/nature.otsbin0 -> 7910 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/neon.otsbin0 -> 8310 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/night.otsbin0 -> 8013 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/nostalgic.otsbin0 -> 8078 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/pastell.otsbin0 -> 7981 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/pool.otsbin0 -> 8203 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/pumpkin.otsbin0 -> 7929 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/sunstyle.otsbin0 -> 7941 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/pt/xos.otsbin0 -> 8086 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/black_white.otsbin0 -> 8177 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/blackberry.otsbin0 -> 8031 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/default.otsbin0 -> 7923 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/diner.otsbin0 -> 8515 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/fall.otsbin0 -> 8165 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/glacier.otsbin0 -> 8063 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/green_grapes.otsbin0 -> 7979 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/jeans.otsbin0 -> 8076 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/marine.otsbin0 -> 8054 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/millennium.otsbin0 -> 8210 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/nature.otsbin0 -> 8006 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/neon.otsbin0 -> 8379 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/night.otsbin0 -> 8075 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/nostalgic.otsbin0 -> 8220 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/pastell.otsbin0 -> 8108 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/pool.otsbin0 -> 8229 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/pumpkin.otsbin0 -> 7929 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/sunstyle.otsbin0 -> 7995 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/ru/xos.otsbin0 -> 8138 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/black_white.otsbin0 -> 9208 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/blackberry.otsbin0 -> 9339 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/default.otsbin0 -> 9055 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/diner.otsbin0 -> 11420 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/fall.otsbin0 -> 8635 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/glacier.otsbin0 -> 9298 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/green_grapes.otsbin0 -> 9177 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/jeans.otsbin0 -> 9119 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/marine.otsbin0 -> 8554 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/millennium.otsbin0 -> 9270 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/nature.otsbin0 -> 9275 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/neon.otsbin0 -> 9533 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/night.otsbin0 -> 9599 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/nostalgic.otsbin0 -> 9123 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/pastell.otsbin0 -> 9180 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/pool.otsbin0 -> 9570 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/pumpkin.otsbin0 -> 9264 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/sunstyle.otsbin0 -> 9134 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sk/xos.otsbin0 -> 8795 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/black_white.otsbin0 -> 8644 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/blackberry.otsbin0 -> 8499 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/default.otsbin0 -> 8507 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/diner.otsbin0 -> 8906 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/fall.otsbin0 -> 8566 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/glacier.otsbin0 -> 8590 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/green_grapes.otsbin0 -> 8372 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/jeans.otsbin0 -> 8391 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/marine.otsbin0 -> 8497 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/millennium.otsbin0 -> 8512 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/nature.otsbin0 -> 8433 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/neon.otsbin0 -> 8841 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/night.otsbin0 -> 8615 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/nostalgic.otsbin0 -> 8695 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/pastell.otsbin0 -> 8581 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/pool.otsbin0 -> 8802 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/pumpkin.otsbin0 -> 8388 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/sunstyle.otsbin0 -> 8606 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sl/xos.otsbin0 -> 8685 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/black_white.otsbin0 -> 8182 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/blackberry.otsbin0 -> 8199 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/default.otsbin0 -> 8059 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/diner.otsbin0 -> 8661 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/fall.otsbin0 -> 8010 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/glacier.otsbin0 -> 8237 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/green_grapes.otsbin0 -> 8070 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/jeans.otsbin0 -> 8097 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/marine.otsbin0 -> 7950 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/millennium.otsbin0 -> 8237 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/nature.otsbin0 -> 8096 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/neon.otsbin0 -> 8442 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/night.otsbin0 -> 8264 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/nostalgic.otsbin0 -> 8210 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/pastell.otsbin0 -> 8200 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/pool.otsbin0 -> 8419 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/pumpkin.otsbin0 -> 8109 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/sunstyle.otsbin0 -> 8196 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/sv/xos.otsbin0 -> 8237 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/black_white.otsbin0 -> 11371 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/blackberry.otsbin0 -> 11347 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/default.otsbin0 -> 11174 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/diner.otsbin0 -> 14551 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/fall.otsbin0 -> 10880 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/glacier.otsbin0 -> 11410 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/green_grapes.otsbin0 -> 11477 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/jeans.otsbin0 -> 11891 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/marine.otsbin0 -> 10849 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/millennium.otsbin0 -> 10892 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/nature.otsbin0 -> 11306 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/neon.otsbin0 -> 11900 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/night.otsbin0 -> 12036 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/nostalgic.otsbin0 -> 10889 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/pastell.otsbin0 -> 11216 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/pool.otsbin0 -> 11498 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/pumpkin.otsbin0 -> 11236 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/sunstyle.otsbin0 -> 11120 bytes
-rwxr-xr-xextras/source/templates/wizard/styles/lang/vi/xos.otsbin0 -> 10864 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/black_white.otsbin0 -> 8351 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/blackberry.otsbin0 -> 8199 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/default.otsbin0 -> 8050 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/diner.otsbin0 -> 8596 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/fall.otsbin0 -> 8099 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/glacier.otsbin0 -> 8258 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/green_grapes.otsbin0 -> 8065 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/jeans.otsbin0 -> 8198 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/marine.otsbin0 -> 7968 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/millennium.otsbin0 -> 8219 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/nature.otsbin0 -> 8160 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/neon.otsbin0 -> 8383 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/night.otsbin0 -> 8271 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/nostalgic.otsbin0 -> 8336 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/pastell.otsbin0 -> 8221 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/pool.otsbin0 -> 8360 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/pumpkin.otsbin0 -> 8141 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/sunstyle.otsbin0 -> 8120 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-CN/xos.otsbin0 -> 8201 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/black_white.otsbin0 -> 8311 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/blackberry.otsbin0 -> 8109 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/default.otsbin0 -> 8078 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/diner.otsbin0 -> 8616 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/fall.otsbin0 -> 8096 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/glacier.otsbin0 -> 8234 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/green_grapes.otsbin0 -> 7988 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/jeans.otsbin0 -> 8148 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/marine.otsbin0 -> 7998 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/millennium.otsbin0 -> 8204 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/nature.otsbin0 -> 8097 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/neon.otsbin0 -> 8301 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/night.otsbin0 -> 8199 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/nostalgic.otsbin0 -> 8288 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/pastell.otsbin0 -> 8190 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/pool.otsbin0 -> 8302 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/pumpkin.otsbin0 -> 8026 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/sunstyle.otsbin0 -> 8108 bytes
-rw-r--r--extras/source/templates/wizard/styles/lang/zh-TW/xos.otsbin0 -> 8148 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-album.stwbin0 -> 12433 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-bilingual.stwbin0 -> 9428 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-chapters.stwbin0 -> 11164 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-empty.stwbin0 -> 7796 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-fixonecol.stwbin0 -> 10541 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-fixtwocol.stwbin0 -> 11025 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-formcontact.stwbin0 -> 8553 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-formcustomer.stwbin0 -> 8680 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-formfix.stwbin0 -> 8747 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-formvar.stwbin0 -> 8860 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-list.stwbin0 -> 12060 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-onepic.stwbin0 -> 13677 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-standard.stwbin0 -> 9223 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/cnt-twotitles.stwbin0 -> 10889 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-banana.stwbin0 -> 9588 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-blkjeans.stwbin0 -> 13366 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-blue.stwbin0 -> 9525 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-blueblock.stwbin0 -> 14050 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-bluejeans.stwbin0 -> 14856 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-fieryred.stwbin0 -> 13971 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-hightech.stwbin0 -> 15868 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-mint.stwbin0 -> 12165 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-music.stwbin0 -> 11264 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-nostalg.stwbin0 -> 9609 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-orange.stwbin0 -> 9798 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-petrol.stwbin0 -> 9726 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-seventies.stwbin0 -> 12802 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-standard.stwbin0 -> 13107 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-strwbryice.stwbin0 -> 12415 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-sun.stwbin0 -> 9615 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-tracks.stwbin0 -> 11798 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-turquoise.stwbin0 -> 9811 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/bg/stl-wetblue.stwbin0 -> 13994 bytes
-rw-r--r--extras/source/templates/wizard/web/lang/delzip1
-rw-r--r--extras/source/templates/wizard/web/lang/makefile.mk46
-rw-r--r--extras/source/truetype/symbol/OpenSymbol.sfd107080
-rw-r--r--extras/source/truetype/symbol/opens___.ttfbin0 -> 198668 bytes
-rw-r--r--extras/source/wordbook/delzip1
-rw-r--r--extras/source/wordbook/lang/bg/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/cs/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/da/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/de/soffice.dicbin0 -> 1412 bytes
-rw-r--r--extras/source/wordbook/lang/delzip1
-rw-r--r--extras/source/wordbook/lang/en-GB/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/en-US/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/es/soffice.dicbin0 -> 819 bytes
-rwxr-xr-xextras/source/wordbook/lang/eu/soffice.dicbin0 -> 786 bytes
-rw-r--r--extras/source/wordbook/lang/fr/soffice.dicbin0 -> 819 bytes
-rwxr-xr-xextras/source/wordbook/lang/hu/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/it/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/makefile.mk47
-rw-r--r--extras/source/wordbook/lang/nl/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/pl/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/pt-BR/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/pt/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/ru/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/sk/soffice.dicbin0 -> 819 bytes
-rw-r--r--extras/source/wordbook/lang/sl/soffice.dicbin0 -> 1114 bytes
-rw-r--r--extras/source/wordbook/lang/sv/soffice.dicbin0 -> 810 bytes
-rw-r--r--extras/source/wordbook/makefile.mk57
-rw-r--r--extras/source/wordbook/standard.dicbin0 -> 11 bytes
-rw-r--r--extras/source/wordbook/sun.dicbin0 -> 751 bytes
-rw-r--r--extras/unx/source/bitmaps/delzip1
-rw-r--r--extras/unx/source/bitmaps/makefile.mk47
-rw-r--r--extras/unx/source/bitmaps/psetup.xpm31
-rw-r--r--extras/unx/source/bitmaps/psetupl.xpm49
-rw-r--r--extras/unx/source/fonts/fonts.dir2
-rw-r--r--extras/unx/source/kde/applnk/.directory5
-rw-r--r--extras/unx/source/kde/applnk/SPAdmin.kdelnk23
-rw-r--r--extras/unx/source/kde/applnk/Setup.kdelnk14
-rw-r--r--extras/unx/source/kde/applnk/StarOffice.kdelnk14
-rw-r--r--extras/unx/source/kde/applnk/delzip1
-rw-r--r--extras/unx/source/kde/applnk/makefile.mk47
-rw-r--r--extras/unx/source/kde/icons/delzip1
-rw-r--r--extras/unx/source/kde/icons/htm.xpm52
-rw-r--r--extras/unx/source/kde/icons/html.xpm52
-rw-r--r--extras/unx/source/kde/icons/makefile.mk47
-rw-r--r--extras/unx/source/kde/icons/mini/delzip1
-rw-r--r--extras/unx/source/kde/icons/mini/htm.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/html.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/makefile.mk47
-rw-r--r--extras/unx/source/kde/icons/mini/psetup.xpm31
-rw-r--r--extras/unx/source/kde/icons/mini/sch.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sda.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sdc.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sdd.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sdf.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sds.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/sdw.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/set52.xpm40
-rw-r--r--extras/unx/source/kde/icons/mini/sgl.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/smf.xpm36
-rw-r--r--extras/unx/source/kde/icons/mini/so52.xpm40
-rw-r--r--extras/unx/source/kde/icons/psetup.xpm49
-rw-r--r--extras/unx/source/kde/icons/sch.xpm52
-rw-r--r--extras/unx/source/kde/icons/sda.xpm52
-rw-r--r--extras/unx/source/kde/icons/sdc.xpm52
-rw-r--r--extras/unx/source/kde/icons/sdd.xpm52
-rw-r--r--extras/unx/source/kde/icons/sdf.xpm52
-rw-r--r--extras/unx/source/kde/icons/sds.xpm52
-rw-r--r--extras/unx/source/kde/icons/sdw.xpm52
-rw-r--r--extras/unx/source/kde/icons/set52.xpm52
-rw-r--r--extras/unx/source/kde/icons/sgl.xpm52
-rw-r--r--extras/unx/source/kde/icons/smf.xpm52
-rw-r--r--extras/unx/source/kde/icons/so52.xpm52
-rw-r--r--extras/unx/source/kde/mimelnk/application/delzip1
-rw-r--r--extras/unx/source/kde/mimelnk/application/makefile.mk47
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-scalc.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-sda.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-sdf.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-sdraw.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-sds.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-sgl.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-smf.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/application/x-swriter.kdelnk21
-rw-r--r--extras/unx/source/kde/mimelnk/text/delzip1
-rw-r--r--extras/unx/source/kde/mimelnk/text/html.kdelnk10
-rw-r--r--extras/unx/source/kde/mimelnk/text/makefile.mk49
-rw-r--r--extras/util/target.pmk197
-rw-r--r--fileaccess/prj/build.lst3
-rw-r--r--fileaccess/prj/d.lst5
-rw-r--r--fileaccess/source/FileAccess.cxx967
-rw-r--r--fileaccess/source/exports.map10
-rw-r--r--fileaccess/source/fileacc.xml62
-rw-r--r--fileaccess/source/makefile.mk68
-rw-r--r--filter/inc/filter.hrc66
-rw-r--r--filter/inc/filter/msfilter/countryid.hxx318
-rw-r--r--filter/inc/filter/msfilter/escherex.hxx1612
-rw-r--r--filter/inc/filter/msfilter/mscodec.hxx340
-rw-r--r--filter/inc/filter/msfilter/msdffimp.hxx861
-rw-r--r--filter/inc/filter/msfilter/msfilterdllapi.h41
-rw-r--r--filter/inc/filter/msfilter/msfiltertracer.hxx96
-rw-r--r--filter/inc/filter/msfilter/msocximex.hxx1420
-rw-r--r--filter/inc/filter/msfilter/msoleexp.hxx60
-rw-r--r--filter/inc/filter/msfilter/svdfppt.hxx1440
-rw-r--r--filter/inc/filter/msfilter/svxmsbas.hxx94
-rw-r--r--filter/inc/makefile.mk47
-rw-r--r--filter/inc/pch/precompiled_filter.cxx29
-rw-r--r--filter/inc/pch/precompiled_filter.hxx32
-rw-r--r--filter/prj/build.lst44
-rw-r--r--filter/prj/d.lst57
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/Helper.java443
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/TypeDetection.java559
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/TypeDetection.props13
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/files.csv117
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/makefile.mk129
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/preselectedFilter.csv6
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/preselectedType.csv6
-rw-r--r--filter/qa/complex/filter/detection/typeDetection/serviceName.csv6
-rw-r--r--filter/qa/complex/filter/misc/FinalizedMandatoryTest.java307
-rw-r--r--filter/qa/complex/filter/misc/TypeDetection6FileFormat.java105
-rwxr-xr-xfilter/qa/complex/filter/misc/TypeDetection6FileFormat.xcu25
-rwxr-xr-xfilter/qa/complex/filter/misc/makefile.mk97
-rw-r--r--filter/source/config/cache/basecontainer.cxx638
-rw-r--r--filter/source/config/cache/basecontainer.hxx323
-rw-r--r--filter/source/config/cache/cacheitem.cxx443
-rw-r--r--filter/source/config/cache/cacheitem.hxx261
-rw-r--r--filter/source/config/cache/cacheupdatelistener.cxx246
-rw-r--r--filter/source/config/cache/cacheupdatelistener.hxx147
-rw-r--r--filter/source/config/cache/configflush.cxx168
-rw-r--r--filter/source/config/cache/configflush.hxx128
-rw-r--r--filter/source/config/cache/constant.hxx213
-rw-r--r--filter/source/config/cache/contenthandlerfactory.cxx201
-rw-r--r--filter/source/config/cache/contenthandlerfactory.hxx148
-rw-r--r--filter/source/config/cache/exports.map10
-rw-r--r--filter/source/config/cache/filtercache.cxx2524
-rw-r--r--filter/source/config/cache/filtercache.hxx1066
-rw-r--r--filter/source/config/cache/filterfactory.cxx724
-rw-r--r--filter/source/config/cache/filterfactory.hxx212
-rw-r--r--filter/source/config/cache/frameloaderfactory.cxx198
-rw-r--r--filter/source/config/cache/frameloaderfactory.hxx148
-rw-r--r--filter/source/config/cache/lateinitlistener.cxx126
-rw-r--r--filter/source/config/cache/lateinitlistener.hxx125
-rw-r--r--filter/source/config/cache/lateinitthread.cxx80
-rw-r--r--filter/source/config/cache/lateinitthread.hxx89
-rw-r--r--filter/source/config/cache/macros.hxx132
-rw-r--r--filter/source/config/cache/makefile.mk79
-rw-r--r--filter/source/config/cache/querytokenizer.cxx99
-rw-r--r--filter/source/config/cache/querytokenizer.hxx115
-rw-r--r--filter/source/config/cache/registration.cxx147
-rw-r--r--filter/source/config/cache/registration.hxx214
-rw-r--r--filter/source/config/cache/typedetection.cxx1257
-rw-r--r--filter/source/config/cache/typedetection.hxx459
-rw-r--r--filter/source/config/cache/versions.hxx36
-rw-r--r--filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_SoundHandler.xcu3
-rw-r--r--filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_oxt_handler.xcu3
-rw-r--r--filter/source/config/fragments/delzip0
-rw-r--r--filter/source/config/fragments/fcfg_base.mk51
-rw-r--r--filter/source/config/fragments/fcfg_calc.mk108
-rw-r--r--filter/source/config/fragments/fcfg_calc_bf.mk59
-rw-r--r--filter/source/config/fragments/fcfg_chart.mk48
-rw-r--r--filter/source/config/fragments/fcfg_chart_bf.mk47
-rw-r--r--filter/source/config/fragments/fcfg_database.mk45
-rw-r--r--filter/source/config/fragments/fcfg_draw.mk56
-rw-r--r--filter/source/config/fragments/fcfg_draw_bf.mk51
-rw-r--r--filter/source/config/fragments/fcfg_drawgraphics.mk117
-rw-r--r--filter/source/config/fragments/fcfg_global.mk59
-rw-r--r--filter/source/config/fragments/fcfg_global_bf.mk55
-rw-r--r--filter/source/config/fragments/fcfg_impress.mk75
-rw-r--r--filter/source/config/fragments/fcfg_impress_bf.mk66
-rw-r--r--filter/source/config/fragments/fcfg_impressgraphics.mk83
-rw-r--r--filter/source/config/fragments/fcfg_internalgraphics.mk109
-rw-r--r--filter/source/config/fragments/fcfg_math.mk55
-rw-r--r--filter/source/config/fragments/fcfg_math_bf.mk50
-rw-r--r--filter/source/config/fragments/fcfg_palm.mk44
-rw-r--r--filter/source/config/fragments/fcfg_pocketexcel.mk44
-rw-r--r--filter/source/config/fragments/fcfg_pocketword.mk44
-rw-r--r--filter/source/config/fragments/fcfg_w4w.mk260
-rw-r--r--filter/source/config/fragments/fcfg_web.mk65
-rw-r--r--filter/source/config/fragments/fcfg_web_bf.mk54
-rw-r--r--filter/source/config/fragments/fcfg_writer.mk106
-rw-r--r--filter/source/config/fragments/fcfg_writer_bf.mk63
-rw-r--r--filter/source/config/fragments/fcfg_xslt.mk55
-rw-r--r--filter/source/config/fragments/filters/Ami_Pro_1_x_3_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/AportisDoc_Palm_DB.xcu13
-rw-r--r--filter/source/config/fragments/filters/BMP___MS_Windows.xcu13
-rw-r--r--filter/source/config/fragments/filters/CGM___Computer_Graphics_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/CTOS_DEF__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Claris_Works__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_FFT_Final_Form_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_Revisable_Form_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_with_Display_Write_5__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DEC_DX__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DEC_WPS_PLUS__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DIF.xcu13
-rw-r--r--filter/source/config/fragments/filters/DXF___AutoCAD_Interchange.xcu13
-rw-r--r--filter/source/config/fragments/filters/DataGeneral_CEO_Write__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DisplayWrite_2_0_4_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DisplayWrite_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DocBook_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/EBCDIC__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/EMF___MS_Windows_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/EPS___Encapsulated_PostScript.xcu13
-rw-r--r--filter/source/config/fragments/filters/Enable__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Work_III__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Work_IV___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/GIF___Graphics_Interchange.xcu13
-rw-r--r--filter/source/config/fragments/filters/HP_AdvanceWrite_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/HTML.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML_MasterDoc.xcu13
-rw-r--r--filter/source/config/fragments/filters/HTML_MasterDoc_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/HTML__StarCalc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML__StarCalc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/HTML__StarWriter_.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML__StarWriter__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/HTML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/ICL_Office_Power_6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/ICL_Office_Power_7__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Interleaf_5___6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Interleaf__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/JPG___JPEG.xcu13
-rw-r--r--filter/source/config/fragments/filters/Legacy_Winstar_onGO__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_1_2_3_1_0__DOS___StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_1_2_3_1_0__WIN___StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_Manuscript__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MASS_11_Rel__8_0_8_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MASS_11_Rel__8_5_9_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MET___OS_2_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_2003_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_2003_XML_ui.xcu12
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_1_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_2_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_5.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_6_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2003_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2003_XML_ui.xcu12
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_Template.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_3_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_4_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_6_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Works_2_0_DOS__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Works_3_0_Win__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Works_4_0_Mac__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_4_x_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_II__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_Pro__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MathML_XML__Math_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MathType_3_x.xcu13
-rw-r--r--filter/source/config/fragments/filters/MiniCalc__Palm_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_3_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_4__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_Adv__3_6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_Adv__II_3_7__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/NAVY_DIF__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_6_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PBM___Portable_Bitmap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PCT___Mac_Pict.xcu13
-rw-r--r--filter/source/config/fragments/filters/PCX___Zsoft_Paintbrush.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_2_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_Write__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PGM___Portable_Graymap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PNG___Portable_Network_Graphic.xcu13
-rw-r--r--filter/source/config/fragments/filters/PPM___Portable_Pixelmap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PSD___Adobe_Photoshop.xcu13
-rw-r--r--filter/source/config/fragments/filters/Peach_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PocketWord_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/Pocket_Excel.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_2_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/QPro.xcu13
-rw-r--r--filter/source/config/fragments/filters/Q_A_Write_1_0_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Q_A_Write_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/RAS___Sun_Rasterfile.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rapid_File_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rapid_File_1_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rich_Text_Format.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rich_Text_Format__StarCalc_.xcu13
-rw-r--r--filter/source/config/fragments/filters/SGF___StarOffice_Writer_SGF.xcu13
-rw-r--r--filter/source/config/fragments/filters/SGV___StarDraw_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/SVM___StarView_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/SYLK.xcu13
-rw-r--r--filter/source/config/fragments/filters/Samna_Word_IV_IV_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_1_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarChart_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarChart_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarChart_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0__StarImpress_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0__StarImpress_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0__packed_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0__packed__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarMath_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Base_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Base__ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Calc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Calc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Chart_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Chart__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Draw_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Draw__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Impress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Impress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Math_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Math__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Writer_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Writer__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_1_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_DOS.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/T602Document.xcu13
-rw-r--r--filter/source/config/fragments/filters/TGA___Truevision_TARGA.xcu13
-rw-r--r--filter/source/config/fragments/filters/TIF___Tag_Image_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/Text.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__StarWriter_Web__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text___txt___csv__StarCalc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_Web__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Total_Word__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_presentation.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_presentation_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_spreadsheet.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_spreadsheet_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_text.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_text_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/Uniplex_V7_V8__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Uniplex_onGO__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/VolksWriter_3_and_4__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/VolksWriter_Deluxe__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WITA__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WMF___MS_Windows_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_II_SWP__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_PC__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_WP_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Win_Write_3_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WiziWord_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_4_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_4_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_5_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_6_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_6_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__5_1_5_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__6_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__6_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__7_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_2000_Rel__3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_2000_Rel__3_5__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_3_3x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_3_45__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_4_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_5_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_5_5___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_6_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_7_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar__Win__1_x_2_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WriteNow_3_0__Macintosh___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Writing_Assistant__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XBM___X_Consortium.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_5_0__Illustrator___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_6_0__Color_Bitmap___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_6_0__Res_Graphic___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Calc_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Draw_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Impress_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Writer_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XPM.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_III___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_III____W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_IV__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_Sig___Win___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_Signature__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite__Win__1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/calc8.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/calc8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_HTML_WebQuery_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/chart8.xcu10
-rw-r--r--filter/source/config/fragments/filters/chart8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/dBase.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw8.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/draw8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base16.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base4.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/draw_bmp_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_emf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_eps_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_flash_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_gif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_html_Export.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw_html_Export_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/draw_jpg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_met_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pbm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pct_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pgm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_png_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_ppm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_ras_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_svg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_svm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_tif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_wmf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_xpm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress8.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_draw.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_draw_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Draw.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Draw_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_bmp_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_emf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_eps_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_flash_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_gif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_html_Export.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_html_Export_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_jpg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_met_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pbm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pct_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pgm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_png_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_ppm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_ras_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_svg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_svm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_tif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_wmf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_xpm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/makefile.mk57
-rw-r--r--filter/source/config/fragments/filters/math8.xcu10
-rw-r--r--filter/source/config/fragments/filters/math8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/math_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/placeware_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer8.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writer8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writer_MIZI_Hwp_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_web_HTML_help.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_web_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writerglobal8.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_HTML.xcu13
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_writer_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_ui.xcu5
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_comp_chart2_ChartFrameLoader.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_frame_Bibliography.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_sdb_ContentLoader.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/org_openoffice_comp_dbflt_DBContentLoader2.xcu3
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/bmp_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/bmp_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/dxf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/emf_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/emf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/eps_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/eps_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/gif_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/gif_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/jpg_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/jpg_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/met_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/met_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pbm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pbm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base16.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base4.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pct_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pct_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcx_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pgm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pgm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/png_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/png_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ppm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ppm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/psd_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ras_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ras_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/sgf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/sgv_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tga_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tif_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tif_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/wmf_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/wmf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xbm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xpm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xpm_Import.xcu10
-rw-r--r--filter/source/config/fragments/langfilter.xsl37
-rw-r--r--filter/source/config/fragments/makefile.mk255
-rw-r--r--filter/source/config/fragments/packagedef.mk71
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_PowerPoint_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_PowerPoint_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/types/StarBase.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_presentation.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_spreadsheet.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_text.xcu12
-rw-r--r--filter/source/config/fragments/types/XHTML_File.xcu12
-rw-r--r--filter/source/config/fragments/types/bmp_MS_Windows.xcu12
-rw-r--r--filter/source/config/fragments/types/calc8.xcu12
-rw-r--r--filter/source/config/fragments/types/calc8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_DIF.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Lotus.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_2003_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_40.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_5095.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_5095_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_95.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_95_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_97.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_97_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MiniCalc_PalmDB_File.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Pocket_Excel_File.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_QPro.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_SYLK.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_10.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_30.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_30_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_40.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_50.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarOffice_XML_Calc.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarOffice_XML_Calc_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_dBase.xcu12
-rw-r--r--filter/source/config/fragments/types/chart8.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_30.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_40.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_50.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarOffice_XML_Chart.xcu12
-rw-r--r--filter/source/config/fragments/types/component_Bibliography.xcu12
-rw-r--r--filter/source/config/fragments/types/component_DB.xcu12
-rw-r--r--filter/source/config/fragments/types/draw8.xcu12
-rw-r--r--filter/source/config/fragments/types/draw8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_30.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_30_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_50.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_50_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarOffice_XML_Draw.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarOffice_XML_Draw_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/dxf_AutoCAD_Interchange.xcu12
-rw-r--r--filter/source/config/fragments/types/emf_MS_Windows_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/eps_Encapsulated_PostScript.xcu12
-rw-r--r--filter/source/config/fragments/types/gif_Graphics_Interchange.xcu12
-rw-r--r--filter/source/config/fragments/types/graphic_HTML.xcu12
-rw-r--r--filter/source/config/fragments/types/graphic_SWF.xcu12
-rw-r--r--filter/source/config/fragments/types/impress8.xcu12
-rw-r--r--filter/source/config/fragments/types/impress8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_CGM_Computer_Graphics_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_MS_PowerPoint_97_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_40.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_40_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50_packed.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarOffice_XML_Impress.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarOffice_XML_Impress_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/jpg_JPEG.xcu12
-rw-r--r--filter/source/config/fragments/types/makefile.mk54
-rw-r--r--filter/source/config/fragments/types/math8.xcu12
-rw-r--r--filter/source/config/fragments/types/math_MathML_XML_Math.xcu12
-rw-r--r--filter/source/config/fragments/types/math_MathType_3x.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_20.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_30.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_40.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_50.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarOffice_XML_Math.xcu12
-rw-r--r--filter/source/config/fragments/types/met_OS2_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/oxt_OpenOffice_Extension.xcu12
-rw-r--r--filter/source/config/fragments/types/pbm_Portable_Bitmap.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base16.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base4.xcu12
-rw-r--r--filter/source/config/fragments/types/pct_Mac_Pict.xcu12
-rw-r--r--filter/source/config/fragments/types/pcx_Zsoft_Paintbrush.xcu12
-rw-r--r--filter/source/config/fragments/types/pdf_Portable_Document_Format.xcu12
-rw-r--r--filter/source/config/fragments/types/pgm_Portable_Graymap.xcu12
-rw-r--r--filter/source/config/fragments/types/png_Portable_Network_Graphic.xcu12
-rw-r--r--filter/source/config/fragments/types/ppm_Portable_Pixelmap.xcu12
-rw-r--r--filter/source/config/fragments/types/psd_Adobe_Photoshop.xcu12
-rw-r--r--filter/source/config/fragments/types/pwp_PlaceWare.xcu12
-rw-r--r--filter/source/config/fragments/types/ras_Sun_Rasterfile.xcu12
-rw-r--r--filter/source/config/fragments/types/sgf_StarOffice_Writer_SGF.xcu12
-rw-r--r--filter/source/config/fragments/types/sgv_StarDraw_20.xcu12
-rw-r--r--filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu12
-rw-r--r--filter/source/config/fragments/types/svm_StarView_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/tga_Truevision_TARGA.xcu12
-rw-r--r--filter/source/config/fragments/types/tif_Tag_Image_File.xcu12
-rw-r--r--filter/source/config/fragments/types/wav_Wave_Audio_File.xcu12
-rw-r--r--filter/source/config/fragments/types/wmf_MS_Windows_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/writer8.xcu12
-rw-r--r--filter/source/config/fragments/types/writer8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Ami_Pro_1x_31_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_AportisDoc_PalmDB_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_CTOS_DEF_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Claris_Works_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCAFFT_Final_Form_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCA_Revisable_Form_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCA_with_Display_Write_5_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DEC_DX_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DEC_WPS_PLUS_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DataGeneral_CEO_Write_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DisplayWrite_20_4x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DisplayWrite_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DocBook_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_EBCDIC_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Enable_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Work_III_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Work_IV_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_HP_AdvanceWrite_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_ICL_Office_Power_6_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_ICL_Office_Power_7_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Interleaf_5_6_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Interleaf_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Legacy_Winstar_onGO_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_1_2_3_10_DOS_StarWriter.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_1_2_3_10_WIN_StarWriter.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_Manuscript_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MASS_11_Rel_80_83_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MASS_11_Rel_85_90_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MIZI_Hwp_97.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_1x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_2x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_5.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_60.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2003_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2007_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2007_XML_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_3x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_4x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_6x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_95.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_95_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_97.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_97_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_20_DOS_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_30_Win_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_40_Mac_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_4x_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_II_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_Pro_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_33_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_4_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_Adv_36_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_Adv_II_37_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_NAVY_DIF_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_6x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_20_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_Write_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Peach_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PocketWord_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_2x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_QA_Write_10_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_QA_Write_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rapid_File_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rapid_File_12_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rich_Text_Format.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Samna_Word_IV_IV_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarOffice_XML_Writer.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarOffice_XML_Writer_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_10.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_20.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_30.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_30_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_40.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_50.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_DOS.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_T602_Document.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Text.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Text_encoded.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Total_Word_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Uniplex_V7_V8_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Uniplex_onGO_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_VolksWriter_3_and_4_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_VolksWriter_Deluxe_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WITA_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_II_SWP_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_PC_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_WP_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Win_Write_3x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WiziWord_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_41_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_42_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_51_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_61_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Document.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_1_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_2_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_3_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_51_52_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_61_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_70_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_2000_Rel_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_2000_Rel_35_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_33x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_345_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_55_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_70_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_Win_1x_20_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WriteNow_30_Macintosh_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Writing_Assistant_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_50_Illustrator_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_60_Color_Bitmap_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_60_Res_Graphic_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_IIIP_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_III_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_IV_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Sig_Win_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Signature_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Win_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarWriter_40GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarWriter_50GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_HTML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_HTML_help.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarOffice_XML_Writer_Web_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarWriterWeb_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarWriterWeb_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writerglobal8.xcu12
-rw-r--r--filter/source/config/fragments/types/writerweb8_writer_template.xcu12
-rw-r--r--filter/source/config/fragments/types/xbm_X_Consortium.xcu12
-rw-r--r--filter/source/config/fragments/types/xpm_XPM.xcu12
-rw-r--r--filter/source/config/tools/Manifest.mf4
-rwxr-xr-xfilter/source/config/tools/merge/pyAltFCFGMerge591
-rw-r--r--filter/source/config/tools/split/FCFGSplit.cfg110
-rw-r--r--filter/source/config/tools/split/FCFGSplit.java565
-rw-r--r--filter/source/config/tools/split/Manifest.mf1
-rw-r--r--filter/source/config/tools/split/Splitter.java310
-rw-r--r--filter/source/config/tools/split/SplitterData.java87
-rw-r--r--filter/source/config/tools/split/makefile.mk88
-rw-r--r--filter/source/docbook/DocBookTemplate.stwbin0 -> 6688 bytes
-rw-r--r--filter/source/docbook/docbooktosoffheadings.xsl1424
-rw-r--r--filter/source/docbook/makefile.mk51
-rw-r--r--filter/source/docbook/sofftodocbookheadings.xsl1185
-rw-r--r--filter/source/filtertracer/exports.dxp3
-rw-r--r--filter/source/filtertracer/filtertracer.cxx256
-rw-r--r--filter/source/filtertracer/filtertracer.hxx186
-rw-r--r--filter/source/filtertracer/filtertraceruno.cxx110
-rw-r--r--filter/source/filtertracer/makefile.mk63
-rw-r--r--filter/source/flash/exports.map9
-rw-r--r--filter/source/flash/impswfdialog.cxx125
-rw-r--r--filter/source/flash/impswfdialog.hrc48
-rw-r--r--filter/source/flash/impswfdialog.hxx85
-rw-r--r--filter/source/flash/impswfdialog.src182
-rw-r--r--filter/source/flash/makefile.mk98
-rw-r--r--filter/source/flash/swfdialog.cxx283
-rw-r--r--filter/source/flash/swfdialog.hxx89
-rw-r--r--filter/source/flash/swfexporter.cxx768
-rw-r--r--filter/source/flash/swfexporter.hxx218
-rw-r--r--filter/source/flash/swffilter.cxx526
-rw-r--r--filter/source/flash/swfuno.cxx136
-rw-r--r--filter/source/flash/swfwriter.cxx640
-rw-r--r--filter/source/flash/swfwriter.hxx462
-rw-r--r--filter/source/flash/swfwriter1.cxx2126
-rw-r--r--filter/source/flash/swfwriter2.cxx692
-rw-r--r--filter/source/graphicfilter/egif/dlgegif.cxx108
-rw-r--r--filter/source/graphicfilter/egif/dlgegif.hrc36
-rw-r--r--filter/source/graphicfilter/egif/dlgegif.hxx71
-rw-r--r--filter/source/graphicfilter/egif/dlgegif.src118
-rw-r--r--filter/source/graphicfilter/egif/egif.cxx629
-rw-r--r--filter/source/graphicfilter/egif/egifstr.src39
-rw-r--r--filter/source/graphicfilter/egif/exports.map8
-rw-r--r--filter/source/graphicfilter/egif/giflzwc.cxx256
-rw-r--r--filter/source/graphicfilter/egif/giflzwc.hxx65
-rw-r--r--filter/source/graphicfilter/egif/makefile.mk78
-rw-r--r--filter/source/graphicfilter/egif/strings.hrc28
-rw-r--r--filter/source/graphicfilter/eos2met/dlgeos2.cxx179
-rw-r--r--filter/source/graphicfilter/eos2met/dlgeos2.hrc41
-rw-r--r--filter/source/graphicfilter/eos2met/dlgeos2.hxx80
-rw-r--r--filter/source/graphicfilter/eos2met/dlgeos2.src162
-rw-r--r--filter/source/graphicfilter/eos2met/eos2met.cxx2648
-rw-r--r--filter/source/graphicfilter/eos2met/eos2mstr.src38
-rw-r--r--filter/source/graphicfilter/eos2met/exports.map8
-rw-r--r--filter/source/graphicfilter/eos2met/makefile.mk74
-rw-r--r--filter/source/graphicfilter/eos2met/strings.hrc29
-rw-r--r--filter/source/graphicfilter/epbm/dlgepbm.cxx99
-rw-r--r--filter/source/graphicfilter/epbm/dlgepbm.hrc34
-rw-r--r--filter/source/graphicfilter/epbm/dlgepbm.hxx71
-rw-r--r--filter/source/graphicfilter/epbm/dlgepbm.src106
-rw-r--r--filter/source/graphicfilter/epbm/epbm.cxx272
-rw-r--r--filter/source/graphicfilter/epbm/epbmstr.src35
-rw-r--r--filter/source/graphicfilter/epbm/exports.map8
-rw-r--r--filter/source/graphicfilter/epbm/makefile.mk75
-rw-r--r--filter/source/graphicfilter/epbm/strings.hrc27
-rw-r--r--filter/source/graphicfilter/epgm/dlgepgm.cxx97
-rw-r--r--filter/source/graphicfilter/epgm/dlgepgm.hrc34
-rw-r--r--filter/source/graphicfilter/epgm/dlgepgm.hxx71
-rw-r--r--filter/source/graphicfilter/epgm/dlgepgm.src105
-rw-r--r--filter/source/graphicfilter/epgm/epgm.cxx297
-rw-r--r--filter/source/graphicfilter/epgm/epgmstr.src35
-rw-r--r--filter/source/graphicfilter/epgm/exports.map8
-rw-r--r--filter/source/graphicfilter/epgm/makefile.mk76
-rw-r--r--filter/source/graphicfilter/epgm/strings.hrc27
-rw-r--r--filter/source/graphicfilter/epict/dlgepct.cxx183
-rw-r--r--filter/source/graphicfilter/epict/dlgepct.hrc41
-rw-r--r--filter/source/graphicfilter/epict/dlgepct.hxx80
-rw-r--r--filter/source/graphicfilter/epict/dlgepct.src163
-rw-r--r--filter/source/graphicfilter/epict/epict.cxx2387
-rw-r--r--filter/source/graphicfilter/epict/epictstr.src38
-rw-r--r--filter/source/graphicfilter/epict/exports.map8
-rw-r--r--filter/source/graphicfilter/epict/makefile.mk76
-rw-r--r--filter/source/graphicfilter/epict/strings.hrc29
-rw-r--r--filter/source/graphicfilter/eppm/dlgeppm.cxx96
-rw-r--r--filter/source/graphicfilter/eppm/dlgeppm.hrc34
-rw-r--r--filter/source/graphicfilter/eppm/dlgeppm.hxx71
-rw-r--r--filter/source/graphicfilter/eppm/dlgeppm.src106
-rw-r--r--filter/source/graphicfilter/eppm/eppm.cxx305
-rw-r--r--filter/source/graphicfilter/eppm/eppmstr.src35
-rw-r--r--filter/source/graphicfilter/eppm/exports.map8
-rw-r--r--filter/source/graphicfilter/eppm/makefile.mk76
-rw-r--r--filter/source/graphicfilter/eppm/strings.hrc27
-rw-r--r--filter/source/graphicfilter/eps/dlgeps.cxx206
-rw-r--r--filter/source/graphicfilter/eps/dlgeps.hrc43
-rw-r--r--filter/source/graphicfilter/eps/dlgeps.hxx82
-rw-r--r--filter/source/graphicfilter/eps/dlgeps.src160
-rw-r--r--filter/source/graphicfilter/eps/eps.cxx2793
-rw-r--r--filter/source/graphicfilter/eps/epsstr.src70
-rw-r--r--filter/source/graphicfilter/eps/exports.map8
-rw-r--r--filter/source/graphicfilter/eps/makefile.mk79
-rw-r--r--filter/source/graphicfilter/eps/strings.hrc29
-rw-r--r--filter/source/graphicfilter/eras/eras.cxx317
-rw-r--r--filter/source/graphicfilter/eras/exports.map7
-rw-r--r--filter/source/graphicfilter/eras/makefile.mk67
-rw-r--r--filter/source/graphicfilter/etiff/etiff.cxx648
-rw-r--r--filter/source/graphicfilter/etiff/exports.map7
-rw-r--r--filter/source/graphicfilter/etiff/makefile.mk65
-rw-r--r--filter/source/graphicfilter/expm/expm.cxx302
-rw-r--r--filter/source/graphicfilter/expm/exports.map7
-rw-r--r--filter/source/graphicfilter/expm/makefile.mk66
-rw-r--r--filter/source/graphicfilter/icgm/actimpr.cxx1134
-rw-r--r--filter/source/graphicfilter/icgm/bitmap.cxx410
-rw-r--r--filter/source/graphicfilter/icgm/bitmap.hxx87
-rw-r--r--filter/source/graphicfilter/icgm/bundles.cxx288
-rw-r--r--filter/source/graphicfilter/icgm/bundles.hxx173
-rw-r--r--filter/source/graphicfilter/icgm/cgm.cxx927
-rw-r--r--filter/source/graphicfilter/icgm/cgm.hxx178
-rw-r--r--filter/source/graphicfilter/icgm/cgmres.hrc28
-rw-r--r--filter/source/graphicfilter/icgm/cgmtypes.hxx145
-rw-r--r--filter/source/graphicfilter/icgm/chart.cxx100
-rw-r--r--filter/source/graphicfilter/icgm/chart.hxx214
-rw-r--r--filter/source/graphicfilter/icgm/class0.cxx138
-rw-r--r--filter/source/graphicfilter/icgm/class1.cxx231
-rw-r--r--filter/source/graphicfilter/icgm/class2.cxx227
-rw-r--r--filter/source/graphicfilter/icgm/class3.cxx144
-rw-r--r--filter/source/graphicfilter/icgm/class4.cxx861
-rw-r--r--filter/source/graphicfilter/icgm/class5.cxx524
-rw-r--r--filter/source/graphicfilter/icgm/class7.cxx237
-rw-r--r--filter/source/graphicfilter/icgm/classx.cxx262
-rw-r--r--filter/source/graphicfilter/icgm/elements.cxx395
-rw-r--r--filter/source/graphicfilter/icgm/elements.hxx145
-rw-r--r--filter/source/graphicfilter/icgm/exports.map7
-rw-r--r--filter/source/graphicfilter/icgm/main.hxx63
-rw-r--r--filter/source/graphicfilter/icgm/makefile.mk80
-rw-r--r--filter/source/graphicfilter/icgm/outact.cxx200
-rw-r--r--filter/source/graphicfilter/icgm/outact.hxx148
-rw-r--r--filter/source/graphicfilter/idxf/dxf2mtf.cxx980
-rw-r--r--filter/source/graphicfilter/idxf/dxf2mtf.hxx128
-rw-r--r--filter/source/graphicfilter/idxf/dxfblkrd.cxx139
-rw-r--r--filter/source/graphicfilter/idxf/dxfblkrd.hxx87
-rw-r--r--filter/source/graphicfilter/idxf/dxfentrd.cxx871
-rw-r--r--filter/source/graphicfilter/idxf/dxfentrd.hxx602
-rw-r--r--filter/source/graphicfilter/idxf/dxfgrprd.cxx361
-rw-r--r--filter/source/graphicfilter/idxf/dxfgrprd.hxx155
-rw-r--r--filter/source/graphicfilter/idxf/dxfreprd.cxx385
-rw-r--r--filter/source/graphicfilter/idxf/dxfreprd.hxx138
-rw-r--r--filter/source/graphicfilter/idxf/dxftblrd.cxx348
-rw-r--r--filter/source/graphicfilter/idxf/dxftblrd.hxx183
-rw-r--r--filter/source/graphicfilter/idxf/dxfvec.cxx254
-rw-r--r--filter/source/graphicfilter/idxf/dxfvec.hxx261
-rw-r--r--filter/source/graphicfilter/idxf/exports.map7
-rw-r--r--filter/source/graphicfilter/idxf/idxf.cxx82
-rw-r--r--filter/source/graphicfilter/idxf/makefile.mk79
-rw-r--r--filter/source/graphicfilter/ieps/exports.map7
-rw-r--r--filter/source/graphicfilter/ieps/ieps.cxx771
-rw-r--r--filter/source/graphicfilter/ieps/makefile.mk66
-rw-r--r--filter/source/graphicfilter/ios2met/exports.map7
-rw-r--r--filter/source/graphicfilter/ios2met/ios2met.cxx2784
-rw-r--r--filter/source/graphicfilter/ios2met/makefile.mk68
-rw-r--r--filter/source/graphicfilter/ipbm/exports.map7
-rw-r--r--filter/source/graphicfilter/ipbm/ipbm.cxx565
-rw-r--r--filter/source/graphicfilter/ipbm/makefile.mk68
-rw-r--r--filter/source/graphicfilter/ipcd/exports.map7
-rw-r--r--filter/source/graphicfilter/ipcd/ipcd.cxx422
-rw-r--r--filter/source/graphicfilter/ipcd/makefile.mk67
-rw-r--r--filter/source/graphicfilter/ipcx/exports.map7
-rw-r--r--filter/source/graphicfilter/ipcx/ipcx.cxx458
-rw-r--r--filter/source/graphicfilter/ipcx/makefile.mk67
-rw-r--r--filter/source/graphicfilter/ipict/exports.map7
-rw-r--r--filter/source/graphicfilter/ipict/ipict.cxx1937
-rw-r--r--filter/source/graphicfilter/ipict/makefile.mk68
-rw-r--r--filter/source/graphicfilter/ipsd/exports.map7
-rw-r--r--filter/source/graphicfilter/ipsd/ipsd.cxx763
-rw-r--r--filter/source/graphicfilter/ipsd/makefile.mk67
-rw-r--r--filter/source/graphicfilter/iras/exports.map7
-rw-r--r--filter/source/graphicfilter/iras/iras.cxx383
-rw-r--r--filter/source/graphicfilter/iras/makefile.mk67
-rw-r--r--filter/source/graphicfilter/itga/exports.map7
-rw-r--r--filter/source/graphicfilter/itga/itga.cxx758
-rw-r--r--filter/source/graphicfilter/itga/makefile.mk67
-rw-r--r--filter/source/graphicfilter/itiff/ccidecom.cxx1112
-rw-r--r--filter/source/graphicfilter/itiff/ccidecom.hxx125
-rw-r--r--filter/source/graphicfilter/itiff/exports.map7
-rw-r--r--filter/source/graphicfilter/itiff/itiff.cxx1342
-rw-r--r--filter/source/graphicfilter/itiff/lzwdecom.cxx192
-rw-r--r--filter/source/graphicfilter/itiff/lzwdecom.hxx79
-rw-r--r--filter/source/graphicfilter/itiff/makefile.mk71
-rw-r--r--filter/source/msfilter/countryid.cxx342
-rw-r--r--filter/source/msfilter/escherex.cxx4918
-rw-r--r--filter/source/msfilter/eschesdo.cxx1253
-rw-r--r--filter/source/msfilter/eschesdo.hxx206
-rw-r--r--filter/source/msfilter/makefile.mk86
-rw-r--r--filter/source/msfilter/makefile.pmk30
-rw-r--r--filter/source/msfilter/mscodec.cxx534
-rw-r--r--filter/source/msfilter/msdffimp.cxx8143
-rw-r--r--filter/source/msfilter/msfiltertracer.cxx251
-rw-r--r--filter/source/msfilter/msocximex.cxx5957
-rw-r--r--filter/source/msfilter/msoleexp.cxx364
-rw-r--r--filter/source/msfilter/msvbasic.cxx674
-rw-r--r--filter/source/msfilter/msvbasic.hxx126
-rw-r--r--filter/source/msfilter/powerpoint/exports.map9
-rw-r--r--filter/source/msfilter/powerpoint/makefile.mk65
-rw-r--r--filter/source/msfilter/powerpoint/pptcom.hxx76
-rw-r--r--filter/source/msfilter/powerpoint/pptimporter.cxx163
-rw-r--r--filter/source/msfilter/powerpoint/pptimporter.hxx91
-rw-r--r--filter/source/msfilter/powerpoint/pptimporteruno.cxx110
-rw-r--r--filter/source/msfilter/powerpoint/ppttoxml.cxx91
-rw-r--r--filter/source/msfilter/powerpoint/ppttoxml.hxx51
-rw-r--r--filter/source/msfilter/svdfppt.cxx7809
-rw-r--r--filter/source/msfilter/svxmsbas.cxx403
-rw-r--r--filter/source/msfilter/svxmsbas2.cxx85
-rw-r--r--filter/source/msfilter/viscache.hxx82
-rw-r--r--filter/source/pdf/exports.map9
-rw-r--r--filter/source/pdf/impdialog.cxx1532
-rw-r--r--filter/source/pdf/impdialog.hrc185
-rw-r--r--filter/source/pdf/impdialog.hxx403
-rw-r--r--filter/source/pdf/impdialog.src833
-rw-r--r--filter/source/pdf/makefile.mk82
-rw-r--r--filter/source/pdf/pdf.hrc29
-rw-r--r--filter/source/pdf/pdf.src66
-rw-r--r--filter/source/pdf/pdfdialog.cxx222
-rw-r--r--filter/source/pdf/pdfdialog.hxx91
-rw-r--r--filter/source/pdf/pdfexport.cxx1960
-rw-r--r--filter/source/pdf/pdfexport.hxx141
-rw-r--r--filter/source/pdf/pdffilter.cxx267
-rw-r--r--filter/source/pdf/pdffilter.hxx133
-rw-r--r--filter/source/pdf/pdfuno.cxx124
-rw-r--r--filter/source/placeware/Base64Codec.cxx207
-rw-r--r--filter/source/placeware/Base64Codec.hxx47
-rw-r--r--filter/source/placeware/exporter.cxx516
-rw-r--r--filter/source/placeware/exporter.hxx60
-rw-r--r--filter/source/placeware/exports.dxp3
-rw-r--r--filter/source/placeware/filter.cxx217
-rw-r--r--filter/source/placeware/makefile.mk67
-rw-r--r--filter/source/placeware/placeware.map8
-rw-r--r--filter/source/placeware/placeware.xml45
-rw-r--r--filter/source/placeware/tempfile.cxx189
-rw-r--r--filter/source/placeware/tempfile.hxx48
-rw-r--r--filter/source/placeware/uno.cxx110
-rw-r--r--filter/source/placeware/zip.cxx332
-rw-r--r--filter/source/placeware/zip.hxx62
-rw-r--r--filter/source/placeware/zipfile.hxx91
-rw-r--r--filter/source/svg/SOTranscoder.java45
-rw-r--r--filter/source/svg/exports.map9
-rw-r--r--filter/source/svg/makefile.mk83
-rw-r--r--filter/source/svg/svgexport.cxx1007
-rw-r--r--filter/source/svg/svgfilter.cxx229
-rw-r--r--filter/source/svg/svgfilter.hxx296
-rw-r--r--filter/source/svg/svgfontexport.cxx258
-rw-r--r--filter/source/svg/svgfontexport.hxx64
-rw-r--r--filter/source/svg/svgimport.cxx188
-rw-r--r--filter/source/svg/svgscript.hxx209
-rw-r--r--filter/source/svg/svguno.cxx102
-rw-r--r--filter/source/svg/svgwriter.cxx1657
-rw-r--r--filter/source/svg/svgwriter.hxx225
-rw-r--r--filter/source/t602/filterenv.cxx128
-rw-r--r--filter/source/t602/makefile.mk62
-rw-r--r--filter/source/t602/t602filter.cxx1266
-rw-r--r--filter/source/t602/t602filter.hrc45
-rw-r--r--filter/source/t602/t602filter.hxx286
-rw-r--r--filter/source/t602/t602filter.map8
-rw-r--r--filter/source/t602/t602filter.src83
-rw-r--r--filter/source/xmlfilteradaptor/XmlFilterAdaptor.cxx437
-rw-r--r--filter/source/xmlfilteradaptor/XmlFilterAdaptor.hxx184
-rw-r--r--filter/source/xmlfilteradaptor/genericfilter.cxx180
-rw-r--r--filter/source/xmlfilteradaptor/makefile.mk62
-rwxr-xr-xfilter/source/xmlfilteradaptor/streamwrap.cxx70
-rwxr-xr-xfilter/source/xmlfilteradaptor/streamwrap.hxx78
-rw-r--r--filter/source/xmlfilteradaptor/xmlfa.map10
-rw-r--r--filter/source/xmlfilterdetect/fdcomp.cxx180
-rw-r--r--filter/source/xmlfilterdetect/filterdetect.cxx309
-rw-r--r--filter/source/xmlfilterdetect/filterdetect.hxx168
-rw-r--r--filter/source/xmlfilterdetect/makefile.mk60
-rw-r--r--filter/source/xmlfilterdetect/xmlfd.map10
-rw-r--r--filter/source/xslt/common/copy.xsl9
-rw-r--r--filter/source/xslt/common/math.xsl589
-rw-r--r--filter/source/xslt/common/measure_conversion.xsl387
-rw-r--r--filter/source/xslt/export/common/ooo2ms_docpr.xsl137
-rw-r--r--filter/source/xslt/export/spreadsheetml/formular.xsl640
-rw-r--r--filter/source/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl239
-rw-r--r--filter/source/xslt/export/spreadsheetml/style_mapping.xsl390
-rw-r--r--filter/source/xslt/export/spreadsheetml/styles.xsl695
-rw-r--r--filter/source/xslt/export/spreadsheetml/table.xsl937
-rw-r--r--filter/source/xslt/export/uof/odf2uof_presentation.xsl3375
-rw-r--r--filter/source/xslt/export/uof/odf2uof_spreadsheet.xsl6194
-rw-r--r--filter/source/xslt/export/uof/odf2uof_text.xsl4445
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml.xsl218
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_border.xsl153
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_custom_draw.xsl284
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_draw.xsl1885
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_field.xsl733
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_list.xsl340
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_page.xsl401
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_path.xsl858
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_settings.xsl312
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_table.xsl416
-rw-r--r--filter/source/xslt/export/wordml/ooo2wordml_text.xsl1279
-rw-r--r--filter/source/xslt/import/common/ms2ooo_docpr.xsl101
-rw-r--r--filter/source/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl8958
-rw-r--r--filter/source/xslt/import/uof/uof2odf_presentation.xsl3478
-rw-r--r--filter/source/xslt/import/uof/uof2odf_spreadsheet.xsl9054
-rw-r--r--filter/source/xslt/import/uof/uof2odf_text.xsl4650
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo.xsl348
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_custom_draw.xsl284
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_draw.xsl2213
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_field.xsl1587
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_list.xsl657
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_page.xsl387
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_path.xsl1818
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_props.xsl107
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_settings.xsl69
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_table.xsl1286
-rw-r--r--filter/source/xslt/import/wordml/wordml2ooo_text.xsl1058
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/body.xsl422
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/styles/style_collector.xsl828
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/styles/style_mapping_css.xsl355
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/table/table.xsl164
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/table/table_cells.xsl279
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/table/table_columns.xsl243
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/table/table_rows.xsl212
-rw-r--r--filter/source/xslt/odf2xhtml/export/common/table_of_content.xsl554
-rw-r--r--filter/source/xslt/odf2xhtml/export/xhtml/body.xsl2837
-rw-r--r--filter/source/xslt/odf2xhtml/export/xhtml/header.xsl484
-rw-r--r--filter/source/xslt/odf2xhtml/export/xhtml/opendoc2xhtml.xsl183
-rw-r--r--filter/source/xslt/odf2xhtml/export/xhtml/table.xsl222
-rw-r--r--filter/source/xsltdialog/exports.dxp3
-rw-r--r--filter/source/xsltdialog/hidother.src78
-rw-r--r--filter/source/xsltdialog/makefile.mk94
-rw-r--r--filter/source/xsltdialog/typedetectionexport.cxx298
-rw-r--r--filter/source/xsltdialog/typedetectionexport.hxx53
-rw-r--r--filter/source/xsltdialog/typedetectionimport.cxx362
-rw-r--r--filter/source/xsltdialog/typedetectionimport.hxx129
-rw-r--r--filter/source/xsltdialog/xmlfileview.cxx990
-rw-r--r--filter/source/xsltdialog/xmlfileview.hrc36
-rw-r--r--filter/source/xsltdialog/xmlfileview.hxx177
-rw-r--r--filter/source/xsltdialog/xmlfileview.src64
-rw-r--r--filter/source/xsltdialog/xmlfiltercommon.hrc41
-rw-r--r--filter/source/xsltdialog/xmlfiltercommon.hxx107
-rw-r--r--filter/source/xsltdialog/xmlfilterdialogcomponent.cxx466
-rw-r--r--filter/source/xsltdialog/xmlfilterdialogstrings.hrc72
-rw-r--r--filter/source/xsltdialog/xmlfilterdialogstrings.src203
-rw-r--r--filter/source/xsltdialog/xmlfilterhelpids.hrc88
-rw-r--r--filter/source/xsltdialog/xmlfilterjar.cxx397
-rw-r--r--filter/source/xsltdialog/xmlfilterjar.hxx65
-rw-r--r--filter/source/xsltdialog/xmlfiltersettingsdialog.cxx1799
-rw-r--r--filter/source/xsltdialog/xmlfiltersettingsdialog.hrc43
-rw-r--r--filter/source/xsltdialog/xmlfiltersettingsdialog.hxx161
-rw-r--r--filter/source/xsltdialog/xmlfiltersettingsdialog.src139
-rw-r--r--filter/source/xsltdialog/xmlfiltertabdialog.cxx373
-rw-r--r--filter/source/xsltdialog/xmlfiltertabdialog.hrc33
-rw-r--r--filter/source/xsltdialog/xmlfiltertabdialog.hxx75
-rw-r--r--filter/source/xsltdialog/xmlfiltertabdialog.src65
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagebasic.cxx153
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagebasic.hrc44
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagebasic.hxx67
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagebasic.src152
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagexslt.cxx221
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagexslt.hrc48
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagexslt.hxx82
-rw-r--r--filter/source/xsltdialog/xmlfiltertabpagexslt.src176
-rw-r--r--filter/source/xsltdialog/xmlfiltertestdialog.cxx783
-rw-r--r--filter/source/xsltdialog/xmlfiltertestdialog.hrc53
-rw-r--r--filter/source/xsltdialog/xmlfiltertestdialog.hxx107
-rw-r--r--filter/source/xsltdialog/xmlfiltertestdialog.src210
-rw-r--r--filter/source/xsltfilter/Base64.java1833
-rw-r--r--filter/source/xsltfilter/Manifest3
-rw-r--r--filter/source/xsltfilter/XSLTFilter.cxx731
-rw-r--r--filter/source/xsltfilter/XSLTFilterOLEExtracter.java393
-rw-r--r--filter/source/xsltfilter/XSLTransformer.java479
-rw-r--r--filter/source/xsltfilter/exports.map10
-rw-r--r--filter/source/xsltfilter/fla.cxx327
-rw-r--r--filter/source/xsltfilter/fla.hxx53
-rw-r--r--filter/source/xsltfilter/makefile.mk82
-rw-r--r--filter/source/xsltvalidate/Manifest2
-rw-r--r--filter/source/xsltvalidate/XSLTValidate.java347
-rw-r--r--filter/source/xsltvalidate/makefile.mk76
-rw-r--r--fondu/makefile.mk69
-rw-r--r--fondu/prj/build.lst2
-rw-r--r--fondu/prj/d.lst2
-rw-r--r--forms/inc/makefile.mk48
-rw-r--r--forms/inc/pch/precompiled_forms.cxx29
-rw-r--r--forms/inc/pch/precompiled_forms.hxx400
-rw-r--r--forms/makefile.pmk28
-rw-r--r--forms/prj/build.lst17
-rw-r--r--forms/prj/d.lst7
-rwxr-xr-xforms/qa/complex/forms/CheckOGroupBoxModel.java147
-rwxr-xr-xforms/qa/complex/forms/makefile.mk78
-rw-r--r--forms/qa/forms_all.sce8
-rw-r--r--forms/qa/integration/forms/BooleanValidator.java59
-rw-r--r--forms/qa/integration/forms/CellBinding.java560
-rw-r--r--forms/qa/integration/forms/ControlValidation.java202
-rw-r--r--forms/qa/integration/forms/ControlValidator.java61
-rw-r--r--forms/qa/integration/forms/DateValidator.java103
-rw-r--r--forms/qa/integration/forms/DocumentHelper.java387
-rw-r--r--forms/qa/integration/forms/DocumentType.java61
-rw-r--r--forms/qa/integration/forms/DocumentViewHelper.java257
-rw-r--r--forms/qa/integration/forms/FormComponent.java197
-rw-r--r--forms/qa/integration/forms/FormControlTest.java952
-rw-r--r--forms/qa/integration/forms/FormLayer.java376
-rw-r--r--forms/qa/integration/forms/FormPropertyBags.java208
-rw-r--r--forms/qa/integration/forms/ImageComparison.java73
-rw-r--r--forms/qa/integration/forms/ListBox.java290
-rw-r--r--forms/qa/integration/forms/ListSelection.java298
-rw-r--r--forms/qa/integration/forms/ListSelection.props3
-rw-r--r--forms/qa/integration/forms/ListSelectionValidator.java71
-rw-r--r--forms/qa/integration/forms/MasterDetailForms.java435
-rw-r--r--forms/qa/integration/forms/NumericValidator.java90
-rw-r--r--forms/qa/integration/forms/RadioButtons.java459
-rw-r--r--forms/qa/integration/forms/SingleControlValidation.java191
-rw-r--r--forms/qa/integration/forms/SpreadsheetDocument.java151
-rw-r--r--forms/qa/integration/forms/SpreadsheetView.java81
-rw-r--r--forms/qa/integration/forms/TableCellTextBinding.java213
-rw-r--r--forms/qa/integration/forms/TestCase.java158
-rw-r--r--forms/qa/integration/forms/TestSkeleton.java75
-rw-r--r--forms/qa/integration/forms/TextValidator.java90
-rw-r--r--forms/qa/integration/forms/TimeValidator.java95
-rw-r--r--forms/qa/integration/forms/ValueBinding.java120
-rw-r--r--forms/qa/integration/forms/WaitForInput.java66
-rw-r--r--forms/qa/integration/forms/XMLFormSettings.java229
-rw-r--r--forms/qa/integration/forms/dbfTools.java55
-rw-r--r--forms/qa/makefile.mk91
-rw-r--r--forms/qa/org/openoffice/complex/forms/tools/ResultSet.java264
-rw-r--r--forms/qa/org/openoffice/xforms/Instance.java198
-rw-r--r--forms/qa/org/openoffice/xforms/Model.java100
-rw-r--r--forms/qa/org/openoffice/xforms/XMLDocument.java96
-rw-r--r--forms/qa/unoapi/forms.sce40
-rw-r--r--forms/qa/unoapi/knownissues.xcl118
-rw-r--r--forms/qa/unoapi/makefile.mk48
-rw-r--r--forms/qa/unoapi/testdocuments/TestDB/testDB.dbfbin0 -> 11101 bytes
-rw-r--r--forms/qa/unoapi/testdocuments/TestDB/testDB.dbtbin0 -> 18435 bytes
-rw-r--r--forms/source/component/BaseListBox.hxx43
-rw-r--r--forms/source/component/Button.cxx780
-rw-r--r--forms/source/component/Button.hxx210
-rw-r--r--forms/source/component/CheckBox.cxx275
-rw-r--r--forms/source/component/CheckBox.hxx91
-rw-r--r--forms/source/component/Columns.cxx592
-rw-r--r--forms/source/component/Columns.hxx221
-rw-r--r--forms/source/component/ComboBox.cxx931
-rw-r--r--forms/source/component/ComboBox.hxx178
-rw-r--r--forms/source/component/Currency.cxx267
-rw-r--r--forms/source/component/Currency.hxx101
-rw-r--r--forms/source/component/DatabaseForm.cxx4160
-rw-r--r--forms/source/component/DatabaseForm.hxx569
-rw-r--r--forms/source/component/Date.cxx363
-rw-r--r--forms/source/component/Date.hxx133
-rw-r--r--forms/source/component/Edit.cxx766
-rw-r--r--forms/source/component/Edit.hxx188
-rw-r--r--forms/source/component/EditBase.cxx363
-rw-r--r--forms/source/component/EditBase.hxx113
-rw-r--r--forms/source/component/EventThread.cxx251
-rw-r--r--forms/source/component/EventThread.hxx126
-rw-r--r--forms/source/component/File.cxx307
-rw-r--r--forms/source/component/File.hxx103
-rw-r--r--forms/source/component/Filter.cxx935
-rw-r--r--forms/source/component/Filter.hxx157
-rw-r--r--forms/source/component/FixedText.cxx138
-rw-r--r--forms/source/component/FixedText.hxx71
-rw-r--r--forms/source/component/FormComponent.cxx3116
-rw-r--r--forms/source/component/FormattedField.cxx1257
-rw-r--r--forms/source/component/FormattedField.hxx198
-rw-r--r--forms/source/component/FormattedFieldWrapper.cxx398
-rw-r--r--forms/source/component/FormattedFieldWrapper.hxx99
-rw-r--r--forms/source/component/FormsCollection.cxx186
-rw-r--r--forms/source/component/FormsCollection.hxx100
-rw-r--r--forms/source/component/Grid.cxx1163
-rw-r--r--forms/source/component/Grid.hxx219
-rw-r--r--forms/source/component/GroupBox.cxx175
-rw-r--r--forms/source/component/GroupBox.hxx84
-rw-r--r--forms/source/component/GroupManager.cxx501
-rw-r--r--forms/source/component/GroupManager.hxx228
-rw-r--r--forms/source/component/Hidden.cxx190
-rw-r--r--forms/source/component/Hidden.hxx84
-rw-r--r--forms/source/component/ImageButton.cxx273
-rw-r--r--forms/source/component/ImageButton.hxx107
-rw-r--r--forms/source/component/ImageControl.cxx949
-rw-r--r--forms/source/component/ImageControl.hxx201
-rw-r--r--forms/source/component/ListBox.cxx1844
-rw-r--r--forms/source/component/ListBox.hxx280
-rw-r--r--forms/source/component/Numeric.cxx222
-rw-r--r--forms/source/component/Numeric.hxx99
-rw-r--r--forms/source/component/Pattern.cxx262
-rw-r--r--forms/source/component/Pattern.hxx108
-rw-r--r--forms/source/component/RadioButton.cxx411
-rw-r--r--forms/source/component/RadioButton.hxx111
-rw-r--r--forms/source/component/Time.cxx365
-rw-r--r--forms/source/component/Time.hxx133
-rw-r--r--forms/source/component/cachedrowset.cxx202
-rw-r--r--forms/source/component/cachedrowset.hxx97
-rw-r--r--forms/source/component/clickableimage.cxx935
-rw-r--r--forms/source/component/clickableimage.hxx295
-rw-r--r--forms/source/component/cloneable.cxx68
-rw-r--r--forms/source/component/entrylisthelper.cxx321
-rw-r--r--forms/source/component/entrylisthelper.hxx198
-rw-r--r--forms/source/component/errorbroadcaster.cxx113
-rw-r--r--forms/source/component/errorbroadcaster.hxx74
-rw-r--r--forms/source/component/findpos.cxx57
-rw-r--r--forms/source/component/findpos.hxx45
-rw-r--r--forms/source/component/formcontrolfont.cxx551
-rw-r--r--forms/source/component/imgprod.cxx655
-rw-r--r--forms/source/component/imgprod.hxx121
-rw-r--r--forms/source/component/makefile.mk95
-rw-r--r--forms/source/component/navigationbar.cxx509
-rw-r--r--forms/source/component/navigationbar.hxx138
-rw-r--r--forms/source/component/propertybaghelper.cxx369
-rw-r--r--forms/source/component/refvaluecomponent.cxx301
-rw-r--r--forms/source/component/refvaluecomponent.hxx109
-rw-r--r--forms/source/component/scrollbar.cxx319
-rw-r--r--forms/source/component/scrollbar.hxx101
-rw-r--r--forms/source/component/spinbutton.cxx275
-rw-r--r--forms/source/component/spinbutton.hxx101
-rw-r--r--forms/source/helper/commanddescriptionprovider.cxx140
-rw-r--r--forms/source/helper/commandimageprovider.cxx181
-rw-r--r--forms/source/helper/controlfeatureinterception.cxx170
-rw-r--r--forms/source/helper/formnavigation.cxx484
-rw-r--r--forms/source/helper/makefile.mk58
-rw-r--r--forms/source/helper/resettable.cxx102
-rw-r--r--forms/source/helper/urltransformer.cxx102
-rw-r--r--forms/source/helper/windowstateguard.cxx226
-rw-r--r--forms/source/inc/FormComponent.hxx1298
-rw-r--r--forms/source/inc/InterfaceContainer.hxx328
-rw-r--r--forms/source/inc/cloneable.hxx55
-rw-r--r--forms/source/inc/commanddescriptionprovider.hxx69
-rw-r--r--forms/source/inc/commandimageprovider.hxx78
-rw-r--r--forms/source/inc/componenttools.hxx103
-rw-r--r--forms/source/inc/controlfeatureinterception.hxx100
-rw-r--r--forms/source/inc/featuredispatcher.hxx110
-rw-r--r--forms/source/inc/formcontrolfont.hxx101
-rw-r--r--forms/source/inc/formnavigation.hxx235
-rw-r--r--forms/source/inc/forms_module.hxx332
-rw-r--r--forms/source/inc/forms_module_impl.hxx209
-rw-r--r--forms/source/inc/frm_module.hxx37
-rw-r--r--forms/source/inc/frm_resource.hrc108
-rw-r--r--forms/source/inc/frm_resource.hxx77
-rw-r--r--forms/source/inc/frm_strings.hxx360
-rw-r--r--forms/source/inc/ids.hxx36
-rw-r--r--forms/source/inc/limitedformats.hxx105
-rw-r--r--forms/source/inc/listenercontainers.hxx140
-rw-r--r--forms/source/inc/property.hrc316
-rw-r--r--forms/source/inc/property.hxx236
-rw-r--r--forms/source/inc/propertybaghelper.hxx166
-rw-r--r--forms/source/inc/resettable.hxx76
-rw-r--r--forms/source/inc/services.hxx233
-rw-r--r--forms/source/inc/togglestate.hxx44
-rw-r--r--forms/source/inc/urltransformer.hxx86
-rw-r--r--forms/source/inc/windowstateguard.hxx83
-rw-r--r--forms/source/misc/InterfaceContainer.cxx1358
-rw-r--r--forms/source/misc/componenttools.cxx111
-rw-r--r--forms/source/misc/frm_module.cxx36
-rw-r--r--forms/source/misc/frm_strings.cxx34
-rw-r--r--forms/source/misc/ids.cxx36
-rw-r--r--forms/source/misc/limitedformats.cxx402
-rw-r--r--forms/source/misc/listenercontainers.cxx72
-rw-r--r--forms/source/misc/makefile.mk70
-rw-r--r--forms/source/misc/property.cxx257
-rw-r--r--forms/source/misc/services.cxx464
-rw-r--r--forms/source/resource/frm_resource.cxx89
-rw-r--r--forms/source/resource/makefile.mk49
-rw-r--r--forms/source/resource/strings.src161
-rw-r--r--forms/source/resource/xforms.src196
-rw-r--r--forms/source/richtext/attributedispatcher.cxx138
-rw-r--r--forms/source/richtext/attributedispatcher.hxx104
-rw-r--r--forms/source/richtext/clipboarddispatcher.cxx208
-rw-r--r--forms/source/richtext/clipboarddispatcher.hxx107
-rw-r--r--forms/source/richtext/featuredispatcher.cxx157
-rw-r--r--forms/source/richtext/featuredispatcher.hxx107
-rw-r--r--forms/source/richtext/makefile.mk60
-rw-r--r--forms/source/richtext/parametrizedattributedispatcher.cxx143
-rw-r--r--forms/source/richtext/parametrizedattributedispatcher.hxx75
-rw-r--r--forms/source/richtext/richtextcontrol.cxx766
-rw-r--r--forms/source/richtext/richtextcontrol.hxx163
-rw-r--r--forms/source/richtext/richtextengine.cxx162
-rw-r--r--forms/source/richtext/richtextengine.hxx91
-rw-r--r--forms/source/richtext/richtextimplcontrol.cxx680
-rw-r--r--forms/source/richtext/richtextimplcontrol.hxx196
-rw-r--r--forms/source/richtext/richtextmodel.cxx638
-rw-r--r--forms/source/richtext/richtextmodel.hxx194
-rw-r--r--forms/source/richtext/richtextunowrapper.cxx136
-rw-r--r--forms/source/richtext/richtextunowrapper.hxx98
-rw-r--r--forms/source/richtext/richtextvclcontrol.cxx392
-rw-r--r--forms/source/richtext/richtextvclcontrol.hxx143
-rw-r--r--forms/source/richtext/richtextviewport.cxx127
-rw-r--r--forms/source/richtext/richtextviewport.hxx80
-rw-r--r--forms/source/richtext/rtattributehandler.cxx532
-rw-r--r--forms/source/richtext/rtattributehandler.hxx240
-rw-r--r--forms/source/richtext/rtattributes.hxx172
-rw-r--r--forms/source/richtext/specialdispatchers.cxx200
-rw-r--r--forms/source/richtext/specialdispatchers.hxx113
-rw-r--r--forms/source/richtext/textattributelistener.hxx61
-rw-r--r--forms/source/runtime/formoperations.cxx1719
-rw-r--r--forms/source/runtime/formoperations.hxx379
-rw-r--r--forms/source/runtime/makefile.mk47
-rw-r--r--forms/source/solar/component/makefile.mk51
-rw-r--r--forms/source/solar/component/navbarcontrol.cxx564
-rw-r--r--forms/source/solar/component/navbarcontrol.hxx162
-rw-r--r--forms/source/solar/control/makefile.mk53
-rw-r--r--forms/source/solar/control/navtoolbar.cxx736
-rw-r--r--forms/source/solar/inc/navtoolbar.hxx194
-rw-r--r--forms/source/xforms/NameContainer.hxx221
-rw-r--r--forms/source/xforms/binding.cxx1409
-rw-r--r--forms/source/xforms/binding.hxx527
-rw-r--r--forms/source/xforms/boolexpression.cxx59
-rw-r--r--forms/source/xforms/boolexpression.hxx55
-rw-r--r--forms/source/xforms/collection.hxx337
-rw-r--r--forms/source/xforms/computedexpression.cxx246
-rw-r--r--forms/source/xforms/computedexpression.hxx138
-rw-r--r--forms/source/xforms/convert.cxx627
-rw-r--r--forms/source/xforms/convert.hxx113
-rw-r--r--forms/source/xforms/datatyperepository.cxx298
-rw-r--r--forms/source/xforms/datatyperepository.hxx98
-rw-r--r--forms/source/xforms/datatypes.cxx995
-rw-r--r--forms/source/xforms/datatypes.hxx424
-rw-r--r--forms/source/xforms/datatypes_impl.hxx76
-rw-r--r--forms/source/xforms/enumeration.cxx74
-rw-r--r--forms/source/xforms/enumeration.hxx63
-rw-r--r--forms/source/xforms/evaluationcontext.hxx75
-rw-r--r--forms/source/xforms/makefile.mk66
-rw-r--r--forms/source/xforms/mip.cxx126
-rw-r--r--forms/source/xforms/mip.hxx122
-rw-r--r--forms/source/xforms/model.cxx808
-rw-r--r--forms/source/xforms/model.hxx435
-rw-r--r--forms/source/xforms/model_helper.hxx167
-rw-r--r--forms/source/xforms/model_ui.cxx1066
-rw-r--r--forms/source/xforms/namedcollection.hxx142
-rw-r--r--forms/source/xforms/pathexpression.cxx154
-rw-r--r--forms/source/xforms/pathexpression.hxx91
-rw-r--r--forms/source/xforms/propertysetbase.cxx192
-rw-r--r--forms/source/xforms/propertysetbase.hxx371
-rw-r--r--forms/source/xforms/resourcehelper.cxx79
-rw-r--r--forms/source/xforms/resourcehelper.hxx52
-rw-r--r--forms/source/xforms/submission.cxx719
-rw-r--r--forms/source/xforms/submission.hxx276
-rw-r--r--forms/source/xforms/submission/makefile.mk57
-rw-r--r--forms/source/xforms/submission/replace.cxx145
-rw-r--r--forms/source/xforms/submission/serialization.hxx98
-rw-r--r--forms/source/xforms/submission/serialization_app_xml.cxx121
-rw-r--r--forms/source/xforms/submission/serialization_app_xml.hxx55
-rw-r--r--forms/source/xforms/submission/serialization_multi_form.hxx27
-rw-r--r--forms/source/xforms/submission/serialization_multi_related.hxx27
-rw-r--r--forms/source/xforms/submission/serialization_urlencoded.cxx210
-rw-r--r--forms/source/xforms/submission/serialization_urlencoded.hxx56
-rw-r--r--forms/source/xforms/submission/submission.hxx160
-rw-r--r--forms/source/xforms/submission/submission_get.cxx117
-rw-r--r--forms/source/xforms/submission/submission_get.hxx44
-rw-r--r--forms/source/xforms/submission/submission_post.cxx105
-rw-r--r--forms/source/xforms/submission/submission_post.hxx40
-rw-r--r--forms/source/xforms/submission/submission_put.cxx81
-rw-r--r--forms/source/xforms/submission/submission_put.hxx44
-rw-r--r--forms/source/xforms/unohelper.cxx103
-rw-r--r--forms/source/xforms/unohelper.hxx57
-rw-r--r--forms/source/xforms/warnings_guard_unicode_regex.h48
-rw-r--r--forms/source/xforms/xforms_services.cxx72
-rw-r--r--forms/source/xforms/xforms_services.hxx27
-rw-r--r--forms/source/xforms/xformsevent.cxx100
-rw-r--r--forms/source/xforms/xformsevent.hxx66
-rw-r--r--forms/source/xforms/xmlhelper.cxx148
-rw-r--r--forms/source/xforms/xmlhelper.hxx51
-rw-r--r--forms/source/xforms/xpathlib/extension.cxx104
-rw-r--r--forms/source/xforms/xpathlib/extension.hxx39
-rw-r--r--forms/source/xforms/xpathlib/makefile.mk56
-rw-r--r--forms/source/xforms/xpathlib/xpathlib.cxx567
-rw-r--r--forms/source/xforms/xpathlib/xpathlib.hxx83
-rw-r--r--forms/util/frm.dxp3
-rw-r--r--forms/util/frm.map8
-rw-r--r--forms/util/frm.xml571
-rw-r--r--forms/util/makefile.mk114
-rw-r--r--forms/workben/xforms/sickness.odtbin0 -> 9233 bytes
-rw-r--r--forms/workben/xforms/simple_validation.odtbin0 -> 7184 bytes
-rw-r--r--forms/workben/xforms/vacationrequest.odtbin0 -> 8089 bytes
-rw-r--r--forms/workben/xforms/xforms-ubl.odtbin0 -> 22265 bytes
-rw-r--r--formula/inc/AddressConvention.hxx39
-rw-r--r--formula/inc/formula/ExternalReferenceHelper.hxx45
-rw-r--r--formula/inc/formula/FormulaCompiler.hxx381
-rw-r--r--formula/inc/formula/FormulaOpCodeMapperObj.hxx86
-rw-r--r--formula/inc/formula/IControlReferenceHandler.hxx45
-rw-r--r--formula/inc/formula/IFunctionDescription.hxx163
-rw-r--r--formula/inc/formula/compiler.hrc410
-rw-r--r--formula/inc/formula/errorcodes.hxx112
-rw-r--r--formula/inc/formula/formdata.hxx91
-rw-r--r--formula/inc/formula/formula.hxx157
-rw-r--r--formula/inc/formula/formuladllapi.h41
-rw-r--r--formula/inc/formula/formulahelper.hxx86
-rw-r--r--formula/inc/formula/funcutl.hxx106
-rw-r--r--formula/inc/formula/grammar.hxx236
-rw-r--r--formula/inc/formula/intruref.hxx101
-rw-r--r--formula/inc/formula/opcode.hxx409
-rw-r--r--formula/inc/formula/token.hxx399
-rw-r--r--formula/inc/formula/tokenarray.hxx286
-rw-r--r--formula/inc/helpids.hrc62
-rw-r--r--formula/inc/makefile.mk47
-rw-r--r--formula/inc/pch/precompiled_formula.cxx29
-rw-r--r--formula/inc/pch/precompiled_formula.hxx36
-rw-r--r--formula/prj/build.lst9
-rw-r--r--formula/prj/d.lst37
-rw-r--r--formula/prj/for.xml14
-rw-r--r--formula/source/core/api/FormulaCompiler.cxx1859
-rw-r--r--formula/source/core/api/FormulaOpCodeMapperObj.cxx126
-rw-r--r--formula/source/core/api/makefile.mk47
-rw-r--r--formula/source/core/api/services.cxx75
-rw-r--r--formula/source/core/api/token.cxx1378
-rw-r--r--formula/source/core/inc/core_resource.hrc45
-rw-r--r--formula/source/core/inc/core_resource.hxx111
-rw-r--r--formula/source/core/resource/core_resource.cxx108
-rw-r--r--formula/source/core/resource/core_resource.src1878
-rw-r--r--formula/source/core/resource/makefile.mk48
-rw-r--r--formula/source/ui/dlg/ControlHelper.hxx193
-rw-r--r--formula/source/ui/dlg/FormulaHelper.cxx406
-rw-r--r--formula/source/ui/dlg/formdlgs.hrc80
-rw-r--r--formula/source/ui/dlg/formdlgs.src536
-rw-r--r--formula/source/ui/dlg/formula.cxx2237
-rw-r--r--formula/source/ui/dlg/funcpage.cxx265
-rw-r--r--formula/source/ui/dlg/funcpage.hxx123
-rw-r--r--formula/source/ui/dlg/funcutl.cxx1106
-rw-r--r--formula/source/ui/dlg/makefile.mk66
-rw-r--r--formula/source/ui/dlg/parawin.cxx600
-rw-r--r--formula/source/ui/dlg/parawin.hrc54
-rw-r--r--formula/source/ui/dlg/parawin.hxx174
-rw-r--r--formula/source/ui/dlg/parawin.src189
-rw-r--r--formula/source/ui/dlg/structpg.cxx227
-rw-r--r--formula/source/ui/dlg/structpg.hxx123
-rw-r--r--formula/source/ui/inc/ForResId.hrc74
-rw-r--r--formula/source/ui/inc/ModuleHelper.hxx99
-rw-r--r--formula/source/ui/resource/ModuleHelper.cxx142
-rw-r--r--formula/source/ui/resource/makefile.mk49
-rw-r--r--formula/util/for.map8
-rw-r--r--formula/util/forui.map8
-rw-r--r--formula/util/hh.html190
-rw-r--r--formula/util/hidother.src54
-rw-r--r--formula/util/makefile.mk139
-rw-r--r--formula/util/makefile.pmk42
-rw-r--r--fpicker/inc/makefile.mk47
-rw-r--r--fpicker/inc/pch/precompiled_fpicker.cxx29
-rw-r--r--fpicker/inc/pch/precompiled_fpicker.hxx33
-rw-r--r--fpicker/prj/build.lst11
-rw-r--r--fpicker/prj/d.lst14
-rw-r--r--fpicker/source/aqua/AquaFilePickerDelegate.hxx57
-rw-r--r--fpicker/source/aqua/AquaFilePickerDelegate.mm123
-rw-r--r--fpicker/source/aqua/CFStringUtilities.cxx121
-rw-r--r--fpicker/source/aqua/CFStringUtilities.hxx161
-rw-r--r--fpicker/source/aqua/ControlHelper.cxx1019
-rw-r--r--fpicker/source/aqua/ControlHelper.hxx195
-rw-r--r--fpicker/source/aqua/FPServiceInfo.hxx50
-rw-r--r--fpicker/source/aqua/FPentry.cxx171
-rw-r--r--fpicker/source/aqua/FilterHelper.cxx540
-rw-r--r--fpicker/source/aqua/FilterHelper.hxx160
-rw-r--r--fpicker/source/aqua/NSString_OOoAdditions.hxx44
-rw-r--r--fpicker/source/aqua/NSString_OOoAdditions.mm77
-rw-r--r--fpicker/source/aqua/NSURL_OOoAdditions.hxx43
-rw-r--r--fpicker/source/aqua/NSURL_OOoAdditions.mm82
-rw-r--r--fpicker/source/aqua/SalAquaConstants.h63
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.cxx812
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.hxx252
-rw-r--r--fpicker/source/aqua/SalAquaFolderPicker.cxx289
-rw-r--r--fpicker/source/aqua/SalAquaFolderPicker.hxx138
-rw-r--r--fpicker/source/aqua/SalAquaPicker.cxx267
-rw-r--r--fpicker/source/aqua/SalAquaPicker.hxx106
-rw-r--r--fpicker/source/aqua/exports.map8
-rw-r--r--fpicker/source/aqua/fps-aqua-ucd.txt13
-rw-r--r--fpicker/source/aqua/fps_aqua.xml78
-rw-r--r--fpicker/source/aqua/makefile.mk85
-rw-r--r--fpicker/source/aqua/resourceprovider.cxx240
-rw-r--r--fpicker/source/aqua/resourceprovider.hxx67
-rw-r--r--fpicker/source/generic/exports.map8
-rw-r--r--fpicker/source/generic/fpicker.cxx233
-rw-r--r--fpicker/source/generic/makefile.mk62
-rw-r--r--fpicker/source/office/OfficeControlAccess.cxx791
-rw-r--r--fpicker/source/office/OfficeControlAccess.hxx125
-rw-r--r--fpicker/source/office/OfficeFilePicker.cxx1186
-rw-r--r--fpicker/source/office/OfficeFilePicker.hxx230
-rw-r--r--fpicker/source/office/OfficeFilePicker.src99
-rw-r--r--fpicker/source/office/OfficeFolderPicker.cxx265
-rw-r--r--fpicker/source/office/OfficeFolderPicker.hxx122
-rw-r--r--fpicker/source/office/asyncfilepicker.cxx220
-rw-r--r--fpicker/source/office/asyncfilepicker.hxx118
-rw-r--r--fpicker/source/office/commonpicker.cxx506
-rw-r--r--fpicker/source/office/commonpicker.hxx209
-rw-r--r--fpicker/source/office/exports.map8
-rw-r--r--fpicker/source/office/fpinteraction.cxx169
-rw-r--r--fpicker/source/office/fpinteraction.hxx92
-rw-r--r--fpicker/source/office/fps_office.cxx80
-rw-r--r--fpicker/source/office/fpsmartcontent.cxx308
-rw-r--r--fpicker/source/office/fpsmartcontent.hxx212
-rw-r--r--fpicker/source/office/iodlg.cxx3479
-rw-r--r--fpicker/source/office/iodlg.hrc107
-rw-r--r--fpicker/source/office/iodlg.hxx475
-rw-r--r--fpicker/source/office/iodlg.src318
-rw-r--r--fpicker/source/office/iodlgimp.cxx510
-rw-r--r--fpicker/source/office/iodlgimp.hxx339
-rw-r--r--fpicker/source/office/makefile.mk88
-rw-r--r--fpicker/source/office/pickercallbacks.hxx62
-rw-r--r--fpicker/source/unx/gnome/FPServiceInfo.hxx50
-rw-r--r--fpicker/source/unx/gnome/FPentry.cxx181
-rw-r--r--fpicker/source/unx/gnome/SalGtkFilePicker.cxx2045
-rw-r--r--fpicker/source/unx/gnome/SalGtkFilePicker.hxx356
-rw-r--r--fpicker/source/unx/gnome/SalGtkFolderPicker.cxx241
-rw-r--r--fpicker/source/unx/gnome/SalGtkFolderPicker.hxx135
-rw-r--r--fpicker/source/unx/gnome/SalGtkPicker.cxx240
-rw-r--r--fpicker/source/unx/gnome/SalGtkPicker.hxx114
-rw-r--r--fpicker/source/unx/gnome/eventnotification.hxx53
-rw-r--r--fpicker/source/unx/gnome/exports.map8
-rw-r--r--fpicker/source/unx/gnome/fps-gnome-ucd.txt13
-rw-r--r--fpicker/source/unx/gnome/fps_gnome.xml79
-rw-r--r--fpicker/source/unx/gnome/makefile.mk98
-rw-r--r--fpicker/source/unx/gnome/resourceprovider.cxx227
-rw-r--r--fpicker/source/unx/gnome/resourceprovider.hxx67
-rw-r--r--fpicker/source/unx/kde4/FPServiceInfo.hxx40
-rw-r--r--fpicker/source/unx/kde4/KDE4FPEntry.cxx102
-rw-r--r--fpicker/source/unx/kde4/KDE4FilePicker.cxx734
-rw-r--r--fpicker/source/unx/kde4/KDE4FilePicker.hxx171
-rw-r--r--fpicker/source/unx/kde4/fps-kde4-ucd.txt6
-rw-r--r--fpicker/source/unx/kde4/fps_kde4.xml51
-rw-r--r--fpicker/source/unx/kde4/makefile.mk82
-rw-r--r--fpicker/source/win32/filepicker/FPServiceInfo.hxx77
-rw-r--r--fpicker/source/win32/filepicker/FPentry.cxx157
-rw-r--r--fpicker/source/win32/filepicker/FileOpenDlg.cxx695
-rw-r--r--fpicker/source/win32/filepicker/FileOpenDlg.hxx327
-rw-r--r--fpicker/source/win32/filepicker/FilePicker.cxx799
-rw-r--r--fpicker/source/win32/filepicker/FilePicker.hxx255
-rw-r--r--fpicker/source/win32/filepicker/FilterContainer.cxx337
-rw-r--r--fpicker/source/win32/filepicker/FilterContainer.hxx115
-rw-r--r--fpicker/source/win32/filepicker/Fps.rc438
-rw-r--r--fpicker/source/win32/filepicker/IVistaFilePickerInternalNotify.hxx75
-rw-r--r--fpicker/source/win32/filepicker/PreviewCtrl.cxx615
-rw-r--r--fpicker/source/win32/filepicker/PreviewCtrl.hxx199
-rw-r--r--fpicker/source/win32/filepicker/SolarMutex.cxx55
-rw-r--r--fpicker/source/win32/filepicker/SolarMutex.hxx30
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePicker.cxx725
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePicker.hxx315
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerEventHandler.cxx499
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerEventHandler.hxx225
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx1208
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx351
-rw-r--r--fpicker/source/win32/filepicker/WinFileOpenImpl.cxx996
-rw-r--r--fpicker/source/win32/filepicker/WinFileOpenImpl.hxx234
-rw-r--r--fpicker/source/win32/filepicker/afxres.h2
-rw-r--r--fpicker/source/win32/filepicker/asynceventnotifier.cxx327
-rw-r--r--fpicker/source/win32/filepicker/asynceventnotifier.hxx109
-rw-r--r--fpicker/source/win32/filepicker/asyncrequests.cxx228
-rw-r--r--fpicker/source/win32/filepicker/asyncrequests.hxx227
-rw-r--r--fpicker/source/win32/filepicker/comptr.hxx222
-rw-r--r--fpicker/source/win32/filepicker/controlaccess.cxx261
-rw-r--r--fpicker/source/win32/filepicker/controlaccess.hxx80
-rw-r--r--fpicker/source/win32/filepicker/controlcommand.cxx282
-rw-r--r--fpicker/source/win32/filepicker/controlcommand.hxx143
-rw-r--r--fpicker/source/win32/filepicker/controlcommandrequest.hxx86
-rw-r--r--fpicker/source/win32/filepicker/controlcommandresult.hxx108
-rw-r--r--fpicker/source/win32/filepicker/customcontrol.cxx67
-rw-r--r--fpicker/source/win32/filepicker/customcontrol.hxx60
-rw-r--r--fpicker/source/win32/filepicker/customcontrolcontainer.cxx143
-rw-r--r--fpicker/source/win32/filepicker/customcontrolcontainer.hxx60
-rw-r--r--fpicker/source/win32/filepicker/customcontrolfactory.cxx86
-rw-r--r--fpicker/source/win32/filepicker/customcontrolfactory.hxx61
-rw-r--r--fpicker/source/win32/filepicker/dialogcustomcontrols.cxx195
-rw-r--r--fpicker/source/win32/filepicker/dialogcustomcontrols.hxx123
-rw-r--r--fpicker/source/win32/filepicker/dibpreview.cxx472
-rw-r--r--fpicker/source/win32/filepicker/dibpreview.hxx116
-rw-r--r--fpicker/source/win32/filepicker/eventnotification.hxx53
-rw-r--r--fpicker/source/win32/filepicker/filepickereventnotification.cxx84
-rw-r--r--fpicker/source/win32/filepicker/filepickereventnotification.hxx73
-rw-r--r--fpicker/source/win32/filepicker/filepickerstate.cxx717
-rw-r--r--fpicker/source/win32/filepicker/filepickerstate.hxx162
-rw-r--r--fpicker/source/win32/filepicker/fps.xml51
-rw-r--r--fpicker/source/win32/filepicker/getfilenamewrapper.cxx296
-rw-r--r--fpicker/source/win32/filepicker/getfilenamewrapper.hxx66
-rw-r--r--fpicker/source/win32/filepicker/helppopupwindow.cxx615
-rw-r--r--fpicker/source/win32/filepicker/helppopupwindow.hxx143
-rw-r--r--fpicker/source/win32/filepicker/makefile.mk83
-rw-r--r--fpicker/source/win32/filepicker/platform_vista.h87
-rw-r--r--fpicker/source/win32/filepicker/platform_xp.h55
-rw-r--r--fpicker/source/win32/filepicker/previewadapter.cxx713
-rw-r--r--fpicker/source/win32/filepicker/previewadapter.hxx107
-rw-r--r--fpicker/source/win32/filepicker/previewbase.cxx150
-rw-r--r--fpicker/source/win32/filepicker/previewbase.hxx88
-rw-r--r--fpicker/source/win32/filepicker/propmap.hxx101
-rw-r--r--fpicker/source/win32/filepicker/resource.h21
-rw-r--r--fpicker/source/win32/filepicker/shared.hxx38
-rw-r--r--fpicker/source/win32/filepicker/vistatypes.h68
-rw-r--r--fpicker/source/win32/filepicker/workbench/Test_fps.cxx387
-rw-r--r--fpicker/source/win32/filepicker/workbench/makefile.mk62
-rw-r--r--fpicker/source/win32/folderpicker/FOPServiceInfo.hxx54
-rw-r--r--fpicker/source/win32/folderpicker/FolderPicker.cxx219
-rw-r--r--fpicker/source/win32/folderpicker/FolderPicker.hxx129
-rw-r--r--fpicker/source/win32/folderpicker/FopEvtDisp.hxx45
-rw-r--r--fpicker/source/win32/folderpicker/Fopentry.cxx144
-rw-r--r--fpicker/source/win32/folderpicker/MtaFop.cxx839
-rw-r--r--fpicker/source/win32/folderpicker/MtaFop.hxx191
-rw-r--r--fpicker/source/win32/folderpicker/WinFOPImpl.cxx168
-rw-r--r--fpicker/source/win32/folderpicker/WinFOPImpl.hxx83
-rw-r--r--fpicker/source/win32/folderpicker/fop.xml40
-rw-r--r--fpicker/source/win32/folderpicker/makefile.mk51
-rw-r--r--fpicker/source/win32/folderpicker/workbench/Test_fops.cxx203
-rw-r--r--fpicker/source/win32/folderpicker/workbench/makefile.mk62
-rw-r--r--fpicker/source/win32/misc/AutoBuffer.cxx169
-rw-r--r--fpicker/source/win32/misc/AutoBuffer.hxx82
-rw-r--r--fpicker/source/win32/misc/WinImplHelper.cxx610
-rw-r--r--fpicker/source/win32/misc/WinImplHelper.hxx123
-rw-r--r--fpicker/source/win32/misc/makefile.mk57
-rw-r--r--fpicker/source/win32/misc/resourceprovider.cxx194
-rw-r--r--fpicker/source/win32/misc/resourceprovider.hxx60
-rw-r--r--fpicker/test/makefile.mk106
-rw-r--r--fpicker/test/svdem.cxx217
-rw-r--r--fpicker/util/exports.dxp3
-rw-r--r--fpicker/util/makefile.mk102
-rw-r--r--framework/dtd/accelerator.dtd44
-rw-r--r--framework/dtd/event.dtd45
-rw-r--r--framework/dtd/groupuinames.dtd35
-rw-r--r--framework/dtd/image.dtd67
-rw-r--r--framework/dtd/menubar.dtd46
-rw-r--r--framework/dtd/statusbar.dtd48
-rw-r--r--framework/dtd/toolbar.dtd67
-rw-r--r--framework/inc/acceleratorconst.h88
-rw-r--r--framework/inc/arguments.h173
-rw-r--r--framework/inc/classes/actiontriggercontainer.hxx77
-rw-r--r--framework/inc/classes/actiontriggerpropertyset.hxx133
-rw-r--r--framework/inc/classes/actiontriggerseparatorpropertyset.hxx115
-rw-r--r--framework/inc/classes/addonmenu.hxx140
-rw-r--r--framework/inc/classes/addonsoptions.hxx374
-rw-r--r--framework/inc/classes/bmkmenu.hxx81
-rw-r--r--framework/inc/classes/checkediterator.hxx345
-rw-r--r--framework/inc/classes/converter.hxx91
-rw-r--r--framework/inc/classes/droptargetlistener.hxx108
-rw-r--r--framework/inc/classes/filtercache.hxx447
-rw-r--r--framework/inc/classes/filtercachedata.hxx859
-rw-r--r--framework/inc/classes/framecontainer.hxx151
-rw-r--r--framework/inc/classes/framelistanalyzer.hxx220
-rw-r--r--framework/inc/classes/fwkresid.hxx46
-rw-r--r--framework/inc/classes/fwktabwindow.hxx135
-rwxr-xr-xframework/inc/classes/fwlresid.hxx46
-rw-r--r--framework/inc/classes/imagewrapper.hxx70
-rw-r--r--framework/inc/classes/menuextensionsupplier.hxx50
-rw-r--r--framework/inc/classes/menumanager.hxx167
-rw-r--r--framework/inc/classes/propertysethelper.hxx257
-rw-r--r--framework/inc/classes/protocolhandlercache.hxx199
-rw-r--r--framework/inc/classes/resource.hrc86
-rw-r--r--framework/inc/classes/rootactiontriggercontainer.hxx127
-rw-r--r--framework/inc/classes/servicemanager.hxx280
-rw-r--r--framework/inc/classes/sfxhelperfunctions.hxx68
-rw-r--r--framework/inc/classes/taskcreator.hxx102
-rw-r--r--framework/inc/classes/wildcard.hxx184
-rw-r--r--framework/inc/classes/xmlnamespaces.hxx65
-rw-r--r--framework/inc/commands.h56
-rw-r--r--framework/inc/dispatch/basedispatcher.hxx391
-rw-r--r--framework/inc/dispatch/blankdispatcher.hxx129
-rw-r--r--framework/inc/dispatch/closedispatcher.hxx322
-rw-r--r--framework/inc/dispatch/createdispatcher.hxx127
-rw-r--r--framework/inc/dispatch/dispatchinformationprovider.hxx111
-rw-r--r--framework/inc/dispatch/dispatchprovider.hxx173
-rw-r--r--framework/inc/dispatch/helpagentdispatcher.hxx205
-rw-r--r--framework/inc/dispatch/interaction.hxx325
-rw-r--r--framework/inc/dispatch/interceptionhelper.hxx326
-rw-r--r--framework/inc/dispatch/mailtodispatcher.hxx145
-rw-r--r--framework/inc/dispatch/menudispatcher.hxx336
-rw-r--r--framework/inc/dispatch/oxt_handler.hxx215
-rw-r--r--framework/inc/dispatch/popupmenudispatcher.hxx199
-rw-r--r--framework/inc/dispatch/selfdispatcher.hxx112
-rw-r--r--framework/inc/dispatch/servicehandler.hxx149
-rw-r--r--framework/inc/dispatch/startmoduledispatcher.hxx197
-rw-r--r--framework/inc/dispatch/systemexec.hxx145
-rw-r--r--framework/inc/dispatchcommands.h52
-rw-r--r--framework/inc/filterflags.h172
-rw-r--r--framework/inc/framework.hrc85
-rw-r--r--framework/inc/general.h82
-rw-r--r--framework/inc/helper/acceleratorinfo.hxx49
-rw-r--r--framework/inc/helper/actiontriggerhelper.hxx78
-rw-r--r--framework/inc/helper/configimporter.hxx52
-rw-r--r--framework/inc/helper/dockingareadefaultacceptor.hxx111
-rw-r--r--framework/inc/helper/fixeddocumentproperties.hxx57
-rw-r--r--framework/inc/helper/imageproducer.hxx50
-rw-r--r--framework/inc/helper/mischelper.hxx69
-rw-r--r--framework/inc/helper/networkdomain.hxx45
-rw-r--r--framework/inc/helper/ocomponentaccess.hxx275
-rw-r--r--framework/inc/helper/ocomponentenumeration.hxx262
-rw-r--r--framework/inc/helper/oframes.hxx355
-rw-r--r--framework/inc/helper/otasksaccess.hxx254
-rw-r--r--framework/inc/helper/otasksenumeration.hxx272
-rw-r--r--framework/inc/helper/persistentwindowstate.hxx227
-rw-r--r--framework/inc/helper/popupmenucontrollerbase.hxx145
-rw-r--r--framework/inc/helper/propertysetcontainer.hxx97
-rw-r--r--framework/inc/helper/shareablemutex.hxx95
-rw-r--r--framework/inc/helper/statusindicator.hxx142
-rw-r--r--framework/inc/helper/statusindicatorfactory.hxx341
-rw-r--r--framework/inc/helper/tagwindowasmodified.hxx157
-rw-r--r--framework/inc/helper/timerhelper.hxx53
-rw-r--r--framework/inc/helper/titlebarupdate.hxx249
-rw-r--r--framework/inc/helper/titlehelper.hxx227
-rw-r--r--framework/inc/helper/uiconfigelementwrapperbase.hxx158
-rw-r--r--framework/inc/helper/uielementwrapperbase.hxx127
-rw-r--r--framework/inc/helper/vclstatusindicator.hxx133
-rw-r--r--framework/inc/helper/wakeupthread.hxx100
-rw-r--r--framework/inc/helpid.hrc51
-rw-r--r--framework/inc/interaction/preventduplicateinteraction.hxx247
-rw-r--r--framework/inc/interaction/quietinteraction.hxx164
-rw-r--r--framework/inc/jobs/configaccess.hxx117
-rw-r--r--framework/inc/jobs/helponstartup.hxx231
-rw-r--r--framework/inc/jobs/job.hxx247
-rw-r--r--framework/inc/jobs/jobconst.hxx73
-rw-r--r--framework/inc/jobs/jobdata.hxx285
-rw-r--r--framework/inc/jobs/jobdispatch.hxx158
-rw-r--r--framework/inc/jobs/jobexecutor.hxx129
-rw-r--r--framework/inc/jobs/jobresult.hxx147
-rw-r--r--framework/inc/jobs/joburl.hxx177
-rw-r--r--framework/inc/jobs/shelljob.hxx169
-rw-r--r--framework/inc/loadstate.h115
-rw-r--r--framework/inc/macros/debug.hxx137
-rw-r--r--framework/inc/macros/debug/assertion.hxx235
-rw-r--r--framework/inc/macros/debug/event.hxx132
-rw-r--r--framework/inc/macros/debug/filterdbg.hxx130
-rw-r--r--framework/inc/macros/debug/logmechanism.hxx102
-rw-r--r--framework/inc/macros/debug/memorymeasure.hxx223
-rw-r--r--framework/inc/macros/debug/mutex.hxx117
-rw-r--r--framework/inc/macros/debug/plugin.hxx202
-rw-r--r--framework/inc/macros/debug/registration.hxx100
-rw-r--r--framework/inc/macros/debug/targeting.hxx252
-rw-r--r--framework/inc/macros/debug/timemeasure.hxx140
-rw-r--r--framework/inc/macros/generic.hxx78
-rw-r--r--framework/inc/macros/registration.hxx224
-rw-r--r--framework/inc/macros/xinterface.hxx708
-rw-r--r--framework/inc/macros/xserviceinfo.hxx272
-rw-r--r--framework/inc/macros/xtypeprovider.hxx714
-rw-r--r--framework/inc/makefile.mk47
-rw-r--r--framework/inc/mediadescriptor.h77
-rw-r--r--framework/inc/pch/precompiled_framework.cxx29
-rw-r--r--framework/inc/pch/precompiled_framework.hxx495
-rw-r--r--framework/inc/properties.h346
-rw-r--r--framework/inc/protocols.h157
-rw-r--r--framework/inc/queries.h403
-rw-r--r--framework/inc/recording/dispatchrecorder.hxx88
-rw-r--r--framework/inc/recording/dispatchrecordersupplier.hxx137
-rw-r--r--framework/inc/services.h218
-rw-r--r--framework/inc/services/autorecovery.hxx1015
-rw-r--r--framework/inc/services/backingcomp.hxx166
-rw-r--r--framework/inc/services/contenthandlerfactory.hxx242
-rw-r--r--framework/inc/services/desktop.hxx513
-rw-r--r--framework/inc/services/detectorfactory.hxx461
-rw-r--r--framework/inc/services/dispatchhelper.hxx135
-rw-r--r--framework/inc/services/frame.hxx480
-rw-r--r--framework/inc/services/frameloaderfactory.hxx388
-rw-r--r--framework/inc/services/layoutmanager.hxx522
-rw-r--r--framework/inc/services/license.hxx123
-rw-r--r--framework/inc/services/licensedlg.hxx104
-rw-r--r--framework/inc/services/logindialog.hrc52
-rw-r--r--framework/inc/services/logindialog.hxx890
-rw-r--r--framework/inc/services/mediatypedetectionhelper.hxx151
-rw-r--r--framework/inc/services/modulemanager.hxx201
-rw-r--r--framework/inc/services/pathsettings.hxx295
-rw-r--r--framework/inc/services/pluginframe.hxx375
-rw-r--r--framework/inc/services/sessionlistener.hxx188
-rw-r--r--framework/inc/services/substitutepathvars.hxx306
-rw-r--r--framework/inc/services/tabwindowservice.hxx232
-rw-r--r--framework/inc/services/task.hxx610
-rw-r--r--framework/inc/services/taskcreatorsrv.hxx167
-rw-r--r--framework/inc/services/uriabbreviation.hxx66
-rw-r--r--framework/inc/services/urltransformer.hxx223
-rw-r--r--framework/inc/stdtypes.h213
-rw-r--r--framework/inc/tabwin/tabwindow.hxx200
-rw-r--r--framework/inc/tabwin/tabwinfactory.hxx83
-rw-r--r--framework/inc/targets.h69
-rw-r--r--framework/inc/threadhelp/fairrwlock.hxx287
-rw-r--r--framework/inc/threadhelp/gate.hxx248
-rw-r--r--framework/inc/threadhelp/igate.h73
-rw-r--r--framework/inc/threadhelp/imutex.h67
-rw-r--r--framework/inc/threadhelp/inoncopyable.h77
-rw-r--r--framework/inc/threadhelp/irwlock.h87
-rw-r--r--framework/inc/threadhelp/itransactionmanager.h149
-rw-r--r--framework/inc/threadhelp/lockhelper.hxx179
-rw-r--r--framework/inc/threadhelp/readguard.hxx204
-rw-r--r--framework/inc/threadhelp/resetableguard.hxx200
-rw-r--r--framework/inc/threadhelp/threadhelpbase.hxx96
-rw-r--r--framework/inc/threadhelp/transactionbase.hxx85
-rw-r--r--framework/inc/threadhelp/transactionguard.hxx188
-rw-r--r--framework/inc/threadhelp/transactionmanager.hxx119
-rw-r--r--framework/inc/threadhelp/writeguard.hxx264
-rw-r--r--framework/inc/uiconfiguration/globalsettings.hxx97
-rw-r--r--framework/inc/uiconfiguration/graphicnameaccess.hxx74
-rw-r--r--framework/inc/uiconfiguration/imagemanager.hxx128
-rw-r--r--framework/inc/uiconfiguration/imagetype.hxx57
-rw-r--r--framework/inc/uiconfiguration/moduleimagemanager.hxx123
-rw-r--r--framework/inc/uiconfiguration/moduleuicfgsupplier.hxx119
-rw-r--r--framework/inc/uiconfiguration/moduleuiconfigurationmanager.hxx225
-rw-r--r--framework/inc/uiconfiguration/uicategorydescription.hxx74
-rw-r--r--framework/inc/uiconfiguration/uiconfigurationmanager.hxx210
-rw-r--r--framework/inc/uiconfiguration/windowstateconfiguration.hxx131
-rw-r--r--framework/inc/uielement/addonstoolbarmanager.hxx100
-rw-r--r--framework/inc/uielement/addonstoolbarwrapper.hxx79
-rw-r--r--framework/inc/uielement/buttontoolbarcontroller.hxx111
-rw-r--r--framework/inc/uielement/comboboxtoolbarcontroller.hxx96
-rw-r--r--framework/inc/uielement/commandinfo.hxx66
-rw-r--r--framework/inc/uielement/complextoolbarcontroller.hxx110
-rw-r--r--framework/inc/uielement/constitemcontainer.hxx137
-rw-r--r--framework/inc/uielement/controlmenucontroller.hxx112
-rw-r--r--framework/inc/uielement/dropdownboxtoolbarcontroller.hxx92
-rw-r--r--framework/inc/uielement/edittoolbarcontroller.hxx92
-rw-r--r--framework/inc/uielement/fontmenucontroller.hxx90
-rw-r--r--framework/inc/uielement/fontsizemenucontroller.hxx93
-rw-r--r--framework/inc/uielement/footermenucontroller.hxx57
-rw-r--r--framework/inc/uielement/generictoolbarcontroller.hxx99
-rw-r--r--framework/inc/uielement/headermenucontroller.hxx88
-rw-r--r--framework/inc/uielement/imagebuttontoolbarcontroller.hxx70
-rw-r--r--framework/inc/uielement/itemcontainer.hxx117
-rw-r--r--framework/inc/uielement/langselectionmenucontroller.hxx113
-rw-r--r--framework/inc/uielement/langselectionstatusbarcontroller.hxx102
-rw-r--r--framework/inc/uielement/logoimagestatusbarcontroller.hxx88
-rw-r--r--framework/inc/uielement/logotextstatusbarcontroller.hxx88
-rw-r--r--framework/inc/uielement/macrosmenucontroller.hxx85
-rw-r--r--framework/inc/uielement/menubarmanager.hxx278
-rw-r--r--framework/inc/uielement/menubarmerger.hxx124
-rw-r--r--framework/inc/uielement/menubarwrapper.hxx109
-rw-r--r--framework/inc/uielement/newmenucontroller.hxx133
-rw-r--r--framework/inc/uielement/objectmenucontroller.hxx83
-rw-r--r--framework/inc/uielement/progressbarwrapper.hxx108
-rw-r--r--framework/inc/uielement/recentfilesmenucontroller.hxx118
-rw-r--r--framework/inc/uielement/rootitemcontainer.hxx156
-rw-r--r--framework/inc/uielement/simpletextstatusbarcontroller.hxx90
-rw-r--r--framework/inc/uielement/spinfieldtoolbarcontroller.hxx115
-rw-r--r--framework/inc/uielement/statusbar.hxx76
-rw-r--r--framework/inc/uielement/statusbarmanager.hxx143
-rw-r--r--framework/inc/uielement/statusbarwrapper.hxx77
-rw-r--r--framework/inc/uielement/statusindicatorinterfacewrapper.hxx82
-rw-r--r--framework/inc/uielement/togglebuttontoolbarcontroller.hxx86
-rw-r--r--framework/inc/uielement/toolbar.hxx73
-rw-r--r--framework/inc/uielement/toolbarmanager.hxx240
-rw-r--r--framework/inc/uielement/toolbarmerger.hxx160
-rw-r--r--framework/inc/uielement/toolbarsmenucontroller.hxx122
-rw-r--r--framework/inc/uielement/toolbarwrapper.hxx101
-rw-r--r--framework/inc/uielement/uicommanddescription.hxx117
-rw-r--r--framework/inc/uielement/uielementtypenames.hxx11
-rw-r--r--framework/inc/uifactory/addonstoolboxfactory.hxx88
-rwxr-xr-xframework/inc/uifactory/factoryconfiguration.hxx124
-rw-r--r--framework/inc/uifactory/menubarfactory.hxx91
-rw-r--r--framework/inc/uifactory/popupmenucontrollerfactory.hxx67
-rw-r--r--framework/inc/uifactory/statusbarcontrollerfactory.hxx62
-rw-r--r--framework/inc/uifactory/statusbarfactory.hxx67
-rw-r--r--framework/inc/uifactory/toolbarcontrollerfactory.hxx91
-rw-r--r--framework/inc/uifactory/toolboxfactory.hxx66
-rw-r--r--framework/inc/uifactory/uielementfactorymanager.hxx151
-rw-r--r--framework/inc/uifactory/windowcontentfactorymanager.hxx90
-rw-r--r--framework/inc/xml/acceleratorconfigurationreader.hxx220
-rw-r--r--framework/inc/xml/acceleratorconfigurationwriter.hxx119
-rw-r--r--framework/inc/xml/eventsconfiguration.hxx65
-rw-r--r--framework/inc/xml/eventsdocumenthandler.hxx187
-rw-r--r--framework/inc/xml/imagesconfiguration.hxx127
-rw-r--r--framework/inc/xml/imagesdocumenthandler.hxx201
-rw-r--r--framework/inc/xml/menuconfiguration.hxx125
-rw-r--r--framework/inc/xml/menudocumenthandler.hxx318
-rw-r--r--framework/inc/xml/saxnamespacefilter.hxx104
-rw-r--r--framework/inc/xml/statusbarconfiguration.hxx58
-rw-r--r--framework/inc/xml/statusbardocumenthandler.hxx184
-rw-r--r--framework/inc/xml/toolboxconfiguration.hxx38
-rw-r--r--framework/inc/xml/toolboxconfigurationdefines.hxx86
-rw-r--r--framework/inc/xml/toolboxdocumenthandler.hxx213
-rw-r--r--framework/inc/xml/toolboxlayoutdocumenthandler.hxx59
-rw-r--r--framework/inc/xml/xmlnamespaces.hxx65
-rw-r--r--framework/prj/build.lst23
-rw-r--r--framework/prj/d.lst54
-rw-r--r--framework/qa/complex/ModuleManager/CheckXModuleManager.java321
-rw-r--r--framework/qa/complex/ModuleManager/makefile.mk83
-rw-r--r--framework/qa/complex/XUserInputInterception/EventTest.java594
-rw-r--r--framework/qa/complex/XUserInputInterception/makefile.mk89
-rw-r--r--framework/qa/complex/accelerators/AcceleratorsConfigurationTest.java686
-rw-r--r--framework/qa/complex/accelerators/helper/KeyMapping.java168
-rw-r--r--framework/qa/complex/accelerators/helper/makefile.mk46
-rw-r--r--framework/qa/complex/accelerators/makefile.mk86
-rwxr-xr-xframework/qa/complex/api_internal/CheckAPI.java200
-rwxr-xr-xframework/qa/complex/api_internal/CheckAPI.props4
-rwxr-xr-xframework/qa/complex/api_internal/api.lst325
-rwxr-xr-xframework/qa/complex/api_internal/makefile.mk88
-rwxr-xr-xframework/qa/complex/api_internal/tests.sce3
-rwxr-xr-xframework/qa/complex/api_internal/worksforme.sce39
-rwxr-xr-xframework/qa/complex/broken_document/LoadDocument.java103
-rwxr-xr-xframework/qa/complex/broken_document/dbf.dbf.emf1
-rwxr-xr-xframework/qa/complex/broken_document/makefile.mk80
-rw-r--r--framework/qa/complex/contextMenuInterceptor/CheckContextMenuInterceptor.java287
-rw-r--r--framework/qa/complex/contextMenuInterceptor/ContextMenuInterceptor.java130
-rw-r--r--framework/qa/complex/contextMenuInterceptor/makefile.mk77
-rwxr-xr-xframework/qa/complex/desktop/DesktopTerminate.java158
-rwxr-xr-xframework/qa/complex/desktop/makefile.mk79
-rw-r--r--framework/qa/complex/dispatches/checkdispatchapi.java462
-rw-r--r--framework/qa/complex/dispatches/helper/Interceptor.java348
-rw-r--r--framework/qa/complex/dispatches/helper/makefile.mk48
-rw-r--r--framework/qa/complex/dispatches/makefile.mk92
-rwxr-xr-xframework/qa/complex/disposing/GetServiceWhileDisposingOffice.java74
-rwxr-xr-xframework/qa/complex/disposing/makefile.mk76
-rw-r--r--framework/qa/complex/framework/autosave/AutoSave.java454
-rw-r--r--framework/qa/complex/framework/autosave/ConfigHelper.java124
-rw-r--r--framework/qa/complex/framework/autosave/Protocol.java999
-rw-r--r--framework/qa/complex/framework/autosave/makefile.mk89
-rw-r--r--framework/qa/complex/framework/recovery/CrashThread.java80
-rw-r--r--framework/qa/complex/framework/recovery/KlickButtonThread.java57
-rw-r--r--framework/qa/complex/framework/recovery/RecoveryTest.java1012
-rw-r--r--framework/qa/complex/framework/recovery/RecoveryTools.java366
-rw-r--r--framework/qa/complex/framework/recovery/TimeoutThread.java41
-rwxr-xr-xframework/qa/complex/framework/recovery/makefile.mk103
-rwxr-xr-xframework/qa/complex/imageManager/CheckImageManager.java197
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XComponent.java179
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XImageManager.java114
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XInitialization.java95
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XTypeProvider.java103
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XUIConfiguration.java85
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/_XUIConfigurationPersistence.java96
-rwxr-xr-xframework/qa/complex/imageManager/interfaces/makefile.mk57
-rwxr-xr-xframework/qa/complex/imageManager/makefile.mk79
-rw-r--r--framework/qa/complex/loadAllDocuments/CheckXComponentLoader.java733
-rw-r--r--framework/qa/complex/loadAllDocuments/CheckXComponentLoader.props3
-rw-r--r--framework/qa/complex/loadAllDocuments/helper/InteractionHandler.java155
-rw-r--r--framework/qa/complex/loadAllDocuments/helper/StatusIndicator.java237
-rw-r--r--framework/qa/complex/loadAllDocuments/helper/StreamSimulator.java474
-rw-r--r--framework/qa/complex/loadAllDocuments/helper/makefile.mk48
-rw-r--r--framework/qa/complex/loadAllDocuments/makefile.mk91
-rw-r--r--framework/qa/complex/loadAllDocuments/password_check.sxwbin0 -> 5128 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/Calc_6.sxcbin0 -> 9547 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/Writer6.sxwbin0 -> 5754 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/draw1.sxdbin0 -> 11821 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/imp1.sxibin0 -> 35135 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/pic.gifbin0 -> 1433 bytes
-rw-r--r--framework/qa/complex/loadAllDocuments/testdocuments/pic.jpgbin0 -> 2651 bytes
-rwxr-xr-xframework/qa/complex/path_settings/PathSettingsTest.java458
-rwxr-xr-xframework/qa/complex/path_settings/makefile.mk84
-rwxr-xr-xframework/qa/complex/path_substitution/PathSubstitutionTest.java246
-rwxr-xr-xframework/qa/complex/path_substitution/makefile.mk83
-rwxr-xr-xframework/qa/complex/sequence/CheckSequenceOfEnum.java95
-rwxr-xr-xframework/qa/complex/sequence/makefile.mk98
-rwxr-xr-xframework/qa/unoapi/framework.sce35
-rwxr-xr-xframework/qa/unoapi/knownissues.xcl56
-rwxr-xr-xframework/qa/unoapi/makefile.mk43
-rw-r--r--framework/qa/unoapi/testdocuments/Calc_Link.sxcbin0 -> 5410 bytes
-rw-r--r--framework/qa/unoapi/testdocuments/Writer_link.sxwbin0 -> 5188 bytes
-rw-r--r--framework/qa/unoapi/testdocuments/XTypeDetection.sxwbin0 -> 4995 bytes
-rwxr-xr-xframework/qa/unoapi/testdocuments/delete.cfgbin0 -> 2799 bytes
-rw-r--r--framework/source/accelerators/acceleratorcache.cxx250
-rw-r--r--framework/source/accelerators/acceleratorconfiguration.cxx1717
-rw-r--r--framework/source/accelerators/acceleratorexecute.cxx382
-rw-r--r--framework/source/accelerators/acceleratorexecute.hxx255
-rw-r--r--framework/source/accelerators/documentacceleratorconfiguration.cxx240
-rw-r--r--framework/source/accelerators/globalacceleratorconfiguration.cxx127
-rw-r--r--framework/source/accelerators/keymapping.cxx229
-rw-r--r--framework/source/accelerators/makefile.mk52
-rw-r--r--framework/source/accelerators/moduleacceleratorconfiguration.cxx175
-rw-r--r--framework/source/accelerators/presethandler.cxx937
-rw-r--r--framework/source/accelerators/storageholder.cxx637
-rw-r--r--framework/source/application/framework.cxx286
-rw-r--r--framework/source/application/login.cxx298
-rw-r--r--framework/source/application/makefile.mk45
-rw-r--r--framework/source/classes/actiontriggercontainer.cxx203
-rw-r--r--framework/source/classes/actiontriggerpropertyset.cxx478
-rw-r--r--framework/source/classes/actiontriggerseparatorpropertyset.cxx349
-rw-r--r--framework/source/classes/addonmenu.cxx456
-rw-r--r--framework/source/classes/addonsoptions.cxx1858
-rw-r--r--framework/source/classes/bmkmenu.cxx254
-rw-r--r--framework/source/classes/converter.cxx316
-rw-r--r--framework/source/classes/droptargetlistener.cxx254
-rw-r--r--framework/source/classes/framecontainer.cxx418
-rw-r--r--framework/source/classes/framelistanalyzer.cxx302
-rw-r--r--framework/source/classes/fwkresid.cxx65
-rw-r--r--framework/source/classes/fwktabwindow.cxx412
-rwxr-xr-xframework/source/classes/fwlresid.cxx65
-rw-r--r--framework/source/classes/imagewrapper.cxx120
-rw-r--r--framework/source/classes/makefile.mk69
-rw-r--r--framework/source/classes/menuextensionsupplier.cxx64
-rw-r--r--framework/source/classes/menumanager.cxx1179
-rw-r--r--framework/source/classes/propertysethelper.cxx450
-rw-r--r--framework/source/classes/protocolhandlercache.cxx361
-rw-r--r--framework/source/classes/resource.src349
-rw-r--r--framework/source/classes/rootactiontriggercontainer.cxx379
-rw-r--r--framework/source/classes/sfxhelperfunctions.cxx158
-rw-r--r--framework/source/classes/taskcreator.cxx171
-rw-r--r--framework/source/constant/containerquery.cxx42
-rw-r--r--framework/source/constant/contenthandler.cxx42
-rw-r--r--framework/source/constant/filter.cxx119
-rw-r--r--framework/source/constant/frameloader.cxx42
-rw-r--r--framework/source/constant/makefile.mk46
-rw-r--r--framework/source/dispatch/closedispatcher.cxx653
-rw-r--r--framework/source/dispatch/dispatchinformationprovider.cxx190
-rw-r--r--framework/source/dispatch/dispatchprovider.cxx795
-rw-r--r--framework/source/dispatch/helpagentdispatcher.cxx444
-rw-r--r--framework/source/dispatch/interaction.cxx209
-rw-r--r--framework/source/dispatch/interceptionhelper.cxx342
-rw-r--r--framework/source/dispatch/loaddispatcher.cxx198
-rw-r--r--framework/source/dispatch/mailtodispatcher.cxx330
-rw-r--r--framework/source/dispatch/makefile.mk63
-rw-r--r--framework/source/dispatch/menudispatcher.cxx488
-rw-r--r--framework/source/dispatch/oxt_handler.cxx298
-rw-r--r--framework/source/dispatch/popupmenudispatcher.cxx421
-rw-r--r--framework/source/dispatch/servicehandler.cxx351
-rw-r--r--framework/source/dispatch/startmoduledispatcher.cxx241
-rw-r--r--framework/source/dispatch/systemexec.cxx234
-rwxr-xr-xframework/source/dispatch/windowcommanddispatch.cxx191
-rw-r--r--framework/source/helper/acceleratorinfo.cxx71
-rw-r--r--framework/source/helper/actiontriggerhelper.cxx408
-rw-r--r--framework/source/helper/configimporter.cxx93
-rw-r--r--framework/source/helper/dockingareadefaultacceptor.cxx187
-rw-r--r--framework/source/helper/imageproducer.cxx56
-rw-r--r--framework/source/helper/makefile.mk70
-rw-r--r--framework/source/helper/mischelper.cxx142
-rw-r--r--framework/source/helper/networkdomain.cxx295
-rw-r--r--framework/source/helper/ocomponentaccess.cxx262
-rw-r--r--framework/source/helper/ocomponentenumeration.cxx237
-rw-r--r--framework/source/helper/oframes.cxx524
-rw-r--r--framework/source/helper/persistentwindowstate.cxx352
-rw-r--r--framework/source/helper/popupmenucontrollerbase.cxx429
-rw-r--r--framework/source/helper/propertysetcontainer.cxx196
-rw-r--r--framework/source/helper/shareablemutex.cxx81
-rw-r--r--framework/source/helper/statusindicator.cxx152
-rw-r--r--framework/source/helper/statusindicatorfactory.cxx654
-rw-r--r--framework/source/helper/tagwindowasmodified.cxx256
-rw-r--r--framework/source/helper/titlebarupdate.cxx413
-rw-r--r--framework/source/helper/titlehelper.cxx760
-rw-r--r--framework/source/helper/uiconfigelementwrapperbase.cxx553
-rw-r--r--framework/source/helper/uielementwrapperbase.cxx265
-rw-r--r--framework/source/helper/vclstatusindicator.cxx231
-rw-r--r--framework/source/helper/wakeupthread.cxx83
-rw-r--r--framework/source/inc/accelerators/acceleratorcache.hxx187
-rw-r--r--framework/source/inc/accelerators/acceleratorconfiguration.hxx476
-rw-r--r--framework/source/inc/accelerators/documentacceleratorconfiguration.hxx124
-rw-r--r--framework/source/inc/accelerators/globalacceleratorconfiguration.hxx109
-rw-r--r--framework/source/inc/accelerators/istoragelistener.hxx64
-rw-r--r--framework/source/inc/accelerators/keymapping.hxx162
-rw-r--r--framework/source/inc/accelerators/moduleacceleratorconfiguration.hxx115
-rw-r--r--framework/source/inc/accelerators/presethandler.hxx535
-rw-r--r--framework/source/inc/accelerators/storageholder.hxx261
-rw-r--r--framework/source/inc/constant/containerquery.hxx47
-rw-r--r--framework/source/inc/constant/contenthandler.hxx47
-rw-r--r--framework/source/inc/constant/filter.hxx126
-rw-r--r--framework/source/inc/constant/frameloader.hxx47
-rw-r--r--framework/source/inc/dispatch/loaddispatcher.hxx161
-rw-r--r--framework/source/inc/dispatch/uieventloghelper.hxx82
-rwxr-xr-xframework/source/inc/dispatch/windowcommanddispatch.hxx174
-rw-r--r--framework/source/inc/loadenv/actionlockguard.hxx209
-rw-r--r--framework/source/inc/loadenv/loaddispatchlistener.hxx165
-rw-r--r--framework/source/inc/loadenv/loadenv.hxx695
-rw-r--r--framework/source/inc/loadenv/loadenvexception.hxx197
-rw-r--r--framework/source/inc/loadenv/targethelper.hxx124
-rw-r--r--framework/source/inc/pattern/configuration.hxx176
-rw-r--r--framework/source/inc/pattern/frame.hxx130
-rw-r--r--framework/source/inc/pattern/storages.hxx102
-rw-r--r--framework/source/inc/pattern/window.hxx155
-rw-r--r--framework/source/interaction/makefile.mk49
-rw-r--r--framework/source/interaction/preventduplicateinteraction.cxx221
-rw-r--r--framework/source/interaction/quietinteraction.cxx190
-rw-r--r--framework/source/jobs/configaccess.cxx242
-rw-r--r--framework/source/jobs/helponstartup.cxx423
-rw-r--r--framework/source/jobs/job.cxx944
-rw-r--r--framework/source/jobs/jobconst.cxx74
-rw-r--r--framework/source/jobs/jobdata.cxx714
-rw-r--r--framework/source/jobs/jobdispatch.cxx475
-rw-r--r--framework/source/jobs/jobexecutor.cxx364
-rw-r--r--framework/source/jobs/jobresult.cxx261
-rw-r--r--framework/source/jobs/joburl.cxx657
-rw-r--r--framework/source/jobs/makefile.mk53
-rw-r--r--framework/source/jobs/shelljob.cxx214
-rw-r--r--framework/source/layoutmanager/layoutmanager.cxx7555
-rw-r--r--framework/source/layoutmanager/makefile.mk47
-rw-r--r--framework/source/loadenv/loaddispatchlistener.cxx141
-rw-r--r--framework/source/loadenv/loadenv.cxx1892
-rw-r--r--framework/source/loadenv/makefile.mk47
-rw-r--r--framework/source/loadenv/targethelper.cxx109
-rw-r--r--framework/source/recording/dispatchrecorder.cxx493
-rw-r--r--framework/source/recording/dispatchrecordersupplier.cxx221
-rw-r--r--framework/source/recording/makefile.mk47
-rw-r--r--framework/source/register/makefile.mk50
-rw-r--r--framework/source/register/register3rdcomponents.cxx76
-rw-r--r--framework/source/register/registerlogindialog.cxx71
-rw-r--r--framework/source/register/registerservices.cxx240
-rw-r--r--framework/source/register/registertemp.cxx130
-rw-r--r--framework/source/services/autorecovery.cxx3591
-rw-r--r--framework/source/services/backingcomp.cxx874
-rw-r--r--framework/source/services/backingwindow.cxx967
-rw-r--r--framework/source/services/backingwindow.hxx181
-rw-r--r--framework/source/services/desktop.cxx2036
-rw-r--r--framework/source/services/dispatchhelper.cxx227
-rw-r--r--framework/source/services/frame.cxx3324
-rw-r--r--framework/source/services/fwk_services.src179
-rw-r--r--framework/source/services/license.cxx631
-rw-r--r--framework/source/services/makefile.mk64
-rw-r--r--framework/source/services/mediatypedetectionhelper.cxx111
-rw-r--r--framework/source/services/menudocumenthandler.cxx903
-rw-r--r--framework/source/services/modulemanager.cxx425
-rw-r--r--framework/source/services/pathsettings.cxx1174
-rw-r--r--framework/source/services/sessionlistener.cxx368
-rw-r--r--framework/source/services/substitutepathvars.cxx1249
-rw-r--r--framework/source/services/tabwindowservice.cxx485
-rw-r--r--framework/source/services/taskcreatorsrv.cxx404
-rw-r--r--framework/source/services/uriabbreviation.cxx90
-rw-r--r--framework/source/services/urltransformer.cxx372
-rw-r--r--framework/source/tabwin/makefile.mk48
-rw-r--r--framework/source/tabwin/tabwindow.cxx976
-rw-r--r--framework/source/tabwin/tabwinfactory.cxx176
-rw-r--r--framework/source/threadhelp/lockhelper.cxx549
-rw-r--r--framework/source/threadhelp/makefile.mk45
-rw-r--r--framework/source/threadhelp/transactionmanager.cxx409
-rw-r--r--framework/source/uiconfiguration/globalsettings.cxx356
-rw-r--r--framework/source/uiconfiguration/graphicnameaccess.cxx112
-rw-r--r--framework/source/uiconfiguration/imagemanager.cxx254
-rwxr-xr-xframework/source/uiconfiguration/imagemanagerimpl.cxx1463
-rwxr-xr-xframework/source/uiconfiguration/imagemanagerimpl.hxx222
-rw-r--r--framework/source/uiconfiguration/makefile.mk54
-rw-r--r--framework/source/uiconfiguration/moduleimagemanager.cxx226
-rw-r--r--framework/source/uiconfiguration/moduleuicfgsupplier.cxx398
-rw-r--r--framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx1612
-rw-r--r--framework/source/uiconfiguration/uicategorydescription.cxx476
-rw-r--r--framework/source/uiconfiguration/uiconfigurationmanager.cxx1354
-rwxr-xr-xframework/source/uiconfiguration/uiconfigurationmanagerimpl.cxx1710
-rwxr-xr-xframework/source/uiconfiguration/uiconfigurationmanagerimpl.hxx218
-rw-r--r--framework/source/uiconfiguration/windowstateconfiguration.cxx1490
-rw-r--r--framework/source/uielement/addonstoolbarmanager.cxx559
-rw-r--r--framework/source/uielement/addonstoolbarwrapper.cxx196
-rw-r--r--framework/source/uielement/buttontoolbarcontroller.cxx337
-rw-r--r--framework/source/uielement/comboboxtoolbarcontroller.cxx439
-rw-r--r--framework/source/uielement/complextoolbarcontroller.cxx390
-rw-r--r--framework/source/uielement/constitemcontainer.cxx479
-rw-r--r--framework/source/uielement/controlmenucontroller.cxx443
-rw-r--r--framework/source/uielement/dropdownboxtoolbarcontroller.cxx354
-rw-r--r--framework/source/uielement/edittoolbarcontroller.cxx269
-rw-r--r--framework/source/uielement/fontmenucontroller.cxx261
-rw-r--r--framework/source/uielement/fontsizemenucontroller.cxx363
-rw-r--r--framework/source/uielement/footermenucontroller.cxx97
-rw-r--r--framework/source/uielement/generictoolbarcontroller.cxx393
-rw-r--r--framework/source/uielement/headermenucontroller.cxx277
-rw-r--r--framework/source/uielement/imagebuttontoolbarcontroller.cxx236
-rw-r--r--framework/source/uielement/itemcontainer.cxx266
-rw-r--r--framework/source/uielement/langselectionmenucontroller.cxx436
-rw-r--r--framework/source/uielement/langselectionstatusbarcontroller.cxx487
-rw-r--r--framework/source/uielement/logoimagestatusbarcontroller.cxx177
-rw-r--r--framework/source/uielement/logotextstatusbarcontroller.cxx180
-rw-r--r--framework/source/uielement/macrosmenucontroller.cxx231
-rw-r--r--framework/source/uielement/makefile.mk86
-rw-r--r--framework/source/uielement/menubarmanager.cxx2146
-rw-r--r--framework/source/uielement/menubarmerger.cxx441
-rw-r--r--framework/source/uielement/menubarwrapper.cxx379
-rw-r--r--framework/source/uielement/newmenucontroller.cxx595
-rw-r--r--framework/source/uielement/objectmenucontroller.cxx165
-rw-r--r--framework/source/uielement/progressbarwrapper.cxx364
-rw-r--r--framework/source/uielement/recentfilesmenucontroller.cxx484
-rw-r--r--framework/source/uielement/rootitemcontainer.cxx467
-rw-r--r--framework/source/uielement/simpletextstatusbarcontroller.cxx196
-rw-r--r--framework/source/uielement/spinfieldtoolbarcontroller.cxx578
-rw-r--r--framework/source/uielement/statusbar.cxx113
-rw-r--r--framework/source/uielement/statusbarmanager.cxx721
-rw-r--r--framework/source/uielement/statusbarwrapper.cxx205
-rw-r--r--framework/source/uielement/statusindicatorinterfacewrapper.cxx130
-rw-r--r--framework/source/uielement/togglebuttontoolbarcontroller.cxx323
-rw-r--r--framework/source/uielement/toolbar.cxx77
-rw-r--r--framework/source/uielement/toolbarmanager.cxx2108
-rw-r--r--framework/source/uielement/toolbarmerger.cxx714
-rw-r--r--framework/source/uielement/toolbarsmenucontroller.cxx921
-rw-r--r--framework/source/uielement/toolbarwrapper.cxx352
-rw-r--r--framework/source/uielement/uicommanddescription.cxx793
-rw-r--r--framework/source/uifactory/addonstoolboxfactory.cxx221
-rwxr-xr-xframework/source/uifactory/factoryconfiguration.cxx341
-rw-r--r--framework/source/uifactory/makefile.mk54
-rw-r--r--framework/source/uifactory/menubarfactory.cxx212
-rw-r--r--framework/source/uifactory/popupmenucontrollerfactory.cxx93
-rw-r--r--framework/source/uifactory/statusbarcontrollerfactory.cxx91
-rw-r--r--framework/source/uifactory/statusbarfactory.cxx109
-rw-r--r--framework/source/uifactory/toolbarcontrollerfactory.cxx262
-rw-r--r--framework/source/uifactory/toolboxfactory.cxx105
-rw-r--r--framework/source/uifactory/uielementfactorymanager.cxx547
-rw-r--r--framework/source/uifactory/windowcontentfactorymanager.cxx266
-rw-r--r--framework/source/unotypes/fwk.xml459
-rw-r--r--framework/source/unotypes/fwl.xml97
-rw-r--r--framework/source/unotypes/lgd.xml34
-rw-r--r--framework/source/xml/acceleratorconfigurationreader.cxx338
-rw-r--r--framework/source/xml/acceleratorconfigurationwriter.cxx156
-rw-r--r--framework/source/xml/eventsconfiguration.cxx165
-rw-r--r--framework/source/xml/eventsdocumenthandler.cxx552
-rw-r--r--framework/source/xml/imagesconfiguration.cxx238
-rw-r--r--framework/source/xml/imagesdocumenthandler.cxx851
-rw-r--r--framework/source/xml/makefile.mk59
-rw-r--r--framework/source/xml/menuconfiguration.cxx187
-rw-r--r--framework/source/xml/menudocumenthandler.cxx1014
-rw-r--r--framework/source/xml/saxnamespacefilter.cxx198
-rw-r--r--framework/source/xml/statusbarconfiguration.cxx166
-rw-r--r--framework/source/xml/statusbardocumenthandler.cxx698
-rw-r--r--framework/source/xml/toolboxconfiguration.cxx157
-rw-r--r--framework/source/xml/toolboxdocumenthandler.cxx901
-rw-r--r--framework/source/xml/toolboxlayoutdocumenthandler.cxx58
-rw-r--r--framework/source/xml/xmlnamespaces.cxx191
-rw-r--r--framework/test/makefile.mk94
-rw-r--r--framework/test/test.cxx1346
-rw-r--r--framework/test/test_componentenumeration.bas78
-rw-r--r--framework/test/test_documentproperties.bas1083
-rw-r--r--framework/test/test_filterregistration.bas95
-rw-r--r--framework/test/test_statusindicatorfactory.bas69
-rw-r--r--framework/test/threadtest.cxx738
-rw-r--r--framework/test/threadtest/makefile.mk67
-rw-r--r--framework/test/threadtest/test.btm29
-rw-r--r--framework/test/threadtest/threadtest.cxx736
-rw-r--r--framework/test/typecfg/build.btm26
-rw-r--r--framework/test/typecfg/cfgview.cxx1512
-rw-r--r--framework/test/typecfg/makefile.mk73
-rw-r--r--framework/test/typecfg/typecfg.cxx249
-rw-r--r--framework/test/typecfg/xml2xcd.cxx2360
-rw-r--r--framework/uiconfig/startmodule/accelerator/en-GB/default.xml28
-rw-r--r--framework/uiconfig/startmodule/accelerator/en-US/default.xml28
-rw-r--r--framework/uiconfig/startmodule/menubar/menubar.xml83
-rw-r--r--framework/uiconfig/startmodule/statusbar/statusbar.xml4
-rw-r--r--framework/uiconfig/startmodule/toolbar/standardbar.xml11
-rw-r--r--framework/util/exports.map10
-rw-r--r--framework/util/guiapps/makefile.mk67
-rw-r--r--framework/util/hidother.src32
-rw-r--r--framework/util/lgd.xml34
-rw-r--r--framework/util/makefile.mk426
-rw-r--r--framework/util/makefile.pmk38
-rw-r--r--framework/util/target.pmk34
-rw-r--r--graphite/graphite-2.3.1.patch2014
-rwxr-xr-xgraphite/graphite-2.3.1.patch.mingw168
-rw-r--r--graphite/makefile.mk168
-rw-r--r--graphite/prj/build.lst3
-rw-r--r--graphite/prj/d.lst15
-rw-r--r--guw/guw.cc686
-rw-r--r--guw/makefile5
-rwxr-xr-xhsqldb/makefile.mk82
-rw-r--r--hsqldb/patches/i103528.patch11
-rw-r--r--hsqldb/patches/i104901.patch27
-rw-r--r--hsqldb/patches/i96823.patch94
-rw-r--r--hsqldb/patches/i97032.patch10
-rwxr-xr-xhsqldb/prj/build.lst2
-rwxr-xr-xhsqldb/prj/d.lst1
-rwxr-xr-xhsqldb/version.mk6
-rw-r--r--hunspell/hunspell-1.2.8.patch632
-rw-r--r--hunspell/hunspell-consts-1.2.8.patch22
-rw-r--r--hunspell/makefile.mk96
-rw-r--r--hunspell/prj/build.lst3
-rw-r--r--hunspell/prj/d.lst5
-rw-r--r--hwpfilter/inc/makefile.mk47
-rw-r--r--hwpfilter/inc/pch/precompiled_hwpfilter.cxx29
-rw-r--r--hwpfilter/inc/pch/precompiled_hwpfilter.hxx32
-rw-r--r--hwpfilter/prj/build.lst5
-rw-r--r--hwpfilter/prj/d.lst5
-rw-r--r--hwpfilter/source/attributes.cxx168
-rw-r--r--hwpfilter/source/attributes.hxx74
-rw-r--r--hwpfilter/source/cspline.cpp173
-rw-r--r--hwpfilter/source/cspline.h36
-rw-r--r--hwpfilter/source/datecode.h57
-rw-r--r--hwpfilter/source/drawdef.h262
-rw-r--r--hwpfilter/source/drawing.h811
-rw-r--r--hwpfilter/source/fontmap.cpp174
-rw-r--r--hwpfilter/source/formula.cpp686
-rw-r--r--hwpfilter/source/formula.h102
-rw-r--r--hwpfilter/source/grammar.cpp1475
-rw-r--r--hwpfilter/source/grammar.h65
-rw-r--r--hwpfilter/source/hbox.cpp714
-rw-r--r--hwpfilter/source/hbox.h1041
-rw-r--r--hwpfilter/source/hcode.cpp1538
-rw-r--r--hwpfilter/source/hcode.h84
-rw-r--r--hwpfilter/source/hfont.cpp107
-rw-r--r--hwpfilter/source/hfont.h77
-rw-r--r--hwpfilter/source/hgzip.cpp337
-rw-r--r--hwpfilter/source/hgzip.h114
-rw-r--r--hwpfilter/source/himgutil.cpp169
-rw-r--r--hwpfilter/source/himgutil.h76
-rw-r--r--hwpfilter/source/hinfo.cpp221
-rw-r--r--hwpfilter/source/hinfo.h264
-rw-r--r--hwpfilter/source/hiodev.cpp365
-rw-r--r--hwpfilter/source/hiodev.h171
-rw-r--r--hwpfilter/source/hpara.cpp320
-rw-r--r--hwpfilter/source/hpara.h182
-rw-r--r--hwpfilter/source/hstream.cpp80
-rw-r--r--hwpfilter/source/hstream.h66
-rw-r--r--hwpfilter/source/hstyle.cpp153
-rw-r--r--hwpfilter/source/hstyle.h61
-rw-r--r--hwpfilter/source/htags.cpp168
-rw-r--r--hwpfilter/source/htags.h89
-rw-r--r--hwpfilter/source/hutil.cpp101
-rw-r--r--hwpfilter/source/hutil.h47
-rw-r--r--hwpfilter/source/hwp.map8
-rw-r--r--hwpfilter/source/hwpeq.cpp765
-rw-r--r--hwpfilter/source/hwpeq.h44
-rw-r--r--hwpfilter/source/hwpfile.cpp680
-rw-r--r--hwpfilter/source/hwpfile.h312
-rw-r--r--hwpfilter/source/hwplib.h244
-rw-r--r--hwpfilter/source/hwpread.cpp813
-rw-r--r--hwpfilter/source/hwpreader.cxx4949
-rw-r--r--hwpfilter/source/hwpreader.hxx401
-rw-r--r--hwpfilter/source/ksc5601.h760
-rw-r--r--hwpfilter/source/lexer.cpp2416
-rw-r--r--hwpfilter/source/list.hxx283
-rw-r--r--hwpfilter/source/makefile.mk97
-rw-r--r--hwpfilter/source/mapping.h398
-rw-r--r--hwpfilter/source/mzstring.cpp314
-rw-r--r--hwpfilter/source/mzstring.h187
-rw-r--r--hwpfilter/source/nodes.h107
-rw-r--r--hwpfilter/source/precompile.h44
-rw-r--r--hwpfilter/source/solver.cpp183
-rw-r--r--hwpfilter/source/solver.h50
-rw-r--r--hyphen/hyphen-2.4.patch169
-rw-r--r--hyphen/makefile.mk106
-rw-r--r--hyphen/prj/build.lst3
-rw-r--r--hyphen/prj/d.lst5
-rw-r--r--i18npool/inc/breakiteratorImpl.hxx152
-rw-r--r--i18npool/inc/breakiterator_cjk.hxx78
-rw-r--r--i18npool/inc/breakiterator_ctl.hxx64
-rw-r--r--i18npool/inc/breakiterator_th.hxx48
-rw-r--r--i18npool/inc/breakiterator_unicode.hxx102
-rw-r--r--i18npool/inc/bullet.h331
-rw-r--r--i18npool/inc/calendarImpl.hxx106
-rw-r--r--i18npool/inc/calendar_gregorian.hxx174
-rw-r--r--i18npool/inc/calendar_hijri.hxx84
-rw-r--r--i18npool/inc/calendar_jewish.hxx54
-rw-r--r--i18npool/inc/cclass_cjk.hxx95
-rw-r--r--i18npool/inc/cclass_unicode.hxx188
-rw-r--r--i18npool/inc/chaptercollator.hxx62
-rw-r--r--i18npool/inc/characterclassificationImpl.hxx118
-rw-r--r--i18npool/inc/chartonum.hxx61
-rw-r--r--i18npool/inc/collatorImpl.hxx118
-rw-r--r--i18npool/inc/collator_unicode.hxx85
-rw-r--r--i18npool/inc/defaultnumberingprovider.hxx106
-rw-r--r--i18npool/inc/i18npool/i18npooldllapi.h41
-rw-r--r--i18npool/inc/i18npool/lang.h504
-rw-r--r--i18npool/inc/i18npool/mslangid.hxx314
-rw-r--r--i18npool/inc/i18npool/paper.hxx147
-rw-r--r--i18npool/inc/indexentrysupplier.hxx110
-rw-r--r--i18npool/inc/indexentrysupplier_asian.hxx65
-rw-r--r--i18npool/inc/indexentrysupplier_common.hxx110
-rw-r--r--i18npool/inc/indexentrysupplier_default.hxx114
-rw-r--r--i18npool/inc/indexentrysupplier_ja_phonetic.hxx75
-rw-r--r--i18npool/inc/inputsequencechecker.hxx90
-rw-r--r--i18npool/inc/inputsequencechecker_hi.hxx55
-rw-r--r--i18npool/inc/inputsequencechecker_th.hxx52
-rw-r--r--i18npool/inc/localedata.hxx139
-rw-r--r--i18npool/inc/makefile.mk48
-rw-r--r--i18npool/inc/nativenumbersupplier.hxx91
-rw-r--r--i18npool/inc/numberformatcode.hxx81
-rw-r--r--i18npool/inc/numtochar.hxx62
-rw-r--r--i18npool/inc/numtotext_cjk.hxx77
-rw-r--r--i18npool/inc/ordinalsuffix.hxx57
-rw-r--r--i18npool/inc/pch/precompiled_i18npool.cxx29
-rw-r--r--i18npool/inc/pch/precompiled_i18npool.hxx32
-rw-r--r--i18npool/inc/scripttypedetector.hxx66
-rw-r--r--i18npool/inc/servicename.hxx86
-rw-r--r--i18npool/inc/textToPronounce_zh.hxx81
-rw-r--r--i18npool/inc/textconversion.hxx211
-rw-r--r--i18npool/inc/textconversionImpl.hxx103
-rw-r--r--i18npool/inc/texttonum.hxx59
-rw-r--r--i18npool/inc/transliterationImpl.hxx155
-rw-r--r--i18npool/inc/transliteration_Ignore.hxx188
-rw-r--r--i18npool/inc/transliteration_Numeric.hxx73
-rw-r--r--i18npool/inc/transliteration_OneToOne.hxx127
-rw-r--r--i18npool/inc/transliteration_body.hxx95
-rw-r--r--i18npool/inc/transliteration_caseignore.hxx76
-rw-r--r--i18npool/inc/transliteration_commonclass.hxx122
-rw-r--r--i18npool/inc/warnings_guard_unicode_brkiter.h48
-rw-r--r--i18npool/inc/warnings_guard_unicode_calendar.h48
-rw-r--r--i18npool/inc/warnings_guard_unicode_tblcoll.h48
-rw-r--r--i18npool/inc/wtt.h74
-rw-r--r--i18npool/inc/xdictionary.hxx96
-rw-r--r--i18npool/prj/build.lst26
-rw-r--r--i18npool/prj/d.lst48
-rw-r--r--i18npool/source/breakiterator/breakiteratorImpl.cxx601
-rw-r--r--i18npool/source/breakiterator/breakiterator_cjk.cxx186
-rw-r--r--i18npool/source/breakiterator/breakiterator_ctl.cxx145
-rw-r--r--i18npool/source/breakiterator/breakiterator_th.cxx157
-rw-r--r--i18npool/source/breakiterator/breakiterator_unicode.cxx445
-rw-r--r--i18npool/source/breakiterator/data/char_in.txt48
-rw-r--r--i18npool/source/breakiterator/data/count_word.txt125
-rw-r--r--i18npool/source/breakiterator/data/count_word_fi.txt134
-rw-r--r--i18npool/source/breakiterator/data/dict.map12
-rw-r--r--i18npool/source/breakiterator/data/dict_word.txt148
-rw-r--r--i18npool/source/breakiterator/data/dict_word_ca.txt139
-rw-r--r--i18npool/source/breakiterator/data/dict_word_fi.txt147
-rw-r--r--i18npool/source/breakiterator/data/dict_word_he.txt139
-rw-r--r--i18npool/source/breakiterator/data/dict_word_hu.txt162
-rw-r--r--i18npool/source/breakiterator/data/dict_word_nodash.txt147
-rw-r--r--i18npool/source/breakiterator/data/dict_word_prepostdash.txt157
-rw-r--r--i18npool/source/breakiterator/data/edit_word.txt142
-rw-r--r--i18npool/source/breakiterator/data/edit_word_he.txt142
-rw-r--r--i18npool/source/breakiterator/data/edit_word_hu.txt159
-rw-r--r--i18npool/source/breakiterator/data/ja.dic119816
-rw-r--r--i18npool/source/breakiterator/data/line.txt634
-rw-r--r--i18npool/source/breakiterator/data/makefile.mk84
-rw-r--r--i18npool/source/breakiterator/data/sent.txt128
-rw-r--r--i18npool/source/breakiterator/data/zh.dic251404
-rw-r--r--i18npool/source/breakiterator/gendict.cxx205
-rw-r--r--i18npool/source/breakiterator/makefile.mk100
-rw-r--r--i18npool/source/breakiterator/xdictionary.cxx402
-rw-r--r--i18npool/source/calendar/calendarImpl.cxx324
-rw-r--r--i18npool/source/calendar/calendar_gregorian.cxx1098
-rw-r--r--i18npool/source/calendar/calendar_hijri.cxx341
-rw-r--r--i18npool/source/calendar/calendar_jewish.cxx306
-rw-r--r--i18npool/source/calendar/makefile.mk53
-rw-r--r--i18npool/source/characterclassification/cclass_unicode.cxx288
-rw-r--r--i18npool/source/characterclassification/cclass_unicode_parser.cxx1067
-rw-r--r--i18npool/source/characterclassification/characterclassificationImpl.cxx236
-rw-r--r--i18npool/source/characterclassification/makefile.mk52
-rw-r--r--i18npool/source/characterclassification/scripttypedetector.cxx182
-rw-r--r--i18npool/source/collator/chaptercollator.cxx111
-rw-r--r--i18npool/source/collator/collatorImpl.cxx260
-rw-r--r--i18npool/source/collator/collator_unicode.cxx176
-rw-r--r--i18npool/source/collator/data/collator_data.map25
-rw-r--r--i18npool/source/collator/data/dz_charset.txt74
-rw-r--r--i18npool/source/collator/data/hu_charset.txt14
-rw-r--r--i18npool/source/collator/data/ja_charset.txt1446
-rw-r--r--i18npool/source/collator/data/ja_phonetic_alphanumeric_first.txt1466
-rw-r--r--i18npool/source/collator/data/ja_phonetic_alphanumeric_last.txt1466
-rw-r--r--i18npool/source/collator/data/ko_charset.txt733
-rw-r--r--i18npool/source/collator/data/ku_alphanumeric.txt9
-rw-r--r--i18npool/source/collator/data/ln_charset.txt6
-rw-r--r--i18npool/source/collator/data/makefile.mk64
-rw-r--r--i18npool/source/collator/data/my_dictionary.txt373
-rw-r--r--i18npool/source/collator/data/ne_charset.txt5
-rw-r--r--i18npool/source/collator/data/zh_TW_charset.txt1337
-rw-r--r--i18npool/source/collator/data/zh_TW_radical.txt2787
-rw-r--r--i18npool/source/collator/data/zh_TW_stroke.txt2787
-rw-r--r--i18npool/source/collator/data/zh_charset.txt2099
-rw-r--r--i18npool/source/collator/data/zh_pinyin.txt2099
-rw-r--r--i18npool/source/collator/data/zh_radical.txt2787
-rw-r--r--i18npool/source/collator/data/zh_stroke.txt2101
-rw-r--r--i18npool/source/collator/data/zh_zhuyin.txt1702
-rw-r--r--i18npool/source/collator/gencoll_rule.cxx140
-rw-r--r--i18npool/source/collator/makefile.mk73
-rw-r--r--i18npool/source/defaultnumberingprovider/defaultnumberingprovider.cxx899
-rw-r--r--i18npool/source/defaultnumberingprovider/makefile.mk49
-rw-r--r--i18npool/source/indexentry/data/index_data.map17
-rw-r--r--i18npool/source/indexentry/data/indexdata_alphanumeric.h47
-rw-r--r--i18npool/source/indexentry/data/indexdata_ja_phonetic.h120
-rw-r--r--i18npool/source/indexentry/data/indexdata_ko_dict.txt16167
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_TW_radical.txt27786
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_TW_stroke.txt27786
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_pinyin.txt20903
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_radical.txt27786
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_stroke.txt20923
-rw-r--r--i18npool/source/indexentry/data/indexdata_zh_zhuyin.txt16971
-rw-r--r--i18npool/source/indexentry/data/ko_phonetic.txt16153
-rw-r--r--i18npool/source/indexentry/data/makefile.mk67
-rw-r--r--i18npool/source/indexentry/data/zh_pinyin.txt20378
-rw-r--r--i18npool/source/indexentry/data/zh_zhuyin.txt16936
-rw-r--r--i18npool/source/indexentry/genindex_data.cxx166
-rw-r--r--i18npool/source/indexentry/indexentrysupplier.cxx209
-rw-r--r--i18npool/source/indexentry/indexentrysupplier_asian.cxx154
-rw-r--r--i18npool/source/indexentry/indexentrysupplier_common.cxx150
-rw-r--r--i18npool/source/indexentry/indexentrysupplier_default.cxx290
-rw-r--r--i18npool/source/indexentry/indexentrysupplier_ja_phonetic.cxx106
-rw-r--r--i18npool/source/indexentry/makefile.mk66
-rw-r--r--i18npool/source/inputchecker/inputsequencechecker.cxx166
-rw-r--r--i18npool/source/inputchecker/inputsequencechecker_hi.cxx148
-rw-r--r--i18npool/source/inputchecker/inputsequencechecker_th.cxx154
-rw-r--r--i18npool/source/inputchecker/makefile.mk51
-rw-r--r--i18npool/source/isolang/insys.cxx43
-rw-r--r--i18npool/source/isolang/inunx.cxx150
-rw-r--r--i18npool/source/isolang/inwnt.cxx107
-rw-r--r--i18npool/source/isolang/isolang.cxx1038
-rwxr-xr-xi18npool/source/isolang/langid.pl399
-rw-r--r--i18npool/source/isolang/lcid.awk171
-rw-r--r--i18npool/source/isolang/makefile.mk69
-rw-r--r--i18npool/source/isolang/mslangid.cxx456
-rw-r--r--i18npool/source/localedata/LocaleNode.cxx1790
-rw-r--r--i18npool/source/localedata/LocaleNode.hxx259
-rw-r--r--i18npool/source/localedata/data/af_NA.xml25
-rw-r--r--i18npool/source/localedata/data/af_ZA.xml186
-rw-r--r--i18npool/source/localedata/data/ak_GH.xml371
-rw-r--r--i18npool/source/localedata/data/am_ET.xml193
-rw-r--r--i18npool/source/localedata/data/ar_EG.xml523
-rw-r--r--i18npool/source/localedata/data/ar_LB.xml290
-rw-r--r--i18npool/source/localedata/data/ar_OM.xml357
-rw-r--r--i18npool/source/localedata/data/ar_SA.xml290
-rw-r--r--i18npool/source/localedata/data/ar_TN.xml290
-rw-r--r--i18npool/source/localedata/data/ast_ES.xml359
-rw-r--r--i18npool/source/localedata/data/az_AZ.xml339
-rw-r--r--i18npool/source/localedata/data/be_BY.xml334
-rw-r--r--i18npool/source/localedata/data/bg_BG.xml409
-rw-r--r--i18npool/source/localedata/data/bn_BD.xml178
-rw-r--r--i18npool/source/localedata/data/bn_IN.xml352
-rw-r--r--i18npool/source/localedata/data/br_FR.xml347
-rw-r--r--i18npool/source/localedata/data/bs_BA.xml457
-rw-r--r--i18npool/source/localedata/data/ca_ES.xml343
-rw-r--r--i18npool/source/localedata/data/cs_CZ.xml380
-rw-r--r--i18npool/source/localedata/data/currency-check.awk318
-rw-r--r--i18npool/source/localedata/data/cv_RU.xml341
-rw-r--r--i18npool/source/localedata/data/cy_GB.xml143
-rw-r--r--i18npool/source/localedata/data/da_DK.xml336
-rw-r--r--i18npool/source/localedata/data/de_AT.xml321
-rw-r--r--i18npool/source/localedata/data/de_CH.xml199
-rw-r--r--i18npool/source/localedata/data/de_DE.xml355
-rw-r--r--i18npool/source/localedata/data/de_LI.xml196
-rw-r--r--i18npool/source/localedata/data/de_LU.xml321
-rw-r--r--i18npool/source/localedata/data/dz_BT.xml509
-rw-r--r--i18npool/source/localedata/data/ee_GH.xml365
-rw-r--r--i18npool/source/localedata/data/el_GR.xml341
-rw-r--r--i18npool/source/localedata/data/en_AU.xml314
-rw-r--r--i18npool/source/localedata/data/en_BZ.xml65
-rw-r--r--i18npool/source/localedata/data/en_CA.xml206
-rw-r--r--i18npool/source/localedata/data/en_GB.xml240
-rw-r--r--i18npool/source/localedata/data/en_GH.xml365
-rw-r--r--i18npool/source/localedata/data/en_IE.xml79
-rw-r--r--i18npool/source/localedata/data/en_IN.xml43
-rw-r--r--i18npool/source/localedata/data/en_JM.xml314
-rw-r--r--i18npool/source/localedata/data/en_NA.xml322
-rw-r--r--i18npool/source/localedata/data/en_NZ.xml173
-rw-r--r--i18npool/source/localedata/data/en_PH.xml33
-rw-r--r--i18npool/source/localedata/data/en_TT.xml173
-rw-r--r--i18npool/source/localedata/data/en_US.xml566
-rw-r--r--i18npool/source/localedata/data/en_ZA.xml314
-rw-r--r--i18npool/source/localedata/data/en_ZW.xml173
-rw-r--r--i18npool/source/localedata/data/eo.xml346
-rw-r--r--i18npool/source/localedata/data/es_AR.xml209
-rw-r--r--i18npool/source/localedata/data/es_BO.xml220
-rw-r--r--i18npool/source/localedata/data/es_CL.xml206
-rw-r--r--i18npool/source/localedata/data/es_CO.xml199
-rw-r--r--i18npool/source/localedata/data/es_CR.xml218
-rw-r--r--i18npool/source/localedata/data/es_DO.xml243
-rw-r--r--i18npool/source/localedata/data/es_EC.xml206
-rw-r--r--i18npool/source/localedata/data/es_ES.xml349
-rw-r--r--i18npool/source/localedata/data/es_GT.xml243
-rw-r--r--i18npool/source/localedata/data/es_HN.xml36
-rw-r--r--i18npool/source/localedata/data/es_MX.xml36
-rw-r--r--i18npool/source/localedata/data/es_NI.xml58
-rw-r--r--i18npool/source/localedata/data/es_PA.xml43
-rw-r--r--i18npool/source/localedata/data/es_PE.xml243
-rw-r--r--i18npool/source/localedata/data/es_PR.xml36
-rw-r--r--i18npool/source/localedata/data/es_PY.xml36
-rw-r--r--i18npool/source/localedata/data/es_SV.xml36
-rw-r--r--i18npool/source/localedata/data/es_UY.xml58
-rw-r--r--i18npool/source/localedata/data/es_VE.xml43
-rw-r--r--i18npool/source/localedata/data/et_EE.xml341
-rw-r--r--i18npool/source/localedata/data/eu.xml353
-rw-r--r--i18npool/source/localedata/data/fa_IR.xml640
-rw-r--r--i18npool/source/localedata/data/fi_FI.xml342
-rw-r--r--i18npool/source/localedata/data/fo_FO.xml379
-rw-r--r--i18npool/source/localedata/data/fr_BE.xml206
-rw-r--r--i18npool/source/localedata/data/fr_CA.xml209
-rw-r--r--i18npool/source/localedata/data/fr_CH.xml206
-rw-r--r--i18npool/source/localedata/data/fr_FR.xml347
-rw-r--r--i18npool/source/localedata/data/fr_LU.xml203
-rw-r--r--i18npool/source/localedata/data/fr_MC.xml26
-rw-r--r--i18npool/source/localedata/data/fur_IT.xml358
-rw-r--r--i18npool/source/localedata/data/fy_NL.xml357
-rw-r--r--i18npool/source/localedata/data/ga_IE.xml186
-rw-r--r--i18npool/source/localedata/data/gl_ES.xml343
-rw-r--r--i18npool/source/localedata/data/gsc_FR.xml358
-rw-r--r--i18npool/source/localedata/data/gu_IN.xml173
-rw-r--r--i18npool/source/localedata/data/gug_PY.xml358
-rw-r--r--i18npool/source/localedata/data/ha_GH.xml368
-rw-r--r--i18npool/source/localedata/data/he_IL.xml472
-rw-r--r--i18npool/source/localedata/data/hi_IN.xml394
-rw-r--r--i18npool/source/localedata/data/hil_PH.xml359
-rw-r--r--i18npool/source/localedata/data/hr_HR.xml449
-rw-r--r--i18npool/source/localedata/data/hu_HU.xml342
-rw-r--r--i18npool/source/localedata/data/hy_AM.xml345
-rw-r--r--i18npool/source/localedata/data/ia.xml384
-rw-r--r--i18npool/source/localedata/data/id_ID.xml329
-rw-r--r--i18npool/source/localedata/data/is_IS.xml405
-rw-r--r--i18npool/source/localedata/data/it_CH.xml196
-rw-r--r--i18npool/source/localedata/data/it_IT.xml349
-rw-r--r--i18npool/source/localedata/data/ja_JP.xml591
-rw-r--r--i18npool/source/localedata/data/ka_GE.xml345
-rw-r--r--i18npool/source/localedata/data/kk_KZ.xml357
-rw-r--r--i18npool/source/localedata/data/kl_GL.xml335
-rw-r--r--i18npool/source/localedata/data/km_KH.xml437
-rw-r--r--i18npool/source/localedata/data/kn_IN.xml173
-rw-r--r--i18npool/source/localedata/data/ko_KR.xml668
-rw-r--r--i18npool/source/localedata/data/ku_TR.xml421
-rw-r--r--i18npool/source/localedata/data/ky_KG.xml334
-rw-r--r--i18npool/source/localedata/data/la_VA.xml349
-rw-r--r--i18npool/source/localedata/data/lb_LU.xml348
-rw-r--r--i18npool/source/localedata/data/lg_UG.xml358
-rw-r--r--i18npool/source/localedata/data/linkermapfile-check.awk105
-rw-r--r--i18npool/source/localedata/data/list-locales.awk75
-rw-r--r--i18npool/source/localedata/data/ln_CD.xml362
-rw-r--r--i18npool/source/localedata/data/lo_LA.xml520
-rw-r--r--i18npool/source/localedata/data/locale.dtd478
-rw-r--r--i18npool/source/localedata/data/localedata_en.map246
-rw-r--r--i18npool/source/localedata/data/localedata_es.map348
-rw-r--r--i18npool/source/localedata/data/localedata_euro.map1146
-rw-r--r--i18npool/source/localedata/data/localedata_others.map1282
-rw-r--r--i18npool/source/localedata/data/lt_LT.xml437
-rw-r--r--i18npool/source/localedata/data/lv_LV.xml462
-rw-r--r--i18npool/source/localedata/data/makefile.mk504
-rw-r--r--i18npool/source/localedata/data/mk_MK.xml413
-rw-r--r--i18npool/source/localedata/data/ml_IN.xml350
-rw-r--r--i18npool/source/localedata/data/mn_MN.xml378
-rwxr-xr-xi18npool/source/localedata/data/mr_IN.xml25
-rw-r--r--i18npool/source/localedata/data/ms_MY.xml188
-rw-r--r--i18npool/source/localedata/data/mt_MT.xml359
-rw-r--r--i18npool/source/localedata/data/my_MM.xml486
-rw-r--r--i18npool/source/localedata/data/nb_NO.xml25
-rw-r--r--i18npool/source/localedata/data/ne_NP.xml413
-rw-r--r--i18npool/source/localedata/data/nl_BE.xml210
-rw-r--r--i18npool/source/localedata/data/nl_NL.xml387
-rw-r--r--i18npool/source/localedata/data/nn_NO.xml71
-rw-r--r--i18npool/source/localedata/data/no_NO.xml388
-rw-r--r--i18npool/source/localedata/data/nr_ZA.xml158
-rw-r--r--i18npool/source/localedata/data/nso_ZA.xml149
-rw-r--r--i18npool/source/localedata/data/oc_FR.xml357
-rw-r--r--i18npool/source/localedata/data/om_ET.xml358
-rw-r--r--i18npool/source/localedata/data/or_IN.xml363
-rw-r--r--i18npool/source/localedata/data/pa_IN.xml195
-rw-r--r--i18npool/source/localedata/data/pl_PL.xml346
-rw-r--r--i18npool/source/localedata/data/pt_BR.xml240
-rw-r--r--i18npool/source/localedata/data/pt_PT.xml380
-rw-r--r--i18npool/source/localedata/data/ro_RO.xml390
-rw-r--r--i18npool/source/localedata/data/ru_RU.xml341
-rw-r--r--i18npool/source/localedata/data/rw_RW.xml384
-rw-r--r--i18npool/source/localedata/data/sc_IT.xml358
-rw-r--r--i18npool/source/localedata/data/sg_CF.xml358
-rw-r--r--i18npool/source/localedata/data/sh_ME.xml41
-rw-r--r--i18npool/source/localedata/data/sh_RS.xml236
-rw-r--r--i18npool/source/localedata/data/sh_YU.xml41
-rw-r--r--i18npool/source/localedata/data/shs_CA.xml414
-rw-r--r--i18npool/source/localedata/data/sk_SK.xml460
-rw-r--r--i18npool/source/localedata/data/sl_SI.xml422
-rw-r--r--i18npool/source/localedata/data/so_SO.xml365
-rw-r--r--i18npool/source/localedata/data/sr_ME.xml41
-rw-r--r--i18npool/source/localedata/data/sr_RS.xml441
-rw-r--r--i18npool/source/localedata/data/sr_YU.xml41
-rw-r--r--i18npool/source/localedata/data/ss_ZA.xml143
-rw-r--r--i18npool/source/localedata/data/st_ZA.xml143
-rw-r--r--i18npool/source/localedata/data/sv_FI.xml321
-rw-r--r--i18npool/source/localedata/data/sv_SE.xml342
-rw-r--r--i18npool/source/localedata/data/sw_TZ.xml347
-rw-r--r--i18npool/source/localedata/data/ta_IN.xml173
-rw-r--r--i18npool/source/localedata/data/te_IN.xml172
-rw-r--r--i18npool/source/localedata/data/tg_TJ.xml341
-rw-r--r--i18npool/source/localedata/data/th_TH.xml674
-rw-r--r--i18npool/source/localedata/data/ti_ER.xml334
-rw-r--r--i18npool/source/localedata/data/tk_TM.xml358
-rw-r--r--i18npool/source/localedata/data/tn_ZA.xml143
-rw-r--r--i18npool/source/localedata/data/tpi_PG.xml358
-rw-r--r--i18npool/source/localedata/data/tr_TR.xml343
-rw-r--r--i18npool/source/localedata/data/ts_ZA.xml164
-rw-r--r--i18npool/source/localedata/data/ug_CN.xml364
-rw-r--r--i18npool/source/localedata/data/uk_UA.xml460
-rw-r--r--i18npool/source/localedata/data/uz_UZ.xml334
-rw-r--r--i18npool/source/localedata/data/ve_ZA.xml164
-rw-r--r--i18npool/source/localedata/data/vi_VN.xml414
-rw-r--r--i18npool/source/localedata/data/wa_BE.xml342
-rw-r--r--i18npool/source/localedata/data/xh_ZA.xml158
-rw-r--r--i18npool/source/localedata/data/zh_CN.xml518
-rw-r--r--i18npool/source/localedata/data/zh_HK.xml276
-rw-r--r--i18npool/source/localedata/data/zh_MO.xml265
-rw-r--r--i18npool/source/localedata/data/zh_SG.xml262
-rw-r--r--i18npool/source/localedata/data/zh_TW.xml447
-rw-r--r--i18npool/source/localedata/data/zu_ZA.xml143
-rw-r--r--i18npool/source/localedata/filewriter.cxx213
-rw-r--r--i18npool/source/localedata/localedata.cxx1467
-rw-r--r--i18npool/source/localedata/makefile.mk84
-rw-r--r--i18npool/source/localedata/saxparser.cxx427
-rw-r--r--i18npool/source/nativenumber/data/numberchar.h277
-rw-r--r--i18npool/source/nativenumber/makefile.mk49
-rw-r--r--i18npool/source/nativenumber/nativenumbersupplier.cxx917
-rw-r--r--i18npool/source/numberformatcode/makefile.mk49
-rw-r--r--i18npool/source/numberformatcode/numberformatcode.cxx304
-rw-r--r--i18npool/source/ordinalsuffix/makefile.mk50
-rw-r--r--i18npool/source/ordinalsuffix/ordinalsuffix.cxx117
-rw-r--r--i18npool/source/paper/makefile.mk71
-rw-r--r--i18npool/source/paper/paper.cxx475
-rw-r--r--i18npool/source/registerservices/makefile.mk46
-rw-r--r--i18npool/source/registerservices/registerservices.cxx627
-rw-r--r--i18npool/source/search/i18nsearch.map10
-rw-r--r--i18npool/source/search/levdis.cxx779
-rw-r--r--i18npool/source/search/levdis.hxx229
-rw-r--r--i18npool/source/search/makefile.mk78
-rw-r--r--i18npool/source/search/textsearch.cxx1038
-rw-r--r--i18npool/source/search/textsearch.hxx154
-rw-r--r--i18npool/source/textconversion/data/hhc_char.dic502
-rw-r--r--i18npool/source/textconversion/data/makefile.mk68
-rw-r--r--i18npool/source/textconversion/data/stc_char.dic2565
-rw-r--r--i18npool/source/textconversion/data/stc_word.dic1149
-rw-r--r--i18npool/source/textconversion/data/textconv_dict.map23
-rw-r--r--i18npool/source/textconversion/genconv_dict.cxx483
-rw-r--r--i18npool/source/textconversion/makefile.mk59
-rw-r--r--i18npool/source/textconversion/textconversion.cxx91
-rw-r--r--i18npool/source/textconversion/textconversionImpl.cxx145
-rw-r--r--i18npool/source/textconversion/textconversion_ko.cxx343
-rw-r--r--i18npool/source/textconversion/textconversion_zh.cxx296
-rw-r--r--i18npool/source/transliteration/chartonum.cxx64
-rw-r--r--i18npool/source/transliteration/data/numberchar.h163
-rw-r--r--i18npool/source/transliteration/fullwidthToHalfwidth.cxx155
-rw-r--r--i18npool/source/transliteration/halfwidthToFullwidth.cxx135
-rw-r--r--i18npool/source/transliteration/hiraganaToKatakana.cxx61
-rw-r--r--i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx59
-rw-r--r--i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx60
-rw-r--r--i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx149
-rw-r--r--i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx157
-rw-r--r--i18npool/source/transliteration/ignoreKana.cxx71
-rw-r--r--i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx106
-rw-r--r--i18npool/source/transliteration/ignoreMiddleDot_ja_JP.cxx60
-rw-r--r--i18npool/source/transliteration/ignoreMinusSign_ja_JP.cxx67
-rw-r--r--i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx365
-rw-r--r--i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx65
-rw-r--r--i18npool/source/transliteration/ignoreSeparator_ja_JP.cxx126
-rw-r--r--i18npool/source/transliteration/ignoreSize_ja_JP.cxx72
-rw-r--r--i18npool/source/transliteration/ignoreSpace_ja_JP.cxx67
-rw-r--r--i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx70
-rw-r--r--i18npool/source/transliteration/ignoreTraditionalKana_ja_JP.cxx68
-rw-r--r--i18npool/source/transliteration/ignoreTraditionalKanji_ja_JP.cxx747
-rw-r--r--i18npool/source/transliteration/ignoreWidth.cxx72
-rw-r--r--i18npool/source/transliteration/ignoreZiZu_ja_JP.cxx68
-rw-r--r--i18npool/source/transliteration/katakanaToHiragana.cxx58
-rw-r--r--i18npool/source/transliteration/largeToSmall_ja_JP.cxx93
-rw-r--r--i18npool/source/transliteration/makefile.mk84
-rw-r--r--i18npool/source/transliteration/numtochar.cxx69
-rw-r--r--i18npool/source/transliteration/numtotext_cjk.cxx92
-rw-r--r--i18npool/source/transliteration/smallToLarge_ja_JP.cxx93
-rw-r--r--i18npool/source/transliteration/textToPronounce_zh.cxx168
-rw-r--r--i18npool/source/transliteration/texttonum.cxx64
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx685
-rw-r--r--i18npool/source/transliteration/transliteration_Ignore.cxx220
-rw-r--r--i18npool/source/transliteration/transliteration_Numeric.cxx149
-rw-r--r--i18npool/source/transliteration/transliteration_OneToOne.cxx108
-rw-r--r--i18npool/source/transliteration/transliteration_body.cxx261
-rw-r--r--i18npool/source/transliteration/transliteration_caseignore.cxx172
-rw-r--r--i18npool/source/transliteration/transliteration_commonclass.cxx164
-rw-r--r--i18npool/util/i18npool.map10
-rw-r--r--i18npool/util/makefile.mk80
-rw-r--r--i18npool/util/makefile.pmk31
-rw-r--r--i18npool/version.mk40
-rw-r--r--i18npool/xml/BreakIterator.xml82
-rw-r--r--i18npool/xml/Calendar.xml54
-rw-r--r--i18npool/xml/ChapterCollator.xml35
-rw-r--r--i18npool/xml/CharacterClassification.xml52
-rw-r--r--i18npool/xml/Collator.xml35
-rw-r--r--i18npool/xml/DefaultNumberingProvider.xml52
-rw-r--r--i18npool/xml/IndexEntrySupplier.xml53
-rw-r--r--i18npool/xml/LocaleData.xml60
-rw-r--r--i18npool/xml/NumberFormatCodeMapper.xml64
-rw-r--r--i18npool/xml/OrdinalSuffix.xml34
-rw-r--r--i18npool/xml/TextSearch.xml52
-rw-r--r--i18npool/xml/Transliteration.xml73
-rw-r--r--i18nutil/inc/i18nutil/casefolding.hxx84
-rw-r--r--i18nutil/inc/i18nutil/oneToOneMapping.hxx100
-rw-r--r--i18nutil/inc/i18nutil/unicode.hxx67
-rw-r--r--i18nutil/inc/i18nutil/widthfolding.hxx59
-rw-r--r--i18nutil/inc/i18nutil/x_rtl_ustring.h78
-rw-r--r--i18nutil/prj/build.lst3
-rw-r--r--i18nutil/prj/d.lst13
-rw-r--r--i18nutil/source/utility/casefolding.cxx167
-rw-r--r--i18nutil/source/utility/casefolding_data.h865
-rw-r--r--i18nutil/source/utility/makefile.mk78
-rw-r--r--i18nutil/source/utility/oneToOneMapping.cxx161
-rw-r--r--i18nutil/source/utility/unicode.cxx494
-rw-r--r--i18nutil/source/utility/unicode_data.h1650
-rw-r--r--i18nutil/source/utility/widthfolding.cxx301
-rw-r--r--i18nutil/source/utility/widthfolding_data.h959
-rw-r--r--icc/README39
-rw-r--r--icc/SampleICC-1.3.2.patch5146
-rw-r--r--icc/makefile.mk57
-rw-r--r--icc/makefiles.zipbin0 -> 4073 bytes
-rw-r--r--icc/prj/build.lst3
-rw-r--r--icc/prj/d.lst5
-rw-r--r--icc/source/create_sRGB_profile/Makefile.am13
-rw-r--r--icc/source/create_sRGB_profile/Makefile.in378
-rw-r--r--icc/source/create_sRGB_profile/create_sRGB_profile.cpp551
-rw-r--r--icu/Readme4
-rw-r--r--icu/createmak.cfg455
-rw-r--r--icu/createmak.pl1109
-rw-r--r--icu/icu4c-4_0_1-src.patch247
-rwxr-xr-xicu/icuversion.mk33
-rw-r--r--icu/makefile.mk270
-rw-r--r--icu/prj/build.lst4
-rw-r--r--icu/prj/d.lst36
-rw-r--r--idl/inc/attrib.hxx77
-rw-r--r--idl/inc/basobj.hxx294
-rw-r--r--idl/inc/bastype.hxx290
-rw-r--r--idl/inc/char.hxx41
-rw-r--r--idl/inc/command.hxx78
-rw-r--r--idl/inc/database.hxx182
-rw-r--r--idl/inc/globals.hxx242
-rw-r--r--idl/inc/hash.hxx125
-rw-r--r--idl/inc/lex.hxx271
-rw-r--r--idl/inc/makefile.mk47
-rw-r--r--idl/inc/module.hxx117
-rw-r--r--idl/inc/object.hxx170
-rw-r--r--idl/inc/pch/precompiled_idl.cxx29
-rw-r--r--idl/inc/pch/precompiled_idl.hxx32
-rw-r--r--idl/inc/slot.hxx279
-rw-r--r--idl/inc/types.hxx345
-rw-r--r--idl/prj/build.lst8
-rw-r--r--idl/prj/d.lst2
-rw-r--r--idl/source/cmptools/char.cxx107
-rw-r--r--idl/source/cmptools/hash.cxx331
-rw-r--r--idl/source/cmptools/lex.cxx511
-rw-r--r--idl/source/cmptools/makefile.mk47
-rw-r--r--idl/source/objects/basobj.cxx786
-rw-r--r--idl/source/objects/bastype.cxx611
-rw-r--r--idl/source/objects/makefile.mk50
-rw-r--r--idl/source/objects/module.cxx688
-rw-r--r--idl/source/objects/object.cxx1047
-rw-r--r--idl/source/objects/slot.cxx1820
-rw-r--r--idl/source/objects/types.cxx2699
-rw-r--r--idl/source/prj/command.cxx433
-rw-r--r--idl/source/prj/database.cxx1044
-rw-r--r--idl/source/prj/globals.cxx199
-rw-r--r--idl/source/prj/idldll.cxx79
-rw-r--r--idl/source/prj/makefile.mk50
-rw-r--r--idl/source/prj/svidl.cxx447
-rw-r--r--idl/source/svidl.datbin0 -> 204 bytes
-rw-r--r--idl/util/idlpch.cxx49
-rw-r--r--idl/util/makefile.mk68
-rw-r--r--idl/util/svidl.hdb25
-rw-r--r--idlc/inc/idlc/astarray.hxx62
-rw-r--r--idlc/inc/idlc/astattribute.hxx121
-rw-r--r--idlc/inc/idlc/astbasetype.hxx62
-rw-r--r--idlc/inc/idlc/astconstant.hxx57
-rw-r--r--idlc/inc/idlc/astconstants.hxx42
-rw-r--r--idlc/inc/idlc/astdeclaration.hxx148
-rw-r--r--idlc/inc/idlc/astenum.hxx57
-rw-r--r--idlc/inc/idlc/astexception.hxx43
-rw-r--r--idlc/inc/idlc/astexpression.hxx186
-rw-r--r--idlc/inc/idlc/astinterface.hxx143
-rw-r--r--idlc/inc/idlc/astinterfacemember.hxx53
-rw-r--r--idlc/inc/idlc/astmember.hxx57
-rw-r--r--idlc/inc/idlc/astmodule.hxx51
-rw-r--r--idlc/inc/idlc/astneeds.hxx48
-rw-r--r--idlc/inc/idlc/astobserves.hxx48
-rw-r--r--idlc/inc/idlc/astoperation.hxx76
-rw-r--r--idlc/inc/idlc/astparameter.hxx54
-rw-r--r--idlc/inc/idlc/astscope.hxx78
-rw-r--r--idlc/inc/idlc/astsequence.hxx59
-rw-r--r--idlc/inc/idlc/astservice.hxx60
-rw-r--r--idlc/inc/idlc/astservicemember.hxx53
-rw-r--r--idlc/inc/idlc/aststack.hxx56
-rw-r--r--idlc/inc/idlc/aststruct.hxx69
-rw-r--r--idlc/inc/idlc/aststructinstance.hxx56
-rw-r--r--idlc/inc/idlc/asttype.hxx45
-rw-r--r--idlc/inc/idlc/asttypedef.hxx53
-rw-r--r--idlc/inc/idlc/astunion.hxx68
-rw-r--r--idlc/inc/idlc/astunionbranch.hxx46
-rw-r--r--idlc/inc/idlc/astunionlabel.hxx52
-rw-r--r--idlc/inc/idlc/errorhandler.hxx157
-rw-r--r--idlc/inc/idlc/fehelper.hxx98
-rw-r--r--idlc/inc/idlc/idlc.hxx168
-rw-r--r--idlc/inc/idlc/idlctypes.hxx266
-rw-r--r--idlc/inc/idlc/inheritedinterface.hxx61
-rw-r--r--idlc/inc/idlc/options.hxx82
-rw-r--r--idlc/inc/makefile.mk47
-rw-r--r--idlc/inc/pch/precompiled_idlc.cxx29
-rw-r--r--idlc/inc/pch/precompiled_idlc.hxx32
-rw-r--r--idlc/prj/build.lst5
-rw-r--r--idlc/prj/d.lst7
-rw-r--r--idlc/source/astarray.cxx74
-rw-r--r--idlc/source/astconstant.cxx136
-rw-r--r--idlc/source/astdeclaration.cxx211
-rw-r--r--idlc/source/astdump.cxx450
-rw-r--r--idlc/source/astenum.cxx125
-rw-r--r--idlc/source/astexpression.cxx1266
-rw-r--r--idlc/source/astinterface.cxx427
-rw-r--r--idlc/source/astoperation.cxx153
-rw-r--r--idlc/source/astscope.cxx356
-rw-r--r--idlc/source/astservice.cxx70
-rw-r--r--idlc/source/aststack.cxx137
-rw-r--r--idlc/source/aststruct.cxx191
-rw-r--r--idlc/source/aststructinstance.cxx70
-rw-r--r--idlc/source/astunion.cxx401
-rw-r--r--idlc/source/attributeexceptions.hxx42
-rw-r--r--idlc/source/errorhandler.cxx695
-rw-r--r--idlc/source/fehelper.cxx144
-rw-r--r--idlc/source/idlc.cxx341
-rw-r--r--idlc/source/idlccompile.cxx418
-rw-r--r--idlc/source/idlcmain.cxx148
-rw-r--r--idlc/source/idlcproduce.cxx218
-rw-r--r--idlc/source/makefile.mk133
-rw-r--r--idlc/source/options.cxx371
-rw-r--r--idlc/source/parser.y3292
-rw-r--r--idlc/source/preproc/cpp.c498
-rw-r--r--idlc/source/preproc/cpp.h216
-rw-r--r--idlc/source/preproc/eval.c790
-rw-r--r--idlc/source/preproc/getopt.c94
-rw-r--r--idlc/source/preproc/include.c256
-rw-r--r--idlc/source/preproc/lex.c695
-rw-r--r--idlc/source/preproc/macro.c700
-rw-r--r--idlc/source/preproc/makefile.mk70
-rw-r--r--idlc/source/preproc/nlist.c146
-rw-r--r--idlc/source/preproc/tokens.c532
-rw-r--r--idlc/source/preproc/unix.c248
-rw-r--r--idlc/source/scanner.ll523
-rw-r--r--idlc/source/wrap_parser.cxx31
-rw-r--r--idlc/source/wrap_scanner.cxx31
-rw-r--r--idlc/test/const.idl50
-rw-r--r--idlc/test/enum.idl24
-rw-r--r--idlc/test/exception.idl20
-rw-r--r--idlc/test/identifiers.idl22
-rw-r--r--idlc/test/interface.idl51
-rw-r--r--idlc/test/parser/attribute.tests223
-rw-r--r--idlc/test/parser/constant.tests295
-rw-r--r--idlc/test/parser/constructor.tests199
-rw-r--r--idlc/test/parser/interfaceinheritance.tests280
-rw-r--r--idlc/test/parser/makefile.mk55
-rw-r--r--idlc/test/parser/methodoverload.tests124
-rw-r--r--idlc/test/parser/polystruct.tests255
-rw-r--r--idlc/test/parser/published.tests708
-rw-r--r--idlc/test/parser/struct.tests55
-rw-r--r--idlc/test/parser/typedef.tests67
-rw-r--r--idlc/test/service.idl44
-rw-r--r--idlc/test/singleton.idl41
-rw-r--r--idlc/test/struct.idl107
-rw-r--r--idlc/test/typelookup.idl63
-rw-r--r--idlc/test/union.idl35
-rw-r--r--install-sh276
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ActionTe.idt73
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/AdminExe.idt13
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/AdminUIS.idt14
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/AdvtExec.idt19
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary.idt20
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/Banner.bmpbin0 -> 7112 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/Image.bmpbin0 -> 52248 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/caution.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/dontinstall.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/install.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/installfirstuse.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/installpartial.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/installstatemenu.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/networkinstall.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/newfolder.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/openfolder.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/setup.icobin0 -> 11502 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/setupcomplete.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/setuppartial.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/setuprepair.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/trashcan.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Binary/up.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/CheckBox.idt4
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Control.idt380
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlC.idt70
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ControlE.idt140
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/CustomAc.idt13
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Dialog.idt33
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Error.idt133
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/EventMap.idt19
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallE.idt77
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/InstallU.idt30
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/LaunchCo.idt4
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ListBox.idt3
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/Property.idt56
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/RadioBut.idt11
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/TextStyl.idt25
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/UIText.idt53
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/_Validat.idt461
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/bro_patchcodes.txt3
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/brodev_patchcodes.txt3
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/codes.txt152
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/codes_broo.txt67
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/codes_ooodev.txt152
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/components.txt0
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ooo_patchcodes.txt3
-rw-r--r--instsetoo_native/inc_ooolangpack/windows/msi_templates/ooodev_patchcodes.txt3
-rw-r--r--instsetoo_native/inc_openoffice/unix/find-requires-gnome.sh7
-rw-r--r--instsetoo_native/inc_openoffice/unix/find-requires-x11.sh6
-rw-r--r--instsetoo_native/inc_openoffice/unix/makefile.mk55
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/ActionTe.ulf373
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf736
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/CustomAc.ulf11
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/Error.ulf391
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/LaunchCo.ulf4
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/Nsis.ulf41
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/Property.ulf47
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/RadioBut.ulf27
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/SIS.ulf18
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/UIText.ulf148
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_languages/makefile.mk62
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ActionTe.idt73
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AdminExe.idt16
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AdminUIS.idt14
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AdvtExec.idt19
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/AppSearc.idt17
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary.idt20
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/Banner.bmpbin0 -> 7112 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/Image.bmpbin0 -> 52248 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/caution.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/dontinstall.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/install.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/installfirstuse.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/installpartial.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/installstatemenu.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/networkinstall.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/newfolder.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/openfolder.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/setup.icobin0 -> 11502 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/setupcomplete.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/setuppartial.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/setuprepair.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/trashcan.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Binary/up.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/CheckBox.idt6
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt395
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt73
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ControlE.idt153
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/CustomAc.idt134
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Dialog.idt36
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Error.idt133
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/EventMap.idt18
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/InstallE.idt194
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/InstallU.idt31
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/LaunchCo.idt5
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/ListBox.idt3
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt58
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/RadioBut.idt12
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/RegLocat.idt11
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/Signatur.idt3
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/TextStyl.idt25
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/UIText.idt53
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/_Validat.idt461
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/codes.txt37
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/codes_broo.txt5
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/codes_broodev.txt5
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/codes_ooodev.txt37
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/components.txt0
-rw-r--r--instsetoo_native/inc_openoffice/windows/msi_templates/upgradecode_remove_ooo.txt121
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/ActionTe.idt73
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/AdminExe.idt13
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/AdminUIS.idt14
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/AdvtExec.idt19
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/AppSearc.idt5
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary.idt20
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/Banner.bmpbin0 -> 7112 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/Image.bmpbin0 -> 154544 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/caution.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/dontinstall.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/install.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/installfirstuse.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/installpartial.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/installstatemenu.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/networkinstall.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/newfolder.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/openfolder.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/setup.icobin0 -> 11502 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/setupcomplete.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/setuppartial.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/setuprepair.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/trashcan.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Binary/up.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/CheckBox.idt4
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Control.idt377
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/ControlC.idt70
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/ControlE.idt140
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/CustomAc.idt8
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Dialog.idt33
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Error.idt133
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/EventMap.idt18
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/InstallE.idt72
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/InstallU.idt29
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/LaunchCo.idt4
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/ListBox.idt3
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Property.idt56
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/RadioBut.idt12
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/RegLocat.idt5
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/Signatur.idt3
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/TextStyl.idt25
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/UIText.idt53
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/_Validat.idt461
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/codes.txt36
-rw-r--r--instsetoo_native/inc_sdkoo/windows/msi_templates/components.txt0
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/ActionTe.idt73
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/AdminExe.idt14
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/AdminUIS.idt14
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/AdvtExec.idt19
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/AppSearc.idt3
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary.idt20
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/Banner.bmpbin0 -> 7112 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/Image.bmpbin0 -> 52248 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/caution.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/dontinstall.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/install.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/installfirstuse.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/installpartial.icobin0 -> 766 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/installstatemenu.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/networkinstall.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/newfolder.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/openfolder.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/setup.icobin0 -> 11502 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/setupcomplete.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/setuppartial.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/setuprepair.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/trashcan.icobin0 -> 3262 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Binary/up.icobin0 -> 894 bytes
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/CheckBox.idt4
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Control.idt377
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/ControlC.idt70
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/ControlE.idt140
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/CustomAc.idt11
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Dialog.idt33
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Error.idt133
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/EventMap.idt18
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/InstallE.idt75
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/InstallU.idt31
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/LaunchCo.idt4
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/ListBox.idt3
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Property.idt57
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/RadioBut.idt12
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/RegLocat.idt3
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/Signatur.idt3
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/TextStyl.idt25
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/UIText.idt53
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/_Validat.idt461
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/codes.txt36
-rw-r--r--instsetoo_native/inc_ure/windows/msi_templates/components.txt0
-rw-r--r--instsetoo_native/macosx/application/PostInstall.applescript290
-rw-r--r--instsetoo_native/macosx/application/main.applescript363
-rw-r--r--instsetoo_native/macosx/delzip0
-rwxr-xr-xinstsetoo_native/macosx/make_versioned.sh61
-rw-r--r--instsetoo_native/macosx/makefile.mk85
-rw-r--r--instsetoo_native/prj/build.lst6
-rw-r--r--instsetoo_native/prj/d.lst4
-rw-r--r--instsetoo_native/res/DS_Storebin0 -> 12292 bytes
-rw-r--r--instsetoo_native/res/DS_Store_Langpackbin0 -> 12292 bytes
-rw-r--r--instsetoo_native/res/nologoinstall.bmpbin0 -> 52244 bytes
-rw-r--r--instsetoo_native/res/osxdndinstall.pngbin0 -> 65495 bytes
-rw-r--r--instsetoo_native/util/makefile.mk412
-rw-r--r--instsetoo_native/util/openoffice.lst582
-rwxr-xr-xinstsetoo_native/util/pack.lst24
-rw-r--r--instsetoo_native/util/update.xml10
-rw-r--r--io/inc/makefile.mk49
-rw-r--r--io/inc/pch/precompiled_io.cxx29
-rw-r--r--io/inc/pch/precompiled_io.hxx32
-rw-r--r--io/prj/build.lst8
-rw-r--r--io/prj/d.lst7
-rw-r--r--io/source/TextInputStream/TextInputStream.cxx537
-rw-r--r--io/source/TextInputStream/makefile.mk61
-rw-r--r--io/source/TextInputStream/tinstrm.map9
-rw-r--r--io/source/TextOutputStream/TextOutputStream.cxx335
-rw-r--r--io/source/TextOutputStream/makefile.mk62
-rw-r--r--io/source/TextOutputStream/toutstrm.map9
-rw-r--r--io/source/acceptor/acc_pipe.cxx224
-rw-r--r--io/source/acceptor/acc_socket.cxx416
-rw-r--r--io/source/acceptor/acceptor.cxx383
-rw-r--r--io/source/acceptor/acceptor.hxx78
-rw-r--r--io/source/acceptor/acceptor.map9
-rw-r--r--io/source/acceptor/acceptor.xml44
-rw-r--r--io/source/acceptor/makefile.mk73
-rw-r--r--io/source/connector/connector.cxx295
-rw-r--r--io/source/connector/connector.hxx144
-rw-r--r--io/source/connector/connectr.map9
-rw-r--r--io/source/connector/connectr.xml44
-rw-r--r--io/source/connector/ctr_pipe.cxx118
-rw-r--r--io/source/connector/ctr_socket.cxx255
-rw-r--r--io/source/connector/makefile.mk73
-rw-r--r--io/source/stm/factreg.cxx125
-rw-r--r--io/source/stm/factreg.hxx66
-rw-r--r--io/source/stm/makefile.mk77
-rw-r--r--io/source/stm/odata.cxx1664
-rw-r--r--io/source/stm/omark.cxx1015
-rw-r--r--io/source/stm/opipe.cxx492
-rw-r--r--io/source/stm/opump.cxx504
-rw-r--r--io/source/stm/stm.map9
-rw-r--r--io/source/stm/stm.xml280
-rw-r--r--io/source/stm/streamhelper.cxx244
-rw-r--r--io/source/stm/streamhelper.hxx162
-rw-r--r--io/test/makefile.mk92
-rw-r--r--io/test/stm/datatest.cxx1123
-rw-r--r--io/test/stm/exports.dxp3
-rw-r--r--io/test/stm/makefile.mk99
-rw-r--r--io/test/stm/marktest.cxx677
-rw-r--r--io/test/stm/pipetest.cxx439
-rw-r--r--io/test/stm/pumptest.cxx449
-rw-r--r--io/test/stm/testfactreg.cxx216
-rw-r--r--io/test/stm/testfactreg.hxx119
-rw-r--r--io/test/testcomponent.cxx217
-rw-r--r--io/test/testconnection.cxx286
-rwxr-xr-xjavainstaller2/build.xml105
-rwxr-xr-xjavainstaller2/makefile.mk35
-rwxr-xr-xjavainstaller2/nbproject/private/private.xml4
-rwxr-xr-xjavainstaller2/nbproject/project.xml56
-rwxr-xr-xjavainstaller2/prj/build.lst5
-rwxr-xr-xjavainstaller2/prj/d.lst2
-rwxr-xr-xjavainstaller2/src/Helpfiles/create_helpfiles.pl268
-rwxr-xr-xjavainstaller2/src/Helpfiles/helpfilenames.txt43
-rwxr-xr-xjavainstaller2/src/Helpfiles/makefile.mk50
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/AcceptLicenseCtrl.java77
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/ChooseComponentsCtrl.java204
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/ChooseDirectoryCtrl.java256
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/ChooseInstallationTypeCtrl.java174
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/ChooseUninstallationComponentsCtrl.java131
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/ChooseUninstallationTypeCtrl.java133
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationCompletedCtrl.java111
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationImminentCtrl.java155
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/InstallationOngoingCtrl.java195
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/PrologueCtrl.java200
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/UninstallationCompletedCtrl.java103
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/UninstallationImminentCtrl.java112
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/UninstallationOngoingCtrl.java146
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Controller/UninstallationPrologueCtrl.java186
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/DeckOfPanels.java54
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Dialogs/DatabaseDialog.java64
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Dialogs/DetailsDialog.java139
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Dialogs/HelpDialog.java166
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/Back.gifbin0 -> 91 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/DontInstall.pngbin0 -> 154 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/DontKnow.pngbin0 -> 180 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/Forward.gifbin0 -> 91 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/Install.pngbin0 -> 163 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/Installed.pngbin0 -> 110 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Icons/Remove.pngbin0 -> 198 bytes
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java719
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/Installer.java79
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/InstallerFactory.java67
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java718
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/SolarisInstaller.java574
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java507
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/SolarisHelper.java404
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Main.java98
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/AcceptLicense.java104
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/ChooseComponents.java189
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/ChooseDirectory.java185
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/ChooseInstallationType.java180
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/ChooseUninstallationComponents.java182
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/ChooseUninstallationType.java176
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/InstallationImminent.java115
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/InstallationOngoing.java121
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/Prologue.java76
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/UninstallationCompleted.java108
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/UninstallationImminent.java110
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/UninstallationOngoing.java109
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/UninstallationPrologue.java62
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Panel/installationCompleted.java107
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/PanelController.java97
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/PanelHelper/PanelLabel.java82
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/PanelHelper/PanelTitle.java116
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/PanelHelper/TreeNodeRenderer.java89
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/ResourceManager.java171
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupActionListener.java116
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/DisplayPackageDescription.java200
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/PackageDescription.java659
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/ProductDescription.java277
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/SetupDataProvider.java109
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupData/XMLPackageDescription.java307
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/SetupFrame.java300
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/AbortInstaller.java52
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Calculator.java88
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Controller.java291
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Converter.java95
-rw-r--r--javainstaller2/src/JavaSetup/org/openoffice/setup/Util/DialogFocusTraversalPolicy.java115
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Dumper.java202
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/ExecuteProcess.java114
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/FileExtensionFilter.java53
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/InfoCtrl.java163
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/InfoDir.java319
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Informer.java45
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/InstallChangeCtrl.java137
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/LogManager.java105
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/ModuleCtrl.java1004
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/PackageCollector.java179
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/Parser.java49
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Util/SystemManager.java484
-rwxr-xr-xjavainstaller2/src/Localization/makefile.mk52
-rwxr-xr-xjavainstaller2/src/Localization/setupstrings.ulf455
-rwxr-xr-xjavainstaller2/src/Properties/create_property.pl303
-rwxr-xr-xjavainstaller2/src/Properties/makefile.mk50
-rwxr-xr-xjavainstaller2/src/Properties/setupfiles_template.properties25
-rwxr-xr-xjavainstaller2/src/Properties/setupstrings_template.properties122
-rw-r--r--javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java81
-rw-r--r--javaunohelper/com/sun/star/comp/helper/Bootstrap.java329
-rw-r--r--javaunohelper/com/sun/star/comp/helper/BootstrapException.java91
-rw-r--r--javaunohelper/com/sun/star/comp/helper/ComponentContext.java310
-rw-r--r--javaunohelper/com/sun/star/comp/helper/ComponentContextEntry.java73
-rw-r--r--javaunohelper/com/sun/star/comp/helper/RegistryServiceFactory.java168
-rw-r--r--javaunohelper/com/sun/star/comp/helper/SharedLibraryLoader.java159
-rw-r--r--javaunohelper/com/sun/star/comp/helper/UnoInfo.java115
-rw-r--r--javaunohelper/com/sun/star/comp/helper/makefile.mk54
-rw-r--r--javaunohelper/com/sun/star/comp/juhtest/SmoketestCommandEnvironment.java151
-rw-r--r--javaunohelper/com/sun/star/comp/juhtest/makefile.mk50
-rw-r--r--javaunohelper/com/sun/star/comp/makefile.mk49
-rwxr-xr-xjavaunohelper/com/sun/star/lib/uno/adapter/ByteArrayToXInputStreamAdapter.java161
-rw-r--r--javaunohelper/com/sun/star/lib/uno/adapter/InputStreamToXInputStreamAdapter.java166
-rw-r--r--javaunohelper/com/sun/star/lib/uno/adapter/OutputStreamToXOutputStreamAdapter.java87
-rw-r--r--javaunohelper/com/sun/star/lib/uno/adapter/XInputStreamToInputStreamAdapter.java207
-rwxr-xr-xjavaunohelper/com/sun/star/lib/uno/adapter/XOutputStreamToByteArrayAdapter.java121
-rw-r--r--javaunohelper/com/sun/star/lib/uno/adapter/XOutputStreamToOutputStreamAdapter.java111
-rw-r--r--javaunohelper/com/sun/star/lib/uno/adapter/makefile.mk54
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/ComponentBase.java141
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/Factory.java244
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/InterfaceContainer.java856
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer.java165
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/PropertySet.java1099
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/PropertySetMixin.java1093
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/UnoUrl.java412
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/WeakAdapter.java102
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/WeakBase.java143
-rw-r--r--javaunohelper/com/sun/star/lib/uno/helper/makefile.mk49
-rw-r--r--javaunohelper/inc/makefile.mk47
-rw-r--r--javaunohelper/inc/pch/precompiled_javaunohelper.cxx29
-rw-r--r--javaunohelper/inc/pch/precompiled_javaunohelper.hxx32
-rw-r--r--javaunohelper/prj/build.lst10
-rw-r--r--javaunohelper/prj/d.lst6
-rw-r--r--javaunohelper/source/bootstrap.cxx189
-rw-r--r--javaunohelper/source/javaunohelper.cxx323
-rw-r--r--javaunohelper/source/javaunohelper.map9
-rw-r--r--javaunohelper/source/makefile.mk134
-rw-r--r--javaunohelper/source/preload.cxx158
-rw-r--r--javaunohelper/source/vm.cxx147
-rw-r--r--javaunohelper/source/vm.hxx55
-rw-r--r--javaunohelper/test/com/sun/star/comp/helper/Bootstrap_Test.java117
-rw-r--r--javaunohelper/test/com/sun/star/comp/helper/ComponentContext_Test.java99
-rw-r--r--javaunohelper/test/com/sun/star/comp/helper/RegistryServiceFactory_Test.java100
-rw-r--r--javaunohelper/test/com/sun/star/comp/helper/SharedLibraryLoader_Test.java194
-rw-r--r--javaunohelper/test/com/sun/star/comp/helper/makefile.mk52
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/AWeakBase.java50
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/ComponentBase_Test.java153
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/Factory_Test.java207
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/InterfaceContainer_Test.java992
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/MultiTypeInterfaceContainer_Test.java372
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/PropertySet_Test.java1693
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/ProxyProvider.java165
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/UnoUrlTest.java261
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/WeakBase_Test.java251
-rw-r--r--javaunohelper/test/com/sun/star/lib/uno/helper/makefile.mk68
-rw-r--r--javaunohelper/util/delzip0
-rw-r--r--javaunohelper/util/makefile.mk53
-rw-r--r--javaunohelper/util/manifest3
-rw-r--r--javaunohelper/util/settings.pmk28
-rw-r--r--jfreereport/download/core.zipbin0 -> 764464 bytes
-rw-r--r--jfreereport/download/flute.zipbin0 -> 83503 bytes
-rw-r--r--jfreereport/download/libbase.zipbin0 -> 161294 bytes
-rw-r--r--jfreereport/download/libfonts.zipbin0 -> 1336993 bytes
-rw-r--r--jfreereport/download/libformula.zipbin0 -> 516667 bytes
-rw-r--r--jfreereport/download/liblayout.zipbin0 -> 1449297 bytes
-rw-r--r--jfreereport/download/libloader.zipbin0 -> 166507 bytes
-rw-r--r--jfreereport/download/librepository.zipbin0 -> 89510 bytes
-rw-r--r--jfreereport/download/libserializer.zipbin0 -> 44748 bytes
-rw-r--r--jfreereport/download/libxml.zipbin0 -> 101837 bytes
-rw-r--r--jfreereport/download/sacjava-1.3.zipbin0 -> 153157 bytes
-rw-r--r--jfreereport/java/flute/makefile.mk72
-rw-r--r--jfreereport/java/jfreereport/makefile.mk70
-rw-r--r--jfreereport/java/libbase/makefile.mk84
-rw-r--r--jfreereport/java/libfonts/makefile.mk71
-rw-r--r--jfreereport/java/libformula/makefile.mk76
-rw-r--r--jfreereport/java/liblayout/makefile.mk70
-rw-r--r--jfreereport/java/libloader/makefile.mk70
-rw-r--r--jfreereport/java/librepository/makefile.mk70
-rw-r--r--jfreereport/java/libserializer/makefile.mk70
-rw-r--r--jfreereport/java/libxml/makefile.mk70
-rw-r--r--jfreereport/java/sac/makefile.mk82
-rw-r--r--jfreereport/nbprojects/flute/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/jcommon-serializer/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/jfreereport/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/libfonts/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/libformula/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/liblayout/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/libloader/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/librepository/nbproject/project.xml42
-rw-r--r--jfreereport/nbprojects/libxml/nbproject/project.xml42
-rw-r--r--jfreereport/patches/flow-engine.patch10
-rw-r--r--jfreereport/patches/flute.patch19
-rw-r--r--jfreereport/patches/libbase.patch19
-rw-r--r--jfreereport/patches/libfonts.patch10
-rw-r--r--jfreereport/patches/libformula.patch27
-rw-r--r--jfreereport/patches/liblayout.patch10
-rw-r--r--jfreereport/patches/libloader.patch11
-rw-r--r--jfreereport/patches/librepository.patch10
-rw-r--r--jfreereport/patches/libserializer.patch10
-rw-r--r--jfreereport/patches/libxml.patch10
-rw-r--r--jfreereport/patches/sac.patch73
-rw-r--r--jfreereport/prj/build.lst13
-rw-r--r--jfreereport/prj/d.lst1
-rw-r--r--jpeg/jpeg-6b.patch113
-rw-r--r--jpeg/makefile.mk66
-rw-r--r--jpeg/prj/build.lst2
-rw-r--r--jpeg/prj/d.lst10
-rw-r--r--jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java228
-rw-r--r--jurt/com/sun/star/comp/bridgefactory/makefile.mk43
-rw-r--r--jurt/com/sun/star/comp/connections/Acceptor.java170
-rw-r--r--jurt/com/sun/star/comp/connections/Connector.java151
-rw-r--r--jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java139
-rw-r--r--jurt/com/sun/star/comp/connections/Implementation.java101
-rw-r--r--jurt/com/sun/star/comp/connections/PipedConnection.java283
-rw-r--r--jurt/com/sun/star/comp/connections/makefile.mk43
-rw-r--r--jurt/com/sun/star/comp/loader/FactoryHelper.java564
-rw-r--r--jurt/com/sun/star/comp/loader/JavaLoader.java483
-rw-r--r--jurt/com/sun/star/comp/loader/JavaLoaderFactory.java104
-rw-r--r--jurt/com/sun/star/comp/loader/RegistrationClassFinder.java133
-rw-r--r--jurt/com/sun/star/comp/loader/makefile.mk47
-rw-r--r--jurt/com/sun/star/comp/servicemanager/ServiceManager.java926
-rw-r--r--jurt/com/sun/star/comp/servicemanager/makefile.mk43
-rw-r--r--jurt/com/sun/star/comp/urlresolver/UrlResolver.java171
-rw-r--r--jurt/com/sun/star/comp/urlresolver/makefile.mk43
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/PipeConnection.java254
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/makefile.mk41
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java146
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/pipeConnector.java142
-rw-r--r--jurt/com/sun/star/lib/connections/socket/ConnectionDescriptor.java107
-rw-r--r--jurt/com/sun/star/lib/connections/socket/SocketConnection.java252
-rw-r--r--jurt/com/sun/star/lib/connections/socket/makefile.mk42
-rw-r--r--jurt/com/sun/star/lib/connections/socket/socketAcceptor.java207
-rw-r--r--jurt/com/sun/star/lib/connections/socket/socketConnector.java181
-rw-r--r--jurt/com/sun/star/lib/uno/Proxy.java40
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/BridgedObject.java49
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/ProxyFactory.java185
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/RequestHandler.java41
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/XConnectionInputStream_Adapter.java82
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/XConnectionOutputStream_Adapter.java91
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/java_remote_bridge.java711
-rw-r--r--jurt/com/sun/star/lib/uno/bridges/java_remote/makefile.mk44
-rw-r--r--jurt/com/sun/star/lib/uno/environments/java/java_environment.java311
-rw-r--r--jurt/com/sun/star/lib/uno/environments/java/makefile.mk44
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/IProtocol.java97
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/IReceiver.java48
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/IThreadPool.java127
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/JavaThreadPool.java132
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/JavaThreadPoolFactory.java94
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/Job.java180
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/JobQueue.java396
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/Message.java195
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/NativeThreadPool.java100
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/ThreadId.java95
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/ThreadPoolManager.java80
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/makefile.mk50
-rw-r--r--jurt/com/sun/star/lib/uno/environments/remote/remote_environment.java72
-rw-r--r--jurt/com/sun/star/lib/uno/makefile.mk37
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/Cache.java120
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/Marshal.java390
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/PendingRequests.java71
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/Unmarshal.java490
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/UrpMessage.java54
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/makefile.mk44
-rw-r--r--jurt/com/sun/star/lib/uno/protocols/urp/urp.java734
-rw-r--r--jurt/com/sun/star/lib/util/AsynchronousFinalizer.java102
-rw-r--r--jurt/com/sun/star/lib/util/NativeLibraryLoader.java118
-rw-r--r--jurt/com/sun/star/lib/util/StringHelper.java51
-rw-r--r--jurt/com/sun/star/lib/util/UrlToFileMapper.java161
-rw-r--r--jurt/com/sun/star/lib/util/makefile.mk42
-rw-r--r--jurt/com/sun/star/uno/AnyConverter.java543
-rw-r--r--jurt/com/sun/star/uno/Ascii.java50
-rw-r--r--jurt/com/sun/star/uno/AsciiString.java51
-rw-r--r--jurt/com/sun/star/uno/MappingException.java70
-rw-r--r--jurt/com/sun/star/uno/WeakReference.java147
-rw-r--r--jurt/com/sun/star/uno/makefile.mk52
-rw-r--r--jurt/demo/com/sun/star/demo/DemoServer.java101
-rw-r--r--jurt/demo/com/sun/star/demo/TestOffice.java193
-rw-r--r--jurt/demo/com/sun/star/demo/makefile.mk57
-rw-r--r--jurt/prj/build.lst18
-rw-r--r--jurt/prj/d.lst6
-rw-r--r--jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.c531
-rw-r--r--jurt/source/pipe/com_sun_star_lib_connections_pipe_PipeConnection.h53
-rw-r--r--jurt/source/pipe/jpipe.dxp5
-rw-r--r--jurt/source/pipe/makefile.mk39
-rw-r--r--jurt/test/com/sun/star/comp/bridgefactory/BridgeFactory_Test.java106
-rw-r--r--jurt/test/com/sun/star/comp/bridgefactory/makefile.mk36
-rw-r--r--jurt/test/com/sun/star/comp/connections/PipedConnection_Test.java147
-rw-r--r--jurt/test/com/sun/star/comp/connections/makefile.mk36
-rw-r--r--jurt/test/com/sun/star/lib/uno/bridges/java_remote/BridgedObject_Test.java73
-rw-r--r--jurt/test/com/sun/star/lib/uno/bridges/java_remote/ProxyFactory_Test.java145
-rw-r--r--jurt/test/com/sun/star/lib/uno/bridges/java_remote/java_remote_bridge_Test.java251
-rw-r--r--jurt/test/com/sun/star/lib/uno/bridges/java_remote/makefile.mk39
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/java/java_environment_Test.java66
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/java/makefile.mk36
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/JavaThreadPoolFactory_Test.java56
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/JobQueue_Test.java274
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/TestIWorkAt.java49
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/TestMessage.java89
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/TestReceiver.java33
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/TestWorkAt.java97
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/ThreadId_Test.java63
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/ThreadPool_Test.java443
-rw-r--r--jurt/test/com/sun/star/lib/uno/environments/remote/makefile.mk44
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Cache_Test.java106
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Marshaling_Test.java369
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/Protocol_Test.java317
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/TestBridge.java115
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/TestObject.java70
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/interfaces.idl119
-rw-r--r--jurt/test/com/sun/star/lib/uno/protocols/urp/makefile.mk42
-rw-r--r--jurt/test/com/sun/star/lib/util/NativeLibraryLoader_Test.java83
-rw-r--r--jurt/test/com/sun/star/lib/util/makefile.mk36
-rw-r--r--jurt/test/com/sun/star/uno/AnyConverter_Test.java905
-rw-r--r--jurt/test/com/sun/star/uno/UnoRuntime_EnvironmentTest.java96
-rw-r--r--jurt/test/com/sun/star/uno/WeakReference_Test.java118
-rw-r--r--jurt/test/com/sun/star/uno/makefile.mk39
-rw-r--r--jurt/test/makefile.mk39
-rw-r--r--jurt/util/delzip0
-rw-r--r--jurt/util/makefile.mk52
-rw-r--r--jurt/util/makefile.pmk32
-rw-r--r--jurt/util/manifest7
-rw-r--r--jurt/workbench/com/sun/star/comp/urlresolver/UrlResolver_Test.java95
-rw-r--r--jurt/workbench/com/sun/star/comp/urlresolver/makefile.mk53
-rw-r--r--jvmaccess/inc/jvmaccess/classpath.hxx151
-rw-r--r--jvmaccess/inc/jvmaccess/unovirtualmachine.hxx109
-rw-r--r--jvmaccess/inc/jvmaccess/virtualmachine.hxx163
-rw-r--r--jvmaccess/prj/build.lst4
-rw-r--r--jvmaccess/prj/d.lst8
-rw-r--r--jvmaccess/source/classpath.cxx174
-rw-r--r--jvmaccess/source/makefile.mk41
-rw-r--r--jvmaccess/source/unovirtualmachine.cxx96
-rw-r--r--jvmaccess/source/virtualmachine.cxx124
-rw-r--r--jvmaccess/util/cc5_solaris_sparc.map81
-rw-r--r--jvmaccess/util/gcc3.map88
-rw-r--r--jvmaccess/util/makefile.mk66
-rw-r--r--jvmaccess/util/mingw.map71
-rw-r--r--jvmaccess/util/msvc_win32_intel.map37
-rw-r--r--jvmaccess/workbench/exceptiontest1.cxx46
-rw-r--r--jvmaccess/workbench/exceptiontest2.cxx46
-rw-r--r--jvmaccess/workbench/java/TestComponent.java104
-rw-r--r--jvmaccess/workbench/java/makefile.mk43
-rw-r--r--jvmaccess/workbench/java/manifest1
-rw-r--r--jvmaccess/workbench/javainfo/javainfotest.cxx372
-rw-r--r--jvmaccess/workbench/javainfo/makefile.mk43
-rw-r--r--jvmaccess/workbench/makefile.mk51
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors.xsd77
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_freebsd.xml25
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_linux.xml33
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_macosx.xml20
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_os2.xml21
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_template.xml35
-rwxr-xr-xjvmfwk/distributions/OpenOfficeorg/javavendors_unx.xml17
-rw-r--r--jvmfwk/distributions/OpenOfficeorg/javavendors_wnt.xml21
-rwxr-xr-xjvmfwk/distributions/OpenOfficeorg/makefile.mk65
-rw-r--r--jvmfwk/inc/jvmfwk/framework.h866
-rw-r--r--jvmfwk/inc/jvmfwk/vendorplugin.h246
-rw-r--r--jvmfwk/inc/makefile.mk47
-rw-r--r--jvmfwk/inc/pch/precompiled_jvmfwk.cxx29
-rw-r--r--jvmfwk/inc/pch/precompiled_jvmfwk.hxx32
-rwxr-xr-xjvmfwk/plugins/sunmajor/javaenvsetup/javaldx.cxx188
-rwxr-xr-xjvmfwk/plugins/sunmajor/javaenvsetup/makefile.mk56
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/JREProperties.java85
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/diagnostics.h120
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/gnujre.cxx287
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/gnujre.hxx55
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/makefile.mk117
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/otherjre.cxx131
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/otherjre.hxx53
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.cxx618
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjavaplugin.map8
-rwxr-xr-xjvmfwk/plugins/sunmajor/pluginlib/sunjavapluginrc2
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjre.cxx124
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunjre.hxx52
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunversion.cxx427
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/sunversion.hxx127
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/util.cxx1267
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/util.hxx130
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/vendorbase.cxx276
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/vendorbase.hxx183
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/vendorlist.cxx91
-rw-r--r--jvmfwk/plugins/sunmajor/pluginlib/vendorlist.hxx75
-rw-r--r--jvmfwk/prj/build.lst6
-rw-r--r--jvmfwk/prj/d.lst22
-rw-r--r--jvmfwk/source/elements.cxx1231
-rw-r--r--jvmfwk/source/elements.hxx391
-rw-r--r--jvmfwk/source/framework.cxx1277
-rw-r--r--jvmfwk/source/framework.hxx124
-rw-r--r--jvmfwk/source/framework.map31
-rw-r--r--jvmfwk/source/fwkbase.cxx718
-rw-r--r--jvmfwk/source/fwkbase.hxx158
-rw-r--r--jvmfwk/source/fwkutil.cxx354
-rw-r--r--jvmfwk/source/fwkutil.hxx138
-rw-r--r--jvmfwk/source/javasettings.xsd54
-rw-r--r--jvmfwk/source/javasettings_template.xml35
-rw-r--r--jvmfwk/source/javasettingsunopkginstall.xml3
-rw-r--r--jvmfwk/source/jvmfwk3rc4
-rw-r--r--jvmfwk/source/libxmlutil.cxx184
-rw-r--r--jvmfwk/source/libxmlutil.hxx129
-rw-r--r--jvmfwk/source/makefile.mk90
-rw-r--r--jvmfwk/source/readme.txt9
-rw-r--r--l10ntools/inc/cfgmerge.hxx205
-rw-r--r--l10ntools/inc/export.hxx583
-rw-r--r--l10ntools/inc/gsicheck.hxx128
-rw-r--r--l10ntools/inc/helpmerge.hxx84
-rw-r--r--l10ntools/inc/inireader.hxx52
-rw-r--r--l10ntools/inc/l10ntools/directory.hxx54
-rw-r--r--l10ntools/inc/l10ntools/file.hxx23
-rw-r--r--l10ntools/inc/l10ntools/vosapp.hxx33
-rw-r--r--l10ntools/inc/lngmerge.hxx66
-rw-r--r--l10ntools/inc/makefile.mk47
-rw-r--r--l10ntools/inc/pch/precompiled_l10ntools.cxx29
-rw-r--r--l10ntools/inc/pch/precompiled_l10ntools.hxx32
-rw-r--r--l10ntools/inc/srciter.hxx58
-rw-r--r--l10ntools/inc/tagtest.hxx396
-rw-r--r--l10ntools/inc/tokens.h109
-rw-r--r--l10ntools/inc/treeconfig.hxx28
-rw-r--r--l10ntools/inc/utf8conv.hxx44
-rw-r--r--l10ntools/inc/wrdtrans.hxx87
-rw-r--r--l10ntools/inc/wtranode.hxx118
-rw-r--r--l10ntools/inc/wtratree.hxx159
-rw-r--r--l10ntools/inc/xmlparse.hxx550
-rw-r--r--l10ntools/inc/xmlutil.hxx9
-rw-r--r--l10ntools/inc/xrmmerge.hxx158
-rwxr-xr-xl10ntools/java/l10nconv/build.xml229
-rwxr-xr-xl10ntools/java/l10nconv/converter.MF1
-rwxr-xr-xl10ntools/java/l10nconv/documentation/readmeConverter.sxwbin0 -> 9824 bytes
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/DirtyTags/DirtyTagWrapCheck.java82
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/DirtyTags/DirtyTagWrapper.java249
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/DirtyTags/Tag.java246
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/DirtyTags/TagPair.java307
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Convert.java550
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Converter.java520
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ConverterException.java76
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/DataHandler.java146
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/DataReader.java76
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/DataWriter.java88
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ExtMap.java94
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/FileMaker.java84
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIReader.java247
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIWriter.java243
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/GSIandSDFMerger.java164
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/LineErrorException.java78
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/OutputHandler.java225
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/ResTypeResolver.java68
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/Resolver.java95
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFReader.java632
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/SDFWriter.java172
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFReader.java742
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/XLIFFWriter.java532
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/converter/dtd/xliff.dtd391
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/languageResolver/LanguageResolver.java198
-rwxr-xr-xl10ntools/java/l10nconv/java/com/sun/star/tooling/languageResolver/lang.map41
-rwxr-xr-xl10ntools/java/l10nconv/makefile.mk35
-rwxr-xr-xl10ntools/java/receditor/build.xml169
-rw-r--r--l10ntools/java/receditor/java/transex3/controller/EditorController.java334
-rw-r--r--l10ntools/java/receditor/java/transex3/controller/Main.java10
-rw-r--r--l10ntools/java/receditor/java/transex3/model/ResourceFile.java77
-rw-r--r--l10ntools/java/receditor/java/transex3/model/SdfEntity.java211
-rw-r--r--l10ntools/java/receditor/java/transex3/model/SdfString.java192
-rw-r--r--l10ntools/java/receditor/java/transex3/view/Editor.java97
-rw-r--r--l10ntools/java/receditor/java/transex3/view/SdfTable.java24
-rwxr-xr-xl10ntools/java/receditor/makefile.mk35
-rwxr-xr-xl10ntools/java/receditor/receditor.MF1
-rw-r--r--l10ntools/layout/README27
-rw-r--r--l10ntools/layout/layoutparse.cxx135
-rw-r--r--l10ntools/layout/layoutparse.hxx51
-rw-r--r--l10ntools/layout/loc.sdf24
-rw-r--r--l10ntools/layout/makefile.mk77
-rw-r--r--l10ntools/layout/tralay.cxx399
-rw-r--r--l10ntools/layout/zoom.xml40
-rw-r--r--l10ntools/prj/build.lst10
-rw-r--r--l10ntools/prj/d.lst61
-rw-r--r--l10ntools/scripts/fast_merge.pl340
-rw-r--r--l10ntools/scripts/keyidGen.pl185
-rwxr-xr-xl10ntools/scripts/localize.pl1191
-rwxr-xr-xl10ntools/scripts/localize_old.pl1120
-rw-r--r--l10ntools/source/cfg_yy_wrapper.c2
-rw-r--r--l10ntools/source/cfglex.l232
-rw-r--r--l10ntools/source/cfgmerge.cxx883
-rw-r--r--l10ntools/source/directory.cxx273
-rw-r--r--l10ntools/source/export.cxx2657
-rw-r--r--l10ntools/source/export2.cxx739
-rw-r--r--l10ntools/source/file.cxx55
-rw-r--r--l10ntools/source/filter/merge/FCFGMerge.cfg121
-rw-r--r--l10ntools/source/filter/merge/FCFGMerge.java128
-rw-r--r--l10ntools/source/filter/merge/Manifest.mf1
-rw-r--r--l10ntools/source/filter/merge/Merger.java361
-rw-r--r--l10ntools/source/filter/merge/makefile.mk92
-rw-r--r--l10ntools/source/filter/utils/AnalyzeStartupLog.java325
-rw-r--r--l10ntools/source/filter/utils/Cache.java2446
-rw-r--r--l10ntools/source/filter/utils/ConfigHelper.java300
-rw-r--r--l10ntools/source/filter/utils/FileHelper.java763
-rw-r--r--l10ntools/source/filter/utils/Logger.java174
-rw-r--r--l10ntools/source/filter/utils/MalformedCommandLineException.java47
-rw-r--r--l10ntools/source/filter/utils/XMLHelper.java822
-rw-r--r--l10ntools/source/filter/utils/makefile.mk53
-rw-r--r--l10ntools/source/gsicheck.cxx1174
-rw-r--r--l10ntools/source/gsiconv.cxx369
-rw-r--r--l10ntools/source/help/HelpCompiler.cxx590
-rw-r--r--l10ntools/source/help/HelpCompiler.hxx317
-rw-r--r--l10ntools/source/help/HelpFileDocument.java86
-rw-r--r--l10ntools/source/help/HelpIndexerTool.java369
-rw-r--r--l10ntools/source/help/HelpLinker.cxx1170
-rw-r--r--l10ntools/source/help/compilehelp.hxx78
-rw-r--r--l10ntools/source/help/helplinker.pmk31
-rw-r--r--l10ntools/source/help/makefile.mk116
-rw-r--r--l10ntools/source/helpex.cxx296
-rw-r--r--l10ntools/source/helpmerge.cxx727
-rw-r--r--l10ntools/source/inireader.cxx132
-rw-r--r--l10ntools/source/lngex.cxx223
-rw-r--r--l10ntools/source/lngmerge.cxx357
-rw-r--r--l10ntools/source/localize.cxx983
-rw-r--r--l10ntools/source/makefile.mk206
-rw-r--r--l10ntools/source/merge.cxx442
-rw-r--r--l10ntools/source/src_yy_wrapper.c2
-rw-r--r--l10ntools/source/srciter.cxx138
-rw-r--r--l10ntools/source/srclex.l308
-rw-r--r--l10ntools/source/tagtest.cxx1574
-rw-r--r--l10ntools/source/treeconfig.cxx128
-rw-r--r--l10ntools/source/utf8conv.cxx74
-rw-r--r--l10ntools/source/wrdtrans.cxx245
-rw-r--r--l10ntools/source/wtranode.cxx108
-rw-r--r--l10ntools/source/wtratree.cxx418
-rw-r--r--l10ntools/source/xgfconv.cxx66
-rw-r--r--l10ntools/source/xmlparse.cxx1453
-rw-r--r--l10ntools/source/xrm_yy_wrapper.c2
-rw-r--r--l10ntools/source/xrmlex.l228
-rw-r--r--l10ntools/source/xrmmerge.cxx751
-rw-r--r--l10ntools/workbench/gsicheck_errors.sdf15
-rw-r--r--l10ntools/workbench/gsicheck_errors_err-.sdf11
-rw-r--r--l10ntools/workbench/gsicheck_errors_err-l.sdf2
-rw-r--r--l10ntools/workbench/gsicheck_errors_err-s.sdf9
-rw-r--r--l10ntools/workbench/gsicheck_errors_err-t.sdf9
-rw-r--r--l10ntools/workbench/gsicheck_errors_ok-.sdf5
-rw-r--r--l10ntools/workbench/gsicheck_errors_ok-l.sdf12
-rw-r--r--l10ntools/workbench/gsicheck_errors_ok-s.sdf6
-rw-r--r--l10ntools/workbench/gsicheck_errors_ok-t.sdf6
-rw-r--r--l10ntools/workbench/gsicheckcheck.btm17
-rw-r--r--libegg/README7
-rw-r--r--libegg/inc/eggtrayicon.h35
-rw-r--r--libegg/prj/build.lst2
-rw-r--r--libegg/prj/d.lst5
-rw-r--r--libegg/source/eggtrayicon-impl.h76
-rw-r--r--libegg/source/eggtrayicon.c568
-rw-r--r--libegg/source/makefile.mk66
-rw-r--r--libtextcat/data/new_fingerprints/LICENSE30
-rw-r--r--libtextcat/data/new_fingerprints/fpdb.conf84
-rw-r--r--libtextcat/data/new_fingerprints/lm/afrikaans.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/albanian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/amharic_utf.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/arabic.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/armenian.lm0
-rw-r--r--libtextcat/data/new_fingerprints/lm/basque.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/belarus.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/bosnian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/breton.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/catalan.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/chinese_simplified.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/chinese_traditional.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/croatian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/czech.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/danish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/drents.lm0
-rw-r--r--libtextcat/data/new_fingerprints/lm/dutch.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/english.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/esperanto.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/estonian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/finnish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/french.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/frisian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/georgian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/german.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/greek.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/hebrew.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/hindi.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/hungarian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/icelandic.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/indonesian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/irish_gaelic.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/italian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/japanese.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/korean.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/latin.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/latvian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/lithuanian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/luxembourgish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/malay.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/manx_gaelic.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/marathi.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/middle_frisian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/mingo.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/mongolian_cyrillic.lm363
-rw-r--r--libtextcat/data/new_fingerprints/lm/nepali.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/norwegian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/persian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/polish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/portuguese.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/quechua.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/romanian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/romansh.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/russian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/sanskrit.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/scots.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/scots_gaelic.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/serbian_ascii.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/slovak_ascii.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/slovenian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/spanish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/swahili.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/swedish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/tagalog.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/tamil.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/thai.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/turkish.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/ukrainian.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/vietnamese.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/welsh.lm400
-rw-r--r--libtextcat/data/new_fingerprints/lm/yiddish_utf.lm400
-rw-r--r--libtextcat/libtextcat-2.2.patch1584
-rw-r--r--libtextcat/makefile.mk84
-rw-r--r--libtextcat/prj/build.lst3
-rw-r--r--libtextcat/prj/d.lst12
-rw-r--r--libwpd/libwpd-0.8.8.diff908
-rw-r--r--libwpd/makefile.mk54
-rw-r--r--libwpd/prj/build.lst3
-rw-r--r--libwpd/prj/d.lst12
-rwxr-xr-xlibxml2/libxml2-2.6.31-mingw.patch24
-rw-r--r--libxml2/libxml2-2.6.31.patch412
-rw-r--r--libxml2/makefile.mk138
-rw-r--r--libxml2/prj/build.lst3
-rw-r--r--libxml2/prj/d.lst9
-rw-r--r--libxmlsec/makefile.mk192
-rw-r--r--libxmlsec/prj/build.lst3
-rw-r--r--libxmlsec/prj/d.lst9
-rw-r--r--libxmlsec/readme.txt32
-rw-r--r--libxmlsec/xmlsec1-configure.patch288
-rw-r--r--libxmlsec/xmlsec1-customkeymanage.patch6086
-rw-r--r--libxmlsec/xmlsec1-mingw-keymgr-mscrypto.patch62
-rw-r--r--libxmlsec/xmlsec1-mingw32.patch764
-rw-r--r--libxmlsec/xmlsec1-noverify.patch59
-rw-r--r--libxmlsec/xmlsec1-nssdisablecallbacks.patch36
-rw-r--r--libxmlsec/xmlsec1-nssmangleciphers.patch1134
-rw-r--r--libxslt/libxslt-1.1.24.patch79
-rw-r--r--libxslt/libxslt-1.1.24_win_manifest.patch11
-rw-r--r--libxslt/libxsltversion.mk33
-rw-r--r--libxslt/makefile.mk147
-rw-r--r--libxslt/prj/build.lst3
-rw-r--r--libxslt/prj/d.lst11
-rw-r--r--lingucomponent/config/Linguistic-lingucomponent-hyphenator.xcu14
-rw-r--r--lingucomponent/config/Linguistic-lingucomponent-spellchecker.xcu14
-rw-r--r--lingucomponent/config/Linguistic-lingucomponent-thesaurus.xcu14
-rw-r--r--lingucomponent/inc/makefile.mk47
-rw-r--r--lingucomponent/inc/pch/precompiled_lingucomponent.cxx29
-rw-r--r--lingucomponent/inc/pch/precompiled_lingucomponent.hxx33
-rw-r--r--lingucomponent/prj/build.lst11
-rw-r--r--lingucomponent/prj/d.lst48
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp3
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx86
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.map8
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx982
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx210
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk93
-rw-r--r--lingucomponent/source/languageguessing/altstrfunc.cxx48
-rw-r--r--lingucomponent/source/languageguessing/altstrfunc.hxx41
-rw-r--r--lingucomponent/source/languageguessing/guess.cxx136
-rw-r--r--lingucomponent/source/languageguessing/guess.hxx71
-rw-r--r--lingucomponent/source/languageguessing/guesslang.cxx484
-rw-r--r--lingucomponent/source/languageguessing/guesslang.map8
-rw-r--r--lingucomponent/source/languageguessing/makefile.mk80
-rw-r--r--lingucomponent/source/languageguessing/simpleguesser.cxx234
-rw-r--r--lingucomponent/source/languageguessing/simpleguesser.hxx121
-rw-r--r--lingucomponent/source/lingutil/lingutil.cxx272
-rw-r--r--lingucomponent/source/lingutil/lingutil.hxx105
-rw-r--r--lingucomponent/source/lingutil/makefile.mk63
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.map8
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macreg.cxx87
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx693
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx193
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/makefile.mk93
-rw-r--r--lingucomponent/source/spellcheck/spell/exports.dxp3
-rw-r--r--lingucomponent/source/spellcheck/spell/makefile.mk87
-rw-r--r--lingucomponent/source/spellcheck/spell/spell.map8
-rw-r--r--lingucomponent/source/spellcheck/spell/sreg.cxx86
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.cxx725
-rw-r--r--lingucomponent/source/spellcheck/spell/sspellimp.hxx184
-rw-r--r--lingucomponent/source/thesaurus/libnth/exports.dxp3
-rw-r--r--lingucomponent/source/thesaurus/libnth/lnth.map8
-rw-r--r--lingucomponent/source/thesaurus/libnth/makefile.mk107
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesdta.cxx116
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesdta.hxx96
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.cxx795
-rw-r--r--lingucomponent/source/thesaurus/libnth/nthesimp.hxx199
-rw-r--r--lingucomponent/source/thesaurus/libnth/ntreg.cxx85
-rw-r--r--lingucomponent/source/thesaurus/mythes/Makefile39
-rw-r--r--lingucomponent/source/thesaurus/mythes/README60
-rw-r--r--lingucomponent/source/thesaurus/mythes/checkme.lst4
-rw-r--r--lingucomponent/source/thesaurus/mythes/data_layout.txt131
-rw-r--r--lingucomponent/source/thesaurus/mythes/example.cxx128
-rw-r--r--lingucomponent/source/thesaurus/mythes/license.readme34
-rw-r--r--lingucomponent/source/thesaurus/mythes/makefile.mk59
-rw-r--r--lingucomponent/source/thesaurus/mythes/mythes.cxx403
-rw-r--r--lingucomponent/source/thesaurus/mythes/mythes.hxx76
-rw-r--r--linguistic/inc/hyphdta.hxx146
-rw-r--r--linguistic/inc/iprcache.hxx131
-rw-r--r--linguistic/inc/lngprophelp.hxx288
-rw-r--r--linguistic/inc/lngprops.hxx62
-rw-r--r--linguistic/inc/makefile.mk47
-rw-r--r--linguistic/inc/misc.hxx269
-rw-r--r--linguistic/inc/pch/precompiled_linguistic.cxx29
-rw-r--r--linguistic/inc/pch/precompiled_linguistic.hxx32
-rw-r--r--linguistic/inc/spelldta.hxx134
-rw-r--r--linguistic/inc/thesdta.hxx84
-rw-r--r--linguistic/prj/build.lst5
-rw-r--r--linguistic/prj/d.lst10
-rw-r--r--linguistic/qa/complex/linguistic/HangulHanjaConversion.java345
-rw-r--r--linguistic/qa/complex/linguistic/makefile.mk73
-rw-r--r--linguistic/qa/complex/linguistic/testdocuments/hangulhanja.sxcbin0 -> 6366 bytes
-rw-r--r--linguistic/qa/unoapi/knownissues.xcl9
-rw-r--r--linguistic/qa/unoapi/lng.sce3
-rw-r--r--linguistic/qa/unoapi/makefile.mk40
-rw-r--r--linguistic/source/convdic.cxx744
-rw-r--r--linguistic/source/convdic.hxx179
-rw-r--r--linguistic/source/convdiclist.cxx769
-rw-r--r--linguistic/source/convdiclist.hxx122
-rw-r--r--linguistic/source/convdicxml.cxx462
-rw-r--r--linguistic/source/convdicxml.hxx134
-rw-r--r--linguistic/source/defs.hxx136
-rw-r--r--linguistic/source/dicimp.cxx1201
-rw-r--r--linguistic/source/dicimp.hxx238
-rw-r--r--linguistic/source/dlistimp.cxx962
-rw-r--r--linguistic/source/dlistimp.hxx151
-rw-r--r--linguistic/source/gciterator.cxx1359
-rw-r--r--linguistic/source/gciterator.hxx209
-rw-r--r--linguistic/source/grammarchecker.cxx326
-rw-r--r--linguistic/source/grammarchecker.hxx108
-rw-r--r--linguistic/source/hhconvdic.cxx169
-rw-r--r--linguistic/source/hhconvdic.hxx78
-rw-r--r--linguistic/source/hyphdsp.cxx736
-rw-r--r--linguistic/source/hyphdsp.hxx172
-rw-r--r--linguistic/source/hyphdta.cxx189
-rw-r--r--linguistic/source/iprcache.cxx284
-rw-r--r--linguistic/source/lngopt.cxx711
-rw-r--r--linguistic/source/lngopt.hxx186
-rw-r--r--linguistic/source/lngprophelp.cxx717
-rw-r--r--linguistic/source/lngreg.cxx198
-rw-r--r--linguistic/source/lngsvcmgr.cxx2042
-rw-r--r--linguistic/source/lngsvcmgr.hxx199
-rw-r--r--linguistic/source/makefile.mk111
-rw-r--r--linguistic/source/misc.cxx1009
-rw-r--r--linguistic/source/misc2.cxx300
-rw-r--r--linguistic/source/spelldsp.cxx871
-rw-r--r--linguistic/source/spelldsp.hxx163
-rw-r--r--linguistic/source/spelldta.cxx366
-rw-r--r--linguistic/source/staticmb.cxx29
-rw-r--r--linguistic/source/thesdsp.cxx282
-rw-r--r--linguistic/source/thesdsp.hxx129
-rw-r--r--linguistic/source/thesdta.cxx83
-rw-r--r--linguistic/workben/exports.dxp3
-rw-r--r--linguistic/workben/lex.map8
-rw-r--r--linguistic/workben/makefile.mk107
-rw-r--r--linguistic/workben/sprophelp.cxx372
-rw-r--r--linguistic/workben/sprophelp.hxx172
-rw-r--r--linguistic/workben/sreg.cxx85
-rw-r--r--linguistic/workben/sspellimp.cxx512
-rw-r--r--linguistic/workben/sspellimp.hxx177
-rw-r--r--linguistic/xml/linguistic.xml51
-rw-r--r--lpsolve/lp_solve_5.5-windows.patch40
-rw-r--r--lpsolve/lp_solve_5.5.patch91
-rw-r--r--lpsolve/makefile.mk92
-rw-r--r--lpsolve/prj/build.lst3
-rw-r--r--lpsolve/prj/d.lst9
-rw-r--r--lucene/lucene.patch12
-rw-r--r--lucene/makefile.mk68
-rw-r--r--lucene/prj/build.lst3
-rw-r--r--lucene/prj/d.lst3
-rw-r--r--lucene/version.mk27
-rw-r--r--makefile.rc99
-rw-r--r--migrationanalysis/Read Me.odtbin0 -> 15137 bytes
-rw-r--r--migrationanalysis/prj/build.lst7
-rw-r--r--migrationanalysis/prj/d.lst3
-rw-r--r--migrationanalysis/src/driver_docs/CreateDriverDocs.wsf221
-rw-r--r--migrationanalysis/src/driver_docs/DocAnalysisRunMacro.vbs438
-rw-r--r--migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisExcelDriver.xlsbin0 -> 696832 bytes
-rw-r--r--migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisPPTDriver.pptbin0 -> 284672 bytes
-rw-r--r--migrationanalysis/src/driver_docs/PAW/_OOoDocAnalysisWordDriver.docbin0 -> 664064 bytes
-rw-r--r--migrationanalysis/src/driver_docs/allstrings.ulf2371
-rw-r--r--migrationanalysis/src/driver_docs/makefile.mk127
-rw-r--r--migrationanalysis/src/driver_docs/sources/AnalysisDriver.bas3646
-rw-r--r--migrationanalysis/src/driver_docs/sources/CollectedFiles.cls378
-rw-r--r--migrationanalysis/src/driver_docs/sources/CommonMigrationAnalyser.bas1119
-rw-r--r--migrationanalysis/src/driver_docs/sources/CommonPreparation.bas226
-rw-r--r--migrationanalysis/src/driver_docs/sources/DocumentAnalysis.cls342
-rw-r--r--migrationanalysis/src/driver_docs/sources/FileTypeAssociation.cls56
-rw-r--r--migrationanalysis/src/driver_docs/sources/IssueInfo.cls206
-rw-r--r--migrationanalysis/src/driver_docs/sources/LocalizeResults.bas308
-rw-r--r--migrationanalysis/src/driver_docs/sources/PrepareInfo.cls42
-rw-r--r--migrationanalysis/src/driver_docs/sources/StringDataManager.cls131
-rw-r--r--migrationanalysis/src/driver_docs/sources/Stripped_OOoDocAnalysisExcelDriver.xlsbin0 -> 31232 bytes
-rw-r--r--migrationanalysis/src/driver_docs/sources/Stripped_OOoDocAnalysisPPTDriver.pptbin0 -> 64512 bytes
-rw-r--r--migrationanalysis/src/driver_docs/sources/Stripped_OOoDocAnalysisWordDriver.docbin0 -> 38912 bytes
-rw-r--r--migrationanalysis/src/driver_docs/sources/common_res.bas284
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/ApplicationSpecific.bas164
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/MigrationAnalyser.cls2319
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/Preparation.bas51
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/SetTextBoxFont.bas50
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/ThisWorkbook.cls53
-rw-r--r--migrationanalysis/src/driver_docs/sources/excel/excel_res.bas375
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/ApplicationSpecific.bas176
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/Loader.bas62
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/MigrationAnalyser.cls824
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/Preparation.bas41
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/Slide1.cls54
-rw-r--r--migrationanalysis/src/driver_docs/sources/powerpoint/powerpoint_res.bas107
-rw-r--r--migrationanalysis/src/driver_docs/sources/results_res.bas613
-rw-r--r--migrationanalysis/src/driver_docs/sources/word/ApplicationSpecific.bas156
-rw-r--r--migrationanalysis/src/driver_docs/sources/word/MigrationAnalyser.cls1522
-rw-r--r--migrationanalysis/src/driver_docs/sources/word/Preparation.bas151
-rw-r--r--migrationanalysis/src/driver_docs/sources/word/ThisDocument.cls52
-rw-r--r--migrationanalysis/src/driver_docs/sources/word/word_res.bas289
-rw-r--r--migrationanalysis/src/driver_docs/ulf2dat.pl153
-rw-r--r--migrationanalysis/src/exe/LaunchDrivers.exebin0 -> 28672 bytes
-rw-r--r--migrationanalysis/src/exe/ProAnalysisWizard.exebin0 -> 843776 bytes
-rw-r--r--migrationanalysis/src/msokill/StdAfx.cpp35
-rw-r--r--migrationanalysis/src/msokill/StdAfx.h54
-rw-r--r--migrationanalysis/src/msokill/makefile.mk83
-rw-r--r--migrationanalysis/src/msokill/msokill.cpp259
-rw-r--r--migrationanalysis/src/resources/analysis.dtd52
-rw-r--r--migrationanalysis/src/resources/makefile.mk59
-rw-r--r--migrationanalysis/src/resources/results_paw.xltbin0 -> 140800 bytes
-rw-r--r--migrationanalysis/src/wizard/Analyse.bas589
-rw-r--r--migrationanalysis/src/wizard/CollectedFiles.cls530
-rw-r--r--migrationanalysis/src/wizard/DocAnalysisWizard.exe.manifest22
-rw-r--r--migrationanalysis/src/wizard/Get Directory Dialog.bas143
-rw-r--r--migrationanalysis/src/wizard/IniSupport.bas269
-rw-r--r--migrationanalysis/src/wizard/LaunchDrivers.vbp42
-rw-r--r--migrationanalysis/src/wizard/LaunchDrivers.vbw1
-rw-r--r--migrationanalysis/src/wizard/OOo3_Analysis.icobin0 -> 295606 bytes
-rw-r--r--migrationanalysis/src/wizard/OOo_AnalysisBitmap.pngbin0 -> 8625 bytes
-rw-r--r--migrationanalysis/src/wizard/Office10Issues.bas361
-rw-r--r--migrationanalysis/src/wizard/ProAnalysisWizard.vbp65
-rw-r--r--migrationanalysis/src/wizard/RunServer.bas199
-rw-r--r--migrationanalysis/src/wizard/ScanFolders.frm157
-rw-r--r--migrationanalysis/src/wizard/SearchDocs.frm124
-rw-r--r--migrationanalysis/src/wizard/Terminate.frm81
-rw-r--r--migrationanalysis/src/wizard/Utilities.bas552
-rw-r--r--migrationanalysis/src/wizard/Wizard.DCAbin0 -> 3927 bytes
-rw-r--r--migrationanalysis/src/wizard/Wizard.Dsr79
-rw-r--r--migrationanalysis/src/wizard/Wizard.FRXbin0 -> 416643 bytes
-rw-r--r--migrationanalysis/src/wizard/Wizard.bas651
-rw-r--r--migrationanalysis/src/wizard/Wizard.frm3453
-rw-r--r--migrationanalysis/src/wizard/makefile.mk116
-rw-r--r--migrationanalysis/src/wizard/rcfooter.txt1
-rw-r--r--migrationanalysis/src/wizard/rcheader.txt17
-rw-r--r--migrationanalysis/src/wizard/rctmpl.txt126
-rw-r--r--migrationanalysis/src/wizard/res_defines.h150
-rw-r--r--migrationanalysis/src/wizard/wizard.ulf352
-rw-r--r--migrationanalysis/util/delzip1
-rw-r--r--migrationanalysis/util/makefile.mk53
-rwxr-xr-xmoz/README4
-rw-r--r--moz/extractfiles.mk464
-rw-r--r--moz/makefile.mk434
-rw-r--r--moz/patches/arm_build_fix.patch189
-rw-r--r--moz/patches/consecutive_ldap_queries.patch13
-rw-r--r--moz/patches/cygwin_paths_in_ldap_sdk.patch12
-rw-r--r--moz/patches/dtoa.patch237
-rwxr-xr-xmoz/patches/embed_manifest.patch142
-rw-r--r--moz/patches/index.txt65
-rw-r--r--moz/patches/no_core_abspath_in_nss.patch52
-rw-r--r--moz/patches/respect_disable_pango.patch54
-rw-r--r--moz/patches/wchart_on_msvc8.patch20
-rw-r--r--moz/prj/build.lst4
-rw-r--r--moz/prj/d.lst240
-rw-r--r--moz/seamonkey-source-1.1.14.patch6346
-rw-r--r--moz/zipped/makefile.mk213
-rw-r--r--mysqlc/images/sun_extension.pngbin0 -> 1965 bytes
-rw-r--r--mysqlc/images/sun_extension_hc.pngbin0 -> 1160 bytes
-rw-r--r--mysqlc/prj/build.lst3
-rw-r--r--mysqlc/prj/d.lst4
-rw-r--r--mysqlc/source/DataAccess.xcu19
-rw-r--r--mysqlc/source/README65
-rw-r--r--mysqlc/source/delzip0
-rw-r--r--mysqlc/source/description.xml29
-rw-r--r--mysqlc/source/description/description_de.txt1
-rw-r--r--mysqlc/source/description/description_en-US.txt1
-rw-r--r--mysqlc/source/description/description_es.txt1
-rw-r--r--mysqlc/source/description/description_fr.txt1
-rw-r--r--mysqlc/source/description/description_hu.txt1
-rw-r--r--mysqlc/source/description/description_it.txt1
-rw-r--r--mysqlc/source/description/description_ja.txt1
-rw-r--r--mysqlc/source/description/description_ko.txt1
-rw-r--r--mysqlc/source/description/description_nl.txt1
-rw-r--r--mysqlc/source/description/description_pl.txt1
-rw-r--r--mysqlc/source/description/description_pt-BR.txt1
-rw-r--r--mysqlc/source/description/description_pt.txt1
-rw-r--r--mysqlc/source/description/description_ru.txt1
-rw-r--r--mysqlc/source/description/description_sv.txt1
-rw-r--r--mysqlc/source/description/description_zh-CN.txt1
-rw-r--r--mysqlc/source/description/description_zh-TW.txt1
-rw-r--r--mysqlc/source/exports.dxp3
-rw-r--r--mysqlc/source/makefile.mk332
-rw-r--r--mysqlc/source/manifest.xml8
-rw-r--r--mysqlc/source/mysqlc.map8
-rw-r--r--mysqlc/source/mysqlc.xml81
-rw-r--r--mysqlc/source/mysqlc_connection.cxx791
-rw-r--r--mysqlc/source/mysqlc_connection.hxx250
-rw-r--r--mysqlc/source/mysqlc_databasemetadata.cxx2215
-rw-r--r--mysqlc/source/mysqlc_databasemetadata.hxx243
-rw-r--r--mysqlc/source/mysqlc_driver.cxx368
-rw-r--r--mysqlc/source/mysqlc_driver.hxx118
-rw-r--r--mysqlc/source/mysqlc_general.cxx176
-rw-r--r--mysqlc/source/mysqlc_general.hxx66
-rw-r--r--mysqlc/source/mysqlc_preparedstatement.cxx944
-rw-r--r--mysqlc/source/mysqlc_preparedstatement.hxx194
-rw-r--r--mysqlc/source/mysqlc_propertyids.cxx210
-rw-r--r--mysqlc/source/mysqlc_propertyids.hxx136
-rw-r--r--mysqlc/source/mysqlc_resultset.cxx1509
-rw-r--r--mysqlc/source/mysqlc_resultset.hxx337
-rw-r--r--mysqlc/source/mysqlc_resultsetmetadata.cxx468
-rw-r--r--mysqlc/source/mysqlc_resultsetmetadata.hxx121
-rw-r--r--mysqlc/source/mysqlc_services.cxx183
-rw-r--r--mysqlc/source/mysqlc_statement.cxx531
-rw-r--r--mysqlc/source/mysqlc_statement.hxx187
-rw-r--r--mysqlc/source/mysqlc_subcomponent.hxx255
-rw-r--r--mysqlc/source/mysqlc_types.cxx792
-rw-r--r--mysqlc/source/mysqlc_types.hxx56
-rw-r--r--mysqlc/source/registry/data/org/openoffice/Office/DataAccess/Drivers.xcu103
-rw-r--r--mysqlc/version.mk38
-rw-r--r--mysqlcppconn/cppconn_config.pmk33
-rw-r--r--mysqlcppconn/makefile.mk90
-rw-r--r--mysqlcppconn/mysql-connector-cpp.patch385
-rw-r--r--mysqlcppconn/mysql_config.pmk49
-rw-r--r--mysqlcppconn/patches/default_to_protocol_tcp.patch12
-rw-r--r--mysqlcppconn/prj/build.lst3
-rw-r--r--mysqlcppconn/prj/d.lst15
-rw-r--r--neon/makefile.mk90
-rw-r--r--neon/neon.patch926
-rw-r--r--neon/neon_exports_unix.patch291
-rw-r--r--neon/neon_exports_win.patch297
-rwxr-xr-xneon/prj/build.lst3
-rw-r--r--neon/prj/d.lst8
-rw-r--r--neon/version.mk37
-rw-r--r--np_sdk/mozsrc/LEGAL43
-rw-r--r--np_sdk/mozsrc/LICENSE567
-rw-r--r--np_sdk/mozsrc/README2
-rw-r--r--np_sdk/mozsrc/jri.h689
-rw-r--r--np_sdk/mozsrc/jri_md.h572
-rw-r--r--np_sdk/mozsrc/jritypes.h242
-rw-r--r--np_sdk/mozsrc/makefile.mk59
-rw-r--r--np_sdk/mozsrc/npapi.h610
-rw-r--r--np_sdk/mozsrc/npunix.c491
-rw-r--r--np_sdk/mozsrc/npupp.h1292
-rw-r--r--np_sdk/mozsrc/npwin.cpp369
-rw-r--r--np_sdk/prj/build.lst3
-rw-r--r--np_sdk/prj/d.lst7
-rw-r--r--nss/makefile.mk187
-rw-r--r--nss/nss.patch192
-rw-r--r--nss/nss.patch.mingw167
-rw-r--r--nss/nss_macosx.patch12
-rw-r--r--nss/prj/build.lst3
-rwxr-xr-xnss/prj/d.lst31
-rwxr-xr-xnss/readme.txt75
-rw-r--r--o3tl/inc/o3tl/cow_wrapper.hxx328
-rw-r--r--o3tl/inc/o3tl/heap_ptr.hxx311
-rw-r--r--o3tl/inc/o3tl/lazy_update.hxx271
-rw-r--r--o3tl/inc/o3tl/range.hxx189
-rw-r--r--o3tl/prj/build.lst5
-rw-r--r--o3tl/prj/d.lst2
-rw-r--r--o3tl/qa/cow_wrapper_clients.cxx180
-rw-r--r--o3tl/qa/cow_wrapper_clients.hxx128
-rw-r--r--o3tl/qa/export.map34
-rw-r--r--o3tl/qa/makefile.mk80
-rw-r--r--o3tl/qa/test-cow_wrapper.cxx133
-rw-r--r--o3tl/qa/test-heap_ptr.cxx163
-rw-r--r--o3tl/qa/test-range.cxx233
-rw-r--r--odk/cfgWin.js981
-rw-r--r--odk/configure.pl781
-rw-r--r--odk/docs/common/ref/idl.css131
-rwxr-xr-xodk/docs/cpp/ref/cpp.css127
-rw-r--r--odk/docs/images/arrow-1.gifbin0 -> 68 bytes
-rw-r--r--odk/docs/images/arrow-2.gifbin0 -> 68 bytes
-rw-r--r--odk/docs/images/arrow-3.gifbin0 -> 68 bytes
-rw-r--r--odk/docs/images/bg_table.gifbin0 -> 42 bytes
-rwxr-xr-xodk/docs/images/bg_table2.gifbin0 -> 44 bytes
-rwxr-xr-xodk/docs/images/bg_table3.gifbin0 -> 44 bytes
-rw-r--r--odk/docs/images/bluball.gifbin0 -> 103 bytes
-rw-r--r--odk/docs/images/nada.gifbin0 -> 49 bytes
-rw-r--r--odk/docs/images/nav_down.pngbin0 -> 320 bytes
-rw-r--r--odk/docs/images/nav_home.pngbin0 -> 471 bytes
-rw-r--r--odk/docs/images/nav_left.pngbin0 -> 279 bytes
-rw-r--r--odk/docs/images/nav_right.pngbin0 -> 283 bytes
-rw-r--r--odk/docs/images/nav_up.pngbin0 -> 282 bytes
-rw-r--r--odk/docs/images/ooo-main-app_32.pngbin0 -> 2271 bytes
-rw-r--r--odk/docs/images/sdk_head-1.gifbin0 -> 10949 bytes
-rw-r--r--odk/docs/images/sdk_head-2.gifbin0 -> 58 bytes
-rw-r--r--odk/docs/images/sdk_head-3.gifbin0 -> 1528 bytes
-rw-r--r--odk/docs/images/sdk_line-1.gifbin0 -> 51 bytes
-rw-r--r--odk/docs/images/sdk_line-2.gifbin0 -> 66 bytes
-rw-r--r--odk/docs/images/so-main-app_32.pngbin0 -> 2323 bytes
-rw-r--r--odk/docs/install.html418
-rw-r--r--odk/docs/notsupported.html1
-rw-r--r--odk/docs/sdk_styles.css127
-rw-r--r--odk/docs/tools.html1092
-rw-r--r--odk/examples/CLI/CSharp/Spreadsheet/GeneralTableSample.cs206
-rw-r--r--odk/examples/CLI/CSharp/Spreadsheet/Makefile79
-rw-r--r--odk/examples/CLI/CSharp/Spreadsheet/SpreadsheetDocHelper.cs344
-rw-r--r--odk/examples/CLI/CSharp/Spreadsheet/SpreadsheetSample.cs1478
-rw-r--r--odk/examples/CLI/CSharp/Spreadsheet/ViewSample.cs165
-rw-r--r--odk/examples/CLI/VB.NET/WriterDemo/Makefile61
-rw-r--r--odk/examples/CLI/VB.NET/WriterDemo/WriterDemo.vb242
-rw-r--r--odk/examples/CLI/makefile.mk72
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/ConnectionTask.java208
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/EventHandler.java447
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/EventListenerProxy.java232
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/GraphicalDisplay.java189
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/IAccessibleObjectDisplay.java46
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/Makefile113
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/MessageArea.java133
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/NameProvider.java290
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/RegistrationThread.java156
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/SSR.java171
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/TextualDisplay.java230
-rw-r--r--odk/examples/DevelopersGuide/Accessibility/makefile.mk73
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/CreatingDialogs/CreatingDialogs.odtbin0 -> 8654 bytes
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/CreatingDialogs/Makefile139
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/CreatingDialogs/SampleDialog.java275
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/FirstStepsBasic.odtbin0 -> 18560 bytes
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/Makefile126
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls.odtbin0 -> 7793 bytes
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialog.xba73
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/FileDialogDlg.xdl12
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/MultiPage.xba286
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/MultiPageDlg.xdl75
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/ProgressBar.xba76
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/ProgressBarDlg.xdl11
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/ScrollBar.xba86
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/ScrollBarDlg.xdl13
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/dialog.xlb8
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/ToolkitControls/ToolkitControls/script.xlb8
-rw-r--r--odk/examples/DevelopersGuide/BasicAndDialogs/makefile.mk84
-rw-r--r--odk/examples/DevelopersGuide/Charts/AddInChart.odsbin0 -> 18045 bytes
-rw-r--r--odk/examples/DevelopersGuide/Charts/CalcHelper.java412
-rw-r--r--odk/examples/DevelopersGuide/Charts/ChartHelper.java261
-rw-r--r--odk/examples/DevelopersGuide/Charts/ChartInCalc.java424
-rw-r--r--odk/examples/DevelopersGuide/Charts/ChartInDraw.java308
-rw-r--r--odk/examples/DevelopersGuide/Charts/ChartInWriter.java178
-rw-r--r--odk/examples/DevelopersGuide/Charts/Helper.java170
-rw-r--r--odk/examples/DevelopersGuide/Charts/JavaSampleChartAddIn.java476
-rw-r--r--odk/examples/DevelopersGuide/Charts/ListenAtCalcRangeInDraw.java211
-rw-r--r--odk/examples/DevelopersGuide/Charts/Makefile198
-rw-r--r--odk/examples/DevelopersGuide/Charts/SelectionChangeListener.java219
-rw-r--r--odk/examples/DevelopersGuide/Charts/bullet.gifbin0 -> 335 bytes
-rw-r--r--odk/examples/DevelopersGuide/Charts/makefile.mk75
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/JobsAddon/Addons.xcu81
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/JobsAddon/AsyncJob.java426
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/JobsAddon/Jobs.xcu27
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/JobsAddon/Makefile136
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Addons.xcu220
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/Makefile148
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/ProtocolHandler.xcu11
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/addon.cxx250
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/addon.hxx125
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_cpp/component.cxx131
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Addons.xcu220
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/Makefile138
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/ProtocolHandler.xcu10
-rw-r--r--odk/examples/DevelopersGuide/Components/Addons/ProtocolHandlerAddon_java/ProtocolHandlerAddon.java283
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/Makefile220
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/SimpleComponent.odtbin0 -> 8841 bytes
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/TestCppComponent.cxx89
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/service1_impl.cxx309
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/service2_impl.cxx225
-rw-r--r--odk/examples/DevelopersGuide/Components/CppComponent/some.idl54
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/Makefile204
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/SomethingA.idl46
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/SomethingB.idl46
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/TestComponentA.java71
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/TestComponentB.java100
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/TestJavaComponent.java143
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/TestServiceProvider.java71
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingA.idl48
-rw-r--r--odk/examples/DevelopersGuide/Components/JavaComponent/XSomethingB.idl48
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/LicenseTest.idl50
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/LicenseTest.java171
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/Makefile170
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/description.xml12
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/registration/license_de.txt1
-rw-r--r--odk/examples/DevelopersGuide/Components/SimpleLicense/registration/license_en_US.txt1
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/Makefile81
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/ImageShrink.java158
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Makefile128
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test/Thumbs.java79
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/ImageShrink.idl46
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/Makefile73
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/XImageShrink.idl53
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test/XImageShrinkFilter.idl50
-rw-r--r--odk/examples/DevelopersGuide/Components/Thumbs/thumbs.mk27
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/DialogComponent.java324
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/DialogComponent.odtbin0 -> 11902 bytes
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/Makefile177
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/TestDialogHandler.idl47
-rw-r--r--odk/examples/DevelopersGuide/Components/dialogcomponent/XTestDialogHandler.idl53
-rw-r--r--odk/examples/DevelopersGuide/Components/makefile.mk123
-rw-r--r--odk/examples/DevelopersGuide/Config/ConfigExamples.java1202
-rw-r--r--odk/examples/DevelopersGuide/Config/Makefile99
-rw-r--r--odk/examples/DevelopersGuide/Config/makefile.mk64
-rw-r--r--odk/examples/DevelopersGuide/Database/CodeSamples.java356
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/How_to_write_my_own_driver.txt25
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/Makefile150
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/OSubComponent.hxx252
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/OTypeInfo.hxx98
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.cxx402
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SConnection.hxx155
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.cxx887
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SDatabaseMetaData.hxx218
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SDriver.cxx210
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SDriver.hxx85
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SPreparedStatement.cxx388
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SPreparedStatement.hxx146
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.cxx873
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSet.hxx218
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSetMetaData.cxx169
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SResultSetMetaData.hxx90
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SServices.cxx180
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.cxx368
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/SStatement.hxx175
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/propertyids.cxx182
-rw-r--r--odk/examples/DevelopersGuide/Database/DriverSkeleton/propertyids.hxx161
-rw-r--r--odk/examples/DevelopersGuide/Database/Makefile134
-rw-r--r--odk/examples/DevelopersGuide/Database/OpenQuery.java162
-rw-r--r--odk/examples/DevelopersGuide/Database/RowSet.java241
-rw-r--r--odk/examples/DevelopersGuide/Database/RowSetEventListener.java77
-rw-r--r--odk/examples/DevelopersGuide/Database/Sales.java250
-rw-r--r--odk/examples/DevelopersGuide/Database/SalesMan.java145
-rw-r--r--odk/examples/DevelopersGuide/Database/makefile.mk95
-rw-r--r--odk/examples/DevelopersGuide/Database/sdbcx.java420
-rw-r--r--odk/examples/DevelopersGuide/Drawing/ChangeOrderDemo.java115
-rw-r--r--odk/examples/DevelopersGuide/Drawing/ControlAndSelectDemo.java143
-rw-r--r--odk/examples/DevelopersGuide/Drawing/CustomShowDemo.java173
-rw-r--r--odk/examples/DevelopersGuide/Drawing/DrawViewDemo.java141
-rw-r--r--odk/examples/DevelopersGuide/Drawing/DrawingDemo.java426
-rw-r--r--odk/examples/DevelopersGuide/Drawing/FillAndLineStyleDemo.java133
-rw-r--r--odk/examples/DevelopersGuide/Drawing/GluePointDemo.java188
-rw-r--r--odk/examples/DevelopersGuide/Drawing/GraphicExportDemo.java152
-rw-r--r--odk/examples/DevelopersGuide/Drawing/Helper.java83
-rw-r--r--odk/examples/DevelopersGuide/Drawing/LayerDemo.java156
-rw-r--r--odk/examples/DevelopersGuide/Drawing/Makefile175
-rw-r--r--odk/examples/DevelopersGuide/Drawing/ObjectTransformationDemo.java133
-rw-r--r--odk/examples/DevelopersGuide/Drawing/Organigram.java191
-rw-r--r--odk/examples/DevelopersGuide/Drawing/PageHelper.java223
-rw-r--r--odk/examples/DevelopersGuide/Drawing/PresentationDemo.java239
-rw-r--r--odk/examples/DevelopersGuide/Drawing/ShapeHelper.java145
-rw-r--r--odk/examples/DevelopersGuide/Drawing/SimplePresentation.odpbin0 -> 74753 bytes
-rw-r--r--odk/examples/DevelopersGuide/Drawing/StyleDemo.java174
-rw-r--r--odk/examples/DevelopersGuide/Drawing/TextDemo.java155
-rw-r--r--odk/examples/DevelopersGuide/Drawing/makefile.mk81
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Addons.xcu58
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/DialogWithHelp/Dialog1.xdl10
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/DialogWithHelp/Module1.xba16
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/DialogWithHelp/dialog.xlb5
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/DialogWithHelp/script.xlb5
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/META-INF/manifest.xml6
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/Makefile118
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/description.xml8
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/de/com.foocorp.foo-ext/page1.xhp73
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/de/com.foocorp.foo-ext/page2.xhp27
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/de/com.foocorp.foo-ext/subfolder/anotherpage.xhp100
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/en/com.foocorp.foo-ext/page1.xhp73
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/en/com.foocorp.foo-ext/page2.xhp26
-rw-r--r--odk/examples/DevelopersGuide/Extensions/DialogWithHelp/help/en/com.foocorp.foo-ext/subfolder/anotherpage.xhp100
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/FirstConnection.java58
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/FirstLoadComponent.java329
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/FirstUnoContact.java58
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/HelloTextTableShape.java462
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/Makefile101
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/build_FirstUnoContact.xml64
-rw-r--r--odk/examples/DevelopersGuide/FirstSteps/makefile.mk67
-rw-r--r--odk/examples/DevelopersGuide/Forms/BooleanValidator.java85
-rw-r--r--odk/examples/DevelopersGuide/Forms/ButtonOperator.java223
-rw-r--r--odk/examples/DevelopersGuide/Forms/ComponentTreeTraversal.java91
-rw-r--r--odk/examples/DevelopersGuide/Forms/ControlLock.java219
-rw-r--r--odk/examples/DevelopersGuide/Forms/ControlValidation.java100
-rw-r--r--odk/examples/DevelopersGuide/Forms/ControlValidator.java60
-rw-r--r--odk/examples/DevelopersGuide/Forms/DataAwareness.java932
-rw-r--r--odk/examples/DevelopersGuide/Forms/DateValidator.java102
-rw-r--r--odk/examples/DevelopersGuide/Forms/DocumentBasedExample.java228
-rw-r--r--odk/examples/DevelopersGuide/Forms/DocumentHelper.java320
-rw-r--r--odk/examples/DevelopersGuide/Forms/DocumentType.java59
-rw-r--r--odk/examples/DevelopersGuide/Forms/DocumentViewHelper.java230
-rw-r--r--odk/examples/DevelopersGuide/Forms/FLTools.java270
-rw-r--r--odk/examples/DevelopersGuide/Forms/FormLayer.java294
-rw-r--r--odk/examples/DevelopersGuide/Forms/GridFieldValidator.java176
-rw-r--r--odk/examples/DevelopersGuide/Forms/HsqlDatabase.java256
-rw-r--r--odk/examples/DevelopersGuide/Forms/InteractionRequest.java76
-rw-r--r--odk/examples/DevelopersGuide/Forms/KeyGenerator.java432
-rw-r--r--odk/examples/DevelopersGuide/Forms/ListSelectionValidator.java69
-rw-r--r--odk/examples/DevelopersGuide/Forms/Makefile197
-rw-r--r--odk/examples/DevelopersGuide/Forms/NumericValidator.java89
-rw-r--r--odk/examples/DevelopersGuide/Forms/ProgrammaticScriptAssignment.odtbin0 -> 19198 bytes
-rw-r--r--odk/examples/DevelopersGuide/Forms/RowSet.java290
-rw-r--r--odk/examples/DevelopersGuide/Forms/SalesFilter.java512
-rw-r--r--odk/examples/DevelopersGuide/Forms/SingleControlValidation.java187
-rw-r--r--odk/examples/DevelopersGuide/Forms/SpreadsheetDocument.java131
-rw-r--r--odk/examples/DevelopersGuide/Forms/SpreadsheetValueBinding.java136
-rw-r--r--odk/examples/DevelopersGuide/Forms/SpreadsheetView.java76
-rw-r--r--odk/examples/DevelopersGuide/Forms/TableCellTextBinding.java210
-rw-r--r--odk/examples/DevelopersGuide/Forms/TextValidator.java89
-rw-r--r--odk/examples/DevelopersGuide/Forms/TimeValidator.java94
-rw-r--r--odk/examples/DevelopersGuide/Forms/UNO.java90
-rw-r--r--odk/examples/DevelopersGuide/Forms/URLHelper.java72
-rw-r--r--odk/examples/DevelopersGuide/Forms/ValueBinding.java88
-rw-r--r--odk/examples/DevelopersGuide/Forms/WaitForInput.java64
-rw-r--r--odk/examples/DevelopersGuide/Forms/makefile.mk97
-rw-r--r--odk/examples/DevelopersGuide/GUI/DialogDocument.java145
-rw-r--r--odk/examples/DevelopersGuide/GUI/ImageControlSample.java163
-rw-r--r--odk/examples/DevelopersGuide/GUI/Makefile142
-rw-r--r--odk/examples/DevelopersGuide/GUI/MessageBox.java245
-rw-r--r--odk/examples/DevelopersGuide/GUI/RoadmapItemStateChangeListener.java68
-rw-r--r--odk/examples/DevelopersGuide/GUI/SystemDialog.java186
-rw-r--r--odk/examples/DevelopersGuide/GUI/UnoDialogSample.java1482
-rw-r--r--odk/examples/DevelopersGuide/GUI/UnoDialogSample2.java264
-rw-r--r--odk/examples/DevelopersGuide/GUI/UnoMenu.java167
-rw-r--r--odk/examples/DevelopersGuide/GUI/UnoMenu2.java95
-rw-r--r--odk/examples/DevelopersGuide/GUI/oologo.gifbin0 -> 2563 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/Makefile89
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OOoBeanViewer.java407
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor16.jpgbin0 -> 321 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconColor32.jpgbin0 -> 569 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono16.jpgbin0 -> 321 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/OfficeIconMono32.jpgbin0 -> 569 bytes
-rw-r--r--odk/examples/DevelopersGuide/OfficeBean/makefile.mk68
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Clipboard/Clipboard.java229
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Clipboard/ClipboardListener.java55
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Clipboard/ClipboardOwner.java60
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Clipboard/Makefile99
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Clipboard/TextTransferable.java85
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/ContextMenuInterceptor.java256
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/CustomizeView.java298
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Desk.java96
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/DocumentView.java430
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/FunctionHelper.java1060
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IOnewayLink.java70
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/IShutdownListener.java47
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Install.txt10
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Interceptor.java672
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/JavaWindowPeerFake.java107
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/Makefile128
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/NativeView.java182
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OfficeConnect.java205
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/OnewayExecutor.java240
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusListener.java478
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/StatusView.java266
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/ViewContainer.java269
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/Makefile73
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/nativeview.c111
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/unix/nativeview.h63
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/windows/Makefile78
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/windows/nativeview.c178
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/windows/nativeview.def3
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DesktopEnvironment/nativelib/windows/nativeview.h63
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DisableCommands/DisableCommandsTest.java411
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/DisableCommands/Makefile92
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/AsciiReplaceFilter.java733
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/FilterOptions.java230
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/Makefile138
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/AsciiFilter/TypeDetection.xcu29
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/FlatXmlTypeDetection.xcu71
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/Makefile150
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/fdcomp.cxx109
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/filterdetect.cxx254
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilterDetection/filterdetect.hxx118
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXml.cxx373
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXmlFilter_cpp.uno.xml59
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/FlatXmlFilter_cpp.xcu86
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_cpp/Makefile148
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_java/FlatXml.java273
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_java/FlatXmlFilter_java.xcu86
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/FilterDevelopment/FlatXmlFilter_java/Makefile141
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/LinguisticExamples.java368
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/Makefile237
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/OneInstanceFactory.java155
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/PropChgHelper.java194
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/PropChgHelper_Hyph.java86
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/PropChgHelper_Spell.java110
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/SampleHyphenator.java548
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/SampleSpellChecker.java491
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/SampleThesaurus.java328
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/XHyphenatedWord_impl.java97
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/XMeaning_impl.java69
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/XPossibleHyphens_impl.java89
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Linguistic/XSpellAlternatives_impl.java92
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Makefile106
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/MenuElement.java56
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/Number_Formats.java253
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/OfficeConnect.java184
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/PathSettings/Makefile92
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/PathSettings/PathSettingsTest.java168
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/Makefile92
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/PathSubstitution/PathSubstitutionTest.java119
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/TerminationTest/Makefile97
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/TerminationTest/TerminateListener.java60
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/TerminationTest/TerminationTest.java101
-rw-r--r--odk/examples/DevelopersGuide/OfficeDev/makefile.mk180
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/CppBinding/Makefile140
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.cxx104
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connect.ini2
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/CppBinding/office_connectrc2
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/CppBinding/string_samples.cxx84
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/InterprocessConn/ConnectionAwareClient.java260
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/InterprocessConn/Makefile86
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/InterprocessConn/UrlResolver.java111
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/Lifetime/Makefile113
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/Lifetime/MyUnoObject.java60
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/Lifetime/object_lifetime.cxx68
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/SimpleBootstrap_cpp/Makefile101
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/SimpleBootstrap_cpp/SimpleBootstrap_cpp.cxx102
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/SimpleBootstrap_java/Makefile91
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/SimpleBootstrap_java/SimpleBootstrap_java.java76
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/SimpleBootstrap_java/manifest.mf4
-rw-r--r--odk/examples/DevelopersGuide/ProfUNO/makefile.mk95
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/SayHello/META-INF/manifest.xml5
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/SayHello/Makefile129
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/SayHello/SayHello.odtbin0 -> 8874 bytes
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/SayHello/SayHello/SayHello.java46
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/SayHello/SayHello/parcel-descriptor.xml17
-rwxr-xr-xodk/examples/DevelopersGuide/ScriptingFramework/SayHello/build.xml81
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/META-INF/manifest.xml5
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/Makefile131
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector.odtbin0 -> 8921 bytes
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector/ScriptSelector.java397
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector/container.gifbin0 -> 164 bytes
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector/parcel-descriptor.xml17
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector/script.gifbin0 -> 187 bytes
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/ScriptSelector/soffice.gifbin0 -> 136 bytes
-rwxr-xr-xodk/examples/DevelopersGuide/ScriptingFramework/ScriptSelector/build.xml81
-rw-r--r--odk/examples/DevelopersGuide/ScriptingFramework/makefile.mk79
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/DataPilotReadme.txt30
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/ExampleAddIn.java314
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/ExampleAddIn.odsbin0 -> 8961 bytes
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/ExampleDataPilotSource.java981
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/GeneralTableSample.java241
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/Makefile306
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/SpreadsheetDocHelper.java405
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/SpreadsheetSample.java1417
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/ViewSample.java170
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/XExampleAddIn.idl60
-rw-r--r--odk/examples/DevelopersGuide/Spreadsheet/makefile.mk72
-rw-r--r--odk/examples/DevelopersGuide/Text/Makefile96
-rw-r--r--odk/examples/DevelopersGuide/Text/PrintDemo.odtbin0 -> 6909 bytes
-rw-r--r--odk/examples/DevelopersGuide/Text/TextDocuments.java1792
-rw-r--r--odk/examples/DevelopersGuide/Text/TextTemplateWithUserFields.odtbin0 -> 6641 bytes
-rw-r--r--odk/examples/DevelopersGuide/Text/makefile.mk67
-rw-r--r--odk/examples/DevelopersGuide/UCB/ChildrenRetriever.java348
-rw-r--r--odk/examples/DevelopersGuide/UCB/DataStreamComposer.java258
-rw-r--r--odk/examples/DevelopersGuide/UCB/DataStreamRetriever.java233
-rw-r--r--odk/examples/DevelopersGuide/UCB/Helper.java250
-rw-r--r--odk/examples/DevelopersGuide/UCB/Makefile156
-rw-r--r--odk/examples/DevelopersGuide/UCB/MyActiveDataSink.java73
-rw-r--r--odk/examples/DevelopersGuide/UCB/MyInputStream.java190
-rw-r--r--odk/examples/DevelopersGuide/UCB/PropertiesComposer.java299
-rw-r--r--odk/examples/DevelopersGuide/UCB/PropertiesRetriever.java254
-rw-r--r--odk/examples/DevelopersGuide/UCB/ResourceCreator.java313
-rw-r--r--odk/examples/DevelopersGuide/UCB/ResourceManager.java289
-rw-r--r--odk/examples/DevelopersGuide/UCB/ResourceRemover.java180
-rw-r--r--odk/examples/DevelopersGuide/UCB/data/data.txt1
-rw-r--r--odk/examples/DevelopersGuide/UCB/makefile.mk75
-rw-r--r--odk/examples/DevelopersGuide/examples.html3035
-rw-r--r--odk/examples/OLE/activex/Makefile122
-rw-r--r--odk/examples/OLE/activex/README.txt39
-rw-r--r--odk/examples/OLE/activex/SOActiveX.cpp645
-rw-r--r--odk/examples/OLE/activex/SOActiveX.h166
-rw-r--r--odk/examples/OLE/activex/SOActiveX.rgs33
-rw-r--r--odk/examples/OLE/activex/SOComWindowPeer.cpp58
-rw-r--r--odk/examples/OLE/activex/SOComWindowPeer.h162
-rw-r--r--odk/examples/OLE/activex/SOComWindowPeer.rgs23
-rw-r--r--odk/examples/OLE/activex/StdAfx2.cpp46
-rw-r--r--odk/examples/OLE/activex/StdAfx2.h65
-rw-r--r--odk/examples/OLE/activex/example.html26
-rw-r--r--odk/examples/OLE/activex/resource.h55
-rw-r--r--odk/examples/OLE/activex/so_activex.cpp108
-rw-r--r--odk/examples/OLE/activex/so_activex.def5
-rw-r--r--odk/examples/OLE/activex/so_activex.idl138
-rw-r--r--odk/examples/OLE/activex/so_activex.rc136
-rw-r--r--odk/examples/OLE/delphi/InsertTables/Project1.dpr14
-rw-r--r--odk/examples/OLE/delphi/InsertTables/Project1.res0
-rw-r--r--odk/examples/OLE/delphi/InsertTables/SampleCode.pas393
-rw-r--r--odk/examples/OLE/delphi/InsertTables/SampleUI.dfm4
-rw-r--r--odk/examples/OLE/delphi/InsertTables/SampleUI.pas168
-rw-r--r--odk/examples/OLE/delphi/StarOffice_Delphi.sxwbin0 -> 34970 bytes
-rw-r--r--odk/examples/OLE/delphi/StarOffice_and_Delphi.pdfbin0 -> 60963 bytes
-rw-r--r--odk/examples/OLE/makefile.mk93
-rw-r--r--odk/examples/OLE/vbscript/WriterDemo.vbs172
-rw-r--r--odk/examples/OLE/vbscript/readme.txt4
-rw-r--r--odk/examples/basic/drawing/dirtree.txt20
-rw-r--r--odk/examples/basic/drawing/importexportofasciifiles.odgbin0 -> 11125 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/beef.wmfbin0 -> 9856 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/burger.wmfbin0 -> 84308 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/burger_factory.odtbin0 -> 18934 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/chicken.wmfbin0 -> 14272 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/fish.wmfbin0 -> 13716 bytes
-rw-r--r--odk/examples/basic/forms_and_controls/vegetable.wmfbin0 -> 17862 bytes
-rw-r--r--odk/examples/basic/makefile.mk91
-rw-r--r--odk/examples/basic/sheet/adapting_to_euroland.odsbin0 -> 9964 bytes
-rw-r--r--odk/examples/basic/stock_quotes_updater/stock.odsbin0 -> 21540 bytes
-rw-r--r--odk/examples/basic/text/creating_an_index/index.odtbin0 -> 13160 bytes
-rw-r--r--odk/examples/basic/text/creating_an_index/indexlist.txt9
-rw-r--r--odk/examples/basic/text/modifying_text_automatically/changing_appearance.odtbin0 -> 9883 bytes
-rw-r--r--odk/examples/basic/text/modifying_text_automatically/inserting_bookmarks.odtbin0 -> 10207 bytes
-rw-r--r--odk/examples/basic/text/modifying_text_automatically/replacing_text.odtbin0 -> 10021 bytes
-rw-r--r--odk/examples/basic/text/modifying_text_automatically/using_regular_expressions.odtbin0 -> 10072 bytes
-rw-r--r--odk/examples/cpp/DocumentLoader/DocumentLoader.cxx167
-rw-r--r--odk/examples/cpp/DocumentLoader/Makefile127
-rw-r--r--odk/examples/cpp/DocumentLoader/test.odtbin0 -> 6737 bytes
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/Addons.xcu170
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/CalcListener.cxx39
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/CalcWindowState.xcu21
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/Jobs.xcu23
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/ListenerHelper.cxx144
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/ListenerHelper.h82
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/Makefile166
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyJob.cxx109
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyJob.h150
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyListener.cxx167
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyListener.h96
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.cxx539
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/MyProtocolHandler.h141
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/ProtocolHandler.xcu10
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/WriterListener.cxx47
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/WriterWindowState.xcu21
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/exports.cxx120
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/logo_big.pngbin0 -> 616 bytes
-rw-r--r--odk/examples/cpp/complextoolbarcontrols/logo_small.pngbin0 -> 585 bytes
-rw-r--r--odk/examples/cpp/counter/Makefile161
-rw-r--r--odk/examples/cpp/counter/XCountable.idl55
-rw-r--r--odk/examples/cpp/counter/counter.cxx238
-rw-r--r--odk/examples/cpp/counter/countermain.cxx122
-rw-r--r--odk/examples/cpp/makefile.mk80
-rw-r--r--odk/examples/cpp/remoteclient/Makefile160
-rw-r--r--odk/examples/cpp/remoteclient/remoteclient.cxx283
-rw-r--r--odk/examples/examples.html748
-rw-r--r--odk/examples/java/ConverterServlet/ConverterServlet.html46
-rw-r--r--odk/examples/java/ConverterServlet/ConverterServlet.java336
-rw-r--r--odk/examples/java/ConverterServlet/Makefile94
-rw-r--r--odk/examples/java/ConverterServlet/README38
-rw-r--r--odk/examples/java/ConverterServlet/web.xml23
-rw-r--r--odk/examples/java/DocumentHandling/DocumentConverter.java225
-rw-r--r--odk/examples/java/DocumentHandling/DocumentLoader.java92
-rw-r--r--odk/examples/java/DocumentHandling/DocumentPrinter.java109
-rw-r--r--odk/examples/java/DocumentHandling/DocumentSaver.java131
-rw-r--r--odk/examples/java/DocumentHandling/Makefile145
-rw-r--r--odk/examples/java/DocumentHandling/test/test1.odtbin0 -> 7999 bytes
-rw-r--r--odk/examples/java/Drawing/Makefile92
-rw-r--r--odk/examples/java/Drawing/SDraw.java272
-rw-r--r--odk/examples/java/EmbedDocument/Container1/EmbedContApp.java1024
-rw-r--r--odk/examples/java/EmbedDocument/Container1/EmbedContFrame.java108
-rw-r--r--odk/examples/java/EmbedDocument/Container1/Makefile48
-rwxr-xr-xodk/examples/java/EmbedDocument/EmbeddedObject/EditorFrame.java121
-rw-r--r--odk/examples/java/EmbedDocument/EmbeddedObject/EmbeddedObject.odtbin0 -> 9975 bytes
-rwxr-xr-xodk/examples/java/EmbedDocument/EmbeddedObject/EmbeddedObject.xcu28
-rw-r--r--odk/examples/java/EmbedDocument/EmbeddedObject/Makefile147
-rwxr-xr-xodk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObject.java1124
-rwxr-xr-xodk/examples/java/EmbedDocument/EmbeddedObject/OwnEmbeddedObjectFactory.java101
-rwxr-xr-xodk/examples/java/Inspector/Addon.xcu28
-rwxr-xr-xodk/examples/java/Inspector/Addons.xcu23
-rw-r--r--odk/examples/java/Inspector/HideableMutableTreeNode.java88
-rw-r--r--odk/examples/java/Inspector/HideableTreeModel.java298
-rw-r--r--odk/examples/java/Inspector/Inspector.java461
-rw-r--r--odk/examples/java/Inspector/InspectorAddon.java228
-rw-r--r--odk/examples/java/Inspector/InspectorPane.java629
-rw-r--r--odk/examples/java/Inspector/InstanceInspector.idl52
-rw-r--r--odk/examples/java/Inspector/InstanceInspectorTest.odtbin0 -> 12272 bytes
-rw-r--r--odk/examples/java/Inspector/Introspector.java667
-rw-r--r--odk/examples/java/Inspector/Makefile195
-rw-r--r--odk/examples/java/Inspector/MethodParametersDialog.java353
-rwxr-xr-xodk/examples/java/Inspector/ObjectInspector.xcs18
-rwxr-xr-xodk/examples/java/Inspector/ObjectInspector.xcu18
-rwxr-xr-xodk/examples/java/Inspector/ProtocolHandler.xcu11
-rw-r--r--odk/examples/java/Inspector/ProtocolHandlerAddon.java283
-rw-r--r--odk/examples/java/Inspector/SourceCodeGenerator.java1766
-rw-r--r--odk/examples/java/Inspector/SwingDialogProvider.java442
-rw-r--r--odk/examples/java/Inspector/SwingTreeControlProvider.java427
-rw-r--r--odk/examples/java/Inspector/SwingTreePathProvider.java40
-rw-r--r--odk/examples/java/Inspector/SwingUnoFacetteNode.java84
-rw-r--r--odk/examples/java/Inspector/SwingUnoMethodNode.java138
-rw-r--r--odk/examples/java/Inspector/SwingUnoNode.java156
-rw-r--r--odk/examples/java/Inspector/SwingUnoPropertyNode.java96
-rw-r--r--odk/examples/java/Inspector/TDocSupplier.java168
-rw-r--r--odk/examples/java/Inspector/TestInspector.java88
-rw-r--r--odk/examples/java/Inspector/UnoFacetteNode.java85
-rw-r--r--odk/examples/java/Inspector/UnoMethodNode.java228
-rw-r--r--odk/examples/java/Inspector/UnoNode.java437
-rw-r--r--odk/examples/java/Inspector/UnoPropertyNode.java225
-rw-r--r--odk/examples/java/Inspector/UnoTreeRenderer.java135
-rw-r--r--odk/examples/java/Inspector/XDialogProvider.java65
-rw-r--r--odk/examples/java/Inspector/XInstanceInspector.idl56
-rw-r--r--odk/examples/java/Inspector/XLanguageSourceCodeGenerator.java106
-rw-r--r--odk/examples/java/Inspector/XMethodParametersDialog.java37
-rw-r--r--odk/examples/java/Inspector/XTreeControlProvider.java93
-rw-r--r--odk/examples/java/Inspector/XTreePathProvider.java25
-rw-r--r--odk/examples/java/Inspector/XUnoFacetteNode.java63
-rw-r--r--odk/examples/java/Inspector/XUnoMethodNode.java68
-rw-r--r--odk/examples/java/Inspector/XUnoNode.java84
-rw-r--r--odk/examples/java/Inspector/XUnoPropertyNode.java51
-rwxr-xr-xodk/examples/java/Inspector/images/containers_16.pngbin0 -> 233 bytes
-rwxr-xr-xodk/examples/java/Inspector/images/content_16.pngbin0 -> 370 bytes
-rwxr-xr-xodk/examples/java/Inspector/images/interfaces_16.pngbin0 -> 433 bytes
-rwxr-xr-xodk/examples/java/Inspector/images/methods_16.pngbin0 -> 380 bytes
-rwxr-xr-xodk/examples/java/Inspector/images/properties_16.pngbin0 -> 242 bytes
-rwxr-xr-xodk/examples/java/Inspector/images/services_16.pngbin0 -> 258 bytes
-rwxr-xr-xodk/examples/java/Inspector/manifest.mf3
-rw-r--r--odk/examples/java/MinimalComponent/BuildMinimalComponent.xml64
-rw-r--r--odk/examples/java/MinimalComponent/Makefile203
-rw-r--r--odk/examples/java/MinimalComponent/MinimalComponent.idl52
-rw-r--r--odk/examples/java/MinimalComponent/MinimalComponent.java171
-rw-r--r--odk/examples/java/MinimalComponent/TestMinimalComponent.java69
-rw-r--r--odk/examples/java/NotesAccess/Makefile113
-rw-r--r--odk/examples/java/NotesAccess/NotesAccess.java288
-rw-r--r--odk/examples/java/NotesAccess/Stocks.nsfbin0 -> 262144 bytes
-rw-r--r--odk/examples/java/PropertySet/Makefile134
-rw-r--r--odk/examples/java/PropertySet/PropTest.java265
-rw-r--r--odk/examples/java/PropertySet/PropertySet.odtbin0 -> 8391 bytes
-rw-r--r--odk/examples/java/Spreadsheet/CalcAddins.java304
-rw-r--r--odk/examples/java/Spreadsheet/CalcAddins.odsbin0 -> 8653 bytes
-rw-r--r--odk/examples/java/Spreadsheet/ChartTypeChange.java355
-rw-r--r--odk/examples/java/Spreadsheet/EuroAdaption.java389
-rw-r--r--odk/examples/java/Spreadsheet/Makefile213
-rw-r--r--odk/examples/java/Spreadsheet/SCalc.java412
-rw-r--r--odk/examples/java/Spreadsheet/XCalcAddins.idl100
-rw-r--r--odk/examples/java/Storage/Makefile58
-rw-r--r--odk/examples/java/Storage/StorageFunctionality.java147
-rw-r--r--odk/examples/java/Storage/StorageTest.java7
-rw-r--r--odk/examples/java/Storage/Test01.java158
-rw-r--r--odk/examples/java/Storage/Test02.java152
-rw-r--r--odk/examples/java/Storage/Test03.java209
-rw-r--r--odk/examples/java/Storage/Test04.java273
-rw-r--r--odk/examples/java/Storage/Test05.java268
-rw-r--r--odk/examples/java/Storage/Test06.java278
-rw-r--r--odk/examples/java/Storage/Test07.java137
-rw-r--r--odk/examples/java/Storage/Test08.java213
-rw-r--r--odk/examples/java/Storage/Test09.java123
-rw-r--r--odk/examples/java/Storage/TestHelper.java864
-rw-r--r--odk/examples/java/Text/BookmarkInsertion.java284
-rw-r--r--odk/examples/java/Text/GraphicsInserter.java179
-rw-r--r--odk/examples/java/Text/HardFormatting.java286
-rw-r--r--odk/examples/java/Text/Makefile136
-rw-r--r--odk/examples/java/Text/SWriter.java397
-rw-r--r--odk/examples/java/Text/StyleCreation.java226
-rw-r--r--odk/examples/java/Text/StyleInitialization.java320
-rw-r--r--odk/examples/java/Text/TextDocumentStructure.java205
-rw-r--r--odk/examples/java/Text/TextReplace.java231
-rw-r--r--odk/examples/java/Text/WriterSelector.java162
-rw-r--r--odk/examples/java/Text/oo_smiley.gifbin0 -> 46109 bytes
-rw-r--r--odk/examples/java/ToDo/Makefile166
-rw-r--r--odk/examples/java/ToDo/ToDo.idl50
-rw-r--r--odk/examples/java/ToDo/ToDo.java965
-rw-r--r--odk/examples/java/ToDo/ToDo.odsbin0 -> 13276 bytes
-rw-r--r--odk/examples/java/ToDo/XToDo.idl50
-rw-r--r--odk/examples/java/makefile.mk155
-rw-r--r--odk/inc/makefile.mk47
-rw-r--r--odk/inc/pch/precompiled_odk.cxx29
-rw-r--r--odk/inc/pch/precompiled_odk.hxx32
-rw-r--r--odk/index.html213
-rw-r--r--odk/no_localization1
-rw-r--r--odk/pack/checkbin/makefile.mk51
-rw-r--r--odk/pack/checkidl/makefile.mk51
-rw-r--r--odk/pack/checkinc/makefile.mk54
-rw-r--r--odk/pack/checkinc2/makefile.mk54
-rwxr-xr-xodk/pack/copying/addsym-macosx.sh11
-rw-r--r--odk/pack/copying/dk.mk3
-rw-r--r--odk/pack/copying/idl_chapter_refs.txt7590
-rw-r--r--odk/pack/copying/makefile.mk262
-rw-r--r--odk/pack/gendocu/java/package-list135
-rw-r--r--odk/pack/gendocu/makefile.mk122
-rw-r--r--odk/pack/gendocu/uno/package-list53
-rw-r--r--odk/pack/unzip_udk/deltree.txt0
-rw-r--r--odk/pack/unzip_udk/makefile.mk46
-rw-r--r--odk/prj/build.lst15
-rw-r--r--odk/prj/d.lst5
-rw-r--r--odk/setsdkenv_unix67
-rw-r--r--odk/setsdkenv_unix.csh.in313
-rw-r--r--odk/setsdkenv_unix.sh.in343
-rwxr-xr-xodk/setsdkenv_windows.bat64
-rwxr-xr-xodk/setsdkenv_windows.template183
-rwxr-xr-xodk/setsdkname.bat3
-rw-r--r--odk/settings/component.uno.def4
-rw-r--r--odk/settings/settings.mk588
-rw-r--r--odk/settings/std.mk55
-rw-r--r--odk/settings/stdtarget.mk16
-rw-r--r--odk/source/com/sun/star/lib/loader/InstallationFinder.java584
-rw-r--r--odk/source/com/sun/star/lib/loader/Loader.java385
-rw-r--r--odk/source/com/sun/star/lib/loader/WinRegKey.java200
-rw-r--r--odk/source/com/sun/star/lib/loader/WinRegKeyException.java51
-rw-r--r--odk/source/com/sun/star/lib/loader/makefile.mk56
-rw-r--r--odk/source/unoapploader/unx/makefile.mk60
-rw-r--r--odk/source/unoapploader/unx/unoapploader.c301
-rw-r--r--odk/source/unoapploader/win/makefile.mk57
-rw-r--r--odk/source/unoapploader/win/unoapploader.c423
-rw-r--r--odk/source/unowinreg/win/makefile.mk116
-rw-r--r--odk/source/unowinreg/win/unowinreg.cxx185
-rw-r--r--odk/source/unowinreg/win/unowinreg.dxp9
-rw-r--r--odk/util/check.pl485
-rw-r--r--odk/util/checkdiff.pl62
-rw-r--r--odk/util/delzip1
-rw-r--r--odk/util/makefile.mk60
-rw-r--r--odk/util/makefile.pmk231
-rw-r--r--odk/util/odk_rules.pmk228
-rw-r--r--offapi/com/sun/star/accessibility/AccessBridge.idl54
-rw-r--r--offapi/com/sun/star/accessibility/Accessible.idl56
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleContext.idl67
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleEventId.idl387
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleEventObject.idl69
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleRelation.idl68
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleRelationType.idl121
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleRole.idl693
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleStateType.idl225
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleTableModelChange.idl90
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleTableModelChangeType.idl82
-rw-r--r--offapi/com/sun/star/accessibility/AccessibleTextType.idl105
-rw-r--r--offapi/com/sun/star/accessibility/IllegalAccessibleComponentStateException.idl54
-rw-r--r--offapi/com/sun/star/accessibility/TextSegment.idl85
-rw-r--r--offapi/com/sun/star/accessibility/XAccessible.idl86
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleAction.idl123
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleComponent.idl236
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleContext.idl215
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleEditableText.idl240
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleEventBroadcaster.idl64
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleEventListener.idl59
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleExtendedComponent.idl109
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleHyperlink.idl142
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleHypertext.idl118
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleImage.idl86
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleKeyBinding.idl93
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleMultiLineText.idl148
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleRelationSet.idl113
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleSelection.idl164
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleStateSet.idl109
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleTable.idl387
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleText.idl519
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleTextAttributes.idl105
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleTextMarkup.idl140
-rw-r--r--offapi/com/sun/star/accessibility/XAccessibleValue.idl106
-rw-r--r--offapi/com/sun/star/accessibility/makefile.mk80
-rw-r--r--offapi/com/sun/star/animations/AnimationAdditiveMode.idl69
-rw-r--r--offapi/com/sun/star/animations/AnimationCalcMode.idl74
-rw-r--r--offapi/com/sun/star/animations/AnimationColorSpace.idl58
-rw-r--r--offapi/com/sun/star/animations/AnimationEndSync.idl81
-rw-r--r--offapi/com/sun/star/animations/AnimationFill.idl84
-rw-r--r--offapi/com/sun/star/animations/AnimationNodeType.idl87
-rw-r--r--offapi/com/sun/star/animations/AnimationRestart.idl75
-rw-r--r--offapi/com/sun/star/animations/AnimationTransformType.idl67
-rw-r--r--offapi/com/sun/star/animations/AnimationValueType.idl57
-rw-r--r--offapi/com/sun/star/animations/Event.idl69
-rw-r--r--offapi/com/sun/star/animations/EventTrigger.idl91
-rw-r--r--offapi/com/sun/star/animations/TargetProperties.idl59
-rw-r--r--offapi/com/sun/star/animations/TimeFilterPair.idl51
-rw-r--r--offapi/com/sun/star/animations/Timing.idl53
-rw-r--r--offapi/com/sun/star/animations/TransitionSubType.idl163
-rw-r--r--offapi/com/sun/star/animations/TransitionType.idl91
-rw-r--r--offapi/com/sun/star/animations/ValuePair.idl48
-rw-r--r--offapi/com/sun/star/animations/XAnimate.idl155
-rw-r--r--offapi/com/sun/star/animations/XAnimateColor.idl74
-rw-r--r--offapi/com/sun/star/animations/XAnimateMotion.idl65
-rw-r--r--offapi/com/sun/star/animations/XAnimateSet.idl66
-rw-r--r--offapi/com/sun/star/animations/XAnimateTransform.idl79
-rw-r--r--offapi/com/sun/star/animations/XAnimationListener.idl88
-rw-r--r--offapi/com/sun/star/animations/XAnimationNode.idl261
-rw-r--r--offapi/com/sun/star/animations/XAnimationNodeSupplier.idl51
-rw-r--r--offapi/com/sun/star/animations/XAudio.idl58
-rw-r--r--offapi/com/sun/star/animations/XCommand.idl66
-rw-r--r--offapi/com/sun/star/animations/XIterateContainer.idl79
-rw-r--r--offapi/com/sun/star/animations/XTargetPropertiesCreator.idl78
-rw-r--r--offapi/com/sun/star/animations/XTimeContainer.idl132
-rw-r--r--offapi/com/sun/star/animations/XTransitionFilter.idl99
-rw-r--r--offapi/com/sun/star/animations/makefile.mk76
-rw-r--r--offapi/com/sun/star/auth/AuthenticationFailedException.idl47
-rw-r--r--offapi/com/sun/star/auth/InvalidArgumentException.idl47
-rw-r--r--offapi/com/sun/star/auth/InvalidContextException.idl47
-rw-r--r--offapi/com/sun/star/auth/InvalidCredentialException.idl47
-rw-r--r--offapi/com/sun/star/auth/InvalidPrincipalException.idl48
-rw-r--r--offapi/com/sun/star/auth/PersistenceFailureException.idl48
-rw-r--r--offapi/com/sun/star/auth/SSOExceptions.idl53
-rw-r--r--offapi/com/sun/star/auth/SSOManagerFactory.idl75
-rw-r--r--offapi/com/sun/star/auth/SSOPasswordCache.idl53
-rw-r--r--offapi/com/sun/star/auth/UnsupportedException.idl48
-rw-r--r--offapi/com/sun/star/auth/XSSOAcceptorContext.idl75
-rw-r--r--offapi/com/sun/star/auth/XSSOContext.idl77
-rw-r--r--offapi/com/sun/star/auth/XSSOInitiatorContext.idl80
-rw-r--r--offapi/com/sun/star/auth/XSSOManager.idl113
-rw-r--r--offapi/com/sun/star/auth/XSSOManagerFactory.idl60
-rw-r--r--offapi/com/sun/star/auth/XSSOPasswordCache.idl105
-rw-r--r--offapi/com/sun/star/auth/makefile.mk28
-rw-r--r--offapi/com/sun/star/awt/AccessibleButton.idl136
-rw-r--r--offapi/com/sun/star/awt/AccessibleCheckBox.idl137
-rw-r--r--offapi/com/sun/star/awt/AccessibleComboBox.idl108
-rw-r--r--offapi/com/sun/star/awt/AccessibleDropDownComboBox.idl119
-rw-r--r--offapi/com/sun/star/awt/AccessibleDropDownListBox.idl119
-rw-r--r--offapi/com/sun/star/awt/AccessibleEdit.idl135
-rw-r--r--offapi/com/sun/star/awt/AccessibleFixedText.idl114
-rw-r--r--offapi/com/sun/star/awt/AccessibleIconChoiceControl.idl115
-rw-r--r--offapi/com/sun/star/awt/AccessibleIconChoiceControlEntry.idl107
-rw-r--r--offapi/com/sun/star/awt/AccessibleList.idl138
-rw-r--r--offapi/com/sun/star/awt/AccessibleListBox.idl107
-rw-r--r--offapi/com/sun/star/awt/AccessibleListBoxList.idl52
-rw-r--r--offapi/com/sun/star/awt/AccessibleListItem.idl104
-rw-r--r--offapi/com/sun/star/awt/AccessibleMenu.idl152
-rw-r--r--offapi/com/sun/star/awt/AccessibleMenuBar.idl115
-rw-r--r--offapi/com/sun/star/awt/AccessibleMenuItem.idl141
-rw-r--r--offapi/com/sun/star/awt/AccessibleMenuSeparator.idl107
-rw-r--r--offapi/com/sun/star/awt/AccessiblePopupMenu.idl115
-rw-r--r--offapi/com/sun/star/awt/AccessibleRadioButton.idl141
-rw-r--r--offapi/com/sun/star/awt/AccessibleScrollBar.idl129
-rw-r--r--offapi/com/sun/star/awt/AccessibleStatusBar.idl98
-rw-r--r--offapi/com/sun/star/awt/AccessibleStatusBarItem.idl107
-rw-r--r--offapi/com/sun/star/awt/AccessibleTabBar.idl109
-rw-r--r--offapi/com/sun/star/awt/AccessibleTabBarPage.idl105
-rw-r--r--offapi/com/sun/star/awt/AccessibleTabBarPageList.idl108
-rw-r--r--offapi/com/sun/star/awt/AccessibleTabControl.idl113
-rw-r--r--offapi/com/sun/star/awt/AccessibleTabPage.idl117
-rw-r--r--offapi/com/sun/star/awt/AccessibleTextField.idl116
-rw-r--r--offapi/com/sun/star/awt/AccessibleToolBox.idl116
-rw-r--r--offapi/com/sun/star/awt/AccessibleToolBoxItem.idl134
-rw-r--r--offapi/com/sun/star/awt/AccessibleTreeListBox.idl115
-rw-r--r--offapi/com/sun/star/awt/AccessibleTreeListBoxEntry.idl133
-rw-r--r--offapi/com/sun/star/awt/AccessibleWindow.idl125
-rw-r--r--offapi/com/sun/star/awt/ActionEvent.idl69
-rw-r--r--offapi/com/sun/star/awt/AdjustmentEvent.idl67
-rw-r--r--offapi/com/sun/star/awt/AdjustmentType.idl72
-rw-r--r--offapi/com/sun/star/awt/AsyncCallback.idl47
-rw-r--r--offapi/com/sun/star/awt/CharSet.idl123
-rw-r--r--offapi/com/sun/star/awt/Command.idl134
-rw-r--r--offapi/com/sun/star/awt/ContainerWindowProvider.idl56
-rw-r--r--offapi/com/sun/star/awt/DeviceCapability.idl65
-rw-r--r--offapi/com/sun/star/awt/DeviceInfo.idl110
-rw-r--r--offapi/com/sun/star/awt/DialogProvider.idl59
-rw-r--r--offapi/com/sun/star/awt/DialogProvider2.idl55
-rw-r--r--offapi/com/sun/star/awt/DockingData.idl63
-rw-r--r--offapi/com/sun/star/awt/DockingEvent.idl84
-rw-r--r--offapi/com/sun/star/awt/EndDockingEvent.idl72
-rw-r--r--offapi/com/sun/star/awt/EndPopupModeEvent.idl68
-rw-r--r--offapi/com/sun/star/awt/EnhancedMouseEvent.idl63
-rw-r--r--offapi/com/sun/star/awt/FieldUnit.idl63
-rw-r--r--offapi/com/sun/star/awt/FocusChangeReason.idl93
-rw-r--r--offapi/com/sun/star/awt/FocusEvent.idl90
-rw-r--r--offapi/com/sun/star/awt/FontDescriptor.idl190
-rw-r--r--offapi/com/sun/star/awt/FontEmphasisMark.idl94
-rw-r--r--offapi/com/sun/star/awt/FontFamily.idl91
-rw-r--r--offapi/com/sun/star/awt/FontPitch.idl68
-rw-r--r--offapi/com/sun/star/awt/FontRelief.idl68
-rw-r--r--offapi/com/sun/star/awt/FontSlant.idl83
-rw-r--r--offapi/com/sun/star/awt/FontStrikeout.idl91
-rw-r--r--offapi/com/sun/star/awt/FontType.idl73
-rw-r--r--offapi/com/sun/star/awt/FontUnderline.idl163
-rw-r--r--offapi/com/sun/star/awt/FontWeight.idl109
-rw-r--r--offapi/com/sun/star/awt/FontWidth.idl109
-rw-r--r--offapi/com/sun/star/awt/Gradient.idl115
-rw-r--r--offapi/com/sun/star/awt/GradientStyle.idl83
-rw-r--r--offapi/com/sun/star/awt/ImageAlign.idl71
-rw-r--r--offapi/com/sun/star/awt/ImagePosition.idl100
-rw-r--r--offapi/com/sun/star/awt/ImageScaleMode.idl62
-rw-r--r--offapi/com/sun/star/awt/ImageStatus.idl73
-rw-r--r--offapi/com/sun/star/awt/InputEvent.idl65
-rw-r--r--offapi/com/sun/star/awt/InvalidateStyle.idl89
-rw-r--r--offapi/com/sun/star/awt/ItemEvent.idl69
-rw-r--r--offapi/com/sun/star/awt/Key.idl574
-rw-r--r--offapi/com/sun/star/awt/KeyEvent.idl76
-rw-r--r--offapi/com/sun/star/awt/KeyFunction.idl123
-rw-r--r--offapi/com/sun/star/awt/KeyGroup.idl85
-rw-r--r--offapi/com/sun/star/awt/KeyModifier.idl68
-rw-r--r--offapi/com/sun/star/awt/KeyStroke.idl81
-rw-r--r--offapi/com/sun/star/awt/LineEndFormat.idl66
-rw-r--r--offapi/com/sun/star/awt/MaxChildrenException.idl29
-rw-r--r--offapi/com/sun/star/awt/MenuBar.idl56
-rw-r--r--offapi/com/sun/star/awt/MenuEvent.idl57
-rw-r--r--offapi/com/sun/star/awt/MenuItemStyle.idl68
-rw-r--r--offapi/com/sun/star/awt/MenuItemType.idl68
-rwxr-xr-xoffapi/com/sun/star/awt/MenuLogo.idl70
-rw-r--r--offapi/com/sun/star/awt/MessageBoxButtons.idl97
-rw-r--r--offapi/com/sun/star/awt/MessageBoxCommand.idl69
-rw-r--r--offapi/com/sun/star/awt/MouseButton.idl65
-rw-r--r--offapi/com/sun/star/awt/MouseEvent.idl101
-rwxr-xr-xoffapi/com/sun/star/awt/MouseWheelBehavior.idl62
-rw-r--r--offapi/com/sun/star/awt/PaintEvent.idl75
-rw-r--r--offapi/com/sun/star/awt/Point.idl57
-rw-r--r--offapi/com/sun/star/awt/PopupMenu.idl55
-rw-r--r--offapi/com/sun/star/awt/PopupMenuDirection.idl92
-rw-r--r--offapi/com/sun/star/awt/PosSize.idl89
-rw-r--r--offapi/com/sun/star/awt/PrinterException.idl54
-rw-r--r--offapi/com/sun/star/awt/PushButtonType.idl71
-rw-r--r--offapi/com/sun/star/awt/RasterOperation.idl79
-rw-r--r--offapi/com/sun/star/awt/Rectangle.idl69
-rw-r--r--offapi/com/sun/star/awt/RoadmapItem.idl78
-rw-r--r--offapi/com/sun/star/awt/ScrollBarOrientation.idl59
-rw-r--r--offapi/com/sun/star/awt/Selection.idl59
-rw-r--r--offapi/com/sun/star/awt/SimpleFontMetric.idl101
-rw-r--r--offapi/com/sun/star/awt/Size.idl59
-rw-r--r--offapi/com/sun/star/awt/SpinEvent.idl57
-rw-r--r--offapi/com/sun/star/awt/Style.idl60
-rw-r--r--offapi/com/sun/star/awt/SystemDependentXWindow.idl67
-rw-r--r--offapi/com/sun/star/awt/SystemPointer.idl492
-rw-r--r--offapi/com/sun/star/awt/TabController.idl53
-rw-r--r--offapi/com/sun/star/awt/TabControllerModel.idl59
-rw-r--r--offapi/com/sun/star/awt/TextAlign.idl65
-rw-r--r--offapi/com/sun/star/awt/TextEvent.idl57
-rw-r--r--offapi/com/sun/star/awt/Toolkit.idl76
-rw-r--r--offapi/com/sun/star/awt/UnoControl.idl94
-rw-r--r--offapi/com/sun/star/awt/UnoControlButton.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlButtonModel.idl282
-rw-r--r--offapi/com/sun/star/awt/UnoControlCheckBox.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlCheckBoxModel.idl240
-rw-r--r--offapi/com/sun/star/awt/UnoControlComboBox.idl59
-rw-r--r--offapi/com/sun/star/awt/UnoControlComboBoxModel.idl234
-rw-r--r--offapi/com/sun/star/awt/UnoControlContainer.idl71
-rw-r--r--offapi/com/sun/star/awt/UnoControlContainerModel.idl116
-rw-r--r--offapi/com/sun/star/awt/UnoControlCurrencyField.idl73
-rw-r--r--offapi/com/sun/star/awt/UnoControlCurrencyFieldModel.idl279
-rw-r--r--offapi/com/sun/star/awt/UnoControlDateField.idl72
-rw-r--r--offapi/com/sun/star/awt/UnoControlDateFieldModel.idl291
-rw-r--r--offapi/com/sun/star/awt/UnoControlDialog.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlDialogElement.idl97
-rw-r--r--offapi/com/sun/star/awt/UnoControlDialogModel.idl197
-rw-r--r--offapi/com/sun/star/awt/UnoControlEdit.idl71
-rw-r--r--offapi/com/sun/star/awt/UnoControlEditModel.idl291
-rw-r--r--offapi/com/sun/star/awt/UnoControlFileControl.idl56
-rw-r--r--offapi/com/sun/star/awt/UnoControlFileControlModel.idl185
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedHyperlink.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedHyperlinkModel.idl188
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedLine.idl54
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedLineModel.idl134
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedText.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlFixedTextModel.idl182
-rw-r--r--offapi/com/sun/star/awt/UnoControlFormattedField.idl64
-rw-r--r--offapi/com/sun/star/awt/UnoControlFormattedFieldModel.idl324
-rw-r--r--offapi/com/sun/star/awt/UnoControlGroupBox.idl53
-rw-r--r--offapi/com/sun/star/awt/UnoControlGroupBoxModel.idl132
-rw-r--r--offapi/com/sun/star/awt/UnoControlImageControl.idl59
-rw-r--r--offapi/com/sun/star/awt/UnoControlImageControlModel.idl161
-rw-r--r--offapi/com/sun/star/awt/UnoControlListBox.idl74
-rw-r--r--offapi/com/sun/star/awt/UnoControlListBoxModel.idl217
-rw-r--r--offapi/com/sun/star/awt/UnoControlModel.idl105
-rw-r--r--offapi/com/sun/star/awt/UnoControlNumericField.idl73
-rw-r--r--offapi/com/sun/star/awt/UnoControlNumericFieldModel.idl267
-rw-r--r--offapi/com/sun/star/awt/UnoControlPatternField.idl73
-rw-r--r--offapi/com/sun/star/awt/UnoControlPatternFieldModel.idl226
-rw-r--r--offapi/com/sun/star/awt/UnoControlProgressBar.idl60
-rw-r--r--offapi/com/sun/star/awt/UnoControlProgressBarModel.idl134
-rw-r--r--offapi/com/sun/star/awt/UnoControlRadioButton.idl65
-rw-r--r--offapi/com/sun/star/awt/UnoControlRadioButtonModel.idl234
-rw-r--r--offapi/com/sun/star/awt/UnoControlRoadmap.idl85
-rw-r--r--offapi/com/sun/star/awt/UnoControlRoadmapModel.idl169
-rw-r--r--offapi/com/sun/star/awt/UnoControlScrollBar.idl60
-rw-r--r--offapi/com/sun/star/awt/UnoControlScrollBarModel.idl201
-rw-r--r--offapi/com/sun/star/awt/UnoControlSimpleAnimation.idl63
-rw-r--r--offapi/com/sun/star/awt/UnoControlSimpleAnimationModel.idl77
-rw-r--r--offapi/com/sun/star/awt/UnoControlSpinButton.idl63
-rw-r--r--offapi/com/sun/star/awt/UnoControlSpinButtonModel.idl183
-rw-r--r--offapi/com/sun/star/awt/UnoControlThrobber.idl63
-rw-r--r--offapi/com/sun/star/awt/UnoControlThrobberModel.idl59
-rw-r--r--offapi/com/sun/star/awt/UnoControlTimeField.idl73
-rw-r--r--offapi/com/sun/star/awt/UnoControlTimeFieldModel.idl271
-rw-r--r--offapi/com/sun/star/awt/VclContainerEvent.idl66
-rw-r--r--offapi/com/sun/star/awt/VclWindowPeerAttribute.idl156
-rw-r--r--offapi/com/sun/star/awt/VisualEffect.idl63
-rw-r--r--offapi/com/sun/star/awt/WindowAttribute.idl135
-rw-r--r--offapi/com/sun/star/awt/WindowClass.idl72
-rw-r--r--offapi/com/sun/star/awt/WindowDescriptor.idl179
-rw-r--r--offapi/com/sun/star/awt/WindowEvent.idl111
-rw-r--r--offapi/com/sun/star/awt/XActionListener.idl61
-rw-r--r--offapi/com/sun/star/awt/XActivateListener.idl78
-rw-r--r--offapi/com/sun/star/awt/XAdjustmentListener.idl61
-rw-r--r--offapi/com/sun/star/awt/XBitmap.idl73
-rw-r--r--offapi/com/sun/star/awt/XButton.idl79
-rw-r--r--offapi/com/sun/star/awt/XCallback.idl60
-rw-r--r--offapi/com/sun/star/awt/XCheckBox.idl92
-rw-r--r--offapi/com/sun/star/awt/XComboBox.idl132
-rw-r--r--offapi/com/sun/star/awt/XContainerWindowEventHandler.idl107
-rw-r--r--offapi/com/sun/star/awt/XContainerWindowProvider.idl130
-rw-r--r--offapi/com/sun/star/awt/XControl.idl146
-rw-r--r--offapi/com/sun/star/awt/XControlContainer.idl87
-rw-r--r--offapi/com/sun/star/awt/XControlModel.idl51
-rw-r--r--offapi/com/sun/star/awt/XCurrencyField.idl149
-rw-r--r--offapi/com/sun/star/awt/XDataTransferProviderAccess.idl111
-rw-r--r--offapi/com/sun/star/awt/XDateField.idl152
-rw-r--r--offapi/com/sun/star/awt/XDevice.idl127
-rw-r--r--offapi/com/sun/star/awt/XDialog.idl77
-rw-r--r--offapi/com/sun/star/awt/XDialog2.idl35
-rw-r--r--offapi/com/sun/star/awt/XDialogEventHandler.idl106
-rw-r--r--offapi/com/sun/star/awt/XDialogProvider.idl75
-rw-r--r--offapi/com/sun/star/awt/XDialogProvider2.idl116
-rw-r--r--offapi/com/sun/star/awt/XDisplayBitmap.idl54
-rw-r--r--offapi/com/sun/star/awt/XDisplayConnection.idl109
-rw-r--r--offapi/com/sun/star/awt/XDockableWindow.idl146
-rw-r--r--offapi/com/sun/star/awt/XDockableWindowListener.idl121
-rw-r--r--offapi/com/sun/star/awt/XEnhancedMouseClickHandler.idl70
-rw-r--r--offapi/com/sun/star/awt/XEventHandler.idl66
-rwxr-xr-xoffapi/com/sun/star/awt/XExtendedToolkit.idl230
-rw-r--r--offapi/com/sun/star/awt/XFileDialog.idl84
-rw-r--r--offapi/com/sun/star/awt/XFixedHyperlink.idl109
-rw-r--r--offapi/com/sun/star/awt/XFixedText.idl81
-rw-r--r--offapi/com/sun/star/awt/XFocusListener.idl74
-rw-r--r--offapi/com/sun/star/awt/XFont.idl126
-rw-r--r--offapi/com/sun/star/awt/XFont2.idl68
-rw-r--r--offapi/com/sun/star/awt/XGraphics.idl321
-rw-r--r--offapi/com/sun/star/awt/XImageButton.idl74
-rw-r--r--offapi/com/sun/star/awt/XImageConsumer.idl132
-rw-r--r--offapi/com/sun/star/awt/XImageProducer.idl91
-rw-r--r--offapi/com/sun/star/awt/XInfoPrinter.idl63
-rw-r--r--offapi/com/sun/star/awt/XItemEventBroadcaster.idl70
-rw-r--r--offapi/com/sun/star/awt/XItemListener.idl62
-rw-r--r--offapi/com/sun/star/awt/XKeyHandler.idl101
-rw-r--r--offapi/com/sun/star/awt/XKeyListener.idl67
-rw-r--r--offapi/com/sun/star/awt/XLayoutConstrains.idl73
-rw-r--r--offapi/com/sun/star/awt/XLayoutContainer.idl89
-rw-r--r--offapi/com/sun/star/awt/XLayoutFlow.idl32
-rw-r--r--offapi/com/sun/star/awt/XLayoutFlowContainer.idl27
-rw-r--r--offapi/com/sun/star/awt/XLayoutRoot.idl33
-rw-r--r--offapi/com/sun/star/awt/XLayoutUnit.idl31
-rw-r--r--offapi/com/sun/star/awt/XListBox.idl199
-rw-r--r--offapi/com/sun/star/awt/XMenu.idl142
-rw-r--r--offapi/com/sun/star/awt/XMenuBar.idl51
-rwxr-xr-xoffapi/com/sun/star/awt/XMenuBarExtended.idl69
-rw-r--r--offapi/com/sun/star/awt/XMenuExtended.idl80
-rwxr-xr-xoffapi/com/sun/star/awt/XMenuExtended2.idl112
-rw-r--r--offapi/com/sun/star/awt/XMenuListener.idl79
-rw-r--r--offapi/com/sun/star/awt/XMessageBox.idl83
-rw-r--r--offapi/com/sun/star/awt/XMessageBoxFactory.idl108
-rw-r--r--offapi/com/sun/star/awt/XMetricField.idl163
-rw-r--r--offapi/com/sun/star/awt/XMouseClickHandler.idl83
-rw-r--r--offapi/com/sun/star/awt/XMouseListener.idl88
-rw-r--r--offapi/com/sun/star/awt/XMouseMotionHandler.idl90
-rw-r--r--offapi/com/sun/star/awt/XMouseMotionListener.idl74
-rw-r--r--offapi/com/sun/star/awt/XNumericField.idl149
-rw-r--r--offapi/com/sun/star/awt/XPaintListener.idl62
-rw-r--r--offapi/com/sun/star/awt/XPatternField.idl89
-rw-r--r--offapi/com/sun/star/awt/XPointer.idl64
-rw-r--r--offapi/com/sun/star/awt/XPopupMenu.idl96
-rwxr-xr-xoffapi/com/sun/star/awt/XPopupMenuExtended.idl361
-rw-r--r--offapi/com/sun/star/awt/XPrinter.idl124
-rw-r--r--offapi/com/sun/star/awt/XPrinterPropertySet.idl109
-rw-r--r--offapi/com/sun/star/awt/XPrinterServer.idl84
-rw-r--r--offapi/com/sun/star/awt/XProgressBar.idl89
-rw-r--r--offapi/com/sun/star/awt/XProgressMonitor.idl71
-rw-r--r--offapi/com/sun/star/awt/XRadioButton.idl86
-rw-r--r--offapi/com/sun/star/awt/XRegion.idl130
-rw-r--r--offapi/com/sun/star/awt/XRequestCallback.idl64
-rw-r--r--offapi/com/sun/star/awt/XReschedule.idl60
-rw-r--r--offapi/com/sun/star/awt/XScrollBar.idl150
-rw-r--r--offapi/com/sun/star/awt/XSimpleAnimation.idl72
-rw-r--r--offapi/com/sun/star/awt/XSimpleTabController.idl172
-rw-r--r--offapi/com/sun/star/awt/XSpinField.idl98
-rw-r--r--offapi/com/sun/star/awt/XSpinListener.idl79
-rw-r--r--offapi/com/sun/star/awt/XSpinValue.idl148
-rw-r--r--offapi/com/sun/star/awt/XSystemChildFactory.idl84
-rw-r--r--offapi/com/sun/star/awt/XSystemDependentMenuPeer.idl77
-rw-r--r--offapi/com/sun/star/awt/XSystemDependentWindowPeer.idl87
-rw-r--r--offapi/com/sun/star/awt/XTabController.idl119
-rw-r--r--offapi/com/sun/star/awt/XTabControllerModel.idl107
-rw-r--r--offapi/com/sun/star/awt/XTabListener.idl97
-rw-r--r--offapi/com/sun/star/awt/XTextArea.idl57
-rw-r--r--offapi/com/sun/star/awt/XTextComponent.idl133
-rw-r--r--offapi/com/sun/star/awt/XTextEditField.idl57
-rw-r--r--offapi/com/sun/star/awt/XTextLayoutConstrains.idl68
-rw-r--r--offapi/com/sun/star/awt/XTextListener.idl61
-rw-r--r--offapi/com/sun/star/awt/XThrobber.idl65
-rw-r--r--offapi/com/sun/star/awt/XTimeField.idl141
-rw-r--r--offapi/com/sun/star/awt/XToggleButton.idl57
-rw-r--r--offapi/com/sun/star/awt/XToolkit.idl118
-rw-r--r--offapi/com/sun/star/awt/XTopWindow.idl93
-rw-r--r--offapi/com/sun/star/awt/XTopWindow2.idl77
-rw-r--r--offapi/com/sun/star/awt/XTopWindowListener.idl101
-rw-r--r--offapi/com/sun/star/awt/XUnitConversion.idl118
-rw-r--r--offapi/com/sun/star/awt/XUnoControlContainer.idl79
-rw-r--r--offapi/com/sun/star/awt/XUserInputInterception.idl100
-rw-r--r--offapi/com/sun/star/awt/XVclContainer.idl81
-rw-r--r--offapi/com/sun/star/awt/XVclContainerListener.idl74
-rw-r--r--offapi/com/sun/star/awt/XVclContainerPeer.idl77
-rw-r--r--offapi/com/sun/star/awt/XVclWindowPeer.idl121
-rw-r--r--offapi/com/sun/star/awt/XView.idl101
-rw-r--r--offapi/com/sun/star/awt/XWindow.idl210
-rw-r--r--offapi/com/sun/star/awt/XWindow2.idl102
-rw-r--r--offapi/com/sun/star/awt/XWindowListener.idl88
-rw-r--r--offapi/com/sun/star/awt/XWindowListener2.idl61
-rw-r--r--offapi/com/sun/star/awt/XWindowPeer.idl93
-rw-r--r--offapi/com/sun/star/awt/grid/DefaultGridColumnModel.idl51
-rw-r--r--offapi/com/sun/star/awt/grid/DefaultGridDataModel.idl51
-rw-r--r--offapi/com/sun/star/awt/grid/GridColumn.idl51
-rw-r--r--offapi/com/sun/star/awt/grid/GridColumnEvent.idl76
-rw-r--r--offapi/com/sun/star/awt/grid/GridControlEvent.idl54
-rw-r--r--offapi/com/sun/star/awt/grid/GridDataEvent.idl79
-rw-r--r--offapi/com/sun/star/awt/grid/GridSelectionEvent.idl68
-rw-r--r--offapi/com/sun/star/awt/grid/ScrollBarMode.idl70
-rw-r--r--offapi/com/sun/star/awt/grid/SelectionEventType.idl60
-rw-r--r--offapi/com/sun/star/awt/grid/UnoControlGrid.idl81
-rw-r--r--offapi/com/sun/star/awt/grid/UnoControlGridModel.idl98
-rw-r--r--offapi/com/sun/star/awt/grid/XGridCell.idl56
-rw-r--r--offapi/com/sun/star/awt/grid/XGridCellRenderer.idl53
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumn.idl69
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumnListener.idl71
-rw-r--r--offapi/com/sun/star/awt/grid/XGridColumnModel.idl113
-rw-r--r--offapi/com/sun/star/awt/grid/XGridControl.idl75
-rw-r--r--offapi/com/sun/star/awt/grid/XGridControlListener.idl49
-rw-r--r--offapi/com/sun/star/awt/grid/XGridDataListener.idl73
-rw-r--r--offapi/com/sun/star/awt/grid/XGridDataModel.idl107
-rw-r--r--offapi/com/sun/star/awt/grid/XGridSelection.idl123
-rw-r--r--offapi/com/sun/star/awt/grid/XGridSelectionListener.idl63
-rw-r--r--offapi/com/sun/star/awt/grid/makefile.mk64
-rw-r--r--offapi/com/sun/star/awt/makefile.mk336
-rw-r--r--offapi/com/sun/star/awt/tree/ExpandVetoException.idl58
-rw-r--r--offapi/com/sun/star/awt/tree/MutableTreeDataModel.idl55
-rw-r--r--offapi/com/sun/star/awt/tree/MutableTreeNode.idl50
-rw-r--r--offapi/com/sun/star/awt/tree/TreeControl.idl97
-rw-r--r--offapi/com/sun/star/awt/tree/TreeControlModel.idl114
-rw-r--r--offapi/com/sun/star/awt/tree/TreeDataModelEvent.idl68
-rw-r--r--offapi/com/sun/star/awt/tree/TreeExpansionEvent.idl59
-rw-r--r--offapi/com/sun/star/awt/tree/XMutableTreeDataModel.idl85
-rw-r--r--offapi/com/sun/star/awt/tree/XMutableTreeNode.idl122
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeControl.idl284
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeDataModel.idl92
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeDataModelListener.idl95
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeEditListener.idl89
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeExpansionListener.idl92
-rw-r--r--offapi/com/sun/star/awt/tree/XTreeNode.idl105
-rw-r--r--offapi/com/sun/star/awt/tree/makefile.mk61
-rw-r--r--offapi/com/sun/star/chart/AccessibleChartDocumentView.idl143
-rw-r--r--offapi/com/sun/star/chart/AccessibleChartElement.idl195
-rw-r--r--offapi/com/sun/star/chart/AreaDiagram.idl82
-rw-r--r--offapi/com/sun/star/chart/BarDiagram.idl138
-rw-r--r--offapi/com/sun/star/chart/BubbleDiagram.idl66
-rw-r--r--offapi/com/sun/star/chart/Chart3DBarProperties.idl59
-rw-r--r--offapi/com/sun/star/chart/ChartArea.idl76
-rw-r--r--offapi/com/sun/star/chart/ChartAxis.idl311
-rw-r--r--offapi/com/sun/star/chart/ChartAxisArrangeOrderType.idl76
-rw-r--r--offapi/com/sun/star/chart/ChartAxisAssign.idl59
-rw-r--r--offapi/com/sun/star/chart/ChartAxisLabelPosition.idl75
-rw-r--r--offapi/com/sun/star/chart/ChartAxisMarkPosition.idl67
-rw-r--r--offapi/com/sun/star/chart/ChartAxisMarks.idl70
-rw-r--r--offapi/com/sun/star/chart/ChartAxisPosition.idl73
-rw-r--r--offapi/com/sun/star/chart/ChartAxisXSupplier.idl90
-rw-r--r--offapi/com/sun/star/chart/ChartAxisYSupplier.idl89
-rw-r--r--offapi/com/sun/star/chart/ChartAxisZSupplier.idl88
-rw-r--r--offapi/com/sun/star/chart/ChartData.idl53
-rw-r--r--offapi/com/sun/star/chart/ChartDataArray.idl65
-rw-r--r--offapi/com/sun/star/chart/ChartDataCaption.idl93
-rw-r--r--offapi/com/sun/star/chart/ChartDataChangeEvent.idl85
-rw-r--r--offapi/com/sun/star/chart/ChartDataChangeType.idl88
-rw-r--r--offapi/com/sun/star/chart/ChartDataPoint.idl47
-rw-r--r--offapi/com/sun/star/chart/ChartDataPointProperties.idl173
-rw-r--r--offapi/com/sun/star/chart/ChartDataRow.idl63
-rw-r--r--offapi/com/sun/star/chart/ChartDataRowProperties.idl127
-rw-r--r--offapi/com/sun/star/chart/ChartDataRowSource.idl61
-rw-r--r--offapi/com/sun/star/chart/ChartDataValue.idl67
-rw-r--r--offapi/com/sun/star/chart/ChartDocument.idl106
-rw-r--r--offapi/com/sun/star/chart/ChartErrorCategory.idl101
-rw-r--r--offapi/com/sun/star/chart/ChartErrorIndicatorType.idl70
-rw-r--r--offapi/com/sun/star/chart/ChartGrid.idl74
-rw-r--r--offapi/com/sun/star/chart/ChartLegend.idl100
-rw-r--r--offapi/com/sun/star/chart/ChartLegendPosition.idl93
-rw-r--r--offapi/com/sun/star/chart/ChartLine.idl57
-rw-r--r--offapi/com/sun/star/chart/ChartPieSegmentProperties.idl75
-rw-r--r--offapi/com/sun/star/chart/ChartRegressionCurveType.idl98
-rw-r--r--offapi/com/sun/star/chart/ChartSeriesAddress.idl69
-rw-r--r--offapi/com/sun/star/chart/ChartSolidType.idl72
-rw-r--r--offapi/com/sun/star/chart/ChartStatistics.idl183
-rw-r--r--offapi/com/sun/star/chart/ChartSymbolType.idl139
-rw-r--r--offapi/com/sun/star/chart/ChartTableAddressSupplier.idl80
-rw-r--r--offapi/com/sun/star/chart/ChartTitle.idl98
-rw-r--r--offapi/com/sun/star/chart/ChartTwoAxisXSupplier.idl87
-rw-r--r--offapi/com/sun/star/chart/ChartTwoAxisYSupplier.idl88
-rw-r--r--offapi/com/sun/star/chart/DataLabelPlacement.idl60
-rw-r--r--offapi/com/sun/star/chart/Diagram.idl129
-rw-r--r--offapi/com/sun/star/chart/Dim3DDiagram.idl84
-rw-r--r--offapi/com/sun/star/chart/DonutDiagram.idl54
-rwxr-xr-xoffapi/com/sun/star/chart/ErrorBarStyle.idl98
-rw-r--r--offapi/com/sun/star/chart/FilledNetDiagram.idl69
-rw-r--r--offapi/com/sun/star/chart/LineDiagram.idl161
-rw-r--r--offapi/com/sun/star/chart/MissingValueTreatment.idl50
-rw-r--r--offapi/com/sun/star/chart/NetDiagram.idl65
-rw-r--r--offapi/com/sun/star/chart/PieDiagram.idl57
-rw-r--r--offapi/com/sun/star/chart/StackableDiagram.idl68
-rw-r--r--offapi/com/sun/star/chart/StockDiagram.idl151
-rw-r--r--offapi/com/sun/star/chart/X3DDefaultSetter.idl67
-rw-r--r--offapi/com/sun/star/chart/X3DDisplay.idl84
-rw-r--r--offapi/com/sun/star/chart/XAxisXSupplier.idl105
-rw-r--r--offapi/com/sun/star/chart/XAxisYSupplier.idl105
-rw-r--r--offapi/com/sun/star/chart/XAxisZSupplier.idl102
-rw-r--r--offapi/com/sun/star/chart/XChartData.idl116
-rw-r--r--offapi/com/sun/star/chart/XChartDataArray.idl114
-rw-r--r--offapi/com/sun/star/chart/XChartDataChangeEventListener.idl71
-rw-r--r--offapi/com/sun/star/chart/XChartDocument.idl180
-rwxr-xr-xoffapi/com/sun/star/chart/XComplexDescriptionAccess.idl98
-rw-r--r--offapi/com/sun/star/chart/XDiagram.idl98
-rw-r--r--offapi/com/sun/star/chart/XSecondAxisTitleSupplier.idl24
-rw-r--r--offapi/com/sun/star/chart/XStatisticDisplay.idl99
-rw-r--r--offapi/com/sun/star/chart/XTwoAxisXSupplier.idl71
-rw-r--r--offapi/com/sun/star/chart/XTwoAxisYSupplier.idl68
-rw-r--r--offapi/com/sun/star/chart/XYDiagram.idl77
-rw-r--r--offapi/com/sun/star/chart/makefile.mk118
-rw-r--r--offapi/com/sun/star/chart2/Axis.idl142
-rw-r--r--offapi/com/sun/star/chart2/AxisOrientation.idl51
-rw-r--r--offapi/com/sun/star/chart2/AxisType.idl60
-rw-r--r--offapi/com/sun/star/chart2/Break.idl46
-rw-r--r--offapi/com/sun/star/chart2/CandleStickChartType.idl119
-rw-r--r--offapi/com/sun/star/chart2/ChartDocument.idl92
-rw-r--r--offapi/com/sun/star/chart2/ChartDocumentWrapper.idl67
-rw-r--r--offapi/com/sun/star/chart2/ChartType.idl63
-rw-r--r--offapi/com/sun/star/chart2/ChartTypeManager.idl56
-rw-r--r--offapi/com/sun/star/chart2/ChartTypeTemplate.idl25
-rw-r--r--offapi/com/sun/star/chart2/CoordinateSystem.idl56
-rw-r--r--offapi/com/sun/star/chart2/CoordinateSystemType.idl36
-rw-r--r--offapi/com/sun/star/chart2/CoordinateSystemTypeID.idl17
-rw-r--r--offapi/com/sun/star/chart2/CurveStyle.idl69
-rw-r--r--offapi/com/sun/star/chart2/CustomLegendEntry.idl50
-rw-r--r--offapi/com/sun/star/chart2/DataPoint.idl74
-rw-r--r--offapi/com/sun/star/chart2/DataPointGeometry3D.idl73
-rw-r--r--offapi/com/sun/star/chart2/DataPointLabel.idl78
-rw-r--r--offapi/com/sun/star/chart2/DataPointProperties.idl328
-rw-r--r--offapi/com/sun/star/chart2/DataSeries.idl198
-rw-r--r--offapi/com/sun/star/chart2/Diagram.idl131
-rw-r--r--offapi/com/sun/star/chart2/ErrorBar.idl89
-rw-r--r--offapi/com/sun/star/chart2/ExplicitIncrementData.idl96
-rw-r--r--offapi/com/sun/star/chart2/ExplicitScaleData.idl45
-rw-r--r--offapi/com/sun/star/chart2/ExplicitSubIncrement.idl30
-rw-r--r--offapi/com/sun/star/chart2/ExponentialScaling.idl55
-rw-r--r--offapi/com/sun/star/chart2/FillBitmap.idl119
-rw-r--r--offapi/com/sun/star/chart2/FormattedString.idl44
-rw-r--r--offapi/com/sun/star/chart2/GridProperties.idl63
-rw-r--r--offapi/com/sun/star/chart2/IncrementData.idl69
-rw-r--r--offapi/com/sun/star/chart2/InterpretedData.idl62
-rw-r--r--offapi/com/sun/star/chart2/Legend.idl101
-rw-r--r--offapi/com/sun/star/chart2/LegendExpansion.idl75
-rw-r--r--offapi/com/sun/star/chart2/LegendPosition.idl71
-rw-r--r--offapi/com/sun/star/chart2/LegendSymbolStyle.idl107
-rw-r--r--offapi/com/sun/star/chart2/LightSource.idl68
-rw-r--r--offapi/com/sun/star/chart2/LinearScaling.idl56
-rw-r--r--offapi/com/sun/star/chart2/LogarithmicScaling.idl54
-rw-r--r--offapi/com/sun/star/chart2/LogicTargetModel.idl41
-rw-r--r--offapi/com/sun/star/chart2/MutableDataSequence.idl62
-rw-r--r--offapi/com/sun/star/chart2/PieChartOffsetMode.idl60
-rw-r--r--offapi/com/sun/star/chart2/PowerScaling.idl55
-rw-r--r--offapi/com/sun/star/chart2/PropertyPool.idl68
-rw-r--r--offapi/com/sun/star/chart2/RegressionCurve.idl69
-rw-r--r--offapi/com/sun/star/chart2/RegressionCurveEquation.idl65
-rw-r--r--offapi/com/sun/star/chart2/RelativePosition.idl88
-rw-r--r--offapi/com/sun/star/chart2/RelativeSize.idl84
-rw-r--r--offapi/com/sun/star/chart2/ScaleData.idl97
-rw-r--r--offapi/com/sun/star/chart2/Scaling.idl53
-rw-r--r--offapi/com/sun/star/chart2/StackingDirection.idl52
-rw-r--r--offapi/com/sun/star/chart2/StandardDiagramCreationParameters.idl59
-rw-r--r--offapi/com/sun/star/chart2/SubIncrement.idl31
-rw-r--r--offapi/com/sun/star/chart2/Symbol.idl122
-rw-r--r--offapi/com/sun/star/chart2/SymbolStyle.idl73
-rw-r--r--offapi/com/sun/star/chart2/TextAnchor.idl51
-rw-r--r--offapi/com/sun/star/chart2/TickmarkStyle.idl61
-rw-r--r--offapi/com/sun/star/chart2/Title.idl94
-rw-r--r--offapi/com/sun/star/chart2/TransparencyStyle.idl62
-rw-r--r--offapi/com/sun/star/chart2/ViewLegendEntry.idl58
-rw-r--r--offapi/com/sun/star/chart2/XAxis.idl56
-rw-r--r--offapi/com/sun/star/chart2/XChartDocument.idl141
-rw-r--r--offapi/com/sun/star/chart2/XChartShape.idl96
-rw-r--r--offapi/com/sun/star/chart2/XChartShapeContainer.idl36
-rw-r--r--offapi/com/sun/star/chart2/XChartType.idl75
-rw-r--r--offapi/com/sun/star/chart2/XChartTypeContainer.idl82
-rw-r--r--offapi/com/sun/star/chart2/XChartTypeManager.idl27
-rw-r--r--offapi/com/sun/star/chart2/XChartTypeTemplate.idl240
-rw-r--r--offapi/com/sun/star/chart2/XColorScheme.idl67
-rw-r--r--offapi/com/sun/star/chart2/XCoordinateSystem.idl73
-rw-r--r--offapi/com/sun/star/chart2/XCoordinateSystemContainer.idl80
-rw-r--r--offapi/com/sun/star/chart2/XDataInterpreter.idl107
-rw-r--r--offapi/com/sun/star/chart2/XDataSeries.idl88
-rw-r--r--offapi/com/sun/star/chart2/XDataSeriesContainer.idl82
-rw-r--r--offapi/com/sun/star/chart2/XDefaultSizeTransmitter.idl64
-rw-r--r--offapi/com/sun/star/chart2/XDiagram.idl97
-rw-r--r--offapi/com/sun/star/chart2/XDiagramProvider.idl65
-rw-r--r--offapi/com/sun/star/chart2/XFastPropertyState.idl146
-rw-r--r--offapi/com/sun/star/chart2/XFormattedString.idl35
-rw-r--r--offapi/com/sun/star/chart2/XInternalDataProvider.idl95
-rw-r--r--offapi/com/sun/star/chart2/XLabeled.idl93
-rw-r--r--offapi/com/sun/star/chart2/XLegend.idl59
-rw-r--r--offapi/com/sun/star/chart2/XLegendEntry.idl30
-rw-r--r--offapi/com/sun/star/chart2/XLegendSymbolProvider.idl35
-rw-r--r--offapi/com/sun/star/chart2/XPlotter.idl128
-rw-r--r--offapi/com/sun/star/chart2/XRegressionCurve.idl66
-rw-r--r--offapi/com/sun/star/chart2/XRegressionCurveCalculator.idl152
-rw-r--r--offapi/com/sun/star/chart2/XRegressionCurveContainer.idl81
-rw-r--r--offapi/com/sun/star/chart2/XScaling.idl32
-rw-r--r--offapi/com/sun/star/chart2/XStyleSupplier.idl75
-rw-r--r--offapi/com/sun/star/chart2/XTarget.idl33
-rw-r--r--offapi/com/sun/star/chart2/XTitle.idl61
-rw-r--r--offapi/com/sun/star/chart2/XTitled.idl64
-rw-r--r--offapi/com/sun/star/chart2/XTransformation.idl101
-rw-r--r--offapi/com/sun/star/chart2/XUndoHelper.idl90
-rw-r--r--offapi/com/sun/star/chart2/XUndoManager.idl111
-rw-r--r--offapi/com/sun/star/chart2/XUndoSupplier.idl57
-rw-r--r--offapi/com/sun/star/chart2/data/DataFilter.idl68
-rw-r--r--offapi/com/sun/star/chart2/data/DataProvider.idl69
-rw-r--r--offapi/com/sun/star/chart2/data/DataSequence.idl157
-rw-r--r--offapi/com/sun/star/chart2/data/DataSequenceRole.idl108
-rw-r--r--offapi/com/sun/star/chart2/data/DataSink.idl60
-rw-r--r--offapi/com/sun/star/chart2/data/DataSource.idl60
-rw-r--r--offapi/com/sun/star/chart2/data/HighlightedRange.idl74
-rw-r--r--offapi/com/sun/star/chart2/data/LabelOrigin.idl100
-rw-r--r--offapi/com/sun/star/chart2/data/LabeledDataSequence.idl83
-rw-r--r--offapi/com/sun/star/chart2/data/RangeHighlightListener.idl60
-rw-r--r--offapi/com/sun/star/chart2/data/RangeHighlighter.idl58
-rw-r--r--offapi/com/sun/star/chart2/data/TabularDataProviderArguments.idl161
-rw-r--r--offapi/com/sun/star/chart2/data/XDataProvider.idl164
-rw-r--r--offapi/com/sun/star/chart2/data/XDataReceiver.idl122
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSequence.idl138
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSink.idl78
-rw-r--r--offapi/com/sun/star/chart2/data/XDataSource.idl83
-rw-r--r--offapi/com/sun/star/chart2/data/XDatabaseDataProvider.idl224
-rw-r--r--offapi/com/sun/star/chart2/data/XLabeledDataSequence.idl80
-rw-r--r--offapi/com/sun/star/chart2/data/XNumericalDataSequence.idl60
-rw-r--r--offapi/com/sun/star/chart2/data/XRangeHighlighter.idl80
-rw-r--r--offapi/com/sun/star/chart2/data/XRangeXMLConversion.idl72
-rw-r--r--offapi/com/sun/star/chart2/data/XTextualDataSequence.idl59
-rw-r--r--offapi/com/sun/star/chart2/data/makefile.mk60
-rw-r--r--offapi/com/sun/star/chart2/makefile.mk111
-rw-r--r--offapi/com/sun/star/configuration/AccessRootElement.idl176
-rw-r--r--offapi/com/sun/star/configuration/AdministrationProvider.idl191
-rw-r--r--offapi/com/sun/star/configuration/CannotLoadConfigurationException.idl51
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationAccess.idl265
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationProvider.idl251
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationRegistry.idl108
-rw-r--r--offapi/com/sun/star/configuration/ConfigurationUpdateAccess.idl144
-rw-r--r--offapi/com/sun/star/configuration/CorruptedConfigurationException.idl61
-rw-r--r--offapi/com/sun/star/configuration/CorruptedUIConfigurationException.idl55
-rw-r--r--offapi/com/sun/star/configuration/DefaultProvider.idl100
-rw-r--r--offapi/com/sun/star/configuration/GroupAccess.idl143
-rw-r--r--offapi/com/sun/star/configuration/GroupElement.idl89
-rw-r--r--offapi/com/sun/star/configuration/GroupUpdate.idl93
-rw-r--r--offapi/com/sun/star/configuration/HierarchyAccess.idl187
-rw-r--r--offapi/com/sun/star/configuration/HierarchyElement.idl132
-rw-r--r--offapi/com/sun/star/configuration/InstallationIncompleteException.idl51
-rw-r--r--offapi/com/sun/star/configuration/InvalidBootstrapFileException.idl53
-rw-r--r--offapi/com/sun/star/configuration/MissingBootstrapFileException.idl53
-rw-r--r--offapi/com/sun/star/configuration/PropertyHierarchy.idl104
-rw-r--r--offapi/com/sun/star/configuration/SetAccess.idl105
-rw-r--r--offapi/com/sun/star/configuration/SetElement.idl186
-rw-r--r--offapi/com/sun/star/configuration/SetUpdate.idl105
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetAccess.idl122
-rw-r--r--offapi/com/sun/star/configuration/SimpleSetUpdate.idl184
-rw-r--r--offapi/com/sun/star/configuration/UpdateRootElement.idl110
-rw-r--r--offapi/com/sun/star/configuration/XTemplateContainer.idl80
-rw-r--r--offapi/com/sun/star/configuration/XTemplateInstance.idl70
-rw-r--r--offapi/com/sun/star/configuration/backend/AuthenticationFailedException.idl50
-rw-r--r--offapi/com/sun/star/configuration/backend/Backend.idl100
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAccessException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendAdapter.idl94
-rw-r--r--offapi/com/sun/star/configuration/backend/BackendSetupException.idl59
-rw-r--r--offapi/com/sun/star/configuration/backend/CannotConnectException.idl59
-rw-r--r--offapi/com/sun/star/configuration/backend/ComponentChangeEvent.idl58
-rw-r--r--offapi/com/sun/star/configuration/backend/ConnectionLostException.idl54
-rw-r--r--offapi/com/sun/star/configuration/backend/CopyImporter.idl89
-rw-r--r--offapi/com/sun/star/configuration/backend/DataImporter.idl127
-rw-r--r--offapi/com/sun/star/configuration/backend/DefaultBackend.idl64
-rw-r--r--offapi/com/sun/star/configuration/backend/HierarchyBrowser.idl85
-rw-r--r--offapi/com/sun/star/configuration/backend/Importer.idl87
-rw-r--r--offapi/com/sun/star/configuration/backend/InsufficientAccessRightsException.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/InteractionHandler.idl102
-rw-r--r--offapi/com/sun/star/configuration/backend/InvalidAuthenticationMechanismException.idl51
-rw-r--r--offapi/com/sun/star/configuration/backend/Layer.idl117
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerDescriber.idl41
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerFilter.idl94
-rw-r--r--offapi/com/sun/star/configuration/backend/LayerUpdateMerger.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapMultiLayerStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleBackend.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LdapSingleStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalDataImporter.idl111
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalHierarchyBrowser.idl92
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSchemaSupplier.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleBackend.idl61
-rw-r--r--offapi/com/sun/star/configuration/backend/LocalSingleStratum.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/MalformedDataException.idl91
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeImporter.idl77
-rw-r--r--offapi/com/sun/star/configuration/backend/MergeRecoveryRequest.idl90
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiLayerStratum.idl73
-rw-r--r--offapi/com/sun/star/configuration/backend/MultiStratumBackend.idl76
-rw-r--r--offapi/com/sun/star/configuration/backend/NodeAttribute.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/OfflineBackend.idl78
-rw-r--r--offapi/com/sun/star/configuration/backend/OnlineBackend.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/PlatformBackend.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/PropertyInfo.idl69
-rw-r--r--offapi/com/sun/star/configuration/backend/Schema.idl87
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaAttribute.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/SchemaSupplier.idl60
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackend.idl101
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleBackendAdapter.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/SingleLayerStratum.idl73
-rw-r--r--offapi/com/sun/star/configuration/backend/StratumCreationException.idl62
-rw-r--r--offapi/com/sun/star/configuration/backend/SystemIntegration.idl72
-rw-r--r--offapi/com/sun/star/configuration/backend/TemplateIdentifier.idl67
-rw-r--r--offapi/com/sun/star/configuration/backend/UpdatableLayer.idl127
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackend.idl206
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesListener.idl65
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendChangesNotifier.idl80
-rw-r--r--offapi/com/sun/star/configuration/backend/XBackendEntities.idl142
-rw-r--r--offapi/com/sun/star/configuration/backend/XCompositeLayer.idl118
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayer.idl91
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerContentDescriber.idl95
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerHandler.idl570
-rw-r--r--offapi/com/sun/star/configuration/backend/XLayerImporter.idl163
-rw-r--r--offapi/com/sun/star/configuration/backend/XMultiLayerStratum.idl347
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchema.idl148
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaHandler.idl538
-rw-r--r--offapi/com/sun/star/configuration/backend/XSchemaSupplier.idl89
-rw-r--r--offapi/com/sun/star/configuration/backend/XSingleLayerStratum.idl151
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdatableLayer.idl92
-rw-r--r--offapi/com/sun/star/configuration/backend/XUpdateHandler.idl673
-rw-r--r--offapi/com/sun/star/configuration/backend/XVersionedSchemaSupplier.idl97
-rw-r--r--offapi/com/sun/star/configuration/backend/makefile.mk103
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerParser.idl98
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/LayerWriter.idl93
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/SchemaParser.idl93
-rw-r--r--offapi/com/sun/star/configuration/backend/xml/makefile.mk43
-rw-r--r--offapi/com/sun/star/configuration/bootstrap/BootstrapContext.idl76
-rw-r--r--offapi/com/sun/star/configuration/bootstrap/makefile.mk41
-rw-r--r--offapi/com/sun/star/configuration/makefile.mk72
-rw-r--r--offapi/com/sun/star/datatransfer/DataFlavor.idl64
-rw-r--r--offapi/com/sun/star/datatransfer/DataFormatTranslator.idl78
-rw-r--r--offapi/com/sun/star/datatransfer/MimeContentTypeFactory.idl86
-rw-r--r--offapi/com/sun/star/datatransfer/UnsupportedFlavorException.idl54
-rw-r--r--offapi/com/sun/star/datatransfer/XDataFormatTranslator.idl84
-rw-r--r--offapi/com/sun/star/datatransfer/XMimeContentType.idl115
-rw-r--r--offapi/com/sun/star/datatransfer/XMimeContentTypeFactory.idl82
-rw-r--r--offapi/com/sun/star/datatransfer/XSystemTransferable.idl72
-rw-r--r--offapi/com/sun/star/datatransfer/XTransferDataAccess.idl84
-rw-r--r--offapi/com/sun/star/datatransfer/XTransferable.idl110
-rw-r--r--offapi/com/sun/star/datatransfer/XTransferableEx.idl71
-rw-r--r--offapi/com/sun/star/datatransfer/XTransferableSource.idl59
-rw-r--r--offapi/com/sun/star/datatransfer/XTransferableSupplier.idl77
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/ClipboardEvent.idl61
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/ClipboardManager.idl84
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/GenericClipboard.idl96
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/RenderingCapabilities.idl59
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/SystemClipboard.idl114
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboard.idl100
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardEx.idl62
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardFactory.idl75
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardListener.idl65
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardManager.idl114
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardNotifier.idl70
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XClipboardOwner.idl73
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/XFlushableClipboard.idl60
-rw-r--r--offapi/com/sun/star/datatransfer/clipboard/makefile.mk59
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DNDConstants.idl89
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragGestureEvent.idl96
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceDragEvent.idl72
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceDropEvent.idl70
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DragSourceEvent.idl73
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDragEnterEvent.idl69
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDragEvent.idl97
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetDropEvent.idl106
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/DropTargetEvent.idl61
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/InvalidDNDOperationException.idl56
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/OleDragSource.idl102
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/OleDropTarget.idl94
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/X11DragSource.idl97
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/X11DropTarget.idl100
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XAutoscroll.idl90
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragGestureListener.idl70
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragGestureRecognizer.idl84
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSource.idl139
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSourceContext.idl107
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDragSourceListener.idl114
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTarget.idl130
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetDragContext.idl91
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetDropContext.idl96
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/XDropTargetListener.idl116
-rw-r--r--offapi/com/sun/star/datatransfer/dnd/makefile.mk70
-rw-r--r--offapi/com/sun/star/datatransfer/makefile.mk59
-rw-r--r--offapi/com/sun/star/deployment/DependencyException.idl71
-rw-r--r--offapi/com/sun/star/deployment/DeploymentException.idl49
-rw-r--r--offapi/com/sun/star/deployment/InstallException.idl58
-rw-r--r--offapi/com/sun/star/deployment/LicenseException.idl54
-rw-r--r--offapi/com/sun/star/deployment/LicenseIndividualAgreementException.idl52
-rw-r--r--offapi/com/sun/star/deployment/PackageInformationProvider.idl40
-rw-r--r--offapi/com/sun/star/deployment/PackageRegistryBackend.idl70
-rw-r--r--offapi/com/sun/star/deployment/PlatformException.idl50
-rw-r--r--offapi/com/sun/star/deployment/UpdateInformationEntry.idl52
-rw-r--r--offapi/com/sun/star/deployment/UpdateInformationProvider.idl40
-rw-r--r--offapi/com/sun/star/deployment/VersionException.idl63
-rw-r--r--offapi/com/sun/star/deployment/XPackage.idl313
-rw-r--r--offapi/com/sun/star/deployment/XPackageInformationProvider.idl70
-rw-r--r--offapi/com/sun/star/deployment/XPackageManager.idl219
-rw-r--r--offapi/com/sun/star/deployment/XPackageManagerFactory.idl98
-rw-r--r--offapi/com/sun/star/deployment/XPackageRegistry.idl76
-rw-r--r--offapi/com/sun/star/deployment/XPackageTypeInfo.idl92
-rw-r--r--offapi/com/sun/star/deployment/XUpdateInformationProvider.idl109
-rw-r--r--offapi/com/sun/star/deployment/makefile.mk60
-rw-r--r--offapi/com/sun/star/deployment/test/SmoketestCommandEnvironment.idl43
-rw-r--r--offapi/com/sun/star/deployment/test/makefile.mk41
-rw-r--r--offapi/com/sun/star/deployment/thePackageManagerFactory.idl51
-rw-r--r--offapi/com/sun/star/deployment/ui/LicenseDialog.idl57
-rw-r--r--offapi/com/sun/star/deployment/ui/PackageManagerDialog.idl74
-rw-r--r--offapi/com/sun/star/deployment/ui/UpdateRequiredDialog.idl54
-rw-r--r--offapi/com/sun/star/deployment/ui/makefile.mk43
-rw-r--r--offapi/com/sun/star/document/AmbigousFilterRequest.idl75
-rw-r--r--offapi/com/sun/star/document/BrokenPackageRequest.idl56
-rw-r--r--offapi/com/sun/star/document/ChangedByOthersRequest.idl61
-rw-r--r--offapi/com/sun/star/document/CorruptedFilterConfigurationException.idl57
-rw-r--r--offapi/com/sun/star/document/DocumentEvent.idl85
-rw-r--r--offapi/com/sun/star/document/DocumentInfo.idl272
-rwxr-xr-xoffapi/com/sun/star/document/DocumentProperties.idl64
-rw-r--r--offapi/com/sun/star/document/DocumentRevisionListPersistence.idl51
-rw-r--r--offapi/com/sun/star/document/EventDescriptor.idl68
-rw-r--r--offapi/com/sun/star/document/EventObject.idl63
-rw-r--r--offapi/com/sun/star/document/Events.idl105
-rw-r--r--offapi/com/sun/star/document/ExportFilter.idl136
-rw-r--r--offapi/com/sun/star/document/ExtendedTypeDetection.idl109
-rw-r--r--offapi/com/sun/star/document/ExtendedTypeDetectionFactory.idl154
-rw-r--r--offapi/com/sun/star/document/FilterAdapter.idl53
-rw-r--r--offapi/com/sun/star/document/FilterFactory.idl251
-rw-r--r--offapi/com/sun/star/document/FilterOptionsRequest.idl68
-rw-r--r--offapi/com/sun/star/document/HeaderFooterSettings.idl73
-rw-r--r--offapi/com/sun/star/document/ImportFilter.idl136
-rw-r--r--offapi/com/sun/star/document/LinkTarget.idl69
-rw-r--r--offapi/com/sun/star/document/LinkTargets.idl58
-rw-r--r--offapi/com/sun/star/document/LinkUpdateModes.idl61
-rw-r--r--offapi/com/sun/star/document/LockFileIgnoreRequest.idl61
-rw-r--r--offapi/com/sun/star/document/LockedDocumentRequest.idl68
-rw-r--r--offapi/com/sun/star/document/LockedOnSavingRequest.idl69
-rw-r--r--offapi/com/sun/star/document/MacroExecMode.idl132
-rw-r--r--offapi/com/sun/star/document/MediaDescriptor.idl603
-rw-r--r--offapi/com/sun/star/document/NoSuchFilterRequest.idl69
-rw-r--r--offapi/com/sun/star/document/OOXMLDocumentPropertiesImporter.idl48
-rw-r--r--offapi/com/sun/star/document/OfficeDocument.idl217
-rw-r--r--offapi/com/sun/star/document/OleEmbeddedServerRegistration.idl64
-rw-r--r--offapi/com/sun/star/document/OwnLockOnDocumentRequest.idl72
-rw-r--r--offapi/com/sun/star/document/PDFDialog.idl64
-rw-r--r--offapi/com/sun/star/document/PrinterIndependentLayout.idl66
-rw-r--r--offapi/com/sun/star/document/RedlineDisplayType.idl60
-rw-r--r--offapi/com/sun/star/document/Settings.idl291
-rw-r--r--offapi/com/sun/star/document/StandaloneDocumentInfo.idl79
-rw-r--r--offapi/com/sun/star/document/TypeDetection.idl198
-rw-r--r--offapi/com/sun/star/document/UpdateDocMode.idl75
-rw-r--r--offapi/com/sun/star/document/XActionLockable.idl88
-rw-r--r--offapi/com/sun/star/document/XBinaryStreamResolver.idl84
-rwxr-xr-xoffapi/com/sun/star/document/XCodeNameQuery.idl56
-rw-r--r--offapi/com/sun/star/document/XDocumentEventBroadcaster.idl125
-rw-r--r--offapi/com/sun/star/document/XDocumentEventListener.idl65
-rw-r--r--offapi/com/sun/star/document/XDocumentInfo.idl147
-rw-r--r--offapi/com/sun/star/document/XDocumentInfoSupplier.idl74
-rw-r--r--offapi/com/sun/star/document/XDocumentInsertable.idl72
-rw-r--r--offapi/com/sun/star/document/XDocumentLanguages.idl64
-rwxr-xr-xoffapi/com/sun/star/document/XDocumentProperties.idl480
-rw-r--r--offapi/com/sun/star/document/XDocumentPropertiesSupplier.idl70
-rw-r--r--offapi/com/sun/star/document/XDocumentRevisionListPersistence.idl90
-rw-r--r--offapi/com/sun/star/document/XDocumentSubStorageSupplier.idl87
-rw-r--r--offapi/com/sun/star/document/XEmbeddedObjectResolver.idl54
-rw-r--r--offapi/com/sun/star/document/XEmbeddedObjectSupplier.idl60
-rw-r--r--offapi/com/sun/star/document/XEmbeddedObjectSupplier2.idl80
-rw-r--r--offapi/com/sun/star/document/XEmbeddedScripts.idl72
-rw-r--r--offapi/com/sun/star/document/XEventBroadcaster.idl72
-rw-r--r--offapi/com/sun/star/document/XEventListener.idl66
-rw-r--r--offapi/com/sun/star/document/XEventsSupplier.idl57
-rw-r--r--offapi/com/sun/star/document/XExporter.idl78
-rw-r--r--offapi/com/sun/star/document/XExtendedFilterDetection.idl82
-rw-r--r--offapi/com/sun/star/document/XFilter.idl88
-rw-r--r--offapi/com/sun/star/document/XFilterAdapter.idl67
-rw-r--r--offapi/com/sun/star/document/XGraphicObjectResolver.idl54
-rw-r--r--offapi/com/sun/star/document/XImporter.idl78
-rw-r--r--offapi/com/sun/star/document/XInteractionFilterOptions.idl69
-rw-r--r--offapi/com/sun/star/document/XInteractionFilterSelect.idl80
-rw-r--r--offapi/com/sun/star/document/XLinkTargetSupplier.idl65
-rw-r--r--offapi/com/sun/star/document/XMLBasicExporter.idl84
-rw-r--r--offapi/com/sun/star/document/XMLBasicImporter.idl75
-rw-r--r--offapi/com/sun/star/document/XMLOasisBasicExporter.idl84
-rw-r--r--offapi/com/sun/star/document/XMLOasisBasicImporter.idl75
-rw-r--r--offapi/com/sun/star/document/XMimeTypeInfo.idl63
-rw-r--r--offapi/com/sun/star/document/XOOXMLDocumentPropertiesImporter.idl105
-rw-r--r--offapi/com/sun/star/document/XRedlinesSupplier.idl60
-rw-r--r--offapi/com/sun/star/document/XScriptInvocationContext.idl73
-rw-r--r--offapi/com/sun/star/document/XStandaloneDocumentInfo.idl105
-rw-r--r--offapi/com/sun/star/document/XStorageBasedDocument.idl123
-rw-r--r--offapi/com/sun/star/document/XStorageChangeListener.idl70
-rw-r--r--offapi/com/sun/star/document/XTypeDetection.idl124
-rw-r--r--offapi/com/sun/star/document/XViewDataSupplier.idl76
-rw-r--r--offapi/com/sun/star/document/makefile.mk122
-rw-r--r--offapi/com/sun/star/drawing/AccessibleDrawDocumentView.idl142
-rw-r--r--offapi/com/sun/star/drawing/AccessibleGraphControl.idl83
-rw-r--r--offapi/com/sun/star/drawing/AccessibleGraphicShape.idl100
-rw-r--r--offapi/com/sun/star/drawing/AccessibleImageBullet.idl111
-rw-r--r--offapi/com/sun/star/drawing/AccessibleOLEShape.idl87
-rw-r--r--offapi/com/sun/star/drawing/AccessibleShape.idl206
-rw-r--r--offapi/com/sun/star/drawing/AccessibleSlideView.idl65
-rw-r--r--offapi/com/sun/star/drawing/AccessibleSlideViewObject.idl64
-rw-r--r--offapi/com/sun/star/drawing/Alignment.idl104
-rw-r--r--offapi/com/sun/star/drawing/AppletShape.idl98
-rw-r--r--offapi/com/sun/star/drawing/Arrangement.idl80
-rw-r--r--offapi/com/sun/star/drawing/Background.idl54
-rw-r--r--offapi/com/sun/star/drawing/BezierPoint.idl77
-rw-r--r--offapi/com/sun/star/drawing/BitmapMode.idl66
-rw-r--r--offapi/com/sun/star/drawing/BitmapTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/BoundVolume.idl60
-rw-r--r--offapi/com/sun/star/drawing/CameraGeometry.idl64
-rw-r--r--offapi/com/sun/star/drawing/CaptionEscapeDirection.idl67
-rw-r--r--offapi/com/sun/star/drawing/CaptionShape.idl158
-rw-r--r--offapi/com/sun/star/drawing/CaptionType.idl66
-rw-r--r--offapi/com/sun/star/drawing/CircleKind.idl77
-rw-r--r--offapi/com/sun/star/drawing/ClosedBezierShape.idl89
-rw-r--r--offapi/com/sun/star/drawing/ColorMode.idl79
-rw-r--r--offapi/com/sun/star/drawing/ConnectionType.idl92
-rw-r--r--offapi/com/sun/star/drawing/ConnectorProperties.idl82
-rw-r--r--offapi/com/sun/star/drawing/ConnectorShape.idl152
-rw-r--r--offapi/com/sun/star/drawing/ConnectorType.idl78
-rw-r--r--offapi/com/sun/star/drawing/ControlShape.idl61
-rw-r--r--offapi/com/sun/star/drawing/CoordinateSequence.idl45
-rw-r--r--offapi/com/sun/star/drawing/CoordinateSequenceSequence.idl48
-rw-r--r--offapi/com/sun/star/drawing/CustomShape.idl116
-rw-r--r--offapi/com/sun/star/drawing/CustomShapeEngine.idl64
-rw-r--r--offapi/com/sun/star/drawing/DashStyle.idl79
-rw-r--r--offapi/com/sun/star/drawing/DashTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/Defaults.idl80
-rw-r--r--offapi/com/sun/star/drawing/Direction3D.idl64
-rw-r--r--offapi/com/sun/star/drawing/DocumentSettings.idl109
-rw-r--r--offapi/com/sun/star/drawing/DoubleSequence.idl44
-rw-r--r--offapi/com/sun/star/drawing/DoubleSequenceSequence.idl48
-rw-r--r--offapi/com/sun/star/drawing/DrawPage.idl88
-rw-r--r--offapi/com/sun/star/drawing/DrawPages.idl80
-rw-r--r--offapi/com/sun/star/drawing/DrawViewMode.idl72
-rw-r--r--offapi/com/sun/star/drawing/DrawingDocument.idl54
-rw-r--r--offapi/com/sun/star/drawing/DrawingDocumentDrawView.idl203
-rw-r--r--offapi/com/sun/star/drawing/DrawingDocumentFactory.idl54
-rw-r--r--offapi/com/sun/star/drawing/EllipseShape.idl105
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeAdjustmentValue.idl58
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeExtrusion.idl176
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeGeometry.idl119
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeGluePointType.idl64
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeHandle.idl101
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeParameter.idl54
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeParameterPair.idl56
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeParameterType.idl107
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapePath.idl119
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeSegment.idl54
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeSegmentCommand.idl115
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeTextFrame.idl57
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeTextPath.idl63
-rw-r--r--offapi/com/sun/star/drawing/EnhancedCustomShapeTextPathMode.idl57
-rw-r--r--offapi/com/sun/star/drawing/EscapeDirection.idl76
-rw-r--r--offapi/com/sun/star/drawing/FillProperties.idl274
-rw-r--r--offapi/com/sun/star/drawing/FillStyle.idl89
-rw-r--r--offapi/com/sun/star/drawing/FlagSequence.idl48
-rw-r--r--offapi/com/sun/star/drawing/FlagSequenceSequence.idl49
-rw-r--r--offapi/com/sun/star/drawing/GenericDrawPage.idl238
-rw-r--r--offapi/com/sun/star/drawing/GenericDrawingDocument.idl240
-rw-r--r--offapi/com/sun/star/drawing/GluePoint.idl91
-rw-r--r--offapi/com/sun/star/drawing/GluePoint2.idl89
-rw-r--r--offapi/com/sun/star/drawing/GradientTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/GraphicExportFilter.idl104
-rw-r--r--offapi/com/sun/star/drawing/GraphicFilterRequest.idl56
-rw-r--r--offapi/com/sun/star/drawing/GraphicObjectShape.idl160
-rw-r--r--offapi/com/sun/star/drawing/GroupShape.idl76
-rw-r--r--offapi/com/sun/star/drawing/Hatch.idl86
-rw-r--r--offapi/com/sun/star/drawing/HatchStyle.idl70
-rw-r--r--offapi/com/sun/star/drawing/HatchTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrix.idl74
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrix3.idl64
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrix4.idl68
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrixLine.idl70
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrixLine3.idl59
-rw-r--r--offapi/com/sun/star/drawing/HomogenMatrixLine4.idl63
-rw-r--r--offapi/com/sun/star/drawing/HorizontalDimensioning.idl79
-rw-r--r--offapi/com/sun/star/drawing/Layer.idl106
-rw-r--r--offapi/com/sun/star/drawing/LayerManager.idl80
-rw-r--r--offapi/com/sun/star/drawing/LayerType.idl77
-rw-r--r--offapi/com/sun/star/drawing/LineDash.idl94
-rw-r--r--offapi/com/sun/star/drawing/LineEndType.idl92
-rw-r--r--offapi/com/sun/star/drawing/LineJoint.idl74
-rw-r--r--offapi/com/sun/star/drawing/LineProperties.idl161
-rw-r--r--offapi/com/sun/star/drawing/LineShape.idl82
-rw-r--r--offapi/com/sun/star/drawing/LineStyle.idl74
-rw-r--r--offapi/com/sun/star/drawing/MarkerTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/MasterPage.idl77
-rw-r--r--offapi/com/sun/star/drawing/MasterPages.idl60
-rw-r--r--offapi/com/sun/star/drawing/MeasureKind.idl69
-rw-r--r--offapi/com/sun/star/drawing/MeasureProperties.idl154
-rw-r--r--offapi/com/sun/star/drawing/MeasureShape.idl94
-rw-r--r--offapi/com/sun/star/drawing/MeasureTextHorzPos.idl75
-rw-r--r--offapi/com/sun/star/drawing/MeasureTextVertPos.idl80
-rw-r--r--offapi/com/sun/star/drawing/MirrorAxis.idl63
-rw-r--r--offapi/com/sun/star/drawing/NormalsKind.idl73
-rw-r--r--offapi/com/sun/star/drawing/OLE2Shape.idl89
-rw-r--r--offapi/com/sun/star/drawing/OpenBezierShape.idl84
-rw-r--r--offapi/com/sun/star/drawing/PageShape.idl67
-rw-r--r--offapi/com/sun/star/drawing/PluginShape.idl82
-rw-r--r--offapi/com/sun/star/drawing/PointSequence.idl48
-rw-r--r--offapi/com/sun/star/drawing/PointSequenceSequence.idl48
-rw-r--r--offapi/com/sun/star/drawing/PolyLineShape.idl84
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonBezierCoords.idl66
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonBezierDescriptor.idl75
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonBezierShape.idl90
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonDescriptor.idl74
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonShape.idl92
-rw-r--r--offapi/com/sun/star/drawing/PolyPolygonShape3D.idl68
-rw-r--r--offapi/com/sun/star/drawing/PolygonFlags.idl81
-rw-r--r--offapi/com/sun/star/drawing/PolygonKind.idl112
-rw-r--r--offapi/com/sun/star/drawing/Position3D.idl70
-rw-r--r--offapi/com/sun/star/drawing/ProjectionMode.idl66
-rw-r--r--offapi/com/sun/star/drawing/RectanglePoint.idl121
-rw-r--r--offapi/com/sun/star/drawing/RectangleShape.idl90
-rw-r--r--offapi/com/sun/star/drawing/RotationDescriptor.idl77
-rw-r--r--offapi/com/sun/star/drawing/ShadeMode.idl80
-rw-r--r--offapi/com/sun/star/drawing/ShadowProperties.idl86
-rw-r--r--offapi/com/sun/star/drawing/Shape.idl202
-rw-r--r--offapi/com/sun/star/drawing/ShapeCollection.idl67
-rw-r--r--offapi/com/sun/star/drawing/Shapes.idl56
-rw-r--r--offapi/com/sun/star/drawing/SlideRenderer.idl48
-rw-r--r--offapi/com/sun/star/drawing/SlideSorter.idl160
-rw-r--r--offapi/com/sun/star/drawing/SnapObjectType.idl67
-rw-r--r--offapi/com/sun/star/drawing/Text.idl65
-rw-r--r--offapi/com/sun/star/drawing/TextAdjust.idl90
-rw-r--r--offapi/com/sun/star/drawing/TextAnimationDirection.idl73
-rw-r--r--offapi/com/sun/star/drawing/TextAnimationKind.idl84
-rw-r--r--offapi/com/sun/star/drawing/TextFitToSizeType.idl74
-rw-r--r--offapi/com/sun/star/drawing/TextHorizontalAdjust.idl73
-rw-r--r--offapi/com/sun/star/drawing/TextProperties.idl334
-rw-r--r--offapi/com/sun/star/drawing/TextShape.idl87
-rw-r--r--offapi/com/sun/star/drawing/TextVerticalAdjust.idl76
-rw-r--r--offapi/com/sun/star/drawing/TextureKind.idl67
-rw-r--r--offapi/com/sun/star/drawing/TextureKind2.idl66
-rw-r--r--offapi/com/sun/star/drawing/TextureMode.idl71
-rw-r--r--offapi/com/sun/star/drawing/TextureProjectionMode.idl76
-rw-r--r--offapi/com/sun/star/drawing/TransparencyGradientTable.idl64
-rw-r--r--offapi/com/sun/star/drawing/VerticalDimensioning.idl79
-rw-r--r--offapi/com/sun/star/drawing/XConnectableShape.idl72
-rw-r--r--offapi/com/sun/star/drawing/XConnectorShape.idl92
-rw-r--r--offapi/com/sun/star/drawing/XControlShape.idl83
-rw-r--r--offapi/com/sun/star/drawing/XCustomShapeEngine.idl87
-rw-r--r--offapi/com/sun/star/drawing/XCustomShapeHandle.idl68
-rw-r--r--offapi/com/sun/star/drawing/XDrawPage.idl52
-rw-r--r--offapi/com/sun/star/drawing/XDrawPageDuplicator.idl73
-rw-r--r--offapi/com/sun/star/drawing/XDrawPageExpander.idl74
-rw-r--r--offapi/com/sun/star/drawing/XDrawPageSummarizer.idl72
-rw-r--r--offapi/com/sun/star/drawing/XDrawPageSupplier.idl71
-rw-r--r--offapi/com/sun/star/drawing/XDrawPages.idl90
-rw-r--r--offapi/com/sun/star/drawing/XDrawPagesSupplier.idl62
-rw-r--r--offapi/com/sun/star/drawing/XDrawSubController.idl74
-rw-r--r--offapi/com/sun/star/drawing/XDrawView.idl76
-rw-r--r--offapi/com/sun/star/drawing/XEnhancedCustomShapeDefaulter.idl295
-rw-r--r--offapi/com/sun/star/drawing/XGluePointsSupplier.idl58
-rw-r--r--offapi/com/sun/star/drawing/XLayer.idl52
-rw-r--r--offapi/com/sun/star/drawing/XLayerManager.idl117
-rw-r--r--offapi/com/sun/star/drawing/XLayerSupplier.idl66
-rw-r--r--offapi/com/sun/star/drawing/XMasterPageTarget.idl74
-rw-r--r--offapi/com/sun/star/drawing/XMasterPagesSupplier.idl64
-rw-r--r--offapi/com/sun/star/drawing/XPresenterHelper.idl179
-rw-r--r--offapi/com/sun/star/drawing/XSelectionFunction.idl86
-rw-r--r--offapi/com/sun/star/drawing/XShape.idl102
-rw-r--r--offapi/com/sun/star/drawing/XShapeAligner.idl72
-rw-r--r--offapi/com/sun/star/drawing/XShapeArranger.idl121
-rw-r--r--offapi/com/sun/star/drawing/XShapeBinder.idl89
-rw-r--r--offapi/com/sun/star/drawing/XShapeCombiner.idl92
-rw-r--r--offapi/com/sun/star/drawing/XShapeDescriptor.idl61
-rw-r--r--offapi/com/sun/star/drawing/XShapeGroup.idl85
-rw-r--r--offapi/com/sun/star/drawing/XShapeGrouper.idl93
-rw-r--r--offapi/com/sun/star/drawing/XShapeMirror.idl83
-rw-r--r--offapi/com/sun/star/drawing/XShapes.idl80
-rw-r--r--offapi/com/sun/star/drawing/XSlidePreviewCache.idl143
-rw-r--r--offapi/com/sun/star/drawing/XSlideRenderer.idl112
-rw-r--r--offapi/com/sun/star/drawing/XUniversalShapeDescriptor.idl59
-rw-r--r--offapi/com/sun/star/drawing/framework/AnchorBindingMode.idl54
-rw-r--r--offapi/com/sun/star/drawing/framework/BasicPaneFactory.idl62
-rw-r--r--offapi/com/sun/star/drawing/framework/BasicToolBarFactory.idl65
-rw-r--r--offapi/com/sun/star/drawing/framework/BasicViewFactory.idl67
-rw-r--r--offapi/com/sun/star/drawing/framework/Configuration.idl58
-rw-r--r--offapi/com/sun/star/drawing/framework/ConfigurationChangeEvent.idl87
-rw-r--r--offapi/com/sun/star/drawing/framework/ConfigurationController.idl63
-rw-r--r--offapi/com/sun/star/drawing/framework/ModuleController.idl59
-rw-r--r--offapi/com/sun/star/drawing/framework/ResourceActivationMode.idl54
-rw-r--r--offapi/com/sun/star/drawing/framework/ResourceId.idl70
-rw-r--r--offapi/com/sun/star/drawing/framework/TabBarButton.idl64
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfiguration.idl138
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfigurationChangeListener.idl57
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfigurationChangeRequest.idl68
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfigurationController.idl272
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfigurationControllerBroadcaster.idl91
-rw-r--r--offapi/com/sun/star/drawing/framework/XConfigurationControllerRequestQueue.idl77
-rw-r--r--offapi/com/sun/star/drawing/framework/XControllerManager.idl63
-rw-r--r--offapi/com/sun/star/drawing/framework/XModuleController.idl67
-rw-r--r--offapi/com/sun/star/drawing/framework/XPane.idl75
-rw-r--r--offapi/com/sun/star/drawing/framework/XPane2.idl76
-rw-r--r--offapi/com/sun/star/drawing/framework/XPaneBorderPainter.idl161
-rw-r--r--offapi/com/sun/star/drawing/framework/XRelocatableResource.idl56
-rw-r--r--offapi/com/sun/star/drawing/framework/XResource.idl63
-rw-r--r--offapi/com/sun/star/drawing/framework/XResourceFactory.idl83
-rw-r--r--offapi/com/sun/star/drawing/framework/XResourceFactoryManager.idl98
-rw-r--r--offapi/com/sun/star/drawing/framework/XResourceId.idl157
-rw-r--r--offapi/com/sun/star/drawing/framework/XTabBar.idl106
-rw-r--r--offapi/com/sun/star/drawing/framework/XToolBar.idl48
-rw-r--r--offapi/com/sun/star/drawing/framework/XView.idl58
-rw-r--r--offapi/com/sun/star/drawing/framework/makefile.mk75
-rw-r--r--offapi/com/sun/star/drawing/makefile.mk227
-rw-r--r--offapi/com/sun/star/drawing/modules.idl65
-rw-r--r--offapi/com/sun/star/embed/Actions.idl70
-rw-r--r--offapi/com/sun/star/embed/Aspects.idl84
-rw-r--r--offapi/com/sun/star/embed/BaseStorage.idl82
-rw-r--r--offapi/com/sun/star/embed/DocumentCloser.idl88
-rw-r--r--offapi/com/sun/star/embed/ElementModes.idl116
-rw-r--r--offapi/com/sun/star/embed/EmbedMapUnits.idl112
-rw-r--r--offapi/com/sun/star/embed/EmbedMisc.idl188
-rw-r--r--offapi/com/sun/star/embed/EmbedStates.idl99
-rw-r--r--offapi/com/sun/star/embed/EmbedUpdateModes.idl68
-rw-r--r--offapi/com/sun/star/embed/EmbedVerbs.idl84
-rw-r--r--offapi/com/sun/star/embed/EmbeddedObjectDescriptor.idl99
-rw-r--r--offapi/com/sun/star/embed/EntryInitModes.idl81
-rw-r--r--offapi/com/sun/star/embed/FileSystemStorage.idl117
-rw-r--r--offapi/com/sun/star/embed/FileSystemStorageFactory.idl109
-rw-r--r--offapi/com/sun/star/embed/InsertedObjectInfo.idl71
-rw-r--r--offapi/com/sun/star/embed/InstanceLocker.idl117
-rw-r--r--offapi/com/sun/star/embed/InvalidStorageException.idl56
-rw-r--r--offapi/com/sun/star/embed/LinkageMisuseException.idl56
-rw-r--r--offapi/com/sun/star/embed/NeedsRunningStateException.idl59
-rw-r--r--offapi/com/sun/star/embed/NoVisualAreaSizeException.idl53
-rw-r--r--offapi/com/sun/star/embed/OLESimpleStorage.idl82
-rw-r--r--offapi/com/sun/star/embed/ObjectSaveVetoException.idl55
-rw-r--r--offapi/com/sun/star/embed/StateChangeInProgressException.idl62
-rw-r--r--offapi/com/sun/star/embed/Storage.idl367
-rw-r--r--offapi/com/sun/star/embed/StorageFactory.idl117
-rw-r--r--offapi/com/sun/star/embed/StorageStream.idl239
-rw-r--r--offapi/com/sun/star/embed/StorageWrappedTargetException.idl53
-rw-r--r--offapi/com/sun/star/embed/UnreachableStateException.idl61
-rw-r--r--offapi/com/sun/star/embed/UseBackupException.idl66
-rw-r--r--offapi/com/sun/star/embed/VerbAttributes.idl59
-rw-r--r--offapi/com/sun/star/embed/VerbDescriptor.idl76
-rw-r--r--offapi/com/sun/star/embed/VisualRepresentation.idl61
-rw-r--r--offapi/com/sun/star/embed/WrongStateException.idl53
-rw-r--r--offapi/com/sun/star/embed/XActionsApproval.idl70
-rw-r--r--offapi/com/sun/star/embed/XClassifiedObject.idl86
-rw-r--r--offapi/com/sun/star/embed/XCommonEmbedPersist.idl136
-rw-r--r--offapi/com/sun/star/embed/XComponentSupplier.idl61
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectClipboardCreator.idl122
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectCreator.idl206
-rw-r--r--offapi/com/sun/star/embed/XEmbedObjectFactory.idl134
-rw-r--r--offapi/com/sun/star/embed/XEmbedPersist.idl275
-rw-r--r--offapi/com/sun/star/embed/XEmbeddedClient.idl90
-rw-r--r--offapi/com/sun/star/embed/XEmbeddedObject.idl306
-rw-r--r--offapi/com/sun/star/embed/XEncryptionProtectedSource.idl74
-rw-r--r--offapi/com/sun/star/embed/XExtendedStorageStream.idl134
-rw-r--r--offapi/com/sun/star/embed/XHatchWindow.idl75
-rw-r--r--offapi/com/sun/star/embed/XHatchWindowController.idl83
-rw-r--r--offapi/com/sun/star/embed/XHatchWindowFactory.idl91
-rw-r--r--offapi/com/sun/star/embed/XHierarchicalStorageAccess.idl235
-rw-r--r--offapi/com/sun/star/embed/XInplaceClient.idl242
-rw-r--r--offapi/com/sun/star/embed/XInplaceObject.idl133
-rw-r--r--offapi/com/sun/star/embed/XInsertObjectDialog.idl112
-rw-r--r--offapi/com/sun/star/embed/XLinkCreator.idl116
-rw-r--r--offapi/com/sun/star/embed/XLinkFactory.idl119
-rw-r--r--offapi/com/sun/star/embed/XLinkageSupport.idl146
-rw-r--r--offapi/com/sun/star/embed/XOLESimpleStorage.idl105
-rw-r--r--offapi/com/sun/star/embed/XOptimizedStorage.idl226
-rw-r--r--offapi/com/sun/star/embed/XPackageStructureCreator.idl71
-rw-r--r--offapi/com/sun/star/embed/XPersistanceHolder.idl88
-rw-r--r--offapi/com/sun/star/embed/XRelationshipAccess.idl283
-rw-r--r--offapi/com/sun/star/embed/XStateChangeBroadcaster.idl67
-rw-r--r--offapi/com/sun/star/embed/XStateChangeListener.idl102
-rw-r--r--offapi/com/sun/star/embed/XStorage.idl661
-rw-r--r--offapi/com/sun/star/embed/XStorageRawAccess.idl235
-rw-r--r--offapi/com/sun/star/embed/XTransactedObject.idl71
-rw-r--r--offapi/com/sun/star/embed/XTransactionBroadcaster.idl68
-rw-r--r--offapi/com/sun/star/embed/XTransactionListener.idl81
-rw-r--r--offapi/com/sun/star/embed/XTransferableSupplier.idl62
-rw-r--r--offapi/com/sun/star/embed/XVisualObject.idl177
-rw-r--r--offapi/com/sun/star/embed/XWindowSupplier.idl57
-rw-r--r--offapi/com/sun/star/embed/makefile.mk115
-rw-r--r--offapi/com/sun/star/form/DataAwareControlModel.idl195
-rw-r--r--offapi/com/sun/star/form/DataSelectionType.idl58
-rw-r--r--offapi/com/sun/star/form/DatabaseDeleteEvent.idl55
-rw-r--r--offapi/com/sun/star/form/DatabaseParameterEvent.idl70
-rw-r--r--offapi/com/sun/star/form/ErrorEvent.idl60
-rw-r--r--offapi/com/sun/star/form/FormButtonType.idl77
-rw-r--r--offapi/com/sun/star/form/FormComponent.idl129
-rw-r--r--offapi/com/sun/star/form/FormComponentType.idl144
-rw-r--r--offapi/com/sun/star/form/FormComponents.idl107
-rw-r--r--offapi/com/sun/star/form/FormControlModel.idl110
-rw-r--r--offapi/com/sun/star/form/FormController.idl114
-rw-r--r--offapi/com/sun/star/form/FormControllerDispatcher.idl57
-rw-r--r--offapi/com/sun/star/form/FormSubmitEncoding.idl71
-rw-r--r--offapi/com/sun/star/form/FormSubmitMethod.idl63
-rw-r--r--offapi/com/sun/star/form/Forms.idl72
-rw-r--r--offapi/com/sun/star/form/ListSourceType.idl89
-rw-r--r--offapi/com/sun/star/form/NavigationBarMode.idl83
-rw-r--r--offapi/com/sun/star/form/PropertyBrowserController.idl147
-rw-r--r--offapi/com/sun/star/form/TabulatorCycle.idl84
-rw-r--r--offapi/com/sun/star/form/XApproveActionBroadcaster.idl81
-rw-r--r--offapi/com/sun/star/form/XApproveActionListener.idl77
-rw-r--r--offapi/com/sun/star/form/XBoundComponent.idl75
-rw-r--r--offapi/com/sun/star/form/XBoundControl.idl74
-rw-r--r--offapi/com/sun/star/form/XChangeBroadcaster.idl85
-rw-r--r--offapi/com/sun/star/form/XChangeListener.idl73
-rw-r--r--offapi/com/sun/star/form/XConfirmDeleteBroadcaster.idl86
-rw-r--r--offapi/com/sun/star/form/XConfirmDeleteListener.idl71
-rw-r--r--offapi/com/sun/star/form/XDatabaseParameterBroadcaster.idl83
-rw-r--r--offapi/com/sun/star/form/XDatabaseParameterBroadcaster2.idl79
-rw-r--r--offapi/com/sun/star/form/XDatabaseParameterListener.idl72
-rw-r--r--offapi/com/sun/star/form/XDeleteListener.idl80
-rw-r--r--offapi/com/sun/star/form/XErrorBroadcaster.idl75
-rw-r--r--offapi/com/sun/star/form/XErrorListener.idl75
-rw-r--r--offapi/com/sun/star/form/XForm.idl59
-rw-r--r--offapi/com/sun/star/form/XFormComponent.idl59
-rw-r--r--offapi/com/sun/star/form/XFormController.idl67
-rw-r--r--offapi/com/sun/star/form/XFormControllerListener.idl84
-rw-r--r--offapi/com/sun/star/form/XFormsSupplier.idl105
-rw-r--r--offapi/com/sun/star/form/XFormsSupplier2.idl68
-rw-r--r--offapi/com/sun/star/form/XGrid.idl79
-rw-r--r--offapi/com/sun/star/form/XGridColumnFactory.idl93
-rw-r--r--offapi/com/sun/star/form/XGridControl.idl69
-rw-r--r--offapi/com/sun/star/form/XGridControlListener.idl57
-rw-r--r--offapi/com/sun/star/form/XGridFieldDataSupplier.idl97
-rw-r--r--offapi/com/sun/star/form/XGridPeer.idl80
-rw-r--r--offapi/com/sun/star/form/XImageProducerSupplier.idl69
-rw-r--r--offapi/com/sun/star/form/XInsertListener.idl77
-rw-r--r--offapi/com/sun/star/form/XLoadListener.idl114
-rw-r--r--offapi/com/sun/star/form/XLoadable.idl107
-rw-r--r--offapi/com/sun/star/form/XPositioningListener.idl70
-rw-r--r--offapi/com/sun/star/form/XReset.idl85
-rw-r--r--offapi/com/sun/star/form/XResetListener.idl91
-rw-r--r--offapi/com/sun/star/form/XRestoreListener.idl74
-rw-r--r--offapi/com/sun/star/form/XSubmit.idl106
-rw-r--r--offapi/com/sun/star/form/XSubmitListener.idl79
-rw-r--r--offapi/com/sun/star/form/XUpdateBroadcaster.idl84
-rw-r--r--offapi/com/sun/star/form/XUpdateListener.idl87
-rw-r--r--offapi/com/sun/star/form/binding/BindableControlModel.idl92
-rw-r--r--offapi/com/sun/star/form/binding/BindableDataAwareControlModel.idl132
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseCheckBox.idl95
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseComboBox.idl73
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseDateField.idl70
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseFormattedField.idl69
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseListBox.idl81
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseNumericField.idl69
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseRadioButton.idl92
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseTextField.idl72
-rw-r--r--offapi/com/sun/star/form/binding/BindableDatabaseTimeField.idl70
-rw-r--r--offapi/com/sun/star/form/binding/BindableIntegerValueRange.idl75
-rw-r--r--offapi/com/sun/star/form/binding/IncompatibleTypesException.idl54
-rw-r--r--offapi/com/sun/star/form/binding/InvalidBindingStateException.idl54
-rw-r--r--offapi/com/sun/star/form/binding/ListEntryEvent.idl74
-rw-r--r--offapi/com/sun/star/form/binding/ListEntrySource.idl74
-rw-r--r--offapi/com/sun/star/form/binding/ValueBinding.idl124
-rw-r--r--offapi/com/sun/star/form/binding/XBindableValue.idl78
-rw-r--r--offapi/com/sun/star/form/binding/XListEntryListener.idl89
-rw-r--r--offapi/com/sun/star/form/binding/XListEntrySink.idl68
-rw-r--r--offapi/com/sun/star/form/binding/XListEntrySource.idl100
-rw-r--r--offapi/com/sun/star/form/binding/XValueBinding.idl104
-rw-r--r--offapi/com/sun/star/form/binding/makefile.mk69
-rw-r--r--offapi/com/sun/star/form/component/CheckBox.idl92
-rw-r--r--offapi/com/sun/star/form/component/ComboBox.idl78
-rw-r--r--offapi/com/sun/star/form/component/CommandButton.idl116
-rw-r--r--offapi/com/sun/star/form/component/CurrencyField.idl77
-rw-r--r--offapi/com/sun/star/form/component/DataForm.idl232
-rw-r--r--offapi/com/sun/star/form/component/DatabaseCheckBox.idl64
-rw-r--r--offapi/com/sun/star/form/component/DatabaseComboBox.idl96
-rw-r--r--offapi/com/sun/star/form/component/DatabaseCurrencyField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabaseDateField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabaseFormattedField.idl73
-rw-r--r--offapi/com/sun/star/form/component/DatabaseImageControl.idl122
-rw-r--r--offapi/com/sun/star/form/component/DatabaseListBox.idl159
-rw-r--r--offapi/com/sun/star/form/component/DatabaseNumericField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabasePatternField.idl74
-rw-r--r--offapi/com/sun/star/form/component/DatabaseRadioButton.idl59
-rw-r--r--offapi/com/sun/star/form/component/DatabaseTextField.idl73
-rw-r--r--offapi/com/sun/star/form/component/DatabaseTimeField.idl59
-rw-r--r--offapi/com/sun/star/form/component/DateField.idl81
-rw-r--r--offapi/com/sun/star/form/component/FileControl.idl78
-rw-r--r--offapi/com/sun/star/form/component/FixedText.idl64
-rw-r--r--offapi/com/sun/star/form/component/Form.idl93
-rw-r--r--offapi/com/sun/star/form/component/FormattedField.idl72
-rw-r--r--offapi/com/sun/star/form/component/GridControl.idl210
-rw-r--r--offapi/com/sun/star/form/component/GroupBox.idl60
-rw-r--r--offapi/com/sun/star/form/component/HTMLForm.idl106
-rw-r--r--offapi/com/sun/star/form/component/HiddenControl.idl65
-rw-r--r--offapi/com/sun/star/form/component/ImageButton.idl116
-rw-r--r--offapi/com/sun/star/form/component/ListBox.idl84
-rw-r--r--offapi/com/sun/star/form/component/NavigationToolBar.idl150
-rw-r--r--offapi/com/sun/star/form/component/NumericField.idl80
-rw-r--r--offapi/com/sun/star/form/component/PatternField.idl78
-rw-r--r--offapi/com/sun/star/form/component/RadioButton.idl112
-rw-r--r--offapi/com/sun/star/form/component/RichTextControl.idl91
-rw-r--r--offapi/com/sun/star/form/component/ScrollBar.idl78
-rw-r--r--offapi/com/sun/star/form/component/SpinButton.idl78
-rw-r--r--offapi/com/sun/star/form/component/SubmitButton.idl72
-rw-r--r--offapi/com/sun/star/form/component/TextField.idl89
-rw-r--r--offapi/com/sun/star/form/component/TimeField.idl81
-rw-r--r--offapi/com/sun/star/form/component/makefile.mk83
-rw-r--r--offapi/com/sun/star/form/control/CheckBox.idl70
-rw-r--r--offapi/com/sun/star/form/control/ComboBox.idl70
-rw-r--r--offapi/com/sun/star/form/control/CommandButton.idl88
-rw-r--r--offapi/com/sun/star/form/control/CurrencyField.idl71
-rw-r--r--offapi/com/sun/star/form/control/DateField.idl71
-rw-r--r--offapi/com/sun/star/form/control/FormattedField.idl76
-rw-r--r--offapi/com/sun/star/form/control/GridControl.idl172
-rw-r--r--offapi/com/sun/star/form/control/GroupBox.idl68
-rw-r--r--offapi/com/sun/star/form/control/ImageButton.idl88
-rw-r--r--offapi/com/sun/star/form/control/ImageControl.idl74
-rw-r--r--offapi/com/sun/star/form/control/InteractionGridControl.idl85
-rw-r--r--offapi/com/sun/star/form/control/ListBox.idl86
-rw-r--r--offapi/com/sun/star/form/control/NavigationToolBar.idl57
-rw-r--r--offapi/com/sun/star/form/control/NumericField.idl71
-rw-r--r--offapi/com/sun/star/form/control/PatternField.idl71
-rw-r--r--offapi/com/sun/star/form/control/RadioButton.idl70
-rw-r--r--offapi/com/sun/star/form/control/SubmitButton.idl88
-rw-r--r--offapi/com/sun/star/form/control/TextField.idl90
-rw-r--r--offapi/com/sun/star/form/control/TimeField.idl71
-rw-r--r--offapi/com/sun/star/form/control/makefile.mk64
-rw-r--r--offapi/com/sun/star/form/inspection/ButtonNavigationHandler.idl65
-rw-r--r--offapi/com/sun/star/form/inspection/CellBindingPropertyHandler.idl68
-rw-r--r--offapi/com/sun/star/form/inspection/DefaultFormComponentInspectorModel.idl101
-rw-r--r--offapi/com/sun/star/form/inspection/EditPropertyHandler.idl69
-rw-r--r--offapi/com/sun/star/form/inspection/EventHandler.idl63
-rw-r--r--offapi/com/sun/star/form/inspection/FormComponentPropertyHandler.idl56
-rw-r--r--offapi/com/sun/star/form/inspection/SubmissionPropertyHandler.idl67
-rw-r--r--offapi/com/sun/star/form/inspection/XMLFormsPropertyHandler.idl73
-rw-r--r--offapi/com/sun/star/form/inspection/XSDValidationPropertyHandler.idl77
-rw-r--r--offapi/com/sun/star/form/inspection/makefile.mk54
-rw-r--r--offapi/com/sun/star/form/makefile.mk104
-rw-r--r--offapi/com/sun/star/form/modules.idl68
-rw-r--r--offapi/com/sun/star/form/runtime/FeatureState.idl62
-rw-r--r--offapi/com/sun/star/form/runtime/FilterEvent.idl65
-rw-r--r--offapi/com/sun/star/form/runtime/FormController.idl52
-rw-r--r--offapi/com/sun/star/form/runtime/FormFeature.idl155
-rw-r--r--offapi/com/sun/star/form/runtime/FormOperations.idl91
-rw-r--r--offapi/com/sun/star/form/runtime/XFeatureInvalidation.idl76
-rw-r--r--offapi/com/sun/star/form/runtime/XFilterController.idl181
-rw-r--r--offapi/com/sun/star/form/runtime/XFilterControllerListener.idl85
-rw-r--r--offapi/com/sun/star/form/runtime/XFormController.idl374
-rw-r--r--offapi/com/sun/star/form/runtime/XFormControllerContext.idl58
-rw-r--r--offapi/com/sun/star/form/runtime/XFormOperations.idl284
-rw-r--r--offapi/com/sun/star/form/runtime/makefile.mk56
-rw-r--r--offapi/com/sun/star/form/submission/XSubmission.idl114
-rw-r--r--offapi/com/sun/star/form/submission/XSubmissionSupplier.idl60
-rw-r--r--offapi/com/sun/star/form/submission/XSubmissionVetoListener.idl71
-rw-r--r--offapi/com/sun/star/form/submission/makefile.mk48
-rw-r--r--offapi/com/sun/star/form/validation/ValidatableBindableControlModel.idl79
-rw-r--r--offapi/com/sun/star/form/validation/ValidatableControlModel.idl97
-rw-r--r--offapi/com/sun/star/form/validation/XFormComponentValidityListener.idl63
-rw-r--r--offapi/com/sun/star/form/validation/XValidatable.idl77
-rw-r--r--offapi/com/sun/star/form/validation/XValidatableFormComponent.idl126
-rw-r--r--offapi/com/sun/star/form/validation/XValidator.idl107
-rw-r--r--offapi/com/sun/star/form/validation/XValidityConstraintListener.idl60
-rw-r--r--offapi/com/sun/star/form/validation/makefile.mk53
-rw-r--r--offapi/com/sun/star/formula/AccessibleFormulaText.idl69
-rw-r--r--offapi/com/sun/star/formula/AccessibleFormulaView.idl70
-rw-r--r--offapi/com/sun/star/formula/FormulaProperties.idl347
-rw-r--r--offapi/com/sun/star/formula/SymbolDescriptor.idl113
-rw-r--r--offapi/com/sun/star/formula/makefile.mk49
-rw-r--r--offapi/com/sun/star/frame/BorderWidths.idl68
-rw-r--r--offapi/com/sun/star/frame/CommandGroup.idl179
-rw-r--r--offapi/com/sun/star/frame/Components.idl61
-rw-r--r--offapi/com/sun/star/frame/ContentHandler.idl70
-rw-r--r--offapi/com/sun/star/frame/ContentHandlerFactory.idl111
-rw-r--r--offapi/com/sun/star/frame/ControlCommand.idl67
-rw-r--r--offapi/com/sun/star/frame/ControlEvent.idl74
-rw-r--r--offapi/com/sun/star/frame/Controller.idl130
-rw-r--r--offapi/com/sun/star/frame/Desktop.idl100
-rw-r--r--offapi/com/sun/star/frame/DesktopTask.idl109
-rw-r--r--offapi/com/sun/star/frame/DesktopTasks.idl50
-rw-r--r--offapi/com/sun/star/frame/DispatchDescriptor.idl93
-rw-r--r--offapi/com/sun/star/frame/DispatchHelper.idl67
-rw-r--r--offapi/com/sun/star/frame/DispatchInformation.idl67
-rw-r--r--offapi/com/sun/star/frame/DispatchProvider.idl86
-rw-r--r--offapi/com/sun/star/frame/DispatchRecorder.idl75
-rw-r--r--offapi/com/sun/star/frame/DispatchRecorderSupplier.idl68
-rw-r--r--offapi/com/sun/star/frame/DispatchResultEvent.idl73
-rw-r--r--offapi/com/sun/star/frame/DispatchResultState.idl59
-rw-r--r--offapi/com/sun/star/frame/DispatchStatement.idl105
-rw-r--r--offapi/com/sun/star/frame/DocumentTemplates.idl55
-rw-r--r--offapi/com/sun/star/frame/DoubleInitializationException.idl54
-rw-r--r--offapi/com/sun/star/frame/FeatureStateEvent.idl95
-rw-r--r--offapi/com/sun/star/frame/Frame.idl206
-rw-r--r--offapi/com/sun/star/frame/FrameAction.idl151
-rw-r--r--offapi/com/sun/star/frame/FrameActionEvent.idl69
-rw-r--r--offapi/com/sun/star/frame/FrameControl.idl80
-rw-r--r--offapi/com/sun/star/frame/FrameLoader.idl99
-rw-r--r--offapi/com/sun/star/frame/FrameLoaderFactory.idl110
-rw-r--r--offapi/com/sun/star/frame/FrameSearchFlag.idl130
-rw-r--r--offapi/com/sun/star/frame/FramesContainer.idl61
-rw-r--r--offapi/com/sun/star/frame/GlobalEventBroadcaster.idl66
-rw-r--r--offapi/com/sun/star/frame/IllegalArgumentIOException.idl54
-rw-r--r--offapi/com/sun/star/frame/LayoutManager.idl132
-rw-r--r--offapi/com/sun/star/frame/LayoutManagerEvents.idl133
-rw-r--r--offapi/com/sun/star/frame/MediaTypeDetectionHelper.idl61
-rw-r--r--offapi/com/sun/star/frame/ModuleManager.idl78
-rw-r--r--offapi/com/sun/star/frame/PopupMenuController.idl153
-rw-r--r--offapi/com/sun/star/frame/PopupMenuControllerFactory.idl85
-rw-r--r--offapi/com/sun/star/frame/ProtocolHandler.idl97
-rw-r--r--offapi/com/sun/star/frame/SessionManager.idl84
-rw-r--r--offapi/com/sun/star/frame/Settings.idl50
-rw-r--r--offapi/com/sun/star/frame/StatusbarController.idl142
-rw-r--r--offapi/com/sun/star/frame/StatusbarControllerFactory.idl91
-rw-r--r--offapi/com/sun/star/frame/SynchronousFrameLoader.idl99
-rw-r--r--offapi/com/sun/star/frame/Task.idl78
-rw-r--r--offapi/com/sun/star/frame/TemplateAccess.idl62
-rw-r--r--offapi/com/sun/star/frame/TerminationVetoException.idl61
-rw-r--r--offapi/com/sun/star/frame/TitleChangedEvent.idl53
-rw-r--r--offapi/com/sun/star/frame/ToolbarController.idl146
-rw-r--r--offapi/com/sun/star/frame/TransientDocumentsDocumentContentFactory.idl56
-rw-r--r--offapi/com/sun/star/frame/UnknownModuleException.idl51
-rw-r--r--offapi/com/sun/star/frame/WindowArrange.idl74
-rw-r--r--offapi/com/sun/star/frame/XBorderResizeListener.idl66
-rw-r--r--offapi/com/sun/star/frame/XBrowseHistoryRegistry.idl66
-rw-r--r--offapi/com/sun/star/frame/XComponentLoader.idl192
-rw-r--r--offapi/com/sun/star/frame/XComponentRegistry.idl60
-rw-r--r--offapi/com/sun/star/frame/XConfigManager.idl118
-rw-r--r--offapi/com/sun/star/frame/XControlNotificationListener.idl65
-rw-r--r--offapi/com/sun/star/frame/XController.idl125
-rw-r--r--offapi/com/sun/star/frame/XController2.idl70
-rw-r--r--offapi/com/sun/star/frame/XControllerBorder.idl91
-rw-r--r--offapi/com/sun/star/frame/XDesktop.idl165
-rw-r--r--offapi/com/sun/star/frame/XDesktopTask.idl69
-rw-r--r--offapi/com/sun/star/frame/XDispatch.idl164
-rw-r--r--offapi/com/sun/star/frame/XDispatchHelper.idl96
-rw-r--r--offapi/com/sun/star/frame/XDispatchInformationProvider.idl91
-rw-r--r--offapi/com/sun/star/frame/XDispatchProvider.idl109
-rw-r--r--offapi/com/sun/star/frame/XDispatchProviderInterception.idl90
-rw-r--r--offapi/com/sun/star/frame/XDispatchProviderInterceptor.idl100
-rw-r--r--offapi/com/sun/star/frame/XDispatchRecorder.idl146
-rw-r--r--offapi/com/sun/star/frame/XDispatchRecorderSupplier.idl130
-rw-r--r--offapi/com/sun/star/frame/XDispatchResultListener.idl64
-rw-r--r--offapi/com/sun/star/frame/XDocumentTemplates.idl215
-rw-r--r--offapi/com/sun/star/frame/XExtendedFilterDetection.idl65
-rw-r--r--offapi/com/sun/star/frame/XFilterDetect.idl58
-rw-r--r--offapi/com/sun/star/frame/XFrame.idl388
-rw-r--r--offapi/com/sun/star/frame/XFrameActionListener.idl70
-rw-r--r--offapi/com/sun/star/frame/XFrameLoader.idl109
-rw-r--r--offapi/com/sun/star/frame/XFrameLoaderQuery.idl82
-rw-r--r--offapi/com/sun/star/frame/XFrameSetModel.idl58
-rw-r--r--offapi/com/sun/star/frame/XFrames.idl102
-rw-r--r--offapi/com/sun/star/frame/XFramesSupplier.idl106
-rw-r--r--offapi/com/sun/star/frame/XInplaceLayout.idl67
-rw-r--r--offapi/com/sun/star/frame/XInterceptorInfo.idl73
-rw-r--r--offapi/com/sun/star/frame/XLayoutManager.idl510
-rw-r--r--offapi/com/sun/star/frame/XLayoutManagerEventBroadcaster.idl68
-rw-r--r--offapi/com/sun/star/frame/XLayoutManagerListener.idl72
-rw-r--r--offapi/com/sun/star/frame/XLoadEventListener.idl68
-rw-r--r--offapi/com/sun/star/frame/XLoadable.idl85
-rw-r--r--offapi/com/sun/star/frame/XMenuBarAcceptor.idl68
-rw-r--r--offapi/com/sun/star/frame/XMenuBarMergingAcceptor.idl82
-rw-r--r--offapi/com/sun/star/frame/XModel.idl236
-rw-r--r--offapi/com/sun/star/frame/XModel2.idl152
-rw-r--r--offapi/com/sun/star/frame/XModule.idl79
-rw-r--r--offapi/com/sun/star/frame/XModuleManager.idl115
-rw-r--r--offapi/com/sun/star/frame/XNotifyingDispatch.idl73
-rw-r--r--offapi/com/sun/star/frame/XPopupMenuController.idl81
-rw-r--r--offapi/com/sun/star/frame/XRecordableDispatch.idl114
-rw-r--r--offapi/com/sun/star/frame/XSessionManagerClient.idl106
-rw-r--r--offapi/com/sun/star/frame/XSessionManagerListener.idl103
-rw-r--r--offapi/com/sun/star/frame/XSessionManagerListener2.idl53
-rw-r--r--offapi/com/sun/star/frame/XStatusListener.idl70
-rw-r--r--offapi/com/sun/star/frame/XStatusbarController.idl172
-rw-r--r--offapi/com/sun/star/frame/XStorable.idl176
-rw-r--r--offapi/com/sun/star/frame/XStorable2.idl92
-rw-r--r--offapi/com/sun/star/frame/XSubToolbarController.idl102
-rw-r--r--offapi/com/sun/star/frame/XSynchronousDispatch.idl77
-rw-r--r--offapi/com/sun/star/frame/XSynchronousFrameLoader.idl95
-rw-r--r--offapi/com/sun/star/frame/XTask.idl73
-rw-r--r--offapi/com/sun/star/frame/XTasksSupplier.idl70
-rw-r--r--offapi/com/sun/star/frame/XTerminateListener.idl89
-rw-r--r--offapi/com/sun/star/frame/XTerminateListener2.idl69
-rw-r--r--offapi/com/sun/star/frame/XTitle.idl62
-rw-r--r--offapi/com/sun/star/frame/XTitleChangeBroadcaster.idl62
-rw-r--r--offapi/com/sun/star/frame/XTitleChangeListener.idl57
-rw-r--r--offapi/com/sun/star/frame/XToolbarController.idl110
-rw-r--r--offapi/com/sun/star/frame/XToolbarControllerListener.idl64
-rw-r--r--offapi/com/sun/star/frame/XTransientDocumentsDocumentContentFactory.idl92
-rw-r--r--offapi/com/sun/star/frame/XUIControllerRegistration.idl107
-rw-r--r--offapi/com/sun/star/frame/XUntitledNumbers.idl118
-rw-r--r--offapi/com/sun/star/frame/XUrlList.idl52
-rw-r--r--offapi/com/sun/star/frame/XWindowArranger.idl59
-rw-r--r--offapi/com/sun/star/frame/makefile.mk166
-rw-r--r--offapi/com/sun/star/frame/status/ClipboardFormats.idl63
-rw-r--r--offapi/com/sun/star/frame/status/FontHeight.idl70
-rw-r--r--offapi/com/sun/star/frame/status/ItemState.idl85
-rw-r--r--offapi/com/sun/star/frame/status/ItemStatus.idl62
-rw-r--r--offapi/com/sun/star/frame/status/LeftRightMargin.idl58
-rw-r--r--offapi/com/sun/star/frame/status/Template.idl60
-rw-r--r--offapi/com/sun/star/frame/status/UpperLowerMargin.idl58
-rw-r--r--offapi/com/sun/star/frame/status/UpperLowerMarginScale.idl70
-rw-r--r--offapi/com/sun/star/frame/status/Verb.idl72
-rw-r--r--offapi/com/sun/star/frame/status/Visibility.idl53
-rw-r--r--offapi/com/sun/star/frame/status/makefile.mk55
-rw-r--r--offapi/com/sun/star/gallery/GalleryItem.idl100
-rw-r--r--offapi/com/sun/star/gallery/GalleryItemType.idl62
-rw-r--r--offapi/com/sun/star/gallery/GalleryTheme.idl57
-rw-r--r--offapi/com/sun/star/gallery/GalleryThemeProvider.idl73
-rw-r--r--offapi/com/sun/star/gallery/XGalleryItem.idl59
-rw-r--r--offapi/com/sun/star/gallery/XGalleryTheme.idl172
-rw-r--r--offapi/com/sun/star/gallery/XGalleryThemeProvider.idl94
-rw-r--r--offapi/com/sun/star/gallery/makefile.mk51
-rw-r--r--offapi/com/sun/star/geometry/AffineMatrix2D.idl93
-rw-r--r--offapi/com/sun/star/geometry/AffineMatrix3D.idl113
-rw-r--r--offapi/com/sun/star/geometry/EllipticalArc.idl94
-rw-r--r--offapi/com/sun/star/geometry/IntegerBezierSegment2D.idl67
-rw-r--r--offapi/com/sun/star/geometry/IntegerPoint2D.idl52
-rw-r--r--offapi/com/sun/star/geometry/IntegerRectangle2D.idl79
-rw-r--r--offapi/com/sun/star/geometry/IntegerSize2D.idl51
-rw-r--r--offapi/com/sun/star/geometry/Matrix2D.idl90
-rw-r--r--offapi/com/sun/star/geometry/RealBezierSegment2D.idl67
-rw-r--r--offapi/com/sun/star/geometry/RealPoint2D.idl52
-rw-r--r--offapi/com/sun/star/geometry/RealRectangle2D.idl79
-rw-r--r--offapi/com/sun/star/geometry/RealRectangle3D.idl79
-rw-r--r--offapi/com/sun/star/geometry/RealSize2D.idl51
-rw-r--r--offapi/com/sun/star/geometry/XMapping2D.idl72
-rw-r--r--offapi/com/sun/star/geometry/makefile.mk59
-rwxr-xr-xoffapi/com/sun/star/graphic/Graphic.idl62
-rw-r--r--offapi/com/sun/star/graphic/GraphicColorMode.idl59
-rwxr-xr-xoffapi/com/sun/star/graphic/GraphicDescriptor.idl151
-rw-r--r--offapi/com/sun/star/graphic/GraphicObject.idl63
-rwxr-xr-xoffapi/com/sun/star/graphic/GraphicProvider.idl53
-rwxr-xr-xoffapi/com/sun/star/graphic/GraphicRendererVCL.idl79
-rwxr-xr-xoffapi/com/sun/star/graphic/GraphicType.idl57
-rwxr-xr-xoffapi/com/sun/star/graphic/MediaProperties.idl128
-rwxr-xr-xoffapi/com/sun/star/graphic/XGraphic.idl65
-rw-r--r--offapi/com/sun/star/graphic/XGraphicObject.idl65
-rwxr-xr-xoffapi/com/sun/star/graphic/XGraphicProvider.idl119
-rwxr-xr-xoffapi/com/sun/star/graphic/XGraphicRenderer.idl54
-rw-r--r--offapi/com/sun/star/graphic/XGraphicTransformer.idl57
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive2D.idl93
-rw-r--r--offapi/com/sun/star/graphic/XPrimitive3D.idl80
-rw-r--r--offapi/com/sun/star/graphic/XPrimitiveFactory2D.idl101
-rwxr-xr-xoffapi/com/sun/star/graphic/makefile.mk62
-rw-r--r--offapi/com/sun/star/i18n/AmPmValue.idl50
-rw-r--r--offapi/com/sun/star/i18n/Boundary.idl56
-rw-r--r--offapi/com/sun/star/i18n/BreakIterator.idl59
-rw-r--r--offapi/com/sun/star/i18n/BreakType.idl56
-rw-r--r--offapi/com/sun/star/i18n/CTLScriptType.idl68
-rw-r--r--offapi/com/sun/star/i18n/Calendar.idl68
-rw-r--r--offapi/com/sun/star/i18n/CalendarDisplayCode.idl90
-rw-r--r--offapi/com/sun/star/i18n/CalendarDisplayIndex.idl58
-rw-r--r--offapi/com/sun/star/i18n/CalendarFieldIndex.idl137
-rw-r--r--offapi/com/sun/star/i18n/CalendarItem.idl60
-rw-r--r--offapi/com/sun/star/i18n/ChapterCollator.idl49
-rw-r--r--offapi/com/sun/star/i18n/CharType.idl85
-rw-r--r--offapi/com/sun/star/i18n/CharacterClassification.idl55
-rw-r--r--offapi/com/sun/star/i18n/CharacterIteratorMode.idl57
-rw-r--r--offapi/com/sun/star/i18n/Collator.idl55
-rw-r--r--offapi/com/sun/star/i18n/CollatorOptions.idl53
-rw-r--r--offapi/com/sun/star/i18n/Currency.idl84
-rw-r--r--offapi/com/sun/star/i18n/Currency2.idl68
-rw-r--r--offapi/com/sun/star/i18n/DirectionProperty.idl67
-rw-r--r--offapi/com/sun/star/i18n/ForbiddenCharacters.idl57
-rw-r--r--offapi/com/sun/star/i18n/FormatElement.idl77
-rw-r--r--offapi/com/sun/star/i18n/Implementation.idl55
-rw-r--r--offapi/com/sun/star/i18n/IndexEntrySupplier.idl53
-rw-r--r--offapi/com/sun/star/i18n/InputSequenceCheckMode.idl61
-rw-r--r--offapi/com/sun/star/i18n/InputSequenceChecker.idl55
-rw-r--r--offapi/com/sun/star/i18n/KCharacterType.idl78
-rw-r--r--offapi/com/sun/star/i18n/KNumberFormatType.idl54
-rw-r--r--offapi/com/sun/star/i18n/KNumberFormatUsage.idl63
-rw-r--r--offapi/com/sun/star/i18n/KParseTokens.idl178
-rw-r--r--offapi/com/sun/star/i18n/KParseType.idl92
-rw-r--r--offapi/com/sun/star/i18n/LanguageCountryInfo.idl63
-rw-r--r--offapi/com/sun/star/i18n/LineBreakHyphenationOptions.idl59
-rw-r--r--offapi/com/sun/star/i18n/LineBreakResults.idl57
-rw-r--r--offapi/com/sun/star/i18n/LineBreakUserOptions.idl62
-rw-r--r--offapi/com/sun/star/i18n/LocaleCalendar.idl53
-rw-r--r--offapi/com/sun/star/i18n/LocaleData.idl52
-rw-r--r--offapi/com/sun/star/i18n/LocaleDataItem.idl85
-rw-r--r--offapi/com/sun/star/i18n/LocaleItem.idl102
-rw-r--r--offapi/com/sun/star/i18n/Months.idl72
-rw-r--r--offapi/com/sun/star/i18n/MultipleCharsOutputException.idl58
-rw-r--r--offapi/com/sun/star/i18n/NativeNumberMode.idl144
-rw-r--r--offapi/com/sun/star/i18n/NativeNumberSupplier.idl53
-rw-r--r--offapi/com/sun/star/i18n/NativeNumberXmlAttributes.idl68
-rw-r--r--offapi/com/sun/star/i18n/NumberFormatCode.idl62
-rw-r--r--offapi/com/sun/star/i18n/NumberFormatIndex.idl280
-rw-r--r--offapi/com/sun/star/i18n/NumberFormatMapper.idl52
-rw-r--r--offapi/com/sun/star/i18n/OrdinalSuffix.idl59
-rw-r--r--offapi/com/sun/star/i18n/ParseResult.idl83
-rw-r--r--offapi/com/sun/star/i18n/ScriptDirection.idl60
-rw-r--r--offapi/com/sun/star/i18n/ScriptType.idl61
-rw-r--r--offapi/com/sun/star/i18n/TextConversion.idl57
-rw-r--r--offapi/com/sun/star/i18n/TextConversionOption.idl71
-rw-r--r--offapi/com/sun/star/i18n/TextConversionResult.idl67
-rw-r--r--offapi/com/sun/star/i18n/TextConversionType.idl64
-rw-r--r--offapi/com/sun/star/i18n/Transliteration.idl53
-rw-r--r--offapi/com/sun/star/i18n/TransliterationModules.idl119
-rw-r--r--offapi/com/sun/star/i18n/TransliterationModulesNew.idl175
-rw-r--r--offapi/com/sun/star/i18n/TransliterationType.idl81
-rw-r--r--offapi/com/sun/star/i18n/UnicodeScript.idl136
-rw-r--r--offapi/com/sun/star/i18n/UnicodeType.idl79
-rw-r--r--offapi/com/sun/star/i18n/Weekdays.idl65
-rw-r--r--offapi/com/sun/star/i18n/WordType.idl73
-rw-r--r--offapi/com/sun/star/i18n/XBreakIterator.idl374
-rw-r--r--offapi/com/sun/star/i18n/XCalendar.idl228
-rw-r--r--offapi/com/sun/star/i18n/XCharacterClassification.idl286
-rw-r--r--offapi/com/sun/star/i18n/XCollator.idl174
-rw-r--r--offapi/com/sun/star/i18n/XExtendedCalendar.idl85
-rw-r--r--offapi/com/sun/star/i18n/XExtendedIndexEntrySupplier.idl157
-rw-r--r--offapi/com/sun/star/i18n/XExtendedInputSequenceChecker.idl64
-rw-r--r--offapi/com/sun/star/i18n/XExtendedTextConversion.idl82
-rw-r--r--offapi/com/sun/star/i18n/XExtendedTransliteration.idl105
-rw-r--r--offapi/com/sun/star/i18n/XForbiddenCharacters.idl86
-rw-r--r--offapi/com/sun/star/i18n/XIndexEntrySupplier.idl78
-rw-r--r--offapi/com/sun/star/i18n/XInputSequenceChecker.idl60
-rw-r--r--offapi/com/sun/star/i18n/XLocaleData.idl137
-rw-r--r--offapi/com/sun/star/i18n/XLocaleData2.idl62
-rw-r--r--offapi/com/sun/star/i18n/XNativeNumberSupplier.idl95
-rw-r--r--offapi/com/sun/star/i18n/XNumberFormatCode.idl97
-rw-r--r--offapi/com/sun/star/i18n/XOrdinalSuffix.idl70
-rw-r--r--offapi/com/sun/star/i18n/XScriptTypeDetector.idl91
-rw-r--r--offapi/com/sun/star/i18n/XTextConversion.idl161
-rw-r--r--offapi/com/sun/star/i18n/XTransliteration.idl331
-rw-r--r--offapi/com/sun/star/i18n/makefile.mk128
-rw-r--r--offapi/com/sun/star/i18n/reservedWords.idl80
-rw-r--r--offapi/com/sun/star/image/ImageMap.idl64
-rw-r--r--offapi/com/sun/star/image/ImageMapCircleObject.idl65
-rw-r--r--offapi/com/sun/star/image/ImageMapObject.idl84
-rw-r--r--offapi/com/sun/star/image/ImageMapPolygonObject.idl63
-rw-r--r--offapi/com/sun/star/image/ImageMapRectangleObject.idl62
-rw-r--r--offapi/com/sun/star/image/makefile.mk50
-rw-r--r--offapi/com/sun/star/inspection/DefaultHelpProvider.idl71
-rw-r--r--offapi/com/sun/star/inspection/GenericPropertyHandler.idl63
-rw-r--r--offapi/com/sun/star/inspection/InteractiveSelectionResult.idl76
-rw-r--r--offapi/com/sun/star/inspection/LineDescriptor.idl201
-rw-r--r--offapi/com/sun/star/inspection/ObjectInspector.idl111
-rw-r--r--offapi/com/sun/star/inspection/ObjectInspectorModel.idl121
-rw-r--r--offapi/com/sun/star/inspection/PropertyCategoryDescriptor.idl67
-rw-r--r--offapi/com/sun/star/inspection/PropertyControlType.idl153
-rw-r--r--offapi/com/sun/star/inspection/PropertyLineElement.idl61
-rw-r--r--offapi/com/sun/star/inspection/XHyperlinkControl.idl69
-rw-r--r--offapi/com/sun/star/inspection/XNumericControl.idl98
-rw-r--r--offapi/com/sun/star/inspection/XObjectInspector.idl133
-rw-r--r--offapi/com/sun/star/inspection/XObjectInspectorModel.idl192
-rw-r--r--offapi/com/sun/star/inspection/XObjectInspectorUI.idl187
-rw-r--r--offapi/com/sun/star/inspection/XPropertyControl.idl120
-rw-r--r--offapi/com/sun/star/inspection/XPropertyControlContext.idl60
-rw-r--r--offapi/com/sun/star/inspection/XPropertyControlFactory.idl81
-rw-r--r--offapi/com/sun/star/inspection/XPropertyControlObserver.idl75
-rw-r--r--offapi/com/sun/star/inspection/XPropertyHandler.idl471
-rw-r--r--offapi/com/sun/star/inspection/XStringListControl.idl73
-rw-r--r--offapi/com/sun/star/inspection/XStringRepresentation.idl76
-rw-r--r--offapi/com/sun/star/inspection/makefile.mk66
-rw-r--r--offapi/com/sun/star/installation/InstallationCheck.idl64
-rw-r--r--offapi/com/sun/star/installation/InstallationCheckService.idl61
-rw-r--r--offapi/com/sun/star/installation/InternetSettings.idl52
-rw-r--r--offapi/com/sun/star/installation/ProtDlgRes.idl72
-rw-r--r--offapi/com/sun/star/installation/ProtocolHandlerCheck.idl52
-rw-r--r--offapi/com/sun/star/installation/ProtocolHandlerCheckService.idl52
-rw-r--r--offapi/com/sun/star/installation/XInstallationCheck.idl114
-rw-r--r--offapi/com/sun/star/installation/XProtocolHandlerCheck.idl91
-rw-r--r--offapi/com/sun/star/installation/makefile.mk55
-rw-r--r--offapi/com/sun/star/installation/protocols.idl94
-rw-r--r--offapi/com/sun/star/ldap/LdapConnectionException.idl49
-rw-r--r--offapi/com/sun/star/ldap/LdapGenericException.idl55
-rw-r--r--offapi/com/sun/star/ldap/makefile.mk47
-rw-r--r--offapi/com/sun/star/linguistic2/ConversionDictionary.idl81
-rw-r--r--offapi/com/sun/star/linguistic2/ConversionDictionaryList.idl70
-rw-r--r--offapi/com/sun/star/linguistic2/ConversionDictionaryType.idl56
-rw-r--r--offapi/com/sun/star/linguistic2/ConversionDirection.idl57
-rw-r--r--offapi/com/sun/star/linguistic2/ConversionPropertyType.idl114
-rw-r--r--offapi/com/sun/star/linguistic2/Dictionary.idl82
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryEvent.idl83
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryEventFlags.idl86
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryList.idl64
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryListEvent.idl95
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryListEventFlags.idl102
-rw-r--r--offapi/com/sun/star/linguistic2/DictionaryType.idl71
-rw-r--r--offapi/com/sun/star/linguistic2/HangulHanjaConversionDictionary.idl60
-rw-r--r--offapi/com/sun/star/linguistic2/Hyphenator.idl67
-rw-r--r--offapi/com/sun/star/linguistic2/LanguageGuessing.idl44
-rw-r--r--offapi/com/sun/star/linguistic2/LinguProperties.idl183
-rw-r--r--offapi/com/sun/star/linguistic2/LinguServiceEvent.idl71
-rw-r--r--offapi/com/sun/star/linguistic2/LinguServiceEventFlags.idl73
-rw-r--r--offapi/com/sun/star/linguistic2/LinguServiceManager.idl60
-rw-r--r--offapi/com/sun/star/linguistic2/Proofreader.idl63
-rw-r--r--offapi/com/sun/star/linguistic2/ProofreadingIterator.idl57
-rw-r--r--offapi/com/sun/star/linguistic2/ProofreadingResult.idl99
-rw-r--r--offapi/com/sun/star/linguistic2/SingleProofreadingError.idl81
-rw-r--r--offapi/com/sun/star/linguistic2/SpellChecker.idl67
-rw-r--r--offapi/com/sun/star/linguistic2/SpellFailure.idl68
-rw-r--r--offapi/com/sun/star/linguistic2/Thesaurus.idl65
-rw-r--r--offapi/com/sun/star/linguistic2/XAvailableLocales.idl66
-rw-r--r--offapi/com/sun/star/linguistic2/XConversionDictionary.idl243
-rw-r--r--offapi/com/sun/star/linguistic2/XConversionDictionaryList.idl219
-rw-r--r--offapi/com/sun/star/linguistic2/XConversionPropertyType.idl110
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionary.idl275
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionary1.idl112
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionaryEntry.idl97
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionaryEventListener.idl72
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionaryList.idl261
-rw-r--r--offapi/com/sun/star/linguistic2/XDictionaryListEventListener.idl74
-rw-r--r--offapi/com/sun/star/linguistic2/XHyphenatedWord.idl117
-rw-r--r--offapi/com/sun/star/linguistic2/XHyphenator.idl215
-rw-r--r--offapi/com/sun/star/linguistic2/XLanguageGuessing.idl203
-rw-r--r--offapi/com/sun/star/linguistic2/XLinguServiceEventBroadcaster.idl93
-rw-r--r--offapi/com/sun/star/linguistic2/XLinguServiceEventListener.idl71
-rw-r--r--offapi/com/sun/star/linguistic2/XLinguServiceManager.idl194
-rw-r--r--offapi/com/sun/star/linguistic2/XMeaning.idl72
-rw-r--r--offapi/com/sun/star/linguistic2/XPossibleHyphens.idl102
-rw-r--r--offapi/com/sun/star/linguistic2/XProofreader.idl129
-rw-r--r--offapi/com/sun/star/linguistic2/XProofreadingIterator.idl127
-rw-r--r--offapi/com/sun/star/linguistic2/XSearchableDictionary.idl71
-rw-r--r--offapi/com/sun/star/linguistic2/XSearchableDictionaryList.idl95
-rw-r--r--offapi/com/sun/star/linguistic2/XSetSpellAlternatives.idl74
-rw-r--r--offapi/com/sun/star/linguistic2/XSpellAlternatives.idl100
-rw-r--r--offapi/com/sun/star/linguistic2/XSpellChecker.idl137
-rw-r--r--offapi/com/sun/star/linguistic2/XSpellChecker1.idl81
-rw-r--r--offapi/com/sun/star/linguistic2/XSupportedLanguages.idl60
-rw-r--r--offapi/com/sun/star/linguistic2/XSupportedLocales.idl85
-rw-r--r--offapi/com/sun/star/linguistic2/XThesaurus.idl99
-rw-r--r--offapi/com/sun/star/linguistic2/makefile.mk101
-rw-r--r--offapi/com/sun/star/logging/ConsoleHandler.idl82
-rw-r--r--offapi/com/sun/star/logging/CsvLogFormatter.idl63
-rw-r--r--offapi/com/sun/star/logging/DocumentIOLogRing.idl63
-rw-r--r--offapi/com/sun/star/logging/FileHandler.idl97
-rw-r--r--offapi/com/sun/star/logging/LogLevel.idl87
-rw-r--r--offapi/com/sun/star/logging/LogRecord.idl96
-rw-r--r--offapi/com/sun/star/logging/LoggerPool.idl34
-rw-r--r--offapi/com/sun/star/logging/PlainTextFormatter.idl60
-rw-r--r--offapi/com/sun/star/logging/SimpleLogRing.idl69
-rw-r--r--offapi/com/sun/star/logging/XConsoleHandler.idl67
-rw-r--r--offapi/com/sun/star/logging/XCsvLogFormatter.idl83
-rw-r--r--offapi/com/sun/star/logging/XLogFormatter.idl88
-rw-r--r--offapi/com/sun/star/logging/XLogHandler.idl110
-rw-r--r--offapi/com/sun/star/logging/XLogger.idl148
-rw-r--r--offapi/com/sun/star/logging/XLoggerPool.idl73
-rw-r--r--offapi/com/sun/star/logging/XSimpleLogRing.idl74
-rw-r--r--offapi/com/sun/star/logging/makefile.mk55
-rw-r--r--offapi/com/sun/star/mail/MailAttachment.idl67
-rw-r--r--offapi/com/sun/star/mail/MailException.idl49
-rw-r--r--offapi/com/sun/star/mail/MailMessage.idl111
-rw-r--r--offapi/com/sun/star/mail/MailServer.idl65
-rw-r--r--offapi/com/sun/star/mail/MailServiceProvider.idl62
-rw-r--r--offapi/com/sun/star/mail/MailServiceType.idl50
-rw-r--r--offapi/com/sun/star/mail/NoMailServiceProviderException.idl52
-rw-r--r--offapi/com/sun/star/mail/NoMailTransportProviderException.idl52
-rw-r--r--offapi/com/sun/star/mail/SendMailMessageFailedException.idl68
-rw-r--r--offapi/com/sun/star/mail/XAuthenticator.idl66
-rw-r--r--offapi/com/sun/star/mail/XConnectionListener.idl73
-rw-r--r--offapi/com/sun/star/mail/XMailMessage.idl158
-rw-r--r--offapi/com/sun/star/mail/XMailServer.idl279
-rw-r--r--offapi/com/sun/star/mail/XMailService.idl229
-rw-r--r--offapi/com/sun/star/mail/XMailServiceProvider.idl70
-rw-r--r--offapi/com/sun/star/mail/XSmtpService.idl107
-rw-r--r--offapi/com/sun/star/mail/makefile.mk58
-rw-r--r--offapi/com/sun/star/makefile.mk46
-rw-r--r--offapi/com/sun/star/media/Manager.idl42
-rw-r--r--offapi/com/sun/star/media/XFrameGrabber.idl51
-rw-r--r--offapi/com/sun/star/media/XManager.idl53
-rw-r--r--offapi/com/sun/star/media/XPlayer.idl182
-rw-r--r--offapi/com/sun/star/media/XPlayerWindow.idl65
-rw-r--r--offapi/com/sun/star/media/ZoomLevel.idl94
-rw-r--r--offapi/com/sun/star/media/makefile.mk50
-rw-r--r--offapi/com/sun/star/modules.idl259
-rw-r--r--offapi/com/sun/star/mozilla/MenuMultipleChange.idl116
-rw-r--r--offapi/com/sun/star/mozilla/MenuProxy.idl63
-rw-r--r--offapi/com/sun/star/mozilla/MenuProxyListener.idl62
-rw-r--r--offapi/com/sun/star/mozilla/MenuSingleChange.idl74
-rw-r--r--offapi/com/sun/star/mozilla/MozillaBootstrap.idl62
-rw-r--r--offapi/com/sun/star/mozilla/MozillaProductType.idl64
-rw-r--r--offapi/com/sun/star/mozilla/XCloseSessionListener.idl62
-rw-r--r--offapi/com/sun/star/mozilla/XCodeProxy.idl67
-rw-r--r--offapi/com/sun/star/mozilla/XMenuProxy.idl91
-rw-r--r--offapi/com/sun/star/mozilla/XMenuProxyListener.idl89
-rw-r--r--offapi/com/sun/star/mozilla/XMozillaBootstrap.idl69
-rw-r--r--offapi/com/sun/star/mozilla/XPluginInstance.idl146
-rw-r--r--offapi/com/sun/star/mozilla/XPluginInstanceNotifySink.idl65
-rw-r--r--offapi/com/sun/star/mozilla/XPluginInstancePeer.idl170
-rw-r--r--offapi/com/sun/star/mozilla/XPluginInstanceSyncPeer.idl73
-rw-r--r--offapi/com/sun/star/mozilla/XPluginWindowPeer.idl62
-rw-r--r--offapi/com/sun/star/mozilla/XProfileDiscover.idl127
-rw-r--r--offapi/com/sun/star/mozilla/XProfileManager.idl116
-rw-r--r--offapi/com/sun/star/mozilla/XProxyRunner.idl69
-rw-r--r--offapi/com/sun/star/mozilla/XRemoteServiceManagerProvider.idl61
-rw-r--r--offapi/com/sun/star/mozilla/makefile.mk67
-rw-r--r--offapi/com/sun/star/office/XAnnotation.idl102
-rw-r--r--offapi/com/sun/star/office/XAnnotationAccess.idl72
-rw-r--r--offapi/com/sun/star/office/XAnnotationEnumeration.idl71
-rw-r--r--offapi/com/sun/star/office/makefile.mk47
-rw-r--r--offapi/com/sun/star/oooimprovement/Core.idl55
-rw-r--r--offapi/com/sun/star/oooimprovement/CoreController.idl56
-rw-r--r--offapi/com/sun/star/oooimprovement/XCore.idl59
-rw-r--r--offapi/com/sun/star/oooimprovement/XCoreController.idl57
-rw-r--r--offapi/com/sun/star/oooimprovement/makefile.mk44
-rw-r--r--offapi/com/sun/star/packages/EncryptionNotAllowedException.idl53
-rw-r--r--offapi/com/sun/star/packages/NoEncryptionException.idl53
-rw-r--r--offapi/com/sun/star/packages/NoRawFormatException.idl54
-rw-r--r--offapi/com/sun/star/packages/Package.idl126
-rw-r--r--offapi/com/sun/star/packages/PackageFolder.idl108
-rw-r--r--offapi/com/sun/star/packages/PackageFolderEnumeration.idl54
-rw-r--r--offapi/com/sun/star/packages/PackageStream.idl95
-rw-r--r--offapi/com/sun/star/packages/WrongPasswordException.idl53
-rw-r--r--offapi/com/sun/star/packages/XDataSinkEncrSupport.idl171
-rw-r--r--offapi/com/sun/star/packages/makefile.mk55
-rw-r--r--offapi/com/sun/star/packages/manifest/XManifestReader.idl56
-rw-r--r--offapi/com/sun/star/packages/manifest/XManifestWriter.idl57
-rw-r--r--offapi/com/sun/star/packages/manifest/makefile.mk47
-rw-r--r--offapi/com/sun/star/packages/zip/XZipFileAccess.idl79
-rw-r--r--offapi/com/sun/star/packages/zip/ZipConstants.idl311
-rw-r--r--offapi/com/sun/star/packages/zip/ZipEntry.idl122
-rw-r--r--offapi/com/sun/star/packages/zip/ZipException.idl60
-rw-r--r--offapi/com/sun/star/packages/zip/ZipFileAccess.idl72
-rwxr-xr-xoffapi/com/sun/star/packages/zip/ZipIOException.idl55
-rw-r--r--offapi/com/sun/star/packages/zip/makefile.mk51
-rw-r--r--offapi/com/sun/star/plugin/PluginDescription.idl56
-rw-r--r--offapi/com/sun/star/plugin/PluginException.idl57
-rw-r--r--offapi/com/sun/star/plugin/PluginManager.idl52
-rw-r--r--offapi/com/sun/star/plugin/PluginMode.idl49
-rw-r--r--offapi/com/sun/star/plugin/PluginVariable.idl57
-rw-r--r--offapi/com/sun/star/plugin/XPlugin.idl82
-rw-r--r--offapi/com/sun/star/plugin/XPluginContext.idl198
-rw-r--r--offapi/com/sun/star/plugin/XPluginManager.idl137
-rw-r--r--offapi/com/sun/star/plugin/makefile.mk53
-rw-r--r--offapi/com/sun/star/presentation/AnimationEffect.idl944
-rw-r--r--offapi/com/sun/star/presentation/AnimationSpeed.idl65
-rw-r--r--offapi/com/sun/star/presentation/ChartShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/ClickAction.idl132
-rw-r--r--offapi/com/sun/star/presentation/CustomPresentation.idl68
-rw-r--r--offapi/com/sun/star/presentation/CustomPresentationAccess.idl71
-rw-r--r--offapi/com/sun/star/presentation/DateTimeShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/DocumentSettings.idl120
-rw-r--r--offapi/com/sun/star/presentation/DrawPage.idl177
-rw-r--r--offapi/com/sun/star/presentation/EffectCommands.idl76
-rw-r--r--offapi/com/sun/star/presentation/EffectNodeType.idl81
-rw-r--r--offapi/com/sun/star/presentation/EffectPresetClass.idl81
-rw-r--r--offapi/com/sun/star/presentation/FadeEffect.idl388
-rw-r--r--offapi/com/sun/star/presentation/FooterShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/GraphicObjectShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/HandoutShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/HandoutView.idl59
-rw-r--r--offapi/com/sun/star/presentation/HeaderShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/NotesShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/NotesView.idl59
-rw-r--r--offapi/com/sun/star/presentation/OLE2Shape.idl62
-rw-r--r--offapi/com/sun/star/presentation/OutlineView.idl109
-rw-r--r--offapi/com/sun/star/presentation/OutlinerShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/PageShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/ParagraphTarget.idl58
-rw-r--r--offapi/com/sun/star/presentation/Presentation.idl159
-rw-r--r--offapi/com/sun/star/presentation/Presentation2.idl65
-rw-r--r--offapi/com/sun/star/presentation/PresentationDocument.idl105
-rw-r--r--offapi/com/sun/star/presentation/PresentationRange.idl63
-rw-r--r--offapi/com/sun/star/presentation/PresentationView.idl117
-rw-r--r--offapi/com/sun/star/presentation/PreviewView.idl119
-rw-r--r--offapi/com/sun/star/presentation/Shape.idl180
-rw-r--r--offapi/com/sun/star/presentation/ShapeAnimationSubType.idl66
-rw-r--r--offapi/com/sun/star/presentation/SlideNumberShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/SlidesView.idl110
-rw-r--r--offapi/com/sun/star/presentation/SubtitleShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/TextAnimationType.idl63
-rw-r--r--offapi/com/sun/star/presentation/TitleTextShape.idl62
-rw-r--r--offapi/com/sun/star/presentation/XCustomPresentationSupplier.idl66
-rw-r--r--offapi/com/sun/star/presentation/XHandoutMasterSupplier.idl58
-rw-r--r--offapi/com/sun/star/presentation/XPresentation.idl72
-rw-r--r--offapi/com/sun/star/presentation/XPresentation2.idl99
-rw-r--r--offapi/com/sun/star/presentation/XPresentationPage.idl61
-rw-r--r--offapi/com/sun/star/presentation/XPresentationSupplier.idl62
-rw-r--r--offapi/com/sun/star/presentation/XShapeEventListener.idl66
-rw-r--r--offapi/com/sun/star/presentation/XSlideShow.idl378
-rw-r--r--offapi/com/sun/star/presentation/XSlideShowController.idl308
-rw-r--r--offapi/com/sun/star/presentation/XSlideShowListener.idl80
-rw-r--r--offapi/com/sun/star/presentation/XSlideShowView.idl187
-rw-r--r--offapi/com/sun/star/presentation/XTransition.idl64
-rw-r--r--offapi/com/sun/star/presentation/XTransitionFactory.idl92
-rw-r--r--offapi/com/sun/star/presentation/makefile.mk96
-rw-r--r--offapi/com/sun/star/presentation/textfield/DateTime.idl51
-rw-r--r--offapi/com/sun/star/presentation/textfield/Footer.idl51
-rw-r--r--offapi/com/sun/star/presentation/textfield/Header.idl51
-rw-r--r--offapi/com/sun/star/presentation/textfield/makefile.mk48
-rw-r--r--offapi/com/sun/star/rdf/BlankNode.idl82
-rw-r--r--offapi/com/sun/star/rdf/FileFormat.idl82
-rw-r--r--offapi/com/sun/star/rdf/Literal.idl92
-rw-r--r--offapi/com/sun/star/rdf/ParseException.idl55
-rw-r--r--offapi/com/sun/star/rdf/QueryException.idl56
-rw-r--r--offapi/com/sun/star/rdf/Repository.idl60
-rw-r--r--offapi/com/sun/star/rdf/RepositoryException.idl56
-rw-r--r--offapi/com/sun/star/rdf/Statement.idl63
-rw-r--r--offapi/com/sun/star/rdf/URI.idl102
-rw-r--r--offapi/com/sun/star/rdf/URIs.idl333
-rw-r--r--offapi/com/sun/star/rdf/XBlankNode.idl60
-rw-r--r--offapi/com/sun/star/rdf/XDocumentMetadataAccess.idl452
-rw-r--r--offapi/com/sun/star/rdf/XDocumentRepository.idl245
-rw-r--r--offapi/com/sun/star/rdf/XLiteral.idl72
-rw-r--r--offapi/com/sun/star/rdf/XMetadatable.idl106
-rw-r--r--offapi/com/sun/star/rdf/XNamedGraph.idl229
-rw-r--r--offapi/com/sun/star/rdf/XNode.idl79
-rw-r--r--offapi/com/sun/star/rdf/XQuerySelectResult.idl76
-rw-r--r--offapi/com/sun/star/rdf/XReifiedStatement.idl57
-rw-r--r--offapi/com/sun/star/rdf/XRepository.idl465
-rw-r--r--offapi/com/sun/star/rdf/XRepositorySupplier.idl63
-rw-r--r--offapi/com/sun/star/rdf/XResource.idl61
-rw-r--r--offapi/com/sun/star/rdf/XURI.idl77
-rw-r--r--offapi/com/sun/star/rdf/makefile.mk71
-rw-r--r--offapi/com/sun/star/rendering/AnimationAttributes.idl71
-rw-r--r--offapi/com/sun/star/rendering/AnimationRepeat.idl84
-rwxr-xr-xoffapi/com/sun/star/rendering/BlendMode.idl62
-rw-r--r--offapi/com/sun/star/rendering/CanvasFactory.idl58
-rw-r--r--offapi/com/sun/star/rendering/Caret.idl70
-rw-r--r--offapi/com/sun/star/rendering/ColorComponentTag.idl140
-rw-r--r--offapi/com/sun/star/rendering/ColorProfile.idl43
-rw-r--r--offapi/com/sun/star/rendering/ColorSpaceType.idl126
-rw-r--r--offapi/com/sun/star/rendering/CompositeOperation.idl158
-rw-r--r--offapi/com/sun/star/rendering/EmphasisMark.idl87
-rw-r--r--offapi/com/sun/star/rendering/FillRule.idl63
-rw-r--r--offapi/com/sun/star/rendering/FloatingPointBitmapFormat.idl67
-rw-r--r--offapi/com/sun/star/rendering/FloatingPointBitmapLayout.idl113
-rw-r--r--offapi/com/sun/star/rendering/FontInfo.idl126
-rw-r--r--offapi/com/sun/star/rendering/FontMetrics.idl107
-rw-r--r--offapi/com/sun/star/rendering/FontRequest.idl121
-rw-r--r--offapi/com/sun/star/rendering/IntegerBitmapLayout.idl127
-rw-r--r--offapi/com/sun/star/rendering/InterpolationMode.idl97
-rw-r--r--offapi/com/sun/star/rendering/Panose.idl67
-rw-r--r--offapi/com/sun/star/rendering/PanoseArmStyle.idl50
-rw-r--r--offapi/com/sun/star/rendering/PanoseContrast.idl48
-rw-r--r--offapi/com/sun/star/rendering/PanoseFamilyTypes.idl44
-rw-r--r--offapi/com/sun/star/rendering/PanoseLetterForm.idl54
-rw-r--r--offapi/com/sun/star/rendering/PanoseMidline.idl52
-rw-r--r--offapi/com/sun/star/rendering/PanoseProportion.idl48
-rw-r--r--offapi/com/sun/star/rendering/PanoseSerifStyle.idl54
-rw-r--r--offapi/com/sun/star/rendering/PanoseStrokeVariation.idl47
-rw-r--r--offapi/com/sun/star/rendering/PanoseWeight.idl50
-rw-r--r--offapi/com/sun/star/rendering/PanoseXHeight.idl46
-rw-r--r--offapi/com/sun/star/rendering/PathCapType.idl59
-rw-r--r--offapi/com/sun/star/rendering/PathJoinType.idl73
-rw-r--r--offapi/com/sun/star/rendering/RenderState.idl108
-rw-r--r--offapi/com/sun/star/rendering/RenderingIntent.idl89
-rw-r--r--offapi/com/sun/star/rendering/RepaintResult.idl58
-rw-r--r--offapi/com/sun/star/rendering/StringContext.idl68
-rw-r--r--offapi/com/sun/star/rendering/StrokeAttributes.idl154
-rw-r--r--offapi/com/sun/star/rendering/TextDirection.idl53
-rw-r--r--offapi/com/sun/star/rendering/TextHit.idl70
-rw-r--r--offapi/com/sun/star/rendering/Texture.idl156
-rw-r--r--offapi/com/sun/star/rendering/TexturingMode.idl59
-rw-r--r--offapi/com/sun/star/rendering/ViewState.idl77
-rw-r--r--offapi/com/sun/star/rendering/VolatileContentDestroyedException.idl49
-rw-r--r--offapi/com/sun/star/rendering/XAnimatedSprite.idl196
-rw-r--r--offapi/com/sun/star/rendering/XAnimation.idl123
-rw-r--r--offapi/com/sun/star/rendering/XBezierPolyPolygon2D.idl175
-rw-r--r--offapi/com/sun/star/rendering/XBitmap.idl115
-rw-r--r--offapi/com/sun/star/rendering/XBitmapCanvas.idl151
-rw-r--r--offapi/com/sun/star/rendering/XBitmapPalette.idl126
-rw-r--r--offapi/com/sun/star/rendering/XBufferController.idl134
-rw-r--r--offapi/com/sun/star/rendering/XCachedPrimitive.idl73
-rw-r--r--offapi/com/sun/star/rendering/XCanvas.idl744
-rw-r--r--offapi/com/sun/star/rendering/XCanvasFont.idl140
-rw-r--r--offapi/com/sun/star/rendering/XColorSpace.idl292
-rw-r--r--offapi/com/sun/star/rendering/XCustomSprite.idl77
-rw-r--r--offapi/com/sun/star/rendering/XGraphicDevice.idl244
-rw-r--r--offapi/com/sun/star/rendering/XHalfFloatBitmap.idl97
-rw-r--r--offapi/com/sun/star/rendering/XHalfFloatReadOnlyBitmap.idl113
-rw-r--r--offapi/com/sun/star/rendering/XIeeeDoubleBitmap.idl141
-rw-r--r--offapi/com/sun/star/rendering/XIeeeDoubleReadOnlyBitmap.idl140
-rw-r--r--offapi/com/sun/star/rendering/XIeeeFloatBitmap.idl140
-rw-r--r--offapi/com/sun/star/rendering/XIeeeFloatReadOnlyBitmap.idl139
-rw-r--r--offapi/com/sun/star/rendering/XIntegerBitmap.idl147
-rw-r--r--offapi/com/sun/star/rendering/XIntegerBitmapColorSpace.idl276
-rw-r--r--offapi/com/sun/star/rendering/XIntegerReadOnlyBitmap.idl160
-rw-r--r--offapi/com/sun/star/rendering/XLinePolyPolygon2D.idl123
-rw-r--r--offapi/com/sun/star/rendering/XParametricPolyPolygon2D.idl108
-rw-r--r--offapi/com/sun/star/rendering/XParametricPolyPolygon2DFactory.idl152
-rw-r--r--offapi/com/sun/star/rendering/XPolyPolygon2D.idl136
-rw-r--r--offapi/com/sun/star/rendering/XSimpleCanvas.idl291
-rw-r--r--offapi/com/sun/star/rendering/XSprite.idl214
-rw-r--r--offapi/com/sun/star/rendering/XSpriteCanvas.idl160
-rw-r--r--offapi/com/sun/star/rendering/XTextLayout.idl432
-rw-r--r--offapi/com/sun/star/rendering/XVolatileBitmap.idl54
-rw-r--r--offapi/com/sun/star/rendering/makefile.mk118
-rw-r--r--offapi/com/sun/star/report/Calculation.idl136
-rw-r--r--offapi/com/sun/star/report/ForceNewPage.idl69
-rw-r--r--offapi/com/sun/star/report/GroupKeepTogether.idl61
-rw-r--r--offapi/com/sun/star/report/GroupOn.idl92
-rw-r--r--offapi/com/sun/star/report/KeepTogether.idl64
-rw-r--r--offapi/com/sun/star/report/ReportPrintOption.idl67
-rw-r--r--offapi/com/sun/star/report/SectionPageBreak.idl60
-rw-r--r--offapi/com/sun/star/report/XFixedLine.idl108
-rw-r--r--offapi/com/sun/star/report/XFixedText.idl55
-rw-r--r--offapi/com/sun/star/report/XFormatCondition.idl61
-rw-r--r--offapi/com/sun/star/report/XFormattedField.idl72
-rw-r--r--offapi/com/sun/star/report/XFunction.idl90
-rw-r--r--offapi/com/sun/star/report/XFunctions.idl80
-rw-r--r--offapi/com/sun/star/report/XFunctionsSupplier.idl51
-rw-r--r--offapi/com/sun/star/report/XGroup.idl149
-rw-r--r--offapi/com/sun/star/report/XGroups.idl83
-rw-r--r--offapi/com/sun/star/report/XImageControl.idl92
-rw-r--r--offapi/com/sun/star/report/XReportComponent.idl200
-rw-r--r--offapi/com/sun/star/report/XReportControlFormat.idl613
-rw-r--r--offapi/com/sun/star/report/XReportControlModel.idl115
-rw-r--r--offapi/com/sun/star/report/XReportDefinition.idl362
-rw-r--r--offapi/com/sun/star/report/XReportEngine.idl169
-rw-r--r--offapi/com/sun/star/report/XSection.idl195
-rw-r--r--offapi/com/sun/star/report/XShape.idl96
-rw-r--r--offapi/com/sun/star/report/inspection/DataProviderHandler.idl55
-rw-r--r--offapi/com/sun/star/report/inspection/DefaultComponentInspectorModel.idl96
-rw-r--r--offapi/com/sun/star/report/inspection/ReportComponentHandler.idl55
-rw-r--r--offapi/com/sun/star/report/inspection/makefile.mk49
-rw-r--r--offapi/com/sun/star/report/makefile.mk69
-rw-r--r--offapi/com/sun/star/report/meta/XFormulaParser.idl72
-rw-r--r--offapi/com/sun/star/report/meta/XFunctionCategory.idl76
-rw-r--r--offapi/com/sun/star/report/meta/XFunctionDescription.idl87
-rw-r--r--offapi/com/sun/star/report/meta/XFunctionManager.idl74
-rw-r--r--offapi/com/sun/star/report/meta/makefile.mk49
-rw-r--r--offapi/com/sun/star/report/modules.idl45
-rw-r--r--offapi/com/sun/star/resource/MissingResourceException.idl53
-rw-r--r--offapi/com/sun/star/resource/OfficeResourceLoader.idl81
-rw-r--r--offapi/com/sun/star/resource/StringResource.idl51
-rw-r--r--offapi/com/sun/star/resource/StringResourceWithLocation.idl97
-rw-r--r--offapi/com/sun/star/resource/StringResourceWithStorage.idl92
-rw-r--r--offapi/com/sun/star/resource/XLocale.idl275
-rw-r--r--offapi/com/sun/star/resource/XResourceBundle.idl243
-rw-r--r--offapi/com/sun/star/resource/XResourceBundleLoader.idl86
-rw-r--r--offapi/com/sun/star/resource/XStringResourceManager.idl317
-rw-r--r--offapi/com/sun/star/resource/XStringResourcePersistence.idl247
-rw-r--r--offapi/com/sun/star/resource/XStringResourceResolver.idl201
-rw-r--r--offapi/com/sun/star/resource/XStringResourceSupplier.idl70
-rw-r--r--offapi/com/sun/star/resource/XStringResourceWithLocation.idl89
-rw-r--r--offapi/com/sun/star/resource/XStringResourceWithStorage.idl89
-rw-r--r--offapi/com/sun/star/resource/makefile.mk59
-rw-r--r--offapi/com/sun/star/scanner/ScanError.idl83
-rw-r--r--offapi/com/sun/star/scanner/ScannerContext.idl58
-rw-r--r--offapi/com/sun/star/scanner/ScannerException.idl61
-rw-r--r--offapi/com/sun/star/scanner/ScannerManager.idl56
-rw-r--r--offapi/com/sun/star/scanner/XScannerManager.idl107
-rw-r--r--offapi/com/sun/star/scanner/makefile.mk50
-rw-r--r--offapi/com/sun/star/script/DocumentDialogLibraryContainer.idl82
-rw-r--r--offapi/com/sun/star/script/DocumentScriptLibraryContainer.idl83
-rw-r--r--offapi/com/sun/star/script/LibraryNotLoadedException.idl55
-rw-r--r--offapi/com/sun/star/script/ModuleSizeExceededRequest.idl55
-rw-r--r--offapi/com/sun/star/script/XLibraryContainer.idl123
-rw-r--r--offapi/com/sun/star/script/XLibraryContainer2.idl99
-rw-r--r--offapi/com/sun/star/script/XLibraryContainerExport.idl80
-rw-r--r--offapi/com/sun/star/script/XLibraryContainerPassword.idl143
-rw-r--r--offapi/com/sun/star/script/XPersistentLibraryContainer.idl104
-rw-r--r--offapi/com/sun/star/script/XStorageBasedLibraryContainer.idl105
-rwxr-xr-xoffapi/com/sun/star/script/browse/BrowseNode.idl62
-rwxr-xr-xoffapi/com/sun/star/script/browse/BrowseNodeFactory.idl64
-rwxr-xr-xoffapi/com/sun/star/script/browse/BrowseNodeFactoryViewTypes.idl51
-rwxr-xr-xoffapi/com/sun/star/script/browse/BrowseNodeTypes.idl56
-rwxr-xr-xoffapi/com/sun/star/script/browse/XBrowseNode.idl83
-rw-r--r--offapi/com/sun/star/script/browse/XBrowseNodeFactory.idl66
-rw-r--r--offapi/com/sun/star/script/browse/makefile.mk52
-rw-r--r--offapi/com/sun/star/script/makefile.mk55
-rwxr-xr-xoffapi/com/sun/star/script/provider/LanguageScriptProvider.idl55
-rwxr-xr-xoffapi/com/sun/star/script/provider/MasterScriptProvider.idl55
-rwxr-xr-xoffapi/com/sun/star/script/provider/MasterScriptProviderFactory.idl64
-rw-r--r--offapi/com/sun/star/script/provider/ScriptErrorRaisedException.idl59
-rw-r--r--offapi/com/sun/star/script/provider/ScriptExceptionRaisedException.idl53
-rw-r--r--offapi/com/sun/star/script/provider/ScriptFrameworkErrorException.idl59
-rw-r--r--offapi/com/sun/star/script/provider/ScriptFrameworkErrorType.idl62
-rwxr-xr-xoffapi/com/sun/star/script/provider/ScriptProvider.idl61
-rw-r--r--offapi/com/sun/star/script/provider/ScriptProviderForBasic.idl54
-rwxr-xr-xoffapi/com/sun/star/script/provider/ScriptProviderForBeanShell.idl54
-rwxr-xr-xoffapi/com/sun/star/script/provider/ScriptProviderForJava.idl54
-rwxr-xr-xoffapi/com/sun/star/script/provider/ScriptProviderForJavaScript.idl54
-rwxr-xr-xoffapi/com/sun/star/script/provider/ScriptURIHelper.idl72
-rw-r--r--offapi/com/sun/star/script/provider/XScript.idl102
-rw-r--r--offapi/com/sun/star/script/provider/XScriptContext.idl114
-rw-r--r--offapi/com/sun/star/script/provider/XScriptProvider.idl74
-rw-r--r--offapi/com/sun/star/script/provider/XScriptProviderFactory.idl72
-rw-r--r--offapi/com/sun/star/script/provider/XScriptProviderSupplier.idl64
-rw-r--r--offapi/com/sun/star/script/provider/XScriptURIHelper.idl88
-rwxr-xr-xoffapi/com/sun/star/script/provider/makefile.mk68
-rw-r--r--offapi/com/sun/star/sdb/BooleanComparisonMode.idl74
-rw-r--r--offapi/com/sun/star/sdb/CallableStatement.idl59
-rw-r--r--offapi/com/sun/star/sdb/Column.idl59
-rw-r--r--offapi/com/sun/star/sdb/ColumnDescriptorControl.idl52
-rw-r--r--offapi/com/sun/star/sdb/ColumnDescriptorControlModel.idl94
-rw-r--r--offapi/com/sun/star/sdb/ColumnSettings.idl134
-rw-r--r--offapi/com/sun/star/sdb/CommandType.idl61
-rw-r--r--offapi/com/sun/star/sdb/Connection.idl98
-rw-r--r--offapi/com/sun/star/sdb/ContentLoader.idl103
-rw-r--r--offapi/com/sun/star/sdb/DataAccessDescriptor.idl270
-rw-r--r--offapi/com/sun/star/sdb/DataAccessDescriptorFactory.idl49
-rw-r--r--offapi/com/sun/star/sdb/DataColumn.idl76
-rw-r--r--offapi/com/sun/star/sdb/DataSettings.idl98
-rw-r--r--offapi/com/sun/star/sdb/DataSource.idl255
-rw-r--r--offapi/com/sun/star/sdb/DataSourceBrowser.idl290
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccess.idl119
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessConnection.idl100
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessContext.idl92
-rw-r--r--offapi/com/sun/star/sdb/DatabaseAccessDataSource.idl79
-rw-r--r--offapi/com/sun/star/sdb/DatabaseContext.idl110
-rw-r--r--offapi/com/sun/star/sdb/DatabaseDocument.idl76
-rw-r--r--offapi/com/sun/star/sdb/DatabaseEnvironment.idl72
-rw-r--r--offapi/com/sun/star/sdb/DatabaseRegistrationEvent.idl61
-rw-r--r--offapi/com/sun/star/sdb/DatasourceAdministrationDialog.idl129
-rw-r--r--offapi/com/sun/star/sdb/DefinitionContainer.idl97
-rw-r--r--offapi/com/sun/star/sdb/DefinitionContent.idl72
-rw-r--r--offapi/com/sun/star/sdb/Document.idl64
-rw-r--r--offapi/com/sun/star/sdb/DocumentContainer.idl129
-rw-r--r--offapi/com/sun/star/sdb/DocumentDataSource.idl65
-rw-r--r--offapi/com/sun/star/sdb/DocumentDefinition.idl94
-rw-r--r--offapi/com/sun/star/sdb/DocumentSaveRequest.idl70
-rw-r--r--offapi/com/sun/star/sdb/ErrorCondition.idl180
-rw-r--r--offapi/com/sun/star/sdb/ErrorMessageDialog.idl171
-rw-r--r--offapi/com/sun/star/sdb/Forms.idl55
-rw-r--r--offapi/com/sun/star/sdb/InteractionHandler.idl94
-rw-r--r--offapi/com/sun/star/sdb/OfficeDatabaseDocument.idl250
-rw-r--r--offapi/com/sun/star/sdb/OrderColumn.idl55
-rw-r--r--offapi/com/sun/star/sdb/ParametersRequest.idl78
-rw-r--r--offapi/com/sun/star/sdb/PreparedStatement.idl62
-rw-r--r--offapi/com/sun/star/sdb/Query.idl91
-rw-r--r--offapi/com/sun/star/sdb/QueryDefinition.idl88
-rw-r--r--offapi/com/sun/star/sdb/QueryDescriptor.idl106
-rw-r--r--offapi/com/sun/star/sdb/QueryDesign.idl201
-rw-r--r--offapi/com/sun/star/sdb/RelationDesign.idl93
-rw-r--r--offapi/com/sun/star/sdb/Reports.idl55
-rw-r--r--offapi/com/sun/star/sdb/ResultColumn.idl123
-rw-r--r--offapi/com/sun/star/sdb/ResultSet.idl62
-rw-r--r--offapi/com/sun/star/sdb/RowChangeAction.idl59
-rw-r--r--offapi/com/sun/star/sdb/RowChangeEvent.idl59
-rw-r--r--offapi/com/sun/star/sdb/RowSet.idl397
-rw-r--r--offapi/com/sun/star/sdb/RowSetVetoException.idl51
-rw-r--r--offapi/com/sun/star/sdb/SQLContext.idl65
-rw-r--r--offapi/com/sun/star/sdb/SQLErrorEvent.idl55
-rw-r--r--offapi/com/sun/star/sdb/SQLFilterOperator.idl78
-rw-r--r--offapi/com/sun/star/sdb/SQLQueryComposer.idl75
-rw-r--r--offapi/com/sun/star/sdb/SingleSelectQueryAnalyzer.idl90
-rw-r--r--offapi/com/sun/star/sdb/SingleSelectQueryComposer.idl73
-rw-r--r--offapi/com/sun/star/sdb/Table.idl67
-rw-r--r--offapi/com/sun/star/sdb/TableDescriptor.idl61
-rw-r--r--offapi/com/sun/star/sdb/TableDesign.idl96
-rw-r--r--offapi/com/sun/star/sdb/XAlterQuery.idl63
-rw-r--r--offapi/com/sun/star/sdb/XBookmarksSupplier.idl68
-rw-r--r--offapi/com/sun/star/sdb/XColumn.idl304
-rw-r--r--offapi/com/sun/star/sdb/XColumnUpdate.idl230
-rw-r--r--offapi/com/sun/star/sdb/XCommandPreparation.idl81
-rw-r--r--offapi/com/sun/star/sdb/XCompletedConnection.idl72
-rw-r--r--offapi/com/sun/star/sdb/XCompletedExecution.idl63
-rw-r--r--offapi/com/sun/star/sdb/XDataAccessDescriptorFactory.idl64
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseAccess.idl74
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseAccessListener.idl53
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseEnvironment.idl73
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseRegistrations.idl159
-rw-r--r--offapi/com/sun/star/sdb/XDatabaseRegistrationsListener.idl71
-rw-r--r--offapi/com/sun/star/sdb/XDocumentDataSource.idl75
-rw-r--r--offapi/com/sun/star/sdb/XFormDocumentsSupplier.idl61
-rw-r--r--offapi/com/sun/star/sdb/XInteractionDocumentSave.idl65
-rw-r--r--offapi/com/sun/star/sdb/XInteractionSupplyParameters.idl62
-rw-r--r--offapi/com/sun/star/sdb/XOfficeDatabaseDocument.idl78
-rw-r--r--offapi/com/sun/star/sdb/XParametersSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdb/XQueriesSupplier.idl63
-rw-r--r--offapi/com/sun/star/sdb/XQueryDefinitionsSupplier.idl59
-rw-r--r--offapi/com/sun/star/sdb/XReportDocumentsSupplier.idl61
-rw-r--r--offapi/com/sun/star/sdb/XResultSetAccess.idl70
-rw-r--r--offapi/com/sun/star/sdb/XRowSetApproveBroadcaster.idl66
-rw-r--r--offapi/com/sun/star/sdb/XRowSetApproveListener.idl77
-rw-r--r--offapi/com/sun/star/sdb/XRowSetChangeBroadcaster.idl63
-rw-r--r--offapi/com/sun/star/sdb/XRowSetChangeListener.idl59
-rw-r--r--offapi/com/sun/star/sdb/XRowSetSupplier.idl73
-rw-r--r--offapi/com/sun/star/sdb/XSQLErrorBroadcaster.idl70
-rw-r--r--offapi/com/sun/star/sdb/XSQLErrorListener.idl62
-rw-r--r--offapi/com/sun/star/sdb/XSQLQueryComposer.idl175
-rw-r--r--offapi/com/sun/star/sdb/XSQLQueryComposerFactory.idl60
-rw-r--r--offapi/com/sun/star/sdb/XSingleSelectQueryAnalyzer.idl232
-rw-r--r--offapi/com/sun/star/sdb/XSingleSelectQueryComposer.idl270
-rw-r--r--offapi/com/sun/star/sdb/XSubDocument.idl102
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableContinuation.idl69
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableOperation.idl72
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableRowEvent.idl71
-rw-r--r--offapi/com/sun/star/sdb/application/CopyTableWizard.idl231
-rw-r--r--offapi/com/sun/star/sdb/application/DatabaseObject.idl77
-rw-r--r--offapi/com/sun/star/sdb/application/DatabaseObjectContainer.idl104
-rw-r--r--offapi/com/sun/star/sdb/application/DefaultViewController.idl101
-rw-r--r--offapi/com/sun/star/sdb/application/NamedDatabaseObject.idl87
-rw-r--r--offapi/com/sun/star/sdb/application/XCopyTableListener.idl98
-rw-r--r--offapi/com/sun/star/sdb/application/XCopyTableWizard.idl153
-rw-r--r--offapi/com/sun/star/sdb/application/XDatabaseDocumentUI.idl276
-rw-r--r--offapi/com/sun/star/sdb/application/XTableUIProvider.idl123
-rw-r--r--offapi/com/sun/star/sdb/application/makefile.mk60
-rw-r--r--offapi/com/sun/star/sdb/makefile.mk143
-rw-r--r--offapi/com/sun/star/sdb/tools/CompositionType.idl89
-rw-r--r--offapi/com/sun/star/sdb/tools/XConnectionTools.idl146
-rw-r--r--offapi/com/sun/star/sdb/tools/XDataSourceMetaData.idl53
-rw-r--r--offapi/com/sun/star/sdb/tools/XObjectNames.idl179
-rw-r--r--offapi/com/sun/star/sdb/tools/XTableName.idl154
-rw-r--r--offapi/com/sun/star/sdb/tools/makefile.mk53
-rw-r--r--offapi/com/sun/star/sdbc/BatchUpdateException.idl68
-rw-r--r--offapi/com/sun/star/sdbc/BestRowScope.idl86
-rw-r--r--offapi/com/sun/star/sdbc/BestRowType.idl83
-rw-r--r--offapi/com/sun/star/sdbc/CallableStatement.idl110
-rw-r--r--offapi/com/sun/star/sdbc/ChangeAction.idl61
-rw-r--r--offapi/com/sun/star/sdbc/ChangeEvent.idl53
-rw-r--r--offapi/com/sun/star/sdbc/ColumnSearch.idl107
-rw-r--r--offapi/com/sun/star/sdbc/ColumnType.idl83
-rw-r--r--offapi/com/sun/star/sdbc/ColumnValue.idl57
-rw-r--r--offapi/com/sun/star/sdbc/Connection.idl92
-rw-r--r--offapi/com/sun/star/sdbc/ConnectionPool.idl57
-rw-r--r--offapi/com/sun/star/sdbc/ConnectionProperties.idl71
-rw-r--r--offapi/com/sun/star/sdbc/DBASEConnectionProperties.idl66
-rw-r--r--offapi/com/sun/star/sdbc/DataTruncation.idl92
-rw-r--r--offapi/com/sun/star/sdbc/DataType.idl147
-rw-r--r--offapi/com/sun/star/sdbc/Deferrability.idl77
-rw-r--r--offapi/com/sun/star/sdbc/Driver.idl75
-rw-r--r--offapi/com/sun/star/sdbc/DriverManager.idl76
-rw-r--r--offapi/com/sun/star/sdbc/DriverPropertyInfo.idl87
-rw-r--r--offapi/com/sun/star/sdbc/FILEConnectionProperties.idl69
-rw-r--r--offapi/com/sun/star/sdbc/FLATConnectionProperties.idl86
-rw-r--r--offapi/com/sun/star/sdbc/FetchDirection.idl61
-rw-r--r--offapi/com/sun/star/sdbc/IndexType.idl103
-rw-r--r--offapi/com/sun/star/sdbc/JDBCConnectionProperties.idl119
-rw-r--r--offapi/com/sun/star/sdbc/KeyRule.idl192
-rw-r--r--offapi/com/sun/star/sdbc/ODBCConnectionProperties.idl94
-rw-r--r--offapi/com/sun/star/sdbc/PreparedStatement.idl272
-rw-r--r--offapi/com/sun/star/sdbc/ProcedureColumn.idl116
-rw-r--r--offapi/com/sun/star/sdbc/ProcedureResult.idl89
-rw-r--r--offapi/com/sun/star/sdbc/ResultSet.idl249
-rw-r--r--offapi/com/sun/star/sdbc/ResultSetConcurrency.idl58
-rw-r--r--offapi/com/sun/star/sdbc/ResultSetType.idl67
-rw-r--r--offapi/com/sun/star/sdbc/RowSet.idl188
-rw-r--r--offapi/com/sun/star/sdbc/SQLException.idl81
-rw-r--r--offapi/com/sun/star/sdbc/SQLWarning.idl55
-rw-r--r--offapi/com/sun/star/sdbc/Statement.idl233
-rw-r--r--offapi/com/sun/star/sdbc/TransactionIsolation.idl85
-rw-r--r--offapi/com/sun/star/sdbc/XArray.idl255
-rw-r--r--offapi/com/sun/star/sdbc/XBatchExecution.idl83
-rw-r--r--offapi/com/sun/star/sdbc/XBlob.idl251
-rw-r--r--offapi/com/sun/star/sdbc/XClob.idl210
-rw-r--r--offapi/com/sun/star/sdbc/XCloseable.idl59
-rw-r--r--offapi/com/sun/star/sdbc/XColumnLocate.idl76
-rw-r--r--offapi/com/sun/star/sdbc/XConnection.idl438
-rw-r--r--offapi/com/sun/star/sdbc/XDataSource.idl106
-rw-r--r--offapi/com/sun/star/sdbc/XDatabaseMetaData.idl2610
-rw-r--r--offapi/com/sun/star/sdbc/XDatabaseMetaData2.idl66
-rw-r--r--offapi/com/sun/star/sdbc/XDriver.idl182
-rw-r--r--offapi/com/sun/star/sdbc/XDriverAccess.idl64
-rw-r--r--offapi/com/sun/star/sdbc/XDriverManager.idl126
-rw-r--r--offapi/com/sun/star/sdbc/XGeneratedResultSet.idl71
-rw-r--r--offapi/com/sun/star/sdbc/XIsolatedConnection.idl85
-rw-r--r--offapi/com/sun/star/sdbc/XMultipleResults.idl117
-rw-r--r--offapi/com/sun/star/sdbc/XOutParameters.idl148
-rw-r--r--offapi/com/sun/star/sdbc/XParameters.idl458
-rw-r--r--offapi/com/sun/star/sdbc/XPooledConnection.idl80
-rw-r--r--offapi/com/sun/star/sdbc/XPreparedBatchExecution.idl86
-rw-r--r--offapi/com/sun/star/sdbc/XPreparedStatement.idl117
-rw-r--r--offapi/com/sun/star/sdbc/XRef.idl65
-rw-r--r--offapi/com/sun/star/sdbc/XResultSet.idl345
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetMetaData.idl286
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetMetaDataSupplier.idl73
-rw-r--r--offapi/com/sun/star/sdbc/XResultSetUpdate.idl143
-rw-r--r--offapi/com/sun/star/sdbc/XRow.idl349
-rw-r--r--offapi/com/sun/star/sdbc/XRowSet.idl86
-rw-r--r--offapi/com/sun/star/sdbc/XRowSetListener.idl71
-rw-r--r--offapi/com/sun/star/sdbc/XRowUpdate.idl269
-rw-r--r--offapi/com/sun/star/sdbc/XSQLData.idl146
-rw-r--r--offapi/com/sun/star/sdbc/XSQLInput.idl300
-rw-r--r--offapi/com/sun/star/sdbc/XSQLOutput.idl310
-rw-r--r--offapi/com/sun/star/sdbc/XStatement.idl142
-rw-r--r--offapi/com/sun/star/sdbc/XStruct.idl111
-rw-r--r--offapi/com/sun/star/sdbc/XWarningsSupplier.idl84
-rw-r--r--offapi/com/sun/star/sdbc/makefile.mk118
-rw-r--r--offapi/com/sun/star/sdbcx/CheckOption.idl61
-rw-r--r--offapi/com/sun/star/sdbcx/Column.idl125
-rw-r--r--offapi/com/sun/star/sdbcx/ColumnDescriptor.idl107
-rw-r--r--offapi/com/sun/star/sdbcx/CompareBookmark.idl69
-rw-r--r--offapi/com/sun/star/sdbcx/Container.idl101
-rw-r--r--offapi/com/sun/star/sdbcx/DatabaseDefinition.idl80
-rw-r--r--offapi/com/sun/star/sdbcx/Descriptor.idl67
-rw-r--r--offapi/com/sun/star/sdbcx/Driver.idl78
-rw-r--r--offapi/com/sun/star/sdbcx/Group.idl68
-rw-r--r--offapi/com/sun/star/sdbcx/GroupDescriptor.idl53
-rw-r--r--offapi/com/sun/star/sdbcx/Index.idl97
-rw-r--r--offapi/com/sun/star/sdbcx/IndexColumn.idl56
-rw-r--r--offapi/com/sun/star/sdbcx/IndexColumnDescriptor.idl56
-rw-r--r--offapi/com/sun/star/sdbcx/IndexDescriptor.idl73
-rw-r--r--offapi/com/sun/star/sdbcx/Key.idl93
-rw-r--r--offapi/com/sun/star/sdbcx/KeyColumn.idl54
-rw-r--r--offapi/com/sun/star/sdbcx/KeyColumnDescriptor.idl57
-rw-r--r--offapi/com/sun/star/sdbcx/KeyDescriptor.idl75
-rw-r--r--offapi/com/sun/star/sdbcx/KeyType.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/PreparedStatement.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/Privilege.idl91
-rw-r--r--offapi/com/sun/star/sdbcx/PrivilegeObject.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/ReferenceColumn.idl57
-rw-r--r--offapi/com/sun/star/sdbcx/ResultSet.idl84
-rw-r--r--offapi/com/sun/star/sdbcx/Statement.idl64
-rw-r--r--offapi/com/sun/star/sdbcx/Table.idl134
-rw-r--r--offapi/com/sun/star/sdbcx/TableDescriptor.idl88
-rw-r--r--offapi/com/sun/star/sdbcx/User.idl68
-rw-r--r--offapi/com/sun/star/sdbcx/UserDescriptor.idl56
-rw-r--r--offapi/com/sun/star/sdbcx/View.idl108
-rw-r--r--offapi/com/sun/star/sdbcx/ViewDescriptor.idl74
-rw-r--r--offapi/com/sun/star/sdbcx/XAlterTable.idl97
-rw-r--r--offapi/com/sun/star/sdbcx/XAlterView.idl67
-rw-r--r--offapi/com/sun/star/sdbcx/XAppend.idl75
-rw-r--r--offapi/com/sun/star/sdbcx/XAuthorizable.idl110
-rw-r--r--offapi/com/sun/star/sdbcx/XColumnsSupplier.idl64
-rw-r--r--offapi/com/sun/star/sdbcx/XCreateCatalog.idl74
-rw-r--r--offapi/com/sun/star/sdbcx/XDataDefinitionSupplier.idl92
-rw-r--r--offapi/com/sun/star/sdbcx/XDataDescriptorFactory.idl58
-rw-r--r--offapi/com/sun/star/sdbcx/XDeleteRows.idl67
-rw-r--r--offapi/com/sun/star/sdbcx/XDrop.idl81
-rw-r--r--offapi/com/sun/star/sdbcx/XDropCatalog.idl76
-rw-r--r--offapi/com/sun/star/sdbcx/XGroupsSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/XIndexesSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/XKeysSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/XRename.idl70
-rw-r--r--offapi/com/sun/star/sdbcx/XRowLocate.idl158
-rw-r--r--offapi/com/sun/star/sdbcx/XTablesSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/XUser.idl59
-rw-r--r--offapi/com/sun/star/sdbcx/XUsersSupplier.idl64
-rw-r--r--offapi/com/sun/star/sdbcx/XViewsSupplier.idl60
-rw-r--r--offapi/com/sun/star/sdbcx/makefile.mk97
-rw-r--r--offapi/com/sun/star/security/CertificateCharacters.idl61
-rw-r--r--offapi/com/sun/star/security/CertificateContainer.idl46
-rw-r--r--offapi/com/sun/star/security/CertificateContainerStatus.idl64
-rw-r--r--offapi/com/sun/star/security/CertificateException.idl54
-rw-r--r--offapi/com/sun/star/security/CertificateValidity.idl133
-rw-r--r--offapi/com/sun/star/security/CryptographyException.idl55
-rw-r--r--offapi/com/sun/star/security/DocumentDigitalSignatures.idl55
-rw-r--r--offapi/com/sun/star/security/DocumentSignatureInformation.idl86
-rw-r--r--offapi/com/sun/star/security/EncryptionException.idl55
-rw-r--r--offapi/com/sun/star/security/KeyException.idl55
-rw-r--r--offapi/com/sun/star/security/KeyUsage.idl49
-rw-r--r--offapi/com/sun/star/security/NoPasswordException.idl55
-rw-r--r--offapi/com/sun/star/security/SecurityInfrastructureException.idl55
-rw-r--r--offapi/com/sun/star/security/SerialNumberAdapter.idl57
-rw-r--r--offapi/com/sun/star/security/SignatureException.idl55
-rw-r--r--offapi/com/sun/star/security/XCertificate.idl137
-rw-r--r--offapi/com/sun/star/security/XCertificateContainer.idl66
-rw-r--r--offapi/com/sun/star/security/XCertificateExtension.idl65
-rw-r--r--offapi/com/sun/star/security/XDocumentDigitalSignatures.idl153
-rw-r--r--offapi/com/sun/star/security/XSerialNumberAdapter.idl59
-rw-r--r--offapi/com/sun/star/security/makefile.mk67
-rw-r--r--offapi/com/sun/star/setup/ActionType.idl67
-rw-r--r--offapi/com/sun/star/setup/BaseAction.idl48
-rw-r--r--offapi/com/sun/star/setup/CopyFileAction.idl64
-rw-r--r--offapi/com/sun/star/setup/DeleteDirAction.idl44
-rw-r--r--offapi/com/sun/star/setup/DeleteFileAction.idl60
-rw-r--r--offapi/com/sun/star/setup/DeleteFolderAction.idl44
-rw-r--r--offapi/com/sun/star/setup/DeleteFolderItemAction.idl47
-rw-r--r--offapi/com/sun/star/setup/DownloadAction.idl50
-rw-r--r--offapi/com/sun/star/setup/FontAction.idl50
-rw-r--r--offapi/com/sun/star/setup/InstallEnvironment.idl116
-rw-r--r--offapi/com/sun/star/setup/InstallResponse.idl62
-rw-r--r--offapi/com/sun/star/setup/InstallType.idl61
-rw-r--r--offapi/com/sun/star/setup/MakeDirAction.idl47
-rw-r--r--offapi/com/sun/star/setup/MakeFolderAction.idl47
-rw-r--r--offapi/com/sun/star/setup/MakeFolderItemAction.idl56
-rw-r--r--offapi/com/sun/star/setup/MakeShortcutAction.idl53
-rw-r--r--offapi/com/sun/star/setup/MirrorEntry.idl46
-rw-r--r--offapi/com/sun/star/setup/ModuleInfo.idl70
-rw-r--r--offapi/com/sun/star/setup/ModuleState.idl46
-rw-r--r--offapi/com/sun/star/setup/OSType.idl74
-rw-r--r--offapi/com/sun/star/setup/ProductRegistration.idl93
-rw-r--r--offapi/com/sun/star/setup/ProfileItemAction.idl56
-rw-r--r--offapi/com/sun/star/setup/Setup.idl49
-rw-r--r--offapi/com/sun/star/setup/SizeInfo.idl49
-rw-r--r--offapi/com/sun/star/setup/UnzipAction.idl70
-rw-r--r--offapi/com/sun/star/setup/UpdateType.idl49
-rw-r--r--offapi/com/sun/star/setup/VersionIdentifier.idl57
-rw-r--r--offapi/com/sun/star/setup/WindowsRegistryAction.idl62
-rw-r--r--offapi/com/sun/star/setup/XSetup.idl108
-rw-r--r--offapi/com/sun/star/setup/makefile.mk74
-rw-r--r--offapi/com/sun/star/sheet/AccessibleCell.idl135
-rw-r--r--offapi/com/sun/star/sheet/AccessibleCsvCell.idl81
-rw-r--r--offapi/com/sun/star/sheet/AccessibleCsvRuler.idl80
-rw-r--r--offapi/com/sun/star/sheet/AccessibleCsvTable.idl91
-rw-r--r--offapi/com/sun/star/sheet/AccessiblePageHeaderFooterAreasView.idl148
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheet.idl157
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetDocumentView.idl166
-rw-r--r--offapi/com/sun/star/sheet/AccessibleSpreadsheetPageView.idl183
-rw-r--r--offapi/com/sun/star/sheet/ActivationEvent.idl64
-rw-r--r--offapi/com/sun/star/sheet/AddIn.idl160
-rw-r--r--offapi/com/sun/star/sheet/AddressConvention.idl70
-rw-r--r--offapi/com/sun/star/sheet/Border.idl72
-rw-r--r--offapi/com/sun/star/sheet/CellAnnotation.idl91
-rw-r--r--offapi/com/sun/star/sheet/CellAnnotationShape.idl57
-rw-r--r--offapi/com/sun/star/sheet/CellAnnotations.idl75
-rw-r--r--offapi/com/sun/star/sheet/CellAnnotationsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/CellAreaLink.idl121
-rw-r--r--offapi/com/sun/star/sheet/CellAreaLinks.idl83
-rw-r--r--offapi/com/sun/star/sheet/CellAreaLinksEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/CellDeleteMode.idl78
-rw-r--r--offapi/com/sun/star/sheet/CellFlags.idl114
-rw-r--r--offapi/com/sun/star/sheet/CellFormatRanges.idl79
-rw-r--r--offapi/com/sun/star/sheet/CellFormatRangesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/CellInsertMode.idl78
-rw-r--r--offapi/com/sun/star/sheet/Cells.idl62
-rw-r--r--offapi/com/sun/star/sheet/CellsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/ComplexReference.idl63
-rw-r--r--offapi/com/sun/star/sheet/ConditionOperator.idl108
-rw-r--r--offapi/com/sun/star/sheet/ConsolidationDescriptor.idl61
-rw-r--r--offapi/com/sun/star/sheet/DDEItemInfo.idl65
-rw-r--r--offapi/com/sun/star/sheet/DDELink.idl94
-rw-r--r--offapi/com/sun/star/sheet/DDELinkInfo.idl80
-rw-r--r--offapi/com/sun/star/sheet/DDELinkMode.idl70
-rw-r--r--offapi/com/sun/star/sheet/DDELinks.idl98
-rw-r--r--offapi/com/sun/star/sheet/DDELinksEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataImportMode.idl72
-rw-r--r--offapi/com/sun/star/sheet/DataPilotDescriptor.idl151
-rw-r--r--offapi/com/sun/star/sheet/DataPilotField.idl248
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldAutoShowInfo.idl83
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldFilter.idl51
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroup.idl133
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroupBy.idl138
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroupEnumeration.idl64
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroupInfo.idl164
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroupItem.idl60
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroups.idl127
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldGroupsEnumeration.idl64
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldLayoutInfo.idl66
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldLayoutMode.idl86
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldOrientation.idl78
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldReference.idl91
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldReferenceItemType.idl68
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldReferenceType.idl175
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldShowItemsMode.idl64
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldSortInfo.idl74
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldSortMode.idl81
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFields.idl84
-rw-r--r--offapi/com/sun/star/sheet/DataPilotFieldsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataPilotItem.idl90
-rw-r--r--offapi/com/sun/star/sheet/DataPilotItems.idl80
-rw-r--r--offapi/com/sun/star/sheet/DataPilotItemsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataPilotOutputRangeType.idl72
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSource.idl129
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceDimension.idl166
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceDimensions.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceHierarchies.idl64
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceHierarchy.idl72
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceLevel.idl110
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceLevels.idl63
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceMember.idl99
-rw-r--r--offapi/com/sun/star/sheet/DataPilotSourceMembers.idl63
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTable.idl80
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTableHeaderData.idl79
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTablePositionData.idl90
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTablePositionType.idl78
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTableResultData.idl86
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTables.idl77
-rw-r--r--offapi/com/sun/star/sheet/DataPilotTablesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataResult.idl62
-rw-r--r--offapi/com/sun/star/sheet/DataResultFlags.idl69
-rw-r--r--offapi/com/sun/star/sheet/DatabaseImportDescriptor.idl94
-rw-r--r--offapi/com/sun/star/sheet/DatabaseRange.idl172
-rw-r--r--offapi/com/sun/star/sheet/DatabaseRanges.idl83
-rw-r--r--offapi/com/sun/star/sheet/DatabaseRangesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/DocumentSettings.idl137
-rw-r--r--offapi/com/sun/star/sheet/ExternalDocLink.idl54
-rw-r--r--offapi/com/sun/star/sheet/ExternalDocLinks.idl52
-rw-r--r--offapi/com/sun/star/sheet/ExternalLinkInfo.idl77
-rw-r--r--offapi/com/sun/star/sheet/ExternalLinkType.idl64
-rw-r--r--offapi/com/sun/star/sheet/ExternalReference.idl96
-rw-r--r--offapi/com/sun/star/sheet/ExternalSheetCache.idl52
-rw-r--r--offapi/com/sun/star/sheet/FillDateMode.idl75
-rw-r--r--offapi/com/sun/star/sheet/FillDirection.idl73
-rw-r--r--offapi/com/sun/star/sheet/FillMode.idl93
-rw-r--r--offapi/com/sun/star/sheet/FilterConnection.idl61
-rw-r--r--offapi/com/sun/star/sheet/FilterFormulaParser.idl52
-rw-r--r--offapi/com/sun/star/sheet/FilterOperator.idl120
-rw-r--r--offapi/com/sun/star/sheet/FilterOperator2.idl161
-rw-r--r--offapi/com/sun/star/sheet/FormulaLanguage.idl70
-rw-r--r--offapi/com/sun/star/sheet/FormulaMapGroup.idl77
-rw-r--r--offapi/com/sun/star/sheet/FormulaMapGroupSpecialOffset.idl210
-rw-r--r--offapi/com/sun/star/sheet/FormulaOpCodeMapEntry.idl65
-rw-r--r--offapi/com/sun/star/sheet/FormulaParser.idl118
-rw-r--r--offapi/com/sun/star/sheet/FormulaResult.idl66
-rw-r--r--offapi/com/sun/star/sheet/FormulaToken.idl64
-rw-r--r--offapi/com/sun/star/sheet/FunctionAccess.idl69
-rw-r--r--offapi/com/sun/star/sheet/FunctionArgument.idl69
-rw-r--r--offapi/com/sun/star/sheet/FunctionCategory.idl116
-rw-r--r--offapi/com/sun/star/sheet/FunctionDescription.idl89
-rw-r--r--offapi/com/sun/star/sheet/FunctionDescriptionEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/FunctionDescriptions.idl91
-rw-r--r--offapi/com/sun/star/sheet/GeneralFunction.idl128
-rw-r--r--offapi/com/sun/star/sheet/GlobalSheetSettings.idl192
-rw-r--r--offapi/com/sun/star/sheet/GoalResult.idl58
-rw-r--r--offapi/com/sun/star/sheet/HeaderFooterContent.idl60
-rw-r--r--offapi/com/sun/star/sheet/LabelRange.idl61
-rw-r--r--offapi/com/sun/star/sheet/LabelRanges.idl87
-rw-r--r--offapi/com/sun/star/sheet/LabelRangesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/LocalizedName.idl65
-rw-r--r--offapi/com/sun/star/sheet/MemberResult.idl68
-rw-r--r--offapi/com/sun/star/sheet/MemberResultFlags.idl77
-rw-r--r--offapi/com/sun/star/sheet/MoveDirection.idl73
-rw-r--r--offapi/com/sun/star/sheet/NamedRange.idl112
-rw-r--r--offapi/com/sun/star/sheet/NamedRangeFlag.idl72
-rw-r--r--offapi/com/sun/star/sheet/NamedRanges.idl102
-rw-r--r--offapi/com/sun/star/sheet/NamedRangesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/PasteOperation.idl79
-rw-r--r--offapi/com/sun/star/sheet/RangeSelectionArguments.idl72
-rw-r--r--offapi/com/sun/star/sheet/RangeSelectionEvent.idl57
-rw-r--r--offapi/com/sun/star/sheet/RecentFunctions.idl58
-rw-r--r--offapi/com/sun/star/sheet/ReferenceFlags.idl97
-rw-r--r--offapi/com/sun/star/sheet/ResultEvent.idl63
-rw-r--r--offapi/com/sun/star/sheet/Scenario.idl122
-rw-r--r--offapi/com/sun/star/sheet/Scenarios.idl81
-rw-r--r--offapi/com/sun/star/sheet/ScenariosEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/Shape.idl82
-rw-r--r--offapi/com/sun/star/sheet/SheetCell.idl340
-rw-r--r--offapi/com/sun/star/sheet/SheetCellCursor.idl92
-rw-r--r--offapi/com/sun/star/sheet/SheetCellRange.idl434
-rw-r--r--offapi/com/sun/star/sheet/SheetCellRanges.idl257
-rw-r--r--offapi/com/sun/star/sheet/SheetCellRangesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/SheetFilterDescriptor.idl148
-rw-r--r--offapi/com/sun/star/sheet/SheetLink.idl109
-rw-r--r--offapi/com/sun/star/sheet/SheetLinkMode.idl70
-rw-r--r--offapi/com/sun/star/sheet/SheetLinks.idl89
-rw-r--r--offapi/com/sun/star/sheet/SheetLinksEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/SheetRangesQuery.idl68
-rw-r--r--offapi/com/sun/star/sheet/SheetSortDescriptor.idl102
-rw-r--r--offapi/com/sun/star/sheet/SheetSortDescriptor2.idl116
-rw-r--r--offapi/com/sun/star/sheet/SingleReference.idl90
-rw-r--r--offapi/com/sun/star/sheet/Solver.idl50
-rw-r--r--offapi/com/sun/star/sheet/SolverConstraint.idl66
-rw-r--r--offapi/com/sun/star/sheet/SolverConstraintOperator.idl62
-rw-r--r--offapi/com/sun/star/sheet/Spreadsheet.idl274
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetDocument.idl288
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetDocumentSettings.idl250
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetDrawPage.idl97
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetView.idl148
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetViewPane.idl71
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetViewPanesEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetViewSettings.idl193
-rw-r--r--offapi/com/sun/star/sheet/Spreadsheets.idl95
-rw-r--r--offapi/com/sun/star/sheet/SpreadsheetsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/StatusBarFunction.idl91
-rw-r--r--offapi/com/sun/star/sheet/SubTotalColumn.idl66
-rw-r--r--offapi/com/sun/star/sheet/SubTotalDescriptor.idl150
-rw-r--r--offapi/com/sun/star/sheet/SubTotalField.idl63
-rw-r--r--offapi/com/sun/star/sheet/SubTotalFieldsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/TableAutoFormat.idl141
-rw-r--r--offapi/com/sun/star/sheet/TableAutoFormatEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/TableAutoFormatField.idl329
-rw-r--r--offapi/com/sun/star/sheet/TableAutoFormats.idl85
-rw-r--r--offapi/com/sun/star/sheet/TableAutoFormatsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/TableCellStyle.idl112
-rw-r--r--offapi/com/sun/star/sheet/TableConditionalEntry.idl70
-rw-r--r--offapi/com/sun/star/sheet/TableConditionalEntryEnumeration.idl62
-rw-r--r--offapi/com/sun/star/sheet/TableConditionalFormat.idl103
-rw-r--r--offapi/com/sun/star/sheet/TableFilterField.idl95
-rw-r--r--offapi/com/sun/star/sheet/TableFilterField2.idl103
-rw-r--r--offapi/com/sun/star/sheet/TableOperationMode.idl76
-rw-r--r--offapi/com/sun/star/sheet/TablePageBreakData.idl62
-rw-r--r--offapi/com/sun/star/sheet/TablePageStyle.idl221
-rw-r--r--offapi/com/sun/star/sheet/TableValidation.idl148
-rw-r--r--offapi/com/sun/star/sheet/TableValidationVisibility.idl67
-rw-r--r--offapi/com/sun/star/sheet/UniqueCellFormatRanges.idl80
-rw-r--r--offapi/com/sun/star/sheet/UniqueCellFormatRangesEnumeration.idl63
-rw-r--r--offapi/com/sun/star/sheet/ValidationAlertStyle.idl74
-rw-r--r--offapi/com/sun/star/sheet/ValidationType.idl96
-rw-r--r--offapi/com/sun/star/sheet/VolatileResult.idl64
-rw-r--r--offapi/com/sun/star/sheet/XActivationBroadcaster.idl85
-rw-r--r--offapi/com/sun/star/sheet/XActivationEventListener.idl74
-rw-r--r--offapi/com/sun/star/sheet/XAddIn.idl218
-rw-r--r--offapi/com/sun/star/sheet/XAreaLink.idl89
-rw-r--r--offapi/com/sun/star/sheet/XAreaLinks.idl95
-rw-r--r--offapi/com/sun/star/sheet/XArrayFormulaRange.idl69
-rw-r--r--offapi/com/sun/star/sheet/XArrayFormulaTokens.idl68
-rw-r--r--offapi/com/sun/star/sheet/XCalculatable.idl95
-rw-r--r--offapi/com/sun/star/sheet/XCellAddressable.idl66
-rw-r--r--offapi/com/sun/star/sheet/XCellFormatRangesSupplier.idl75
-rw-r--r--offapi/com/sun/star/sheet/XCellRangeAddressable.idl66
-rw-r--r--offapi/com/sun/star/sheet/XCellRangeData.idl69
-rw-r--r--offapi/com/sun/star/sheet/XCellRangeFormula.idl79
-rw-r--r--offapi/com/sun/star/sheet/XCellRangeMovement.idl131
-rw-r--r--offapi/com/sun/star/sheet/XCellRangeReferrer.idl68
-rw-r--r--offapi/com/sun/star/sheet/XCellRangesAccess.idl152
-rw-r--r--offapi/com/sun/star/sheet/XCellRangesQuery.idl172
-rw-r--r--offapi/com/sun/star/sheet/XCellSeries.idl110
-rw-r--r--offapi/com/sun/star/sheet/XCompatibilityNames.idl82
-rw-r--r--offapi/com/sun/star/sheet/XConsolidatable.idl87
-rw-r--r--offapi/com/sun/star/sheet/XConsolidationDescriptor.idl150
-rw-r--r--offapi/com/sun/star/sheet/XDDELink.idl75
-rw-r--r--offapi/com/sun/star/sheet/XDDELinkResults.idl77
-rw-r--r--offapi/com/sun/star/sheet/XDDELinks.idl92
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotDataLayoutFieldSupplier.idl74
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotDescriptor.idl150
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotField.idl67
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotFieldGrouping.idl174
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotMemberResults.idl70
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotResults.idl70
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotTable.idl73
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotTable2.idl131
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotTables.idl106
-rw-r--r--offapi/com/sun/star/sheet/XDataPilotTablesSupplier.idl66
-rw-r--r--offapi/com/sun/star/sheet/XDatabaseRange.idl127
-rw-r--r--offapi/com/sun/star/sheet/XDatabaseRanges.idl72
-rw-r--r--offapi/com/sun/star/sheet/XDimensionsSupplier.idl66
-rw-r--r--offapi/com/sun/star/sheet/XDocumentAuditing.idl62
-rw-r--r--offapi/com/sun/star/sheet/XDrillDownDataSupplier.idl87
-rw-r--r--offapi/com/sun/star/sheet/XEnhancedMouseClickBroadcaster.idl91
-rw-r--r--offapi/com/sun/star/sheet/XExternalDocLink.idl91
-rw-r--r--offapi/com/sun/star/sheet/XExternalDocLinks.idl63
-rw-r--r--offapi/com/sun/star/sheet/XExternalSheetCache.idl99
-rw-r--r--offapi/com/sun/star/sheet/XExternalSheetName.idl82
-rw-r--r--offapi/com/sun/star/sheet/XFillAcrossSheet.idl60
-rw-r--r--offapi/com/sun/star/sheet/XFilterFormulaParser.idl59
-rw-r--r--offapi/com/sun/star/sheet/XFormulaOpCodeMapper.idl155
-rw-r--r--offapi/com/sun/star/sheet/XFormulaParser.idl68
-rw-r--r--offapi/com/sun/star/sheet/XFormulaQuery.idl100
-rw-r--r--offapi/com/sun/star/sheet/XFormulaTokens.idl68
-rw-r--r--offapi/com/sun/star/sheet/XFunctionAccess.idl125
-rw-r--r--offapi/com/sun/star/sheet/XFunctionDescriptions.idl83
-rw-r--r--offapi/com/sun/star/sheet/XGoalSeek.idl83
-rw-r--r--offapi/com/sun/star/sheet/XHeaderFooterContent.idl86
-rw-r--r--offapi/com/sun/star/sheet/XHierarchiesSupplier.idl68
-rw-r--r--offapi/com/sun/star/sheet/XLabelRange.idl87
-rw-r--r--offapi/com/sun/star/sheet/XLabelRanges.idl80
-rw-r--r--offapi/com/sun/star/sheet/XLevelsSupplier.idl68
-rw-r--r--offapi/com/sun/star/sheet/XMembersSupplier.idl68
-rw-r--r--offapi/com/sun/star/sheet/XMultiFormulaTokens.idl99
-rw-r--r--offapi/com/sun/star/sheet/XMultipleOperation.idl102
-rw-r--r--offapi/com/sun/star/sheet/XNamedRange.idl111
-rw-r--r--offapi/com/sun/star/sheet/XNamedRanges.idl142
-rw-r--r--offapi/com/sun/star/sheet/XPrintAreas.idl165
-rw-r--r--offapi/com/sun/star/sheet/XRangeSelection.idl94
-rw-r--r--offapi/com/sun/star/sheet/XRangeSelectionChangeListener.idl64
-rw-r--r--offapi/com/sun/star/sheet/XRangeSelectionListener.idl67
-rw-r--r--offapi/com/sun/star/sheet/XRecentFunctions.idl83
-rw-r--r--offapi/com/sun/star/sheet/XResultListener.idl64
-rw-r--r--offapi/com/sun/star/sheet/XScenario.idl93
-rw-r--r--offapi/com/sun/star/sheet/XScenarioEnhanced.idl72
-rw-r--r--offapi/com/sun/star/sheet/XScenarios.idl84
-rw-r--r--offapi/com/sun/star/sheet/XScenariosSupplier.idl64
-rw-r--r--offapi/com/sun/star/sheet/XSheetAnnotation.idl91
-rw-r--r--offapi/com/sun/star/sheet/XSheetAnnotationAnchor.idl65
-rw-r--r--offapi/com/sun/star/sheet/XSheetAnnotationShapeSupplier.idl66
-rw-r--r--offapi/com/sun/star/sheet/XSheetAnnotations.idl90
-rw-r--r--offapi/com/sun/star/sheet/XSheetAnnotationsSupplier.idl64
-rw-r--r--offapi/com/sun/star/sheet/XSheetAuditing.idl124
-rw-r--r--offapi/com/sun/star/sheet/XSheetCellCursor.idl113
-rw-r--r--offapi/com/sun/star/sheet/XSheetCellRange.idl70
-rw-r--r--offapi/com/sun/star/sheet/XSheetCellRangeContainer.idl127
-rw-r--r--offapi/com/sun/star/sheet/XSheetCellRanges.idl92
-rw-r--r--offapi/com/sun/star/sheet/XSheetCondition.idl132
-rw-r--r--offapi/com/sun/star/sheet/XSheetConditionalEntries.idl102
-rw-r--r--offapi/com/sun/star/sheet/XSheetConditionalEntry.idl69
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterDescriptor.idl71
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterDescriptor2.idl76
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterable.idl81
-rw-r--r--offapi/com/sun/star/sheet/XSheetFilterableEx.idl71
-rw-r--r--offapi/com/sun/star/sheet/XSheetLinkable.idl134
-rw-r--r--offapi/com/sun/star/sheet/XSheetOperation.idl87
-rw-r--r--offapi/com/sun/star/sheet/XSheetOutline.idl141
-rw-r--r--offapi/com/sun/star/sheet/XSheetPageBreak.idl94
-rw-r--r--offapi/com/sun/star/sheet/XSheetPastable.idl100
-rw-r--r--offapi/com/sun/star/sheet/XSolver.idl84
-rw-r--r--offapi/com/sun/star/sheet/XSolverDescription.idl65
-rw-r--r--offapi/com/sun/star/sheet/XSpreadsheet.idl76
-rw-r--r--offapi/com/sun/star/sheet/XSpreadsheetDocument.idl66
-rw-r--r--offapi/com/sun/star/sheet/XSpreadsheetView.idl69
-rw-r--r--offapi/com/sun/star/sheet/XSpreadsheets.idl93
-rw-r--r--offapi/com/sun/star/sheet/XSubTotalCalculatable.idl95
-rw-r--r--offapi/com/sun/star/sheet/XSubTotalDescriptor.idl80
-rw-r--r--offapi/com/sun/star/sheet/XSubTotalField.idl87
-rw-r--r--offapi/com/sun/star/sheet/XUniqueCellFormatRangesSupplier.idl77
-rw-r--r--offapi/com/sun/star/sheet/XUsedAreaCursor.idl78
-rw-r--r--offapi/com/sun/star/sheet/XViewFreezable.idl75
-rw-r--r--offapi/com/sun/star/sheet/XViewPane.idl89
-rw-r--r--offapi/com/sun/star/sheet/XViewPanesSupplier.idl64
-rw-r--r--offapi/com/sun/star/sheet/XViewSplitable.idl102
-rw-r--r--offapi/com/sun/star/sheet/XVolatileResult.idl73
-rw-r--r--offapi/com/sun/star/sheet/_NamedRange.idl73
-rw-r--r--offapi/com/sun/star/sheet/makefile.mk347
-rw-r--r--offapi/com/sun/star/smarttags/SmartTagAction.idl58
-rw-r--r--offapi/com/sun/star/smarttags/SmartTagRecognizer.idl60
-rw-r--r--offapi/com/sun/star/smarttags/SmartTagRecognizerMode.idl60
-rw-r--r--offapi/com/sun/star/smarttags/XSmartTagAction.idl358
-rw-r--r--offapi/com/sun/star/smarttags/XSmartTagRecognizer.idl231
-rw-r--r--offapi/com/sun/star/smarttags/makefile.mk66
-rw-r--r--offapi/com/sun/star/style/BreakType.idl131
-rw-r--r--offapi/com/sun/star/style/CaseMap.idl87
-rw-r--r--offapi/com/sun/star/style/CellStyle.idl60
-rw-r--r--offapi/com/sun/star/style/CharacterProperties.idl450
-rw-r--r--offapi/com/sun/star/style/CharacterPropertiesAsian.idl91
-rw-r--r--offapi/com/sun/star/style/CharacterPropertiesComplex.idl91
-rw-r--r--offapi/com/sun/star/style/CharacterStyle.idl86
-rw-r--r--offapi/com/sun/star/style/DropCapFormat.idl70
-rw-r--r--offapi/com/sun/star/style/GraphicLocation.idl137
-rw-r--r--offapi/com/sun/star/style/HorizontalAlignment.idl76
-rw-r--r--offapi/com/sun/star/style/LineNumberPosition.idl80
-rw-r--r--offapi/com/sun/star/style/LineSpacing.idl63
-rw-r--r--offapi/com/sun/star/style/LineSpacingMode.idl79
-rw-r--r--offapi/com/sun/star/style/NumberingAlignment.idl83
-rw-r--r--offapi/com/sun/star/style/NumberingLevel.idl121
-rw-r--r--offapi/com/sun/star/style/NumberingRule.idl68
-rw-r--r--offapi/com/sun/star/style/NumberingType.idl470
-rw-r--r--offapi/com/sun/star/style/PageProperties.idl502
-rw-r--r--offapi/com/sun/star/style/PageStyle.idl70
-rw-r--r--offapi/com/sun/star/style/PageStyleLayout.idl73
-rw-r--r--offapi/com/sun/star/style/ParagraphAdjust.idl86
-rw-r--r--offapi/com/sun/star/style/ParagraphProperties.idl463
-rw-r--r--offapi/com/sun/star/style/ParagraphPropertiesAsian.idl63
-rw-r--r--offapi/com/sun/star/style/ParagraphPropertiesComplex.idl53
-rw-r--r--offapi/com/sun/star/style/ParagraphStyle.idl163
-rw-r--r--offapi/com/sun/star/style/ParagraphStyleCategory.idl86
-rw-r--r--offapi/com/sun/star/style/Style.idl174
-rw-r--r--offapi/com/sun/star/style/StyleFamilies.idl119
-rw-r--r--offapi/com/sun/star/style/StyleFamily.idl89
-rw-r--r--offapi/com/sun/star/style/TabAlign.idl91
-rw-r--r--offapi/com/sun/star/style/TabStop.idl84
-rw-r--r--offapi/com/sun/star/style/VerticalAlignment.idl76
-rw-r--r--offapi/com/sun/star/style/XAutoStyle.idl74
-rw-r--r--offapi/com/sun/star/style/XAutoStyleFamily.idl65
-rw-r--r--offapi/com/sun/star/style/XAutoStyles.idl64
-rw-r--r--offapi/com/sun/star/style/XAutoStylesSupplier.idl66
-rw-r--r--offapi/com/sun/star/style/XDefaultsSupplier.idl62
-rw-r--r--offapi/com/sun/star/style/XStyle.idl85
-rw-r--r--offapi/com/sun/star/style/XStyleCondition.idl70
-rw-r--r--offapi/com/sun/star/style/XStyleFamiliesSupplier.idl68
-rw-r--r--offapi/com/sun/star/style/XStyleLoader.idl97
-rw-r--r--offapi/com/sun/star/style/makefile.mk87
-rw-r--r--offapi/com/sun/star/svg/XSVGPrinter.idl61
-rw-r--r--offapi/com/sun/star/svg/XSVGWriter.idl52
-rw-r--r--offapi/com/sun/star/svg/makefile.mk48
-rw-r--r--offapi/com/sun/star/sync/SyncAction.idl62
-rw-r--r--offapi/com/sun/star/sync/SyncCollector.idl49
-rw-r--r--offapi/com/sun/star/sync/SyncElement.idl72
-rw-r--r--offapi/com/sun/star/sync/SyncEvent.idl56
-rw-r--r--offapi/com/sun/star/sync/SyncInfo.idl61
-rw-r--r--offapi/com/sun/star/sync/SyncMode.idl54
-rw-r--r--offapi/com/sun/star/sync/SyncOptions.idl60
-rw-r--r--offapi/com/sun/star/sync/SyncScheme.idl56
-rw-r--r--offapi/com/sun/star/sync/SyncType.idl59
-rw-r--r--offapi/com/sun/star/sync/Synchronizer.idl49
-rw-r--r--offapi/com/sun/star/sync/XSyncCollector.idl88
-rw-r--r--offapi/com/sun/star/sync/XSynchronizer.idl61
-rw-r--r--offapi/com/sun/star/sync/makefile.mk57
-rw-r--r--offapi/com/sun/star/sync2/BadPartnershipException.idl54
-rw-r--r--offapi/com/sun/star/sync2/makefile.mk39
-rw-r--r--offapi/com/sun/star/system/ProxySettings.idl78
-rw-r--r--offapi/com/sun/star/system/SOffice52ProxySettings.idl65
-rw-r--r--offapi/com/sun/star/system/SimpleCommandMail.idl82
-rw-r--r--offapi/com/sun/star/system/SimpleMailClientFlags.idl72
-rw-r--r--offapi/com/sun/star/system/SimpleSystemMail.idl77
-rw-r--r--offapi/com/sun/star/system/SystemProxySettings.idl63
-rw-r--r--offapi/com/sun/star/system/SystemShellExecute.idl76
-rw-r--r--offapi/com/sun/star/system/SystemShellExecuteException.idl62
-rw-r--r--offapi/com/sun/star/system/SystemShellExecuteFlags.idl56
-rw-r--r--offapi/com/sun/star/system/XProxySettings.idl144
-rw-r--r--offapi/com/sun/star/system/XSimpleMailClient.idl105
-rw-r--r--offapi/com/sun/star/system/XSimpleMailClientSupplier.idl77
-rw-r--r--offapi/com/sun/star/system/XSimpleMailMessage.idl165
-rw-r--r--offapi/com/sun/star/system/XSystemShellExecute.idl94
-rw-r--r--offapi/com/sun/star/system/makefile.mk59
-rw-r--r--offapi/com/sun/star/table/AccessibleCellView.idl157
-rw-r--r--offapi/com/sun/star/table/AccessibleTableView.idl161
-rw-r--r--offapi/com/sun/star/table/BorderLine.idl82
-rw-r--r--offapi/com/sun/star/table/Cell.idl78
-rw-r--r--offapi/com/sun/star/table/CellAddress.idl66
-rw-r--r--offapi/com/sun/star/table/CellContentType.idl72
-rw-r--r--offapi/com/sun/star/table/CellCursor.idl61
-rw-r--r--offapi/com/sun/star/table/CellHoriJustify.idl84
-rw-r--r--offapi/com/sun/star/table/CellOrientation.idl73
-rw-r--r--offapi/com/sun/star/table/CellProperties.idl265
-rw-r--r--offapi/com/sun/star/table/CellRange.idl68
-rw-r--r--offapi/com/sun/star/table/CellRangeAddress.idl78
-rw-r--r--offapi/com/sun/star/table/CellRangeListSource.idl93
-rw-r--r--offapi/com/sun/star/table/CellValueBinding.idl106
-rw-r--r--offapi/com/sun/star/table/CellVertJustify.idl72
-rw-r--r--offapi/com/sun/star/table/ListPositionCellBinding.idl61
-rw-r--r--offapi/com/sun/star/table/ShadowFormat.idl80
-rw-r--r--offapi/com/sun/star/table/ShadowLocation.idl78
-rw-r--r--offapi/com/sun/star/table/TableBorder.idl154
-rw-r--r--offapi/com/sun/star/table/TableBorderDistances.idl109
-rw-r--r--offapi/com/sun/star/table/TableChart.idl83
-rw-r--r--offapi/com/sun/star/table/TableCharts.idl82
-rw-r--r--offapi/com/sun/star/table/TableChartsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/table/TableColumn.idl112
-rw-r--r--offapi/com/sun/star/table/TableColumns.idl85
-rw-r--r--offapi/com/sun/star/table/TableColumnsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/table/TableOrientation.idl60
-rw-r--r--offapi/com/sun/star/table/TableRow.idl100
-rw-r--r--offapi/com/sun/star/table/TableRows.idl72
-rw-r--r--offapi/com/sun/star/table/TableRowsEnumeration.idl62
-rw-r--r--offapi/com/sun/star/table/TableSortDescriptor.idl104
-rw-r--r--offapi/com/sun/star/table/TableSortDescriptor2.idl87
-rw-r--r--offapi/com/sun/star/table/TableSortField.idl107
-rw-r--r--offapi/com/sun/star/table/TableSortFieldType.idl65
-rw-r--r--offapi/com/sun/star/table/XAutoFormattable.idl69
-rw-r--r--offapi/com/sun/star/table/XCell.idl116
-rw-r--r--offapi/com/sun/star/table/XCellCursor.idl100
-rw-r--r--offapi/com/sun/star/table/XCellRange.idl135
-rw-r--r--offapi/com/sun/star/table/XColumnRowRange.idl79
-rw-r--r--offapi/com/sun/star/table/XMergeableCell.idl76
-rw-r--r--offapi/com/sun/star/table/XMergeableCellRange.idl97
-rw-r--r--offapi/com/sun/star/table/XTable.idl147
-rw-r--r--offapi/com/sun/star/table/XTableChart.idl100
-rw-r--r--offapi/com/sun/star/table/XTableCharts.idl102
-rw-r--r--offapi/com/sun/star/table/XTableChartsSupplier.idl65
-rw-r--r--offapi/com/sun/star/table/XTableColumns.idl85
-rw-r--r--offapi/com/sun/star/table/XTableRows.idl84
-rw-r--r--offapi/com/sun/star/table/makefile.mk92
-rw-r--r--offapi/com/sun/star/task/AsyncJob.idl66
-rw-r--r--offapi/com/sun/star/task/ClassifiedInteractionRequest.idl63
-rw-r--r--offapi/com/sun/star/task/DocumentMSPasswordRequest.idl64
-rw-r--r--offapi/com/sun/star/task/DocumentMacroConfirmationRequest.idl74
-rw-r--r--offapi/com/sun/star/task/DocumentMacroConfirmationRequest2.idl80
-rw-r--r--offapi/com/sun/star/task/DocumentPasswordRequest.idl63
-rw-r--r--offapi/com/sun/star/task/ErrorCodeIOException.idl56
-rw-r--r--offapi/com/sun/star/task/ErrorCodeRequest.idl56
-rw-r--r--offapi/com/sun/star/task/FutureDocumentVersionProductUpdateRequest.idl65
-rw-r--r--offapi/com/sun/star/task/InteractionClassification.idl86
-rw-r--r--offapi/com/sun/star/task/InteractionHandler.idl163
-rw-r--r--offapi/com/sun/star/task/InteractionRequestStringResolver.idl46
-rw-r--r--offapi/com/sun/star/task/Job.idl66
-rw-r--r--offapi/com/sun/star/task/JobExecutor.idl63
-rw-r--r--offapi/com/sun/star/task/MasterPasswordRequest.idl58
-rw-r--r--offapi/com/sun/star/task/NoMasterException.idl59
-rw-r--r--offapi/com/sun/star/task/PasswordContainer.idl82
-rw-r--r--offapi/com/sun/star/task/PasswordContainerInteractionHandler.idl57
-rw-r--r--offapi/com/sun/star/task/PasswordRequest.idl67
-rw-r--r--offapi/com/sun/star/task/PasswordRequestMode.idl79
-rw-r--r--offapi/com/sun/star/task/UnsupportedOverwriteRequest.idl63
-rw-r--r--offapi/com/sun/star/task/UrlRecord.idl54
-rw-r--r--offapi/com/sun/star/task/UserRecord.idl50
-rw-r--r--offapi/com/sun/star/task/XAbortChannel.idl49
-rw-r--r--offapi/com/sun/star/task/XAsyncJob.idl92
-rw-r--r--offapi/com/sun/star/task/XInteractionApprove.idl52
-rw-r--r--offapi/com/sun/star/task/XInteractionAskLater.idl51
-rw-r--r--offapi/com/sun/star/task/XInteractionDisapprove.idl52
-rw-r--r--offapi/com/sun/star/task/XInteractionPassword.idl66
-rw-r--r--offapi/com/sun/star/task/XInteractionRequestStringResolver.idl82
-rw-r--r--offapi/com/sun/star/task/XJob.idl96
-rw-r--r--offapi/com/sun/star/task/XJobExecutor.idl74
-rw-r--r--offapi/com/sun/star/task/XJobListener.idl73
-rw-r--r--offapi/com/sun/star/task/XMasterPasswordHandling.idl112
-rw-r--r--offapi/com/sun/star/task/XMasterPasswordHandling2.idl70
-rw-r--r--offapi/com/sun/star/task/XPasswordContainer.idl147
-rw-r--r--offapi/com/sun/star/task/XStatusIndicator.idl130
-rw-r--r--offapi/com/sun/star/task/XStatusIndicatorFactory.idl65
-rw-r--r--offapi/com/sun/star/task/XStatusIndicatorSupplier.idl61
-rw-r--r--offapi/com/sun/star/task/XUrlContainer.idl91
-rw-r--r--offapi/com/sun/star/task/makefile.mk86
-rw-r--r--offapi/com/sun/star/text/AccessibleEndnoteView.idl138
-rw-r--r--offapi/com/sun/star/text/AccessibleFootnoteView.idl138
-rw-r--r--offapi/com/sun/star/text/AccessibleHeaderFooterView.idl143
-rw-r--r--offapi/com/sun/star/text/AccessiblePageView.idl214
-rw-r--r--offapi/com/sun/star/text/AccessibleParagraphView.idl212
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentPageView.idl116
-rw-r--r--offapi/com/sun/star/text/AccessibleTextDocumentView.idl218
-rw-r--r--offapi/com/sun/star/text/AccessibleTextEmbeddedObject.idl136
-rw-r--r--offapi/com/sun/star/text/AccessibleTextFrameView.idl149
-rw-r--r--offapi/com/sun/star/text/AccessibleTextGraphicObject.idl130
-rw-r--r--offapi/com/sun/star/text/AdvancedTextDocument.idl162
-rw-r--r--offapi/com/sun/star/text/AuthorDisplayFormat.idl72
-rw-r--r--offapi/com/sun/star/text/AutoTextContainer.idl61
-rw-r--r--offapi/com/sun/star/text/AutoTextEntry.idl68
-rw-r--r--offapi/com/sun/star/text/AutoTextGroup.idl72
-rw-r--r--offapi/com/sun/star/text/BaseFrame.idl118
-rw-r--r--offapi/com/sun/star/text/BaseFrameProperties.idl380
-rw-r--r--offapi/com/sun/star/text/BaseIndex.idl188
-rw-r--r--offapi/com/sun/star/text/BaseIndexMark.idl61
-rw-r--r--offapi/com/sun/star/text/Bibliography.idl62
-rw-r--r--offapi/com/sun/star/text/BibliographyDataField.idl208
-rw-r--r--offapi/com/sun/star/text/BibliographyDataType.idl157
-rw-r--r--offapi/com/sun/star/text/Bookmark.idl66
-rw-r--r--offapi/com/sun/star/text/Bookmarks.idl69
-rw-r--r--offapi/com/sun/star/text/Cell.idl119
-rw-r--r--offapi/com/sun/star/text/CellProperties.idl176
-rw-r--r--offapi/com/sun/star/text/CellRange.idl160
-rw-r--r--offapi/com/sun/star/text/ChainedTextFrame.idl73
-rw-r--r--offapi/com/sun/star/text/ChapterFormat.idl84
-rw-r--r--offapi/com/sun/star/text/ChapterNumberingRule.idl87
-rw-r--r--offapi/com/sun/star/text/CharacterCompressionType.idl61
-rw-r--r--offapi/com/sun/star/text/ContentIndex.idl74
-rw-r--r--offapi/com/sun/star/text/ContentIndexMark.idl65
-rw-r--r--offapi/com/sun/star/text/ControlCharacter.idl94
-rw-r--r--offapi/com/sun/star/text/DateDisplayFormat.idl96
-rw-r--r--offapi/com/sun/star/text/DefaultNumberingProvider.idl50
-rw-r--r--offapi/com/sun/star/text/Defaults.idl89
-rw-r--r--offapi/com/sun/star/text/DependentTextField.idl68
-rw-r--r--offapi/com/sun/star/text/DocumentIndex.idl102
-rw-r--r--offapi/com/sun/star/text/DocumentIndexFormat.idl86
-rw-r--r--offapi/com/sun/star/text/DocumentIndexLevelFormat.idl156
-rw-r--r--offapi/com/sun/star/text/DocumentIndexMark.idl73
-rw-r--r--offapi/com/sun/star/text/DocumentIndexMarkAsian.idl70
-rw-r--r--offapi/com/sun/star/text/DocumentIndexParagraphStyles.idl63
-rw-r--r--offapi/com/sun/star/text/DocumentIndexes.idl73
-rw-r--r--offapi/com/sun/star/text/DocumentSettings.idl204
-rw-r--r--offapi/com/sun/star/text/DocumentStatistic.idl73
-rw-r--r--offapi/com/sun/star/text/Endnote.idl52
-rw-r--r--offapi/com/sun/star/text/EndnoteSettings.idl52
-rw-r--r--offapi/com/sun/star/text/FilenameDisplayFormat.idl77
-rw-r--r--offapi/com/sun/star/text/FontEmphasis.idl85
-rw-r--r--offapi/com/sun/star/text/FontRelief.idl60
-rw-r--r--offapi/com/sun/star/text/Footnote.idl71
-rw-r--r--offapi/com/sun/star/text/FootnoteNumbering.idl70
-rw-r--r--offapi/com/sun/star/text/FootnoteSettings.idl139
-rw-r--r--offapi/com/sun/star/text/Footnotes.idl60
-rw-r--r--offapi/com/sun/star/text/GenericTextDocument.idl273
-rw-r--r--offapi/com/sun/star/text/GlobalDocument.idl52
-rw-r--r--offapi/com/sun/star/text/GlobalSettings.idl64
-rw-r--r--offapi/com/sun/star/text/GraphicCrop.idl88
-rw-r--r--offapi/com/sun/star/text/HoriOrientation.idl112
-rw-r--r--offapi/com/sun/star/text/HoriOrientationFormat.idl87
-rw-r--r--offapi/com/sun/star/text/HorizontalAdjust.idl69
-rw-r--r--offapi/com/sun/star/text/HypertextDocument.idl81
-rw-r--r--offapi/com/sun/star/text/IllustrationsIndex.idl61
-rwxr-xr-xoffapi/com/sun/star/text/InContentMetadata.idl78
-rw-r--r--offapi/com/sun/star/text/InvalidTextContentException.idl66
-rw-r--r--offapi/com/sun/star/text/LabelFollow.idl66
-rw-r--r--offapi/com/sun/star/text/LineNumberingProperties.idl117
-rw-r--r--offapi/com/sun/star/text/LineNumberingSettings.idl111
-rw-r--r--offapi/com/sun/star/text/MailMerge.idl412
-rw-r--r--offapi/com/sun/star/text/MailMergeEvent.idl67
-rw-r--r--offapi/com/sun/star/text/MailMergeType.idl67
-rw-r--r--offapi/com/sun/star/text/NotePrintMode.idl78
-rw-r--r--offapi/com/sun/star/text/NumberingLevel.idl267
-rw-r--r--offapi/com/sun/star/text/NumberingRules.idl107
-rw-r--r--offapi/com/sun/star/text/NumberingStyle.idl59
-rw-r--r--offapi/com/sun/star/text/ObjectIndex.idl82
-rw-r--r--offapi/com/sun/star/text/PageFootnoteInfo.idl106
-rw-r--r--offapi/com/sun/star/text/PageNumberType.idl65
-rw-r--r--offapi/com/sun/star/text/PagePrintSettings.idl112
-rw-r--r--offapi/com/sun/star/text/Paragraph.idl154
-rw-r--r--offapi/com/sun/star/text/ParagraphEnumeration.idl60
-rw-r--r--offapi/com/sun/star/text/ParagraphVertAlign.idl69
-rw-r--r--offapi/com/sun/star/text/PlaceholderType.idl83
-rw-r--r--offapi/com/sun/star/text/PositionAndSpaceMode.idl61
-rw-r--r--offapi/com/sun/star/text/PositionLayoutDir.idl64
-rw-r--r--offapi/com/sun/star/text/PrintPreviewSettings.idl80
-rw-r--r--offapi/com/sun/star/text/PrintSettings.idl154
-rw-r--r--offapi/com/sun/star/text/RedlinePortion.idl98
-rw-r--r--offapi/com/sun/star/text/ReferenceFieldPart.idl136
-rw-r--r--offapi/com/sun/star/text/ReferenceFieldSource.idl69
-rw-r--r--offapi/com/sun/star/text/ReferenceMark.idl57
-rw-r--r--offapi/com/sun/star/text/ReferenceMarks.idl57
-rw-r--r--offapi/com/sun/star/text/RelOrientation.idl121
-rw-r--r--offapi/com/sun/star/text/RubyAdjust.idl67
-rw-r--r--offapi/com/sun/star/text/SectionFileLink.idl76
-rw-r--r--offapi/com/sun/star/text/SetVariableType.idl72
-rw-r--r--offapi/com/sun/star/text/Shape.idl242
-rw-r--r--offapi/com/sun/star/text/SizeType.idl75
-rw-r--r--offapi/com/sun/star/text/TableColumnSeparator.idl86
-rw-r--r--offapi/com/sun/star/text/TableColumns.idl71
-rw-r--r--offapi/com/sun/star/text/TableIndex.idl71
-rw-r--r--offapi/com/sun/star/text/TableRows.idl67
-rw-r--r--offapi/com/sun/star/text/TemplateDisplayFormat.idl91
-rw-r--r--offapi/com/sun/star/text/Text.idl149
-rw-r--r--offapi/com/sun/star/text/TextColumn.idl78
-rw-r--r--offapi/com/sun/star/text/TextColumnSequence.idl47
-rw-r--r--offapi/com/sun/star/text/TextColumns.idl93
-rw-r--r--offapi/com/sun/star/text/TextContent.idl98
-rw-r--r--offapi/com/sun/star/text/TextContentAnchorType.idl98
-rw-r--r--offapi/com/sun/star/text/TextContentCollection.idl71
-rw-r--r--offapi/com/sun/star/text/TextCursor.idl136
-rw-r--r--offapi/com/sun/star/text/TextDocument.idl52
-rw-r--r--offapi/com/sun/star/text/TextDocumentView.idl120
-rw-r--r--offapi/com/sun/star/text/TextEmbeddedObject.idl85
-rw-r--r--offapi/com/sun/star/text/TextEmbeddedObjects.idl71
-rw-r--r--offapi/com/sun/star/text/TextField.idl98
-rw-r--r--offapi/com/sun/star/text/TextFieldEnumeration.idl55
-rw-r--r--offapi/com/sun/star/text/TextFieldMaster.idl74
-rw-r--r--offapi/com/sun/star/text/TextFieldMasters.idl62
-rw-r--r--offapi/com/sun/star/text/TextFields.idl69
-rw-r--r--offapi/com/sun/star/text/TextFrame.idl163
-rw-r--r--offapi/com/sun/star/text/TextFrames.idl86
-rw-r--r--offapi/com/sun/star/text/TextGraphicObject.idl179
-rw-r--r--offapi/com/sun/star/text/TextGraphicObjects.idl72
-rw-r--r--offapi/com/sun/star/text/TextGridMode.idl62
-rw-r--r--offapi/com/sun/star/text/TextLayoutCursor.idl63
-rw-r--r--offapi/com/sun/star/text/TextMarkupDescriptor.idl70
-rw-r--r--offapi/com/sun/star/text/TextMarkupType.idl64
-rw-r--r--offapi/com/sun/star/text/TextPageStyle.idl200
-rw-r--r--offapi/com/sun/star/text/TextPortion.idl178
-rw-r--r--offapi/com/sun/star/text/TextPortionEnumeration.idl56
-rw-r--r--offapi/com/sun/star/text/TextRange.idl112
-rw-r--r--offapi/com/sun/star/text/TextRanges.idl55
-rw-r--r--offapi/com/sun/star/text/TextSection.idl254
-rw-r--r--offapi/com/sun/star/text/TextSections.idl62
-rw-r--r--offapi/com/sun/star/text/TextSortDescriptor.idl143
-rw-r--r--offapi/com/sun/star/text/TextSortDescriptor2.idl77
-rw-r--r--offapi/com/sun/star/text/TextSortable.idl67
-rw-r--r--offapi/com/sun/star/text/TextTable.idl295
-rw-r--r--offapi/com/sun/star/text/TextTableCursor.idl90
-rw-r--r--offapi/com/sun/star/text/TextTableRow.idl126
-rw-r--r--offapi/com/sun/star/text/TextTables.idl62
-rw-r--r--offapi/com/sun/star/text/TextViewCursor.idl64
-rw-r--r--offapi/com/sun/star/text/TimeDisplayFormat.idl91
-rw-r--r--offapi/com/sun/star/text/UserDataPart.idl154
-rw-r--r--offapi/com/sun/star/text/UserDefinedIndex.idl89
-rw-r--r--offapi/com/sun/star/text/UserFieldFormat.idl70
-rw-r--r--offapi/com/sun/star/text/UserIndex.idl84
-rw-r--r--offapi/com/sun/star/text/UserIndexMark.idl63
-rw-r--r--offapi/com/sun/star/text/VertOrientation.idl121
-rw-r--r--offapi/com/sun/star/text/VertOrientationFormat.idl77
-rw-r--r--offapi/com/sun/star/text/ViewSettings.idl362
-rw-r--r--offapi/com/sun/star/text/WebDocument.idl52
-rw-r--r--offapi/com/sun/star/text/WrapInfluenceOnPosition.idl70
-rw-r--r--offapi/com/sun/star/text/WrapTextMode.idl91
-rw-r--r--offapi/com/sun/star/text/WritingMode.idl77
-rw-r--r--offapi/com/sun/star/text/WritingMode2.idl100
-rw-r--r--offapi/com/sun/star/text/XAutoTextContainer.idl107
-rw-r--r--offapi/com/sun/star/text/XAutoTextEntry.idl78
-rw-r--r--offapi/com/sun/star/text/XAutoTextGroup.idl121
-rw-r--r--offapi/com/sun/star/text/XBookmarkInsertTool.idl69
-rw-r--r--offapi/com/sun/star/text/XBookmarksSupplier.idl66
-rw-r--r--offapi/com/sun/star/text/XChapterNumberingSupplier.idl69
-rw-r--r--offapi/com/sun/star/text/XDefaultNumberingProvider.idl79
-rw-r--r--offapi/com/sun/star/text/XDependentTextField.idl101
-rw-r--r--offapi/com/sun/star/text/XDocumentIndex.idl82
-rw-r--r--offapi/com/sun/star/text/XDocumentIndexMark.idl76
-rw-r--r--offapi/com/sun/star/text/XDocumentIndexesSupplier.idl69
-rw-r--r--offapi/com/sun/star/text/XEndnotesSettingsSupplier.idl68
-rw-r--r--offapi/com/sun/star/text/XEndnotesSupplier.idl80
-rw-r--r--offapi/com/sun/star/text/XFlatParagraph.idl201
-rw-r--r--offapi/com/sun/star/text/XFlatParagraphIterator.idl118
-rw-r--r--offapi/com/sun/star/text/XFlatParagraphIteratorProvider.idl87
-rw-r--r--offapi/com/sun/star/text/XFootnote.idl71
-rw-r--r--offapi/com/sun/star/text/XFootnotesSettingsSupplier.idl66
-rw-r--r--offapi/com/sun/star/text/XFootnotesSupplier.idl76
-rw-r--r--offapi/com/sun/star/text/XFormField.idl20
-rw-r--r--offapi/com/sun/star/text/XHeaderFooter.idl73
-rw-r--r--offapi/com/sun/star/text/XHeaderFooterPageStyle.idl74
-rw-r--r--offapi/com/sun/star/text/XLineNumberingProperties.idl60
-rw-r--r--offapi/com/sun/star/text/XLineNumberingSupplier.idl77
-rw-r--r--offapi/com/sun/star/text/XMailMergeBroadcaster.idl83
-rw-r--r--offapi/com/sun/star/text/XMailMergeListener.idl72
-rw-r--r--offapi/com/sun/star/text/XModule.idl53
-rw-r--r--offapi/com/sun/star/text/XMultiTextMarkup.idl79
-rw-r--r--offapi/com/sun/star/text/XNumberingFormatter.idl65
-rw-r--r--offapi/com/sun/star/text/XNumberingRulesSupplier.idl62
-rw-r--r--offapi/com/sun/star/text/XNumberingTypeInfo.idl63
-rw-r--r--offapi/com/sun/star/text/XPageCursor.idl115
-rw-r--r--offapi/com/sun/star/text/XPagePrintable.idl96
-rw-r--r--offapi/com/sun/star/text/XParagraphAppend.idl94
-rw-r--r--offapi/com/sun/star/text/XParagraphCursor.idl105
-rw-r--r--offapi/com/sun/star/text/XRedline.idl73
-rw-r--r--offapi/com/sun/star/text/XReferenceMarksSupplier.idl72
-rw-r--r--offapi/com/sun/star/text/XRelativeTextContentInsert.idl86
-rw-r--r--offapi/com/sun/star/text/XRelativeTextContentRemove.idl82
-rw-r--r--offapi/com/sun/star/text/XRubySelection.idl75
-rw-r--r--offapi/com/sun/star/text/XSentenceCursor.idl105
-rw-r--r--offapi/com/sun/star/text/XSimpleText.idl151
-rw-r--r--offapi/com/sun/star/text/XText.idl105
-rw-r--r--offapi/com/sun/star/text/XTextAppend.idl60
-rw-r--r--offapi/com/sun/star/text/XTextAppendAndConvert.idl61
-rw-r--r--offapi/com/sun/star/text/XTextColumns.idl115
-rw-r--r--offapi/com/sun/star/text/XTextContent.idl100
-rw-r--r--offapi/com/sun/star/text/XTextContentAppend.idl88
-rw-r--r--offapi/com/sun/star/text/XTextConvert.idl117
-rw-r--r--offapi/com/sun/star/text/XTextCopy.idl59
-rw-r--r--offapi/com/sun/star/text/XTextCursor.idl134
-rw-r--r--offapi/com/sun/star/text/XTextDocument.idl76
-rw-r--r--offapi/com/sun/star/text/XTextEmbeddedObject.idl77
-rw-r--r--offapi/com/sun/star/text/XTextEmbeddedObjectsSupplier.idl65
-rw-r--r--offapi/com/sun/star/text/XTextField.idl69
-rw-r--r--offapi/com/sun/star/text/XTextFieldsSupplier.idl80
-rw-r--r--offapi/com/sun/star/text/XTextFrame.idl66
-rw-r--r--offapi/com/sun/star/text/XTextFramesSupplier.idl64
-rw-r--r--offapi/com/sun/star/text/XTextGraphicObjectsSupplier.idl65
-rw-r--r--offapi/com/sun/star/text/XTextMarkup.idl90
-rw-r--r--offapi/com/sun/star/text/XTextPortionAppend.idl86
-rw-r--r--offapi/com/sun/star/text/XTextRange.idl104
-rw-r--r--offapi/com/sun/star/text/XTextRangeCompare.idl94
-rw-r--r--offapi/com/sun/star/text/XTextRangeMover.idl73
-rw-r--r--offapi/com/sun/star/text/XTextSection.idl68
-rw-r--r--offapi/com/sun/star/text/XTextSectionsSupplier.idl64
-rw-r--r--offapi/com/sun/star/text/XTextShapesSupplier.idl65
-rw-r--r--offapi/com/sun/star/text/XTextTable.idl143
-rw-r--r--offapi/com/sun/star/text/XTextTableCursor.idl179
-rw-r--r--offapi/com/sun/star/text/XTextTablesSupplier.idl64
-rw-r--r--offapi/com/sun/star/text/XTextViewCursor.idl80
-rw-r--r--offapi/com/sun/star/text/XTextViewCursorSupplier.idl71
-rw-r--r--offapi/com/sun/star/text/XWordCursor.idl113
-rw-r--r--offapi/com/sun/star/text/fieldmaster/Bibliography.idl100
-rw-r--r--offapi/com/sun/star/text/fieldmaster/DDE.idl73
-rw-r--r--offapi/com/sun/star/text/fieldmaster/Database.idl96
-rw-r--r--offapi/com/sun/star/text/fieldmaster/SetExpression.idl67
-rw-r--r--offapi/com/sun/star/text/fieldmaster/User.idl65
-rw-r--r--offapi/com/sun/star/text/fieldmaster/makefile.mk50
-rw-r--r--offapi/com/sun/star/text/makefile.mk277
-rw-r--r--offapi/com/sun/star/text/textfield/Annotation.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/Author.idl74
-rw-r--r--offapi/com/sun/star/text/textfield/Bibliography.idl58
-rw-r--r--offapi/com/sun/star/text/textfield/Chapter.idl60
-rw-r--r--offapi/com/sun/star/text/textfield/CharacterCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/CombinedCharacters.idl55
-rw-r--r--offapi/com/sun/star/text/textfield/ConditionalText.idl70
-rw-r--r--offapi/com/sun/star/text/textfield/DDE.idl54
-rw-r--r--offapi/com/sun/star/text/textfield/Database.idl69
-rw-r--r--offapi/com/sun/star/text/textfield/DatabaseName.idl81
-rw-r--r--offapi/com/sun/star/text/textfield/DatabaseNextSet.idl85
-rw-r--r--offapi/com/sun/star/text/textfield/DatabaseNumberOfSet.idl90
-rw-r--r--offapi/com/sun/star/text/textfield/DatabaseSetNumber.idl91
-rw-r--r--offapi/com/sun/star/text/textfield/DateTime.idl98
-rw-r--r--offapi/com/sun/star/text/textfield/DropDown.idl70
-rw-r--r--offapi/com/sun/star/text/textfield/EmbeddedObjectCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/ExtendedUser.idl67
-rw-r--r--offapi/com/sun/star/text/textfield/FileName.idl63
-rw-r--r--offapi/com/sun/star/text/textfield/GetExpression.idl85
-rw-r--r--offapi/com/sun/star/text/textfield/GetReference.idl74
-rw-r--r--offapi/com/sun/star/text/textfield/GraphicObjectCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/HiddenParagraph.idl60
-rw-r--r--offapi/com/sun/star/text/textfield/HiddenText.idl64
-rw-r--r--offapi/com/sun/star/text/textfield/Input.idl73
-rw-r--r--offapi/com/sun/star/text/textfield/InputUser.idl63
-rw-r--r--offapi/com/sun/star/text/textfield/JumpEdit.idl62
-rw-r--r--offapi/com/sun/star/text/textfield/Macro.idl61
-rwxr-xr-xoffapi/com/sun/star/text/textfield/MetadataField.idl99
-rw-r--r--offapi/com/sun/star/text/textfield/PageCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/PageNumber.idl70
-rw-r--r--offapi/com/sun/star/text/textfield/ParagraphCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/ReferencePageGet.idl58
-rw-r--r--offapi/com/sun/star/text/textfield/ReferencePageSet.idl59
-rw-r--r--offapi/com/sun/star/text/textfield/Script.idl62
-rw-r--r--offapi/com/sun/star/text/textfield/SetExpression.idl101
-rw-r--r--offapi/com/sun/star/text/textfield/TableCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/TableFormula.idl68
-rw-r--r--offapi/com/sun/star/text/textfield/TemplateName.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/URL.idl70
-rw-r--r--offapi/com/sun/star/text/textfield/User.idl72
-rw-r--r--offapi/com/sun/star/text/textfield/WordCount.idl57
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/ChangeAuthor.idl66
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/ChangeDateTime.idl83
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/CreateAuthor.idl66
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/CreateDateTime.idl83
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Custom.idl70
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Description.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/EditTime.idl78
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Info0.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Info1.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Info2.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Info3.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Keywords.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/PrintAuthor.idl66
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/PrintDateTime.idl83
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Revision.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Subject.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/Title.idl65
-rw-r--r--offapi/com/sun/star/text/textfield/docinfo/makefile.mk63
-rw-r--r--offapi/com/sun/star/text/textfield/makefile.mk86
-rw-r--r--offapi/com/sun/star/ucb/AlreadyInitializedException.idl54
-rw-r--r--offapi/com/sun/star/ucb/AnyCompareFactory.idl57
-rw-r--r--offapi/com/sun/star/ucb/AuthenticationRequest.idl114
-rw-r--r--offapi/com/sun/star/ucb/CHAOSProgressStart.idl69
-rw-r--r--offapi/com/sun/star/ucb/CachedContentResultSet.idl84
-rw-r--r--offapi/com/sun/star/ucb/CachedContentResultSetFactory.idl55
-rw-r--r--offapi/com/sun/star/ucb/CachedContentResultSetStub.idl76
-rw-r--r--offapi/com/sun/star/ucb/CachedContentResultSetStubFactory.idl55
-rw-r--r--offapi/com/sun/star/ucb/CachedDynamicResultSet.idl83
-rw-r--r--offapi/com/sun/star/ucb/CachedDynamicResultSetFactory.idl56
-rw-r--r--offapi/com/sun/star/ucb/CachedDynamicResultSetStub.idl84
-rw-r--r--offapi/com/sun/star/ucb/CachedDynamicResultSetStubFactory.idl56
-rwxr-xr-xoffapi/com/sun/star/ucb/CertificateValidationRequest.idl65
-rw-r--r--offapi/com/sun/star/ucb/Command.idl70
-rw-r--r--offapi/com/sun/star/ucb/CommandAbortedException.idl55
-rw-r--r--offapi/com/sun/star/ucb/CommandEnvironment.idl64
-rw-r--r--offapi/com/sun/star/ucb/CommandFailedException.idl65
-rw-r--r--offapi/com/sun/star/ucb/CommandInfo.idl68
-rw-r--r--offapi/com/sun/star/ucb/CommandInfoChange.idl58
-rw-r--r--offapi/com/sun/star/ucb/CommandInfoChangeEvent.idl71
-rw-r--r--offapi/com/sun/star/ucb/ConnectionMode.idl59
-rw-r--r--offapi/com/sun/star/ucb/Content.idl756
-rw-r--r--offapi/com/sun/star/ucb/ContentAction.idl161
-rw-r--r--offapi/com/sun/star/ucb/ContentCreationError.idl75
-rw-r--r--offapi/com/sun/star/ucb/ContentCreationException.idl60
-rw-r--r--offapi/com/sun/star/ucb/ContentEvent.idl114
-rw-r--r--offapi/com/sun/star/ucb/ContentInfo.idl108
-rw-r--r--offapi/com/sun/star/ucb/ContentInfoAttribute.idl78
-rw-r--r--offapi/com/sun/star/ucb/ContentProvider.idl88
-rw-r--r--offapi/com/sun/star/ucb/ContentProviderInfo.idl62
-rw-r--r--offapi/com/sun/star/ucb/ContentProviderProxy.idl95
-rw-r--r--offapi/com/sun/star/ucb/ContentProviderProxyFactory.idl55
-rw-r--r--offapi/com/sun/star/ucb/ContentResultSet.idl233
-rw-r--r--offapi/com/sun/star/ucb/ContentResultSetCapability.idl53
-rw-r--r--offapi/com/sun/star/ucb/ContentTransmitter.idl60
-rw-r--r--offapi/com/sun/star/ucb/Cookie.idl89
-rw-r--r--offapi/com/sun/star/ucb/CookiePolicy.idl61
-rw-r--r--offapi/com/sun/star/ucb/CookieRequest.idl56
-rw-r--r--offapi/com/sun/star/ucb/CrossReference.idl61
-rw-r--r--offapi/com/sun/star/ucb/DefaultHierarchyDataSource.idl64
-rw-r--r--offapi/com/sun/star/ucb/DocumentHeaderField.idl57
-rw-r--r--offapi/com/sun/star/ucb/DocumentStoreMode.idl59
-rw-r--r--offapi/com/sun/star/ucb/DuplicateCommandIdentifierException.idl60
-rw-r--r--offapi/com/sun/star/ucb/DuplicateProviderException.idl55
-rw-r--r--offapi/com/sun/star/ucb/DynamicResultSet.idl62
-rw-r--r--offapi/com/sun/star/ucb/Error.idl444
-rw-r--r--offapi/com/sun/star/ucb/ExpandContentProvider.idl55
-rw-r--r--offapi/com/sun/star/ucb/ExportStreamInfo.idl61
-rw-r--r--offapi/com/sun/star/ucb/FTPContent.idl233
-rw-r--r--offapi/com/sun/star/ucb/FTPContentProvider.idl69
-rw-r--r--offapi/com/sun/star/ucb/FetchError.idl71
-rw-r--r--offapi/com/sun/star/ucb/FetchResult.idl86
-rw-r--r--offapi/com/sun/star/ucb/FileContent.idl268
-rw-r--r--offapi/com/sun/star/ucb/FileContentProvider.idl115
-rw-r--r--offapi/com/sun/star/ucb/FileSystemNotation.idl70
-rw-r--r--offapi/com/sun/star/ucb/FolderList.idl64
-rw-r--r--offapi/com/sun/star/ucb/FolderListCommand.idl62
-rw-r--r--offapi/com/sun/star/ucb/FolderListEntry.idl78
-rw-r--r--offapi/com/sun/star/ucb/GIOContentProvider.idl15
-rw-r--r--offapi/com/sun/star/ucb/GlobalTransferCommandArgument.idl84
-rw-r--r--offapi/com/sun/star/ucb/GnomeVFSContentProvider.idl21
-rw-r--r--offapi/com/sun/star/ucb/GnomeVFSDocumentContent.idl97
-rw-r--r--offapi/com/sun/star/ucb/GnomeVFSFolderContent.idl109
-rw-r--r--offapi/com/sun/star/ucb/HandleCookiesRequest.idl73
-rw-r--r--offapi/com/sun/star/ucb/HelpContent.idl215
-rw-r--r--offapi/com/sun/star/ucb/HelpContentProvider.idl66
-rw-r--r--offapi/com/sun/star/ucb/HierarchyContentProvider.idl112
-rw-r--r--offapi/com/sun/star/ucb/HierarchyDataReadAccess.idl171
-rw-r--r--offapi/com/sun/star/ucb/HierarchyDataReadWriteAccess.idl105
-rw-r--r--offapi/com/sun/star/ucb/HierarchyDataSource.idl119
-rw-r--r--offapi/com/sun/star/ucb/HierarchyFolderContent.idl228
-rw-r--r--offapi/com/sun/star/ucb/HierarchyLinkContent.idl191
-rw-r--r--offapi/com/sun/star/ucb/HierarchyRootFolderContent.idl226
-rw-r--r--offapi/com/sun/star/ucb/IOErrorCode.idl233
-rw-r--r--offapi/com/sun/star/ucb/IllegalIdentifierException.idl55
-rw-r--r--offapi/com/sun/star/ucb/InsertCommandArgument.idl72
-rw-r--r--offapi/com/sun/star/ucb/InteractiveAppException.idl60
-rw-r--r--offapi/com/sun/star/ucb/InteractiveAugmentedIOException.idl57
-rw-r--r--offapi/com/sun/star/ucb/InteractiveBadTransferURLException.idl53
-rw-r--r--offapi/com/sun/star/ucb/InteractiveCHAOSException.idl68
-rw-r--r--offapi/com/sun/star/ucb/InteractiveFileIOException.idl63
-rw-r--r--offapi/com/sun/star/ucb/InteractiveIOException.idl58
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingException.idl58
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingLockExpiredException.idl53
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingLockedException.idl59
-rw-r--r--offapi/com/sun/star/ucb/InteractiveLockingNotLockedException.idl56
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkConnectException.idl55
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkException.idl52
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkGeneralException.idl50
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkOffLineException.idl50
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkReadException.idl56
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkResolveNameException.idl55
-rw-r--r--offapi/com/sun/star/ucb/InteractiveNetworkWriteException.idl56
-rw-r--r--offapi/com/sun/star/ucb/InteractiveWrongMediumException.idl55
-rw-r--r--offapi/com/sun/star/ucb/Link.idl56
-rw-r--r--offapi/com/sun/star/ucb/ListAction.idl122
-rw-r--r--offapi/com/sun/star/ucb/ListActionType.idl191
-rw-r--r--offapi/com/sun/star/ucb/ListEvent.idl60
-rw-r--r--offapi/com/sun/star/ucb/ListenerAlreadySetException.idl54
-rw-r--r--offapi/com/sun/star/ucb/Lock.idl83
-rw-r--r--offapi/com/sun/star/ucb/LockDepth.idl61
-rw-r--r--offapi/com/sun/star/ucb/LockEntry.idl61
-rw-r--r--offapi/com/sun/star/ucb/LockScope.idl57
-rw-r--r--offapi/com/sun/star/ucb/LockType.idl63
-rw-r--r--offapi/com/sun/star/ucb/MissingInputStreamException.idl59
-rw-r--r--offapi/com/sun/star/ucb/MissingPropertiesException.idl62
-rw-r--r--offapi/com/sun/star/ucb/NameClash.idl78
-rw-r--r--offapi/com/sun/star/ucb/NameClashException.idl53
-rw-r--r--offapi/com/sun/star/ucb/NameClashResolveRequest.idl83
-rw-r--r--offapi/com/sun/star/ucb/NumberedSortingInfo.idl58
-rw-r--r--offapi/com/sun/star/ucb/ODMAContent.idl211
-rw-r--r--offapi/com/sun/star/ucb/ODMAContentProvider.idl90
-rw-r--r--offapi/com/sun/star/ucb/OpenCommandArgument.idl93
-rw-r--r--offapi/com/sun/star/ucb/OpenCommandArgument2.idl67
-rw-r--r--offapi/com/sun/star/ucb/OpenMode.idl94
-rw-r--r--offapi/com/sun/star/ucb/OutgoingMessageState.idl88
-rw-r--r--offapi/com/sun/star/ucb/PackageContentProvider.idl132
-rw-r--r--offapi/com/sun/star/ucb/PackageFolderContent.idl256
-rw-r--r--offapi/com/sun/star/ucb/PackageStreamContent.idl206
-rw-r--r--offapi/com/sun/star/ucb/PersistentPropertySet.idl78
-rw-r--r--offapi/com/sun/star/ucb/PostCommandArgument.idl63
-rw-r--r--offapi/com/sun/star/ucb/PostCommandArgument2.idl62
-rw-r--r--offapi/com/sun/star/ucb/Priority.idl74
-rw-r--r--offapi/com/sun/star/ucb/PropertiesManager.idl59
-rw-r--r--offapi/com/sun/star/ucb/PropertySetRegistry.idl62
-rw-r--r--offapi/com/sun/star/ucb/PropertyValueInfo.idl60
-rw-r--r--offapi/com/sun/star/ucb/PropertyValueState.idl71
-rw-r--r--offapi/com/sun/star/ucb/RecipientInfo.idl129
-rw-r--r--offapi/com/sun/star/ucb/RememberAuthentication.idl63
-rw-r--r--offapi/com/sun/star/ucb/RemoteAccessContentProvider.idl75
-rw-r--r--offapi/com/sun/star/ucb/RemoteContentProviderAcceptor.idl62
-rw-r--r--offapi/com/sun/star/ucb/RemoteContentProviderChangeAction.idl58
-rw-r--r--offapi/com/sun/star/ucb/RemoteContentProviderChangeEvent.idl65
-rw-r--r--offapi/com/sun/star/ucb/RemoteProxyContentProvider.idl77
-rw-r--r--offapi/com/sun/star/ucb/ResultSetException.idl54
-rw-r--r--offapi/com/sun/star/ucb/Rule.idl91
-rw-r--r--offapi/com/sun/star/ucb/RuleAction.idl112
-rw-r--r--offapi/com/sun/star/ucb/RuleOperator.idl92
-rw-r--r--offapi/com/sun/star/ucb/RuleSet.idl65
-rw-r--r--offapi/com/sun/star/ucb/RuleTerm.idl79
-rw-r--r--offapi/com/sun/star/ucb/SearchCommandArgument.idl69
-rw-r--r--offapi/com/sun/star/ucb/SearchCriterium.idl56
-rw-r--r--offapi/com/sun/star/ucb/SearchInfo.idl90
-rw-r--r--offapi/com/sun/star/ucb/SearchRecursion.idl64
-rw-r--r--offapi/com/sun/star/ucb/SendInfo.idl59
-rw-r--r--offapi/com/sun/star/ucb/SendMediaTypes.idl58
-rw-r--r--offapi/com/sun/star/ucb/ServiceNotFoundException.idl50
-rw-r--r--offapi/com/sun/star/ucb/SimpleFileAccess.idl56
-rw-r--r--offapi/com/sun/star/ucb/SortedDynamicResultSetFactory.idl56
-rw-r--r--offapi/com/sun/star/ucb/SortingInfo.idl56
-rw-r--r--offapi/com/sun/star/ucb/Store.idl54
-rw-r--r--offapi/com/sun/star/ucb/SynchronizePolicy.idl64
-rw-r--r--offapi/com/sun/star/ucb/TransferCommandOperation.idl59
-rw-r--r--offapi/com/sun/star/ucb/TransferInfo.idl87
-rw-r--r--offapi/com/sun/star/ucb/TransferResult.idl60
-rw-r--r--offapi/com/sun/star/ucb/TransientDocumentsContentProvider.idl158
-rw-r--r--offapi/com/sun/star/ucb/TransientDocumentsDocumentContent.idl230
-rw-r--r--offapi/com/sun/star/ucb/TransientDocumentsFolderContent.idl240
-rw-r--r--offapi/com/sun/star/ucb/TransientDocumentsRootContent.idl190
-rw-r--r--offapi/com/sun/star/ucb/TransientDocumentsStreamContent.idl197
-rw-r--r--offapi/com/sun/star/ucb/URLAuthenticationRequest.idl57
-rw-r--r--offapi/com/sun/star/ucb/UniversalContentBroker.idl200
-rw-r--r--offapi/com/sun/star/ucb/UnsupportedCommandException.idl55
-rw-r--r--offapi/com/sun/star/ucb/UnsupportedDataSinkException.idl65
-rw-r--r--offapi/com/sun/star/ucb/UnsupportedNameClashException.idl73
-rw-r--r--offapi/com/sun/star/ucb/UnsupportedOpenModeException.idl62
-rw-r--r--offapi/com/sun/star/ucb/VerificationMode.idl64
-rw-r--r--offapi/com/sun/star/ucb/WebDAVContentProvider.idl117
-rw-r--r--offapi/com/sun/star/ucb/WebDAVDocumentContent.idl211
-rw-r--r--offapi/com/sun/star/ucb/WebDAVFolderContent.idl243
-rw-r--r--offapi/com/sun/star/ucb/WelcomeDynamicResultSetStruct.idl66
-rw-r--r--offapi/com/sun/star/ucb/XAnyCompare.idl74
-rw-r--r--offapi/com/sun/star/ucb/XAnyCompareFactory.idl69
-rw-r--r--offapi/com/sun/star/ucb/XCachedContentResultSetFactory.idl76
-rw-r--r--offapi/com/sun/star/ucb/XCachedContentResultSetStubFactory.idl66
-rw-r--r--offapi/com/sun/star/ucb/XCachedDynamicResultSetFactory.idl86
-rw-r--r--offapi/com/sun/star/ucb/XCachedDynamicResultSetStubFactory.idl127
-rw-r--r--offapi/com/sun/star/ucb/XCommandEnvironment.idl83
-rw-r--r--offapi/com/sun/star/ucb/XCommandInfo.idl123
-rw-r--r--offapi/com/sun/star/ucb/XCommandInfoChangeListener.idl66
-rw-r--r--offapi/com/sun/star/ucb/XCommandInfoChangeNotifier.idl74
-rw-r--r--offapi/com/sun/star/ucb/XCommandProcessor.idl153
-rw-r--r--offapi/com/sun/star/ucb/XCommandProcessor2.idl69
-rw-r--r--offapi/com/sun/star/ucb/XContent.idl103
-rw-r--r--offapi/com/sun/star/ucb/XContentAccess.idl90
-rw-r--r--offapi/com/sun/star/ucb/XContentCreator.idl97
-rw-r--r--offapi/com/sun/star/ucb/XContentEventListener.idl65
-rw-r--r--offapi/com/sun/star/ucb/XContentIdentifier.idl88
-rw-r--r--offapi/com/sun/star/ucb/XContentIdentifierFactory.idl69
-rw-r--r--offapi/com/sun/star/ucb/XContentIdentifierMapping.idl125
-rw-r--r--offapi/com/sun/star/ucb/XContentProvider.idl103
-rw-r--r--offapi/com/sun/star/ucb/XContentProviderFactory.idl68
-rw-r--r--offapi/com/sun/star/ucb/XContentProviderManager.idl184
-rw-r--r--offapi/com/sun/star/ucb/XContentProviderSupplier.idl64
-rw-r--r--offapi/com/sun/star/ucb/XContentTransmitter.idl65
-rw-r--r--offapi/com/sun/star/ucb/XDataContainer.idl104
-rw-r--r--offapi/com/sun/star/ucb/XDynamicResultSet.idl207
-rw-r--r--offapi/com/sun/star/ucb/XDynamicResultSetListener.idl80
-rw-r--r--offapi/com/sun/star/ucb/XFetchProvider.idl76
-rw-r--r--offapi/com/sun/star/ucb/XFetchProviderForContentAccess.idl125
-rw-r--r--offapi/com/sun/star/ucb/XFileIdentifierConverter.idl100
-rw-r--r--offapi/com/sun/star/ucb/XInteractionCookieHandling.idl90
-rw-r--r--offapi/com/sun/star/ucb/XInteractionHandlerSupplier.idl65
-rw-r--r--offapi/com/sun/star/ucb/XInteractionReplaceExistingData.idl57
-rw-r--r--offapi/com/sun/star/ucb/XInteractionSupplyAuthentication.idl177
-rw-r--r--offapi/com/sun/star/ucb/XInteractionSupplyAuthentication2.idl78
-rw-r--r--offapi/com/sun/star/ucb/XInteractionSupplyName.idl63
-rw-r--r--offapi/com/sun/star/ucb/XParameterizedContentProvider.idl118
-rw-r--r--offapi/com/sun/star/ucb/XPersistentPropertySet.idl71
-rw-r--r--offapi/com/sun/star/ucb/XProgressHandler.idl83
-rw-r--r--offapi/com/sun/star/ucb/XPropertyMatcher.idl74
-rw-r--r--offapi/com/sun/star/ucb/XPropertyMatcherFactory.idl68
-rw-r--r--offapi/com/sun/star/ucb/XPropertySetRegistry.idl80
-rw-r--r--offapi/com/sun/star/ucb/XPropertySetRegistryFactory.idl68
-rw-r--r--offapi/com/sun/star/ucb/XRecycler.idl77
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderAcceptor.idl105
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderActivator.idl74
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderChangeListener.idl64
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderChangeNotifier.idl74
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderConnectionControl.idl79
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderDistributor.idl106
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderDoneListener.idl64
-rw-r--r--offapi/com/sun/star/ucb/XRemoteContentProviderSupplier.idl69
-rw-r--r--offapi/com/sun/star/ucb/XSimpleFileAccess.idl292
-rw-r--r--offapi/com/sun/star/ucb/XSimpleFileAccess2.idl74
-rw-r--r--offapi/com/sun/star/ucb/XSimpleFileAccess3.idl83
-rw-r--r--offapi/com/sun/star/ucb/XSortedDynamicResultSetFactory.idl81
-rw-r--r--offapi/com/sun/star/ucb/XSourceInitialization.idl77
-rw-r--r--offapi/com/sun/star/ucb/XWebDAVCommandEnvironment.idl77
-rw-r--r--offapi/com/sun/star/ucb/makefile.mk274
-rw-r--r--offapi/com/sun/star/ucb/smart/makefile.mk49
-rw-r--r--offapi/com/sun/star/ui/ActionTrigger.idl68
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerContainer.idl97
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerSeparator.idl45
-rw-r--r--offapi/com/sun/star/ui/ActionTriggerSeparatorType.idl52
-rw-r--r--offapi/com/sun/star/ui/ConfigurableUIElement.idl128
-rw-r--r--offapi/com/sun/star/ui/ConfigurationEvent.idl59
-rw-r--r--offapi/com/sun/star/ui/ContextMenuExecuteEvent.idl66
-rw-r--r--offapi/com/sun/star/ui/ContextMenuInterceptorAction.idl58
-rw-r--r--offapi/com/sun/star/ui/DockingArea.idl76
-rw-r--r--offapi/com/sun/star/ui/GlobalAcceleratorConfiguration.idl50
-rw-r--r--offapi/com/sun/star/ui/ImageType.idl64
-rw-r--r--offapi/com/sun/star/ui/ItemDescriptor.idl102
-rw-r--r--offapi/com/sun/star/ui/ItemStyle.idl158
-rw-r--r--offapi/com/sun/star/ui/ItemType.idl59
-rw-r--r--offapi/com/sun/star/ui/ModuleUICategoryDescription.idl77
-rw-r--r--offapi/com/sun/star/ui/ModuleUICommandDescription.idl84
-rw-r--r--offapi/com/sun/star/ui/ModuleUIConfigurationManager.idl117
-rw-r--r--offapi/com/sun/star/ui/ModuleUIConfigurationManagerSupplier.idl66
-rw-r--r--offapi/com/sun/star/ui/ModuleWindowStateConfiguration.idl98
-rw-r--r--offapi/com/sun/star/ui/UICategoryDescription.idl77
-rw-r--r--offapi/com/sun/star/ui/UICommandDescription.idl71
-rw-r--r--offapi/com/sun/star/ui/UIConfigurationManager.idl94
-rw-r--r--offapi/com/sun/star/ui/UIElement.idl140
-rw-r--r--offapi/com/sun/star/ui/UIElementFactory.idl67
-rw-r--r--offapi/com/sun/star/ui/UIElementFactoryManager.idl76
-rw-r--r--offapi/com/sun/star/ui/UIElementSettings.idl94
-rw-r--r--offapi/com/sun/star/ui/UIElementType.idl83
-rw-r--r--offapi/com/sun/star/ui/WindowContentFactory.idl59
-rw-r--r--offapi/com/sun/star/ui/WindowStateConfiguration.idl74
-rw-r--r--offapi/com/sun/star/ui/XAcceleratorConfiguration.idl304
-rw-r--r--offapi/com/sun/star/ui/XContextMenuInterception.idl57
-rw-r--r--offapi/com/sun/star/ui/XContextMenuInterceptor.idl57
-rw-r--r--offapi/com/sun/star/ui/XDockingAreaAcceptor.idl119
-rw-r--r--offapi/com/sun/star/ui/XImageManager.idl256
-rw-r--r--offapi/com/sun/star/ui/XModuleUIConfigurationManager.idl113
-rw-r--r--offapi/com/sun/star/ui/XModuleUIConfigurationManagerSupplier.idl71
-rw-r--r--offapi/com/sun/star/ui/XUIConfiguration.idl85
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationListener.idl87
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationManager.idl274
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationManagerSupplier.idl61
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationPersistence.idl105
-rw-r--r--offapi/com/sun/star/ui/XUIConfigurationStorage.idl86
-rw-r--r--offapi/com/sun/star/ui/XUIElement.idl74
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactory.idl125
-rw-r--r--offapi/com/sun/star/ui/XUIElementFactoryRegistration.idl182
-rw-r--r--offapi/com/sun/star/ui/XUIElementSettings.idl102
-rw-r--r--offapi/com/sun/star/ui/XUIFunctionListener.idl64
-rw-r--r--offapi/com/sun/star/ui/dialogs/CommonFilePickerElementIds.idl86
-rw-r--r--offapi/com/sun/star/ui/dialogs/ControlActions.idl111
-rw-r--r--offapi/com/sun/star/ui/dialogs/DialogClosedEvent.idl65
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExecutableDialogException.idl54
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExecutableDialogResults.idl58
-rw-r--r--offapi/com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.idl127
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePicker.idl165
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePickerEvent.idl62
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilePreviewImageFormats.idl53
-rw-r--r--offapi/com/sun/star/ui/dialogs/FilterOptionsDialog.idl89
-rw-r--r--offapi/com/sun/star/ui/dialogs/FolderPicker.idl88
-rw-r--r--offapi/com/sun/star/ui/dialogs/ListboxControlActions.idl91
-rw-r--r--offapi/com/sun/star/ui/dialogs/TemplateDescription.idl143
-rw-r--r--offapi/com/sun/star/ui/dialogs/XAsynchronousExecutableDialog.idl72
-rw-r--r--offapi/com/sun/star/ui/dialogs/XControlAccess.idl105
-rw-r--r--offapi/com/sun/star/ui/dialogs/XControlInformation.idl111
-rw-r--r--offapi/com/sun/star/ui/dialogs/XDialogClosedListener.idl68
-rw-r--r--offapi/com/sun/star/ui/dialogs/XExecutableDialog.idl75
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker.idl145
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePicker2.idl75
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerControlAccess.idl153
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerListener.idl120
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePickerNotifier.idl75
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilePreview.idl144
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilterGroupManager.idl80
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFilterManager.idl97
-rw-r--r--offapi/com/sun/star/ui/dialogs/XFolderPicker.idl100
-rw-r--r--offapi/com/sun/star/ui/dialogs/makefile.mk73
-rw-r--r--offapi/com/sun/star/ui/makefile.mk92
-rw-r--r--offapi/com/sun/star/util/AliasProgrammaticPair.idl56
-rw-r--r--offapi/com/sun/star/util/AtomClassRequest.idl61
-rw-r--r--offapi/com/sun/star/util/AtomDescription.idl60
-rw-r--r--offapi/com/sun/star/util/CellProtection.idl66
-rw-r--r--offapi/com/sun/star/util/ChangesEvent.idl77
-rw-r--r--offapi/com/sun/star/util/ChangesSet.idl61
-rw-r--r--offapi/com/sun/star/util/CloseVetoException.idl52
-rw-r--r--offapi/com/sun/star/util/Color.idl52
-rw-r--r--offapi/com/sun/star/util/DataEditorEvent.idl55
-rw-r--r--offapi/com/sun/star/util/DataEditorEventType.idl51
-rw-r--r--offapi/com/sun/star/util/Date.idl63
-rw-r--r--offapi/com/sun/star/util/DateTime.idl87
-rw-r--r--offapi/com/sun/star/util/DateTimeRange.idl116
-rw-r--r--offapi/com/sun/star/util/DiskFullException.idl51
-rw-r--r--offapi/com/sun/star/util/Duration.idl101
-rw-r--r--offapi/com/sun/star/util/ElementChange.idl65
-rw-r--r--offapi/com/sun/star/util/Endianness.idl64
-rw-r--r--offapi/com/sun/star/util/FileIOException.idl50
-rw-r--r--offapi/com/sun/star/util/JobManager.idl46
-rw-r--r--offapi/com/sun/star/util/Language.idl44
-rw-r--r--offapi/com/sun/star/util/MalformedNumberFormatException.idl60
-rw-r--r--offapi/com/sun/star/util/MeasureUnit.idl106
-rw-r--r--offapi/com/sun/star/util/ModeChangeEvent.idl63
-rw-r--r--offapi/com/sun/star/util/NotNumericException.idl51
-rw-r--r--offapi/com/sun/star/util/NumberFormat.idl126
-rw-r--r--offapi/com/sun/star/util/NumberFormatProperties.idl81
-rw-r--r--offapi/com/sun/star/util/NumberFormatSettings.idl88
-rw-r--r--offapi/com/sun/star/util/NumberFormats.idl64
-rw-r--r--offapi/com/sun/star/util/NumberFormatsSupplier.idl77
-rw-r--r--offapi/com/sun/star/util/NumberFormatter.idl69
-rw-r--r--offapi/com/sun/star/util/OfficeInstallationDirectories.idl79
-rw-r--r--offapi/com/sun/star/util/PathSettings.idl173
-rw-r--r--offapi/com/sun/star/util/PathSubstitution.idl108
-rw-r--r--offapi/com/sun/star/util/ReplaceDescriptor.idl59
-rw-r--r--offapi/com/sun/star/util/RevisionTag.idl71
-rw-r--r--offapi/com/sun/star/util/SearchDescriptor.idl140
-rw-r--r--offapi/com/sun/star/util/SortDescriptor.idl111
-rw-r--r--offapi/com/sun/star/util/SortDescriptor2.idl57
-rw-r--r--offapi/com/sun/star/util/SortField.idl67
-rw-r--r--offapi/com/sun/star/util/SortFieldType.idl64
-rw-r--r--offapi/com/sun/star/util/Sortable.idl67
-rw-r--r--offapi/com/sun/star/util/TextSearch.idl53
-rw-r--r--offapi/com/sun/star/util/Time.idl66
-rw-r--r--offapi/com/sun/star/util/TriState.idl66
-rw-r--r--offapi/com/sun/star/util/URL.idl131
-rw-r--r--offapi/com/sun/star/util/URLTransformer.idl54
-rw-r--r--offapi/com/sun/star/util/UriAbbreviation.idl48
-rw-r--r--offapi/com/sun/star/util/VetoException.idl54
-rw-r--r--offapi/com/sun/star/util/XArchiver.idl80
-rw-r--r--offapi/com/sun/star/util/XAtomServer.idl146
-rw-r--r--offapi/com/sun/star/util/XBroadcaster.idl84
-rw-r--r--offapi/com/sun/star/util/XCancelManager.idl67
-rw-r--r--offapi/com/sun/star/util/XCancellable.idl58
-rw-r--r--offapi/com/sun/star/util/XChainable.idl83
-rw-r--r--offapi/com/sun/star/util/XChangesBatch.idl86
-rw-r--r--offapi/com/sun/star/util/XChangesListener.idl64
-rw-r--r--offapi/com/sun/star/util/XChangesNotifier.idl64
-rw-r--r--offapi/com/sun/star/util/XChangesSet.idl73
-rw-r--r--offapi/com/sun/star/util/XCloneable.idl56
-rw-r--r--offapi/com/sun/star/util/XCloseBroadcaster.idl80
-rw-r--r--offapi/com/sun/star/util/XCloseListener.idl139
-rw-r--r--offapi/com/sun/star/util/XCloseable.idl135
-rw-r--r--offapi/com/sun/star/util/XDataEditor.idl76
-rw-r--r--offapi/com/sun/star/util/XDataEditorListener.idl56
-rw-r--r--offapi/com/sun/star/util/XFlushListener.idl60
-rw-r--r--offapi/com/sun/star/util/XFlushable.idl70
-rw-r--r--offapi/com/sun/star/util/XImportable.idl71
-rw-r--r--offapi/com/sun/star/util/XIndent.idl60
-rw-r--r--offapi/com/sun/star/util/XJobManager.idl65
-rw-r--r--offapi/com/sun/star/util/XLinkUpdate.idl59
-rw-r--r--offapi/com/sun/star/util/XLocalizedAliases.idl117
-rw-r--r--offapi/com/sun/star/util/XMergeable.idl63
-rw-r--r--offapi/com/sun/star/util/XModeChangeApproveListener.idl74
-rw-r--r--offapi/com/sun/star/util/XModeChangeBroadcaster.idl97
-rw-r--r--offapi/com/sun/star/util/XModeChangeListener.idl63
-rw-r--r--offapi/com/sun/star/util/XModeSelector.idl78
-rw-r--r--offapi/com/sun/star/util/XModifiable.idl74
-rw-r--r--offapi/com/sun/star/util/XModifiable2.idl88
-rw-r--r--offapi/com/sun/star/util/XModifyBroadcaster.idl69
-rw-r--r--offapi/com/sun/star/util/XModifyListener.idl66
-rw-r--r--offapi/com/sun/star/util/XNumberFormatPreviewer.idl137
-rw-r--r--offapi/com/sun/star/util/XNumberFormatTypes.idl111
-rw-r--r--offapi/com/sun/star/util/XNumberFormats.idl136
-rw-r--r--offapi/com/sun/star/util/XNumberFormatsSupplier.idl75
-rw-r--r--offapi/com/sun/star/util/XNumberFormatter.idl149
-rw-r--r--offapi/com/sun/star/util/XOfficeInstallationDirectories.idl114
-rw-r--r--offapi/com/sun/star/util/XPropertyReplace.idl101
-rw-r--r--offapi/com/sun/star/util/XProtectable.idl72
-rw-r--r--offapi/com/sun/star/util/XRefreshListener.idl60
-rw-r--r--offapi/com/sun/star/util/XRefreshable.idl70
-rw-r--r--offapi/com/sun/star/util/XReplaceDescriptor.idl62
-rw-r--r--offapi/com/sun/star/util/XReplaceable.idl80
-rw-r--r--offapi/com/sun/star/util/XSearchDescriptor.idl62
-rw-r--r--offapi/com/sun/star/util/XSearchable.idl112
-rw-r--r--offapi/com/sun/star/util/XSimpleErrorHandler.idl54
-rw-r--r--offapi/com/sun/star/util/XSortable.idl113
-rw-r--r--offapi/com/sun/star/util/XStringAbbreviation.idl83
-rw-r--r--offapi/com/sun/star/util/XStringEscape.idl83
-rw-r--r--offapi/com/sun/star/util/XStringMapping.idl55
-rw-r--r--offapi/com/sun/star/util/XStringSubstitution.idl134
-rw-r--r--offapi/com/sun/star/util/XStringWidth.idl63
-rw-r--r--offapi/com/sun/star/util/XTextSearch.idl190
-rw-r--r--offapi/com/sun/star/util/XTimeStamped.idl73
-rw-r--r--offapi/com/sun/star/util/XURLTransformer.idl146
-rw-r--r--offapi/com/sun/star/util/XUniqueIDFactory.idl51
-rw-r--r--offapi/com/sun/star/util/XUpdatable.idl58
-rw-r--r--offapi/com/sun/star/util/makefile.mk151
-rw-r--r--offapi/com/sun/star/view/DocumentZoomType.idl72
-rw-r--r--offapi/com/sun/star/view/DuplexMode.idl66
-rw-r--r--offapi/com/sun/star/view/OfficeDocumentView.idl80
-rw-r--r--offapi/com/sun/star/view/PaperFormat.idl92
-rw-r--r--offapi/com/sun/star/view/PaperOrientation.idl57
-rw-r--r--offapi/com/sun/star/view/PrintJobEvent.idl62
-rw-r--r--offapi/com/sun/star/view/PrintOptions.idl98
-rw-r--r--offapi/com/sun/star/view/PrintSettings.idl111
-rw-r--r--offapi/com/sun/star/view/PrintableState.idl78
-rw-r--r--offapi/com/sun/star/view/PrintableStateEvent.idl60
-rw-r--r--offapi/com/sun/star/view/PrinterDescriptor.idl117
-rw-r--r--offapi/com/sun/star/view/RenderDescriptor.idl59
-rw-r--r--offapi/com/sun/star/view/RenderOptions.idl112
-rw-r--r--offapi/com/sun/star/view/SelectionType.idl72
-rw-r--r--offapi/com/sun/star/view/ViewSettings.idl76
-rw-r--r--offapi/com/sun/star/view/XControlAccess.idl71
-rw-r--r--offapi/com/sun/star/view/XFormLayerAccess.idl109
-rw-r--r--offapi/com/sun/star/view/XLineCursor.idl83
-rw-r--r--offapi/com/sun/star/view/XMultiSelectionSupplier.idl131
-rw-r--r--offapi/com/sun/star/view/XPrintJob.idl77
-rw-r--r--offapi/com/sun/star/view/XPrintJobBroadcaster.idl66
-rw-r--r--offapi/com/sun/star/view/XPrintJobListener.idl64
-rw-r--r--offapi/com/sun/star/view/XPrintPreview.idl57
-rw-r--r--offapi/com/sun/star/view/XPrintSettingsSupplier.idl65
-rw-r--r--offapi/com/sun/star/view/XPrintable.idl91
-rw-r--r--offapi/com/sun/star/view/XPrintableBroadcaster.idl64
-rw-r--r--offapi/com/sun/star/view/XPrintableListener.idl66
-rw-r--r--offapi/com/sun/star/view/XRenderable.idl110
-rw-r--r--offapi/com/sun/star/view/XScreenCursor.idl61
-rw-r--r--offapi/com/sun/star/view/XSelectionChangeListener.idl67
-rw-r--r--offapi/com/sun/star/view/XSelectionSupplier.idl89
-rw-r--r--offapi/com/sun/star/view/XViewCursor.idl116
-rw-r--r--offapi/com/sun/star/view/XViewSettingsSupplier.idl64
-rw-r--r--offapi/com/sun/star/view/makefile.mk78
-rw-r--r--offapi/com/sun/star/xforms/Binding.idl94
-rw-r--r--offapi/com/sun/star/xforms/InvalidDataOnSubmitException.idl57
-rw-r--r--offapi/com/sun/star/xforms/XDataTypeRepository.idl120
-rw-r--r--offapi/com/sun/star/xforms/XFormsEvent.idl43
-rw-r--r--offapi/com/sun/star/xforms/XFormsSupplier.idl65
-rw-r--r--offapi/com/sun/star/xforms/XFormsUIHelper1.idl165
-rw-r--r--offapi/com/sun/star/xforms/XModel.idl238
-rw-r--r--offapi/com/sun/star/xforms/XSubmission.idl76
-rw-r--r--offapi/com/sun/star/xforms/makefile.mk55
-rw-r--r--offapi/com/sun/star/xml/Attribute.idl61
-rw-r--r--offapi/com/sun/star/xml/AttributeContainer.idl56
-rw-r--r--offapi/com/sun/star/xml/AttributeData.idl65
-rw-r--r--offapi/com/sun/star/xml/ExportFilter.idl65
-rw-r--r--offapi/com/sun/star/xml/FastAttribute.idl56
-rw-r--r--offapi/com/sun/star/xml/ImportFilter.idl49
-rw-r--r--offapi/com/sun/star/xml/NamespaceContainer.idl52
-rw-r--r--offapi/com/sun/star/xml/ParaUserDefinedAttributesSupplier.idl62
-rw-r--r--offapi/com/sun/star/xml/TextUserDefinedAttributesSupplier.idl62
-rw-r--r--offapi/com/sun/star/xml/UserDefinedAttributeSupplier.idl71
-rw-r--r--offapi/com/sun/star/xml/UserDefinedAttributesSupplier.idl62
-rw-r--r--offapi/com/sun/star/xml/XExportFilter.idl77
-rw-r--r--offapi/com/sun/star/xml/XImportFilter.idl81
-rw-r--r--offapi/com/sun/star/xml/XMLExportFilter.idl60
-rw-r--r--offapi/com/sun/star/xml/XMLImportFilter.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/SEInitializer.idl56
-rw-r--r--offapi/com/sun/star/xml/crypto/SecurityEnvironment.idl60
-rw-r--r--offapi/com/sun/star/xml/crypto/SecurityOperationStatus.idl150
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLEncryption.idl57
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLEncryptionException.idl55
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLEncryptionTemplate.idl58
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLSecurityContext.idl58
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLSignature.idl58
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLSignatureException.idl55
-rw-r--r--offapi/com/sun/star/xml/crypto/XMLSignatureTemplate.idl58
-rw-r--r--offapi/com/sun/star/xml/crypto/XSEInitializer.idl68
-rw-r--r--offapi/com/sun/star/xml/crypto/XSecurityEnvironment.idl122
-rw-r--r--offapi/com/sun/star/xml/crypto/XUriBinding.idl72
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLEncryption.idl87
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLEncryptionTemplate.idl97
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLSecurityContext.idl87
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLSecurityTemplate.idl89
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLSignature.idl88
-rw-r--r--offapi/com/sun/star/xml/crypto/XXMLSignatureTemplate.idl85
-rw-r--r--offapi/com/sun/star/xml/crypto/makefile.mk66
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/Decryptor.idl66
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/Encryptor.idl68
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/SAXEventKeeper.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/SignatureCreator.idl67
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/SignatureVerifier.idl68
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XBlockerMonitor.idl60
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XDecryptionResultBroadcaster.idl75
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XDecryptionResultListener.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XElementStackKeeper.idl94
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XEncryptionResultBroadcaster.idl75
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XEncryptionResultListener.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XKeyCollector.idl61
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XMissionTaker.idl60
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XReferenceCollector.idl70
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedBroadcaster.idl82
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XReferenceResolvedListener.idl61
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeper.idl147
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeBroadcaster.idl76
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSAXEventKeeperStatusChangeListener.idl78
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSecurityController.idl55
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSecuritySAXEventKeeper.idl133
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultBroadcaster.idl76
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSignatureCreationResultListener.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultBroadcaster.idl76
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/XSignatureVerifyResultListener.idl64
-rw-r--r--offapi/com/sun/star/xml/crypto/sax/makefile.mk72
-rw-r--r--offapi/com/sun/star/xml/csax/XCompressedDocumentHandler.idl96
-rw-r--r--offapi/com/sun/star/xml/csax/makefile.mk48
-rw-r--r--offapi/com/sun/star/xml/dom/DOMException.idl54
-rw-r--r--offapi/com/sun/star/xml/dom/DOMExceptionType.idl54
-rw-r--r--offapi/com/sun/star/xml/dom/DocumentBuilder.idl14
-rw-r--r--offapi/com/sun/star/xml/dom/NodeType.idl51
-rw-r--r--offapi/com/sun/star/xml/dom/SAXDocumentBuilder.idl19
-rw-r--r--offapi/com/sun/star/xml/dom/SAXDocumentBuilderState.idl44
-rw-r--r--offapi/com/sun/star/xml/dom/XAttr.idl73
-rw-r--r--offapi/com/sun/star/xml/dom/XCDATASection.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/XCharacterData.idl112
-rw-r--r--offapi/com/sun/star/xml/dom/XComment.idl43
-rw-r--r--offapi/com/sun/star/xml/dom/XDOMImplementation.idl88
-rw-r--r--offapi/com/sun/star/xml/dom/XDocument.idl195
-rw-r--r--offapi/com/sun/star/xml/dom/XDocumentBuilder.idl126
-rw-r--r--offapi/com/sun/star/xml/dom/XDocumentFragment.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/XDocumentType.idl78
-rw-r--r--offapi/com/sun/star/xml/dom/XElement.idl156
-rw-r--r--offapi/com/sun/star/xml/dom/XEntity.idl57
-rw-r--r--offapi/com/sun/star/xml/dom/XEntityReference.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/XNamedNodeMap.idl104
-rw-r--r--offapi/com/sun/star/xml/dom/XNode.idl282
-rw-r--r--offapi/com/sun/star/xml/dom/XNodeList.idl53
-rw-r--r--offapi/com/sun/star/xml/dom/XNotation.idl52
-rw-r--r--offapi/com/sun/star/xml/dom/XProcessingInstruction.idl61
-rw-r--r--offapi/com/sun/star/xml/dom/XSAXDocumentBuilder.idl65
-rw-r--r--offapi/com/sun/star/xml/dom/XText.idl49
-rw-r--r--offapi/com/sun/star/xml/dom/events/AttrChangeType.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/events/EventException.idl43
-rw-r--r--offapi/com/sun/star/xml/dom/events/EventType.idl174
-rw-r--r--offapi/com/sun/star/xml/dom/events/PhaseType.idl40
-rw-r--r--offapi/com/sun/star/xml/dom/events/XDocumentEvent.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/events/XEvent.idl66
-rw-r--r--offapi/com/sun/star/xml/dom/events/XEventListener.idl42
-rw-r--r--offapi/com/sun/star/xml/dom/events/XEventTarget.idl55
-rw-r--r--offapi/com/sun/star/xml/dom/events/XMouseEvent.idl69
-rw-r--r--offapi/com/sun/star/xml/dom/events/XMutationEvent.idl60
-rw-r--r--offapi/com/sun/star/xml/dom/events/XUIEvent.idl49
-rw-r--r--offapi/com/sun/star/xml/dom/events/makefile.mk62
-rw-r--r--offapi/com/sun/star/xml/dom/makefile.mk75
-rw-r--r--offapi/com/sun/star/xml/dom/views/XAbstractView.idl41
-rw-r--r--offapi/com/sun/star/xml/dom/views/XDocumentView.idl39
-rw-r--r--offapi/com/sun/star/xml/dom/views/makefile.mk53
-rw-r--r--offapi/com/sun/star/xml/input/SaxDocumentHandler.idl56
-rw-r--r--offapi/com/sun/star/xml/input/XAttributes.idl127
-rw-r--r--offapi/com/sun/star/xml/input/XElement.idl120
-rw-r--r--offapi/com/sun/star/xml/input/XNamespaceMapping.idl65
-rw-r--r--offapi/com/sun/star/xml/input/XRoot.idl97
-rw-r--r--offapi/com/sun/star/xml/input/makefile.mk51
-rw-r--r--offapi/com/sun/star/xml/makefile.mk60
-rw-r--r--offapi/com/sun/star/xml/sax/FastShapeContextHandler.idl45
-rw-r--r--offapi/com/sun/star/xml/sax/FastToken.idl59
-rw-r--r--offapi/com/sun/star/xml/sax/FastTokenHandler.idl43
-rw-r--r--offapi/com/sun/star/xml/sax/InputSource.idl88
-rw-r--r--offapi/com/sun/star/xml/sax/SAXException.idl66
-rw-r--r--offapi/com/sun/star/xml/sax/SAXInvalidCharacterException.idl54
-rw-r--r--offapi/com/sun/star/xml/sax/SAXParseException.idl78
-rw-r--r--offapi/com/sun/star/xml/sax/XAttributeList.idl102
-rw-r--r--offapi/com/sun/star/xml/sax/XDTDHandler.idl79
-rw-r--r--offapi/com/sun/star/xml/sax/XDocumentHandler.idl125
-rw-r--r--offapi/com/sun/star/xml/sax/XEntityResolver.idl71
-rw-r--r--offapi/com/sun/star/xml/sax/XErrorHandler.idl84
-rw-r--r--offapi/com/sun/star/xml/sax/XExtendedDocumentHandler.idl95
-rw-r--r--offapi/com/sun/star/xml/sax/XFastAttributeList.idl180
-rw-r--r--offapi/com/sun/star/xml/sax/XFastContextHandler.idl161
-rw-r--r--offapi/com/sun/star/xml/sax/XFastDocumentHandler.idl89
-rw-r--r--offapi/com/sun/star/xml/sax/XFastParser.idl196
-rw-r--r--offapi/com/sun/star/xml/sax/XFastSAXSerializable.idl99
-rw-r--r--offapi/com/sun/star/xml/sax/XFastSerializer.idl191
-rw-r--r--offapi/com/sun/star/xml/sax/XFastShapeContextHandler.idl62
-rw-r--r--offapi/com/sun/star/xml/sax/XFastTokenHandler.idl93
-rw-r--r--offapi/com/sun/star/xml/sax/XLocator.idl77
-rw-r--r--offapi/com/sun/star/xml/sax/XParser.idl126
-rw-r--r--offapi/com/sun/star/xml/sax/XSAXSerializable.idl82
-rw-r--r--offapi/com/sun/star/xml/sax/makefile.mk69
-rw-r--r--offapi/com/sun/star/xml/wrapper/XMLDocumentWrapper.idl58
-rw-r--r--offapi/com/sun/star/xml/wrapper/XMLElementWrapper.idl60
-rw-r--r--offapi/com/sun/star/xml/wrapper/XXMLDocumentWrapper.idl176
-rw-r--r--offapi/com/sun/star/xml/wrapper/XXMLElementWrapper.idl55
-rw-r--r--offapi/com/sun/star/xml/wrapper/makefile.mk51
-rw-r--r--offapi/com/sun/star/xml/xpath/Libxml2ExtensionHandle.idl49
-rw-r--r--offapi/com/sun/star/xml/xpath/XPathAPI.idl14
-rw-r--r--offapi/com/sun/star/xml/xpath/XPathException.idl50
-rw-r--r--offapi/com/sun/star/xml/xpath/XPathExtension.idl14
-rw-r--r--offapi/com/sun/star/xml/xpath/XPathObjectType.idl51
-rw-r--r--offapi/com/sun/star/xml/xpath/XXPathAPI.idl207
-rw-r--r--offapi/com/sun/star/xml/xpath/XXPathExtension.idl47
-rw-r--r--offapi/com/sun/star/xml/xpath/XXPathObject.idl102
-rw-r--r--offapi/com/sun/star/xml/xpath/makefile.mk60
-rw-r--r--offapi/com/sun/star/xsd/Boolean.idl53
-rw-r--r--offapi/com/sun/star/xsd/DataTypeClass.idl125
-rw-r--r--offapi/com/sun/star/xsd/Date.idl75
-rw-r--r--offapi/com/sun/star/xsd/DateTime.idl75
-rw-r--r--offapi/com/sun/star/xsd/Day.idl73
-rw-r--r--offapi/com/sun/star/xsd/Decimal.idl90
-rw-r--r--offapi/com/sun/star/xsd/Month.idl73
-rw-r--r--offapi/com/sun/star/xsd/String.idl73
-rw-r--r--offapi/com/sun/star/xsd/Time.idl75
-rw-r--r--offapi/com/sun/star/xsd/WhiteSpaceTreatment.idl59
-rw-r--r--offapi/com/sun/star/xsd/XDataType.idl102
-rw-r--r--offapi/com/sun/star/xsd/Year.idl73
-rw-r--r--offapi/com/sun/star/xsd/makefile.mk58
-rw-r--r--offapi/drafts/com/sun/star/form/IncompatibleTypesException.idl57
-rw-r--r--offapi/drafts/com/sun/star/form/ListEntryEvent.idl77
-rw-r--r--offapi/drafts/com/sun/star/form/XBindableValue.idl81
-rw-r--r--offapi/drafts/com/sun/star/form/XListEntryListener.idl92
-rw-r--r--offapi/drafts/com/sun/star/form/XListEntrySink.idl71
-rw-r--r--offapi/drafts/com/sun/star/form/XListEntrySource.idl103
-rw-r--r--offapi/drafts/com/sun/star/form/XValueBinding.idl101
-rw-r--r--offapi/drafts/com/sun/star/form/makefile.mk52
-rw-r--r--offapi/prj/build.lst108
-rw-r--r--offapi/prj/d.lst228
-rw-r--r--offapi/type_reference/typelibrary_history.txt156
-rw-r--r--offapi/type_reference/types.rdbbin0 -> 7307264 bytes
-rwxr-xr-xoffapi/util/checknewapi.pl198
-rw-r--r--offapi/util/makefile.mk187
-rw-r--r--offapi/util/makefile.pmk34
-rw-r--r--offapi/util/regfilter.sed2
-rw-r--r--offapi/util/target.pmk33
-rw-r--r--officecfg/prj/build.lst18
-rw-r--r--officecfg/prj/d.lst69
-rw-r--r--officecfg/registry/component-schema.dtd152
-rw-r--r--officecfg/registry/component-update.dtd119
-rw-r--r--officecfg/registry/data.dtd40
-rw-r--r--officecfg/registry/data/org/openoffice/FirstStartWizard.xcu56
-rw-r--r--officecfg/registry/data/org/openoffice/Inet.xcu407
-rw-r--r--officecfg/registry/data/org/openoffice/Langpack.xcu.tmpl36
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Accelerators.xcu5721
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Calc.xcu223
-rwxr-xr-xofficecfg/registry/data/org/openoffice/Office/Canvas.xcu80
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Common.xcu705
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Compatibility.xcu47
-rw-r--r--officecfg/registry/data/org/openoffice/Office/DataAccess.xcu730
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Embedding.xcu333
-rw-r--r--officecfg/registry/data/org/openoffice/Office/ExtensionManager.xcu36
-rwxr-xr-xofficecfg/registry/data/org/openoffice/Office/FormWizard.xcu155
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Histories.xcu55
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Impress.xcu166
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Jobs.xcu48
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Labels.xcu13808
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Linguistic.xcu35
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Logging.xcu32
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Math.xcu998
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Paths.xcu235
-rw-r--r--officecfg/registry/data/org/openoffice/Office/ProtocolHandler.xcu67
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Recovery.xcu42
-rw-r--r--officecfg/registry/data/org/openoffice/Office/SFX.xcu56
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Scripting.xcu47
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Security.xcu477
-rw-r--r--officecfg/registry/data/org/openoffice/Office/TableWizard.xcu9751
-rw-r--r--officecfg/registry/data/org/openoffice/Office/TypeDetection.xcu41
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI.xcu567
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/BaseWindowState.xcu113
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/BasicIDECommands.xcu10
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/BasicIDEWindowState.xcu152
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/BibliographyCommands.xcu64
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu1584
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/CalcWindowState.xcu555
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu709
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/ChartWindowState.xcu78
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Controller.xcu379
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbBrowserWindowState.xcu37
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbQueryWindowState.xcu71
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbRelationWindowState.xcu32
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbTableDataWindowState.xcu37
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbTableWindowState.xcu32
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DbuCommands.xcu526
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DrawImpressCommands.xcu2119
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/DrawWindowState.xcu711
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Effects.xcu2149
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Factories.xcu90
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/GenericCategories.xcu190
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu5412
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/ImpressWindowState.xcu809
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu174
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/MathWindowState.xcu101
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/StartModuleCommands.xcu246
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/StartModuleWindowState.xcu53
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterCommands.xcu2246
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterFormWindowState.xcu700
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterGlobalWindowState.xcu634
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterReportWindowState.xcu700
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterWebWindowState.xcu581
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/WriterWindowState.xcu640
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/XFormsWindowState.xcu691
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/makefile.mk79
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Views.xcu37
-rw-r--r--officecfg/registry/data/org/openoffice/Office/WebWizard.xcu1542
-rw-r--r--officecfg/registry/data/org/openoffice/Office/Writer.xcu714
-rw-r--r--officecfg/registry/data/org/openoffice/Office/makefile.mk117
-rw-r--r--officecfg/registry/data/org/openoffice/Setup.xcu923
-rw-r--r--officecfg/registry/data/org/openoffice/System.xcu45
-rw-r--r--officecfg/registry/data/org/openoffice/TypeDetection/UISort.xcu67
-rw-r--r--officecfg/registry/data/org/openoffice/TypeDetection/makefile.mk51
-rw-r--r--officecfg/registry/data/org/openoffice/UserProfile.xcu45
-rw-r--r--officecfg/registry/data/org/openoffice/VCL.xcu8275
-rw-r--r--officecfg/registry/data/org/openoffice/makefile.mk69
-rw-r--r--officecfg/registry/data/org/openoffice/ucb/Configuration.xcu195
-rw-r--r--officecfg/registry/data/org/openoffice/ucb/makefile.mk45
-rw-r--r--officecfg/registry/makefile.mk44
-rw-r--r--officecfg/registry/schema/makefile.mk46
-rw-r--r--officecfg/registry/schema/oo-ad-ldap.xcd.sample153
-rw-r--r--officecfg/registry/schema/oo-common-ad.ldf119
-rw-r--r--officecfg/registry/schema/oo-common.conf22
-rw-r--r--officecfg/registry/schema/oo-common.ldif20
-rw-r--r--officecfg/registry/schema/oo-ldap-attr-map.properties48
-rw-r--r--officecfg/registry/schema/oo-ldap.xcd.sample156
-rw-r--r--officecfg/registry/schema/oo-org-map.properties21
-rw-r--r--officecfg/registry/schema/org/openoffice/FirstStartWizard.xcs69
-rw-r--r--officecfg/registry/schema/org/openoffice/Inet.xcs396
-rw-r--r--officecfg/registry/schema/org/openoffice/LDAP.xcs64
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Accelerators.xcs81
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Addons.xcs322
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Calc.xcs1433
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/CalcAddIns.xcs77
-rwxr-xr-xofficecfg/registry/schema/org/openoffice/Office/Canvas.xcs126
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Chart.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Commands.xcs68
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Common.xcs6564
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs113
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/DataAccess.xcs1115
-rwxr-xr-xofficecfg/registry/schema/org/openoffice/Office/DataAccess/Drivers.xcs97
-rwxr-xr-xofficecfg/registry/schema/org/openoffice/Office/DataAccess/makefile.mk42
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Draw.xcs1126
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Embedding.xcs154
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Events.xcs57
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/ExtendedColorScheme.xcs119
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/ExtensionManager.xcs53
-rwxr-xr-xofficecfg/registry/schema/org/openoffice/Office/FormWizard.xcs67
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Histories.xcs102
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Impress.xcs1492
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Java.xcs402
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Jobs.xcs89
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Labels.xcs76
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Linguistic.xcs608
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Logging.xcs115
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Math.xcs1237
-rwxr-xr-xofficecfg/registry/schema/org/openoffice/Office/OOoImprovement/Settings.xcs98
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/OOoImprovement/makefile.mk42
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/OptionsDialog.xcs293
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Paths.xcs99
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/ProtocolHandler.xcs60
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Recovery.xcs158
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/SFX.xcs56
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Scripting.xcs75
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Security.xcs70
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Substitution.xcs96
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/TabBrowse.xcs61
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/TableWizard.xcs128
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/TypeDetection.xcs160
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI.xcs700
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/BaseWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/BasicIDECommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/BasicIDEWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/BibliographyCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/BibliographyWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/CalcCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/CalcWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Category.xcs46
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/ChartCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/ChartWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Commands.xcs62
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Controller.xcs83
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbBrowserWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbQueryWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbRelationWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbTableDataWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbTableWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DbuCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DrawImpressCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/DrawWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Effects.xcs114
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Factories.xcs72
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/GenericCategories.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/GenericCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/GlobalSettings.xcs78
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/ImpressWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/MathCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/MathWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/StartModuleCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/StartModuleWindowState.xcs50
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WindowContentFactories.xcs72
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WindowState.xcs130
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterCommands.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterFormWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterGlobalWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterReportWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterWebWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/WriterWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/XFormsWindowState.xcs49
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/makefile.mk80
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Views.xcs135
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/WebWizard.xcs547
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Writer.xcs7035
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/WriterWeb.xcs1061
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/makefile.mk82
-rw-r--r--officecfg/registry/schema/org/openoffice/Setup.xcs445
-rw-r--r--officecfg/registry/schema/org/openoffice/System.xcs63
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs79
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/GraphicFilter.xcs62
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/Misc.xcs69
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/Types.xcs83
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/UISort.xcs54
-rw-r--r--officecfg/registry/schema/org/openoffice/TypeDetection/makefile.mk46
-rw-r--r--officecfg/registry/schema/org/openoffice/UserProfile.xcs284
-rw-r--r--officecfg/registry/schema/org/openoffice/VCL.xcs115
-rw-r--r--officecfg/registry/schema/org/openoffice/makefile.mk48
-rw-r--r--officecfg/registry/schema/org/openoffice/ucb/Configuration.xcs94
-rw-r--r--officecfg/registry/schema/org/openoffice/ucb/Hierarchy.xcs81
-rw-r--r--officecfg/registry/schema/org/openoffice/ucb/InteractionHandler.xcs64
-rw-r--r--officecfg/registry/schema/org/openoffice/ucb/Store.xcs93
-rw-r--r--officecfg/registry/schema/org/openoffice/ucb/makefile.mk45
-rw-r--r--officecfg/util/alllang.xsl345
-rw-r--r--officecfg/util/component-conf.gen88
-rw-r--r--officecfg/util/component-ldif.gen85
-rw-r--r--officecfg/util/component-map.gen97
-rw-r--r--officecfg/util/data_val.xsl300
-rw-r--r--officecfg/util/delcomment.sed1
-rw-r--r--officecfg/util/makefile.mk51
-rw-r--r--officecfg/util/makefile.pmk34
-rw-r--r--officecfg/util/resource.xsl79
-rw-r--r--officecfg/util/sanity.xsl61
-rw-r--r--officecfg/util/schema_trim.xsl85
-rw-r--r--officecfg/util/schema_val.xsl132
-rw-r--r--officecfg/util/template.gen34
-rw-r--r--offuh/prj/build.lst4
-rw-r--r--offuh/prj/d.lst376
-rw-r--r--offuh/source/makefile.mk44
-rw-r--r--oovbaapi/genconstidl/ApiSymbols.dtd114
-rw-r--r--oovbaapi/genconstidl/access.api41368
-rw-r--r--oovbaapi/genconstidl/adodb.api6604
-rw-r--r--oovbaapi/genconstidl/api-to-idl.pl212
-rw-r--r--oovbaapi/genconstidl/dao.api6313
-rw-r--r--oovbaapi/genconstidl/excel.api109247
-rw-r--r--oovbaapi/genconstidl/makefile.mk72
-rw-r--r--oovbaapi/genconstidl/msforms.api11840
-rw-r--r--oovbaapi/genconstidl/oovbaconsts.xsl88
-rw-r--r--oovbaapi/genconstidl/powerpoint.api48000
-rw-r--r--oovbaapi/genconstidl/stdole.api233
-rw-r--r--oovbaapi/genconstidl/vba.api5697
-rw-r--r--oovbaapi/genconstidl/word.api99016
-rw-r--r--oovbaapi/ooo/vba/ControlProvider.idl51
-rw-r--r--oovbaapi/ooo/vba/XApplicationBase.idl58
-rw-r--r--oovbaapi/ooo/vba/XAssistant.idl57
-rw-r--r--oovbaapi/ooo/vba/XCollection.idl60
-rw-r--r--oovbaapi/ooo/vba/XCommandBar.idl59
-rw-r--r--oovbaapi/ooo/vba/XCommandBarButton.idl44
-rw-r--r--oovbaapi/ooo/vba/XCommandBarControl.idl58
-rw-r--r--oovbaapi/ooo/vba/XCommandBarControls.idl53
-rw-r--r--oovbaapi/ooo/vba/XCommandBarPopup.idl44
-rw-r--r--oovbaapi/ooo/vba/XCommandBars.idl53
-rw-r--r--oovbaapi/ooo/vba/XControlProvider.idl61
-rw-r--r--oovbaapi/ooo/vba/XDialogBase.idl55
-rw-r--r--oovbaapi/ooo/vba/XDialogsBase.idl57
-rw-r--r--oovbaapi/ooo/vba/XDocumentBase.idl59
-rw-r--r--oovbaapi/ooo/vba/XDocumentProperties.idl68
-rw-r--r--oovbaapi/ooo/vba/XDocumentProperty.idl103
-rw-r--r--oovbaapi/ooo/vba/XDocumentsBase.idl52
-rw-r--r--oovbaapi/ooo/vba/XErrObject.idl55
-rw-r--r--oovbaapi/ooo/vba/XFontBase.idl68
-rw-r--r--oovbaapi/ooo/vba/XGlobalsBase.idl50
-rw-r--r--oovbaapi/ooo/vba/XHelperInterface.idl68
-rw-r--r--oovbaapi/ooo/vba/XPageSetupBase.idl64
-rw-r--r--oovbaapi/ooo/vba/XPropValue.idl52
-rw-r--r--oovbaapi/ooo/vba/XVBAToOOEventDescGen.idl46
-rw-r--r--oovbaapi/ooo/vba/XWindowBase.idl54
-rw-r--r--oovbaapi/ooo/vba/constants/makefile.mk67
-rw-r--r--oovbaapi/ooo/vba/excel/Globals.idl45
-rw-r--r--oovbaapi/ooo/vba/excel/Hyperlink.idl46
-rw-r--r--oovbaapi/ooo/vba/excel/Range.idl46
-rw-r--r--oovbaapi/ooo/vba/excel/TextFrame.idl45
-rw-r--r--oovbaapi/ooo/vba/excel/Window.idl46
-rw-r--r--oovbaapi/ooo/vba/excel/Workbook.idl46
-rw-r--r--oovbaapi/ooo/vba/excel/Worksheet.idl50
-rw-r--r--oovbaapi/ooo/vba/excel/XApplication.idl110
-rw-r--r--oovbaapi/ooo/vba/excel/XAxes.idl56
-rw-r--r--oovbaapi/ooo/vba/excel/XAxis.idl259
-rw-r--r--oovbaapi/ooo/vba/excel/XAxisTitle.idl49
-rw-r--r--oovbaapi/ooo/vba/excel/XBorder.idl59
-rw-r--r--oovbaapi/ooo/vba/excel/XBorders.idl59
-rw-r--r--oovbaapi/ooo/vba/excel/XCharacters.idl62
-rw-r--r--oovbaapi/ooo/vba/excel/XChart.idl87
-rw-r--r--oovbaapi/ooo/vba/excel/XChartObject.idl61
-rw-r--r--oovbaapi/ooo/vba/excel/XChartObjects.idl60
-rw-r--r--oovbaapi/ooo/vba/excel/XChartTitle.idl50
-rw-r--r--oovbaapi/ooo/vba/excel/XCharts.idl60
-rw-r--r--oovbaapi/ooo/vba/excel/XComment.idl66
-rw-r--r--oovbaapi/ooo/vba/excel/XComments.idl55
-rw-r--r--oovbaapi/ooo/vba/excel/XDataLabel.idl59
-rw-r--r--oovbaapi/ooo/vba/excel/XDataLabels.idl56
-rw-r--r--oovbaapi/ooo/vba/excel/XDialog.idl52
-rw-r--r--oovbaapi/ooo/vba/excel/XDialogs.idl51
-rw-r--r--oovbaapi/ooo/vba/excel/XFont.idl59
-rw-r--r--oovbaapi/ooo/vba/excel/XFormat.idl135
-rw-r--r--oovbaapi/ooo/vba/excel/XFormatCondition.idl81
-rw-r--r--oovbaapi/ooo/vba/excel/XFormatConditions.idl68
-rw-r--r--oovbaapi/ooo/vba/excel/XGlobals.idl83
-rw-r--r--oovbaapi/ooo/vba/excel/XHPageBreak.idl52
-rw-r--r--oovbaapi/ooo/vba/excel/XHPageBreaks.idl67
-rw-r--r--oovbaapi/ooo/vba/excel/XHyperlink.idl57
-rw-r--r--oovbaapi/ooo/vba/excel/XInterior.idl62
-rw-r--r--oovbaapi/ooo/vba/excel/XName.idl66
-rw-r--r--oovbaapi/ooo/vba/excel/XNames.idl54
-rw-r--r--oovbaapi/ooo/vba/excel/XOLEObject.idl63
-rw-r--r--oovbaapi/ooo/vba/excel/XOLEObjects.idl51
-rw-r--r--oovbaapi/ooo/vba/excel/XOutline.idl61
-rw-r--r--oovbaapi/ooo/vba/excel/XPageBreak.idl70
-rw-r--r--oovbaapi/ooo/vba/excel/XPageSetup.idl77
-rw-r--r--oovbaapi/ooo/vba/excel/XPane.idl53
-rw-r--r--oovbaapi/ooo/vba/excel/XPivotCache.idl57
-rw-r--r--oovbaapi/ooo/vba/excel/XPivotTable.idl61
-rw-r--r--oovbaapi/ooo/vba/excel/XPivotTables.idl59
-rw-r--r--oovbaapi/ooo/vba/excel/XRange.idl176
-rw-r--r--oovbaapi/ooo/vba/excel/XSeries.idl60
-rw-r--r--oovbaapi/ooo/vba/excel/XSeriesCollection.idl57
-rw-r--r--oovbaapi/ooo/vba/excel/XStyle.idl99
-rw-r--r--oovbaapi/ooo/vba/excel/XStyles.idl68
-rw-r--r--oovbaapi/ooo/vba/excel/XTextFrame.idl39
-rw-r--r--oovbaapi/ooo/vba/excel/XTitle.idl116
-rw-r--r--oovbaapi/ooo/vba/excel/XVPageBreak.idl51
-rw-r--r--oovbaapi/ooo/vba/excel/XVPageBreaks.idl68
-rw-r--r--oovbaapi/ooo/vba/excel/XValidation.idl68
-rw-r--r--oovbaapi/ooo/vba/excel/XWindow.idl97
-rw-r--r--oovbaapi/ooo/vba/excel/XWindows.idl56
-rw-r--r--oovbaapi/ooo/vba/excel/XWorkbook.idl69
-rw-r--r--oovbaapi/ooo/vba/excel/XWorkbooks.idl55
-rw-r--r--oovbaapi/ooo/vba/excel/XWorksheet.idl117
-rw-r--r--oovbaapi/ooo/vba/excel/XWorksheetFunction.idl65
-rw-r--r--oovbaapi/ooo/vba/excel/XWorksheets.idl56
-rw-r--r--oovbaapi/ooo/vba/excel/XlBuildInDialog.idl277
-rw-r--r--oovbaapi/ooo/vba/excel/makefile.mk112
-rw-r--r--oovbaapi/ooo/vba/makefile.mk74
-rw-r--r--oovbaapi/ooo/vba/msforms/MSFormReturnTypes.idl51
-rw-r--r--oovbaapi/ooo/vba/msforms/XButton.idl49
-rw-r--r--oovbaapi/ooo/vba/msforms/XColorFormat.idl43
-rw-r--r--oovbaapi/ooo/vba/msforms/XComboBox.idl58
-rw-r--r--oovbaapi/ooo/vba/msforms/XControl.idl70
-rw-r--r--oovbaapi/ooo/vba/msforms/XControls.idl48
-rw-r--r--oovbaapi/ooo/vba/msforms/XFillFormat.idl50
-rw-r--r--oovbaapi/ooo/vba/msforms/XGroupBox.idl48
-rw-r--r--oovbaapi/ooo/vba/msforms/XImage.idl48
-rw-r--r--oovbaapi/ooo/vba/msforms/XLabel.idl50
-rw-r--r--oovbaapi/ooo/vba/msforms/XLineFormat.idl57
-rw-r--r--oovbaapi/ooo/vba/msforms/XListBox.idl59
-rw-r--r--oovbaapi/ooo/vba/msforms/XMultiPage.idl50
-rw-r--r--oovbaapi/ooo/vba/msforms/XPages.idl53
-rw-r--r--oovbaapi/ooo/vba/msforms/XPictureFormat.idl45
-rw-r--r--oovbaapi/ooo/vba/msforms/XProgressBar.idl49
-rw-r--r--oovbaapi/ooo/vba/msforms/XRadioButton.idl50
-rw-r--r--oovbaapi/ooo/vba/msforms/XScrollBar.idl53
-rw-r--r--oovbaapi/ooo/vba/msforms/XShape.idl81
-rw-r--r--oovbaapi/ooo/vba/msforms/XShapeRange.idl71
-rw-r--r--oovbaapi/ooo/vba/msforms/XShapes.idl56
-rw-r--r--oovbaapi/ooo/vba/msforms/XSpinButton.idl51
-rw-r--r--oovbaapi/ooo/vba/msforms/XTextBox.idl52
-rw-r--r--oovbaapi/ooo/vba/msforms/XTextBoxShape.idl53
-rw-r--r--oovbaapi/ooo/vba/msforms/XTextFrame.idl47
-rw-r--r--oovbaapi/ooo/vba/msforms/XToggleButton.idl52
-rw-r--r--oovbaapi/ooo/vba/msforms/XUserForm.idl50
-rw-r--r--oovbaapi/ooo/vba/msforms/makefile.mk74
-rw-r--r--oovbaapi/ooo/vba/word/XAddin.idl58
-rw-r--r--oovbaapi/ooo/vba/word/XAddins.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XApplication.idl67
-rw-r--r--oovbaapi/ooo/vba/word/XAutoTextEntries.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XAutoTextEntry.idl56
-rw-r--r--oovbaapi/ooo/vba/word/XBookmark.idl58
-rw-r--r--oovbaapi/ooo/vba/word/XBookmarks.idl58
-rw-r--r--oovbaapi/ooo/vba/word/XBorder.idl56
-rw-r--r--oovbaapi/ooo/vba/word/XBorders.idl56
-rw-r--r--oovbaapi/ooo/vba/word/XDialog.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XDialogs.idl51
-rw-r--r--oovbaapi/ooo/vba/word/XDocument.idl72
-rw-r--r--oovbaapi/ooo/vba/word/XDocuments.idl55
-rw-r--r--oovbaapi/ooo/vba/word/XField.idl44
-rw-r--r--oovbaapi/ooo/vba/word/XFields.idl54
-rw-r--r--oovbaapi/ooo/vba/word/XFind.idl84
-rw-r--r--oovbaapi/ooo/vba/word/XFont.idl55
-rw-r--r--oovbaapi/ooo/vba/word/XGlobals.idl59
-rw-r--r--oovbaapi/ooo/vba/word/XHeaderFooter.idl56
-rw-r--r--oovbaapi/ooo/vba/word/XOptions.idl65
-rw-r--r--oovbaapi/ooo/vba/word/XPageSetup.idl60
-rw-r--r--oovbaapi/ooo/vba/word/XPane.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XPanes.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XParagraph.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XParagraphFormat.idl67
-rw-r--r--oovbaapi/ooo/vba/word/XParagraphs.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XRange.idl75
-rw-r--r--oovbaapi/ooo/vba/word/XReplacement.idl51
-rw-r--r--oovbaapi/ooo/vba/word/XSection.idl55
-rw-r--r--oovbaapi/ooo/vba/word/XSections.idl54
-rw-r--r--oovbaapi/ooo/vba/word/XSelection.idl86
-rw-r--r--oovbaapi/ooo/vba/word/XStyle.idl55
-rw-r--r--oovbaapi/ooo/vba/word/XStyles.idl52
-rw-r--r--oovbaapi/ooo/vba/word/XSystem.idl53
-rw-r--r--oovbaapi/ooo/vba/word/XTable.idl78
-rw-r--r--oovbaapi/ooo/vba/word/XTables.idl71
-rw-r--r--oovbaapi/ooo/vba/word/XTemplate.idl53
-rw-r--r--oovbaapi/ooo/vba/word/XVariable.idl57
-rw-r--r--oovbaapi/ooo/vba/word/XVariables.idl54
-rw-r--r--oovbaapi/ooo/vba/word/XView.idl54
-rw-r--r--oovbaapi/ooo/vba/word/XWindow.idl59
-rw-r--r--oovbaapi/ooo/vba/word/XWrapFormat.idl45
-rw-r--r--oovbaapi/ooo/vba/word/makefile.mk86
-rw-r--r--oovbaapi/prj/build.lst9
-rw-r--r--oovbaapi/prj/d.lst1
-rw-r--r--oovbaapi/util/makefile.mk56
-rw-r--r--oovbaapi/util/makefile.pmk34
-rwxr-xr-xoowintool391
-rw-r--r--oox/inc/oox/core/binarycodec.hxx292
-rw-r--r--oox/inc/oox/core/binaryfilterbase.hxx62
-rw-r--r--oox/inc/oox/core/contexthandler.hxx117
-rw-r--r--oox/inc/oox/core/contexthandler2.hxx253
-rw-r--r--oox/inc/oox/core/fasttokenhandler.hxx65
-rw-r--r--oox/inc/oox/core/filterbase.hxx302
-rw-r--r--oox/inc/oox/core/filterdetect.hxx165
-rw-r--r--oox/inc/oox/core/fragmenthandler.hxx137
-rw-r--r--oox/inc/oox/core/fragmenthandler2.hxx115
-rw-r--r--oox/inc/oox/core/recordparser.hxx98
-rw-r--r--oox/inc/oox/core/relations.hxx102
-rw-r--r--oox/inc/oox/core/relationshandler.hxx61
-rw-r--r--oox/inc/oox/core/xmlfilterbase.hxx225
-rw-r--r--oox/inc/oox/dllapi.h39
-rw-r--r--oox/inc/oox/drawingml/chart/axiscontext.hxx127
-rw-r--r--oox/inc/oox/drawingml/chart/axisconverter.hxx80
-rw-r--r--oox/inc/oox/drawingml/chart/axismodel.hxx112
-rw-r--r--oox/inc/oox/drawingml/chart/chartcontextbase.hxx87
-rw-r--r--oox/inc/oox/drawingml/chart/chartconverter.hxx111
-rw-r--r--oox/inc/oox/drawingml/chart/chartdrawingfragment.hxx126
-rw-r--r--oox/inc/oox/drawingml/chart/chartspaceconverter.hxx64
-rw-r--r--oox/inc/oox/drawingml/chart/chartspacefragment.hxx62
-rw-r--r--oox/inc/oox/drawingml/chart/chartspacemodel.hxx78
-rw-r--r--oox/inc/oox/drawingml/chart/converterbase.hxx117
-rw-r--r--oox/inc/oox/drawingml/chart/datasourcecontext.hxx101
-rw-r--r--oox/inc/oox/drawingml/chart/datasourceconverter.hxx78
-rw-r--r--oox/inc/oox/drawingml/chart/datasourcemodel.hxx72
-rw-r--r--oox/inc/oox/drawingml/chart/modelbase.hxx122
-rw-r--r--oox/inc/oox/drawingml/chart/objectformatter.hxx173
-rw-r--r--oox/inc/oox/drawingml/chart/plotareacontext.hxx90
-rw-r--r--oox/inc/oox/drawingml/chart/plotareaconverter.hxx107
-rw-r--r--oox/inc/oox/drawingml/chart/plotareamodel.hxx95
-rw-r--r--oox/inc/oox/drawingml/chart/seriescontext.hxx273
-rw-r--r--oox/inc/oox/drawingml/chart/seriesconverter.hxx162
-rw-r--r--oox/inc/oox/drawingml/chart/seriesmodel.hxx244
-rw-r--r--oox/inc/oox/drawingml/chart/titlecontext.hxx105
-rw-r--r--oox/inc/oox/drawingml/chart/titleconverter.hxx112
-rw-r--r--oox/inc/oox/drawingml/chart/titlemodel.hxx114
-rw-r--r--oox/inc/oox/drawingml/chart/typegroupcontext.hxx171
-rw-r--r--oox/inc/oox/drawingml/chart/typegroupconverter.hxx205
-rw-r--r--oox/inc/oox/drawingml/chart/typegroupmodel.hxx103
-rw-r--r--oox/inc/oox/drawingml/clrscheme.hxx68
-rw-r--r--oox/inc/oox/drawingml/clrschemecontext.hxx68
-rw-r--r--oox/inc/oox/drawingml/color.hxx150
-rw-r--r--oox/inc/oox/drawingml/colorchoicecontext.hxx87
-rw-r--r--oox/inc/oox/drawingml/connectorshapecontext.hxx46
-rw-r--r--oox/inc/oox/drawingml/customshapegeometry.hxx77
-rw-r--r--oox/inc/oox/drawingml/customshapeproperties.hxx89
-rw-r--r--oox/inc/oox/drawingml/diagram/datamodelcontext.hxx54
-rw-r--r--oox/inc/oox/drawingml/diagram/diagram.hxx256
-rw-r--r--oox/inc/oox/drawingml/diagram/diagramfragmenthandler.hxx100
-rw-r--r--oox/inc/oox/drawingml/diagram/diagramlayoutatoms.hxx209
-rw-r--r--oox/inc/oox/drawingml/drawingmltypes.hxx184
-rw-r--r--oox/inc/oox/drawingml/embeddedwavaudiofile.hxx57
-rw-r--r--oox/inc/oox/drawingml/fillproperties.hxx203
-rw-r--r--oox/inc/oox/drawingml/fillpropertiesgroupcontext.hxx215
-rw-r--r--oox/inc/oox/drawingml/graphicshapecontext.hxx116
-rw-r--r--oox/inc/oox/drawingml/guidcontext.hxx49
-rw-r--r--oox/inc/oox/drawingml/lineproperties.hxx127
-rw-r--r--oox/inc/oox/drawingml/linepropertiescontext.hxx57
-rw-r--r--oox/inc/oox/drawingml/objectdefaultcontext.hxx49
-rw-r--r--oox/inc/oox/drawingml/shape.hxx211
-rw-r--r--oox/inc/oox/drawingml/shapecontext.hxx58
-rw-r--r--oox/inc/oox/drawingml/shapegroupcontext.hxx51
-rw-r--r--oox/inc/oox/drawingml/shapepropertiescontext.hxx49
-rw-r--r--oox/inc/oox/drawingml/shapestylecontext.hxx51
-rw-r--r--oox/inc/oox/drawingml/spdefcontext.hxx48
-rw-r--r--oox/inc/oox/drawingml/table/tablebackgroundstylecontext.hxx53
-rw-r--r--oox/inc/oox/drawingml/table/tablecell.hxx121
-rw-r--r--oox/inc/oox/drawingml/table/tablecellcontext.hxx54
-rw-r--r--oox/inc/oox/drawingml/table/tablecontext.hxx54
-rw-r--r--oox/inc/oox/drawingml/table/tablepartstylecontext.hxx53
-rw-r--r--oox/inc/oox/drawingml/table/tableproperties.hxx87
-rw-r--r--oox/inc/oox/drawingml/table/tablerow.hxx55
-rw-r--r--oox/inc/oox/drawingml/table/tablerowcontext.hxx55
-rw-r--r--oox/inc/oox/drawingml/table/tablestyle.hxx91
-rw-r--r--oox/inc/oox/drawingml/table/tablestylecellstylecontext.hxx54
-rw-r--r--oox/inc/oox/drawingml/table/tablestylecontext.hxx55
-rw-r--r--oox/inc/oox/drawingml/table/tablestylelist.hxx60
-rw-r--r--oox/inc/oox/drawingml/table/tablestylelistfragmenthandler.hxx63
-rw-r--r--oox/inc/oox/drawingml/table/tablestylepart.hxx79
-rw-r--r--oox/inc/oox/drawingml/table/tablestyletextstylecontext.hxx55
-rw-r--r--oox/inc/oox/drawingml/textbody.hxx77
-rw-r--r--oox/inc/oox/drawingml/textbodycontext.hxx69
-rw-r--r--oox/inc/oox/drawingml/textbodyproperties.hxx52
-rw-r--r--oox/inc/oox/drawingml/textbodypropertiescontext.hxx53
-rw-r--r--oox/inc/oox/drawingml/textcharacterproperties.hxx88
-rw-r--r--oox/inc/oox/drawingml/textcharacterpropertiescontext.hxx54
-rw-r--r--oox/inc/oox/drawingml/textfield.hxx68
-rw-r--r--oox/inc/oox/drawingml/textfieldcontext.hxx58
-rw-r--r--oox/inc/oox/drawingml/textfont.hxx80
-rw-r--r--oox/inc/oox/drawingml/textliststyle.hxx63
-rw-r--r--oox/inc/oox/drawingml/textliststylecontext.hxx51
-rw-r--r--oox/inc/oox/drawingml/textparagraph.hxx80
-rw-r--r--oox/inc/oox/drawingml/textparagraphproperties.hxx129
-rw-r--r--oox/inc/oox/drawingml/textparagraphpropertiescontext.hxx64
-rw-r--r--oox/inc/oox/drawingml/textrun.hxx68
-rw-r--r--oox/inc/oox/drawingml/textspacing.hxx81
-rw-r--r--oox/inc/oox/drawingml/theme.hxx116
-rw-r--r--oox/inc/oox/drawingml/themeelementscontext.hxx58
-rw-r--r--oox/inc/oox/drawingml/themefragmenthandler.hxx61
-rw-r--r--oox/inc/oox/drawingml/transform2dcontext.hxx58
-rw-r--r--oox/inc/oox/dump/biffdumper.hxx539
-rw-r--r--oox/inc/oox/dump/dffdumper.hxx82
-rw-r--r--oox/inc/oox/dump/dumperbase.hxx1984
-rw-r--r--oox/inc/oox/dump/oledumper.hxx767
-rw-r--r--oox/inc/oox/dump/pptxdumper.hxx78
-rw-r--r--oox/inc/oox/dump/xlsbdumper.hxx259
-rw-r--r--oox/inc/oox/export/drawingml.hxx115
-rw-r--r--oox/inc/oox/export/shapes.hxx162
-rw-r--r--oox/inc/oox/export/utils.hxx70
-rw-r--r--oox/inc/oox/export/vmlexport.hxx115
-rw-r--r--oox/inc/oox/helper/attributelist.hxx185
-rw-r--r--oox/inc/oox/helper/binaryinputstream.hxx222
-rw-r--r--oox/inc/oox/helper/binaryoutputstream.hxx166
-rw-r--r--oox/inc/oox/helper/binarystreambase.hxx140
-rw-r--r--oox/inc/oox/helper/containerhelper.hxx621
-rw-r--r--oox/inc/oox/helper/graphichelper.hxx103
-rw-r--r--oox/inc/oox/helper/helper.hxx303
-rw-r--r--oox/inc/oox/helper/modelobjecthelper.hxx94
-rw-r--r--oox/inc/oox/helper/olestorage.hxx103
-rw-r--r--oox/inc/oox/helper/progressbar.hxx145
-rw-r--r--oox/inc/oox/helper/propertymap.hxx101
-rw-r--r--oox/inc/oox/helper/propertyset.hxx162
-rw-r--r--oox/inc/oox/helper/recordinputstream.hxx58
-rw-r--r--oox/inc/oox/helper/storagebase.hxx172
-rw-r--r--oox/inc/oox/helper/zipstorage.hxx93
-rw-r--r--oox/inc/oox/ole/axbinaryreader.hxx185
-rw-r--r--oox/inc/oox/ole/axcontrol.hxx352
-rw-r--r--oox/inc/oox/ole/axcontrolfragment.hxx81
-rw-r--r--oox/inc/oox/ole/axcontrolhelper.hxx118
-rw-r--r--oox/inc/oox/ole/olehelper.hxx76
-rw-r--r--oox/inc/oox/ole/oleobjecthelper.hxx86
-rw-r--r--oox/inc/oox/ole/vbainputstream.hxx72
-rw-r--r--oox/inc/oox/ppt/animationspersist.hxx132
-rw-r--r--oox/inc/oox/ppt/backgroundproperties.hxx50
-rw-r--r--oox/inc/oox/ppt/headerfooter.hxx51
-rw-r--r--oox/inc/oox/ppt/layoutfragmenthandler.hxx49
-rw-r--r--oox/inc/oox/ppt/pptimport.hxx88
-rw-r--r--oox/inc/oox/ppt/pptshape.hxx71
-rw-r--r--oox/inc/oox/ppt/pptshapecontext.hxx46
-rw-r--r--oox/inc/oox/ppt/pptshapegroupcontext.hxx58
-rw-r--r--oox/inc/oox/ppt/pptshapepropertiescontext.hxx46
-rw-r--r--oox/inc/oox/ppt/presentationfragmenthandler.hxx72
-rw-r--r--oox/inc/oox/ppt/slidefragmenthandler.hxx62
-rw-r--r--oox/inc/oox/ppt/slidemastertextstylescontext.hxx51
-rw-r--r--oox/inc/oox/ppt/slidepersist.hxx153
-rw-r--r--oox/inc/oox/ppt/slidetimingcontext.hxx57
-rw-r--r--oox/inc/oox/ppt/slidetransition.hxx73
-rw-r--r--oox/inc/oox/ppt/slidetransitioncontext.hxx60
-rw-r--r--oox/inc/oox/ppt/soundactioncontext.hxx61
-rw-r--r--oox/inc/oox/ppt/timenode.hxx134
-rw-r--r--oox/inc/oox/ppt/timenodelistcontext.hxx74
-rw-r--r--oox/inc/oox/token/propertylist.hxx50
-rw-r--r--oox/inc/oox/token/tokenmap.hxx81
-rw-r--r--oox/inc/oox/vml/vmldrawing.hxx175
-rw-r--r--oox/inc/oox/vml/vmldrawingfragment.hxx66
-rw-r--r--oox/inc/oox/vml/vmlformatting.hxx184
-rw-r--r--oox/inc/oox/vml/vmlinputstream.hxx69
-rw-r--r--oox/inc/oox/vml/vmlshape.hxx330
-rw-r--r--oox/inc/oox/vml/vmlshapecontainer.hxx139
-rw-r--r--oox/inc/oox/vml/vmlshapecontext.hxx145
-rw-r--r--oox/inc/oox/xls/addressconverter.hxx692
-rw-r--r--oox/inc/oox/xls/autofiltercontext.hxx158
-rw-r--r--oox/inc/oox/xls/biffcodec.hxx185
-rw-r--r--oox/inc/oox/xls/biffdetector.hxx97
-rw-r--r--oox/inc/oox/xls/biffhelper.hxx597
-rw-r--r--oox/inc/oox/xls/biffinputstream.hxx447
-rw-r--r--oox/inc/oox/xls/biffoutputstream.hxx165
-rw-r--r--oox/inc/oox/xls/chartsheetfragment.hxx88
-rw-r--r--oox/inc/oox/xls/commentsbuffer.hxx102
-rw-r--r--oox/inc/oox/xls/commentsfragment.hxx74
-rw-r--r--oox/inc/oox/xls/condformatbuffer.hxx195
-rw-r--r--oox/inc/oox/xls/condformatcontext.hxx65
-rw-r--r--oox/inc/oox/xls/connectionsfragment.hxx65
-rw-r--r--oox/inc/oox/xls/defnamesbuffer.hxx221
-rw-r--r--oox/inc/oox/xls/drawingfragment.hxx201
-rw-r--r--oox/inc/oox/xls/excelchartconverter.hxx62
-rw-r--r--oox/inc/oox/xls/excelfilter.hxx103
-rw-r--r--oox/inc/oox/xls/excelhandlers.hxx386
-rw-r--r--oox/inc/oox/xls/externallinkbuffer.hxx401
-rw-r--r--oox/inc/oox/xls/externallinkfragment.hxx159
-rw-r--r--oox/inc/oox/xls/formulabase.hxx936
-rw-r--r--oox/inc/oox/xls/formulaparser.hxx170
-rw-r--r--oox/inc/oox/xls/numberformatsbuffer.hxx140
-rw-r--r--oox/inc/oox/xls/ooxformulaparser.hxx112
-rw-r--r--oox/inc/oox/xls/pagesettings.hxx220
-rw-r--r--oox/inc/oox/xls/pivotcachebuffer.hxx511
-rw-r--r--oox/inc/oox/xls/pivotcachefragment.hxx156
-rw-r--r--oox/inc/oox/xls/pivottablebuffer.hxx449
-rw-r--r--oox/inc/oox/xls/pivottablefragment.hxx118
-rw-r--r--oox/inc/oox/xls/querytablefragment.hxx57
-rw-r--r--oox/inc/oox/xls/richstring.hxx295
-rw-r--r--oox/inc/oox/xls/richstringcontext.hxx74
-rw-r--r--oox/inc/oox/xls/scenariobuffer.hxx155
-rw-r--r--oox/inc/oox/xls/scenariocontext.hxx81
-rw-r--r--oox/inc/oox/xls/sharedformulabuffer.hxx112
-rw-r--r--oox/inc/oox/xls/sharedstringsbuffer.hxx70
-rw-r--r--oox/inc/oox/xls/sharedstringsfragment.hxx64
-rw-r--r--oox/inc/oox/xls/sheetdatacontext.hxx174
-rw-r--r--oox/inc/oox/xls/stylesbuffer.hxx1032
-rw-r--r--oox/inc/oox/xls/stylesfragment.hxx160
-rw-r--r--oox/inc/oox/xls/tablebuffer.hxx135
-rw-r--r--oox/inc/oox/xls/tablefragment.hxx66
-rw-r--r--oox/inc/oox/xls/themebuffer.hxx64
-rw-r--r--oox/inc/oox/xls/unitconverter.hxx124
-rw-r--r--oox/inc/oox/xls/viewsettings.hxx217
-rw-r--r--oox/inc/oox/xls/webquerybuffer.hxx127
-rw-r--r--oox/inc/oox/xls/workbookfragment.hxx103
-rw-r--r--oox/inc/oox/xls/workbookhelper.hxx412
-rw-r--r--oox/inc/oox/xls/workbooksettings.hxx165
-rw-r--r--oox/inc/oox/xls/worksheetbuffer.hxx133
-rw-r--r--oox/inc/oox/xls/worksheetfragment.hxx197
-rw-r--r--oox/inc/oox/xls/worksheethelper.hxx464
-rw-r--r--oox/inc/oox/xls/worksheetsettings.hxx141
-rw-r--r--oox/prj/build.lst18
-rw-r--r--oox/prj/d.lst38
-rw-r--r--oox/source/core/binarycodec.cxx390
-rw-r--r--oox/source/core/binaryfilterbase.cxx67
-rw-r--r--oox/source/core/contexthandler.cxx153
-rw-r--r--oox/source/core/contexthandler2.cxx274
-rw-r--r--oox/source/core/facreg.cxx176
-rw-r--r--oox/source/core/fasttokenhandler.cxx92
-rw-r--r--oox/source/core/filterbase.cxx676
-rw-r--r--oox/source/core/filterdetect.cxx661
-rw-r--r--oox/source/core/fragmenthandler.cxx142
-rw-r--r--oox/source/core/fragmenthandler2.cxx152
-rw-r--r--oox/source/core/makefile.mk65
-rw-r--r--oox/source/core/recordparser.cxx352
-rw-r--r--oox/source/core/relations.cxx146
-rw-r--r--oox/source/core/relationshandler.cxx109
-rw-r--r--oox/source/core/xmlfilterbase.cxx520
-rw-r--r--oox/source/docprop/docprophandler.cxx693
-rw-r--r--oox/source/docprop/docprophandler.hxx92
-rw-r--r--oox/source/docprop/makefile.mk49
-rw-r--r--oox/source/docprop/ooxmldocpropimport.cxx227
-rw-r--r--oox/source/docprop/ooxmldocpropimport.hxx71
-rw-r--r--oox/source/drawingml/chart/axiscontext.cxx318
-rw-r--r--oox/source/drawingml/chart/axisconverter.cxx331
-rw-r--r--oox/source/drawingml/chart/axismodel.cxx81
-rw-r--r--oox/source/drawingml/chart/chartcontextbase.cxx59
-rw-r--r--oox/source/drawingml/chart/chartconverter.cxx93
-rw-r--r--oox/source/drawingml/chart/chartdrawingfragment.cxx239
-rw-r--r--oox/source/drawingml/chart/chartspaceconverter.cxx200
-rw-r--r--oox/source/drawingml/chart/chartspacefragment.cxx127
-rw-r--r--oox/source/drawingml/chart/chartspacemodel.cxx54
-rw-r--r--oox/source/drawingml/chart/converterbase.cxx175
-rw-r--r--oox/source/drawingml/chart/datasourcecontext.cxx231
-rw-r--r--oox/source/drawingml/chart/datasourceconverter.cxx92
-rw-r--r--oox/source/drawingml/chart/datasourcemodel.cxx60
-rw-r--r--oox/source/drawingml/chart/makefile.mk74
-rw-r--r--oox/source/drawingml/chart/modelbase.cxx56
-rw-r--r--oox/source/drawingml/chart/objectformatter.cxx1213
-rw-r--r--oox/source/drawingml/chart/plotareacontext.cxx185
-rw-r--r--oox/source/drawingml/chart/plotareaconverter.cxx414
-rw-r--r--oox/source/drawingml/chart/plotareamodel.cxx72
-rw-r--r--oox/source/drawingml/chart/seriescontext.cxx760
-rw-r--r--oox/source/drawingml/chart/seriesconverter.cxx607
-rw-r--r--oox/source/drawingml/chart/seriesmodel.cxx157
-rw-r--r--oox/source/drawingml/chart/titlecontext.cxx222
-rw-r--r--oox/source/drawingml/chart/titleconverter.cxx215
-rw-r--r--oox/source/drawingml/chart/titlemodel.cxx91
-rw-r--r--oox/source/drawingml/chart/typegroupcontext.cxx402
-rw-r--r--oox/source/drawingml/chart/typegroupconverter.cxx573
-rw-r--r--oox/source/drawingml/chart/typegroupmodel.cxx83
-rw-r--r--oox/source/drawingml/clrscheme.cxx82
-rw-r--r--oox/source/drawingml/clrschemecontext.cxx107
-rw-r--r--oox/source/drawingml/color.cxx670
-rw-r--r--oox/source/drawingml/colorchoicecontext.cxx161
-rw-r--r--oox/source/drawingml/connectorshapecontext.cxx81
-rw-r--r--oox/source/drawingml/customshapegeometry.cxx1062
-rw-r--r--oox/source/drawingml/customshapeproperties.cxx148
-rw-r--r--oox/source/drawingml/diagram/datamodelcontext.cxx337
-rw-r--r--oox/source/drawingml/diagram/diagram.cxx299
-rw-r--r--oox/source/drawingml/diagram/diagramdefinitioncontext.cxx116
-rw-r--r--oox/source/drawingml/diagram/diagramdefinitioncontext.hxx51
-rw-r--r--oox/source/drawingml/diagram/diagramfragmenthandler.cxx224
-rw-r--r--oox/source/drawingml/diagram/diagramlayoutatoms.cxx141
-rw-r--r--oox/source/drawingml/diagram/layoutnodecontext.cxx357
-rw-r--r--oox/source/drawingml/diagram/layoutnodecontext.hxx52
-rw-r--r--oox/source/drawingml/diagram/makefile.mk53
-rw-r--r--oox/source/drawingml/drawingmltypes.cxx274
-rw-r--r--oox/source/drawingml/embeddedwavaudiofile.cxx56
-rw-r--r--oox/source/drawingml/fillproperties.cxx475
-rw-r--r--oox/source/drawingml/fillpropertiesgroupcontext.cxx300
-rw-r--r--oox/source/drawingml/graphicshapecontext.cxx425
-rw-r--r--oox/source/drawingml/guidcontext.cxx50
-rw-r--r--oox/source/drawingml/hyperlinkcontext.cxx181
-rw-r--r--oox/source/drawingml/hyperlinkcontext.hxx58
-rw-r--r--oox/source/drawingml/lineproperties.cxx479
-rw-r--r--oox/source/drawingml/linepropertiescontext.cxx108
-rw-r--r--oox/source/drawingml/makefile.mk90
-rw-r--r--oox/source/drawingml/objectdefaultcontext.cxx61
-rw-r--r--oox/source/drawingml/shape.cxx502
-rw-r--r--oox/source/drawingml/shapecontext.cxx124
-rw-r--r--oox/source/drawingml/shapegroupcontext.cxx116
-rw-r--r--oox/source/drawingml/shapepropertiescontext.cxx121
-rw-r--r--oox/source/drawingml/shapestylecontext.cxx88
-rw-r--r--oox/source/drawingml/spdefcontext.cxx78
-rw-r--r--oox/source/drawingml/table/makefile.mk62
-rw-r--r--oox/source/drawingml/table/tablebackgroundstylecontext.cxx92
-rw-r--r--oox/source/drawingml/table/tablecell.cxx366
-rw-r--r--oox/source/drawingml/table/tablecellcontext.cxx127
-rw-r--r--oox/source/drawingml/table/tablecontext.cxx109
-rw-r--r--oox/source/drawingml/table/tablepartstylecontext.cxx77
-rw-r--r--oox/source/drawingml/table/tableproperties.cxx180
-rw-r--r--oox/source/drawingml/table/tablerow.cxx55
-rw-r--r--oox/source/drawingml/table/tablerowcontext.cxx79
-rw-r--r--oox/source/drawingml/table/tablestyle.cxx40
-rw-r--r--oox/source/drawingml/table/tablestylecellstylecontext.cxx126
-rw-r--r--oox/source/drawingml/table/tablestylecontext.cxx117
-rw-r--r--oox/source/drawingml/table/tablestylelist.cxx41
-rw-r--r--oox/source/drawingml/table/tablestylelistfragmenthandler.cxx84
-rw-r--r--oox/source/drawingml/table/tablestylepart.cxx49
-rw-r--r--oox/source/drawingml/table/tablestyletextstylecontext.cxx109
-rw-r--r--oox/source/drawingml/textbody.cxx72
-rw-r--r--oox/source/drawingml/textbodycontext.cxx214
-rw-r--r--oox/source/drawingml/textbodypropertiescontext.cxx152
-rw-r--r--oox/source/drawingml/textcharacterproperties.cxx167
-rw-r--r--oox/source/drawingml/textcharacterpropertiescontext.cxx172
-rw-r--r--oox/source/drawingml/textfield.cxx195
-rw-r--r--oox/source/drawingml/textfieldcontext.cxx91
-rw-r--r--oox/source/drawingml/textfont.cxx104
-rw-r--r--oox/source/drawingml/textliststyle.cxx68
-rw-r--r--oox/source/drawingml/textliststylecontext.cxx112
-rw-r--r--oox/source/drawingml/textparagraph.cxx120
-rw-r--r--oox/source/drawingml/textparagraphproperties.cxx426
-rw-r--r--oox/source/drawingml/textparagraphpropertiescontext.cxx286
-rw-r--r--oox/source/drawingml/textrun.cxx121
-rw-r--r--oox/source/drawingml/textspacingcontext.cxx78
-rw-r--r--oox/source/drawingml/textspacingcontext.hxx57
-rw-r--r--oox/source/drawingml/texttabstoplistcontext.cxx97
-rw-r--r--oox/source/drawingml/texttabstoplistcontext.hxx58
-rw-r--r--oox/source/drawingml/theme.cxx108
-rw-r--r--oox/source/drawingml/themeelementscontext.cxx243
-rw-r--r--oox/source/drawingml/themefragmenthandler.cxx87
-rw-r--r--oox/source/drawingml/transform2dcontext.cxx81
-rw-r--r--oox/source/dump/biffdumper.cxx4265
-rw-r--r--oox/source/dump/biffdumper.ini2124
-rw-r--r--oox/source/dump/dffdumper.cxx323
-rw-r--r--oox/source/dump/dffdumper.ini651
-rw-r--r--oox/source/dump/dumperbase.cxx3262
-rw-r--r--oox/source/dump/dumperbase.ini396
-rw-r--r--oox/source/dump/makefile.mk53
-rw-r--r--oox/source/dump/oledumper.cxx1852
-rw-r--r--oox/source/dump/oledumper.ini689
-rw-r--r--oox/source/dump/pptxdumper.cxx146
-rw-r--r--oox/source/dump/pptxdumper.ini19
-rw-r--r--oox/source/dump/xlsbdumper.cxx2273
-rw-r--r--oox/source/dump/xlsbdumper.ini1079
-rw-r--r--oox/source/export/README2
-rw-r--r--oox/source/export/drawingml.cxx1401
-rw-r--r--oox/source/export/makefile.mk27
-rw-r--r--oox/source/export/preset-definitions-to-shape-types.pl1242
-rw-r--r--oox/source/export/presetShapeDefinitions.xml19915
-rw-r--r--oox/source/export/presetTextWarpDefinitions.xml1885
-rw-r--r--oox/source/export/shapes.cxx995
-rw-r--r--oox/source/export/vmlexport.cxx837
-rw-r--r--oox/source/helper/attributelist.cxx311
-rw-r--r--oox/source/helper/binaryinputstream.cxx239
-rw-r--r--oox/source/helper/binaryoutputstream.cxx157
-rw-r--r--oox/source/helper/binarystreambase.cxx144
-rw-r--r--oox/source/helper/containerhelper.cxx224
-rw-r--r--oox/source/helper/graphichelper.cxx120
-rw-r--r--oox/source/helper/makefile.mk61
-rw-r--r--oox/source/helper/modelobjecthelper.cxx91
-rw-r--r--oox/source/helper/olestorage.cxx180
-rw-r--r--oox/source/helper/progressbar.cxx185
-rw-r--r--oox/source/helper/propertymap.cxx234
-rw-r--r--oox/source/helper/propertyset.cxx174
-rw-r--r--oox/source/helper/recordinputstream.cxx71
-rw-r--r--oox/source/helper/storagebase.cxx209
-rw-r--r--oox/source/helper/zipstorage.cxx194
-rw-r--r--oox/source/ole/axbinaryreader.cxx213
-rw-r--r--oox/source/ole/axcontrol.cxx1188
-rw-r--r--oox/source/ole/axcontrolfragment.cxx133
-rw-r--r--oox/source/ole/axcontrolhelper.cxx175
-rw-r--r--oox/source/ole/makefile.mk55
-rw-r--r--oox/source/ole/olehelper.cxx212
-rw-r--r--oox/source/ole/oleobjecthelper.cxx141
-rw-r--r--oox/source/ole/vbainputstream.cxx185
-rw-r--r--oox/source/ppt/animationspersist.cxx202
-rw-r--r--oox/source/ppt/animationtypes.cxx74
-rw-r--r--oox/source/ppt/animationtypes.hxx47
-rw-r--r--oox/source/ppt/animvariantcontext.cxx124
-rw-r--r--oox/source/ppt/animvariantcontext.hxx60
-rw-r--r--oox/source/ppt/backgroundproperties.cxx65
-rw-r--r--oox/source/ppt/buildlistcontext.cxx113
-rw-r--r--oox/source/ppt/buildlistcontext.hxx64
-rw-r--r--oox/source/ppt/commonbehaviorcontext.cxx180
-rw-r--r--oox/source/ppt/commonbehaviorcontext.hxx82
-rw-r--r--oox/source/ppt/commontimenodecontext.cxx710
-rw-r--r--oox/source/ppt/commontimenodecontext.hxx62
-rw-r--r--oox/source/ppt/conditioncontext.cxx214
-rw-r--r--oox/source/ppt/conditioncontext.hxx84
-rw-r--r--oox/source/ppt/customshowlistcontext.cxx121
-rw-r--r--oox/source/ppt/customshowlistcontext.hxx63
-rw-r--r--oox/source/ppt/headerfootercontext.cxx66
-rw-r--r--oox/source/ppt/headerfootercontext.hxx50
-rw-r--r--oox/source/ppt/layoutfragmenthandler.cxx88
-rw-r--r--oox/source/ppt/makefile.mk76
-rw-r--r--oox/source/ppt/pptfilterhelpers.cxx140
-rw-r--r--oox/source/ppt/pptfilterhelpers.hxx104
-rw-r--r--oox/source/ppt/pptimport.cxx158
-rw-r--r--oox/source/ppt/pptshape.cxx201
-rw-r--r--oox/source/ppt/pptshapecontext.cxx204
-rw-r--r--oox/source/ppt/pptshapegroupcontext.cxx118
-rw-r--r--oox/source/ppt/pptshapepropertiescontext.cxx86
-rw-r--r--oox/source/ppt/presentationfragmenthandler.cxx392
-rw-r--r--oox/source/ppt/slidefragmenthandler.cxx188
-rw-r--r--oox/source/ppt/slidemastertextstylescontext.cxx86
-rw-r--r--oox/source/ppt/slidepersist.cxx313
-rw-r--r--oox/source/ppt/slidetimingcontext.cxx103
-rw-r--r--oox/source/ppt/slidetransition.cxx385
-rw-r--r--oox/source/ppt/slidetransitioncontext.cxx203
-rw-r--r--oox/source/ppt/soundactioncontext.cxx137
-rw-r--r--oox/source/ppt/timeanimvaluecontext.cxx102
-rw-r--r--oox/source/ppt/timeanimvaluecontext.hxx64
-rw-r--r--oox/source/ppt/timenode.cxx630
-rw-r--r--oox/source/ppt/timenodelistcontext.cxx1171
-rw-r--r--oox/source/ppt/timetargetelementcontext.cxx176
-rw-r--r--oox/source/ppt/timetargetelementcontext.hxx53
-rw-r--r--oox/source/shape/FastTokenHandlerService.cxx116
-rw-r--r--oox/source/shape/FastTokenHandlerService.hxx81
-rw-r--r--oox/source/shape/ShapeContextHandler.cxx382
-rw-r--r--oox/source/shape/ShapeContextHandler.hxx191
-rw-r--r--oox/source/shape/ShapeFilterBase.cxx74
-rw-r--r--oox/source/shape/ShapeFilterBase.hxx78
-rw-r--r--oox/source/shape/makefile.mk50
-rw-r--r--oox/source/token/gennamespaces.pl66
-rw-r--r--oox/source/token/genproperties.pl46
-rw-r--r--oox/source/token/gentoken.pl61
-rw-r--r--oox/source/token/makefile.mk75
-rw-r--r--oox/source/token/namespaces.txt49
-rw-r--r--oox/source/token/parsexsd.pl48
-rw-r--r--oox/source/token/properties.txt406
-rw-r--r--oox/source/token/propertylist.cxx56
-rw-r--r--oox/source/token/tokenmap.cxx112
-rw-r--r--oox/source/token/tokens.txt5639
-rw-r--r--oox/source/vml/makefile.mk54
-rw-r--r--oox/source/vml/vmldrawing.cxx170
-rw-r--r--oox/source/vml/vmldrawingfragment.cxx92
-rw-r--r--oox/source/vml/vmlformatting.cxx582
-rw-r--r--oox/source/vml/vmlinputstream.cxx91
-rw-r--r--oox/source/vml/vmlshape.cxx545
-rw-r--r--oox/source/vml/vmlshapecontainer.cxx134
-rw-r--r--oox/source/vml/vmlshapecontext.cxx322
-rw-r--r--oox/source/xls/addressconverter.cxx784
-rw-r--r--oox/source/xls/autofiltercontext.cxx775
-rw-r--r--oox/source/xls/biffcodec.cxx334
-rw-r--r--oox/source/xls/biffdetector.cxx233
-rw-r--r--oox/source/xls/biffhelper.cxx330
-rw-r--r--oox/source/xls/biffinputstream.cxx631
-rw-r--r--oox/source/xls/biffoutputstream.cxx208
-rw-r--r--oox/source/xls/chartsheetfragment.cxx291
-rw-r--r--oox/source/xls/commentsbuffer.cxx157
-rw-r--r--oox/source/xls/commentsfragment.cxx153
-rw-r--r--oox/source/xls/condformatbuffer.cxx787
-rw-r--r--oox/source/xls/condformatcontext.cxx107
-rw-r--r--oox/source/xls/connectionsfragment.cxx113
-rw-r--r--oox/source/xls/defnamesbuffer.cxx708
-rw-r--r--oox/source/xls/drawingfragment.cxx669
-rw-r--r--oox/source/xls/excelchartconverter.cxx125
-rw-r--r--oox/source/xls/excelfilter.cxx261
-rw-r--r--oox/source/xls/excelhandlers.cxx259
-rw-r--r--oox/source/xls/externallinkbuffer.cxx1143
-rw-r--r--oox/source/xls/externallinkfragment.cxx551
-rw-r--r--oox/source/xls/formulabase.cxx1730
-rw-r--r--oox/source/xls/formulaparser.cxx2864
-rw-r--r--oox/source/xls/makefile.mk100
-rw-r--r--oox/source/xls/numberformatsbuffer.cxx2123
-rw-r--r--oox/source/xls/ooxformulaparser.cxx225
-rw-r--r--oox/source/xls/pagesettings.cxx1255
-rw-r--r--oox/source/xls/pivotcachebuffer.cxx1548
-rw-r--r--oox/source/xls/pivotcachefragment.cxx465
-rw-r--r--oox/source/xls/pivottablebuffer.cxx1553
-rw-r--r--oox/source/xls/pivottablefragment.cxx317
-rw-r--r--oox/source/xls/querytablefragment.cxx56
-rw-r--r--oox/source/xls/richstring.cxx613
-rw-r--r--oox/source/xls/richstringcontext.cxx95
-rw-r--r--oox/source/xls/scenariobuffer.cxx306
-rw-r--r--oox/source/xls/scenariocontext.cxx124
-rw-r--r--oox/source/xls/sharedformulabuffer.cxx215
-rw-r--r--oox/source/xls/sharedstringsbuffer.cxx84
-rw-r--r--oox/source/xls/sharedstringsfragment.cxx104
-rw-r--r--oox/source/xls/sheetdatacontext.cxx985
-rw-r--r--oox/source/xls/stylesbuffer.cxx3310
-rw-r--r--oox/source/xls/stylesfragment.cxx331
-rw-r--r--oox/source/xls/tablebuffer.cxx173
-rw-r--r--oox/source/xls/tablefragment.cxx86
-rw-r--r--oox/source/xls/themebuffer.cxx121
-rw-r--r--oox/source/xls/unitconverter.cxx258
-rw-r--r--oox/source/xls/viewsettings.cxx774
-rw-r--r--oox/source/xls/webquerybuffer.cxx199
-rw-r--r--oox/source/xls/workbookfragment.cxx714
-rw-r--r--oox/source/xls/workbookhelper.cxx1135
-rw-r--r--oox/source/xls/workbooksettings.cxx351
-rw-r--r--oox/source/xls/worksheetbuffer.cxx261
-rw-r--r--oox/source/xls/worksheetfragment.cxx1185
-rw-r--r--oox/source/xls/worksheethelper.cxx2100
-rw-r--r--oox/source/xls/worksheetsettings.cxx317
-rw-r--r--oox/util/makefile.mk95
-rw-r--r--oox/util/makefile.pmk30
-rw-r--r--oox/workben/ooxml-export-notes.txt220
-rw-r--r--openssl/makefile.mk166
-rw-r--r--openssl/openssl.patch132
-rw-r--r--openssl/openssllnx.patch3824
-rw-r--r--openssl/opensslmacosx.patch3751
-rwxr-xr-xopenssl/opensslmingw.patch158
-rw-r--r--openssl/opensslsol.patch3825
-rw-r--r--openssl/prj/build.lst3
-rw-r--r--openssl/prj/d.lst11
-rw-r--r--openssl/version.mk33
-rw-r--r--package/dtd/Manifest.dtd58
-rw-r--r--package/inc/ByteChucker.hxx67
-rw-r--r--package/inc/ByteGrabber.hxx77
-rw-r--r--package/inc/CRC32.hxx56
-rw-r--r--package/inc/Deflater.hxx66
-rw-r--r--package/inc/EncryptedDataHeader.hxx51
-rw-r--r--package/inc/EncryptionData.hxx43
-rw-r--r--package/inc/HashMaps.hxx63
-rw-r--r--package/inc/Inflater.hxx57
-rw-r--r--package/inc/PackageConstants.hxx56
-rw-r--r--package/inc/ZipEntry.hxx46
-rw-r--r--package/inc/ZipEnumeration.hxx43
-rw-r--r--package/inc/ZipFile.hxx198
-rw-r--r--package/inc/ZipOutputStream.hxx103
-rw-r--r--package/inc/ZipPackage.hxx189
-rw-r--r--package/inc/ZipPackageBuffer.hxx84
-rw-r--r--package/inc/ZipPackageFolder.hxx144
-rw-r--r--package/inc/makefile.mk47
-rw-r--r--package/inc/mutexholder.hxx131
-rw-r--r--package/inc/pch/precompiled_package.cxx29
-rw-r--r--package/inc/pch/precompiled_package.hxx32
-rw-r--r--package/inc/zipfileaccess.hxx109
-rw-r--r--package/prj/build.lst9
-rw-r--r--package/prj/d.lst5
-rw-r--r--package/qa/ofopxmlstorages/StorageTest.java7
-rw-r--r--package/qa/ofopxmlstorages/StorageUnitTest.java158
-rw-r--r--package/qa/ofopxmlstorages/Test01.java200
-rw-r--r--package/qa/ofopxmlstorages/Test02.java164
-rw-r--r--package/qa/ofopxmlstorages/Test03.java233
-rw-r--r--package/qa/ofopxmlstorages/Test04.java308
-rw-r--r--package/qa/ofopxmlstorages/Test05.java314
-rw-r--r--package/qa/ofopxmlstorages/Test06.java277
-rw-r--r--package/qa/ofopxmlstorages/Test07.java258
-rw-r--r--package/qa/ofopxmlstorages/Test08.java261
-rw-r--r--package/qa/ofopxmlstorages/TestHelper.java1098
-rw-r--r--package/qa/ofopxmlstorages/makefile.mk91
-rw-r--r--package/qa/storages/BorderedStream.java195
-rw-r--r--package/qa/storages/RegressionTest_114358.java190
-rw-r--r--package/qa/storages/RegressionTest_125919.java134
-rw-r--r--package/qa/storages/RegressionTest_i26398.java146
-rw-r--r--package/qa/storages/RegressionTest_i27773.java299
-rw-r--r--package/qa/storages/RegressionTest_i29169.java369
-rw-r--r--package/qa/storages/RegressionTest_i29321.java170
-rw-r--r--package/qa/storages/RegressionTest_i30400.java435
-rw-r--r--package/qa/storages/RegressionTest_i30677.java263
-rw-r--r--package/qa/storages/RegressionTest_i35095.java166
-rw-r--r--package/qa/storages/RegressionTest_i46848.java191
-rw-r--r--package/qa/storages/RegressionTest_i49755.java272
-rw-r--r--package/qa/storages/RegressionTest_i55821.java111
-rw-r--r--package/qa/storages/RegressionTest_i59886.java243
-rw-r--r--package/qa/storages/RegressionTest_i61909.java167
-rw-r--r--package/qa/storages/RegressionTest_i84234.java134
-rw-r--r--package/qa/storages/StorageTest.java7
-rw-r--r--package/qa/storages/StorageUnitTest.java326
-rw-r--r--package/qa/storages/Test01.java177
-rw-r--r--package/qa/storages/Test02.java163
-rw-r--r--package/qa/storages/Test03.java231
-rw-r--r--package/qa/storages/Test04.java307
-rw-r--r--package/qa/storages/Test05.java299
-rw-r--r--package/qa/storages/Test06.java279
-rw-r--r--package/qa/storages/Test07.java162
-rw-r--r--package/qa/storages/Test08.java230
-rw-r--r--package/qa/storages/Test09.java138
-rw-r--r--package/qa/storages/Test10.java232
-rw-r--r--package/qa/storages/Test11.java218
-rw-r--r--package/qa/storages/Test12.java240
-rw-r--r--package/qa/storages/Test13.java215
-rw-r--r--package/qa/storages/Test14.java188
-rw-r--r--package/qa/storages/Test15.java268
-rw-r--r--package/qa/storages/Test16.java159
-rw-r--r--package/qa/storages/Test17.java142
-rw-r--r--package/qa/storages/Test18.java172
-rw-r--r--package/qa/storages/TestHelper.java1661
-rw-r--r--package/qa/storages/makefile.mk116
-rw-r--r--package/source/manifest/Base64Codec.cxx204
-rw-r--r--package/source/manifest/Base64Codec.hxx45
-rw-r--r--package/source/manifest/ManifestDefines.hxx67
-rw-r--r--package/source/manifest/ManifestExport.cxx323
-rw-r--r--package/source/manifest/ManifestExport.hxx46
-rw-r--r--package/source/manifest/ManifestImport.cxx332
-rw-r--r--package/source/manifest/ManifestImport.hxx131
-rw-r--r--package/source/manifest/ManifestReader.cxx150
-rw-r--r--package/source/manifest/ManifestReader.hxx73
-rw-r--r--package/source/manifest/ManifestWriter.cxx135
-rw-r--r--package/source/manifest/ManifestWriter.hxx74
-rw-r--r--package/source/manifest/UnoRegister.cxx154
-rw-r--r--package/source/manifest/makefile.mk55
-rw-r--r--package/source/xstor/disposelistener.cxx57
-rw-r--r--package/source/xstor/disposelistener.hxx51
-rw-r--r--package/source/xstor/makefile.mk75
-rw-r--r--package/source/xstor/ocompinstream.cxx758
-rw-r--r--package/source/xstor/ocompinstream.hxx128
-rw-r--r--package/source/xstor/ohierarchyholder.cxx356
-rw-r--r--package/source/xstor/ohierarchyholder.hxx139
-rw-r--r--package/source/xstor/oseekinstream.cxx180
-rw-r--r--package/source/xstor/oseekinstream.hxx68
-rw-r--r--package/source/xstor/owriteablestream.cxx3612
-rw-r--r--package/source/xstor/owriteablestream.hxx411
-rw-r--r--package/source/xstor/register.cxx101
-rw-r--r--package/source/xstor/selfterminatefilestream.cxx153
-rw-r--r--package/source/xstor/selfterminatefilestream.hxx76
-rw-r--r--package/source/xstor/switchpersistencestream.cxx488
-rw-r--r--package/source/xstor/switchpersistencestream.hxx120
-rw-r--r--package/source/xstor/xfactory.cxx308
-rw-r--r--package/source/xstor/xfactory.hxx74
-rw-r--r--package/source/xstor/xstor.dxp3
-rw-r--r--package/source/xstor/xstorage.cxx6174
-rw-r--r--package/source/xstor/xstorage.hxx812
-rw-r--r--package/source/zipapi/ByteChucker.cxx112
-rw-r--r--package/source/zipapi/ByteGrabber.cxx191
-rw-r--r--package/source/zipapi/CRC32.cxx96
-rw-r--r--package/source/zipapi/Deflater.cxx212
-rw-r--r--package/source/zipapi/EntryInputStream.cxx201
-rw-r--r--package/source/zipapi/EntryInputStream.hxx86
-rw-r--r--package/source/zipapi/Inflater.cxx162
-rw-r--r--package/source/zipapi/MemoryByteGrabber.hxx177
-rw-r--r--package/source/zipapi/XFileStream.cxx227
-rw-r--r--package/source/zipapi/XFileStream.hxx96
-rw-r--r--package/source/zipapi/XMemoryStream.cxx52
-rw-r--r--package/source/zipapi/XMemoryStream.hxx42
-rw-r--r--package/source/zipapi/XUnbufferedStream.cxx360
-rw-r--r--package/source/zipapi/XUnbufferedStream.hxx108
-rw-r--r--package/source/zipapi/ZipEnumeration.cxx53
-rw-r--r--package/source/zipapi/ZipFile.cxx1061
-rw-r--r--package/source/zipapi/ZipOutputStream.cxx429
-rw-r--r--package/source/zipapi/makefile.mk59
-rw-r--r--package/source/zippackage/ContentInfo.hxx69
-rw-r--r--package/source/zippackage/ZipPackage.cxx1697
-rw-r--r--package/source/zippackage/ZipPackageBuffer.cxx136
-rw-r--r--package/source/zippackage/ZipPackageEntry.cxx136
-rw-r--r--package/source/zippackage/ZipPackageEntry.hxx105
-rw-r--r--package/source/zippackage/ZipPackageFolder.cxx803
-rw-r--r--package/source/zippackage/ZipPackageFolderEnumeration.cxx79
-rw-r--r--package/source/zippackage/ZipPackageFolderEnumeration.hxx68
-rw-r--r--package/source/zippackage/ZipPackageSink.cxx48
-rw-r--r--package/source/zippackage/ZipPackageSink.hxx48
-rw-r--r--package/source/zippackage/ZipPackageStream.cxx796
-rw-r--r--package/source/zippackage/ZipPackageStream.hxx201
-rw-r--r--package/source/zippackage/makefile.mk63
-rw-r--r--package/source/zippackage/wrapstreamforshare.cxx180
-rw-r--r--package/source/zippackage/wrapstreamforshare.hxx73
-rw-r--r--package/source/zippackage/zipfileaccess.cxx492
-rw-r--r--package/util/exports.dxp3
-rw-r--r--package/util/exports.map8
-rw-r--r--package/util/makefile.mk77
-rw-r--r--packimages/pack/image-sort.lst336
-rw-r--r--packimages/pack/makefile.mk113
-rw-r--r--packimages/prj/build.lst3
-rw-r--r--packimages/prj/d.lst2
-rw-r--r--padmin/prj/build.lst3
-rw-r--r--padmin/prj/d.lst8
-rw-r--r--padmin/source/adddlg.cxx1128
-rw-r--r--padmin/source/adddlg.hxx248
-rw-r--r--padmin/source/cmddlg.cxx551
-rw-r--r--padmin/source/cmddlg.hxx122
-rw-r--r--padmin/source/desktopcontext.cxx59
-rw-r--r--padmin/source/desktopcontext.hxx52
-rw-r--r--padmin/source/fontentry.cxx668
-rw-r--r--padmin/source/fontentry.hxx137
-rw-r--r--padmin/source/helper.cxx327
-rw-r--r--padmin/source/helper.hxx126
-rw-r--r--padmin/source/makefile.mk115
-rw-r--r--padmin/source/newppdlg.cxx226
-rw-r--r--padmin/source/newppdlg.hxx76
-rw-r--r--padmin/source/padialog.cxx750
-rw-r--r--padmin/source/padialog.hrc285
-rw-r--r--padmin/source/padialog.hxx120
-rw-r--r--padmin/source/padialog.src1153
-rw-r--r--padmin/source/pamain.cxx176
-rw-r--r--padmin/source/progress.cxx103
-rw-r--r--padmin/source/progress.hxx66
-rw-r--r--padmin/source/prtsetup.cxx817
-rw-r--r--padmin/source/prtsetup.hxx213
-rw-r--r--padmin/source/psetupl.xpm76
-rw-r--r--padmin/source/rtsetup.hrc120
-rw-r--r--padmin/source/rtsetup.src568
-rw-r--r--padmin/source/spadmin.sh76
-rw-r--r--padmin/source/titlectrl.cxx102
-rw-r--r--padmin/source/titlectrl.hxx66
-rw-r--r--postprocess/checkdeliver/checkdeliver.pl293
-rw-r--r--postprocess/checkdeliver/makefile.mk42
-rw-r--r--postprocess/checkxml/checkxml.pl140
-rw-r--r--postprocess/checkxml/makefile.mk42
-rw-r--r--postprocess/packconfig/macosx/macosx_menubar_modification.xsl26
-rw-r--r--postprocess/packconfig/makefile.mk42
-rwxr-xr-xpostprocess/packconfig/packconfig.pl291
-rw-r--r--postprocess/packregistry/makefile.mk534
-rw-r--r--postprocess/prj/build.lst8
-rw-r--r--postprocess/prj/d.lst3
-rwxr-xr-xpostprocess/rebase/coffbase.txt350
-rwxr-xr-xpostprocess/rebase/makefile.mk59
-rw-r--r--postprocess/rebase/no_rebase.txt33
-rwxr-xr-xpostprocess/rebase/rebase.pl306
-rw-r--r--postprocess/signing/makefile.mk60
-rw-r--r--postprocess/signing/no_signing.txt13
-rw-r--r--postprocess/signing/signing.pl273
-rw-r--r--psprint_config/configuration/delzip0
-rw-r--r--psprint_config/configuration/makefile.mk11
-rw-r--r--psprint_config/configuration/ppds/ADISTILL.PS416
-rw-r--r--psprint_config/configuration/ppds/APLW3101.PS385
-rw-r--r--psprint_config/configuration/ppds/APLW3201.PS496
-rw-r--r--psprint_config/configuration/ppds/APLW3601.PS666
-rw-r--r--psprint_config/configuration/ppds/APLW6101.PS597
-rw-r--r--psprint_config/configuration/ppds/APLW8101.PS885
-rw-r--r--psprint_config/configuration/ppds/APLW81F1.PS885
-rw-r--r--psprint_config/configuration/ppds/APLWBGR1.PS1081
-rw-r--r--psprint_config/configuration/ppds/APLWCOB1.PS565
-rw-r--r--psprint_config/configuration/ppds/APLWCSB1.PS580
-rw-r--r--psprint_config/configuration/ppds/APLWGRF1.PS747
-rw-r--r--psprint_config/configuration/ppds/APLWGRI1.PS746
-rw-r--r--psprint_config/configuration/ppds/APLWGRJ1.PS709
-rw-r--r--psprint_config/configuration/ppds/APLWIIF2.PS428
-rw-r--r--psprint_config/configuration/ppds/APLWIIG2.PS440
-rw-r--r--psprint_config/configuration/ppds/APLWLOT1.PS563
-rw-r--r--psprint_config/configuration/ppds/APL_IIF1.PS520
-rw-r--r--psprint_config/configuration/ppds/APL_IIG1.PS483
-rw-r--r--psprint_config/configuration/ppds/APL_NTR1.PS416
-rw-r--r--psprint_config/configuration/ppds/APNT518_.PS351
-rw-r--r--psprint_config/configuration/ppds/APNTX501.PS351
-rw-r--r--psprint_config/configuration/ppds/APNTXJ1_.PS412
-rw-r--r--psprint_config/configuration/ppds/APPL_230.PS350
-rw-r--r--psprint_config/configuration/ppds/APPL_380.PS329
-rw-r--r--psprint_config/configuration/ppds/APPL_422.PS330
-rw-r--r--psprint_config/configuration/ppds/APTOLLD1.PS660
-rw-r--r--psprint_config/configuration/ppds/APTOLLW1.PS656
-rw-r--r--psprint_config/configuration/ppds/CAECOGR1.PS591
-rw-r--r--psprint_config/configuration/ppds/DC1152_1.PS476
-rw-r--r--psprint_config/configuration/ppds/EFAX3010.PS1698
-rw-r--r--psprint_config/configuration/ppds/EFAX4010.PS1976
-rw-r--r--psprint_config/configuration/ppds/EFAX5010.PS2190
-rw-r--r--psprint_config/configuration/ppds/EFAX7010.PS1698
-rw-r--r--psprint_config/configuration/ppds/EFMX3010.PS1669
-rw-r--r--psprint_config/configuration/ppds/EFMX5010.PS2183
-rw-r--r--psprint_config/configuration/ppds/EFMX7010.PS1669
-rw-r--r--psprint_config/configuration/ppds/EFXJK1F3.PS1945
-rw-r--r--psprint_config/configuration/ppds/EFXJK2F3.PS2479
-rw-r--r--psprint_config/configuration/ppds/EFXJK303.PS1075
-rw-r--r--psprint_config/configuration/ppds/EFXJK3F3.PS1135
-rw-r--r--psprint_config/configuration/ppds/EP_08001.PS671
-rw-r--r--psprint_config/configuration/ppds/EP_15201.PS917
-rw-r--r--psprint_config/configuration/ppds/EP_30001.PS916
-rw-r--r--psprint_config/configuration/ppds/EP_50001.PS876
-rw-r--r--psprint_config/configuration/ppds/EP_82F21.PS952
-rw-r--r--psprint_config/configuration/ppds/EP_82F51.PS1051
-rw-r--r--psprint_config/configuration/ppds/EP_P0701.PS1356
-rw-r--r--psprint_config/configuration/ppds/EP_P1201.PS713
-rw-r--r--psprint_config/configuration/ppds/EP_STPH1.PS640
-rw-r--r--psprint_config/configuration/ppds/GENERIC.PS2
-rw-r--r--psprint_config/configuration/ppds/HP1200C1.PS585
-rw-r--r--psprint_config/configuration/ppds/HP2500C1.PS1099
-rw-r--r--psprint_config/configuration/ppds/HP3SI52_.PS435
-rw-r--r--psprint_config/configuration/ppds/HP3SIL21.PS588
-rw-r--r--psprint_config/configuration/ppds/HP4M3_V1.PS540
-rw-r--r--psprint_config/configuration/ppds/HP4M6_V1.PS540
-rw-r--r--psprint_config/configuration/ppds/HP4ML_V1.PS486
-rw-r--r--psprint_config/configuration/ppds/HP4MP3_1.PS428
-rw-r--r--psprint_config/configuration/ppds/HP4MP6_1.PS432
-rw-r--r--psprint_config/configuration/ppds/HP4PLUS3.PS306
-rw-r--r--psprint_config/configuration/ppds/HP4PLUS6.PS313
-rw-r--r--psprint_config/configuration/ppds/HP4SI3_1.PS751
-rw-r--r--psprint_config/configuration/ppds/HP4SI6_1.PS753
-rw-r--r--psprint_config/configuration/ppds/HPIID52_.PS406
-rw-r--r--psprint_config/configuration/ppds/HPIII52_.PS381
-rw-r--r--psprint_config/configuration/ppds/HPIIP52_.PS374
-rw-r--r--psprint_config/configuration/ppds/HPLJ3D1_.PS563
-rw-r--r--psprint_config/configuration/ppds/HPLJ3P1_.PS462
-rw-r--r--psprint_config/configuration/ppds/HPLJ4MV1.PS793
-rw-r--r--psprint_config/configuration/ppds/HPLJ5M_4.PS695
-rw-r--r--psprint_config/configuration/ppds/HPLJ5P_1.PS541
-rw-r--r--psprint_config/configuration/ppds/HPLJ5SI1.PS953
-rw-r--r--psprint_config/configuration/ppds/HPLJ5SIM.PS1006
-rw-r--r--psprint_config/configuration/ppds/HPLJ__31.PS407
-rw-r--r--psprint_config/configuration/ppds/HP_3D52_.PS430
-rw-r--r--psprint_config/configuration/ppds/HP_3P52_.PS382
-rw-r--r--psprint_config/configuration/ppds/HP__CLJ1.PS689
-rw-r--r--psprint_config/configuration/ppds/KD8650P1.PS946
-rw-r--r--psprint_config/configuration/ppds/KD92P001.PS1127
-rw-r--r--psprint_config/configuration/ppds/KDH00001.PS1533
-rw-r--r--psprint_config/configuration/ppds/KDH00002.PS1554
-rw-r--r--psprint_config/configuration/ppds/L10__425.PS424
-rw-r--r--psprint_config/configuration/ppds/L20__471.PS566
-rw-r--r--psprint_config/configuration/ppds/L20__493.PS564
-rw-r--r--psprint_config/configuration/ppds/L30__471.PS593
-rw-r--r--psprint_config/configuration/ppds/L30__493.PS592
-rw-r--r--psprint_config/configuration/ppds/L333_523.PS723
-rw-r--r--psprint_config/configuration/ppds/L33__523.PS487
-rw-r--r--psprint_config/configuration/ppds/L50__493.PS564
-rw-r--r--psprint_config/configuration/ppds/L533_523.PS632
-rw-r--r--psprint_config/configuration/ppds/L53__523.PS448
-rw-r--r--psprint_config/configuration/ppds/LEX4039P.PS673
-rw-r--r--psprint_config/configuration/ppds/LEX4079P.PS641
-rw-r--r--psprint_config/configuration/ppds/LEXOPTR_.PS741
-rw-r--r--psprint_config/configuration/ppds/LHCFLRJ5.PS2034
-rw-r--r--psprint_config/configuration/ppds/LHCOFLC5.PS1866
-rw-r--r--psprint_config/configuration/ppds/LHCOFLR5.PS1814
-rw-r--r--psprint_config/configuration/ppds/LHGUBEH3.PS1568
-rw-r--r--psprint_config/configuration/ppds/LHGUBHJ4.PS3358
-rw-r--r--psprint_config/configuration/ppds/LHHERHJ4.PS3680
-rw-r--r--psprint_config/configuration/ppds/LHHERIJ4.PS3672
-rw-r--r--psprint_config/configuration/ppds/LHHERKH3.PS1729
-rw-r--r--psprint_config/configuration/ppds/LHHERKI4.PS3468
-rw-r--r--psprint_config/configuration/ppds/LHHKPHJ7.PS3328
-rw-r--r--psprint_config/configuration/ppds/LHHKPIJ7.PS3136
-rw-r--r--psprint_config/configuration/ppds/LHHRKPH7.PS3108
-rw-r--r--psprint_config/configuration/ppds/LHHRKPI7.PS2916
-rw-r--r--psprint_config/configuration/ppds/LHQUSHJ4.PS3074
-rw-r--r--psprint_config/configuration/ppds/LHQUSIJ4.PS3204
-rw-r--r--psprint_config/configuration/ppds/LHQUSRH3.PS1426
-rw-r--r--psprint_config/configuration/ppds/LHQUSRI3.PS1491
-rw-r--r--psprint_config/configuration/ppds/LHSIGHJ4.PS3750
-rw-r--r--psprint_config/configuration/ppds/LHSIGIJ4.PS4192
-rw-r--r--psprint_config/configuration/ppds/LHSIGNH3.PS1764
-rw-r--r--psprint_config/configuration/ppds/LHSIGNI3.PS1985
-rw-r--r--psprint_config/configuration/ppds/LOPC1200.PS810
-rw-r--r--psprint_config/configuration/ppds/LOPC40.PS713
-rw-r--r--psprint_config/configuration/ppds/LOPC45.PS774
-rw-r--r--psprint_config/configuration/ppds/LOPE310.PS659
-rw-r--r--psprint_config/configuration/ppds/LOPM410.PS726
-rw-r--r--psprint_config/configuration/ppds/LOPS1255.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS1625.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS1855.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPS2455.PS1121
-rw-r--r--psprint_config/configuration/ppds/LOPS3455.PS1122
-rw-r--r--psprint_config/configuration/ppds/LOPT610.PS1113
-rw-r--r--psprint_config/configuration/ppds/LOPT612.PS1114
-rw-r--r--psprint_config/configuration/ppds/LOPT614.PS1109
-rw-r--r--psprint_config/configuration/ppds/LOPT616.PS1113
-rw-r--r--psprint_config/configuration/ppds/LOPTRAC.PS546
-rw-r--r--psprint_config/configuration/ppds/LOPTRAEP.PS693
-rw-r--r--psprint_config/configuration/ppds/LOPTRAK.PS752
-rw-r--r--psprint_config/configuration/ppds/LOPTRAN.PS1001
-rw-r--r--psprint_config/configuration/ppds/LOPTRAP.PS759
-rw-r--r--psprint_config/configuration/ppds/LOPTRAS.PS1141
-rw-r--r--psprint_config/configuration/ppds/LOPTRASC.PS714
-rw-r--r--psprint_config/configuration/ppds/LOPW810.PS1018
-rw-r--r--psprint_config/configuration/ppds/LOS1255P.PS1205
-rw-r--r--psprint_config/configuration/ppds/LOS1625P.PS1198
-rw-r--r--psprint_config/configuration/ppds/LOS1855P.PS1198
-rw-r--r--psprint_config/configuration/ppds/LOS2455P.PS1196
-rw-r--r--psprint_config/configuration/ppds/LOS3455P.PS1197
-rw-r--r--psprint_config/configuration/ppds/LWNT_518.PS345
-rw-r--r--psprint_config/configuration/ppds/SGENPRT.PS589
-rw-r--r--psprint_config/configuration/ppds/SGENT42.PS29
-rw-r--r--psprint_config/configuration/ppds/SNSPREC1.PS760
-rw-r--r--psprint_config/configuration/ppds/TK300PJ1.PS1284
-rw-r--r--psprint_config/configuration/ppds/TK300XJ1.PS1309
-rw-r--r--psprint_config/configuration/ppds/TK350171.PS551
-rw-r--r--psprint_config/configuration/ppds/TK350172.PS563
-rw-r--r--psprint_config/configuration/ppds/TK350691.PS1
-rw-r--r--psprint_config/configuration/ppds/TK350692.PS597
-rw-r--r--psprint_config/configuration/ppds/TK350PJ2.PS590
-rw-r--r--psprint_config/configuration/ppds/TK360J21.PS923
-rw-r--r--psprint_config/configuration/ppds/TK360J51.PS986
-rw-r--r--psprint_config/configuration/ppds/TK360J71.PS1030
-rw-r--r--psprint_config/configuration/ppds/TK450PJ1.PS1134
-rw-r--r--psprint_config/configuration/ppds/TK550171.PS692
-rw-r--r--psprint_config/configuration/ppds/TK550391.PS780
-rw-r--r--psprint_config/configuration/ppds/TK550PJ1.PS828
-rw-r--r--psprint_config/configuration/ppds/TKP350J2.PS599
-rw-r--r--psprint_config/configuration/ppds/TKP360P1.PS863
-rw-r--r--psprint_config/configuration/ppds/TKP380J1.PS1350
-rw-r--r--psprint_config/configuration/ppds/TKP380P1.PS1351
-rw-r--r--psprint_config/configuration/ppds/TKP450J1.PS1103
-rw-r--r--psprint_config/configuration/ppds/TKP450P1.PS1089
-rw-r--r--psprint_config/configuration/ppds/TKP550J1.PS760
-rw-r--r--psprint_config/configuration/ppds/TKP600J1.PS1459
-rw-r--r--psprint_config/configuration/ppds/TKPH3801.PS1271
-rw-r--r--psprint_config/configuration/ppds/TKPH4501.PS1060
-rw-r--r--psprint_config/configuration/ppds/TKPH6001.PS1401
-rw-r--r--psprint_config/configuration/ppds/XRD61354.PS789
-rw-r--r--psprint_config/configuration/ppds/XRD61801.PS789
-rw-r--r--psprint_config/configuration/ppds/XRN17000.PS1267
-rw-r--r--psprint_config/configuration/ppds/XRN24320.PS1696
-rw-r--r--psprint_config/configuration/ppds/XR_DC230.PS1178
-rw-r--r--psprint_config/configuration/ppds/delzip0
-rw-r--r--psprint_config/configuration/ppds/makefile.mk46
-rw-r--r--psprint_config/configuration/psprint.conf114
-rw-r--r--psprint_config/prj/build.lst4
-rw-r--r--psprint_config/prj/d.lst4
-rw-r--r--python/Python-2.6.1-mingw.patch1269
-rw-r--r--python/Python-2.6.1.patch232
-rw-r--r--python/Python-ssl.patch210
-rw-r--r--python/makefile.mk155
-rw-r--r--python/prj/build.lst3
-rw-r--r--python/prj/d.lst109
-rw-r--r--python/pyversion.mk26
-rw-r--r--pyuno/demo/Addons.xcu21
-rw-r--r--pyuno/demo/biblioaccess.py35
-rw-r--r--pyuno/demo/hello_world_comp.py40
-rw-r--r--pyuno/demo/makefile.mk229
-rw-r--r--pyuno/demo/ooextract.py109
-rw-r--r--pyuno/demo/pyunoenv.bat6
-rw-r--r--pyuno/demo/pyunoenv.tcsh25
-rw-r--r--pyuno/demo/swriter.py105
-rw-r--r--pyuno/demo/swritercomp.py112
-rw-r--r--pyuno/demo/swritercompclient.py13
-rw-r--r--pyuno/doc/modes.sxdbin0 -> 7181 bytes
-rw-r--r--pyuno/inc/pyuno/pyuno.hxx296
-rw-r--r--pyuno/prj/build.lst5
-rw-r--r--pyuno/prj/d.lst27
-rw-r--r--pyuno/source/loader/makefile.mk112
-rw-r--r--pyuno/source/loader/pythonloader.py151
-rw-r--r--pyuno/source/loader/pyuno_loader.cxx248
-rw-r--r--pyuno/source/module/makefile.mk165
-rw-r--r--pyuno/source/module/pyuno4
-rw-r--r--pyuno/source/module/pyuno.cxx744
-rwxr-xr-xpyuno/source/module/pyuno.flt14
-rw-r--r--pyuno/source/module/pyuno_adapter.cxx437
-rw-r--r--pyuno/source/module/pyuno_callable.cxx273
-rw-r--r--pyuno/source/module/pyuno_dlopenwrapper.c60
-rw-r--r--pyuno/source/module/pyuno_except.cxx251
-rw-r--r--pyuno/source/module/pyuno_gc.cxx117
-rw-r--r--pyuno/source/module/pyuno_impl.hxx293
-rw-r--r--pyuno/source/module/pyuno_module.cxx717
-rw-r--r--pyuno/source/module/pyuno_runtime.cxx1058
-rw-r--r--pyuno/source/module/pyuno_type.cxx431
-rw-r--r--pyuno/source/module/pyuno_util.cxx249
-rw-r--r--pyuno/source/module/uno.py352
-rw-r--r--pyuno/source/module/unohelper.py304
-rwxr-xr-xpyuno/zipcore/makefile.mk132
-rw-r--r--pyuno/zipcore/python.cxx303
-rw-r--r--pyuno/zipcore/python.sh65
-rw-r--r--pyuno/zipcore/pyversion.inc28
-rwxr-xr-xqadevOOo/build.xml52
-rwxr-xr-xqadevOOo/makefile.mk51
-rw-r--r--qadevOOo/objdsc/acceptor.uno/com.sun.star.comp.io.Acceptor.csv2
-rw-r--r--qadevOOo/objdsc/acceptor/com.sun.star.comp.io.Acceptor.csv2
-rw-r--r--qadevOOo/objdsc/adabas/com.sun.star.comp.sdbcx.adabas.ODriver.csv5
-rw-r--r--qadevOOo/objdsc/ado/com.sun.star.comp.sdbc.ado.ODriver.csv5
-rw-r--r--qadevOOo/objdsc/basctl/com.sun.star.comp.basctl.AccessibleShape.csv23
-rw-r--r--qadevOOo/objdsc/basctl/com.sun.star.comp.basctl.AccessibleWindow.csv24
-rw-r--r--qadevOOo/objdsc/brdgfctr/com.sun.star.comp.remotebridges.BridgeFactory.csv6
-rw-r--r--qadevOOo/objdsc/bridgefac.uno/com.sun.star.comp.remotebridges.BridgeFactory.csv6
-rw-r--r--qadevOOo/objdsc/cached/com.sun.star.comp.ucb.CachedContentResultSetFactory.csv1
-rw-r--r--qadevOOo/objdsc/cached/com.sun.star.comp.ucb.CachedContentResultSetStubFactory.csv1
-rw-r--r--qadevOOo/objdsc/cached/com.sun.star.comp.ucb.CachedDynamicResultSetFactory.csv1
-rw-r--r--qadevOOo/objdsc/cached/com.sun.star.comp.ucb.CachedDynamicResultSetStubFactory.csv2
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.AdministrationProvider.csv6
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ConfigurationProvider.csv6
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ConfigurationProviderWrapper.csv6
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OConfigurationRegistry.csv11
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OInnerGroupInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OInnerGroupUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OInnerSetInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OInnerTreeSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OInnerValueSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ORootElementGroupInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ORootElementGroupUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ORootElementSetInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ORootElementTreeSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.ORootElementValueSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OSetElementGroupInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OSetElementGroupUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OSetElementSetInfoAccess.csv61
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OSetElementTreeSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.OSetElementValueSetUpdateAccess.csv72
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.CopyImporter.csv5
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LayerUpdateMerger.csv18
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LocalDataImporter.csv1
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LocalHierarchyBrowser.csv1
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LocalSchemaSupplier.csv1
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LocalSingleBackend.csv11
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.LocalSingleStratum.csv6
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.MergeImporter.csv5
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.MultiStratumBackend.csv10
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.SingleBackendAdapter.csv10
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.xml.LayerParser.csv4
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.xml.LayerWriter.csv16
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.backend.xml.SchemaParser.csv6
-rw-r--r--qadevOOo/objdsc/cfgmgr2/com.sun.star.comp.configuration.bootstrap.BootstrapContext.csv2
-rw-r--r--qadevOOo/objdsc/cmdmail/com.sun.star.comp.system.SimpleCommandMail.csv6
-rw-r--r--qadevOOo/objdsc/configmgr/com.sun.star.comp.configuration.ConfigurationProvider.csv45
-rw-r--r--qadevOOo/objdsc/configmgr/com.sun.star.comp.configuration.DefaultProvider.csv33
-rw-r--r--qadevOOo/objdsc/connector.uno/com.sun.star.comp.io.Connector.csv1
-rw-r--r--qadevOOo/objdsc/connectr/com.sun.star.comp.io.Connector.csv1
-rw-r--r--qadevOOo/objdsc/corefl/com.sun.star.comp.stoc.CoreReflection.csv5
-rw-r--r--qadevOOo/objdsc/corereflection.uno/com.sun.star.comp.stoc.CoreReflection.csv5
-rw-r--r--qadevOOo/objdsc/cpld/com.sun.star.comp.stoc.DLLComponentLoader.csv5
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dba.OCommandDefinition.csv13
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dba.ODatabaseContext.csv13
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dba.ODatabaseSource.csv29
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dba.ORowSet.csv154
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dbu.OInteractionHandler.csv1
-rw-r--r--qadevOOo/objdsc/dbaccess/com.sun.star.comp.dbu.SbaXGridControl.csv63
-rwxr-xr-xqadevOOo/objdsc/dbaccess/org.openoffice.comp.dba.OSingleSelectQueryComposer.csv24
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.ConnectionLineAccessibility.csv13
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.DBContentLoader.csv5
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.JoinViewAccessibility.csv13
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.ODatasourceAdministrationDialog.csv12
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.ODatasourceBrowser.csv40
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.OQueryDesign.csv11
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.OSQLMessageDialog.csv13
-rw-r--r--qadevOOo/objdsc/dbaccess/org.openoffice.comp.dbu.TableWindowAccessibility.csv13
-rw-r--r--qadevOOo/objdsc/dbpool/com.sun.star.comp.sdbc.OConnectionPool.csv4
-rw-r--r--qadevOOo/objdsc/defreg/com.sun.star.comp.stoc.NestedRegistry.csv9
-rw-r--r--qadevOOo/objdsc/dnd/com.sun.star.comp.datatransfer.dnd.OleDragAndDrop.csv18
-rw-r--r--qadevOOo/objdsc/dtrans/com.sun.star.comp.datatransfer.generic.csv19
-rw-r--r--qadevOOo/objdsc/dtransX11/com.sun.star.comp.datatransfer.X11.csv25
-rw-r--r--qadevOOo/objdsc/dynamicloader/com.sun.star.loader.Dynamic.csv5
-rw-r--r--qadevOOo/objdsc/file/com.sun.star.comp.sdbc.dbase.ODriver.csv9
-rw-r--r--qadevOOo/objdsc/file/com.sun.star.comp.sdbc.evoab.OEvoabDriver.csv9
-rw-r--r--qadevOOo/objdsc/file/com.sun.star.comp.sdbc.flat.ODriver.csv9
-rw-r--r--qadevOOo/objdsc/file/com.sun.star.sdbc.driver.calc.ODriver.csv9
-rw-r--r--qadevOOo/objdsc/file/com.sun.star.sdbc.driver.file.Driver.csv9
-rw-r--r--qadevOOo/objdsc/fileacc/com.sun.star.comp.ucb.SimpleFileAccess.csv17
-rw-r--r--qadevOOo/objdsc/fop/com.sun.star.comp.ui.dialogs.FolderPicker.csv12
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.form.ONavigationBarControl.csv36
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.form.ONavigationBarModel.csv60
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OButtonControl.csv49
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OButtonModel.csv78
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OCheckBoxControl.csv47
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OCheckBoxModel.csv95
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OComboBoxControl.csv67
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OComboBoxModel.csv97
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OCurrencyControl.csv78
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OCurrencyModel.csv97
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ODatabaseForm.csv225
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ODateControl.csv78
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ODateModel.csv98
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OEditControl.csv57
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OEditModel.csv235
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OFileControlModel.csv67
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OFixedTextModel.csv63
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OFormattedControl.csv62
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OFormattedFieldWrapper.csv101
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OFormsCollection.csv27
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OGridControlModel.csv90
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OGroupBoxControl.csv36
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OGroupBoxModel.csv57
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OHiddenModel.csv23
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OImageButtonControl.csv45
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OImageButtonModel.csv63
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OImageControlControl.csv41
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OImageControlModel.csv75
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OListBoxControl.csv67
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OListBoxModel.csv95
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ONumericControl.csv78
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ONumericModel.csv97
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OPatternControl.csv68
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OPatternModel.csv84
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ORadioButtonControl.csv46
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.ORadioButtonModel.csv95
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OScrollBarModel.csv69
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OSpinButtonModel.csv66
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OTimeControl.csv76
-rw-r--r--qadevOOo/objdsc/forms/com.sun.star.comp.forms.OTimeModel.csv96
-rw-r--r--qadevOOo/objdsc/fps/com.sun.star.comp.ui.dialogs.FilePicker.csv36
-rw-r--r--qadevOOo/objdsc/ftransl/com.sun.star.comp.datatransfer.DataFormatTranslator.csv7
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ControlMenuController.csv5
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.Desktop.csv37
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.DispatchRecorder.csv10
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.DispatchRecorderSupplier.csv3
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.FontMenuController.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.FontSizeMenuController.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.FooterMenuController.csv5
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.Frame.csv30
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.HeaderMenuController.csv5
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.JobExecutor.csv1
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.JobHandler.csv3
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.LayoutManager.csv30
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.MacrosMenuController.csv5
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.MailToDispatcher.csv3
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.MenuBarFactory.csv1
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ModuleManager.csv6
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ModuleUIConfigurationManager.csv21
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ModuleUIConfigurationManagerSupplier.csv1
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ObjectMenuController.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.PopupMenuControllerFactory.csv6
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.ServiceHandler.csv3
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.SoundHandler.csv4
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.StatusBarControllerFactory.csv6
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.ToolBarsMenuController.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.UICategoryDescription.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.UICommandDescription.csv5
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.UIConfigurationManager.csv23
-rwxr-xr-xqadevOOo/objdsc/fwk/com.sun.star.comp.framework.UIElementFactoryManager.csv5
-rw-r--r--qadevOOo/objdsc/fwk/com.sun.star.comp.framework.URLTransformer.csv4
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.ContentHandlerFactory.csv10
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.FilterFactory.csv16
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.FrameLoaderFactory.csv10
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.PathSettings.csv39
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.SubstituteVariables.csv3
-rw-r--r--qadevOOo/objdsc/fwl/com.sun.star.comp.framework.TypeDetection.csv15
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.BreakIterator.csv23
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.CalendarImpl.csv24
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.ChapterCollator.csv10
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.CharacterClassification.csv13
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.Collator.csv10
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.IndexEntrySupplier.csv12
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.LocaleData.csv15
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.NumberFormatCodeMapper.csv7
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.i18n.Transliteration.csv19
-rw-r--r--qadevOOo/objdsc/i18n/com.sun.star.util.TextSearch.csv3
-rw-r--r--qadevOOo/objdsc/implreg.uno/com.sun.star.comp.stoc.ImplementationRegistration.csv4
-rw-r--r--qadevOOo/objdsc/impreg/com.sun.star.comp.stoc.ImplementationRegistration.csv4
-rw-r--r--qadevOOo/objdsc/insp/com.sun.star.comp.stoc.Introspection.csv1
-rw-r--r--qadevOOo/objdsc/introspection.uno/com.sun.star.comp.stoc.Introspection.csv1
-rw-r--r--qadevOOo/objdsc/inv/com.sun.star.comp.stoc.Invocation.csv2
-rw-r--r--qadevOOo/objdsc/invadp/com.sun.star.comp.stoc.InvocationAdapterFactory.csv2
-rw-r--r--qadevOOo/objdsc/invocadapt.uno/com.sun.star.comp.stoc.InvocationAdapterFactory.csv2
-rw-r--r--qadevOOo/objdsc/invocation.uno/com.sun.star.comp.stoc.Invocation.csv2
-rw-r--r--qadevOOo/objdsc/javaloader.uno/com.sun.star.comp.stoc.JavaComponentLoader.csv5
-rw-r--r--qadevOOo/objdsc/javaloader/com.sun.star.comp.stoc.JavaComponentLoader.csv5
-rw-r--r--qadevOOo/objdsc/javavm.uno/com.sun.star.comp.stoc.JavaVirtualMachine.csv6
-rw-r--r--qadevOOo/objdsc/jdbc/com.sun.star.comp.sdbc.JDBCDriver.csv5
-rw-r--r--qadevOOo/objdsc/jen/com.sun.star.comp.stoc.JavaVirtualMachine.csv6
-rw-r--r--qadevOOo/objdsc/lng/com.sun.star.lingu2.DicList.csv18
-rw-r--r--qadevOOo/objdsc/lng/com.sun.star.lingu2.LinguProps.csv34
-rw-r--r--qadevOOo/objdsc/lng/com.sun.star.lingu2.LngSvcMgr.csv15
-rw-r--r--qadevOOo/objdsc/lnn/com.sun.star.lingu2.Hyphenator.csv15
-rw-r--r--qadevOOo/objdsc/lnn/com.sun.star.lingu2.SpellChecker.csv14
-rw-r--r--qadevOOo/objdsc/lnn/com.sun.star.lingu2.Thesaurus.csv11
-rw-r--r--qadevOOo/objdsc/mcnttype/com.sun.star.comp.datatransfer.MimeContentTypeFactory.csv6
-rw-r--r--qadevOOo/objdsc/mozab/com.sun.star.comp.sdbc.MozabDriver.csv5
-rw-r--r--qadevOOo/objdsc/namingservice.uno/com.sun.star.comp.stoc.NamingService.csv3
-rw-r--r--qadevOOo/objdsc/namingservice/com.sun.star.comp.stoc.NamingService.csv3
-rw-r--r--qadevOOo/objdsc/nestedreg.uno/com.sun.star.comp.stoc.NestedRegistry.csv9
-rw-r--r--qadevOOo/objdsc/odbc/com.sun.star.comp.sdbc.ODBCDriver.csv5
-rw-r--r--qadevOOo/objdsc/odbc/org.openoffice.comp.drivers.MySQL.Driver.csv9
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.ButtonNavigationHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.CellBindingPropertyHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.DefaultFormComponentInspectorModel.csv7
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.EFormsPropertyHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.EditPropertyHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.EventHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.FormComponentPropertyHandler.csv19
-rwxr-xr-xqadevOOo/objdsc/pcr/com.sun.star.comp.extensions.GenericPropertyHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/com.sun.star.comp.extensions.XSDValidationPropertyHandler.csv19
-rw-r--r--qadevOOo/objdsc/pcr/org.openoffice.comp.extensions.FormController.csv27
-rwxr-xr-xqadevOOo/objdsc/pcr/org.openoffice.comp.extensions.ObjectInspector.csv13
-rw-r--r--qadevOOo/objdsc/pcr/org.openoffice.comp.extensions.ObjectInspectorModel.csv7
-rw-r--r--qadevOOo/objdsc/proxyfac.uno/com.sun.star.comp.stoc.ProxyFactory.csv1
-rw-r--r--qadevOOo/objdsc/proxyfac/com.sun.star.comp.stoc.ProxyFactory.csv1
-rw-r--r--qadevOOo/objdsc/proxyset/com.sun.star.comp.system.SystemProxySettings.csv17
-rwxr-xr-xqadevOOo/objdsc/qadevOOo/bogus.SelfTest.csv7
-rw-r--r--qadevOOo/objdsc/rdbtdp/com.sun.star.comp.stoc.RegistryTypeDescriptionProvider.csv6
-rw-r--r--qadevOOo/objdsc/regtypeprov.uno/com.sun.star.comp.stoc.RegistryTypeDescriptionProvider.csv6
-rw-r--r--qadevOOo/objdsc/remotebridge.uno/com.sun.star.comp.remotebridges.Bridge.various.csv7
-rw-r--r--qadevOOo/objdsc/remotebridge/com.sun.star.comp.remotebridges.Bridge.various.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLContentExporter.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLContentImporter.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLMetaExporter.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLMetaImporter.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLSettingsExporter.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLSettingsImporter.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLStylesExporter.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.Calc.XMLStylesImporter.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAnnotationObj.csv17
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAnnotationShapeObj.csv244
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAnnotationsObj.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAreaLinkObj.csv19
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAreaLinksObj.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAutoFormatFieldObj.csv50
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAutoFormatObj.csv20
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScAutoFormatsObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellCursorObj.csv239
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellFieldObj.csv16
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellFieldsObj.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellFormatsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellFormatsObj.csv5
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellObj.csv223
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangeObj.csv226
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellRangesObj.csv206
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellSearchObj.csv21
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellTextCursor.csv180
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScCellsObj.csv3
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScChartObj.csv9
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScChartsObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScConsolidationDescriptor.csv12
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDDELinkObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDDELinksObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotFieldGroupItemObj.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotFieldGroupObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotFieldGroupsObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotFieldObj.csv28
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotFieldsObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotItemObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotItemsObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotTableObj.csv20
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDataPilotTablesObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDatabaseRangeObj.csv28
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDatabaseRangesObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDocumentConfiguration.csv49
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDrawPageObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScDrawPagesObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScFilterDescriptorBase.csv18
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScFunctionListObj.csv9
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScHeaderFieldObj.csv16
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScHeaderFieldsObj.csv6
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScHeaderFooterContentObj.csv3
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScHeaderFooterTextCursor.csv180
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScHeaderFooterTextObj.csv21
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_CellAnnotationsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_CellAreaLinksEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_DDELinksEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_DataPilotFieldsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_DataPilotItemsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_DataPilotTablesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_DatabaseRangesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_FunctionDescriptionEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_LabelRangesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_NamedRangesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_ScenariosEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_SheetCellRangesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_SheetLinksEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_SpreadsheetViewPanesEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_SpreadsheetsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_SubTotalFieldsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TableAutoFormatEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TableChartsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TableColumnsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TableConditionalEntryEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TableRowsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScIndexEnumeration_TextFieldEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScLabelRangeObj.csv4
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScLabelRangesObj.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScModelObj.csv94
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScNamedRangeObj.csv9
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScNamedRangesObj.csv12
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScPageObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScRecentFunctionsObj.csv3
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScScenariosObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScShapeObj.csv29
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSheetLinkObj.csv15
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSheetLinksObj.csv8
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSpreadsheetSettings.csv25
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSpreadsheetSettingsObj.csv24
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamiliesObj.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleFamilyObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScStyleObj.csv27
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSubTotalDescriptorBase.csv22
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScSubTotalFieldObj.csv4
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTabViewObj.csv86
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableColumnObj.csv16
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableColumnsObj.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableConditionalEntry.csv10
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableConditionalFormat.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowObj.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableRowsObj.csv7
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableSheetObj.csv293
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableSheetsObj.csv14
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScTableValidationObj.csv25
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScUniqueCellFormatsEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScUniqueCellFormatsObj.csv5
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.office.ScViewPaneObj.csv11
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.AccessibleEditableTextPara_HeaderFooter.csv52
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.AccessibleEditableTextPara_PreviewCell.csv52
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.AccessibleEditableTextPara_PreviewNote.csv52
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleCell.csv40
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleCsvCell.csv36
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleCsvGrid.csv45
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleCsvRuler.csv36
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleDocument.csv28
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleDocumentPagePreview.csv21
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessiblePageHeader.csv21
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessiblePageHeaderArea.csv21
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessiblePreviewCell.csv32
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessiblePreviewHeaderCell.csv32
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessiblePreviewTable.csv47
-rw-r--r--qadevOOo/objdsc/sc/com.sun.star.comp.unknown.ScAccessibleSpreadsheet.csv47
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccAxis.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccDataPoint.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccDataSeries.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccDiagram.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccFloor.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccGrid.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccLegend.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccLegendEntry.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccStatisticsObject.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccTitle.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccWall.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.chart.AccessibleDocumentView.csv22
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.AccArea.csv25
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXChartAxis.csv92
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXChartData.csv4
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXChartDataArray.csv10
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXChartDocument.csv37
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXChartView.csv10
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXDataPoint.csv97
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXDataRow.csv109
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChXDiagram.csv80
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChartArea.csv43
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChartGrid.csv21
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChartLegend.csv113
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChartLine.csv21
-rw-r--r--qadevOOo/objdsc/sch/com.sun.star.comp.office.ChartTitle.csv79
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdDocLinkTargets.csv5
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdDrawPage.csv37
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdDrawPagesAccess.csv8
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdGenericDrawPage.csv34
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdLayer.csv11
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdLayerManager.csv11
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdMasterPage.csv34
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdMasterPagesAccess.csv6
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdPageLinkTargets.csv5
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdXCustomPresentation.csv9
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdXCustomPresentationAccess.csv10
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdXImpressDocument.csv60
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdXPresentation.csv22
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.office.SdXShape.csv29
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.AccessibleDrawDocumentView.csv22
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.AccessibleOutlineView.csv13
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.AccessibleSlideView.csv22
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.DrawController_DrawView.csv58
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.DrawController_HandoutView.csv58
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.DrawController_NotesView.csv58
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.DrawController_OutlineView.csv58
-rw-r--r--qadevOOo/objdsc/sd/com.sun.star.comp.unknown.DrawController_PresentationView.csv58
-rw-r--r--qadevOOo/objdsc/servicemgr.uno/com.sun.star.comp.stoc.OServiceManager.csv28
-rw-r--r--qadevOOo/objdsc/sfx/com.sun.star.comp.office.FrameLoader.csv5
-rw-r--r--qadevOOo/objdsc/sfx/com.sun.star.comp.sfx2.AppDispatchProvider.csv3
-rw-r--r--qadevOOo/objdsc/sfx/com.sun.star.comp.sfx2.DocumentTemplates.csv9
-rw-r--r--qadevOOo/objdsc/sfx/com.sun.star.comp.sfx2.SfxMacroLoader.csv3
-rw-r--r--qadevOOo/objdsc/sfx/com.sun.star.comp.sfx2.StandaloneDocumentInfo.csv46
-rw-r--r--qadevOOo/objdsc/shlibloader.uno/com.sun.star.comp.stoc.DLLComponentLoader.csv5
-rw-r--r--qadevOOo/objdsc/simplereg.uno/com.sun.star.comp.stoc.SimpleRegistry.csv8
-rw-r--r--qadevOOo/objdsc/simreg/com.sun.star.comp.stoc.SimpleRegistry.csv8
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLMetaExporter.csv6
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLMetaImporter.csv14
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLSettingsExporter.csv6
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.Math.XMLSettingsImporter.csv14
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.unknown.SmEditAccessible.csv22
-rw-r--r--qadevOOo/objdsc/sm/com.sun.star.comp.unknown.SmGraphicAccessible.csv39
-rw-r--r--qadevOOo/objdsc/sm/math.SmModel.csv55
-rw-r--r--qadevOOo/objdsc/smgr/com.sun.star.comp.stoc.OServiceManager.csv28
-rw-r--r--qadevOOo/objdsc/smplmail/com.sun.star.comp.system.SimpleSystemMail.csv6
-rw-r--r--qadevOOo/objdsc/srtrs/com.sun.star.comp.ucb.SortedDynamicResultSetFactory.csv1
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.DataInputStream.csv20
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.DataOutputStream.csv14
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.MarkableInputStream.csv16
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.MarkableOutputStream.csv14
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.ObjectInputStream.csv26
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.ObjectOutputStream.csv19
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.io.stm.Pipe.csv8
-rw-r--r--qadevOOo/objdsc/stm/com.sun.star.comp.stoc.Pump.csv8
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.DataInputStream.csv20
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.DataOutputStream.csv14
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.MarkableInputStream.csv16
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.MarkableOutputStream.csv14
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.ObjectInputStream.csv26
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.ObjectOutputStream.csv19
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.io.stm.Pipe.csv8
-rw-r--r--qadevOOo/objdsc/streams.uno/com.sun.star.comp.stoc.Pump.csv8
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleBrowseBox.csv12
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderBar.csv12
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderCell.csv12
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleBrowseBoxTable.csv12
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleBrowseBoxTableCell.csv12
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleIconChoiceCtrl.csv28
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleIconChoiceCtrlEntry.csv38
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleTabBar.csv24
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleTabBarPage.csv24
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleTabBarPageList.csv31
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleTreeListBox.csv28
-rw-r--r--qadevOOo/objdsc/svtools/com.sun.star.comp.svtools.AccessibleTreeListBoxEntry.csv49
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.Draw.GraphicExporter.csv5
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxDrawPage.csv37
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxGraphicObject.csv212
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShape.csv236
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeCircle.csv238
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeCollection.csv6
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeConnector.csv227
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeControl.csv31
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeDimensioning.csv233
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapeGroup.csv37
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapePolyPolygon.csv238
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxShapePolyPolygonBezier.csv238
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoNumberingRules.csv16
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoText.csv21
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextContent.csv205
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextContentEnum.csv2
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextCursor.csv180
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextField.csv16
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextRange.csv147
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.office.SvxUnoTextRangeEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.ui.SvxGraphCtrlAccessibleContext.csv29
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleControlShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleEditableTextPara.csv53
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleGraphicShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleImageBullet.csv13
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleOLEShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessiblePageShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessiblePresentationGraphicShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessiblePresentationOLEShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessiblePresentationShape.csv25
-rw-r--r--qadevOOo/objdsc/svx/com.sun.star.comp.unknown.AccessibleShape.csv25
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.DocumentSettings.csv65
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleDocumentPageView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleDocumentView.csv29
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleEndnoteView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleFooterView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleFootnoteView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleHeaderView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessiblePageView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleParagraphView.csv53
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleTableCellView.csv33
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleTableView.csv48
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleTextEmbeddedObject.csv25
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleTextFrameView.csv22
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.SwAccessibleTextGraphicObject.csv25
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLContentExporter.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLContentImporter.csv14
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLMetaExporter.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLMetaImporter.csv14
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLSettingsExporter.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLSettingsImporter.csv14
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLStylesExporter.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.Writer.XMLStylesImporter.csv14
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextContainer.csv9
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextEntry.csv12
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXAutoTextGroup.csv13
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXBodyText.csv21
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXBookmark.csv10
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXBookmarks.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXCell.csv26
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXCellRange.csv148
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXChapterNumbering.csv16
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXDocumentIndex.csv42
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXDocumentIndexMark.csv12
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXDocumentIndexes.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXDrawPage.csv34
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXEndnoteProperties.csv11
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFieldEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFieldMaster.csv10
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFootnote.csv19
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFootnoteProperties.csv11
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFootnoteText.csv21
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFootnotes.csv4
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXFrames.csv9
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXHeadFootText.csv21
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXLineNumberingProperties.csv10
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXMailMerge.csv36
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXModule.csv2
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXNumberingRules.csv16
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXParagraph.csv205
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXParagraphEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXPrintSettings.csv13
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXPropertySet.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXPropertySetInfo.csv3
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXReferenceMark.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXReferenceMarks.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXShape.csv26
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXStyleFamilies.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXStyleFamily.csv10
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTableCellText.csv21
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTableColumns.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTableRows.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextColumns.csv12
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextCursor.csv180
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextDefaults.csv137
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextDocument.csv87
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextEmbeddedObject.csv73
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextEmbeddedObjects.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextField.csv16
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextFieldMasters.csv5
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextFieldTypes.csv6
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextFrame.csv78
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextFrameText.csv21
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextGraphicObject.csv90
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextGraphicObjects.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextPortion.csv155
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextPortionEnumeration.csv2
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextRange.csv147
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextRanges.csv4
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextSearch.csv19
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextSection.csv52
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextSections.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextTable.csv59
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextTableCursor.csv142
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextTableRow.csv16
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextTables.csv7
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextView.csv11
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXTextViewCursor.csv190
-rw-r--r--qadevOOo/objdsc/sw/com.sun.star.comp.office.SwXViewSettings.csv37
-rwxr-xr-xqadevOOo/objdsc/sw/com.sun.star.style.CharacterStyle.csv105
-rwxr-xr-xqadevOOo/objdsc/sw/com.sun.star.style.ConditionalParagraphStyle.csv95
-rwxr-xr-xqadevOOo/objdsc/sw/com.sun.star.style.PageStyle.csv125
-rwxr-xr-xqadevOOo/objdsc/sw/com.sun.star.style.ParagraphStyle.csv95
-rw-r--r--qadevOOo/objdsc/sysdtrans/com.sun.star.comp.datatransfer.SystemClipboard.csv16
-rwxr-xr-xqadevOOo/objdsc/sysmgr1/com.sun.star.comp.configuration.backend.SystemIntegration.csv5
-rw-r--r--qadevOOo/objdsc/syssh/com.sun.star.comp.system.SystemShellExecute.csv6
-rw-r--r--qadevOOo/objdsc/tcv/com.sun.star.comp.stoc.TypeConverter.csv2
-rw-r--r--qadevOOo/objdsc/tdmgr/com.sun.star.comp.stoc.TypeDescriptionManager.csv12
-rw-r--r--qadevOOo/objdsc/text/com.sun.star.text.DefaultNumberingProvider.csv2
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.TabController.csv9
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.TabControllerModel.csv11
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.Toolkit.csv12
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlButton.csv43
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlButtonModel.csv55
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlCheckBox.csv45
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlCheckBoxModel.csv50
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlComboBox.csv65
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlComboBoxModel.csv51
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlContainer.csv47
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlContainerModel.csv37
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlCurrencyField.csv76
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlCurrencyFieldModel.csv56
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlDateField.csv76
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlDateFieldModel.csv55
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlDialog.csv56
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlDialogModel.csv55
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlEdit.csv53
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlEditModel.csv53
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFileControl.csv53
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFileControlModel.csv45
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFixedLineModel.csv40
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFixedText.csv43
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFixedTextModel.csv45
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFormattedField.csv60
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlFormattedFieldModel.csv58
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlGroupBox.csv36
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlGroupBoxModel.csv39
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlImageControl.csv39
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlImageControlModel.csv40
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlListBox.csv63
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlListBoxModel.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlNumericField.csv76
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlNumericFieldModel.csv54
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlPatternField.csv66
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlPatternFieldModel.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlProgressBarModel.csv40
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlRadioButton.csv44
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlRadioButtonModel.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlScrollBarModel.csv47
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlTimeField.csv74
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.awt.UnoControlTimeFieldModel.csv53
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleButton.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleCheckBox.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleComboBox.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleDropDownComboBox.csv28
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleDropDownListBox.csv28
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleEdit.csv48
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleFixedText.csv41
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleList.csv32
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleListBox.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleListItem.csv38
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleMenu.csv56
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleMenuBar.csv31
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleMenuItem.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleMenuSeparator.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessiblePopupMenu.csv31
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleRadioButton.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleScrollBar.csv32
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleStatusBar.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleStatusBarItem.csv41
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleTabControl.csv31
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleTabPage.csv41
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleToolBox.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleToolBoxItem.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.AccessibleWindow.csv24
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoSimpleAnimationControl.csv36
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoSimpleAnimationControlModel.csv29
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoSpinButtonControl.csv49
-rw-r--r--qadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoSpinButtonControlModel.csv44
-rwxr-xr-xqadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoThrobberControl.csv36
-rwxr-xr-xqadevOOo/objdsc/toolkit/com.sun.star.comp.toolkit.UnoThrobberControlModel.csv29
-rwxr-xr-xqadevOOo/objdsc/toolkit/stardiv.Toolkit.UnoTreeControl.csv28
-rwxr-xr-xqadevOOo/objdsc/toolkit/stardiv.Toolkit.UnoTreeModel.csv37
-rw-r--r--qadevOOo/objdsc/toolkit/stardiv.toolkit.UnoScrollBarControl.csv51
-rwxr-xr-xqadevOOo/objdsc/toolkit/toolkit.MutableTreeDataModel.csv8
-rwxr-xr-xqadevOOo/objdsc/toolkit/toolkit.MutableTreeNode.csv18
-rw-r--r--qadevOOo/objdsc/typeconverter.uno/com.sun.star.comp.stoc.TypeConverter.csv2
-rw-r--r--qadevOOo/objdsc/typemgr.uno/com.sun.star.comp.stoc.TypeDescriptionManager.csv12
-rw-r--r--qadevOOo/objdsc/ucb/com.sun.star.comp.ucb.UcbContentProviderProxyFactory.csv1
-rw-r--r--qadevOOo/objdsc/ucb/com.sun.star.comp.ucb.UcbPropertiesManager.csv3
-rw-r--r--qadevOOo/objdsc/ucb/com.sun.star.comp.ucb.UcbStore.csv1
-rw-r--r--qadevOOo/objdsc/ucb/com.sun.star.comp.ucb.UniversalContentBroker.csv15
-rw-r--r--qadevOOo/objdsc/ucpchelp/com.sun.star.comp.unknown.CHelpContentProvider.csv2
-rw-r--r--qadevOOo/objdsc/ucpdav/com.sun.star.comp.ucb.WebDAVContentProvider.csv2
-rw-r--r--qadevOOo/objdsc/ucpfile/com.sun.star.comp.ucb.FileProvider.csv13
-rw-r--r--qadevOOo/objdsc/ucpftp/com.sun.star.comp.ucb.FTPContentProvider.csv2
-rw-r--r--qadevOOo/objdsc/ucphier/com.sun.star.comp.ucb.HierarchyContentProvider.csv2
-rw-r--r--qadevOOo/objdsc/ucphier/com.sun.star.comp.ucb.HierarchyDataSource.csv6
-rw-r--r--qadevOOo/objdsc/ucppkg/com.sun.star.comp.ucb.PackageContentProvider.csv2
-rw-r--r--qadevOOo/objdsc/ucprmt/com.sun.star.comp.ucb.ucp.remote.ContentProvider.csv5
-rw-r--r--qadevOOo/objdsc/ucprmt/com.sun.star.comp.ucb.ucp.remote.ProviderAcceptor.csv3
-rw-r--r--qadevOOo/objdsc/ucprmt/com.sun.star.comp.ucb.ucp.remote.ProxyProvider.csv5
-rw-r--r--qadevOOo/objdsc/uui/com.sun.star.comp.uui.UUIInteractionHandler.csv2
-rw-r--r--qadevOOo/objdsc/uuresolver.uno/com.sun.star.comp.bridge.UnoUrlResolver.csv1
-rw-r--r--qadevOOo/objdsc/uuresolver/com.sun.star.comp.bridge.UnoUrlResolver.csv1
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLContentExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLContentImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLStylesExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Chart.XMLStylesImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLContentExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLContentImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLMetaExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLMetaImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLSettingsExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLSettingsImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLStylesExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Draw.XMLStylesImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLContentExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLContentImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLMetaExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLMetaImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLSettingsExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLSettingsImporter.csv14
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLStylesExporter.csv6
-rw-r--r--qadevOOo/objdsc/xmloff/com.sun.star.comp.Impress.XMLStylesImporter.csv14
-rw-r--r--qadevOOo/prj/build.lst4
-rw-r--r--qadevOOo/prj/d.lst1
-rwxr-xr-xqadevOOo/qa/unoapi/knownissues.xcl1
-rwxr-xr-xqadevOOo/qa/unoapi/makefile.mk40
-rwxr-xr-xqadevOOo/qa/unoapi/qadevOOo.sce1
-rw-r--r--qadevOOo/runner/base/TestBase.java39
-rw-r--r--qadevOOo/runner/base/basic_fat.java457
-rw-r--r--qadevOOo/runner/base/java_cmp.java83
-rw-r--r--qadevOOo/runner/base/java_complex.java170
-rw-r--r--qadevOOo/runner/base/java_fat.java599
-rw-r--r--qadevOOo/runner/base/java_fat_service.java267
-rw-r--r--qadevOOo/runner/base/makefile.mk52
-rw-r--r--qadevOOo/runner/basicrunner/BasicException.java42
-rw-r--r--qadevOOo/runner/basicrunner/BasicHandler.java612
-rw-r--r--qadevOOo/runner/basicrunner/BasicHandlerProvider.java153
-rw-r--r--qadevOOo/runner/basicrunner/BasicIfcTest.java169
-rw-r--r--qadevOOo/runner/basicrunner/BasicTestCase.java183
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/AttributeList.java138
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/Connector.java272
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/DispatchProviderInterceptor.java194
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/DocumentHandler.java344
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/Filter.java269
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/ThreadRunner.java254
-rw-r--r--qadevOOo/runner/basicrunner/basichelper/makefile.mk47
-rw-r--r--qadevOOo/runner/basicrunner/makefile.mk46
-rw-r--r--qadevOOo/runner/complexlib/Assurance.java407
-rw-r--r--qadevOOo/runner/complexlib/ComplexTestCase.java315
-rw-r--r--qadevOOo/runner/complexlib/MethodThread.java112
-rw-r--r--qadevOOo/runner/complexlib/ShowTargets.java138
-rw-r--r--qadevOOo/runner/complexlib/makefile.mk49
-rw-r--r--qadevOOo/runner/convwatch/Basename.java61
-rw-r--r--qadevOOo/runner/convwatch/BorderRemover.java319
-rw-r--r--qadevOOo/runner/convwatch/BuildID.java163
-rw-r--r--qadevOOo/runner/convwatch/ConvWatch.java432
-rw-r--r--qadevOOo/runner/convwatch/ConvWatchCancelException.java38
-rw-r--r--qadevOOo/runner/convwatch/ConvWatchException.java37
-rw-r--r--qadevOOo/runner/convwatch/ConvWatchStarter.java445
-rw-r--r--qadevOOo/runner/convwatch/CrashLoopTest.java57
-rw-r--r--qadevOOo/runner/convwatch/DB.java541
-rw-r--r--qadevOOo/runner/convwatch/DBHelper.java316
-rwxr-xr-xqadevOOo/runner/convwatch/DateHelper.java58
-rw-r--r--qadevOOo/runner/convwatch/DirectoryHelper.java156
-rw-r--r--qadevOOo/runner/convwatch/DocumentConverter.java277
-rw-r--r--qadevOOo/runner/convwatch/EnhancedComplexTestCase.java130
-rw-r--r--qadevOOo/runner/convwatch/FileHelper.java405
-rw-r--r--qadevOOo/runner/convwatch/FilenameHelper.java398
-rw-r--r--qadevOOo/runner/convwatch/GfxCompare.java196
-rw-r--r--qadevOOo/runner/convwatch/GlobalLogWriter.java57
-rw-r--r--qadevOOo/runner/convwatch/GraphicalDifferenceCheck.java410
-rw-r--r--qadevOOo/runner/convwatch/GraphicalTestArguments.java744
-rw-r--r--qadevOOo/runner/convwatch/HTMLOutputter.java418
-rw-r--r--qadevOOo/runner/convwatch/INIOutputter.java207
-rw-r--r--qadevOOo/runner/convwatch/ImageHelper.java116
-rw-r--r--qadevOOo/runner/convwatch/IniFile.java452
-rw-r--r--qadevOOo/runner/convwatch/LISTOutputter.java104
-rw-r--r--qadevOOo/runner/convwatch/MSOfficePrint.java870
-rw-r--r--qadevOOo/runner/convwatch/NameHelper.java89
-rw-r--r--qadevOOo/runner/convwatch/OSHelper.java84
-rw-r--r--qadevOOo/runner/convwatch/OfficePrint.java1362
-rw-r--r--qadevOOo/runner/convwatch/PRNCompare.java805
-rw-r--r--qadevOOo/runner/convwatch/PerformanceContainer.java250
-rw-r--r--qadevOOo/runner/convwatch/PixelCounter.java206
-rw-r--r--qadevOOo/runner/convwatch/PropertyName.java67
-rw-r--r--qadevOOo/runner/convwatch/ReferenceBuilder.java304
-rwxr-xr-xqadevOOo/runner/convwatch/ReportDesignerTest.java694
-rw-r--r--qadevOOo/runner/convwatch/SimpleFileSemaphore.java189
-rw-r--r--qadevOOo/runner/convwatch/StatusHelper.java108
-rw-r--r--qadevOOo/runner/convwatch/StringHelper.java103
-rwxr-xr-xqadevOOo/runner/convwatch/TimeHelper.java44
-rw-r--r--qadevOOo/runner/convwatch/TriState.java76
-rw-r--r--qadevOOo/runner/convwatch/ValueNotFoundException.java36
-rw-r--r--qadevOOo/runner/convwatch/makefile.mk86
-rw-r--r--qadevOOo/runner/graphical/BuildID.java226
-rw-r--r--qadevOOo/runner/graphical/DateHelper.java58
-rw-r--r--qadevOOo/runner/graphical/DirectoryHelper.java156
-rw-r--r--qadevOOo/runner/graphical/EnhancedComplexTestCase.java491
-rw-r--r--qadevOOo/runner/graphical/FileHelper.java757
-rw-r--r--qadevOOo/runner/graphical/GlobalLogWriter.java61
-rw-r--r--qadevOOo/runner/graphical/GraphicalComparator.java31
-rw-r--r--qadevOOo/runner/graphical/HTMLResult.java212
-rw-r--r--qadevOOo/runner/graphical/IDocument.java46
-rw-r--r--qadevOOo/runner/graphical/IOffice.java63
-rw-r--r--qadevOOo/runner/graphical/ImageHelper.java120
-rw-r--r--qadevOOo/runner/graphical/IniFile.java688
-rw-r--r--qadevOOo/runner/graphical/JPEGComparator.java674
-rw-r--r--qadevOOo/runner/graphical/JPEGCreator.java430
-rw-r--r--qadevOOo/runner/graphical/JPEGEvaluator.java163
-rw-r--r--qadevOOo/runner/graphical/MSOfficePostscriptCreator.java987
-rw-r--r--qadevOOo/runner/graphical/Office.java169
-rw-r--r--qadevOOo/runner/graphical/OfficeException.java45
-rw-r--r--qadevOOo/runner/graphical/OpenOfficeDatabaseReportExtractor.java644
-rw-r--r--qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java1413
-rw-r--r--qadevOOo/runner/graphical/ParameterHelper.java421
-rw-r--r--qadevOOo/runner/graphical/PerformanceContainer.java271
-rw-r--r--qadevOOo/runner/graphical/PixelCounter.java247
-rw-r--r--qadevOOo/runner/graphical/PostscriptCreator.java137
-rw-r--r--qadevOOo/runner/graphical/PropertyName.java73
-rw-r--r--qadevOOo/runner/graphical/TimeHelper.java50
-rw-r--r--qadevOOo/runner/graphical/WrongEnvironmentException.java42
-rw-r--r--qadevOOo/runner/graphical/WrongSuffixException.java42
-rw-r--r--qadevOOo/runner/graphical/makefile.mk75
-rw-r--r--qadevOOo/runner/helper/APIDescGetter.java985
-rw-r--r--qadevOOo/runner/helper/AppProvider.java55
-rw-r--r--qadevOOo/runner/helper/BuildEnvTools.java195
-rw-r--r--qadevOOo/runner/helper/CfgParser.java192
-rw-r--r--qadevOOo/runner/helper/ClParser.java191
-rw-r--r--qadevOOo/runner/helper/ComplexDescGetter.java194
-rw-r--r--qadevOOo/runner/helper/ConfigHelper.java348
-rw-r--r--qadevOOo/runner/helper/ConfigurationRead.java141
-rw-r--r--qadevOOo/runner/helper/ContextMenuInterceptor.java140
-rw-r--r--qadevOOo/runner/helper/CwsDataExchangeImpl.java157
-rw-r--r--qadevOOo/runner/helper/FileTools.java160
-rw-r--r--qadevOOo/runner/helper/InetTools.java88
-rw-r--r--qadevOOo/runner/helper/LoggingThread.java96
-rw-r--r--qadevOOo/runner/helper/OSHelper.java88
-rw-r--r--qadevOOo/runner/helper/ObjectInspectorModelImpl.java145
-rw-r--r--qadevOOo/runner/helper/OfficeProvider.java843
-rw-r--r--qadevOOo/runner/helper/OfficeWatcher.java132
-rw-r--r--qadevOOo/runner/helper/ParameterNotFoundException.java39
-rw-r--r--qadevOOo/runner/helper/ProcessHandler.java824
-rw-r--r--qadevOOo/runner/helper/PropertyHandlerFactroy.java49
-rw-r--r--qadevOOo/runner/helper/PropertyHandlerImpl.java258
-rwxr-xr-xqadevOOo/runner/helper/PropertyHelper.java81
-rw-r--r--qadevOOo/runner/helper/SimpleMailSender.java171
-rw-r--r--qadevOOo/runner/helper/StreamSimulator.java533
-rw-r--r--qadevOOo/runner/helper/StringHelper.java125
-rw-r--r--qadevOOo/runner/helper/URLHelper.java292
-rw-r--r--qadevOOo/runner/helper/UnoProvider.java165
-rw-r--r--qadevOOo/runner/helper/WindowListener.java78
-rw-r--r--qadevOOo/runner/helper/makefile.mk65
-rw-r--r--qadevOOo/runner/lib/DynamicClassLoader.java94
-rw-r--r--qadevOOo/runner/lib/ExceptionStatus.java48
-rw-r--r--qadevOOo/runner/lib/MultiMethodTest.java511
-rw-r--r--qadevOOo/runner/lib/MultiPropertyTest.java588
-rw-r--r--qadevOOo/runner/lib/Parameters.java233
-rw-r--r--qadevOOo/runner/lib/SimpleStatus.java149
-rw-r--r--qadevOOo/runner/lib/Status.java173
-rw-r--r--qadevOOo/runner/lib/StatusException.java81
-rw-r--r--qadevOOo/runner/lib/TestCase.java200
-rw-r--r--qadevOOo/runner/lib/TestEnvironment.java153
-rw-r--r--qadevOOo/runner/lib/TestParameters.java343
-rw-r--r--qadevOOo/runner/lib/TestResult.java106
-rw-r--r--qadevOOo/runner/lib/makefile.mk58
-rw-r--r--qadevOOo/runner/makefile.mk60
-rw-r--r--qadevOOo/runner/manifest3
-rw-r--r--qadevOOo/runner/org/openoffice/Runner.java257
-rw-r--r--qadevOOo/runner/org/openoffice/RunnerService.java397
-rw-r--r--qadevOOo/runner/org/openoffice/makefile.mk46
-rw-r--r--qadevOOo/runner/share/ComplexTest.java39
-rw-r--r--qadevOOo/runner/share/CwsDataExchange.java51
-rw-r--r--qadevOOo/runner/share/DescEntry.java97
-rw-r--r--qadevOOo/runner/share/DescGetter.java197
-rw-r--r--qadevOOo/runner/share/LogWriter.java68
-rw-r--r--qadevOOo/runner/share/Watcher.java42
-rw-r--r--qadevOOo/runner/share/makefile.mk52
-rw-r--r--qadevOOo/runner/stats/ComplexDataBaseOutProducer.java181
-rw-r--r--qadevOOo/runner/stats/DataBaseOutProducer.java207
-rw-r--r--qadevOOo/runner/stats/FatDataBaseOutProducer.java147
-rw-r--r--qadevOOo/runner/stats/FileLogWriter.java141
-rw-r--r--qadevOOo/runner/stats/InternalLogWriter.java124
-rw-r--r--qadevOOo/runner/stats/OutProducerFactory.java137
-rw-r--r--qadevOOo/runner/stats/SQLExecution.java337
-rw-r--r--qadevOOo/runner/stats/SimpleFileOutProducer.java114
-rw-r--r--qadevOOo/runner/stats/SimpleLogWriter.java111
-rw-r--r--qadevOOo/runner/stats/SimpleOutProducer.java77
-rw-r--r--qadevOOo/runner/stats/Summarizer.java114
-rw-r--r--qadevOOo/runner/stats/makefile.mk59
-rw-r--r--qadevOOo/runner/util/AccessibilityTools.java472
-rw-r--r--qadevOOo/runner/util/BasicMacroTools.java261
-rw-r--r--qadevOOo/runner/util/BookmarkDsc.java84
-rw-r--r--qadevOOo/runner/util/CalcTools.java160
-rw-r--r--qadevOOo/runner/util/ControlDsc.java80
-rw-r--r--qadevOOo/runner/util/DBTools.java824
-rw-r--r--qadevOOo/runner/util/DefaultDsc.java81
-rw-r--r--qadevOOo/runner/util/DesktopTools.java515
-rw-r--r--qadevOOo/runner/util/DrawTools.java162
-rw-r--r--qadevOOo/runner/util/DynamicClassLoader.java123
-rw-r--r--qadevOOo/runner/util/FootnoteDsc.java84
-rw-r--r--qadevOOo/runner/util/FormTools.java349
-rw-r--r--qadevOOo/runner/util/FrameDsc.java126
-rw-r--r--qadevOOo/runner/util/InstCreator.java122
-rw-r--r--qadevOOo/runner/util/InstDescr.java53
-rw-r--r--qadevOOo/runner/util/ParagraphDsc.java85
-rw-r--r--qadevOOo/runner/util/PropertyName.java169
-rw-r--r--qadevOOo/runner/util/ReferenceMarkDsc.java84
-rw-r--r--qadevOOo/runner/util/RegistryTools.java370
-rw-r--r--qadevOOo/runner/util/SOfficeFactory.java629
-rw-r--r--qadevOOo/runner/util/ShapeDsc.java101
-rw-r--r--qadevOOo/runner/util/StyleFamilyDsc.java80
-rw-r--r--qadevOOo/runner/util/SysUtils.java153
-rw-r--r--qadevOOo/runner/util/TableDsc.java96
-rw-r--r--qadevOOo/runner/util/TextSectionDsc.java84
-rw-r--r--qadevOOo/runner/util/UITools.java834
-rw-r--r--qadevOOo/runner/util/ValueChanger.java994
-rw-r--r--qadevOOo/runner/util/ValueComparer.java266
-rw-r--r--qadevOOo/runner/util/WaitUnreachable.java127
-rw-r--r--qadevOOo/runner/util/WriterTools.java121
-rw-r--r--qadevOOo/runner/util/XInstCreator.java38
-rw-r--r--qadevOOo/runner/util/XLayerHandlerImpl.java119
-rw-r--r--qadevOOo/runner/util/XLayerImpl.java45
-rw-r--r--qadevOOo/runner/util/XMLTools.java939
-rw-r--r--qadevOOo/runner/util/XSchemaHandlerImpl.java137
-rw-r--r--qadevOOo/runner/util/compare/DocComparator.java52
-rw-r--r--qadevOOo/runner/util/compare/DocComparatorFactory.java64
-rw-r--r--qadevOOo/runner/util/compare/GraphicalComparator.java260
-rw-r--r--qadevOOo/runner/util/compare/PDFComparator.java62
-rw-r--r--qadevOOo/runner/util/compare/XMLComparator.java58
-rw-r--r--qadevOOo/runner/util/compare/makefile.mk54
-rw-r--r--qadevOOo/runner/util/db/DataSource.java163
-rw-r--r--qadevOOo/runner/util/db/DataSourceDescriptor.java74
-rw-r--r--qadevOOo/runner/util/db/DatabaseDocument.java90
-rw-r--r--qadevOOo/runner/util/dbg.java347
-rw-r--r--qadevOOo/runner/util/makefile.mk87
-rw-r--r--qadevOOo/runner/util/utils.java1001
-rw-r--r--qadevOOo/testdocs/10test.csv19
-rw-r--r--qadevOOo/testdocs/BasicBridge.sxwbin0 -> 27011 bytes
-rw-r--r--qadevOOo/testdocs/BasicDB/DBTest.dbfbin0 -> 1575 bytes
-rw-r--r--qadevOOo/testdocs/Calc_Link.sxcbin0 -> 5410 bytes
-rw-r--r--qadevOOo/testdocs/ChXChartObject.sdsbin0 -> 52736 bytes
-rw-r--r--qadevOOo/testdocs/FiexdTextDialog.sxwbin0 -> 8259 bytes
-rw-r--r--qadevOOo/testdocs/FixedTextDialog.sxwbin0 -> 8259 bytes
-rw-r--r--qadevOOo/testdocs/Iterator.sxwbin0 -> 5627 bytes
-rw-r--r--qadevOOo/testdocs/JAJPIterator.sxwbin0 -> 5853 bytes
-rw-r--r--qadevOOo/testdocs/MailMerge.sxwbin0 -> 5391 bytes
-rw-r--r--qadevOOo/testdocs/ORowSet.dbfbin0 -> 39449 bytes
-rw-r--r--qadevOOo/testdocs/RunnerStart.sxwbin0 -> 8224 bytes
-rw-r--r--qadevOOo/testdocs/ScAnnotationShapeObj.sxcbin0 -> 6542 bytes
-rw-r--r--qadevOOo/testdocs/ScDDELinksObj.sdcbin0 -> 17408 bytes
-rw-r--r--qadevOOo/testdocs/ScSheetLinksObj.sdcbin0 -> 16896 bytes
-rw-r--r--qadevOOo/testdocs/SfxStandaloneDocInfoObject.sdwbin0 -> 8192 bytes
-rw-r--r--qadevOOo/testdocs/SvxShape.sdabin0 -> 39424 bytes
-rw-r--r--qadevOOo/testdocs/SvxShape.sxdbin0 -> 6344 bytes
-rw-r--r--qadevOOo/testdocs/SwOLE.sxwbin0 -> 8603 bytes
-rw-r--r--qadevOOo/testdocs/SwXTextEmbeddedObject.sdwbin0 -> 180736 bytes
-rw-r--r--qadevOOo/testdocs/SwXTextEmbeddedObject.sxwbin0 -> 24763 bytes
-rw-r--r--qadevOOo/testdocs/SwXTextSection.sdwbin0 -> 8704 bytes
-rw-r--r--qadevOOo/testdocs/TestDB/testDB.dbfbin0 -> 949 bytes
-rw-r--r--qadevOOo/testdocs/TestDB/testDB.dbtbin0 -> 512 bytes
-rw-r--r--qadevOOo/testdocs/TransparencyCalcChart.sxcbin0 -> 8755 bytes
-rw-r--r--qadevOOo/testdocs/TransparencyChart.sxsbin0 -> 10846 bytes
-rw-r--r--qadevOOo/testdocs/TwoShapes.sxibin0 -> 7283 bytes
-rw-r--r--qadevOOo/testdocs/Writer_link.sxwbin0 -> 5188 bytes
-rw-r--r--qadevOOo/testdocs/XDocumentInsertable.sxwbin0 -> 4914 bytes
-rw-r--r--qadevOOo/testdocs/XPageCursor.sdwbin0 -> 16896 bytes
-rw-r--r--qadevOOo/testdocs/XSimpleFileAccess/XSimpleFileAccess.txt1
-rw-r--r--qadevOOo/testdocs/XSimpleFileAccess/XSimpleFileAccess2.txt1
-rw-r--r--qadevOOo/testdocs/XSimpleFileAccessBASIC/File1.txt1
-rw-r--r--qadevOOo/testdocs/XSimpleFileAccessBASIC/File2.txt1
-rw-r--r--qadevOOo/testdocs/XSimpleRegistry.rdbbin0 -> 8192 bytes
-rw-r--r--qadevOOo/testdocs/XTypeDetection.sxwbin0 -> 4995 bytes
-rw-r--r--qadevOOo/testdocs/ZHCNIterator.sxwbin0 -> 5883 bytes
-rw-r--r--qadevOOo/testdocs/ZHTWIterator.sxwbin0 -> 6247 bytes
-rw-r--r--qadevOOo/testdocs/_BasicBridge.sxwbin0 -> 25191 bytes
-rw-r--r--qadevOOo/testdocs/backend/org/openoffice/JavaSystemBackend.java259
-rw-r--r--qadevOOo/testdocs/backend/org/openoffice/makefile.mk64
-rw-r--r--qadevOOo/testdocs/backend/org/openoffice/manifest1
-rw-r--r--qadevOOo/testdocs/basDialog.odtbin0 -> 9950 bytes
-rw-r--r--qadevOOo/testdocs/calcshapes.sxcbin0 -> 13030 bytes
-rw-r--r--qadevOOo/testdocs/chinese.sxwbin0 -> 5757 bytes
-rw-r--r--qadevOOo/testdocs/crazy-blue.jpgbin0 -> 4451 bytes
-rwxr-xr-xqadevOOo/testdocs/delete.cfgbin0 -> 2799 bytes
-rw-r--r--qadevOOo/testdocs/emptyChart.sdsbin0 -> 44544 bytes
-rw-r--r--qadevOOo/testdocs/filter.sxwbin0 -> 14359 bytes
-rw-r--r--qadevOOo/testdocs/ok.wavbin0 -> 4454 bytes
-rw-r--r--qadevOOo/testdocs/poliball.gifbin0 -> 945 bytes
-rw-r--r--qadevOOo/testdocs/qadevlibs/JobExecutor.jarbin0 -> 3912 bytes
-rw-r--r--qadevOOo/testdocs/qadevlibs/MyPersistObjectImpl.jarbin0 -> 4346 bytes
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/MyPersistObject.java356
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/makefile.mk64
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/com/sun/star/cmp/manifest1
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/test/Job.java128
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/test/makefile.mk64
-rw-r--r--qadevOOo/testdocs/qadevlibs/source/test/manifest2
-rw-r--r--qadevOOo/testdocs/report.stwbin0 -> 11186 bytes
-rw-r--r--qadevOOo/testdocs/report2.stwbin0 -> 11000 bytes
-rw-r--r--qadevOOo/testdocs/sForm.sxwbin0 -> 5568 bytes
-rw-r--r--qadevOOo/testdocs/setexpression.sxwbin0 -> 6364 bytes
-rw-r--r--qadevOOo/testdocs/small_submit_test.sdwbin0 -> 18944 bytes
-rw-r--r--qadevOOo/testdocs/space-metal.jpgbin0 -> 4313 bytes
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessible/accessibility_XAccessible.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessible/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleAction/accessibility_XAccessibleAction.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleAction/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleComponent/accessibility_XAccessibleComponent.xba247
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleContext/accessibility_XAccessibleContext.xba156
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleContext/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleEditableText/accessibility_XAccessibleEditableText.xba181
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleEditableText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleEventBroadcaster/accessibility_XAccessibleEventBroadcaster.xba149
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleEventBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleExtendedComponent/accessibility_XAccessibleExtendedComponent.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleExtendedComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleImage/accessibility_XAccessibleImage.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleImage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleSelection/accessibility_XAccessibleSelection.xba259
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleSelection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleTable/accessibility_XAccessibleTable.xba291
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleText/accessibility_XAccessibleText.xba197
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleValue/accessibility_XAccessibleValue.xba119
-rw-r--r--qadevOOo/tests/basic/ifc/accessibility/XAccessibleValue/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlButtonModel/awt_UnoControlButtonModel.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlCheckBoxModel/awt_UnoControlCheckBoxModel.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlCheckBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlComboBoxModel/awt_UnoControlComboBoxModel.xba95
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlComboBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlContainerModel/awt_UnoControlContainerModel.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlContainerModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlCurrencyFieldModel/awt_UnoControlCurrencyFieldModel.xba134
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlCurrencyFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDateFieldModel/awt_UnoControlDateFieldModel.xba93
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDateFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDialogElement/awt_UnoControlDialogElement.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDialogElement/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDialogModel/awt_UnoControlDialogModel.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlDialogModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlEditModel/awt_UnoControlEditModel.xba96
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlEditModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFileControlModel/awt_UnoControlFileControlModel.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFileControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFixedLineModel/awt_UnoControlFixedLineModel.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFixedLineModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFixedTextModel/awt_UnoControlFixedTextModel.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFixedTextModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFormattedFieldModel/awt_UnoControlFormattedFieldModel.xba141
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlFormattedFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlGroupBoxModel/awt_UnoControlGroupBoxModel.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlGroupBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlImageControlModel/awt_UnoControlImageControlModel.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlImageControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlListBoxModel/awt_UnoControlListBoxModel.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlListBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlModel/awt_UnoControlModel.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlNumericFieldModel/awt_UnoControlNumericFieldModel.xba132
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlNumericFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlPatternFieldModel/awt_UnoControlPatternFieldModel.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlPatternFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlProgressBarModel/awt_UnoControlProgressBarModel.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlProgressBarModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlRadioButtonModel/awt_UnoControlRadioButtonModel.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlRadioButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlScrollBarModel/awt_UnoControlScrollBarModel.xba76
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlScrollBarModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlTimeFieldModel/awt_UnoControlTimeFieldModel.xba91
-rw-r--r--qadevOOo/tests/basic/ifc/awt/UnoControlTimeFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XButton/awt_XButton.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XCheckBox/awt_XCheckBox.xba107
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XCheckBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XComboBox/awt_XComboBox.xba146
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XControl/awt_XControl.xba123
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XControlContainer/awt_XControlContainer.xba104
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XControlContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XCurrencyField/awt_XCurrencyField.xba144
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XCurrencyField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDataTransferProviderAccess/awt_XDataTransferProviderAccess.xba117
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDataTransferProviderAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDateField/awt_XDateField.xba123
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDateField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDialog/awt_XDialog.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XFixedText/awt_XFixedText.xba87
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XFixedText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XItemListener/awt_XItemListener.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XItemListener/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XLayoutConstrains/awt_XLayoutConstrains.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XLayoutConstrains/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XListBox/awt_XListBox.xba239
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XNumericField/awt_XNumericField.xba157
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XNumericField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XPatternField/awt_XPatternField.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XPatternField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XRadioButton/awt_XRadioButton.xba98
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XRadioButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XSpinField/awt_XSpinField.xba126
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XSpinField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTabController/awt_XTabController.xba116
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTabController/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTabControllerModel/awt_XTabControllerModel.xba117
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTabControllerModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextComponent/awt_XTextComponent.xba191
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextLayoutConstrains/awt_XTextLayoutConstrains.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextLayoutConstrains/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextListener/awt_XTextListener.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTextListener/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTimeField/awt_XTimeField.xba145
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTimeField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XToolkit/awt_XToolkit.xba168
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XToolkit/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTopWindow/awt_XTopWindow.xba138
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XTopWindow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XView/awt_XView.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XWindow/awt_XWindow.xba482
-rw-r--r--qadevOOo/tests/basic/ifc/awt/XWindow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XExactName/beans_XExactName.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XExactName/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XFastPropertySet/beans_XFastPropertySet.xba122
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XFastPropertySet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XIntrospection/beans_XIntrospection.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XIntrospection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/beans_XMultiPropertySet.xba261
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertySet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/beans_XMultiPropertyStates.xba183
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XMultiPropertyStates/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XProperty/beans_XProperty.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XProperty/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertySet/beans_XPropertySet.xba357
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertySet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertySetInfo/beans_XPropertySetInfo.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertySetInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertyState/beans_XPropertyState.xba178
-rw-r--r--qadevOOo/tests/basic/ifc/beans/XPropertyState/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XBridge/bridge_XBridge.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XBridge/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XBridgeFactory/bridge_XBridgeFactory.xba123
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XBridgeFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XUnoUrlResolver/bridge_XUnoUrlResolver.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/bridge/XUnoUrlResolver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/BarDiagram/chart_BarDiagram.xba101
-rw-r--r--qadevOOo/tests/basic/ifc/chart/BarDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Chart3DBarProperties/chart_Chart3DBarProperties.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Chart3DBarProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxis/chart_ChartAxis.xba105
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxis/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisXSupplier/chart_ChartAxisXSupplier.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisXSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisYSupplier/chart_ChartAxisYSupplier.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisYSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisZSupplier/chart_ChartAxisZSupplier.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartAxisZSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDataPointProperties/chart_ChartDataPointProperties.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDataPointProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDataRowProperties/chart_ChartDataRowProperties.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDataRowProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDocument/chart_ChartDocument.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartLegend/chart_ChartLegend.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartLegend/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartStatistics/chart_ChartStatistics.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartStatistics/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTableAddressSupplier/chart_ChartTableAddressSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTableAddressSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTitle/chart_ChartTitle.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTitle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTwoAxisXSupplier/chart_ChartTwoAxisXSupplier.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTwoAxisXSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTwoAxisYSupplier/chart_ChartTwoAxisYSupplier.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/chart/ChartTwoAxisYSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Diagram/chart_Diagram.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Diagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Dim3DDiagram/chart_Dim3DDiagram.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/chart/Dim3DDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/LineDiagram/chart_LineDiagram.xba107
-rw-r--r--qadevOOo/tests/basic/ifc/chart/LineDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/StackableDiagram/chart_StackableDiagram.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/chart/StackableDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/StockDiagram/chart_StockDiagram.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/chart/StockDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/X3DDisplay/chart_X3DDisplay.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/chart/X3DDisplay/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisXSupplier/chart_XAxisXSupplier.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisXSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisYSupplier/chart_XAxisYSupplier.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisYSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisZSupplier/chart_XAxisZSupplier.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XAxisZSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartData/chart_XChartData.xba130
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartData/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartDataArray/chart_XChartDataArray.xba179
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartDataArray/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartDocument/chart_XChartDocument.xba129
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XChartDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XDiagram/chart_XDiagram.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XStatisticDisplay/chart_XStatisticDisplay.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XStatisticDisplay/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XTwoAxisXSupplier/chart_XTwoAxisXSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XTwoAxisXSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XTwoAxisYSupplier/chart_XTwoAxisYSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/chart/XTwoAxisYSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/connection/XAcceptor/connection_XAcceptor.xba132
-rw-r--r--qadevOOo/tests/basic/ifc/connection/XAcceptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/connection/XConnector/connection_XConnector.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/connection/XConnector/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XChild/container_XChild.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/container/XChild/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XContainer/container_XContainer.xba228
-rw-r--r--qadevOOo/tests/basic/ifc/container/XContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XContentEnumerationAccess/container_XContentEnumerationAccess.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/container/XContentEnumerationAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XElementAccess/container_XElementAccess.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/container/XElementAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XEnumeration/container_XEnumeration.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/container/XEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XEnumerationAccess/container_XEnumerationAccess.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/container/XEnumerationAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XHierarchicalName/container_XHierarchicalName.xba97
-rw-r--r--qadevOOo/tests/basic/ifc/container/XHierarchicalName/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XHierarchicalNameAccess/container_XHierarchicalNameAccess.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/container/XHierarchicalNameAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexAccess/container_XIndexAccess.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexContainer/container_XIndexContainer.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexReplace/container_XIndexReplace.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/container/XIndexReplace/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameAccess/container_XNameAccess.xba81
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameContainer/container_XNameContainer.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameReplace/container_XNameReplace.xba116
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNameReplace/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNamed/container_XNamed.xba111
-rw-r--r--qadevOOo/tests/basic/ifc/container/XNamed/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/container/XSet/container_XSet.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/container/XSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/XDataFormatTranslator/datatransfer_XDataFormatTranslator.xba95
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/XDataFormatTranslator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/XMimeContentTypeFactory/datatransfer_XMimeContentTypeFactory.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/XMimeContentTypeFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboard/datatransfer_clipboard_XClipboard.xba105
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboard/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboardEx/datatransfer_clipboard_XClipboardEx.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboardEx/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboardNotifier/datatransfer_clipboard_XClipboardNotifier.xba133
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XClipboardNotifier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XFlushableClipboard/datatransfer_clipboard_XFlushableClipboard.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/datatransfer/clipboard/XFlushableClipboard/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/DocumentInfo/document_DocumentInfo.xba206
-rw-r--r--qadevOOo/tests/basic/ifc/document/DocumentInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/OfficeDocument/document_OfficeDocument.xba55
-rw-r--r--qadevOOo/tests/basic/ifc/document/OfficeDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XActionLockable/document_XActionLockable.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/document/XActionLockable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInfo/document_XDocumentInfo.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInfoSupplier/document_XDocumentInfoSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInfoSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInsertable/document_XDocumentInsertable.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/document/XDocumentInsertable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XEmbeddedObjectSupplier/document_XEmbeddedObjectSupplier.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/document/XEmbeddedObjectSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XEventsSupplier/document_XEventsSupplier.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/document/XEventsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XExporter/document_XExporter.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/document/XExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XFilter/document_XFilter.xba89
-rw-r--r--qadevOOo/tests/basic/ifc/document/XFilter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XImporter/document_XImporter.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/document/XImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XLinkTargetSupplier/document_XLinkTargetSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/document/XLinkTargetSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XMimeTypeInfo/document_XMimeTypeInfo.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/document/XMimeTypeInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XStandaloneDocumentInfo/document_XStandaloneDocumentInfo.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/document/XStandaloneDocumentInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XTypeDetection/document_XTypeDetection.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/document/XTypeDetection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/document/XViewDataSupplier/document_XViewDataSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/document/XViewDataSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ConnectorProperties/drawing_ConnectorProperties.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ConnectorProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ConnectorShape/drawing_ConnectorShape.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ConnectorShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/DrawingDocument/drawing_DrawingDocument.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/DrawingDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/DrawingDocumentDrawView/drawing_DrawingDocumentDrawView.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/DrawingDocumentDrawView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/EllipseShape/drawing_EllipseShape.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/EllipseShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/FillProperties/drawing_FillProperties.xba121
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/FillProperties/drawing__FillProperties.xba121
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/FillProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/GenericDrawPage/drawing_GenericDrawPage.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/GenericDrawPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/GraphicObjectShape/drawing_GraphicObjectShape.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/GraphicObjectShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/Layer/drawing_Layer.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/Layer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/LineProperties/drawing_LineProperties.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/LineProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/MeasureProperties/drawing_MeasureProperties.xba120
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/MeasureProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/MeasureShape/drawing_MeasureShape.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/MeasureShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/PolyPolygonBezierDescriptor/drawing_PolyPolygonBezierDescriptor.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/PolyPolygonBezierDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/PolyPolygonDescriptor/drawing_PolyPolygonDescriptor.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/PolyPolygonDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/RotationDescriptor/drawing_RotationDescriptor.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/RotationDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ShadowProperties/drawing_ShadowProperties.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/ShadowProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/Shape/drawing_Shape.xba93
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/Shape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/TextProperties/drawing_TextProperties.xba104
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/TextProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/TextShape/drawing_TextShape.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/TextShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XControlShape/drawing_XControlShape.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XControlShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageDuplicator/drawing_XDrawPageDuplicator.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageDuplicator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageExpander/drawing_XDrawPageExpander.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageExpander/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageSummarizer/drawing_XDrawPageSummarizer.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageSummarizer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageSupplier/drawing_XDrawPageSupplier.xba57
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPageSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPages/drawing_XDrawPages.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPages/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPagesSupplier/drawing_XDrawPagesSupplier.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawPagesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawView/drawing_XDrawView.xba89
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XDrawView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XGluePointsSupplier/drawing_XGluePointsSupplier.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XGluePointsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XLayerManager/drawing_XLayerManager.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XLayerManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XLayerSupplier/drawing_XLayerSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XLayerSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XMasterPageTarget/drawing_XMasterPageTarget.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XMasterPageTarget/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XMasterPagesSupplier/drawing_XMasterPagesSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XMasterPagesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShape/drawing_XShape.xba133
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeBinder/drawing_XShapeBinder.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeBinder/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeCombiner/drawing_XShapeCombiner.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeCombiner/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeDescriptor/drawing_XShapeDescriptor.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeGroup/drawing_XShapeGroup.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeGroup/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeGrouper/drawing_XShapeGrouper.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapeGrouper/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapes/drawing_XShapes.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/drawing/XShapes/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/DataAwareControlModel/form_DataAwareControlModel.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/form/DataAwareControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/FormComponent/form_FormComponent.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/form/FormComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/FormControlModel/form_FormControlModel.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/form/FormControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XApproveActionBroadcaster/form_XApproveActionBroadcaster.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/form/XApproveActionBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XBoundComponent/form_XBoundComponent.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/form/XBoundComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XBoundControl/form_XBoundControl.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/form/XBoundControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XChangeBroadcaster/form_XChangeBroadcaster.xba103
-rw-r--r--qadevOOo/tests/basic/ifc/form/XChangeBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XFormController/form_XFormController.xba123
-rw-r--r--qadevOOo/tests/basic/ifc/form/XFormController/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XFormsSupplier/form_XFormsSupplier.xba57
-rw-r--r--qadevOOo/tests/basic/ifc/form/XFormsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGrid/form_XGrid.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGrid/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGridColumnFactory/form_XGridColumnFactory.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGridColumnFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGridFieldDataSupplier/form_XGridFieldDataSupplier.xba91
-rw-r--r--qadevOOo/tests/basic/ifc/form/XGridFieldDataSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XImageProducerSupplier/form_XImageProducerSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/form/XImageProducerSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XLoadListener/form_XLoadListener.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/form/XLoadListener/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XLoadable/form_XLoadable.xba139
-rw-r--r--qadevOOo/tests/basic/ifc/form/XLoadable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XReset/form_XReset.xba116
-rw-r--r--qadevOOo/tests/basic/ifc/form/XReset/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XSubmit/form_XSubmit.xba107
-rw-r--r--qadevOOo/tests/basic/ifc/form/XSubmit/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/XUpdateBroadcaster/form_XUpdateBroadcaster.xba172
-rw-r--r--qadevOOo/tests/basic/ifc/form/XUpdateBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CheckBox/form_component_CheckBox.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CheckBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ComboBox/form_component_ComboBox.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CommandButton/form_component_CommandButton.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CommandButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CurrencyField/form_component_CurrencyField.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/CurrencyField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DataForm/form_component_DataForm.xba89
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DataForm/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseComboBox/form_component_DatabaseComboBox.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseFormattedField/form_component_DatabaseFormattedField.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseFormattedField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseImageControl/form_component_DatabaseImageControl.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseImageControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseListBox/form_component_DatabaseListBox.xba76
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabasePatternField/form_component_DatabasePatternField.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabasePatternField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseTextField/form_component_DatabaseTextField.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DatabaseTextField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DateField/form_component_DateField.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/DateField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/FileControl/form_component_FileControl.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/FileControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/GridControl/form_component_GridControl.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/GridControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/HTMLForm/form_component_HTMLForm.xba83
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/HTMLForm/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/HiddenControl/form_component_HiddenControl.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/HiddenControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ImageButton/form_component_ImageButton.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ImageButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ListBox/form_component_ListBox.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/ListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/NumericField/form_component_NumericField.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/NumericField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/PatternField/form_component_PatternField.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/PatternField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/RadioButton/form_component_RadioButton.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/RadioButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/TextField/form_component_TextField.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/TextField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/TimeField/form_component_TimeField.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/form/component/TimeField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/formula/FormulaProperties/formula_FormulaProperties.xba170
-rw-r--r--qadevOOo/tests/basic/ifc/formula/FormulaProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/Frame/frame_Frame.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/frame/Frame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XComponentLoader/frame_XComponentLoader.xba109
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XComponentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XController/frame_XController.xba134
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XController/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDesktop/frame_XDesktop.xba97
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDesktop/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatch/frame_XDispatch.xba120
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatch/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchProvider/frame_XDispatchProvider.xba110
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchProviderInterception/frame_XDispatchProviderInterception.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchProviderInterception/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchRecorder/frame_XDispatchRecorder.xba154
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchRecorder/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchRecorderSupplier/frame_XDispatchRecorderSupplier.xba109
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDispatchRecorderSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDocumentTemplates/frame_XDocumentTemplates.xba191
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XDocumentTemplates/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFrame/frame_XFrame.xba347
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFrame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFrameLoader/frame_XFrameLoader.xba127
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFrameLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFramesSupplier/frame_XFramesSupplier.xba129
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XFramesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XModel/frame_XModel.xba145
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XStorable/frame_XStorable.xba116
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XStorable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XSynchronousFrameLoader/frame_XSynchronousFrameLoader.xba87
-rw-r--r--qadevOOo/tests/basic/ifc/frame/XSynchronousFrameLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XBreakIterator/i18n_XBreakIterator.xba408
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XBreakIterator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCalendar/i18n_XCalendar.xba306
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCalendar/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCharacterClassification/i18n_XCharacterClassification.xba223
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCharacterClassification/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCollator/i18n_XCollator.xba133
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XCollator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XIndexEntrySupplier/i18n_XIndexEntrySupplier.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XIndexEntrySupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XLocaleData/i18n_XLocaleData.xba245
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XLocaleData/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XNumberFormatCode/i18n_XNumberFormatCode.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XNumberFormatCode/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XTransliteration/i18n_XTransliteration.xba282
-rw-r--r--qadevOOo/tests/basic/ifc/i18n/XTransliteration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataControl/io_XActiveDataControl.xba204
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataSink/io_XActiveDataSink.xba112
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataSink/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataSource/io_XActiveDataSource.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/io/XActiveDataSource/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XConnectable/io_XConnectable.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/io/XConnectable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XDataInputStream/io_XDataInputStream.xba170
-rw-r--r--qadevOOo/tests/basic/ifc/io/XDataInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XDataOutputStream/io_XDataOutputStream.xba173
-rw-r--r--qadevOOo/tests/basic/ifc/io/XDataOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XInputStream/io_XInputStream.xba115
-rw-r--r--qadevOOo/tests/basic/ifc/io/XInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XMarkableStream/io_XMarkableStream.xba253
-rw-r--r--qadevOOo/tests/basic/ifc/io/XMarkableStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XObjectInputStream/io_XObjectInputStream.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/io/XObjectInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XObjectOutputStream/io_XObjectOutputStream.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/io/XObjectOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XOutputStream/io_XOutputStream.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/io/XOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/io/XPersistObject/io_XPersistObject.xba130
-rw-r--r--qadevOOo/tests/basic/ifc/io/XPersistObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/java/XJavaVM/javajava_XJavaVM.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/java/XJavaVM/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/ServiceManager/lang_ServiceManager.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/lang/ServiceManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XComponent/lang_XComponent.xba112
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XComponent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XEventListener/lang_XEventListener.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XEventListener/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XInitialization/lang_XInitialization.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XInitialization/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XMultiComponentFactory/lang_XMultiComponentFactory.xba91
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XMultiComponentFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XMultiServiceFactory/lang_XMultiServiceFactory.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XMultiServiceFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XServiceDisplayName/lang_XServiceDisplayName.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XServiceDisplayName/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XServiceInfo/lang_XServiceInfo.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XServiceInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XSingleServiceFactory/lang_XSingleServiceFactory.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XSingleServiceFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XTypeProvider/lang_XTypeProvider.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/lang/XTypeProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/LinguProperties/linguistic2_LinguProperties.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/LinguProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XDictionaryList/linguistic2_XDictionaryList.xba191
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XDictionaryList/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XHyphenator/linguistic2_XHyphenator.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XHyphenator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XLinguServiceEventBroadcaster/linguistic2_XLinguServiceEventBroadcaster.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XLinguServiceEventBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XLinguServiceManager/linguistic2_XLinguServiceManager.xba138
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XLinguServiceManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSearchableDictionaryList/linguistic2_XSearchableDictionaryList.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSearchableDictionaryList/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSpellChecker/linguistic2_XSpellChecker.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSpellChecker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSupportedLocales/linguistic2_XSupportedLocales.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XSupportedLocales/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XThesaurus/linguistic2_XThesaurus.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/linguistic2/XThesaurus/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/loader/XImplementationLoader/loader_XImplementationLoader.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/loader/XImplementationLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/OutlineView/presentation_OutlineView.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/OutlineView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/Presentation/presentation_Presentation.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/Presentation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/PresentationView/presentation_PresentationView.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/PresentationView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/PreviewView/presentation_PreviewView.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/PreviewView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XCustomPresentationSupplier/presentation_XCustomPresentationSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XCustomPresentationSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XPresentation/presentation_XPresentation.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XPresentation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XPresentationSupplier/presentation_XPresentationSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/presentation/XPresentationSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/reflection/XIdlReflection/reflection_XIdlReflection.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/reflection/XIdlReflection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/reflection/XProxyFactory/reflection_XProxyFactory.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/reflection/XProxyFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/registry_XImplementationRegistration.xba168
-rw-r--r--qadevOOo/tests/basic/ifc/registry/XImplementationRegistration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/registry/XSimpleRegistry/registry_XSimpleRegistry.xba132
-rw-r--r--qadevOOo/tests/basic/ifc/registry/XSimpleRegistry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/script/XEventAttacherManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/script/XEventAttacherManager/script_XEventAttacherManager.xba160
-rw-r--r--qadevOOo/tests/basic/ifc/script/XInvocationAdapterFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/script/XInvocationAdapterFactory/script_XInvocationAdapterFactory.xba81
-rw-r--r--qadevOOo/tests/basic/ifc/script/XInvocationAdapterFactory2/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/script/XInvocationAdapterFactory2/script_XInvocationAdapterFactory2.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/script/XTypeConverter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/script/XTypeConverter/script_XTypeConverter.xba109
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DataAccessDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DataAccessDescriptor/sdb_DataAccessDescriptor.xba81
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DataSource/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DataSource/sdb_DataSource.xba111
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DatasourceAdministrationDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/DatasourceAdministrationDialog/sdb_DatasourceAdministrationDialog.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/ErrorMessageDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/ErrorMessageDialog/sdb_ErrorMessageDialog.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/QueryDefinition/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/QueryDefinition/sdb_QueryDefinition.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/RowSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/RowSet/sdb_RowSet.xba100
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XBookmarksSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XBookmarksSupplier/sdb_XBookmarksSupplier.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XCompletedConnection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XCompletedConnection/sdb_XCompletedConnection.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XQueryDefinitionsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XQueryDefinitionsSupplier/sdb_XQueryDefinitionsSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XResultSetAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XResultSetAccess/sdb_XResultSetAccess.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XRowSetApproveBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdb/XRowSetApproveBroadcaster/sdb_XRowSetApproveBroadcaster.xba214
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/ResultSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/ResultSet/sdbc_ResultSet.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/RowSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/RowSet/sdbc_RowSet.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XCloseable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XCloseable/sdbc_XCloseable.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XColumnLocate/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XColumnLocate/sdbc_XColumnLocate.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDataSource/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDataSource/sdbc_XDataSource.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDriver/sdbc_XDriver.xba104
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDriverManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XDriverManager/sdbc_XDriverManager.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XIsolatedConnection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XIsolatedConnection/sdbc_XIsolatedConnection.xba76
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XParameters/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XParameters/sdbc_XParameters.xba211
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSet/sdbc_XResultSet.xba311
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSetMetaDataSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSetMetaDataSupplier/sdbc_XResultSetMetaDataSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSetUpdate/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XResultSetUpdate/sdbc_XResultSetUpdate.xba138
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRow/sdbc_XRow.xba317
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRowSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRowSet/sdbc_XRowSet.xba107
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRowUpdate/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XRowUpdate/sdbc_XRowUpdate.xba514
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XWarningsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbc/XWarningsSupplier/sdbc_XWarningsSupplier.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/ResultSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/ResultSet/sdbcx_ResultSet.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XColumnsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XColumnsSupplier/sdbcx_XColumnsSupplier.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XDataDefinitionSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XDataDefinitionSupplier/sdbcx_XDataDefinitionSupplier.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XDeleteRows/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XDeleteRows/sdbcx_XDeleteRows.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XRowLocate/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sdbcx/XRowLocate/sdbcx_XRowLocate.xba128
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/CellAreaLink/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/CellAreaLink/sheet_CellAreaLink.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/DataPilotField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/DataPilotField/sheet_DataPilotField.xba57
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/DatabaseRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/DatabaseRange/sheet_DatabaseRange.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/GlobalSheetSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/GlobalSheetSettings/sheet_GlobalSheetSettings.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCell/sheet_SheetCell.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCellRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCellRange/sheet_SheetCellRange.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCellRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetCellRanges/sheet_SheetCellRanges.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetFilterDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetFilterDescriptor/sheet_SheetFilterDescriptor.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetLink/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SheetLink/sheet_SheetLink.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/Spreadsheet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/Spreadsheet/sheet_Spreadsheet.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetDocument/sheet_SpreadsheetDocument.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetDocumentSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetDocumentSettings/sheet_SpreadsheetDocumentSettings.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetViewSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SpreadsheetViewSettings/sheet_SpreadsheetViewSettings.xba96
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SubTotalDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/SubTotalDescriptor/sheet_SubTotalDescriptor.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableAutoFormat/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableAutoFormat/sheet_TableAutoFormat.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableAutoFormatField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableAutoFormatField/sheet_TableAutoFormatField.xba163
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableValidation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/TableValidation/sheet_TableValidation.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XAreaLink/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XAreaLink/sheet_XAreaLink.xba111
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XAreaLinks/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XAreaLinks/sheet_XAreaLinks.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XArrayFormulaRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XArrayFormulaRange/sheet_XArrayFormulaRange.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellAddressable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellAddressable/sheet_XCellAddressable.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeAddressable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeAddressable/sheet_XCellRangeAddressable.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeData/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeData/sheet_XCellRangeData.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeMovement/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeMovement/sheet_XCellRangeMovement.xba167
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeReferrer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellRangeReferrer/sheet_XCellRangeReferrer.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellSeries/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XCellSeries/sheet_XCellSeries.xba126
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XConsolidationDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XConsolidationDescriptor/sheet_XConsolidationDescriptor.xba144
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDDELink/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDDELink/sheet_XDDELink.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotDescriptor/sheet_XDataPilotDescriptor.xba143
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTable/sheet_XDataPilotTable.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTables/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTables/sheet_XDataPilotTables.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTablesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDataPilotTablesSupplier/sheet_XDataPilotTablesSupplier.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDatabaseRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDatabaseRange/sheet_XDatabaseRange.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDatabaseRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XDatabaseRanges/sheet_XDatabaseRanges.xba76
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XFunctionDescriptions/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XFunctionDescriptions/sheet_XFunctionDescriptions.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XHeaderFooterContent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XHeaderFooterContent/sheet_XHeaderFooterContent.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XLabelRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XLabelRange/sheet_XLabelRange.xba116
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XLabelRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XLabelRanges/sheet_XLabelRanges.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XNamedRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XNamedRange/sheet_XNamedRange.xba110
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XNamedRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XNamedRanges/sheet_XNamedRanges.xba131
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XRecentFunctions/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XRecentFunctions/sheet_XRecentFunctions.xba110
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XScenarios/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XScenarios/sheet_XScenarios.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XScenariosSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XScenariosSupplier/sheet_XScenariosSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotation/sheet_XSheetAnnotation.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotations/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotations/sheet_XSheetAnnotations.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotationsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetAnnotationsSupplier/sheet_XSheetAnnotationsSupplier.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellCursor/sheet_XSheetCellCursor.xba135
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRange/sheet_XSheetCellRange.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRangeContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRangeContainer/sheet_XSheetCellRangeContainer.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCellRanges/sheet_XSheetCellRanges.xba81
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCondition/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetCondition/sheet_XSheetCondition.xba103
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetConditionalEntries/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetConditionalEntries/sheet_XSheetConditionalEntries.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetConditionalEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetConditionalEntry/sheet_XSheetConditionalEntry.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetFilterDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetFilterDescriptor/sheet_XSheetFilterDescriptor.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetOperation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetOperation/sheet_XSheetOperation.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetPageBreak/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSheetPageBreak/sheet_XSheetPageBreak.xba103
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheet/sheet_XSpreadsheet.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheetDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheetDocument/sheet_XSpreadsheetDocument.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheetView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheetView/sheet_XSpreadsheetView.xba95
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheets/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSpreadsheets/sheet_XSpreadsheets.xba130
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSubTotalDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSubTotalDescriptor/sheet_XSubTotalDescriptor.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSubTotalField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XSubTotalField/sheet_XSubTotalField.xba87
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XUsedAreaCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XUsedAreaCursor/sheet_XUsedAreaCursor.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewFreezable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewFreezable/sheet_XViewFreezable.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewPane/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewPane/sheet_XViewPane.xba87
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewSplitable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/sheet/XViewSplitable/sheet_XViewSplitable.xba133
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterProperties/style_CharacterProperties.xba292
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterPropertiesAsian/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterPropertiesAsian/style_CharacterPropertiesAsian.xba100
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterPropertiesComplex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/CharacterPropertiesComplex/style_CharacterPropertiesComplex.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphProperties/style_ParagraphProperties.xba212
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphPropertiesAsian/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphPropertiesAsian/style_ParagraphPropertiesAsian.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphPropertiesComplex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/ParagraphPropertiesComplex/style_ParagraphPropertiesComplex.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/style/Style/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/Style/style_Style.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/style/XStyle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/XStyle/style_XStyle.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/style/XStyleFamiliesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/style/XStyleFamiliesSupplier/style_XStyleFamiliesSupplier.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/system/XProxySettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/system/XProxySettings/system_XProxySettings.xba114
-rw-r--r--qadevOOo/tests/basic/ifc/system/XSimpleMailClientSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/system/XSimpleMailClientSupplier/system_XSimpleMailClientSupplier.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/system/XSystemShellExecute/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/system/XSystemShellExecute/system_XSystemShellExecute.xba105
-rw-r--r--qadevOOo/tests/basic/ifc/table/CellProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/CellProperties/table_CellProperties.xba109
-rw-r--r--qadevOOo/tests/basic/ifc/table/TableColumn/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/TableColumn/table_TableColumn.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/table/TableRow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/TableRow/table_TableRow.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/table/XAutoFormattable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XAutoFormattable/table_XAutoFormattable.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCell/table_XCell.xba100
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCellCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCellCursor/table_XCellCursor.xba144
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCellRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XCellRange/table_XCellRange.xba142
-rw-r--r--qadevOOo/tests/basic/ifc/table/XColumnRowRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XColumnRowRange/table_XColumnRowRange.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableChart/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableChart/table_XTableChart.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableCharts/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableCharts/table_XTableCharts.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableChartsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableChartsSupplier/table_XTableChartsSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableColumns/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableColumns/table_XTableColumns.xba87
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableRows/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/table/XTableRows/table_XTableRows.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/task/XInteractionHandler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/task/XInteractionHandler/task_XInteractionHandler.xba79
-rw-r--r--qadevOOo/tests/basic/ifc/task/XJob/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/task/XJob/task_XJob.xba88
-rw-r--r--qadevOOo/tests/basic/ifc/task/XStatusIndicatorFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/task/XStatusIndicatorFactory/task_XStatusIndicatorFactory.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseFrame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseFrame/text_BaseFrame.xba63
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseFrameProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseFrameProperties/text_BaseFrameProperties.xba183
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseIndex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseIndex/text_BaseIndex.xba102
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseIndexMark/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/BaseIndexMark/text_BaseIndexMark.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/text/CellProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/CellProperties/text_CellProperties.xba109
-rw-r--r--qadevOOo/tests/basic/ifc/text/CellRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/CellRange/text_CellRange.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/text/Defaults/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/Defaults/text_Defaults.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/text/DocumentIndex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/DocumentIndex/text_DocumentIndex.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/text/DocumentIndexMark/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/DocumentIndexMark/text_DocumentIndexMark.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/text/Footnote/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/Footnote/text_Footnote.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/text/FootnoteSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/FootnoteSettings/text_FootnoteSettings.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/text/LineNumberingProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/LineNumberingProperties/text_LineNumberingProperties.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/text/MailMerge/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/MailMerge/text_MailMerge.xba94
-rw-r--r--qadevOOo/tests/basic/ifc/text/NumberingRules/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/NumberingRules/text_NumberingRules.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/text/PrintSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/PrintSettings/text_PrintSettings.xba83
-rw-r--r--qadevOOo/tests/basic/ifc/text/Text/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/Text/text_Text.xba56
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextColumns/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextColumns/text_TextColumns.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextContent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextContent/text_TextContent.xba78
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextDocument/text_TextDocument.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextFieldMaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextFieldMaster/text_TextFieldMaster.xba57
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextFrame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextFrame/text_TextFrame.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextGraphicObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextGraphicObject/text_TextGraphicObject.xba207
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextPortion/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextPortion/text_TextPortion.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextSection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextSection/text_TextSection.xba139
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextTable/text_TextTable.xba128
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextTableRow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/TextTableRow/text_TextTableRow.xba75
-rw-r--r--qadevOOo/tests/basic/ifc/text/ViewSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/ViewSettings/text_ViewSettings.xba114
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextContainer/text_XAutoTextContainer.xba95
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextEntry/text_XAutoTextEntry.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextGroup/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XAutoTextGroup/text_XAutoTextGroup.xba100
-rw-r--r--qadevOOo/tests/basic/ifc/text/XChapterNumberingSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XChapterNumberingSupplier/text_XChapterNumberingSupplier.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/text/XDefaultNumberingProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XDefaultNumberingProvider/text_XDefaultNumberingProvider.xba119
-rw-r--r--qadevOOo/tests/basic/ifc/text/XDocumentIndex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XDocumentIndex/text_XDocumentIndex.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/text/XEndnotesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XEndnotesSupplier/text_XEndnotesSupplier.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/text/XFootnote/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XFootnote/text_XFootnote.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/text/XFootnotesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XFootnotesSupplier/text_XFootnotesSupplier.xba64
-rw-r--r--qadevOOo/tests/basic/ifc/text/XLineNumberingSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XLineNumberingSupplier/text_XLineNumberingSupplier.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/text/XMailMergeBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XMailMergeBroadcaster/text_XMailMergeBroadcaster.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/text/XPageCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XPageCursor/text_XPageCursor.xba123
-rw-r--r--qadevOOo/tests/basic/ifc/text/XPagePrintable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XPagePrintable/text_XPagePrintable.xba98
-rw-r--r--qadevOOo/tests/basic/ifc/text/XParagraphCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XParagraphCursor/text_XParagraphCursor.xba121
-rw-r--r--qadevOOo/tests/basic/ifc/text/XReferenceMarksSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XReferenceMarksSupplier/text_XReferenceMarksSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/text/XRelativeTextContentInsert/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XRelativeTextContentInsert/text_XRelativeTextContentInsert.xba164
-rw-r--r--qadevOOo/tests/basic/ifc/text/XSentenceCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XSentenceCursor/text_XSentenceCursor.xba105
-rw-r--r--qadevOOo/tests/basic/ifc/text/XSimpleText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XSimpleText/text_XSimpleText.xba113
-rw-r--r--qadevOOo/tests/basic/ifc/text/XText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XText/text_XText.xba153
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextColumns/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextColumns/text_XTextColumns.xba119
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextContent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextContent/text_XTextContent.xba83
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextCursor/text_XTextCursor.xba134
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextDocument/text_XTextDocument.xba65
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextEmbeddedObjectsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextEmbeddedObjectsSupplier/text_XTextEmbeddedObjectsSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextField/text_XTextField.xba67
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextFrame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextFrame/text_XTextFrame.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextGraphicObjectsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextGraphicObjectsSupplier/text_XTextGraphicObjectsSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRange/text_XTextRange.xba86
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRangeCompare/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRangeCompare/text_XTextRangeCompare.xba98
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRangeMover/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextRangeMover/text_XTextRangeMover.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextSection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextSection/text_XTextSection.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTable/text_XTextTable.xba140
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTableCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTableCursor/text_XTextTableCursor.xba142
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTablesSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextTablesSupplier/text_XTextTablesSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextViewCursorSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XTextViewCursorSupplier/text_XTextViewCursorSupplier.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/text/XWordCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/text/XWordCursor/text_XWordCursor.xba99
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedContentResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedContentResultSetFactory/ucb_XCachedContentResultSetFactory.xba91
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedContentResultSetStubFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedContentResultSetStubFactory/ucb_XCachedContentResultSetStubFactory.xba91
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedDynamicResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedDynamicResultSetFactory/ucb_XCachedDynamicResultSetFactory.xba97
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedDynamicResultSetStubFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCachedDynamicResultSetStubFactory/ucb_XCachedDynamicResultSetStubFactory.xba125
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCommandProcessor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XCommandProcessor/ucb_XCommandProcessor.xba85
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentIdentifierFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentIdentifierFactory/ucb_XContentIdentifierFactory.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProvider/ucb_XContentProvider.xba95
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProviderFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProviderFactory/ucb_XContentProviderFactory.xba61
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProviderManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XContentProviderManager/ucb_XContentProviderManager.xba115
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XDataContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XDataContainer/ucb_XDataContainer.xba155
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XFileIdentifierConverter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XFileIdentifierConverter/ucb_XFileIdentifierConverter.xba90
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XPropertyMatcherFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XPropertyMatcherFactory/ucb_XPropertyMatcherFactory.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XPropertySetRegistryFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XPropertySetRegistryFactory/ucb_XPropertySetRegistryFactory.xba62
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSimpleFileAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSimpleFileAccess/ucb_XSimpleFileAccess.xba242
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSimpleFileAccess2/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSimpleFileAccess2/ucb_XSimpleFileAccess2.xba77
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSortedDynamicResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ucb/XSortedDynamicResultSetFactory/ucb_XSortedDynamicResultSetFactory.xba111
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/FilePicker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/FilePicker/ui_dialogs_FilePicker.xba55
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XExecutableDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XExecutableDialog/ui_dialogs_XExecutableDialog.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePicker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePicker/ui_dialogs_XFilePicker.xba93
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePickerControlAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePickerControlAccess/ui_dialogs_XFilePickerControlAccess.xba102
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePickerNotifier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePickerNotifier/ui_dialogs_XFilePickerNotifier.xba93
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePreview/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilePreview/ui_dialogs_XFilePreview.xba112
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilterManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFilterManager/ui_dialogs_XFilterManager.xba73
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFolderPicker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/ui/dialogs/XFolderPicker/ui_dialogs_XFolderPicker.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/uno/XNamingService/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/uno/XNamingService/uno_XNamingService.xba92
-rw-r--r--qadevOOo/tests/basic/ifc/util/PathSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/PathSettings/util_PathSettings.xba151
-rw-r--r--qadevOOo/tests/basic/ifc/util/SearchDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/SearchDescriptor/util_SearchDescriptor.xba74
-rw-r--r--qadevOOo/tests/basic/ifc/util/XCancellable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XCancellable/util_XCancellable.xba58
-rw-r--r--qadevOOo/tests/basic/ifc/util/XCloneable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XCloneable/util_XCloneable.xba66
-rw-r--r--qadevOOo/tests/basic/ifc/util/XFlushable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XFlushable/util_XFlushable.xba98
-rw-r--r--qadevOOo/tests/basic/ifc/util/XMergeable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XMergeable/util_XMergeable.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/util/XModeSelector/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XModeSelector/util_XModeSelector.xba84
-rw-r--r--qadevOOo/tests/basic/ifc/util/XModifyBroadcaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XModifyBroadcaster/util_XModifyBroadcaster.xba82
-rw-r--r--qadevOOo/tests/basic/ifc/util/XNumberFormatsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XNumberFormatsSupplier/util_XNumberFormatsSupplier.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/util/XRefreshable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XRefreshable/util_XRefreshable.xba106
-rw-r--r--qadevOOo/tests/basic/ifc/util/XReplaceDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XReplaceDescriptor/util_XReplaceDescriptor.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/util/XReplaceable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XReplaceable/util_XReplaceable.xba93
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSearchDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSearchDescriptor/util_XSearchDescriptor.xba70
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSearchable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSearchable/util_XSearchable.xba111
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSortable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XSortable/util_XSortable.xba80
-rw-r--r--qadevOOo/tests/basic/ifc/util/XStringEscape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XStringEscape/util_XStringEscape.xba71
-rw-r--r--qadevOOo/tests/basic/ifc/util/XTextSearch/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/util/XTextSearch/util_XTextSearch.xba104
-rw-r--r--qadevOOo/tests/basic/ifc/view/XControlAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XControlAccess/view_XControlAccess.xba68
-rw-r--r--qadevOOo/tests/basic/ifc/view/XPrintSettingsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XPrintSettingsSupplier/view_XPrintSettingsSupplier.xba59
-rw-r--r--qadevOOo/tests/basic/ifc/view/XPrintable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XPrintable/view_XPrintable.xba119
-rw-r--r--qadevOOo/tests/basic/ifc/view/XScreenCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XScreenCursor/view_XScreenCursor.xba69
-rw-r--r--qadevOOo/tests/basic/ifc/view/XSelectionSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XSelectionSupplier/view_XSelectionSupplier.xba146
-rw-r--r--qadevOOo/tests/basic/ifc/view/XViewSettingsSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/view/XViewSettingsSupplier/view_XViewSettingsSupplier.xba60
-rw-r--r--qadevOOo/tests/basic/ifc/xml/UserDefinedAttributeSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/xml/UserDefinedAttributeSupplier/xml_UserDefinedAttributeSupplier.xba72
-rw-r--r--qadevOOo/tests/basic/ifc/xml/sax/XDocumentHandler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/ifc/xml/sax/XDocumentHandler/xml_sax_XDocumentHandler.xba137
-rw-r--r--qadevOOo/tests/basic/mod/acceptor.uno/Acceptor/acceptor_uno_Acceptor.xba49
-rw-r--r--qadevOOo/tests/basic/mod/acceptor.uno/Acceptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/acceptor/Acceptor/acceptor_Acceptor.xba49
-rw-r--r--qadevOOo/tests/basic/mod/acceptor/Acceptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/adabas/ODriver/adabas_ODriver.xba69
-rw-r--r--qadevOOo/tests/basic/mod/adabas/ODriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ado/ODriver/ado_ODriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/ado/ODriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/brdgfctr/BridgeFactory/brdgfctr_BridgeFactory.xba70
-rw-r--r--qadevOOo/tests/basic/mod/brdgfctr/BridgeFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/bridgefac.uno/BridgeFactory/bridgefac_uno_BridgeFactory.xba70
-rw-r--r--qadevOOo/tests/basic/mod/bridgefac.uno/BridgeFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedContentResultSetFactory/cached_CachedContentResultSetFactory.xba100
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedContentResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedContentResultSetStubFactory/cached_CachedContentResultSetStubFactory.xba94
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedContentResultSetStubFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedDynamicResultSetFactory/cached_CachedDynamicResultSetFactory.xba96
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedDynamicResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedDynamicResultSetStubFactory/cached_CachedDynamicResultSetStubFactory.xba94
-rw-r--r--qadevOOo/tests/basic/mod/cached/CachedDynamicResultSetStubFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cmdmail/SimpleCommandMail/cmdmail_SimpleCommandMail.xba56
-rw-r--r--qadevOOo/tests/basic/mod/cmdmail/SimpleCommandMail/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cnt/ChaosContentProvider/cnt_ChaosContentProvider.xba59
-rw-r--r--qadevOOo/tests/basic/mod/cnt/ChaosContentProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cnt/CntUnoDataContainer/cnt_CntUnoDataContainer.xba94
-rw-r--r--qadevOOo/tests/basic/mod/cnt/CntUnoDataContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cnt/PropertyMatcherFactory/cnt_PropertyMatcherFactory.xba49
-rw-r--r--qadevOOo/tests/basic/mod/cnt/PropertyMatcherFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/connector.uno/Connector/connector_uno_Connector.xba49
-rw-r--r--qadevOOo/tests/basic/mod/connector.uno/Connector/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/connectr/Connector/connectr_Connector.xba49
-rw-r--r--qadevOOo/tests/basic/mod/connectr/Connector/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/corefl/CoreReflection/corefl_CoreReflection.xba57
-rw-r--r--qadevOOo/tests/basic/mod/corefl/CoreReflection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/corereflection.uno/CoreReflection/corereflection_uno_CoreReflection.xba57
-rw-r--r--qadevOOo/tests/basic/mod/corereflection.uno/CoreReflection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/cpld/DLLComponentLoader/cpld_DLLComponentLoader.xba59
-rw-r--r--qadevOOo/tests/basic/mod/cpld/DLLComponentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ConnectionLineAccessibility/dbaccess_ConnectionLineAccessibility.xba147
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ConnectionLineAccessibility/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/DBContentLoader/dbaccess_DBContentLoader.xba63
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/DBContentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/JoinViewAccessibility/dbaccess_JoinViewAccessibility.xba148
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/JoinViewAccessibility/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OCommandDefinition/dbaccess_OCommandDefinition.xba56
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OCommandDefinition/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatabaseContext/dbaccess_ODatabaseContext.xba56
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatabaseContext/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatabaseSource/dbaccess_ODatabaseSource.xba88
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatabaseSource/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatasourceAdministrationDialog/dbaccess_ODatasourceAdministrationDialog.xba67
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatasourceAdministrationDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatasourceBrowser/dbaccess_ODatasourceBrowser.xba142
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ODatasourceBrowser/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OInteractionHandler/dbaccess_OInteractionHandler.xba56
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OInteractionHandler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ORowSet/dbaccess_ORowSet.xba176
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/ORowSet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OSQLMessageDialog/dbaccess_OSQLMessageDialog.xba56
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/OSQLMessageDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/SbaXGridControl/dbaccess_SbaXGridControl.xba222
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/SbaXGridControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/TableWindowAccessibility/dbaccess_TableWindowAccessibility.xba147
-rw-r--r--qadevOOo/tests/basic/mod/dbaccess/TableWindowAccessibility/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dbpool/OConnectionPool/dbpool_OConnectionPool.xba55
-rw-r--r--qadevOOo/tests/basic/mod/dbpool/OConnectionPool/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/defreg/NestedRegistry/defreg_NestedRegistry.xba94
-rw-r--r--qadevOOo/tests/basic/mod/defreg/NestedRegistry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dtrans/generic/dtrans_generic.xba58
-rw-r--r--qadevOOo/tests/basic/mod/dtrans/generic/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dynamicloader.uno/Dynamic/dynamicloader_uno_Dynamic.xba64
-rw-r--r--qadevOOo/tests/basic/mod/dynamicloader.uno/Dynamic/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/dynamicloader/Dynamic/dynamicloader_Dynamic.xba64
-rw-r--r--qadevOOo/tests/basic/mod/dynamicloader/Dynamic/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/file/calc/ODriver/file_calc_ODriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/file/calc/ODriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/file/dbase/ODriver/file_dbase_ODriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/file/dbase/ODriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/file/flat/ODriver/file_flat_ODriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/file/flat/ODriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fileacc/SimpleFileAccess/fileacc_SimpleFileAccess.xba49
-rw-r--r--qadevOOo/tests/basic/mod/fileacc/SimpleFileAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fop/FolderPicker/fop_FolderPicker.xba56
-rw-r--r--qadevOOo/tests/basic/mod/fop/FolderPicker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OButtonControl/forms_OButtonControl.xba107
-rw-r--r--qadevOOo/tests/basic/mod/forms/OButtonControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OButtonModel/forms_OButtonModel.xba72
-rw-r--r--qadevOOo/tests/basic/mod/forms/OButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCheckBoxControl/forms_OCheckBoxControl.xba127
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCheckBoxControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCheckBoxModel/forms_OCheckBoxModel.xba71
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCheckBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OComboBoxControl/forms_OComboBoxControl.xba108
-rw-r--r--qadevOOo/tests/basic/mod/forms/OComboBoxControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OComboBoxModel/forms_OComboBoxModel.xba131
-rw-r--r--qadevOOo/tests/basic/mod/forms/OComboBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCurrencyControl/forms_OCurrencyControl.xba106
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCurrencyControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCurrencyModel/forms_OCurrencyModel.xba137
-rw-r--r--qadevOOo/tests/basic/mod/forms/OCurrencyModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODatabaseForm/forms_ODatabaseForm.xba212
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODatabaseForm/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODateControl/forms_ODateControl.xba107
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODateControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODateModel/forms_ODateModel.xba140
-rw-r--r--qadevOOo/tests/basic/mod/forms/ODateModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OEditControl/forms_OEditControl.xba106
-rw-r--r--qadevOOo/tests/basic/mod/forms/OEditControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OEditModel/forms_OEditModel.xba128
-rw-r--r--qadevOOo/tests/basic/mod/forms/OEditModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFileControlModel/forms_OFileControlModel.xba76
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFileControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFixedTextModel/forms_OFixedTextModel.xba74
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFixedTextModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormattedControl/forms_OFormattedControl.xba107
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormattedControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormattedFieldWrapper/forms_OFormattedFieldWrapper.xba166
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormattedFieldWrapper/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormsCollection/forms_OFormsCollection.xba97
-rw-r--r--qadevOOo/tests/basic/mod/forms/OFormsCollection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGridControlModel/forms_OGridControlModel.xba123
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGridControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGroupBoxControl/forms_OGroupBoxControl.xba104
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGroupBoxControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGroupBoxModel/forms_OGroupBoxModel.xba75
-rw-r--r--qadevOOo/tests/basic/mod/forms/OGroupBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OHiddenModel/forms_OHiddenModel.xba101
-rw-r--r--qadevOOo/tests/basic/mod/forms/OHiddenModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageButtonControl/forms_OImageButtonControl.xba105
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageButtonControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageButtonModel/forms_OImageButtonModel.xba74
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageControlControl/forms_OImageControlControl.xba108
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageControlControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageControlModel/forms_OImageControlModel.xba75
-rw-r--r--qadevOOo/tests/basic/mod/forms/OImageControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OListBoxControl/forms_OListBoxControl.xba121
-rw-r--r--qadevOOo/tests/basic/mod/forms/OListBoxControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OListBoxModel/forms_OListBoxModel.xba158
-rw-r--r--qadevOOo/tests/basic/mod/forms/OListBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ONumericControl/forms_ONumericControl.xba106
-rw-r--r--qadevOOo/tests/basic/mod/forms/ONumericControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ONumericModel/forms_ONumericModel.xba127
-rw-r--r--qadevOOo/tests/basic/mod/forms/ONumericModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OPatternControl/forms_OPatternControl.xba104
-rw-r--r--qadevOOo/tests/basic/mod/forms/OPatternControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OPatternModel/forms_OPatternModel.xba128
-rw-r--r--qadevOOo/tests/basic/mod/forms/OPatternModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ORadioButtonControl/forms_ORadioButtonControl.xba105
-rw-r--r--qadevOOo/tests/basic/mod/forms/ORadioButtonControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/ORadioButtonModel/forms_ORadioButtonModel.xba132
-rw-r--r--qadevOOo/tests/basic/mod/forms/ORadioButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OTimeControl/forms_OTimeControl.xba106
-rw-r--r--qadevOOo/tests/basic/mod/forms/OTimeControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/forms/OTimeModel/forms_OTimeModel.xba182
-rw-r--r--qadevOOo/tests/basic/mod/forms/OTimeModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fps/FilePicker/fps_FilePicker.xba80
-rw-r--r--qadevOOo/tests/basic/mod/fps/FilePicker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ftransl/DataFormatTranslator/ftransl_DataFormatTranslator.xba53
-rw-r--r--qadevOOo/tests/basic/mod/ftransl/DataFormatTranslator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/Desktop/fwk_Desktop.xba66
-rw-r--r--qadevOOo/tests/basic/mod/fwk/Desktop/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DispatchRecorder/fwk_DispatchRecorder.xba76
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DispatchRecorder/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DispatchRecorderSupplier/fwk_DispatchRecorderSupplier.xba53
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DispatchRecorderSupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DocumentProperties/fwk_DocumentProperties.xba60
-rw-r--r--qadevOOo/tests/basic/mod/fwk/DocumentProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/Frame/fwk_Frame.xba64
-rw-r--r--qadevOOo/tests/basic/mod/fwk/Frame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwk/JobHandler/fwk_JobHandler.xba59
-rw-r--r--qadevOOo/tests/basic/mod/fwk/JobHandler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwl/FilterFactory/fwl_FilterFactory.xba94
-rw-r--r--qadevOOo/tests/basic/mod/fwl/FilterFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwl/FrameLoaderFactory/fwl_FrameLoaderFactory.xba65
-rw-r--r--qadevOOo/tests/basic/mod/fwl/FrameLoaderFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwl/PathSettings/fwl_PathSettings.xba55
-rw-r--r--qadevOOo/tests/basic/mod/fwl/PathSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/fwl/TypeDetection/fwl_TypeDetection.xba55
-rw-r--r--qadevOOo/tests/basic/mod/fwl/TypeDetection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/BreakIterator/i18n_BreakIterator.xba72
-rw-r--r--qadevOOo/tests/basic/mod/i18n/BreakIterator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/CalendarImpl/i18n_CalendarImpl.xba55
-rw-r--r--qadevOOo/tests/basic/mod/i18n/CalendarImpl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/ChapterCollator/i18n_ChapterCollator.xba70
-rw-r--r--qadevOOo/tests/basic/mod/i18n/ChapterCollator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/CharacterClassification/i18n_CharacterClassification.xba56
-rw-r--r--qadevOOo/tests/basic/mod/i18n/CharacterClassification/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/Collator/i18n_Collator.xba70
-rw-r--r--qadevOOo/tests/basic/mod/i18n/Collator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/IndexEntrySupplier/i18n_IndexEntrySupplier.xba71
-rw-r--r--qadevOOo/tests/basic/mod/i18n/IndexEntrySupplier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/LocaleData/i18n_LocaleData.xba55
-rw-r--r--qadevOOo/tests/basic/mod/i18n/LocaleData/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/NumberFormatCodeMapper/i18n_NumberFormatCodeMapper.xba56
-rw-r--r--qadevOOo/tests/basic/mod/i18n/NumberFormatCodeMapper/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/TextSearch/i18n_TextSearch.xba59
-rw-r--r--qadevOOo/tests/basic/mod/i18n/TextSearch/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/i18n/Transliteration/i18n_Transliteration.xba71
-rw-r--r--qadevOOo/tests/basic/mod/i18n/Transliteration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/implreg.uno/ImplementationRegistration/implreg_uno_ImplementationRegistration.xba53
-rw-r--r--qadevOOo/tests/basic/mod/implreg.uno/ImplementationRegistration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/impreg/ImplementationRegistration/impreg_ImplementationRegistration.xba53
-rw-r--r--qadevOOo/tests/basic/mod/impreg/ImplementationRegistration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/insp/Introspection/insp_Introspection.xba53
-rw-r--r--qadevOOo/tests/basic/mod/insp/Introspection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/introspection.uno/Introspection/introspection_uno_Introspection.xba53
-rw-r--r--qadevOOo/tests/basic/mod/introspection.uno/Introspection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/inv/Invocation/inv_Invocation.xba66
-rw-r--r--qadevOOo/tests/basic/mod/inv/Invocation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/invadp/InvocationAdapterFactory/invadp_InvocationAdapterFactory.xba56
-rw-r--r--qadevOOo/tests/basic/mod/invadp/InvocationAdapterFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/invocadapt.uno/InvocationAdapterFactory/invocadapt_uno_InvocationAdapterFactory.xba56
-rw-r--r--qadevOOo/tests/basic/mod/invocadapt.uno/InvocationAdapterFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/invocation.uno/Invocation/invocation_uno_Invocation.xba66
-rw-r--r--qadevOOo/tests/basic/mod/invocation.uno/Invocation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/javaloader.uno/JavaComponentLoader/javaloader_uno_JavaComponentLoader.xba59
-rw-r--r--qadevOOo/tests/basic/mod/javaloader.uno/JavaComponentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/javaloader/JavaComponentLoader/javaloader_JavaComponentLoader.xba59
-rw-r--r--qadevOOo/tests/basic/mod/javaloader/JavaComponentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/javavm.uno/JavaVirtualMachine/javavm_uno_JavaVirtualMachine.xba72
-rw-r--r--qadevOOo/tests/basic/mod/javavm.uno/JavaVirtualMachine/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/jdbc/JDBCDriver/jdbc_JDBCDriver.xba71
-rw-r--r--qadevOOo/tests/basic/mod/jdbc/JDBCDriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/jen/JavaVirtualMachine/jen_JavaVirtualMachine.xba72
-rw-r--r--qadevOOo/tests/basic/mod/jen/JavaVirtualMachine/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lng/DicList/lng_DicList.xba89
-rw-r--r--qadevOOo/tests/basic/mod/lng/DicList/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lng/LinguProps/lng_LinguProps.xba59
-rw-r--r--qadevOOo/tests/basic/mod/lng/LinguProps/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lng/LngSvcMgr/lng_LngSvcMgr.xba59
-rw-r--r--qadevOOo/tests/basic/mod/lng/LngSvcMgr/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lnn/Hyphenator/lnn_Hyphenator.xba62
-rw-r--r--qadevOOo/tests/basic/mod/lnn/Hyphenator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lnn/SpellChecker/lnn_SpellChecker.xba62
-rw-r--r--qadevOOo/tests/basic/mod/lnn/SpellChecker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/lnn/Thesaurus/lnn_Thesaurus.xba62
-rw-r--r--qadevOOo/tests/basic/mod/lnn/Thesaurus/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/mcnttype/MimeContentTypeFactory/mcnttype_MimeContentTypeFactory.xba53
-rw-r--r--qadevOOo/tests/basic/mod/mcnttype/MimeContentTypeFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/mozab/MozabDriver/mozab_MozabDriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/mozab/MozabDriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/namingservice.uno/NamingService/namingservice_uno_NamingService.xba60
-rw-r--r--qadevOOo/tests/basic/mod/namingservice.uno/NamingService/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/namingservice/NamingService/namingservice_NamingService.xba60
-rw-r--r--qadevOOo/tests/basic/mod/namingservice/NamingService/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/nestedreg.uno/NestedRegistry/nestedreg_uno_NestedRegistry.xba94
-rw-r--r--qadevOOo/tests/basic/mod/nestedreg.uno/NestedRegistry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/odbc/ODBCDriver/odbc_ODBCDriver.xba67
-rw-r--r--qadevOOo/tests/basic/mod/odbc/ODBCDriver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/proxyfac.uno/ProxyFactory/proxyfac_ProxyFactory.xba53
-rw-r--r--qadevOOo/tests/basic/mod/proxyfac.uno/ProxyFactory/proxyfac_uno_ProxyFactory.xba53
-rw-r--r--qadevOOo/tests/basic/mod/proxyfac.uno/ProxyFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/proxyfac/ProxyFactory/proxyfac_ProxyFactory.xba53
-rw-r--r--qadevOOo/tests/basic/mod/proxyfac/ProxyFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/proxyset/SOffice52ProxySettings/proxyset_SOffice52ProxySettings.xba53
-rw-r--r--qadevOOo/tests/basic/mod/proxyset/SOffice52ProxySettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/proxyset/SystemProxySettings/proxyset_SystemProxySettings.xba53
-rw-r--r--qadevOOo/tests/basic/mod/proxyset/SystemProxySettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/rdbtdp/RegistryTypeDescriptionProvider/rdbtdp_RegistryTypeDescriptionProvider.xba70
-rw-r--r--qadevOOo/tests/basic/mod/rdbtdp/RegistryTypeDescriptionProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/regtypeprov.uno/RegistryTypeDescriptionProvider/regtypeprov_uno_RegistryTypeDescriptionProvider.xba70
-rw-r--r--qadevOOo/tests/basic/mod/regtypeprov.uno/RegistryTypeDescriptionProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/remotebridge.uno/various/remotebridge_uno_various.xba95
-rw-r--r--qadevOOo/tests/basic/mod/remotebridge.uno/various/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/remotebridge/various/remotebridge_various.xba98
-rw-r--r--qadevOOo/tests/basic/mod/remotebridge/various/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/AccessibleEditableTextPara_HeaderFooter/sc_AccessibleEditableTextPara_HeaderFooter.xba99
-rw-r--r--qadevOOo/tests/basic/mod/sc/AccessibleEditableTextPara_HeaderFooter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/AccessibleEditableTextPara_PreviewCell/sc_AccessibleEditableTextPara_PreviewCell.xba109
-rw-r--r--qadevOOo/tests/basic/mod/sc/AccessibleEditableTextPara_PreviewCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCell/sc_ScAccessibleCell.xba69
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvCell/sc_ScAccessibleCsvCell.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvGrid/sc_ScAccessibleCsvGrid.xba80
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvGrid/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvRuler/sc_ScAccessibleCsvRuler.xba87
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleCsvRuler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleDocument/sc_ScAccessibleDocument.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleDocumentPagePreview/sc_ScAccessibleDocumentPagePreview.xba91
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleDocumentPagePreview/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePageHeader/sc_ScAccessiblePageHeader.xba100
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePageHeader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePageHeaderArea/sc_ScAccessiblePageHeaderArea.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePageHeaderArea/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewCell/sc_ScAccessiblePreviewCell.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewHeaderCell/sc_ScAccessiblePreviewHeaderCell.xba87
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewHeaderCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewTable/sc_ScAccessiblePreviewTable.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessiblePreviewTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleSpreadsheet/sc_ScAccessibleSpreadsheet.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAccessibleSpreadsheet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAnnotationObj/sc_ScAnnotationObj.xba63
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAnnotationObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAnnotationsObj/sc_ScAnnotationsObj.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAnnotationsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAreaLinkObj/sc_ScAreaLinkObj.xba65
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAreaLinkObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAreaLinksObj/sc_ScAreaLinksObj.xba65
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAreaLinksObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatFieldObj/sc_ScAutoFormatFieldObj.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatFieldObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatObj/sc_ScAutoFormatObj.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatsObj/sc_ScAutoFormatsObj.xba76
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScAutoFormatsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellCursorObj/sc_ScCellCursorObj.xba145
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellCursorObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFieldObj/sc_ScCellFieldObj.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFieldObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFieldsObj/sc_ScCellFieldsObj.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFieldsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFormatsEnumeration/sc_ScCellFormatsEnumeration.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFormatsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFormatsObj/sc_ScCellFormatsObj.xba60
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellFormatsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellObj/sc_ScCellObj.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellRangeObj/sc_ScCellRangeObj.xba135
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellRangeObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellRangesObj/sc_ScCellRangesObj.xba78
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellRangesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellSearchObj/sc_ScCellSearchObj.xba57
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellSearchObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellTextCursor/sc_ScCellTextCursor.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellTextCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellsEnumeration/sc_ScCellsEnumeration.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellsObj/sc_ScCellsObj.xba74
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScCellsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScChartObj/sc_ScChartObj.xba98
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScChartObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScChartsObj/sc_ScChartsObj.xba95
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScChartsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScConsolidationDescriptor/sc_ScConsolidationDescriptor.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScConsolidationDescriptor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDDELinkObj/sc_ScDDELinkObj.xba91
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDDELinkObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDDELinksObj/sc_ScDDELinksObj.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDDELinksObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotFieldObj/sc_ScDataPilotFieldObj.xba100
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotFieldObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotFieldsObj/sc_ScDataPilotFieldsObj.xba94
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotFieldsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotTableObj/sc_ScDataPilotTableObj.xba122
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotTableObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotTablesObj/sc_ScDataPilotTablesObj.xba91
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDataPilotTablesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDatabaseRangeObj/sc_ScDatabaseRangeObj.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDatabaseRangeObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDatabaseRangesObj/sc_ScDatabaseRangesObj.xba74
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDatabaseRangesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDrawPageObj/sc_ScDrawPageObj.xba103
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDrawPageObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDrawPagesObj/sc_ScDrawPagesObj.xba55
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScDrawPagesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScFilterDescriptorBase/sc_ScFilterDescriptorBase.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScFilterDescriptorBase/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScFunctionListObj/sc_ScFunctionListObj.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScFunctionListObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFieldObj/sc_ScHeaderFieldObj.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFieldObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFieldsObj/sc_ScHeaderFieldsObj.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFieldsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterContentObj/sc_ScHeaderFooterContentObj.xba82
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterContentObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterTextCursor/sc_ScHeaderFooterTextCursor.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterTextCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterTextObj/sc_ScHeaderFooterTextObj.xba80
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScHeaderFooterTextObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_CellAnnotationsEnumeration/sc_ScIndexEnumeration_CellAnnotationsEnumeration.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_CellAnnotationsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_CellAreaLinksEnumeration/sc_ScIndexEnumeration_CellAreaLinksEnumeration.xba63
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_CellAreaLinksEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DDELinksEnumeration/sc_ScIndexEnumeration_DDELinksEnumeration.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DDELinksEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DataPilotFieldsEnumeration/sc_ScIndexEnumeration_DataPilotFieldsEnumeration.xba90
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DataPilotFieldsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DataPilotTablesEnumeration/sc_ScIndexEnumeration_DataPilotTablesEnumeration.xba89
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DataPilotTablesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DatabaseRangesEnumeration/sc_ScIndexEnumeration_DatabaseRangesEnumeration.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_DatabaseRangesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_FunctionDescriptionEnumeration/sc_ScIndexEnumeration_FunctionDescriptionEnumeration.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_FunctionDescriptionEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_LabelRangesEnumeration/sc_ScIndexEnumeration_LabelRangesEnumeration.xba78
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_LabelRangesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_NamedRangesEnumeration/sc_ScIndexEnumeration_NamedRangesEnumeration.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_NamedRangesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_ScenariosEnumeration/sc_ScIndexEnumeration_ScenariosEnumeration.xba80
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_ScenariosEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SheetCellRangesEnumeration/sc_ScIndexEnumeration_SheetCellRangesEnumeration.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SheetCellRangesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SheetLinksEnumeration/sc_ScIndexEnumeration_SheetLinksEnumeration.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SheetLinksEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SpreadsheetViewPanesEnumeration/sc_ScIndexEnumeration_SpreadsheetViewPanesEnumeration.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SpreadsheetViewPanesEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SpreadsheetsEnumeration/sc_ScIndexEnumeration_SpreadsheetsEnumeration.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SpreadsheetsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SubTotalFieldsEnumeration/sc_ScIndexEnumeration_SubTotalFieldsEnumeration.xba69
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_SubTotalFieldsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableAutoFormatEnumeration/sc_ScIndexEnumeration_TableAutoFormatEnumeration.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableAutoFormatEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableChartsEnumeration/sc_ScIndexEnumeration_TableChartsEnumeration.xba95
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableChartsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableColumnsEnumeration/sc_ScIndexEnumeration_TableColumnsEnumeration.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableColumnsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableConditionalEntryEnumeration/sc_ScIndexEnumeration_TableConditionalEntryEnumeration.xba106
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableConditionalEntryEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableRowsEnumeration/sc_ScIndexEnumeration_TableRowsEnumeration.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TableRowsEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TextFieldEnumeration/sc_ScIndexEnumeration_TextFieldEnumeration.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScIndexEnumeration_TextFieldEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScLabelRangeObj/sc_ScLabelRangeObj.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScLabelRangeObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScLabelRangesObj/sc_ScLabelRangesObj.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScLabelRangesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScModelObj/sc_ScModelObj.xba73
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScModelObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScNamedRangeObj/sc_ScNamedRangeObj.xba82
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScNamedRangeObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScNamedRangesObj/sc_ScNamedRangesObj.xba69
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScNamedRangesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScPageObj/sc_ScPageObj.xba106
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScPageObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScRecentFunctionsObj/sc_ScRecentFunctionsObj.xba61
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScRecentFunctionsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScScenariosObj/sc_ScScenariosObj.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScScenariosObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSheetLinkObj/sc_ScSheetLinkObj.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSheetLinkObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSheetLinksObj/sc_ScSheetLinksObj.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSheetLinksObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSpreadsheetSettings/sc_ScSpreadsheetSettings.xba61
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSpreadsheetSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSpreadsheetSettingsObj/sc_ScSpreadsheetSettingsObj.xba56
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSpreadsheetSettingsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleFamiliesObj/sc_ScStyleFamiliesObj.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleFamiliesObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleFamilyObj/sc_ScStyleFamilyObj.xba84
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleFamilyObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleObj/sc_ScStyleObj.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScStyleObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSubTotalDescriptorBase/sc_ScSubTotalDescriptorBase.xba61
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSubTotalDescriptorBase/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSubTotalFieldObj/sc_ScSubTotalFieldObj.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScSubTotalFieldObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTabViewObj/sc_ScTabViewObj.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTabViewObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableColumnObj/sc_ScTableColumnObj.xba69
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableColumnObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableColumnsObj/sc_ScTableColumnsObj.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableColumnsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableConditionalEntry/sc_ScTableConditionalEntry.xba103
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableConditionalEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableConditionalFormat/sc_ScTableConditionalFormat.xba104
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableConditionalFormat/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableRowObj/sc_ScTableRowObj.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableRowObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableRowsObj/sc_ScTableRowsObj.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableRowsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableSheetObj/sc_ScTableSheetObj.xba123
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableSheetObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableSheetsObj/sc_ScTableSheetsObj.xba78
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableSheetsObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableValidationObj/sc_ScTableValidationObj.xba60
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScTableValidationObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScViewPaneObj/sc_ScViewPaneObj.xba69
-rw-r--r--qadevOOo/tests/basic/mod/sc/ScViewPaneObj/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLContentExporter/sc_XMLContentExporter.xba124
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLContentExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLContentImporter/sc_XMLContentImporter.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLContentImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLExporter/sc_XMLExporter.xba122
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLImporter/sc_XMLImporter.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLMetaExporter/sc_XMLMetaExporter.xba110
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLMetaExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLMetaImporter/sc_XMLMetaImporter.xba93
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLMetaImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLSettingsExporter/sc_XMLSettingsExporter.xba118
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLSettingsExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLSettingsImporter/sc_XMLSettingsImporter.xba99
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLSettingsImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLStylesExporter/sc_XMLStylesExporter.xba110
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLStylesExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLStylesImporter/sc_XMLStylesImporter.xba100
-rw-r--r--qadevOOo/tests/basic/mod/sc/XMLStylesImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccArea/sch_AccArea.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccArea/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccAxis/sch_AccAxis.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccAxis/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDataPoint/sch_AccDataPoint.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDataPoint/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDataSeries/sch_AccDataSeries.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDataSeries/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDiagram/sch_AccDiagram.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccFloor/sch_AccFloor.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccFloor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccGrid/sch_AccGrid.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccGrid/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccLegend/sch_AccLegend.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccLegend/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccLegendEntry/sch_AccLegendEntry.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccLegendEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccStatisticsObject/sch_AccStatisticsObject.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccStatisticsObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccTitle/sch_AccTitle.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccTitle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccWall/sch_AccWall.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccWall/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccessibleDocumentView/sch_AccessibleDocumentView.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sch/AccessibleDocumentView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartAxis/sch_ChXChartAxis.xba57
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartAxis/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartData/sch_ChXChartData.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartData/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartDataArray/sch_ChXChartDataArray.xba74
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartDataArray/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartDocument/sch_ChXChartDocument.xba89
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartView/sch_ChXChartView.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXChartView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDataPoint/sch_ChXDataPoint.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDataPoint/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDataRow/sch_ChXDataRow.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDataRow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDiagram/sch_ChXDiagram.xba143
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChXDiagram/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartArea/sch_ChartArea.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartArea/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartGrid/sch_ChartGrid.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartGrid/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartLegend/sch_ChartLegend.xba83
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartLegend/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartLine/sch_ChartLine.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartLine/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartTitle/sch_ChartTitle.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sch/ChartTitle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleDrawDocumentView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleDrawDocumentView/sd_AccessibleDrawDocumentView.xba82
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleOutlineView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleOutlineView/sd_AccessibleOutlineView.xba136
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleSlideView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/AccessibleSlideView/sd_AccessibleSlideView.xba113
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDocLinkTargets/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDocLinkTargets/sd_SdDocLinkTargets.xba54
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDrawPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDrawPage/sd_SdDrawPage.xba107
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDrawPagesAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdDrawPagesAccess/sd_SdDrawPagesAccess.xba61
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdGenericDrawPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdGenericDrawPage/sd_SdGenericDrawPage.xba109
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdLayer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdLayer/sd_SdLayer.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdLayerManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdLayerManager/sd_SdLayerManager.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdMasterPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdMasterPage/sd_SdMasterPage.xba110
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdMasterPagesAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdMasterPagesAccess/sd_SdMasterPagesAccess.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdPageLinkTargets/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdPageLinkTargets/sd_SdPageLinkTargets.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoDrawView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoDrawView/sd_SdUnoDrawView.xba123
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoOutlineView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoOutlineView/sd_SdUnoOutlineView.xba130
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoPresView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdUnoPresView/sd_SdUnoPresView.xba137
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXCustomPresentation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXCustomPresentation/sd_SdXCustomPresentation.xba84
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXCustomPresentationAccess/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXCustomPresentationAccess/sd_SdXCustomPresentationAccess.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXImpressDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXImpressDocument/sd_SdXImpressDocument.xba100
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXPresentation/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXPresentation/sd_SdXPresentation.xba63
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sd/SdXShape/sd_SdXShape.xba98
-rw-r--r--qadevOOo/tests/basic/mod/servicemgr.uno/OServiceManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/servicemgr.uno/OServiceManager/servicemgr_uno_OServiceManager.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sfx/DocumentTemplates/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sfx/DocumentTemplates/sfx_DocumentTemplates.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sfx/FrameLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sfx/FrameLoader/sfx_FrameLoader.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sfx/SfxMacroLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sfx/SfxMacroLoader/sfx_SfxMacroLoader.xba62
-rw-r--r--qadevOOo/tests/basic/mod/sfx/StandaloneDocumentInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sfx/StandaloneDocumentInfo/sfx_StandaloneDocumentInfo.xba77
-rw-r--r--qadevOOo/tests/basic/mod/shlibloader.uno/DLLComponentLoader/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/shlibloader.uno/DLLComponentLoader/shlibloader_uno_DLLComponentLoader.xba59
-rw-r--r--qadevOOo/tests/basic/mod/simplereg.uno/SimpleRegistry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/simplereg.uno/SimpleRegistry/simplereg_uno_SimpleRegistry.xba53
-rw-r--r--qadevOOo/tests/basic/mod/simreg/SimpleRegistry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/simreg/SimpleRegistry/simreg_SimpleRegistry.xba53
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmEditAccessible/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmEditAccessible/sm_SmEditAccessible.xba78
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmGraphicAccessible/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmGraphicAccessible/sm_SmGraphicAccessible.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/SmModel/sm_SmModel.xba54
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLExporter/sm_XMLExporter.xba109
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLImporter/sm_XMLImporter.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLMetaExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLMetaExporter/sm_XMLMetaExporter.xba111
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLMetaImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLMetaImporter/sm_XMLMetaImporter.xba113
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLSettingsExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLSettingsExporter/sm_XMLSettingsExporter.xba107
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLSettingsImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sm/XMLSettingsImporter/sm_XMLSettingsImporter.xba98
-rw-r--r--qadevOOo/tests/basic/mod/smgr/OServiceManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/smgr/OServiceManager/smgr_OServiceManager.xba79
-rw-r--r--qadevOOo/tests/basic/mod/smplmail/SimpleSystemMail/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/smplmail/SimpleSystemMail/smplmail_SimpleSystemMail.xba62
-rw-r--r--qadevOOo/tests/basic/mod/srtrs/SortedDynamicResultSetFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/srtrs/SortedDynamicResultSetFactory/srtrs_SortedDynamicResultSetFactory.xba56
-rw-r--r--qadevOOo/tests/basic/mod/stm/DataInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/DataInputStream/stm_DataInputStream.xba131
-rw-r--r--qadevOOo/tests/basic/mod/stm/DataOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/DataOutputStream/stm_DataOutputStream.xba115
-rw-r--r--qadevOOo/tests/basic/mod/stm/MarkableInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/MarkableInputStream/stm_MarkableInputStream.xba125
-rw-r--r--qadevOOo/tests/basic/mod/stm/MarkableOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/MarkableOutputStream/stm_MarkableOutputStream.xba127
-rw-r--r--qadevOOo/tests/basic/mod/stm/ObjectInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/ObjectInputStream/stm_ObjectInputStream.xba109
-rw-r--r--qadevOOo/tests/basic/mod/stm/ObjectOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/ObjectOutputStream/stm_ObjectOutputStream.xba104
-rw-r--r--qadevOOo/tests/basic/mod/stm/Pipe/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/Pipe/stm_Pipe.xba81
-rw-r--r--qadevOOo/tests/basic/mod/stm/Pump/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/stm/Pump/stm_Pump.xba92
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/DataInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/DataInputStream/streams_uno_DataInputStream.xba131
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/DataOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/DataOutputStream/streams_uno_DataOutputStream.xba115
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/MarkableInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/MarkableInputStream/streams_uno_MarkableInputStream.xba125
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/MarkableOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/MarkableOutputStream/streams_uno_MarkableOutputStream.xba127
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/ObjectInputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/ObjectInputStream/streams_uno_ObjectInputStream.xba109
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/ObjectOutputStream/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/ObjectOutputStream/streams_uno_ObjectOutputStream.xba104
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/Pipe/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/Pipe/streams_uno_Pipe.xba81
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/Pump/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/streams.uno/Pump/streams_uno_Pump.xba92
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBox/svtools_AccessibleBrowseBox.xba115
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxHeaderBar/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxHeaderBar/svtools_AccessibleBrowseBoxHeaderBar.xba85
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxHeaderCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxHeaderCell/svtools_AccessibleBrowseBoxHeaderCell.xba98
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxTable/svtools_AccessibleBrowseBoxTable.xba81
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxTableCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleBrowseBoxTableCell/svtools_AccessibleBrowseBoxTableCell.xba98
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleIconChoiceCtrl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleIconChoiceCtrl/svtools_AccessibleIconChoiceCtrl.xba98
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleIconChoiceCtrlEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleIconChoiceCtrlEntry/svtools_AccessibleIconChoiceCtrlEntry.xba97
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTabBarPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTabBarPage/svtools_AccessibleTabBarPage.xba66
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTabBarPageList/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTabBarPageList/svtools_AccessibleTabBarPageList.xba75
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTreeListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTreeListBox/svtools_AccessibleTreeListBox.xba87
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTreeListBoxEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svtools/AccessibleTreeListBoxEntry/svtools_AccessibleTreeListBoxEntry.xba93
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleControlShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleControlShape/svx_AccessibleControlShape.xba89
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleEditableTextPara/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleEditableTextPara/svx_AccessibleEditableTextPara.xba108
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleGraphicShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleGraphicShape/svx_AccessibleGraphicShape.xba83
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleOLEShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleOLEShape/svx_AccessibleOLEShape.xba83
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePageShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePageShape/svx_AccessiblePageShape.xba86
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationGraphicShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationGraphicShape/svx_AccessiblePresentationGraphicShape.xba86
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationOLEShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationOLEShape/svx_AccessiblePresentationOLEShape.xba85
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessiblePresentationShape/svx_AccessiblePresentationShape.xba87
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/AccessibleShape/svx_AccessibleShape.xba83
-rw-r--r--qadevOOo/tests/basic/mod/svx/GraphicExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/GraphicExporter/svx_GraphicExporter.xba109
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxDrawPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxDrawPage/svx_SvxDrawPage.xba125
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxGraphCtrlAccessibleContext/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxGraphCtrlAccessibleContext/svx_SvxGraphCtrlAccessibleContext.xba102
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxGraphicObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxGraphicObject/svx_SvxGraphicObject.xba102
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShape/svx_SvxShape.xba80
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeCircle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeCircle/svx_SvxShapeCircle.xba102
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeCollection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeCollection/svx_SvxShapeCollection.xba68
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeConnector/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeConnector/svx_SvxShapeConnector.xba78
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeControl/svx_SvxShapeControl.xba108
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeDimensioning/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeDimensioning/svx_SvxShapeDimensioning.xba98
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeGroup/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapeGroup/svx_SvxShapeGroup.xba102
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapePolyPolygon/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapePolyPolygon/svx_SvxShapePolyPolygon.xba107
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapePolyPolygonBezier/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxShapePolyPolygonBezier/svx_SvxShapePolyPolygonBezier.xba121
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoNumberingRules/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoNumberingRules/svx_SvxUnoNumberingRules.xba58
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoText/svx_SvxUnoText.xba91
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextContent/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextContent/svx_SvxUnoTextContent.xba90
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextContentEnum/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextContentEnum/svx_SvxUnoTextContentEnum.xba81
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextCursor/svx_SvxUnoTextCursor.xba85
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextField/svx_SvxUnoTextField.xba94
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextRange/svx_SvxUnoTextRange.xba80
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextRangeEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/svx/SvxUnoTextRangeEnumeration/svx_SvxUnoTextRangeEnumeration.xba81
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleDocumentPageView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleDocumentPageView/sw_SwAccessibleDocumentPageView.xba110
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleDocumentView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleDocumentView/sw_SwAccessibleDocumentView.xba76
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleEndnoteView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleEndnoteView/sw_SwAccessibleEndnoteView.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleFooterView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleFooterView/sw_SwAccessibleFooterView.xba76
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleFootnoteView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleFootnoteView/sw_SwAccessibleFootnoteView.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleHeaderView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleHeaderView/sw_SwAccessibleHeaderView.xba80
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessiblePageView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessiblePageView/sw_SwAccessiblePageView.xba114
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleParagraphView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleParagraphView/sw_SwAccessibleParagraphView.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTableCellView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTableCellView/sw_SwAccessibleTableCellView.xba73
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTableView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTableView/sw_SwAccessibleTableView.xba84
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextEmbeddedObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextEmbeddedObject/sw_SwAccessibleTextEmbeddedObject.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextFrameView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextFrameView/sw_SwAccessibleTextFrameView.xba91
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextGraphicObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwAccessibleTextGraphicObject/sw_SwAccessibleTextGraphicObject.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextContainer/sw_SwXAutoTextContainer.xba59
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextEntry/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextEntry/sw_SwXAutoTextEntry.xba108
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextGroup/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXAutoTextGroup/sw_SwXAutoTextGroup.xba83
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBodyText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBodyText/sw_SwXBodyText.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBookmark/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBookmark/sw_SwXBookmark.xba104
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBookmarks/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXBookmarks/sw_SwXBookmarks.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXCell/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXCell/sw_SwXCell.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXCellRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXCellRange/sw_SwXCellRange.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXChapterNumbering/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXChapterNumbering/sw_SwXChapterNumbering.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndex/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndex/sw_SwXDocumentIndex.xba107
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndexMark/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndexMark/sw_SwXDocumentIndexMark.xba82
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndexes/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDocumentIndexes/sw_SwXDocumentIndexes.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDrawPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXDrawPage/sw_SwXDrawPage.xba86
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXEndnoteProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXEndnoteProperties/sw_SwXEndnoteProperties.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFieldEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFieldEnumeration/sw_SwXFieldEnumeration.xba72
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFieldMaster/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFieldMaster/sw_SwXFieldMaster.xba54
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnote/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnote/sw_SwXFootnote.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnoteProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnoteProperties/sw_SwXFootnoteProperties.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnoteText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnoteText/sw_SwXFootnoteText.xba76
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnotes/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFootnotes/sw_SwXFootnotes.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFrames/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXFrames/sw_SwXFrames.xba81
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXHeadFootText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXHeadFootText/sw_SwXHeadFootText.xba87
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXLineNumberingProperties/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXLineNumberingProperties/sw_SwXLineNumberingProperties.xba66
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXMailMerge/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXMailMerge/sw_SwXMailMerge.xba155
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXModule/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXModule/sw_SwXModule.xba50
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXNumberingRules/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXNumberingRules/sw_SwXNumberingRules.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXParagraph/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXParagraph/sw_SwXParagraph.xba101
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXParagraphEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXParagraphEnumeration/sw_SwXParagraphEnumeration.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPrintSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPrintSettings/sw_SwXPrintSettings.xba60
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPropertySet/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPropertySet/sw_SwXPropertySet.xba51
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPropertySetInfo/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXPropertySetInfo/sw_SwXPropertySetInfo.xba51
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXReferenceMark/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXReferenceMark/sw_SwXReferenceMark.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXReferenceMarks/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXReferenceMarks/sw_SwXReferenceMarks.xba85
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXShape/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXShape/sw_SwXShape.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyle/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyle/sw_SwXStyle.xba104
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyleFamilies/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyleFamilies/sw_SwXStyleFamilies.xba57
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyleFamily/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXStyleFamily/sw_SwXStyleFamily.xba78
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableCellText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableCellText/sw_SwXTableCellText.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableColumns/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableColumns/sw_SwXTableColumns.xba84
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableRows/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTableRows/sw_SwXTableRows.xba87
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextColumns/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextColumns/sw_SwXTextColumns.xba70
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextCursor/sw_SwXTextCursor.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextDefaults/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextDefaults/sw_SwXTextDefaults.xba75
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextDocument/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextDocument/sw_SwXTextDocument.xba98
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextEmbeddedObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextEmbeddedObject/sw_SwXTextEmbeddedObject.xba68
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextEmbeddedObjects/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextEmbeddedObjects/sw_SwXTextEmbeddedObjects.xba54
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextField/sw_SwXTextField.xba93
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFieldMasters/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFieldMasters/sw_SwXTextFieldMasters.xba76
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFieldTypes/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFieldTypes/sw_SwXTextFieldTypes.xba71
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFrame/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFrame/sw_SwXTextFrame.xba120
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFrameText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextFrameText/sw_SwXTextFrameText.xba83
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextGraphicObject/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextGraphicObject/sw_SwXTextGraphicObject.xba89
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextGraphicObjects/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextGraphicObjects/sw_SwXTextGraphicObjects.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextPortion/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextPortion/sw_SwXTextPortion.xba74
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextPortionEnumeration/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextPortionEnumeration/sw_SwXTextPortionEnumeration.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextRange/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextRange/sw_SwXTextRange.xba57
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextRanges/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextRanges/sw_SwXTextRanges.xba79
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSearch/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSearch/sw_SwXTextSearch.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSection/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSection/sw_SwXTextSection.xba103
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSections/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextSections/sw_SwXTextSections.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTable/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTable/sw_SwXTextTable.xba148
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTableCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTableCursor/sw_SwXTextTableCursor.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTableRow/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTableRow/sw_SwXTextTableRow.xba64
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTables/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextTables/sw_SwXTextTables.xba77
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextView/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextView/sw_SwXTextView.xba120
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextViewCursor/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXTextViewCursor/sw_SwXTextViewCursor.xba67
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXViewSettings/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/SwXViewSettings/sw_SwXViewSettings.xba58
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLContentExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLContentExporter/sw_XMLContentExporter.xba119
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLContentImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLContentImporter/sw_XMLContentImporter.xba90
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLExporter/sw_XMLExporter.xba121
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLImporter/sw_XMLImporter.xba91
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLMetaExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLMetaExporter/sw_XMLMetaExporter.xba111
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLMetaImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLMetaImporter/sw_XMLMetaImporter.xba92
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLSettingsExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLSettingsExporter/sw_XMLSettingsExporter.xba113
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLSettingsImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLSettingsImporter/sw_XMLSettingsImporter.xba110
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLStylesExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLStylesExporter/sw_XMLStylesExporter.xba106
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLStylesImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sw/XMLStylesImporter/sw_XMLStylesImporter.xba93
-rw-r--r--qadevOOo/tests/basic/mod/sysdtrans/SystemClipboard/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/sysdtrans/SystemClipboard/sysdtrans_SystemClipboard.xba86
-rw-r--r--qadevOOo/tests/basic/mod/syssh/SystemShellExecute/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/syssh/SystemShellExecute/syssh_SystemShellExecute.xba53
-rw-r--r--qadevOOo/tests/basic/mod/tcv/TypeConverter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/tcv/TypeConverter/tcv_TypeConverter.xba53
-rw-r--r--qadevOOo/tests/basic/mod/tdmgr/TypeDescriptionManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/tdmgr/TypeDescriptionManager/tdmgr_TypeDescriptionManager.xba59
-rw-r--r--qadevOOo/tests/basic/mod/text/DefaultNumberingProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/text/DefaultNumberingProvider/text_DefaultNumberingProvider.xba53
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleButton/toolkit_AccessibleButton.xba90
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleCheckBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleCheckBox/toolkit_AccessibleCheckBox.xba89
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleComboBox/toolkit_AccessibleComboBox.xba92
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleDropDownComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleDropDownComboBox/toolkit_AccessibleDropDownComboBox.xba65
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleDropDownListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleDropDownListBox/toolkit_AccessibleDropDownListBox.xba70
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleEdit/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleEdit/toolkit_AccessibleEdit.xba111
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleFixedText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleFixedText/toolkit_AccessibleFixedText.xba97
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleList/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleList/toolkit_AccessibleList.xba122
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleListBox/toolkit_AccessibleListBox.xba99
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleListItem/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleListItem/toolkit_AccessibleListItem.xba107
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenu/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenu/toolkit_AccessibleMenu.xba86
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuBar/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuBar/toolkit_AccessibleMenuBar.xba75
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuItem/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuItem/toolkit_AccessibleMenuItem.xba82
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuSeparator/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleMenuSeparator/toolkit_AccessibleMenuSeparator.xba77
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleRadioButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleRadioButton/toolkit_AccessibleRadioButton.xba102
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleScrollBar/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleScrollBar/toolkit_AccessibleScrollBar.xba78
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleStatusBar/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleStatusBar/toolkit_AccessibleStatusBar.xba73
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleStatusBarItem/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleStatusBarItem/toolkit_AccessibleStatusBarItem.xba91
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleTabControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleTabControl/toolkit_AccessibleTabControl.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleTabPage/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleTabPage/toolkit_AccessibleTabPage.xba106
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleToolBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleToolBox/toolkit_AccessibleToolBox.xba79
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleToolBoxItem/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/AccessibleToolBoxItem/toolkit_AccessibleToolBoxItem.xba79
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/TabController/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/TabController/toolkit_TabController.xba75
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/TabControllerModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/TabControllerModel/toolkit_TabControllerModel.xba74
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/Toolkit/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/Toolkit/toolkit_Toolkit.xba65
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlButton/toolkit_UnoControlButton.xba111
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlButtonModel/toolkit_UnoControlButtonModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCheckBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCheckBox/toolkit_UnoControlCheckBox.xba119
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCheckBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCheckBoxModel/toolkit_UnoControlCheckBoxModel.xba56
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlComboBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlComboBox/toolkit_UnoControlComboBox.xba103
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlComboBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlComboBoxModel/toolkit_UnoControlComboBoxModel.xba56
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlContainer/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlContainer/toolkit_UnoControlContainer.xba113
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlContainerModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlContainerModel/toolkit_UnoControlContainerModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCurrencyField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCurrencyField/toolkit_UnoControlCurrencyField.xba105
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCurrencyFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlCurrencyFieldModel/toolkit_UnoControlCurrencyFieldModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDateField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDateField/toolkit_UnoControlDateField.xba102
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDateFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDateFieldModel/toolkit_UnoControlDateFieldModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDialog/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDialog/toolkit_UnoControlDialog.xba108
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDialogModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlDialogModel/toolkit_UnoControlDialogModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlEdit/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlEdit/toolkit_UnoControlEdit.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlEditModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlEditModel/toolkit_UnoControlEditModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFileControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFileControl/toolkit_UnoControlFileControl.xba103
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFileControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFileControlModel/toolkit_UnoControlFileControlModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedLineModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedLineModel/toolkit_UnoControlFixedLineModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedText/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedText/toolkit_UnoControlFixedText.xba102
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedTextModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFixedTextModel/toolkit_UnoControlFixedTextModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFormattedField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFormattedField/toolkit_UnoControlFormattedField.xba100
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFormattedFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlFormattedFieldModel/toolkit_UnoControlFormattedFieldModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlGroupBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlGroupBox/toolkit_UnoControlGroupBox.xba102
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlGroupBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlGroupBoxModel/toolkit_UnoControlGroupBoxModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlImageControl/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlImageControl/toolkit_UnoControlImageControl.xba99
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlImageControlModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlImageControlModel/toolkit_UnoControlImageControlModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlListBox/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlListBox/toolkit_UnoControlListBox.xba120
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlListBoxModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlListBoxModel/toolkit_UnoControlListBoxModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlNumericField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlNumericField/toolkit_UnoControlNumericField.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlNumericFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlNumericFieldModel/toolkit_UnoControlNumericFieldModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlPatternField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlPatternField/toolkit_UnoControlPatternField.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlPatternFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlPatternFieldModel/toolkit_UnoControlPatternFieldModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlProgressBarModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlProgressBarModel/toolkit_UnoControlProgressBarModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlRadioButton/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlRadioButton/toolkit_UnoControlRadioButton.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlRadioButtonModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlRadioButtonModel/toolkit_UnoControlRadioButtonModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlScrollBarModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlScrollBarModel/toolkit_UnoControlScrollBarModel.xba57
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlTimeField/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlTimeField/toolkit_UnoControlTimeField.xba101
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlTimeFieldModel/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/toolkit/UnoControlTimeFieldModel/toolkit_UnoControlTimeFieldModel.xba59
-rw-r--r--qadevOOo/tests/basic/mod/typeconverter.uno/TypeConverter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/typeconverter.uno/TypeConverter/typeconverter_uno_TypeConverter.xba53
-rw-r--r--qadevOOo/tests/basic/mod/typemgr.uno/TypeDescriptionManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/typemgr.uno/TypeDescriptionManager/typemgr_uno_TypeDescriptionManager.xba59
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbContentProviderProxyFactory/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbContentProviderProxyFactory/ucb_UcbContentProviderProxyFactory.xba53
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbPropertiesManager/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbPropertiesManager/ucb_UcbPropertiesManager.xba53
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbStore/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UcbStore/ucb_UcbStore.xba53
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UniversalContentBroker/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucb/UniversalContentBroker/ucb_UniversalContentBroker.xba80
-rw-r--r--qadevOOo/tests/basic/mod/ucpdav/WebDAVContentProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucpdav/WebDAVContentProvider/ucpdav_WebDAVContentProvider.xba69
-rw-r--r--qadevOOo/tests/basic/mod/ucpfile/FileProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucpfile/FileProvider/ucpfile_FileProvider.xba73
-rw-r--r--qadevOOo/tests/basic/mod/ucphier/HierarchyContentProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucphier/HierarchyContentProvider/ucphier_HierarchyContentProvider.xba65
-rw-r--r--qadevOOo/tests/basic/mod/ucphier/HierarchyDataSource/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucphier/HierarchyDataSource/ucphier_HierarchyDataSource.xba71
-rw-r--r--qadevOOo/tests/basic/mod/ucppkg/PackageContentProvider/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/ucppkg/PackageContentProvider/ucppkg_PackageContentProvider.xba65
-rw-r--r--qadevOOo/tests/basic/mod/uui/UUIInteractionHandler/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/uui/UUIInteractionHandler/uui_UUIInteractionHandler.xba53
-rw-r--r--qadevOOo/tests/basic/mod/uuresolver.uno/UnoUrlResolver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/uuresolver.uno/UnoUrlResolver/uuresolver_uno_UnoUrlResolver.xba53
-rw-r--r--qadevOOo/tests/basic/mod/uuresolver/UnoUrlResolver/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/uuresolver/UnoUrlResolver/uuresolver_UnoUrlResolver.xba53
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLContentExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLContentExporter/xmloff_Chart_XMLContentExporter.xba111
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLContentImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLContentImporter/xmloff_Chart_XMLContentImporter.xba101
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLExporter/xmloff_Chart_XMLExporter.xba112
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLImporter/xmloff_Chart_XMLImporter.xba101
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLStylesExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLStylesExporter/xmloff_Chart_XMLStylesExporter.xba99
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLStylesImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Chart/XMLStylesImporter/xmloff_Chart_XMLStylesImporter.xba87
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLContentExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLContentExporter/xmloff_Draw_XMLContentExporter.xba115
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLContentImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLContentImporter/xmloff_Draw_XMLContentImporter.xba115
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLExporter/xmloff_Draw_XMLExporter.xba110
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLImporter/xmloff_Draw_XMLImporter.xba115
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLMetaExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLMetaExporter/xmloff_Draw_XMLMetaExporter.xba111
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLMetaImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLMetaImporter/xmloff_Draw_XMLMetaImporter.xba94
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLSettingsExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLSettingsExporter/xmloff_Draw_XMLSettingsExporter.xba119
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLSettingsImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLSettingsImporter/xmloff_Draw_XMLSettingsImporter.xba95
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLStylesExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLStylesExporter/xmloff_Draw_XMLStylesExporter.xba116
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLStylesImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Draw/XMLStylesImporter/xmloff_Draw_XMLStylesImporter.xba93
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLContentExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLContentExporter/xmloff_Impress_XMLContentExporter.xba112
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLContentImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLContentImporter/xmloff_Impress_XMLContentImporter.xba128
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLExporter/xmloff_Impress_XMLExporter.xba112
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLImporter/xmloff_Impress_XMLImporter.xba90
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLMetaExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLMetaExporter/xmloff_Impress_XMLMetaExporter.xba111
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLMetaImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLMetaImporter/xmloff_Impress_XMLMetaImporter.xba93
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLSettingsExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLSettingsExporter/xmloff_Impress_XMLSettingsExporter.xba123
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLSettingsImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLSettingsImporter/xmloff_Impress_XMLSettingsImporter.xba95
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLStylesExporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLStylesExporter/xmloff_Impress_XMLStylesExporter.xba113
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLStylesImporter/script.xlb5
-rw-r--r--qadevOOo/tests/basic/mod/xmloff/Impress/XMLStylesImporter/xmloff_Impress_XMLStylesImporter.xba95
-rw-r--r--qadevOOo/tests/java/complex/unoapi/CheckModuleAPI.java654
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessible.java57
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleAction.java167
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleComponent.java632
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleContext.java355
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleEditableText.java542
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleEventBroadcaster.java212
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleExtendedComponent.java123
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleImage.java74
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleSelection.java600
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleTable.java1010
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleText.java1195
-rw-r--r--qadevOOo/tests/java/ifc/accessibility/_XAccessibleValue.java351
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlButtonModel.java122
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlCheckBoxModel.java109
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlComboBoxModel.java138
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlContainerModel.java72
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlCurrencyFieldModel.java133
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDateFieldModel.java173
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDialogElement.java35
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlDialogModel.java87
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlEditModel.java130
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFileControlModel.java117
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFixedLineModel.java76
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFixedTextModel.java111
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlFormattedFieldModel.java251
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlGroupBoxModel.java85
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlImageControlModel.java109
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlListBoxModel.java126
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlModel.java35
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlNumericFieldModel.java133
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlPatternFieldModel.java116
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlProgressBarModel.java90
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlRadioButtonModel.java108
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlScrollBarModel.java115
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlSpinButtonModel.java71
-rw-r--r--qadevOOo/tests/java/ifc/awt/_UnoControlTimeFieldModel.java137
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XButton.java118
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XCheckBox.java150
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XComboBox.java285
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XControl.java222
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XControlContainer.java142
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XCurrencyField.java308
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDataTransferProviderAccess.java135
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDateField.java340
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XDialog.java158
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XFixedText.java120
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XImageConsumer.java144
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XImageProducer.java165
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XItemListener.java119
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XLayoutConstrains.java77
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XListBox.java513
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XMessageBoxFactory.java130
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XNumericField.java311
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XPatternField.java176
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XRadioButton.java151
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XScrollBar.java228
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSpinField.java216
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XSpinValue.java220
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTabController.java168
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTabControllerModel.java166
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextComponent.java270
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextLayoutConstrains.java80
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTextListener.java128
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTimeField.java295
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XToolkit.java151
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XTopWindow.java206
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XUnoControlContainer.java181
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XUserInputInterception.java539
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XView.java143
-rw-r--r--qadevOOo/tests/java/ifc/awt/_XWindow.java624
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_TreeControlModel.java37
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeDataModel.java99
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XMutableTreeNode.java295
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeControl.java671
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeDataModel.java183
-rw-r--r--qadevOOo/tests/java/ifc/awt/tree/_XTreeNode.java261
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XExactName.java94
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XFastPropertySet.java235
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XHierarchicalPropertySet.java161
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XIntrospection.java62
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiHierarchicalPropertySet.java157
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertySet.java378
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XMultiPropertyStates.java236
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XProperty.java44
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyAccess.java236
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyContainer.java309
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySet.java625
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertySetInfo.java126
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyState.java274
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XPropertyWithState.java113
-rw-r--r--qadevOOo/tests/java/ifc/beans/_XTolerantMultiPropertySet.java346
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XBridge.java148
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XBridgeFactory.java233
-rw-r--r--qadevOOo/tests/java/ifc/bridge/_XUnoUrlResolver.java207
-rw-r--r--qadevOOo/tests/java/ifc/chart/_BarDiagram.java159
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Chart3DBarProperties.java98
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxis.java196
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisXSupplier.java141
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisYSupplier.java167
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartAxisZSupplier.java204
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDataPointProperties.java115
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDataRowProperties.java63
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartDocument.java44
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartLegend.java42
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartStatistics.java74
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTableAddressSupplier.java67
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTitle.java57
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTwoAxisXSupplier.java108
-rw-r--r--qadevOOo/tests/java/ifc/chart/_ChartTwoAxisYSupplier.java108
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Diagram.java68
-rw-r--r--qadevOOo/tests/java/ifc/chart/_Dim3DDiagram.java67
-rw-r--r--qadevOOo/tests/java/ifc/chart/_LineDiagram.java194
-rw-r--r--qadevOOo/tests/java/ifc/chart/_StackableDiagram.java89
-rw-r--r--qadevOOo/tests/java/ifc/chart/_StockDiagram.java87
-rw-r--r--qadevOOo/tests/java/ifc/chart/_X3DDisplay.java77
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisXSupplier.java106
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisYSupplier.java109
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XAxisZSupplier.java109
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartData.java184
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartDataArray.java233
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XChartDocument.java164
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XDiagram.java156
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XStatisticDisplay.java91
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XTwoAxisXSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/chart/_XTwoAxisYSupplier.java71
-rw-r--r--qadevOOo/tests/java/ifc/configuration/_XTemplateContainer.java50
-rw-r--r--qadevOOo/tests/java/ifc/configuration/_XTemplateInstance.java50
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XBackend.java265
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XBackendEntities.java181
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayer.java90
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayerHandler.java266
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XLayerImporter.java166
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XMultiLayerStratum.java316
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSchema.java263
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSchemaSupplier.java118
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XSingleLayerStratum.java152
-rw-r--r--qadevOOo/tests/java/ifc/configuration/backend/_XUpdateHandler.java260
-rw-r--r--qadevOOo/tests/java/ifc/connection/_XAcceptor.java323
-rw-r--r--qadevOOo/tests/java/ifc/connection/_XConnector.java198
-rw-r--r--qadevOOo/tests/java/ifc/container/_XChild.java100
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContainer.java370
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContainerQuery.java162
-rw-r--r--qadevOOo/tests/java/ifc/container/_XContentEnumerationAccess.java95
-rw-r--r--qadevOOo/tests/java/ifc/container/_XElementAccess.java69
-rw-r--r--qadevOOo/tests/java/ifc/container/_XEnumeration.java137
-rw-r--r--qadevOOo/tests/java/ifc/container/_XEnumerationAccess.java57
-rw-r--r--qadevOOo/tests/java/ifc/container/_XHierarchicalName.java80
-rw-r--r--qadevOOo/tests/java/ifc/container/_XHierarchicalNameAccess.java92
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexAccess.java158
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexContainer.java210
-rw-r--r--qadevOOo/tests/java/ifc/container/_XIndexReplace.java211
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameAccess.java164
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameContainer.java259
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNameReplace.java226
-rw-r--r--qadevOOo/tests/java/ifc/container/_XNamed.java165
-rw-r--r--qadevOOo/tests/java/ifc/container/_XSet.java150
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/_XDataFormatTranslator.java77
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/_XMimeContentTypeFactory.java95
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboard.java146
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardEx.java55
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XClipboardNotifier.java175
-rw-r--r--qadevOOo/tests/java/ifc/datatransfer/clipboard/_XFlushableClipboard.java56
-rw-r--r--qadevOOo/tests/java/ifc/document/_DocumentInfo.java151
-rw-r--r--qadevOOo/tests/java/ifc/document/_ExportFilter.java51
-rw-r--r--qadevOOo/tests/java/ifc/document/_ImportFilter.java52
-rw-r--r--qadevOOo/tests/java/ifc/document/_LinkTarget.java75
-rw-r--r--qadevOOo/tests/java/ifc/document/_OfficeDocument.java45
-rw-r--r--qadevOOo/tests/java/ifc/document/_Settings.java174
-rw-r--r--qadevOOo/tests/java/ifc/document/_XActionLockable.java109
-rw-r--r--qadevOOo/tests/java/ifc/document/_XDocumentInfo.java224
-rw-r--r--qadevOOo/tests/java/ifc/document/_XDocumentInfoSupplier.java56
-rw-r--r--qadevOOo/tests/java/ifc/document/_XDocumentInsertable.java198
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEmbeddedObjectSupplier.java56
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEventBroadcaster.java83
-rw-r--r--qadevOOo/tests/java/ifc/document/_XEventsSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/document/_XExporter.java90
-rw-r--r--qadevOOo/tests/java/ifc/document/_XFilter.java183
-rw-r--r--qadevOOo/tests/java/ifc/document/_XImporter.java77
-rw-r--r--qadevOOo/tests/java/ifc/document/_XLinkTargetSupplier.java59
-rw-r--r--qadevOOo/tests/java/ifc/document/_XMimeTypeInfo.java91
-rw-r--r--qadevOOo/tests/java/ifc/document/_XStandaloneDocumentInfo.java131
-rw-r--r--qadevOOo/tests/java/ifc/document/_XTypeDetection.java123
-rw-r--r--qadevOOo/tests/java/ifc/document/_XViewDataSupplier.java123
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_AreaShapeDescriptor.java115
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_CaptionShape.java35
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorProperties.java48
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorShape.java78
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ConnectorShapeDescriptor.java43
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DimensioningShapeDescriptor.java48
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DrawingDocument.java45
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_DrawingDocumentDrawView.java177
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_EllipseShape.java46
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_EllipseShapeDescriptor.java36
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_FillProperties.java219
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GenericDrawPage.java96
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GenericDrawingDocument.java34
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GraphicObjectShape.java177
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_GraphicObjectShapeDescriptor.java71
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Layer.java47
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_LineProperties.java100
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_LineShapeDescriptor.java150
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_MeasureProperties.java60
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_MeasureShape.java46
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_PolyPolygonBezierDescriptor.java47
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_PolyPolygonDescriptor.java47
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_RotationDescriptor.java102
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShadowDescriptor.java43
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShadowProperties.java48
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Shape.java158
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_ShapeDescriptor.java147
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_Text.java72
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextProperties.java67
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextShape.java44
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_TextShapeDescriptor.java36
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XConnectorShape.java147
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XControlShape.java106
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageDuplicator.java91
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageExpander.java74
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageSummarizer.java74
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPageSupplier.java44
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPages.java94
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawPagesSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XDrawView.java113
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XGluePointsSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XLayerManager.java166
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XLayerSupplier.java70
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XMasterPageTarget.java108
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XMasterPagesSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShape.java196
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeBinder.java109
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeCombiner.java110
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeDescriptor.java97
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeGroup.java70
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapeGrouper.java110
-rw-r--r--qadevOOo/tests/java/ifc/drawing/_XShapes.java109
-rw-r--r--qadevOOo/tests/java/ifc/form/_DataAwareControlModel.java168
-rw-r--r--qadevOOo/tests/java/ifc/form/_FormComponent.java43
-rw-r--r--qadevOOo/tests/java/ifc/form/_FormControlModel.java45
-rw-r--r--qadevOOo/tests/java/ifc/form/_XApproveActionBroadcaster.java110
-rw-r--r--qadevOOo/tests/java/ifc/form/_XBoundComponent.java58
-rw-r--r--qadevOOo/tests/java/ifc/form/_XBoundControl.java82
-rw-r--r--qadevOOo/tests/java/ifc/form/_XChangeBroadcaster.java200
-rw-r--r--qadevOOo/tests/java/ifc/form/_XConfirmDeleteBroadcaster.java75
-rwxr-xr-xqadevOOo/tests/java/ifc/form/_XDatabaseParameterBroadcaster.java100
-rw-r--r--qadevOOo/tests/java/ifc/form/_XFormController.java173
-rw-r--r--qadevOOo/tests/java/ifc/form/_XFormsSupplier.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGrid.java83
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGridColumnFactory.java80
-rw-r--r--qadevOOo/tests/java/ifc/form/_XGridFieldDataSupplier.java68
-rw-r--r--qadevOOo/tests/java/ifc/form/_XImageProducerSupplier.java61
-rw-r--r--qadevOOo/tests/java/ifc/form/_XLoadListener.java94
-rw-r--r--qadevOOo/tests/java/ifc/form/_XLoadable.java247
-rw-r--r--qadevOOo/tests/java/ifc/form/_XReset.java194
-rw-r--r--qadevOOo/tests/java/ifc/form/_XSubmit.java191
-rw-r--r--qadevOOo/tests/java/ifc/form/_XUpdateBroadcaster.java248
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseCheckBox.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_BindableDatabaseRadioButton.java36
-rw-r--r--qadevOOo/tests/java/ifc/form/binding/_XBindableValue.java122
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CheckBox.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ComboBox.java43
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CommandButton.java45
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_CurrencyField.java58
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DataForm.java89
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseComboBox.java46
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseForm.java93
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseFormattedField.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseImageControl.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseListBox.java46
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabasePatternField.java45
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DatabaseTextField.java45
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_DateField.java55
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_FileControl.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_FormattedField.java35
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_GridControl.java101
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_HTMLForm.java47
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_HiddenControl.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ImageButton.java46
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ListBox.java46
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_NavigationToolBar.java52
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_NumericField.java57
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_PatternField.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_RadioButton.java46
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_RichTextControl.java34
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_ScrollBar.java34
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_SpinButton.java34
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_TextField.java44
-rw-r--r--qadevOOo/tests/java/ifc/form/component/_TimeField.java57
-rw-r--r--qadevOOo/tests/java/ifc/form/submission/_XSubmission.java192
-rw-r--r--qadevOOo/tests/java/ifc/form/submission/_XSubmissionSupplier.java81
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidatable.java85
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidatableFormComponent.java247
-rw-r--r--qadevOOo/tests/java/ifc/form/validation/_XValidityConstraintListener.java90
-rw-r--r--qadevOOo/tests/java/ifc/formula/_FormulaProperties.java99
-rw-r--r--qadevOOo/tests/java/ifc/frame/_Desktop.java54
-rw-r--r--qadevOOo/tests/java/ifc/frame/_Frame.java35
-rw-r--r--qadevOOo/tests/java/ifc/frame/_FrameLoader.java45
-rw-r--r--qadevOOo/tests/java/ifc/frame/_SynchronousFrameLoader.java45
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XComponentLoader.java157
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XController.java226
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDesktop.java130
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatch.java243
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchProvider.java167
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchProviderInterception.java142
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchRecorder.java224
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDispatchRecorderSupplier.java245
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XDocumentTemplates.java276
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrame.java583
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrameActionListener.java44
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFrameLoader.java210
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XFramesSupplier.java211
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XInplaceLayout.java48
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XLayoutManager.java198
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XModel.java258
-rwxr-xr-xqadevOOo/tests/java/ifc/frame/_XModuleManager.java163
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XNotifyingDispatch.java131
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XPopupMenuController.java139
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XStatusListener.java48
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XStorable.java228
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XSynchronousFrameLoader.java183
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XTasksSupplier.java100
-rw-r--r--qadevOOo/tests/java/ifc/frame/_XUIControllerRegistration.java63
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XBreakIterator.java681
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCalendar.java561
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCharacterClassification.java416
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XCollator.java430
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XExtendedCalendar.java138
-rwxr-xr-xqadevOOo/tests/java/ifc/i18n/_XExtendedIndexEntrySupplier.java336
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XExtendedTransliteration.java95
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XIndexEntrySupplier.java107
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XLocaleData.java497
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XNumberFormatCode.java163
-rw-r--r--qadevOOo/tests/java/ifc/i18n/_XTransliteration.java456
-rw-r--r--qadevOOo/tests/java/ifc/inspection/_XObjectInspector.java157
-rw-r--r--qadevOOo/tests/java/ifc/inspection/_XObjectInspectorModel.java160
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataControl.java249
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataSink.java111
-rw-r--r--qadevOOo/tests/java/ifc/io/_XActiveDataSource.java104
-rw-r--r--qadevOOo/tests/java/ifc/io/_XConnectable.java132
-rw-r--r--qadevOOo/tests/java/ifc/io/_XDataInputStream.java421
-rw-r--r--qadevOOo/tests/java/ifc/io/_XDataOutputStream.java282
-rw-r--r--qadevOOo/tests/java/ifc/io/_XInputStream.java247
-rw-r--r--qadevOOo/tests/java/ifc/io/_XMarkableStream.java197
-rw-r--r--qadevOOo/tests/java/ifc/io/_XObjectInputStream.java174
-rw-r--r--qadevOOo/tests/java/ifc/io/_XObjectOutputStream.java95
-rw-r--r--qadevOOo/tests/java/ifc/io/_XOutputStream.java173
-rw-r--r--qadevOOo/tests/java/ifc/io/_XPersistObject.java269
-rw-r--r--qadevOOo/tests/java/ifc/java/_XJavaThreadRegister_11.java70
-rw-r--r--qadevOOo/tests/java/ifc/java/_XJavaVM.java70
-rw-r--r--qadevOOo/tests/java/ifc/lang/_ServiceManager.java60
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XComponent.java181
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XEventListener.java62
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XInitialization.java110
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XLocalizable.java72
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMain.java72
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMultiComponentFactory.java128
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XMultiServiceFactory.java197
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XServiceDisplayName.java59
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XServiceInfo.java97
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XSingleServiceFactory.java168
-rw-r--r--qadevOOo/tests/java/ifc/lang/_XTypeProvider.java93
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_LinguProperties.java61
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XAvailableLocales.java58
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XDictionaryList.java295
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XHyphenator.java111
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceEventBroadcaster.java94
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XLinguServiceManager.java185
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSearchableDictionaryList.java73
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSpellChecker.java116
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XSupportedLocales.java89
-rw-r--r--qadevOOo/tests/java/ifc/linguistic2/_XThesaurus.java72
-rw-r--r--qadevOOo/tests/java/ifc/loader/_XImplementationLoader.java188
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_OutlineView.java36
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_Presentation.java91
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_PresentationView.java56
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_PreviewView.java39
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_SlidesView.java34
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XCustomPresentationSupplier.java58
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XPresentation.java83
-rw-r--r--qadevOOo/tests/java/ifc/presentation/_XPresentationSupplier.java58
-rwxr-xr-xqadevOOo/tests/java/ifc/qadevooo/_SelfTest.java83
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java107
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XProxyFactory.java97
-rw-r--r--qadevOOo/tests/java/ifc/reflection/_XTypeDescriptionEnumerationAccess.java95
-rw-r--r--qadevOOo/tests/java/ifc/registry/_XImplementationRegistration.java198
-rw-r--r--qadevOOo/tests/java/ifc/registry/_XSimpleRegistry.java414
-rw-r--r--qadevOOo/tests/java/ifc/script/_XEventAttacherManager.java498
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory.java112
-rw-r--r--qadevOOo/tests/java/ifc/script/_XInvocationAdapterFactory2.java114
-rw-r--r--qadevOOo/tests/java/ifc/script/_XTypeConverter.java131
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataAccessDescriptor.java125
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DataSource.java171
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_DatasourceAdministrationDialog.java45
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_ErrorMessageDialog.java69
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_QueryDefinition.java55
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_RowSet.java149
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_SingleSelectQueryComposer.java50
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XBookmarksSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XCompletedConnection.java84
-rwxr-xr-xqadevOOo/tests/java/ifc/sdb/_XCompletedExecution.java84
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XFormDocumentsSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XParametersSupplier.java61
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XQueryDefinitionsSupplier.java69
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XReportDocumentsSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XResultSetAccess.java69
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XRowSetApproveBroadcaster.java214
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSQLErrorBroadcaster.java38
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryAnalyzer.java299
-rw-r--r--qadevOOo/tests/java/ifc/sdb/_XSingleSelectQueryComposer.java395
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_ResultSet.java49
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_RowSet.java81
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XCloseable.java94
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XColumnLocate.java85
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDataSource.java114
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDriver.java213
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XDriverManager.java160
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XIsolatedConnection.java123
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XParameters.java574
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSet.java505
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSetMetaDataSupplier.java69
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XResultSetUpdate.java263
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRow.java544
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRowSet.java193
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XRowUpdate.java695
-rw-r--r--qadevOOo/tests/java/ifc/sdbc/_XWarningsSupplier.java139
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_ResultSet.java45
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XColumnsSupplier.java79
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XCreateCatalog.java50
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDataDefinitionSupplier.java179
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDeleteRows.java94
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XDropCatalog.java50
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XRowLocate.java234
-rw-r--r--qadevOOo/tests/java/ifc/sdbcx/_XTablesSupplier.java81
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_CellAreaLink.java48
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_DataPilotField.java169
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_DataPilotItem.java33
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_DatabaseImportDescriptor.java108
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_DatabaseRange.java48
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_DocumentSettings.java39
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_FunctionDescription.java156
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_GlobalSheetSettings.java56
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_Scenario.java41
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_Shape.java62
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetCell.java38
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetCellRange.java44
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetCellRanges.java33
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetFilterDescriptor.java52
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetLink.java84
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SheetSortDescriptor.java148
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_Spreadsheet.java63
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocument.java50
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SpreadsheetDocumentSettings.java150
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SpreadsheetViewSettings.java75
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_SubTotalDescriptor.java49
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_TableAutoFormat.java49
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_TableAutoFormatField.java130
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_TableValidation.java52
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XActivationBroadcaster.java105
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XAreaLink.java159
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XAreaLinks.java107
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XArrayFormulaRange.java182
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCalculatable.java105
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellAddressable.java59
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellFormatRangesSupplier.java92
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeAddressable.java57
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeData.java85
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeFormula.java71
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeMovement.java246
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangeReferrer.java103
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellRangesQuery.java307
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XCellSeries.java244
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XConsolidatable.java56
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XConsolidationDescriptor.java264
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDDELink.java111
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotDescriptor.java429
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotField.java70
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotFieldGrouping.java73
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotTable.java105
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotTable2.java576
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotTables.java157
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDataPilotTablesSupplier.java59
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDatabaseRange.java244
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDatabaseRanges.java121
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XDocumentAuditing.java228
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XEnhancedMouseClickBroadcaster.java163
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XFormulaQuery.java201
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XFunctionDescriptions.java131
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XGoalSeek.java112
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XHeaderFooterContent.java82
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XLabelRange.java109
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XLabelRanges.java97
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XMultipleOperation.java182
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XNamedRange.java209
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XNamedRanges.java327
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XPrintAreas.java158
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XRangeSelection.java384
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XRecentFunctions.java168
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XScenario.java100
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XScenarioEnhanced.java93
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XScenarios.java88
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XScenariosSupplier.java56
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAnnotation.java141
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAnnotationAnchor.java132
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAnnotationShapeSupplier.java43
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAnnotations.java90
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAnnotationsSupplier.java58
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetAuditing.java206
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetCellCursor.java403
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetCellRange.java57
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetCellRangeContainer.java205
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetCellRanges.java89
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetCondition.java158
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetConditionalEntries.java137
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetConditionalEntry.java75
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetFilterDescriptor.java82
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java135
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetFilterableEx.java99
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetLinkable.java112
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetOperation.java104
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetOutline.java145
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetPageBreak.java93
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSpreadsheet.java90
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSpreadsheetDocument.java59
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSpreadsheetView.java92
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSpreadsheets.java184
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSubTotalCalculatable.java125
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSubTotalDescriptor.java77
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSubTotalField.java115
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XUniqueCellFormatRangesSupplier.java83
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XUsedAreaCursor.java138
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XViewFreezable.java78
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XViewPane.java133
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XViewSplitable.java136
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterProperties.java544
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterPropertiesAsian.java77
-rw-r--r--qadevOOo/tests/java/ifc/style/_CharacterPropertiesComplex.java69
-rwxr-xr-xqadevOOo/tests/java/ifc/style/_CharacterStyle.java50
-rwxr-xr-xqadevOOo/tests/java/ifc/style/_PageProperties.java125
-rwxr-xr-xqadevOOo/tests/java/ifc/style/_PageStyle.java56
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphProperties.java507
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphPropertiesAsian.java86
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphPropertiesComplex.java55
-rw-r--r--qadevOOo/tests/java/ifc/style/_ParagraphStyle.java36
-rw-r--r--qadevOOo/tests/java/ifc/style/_Style.java54
-rw-r--r--qadevOOo/tests/java/ifc/style/_XStyle.java117
-rw-r--r--qadevOOo/tests/java/ifc/style/_XStyleFamiliesSupplier.java55
-rw-r--r--qadevOOo/tests/java/ifc/system/_XProxySettings.java305
-rw-r--r--qadevOOo/tests/java/ifc/system/_XSimpleMailClientSupplier.java77
-rw-r--r--qadevOOo/tests/java/ifc/system/_XSystemShellExecute.java130
-rw-r--r--qadevOOo/tests/java/ifc/table/_CellProperties.java110
-rw-r--r--qadevOOo/tests/java/ifc/table/_TableColumn.java74
-rw-r--r--qadevOOo/tests/java/ifc/table/_TableRow.java47
-rw-r--r--qadevOOo/tests/java/ifc/table/_XAutoFormattable.java134
-rw-r--r--qadevOOo/tests/java/ifc/table/_XCell.java167
-rw-r--r--qadevOOo/tests/java/ifc/table/_XCellCursor.java247
-rw-r--r--qadevOOo/tests/java/ifc/table/_XCellRange.java151
-rw-r--r--qadevOOo/tests/java/ifc/table/_XColumnRowRange.java66
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableChart.java125
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableCharts.java94
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableChartsSupplier.java60
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableColumns.java399
-rw-r--r--qadevOOo/tests/java/ifc/table/_XTableRows.java138
-rw-r--r--qadevOOo/tests/java/ifc/task/_XInteractionHandler.java151
-rw-r--r--qadevOOo/tests/java/ifc/task/_XJob.java98
-rw-r--r--qadevOOo/tests/java/ifc/task/_XJobExecutor.java79
-rw-r--r--qadevOOo/tests/java/ifc/task/_XStatusIndicatorFactory.java78
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseFrame.java124
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseFrameProperties.java45
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseIndex.java204
-rw-r--r--qadevOOo/tests/java/ifc/text/_BaseIndexMark.java45
-rw-r--r--qadevOOo/tests/java/ifc/text/_CellProperties.java155
-rw-r--r--qadevOOo/tests/java/ifc/text/_CellRange.java101
-rw-r--r--qadevOOo/tests/java/ifc/text/_Defaults.java41
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentIndex.java54
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentIndexMark.java47
-rw-r--r--qadevOOo/tests/java/ifc/text/_DocumentSettings.java35
-rw-r--r--qadevOOo/tests/java/ifc/text/_Footnote.java56
-rw-r--r--qadevOOo/tests/java/ifc/text/_FootnoteSettings.java104
-rw-r--r--qadevOOo/tests/java/ifc/text/_GenericTextDocument.java48
-rw-r--r--qadevOOo/tests/java/ifc/text/_LineNumberingProperties.java63
-rw-r--r--qadevOOo/tests/java/ifc/text/_MailMerge.java174
-rw-r--r--qadevOOo/tests/java/ifc/text/_NumberingLevel.java174
-rw-r--r--qadevOOo/tests/java/ifc/text/_NumberingRules.java48
-rw-r--r--qadevOOo/tests/java/ifc/text/_PrintPreviewSettings.java35
-rw-r--r--qadevOOo/tests/java/ifc/text/_PrintSettings.java56
-rw-r--r--qadevOOo/tests/java/ifc/text/_Text.java35
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextColumns.java73
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextContent.java46
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextDocument.java48
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextEmbeddedObject.java68
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextFieldMaster.java46
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextFrame.java69
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextGraphicObject.java171
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextPortion.java57
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextSection.java148
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextTable.java118
-rw-r--r--qadevOOo/tests/java/ifc/text/_TextTableRow.java52
-rw-r--r--qadevOOo/tests/java/ifc/text/_ViewSettings.java71
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextContainer.java141
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextEntry.java78
-rw-r--r--qadevOOo/tests/java/ifc/text/_XAutoTextGroup.java308
-rw-r--r--qadevOOo/tests/java/ifc/text/_XBookmarksSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/text/_XChapterNumberingSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDefaultNumberingProvider.java74
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDocumentIndex.java129
-rw-r--r--qadevOOo/tests/java/ifc/text/_XDocumentIndexesSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/text/_XEndnotesSupplier.java81
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnote.java116
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnotesSettingsSupplier.java63
-rw-r--r--qadevOOo/tests/java/ifc/text/_XFootnotesSupplier.java82
-rw-r--r--qadevOOo/tests/java/ifc/text/_XLineNumberingProperties.java61
-rw-r--r--qadevOOo/tests/java/ifc/text/_XLineNumberingSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/text/_XMailMergeBroadcaster.java162
-rw-r--r--qadevOOo/tests/java/ifc/text/_XPageCursor.java171
-rw-r--r--qadevOOo/tests/java/ifc/text/_XPagePrintable.java161
-rw-r--r--qadevOOo/tests/java/ifc/text/_XParagraphCursor.java140
-rw-r--r--qadevOOo/tests/java/ifc/text/_XReferenceMarksSupplier.java66
-rw-r--r--qadevOOo/tests/java/ifc/text/_XRelativeTextContentInsert.java136
-rw-r--r--qadevOOo/tests/java/ifc/text/_XSentenceCursor.java127
-rw-r--r--qadevOOo/tests/java/ifc/text/_XSimpleText.java136
-rw-r--r--qadevOOo/tests/java/ifc/text/_XText.java170
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextColumns.java114
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextContent.java117
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextCursor.java242
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextDocument.java71
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextEmbeddedObject.java60
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextEmbeddedObjectsSupplier.java61
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextField.java66
-rwxr-xr-xqadevOOo/tests/java/ifc/text/_XTextFieldsSupplier.java191
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextFrame.java68
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextFramesSupplier.java64
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextGraphicObjectsSupplier.java67
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRange.java184
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRangeCompare.java189
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextRangeMover.java97
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextSection.java77
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextSectionsSupplier.java75
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTable.java181
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTableCursor.java294
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextTablesSupplier.java66
-rw-r--r--qadevOOo/tests/java/ifc/text/_XTextViewCursorSupplier.java62
-rw-r--r--qadevOOo/tests/java/ifc/text/_XWordCursor.java132
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetFactory.java114
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedContentResultSetStubFactory.java112
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetFactory.java122
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCachedDynamicResultSetStubFactory.java192
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor.java249
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XCommandProcessor2.java50
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentIdentifierFactory.java77
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProvider.java138
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderFactory.java60
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XContentProviderManager.java278
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XDataContainer.java136
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XFileIdentifierConverter.java100
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XParameterizedContentProvider.java93
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertyMatcherFactory.java71
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XPropertySetRegistryFactory.java59
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderAcceptor.java100
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XRemoteContentProviderActivator.java79
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess.java542
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSimpleFileAccess2.java92
-rw-r--r--qadevOOo/tests/java/ifc/ucb/_XSortedDynamicResultSetFactory.java162
-rw-r--r--qadevOOo/tests/java/ifc/ui/_XContextMenuInterception.java212
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManager.java81
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XModuleUIConfigurationManagerSupplier.java64
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfiguration.java102
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfigurationListener.java53
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfigurationManager.java363
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfigurationPersistence.java83
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIConfigurationStorage.java76
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIElementFactory.java56
-rwxr-xr-xqadevOOo/tests/java/ifc/ui/_XUIElementFactoryRegistration.java83
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_FilePicker.java36
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XControlAccess.java142
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XControlInformation.java192
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XExecutableDialog.java195
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePicker.java160
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerControlAccess.java202
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePickerNotifier.java290
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilePreview.java122
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilterGroupManager.java64
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFilterManager.java106
-rw-r--r--qadevOOo/tests/java/ifc/ui/dialogs/_XFolderPicker.java115
-rw-r--r--qadevOOo/tests/java/ifc/uno/_XComponentContext.java81
-rw-r--r--qadevOOo/tests/java/ifc/uno/_XNamingService.java155
-rw-r--r--qadevOOo/tests/java/ifc/util/_PathSettings.java89
-rw-r--r--qadevOOo/tests/java/ifc/util/_SearchDescriptor.java53
-rw-r--r--qadevOOo/tests/java/ifc/util/_XCancellable.java65
-rw-r--r--qadevOOo/tests/java/ifc/util/_XChangesBatch.java172
-rw-r--r--qadevOOo/tests/java/ifc/util/_XChangesNotifier.java222
-rw-r--r--qadevOOo/tests/java/ifc/util/_XCloneable.java112
-rw-r--r--qadevOOo/tests/java/ifc/util/_XFlushable.java111
-rw-r--r--qadevOOo/tests/java/ifc/util/_XImportable.java202
-rw-r--r--qadevOOo/tests/java/ifc/util/_XIndent.java98
-rw-r--r--qadevOOo/tests/java/ifc/util/_XMergeable.java74
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModeSelector.java104
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModifiable.java57
-rw-r--r--qadevOOo/tests/java/ifc/util/_XModifyBroadcaster.java86
-rw-r--r--qadevOOo/tests/java/ifc/util/_XNumberFormatsSupplier.java98
-rw-r--r--qadevOOo/tests/java/ifc/util/_XNumberFormatter.java128
-rw-r--r--qadevOOo/tests/java/ifc/util/_XProtectable.java84
-rw-r--r--qadevOOo/tests/java/ifc/util/_XRefreshable.java119
-rw-r--r--qadevOOo/tests/java/ifc/util/_XReplaceDescriptor.java75
-rw-r--r--qadevOOo/tests/java/ifc/util/_XReplaceable.java147
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSearchDescriptor.java87
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSearchable.java185
-rw-r--r--qadevOOo/tests/java/ifc/util/_XSortable.java238
-rw-r--r--qadevOOo/tests/java/ifc/util/_XStringEscape.java64
-rw-r--r--qadevOOo/tests/java/ifc/util/_XStringSubstitution.java101
-rw-r--r--qadevOOo/tests/java/ifc/util/_XTextSearch.java119
-rw-r--r--qadevOOo/tests/java/ifc/util/_XURLTransformer.java471
-rw-r--r--qadevOOo/tests/java/ifc/view/_XControlAccess.java124
-rw-r--r--qadevOOo/tests/java/ifc/view/_XFormLayerAccess.java158
-rw-r--r--qadevOOo/tests/java/ifc/view/_XMultiSelectionSupplier.java427
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintJobBroadcaster.java150
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintSettingsSupplier.java62
-rw-r--r--qadevOOo/tests/java/ifc/view/_XPrintable.java196
-rw-r--r--qadevOOo/tests/java/ifc/view/_XScreenCursor.java87
-rw-r--r--qadevOOo/tests/java/ifc/view/_XSelectionSupplier.java208
-rw-r--r--qadevOOo/tests/java/ifc/view/_XViewSettingsSupplier.java62
-rw-r--r--qadevOOo/tests/java/ifc/xml/_UserDefinedAttributeSupplier.java72
-rw-r--r--qadevOOo/tests/java/ifc/xml/sax/_XDocumentHandler.java408
-rw-r--r--qadevOOo/tests/java/mod/_acceptor.uno/Acceptor.java122
-rw-r--r--qadevOOo/tests/java/mod/_acceptor/Acceptor.java127
-rw-r--r--qadevOOo/tests/java/mod/_acceptor/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_adabas/ODriver.java121
-rw-r--r--qadevOOo/tests/java/mod/_ado/ODriver.java105
-rw-r--r--qadevOOo/tests/java/mod/_basctl/AccessibleShape.java167
-rw-r--r--qadevOOo/tests/java/mod/_brdgfctr/BridgeFactory.java118
-rw-r--r--qadevOOo/tests/java/mod/_brdgfctr/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_bridgefac.uno/BridgeFactory.java116
-rw-r--r--qadevOOo/tests/java/mod/_bridgefac.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedContentResultSetFactory.java186
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedContentResultSetStubFactory.java176
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetFactory.java183
-rw-r--r--qadevOOo/tests/java/mod/_cached/CachedDynamicResultSetStubFactory.java169
-rw-r--r--qadevOOo/tests/java/mod/_cmdmail/SimpleCommandMail.java71
-rw-r--r--qadevOOo/tests/java/mod/_cnt/ChaosContentProvider.java110
-rw-r--r--qadevOOo/tests/java/mod/_cnt/CntUnoDataContainer.java131
-rw-r--r--qadevOOo/tests/java/mod/_cnt/PropertyMatcherFactory.java86
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/ConfigurationProvider.java57
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/DefaultProvider.java54
-rw-r--r--qadevOOo/tests/java/mod/_configmgr/ProviderTestEnvironment.java51
-rw-r--r--qadevOOo/tests/java/mod/_connector.uno/Connector.java122
-rw-r--r--qadevOOo/tests/java/mod/_connector.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_connectr/Connector.java125
-rw-r--r--qadevOOo/tests/java/mod/_connectr/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_corefl/CoreReflection.java87
-rw-r--r--qadevOOo/tests/java/mod/_corefl/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_corereflection.uno/CoreReflection.java83
-rw-r--r--qadevOOo/tests/java/mod/_corereflection.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_cpld/DLLComponentLoader.java117
-rw-r--r--qadevOOo/tests/java/mod/_cpld/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ConnectionLineAccessibility.java425
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/DBContentLoader.java110
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/JoinViewAccessibility.java396
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OCommandDefinition.java91
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatabaseContext.java149
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatabaseSource.java245
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatasourceAdministrationDialog.java100
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ODatasourceBrowser.java332
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OInteractionHandler.java117
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OQueryDesign.java325
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/ORowSet.java644
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OSQLMessageDialog.java157
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/OSingleSelectQueryComposer.java283
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/SbaXGridControl.java485
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/TableWindowAccessibility.java384
-rw-r--r--qadevOOo/tests/java/mod/_dbaccess/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_dbpool/OConnectionPool.java114
-rw-r--r--qadevOOo/tests/java/mod/_defreg/NestedRegistry.java202
-rw-r--r--qadevOOo/tests/java/mod/_defreg/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_dtrans/generic.java77
-rw-r--r--qadevOOo/tests/java/mod/_dynamicloader/Dynamic.java101
-rw-r--r--qadevOOo/tests/java/mod/_file/calc/ODriver.java112
-rw-r--r--qadevOOo/tests/java/mod/_file/dbase/ODriver.java109
-rw-r--r--qadevOOo/tests/java/mod/_file/flat/ODriver.java107
-rw-r--r--qadevOOo/tests/java/mod/_fileacc/SimpleFileAccess.java86
-rw-r--r--qadevOOo/tests/java/mod/_fileacc/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_fop/FolderPicker.java102
-rw-r--r--qadevOOo/tests/java/mod/_forms/GenericModelTest.java565
-rw-r--r--qadevOOo/tests/java/mod/_forms/OButtonControl.java223
-rw-r--r--qadevOOo/tests/java/mod/_forms/OButtonModel.java134
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCheckBoxControl.java237
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCheckBoxModel.java149
-rw-r--r--qadevOOo/tests/java/mod/_forms/OComboBoxControl.java244
-rw-r--r--qadevOOo/tests/java/mod/_forms/OComboBoxModel.java164
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCurrencyControl.java251
-rw-r--r--qadevOOo/tests/java/mod/_forms/OCurrencyModel.java159
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODatabaseForm.java901
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODateControl.java243
-rw-r--r--qadevOOo/tests/java/mod/_forms/ODateModel.java178
-rw-r--r--qadevOOo/tests/java/mod/_forms/OEditControl.java261
-rw-r--r--qadevOOo/tests/java/mod/_forms/OEditModel.java170
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFileControlModel.java210
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFixedTextModel.java128
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormattedControl.java240
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormattedFieldWrapper.java162
-rw-r--r--qadevOOo/tests/java/mod/_forms/OFormsCollection.java184
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGridControlModel.java431
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGroupBoxControl.java214
-rw-r--r--qadevOOo/tests/java/mod/_forms/OGroupBoxModel.java128
-rw-r--r--qadevOOo/tests/java/mod/_forms/OHiddenModel.java203
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageButtonControl.java219
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageButtonModel.java132
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageControlControl.java220
-rw-r--r--qadevOOo/tests/java/mod/_forms/OImageControlModel.java161
-rw-r--r--qadevOOo/tests/java/mod/_forms/OListBoxControl.java180
-rw-r--r--qadevOOo/tests/java/mod/_forms/OListBoxModel.java236
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONavigationBarControl.java180
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONavigationBarModel.java81
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONumericControl.java245
-rw-r--r--qadevOOo/tests/java/mod/_forms/ONumericModel.java160
-rw-r--r--qadevOOo/tests/java/mod/_forms/OPatternControl.java243
-rw-r--r--qadevOOo/tests/java/mod/_forms/OPatternModel.java166
-rw-r--r--qadevOOo/tests/java/mod/_forms/ORadioButtonControl.java222
-rw-r--r--qadevOOo/tests/java/mod/_forms/ORadioButtonModel.java173
-rw-r--r--qadevOOo/tests/java/mod/_forms/OScrollBarModel.java99
-rw-r--r--qadevOOo/tests/java/mod/_forms/OSpinButtonModel.java102
-rw-r--r--qadevOOo/tests/java/mod/_forms/OTimeControl.java258
-rw-r--r--qadevOOo/tests/java/mod/_forms/OTimeModel.java237
-rw-r--r--qadevOOo/tests/java/mod/_forms/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_fps/FilePicker.java133
-rw-r--r--qadevOOo/tests/java/mod/_ftransl/DataFormatTranslator.java91
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ControlMenuController.java110
-rw-r--r--qadevOOo/tests/java/mod/_fwk/Desktop.java137
-rw-r--r--qadevOOo/tests/java/mod/_fwk/DispatchRecorder.java174
-rw-r--r--qadevOOo/tests/java/mod/_fwk/DispatchRecorderSupplier.java74
-rw-r--r--qadevOOo/tests/java/mod/_fwk/DocumentProperties.java130
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/FontMenuController.java60
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/FontSizeMenuController.java60
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/FooterMenuController.java60
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/FormatMenuController.java60
-rw-r--r--qadevOOo/tests/java/mod/_fwk/Frame.java119
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/HeaderMenuController.java60
-rw-r--r--qadevOOo/tests/java/mod/_fwk/JobExecutor.java317
-rw-r--r--qadevOOo/tests/java/mod/_fwk/JobHandler.java91
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/LayoutManager.java124
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/MacrosMenuController.java60
-rw-r--r--qadevOOo/tests/java/mod/_fwk/MailToDispatcher.java80
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/MenuBarFactory.java58
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ModuleManager.java281
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManager.java242
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ModuleUIConfigurationManagerSupplier.java60
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/ObjectMenuController.java97
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/PopupMenuControllerFactory.java124
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ServiceHandler.java80
-rw-r--r--qadevOOo/tests/java/mod/_fwk/SoundHandler.java81
-rw-r--r--qadevOOo/tests/java/mod/_fwk/StatusBarControllerFactory.java74
-rw-r--r--qadevOOo/tests/java/mod/_fwk/ToolBarsMenuController.java60
-rw-r--r--qadevOOo/tests/java/mod/_fwk/UICategoryDescription.java60
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/UICommandDescription.java61
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/UIConfigurationManager.java205
-rwxr-xr-xqadevOOo/tests/java/mod/_fwk/UIElementFactoryManager.java101
-rw-r--r--qadevOOo/tests/java/mod/_fwk/URLTransformer.java73
-rw-r--r--qadevOOo/tests/java/mod/_fwl/ContentHandlerFactory.java115
-rw-r--r--qadevOOo/tests/java/mod/_fwl/FilterFactory.java205
-rw-r--r--qadevOOo/tests/java/mod/_fwl/FrameLoaderFactory.java113
-rw-r--r--qadevOOo/tests/java/mod/_fwl/PathSettings.java161
-rw-r--r--qadevOOo/tests/java/mod/_fwl/SubstituteVariables.java94
-rw-r--r--qadevOOo/tests/java/mod/_fwl/TypeDetection.java187
-rw-r--r--qadevOOo/tests/java/mod/_i18n/BreakIterator.java123
-rw-r--r--qadevOOo/tests/java/mod/_i18n/CalendarImpl.java80
-rw-r--r--qadevOOo/tests/java/mod/_i18n/ChapterCollator.java84
-rw-r--r--qadevOOo/tests/java/mod/_i18n/CharacterClassification.java87
-rw-r--r--qadevOOo/tests/java/mod/_i18n/Collator.java81
-rw-r--r--qadevOOo/tests/java/mod/_i18n/IndexEntrySupplier.java86
-rw-r--r--qadevOOo/tests/java/mod/_i18n/LocaleData.java85
-rw-r--r--qadevOOo/tests/java/mod/_i18n/NumberFormatCodeMapper.java91
-rw-r--r--qadevOOo/tests/java/mod/_i18n/TextSearch.java81
-rw-r--r--qadevOOo/tests/java/mod/_i18n/Transliteration.java81
-rw-r--r--qadevOOo/tests/java/mod/_implreg.uno/ImplementationRegistration.java81
-rw-r--r--qadevOOo/tests/java/mod/_implreg.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_impreg/ImplementationRegistration.java86
-rw-r--r--qadevOOo/tests/java/mod/_impreg/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_insp/Introspection.java81
-rw-r--r--qadevOOo/tests/java/mod/_insp/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_introspection.uno/Introspection.java76
-rw-r--r--qadevOOo/tests/java/mod/_introspection.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_inv/Invocation.java106
-rw-r--r--qadevOOo/tests/java/mod/_inv/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_invadp/InvocationAdapterFactory.java75
-rw-r--r--qadevOOo/tests/java/mod/_invadp/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_invocadapt.uno/InvocationAdapterFactory.java74
-rw-r--r--qadevOOo/tests/java/mod/_invocadapt.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_invocation.uno/Invocation.java104
-rw-r--r--qadevOOo/tests/java/mod/_invocation.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_javaloader.uno/JavaComponentLoader.java96
-rw-r--r--qadevOOo/tests/java/mod/_javaloader/JavaComponentLoader.java101
-rw-r--r--qadevOOo/tests/java/mod/_javavm.uno/JavaVirtualMachine.java75
-rw-r--r--qadevOOo/tests/java/mod/_javavm.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_jdbc/JDBCDriver.java123
-rw-r--r--qadevOOo/tests/java/mod/_jen/JavaVirtualMachine.java77
-rw-r--r--qadevOOo/tests/java/mod/_jen/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_lng/DicList.java113
-rw-r--r--qadevOOo/tests/java/mod/_lng/LinguProps.java98
-rw-r--r--qadevOOo/tests/java/mod/_lng/LngSvcMgr.java92
-rw-r--r--qadevOOo/tests/java/mod/_lnn/Hyphenator.java111
-rw-r--r--qadevOOo/tests/java/mod/_lnn/SpellChecker.java109
-rw-r--r--qadevOOo/tests/java/mod/_lnn/Thesaurus.java98
-rw-r--r--qadevOOo/tests/java/mod/_mcnttype/MimeContentTypeFactory.java90
-rw-r--r--qadevOOo/tests/java/mod/_mozab/MozabDriver.java104
-rw-r--r--qadevOOo/tests/java/mod/_namingservice.uno/NamingService.java99
-rw-r--r--qadevOOo/tests/java/mod/_namingservice/NamingService.java102
-rw-r--r--qadevOOo/tests/java/mod/_namingservice/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_nestedreg.uno/NestedRegistry.java198
-rw-r--r--qadevOOo/tests/java/mod/_nestedreg.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_odbc/ODBCDriver.java101
-rw-r--r--qadevOOo/tests/java/mod/_pcr/ObjectInspector.java215
-rw-r--r--qadevOOo/tests/java/mod/_pcr/ObjectInspectorModel.java174
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac.uno/ProxyFactory.java76
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac/ProxyFactory.java78
-rw-r--r--qadevOOo/tests/java/mod/_proxyfac/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_proxyset/SOffice52ProxySettings.java144
-rw-r--r--qadevOOo/tests/java/mod/_proxyset/SystemProxySettings.java145
-rwxr-xr-xqadevOOo/tests/java/mod/_qadevOOo/SelfTest.java92
-rw-r--r--qadevOOo/tests/java/mod/_rdbtdp/RegistryTypeDescriptionProvider.java131
-rw-r--r--qadevOOo/tests/java/mod/_rdbtdp/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_regtypeprov.uno/RegistryTypeDescriptionProvider.java126
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge.uno/various.java309
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_remotebridge/various.java305
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_HeaderFooter.java220
-rw-r--r--qadevOOo/tests/java/mod/_sc/AccessibleEditableTextPara_PreviewCell.java193
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCell.java200
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvCell.java208
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvGrid.java202
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleCsvRuler.java229
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocument.java172
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleDocumentPagePreview.java242
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeader.java282
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePageHeaderArea.java233
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewCell.java208
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewHeaderCell.java293
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessiblePreviewTable.java222
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAccessibleSpreadsheet.java168
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationObj.java178
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationShapeObj.java213
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationTextCursor.java152
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAnnotationsObj.java175
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAreaLinkObj.java152
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAreaLinksObj.java150
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAutoFormatFieldObj.java106
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAutoFormatObj.java109
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScAutoFormatsObj.java158
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellCursorObj.java326
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellFieldObj.java196
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellFieldsObj.java167
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellFormatsEnumeration.java157
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellFormatsObj.java141
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellObj.java216
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangeObj.java312
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellRangesObj.java264
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellSearchObj.java151
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellTextCursor.java195
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellsEnumeration.java172
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScCellsObj.java167
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScChartObj.java289
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScChartsObj.java273
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScConsolidationDescriptor.java116
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDDELinkObj.java245
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDDELinksObj.java208
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotFieldGroupItemObj.java371
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotFieldGroupObj.java369
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotFieldGroupsObj.java367
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotFieldObj.java396
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotFieldsObj.java183
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotItemObj.java414
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotItemsObj.java402
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotTableObj.java355
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDataPilotTablesObj.java195
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDatabaseRangeObj.java258
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDatabaseRangesObj.java154
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDocumentConfiguration.java90
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDrawPageObj.java162
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScDrawPagesObj.java135
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScFilterDescriptorBase.java159
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScFunctionDescriptionObj.java118
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScFunctionListObj.java130
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFieldObj.java241
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFieldsObj.java221
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterContentObj.java190
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextCursor.java228
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScHeaderFooterTextObj.java278
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScImportDescriptorBase.java149
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_CellAnnotationsEnumeration.java138
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_CellAreaLinksEnumeration.java131
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_DDELinksEnumeration.java187
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_DataPilotFieldsEnumeration.java165
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_DataPilotItemsEnumeration.java408
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_DataPilotTablesEnumeration.java166
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_DatabaseRangesEnumeration.java134
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_FunctionDescriptionEnumeration.java113
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_LabelRangesEnumeration.java126
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_NamedRangesEnumeration.java133
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_ScenariosEnumeration.java145
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_SheetCellRangesEnumeration.java167
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_SheetLinksEnumeration.java148
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_SpreadsheetViewPanesEnumeration.java116
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_SpreadsheetsEnumeration.java97
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_SubTotalFieldsEnumeration.java141
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TableAutoFormatEnumeration.java105
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TableChartsEnumeration.java238
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TableColumnsEnumeration.java129
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TableConditionalEntryEnumeration.java207
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TableRowsEnumeration.java128
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScIndexEnumeration_TextFieldEnumeration.java166
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScLabelRangeObj.java154
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScLabelRangesObj.java147
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScModelObj.java232
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScNamedRangeObj.java177
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScNamedRangesObj.java178
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScRecentFunctionsObj.java133
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScScenariosObj.java174
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScShapeObj.java117
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSheetLinkObj.java193
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSheetLinksObj.java167
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSortDescriptorBase.java151
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSpreadsheetSettings.java84
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSpreadsheetSettingsObj.java110
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScStyleFamiliesObj.java121
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScStyleFamilyObj.java216
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScStyleObj.java270
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSubTotalDescriptorBase.java154
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScSubTotalFieldObj.java169
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTabViewObj.java283
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableColumnObj.java176
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableColumnsObj.java153
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableConditionalEntry.java230
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableConditionalFormat.java208
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableRowObj.java161
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableRowsObj.java148
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableSheetObj.java421
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableSheetsObj.java171
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScTableValidationObj.java164
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScUniqueCellFormatsEnumeration.java145
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScUniqueCellFormatsObj.java139
-rw-r--r--qadevOOo/tests/java/mod/_sc/ScViewPaneObj.java209
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentExporter.java216
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLContentImporter.java198
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLExporter.java224
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLImporter.java195
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaExporter.java205
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLMetaImporter.java197
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsExporter.java206
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLSettingsImporter.java219
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesExporter.java211
-rw-r--r--qadevOOo/tests/java/mod/_sc/XMLStylesImporter.java215
-rw-r--r--qadevOOo/tests/java/mod/_sc/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccArea.java119
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccAxis.java117
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataPoint.java118
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDataSeries.java118
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccDiagram.java118
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccFloor.java143
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccGrid.java119
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegend.java117
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccLegendEntry.java117
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccStatisticsObject.java122
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccTitle.java117
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccWall.java142
-rw-r--r--qadevOOo/tests/java/mod/_sch/AccessibleDocumentView.java130
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartAxis.java127
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartData.java99
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDataArray.java103
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartDocument.java166
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXChartView.java144
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataPoint.java159
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDataRow.java166
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChXDiagram.java413
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartArea.java119
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartGrid.java119
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLegend.java139
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartLine.java147
-rw-r--r--qadevOOo/tests/java/mod/_sch/ChartTitle.java117
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleDrawDocumentView.java183
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleOutlineView.java182
-rw-r--r--qadevOOo/tests/java/mod/_sd/AccessibleSlideView.java191
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_DrawView.java319
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_HandoutView.java337
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_NotesView.java334
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_OutlineView.java334
-rw-r--r--qadevOOo/tests/java/mod/_sd/DrawController_PresentationView.java334
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDocLinkTargets.java111
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDrawPage.java216
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdDrawPagesAccess.java129
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdGenericDrawPage.java189
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdLayer.java139
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdLayerManager.java171
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdMasterPage.java194
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdMasterPagesAccess.java122
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdPageLinkTargets.java153
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoDrawView.java299
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoOutlineView.java246
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoPresView.java301
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdUnoSlideView.java222
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXCustomPresentation.java243
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXCustomPresentationAccess.java212
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXImpressDocument.java199
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXPresentation.java164
-rw-r--r--qadevOOo/tests/java/mod/_sd/SdXShape.java219
-rw-r--r--qadevOOo/tests/java/mod/_sd/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_servicemgr.uno/OServiceManager.java169
-rw-r--r--qadevOOo/tests/java/mod/_servicemgr.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_sfx/AppDispatchProvider.java104
-rw-r--r--qadevOOo/tests/java/mod/_sfx/DocumentTemplates.java97
-rw-r--r--qadevOOo/tests/java/mod/_sfx/FrameLoader.java103
-rw-r--r--qadevOOo/tests/java/mod/_sfx/SfxMacroLoader.java107
-rw-r--r--qadevOOo/tests/java/mod/_sfx/StandaloneDocumentInfo.java133
-rw-r--r--qadevOOo/tests/java/mod/_shlibloader.uno/DLLComponentLoader.java117
-rw-r--r--qadevOOo/tests/java/mod/_shlibloader.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_simplereg.uno/SimpleRegistry.java163
-rw-r--r--qadevOOo/tests/java/mod/_simplereg.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_simreg/SimpleRegistry.java167
-rw-r--r--qadevOOo/tests/java/mod/_simreg/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmEditAccessible.java178
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmGraphicAccessible.java182
-rw-r--r--qadevOOo/tests/java/mod/_sm/SmModel.java100
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLExporter.java197
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLImporter.java170
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLMetaExporter.java198
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLMetaImporter.java198
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLSettingsExporter.java198
-rw-r--r--qadevOOo/tests/java/mod/_sm/XMLSettingsImporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_smgr/OServiceManager.java171
-rw-r--r--qadevOOo/tests/java/mod/_smgr/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_smplmail/SimpleSystemMail.java121
-rw-r--r--qadevOOo/tests/java/mod/_srtrs/SortedDynamicResultSetFactory.java83
-rw-r--r--qadevOOo/tests/java/mod/_stm/DataInputStream.java197
-rw-r--r--qadevOOo/tests/java/mod/_stm/DataOutputStream.java182
-rw-r--r--qadevOOo/tests/java/mod/_stm/MarkableInputStream.java147
-rw-r--r--qadevOOo/tests/java/mod/_stm/MarkableOutputStream.java207
-rw-r--r--qadevOOo/tests/java/mod/_stm/ObjectInputStream.java299
-rw-r--r--qadevOOo/tests/java/mod/_stm/ObjectOutputStream.java320
-rw-r--r--qadevOOo/tests/java/mod/_stm/Pipe.java115
-rw-r--r--qadevOOo/tests/java/mod/_stm/Pump.java190
-rw-r--r--qadevOOo/tests/java/mod/_stm/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/DataInputStream.java194
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/DataOutputStream.java179
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/MarkableInputStream.java144
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/MarkableOutputStream.java204
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/ObjectInputStream.java296
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/ObjectOutputStream.java317
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/Pipe.java111
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/Pump.java187
-rw-r--r--qadevOOo/tests/java/mod/_streams.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBox.java215
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderBar.java267
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxHeaderCell.java253
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTable.java252
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleBrowseBoxTableCell.java244
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrl.java287
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleIconChoiceCtrlEntry.java264
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBar.java173
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPage.java194
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTabBarPageList.java209
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBox.java263
-rw-r--r--qadevOOo/tests/java/mod/_svtools/AccessibleTreeListBoxEntry.java309
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleControlShape.java125
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleEditableTextPara.java162
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleGraphicShape.java129
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleOLEShape.java151
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePageShape.java141
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationGraphicShape.java149
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationOLEShape.java158
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessiblePresentationShape.java147
-rw-r--r--qadevOOo/tests/java/mod/_svx/AccessibleShape.java128
-rw-r--r--qadevOOo/tests/java/mod/_svx/GraphicExporter.java237
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxDrawPage.java224
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxGraphCtrlAccessibleContext.java251
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxGraphicObject.java263
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShape.java227
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeCircle.java247
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeCollection.java148
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeConnector.java204
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeControl.java158
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeDimensioning.java169
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapeGroup.java195
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygon.java265
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxShapePolyPolygonBezier.java278
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoNumberingRules.java94
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoText.java170
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextContent.java150
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextContentEnum.java152
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextCursor.java144
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextField.java161
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextRange.java156
-rw-r--r--qadevOOo/tests/java/mod/_svx/SvxUnoTextRangeEnumeration.java157
-rw-r--r--qadevOOo/tests/java/mod/_svx/package.html6
-rwxr-xr-xqadevOOo/tests/java/mod/_sw/CharacterStyle.java209
-rwxr-xr-xqadevOOo/tests/java/mod/_sw/ConditionalParagraphStyle.java201
-rw-r--r--qadevOOo/tests/java/mod/_sw/DocumentSettings.java85
-rwxr-xr-xqadevOOo/tests/java/mod/_sw/PageStyle.java201
-rwxr-xr-xqadevOOo/tests/java/mod/_sw/ParagraphStyle.java192
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentPageView.java200
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleDocumentView.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleEndnoteView.java195
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleFooterView.java200
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleFootnoteView.java195
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleHeaderView.java188
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessiblePageView.java286
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleParagraphView.java139
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTableCellView.java154
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTableView.java174
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextEmbeddedObject.java156
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextFrameView.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwAccessibleTextGraphicObject.java177
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextContainer.java89
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextEntry.java217
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXAutoTextGroup.java178
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBodyText.java148
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBookmark.java121
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXBookmarks.java119
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXCell.java135
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXCellRange.java169
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXChapterNumbering.java123
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndex.java144
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndexMark.java145
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDocumentIndexes.java135
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXDrawPage.java164
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXEndnoteProperties.java134
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFieldEnumeration.java176
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFieldMaster.java111
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnote.java158
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnoteProperties.java132
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnoteText.java176
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFootnotes.java134
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXFrames.java143
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXHeadFootText.java198
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXLineNumberingProperties.java119
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXMailMerge.java439
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXModule.java90
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXNumberingRules.java178
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXParagraph.java279
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXParagraphEnumeration.java154
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPrintSettings.java110
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPropertySet.java85
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXPropertySetInfo.java97
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXReferenceMark.java142
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXReferenceMarks.java164
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXShape.java133
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyle.java248
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyleFamilies.java111
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXStyleFamily.java197
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableCellText.java172
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableColumns.java136
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTableRows.java128
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextColumns.java184
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextCursor.java316
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextDefaults.java123
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextDocument.java268
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObject.java173
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextEmbeddedObjects.java137
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextField.java168
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFieldMasters.java140
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFieldTypes.java140
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFrame.java159
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextFrameText.java156
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextGraphicObject.java207
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextGraphicObjects.java165
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextPortion.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextPortionEnumeration.java161
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextRange.java99
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextRanges.java129
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSearch.java131
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSection.java187
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextSections.java152
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTable.java261
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTableCursor.java124
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTableRow.java127
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextTables.java154
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextView.java297
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXTextViewCursor.java122
-rw-r--r--qadevOOo/tests/java/mod/_sw/SwXViewSettings.java112
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLContentExporter.java196
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLContentImporter.java178
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLExporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLImporter.java171
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLMetaExporter.java200
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLMetaImporter.java189
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLSettingsExporter.java209
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLSettingsImporter.java208
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLStylesExporter.java203
-rw-r--r--qadevOOo/tests/java/mod/_sw/XMLStylesImporter.java188
-rw-r--r--qadevOOo/tests/java/mod/_sw/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_sysdtrans/SystemClipboard.java60
-rw-r--r--qadevOOo/tests/java/mod/_sysdtrans/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_syssh/SystemShellExecute.java60
-rw-r--r--qadevOOo/tests/java/mod/_tcv/TypeConverter.java71
-rw-r--r--qadevOOo/tests/java/mod/_tcv/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_tdmgr/TypeDescriptionManager.java89
-rw-r--r--qadevOOo/tests/java/mod/_tdmgr/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_text/DefaultNumberingProvider.java83
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleButton.java246
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleCheckBox.java261
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleComboBox.java246
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownComboBox.java139
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleDropDownListBox.java154
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleEdit.java235
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleFixedText.java216
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleList.java237
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleListBox.java250
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleListItem.java241
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenu.java208
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuBar.java172
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuItem.java203
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleMenuSeparator.java183
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessiblePopupMenu.java230
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleRadioButton.java310
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleScrollBar.java186
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBar.java197
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleStatusBarItem.java197
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleTabControl.java282
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleTabPage.java292
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleToolBox.java200
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleToolBoxItem.java207
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/AccessibleWindow.java207
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/MutableTreeDataModel.java105
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/MutableTreeNode.java191
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/TabController.java143
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/TabControllerModel.java105
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/Toolkit.java142
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlButton.java156
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlButtonModel.java87
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBox.java164
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCheckBoxModel.java87
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlComboBox.java160
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlComboBoxModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlContainer.java252
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlContainerModel.java66
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyField.java162
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlCurrencyFieldModel.java85
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDateField.java166
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDateFieldModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDialog.java254
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlDialogModel.java189
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlEdit.java161
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlEditModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFileControl.java162
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFileControlModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedLineModel.java97
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedText.java152
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFixedTextModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedField.java167
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlFormattedFieldModel.java85
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBox.java151
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlGroupBoxModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlImageControl.java160
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlImageControlModel.java62
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlListBox.java161
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlListBoxModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlNumericField.java171
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlNumericFieldModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlPatternField.java162
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlPatternFieldModel.java62
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlProgressBarModel.java94
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButton.java152
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlRadioButtonModel.java62
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlScrollBarModel.java97
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlTimeField.java162
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoControlTimeFieldModel.java62
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoScrollBarControl.java179
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControl.java149
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoSpinButtonControlModel.java69
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoTreeControl.java325
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/UnoTreeModel.java84
-rw-r--r--qadevOOo/tests/java/mod/_toolkit/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_typeconverter.uno/TypeConverter.java66
-rw-r--r--qadevOOo/tests/java/mod/_typeconverter.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_typemgr.uno/TypeDescriptionManager.java84
-rw-r--r--qadevOOo/tests/java/mod/_typemgr.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbContentProviderProxyFactory.java77
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbPropertiesManager.java68
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UcbStore.java77
-rw-r--r--qadevOOo/tests/java/mod/_ucb/UniversalContentBroker.java88
-rw-r--r--qadevOOo/tests/java/mod/_ucpchelp/CHelpContentProvider.java82
-rw-r--r--qadevOOo/tests/java/mod/_ucpdav/WebDAVContentProvider.java90
-rw-r--r--qadevOOo/tests/java/mod/_ucpfile/FileProvider.java80
-rw-r--r--qadevOOo/tests/java/mod/_ucpftp/FTPContentProvider.java81
-rw-r--r--qadevOOo/tests/java/mod/_ucphier/HierarchyContentProvider.java80
-rw-r--r--qadevOOo/tests/java/mod/_ucphier/HierarchyDataSource.java68
-rw-r--r--qadevOOo/tests/java/mod/_ucppkg/PackageContentProvider.java83
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ContentProvider.java118
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ProviderAcceptor.java72
-rw-r--r--qadevOOo/tests/java/mod/_ucprmt/ProxyProvider.java81
-rw-r--r--qadevOOo/tests/java/mod/_uui/UUIInteractionHandler.java82
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver.uno/UnoUrlResolver.java68
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver.uno/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/UnoUrlResolver.java81
-rw-r--r--qadevOOo/tests/java/mod/_uuresolver/package.html6
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentExporter.java198
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLContentImporter.java202
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLExporter.java201
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLImporter.java200
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesExporter.java188
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Chart/XMLStylesImporter.java181
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentExporter.java215
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLContentImporter.java211
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLExporter.java215
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLImporter.java211
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaExporter.java205
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLMetaImporter.java189
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsExporter.java211
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLSettingsImporter.java199
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesExporter.java214
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Draw/XMLStylesImporter.java197
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentExporter.java207
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLContentImporter.java221
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLExporter.java210
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLImporter.java180
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaExporter.java206
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLMetaImporter.java189
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsExporter.java219
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLSettingsImporter.java213
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesExporter.java209
-rw-r--r--qadevOOo/tests/java/mod/_xmloff/Impress/XMLStylesImporter.java202
-rw-r--r--rdbmaker/inc/codemaker/dependency.hxx170
-rw-r--r--rdbmaker/inc/codemaker/global.hxx138
-rw-r--r--rdbmaker/inc/codemaker/options.hxx98
-rw-r--r--rdbmaker/inc/codemaker/registry.hxx208
-rw-r--r--rdbmaker/inc/codemaker/typemanager.hxx172
-rw-r--r--rdbmaker/prj/build.lst6
-rw-r--r--rdbmaker/prj/d.lst4
-rw-r--r--rdbmaker/source/codemaker/dependency.cxx301
-rw-r--r--rdbmaker/source/codemaker/global.cxx171
-rw-r--r--rdbmaker/source/codemaker/makefile.mk55
-rw-r--r--rdbmaker/source/codemaker/options.cxx67
-rw-r--r--rdbmaker/source/codemaker/typemanager.cxx273
-rw-r--r--rdbmaker/source/rdbmaker/makefile.mk63
-rw-r--r--rdbmaker/source/rdbmaker/rdbmaker.cxx508
-rw-r--r--rdbmaker/source/rdbmaker/rdboptions.cxx381
-rw-r--r--rdbmaker/source/rdbmaker/rdboptions.hxx57
-rw-r--r--rdbmaker/source/rdbmaker/rdbtype.cxx195
-rw-r--r--rdbmaker/source/rdbmaker/rdbtype.hxx52
-rw-r--r--rdbmaker/source/rdbmaker/specialtypemanager.cxx101
-rw-r--r--rdbmaker/source/rdbmaker/specialtypemanager.hxx71
-rw-r--r--rdbmaker/source/rdbmaker/typeblop.cxx535
-rwxr-xr-xreadlicense_oo/docs/readme.dtd33
-rwxr-xr-xreadlicense_oo/docs/readme.xsl232
-rw-r--r--readlicense_oo/docs/readme/eval.xsl91
-rwxr-xr-xreadlicense_oo/docs/readme/makefile.mk44
-rwxr-xr-xreadlicense_oo/docs/readme/readme.xrm524
-rw-r--r--readlicense_oo/html/THIRDPARTYLICENSEREADME.html9925
-rw-r--r--readlicense_oo/html/makefile.mk47
-rwxr-xr-xreadlicense_oo/makefile.mk48
-rw-r--r--readlicense_oo/prj/build.lst6
-rw-r--r--readlicense_oo/prj/d.lst35
-rw-r--r--readlicense_oo/source/license/license_en-US.html875
-rw-r--r--readlicense_oo/source/license/license_en-US.rtf271
-rw-r--r--readlicense_oo/source/license/license_en-US.txt858
-rwxr-xr-xreadlicense_oo/util/makefile.pmk89
-rw-r--r--redland/LICENSE.txt11
-rw-r--r--redland/README34
-rw-r--r--redland/prj/build.lst5
-rw-r--r--redland/prj/d.lst18
-rw-r--r--redland/raptor/makefile.mk163
-rw-r--r--redland/raptor/raptor-1.4.18.patch.autotools46
-rw-r--r--redland/raptor/raptor-1.4.18.patch.dmake124
-rw-r--r--redland/raptor/raptor-1.4.18.patch.legal18
-rw-r--r--redland/raptor/raptor-1.4.18.patch.mingw30
-rw-r--r--redland/raptor/raptor-1.4.18.patch.ooo_build43
-rw-r--r--redland/raptor/raptor-1.4.18.patch.win3278
-rw-r--r--redland/raptor/raptor2.map294
-rw-r--r--redland/rasqal/makefile.mk158
-rw-r--r--redland/rasqal/rasqal-0.9.16.patch.autotools38
-rw-r--r--redland/rasqal/rasqal-0.9.16.patch.dmake98
-rw-r--r--redland/rasqal/rasqal-0.9.16.patch.legal18
-rw-r--r--redland/rasqal/rasqal-0.9.16.patch.ooo_build56
-rw-r--r--redland/rasqal/rasqal-0.9.16.patch.win3243
-rw-r--r--redland/rasqal/rasqal2.map194
-rw-r--r--redland/redland/makefile.mk161
-rw-r--r--redland/redland/redland-1.0.8.patch.autotools58
-rw-r--r--redland/redland/redland-1.0.8.patch.dmake115
-rw-r--r--redland/redland/redland-1.0.8.patch.free_null174
-rw-r--r--redland/redland/redland-1.0.8.patch.legal54
-rw-r--r--redland/redland/redland-1.0.8.patch.ooo_build22
-rw-r--r--redland/redland/redland-1.0.8.patch.storage_hashes_context_serialize_get_statement35
-rw-r--r--redland/redland/redland-1.0.8.patch.storage_hashes_list_duplicates170
-rw-r--r--redland/redland/redland-1.0.8.patch.win32154
-rw-r--r--redland/redland/redland2.map316
-rw-r--r--redland/redlandversion.mk32
-rw-r--r--regexp/inc/makefile.mk47
-rw-r--r--regexp/inc/pch/precompiled_regexp.cxx29
-rw-r--r--regexp/inc/pch/precompiled_regexp.hxx32
-rw-r--r--regexp/orig/regex.c5880
-rw-r--r--regexp/orig/regex.h542
-rw-r--r--regexp/prj/build.lst4
-rw-r--r--regexp/prj/d.lst8
-rw-r--r--regexp/source/makefile.mk70
-rw-r--r--regexp/source/reclass.cxx2947
-rw-r--r--regexp/source/reclass.hxx395
-rw-r--r--registry/inc/makefile.mk47
-rw-r--r--registry/inc/pch/precompiled_registry.cxx29
-rw-r--r--registry/inc/pch/precompiled_registry.hxx32
-rw-r--r--registry/inc/registry/reader.h610
-rw-r--r--registry/inc/registry/reader.hxx632
-rw-r--r--registry/inc/registry/reflread.hxx519
-rw-r--r--registry/inc/registry/refltype.hxx86
-rw-r--r--registry/inc/registry/reflwrit.hxx355
-rw-r--r--registry/inc/registry/registry.h477
-rw-r--r--registry/inc/registry/registry.hxx1250
-rw-r--r--registry/inc/registry/regtype.h179
-rw-r--r--registry/inc/registry/types.h340
-rw-r--r--registry/inc/registry/version.h77
-rw-r--r--registry/inc/registry/writer.h269
-rw-r--r--registry/inc/registry/writer.hxx303
-rw-r--r--registry/prj/build.lst7
-rw-r--r--registry/prj/d.lst19
-rw-r--r--registry/source/keyimpl.cxx1072
-rw-r--r--registry/source/keyimpl.hxx145
-rw-r--r--registry/source/makefile.mk53
-rw-r--r--registry/source/reflcnst.hxx295
-rw-r--r--registry/source/reflread.cxx1774
-rw-r--r--registry/source/reflwrit.cxx1491
-rw-r--r--registry/source/regimpl.cxx1797
-rw-r--r--registry/source/regimpl.hxx184
-rw-r--r--registry/source/registry.cxx687
-rw-r--r--registry/source/regkey.cxx1227
-rw-r--r--registry/source/regkey.hxx80
-rw-r--r--registry/test/makefile.mk90
-rw-r--r--registry/test/regcompare/makefile.mk107
-rw-r--r--registry/test/regcompare/other1.idl1
-rw-r--r--registry/test/regcompare/other2.idl1
-rw-r--r--registry/test/regcompare/pe.idl1
-rw-r--r--registry/test/regcompare/psa.idl1
-rw-r--r--registry/test/regcompare/psb.idl1
-rw-r--r--registry/test/regcompare/ue.idl1
-rw-r--r--registry/test/regcompare/usa.idl1
-rw-r--r--registry/test/regcompare/usb.idl1
-rw-r--r--registry/test/regdiagnose.h44
-rw-r--r--registry/test/testmerge.cxx422
-rw-r--r--registry/test/testregcpp.cxx707
-rw-r--r--registry/tools/checksingleton.cxx482
-rw-r--r--registry/tools/makefile.mk80
-rw-r--r--registry/tools/regcompare.cxx2398
-rw-r--r--registry/tools/regmerge.cxx289
-rw-r--r--registry/tools/regview.cxx161
-rw-r--r--registry/util/makefile.mk76
-rw-r--r--registry/util/reg.map88
-rw-r--r--registry/version.mk39
-rw-r--r--registry/workben/makefile.mk86
-rw-r--r--registry/workben/regspeed.cxx271
-rw-r--r--registry/workben/regtest.cxx340
-rw-r--r--registry/workben/test.cxx54
-rw-r--r--remotebridges/examples/exports.dxp3
-rw-r--r--remotebridges/examples/makefile.mk62
-rw-r--r--remotebridges/examples/officeclient.cxx333
-rw-r--r--remotebridges/prj/build.lst6
-rw-r--r--remotebridges/prj/d.lst17
-rw-r--r--remotebridges/source/bridge/bridge_connection.cxx139
-rw-r--r--remotebridges/source/bridge/bridge_connection.hxx57
-rw-r--r--remotebridges/source/bridge/bridge_provider.cxx179
-rw-r--r--remotebridges/source/bridge/makefile.mk64
-rw-r--r--remotebridges/source/bridge/remote_bridge.cxx476
-rw-r--r--remotebridges/source/bridge/remote_bridge.hxx147
-rw-r--r--remotebridges/source/bridge/remotebridge.map9
-rw-r--r--remotebridges/source/bridge/remotebridge.xml47
-rw-r--r--remotebridges/source/dynamicloader/dynamicloader.cxx431
-rw-r--r--remotebridges/source/dynamicloader/dynamicloader.xml36
-rwxr-xr-xremotebridges/source/dynamicloader/makefile.mk69
-rw-r--r--remotebridges/source/factory/brdgfctr.map9
-rw-r--r--remotebridges/source/factory/brdgfctr.xml44
-rw-r--r--remotebridges/source/factory/bridgefactory.cxx499
-rw-r--r--remotebridges/source/factory/bridgeimpl.cxx270
-rw-r--r--remotebridges/source/factory/bridgeimpl.hxx106
-rw-r--r--remotebridges/source/factory/makefile.mk66
-rw-r--r--remotebridges/source/unourl_resolver/makefile.mk64
-rw-r--r--remotebridges/source/unourl_resolver/unourl_resolver.cxx253
-rw-r--r--remotebridges/source/unourl_resolver/uuresolver.map9
-rw-r--r--remotebridges/source/unourl_resolver/uuresolver.xml38
-rw-r--r--reportbuilder/images/em42.pngbin0 -> 1965 bytes
-rw-r--r--reportbuilder/images/em42_hc.pngbin0 -> 1160 bytes
-rw-r--r--reportbuilder/java/com/sun/star/report/DataRow.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/DataSource.java48
-rw-r--r--reportbuilder/java/com/sun/star/report/DataSourceException.java94
-rw-r--r--reportbuilder/java/com/sun/star/report/DataSourceFactory.java43
-rw-r--r--reportbuilder/java/com/sun/star/report/ImageService.java69
-rw-r--r--reportbuilder/java/com/sun/star/report/InputRepository.java88
-rw-r--r--reportbuilder/java/com/sun/star/report/JobDefinitionException.java64
-rw-r--r--reportbuilder/java/com/sun/star/report/JobProgressIndicator.java79
-rw-r--r--reportbuilder/java/com/sun/star/report/JobProperties.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/OfficeToken.java65
-rw-r--r--reportbuilder/java/com/sun/star/report/OutputRepository.java71
-rw-r--r--reportbuilder/java/com/sun/star/report/ParameterMap.java68
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportAddIn.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportEngine.java56
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportEngineMetaData.java59
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportEngineParameterNames.java55
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportExecutionException.java86
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportExpression.java51
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportExpressionMetaData.java47
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportFunction.java44
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportJob.java91
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportJobDefinition.java57
-rw-r--r--reportbuilder/java/com/sun/star/report/ReportJobFactory.java41
-rw-r--r--reportbuilder/java/com/sun/star/report/SDBCReportData.java380
-rw-r--r--reportbuilder/java/com/sun/star/report/SDBCReportDataFactory.java798
-rw-r--r--reportbuilder/java/com/sun/star/report/SOImageService.java187
-rw-r--r--reportbuilder/java/com/sun/star/report/StorageRepository.java347
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/Author-Function.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/Author-Function_en_US.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/AuthorFunction.java60
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/AuthorFunctionDescription.java70
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/MetaDataFunctionCategory.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/Title-Function.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/Title-Function_en_US.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/TitleFunction.java64
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/TitleFunctionDescription.java70
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/category.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/category_en_US.properties29
-rw-r--r--reportbuilder/java/com/sun/star/report/function/metadata/makefile.mk64
-rw-r--r--reportbuilder/java/com/sun/star/report/makefile.mk74
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/DefaultNameGenerator.java155
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/Manifest.mf7
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/OfficeNamespaces.java70
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/PentahoFormulaContext.java97
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/PentahoReportAddIn.java60
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/PentahoReportEngine.java71
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/PentahoReportEngineMetaData.java145
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/PentahoReportJob.java407
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/SOFormulaOpCodeMapper.java153
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/SOFormulaParser.java442
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/SOFunctionManager.java171
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/SOReportJobFactory.java447
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/StarFunctionCategory.java159
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/StarFunctionDescription.java193
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/StarReportData.java167
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/StarReportDataFactory.java123
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/StarReportModule.java56
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/configuration.properties155
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/expressions/SumExpression.java56
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/expressions/SumExpressionMetaData.java77
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/AbstractReportElementLayoutController.java267
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FixedTextLayoutController.java84
-rwxr-xr-xreportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormatValueUtility.java213
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/FormattedTextLayoutController.java215
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementContext.java90
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ImageElementLayoutController.java322
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/ObjectOleLayoutController.java122
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeDetailLayoutController.java158
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupInstanceSectionLayoutController.java152
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupLayoutController.java203
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeGroupSectionLayoutController.java108
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficePageSectionLayoutController.java30
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeRepeatingStructureLayoutController.java43
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeReportLayoutController.java269
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableLayoutController.java78
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/OfficeTableTemplateLayoutController.java187
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/TableCellLayoutController.java200
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesCollection.java96
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/layoutprocessor/VariablesDeclarationLayoutController.java189
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryLoader.java169
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/loader/InputRepositoryResourceData.java83
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/loader/InputResourceKey.java63
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/makefile.mk135
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/DataStyle.java54
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/FixedTextElement.java52
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/FontFaceDeclsSection.java72
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/FontFaceElement.java54
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/FormatCondition.java67
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/FormattedTextElement.java58
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/ImageElement.java86
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/ObjectOleElement.java88
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeDetailSection.java43
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeDocument.java72
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeGroup.java93
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeGroupInstanceSection.java16
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeGroupSection.java53
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeMasterPage.java65
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeMasterStyles.java82
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeReport.java148
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeStyle.java129
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeStyles.java196
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeStylesCollection.java122
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/OfficeTableSection.java42
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/PageLayout.java67
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/PageSection.java59
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/RawText.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/ReportElement.java108
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/TableCellElement.java43
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/model/VariablesDeclarationSection.java52
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/module.properties44
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-datastyle.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-draw.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-form.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-style.css10
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-table.css37
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/oasis-text.css9
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/ImageProducer.java490
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/OfficeDocumentReportTarget.java1657
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/OleProducer.java136
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/StyleUtilities.java612
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/StylesWriter.java383
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportProcessor.java104
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/chart/ChartRawReportTarget.java283
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportProcessor.java119
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/spreadsheet/SpreadsheetRawReportTarget.java963
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/MasterPageFactory.java415
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/PageBreakDefinition.java49
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/PageContext.java227
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportProcessor.java114
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/TextRawReportTarget.java1461
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/output/text/VariablesDeclarations.java107
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/AttributeSpecification.java57
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/ElementReadHandler.java89
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/OfficeDocumentXmlResourceFactory.java50
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/OfficeParserUtil.java188
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/OfficeStylesXmlResourceFactory.java57
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/StarStyleXmlFactoryModule.java61
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/StarXmlFactoryModule.java61
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/StyleMapper.java38
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/chart/ChartReadHandler.java110
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/data/DataStyleReadHandler.java126
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/draw/ObjectOleReadHandler.java83
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/office/BodyReadHandler.java88
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/office/DocumentContentReadHandler.java232
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/office/DocumentStylesReadHandler.java103
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/office/FontFaceDeclsReadHandler.java113
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/office/MasterStylesReadHandler.java121
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt-schema-v1.0-os.xsd414
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ConditionalPrintExpressionReadHandler.java78
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/DetailRootTableReadHandler.java38
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/FixedContentReadHandler.java95
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/FormatConditionReadHandler.java97
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/FormattedTextReadHandler.java115
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/FunctionReadHandler.java113
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/GroupReadHandler.java178
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/GroupSectionReadHandler.java38
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ImageReadHandler.java138
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/MasterDetailReadHandler.java106
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportElementReadHandler.java106
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/ReportReadHandler.java235
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/RootTableReadHandler.java102
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/rpt/SubDocumentReadHandler.java134
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/selectors.properties112
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style-mapping.txt8
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/FontFaceReadHandler.java55
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/MasterPageReadHandler.java102
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/OfficeStyleReadHandler.java101
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/OfficeStylesReadHandler.java139
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/PageLayoutReadHandler.java100
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/style/StyleDefinitionReadHandler.java95
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/OneOfConstantsMapper.java75
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/draw/TextAreaVerticalAlignMapper.java44
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/BackgroundColorMapper.java49
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/BorderRightMapper.java54
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/ColorMapper.java51
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/FontSizeMapper.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/FontStyleMapper.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/FontWeightMapper.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/fo/TextAlignMapper.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/FontFamilyGenericMapper.java64
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/FontFamilyMapper.java64
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/FontNameMapper.java48
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/FontPitchMapper.java42
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/FontReliefMapper.java45
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/TextEmphasizeMapper.java44
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/TextUnderlineColorMapper.java53
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/TextUnderlineStyleMapper.java48
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/TextUnderlineWidthMapper.java75
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/TextUnderlineWordMode.java42
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/style/VerticalAlignMapper.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/table/ColumnWidthMapper.java52
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/stylemapper/table/RowHeightMapper.java52
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/CoveredCellReadHandler.java53
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableCellReadHandler.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableColumnReadHandler.java52
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableColumnsReadHandler.java99
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableReadHandler.java141
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableRowReadHandler.java122
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/table/TableRowsReadHandler.java98
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/text/NoCDATATextContentReadHandler.java164
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/text/TextContentReadHandler.java69
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/parser/xlink/XLinkReadHandler.java95
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/smil.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/star-office.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/star-report.css73
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/star-rpt.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/LengthCalculator.java110
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMapper.java95
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMapperKey.java118
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMapperXmlFactoryModule.java70
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMapperXmlResourceFactory.java55
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMappingDocumentReadHandler.java105
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMappingReadHandler.java100
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/StyleMappingRule.java64
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xml168
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/styles/stylemapper.xsd91
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/svg.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/pentaho/xsl-fo.css5
-rw-r--r--reportbuilder/java/com/sun/star/report/util/DefaultJobProperties.java79
-rw-r--r--reportbuilder/java/com/sun/star/report/util/DefaultParameterMap.java122
-rw-r--r--reportbuilder/java/com/sun/star/report/util/DefaultReportJobDefinition.java116
-rw-r--r--reportbuilder/java/com/sun/star/report/util/ManifestWriter.java119
-rw-r--r--reportbuilder/java/com/sun/star/report/util/ReportUtil.java46
-rw-r--r--reportbuilder/java/com/sun/star/report/util/makefile.mk45
-rw-r--r--reportbuilder/java/jfreereport.properties29
-rw-r--r--reportbuilder/java/libformula.properties42
-rw-r--r--reportbuilder/java/loader.properties30
-rw-r--r--reportbuilder/java/makefile.mk45
-rw-r--r--reportbuilder/license/THIRDPARTYREADMELICENSE.html768
-rw-r--r--reportbuilder/license/readme_en-US.html147
-rw-r--r--reportbuilder/license/readme_en-US.txt87
-rw-r--r--reportbuilder/prj/build.lst16
-rw-r--r--reportbuilder/prj/d.lst12
-rw-r--r--reportbuilder/prj/rpt.xml14
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/Accelerators.xcu156
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/DataAccess.xcu44
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/Embedding.xcu71
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/ExtendedColorScheme.xcu195
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/Paths.xcu39
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/ReportDesign.xcu34
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/UI/Controller.xcu167
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/UI/DbReportWindowState.xcu154
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/UI/ReportCommands.xcu403
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/UI/makefile.mk48
-rw-r--r--reportbuilder/registry/data/org/openoffice/Office/makefile.mk68
-rw-r--r--reportbuilder/registry/data/org/openoffice/Setup.xcu54
-rw-r--r--reportbuilder/registry/data/org/openoffice/TypeDetection/Filter.xcu76
-rw-r--r--reportbuilder/registry/data/org/openoffice/TypeDetection/Types.xcu81
-rw-r--r--reportbuilder/registry/data/org/openoffice/TypeDetection/makefile.mk55
-rw-r--r--reportbuilder/registry/data/org/openoffice/makefile.mk50
-rw-r--r--reportbuilder/registry/schema/org/openoffice/Office/ReportDesign.xcs71
-rw-r--r--reportbuilder/registry/schema/org/openoffice/Office/UI/DbReportWindowState.xcs48
-rw-r--r--reportbuilder/registry/schema/org/openoffice/Office/UI/ReportCommands.xcs53
-rw-r--r--reportbuilder/registry/schema/org/openoffice/Office/UI/makefile.mk58
-rw-r--r--reportbuilder/registry/schema/org/openoffice/Office/makefile.mk46
-rw-r--r--reportbuilder/template/delzip0
-rw-r--r--reportbuilder/template/en-US/wizard/report/default.otrbin0 -> 2561 bytes
-rw-r--r--reportbuilder/template/en-US/wizard/report/makefile.mk69
-rw-r--r--reportbuilder/template/makefile.mk122
-rw-r--r--reportbuilder/template/manifest.xml3
-rw-r--r--reportbuilder/template/post.xml8
-rw-r--r--reportbuilder/template/pre.xml6
-rw-r--r--reportbuilder/template/registry/data/org/openoffice/Office/Paths.xcu40
-rw-r--r--reportbuilder/template/registry/data/org/openoffice/Office/makefile.mk49
-rw-r--r--reportbuilder/template/wizard/report/default.odr1
-rw-r--r--reportbuilder/template/wizard/report/finance.odr1
-rw-r--r--reportbuilder/template/wizard/report/finance_2.odr1
-rw-r--r--reportbuilder/template/wizard/report/makefile.mk69
-rw-r--r--reportbuilder/template/wizard/report/yellow.odr1
-rw-r--r--reportbuilder/util/component.txt1
-rw-r--r--reportbuilder/util/delzip1
-rw-r--r--reportbuilder/util/description.xml27
-rw-r--r--reportbuilder/util/hidother.src146
-rw-r--r--reportbuilder/util/makefile.mk155
-rw-r--r--reportbuilder/util/makefile.pmk66
-rw-r--r--reportbuilder/util/manifest.xml7
-rw-r--r--reportbuilder/util/target.pmk34
-rw-r--r--reportdesign/images/em42.pngbin0 -> 1965 bytes
-rw-r--r--reportdesign/images/em42_hc.pngbin0 -> 1160 bytes
-rw-r--r--reportdesign/inc/ModuleHelper.hxx100
-rw-r--r--reportdesign/inc/PropertyForward.hxx92
-rw-r--r--reportdesign/inc/ReportDefinition.hxx390
-rw-r--r--reportdesign/inc/ReportHelperDefines.hxx195
-rw-r--r--reportdesign/inc/ReportVisitor.hxx67
-rw-r--r--reportdesign/inc/RptDef.hxx120
-rw-r--r--reportdesign/inc/RptModel.hxx103
-rw-r--r--reportdesign/inc/RptObject.hxx286
-rw-r--r--reportdesign/inc/RptPage.hxx98
-rw-r--r--reportdesign/inc/RptResId.hrc298
-rw-r--r--reportdesign/inc/UndoActions.hxx300
-rw-r--r--reportdesign/inc/UndoEnv.hxx150
-rw-r--r--reportdesign/inc/conditionalexpression.hxx123
-rw-r--r--reportdesign/inc/dllapi.h41
-rw-r--r--reportdesign/inc/helpids.hrc130
-rw-r--r--reportdesign/inc/makefile.mk47
-rw-r--r--reportdesign/inc/pch/precompiled_reportdesign.cxx29
-rw-r--r--reportdesign/inc/pch/precompiled_reportdesign.hxx45
-rw-r--r--reportdesign/inc/reportformula.hxx134
-rw-r--r--reportdesign/inc/rptui_slotid.hrc212
-rw-r--r--reportdesign/prj/build.lst15
-rw-r--r--reportdesign/prj/d.lst28
-rw-r--r--reportdesign/prj/rpt.xml14
-rwxr-xr-xreportdesign/qa/complex/RPTCalcTests.odbbin0 -> 6715 bytes
-rwxr-xr-xreportdesign/qa/complex/RPTWriterTests.odbbin0 -> 5886 bytes
-rwxr-xr-xreportdesign/qa/complex/ReportDesignerTest.java608
-rwxr-xr-xreportdesign/qa/complex/makefile.mk58
-rw-r--r--reportdesign/qa/complex/mysql-connector-exists.pl9
-rwxr-xr-xreportdesign/qa/complex/runner.props22
-rw-r--r--reportdesign/source/core/api/FixedLine.cxx585
-rw-r--r--reportdesign/source/core/api/FixedText.cxx347
-rw-r--r--reportdesign/source/core/api/FormatCondition.cxx166
-rw-r--r--reportdesign/source/core/api/FormattedField.cxx387
-rw-r--r--reportdesign/source/core/api/Function.cxx222
-rw-r--r--reportdesign/source/core/api/Functions.cxx204
-rw-r--r--reportdesign/source/core/api/Group.cxx357
-rw-r--r--reportdesign/source/core/api/Groups.cxx217
-rw-r--r--reportdesign/source/core/api/ImageControl.cxx505
-rw-r--r--reportdesign/source/core/api/ReportComponent.cxx153
-rw-r--r--reportdesign/source/core/api/ReportControlModel.cxx158
-rw-r--r--reportdesign/source/core/api/ReportDefinition.cxx2894
-rw-r--r--reportdesign/source/core/api/ReportEngineJFree.cxx426
-rw-r--r--reportdesign/source/core/api/ReportVisitor.cxx93
-rw-r--r--reportdesign/source/core/api/Section.cxx723
-rw-r--r--reportdesign/source/core/api/Shape.cxx522
-rw-r--r--reportdesign/source/core/api/Tools.cxx77
-rw-r--r--reportdesign/source/core/api/makefile.mk63
-rw-r--r--reportdesign/source/core/api/services.cxx99
-rw-r--r--reportdesign/source/core/inc/FixedLine.hxx175
-rw-r--r--reportdesign/source/core/inc/FixedText.hxx160
-rw-r--r--reportdesign/source/core/inc/FormatCondition.hxx117
-rw-r--r--reportdesign/source/core/inc/FormattedField.hxx167
-rw-r--r--reportdesign/source/core/inc/Function.hxx129
-rw-r--r--reportdesign/source/core/inc/Functions.hxx105
-rw-r--r--reportdesign/source/core/inc/Group.hxx163
-rw-r--r--reportdesign/source/core/inc/Groups.hxx108
-rw-r--r--reportdesign/source/core/inc/ImageControl.hxx164
-rw-r--r--reportdesign/source/core/inc/ReportComponent.hxx88
-rw-r--r--reportdesign/source/core/inc/ReportControlModel.hxx137
-rw-r--r--reportdesign/source/core/inc/ReportDrawPage.hxx50
-rw-r--r--reportdesign/source/core/inc/ReportEngineJFree.hxx138
-rw-r--r--reportdesign/source/core/inc/ReportHelperImpl.hxx1291
-rw-r--r--reportdesign/source/core/inc/ReportUndoFactory.hxx85
-rw-r--r--reportdesign/source/core/inc/RptObjectListener.hxx63
-rw-r--r--reportdesign/source/core/inc/Section.hxx208
-rw-r--r--reportdesign/source/core/inc/Shape.hxx182
-rw-r--r--reportdesign/source/core/inc/Tools.hxx183
-rw-r--r--reportdesign/source/core/inc/conditionupdater.hxx75
-rw-r--r--reportdesign/source/core/inc/core_resource.hrc59
-rw-r--r--reportdesign/source/core/inc/core_resource.hxx78
-rw-r--r--reportdesign/source/core/misc/conditionalexpression.cxx204
-rw-r--r--reportdesign/source/core/misc/conditionupdater.cxx135
-rw-r--r--reportdesign/source/core/misc/makefile.mk46
-rw-r--r--reportdesign/source/core/misc/reportformula.cxx183
-rw-r--r--reportdesign/source/core/resource/core_resource.cxx90
-rw-r--r--reportdesign/source/core/resource/makefile.mk48
-rw-r--r--reportdesign/source/core/resource/strings.src95
-rw-r--r--reportdesign/source/core/sdr/ModuleHelper.cxx141
-rw-r--r--reportdesign/source/core/sdr/PropertyForward.cxx205
-rw-r--r--reportdesign/source/core/sdr/ReportDrawPage.cxx156
-rw-r--r--reportdesign/source/core/sdr/ReportUndoFactory.cxx181
-rw-r--r--reportdesign/source/core/sdr/RptModel.cxx233
-rw-r--r--reportdesign/source/core/sdr/RptObject.cxx1263
-rw-r--r--reportdesign/source/core/sdr/RptObjectListener.cxx95
-rw-r--r--reportdesign/source/core/sdr/RptPage.cxx251
-rw-r--r--reportdesign/source/core/sdr/UndoActions.cxx449
-rw-r--r--reportdesign/source/core/sdr/UndoEnv.cxx629
-rw-r--r--reportdesign/source/core/sdr/formatnormalizer.cxx279
-rw-r--r--reportdesign/source/core/sdr/formatnormalizer.hxx94
-rw-r--r--reportdesign/source/core/sdr/makefile.mk52
-rw-r--r--reportdesign/source/filter/xml/dbloader2.cxx125
-rw-r--r--reportdesign/source/filter/xml/dbloader2.hxx102
-rw-r--r--reportdesign/source/filter/xml/makefile.mk70
-rw-r--r--reportdesign/source/filter/xml/xmlAutoStyle.cxx99
-rw-r--r--reportdesign/source/filter/xml/xmlAutoStyle.hxx61
-rw-r--r--reportdesign/source/filter/xml/xmlCell.cxx293
-rw-r--r--reportdesign/source/filter/xml/xmlCell.hxx74
-rw-r--r--reportdesign/source/filter/xml/xmlColumn.cxx190
-rw-r--r--reportdesign/source/filter/xml/xmlColumn.hxx64
-rw-r--r--reportdesign/source/filter/xml/xmlComponent.cxx117
-rw-r--r--reportdesign/source/filter/xml/xmlComponent.hxx60
-rw-r--r--reportdesign/source/filter/xml/xmlCondPrtExpr.cxx103
-rw-r--r--reportdesign/source/filter/xml/xmlCondPrtExpr.hxx58
-rw-r--r--reportdesign/source/filter/xml/xmlControlProperty.cxx360
-rw-r--r--reportdesign/source/filter/xml/xmlControlProperty.hxx86
-rw-r--r--reportdesign/source/filter/xml/xmlEnums.hxx179
-rw-r--r--reportdesign/source/filter/xml/xmlExport.cxx1665
-rw-r--r--reportdesign/source/filter/xml/xmlExport.hxx281
-rw-r--r--reportdesign/source/filter/xml/xmlExportDocumentHandler.cxx437
-rw-r--r--reportdesign/source/filter/xml/xmlExportDocumentHandler.hxx105
-rw-r--r--reportdesign/source/filter/xml/xmlFixedContent.cxx241
-rw-r--r--reportdesign/source/filter/xml/xmlFixedContent.hxx71
-rw-r--r--reportdesign/source/filter/xml/xmlFormatCondition.cxx118
-rw-r--r--reportdesign/source/filter/xml/xmlFormatCondition.hxx57
-rw-r--r--reportdesign/source/filter/xml/xmlFormattedField.cxx105
-rw-r--r--reportdesign/source/filter/xml/xmlFormattedField.hxx55
-rw-r--r--reportdesign/source/filter/xml/xmlFunction.cxx141
-rw-r--r--reportdesign/source/filter/xml/xmlFunction.hxx67
-rw-r--r--reportdesign/source/filter/xml/xmlGroup.cxx270
-rw-r--r--reportdesign/source/filter/xml/xmlGroup.hxx66
-rw-r--r--reportdesign/source/filter/xml/xmlHelper.cxx418
-rw-r--r--reportdesign/source/filter/xml/xmlHelper.hxx93
-rw-r--r--reportdesign/source/filter/xml/xmlImage.cxx130
-rw-r--r--reportdesign/source/filter/xml/xmlImage.hxx55
-rw-r--r--reportdesign/source/filter/xml/xmlImportDocumentHandler.cxx393
-rw-r--r--reportdesign/source/filter/xml/xmlImportDocumentHandler.hxx104
-rw-r--r--reportdesign/source/filter/xml/xmlMasterFields.cxx121
-rw-r--r--reportdesign/source/filter/xml/xmlMasterFields.hxx57
-rw-r--r--reportdesign/source/filter/xml/xmlPropertyHandler.cxx57
-rw-r--r--reportdesign/source/filter/xml/xmlPropertyHandler.hxx49
-rw-r--r--reportdesign/source/filter/xml/xmlReport.cxx236
-rw-r--r--reportdesign/source/filter/xml/xmlReport.hxx70
-rw-r--r--reportdesign/source/filter/xml/xmlReportElement.cxx143
-rw-r--r--reportdesign/source/filter/xml/xmlReportElement.hxx58
-rw-r--r--reportdesign/source/filter/xml/xmlReportElementBase.cxx115
-rw-r--r--reportdesign/source/filter/xml/xmlReportElementBase.hxx76
-rw-r--r--reportdesign/source/filter/xml/xmlRow.cxx184
-rw-r--r--reportdesign/source/filter/xml/xmlRow.hxx63
-rw-r--r--reportdesign/source/filter/xml/xmlSection.cxx158
-rw-r--r--reportdesign/source/filter/xml/xmlSection.hxx64
-rw-r--r--reportdesign/source/filter/xml/xmlStyleImport.cxx459
-rw-r--r--reportdesign/source/filter/xml/xmlStyleImport.hxx166
-rw-r--r--reportdesign/source/filter/xml/xmlSubDocument.cxx164
-rw-r--r--reportdesign/source/filter/xml/xmlSubDocument.hxx71
-rw-r--r--reportdesign/source/filter/xml/xmlTable.cxx323
-rw-r--r--reportdesign/source/filter/xml/xmlTable.hxx99
-rw-r--r--reportdesign/source/filter/xml/xmlfilter.cxx1137
-rw-r--r--reportdesign/source/filter/xml/xmlfilter.hxx247
-rw-r--r--reportdesign/source/filter/xml/xmlservices.cxx101
-rw-r--r--reportdesign/source/inc/GroupProperties.hxx54
-rw-r--r--reportdesign/source/inc/constasciistring.hxx61
-rw-r--r--reportdesign/source/inc/corestrings.hrc41
-rw-r--r--reportdesign/source/inc/stringconstants.hrc288
-rw-r--r--reportdesign/source/inc/uistrings.hrc78
-rw-r--r--reportdesign/source/inc/xmlstrings.hrc56
-rw-r--r--reportdesign/source/shared/corestrings.cxx35
-rw-r--r--reportdesign/source/shared/makefile.mk67
-rw-r--r--reportdesign/source/shared/stringconstants.cxx276
-rw-r--r--reportdesign/source/shared/uistrings.cxx69
-rw-r--r--reportdesign/source/shared/xmlstrings.cxx45
-rw-r--r--reportdesign/source/ui/dlg/AddField.cxx535
-rw-r--r--reportdesign/source/ui/dlg/CondFormat.cxx625
-rw-r--r--reportdesign/source/ui/dlg/CondFormat.hrc87
-rw-r--r--reportdesign/source/ui/dlg/CondFormat.src445
-rw-r--r--reportdesign/source/ui/dlg/Condition.cxx740
-rw-r--r--reportdesign/source/ui/dlg/Condition.hxx198
-rw-r--r--reportdesign/source/ui/dlg/DateTime.cxx273
-rw-r--r--reportdesign/source/ui/dlg/DateTime.hrc55
-rw-r--r--reportdesign/source/ui/dlg/DateTime.src128
-rw-r--r--reportdesign/source/ui/dlg/Formula.cxx273
-rw-r--r--reportdesign/source/ui/dlg/GroupExchange.cxx76
-rw-r--r--reportdesign/source/ui/dlg/GroupExchange.hxx53
-rw-r--r--reportdesign/source/ui/dlg/GroupsSorting.cxx1539
-rw-r--r--reportdesign/source/ui/dlg/GroupsSorting.hrc79
-rw-r--r--reportdesign/source/ui/dlg/GroupsSorting.src496
-rw-r--r--reportdesign/source/ui/dlg/Navigator.cxx986
-rw-r--r--reportdesign/source/ui/dlg/Navigator.src187
-rw-r--r--reportdesign/source/ui/dlg/PageNumber.cxx162
-rw-r--r--reportdesign/source/ui/dlg/PageNumber.hrc59
-rw-r--r--reportdesign/source/ui/dlg/PageNumber.src164
-rw-r--r--reportdesign/source/ui/dlg/dlgpage.cxx93
-rw-r--r--reportdesign/source/ui/dlg/dlgpage.src304
-rw-r--r--reportdesign/source/ui/dlg/makefile.mk77
-rw-r--r--reportdesign/source/ui/inc/AddField.hxx143
-rw-r--r--reportdesign/source/ui/inc/ColorChanger.hxx70
-rw-r--r--reportdesign/source/ui/inc/ColorListener.hxx84
-rw-r--r--reportdesign/source/ui/inc/CondFormat.hxx186
-rw-r--r--reportdesign/source/ui/inc/DataProviderHandler.hxx129
-rw-r--r--reportdesign/source/ui/inc/DateTime.hxx109
-rw-r--r--reportdesign/source/ui/inc/DefaultInspection.hxx111
-rw-r--r--reportdesign/source/ui/inc/DesignView.hxx298
-rw-r--r--reportdesign/source/ui/inc/EndMarker.hxx53
-rw-r--r--reportdesign/source/ui/inc/FixedTextColor.hxx73
-rw-r--r--reportdesign/source/ui/inc/FormattedFieldBeautifier.hxx71
-rw-r--r--reportdesign/source/ui/inc/Formula.hxx112
-rw-r--r--reportdesign/source/ui/inc/FunctionHelper.hxx112
-rw-r--r--reportdesign/source/ui/inc/GeometryHandler.hxx321
-rw-r--r--reportdesign/source/ui/inc/GroupsSorting.hxx205
-rw-r--r--reportdesign/source/ui/inc/IReportControllerObserver.hxx54
-rw-r--r--reportdesign/source/ui/inc/InsertFunctions.hxx46
-rw-r--r--reportdesign/source/ui/inc/MarkedSection.hxx60
-rw-r--r--reportdesign/source/ui/inc/Navigator.hxx55
-rw-r--r--reportdesign/source/ui/inc/PageNumber.hxx88
-rw-r--r--reportdesign/source/ui/inc/ReportComponentHandler.hxx115
-rw-r--r--reportdesign/source/ui/inc/ReportController.hxx481
-rw-r--r--reportdesign/source/ui/inc/ReportControllerObserver.hxx137
-rw-r--r--reportdesign/source/ui/inc/ReportDefines.hxx39
-rw-r--r--reportdesign/source/ui/inc/ReportRuler.hxx63
-rw-r--r--reportdesign/source/ui/inc/ReportSection.hxx173
-rw-r--r--reportdesign/source/ui/inc/ReportWindow.hxx238
-rw-r--r--reportdesign/source/ui/inc/ScrollHelper.hxx229
-rw-r--r--reportdesign/source/ui/inc/SectionView.hxx77
-rw-r--r--reportdesign/source/ui/inc/SectionWindow.hxx140
-rw-r--r--reportdesign/source/ui/inc/StartMarker.hxx88
-rw-r--r--reportdesign/source/ui/inc/UITools.hxx189
-rw-r--r--reportdesign/source/ui/inc/Undo.hxx153
-rw-r--r--reportdesign/source/ui/inc/ViewsWindow.hxx361
-rw-r--r--reportdesign/source/ui/inc/dlgedclip.hxx86
-rw-r--r--reportdesign/source/ui/inc/dlgedfac.hxx50
-rw-r--r--reportdesign/source/ui/inc/dlgedfunc.hxx160
-rw-r--r--reportdesign/source/ui/inc/dlgpage.hxx54
-rw-r--r--reportdesign/source/ui/inc/metadata.hxx162
-rw-r--r--reportdesign/source/ui/inc/propbrw.hxx118
-rw-r--r--reportdesign/source/ui/inc/statusbarcontroller.hxx92
-rw-r--r--reportdesign/source/ui/inc/toolboxcontroller.hxx91
-rw-r--r--reportdesign/source/ui/inspection/DataProviderHandler.cxx572
-rw-r--r--reportdesign/source/ui/inspection/DefaultInspection.cxx281
-rw-r--r--reportdesign/source/ui/inspection/GeometryHandler.cxx2246
-rw-r--r--reportdesign/source/ui/inspection/ReportComponentHandler.cxx232
-rw-r--r--reportdesign/source/ui/inspection/inspection.src394
-rw-r--r--reportdesign/source/ui/inspection/makefile.mk53
-rw-r--r--reportdesign/source/ui/inspection/metadata.cxx339
-rw-r--r--reportdesign/source/ui/misc/ColorListener.cxx97
-rw-r--r--reportdesign/source/ui/misc/FunctionHelper.cxx257
-rw-r--r--reportdesign/source/ui/misc/UITools.cxx1084
-rw-r--r--reportdesign/source/ui/misc/Undo.cxx416
-rw-r--r--reportdesign/source/ui/misc/makefile.mk62
-rw-r--r--reportdesign/source/ui/misc/rptuiservices.cxx89
-rw-r--r--reportdesign/source/ui/misc/statusbarcontroller.cxx230
-rw-r--r--reportdesign/source/ui/misc/toolboxcontroller.cxx360
-rw-r--r--reportdesign/source/ui/report/DesignView.cxx787
-rw-r--r--reportdesign/source/ui/report/EndMarker.cxx104
-rw-r--r--reportdesign/source/ui/report/FixedTextColor.cxx283
-rw-r--r--reportdesign/source/ui/report/FormattedFieldBeautifier.cxx202
-rw-r--r--reportdesign/source/ui/report/ReportController.cxx4377
-rw-r--r--reportdesign/source/ui/report/ReportControllerObserver.cxx486
-rw-r--r--reportdesign/source/ui/report/ReportRuler.cxx63
-rw-r--r--reportdesign/source/ui/report/ReportSection.cxx878
-rw-r--r--reportdesign/source/ui/report/ReportWindow.cxx444
-rw-r--r--reportdesign/source/ui/report/ScrollHelper.cxx416
-rw-r--r--reportdesign/source/ui/report/SectionView.cxx274
-rw-r--r--reportdesign/source/ui/report/SectionWindow.cxx409
-rw-r--r--reportdesign/source/ui/report/StartMarker.cxx324
-rw-r--r--reportdesign/source/ui/report/ViewsWindow.cxx1869
-rw-r--r--reportdesign/source/ui/report/dlgedclip.cxx107
-rw-r--r--reportdesign/source/ui/report/dlgedfac.cxx113
-rw-r--r--reportdesign/source/ui/report/dlgedfunc.cxx1119
-rw-r--r--reportdesign/source/ui/report/makefile.mk72
-rw-r--r--reportdesign/source/ui/report/propbrw.cxx619
-rw-r--r--reportdesign/source/ui/report/report.src700
-rw-r--r--reportdesign/uiconfig/dbreport/accelerator/de-DE/default.xml20
-rw-r--r--reportdesign/uiconfig/dbreport/accelerator/en-GB/default.xml20
-rw-r--r--reportdesign/uiconfig/dbreport/accelerator/en-US/default.xml20
-rw-r--r--reportdesign/uiconfig/dbreport/menubar/menubar.xml422
-rw-r--r--reportdesign/uiconfig/dbreport/statusbar/statusbar.xml6
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/Formatting.xml23
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/alignmentbar.xml11
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/arrowshapes.xml34
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/basicshapes.xml29
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/calloutshapes.xml11
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/drawbar.xml10
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/flowchartshapes.xml36
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/reportcontrols.xml19
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/resizebar.xml9
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/sectionalignmentbar.xml9
-rwxr-xr-xreportdesign/uiconfig/dbreport/toolbar/sectionshrinkbar.xml7
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/starshapes.xml17
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/symbolshapes.xml24
-rw-r--r--reportdesign/uiconfig/dbreport/toolbar/toolbar.xml22
-rw-r--r--reportdesign/util/dll.pmk31
-rw-r--r--reportdesign/util/hidother.src171
-rw-r--r--reportdesign/util/makefile.mk233
-rw-r--r--reportdesign/util/rpt.map9
-rw-r--r--reportdesign/util/rptui.map8
-rwxr-xr-xrhino/README12
-rwxr-xr-xrhino/makefile.mk67
-rw-r--r--rhino/prj/build.lst3
-rw-r--r--rhino/prj/d.lst1
-rw-r--r--rhino/rhino1_5R5-find_swing.patch22
-rw-r--r--rhino/rhino1_5R5.patch1205
-rw-r--r--ridljar/com/makefile.mk64
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/FieldDescription.java76
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/MemberDescriptionHelper.java64
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/MethodDescription.java111
-rw-r--r--ridljar/com/sun/star/lib/uno/typedesc/TypeDescription.java721
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/AttributeTypeInfo.java95
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/ConstantTypeInfo.java40
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/MemberTypeInfo.java105
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/MethodTypeInfo.java98
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/ParameterTypeInfo.java114
-rw-r--r--ridljar/com/sun/star/lib/uno/typeinfo/TypeInfo.java85
-rw-r--r--ridljar/com/sun/star/lib/util/DisposeListener.java43
-rw-r--r--ridljar/com/sun/star/lib/util/DisposeNotifier.java53
-rw-r--r--ridljar/com/sun/star/lib/util/WeakMap.java311
-rw-r--r--ridljar/com/sun/star/uno/Any.java140
-rw-r--r--ridljar/com/sun/star/uno/Enum.java61
-rw-r--r--ridljar/com/sun/star/uno/IBridge.java99
-rw-r--r--ridljar/com/sun/star/uno/IEnvironment.java152
-rw-r--r--ridljar/com/sun/star/uno/IFieldDescription.java55
-rw-r--r--ridljar/com/sun/star/uno/IMapping.java49
-rw-r--r--ridljar/com/sun/star/uno/IMemberDescription.java75
-rw-r--r--ridljar/com/sun/star/uno/IMethodDescription.java88
-rw-r--r--ridljar/com/sun/star/uno/IQueryInterface.java69
-rw-r--r--ridljar/com/sun/star/uno/ITypeDescription.java188
-rw-r--r--ridljar/com/sun/star/uno/Type.java652
-rw-r--r--ridljar/com/sun/star/uno/Union.java52
-rw-r--r--ridljar/com/sun/star/uno/UnoRuntime.java696
-rw-r--r--ridljar/javamaker/makefile.mk46
-rw-r--r--ridljar/prj/build.lst6
-rw-r--r--ridljar/prj/d.lst4
-rw-r--r--ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java214
-rw-r--r--ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoLoader.java94
-rw-r--r--ridljar/source/unoloader/com/sun/star/lib/unoloader/makefile.mk60
-rw-r--r--ridljar/source/unoloader/com/sun/star/lib/unoloader/manifest1
-rw-r--r--ridljar/source/unoloader/delzip0
-rw-r--r--ridljar/source/unoloader/makefile.mk39
-rw-r--r--ridljar/test/com/sun/star/lib/uno/typedesc/TypeDescription_Test.java310
-rw-r--r--ridljar/test/com/sun/star/lib/uno/typedesc/makefile.mk35
-rw-r--r--ridljar/test/com/sun/star/lib/util/WeakMap_Test.java86
-rw-r--r--ridljar/test/com/sun/star/lib/util/makefile.mk36
-rw-r--r--ridljar/test/com/sun/star/uno/Any_Test.java58
-rw-r--r--ridljar/test/com/sun/star/uno/Type_Test.java111
-rw-r--r--ridljar/test/com/sun/star/uno/UnoRuntime_Test.java216
-rw-r--r--ridljar/test/com/sun/star/uno/makefile.mk38
-rw-r--r--ridljar/test/makefile.mk35
-rw-r--r--ridljar/util/delzip0
-rw-r--r--ridljar/util/makefile.mk52
-rw-r--r--rsc/doku/feinkonz.43/rsc.doc4096
-rw-r--r--rsc/doku/feinkonz.43/rscerror.doc2119
-rw-r--r--rsc/doku/feinkonz.43/rscinst.doc4138
-rw-r--r--rsc/doku/schriftw.16/change.doc1105
-rw-r--r--rsc/inc/pch/precompiled_rsc.cxx29
-rw-r--r--rsc/inc/pch/precompiled_rsc.hxx32
-rw-r--r--rsc/inc/rscall.h112
-rw-r--r--rsc/inc/rscarray.hxx136
-rw-r--r--rsc/inc/rscclass.hxx139
-rw-r--r--rsc/inc/rscclobj.hxx112
-rw-r--r--rsc/inc/rscconst.hxx110
-rw-r--r--rsc/inc/rsccont.hxx153
-rw-r--r--rsc/inc/rscdb.hxx359
-rw-r--r--rsc/inc/rscdef.hxx274
-rw-r--r--rsc/inc/rscerror.h162
-rw-r--r--rsc/inc/rscflag.hxx106
-rw-r--r--rsc/inc/rschash.hxx54
-rw-r--r--rsc/inc/rscinst.hxx244
-rw-r--r--rsc/inc/rsckey.hxx61
-rw-r--r--rsc/inc/rsclst.hxx67
-rw-r--r--rsc/inc/rscmgr.hxx80
-rw-r--r--rsc/inc/rscpar.hxx92
-rw-r--r--rsc/inc/rscrange.hxx209
-rw-r--r--rsc/inc/rscrsc.hxx138
-rw-r--r--rsc/inc/rscsfx.hxx62
-rw-r--r--rsc/inc/rscstr.hxx79
-rw-r--r--rsc/inc/rsctools.hxx221
-rw-r--r--rsc/inc/rsctop.hxx247
-rw-r--r--rsc/inc/rsctree.hxx118
-rw-r--r--rsc/inc/vclrsc.hxx345
-rw-r--r--rsc/prj/build.lst9
-rw-r--r--rsc/prj/d.lst9
-rw-r--r--rsc/source/misc/makefile.mk45
-rw-r--r--rsc/source/misc/rscdbl.cxx119
-rw-r--r--rsc/source/misc/rsclst.cxx51
-rw-r--r--rsc/source/parser/erscerr.cxx516
-rw-r--r--rsc/source/parser/makefile.mk78
-rw-r--r--rsc/source/parser/parser.cxx59
-rw-r--r--rsc/source/parser/parser.hxx26
-rw-r--r--rsc/source/parser/rscdb.cxx1114
-rw-r--r--rsc/source/parser/rscibas.cxx711
-rw-r--r--rsc/source/parser/rscicpx.cxx2389
-rw-r--r--rsc/source/parser/rscinit.cxx941
-rw-r--r--rsc/source/parser/rsckey.cxx214
-rw-r--r--rsc/source/parser/rsclex.cxx442
-rw-r--r--rsc/source/parser/rsclex.hxx128
-rw-r--r--rsc/source/parser/rscpar.cxx239
-rw-r--r--rsc/source/parser/rscyacc.cxx271
-rw-r--r--rsc/source/parser/rscyacc.y1118
-rw-r--r--rsc/source/prj/gui.cxx133
-rw-r--r--rsc/source/prj/makefile.mk79
-rw-r--r--rsc/source/prj/start.cxx488
-rw-r--r--rsc/source/res/makefile.mk61
-rw-r--r--rsc/source/res/rscall.cxx64
-rw-r--r--rsc/source/res/rscarray.cxx728
-rw-r--r--rsc/source/res/rscclass.cxx1261
-rw-r--r--rsc/source/res/rscclobj.cxx227
-rw-r--r--rsc/source/res/rscconst.cxx415
-rw-r--r--rsc/source/res/rsccont.cxx1179
-rw-r--r--rsc/source/res/rscflag.cxx490
-rw-r--r--rsc/source/res/rscmgr.cxx717
-rw-r--r--rsc/source/res/rscrange.cxx850
-rw-r--r--rsc/source/res/rscstr.cxx401
-rw-r--r--rsc/source/res/rsctop.cxx994
-rw-r--r--rsc/source/rsc/makefile.mk41
-rw-r--r--rsc/source/rsc/rsc.cxx1386
-rw-r--r--rsc/source/rscpp/cpp.h415
-rw-r--r--rsc/source/rscpp/cpp1.c616
-rw-r--r--rsc/source/rscpp/cpp2.c625
-rw-r--r--rsc/source/rscpp/cpp3.c601
-rw-r--r--rsc/source/rscpp/cpp4.c635
-rw-r--r--rsc/source/rscpp/cpp5.c929
-rw-r--r--rsc/source/rscpp/cpp6.c1148
-rw-r--r--rsc/source/rscpp/cppdef.h346
-rw-r--r--rsc/source/rscpp/cppmain.c45
-rw-r--r--rsc/source/rscpp/makefile.mk92
-rw-r--r--rsc/source/tools/makefile.mk45
-rw-r--r--rsc/source/tools/rscchar.cxx329
-rw-r--r--rsc/source/tools/rscdef.cxx1401
-rw-r--r--rsc/source/tools/rschash.cxx68
-rw-r--r--rsc/source/tools/rsctools.cxx492
-rw-r--r--rsc/source/tools/rsctree.cxx546
-rw-r--r--sal/cpprt/makefile.mk71
-rw-r--r--sal/cpprt/operators_new_delete.cxx251
-rw-r--r--sal/inc/internal/once.h79
-rw-r--r--sal/inc/makefile.mk47
-rw-r--r--sal/inc/osl/conditn.h92
-rw-r--r--sal/inc/osl/conditn.hxx128
-rw-r--r--sal/inc/osl/diagnose.h160
-rw-r--r--sal/inc/osl/diagnose.hxx205
-rw-r--r--sal/inc/osl/doublecheckedlocking.h81
-rw-r--r--sal/inc/osl/endian.h235
-rw-r--r--sal/inc/osl/file.h1593
-rw-r--r--sal/inc/osl/file.hxx1953
-rw-r--r--sal/inc/osl/getglobalmutex.hxx50
-rw-r--r--sal/inc/osl/interlck.h57
-rw-r--r--sal/inc/osl/module.h211
-rw-r--r--sal/inc/osl/module.hxx158
-rw-r--r--sal/inc/osl/mutex.h77
-rw-r--r--sal/inc/osl/mutex.hxx253
-rw-r--r--sal/inc/osl/nlsupport.h60
-rw-r--r--sal/inc/osl/pipe.h102
-rw-r--r--sal/inc/osl/pipe.hxx212
-rw-r--r--sal/inc/osl/pipe_decl.hxx235
-rw-r--r--sal/inc/osl/process.h428
-rw-r--r--sal/inc/osl/profile.h140
-rw-r--r--sal/inc/osl/profile.hxx204
-rw-r--r--sal/inc/osl/security.h158
-rw-r--r--sal/inc/osl/security.hxx110
-rw-r--r--sal/inc/osl/security_decl.hxx117
-rw-r--r--sal/inc/osl/semaphor.h76
-rw-r--r--sal/inc/osl/semaphor.hxx122
-rw-r--r--sal/inc/osl/signal.h114
-rw-r--r--sal/inc/osl/socket.h891
-rw-r--r--sal/inc/osl/socket.hxx565
-rw-r--r--sal/inc/osl/socket_decl.hxx722
-rw-r--r--sal/inc/osl/thread.h191
-rw-r--r--sal/inc/osl/thread.hxx233
-rw-r--r--sal/inc/osl/time.h160
-rw-r--r--sal/inc/osl/util.h53
-rw-r--r--sal/inc/pch/precompiled_sal.cxx29
-rw-r--r--sal/inc/pch/precompiled_sal.hxx32
-rw-r--r--sal/inc/rtl/alloc.h266
-rw-r--r--sal/inc/rtl/allocator.hxx192
-rw-r--r--sal/inc/rtl/bootstrap.h233
-rw-r--r--sal/inc/rtl/bootstrap.hxx234
-rw-r--r--sal/inc/rtl/byteseq.h322
-rw-r--r--sal/inc/rtl/byteseq.hxx143
-rw-r--r--sal/inc/rtl/cipher.h319
-rw-r--r--sal/inc/rtl/crc.h66
-rw-r--r--sal/inc/rtl/digest.h639
-rw-r--r--sal/inc/rtl/instance.hxx472
-rw-r--r--sal/inc/rtl/locale.h140
-rw-r--r--sal/inc/rtl/locale.hxx266
-rw-r--r--sal/inc/rtl/logfile.h134
-rw-r--r--sal/inc/rtl/logfile.hxx205
-rw-r--r--sal/inc/rtl/malformeduriexception.hxx74
-rw-r--r--sal/inc/rtl/math.h474
-rw-r--r--sal/inc/rtl/math.hxx432
-rw-r--r--sal/inc/rtl/memory.h51
-rw-r--r--sal/inc/rtl/process.h82
-rw-r--r--sal/inc/rtl/random.h114
-rw-r--r--sal/inc/rtl/ref.hxx242
-rw-r--r--sal/inc/rtl/strbuf.h119
-rw-r--r--sal/inc/rtl/strbuf.hxx665
-rw-r--r--sal/inc/rtl/string.h1193
-rw-r--r--sal/inc/rtl/string.hxx941
-rw-r--r--sal/inc/rtl/tencinfo.h276
-rw-r--r--sal/inc/rtl/textcvt.h180
-rw-r--r--sal/inc/rtl/textenc.h279
-rw-r--r--sal/inc/rtl/tres.h106
-rw-r--r--sal/inc/rtl/tres.hxx112
-rw-r--r--sal/inc/rtl/unload.h315
-rw-r--r--sal/inc/rtl/uri.h354
-rw-r--r--sal/inc/rtl/uri.hxx154
-rw-r--r--sal/inc/rtl/ustrbuf.h165
-rw-r--r--sal/inc/rtl/ustrbuf.hxx774
-rw-r--r--sal/inc/rtl/ustring.h1660
-rw-r--r--sal/inc/rtl/ustring.hxx1540
-rw-r--r--sal/inc/rtl/uuid.h209
-rw-r--r--sal/inc/sal/alloca.h66
-rw-r--r--sal/inc/sal/config.h152
-rw-r--r--sal/inc/sal/macros.h51
-rw-r--r--sal/inc/sal/main.h152
-rw-r--r--sal/inc/sal/mathconf.h147
-rw-r--r--sal/inc/sal/types.h435
-rw-r--r--sal/inc/systools/win32/AutoSystoolInit.hxx62
-rw-r--r--sal/inc/systools/win32/StrConvert.h132
-rw-r--r--sal/inc/systools/win32/SyncObjects.hxx110
-rw-r--r--sal/inc/systools/win32/advapi9x.h209
-rw-r--r--sal/inc/systools/win32/comdlg9x.h80
-rw-r--r--sal/inc/systools/win32/comptr.hxx233
-rw-r--r--sal/inc/systools/win32/comtools.hxx194
-rw-r--r--sal/inc/systools/win32/kernel9x.h383
-rw-r--r--sal/inc/systools/win32/mpr9x.h72
-rw-r--r--sal/inc/systools/win32/shell9x.h101
-rw-r--r--sal/inc/systools/win32/snprintf.h80
-rw-r--r--sal/inc/systools/win32/user9x.h192
-rw-r--r--sal/inc/systools/win32/uwinapi.h121
-rw-r--r--sal/osl/all/debugbase.cxx161
-rw-r--r--sal/osl/all/filepath.c123
-rw-r--r--sal/osl/all/loadmodulerelative.cxx71
-rw-r--r--sal/osl/all/makefile.mk76
-rwxr-xr-xsal/osl/all/utility.cxx103
-rw-r--r--sal/osl/os2/conditn.c124
-rw-r--r--sal/osl/os2/debug.c2152
-rw-r--r--sal/osl/os2/diagnose.c178
-rw-r--r--sal/osl/os2/dllentry.c75
-rw-r--r--sal/osl/os2/except.c1059
-rw-r--r--sal/osl/os2/file.cxx3129
-rw-r--r--sal/osl/os2/file_error_transl.cxx252
-rw-r--r--sal/osl/os2/file_error_transl.h70
-rw-r--r--sal/osl/os2/file_path_helper.cxx377
-rw-r--r--sal/osl/os2/file_path_helper.h292
-rw-r--r--sal/osl/os2/file_path_helper.hxx296
-rw-r--r--sal/osl/os2/file_url.cxx1626
-rw-r--r--sal/osl/os2/file_url.h183
-rw-r--r--sal/osl/os2/helpers/debug.h1779
-rw-r--r--sal/osl/os2/helpers/dosh.h49
-rw-r--r--sal/osl/os2/helpers/except.h255
-rw-r--r--sal/osl/os2/helpers/setup.h147
-rw-r--r--sal/osl/os2/interlck.c51
-rw-r--r--sal/osl/os2/libutil.c52
-rw-r--r--sal/osl/os2/makefile.mk118
-rw-r--r--sal/osl/os2/module.c281
-rw-r--r--sal/osl/os2/mutex.c167
-rw-r--r--sal/osl/os2/nlsupport.c445
-rw-r--r--sal/osl/os2/path_helper.cxx116
-rw-r--r--sal/osl/os2/path_helper.h70
-rw-r--r--sal/osl/os2/path_helper.hxx73
-rw-r--r--sal/osl/os2/pipe.cxx555
-rw-r--r--sal/osl/os2/pipeimpl.cxx755
-rw-r--r--sal/osl/os2/pipeimpl.h82
-rw-r--r--sal/osl/os2/process.c1013
-rw-r--r--sal/osl/os2/process_impl.cxx368
-rw-r--r--sal/osl/os2/procimpl.h52
-rw-r--r--sal/osl/os2/profile.c2295
-rw-r--r--sal/osl/os2/salinit.cxx120
-rw-r--r--sal/osl/os2/secimpl.h50
-rw-r--r--sal/osl/os2/security.c317
-rw-r--r--sal/osl/os2/semaphor.c190
-rw-r--r--sal/osl/os2/signal.c249
-rw-r--r--sal/osl/os2/socket.c3097
-rw-r--r--sal/osl/os2/sockimpl.h80
-rw-r--r--sal/osl/os2/system.h514
-rw-r--r--sal/osl/os2/tempfile.c359
-rw-r--r--sal/osl/os2/thread.c772
-rw-r--r--sal/osl/os2/time.c269
-rw-r--r--sal/osl/os2/util.c37
-rw-r--r--sal/osl/os2/uunxapi.cxx86
-rw-r--r--sal/osl/os2/uunxapi.h86
-rw-r--r--sal/osl/os2/uunxapi.hxx106
-rw-r--r--sal/osl/unx/asm/interlck_sparc.s267
-rw-r--r--sal/osl/unx/asm/interlck_x86.s92
-rwxr-xr-xsal/osl/unx/backtrace.c359
-rwxr-xr-xsal/osl/unx/backtrace.h99
-rw-r--r--sal/osl/unx/conditn.c350
-rw-r--r--sal/osl/unx/diagnose.c332
-rw-r--r--sal/osl/unx/file.cxx1397
-rw-r--r--sal/osl/unx/file_error_transl.cxx255
-rw-r--r--sal/osl/unx/file_error_transl.h70
-rw-r--r--sal/osl/unx/file_impl.hxx54
-rw-r--r--sal/osl/unx/file_misc.cxx1101
-rw-r--r--sal/osl/unx/file_path_helper.cxx350
-rw-r--r--sal/osl/unx/file_path_helper.h247
-rw-r--r--sal/osl/unx/file_path_helper.hxx247
-rw-r--r--sal/osl/unx/file_stat.cxx492
-rw-r--r--sal/osl/unx/file_url.cxx962
-rw-r--r--sal/osl/unx/file_url.h69
-rw-r--r--sal/osl/unx/file_volume.cxx1149
-rw-r--r--sal/osl/unx/interlck.c170
-rw-r--r--sal/osl/unx/makefile.mk189
-rw-r--r--sal/osl/unx/module.c242
-rw-r--r--sal/osl/unx/mutex.c221
-rw-r--r--sal/osl/unx/nlsupport.c944
-rw-r--r--sal/osl/unx/osxlocale.cxx129
-rw-r--r--sal/osl/unx/pipe.c592
-rw-r--r--sal/osl/unx/process.c1527
-rw-r--r--sal/osl/unx/process_impl.cxx408
-rw-r--r--sal/osl/unx/procimpl.h50
-rw-r--r--sal/osl/unx/profile.c2221
-rw-r--r--sal/osl/unx/salinit.cxx43
-rw-r--r--sal/osl/unx/secimpl.h47
-rw-r--r--sal/osl/unx/security.c862
-rw-r--r--sal/osl/unx/semaphor.c314
-rw-r--r--sal/osl/unx/signal.c1100
-rw-r--r--sal/osl/unx/socket.c3062
-rw-r--r--sal/osl/unx/sockimpl.h78
-rw-r--r--sal/osl/unx/system.c599
-rw-r--r--sal/osl/unx/system.h490
-rw-r--r--sal/osl/unx/tempfile.c370
-rw-r--r--sal/osl/unx/thread.c1035
-rw-r--r--sal/osl/unx/time.c269
-rw-r--r--sal/osl/unx/util.c350
-rw-r--r--sal/osl/unx/uunxapi.cxx130
-rw-r--r--sal/osl/unx/uunxapi.h86
-rw-r--r--sal/osl/unx/uunxapi.hxx98
-rw-r--r--sal/osl/w32/MAKEFILE.MK118
-rw-r--r--sal/osl/w32/conditn.c141
-rw-r--r--sal/osl/w32/diagnose.c189
-rw-r--r--sal/osl/w32/dllentry.c370
-rw-r--r--sal/osl/w32/file.cxx1194
-rw-r--r--sal/osl/w32/file_dirvol.cxx1867
-rw-r--r--sal/osl/w32/file_error.c151
-rw-r--r--sal/osl/w32/file_error.h51
-rw-r--r--sal/osl/w32/file_url.cxx1143
-rw-r--r--sal/osl/w32/file_url.h96
-rw-r--r--sal/osl/w32/interlck.c142
-rw-r--r--sal/osl/w32/libutil.c54
-rw-r--r--sal/osl/w32/module.cxx480
-rw-r--r--sal/osl/w32/mutex.c206
-rw-r--r--sal/osl/w32/nlsupport.c231
-rw-r--r--sal/osl/w32/path_helper.cxx118
-rw-r--r--sal/osl/w32/path_helper.h70
-rw-r--r--sal/osl/w32/path_helper.hxx115
-rw-r--r--sal/osl/w32/pipe.c636
-rw-r--r--sal/osl/w32/pipeimpl.cxx785
-rw-r--r--sal/osl/w32/pipeimpl.h88
-rw-r--r--sal/osl/w32/process.cxx616
-rw-r--r--sal/osl/w32/procimpl.cxx600
-rw-r--r--sal/osl/w32/procimpl.h47
-rw-r--r--sal/osl/w32/profile.cxx2704
-rw-r--r--sal/osl/w32/salinit.cxx82
-rw-r--r--sal/osl/w32/secimpl.h54
-rw-r--r--sal/osl/w32/security.c991
-rw-r--r--sal/osl/w32/semaphor.c111
-rw-r--r--sal/osl/w32/signal.cxx436
-rw-r--r--sal/osl/w32/socket.cxx2190
-rw-r--r--sal/osl/w32/sockimpl.h108
-rw-r--r--sal/osl/w32/system.h126
-rw-r--r--sal/osl/w32/tempfile.cxx274
-rw-r--r--sal/osl/w32/thread.c593
-rw-r--r--sal/osl/w32/time.c216
-rw-r--r--sal/osl/w32/util.c37
-rw-r--r--sal/prj/build.lst16
-rw-r--r--sal/prj/d.lst36
-rw-r--r--sal/qa/ByteSequence/ByteSequence.cxx607
-rw-r--r--sal/qa/ByteSequence/Byte_Const.h95
-rw-r--r--sal/qa/ByteSequence/export.exp1
-rw-r--r--sal/qa/ByteSequence/makefile.mk78
-rw-r--r--sal/qa/ByteSequence/rtl_old_testbyteseq.cxx132
-rw-r--r--sal/qa/OStringBuffer/export.exp1
-rw-r--r--sal/qa/OStringBuffer/makefile.mk73
-rw-r--r--sal/qa/OStringBuffer/rtl_OStringBuffer.cxx18470
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Const.h557
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils.cxx615
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils.hxx138
-rw-r--r--sal/qa/OStringBuffer/rtl_String_Utils_Const.h74
-rw-r--r--sal/qa/buildall.pl507
-rwxr-xr-xsal/qa/export.map34
-rwxr-xr-xsal/qa/helper/gcov/build_coverage23
-rw-r--r--sal/qa/helper/gcov/deprecated.txt213
-rwxr-xr-xsal/qa/helper/gcov/gcov_all15
-rwxr-xr-xsal/qa/helper/gcov/gcov_filter.pl427
-rw-r--r--sal/qa/helper/gcov/gcov_result.pl232
-rw-r--r--sal/qa/helper/gcov/gcov_resultcompare.pl151
-rw-r--r--sal/qa/helper/gcov/gcov_resultinterpreter.pl172
-rwxr-xr-xsal/qa/helper/gcov/gcov_run.sh64
-rw-r--r--sal/qa/helper/gcov/readme.txt13
-rwxr-xr-xsal/qa/helper/gcov/statistics20
-rw-r--r--sal/qa/inc/stringhelper.hxx16
-rw-r--r--sal/qa/inc/valueequal.hxx133
-rw-r--r--sal/qa/libs2test.txt86
-rw-r--r--sal/qa/makefile.mk62
-rw-r--r--sal/qa/osl/condition/makefile.mk60
-rw-r--r--sal/qa/osl/condition/osl_Condition.cxx384
-rw-r--r--sal/qa/osl/condition/osl_Condition_Const.h72
-rw-r--r--sal/qa/osl/file/makefile.mk85
-rw-r--r--sal/qa/osl/file/osl_File.cxx6856
-rw-r--r--sal/qa/osl/file/osl_File_Const.h242
-rw-r--r--sal/qa/osl/file/osl_old_test_file.cxx273
-rwxr-xr-xsal/qa/osl/file/test_cpy_wrt_file.cxx111
-rw-r--r--sal/qa/osl/module/export_dll.map34
-rw-r--r--sal/qa/osl/module/makefile.mk79
-rw-r--r--sal/qa/osl/module/osl_Module.cxx522
-rw-r--r--sal/qa/osl/module/osl_Module_Const.h66
-rw-r--r--sal/qa/osl/module/osl_Module_DLL.cxx43
-rwxr-xr-xsal/qa/osl/mutex/makefile.mk68
-rwxr-xr-xsal/qa/osl/mutex/osl_Mutex.cxx947
-rwxr-xr-xsal/qa/osl/mutex/osl_Mutex_Const.h58
-rw-r--r--sal/qa/osl/pipe/export.exp1
-rw-r--r--sal/qa/osl/pipe/makefile.mk62
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.cxx1060
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.xsce9
-rw-r--r--sal/qa/osl/pipe/osl_Pipe_Const.h1
-rwxr-xr-xsal/qa/osl/process/batch.bat2
-rw-r--r--sal/qa/osl/process/export.exp1
-rw-r--r--sal/qa/osl/process/makefile.mk110
-rw-r--r--sal/qa/osl/process/osl_Thread.cxx2344
-rw-r--r--sal/qa/osl/process/osl_Thread.xsce1
-rw-r--r--sal/qa/osl/process/osl_process.cxx684
-rw-r--r--sal/qa/osl/process/osl_process_child.cxx131
-rw-r--r--sal/qa/osl/profile/makefile.mk65
-rw-r--r--sal/qa/osl/profile/osl_old_testprofile.cxx94
-rwxr-xr-xsal/qa/osl/security/makefile.mk64
-rwxr-xr-xsal/qa/osl/security/osl_Security.cxx678
-rwxr-xr-xsal/qa/osl/security/osl_Security_Const.h80
-rw-r--r--sal/qa/osl/semaphore/makefile.mk61
-rw-r--r--sal/qa/osl/semaphore/osl_Semaphore.cxx525
-rw-r--r--sal/qa/osl/semaphore/osl_Semaphore_Const.h73
-rwxr-xr-xsal/qa/osl/socket/export.exp1
-rwxr-xr-xsal/qa/osl/socket/makefile.mk223
-rw-r--r--sal/qa/osl/socket/osl_AcceptorSocket.cxx302
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.cxx264
-rw-r--r--sal/qa/osl/socket/osl_ConnectorSocket.xsce1
-rw-r--r--sal/qa/osl/socket/osl_DatagramSocket.cxx316
-rwxr-xr-xsal/qa/osl/socket/osl_Socket.cxx3723
-rw-r--r--sal/qa/osl/socket/osl_Socket.xsce5
-rw-r--r--sal/qa/osl/socket/osl_Socket2.cxx1468
-rw-r--r--sal/qa/osl/socket/osl_Socket2.xsce2
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.cxx895
-rw-r--r--sal/qa/osl/socket/osl_SocketAddr.xsce0
-rw-r--r--sal/qa/osl/socket/osl_SocketOld.xsce14
-rwxr-xr-xsal/qa/osl/socket/osl_Socket_Const.h196
-rw-r--r--sal/qa/osl/socket/osl_Socket_Const_orig.h200
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.cxx88
-rw-r--r--sal/qa/osl/socket/osl_Socket_tests.xsce1
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.cxx1506
-rw-r--r--sal/qa/osl/socket/osl_StreamSocket.xsce4
-rw-r--r--sal/qa/osl/socket/sockethelper.cxx401
-rw-r--r--sal/qa/osl/socket/sockethelper.hxx165
-rw-r--r--sal/qa/osl/thread/makefile.mk52
-rw-r--r--sal/qa/osl/thread/test_thread.cxx89
-rw-r--r--sal/qa/osl/thread/version.map34
-rwxr-xr-xsal/qa/rtl/alloc/jobfile.txt8
-rwxr-xr-xsal/qa/rtl/alloc/makefile.mk68
-rwxr-xr-xsal/qa/rtl/alloc/rtl_alloc.cxx179
-rw-r--r--sal/qa/rtl/bootstrap/bootstrap_process.cxx118
-rw-r--r--sal/qa/rtl/bootstrap/makefile.mk88
-rw-r--r--sal/qa/rtl/bootstrap/rtl_Bootstrap.cxx1040
-rw-r--r--sal/qa/rtl/bootstrap/rtl_Bootstrap.xsce7
-rw-r--r--sal/qa/rtl/cipher/makefile.mk68
-rw-r--r--sal/qa/rtl/cipher/rtl_cipher.cxx717
-rwxr-xr-xsal/qa/rtl/crc32/jobfile.txt5
-rwxr-xr-xsal/qa/rtl/crc32/makefile.mk68
-rwxr-xr-xsal/qa/rtl/crc32/rtl_crc32.cxx181
-rw-r--r--sal/qa/rtl/digest/makefile.mk64
-rw-r--r--sal/qa/rtl/digest/rtl_digest.cxx1451
-rw-r--r--sal/qa/rtl/doublelock/makefile.mk70
-rw-r--r--sal/qa/rtl/doublelock/rtl_doublelocking.cxx260
-rw-r--r--sal/qa/rtl/locale/makefile.mk69
-rw-r--r--sal/qa/rtl/locale/rtl_locale.cxx343
-rw-r--r--sal/qa/rtl/logfile/makefile.mk61
-rw-r--r--sal/qa/rtl/logfile/rtl_logfile.cxx260
-rw-r--r--sal/qa/rtl/math/export.exp1
-rw-r--r--sal/qa/rtl/math/makefile.mk95
-rw-r--r--sal/qa/rtl/math/rtl_math.cxx626
-rw-r--r--sal/qa/rtl/math/rtl_old_testint64.cxx122
-rw-r--r--sal/qa/rtl/math/test_rtl_math.cxx674
-rw-r--r--sal/qa/rtl/ostring/joblist.txt10
-rw-r--r--sal/qa/rtl/ostring/makefile.mk91
-rw-r--r--sal/qa/rtl/ostring/rtl_OString2.cxx568
-rw-r--r--sal/qa/rtl/ostring/rtl_str.cxx890
-rw-r--r--sal/qa/rtl/ostring/rtl_str.xsce26
-rw-r--r--sal/qa/rtl/ostring/rtl_string.cxx183
-rw-r--r--sal/qa/rtl/ostring/rtl_string.xsce1
-rw-r--r--sal/qa/rtl/oustring/joblist.txt10
-rw-r--r--sal/qa/rtl/oustring/makefile.mk80
-rw-r--r--sal/qa/rtl/oustring/rtl_OUString2.cxx1280
-rw-r--r--sal/qa/rtl/oustring/rtl_ustr.cxx1424
-rw-r--r--sal/qa/rtl/oustring/rtl_ustr.xsce33
-rw-r--r--sal/qa/rtl/oustringbuffer/makefile.mk68
-rw-r--r--sal/qa/rtl/oustringbuffer/rtl_OUStringBuffer2.cxx101
-rw-r--r--sal/qa/rtl/process/child_process.cxx71
-rw-r--r--sal/qa/rtl/process/child_process_id.cxx63
-rw-r--r--sal/qa/rtl/process/makefile.mk91
-rw-r--r--sal/qa/rtl/process/rtl_Process.cxx296
-rw-r--r--sal/qa/rtl/process/rtl_Process_Const.h26
-rw-r--r--sal/qa/rtl/random/makefile.add19
-rw-r--r--sal/qa/rtl/random/makefile.mk64
-rw-r--r--sal/qa/rtl/random/random.txt5
-rw-r--r--sal/qa/rtl/random/rtl_random.cxx412
-rw-r--r--sal/qa/rtl/strings/makefile.mk53
-rw-r--r--sal/qa/rtl/strings/test_oustring_compare.cxx67
-rw-r--r--sal/qa/rtl/strings/test_oustring_convert.cxx184
-rw-r--r--sal/qa/rtl/strings/test_oustring_endswith.cxx121
-rw-r--r--sal/qa/rtl/strings/test_oustring_noadditional.cxx33
-rw-r--r--sal/qa/rtl/strings/test_oustringbuffer_utf32.cxx130
-rw-r--r--sal/qa/rtl/textenc/gcc3_export.map36
-rw-r--r--sal/qa/rtl/textenc/makefile.mk81
-rw-r--r--sal/qa/rtl/textenc/rtl_tencinfo.cxx1901
-rw-r--r--sal/qa/rtl/textenc/rtl_textcvt.cxx2901
-rw-r--r--sal/qa/rtl/uri/makefile.mk73
-rw-r--r--sal/qa/rtl/uri/rtl_Uri.cxx297
-rw-r--r--sal/qa/rtl/uri/rtl_testuri.cxx545
-rw-r--r--sal/qa/rtl/uuid/makefile.mk66
-rw-r--r--sal/qa/rtl/uuid/rtl_Uuid.cxx228
-rw-r--r--sal/qa/rtl_strings/export.exp1
-rw-r--r--sal/qa/rtl_strings/makefile.mk153
-rw-r--r--sal/qa/rtl_strings/readme.txt20
-rw-r--r--sal/qa/rtl_strings/rtl_OString.cxx3605
-rw-r--r--sal/qa/rtl_strings/rtl_OUString.cxx3858
-rw-r--r--sal/qa/rtl_strings/rtl_OUStringBuffer.cxx1823
-rw-r--r--sal/qa/rtl_strings/rtl_String_Const.h885
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils.cxx593
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils.hxx137
-rw-r--r--sal/qa/rtl_strings/rtl_String_Utils_Const.h74
-rw-r--r--sal/qa/rtl_strings/rtl_old_testostring.cxx266
-rw-r--r--sal/qa/rtl_strings/rtl_old_testowstring.cxx421
-rw-r--r--sal/qa/rtl_strings/rtl_old_teststrbuf.cxx269
-rw-r--r--sal/qa/sal/makefile.mk50
-rw-r--r--sal/qa/sal/test_types.cxx81
-rw-r--r--sal/qa/sal/version.map34
-rw-r--r--sal/qa/systools/makefile.mk70
-rw-r--r--sal/qa/systools/test_comtools.cxx250
-rw-r--r--sal/qa/testHelperFunctions/makefile.mk63
-rw-r--r--sal/qa/testHelperFunctions/testHelperFunctions.cxx454
-rw-r--r--sal/qa/testHelperFunctions/testHelperFunctions2.cxx61
-rw-r--r--sal/rtl/source/alloc.c1541
-rw-r--r--sal/rtl/source/alloc_arena.c1396
-rw-r--r--sal/rtl/source/alloc_arena.h137
-rw-r--r--sal/rtl/source/alloc_cache.c1721
-rw-r--r--sal/rtl/source/alloc_cache.h182
-rw-r--r--sal/rtl/source/alloc_global.c357
-rw-r--r--sal/rtl/source/alloc_impl.h247
-rw-r--r--sal/rtl/source/bootstrap.cxx1067
-rw-r--r--sal/rtl/source/byteseq.c254
-rw-r--r--sal/rtl/source/cipher.c1363
-rw-r--r--sal/rtl/source/cmdargs.cxx109
-rw-r--r--sal/rtl/source/crc.c164
-rw-r--r--sal/rtl/source/debugprint.cxx58
-rw-r--r--sal/rtl/source/digest.c2118
-rw-r--r--sal/rtl/source/gen_makefile.cxx41
-rw-r--r--sal/rtl/source/hash.cxx113
-rw-r--r--sal/rtl/source/hash.h21
-rw-r--r--sal/rtl/source/locale.c362
-rw-r--r--sal/rtl/source/logfile.cxx254
-rw-r--r--sal/rtl/source/macro.hxx104
-rw-r--r--sal/rtl/source/makefile.mk198
-rw-r--r--sal/rtl/source/math.cxx1245
-rw-r--r--sal/rtl/source/memory.c62
-rwxr-xr-xsal/rtl/source/memory_fini.cxx54
-rw-r--r--sal/rtl/source/random.c338
-rw-r--r--sal/rtl/source/rtl_process.c49
-rw-r--r--sal/rtl/source/strbuf.c147
-rw-r--r--sal/rtl/source/strimp.c58
-rw-r--r--sal/rtl/source/strimp.h64
-rw-r--r--sal/rtl/source/string.c320
-rw-r--r--sal/rtl/source/strtmpl.c1567
-rw-r--r--sal/rtl/source/surrogates.h50
-rw-r--r--sal/rtl/source/tres.c686
-rw-r--r--sal/rtl/source/unload.cxx417
-rw-r--r--sal/rtl/source/uri.cxx799
-rw-r--r--sal/rtl/source/ustrbuf.c208
-rw-r--r--sal/rtl/source/ustring.c934
-rw-r--r--sal/rtl/source/uuid.cxx180
-rw-r--r--sal/systools/win32/kill/kill.cxx443
-rw-r--r--sal/systools/win32/kill/makefile.mk64
-rw-r--r--sal/systools/win32/onlineupdate/makefile.mk82
-rw-r--r--sal/systools/win32/onlineupdate/onlinecheck.cxx82
-rw-r--r--sal/systools/win32/onlineupdate/onlinecheck.dxp28
-rw-r--r--sal/systools/win32/uwinapi/CheckTokenMembership.cpp34
-rw-r--r--sal/systools/win32/uwinapi/CommandLineToArgvW.cpp172
-rw-r--r--sal/systools/win32/uwinapi/CopyFileExA.cpp167
-rw-r--r--sal/systools/win32/uwinapi/CopyFileExW.cpp40
-rw-r--r--sal/systools/win32/uwinapi/DeleteVolumeMountPointA.cpp33
-rw-r--r--sal/systools/win32/uwinapi/DeleteVolumeMountPointW.cpp33
-rw-r--r--sal/systools/win32/uwinapi/DllGetVersion.cpp73
-rw-r--r--sal/systools/win32/uwinapi/DllMain.cpp236
-rw-r--r--sal/systools/win32/uwinapi/DrawStateW.cpp74
-rw-r--r--sal/systools/win32/uwinapi/EnumProcesses.cpp41
-rw-r--r--sal/systools/win32/uwinapi/FindFirstVolumeA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindFirstVolumeMountPointA.cpp51
-rw-r--r--sal/systools/win32/uwinapi/FindFirstVolumeMountPointW.cpp32
-rw-r--r--sal/systools/win32/uwinapi/FindFirstVolumeW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindNextVolumeA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindNextVolumeMountPointA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindNextVolumeMountPointW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindNextVolumeW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindVolumeClose.cpp30
-rw-r--r--sal/systools/win32/uwinapi/FindVolumeMountPointClose.cpp30
-rw-r--r--sal/systools/win32/uwinapi/GetDiskFreeSpaceExA.cpp59
-rw-r--r--sal/systools/win32/uwinapi/GetDiskFreeSpaceExW.cpp41
-rw-r--r--sal/systools/win32/uwinapi/GetLogicalDriveStringsW.cpp41
-rw-r--r--sal/systools/win32/uwinapi/GetLongPathName.cpp113
-rw-r--r--sal/systools/win32/uwinapi/GetLongPathNameA.cpp31
-rw-r--r--sal/systools/win32/uwinapi/GetLongPathNameW.cpp63
-rw-r--r--sal/systools/win32/uwinapi/GetModuleFileNameExA.cpp53
-rw-r--r--sal/systools/win32/uwinapi/GetModuleFileNameExW.cpp18
-rw-r--r--sal/systools/win32/uwinapi/GetProcessId.cpp164
-rw-r--r--sal/systools/win32/uwinapi/GetUserDefaultUILanguage.cpp34
-rw-r--r--sal/systools/win32/uwinapi/GetUserDomainA.cpp46
-rw-r--r--sal/systools/win32/uwinapi/GetUserDomainW.cpp47
-rw-r--r--sal/systools/win32/uwinapi/GetUserDomain_NT.cpp30
-rw-r--r--sal/systools/win32/uwinapi/GetUserDomain_WINDOWS.cpp79
-rw-r--r--sal/systools/win32/uwinapi/GetVolumeNameForVolumeMountPointA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/GetVolumeNameForVolumeMountPointW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/GetVolumePathNameA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/GetVolumePathNameW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/MCIWndCreateW.cpp42
-rw-r--r--sal/systools/win32/uwinapi/MoveFileExA.cpp97
-rw-r--r--sal/systools/win32/uwinapi/MoveFileExW.cpp38
-rw-r--r--sal/systools/win32/uwinapi/PathAddBackslashW.cpp42
-rw-r--r--sal/systools/win32/uwinapi/PathCompactPathExW.cpp46
-rw-r--r--sal/systools/win32/uwinapi/PathFileExistsW.cpp40
-rw-r--r--sal/systools/win32/uwinapi/PathFindExtensionW.cpp52
-rw-r--r--sal/systools/win32/uwinapi/PathFindFileNameW.cpp51
-rw-r--r--sal/systools/win32/uwinapi/PathIsFileSpecW.cpp40
-rw-r--r--sal/systools/win32/uwinapi/PathIsUNCW.cpp40
-rw-r--r--sal/systools/win32/uwinapi/PathRemoveExtensionW.cpp41
-rw-r--r--sal/systools/win32/uwinapi/PathRemoveFileSpecW.cpp42
-rw-r--r--sal/systools/win32/uwinapi/PathSetDlgItemPathW.cpp42
-rw-r--r--sal/systools/win32/uwinapi/PathStripToRootW.cpp42
-rw-r--r--sal/systools/win32/uwinapi/ResolveThunk.cpp64
-rw-r--r--sal/systools/win32/uwinapi/ResolveUnicows.cpp510
-rw-r--r--sal/systools/win32/uwinapi/SHCreateItemFromParsingName.cpp33
-rw-r--r--sal/systools/win32/uwinapi/SHILCreateFromPathW.cpp32
-rw-r--r--sal/systools/win32/uwinapi/SetVolumeMountPointA.cpp30
-rw-r--r--sal/systools/win32/uwinapi/SetVolumeMountPointW.cpp30
-rw-r--r--sal/systools/win32/uwinapi/Uwinapi.def22
-rw-r--r--sal/systools/win32/uwinapi/Uwinapi.h137
-rw-r--r--sal/systools/win32/uwinapi/macros.h232
-rw-r--r--sal/systools/win32/uwinapi/makefile.mk167
-rw-r--r--sal/systools/win32/uwinapi/snprintf.c10
-rw-r--r--sal/systools/win32/uwinapi/sntprintf.c118
-rw-r--r--sal/systools/win32/uwinapi/snwprintf.c5
-rw-r--r--sal/systools/win32/uwinapi/toolhelp.cpp57
-rw-r--r--sal/systools/win32/uwinapi/unicows.dxp546
-rw-r--r--sal/systools/win32/uwinapi/unicows_mingw.dxp544
-rw-r--r--sal/systools/win32/uwinapi/uwinapi.dxp86
-rw-r--r--sal/systools/win32/uwinapi/uwinapi_mingw.dxp90
-rw-r--r--sal/systools/win32/uwinapi/win95sys.h348
-rw-r--r--sal/test/bootstrap65
-rwxr-xr-xsal/test/bootstrap.bat62
-rwxr-xr-xsal/test/bootstrap.pl260
-rw-r--r--sal/test/bootstraptest.ini11
-rw-r--r--sal/test/makefile.mk152
-rw-r--r--sal/test/test_salmain.cxx42
-rw-r--r--sal/test/test_salmainwithargs.cxx42
-rw-r--r--sal/test/testbootstrap.cxx134
-rw-r--r--sal/test/testbootstrap.ini4
-rw-r--r--sal/test/unloading/exports.dxp4
-rw-r--r--sal/test/unloading/makefile.mk126
-rw-r--r--sal/test/unloading/readme.txt14
-rw-r--r--sal/test/unloading/samplelib1.cxx269
-rw-r--r--sal/test/unloading/samplelib1.xml41
-rw-r--r--sal/test/unloading/samplelib2.cxx236
-rw-r--r--sal/test/unloading/unloadTest.cxx656
-rw-r--r--sal/textenc/context.c47
-rw-r--r--sal/textenc/context.h52
-rw-r--r--sal/textenc/convertadobe.tab326
-rw-r--r--sal/textenc/convertbig5hkscs.c493
-rw-r--r--sal/textenc/convertbig5hkscs.h81
-rw-r--r--sal/textenc/convertbig5hkscs.tab72
-rw-r--r--sal/textenc/converter.c164
-rw-r--r--sal/textenc/converter.h66
-rw-r--r--sal/textenc/converteuctw.c452
-rw-r--r--sal/textenc/converteuctw.h78
-rw-r--r--sal/textenc/converteuctw.tab69
-rw-r--r--sal/textenc/convertgb18030.c468
-rw-r--r--sal/textenc/convertgb18030.h92
-rw-r--r--sal/textenc/convertgb18030.tab69
-rw-r--r--sal/textenc/convertiscii.tab112
-rw-r--r--sal/textenc/convertiso2022cn.c862
-rw-r--r--sal/textenc/convertiso2022cn.h84
-rw-r--r--sal/textenc/convertiso2022cn.tab77
-rw-r--r--sal/textenc/convertiso2022jp.c569
-rw-r--r--sal/textenc/convertiso2022jp.h78
-rw-r--r--sal/textenc/convertiso2022jp.tab68
-rw-r--r--sal/textenc/convertiso2022kr.c527
-rw-r--r--sal/textenc/convertiso2022kr.h78
-rw-r--r--sal/textenc/convertiso2022kr.tab68
-rw-r--r--sal/textenc/convertsinglebytetobmpunicode.cxx211
-rw-r--r--sal/textenc/convertsinglebytetobmpunicode.hxx126
-rw-r--r--sal/textenc/generate/big5hkscs2001.pl806
-rw-r--r--sal/textenc/generate/big5hkscs2001.tab8824
-rw-r--r--sal/textenc/generate/cns116431992.pl856
-rw-r--r--sal/textenc/generate/cns116431992.tab22869
-rw-r--r--sal/textenc/generate/gb180302000.pl309
-rw-r--r--sal/textenc/generate/gb180302000.tab9038
-rw-r--r--sal/textenc/gettextencodingdata.h46
-rw-r--r--sal/textenc/makefile.mk87
-rw-r--r--sal/textenc/tcvtarb1.tab936
-rw-r--r--sal/textenc/tcvtbyte.c810
-rw-r--r--sal/textenc/tcvteas1.tab436
-rw-r--r--sal/textenc/tcvtest1.tab4584
-rw-r--r--sal/textenc/tcvtjp1.tab1556
-rw-r--r--sal/textenc/tcvtjp2.tab3964
-rw-r--r--sal/textenc/tcvtjp3.tab2914
-rw-r--r--sal/textenc/tcvtjp4.tab3585
-rw-r--r--sal/textenc/tcvtjp5.tab3350
-rw-r--r--sal/textenc/tcvtjp6.tab2660
-rw-r--r--sal/textenc/tcvtkr1.tab3323
-rw-r--r--sal/textenc/tcvtkr2.tab5415
-rw-r--r--sal/textenc/tcvtkr4.tab3503
-rw-r--r--sal/textenc/tcvtkr5.tab5415
-rw-r--r--sal/textenc/tcvtkr6.tab1238
-rw-r--r--sal/textenc/tcvtlat1.tab1775
-rw-r--r--sal/textenc/tcvtmb.c693
-rw-r--r--sal/textenc/tcvtscn1.tab3860
-rw-r--r--sal/textenc/tcvtscn2.tab4463
-rw-r--r--sal/textenc/tcvtscn3.tab1502
-rw-r--r--sal/textenc/tcvtscn4.tab3070
-rw-r--r--sal/textenc/tcvtscn5.tab3235
-rw-r--r--sal/textenc/tcvtscn6.tab2956
-rw-r--r--sal/textenc/tcvtsym1.tab47
-rw-r--r--sal/textenc/tcvttcn1.tab2894
-rw-r--r--sal/textenc/tcvttcn2.tab3715
-rw-r--r--sal/textenc/tcvttcn6.tab1733
-rw-r--r--sal/textenc/tcvtuni1.tab100
-rw-r--r--sal/textenc/tcvtutf7.c588
-rw-r--r--sal/textenc/tcvtutf8.c419
-rw-r--r--sal/textenc/tenchelp.c213
-rw-r--r--sal/textenc/tenchelp.h297
-rw-r--r--sal/textenc/tencinfo.c1154
-rw-r--r--sal/textenc/textcvt.c264
-rw-r--r--sal/textenc/textenc.cxx226
-rw-r--r--sal/textenc/unichars.c136
-rw-r--r--sal/textenc/unichars.h62
-rw-r--r--sal/typesconfig/makefile.mk61
-rw-r--r--sal/typesconfig/typesconfig.c490
-rw-r--r--sal/unosdk.mk47
-rw-r--r--sal/util/makefile.mk257
-rwxr-xr-xsal/util/sal.map613
-rw-r--r--sal/util/salalloc.list7
-rw-r--r--sal/util/salalloc.map10
-rw-r--r--sal/version.mk40
-rw-r--r--sal/workben/clipboardwben/testcopy/StdAfx.cpp8
-rw-r--r--sal/workben/clipboardwben/testcopy/StdAfx.h32
-rw-r--r--sal/workben/clipboardwben/testcopy/TestWin32.icobin0 -> 1590 bytes
-rw-r--r--sal/workben/clipboardwben/testcopy/XTDataObject.cxx470
-rw-r--r--sal/workben/clipboardwben/testcopy/XTDataObject.hxx132
-rw-r--r--sal/workben/clipboardwben/testcopy/cbcpytest.cxx402
-rw-r--r--sal/workben/clipboardwben/testcopy/cbcpytest.rc122
-rw-r--r--sal/workben/clipboardwben/testcopy/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testcopy/resource.h31
-rw-r--r--sal/workben/clipboardwben/testcopy/small.icobin0 -> 318 bytes
-rw-r--r--sal/workben/clipboardwben/testpaste/StdAfx.cpp8
-rw-r--r--sal/workben/clipboardwben/testpaste/StdAfx.h32
-rw-r--r--sal/workben/clipboardwben/testpaste/TestWin32.icobin0 -> 1590 bytes
-rw-r--r--sal/workben/clipboardwben/testpaste/cbptest.cxx428
-rw-r--r--sal/workben/clipboardwben/testpaste/cbptest.rc120
-rw-r--r--sal/workben/clipboardwben/testpaste/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testpaste/resource.h28
-rw-r--r--sal/workben/clipboardwben/testpaste/small.icobin0 -> 318 bytes
-rw-r--r--sal/workben/clipboardwben/testviewer/StdAfx.cpp8
-rw-r--r--sal/workben/clipboardwben/testviewer/StdAfx.h32
-rw-r--r--sal/workben/clipboardwben/testviewer/TestWin32.icobin0 -> 1590 bytes
-rw-r--r--sal/workben/clipboardwben/testviewer/cbvtest.cxx351
-rw-r--r--sal/workben/clipboardwben/testviewer/cbvtest.rc127
-rw-r--r--sal/workben/clipboardwben/testviewer/makefile.mk67
-rw-r--r--sal/workben/clipboardwben/testviewer/resource.h32
-rw-r--r--sal/workben/clipboardwben/testviewer/small.icobin0 -> 318 bytes
-rw-r--r--sal/workben/export.exp1
-rw-r--r--sal/workben/getlocaleinfotest.cxx50
-rw-r--r--sal/workben/makefile.mk386
-rw-r--r--sal/workben/saldyntest.c52
-rw-r--r--sal/workben/salstattest.c56
-rw-r--r--sal/workben/t_cipher.c396
-rw-r--r--sal/workben/t_digest.c378
-rw-r--r--sal/workben/t_ojp_exe.cxx55
-rw-r--r--sal/workben/t_osl_getVolInfo.cxx132
-rw-r--r--sal/workben/t_osl_joinProcess.cxx228
-rw-r--r--sal/workben/t_random.c65
-rw-r--r--sal/workben/t_readline.c58
-rw-r--r--sal/workben/test.cxx66
-rw-r--r--sal/workben/testfile.cxx2786
-rw-r--r--sal/workben/testpip2.cxx97
-rw-r--r--sal/workben/testpipe.cxx168
-rw-r--r--sal/workben/testproc.cxx77
-rw-r--r--sal/workben/tgetpwnam.cxx248
-rw-r--r--salhelper/inc/salhelper/condition.hxx124
-rw-r--r--salhelper/inc/salhelper/dynload.hxx206
-rw-r--r--salhelper/inc/salhelper/future.hxx120
-rw-r--r--salhelper/inc/salhelper/futurequeue.hxx108
-rw-r--r--salhelper/inc/salhelper/monitor.hxx288
-rw-r--r--salhelper/inc/salhelper/queue.hxx174
-rw-r--r--salhelper/inc/salhelper/refobj.hxx110
-rwxr-xr-xsalhelper/inc/salhelper/simplereferenceobject.hxx136
-rw-r--r--salhelper/inc/salhelper/singletonref.hxx210
-rw-r--r--salhelper/prj/build.lst3
-rw-r--r--salhelper/prj/d.lst21
-rw-r--r--salhelper/qa/makefile.mk50
-rw-r--r--salhelper/qa/test_api.cxx250
-rwxr-xr-xsalhelper/qa/version.map6
-rw-r--r--salhelper/source/condition.cxx142
-rw-r--r--salhelper/source/dynload.cxx110
-rw-r--r--salhelper/source/gcc3.map73
-rw-r--r--salhelper/source/gcc3os2.map73
-rw-r--r--salhelper/source/makefile.mk87
-rw-r--r--salhelper/source/msci.map38
-rwxr-xr-xsalhelper/source/simplereferenceobject.cxx74
-rw-r--r--salhelper/source/sols.map76
-rw-r--r--salhelper/source/staticmb.cxx26
-rw-r--r--salhelper/test/Symbols/loader.cxx37
-rw-r--r--salhelper/test/Symbols/makefile.mk97
-rw-r--r--salhelper/test/Symbols/samplelib.cxx37
-rw-r--r--salhelper/test/Symbols/samplelib.hxx22
-rw-r--r--salhelper/test/dynamicloader/loader.cxx37
-rw-r--r--salhelper/test/dynamicloader/makefile.mk117
-rw-r--r--salhelper/test/dynamicloader/samplelib.cxx37
-rw-r--r--salhelper/test/dynamicloader/samplelib.hxx22
-rw-r--r--salhelper/test/rtti/exports.dxp8
-rw-r--r--salhelper/test/rtti/makefile.mk107
-rw-r--r--salhelper/test/rtti/rttitest.cxx29
-rw-r--r--salhelper/test/rtti/samplelibrtti.cxx39
-rw-r--r--salhelper/test/rtti/samplelibrtti.hxx28
-rw-r--r--salhelper/test/rtti/sols.map34
-rw-r--r--salhelper/version.mk44
-rw-r--r--sane/inc/sane.h213
-rw-r--r--sane/prj/build.lst3
-rw-r--r--sane/prj/d.lst3
-rw-r--r--sax/inc/sax/dllapi.h39
-rw-r--r--sax/inc/sax/fastattribs.hxx91
-rw-r--r--sax/inc/sax/fshelper.hxx118
-rw-r--r--sax/inc/sax/parser/saxparser.hxx150
-rw-r--r--sax/inc/sax/tools/attributemap.hxx70
-rw-r--r--sax/inc/sax/tools/converter.hxx207
-rw-r--r--sax/inc/sax/tools/saxobject.hxx50
-rw-r--r--sax/inc/sax/tools/tokenmap.hxx65
-rw-r--r--sax/inc/xml2utf.hxx147
-rw-r--r--sax/prj/build.lst5
-rw-r--r--sax/prj/d.lst13
-rw-r--r--sax/source/expatwrap/attrlistimpl.cxx168
-rw-r--r--sax/source/expatwrap/attrlistimpl.hxx85
-rw-r--r--sax/source/expatwrap/factory.hxx34
-rw-r--r--sax/source/expatwrap/makefile.mk76
-rw-r--r--sax/source/expatwrap/sax_expat.cxx1107
-rw-r--r--sax/source/expatwrap/saxwriter.cxx1452
-rw-r--r--sax/source/expatwrap/xml2utf.cxx570
-rw-r--r--sax/source/fastparser/facreg.cxx106
-rw-r--r--sax/source/fastparser/fastparser.cxx1003
-rw-r--r--sax/source/fastparser/fastparser.hxx156
-rw-r--r--sax/source/fastparser/makefile.mk74
-rw-r--r--sax/source/tools/converter.cxx1957
-rw-r--r--sax/source/tools/fastattribs.cxx168
-rw-r--r--sax/source/tools/fastserializer.cxx401
-rw-r--r--sax/source/tools/fastserializer.hxx161
-rw-r--r--sax/source/tools/fshelper.cxx201
-rw-r--r--sax/source/tools/makefile.mk67
-rw-r--r--sax/test/makefile.mk62
-rw-r--r--sax/test/sax/exports.dxp3
-rw-r--r--sax/test/sax/factory.hxx89
-rw-r--r--sax/test/sax/makefile.mk61
-rw-r--r--sax/test/sax/testsax.cxx870
-rw-r--r--sax/test/sax/testwriter.cxx698
-rw-r--r--sax/test/saxdemo.cxx651
-rw-r--r--sax/test/testcomponent.cxx230
-rw-r--r--sax/util/makefile.mk68
-rw-r--r--sax/util/makefile.pmk30
-rw-r--r--saxon/makefile.mk68
-rw-r--r--saxon/prj/build.lst2
-rw-r--r--saxon/prj/d.lst1
-rw-r--r--saxon/saxon-9.0.0.7-bj.patch1031
-rw-r--r--sc/addin/datefunc/dfa.cl729
-rw-r--r--sc/addin/datefunc/dfa.src178
-rw-r--r--sc/addin/datefunc/makefile.mk149
-rw-r--r--sc/addin/inc/addin.h147
-rw-r--r--sc/addin/inc/dfa.hrc61
-rw-r--r--sc/addin/inc/rot13.hrc35
-rw-r--r--sc/addin/makefile.mk50
-rw-r--r--sc/addin/rot13/exports.map11
-rw-r--r--sc/addin/rot13/makefile.mk93
-rw-r--r--sc/addin/rot13/rot13.cl158
-rw-r--r--sc/addin/rot13/rot13.src58
-rw-r--r--sc/addin/util/cl2c.pl238
-rw-r--r--sc/addin/util/makefile.mk51
-rw-r--r--sc/inc/AccessibleFilterMenu.hxx191
-rw-r--r--sc/inc/AccessibleFilterMenuItem.hxx121
-rw-r--r--sc/inc/AccessibleFilterTopWindow.hxx101
-rw-r--r--sc/inc/AccessibleGlobal.hxx69
-rw-r--r--sc/inc/ViewSettingsSequenceDefines.hxx107
-rw-r--r--sc/inc/addincfg.hxx55
-rw-r--r--sc/inc/addincol.hxx246
-rw-r--r--sc/inc/address.hxx821
-rw-r--r--sc/inc/addruno.hxx110
-rw-r--r--sc/inc/afmtuno.hxx310
-rw-r--r--sc/inc/appluno.hxx211
-rw-r--r--sc/inc/appoptio.hxx149
-rw-r--r--sc/inc/arealink.hxx93
-rw-r--r--sc/inc/attarray.hxx241
-rw-r--r--sc/inc/attrib.hxx402
-rw-r--r--sc/inc/autoform.hxx282
-rw-r--r--sc/inc/autonamecache.hxx58
-rw-r--r--sc/inc/bigrange.hxx273
-rw-r--r--sc/inc/brdcst.hxx70
-rw-r--r--sc/inc/callform.hxx124
-rw-r--r--sc/inc/cell.hxx506
-rw-r--r--sc/inc/cellform.hxx65
-rw-r--r--sc/inc/cellsuno.hxx1563
-rw-r--r--sc/inc/cfgids.hxx41
-rw-r--r--sc/inc/chart2uno.hxx698
-rw-r--r--sc/inc/chartarr.hxx127
-rw-r--r--sc/inc/charthelper.hxx45
-rw-r--r--sc/inc/chartlis.hxx218
-rw-r--r--sc/inc/chartlock.hxx86
-rw-r--r--sc/inc/chartpos.hxx170
-rw-r--r--sc/inc/chartuno.hxx169
-rw-r--r--sc/inc/chgtrack.hxx1370
-rw-r--r--sc/inc/chgviset.hxx149
-rw-r--r--sc/inc/clipparam.hxx88
-rw-r--r--sc/inc/collect.hxx206
-rw-r--r--sc/inc/column.hxx443
-rw-r--r--sc/inc/compiler.hxx539
-rw-r--r--sc/inc/compressedarray.hxx669
-rw-r--r--sc/inc/conditio.hxx301
-rw-r--r--sc/inc/confuno.hxx107
-rw-r--r--sc/inc/consoli.hxx134
-rw-r--r--sc/inc/convuno.hxx177
-rw-r--r--sc/inc/cursuno.hxx110
-rw-r--r--sc/inc/dapiuno.hxx991
-rw-r--r--sc/inc/datauno.hxx665
-rw-r--r--sc/inc/dbcolect.hxx241
-rw-r--r--sc/inc/dbdocutl.hxx52
-rw-r--r--sc/inc/dbtoken.hxx54
-rw-r--r--sc/inc/defltuno.hxx130
-rw-r--r--sc/inc/detdata.hxx106
-rw-r--r--sc/inc/detfunc.hxx166
-rw-r--r--sc/inc/dispuno.hxx151
-rw-r--r--sc/inc/dociter.hxx519
-rw-r--r--sc/inc/docoptio.hxx216
-rw-r--r--sc/inc/docpool.hxx82
-rw-r--r--sc/inc/document.hxx1829
-rw-r--r--sc/inc/docuno.hxx860
-rw-r--r--sc/inc/dpcachetable.hxx225
-rw-r--r--sc/inc/dpdimsave.hxx202
-rw-r--r--sc/inc/dpgroup.hxx240
-rw-r--r--sc/inc/dpobject.hxx319
-rw-r--r--sc/inc/dpoutput.hxx174
-rw-r--r--sc/inc/dpoutputgeometry.hxx77
-rw-r--r--sc/inc/dpsave.hxx270
-rw-r--r--sc/inc/dpsdbtab.hxx95
-rw-r--r--sc/inc/dpshttab.hxx95
-rw-r--r--sc/inc/dptabdat.hxx210
-rw-r--r--sc/inc/dptabres.hxx619
-rw-r--r--sc/inc/dptabsrc.hxx832
-rw-r--r--sc/inc/drawattr.hxx65
-rw-r--r--sc/inc/drawpage.hxx52
-rw-r--r--sc/inc/drdefuno.hxx52
-rw-r--r--sc/inc/drwlayer.hxx233
-rw-r--r--sc/inc/editsrc.hxx193
-rw-r--r--sc/inc/editutil.hxx264
-rw-r--r--sc/inc/eetext.hxx33
-rw-r--r--sc/inc/externalrefmgr.hxx763
-rw-r--r--sc/inc/fielduno.hxx454
-rw-r--r--sc/inc/fillinfo.hxx153
-rw-r--r--sc/inc/filter.hxx141
-rw-r--r--sc/inc/filtopt.hxx62
-rw-r--r--sc/inc/filtuno.hxx111
-rw-r--r--sc/inc/fmtuno.hxx332
-rw-r--r--sc/inc/forbiuno.hxx55
-rw-r--r--sc/inc/formulaparserpool.hxx67
-rw-r--r--sc/inc/formularesult.hxx615
-rw-r--r--sc/inc/funcdesc.hxx180
-rw-r--r--sc/inc/funcuno.hxx147
-rw-r--r--sc/inc/global.hxx922
-rw-r--r--sc/inc/globstr.hrc576
-rw-r--r--sc/inc/hints.hxx185
-rw-r--r--sc/inc/inputopt.hxx105
-rw-r--r--sc/inc/linkuno.hxx634
-rw-r--r--sc/inc/listenercalls.hxx79
-rw-r--r--sc/inc/lookupcache.hxx257
-rw-r--r--sc/inc/makefile.mk48
-rw-r--r--sc/inc/markarr.hxx87
-rw-r--r--sc/inc/markdata.hxx121
-rw-r--r--sc/inc/miscuno.hxx313
-rw-r--r--sc/inc/mutexhlp.hxx46
-rw-r--r--sc/inc/nameuno.hxx351
-rw-r--r--sc/inc/navicfg.hxx58
-rw-r--r--sc/inc/notesuno.hxx321
-rw-r--r--sc/inc/olinetab.hxx181
-rw-r--r--sc/inc/optuno.hxx93
-rw-r--r--sc/inc/optutil.hxx76
-rw-r--r--sc/inc/pagepar.hxx86
-rw-r--r--sc/inc/pageuno.hxx56
-rw-r--r--sc/inc/paramisc.hxx77
-rw-r--r--sc/inc/patattr.hxx193
-rwxr-xr-xsc/inc/pch/precompiled_sc.cxx28
-rw-r--r--sc/inc/pch/precompiled_sc.hxx245
-rw-r--r--sc/inc/pivot.hxx197
-rw-r--r--sc/inc/postit.hxx263
-rw-r--r--sc/inc/printopt.hxx99
-rw-r--r--sc/inc/prnsave.hxx81
-rw-r--r--sc/inc/progress.hxx159
-rw-r--r--sc/inc/queryparam.hxx142
-rw-r--r--sc/inc/rangelst.hxx115
-rw-r--r--sc/inc/rangenam.hxx224
-rw-r--r--sc/inc/rangeseq.hxx114
-rw-r--r--sc/inc/rangeutl.hxx321
-rw-r--r--sc/inc/rechead.hxx170
-rw-r--r--sc/inc/recursionhelper.hxx159
-rw-r--r--sc/inc/refdata.hxx213
-rw-r--r--sc/inc/reffind.hxx68
-rw-r--r--sc/inc/refreshtimer.hxx158
-rw-r--r--sc/inc/reftokenhelper.hxx80
-rw-r--r--sc/inc/sc.hrc1652
-rw-r--r--sc/inc/scabstdlg.hxx476
-rw-r--r--sc/inc/scdll.hxx79
-rw-r--r--sc/inc/scdllapi.h13
-rw-r--r--sc/inc/scerrors.hxx76
-rw-r--r--sc/inc/scextopt.hxx134
-rw-r--r--sc/inc/scfuncs.hrc332
-rw-r--r--sc/inc/scimpexpmsg.hxx105
-rw-r--r--sc/inc/scitems.hxx195
-rw-r--r--sc/inc/scmatrix.hxx427
-rw-r--r--sc/inc/scmod.hxx303
-rw-r--r--sc/inc/scresid.hxx45
-rw-r--r--sc/inc/scwarngs.hxx36
-rw-r--r--sc/inc/segdefs.hxx39
-rw-r--r--sc/inc/segdefs_.hxx4985
-rw-r--r--sc/inc/servuno.hxx113
-rw-r--r--sc/inc/shapeuno.hxx242
-rw-r--r--sc/inc/sheetdata.hxx180
-rw-r--r--sc/inc/shellids.hxx55
-rw-r--r--sc/inc/sortparam.hxx81
-rw-r--r--sc/inc/srchuno.hxx129
-rw-r--r--sc/inc/stlpool.hxx86
-rw-r--r--sc/inc/stlsheet.hxx91
-rw-r--r--sc/inc/strload.hxx51
-rw-r--r--sc/inc/styleuno.hxx378
-rw-r--r--sc/inc/subtotal.hxx57
-rw-r--r--sc/inc/table.hxx763
-rw-r--r--sc/inc/tablink.hxx121
-rw-r--r--sc/inc/tabopparams.hxx104
-rw-r--r--sc/inc/tabprotection.hxx177
-rw-r--r--sc/inc/targuno.hxx206
-rw-r--r--sc/inc/textuno.hxx418
-rw-r--r--sc/inc/token.hxx507
-rw-r--r--sc/inc/tokenarray.hxx97
-rw-r--r--sc/inc/tokenuno.hxx158
-rw-r--r--sc/inc/unitconv.hxx73
-rw-r--r--sc/inc/unoguard.hxx42
-rw-r--r--sc/inc/unonames.hxx634
-rw-r--r--sc/inc/unoreflist.hxx84
-rw-r--r--sc/inc/unowids.hxx94
-rw-r--r--sc/inc/userdat.hxx118
-rw-r--r--sc/inc/userlist.hxx91
-rw-r--r--sc/inc/validat.hxx213
-rw-r--r--sc/inc/viewopti.hxx179
-rw-r--r--sc/inc/viewuno.hxx393
-rw-r--r--sc/inc/waitoff.hxx46
-rw-r--r--sc/inc/warnpassword.hxx48
-rw-r--r--sc/inc/xmlwrap.hxx85
-rw-r--r--sc/inc/zforauto.hxx72
-rwxr-xr-xsc/prj/build.lst50
-rw-r--r--sc/prj/d.lst43
-rwxr-xr-xsc/qa/complex/calcPreview/ViewForwarder.java1057
-rwxr-xr-xsc/qa/complex/calcPreview/makefile.mk93
-rwxr-xr-xsc/qa/complex/calcPreview/test_documents/calcshapes.sxcbin0 -> 13030 bytes
-rwxr-xr-xsc/qa/complex/cellRanges/CheckXCellRangesQuery.java229
-rwxr-xr-xsc/qa/complex/cellRanges/makefile.mk77
-rw-r--r--sc/qa/complex/dataPilot/CheckDataPilot.java329
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/beans/_XPropertySet.java631
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/beans/makefile.mk46
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/container/_XNamed.java147
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/container/makefile.mk46
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java449
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotTable.java133
-rw-r--r--sc/qa/complex/dataPilot/interfaceTests/sheet/makefile.mk46
-rw-r--r--sc/qa/complex/dataPilot/makefile.mk58
-rw-r--r--sc/qa/complex/sc/CalcRTL.java567
-rw-r--r--sc/qa/complex/sc/makefile.mk57
-rw-r--r--sc/qa/unoapi/knownissues.xcl167
-rw-r--r--sc/qa/unoapi/makefile.mk40
-rw-r--r--sc/qa/unoapi/sc.sce125
-rw-r--r--sc/qa/unoapi/testdocuments/10test.csv19
-rw-r--r--sc/qa/unoapi/testdocuments/ScAnnotationShapeObj.sxcbin0 -> 6542 bytes
-rw-r--r--sc/qa/unoapi/testdocuments/ScDDELinksObj.sdcbin0 -> 17408 bytes
-rw-r--r--sc/qa/unoapi/testdocuments/ScSheetLinksObj.sdcbin0 -> 16896 bytes
-rw-r--r--sc/qa/unoapi/testdocuments/calcshapes.sxcbin0 -> 13030 bytes
-rw-r--r--sc/qa/unoapi/testdocuments/crazy-blue.jpgbin0 -> 4451 bytes
-rw-r--r--sc/qa/unoapi/testdocuments/space-metal.jpgbin0 -> 4313 bytes
-rw-r--r--sc/sdi/app.sdi93
-rw-r--r--sc/sdi/auditsh.sdi41
-rw-r--r--sc/sdi/cellsh.sdi419
-rw-r--r--sc/sdi/chartsh.sdi31
-rw-r--r--sc/sdi/docsh.sdi122
-rw-r--r--sc/sdi/drawsh.sdi239
-rw-r--r--sc/sdi/drformsh.sdi31
-rw-r--r--sc/sdi/drtxtob.sdi143
-rw-r--r--sc/sdi/editsh.sdi105
-rw-r--r--sc/sdi/formatsh.sdi149
-rw-r--r--sc/sdi/graphsh.sdi152
-rw-r--r--sc/sdi/makefile.mk75
-rw-r--r--sc/sdi/mediash.sdi41
-rw-r--r--sc/sdi/oleobjsh.sdi31
-rw-r--r--sc/sdi/pgbrksh.sdi31
-rw-r--r--sc/sdi/pivotsh.sdi39
-rw-r--r--sc/sdi/prevwsh.sdi169
-rw-r--r--sc/sdi/scalc.sdi7750
-rw-r--r--sc/sdi/scslots.hrc33
-rw-r--r--sc/sdi/scslots.sdi78
-rw-r--r--sc/sdi/tabpopsh.sdi31
-rw-r--r--sc/sdi/tabvwsh.sdi284
-rw-r--r--sc/source/core/data/attarray.cxx2612
-rw-r--r--sc/source/core/data/attrib.cxx1328
-rw-r--r--sc/source/core/data/autonamecache.cxx109
-rw-r--r--sc/source/core/data/bcaslot.cxx932
-rw-r--r--sc/source/core/data/cell.cxx2033
-rw-r--r--sc/source/core/data/cell2.cxx1636
-rw-r--r--sc/source/core/data/clipparam.cxx200
-rw-r--r--sc/source/core/data/column.cxx2192
-rw-r--r--sc/source/core/data/column2.cxx1859
-rw-r--r--sc/source/core/data/column3.cxx1923
-rw-r--r--sc/source/core/data/compressedarray.cxx906
-rw-r--r--sc/source/core/data/conditio.cxx1603
-rw-r--r--sc/source/core/data/dbdocutl.cxx197
-rwxr-xr-xsc/source/core/data/dociter.cxx2145
-rw-r--r--sc/source/core/data/docpool.cxx1039
-rw-r--r--sc/source/core/data/documen2.cxx1264
-rw-r--r--sc/source/core/data/documen3.cxx1906
-rw-r--r--sc/source/core/data/documen4.cxx1198
-rw-r--r--sc/source/core/data/documen5.cxx1013
-rw-r--r--sc/source/core/data/documen6.cxx184
-rw-r--r--sc/source/core/data/documen7.cxx528
-rw-r--r--sc/source/core/data/documen8.cxx1625
-rw-r--r--sc/source/core/data/documen9.cxx880
-rw-r--r--sc/source/core/data/document.cxx4966
-rw-r--r--sc/source/core/data/dpcachetable.cxx718
-rw-r--r--sc/source/core/data/dpdimsave.cxx584
-rw-r--r--sc/source/core/data/dpgroup.cxx1531
-rw-r--r--sc/source/core/data/dpobject.cxx2553
-rw-r--r--sc/source/core/data/dpoutput.cxx2022
-rw-r--r--sc/source/core/data/dpoutputgeometry.cxx214
-rw-r--r--sc/source/core/data/dpsave.cxx1256
-rw-r--r--sc/source/core/data/dpsdbtab.cxx318
-rw-r--r--sc/source/core/data/dpshttab.cxx299
-rw-r--r--sc/source/core/data/dptabdat.cxx333
-rw-r--r--sc/source/core/data/dptabres.cxx3744
-rw-r--r--sc/source/core/data/dptabsrc.cxx2825
-rw-r--r--sc/source/core/data/drawpage.cxx65
-rw-r--r--sc/source/core/data/drwlayer.cxx2072
-rw-r--r--sc/source/core/data/fillinfo.cxx1067
-rw-r--r--sc/source/core/data/global.cxx2007
-rw-r--r--sc/source/core/data/global2.cxx994
-rw-r--r--sc/source/core/data/globalx.cxx171
-rw-r--r--sc/source/core/data/makefile.mk169
-rw-r--r--sc/source/core/data/markarr.cxx410
-rw-r--r--sc/source/core/data/markdata.cxx584
-rw-r--r--sc/source/core/data/olinetab.cxx808
-rw-r--r--sc/source/core/data/pagepar.cxx122
-rw-r--r--sc/source/core/data/patattr.cxx1347
-rw-r--r--sc/source/core/data/pivot.cxx34
-rw-r--r--sc/source/core/data/pivot2.cxx114
-rw-r--r--sc/source/core/data/poolhelp.cxx128
-rw-r--r--sc/source/core/data/postit.cxx920
-rw-r--r--sc/source/core/data/scimpexpmsg.cxx113
-rw-r--r--sc/source/core/data/sortparam.cxx263
-rw-r--r--sc/source/core/data/stlpool.cxx641
-rw-r--r--sc/source/core/data/stlsheet.cxx346
-rw-r--r--sc/source/core/data/table1.cxx1534
-rw-r--r--sc/source/core/data/table2.cxx2921
-rw-r--r--sc/source/core/data/table3.cxx1919
-rw-r--r--sc/source/core/data/table4.cxx1990
-rw-r--r--sc/source/core/data/table5.cxx446
-rw-r--r--sc/source/core/data/table6.cxx690
-rw-r--r--sc/source/core/data/tabprotection.cxx462
-rw-r--r--sc/source/core/data/userdat.cxx127
-rw-r--r--sc/source/core/data/validat.cxx996
-rw-r--r--sc/source/core/inc/addinhelpid.hxx60
-rw-r--r--sc/source/core/inc/addinlis.hxx98
-rw-r--r--sc/source/core/inc/adiasync.hxx92
-rw-r--r--sc/source/core/inc/bcaslot.hxx309
-rw-r--r--sc/source/core/inc/cellkeytranslator.hxx91
-rw-r--r--sc/source/core/inc/core_pch.hxx249
-rw-r--r--sc/source/core/inc/ddelink.hxx99
-rw-r--r--sc/source/core/inc/doubleref.hxx194
-rw-r--r--sc/source/core/inc/interpre.hxx917
-rw-r--r--sc/source/core/inc/jumpmatrix.hxx222
-rw-r--r--sc/source/core/inc/makefile.mk26
-rw-r--r--sc/source/core/inc/parclass.hxx180
-rw-r--r--sc/source/core/inc/poolhelp.hxx74
-rw-r--r--sc/source/core/inc/refupdat.hxx100
-rw-r--r--sc/source/core/inc/scrdata.hxx49
-rw-r--r--sc/source/core/inc/sctictac.hxx131
-rw-r--r--sc/source/core/src/compiler.src79
-rw-r--r--sc/source/core/src/makefile.mk48
-rw-r--r--sc/source/core/tool/addincfg.cxx72
-rw-r--r--sc/source/core/tool/addincol.cxx1797
-rw-r--r--sc/source/core/tool/addinhelpid.cxx217
-rw-r--r--sc/source/core/tool/addinlis.cxx190
-rw-r--r--sc/source/core/tool/address.cxx2027
-rw-r--r--sc/source/core/tool/adiasync.cxx187
-rw-r--r--sc/source/core/tool/appoptio.cxx745
-rw-r--r--sc/source/core/tool/autoform.cxx1200
-rw-r--r--sc/source/core/tool/callform.cxx469
-rw-r--r--sc/source/core/tool/cellform.cxx216
-rw-r--r--sc/source/core/tool/cellkeytranslator.cxx232
-rw-r--r--sc/source/core/tool/cellkeywords.inl181
-rw-r--r--sc/source/core/tool/chartarr.cxx595
-rw-r--r--sc/source/core/tool/charthelper.cxx109
-rw-r--r--sc/source/core/tool/chartlis.cxx736
-rw-r--r--sc/source/core/tool/chartlock.cxx195
-rw-r--r--sc/source/core/tool/chartpos.cxx646
-rw-r--r--sc/source/core/tool/chgtrack.cxx4869
-rw-r--r--sc/source/core/tool/chgviset.cxx178
-rw-r--r--sc/source/core/tool/collect.cxx504
-rw-r--r--sc/source/core/tool/compiler.cxx5443
-rw-r--r--sc/source/core/tool/consoli.cxx858
-rw-r--r--sc/source/core/tool/dbcolect.cxx887
-rw-r--r--sc/source/core/tool/ddelink.cxx279
-rw-r--r--sc/source/core/tool/detdata.cxx118
-rw-r--r--sc/source/core/tool/detfunc.cxx1712
-rw-r--r--sc/source/core/tool/docoptio.cxx442
-rw-r--r--sc/source/core/tool/doubleref.cxx568
-rw-r--r--sc/source/core/tool/editutil.cxx778
-rw-r--r--sc/source/core/tool/filtopt.cxx120
-rw-r--r--sc/source/core/tool/formulaparserpool.cxx168
-rw-r--r--sc/source/core/tool/hints.cxx162
-rw-r--r--sc/source/core/tool/inputopt.cxx274
-rw-r--r--sc/source/core/tool/interpr1.cxx7409
-rw-r--r--sc/source/core/tool/interpr2.cxx3032
-rw-r--r--sc/source/core/tool/interpr3.cxx4244
-rwxr-xr-xsc/source/core/tool/interpr4.cxx4239
-rw-r--r--sc/source/core/tool/interpr5.cxx2810
-rw-r--r--sc/source/core/tool/interpr6.cxx199
-rw-r--r--sc/source/core/tool/lookupcache.cxx126
-rw-r--r--sc/source/core/tool/makefile.mk165
-rw-r--r--sc/source/core/tool/navicfg.cxx80
-rw-r--r--sc/source/core/tool/odffmap.cxx149
-rw-r--r--sc/source/core/tool/optutil.cxx79
-rw-r--r--sc/source/core/tool/parclass.cxx578
-rw-r--r--sc/source/core/tool/printopt.cxx211
-rw-r--r--sc/source/core/tool/prnsave.cxx135
-rw-r--r--sc/source/core/tool/progress.cxx198
-rw-r--r--sc/source/core/tool/queryparam.cxx365
-rw-r--r--sc/source/core/tool/rangelst.cxx715
-rw-r--r--sc/source/core/tool/rangenam.cxx824
-rw-r--r--sc/source/core/tool/rangeseq.cxx476
-rw-r--r--sc/source/core/tool/rangeutl.cxx1054
-rw-r--r--sc/source/core/tool/rechead.cxx173
-rw-r--r--sc/source/core/tool/refdata.cxx372
-rw-r--r--sc/source/core/tool/reffind.cxx168
-rw-r--r--sc/source/core/tool/refreshtimer.cxx81
-rw-r--r--sc/source/core/tool/reftokenhelper.cxx479
-rw-r--r--sc/source/core/tool/refupdat.cxx939
-rw-r--r--sc/source/core/tool/scmatrix.cxx843
-rw-r--r--sc/source/core/tool/sctictac.cxx551
-rw-r--r--sc/source/core/tool/subtotal.cxx81
-rw-r--r--sc/source/core/tool/token.cxx1836
-rw-r--r--sc/source/core/tool/unitconv.cxx178
-rw-r--r--sc/source/core/tool/userlist.cxx297
-rw-r--r--sc/source/core/tool/viewopti.cxx754
-rw-r--r--sc/source/core/tool/zforauto.cxx106
-rw-r--r--sc/source/filter/dif/difexp.cxx317
-rw-r--r--sc/source/filter/dif/difimp.cxx1008
-rw-r--r--sc/source/filter/dif/makefile.mk54
-rw-r--r--sc/source/filter/excel/colrowst.cxx318
-rw-r--r--sc/source/filter/excel/excdoc.cxx836
-rw-r--r--sc/source/filter/excel/excel.cxx304
-rw-r--r--sc/source/filter/excel/excform.cxx2015
-rw-r--r--sc/source/filter/excel/excform8.cxx1599
-rw-r--r--sc/source/filter/excel/excimp8.cxx747
-rw-r--r--sc/source/filter/excel/excrecds.cxx1051
-rw-r--r--sc/source/filter/excel/exctools.cxx434
-rw-r--r--sc/source/filter/excel/expop2.cxx219
-rw-r--r--sc/source/filter/excel/fontbuff.cxx163
-rw-r--r--sc/source/filter/excel/frmbase.cxx282
-rw-r--r--sc/source/filter/excel/impop.cxx1338
-rw-r--r--sc/source/filter/excel/makefile.mk159
-rw-r--r--sc/source/filter/excel/namebuff.cxx344
-rw-r--r--sc/source/filter/excel/ooxml-export-TODO.txt148
-rw-r--r--sc/source/filter/excel/read.cxx1239
-rw-r--r--sc/source/filter/excel/tokstack.cxx889
-rw-r--r--sc/source/filter/excel/xechart.cxx3145
-rw-r--r--sc/source/filter/excel/xecontent.cxx1462
-rw-r--r--sc/source/filter/excel/xeescher.cxx1284
-rw-r--r--sc/source/filter/excel/xeformula.cxx2646
-rw-r--r--sc/source/filter/excel/xehelper.cxx1144
-rw-r--r--sc/source/filter/excel/xelink.cxx2436
-rw-r--r--sc/source/filter/excel/xename.cxx791
-rw-r--r--sc/source/filter/excel/xepage.cxx403
-rw-r--r--sc/source/filter/excel/xepivot.cxx1805
-rw-r--r--sc/source/filter/excel/xerecord.cxx302
-rw-r--r--sc/source/filter/excel/xeroot.cxx276
-rw-r--r--sc/source/filter/excel/xestream.cxx1034
-rw-r--r--sc/source/filter/excel/xestring.cxx656
-rw-r--r--sc/source/filter/excel/xestyle.cxx2902
-rw-r--r--sc/source/filter/excel/xetable.cxx2586
-rw-r--r--sc/source/filter/excel/xeview.cxx495
-rw-r--r--sc/source/filter/excel/xichart.cxx3915
-rw-r--r--sc/source/filter/excel/xicontent.cxx1297
-rw-r--r--sc/source/filter/excel/xiescher.cxx4135
-rw-r--r--sc/source/filter/excel/xiformula.cxx127
-rw-r--r--sc/source/filter/excel/xihelper.cxx918
-rw-r--r--sc/source/filter/excel/xilink.cxx798
-rw-r--r--sc/source/filter/excel/xiname.cxx260
-rw-r--r--sc/source/filter/excel/xipage.cxx390
-rw-r--r--sc/source/filter/excel/xipivot.cxx1638
-rw-r--r--sc/source/filter/excel/xiroot.cxx276
-rw-r--r--sc/source/filter/excel/xistream.cxx1102
-rw-r--r--sc/source/filter/excel/xistring.cxx213
-rw-r--r--sc/source/filter/excel/xistyle.cxx1802
-rw-r--r--sc/source/filter/excel/xiview.cxx282
-rw-r--r--sc/source/filter/excel/xladdress.cxx161
-rw-r--r--sc/source/filter/excel/xlchart.cxx1350
-rw-r--r--sc/source/filter/excel/xlescher.cxx393
-rw-r--r--sc/source/filter/excel/xlformula.cxx756
-rw-r--r--sc/source/filter/excel/xlpage.cxx248
-rw-r--r--sc/source/filter/excel/xlpivot.cxx1031
-rw-r--r--sc/source/filter/excel/xlroot.cxx378
-rw-r--r--sc/source/filter/excel/xlstyle.cxx1771
-rw-r--r--sc/source/filter/excel/xltools.cxx691
-rw-r--r--sc/source/filter/excel/xltracer.cxx270
-rw-r--r--sc/source/filter/excel/xlview.cxx114
-rw-r--r--sc/source/filter/ftools/fapihelper.cxx412
-rw-r--r--sc/source/filter/ftools/fprogressbar.cxx260
-rw-r--r--sc/source/filter/ftools/ftools.cxx406
-rw-r--r--sc/source/filter/ftools/makefile.mk58
-rw-r--r--sc/source/filter/html/htmlexp.cxx1371
-rw-r--r--sc/source/filter/html/htmlexp2.cxx249
-rw-r--r--sc/source/filter/html/htmlimp.cxx258
-rw-r--r--sc/source/filter/html/htmlpars.cxx3059
-rw-r--r--sc/source/filter/html/makefile.mk62
-rw-r--r--sc/source/filter/inc/XclExpChangeTrack.hxx641
-rw-r--r--sc/source/filter/inc/XclImpChangeTrack.hxx202
-rw-r--r--sc/source/filter/inc/biff.hxx64
-rw-r--r--sc/source/filter/inc/colrowst.hxx80
-rw-r--r--sc/source/filter/inc/decl.h44
-rw-r--r--sc/source/filter/inc/dif.hxx227
-rw-r--r--sc/source/filter/inc/eeimport.hxx66
-rw-r--r--sc/source/filter/inc/eeparser.hxx153
-rw-r--r--sc/source/filter/inc/excdefs.hxx106
-rw-r--r--sc/source/filter/inc/excdoc.hxx120
-rw-r--r--sc/source/filter/inc/excform.hxx160
-rw-r--r--sc/source/filter/inc/excimp8.hxx165
-rw-r--r--sc/source/filter/inc/excrecds.hxx506
-rw-r--r--sc/source/filter/inc/excscen.hxx147
-rw-r--r--sc/source/filter/inc/exp_op.hxx147
-rw-r--r--sc/source/filter/inc/expbase.hxx82
-rw-r--r--sc/source/filter/inc/fapihelper.hxx352
-rw-r--r--sc/source/filter/inc/filt_pch.hxx321
-rw-r--r--sc/source/filter/inc/fkttab.h46
-rw-r--r--sc/source/filter/inc/flttypes.hxx51
-rw-r--r--sc/source/filter/inc/formel.hxx296
-rw-r--r--sc/source/filter/inc/fprogressbar.hxx243
-rw-r--r--sc/source/filter/inc/ftools.hxx542
-rw-r--r--sc/source/filter/inc/funktion.h50
-rw-r--r--sc/source/filter/inc/htmlexp.hxx174
-rw-r--r--sc/source/filter/inc/htmlimp.hxx51
-rw-r--r--sc/source/filter/inc/htmlpars.hxx638
-rw-r--r--sc/source/filter/inc/imp_op.hxx204
-rw-r--r--sc/source/filter/inc/lotattr.hxx153
-rw-r--r--sc/source/filter/inc/lotfntbf.hxx111
-rw-r--r--sc/source/filter/inc/lotform.hxx132
-rw-r--r--sc/source/filter/inc/lotimpop.hxx169
-rw-r--r--sc/source/filter/inc/lotrange.hxx167
-rw-r--r--sc/source/filter/inc/makefile.mk26
-rw-r--r--sc/source/filter/inc/namebuff.hxx356
-rw-r--r--sc/source/filter/inc/op.h70
-rw-r--r--sc/source/filter/inc/optab.h52
-rw-r--r--sc/source/filter/inc/otlnbuff.hxx78
-rw-r--r--sc/source/filter/inc/qpro.hxx59
-rw-r--r--sc/source/filter/inc/qproform.hxx86
-rw-r--r--sc/source/filter/inc/qprostyle.hxx69
-rw-r--r--sc/source/filter/inc/root.hxx119
-rw-r--r--sc/source/filter/inc/rtfexp.hxx52
-rw-r--r--sc/source/filter/inc/rtfimp.hxx41
-rw-r--r--sc/source/filter/inc/rtfparse.hxx89
-rw-r--r--sc/source/filter/inc/scflt.hxx764
-rw-r--r--sc/source/filter/inc/scfobj.hxx45
-rw-r--r--sc/source/filter/inc/scmem.h37
-rw-r--r--sc/source/filter/inc/tokstack.hxx408
-rw-r--r--sc/source/filter/inc/tool.h164
-rw-r--r--sc/source/filter/inc/xcl97dum.hxx90
-rw-r--r--sc/source/filter/inc/xcl97esc.hxx201
-rw-r--r--sc/source/filter/inc/xcl97rec.hxx591
-rw-r--r--sc/source/filter/inc/xechart.hxx1233
-rw-r--r--sc/source/filter/inc/xecontent.hxx352
-rw-r--r--sc/source/filter/inc/xeescher.hxx435
-rw-r--r--sc/source/filter/inc/xeformula.hxx97
-rw-r--r--sc/source/filter/inc/xehelper.hxx451
-rw-r--r--sc/source/filter/inc/xelink.hxx221
-rw-r--r--sc/source/filter/inc/xename.hxx91
-rw-r--r--sc/source/filter/inc/xepage.hxx137
-rw-r--r--sc/source/filter/inc/xepivot.hxx486
-rw-r--r--sc/source/filter/inc/xerecord.hxx419
-rw-r--r--sc/source/filter/inc/xeroot.hxx175
-rw-r--r--sc/source/filter/inc/xestream.hxx355
-rw-r--r--sc/source/filter/inc/xestring.hxx350
-rw-r--r--sc/source/filter/inc/xestyle.hxx780
-rw-r--r--sc/source/filter/inc/xetable.hxx1089
-rw-r--r--sc/source/filter/inc/xeview.hxx165
-rw-r--r--sc/source/filter/inc/xichart.hxx1477
-rw-r--r--sc/source/filter/inc/xicontent.hxx311
-rw-r--r--sc/source/filter/inc/xiescher.hxx1275
-rw-r--r--sc/source/filter/inc/xiformula.hxx68
-rw-r--r--sc/source/filter/inc/xihelper.hxx367
-rw-r--r--sc/source/filter/inc/xilink.hxx210
-rw-r--r--sc/source/filter/inc/xiname.hxx98
-rw-r--r--sc/source/filter/inc/xipage.hxx82
-rw-r--r--sc/source/filter/inc/xipivot.hxx457
-rw-r--r--sc/source/filter/inc/xiroot.hxx212
-rw-r--r--sc/source/filter/inc/xistream.hxx529
-rw-r--r--sc/source/filter/inc/xistring.hxx121
-rw-r--r--sc/source/filter/inc/xistyle.hxx678
-rw-r--r--sc/source/filter/inc/xiview.hxx94
-rw-r--r--sc/source/filter/inc/xladdress.hxx197
-rw-r--r--sc/source/filter/inc/xlchart.hxx1476
-rw-r--r--sc/source/filter/inc/xlconst.hxx273
-rw-r--r--sc/source/filter/inc/xlcontent.hxx194
-rw-r--r--sc/source/filter/inc/xlescher.hxx453
-rw-r--r--sc/source/filter/inc/xlformula.hxx569
-rw-r--r--sc/source/filter/inc/xllink.hxx93
-rw-r--r--sc/source/filter/inc/xlname.hxx75
-rw-r--r--sc/source/filter/inc/xlpage.hxx156
-rw-r--r--sc/source/filter/inc/xlpivot.hxx817
-rw-r--r--sc/source/filter/inc/xlroot.hxx282
-rw-r--r--sc/source/filter/inc/xlstream.hxx53
-rw-r--r--sc/source/filter/inc/xlstring.hxx97
-rw-r--r--sc/source/filter/inc/xlstyle.hxx619
-rw-r--r--sc/source/filter/inc/xltable.hxx202
-rw-r--r--sc/source/filter/inc/xltools.hxx252
-rw-r--r--sc/source/filter/inc/xltracer.hxx148
-rw-r--r--sc/source/filter/inc/xlview.hxx170
-rw-r--r--sc/source/filter/lotus/expop.cxx412
-rw-r--r--sc/source/filter/lotus/export.cxx58
-rw-r--r--sc/source/filter/lotus/filter.cxx248
-rw-r--r--sc/source/filter/lotus/lotattr.cxx299
-rw-r--r--sc/source/filter/lotus/lotform.cxx2074
-rw-r--r--sc/source/filter/lotus/lotimpop.cxx474
-rw-r--r--sc/source/filter/lotus/lotread.cxx324
-rw-r--r--sc/source/filter/lotus/lotus.cxx102
-rw-r--r--sc/source/filter/lotus/makefile.mk69
-rw-r--r--sc/source/filter/lotus/memory.cxx139
-rw-r--r--sc/source/filter/lotus/op.cxx684
-rw-r--r--sc/source/filter/lotus/optab.cxx248
-rw-r--r--sc/source/filter/lotus/tool.cxx651
-rw-r--r--sc/source/filter/qpro/biff.cxx104
-rw-r--r--sc/source/filter/qpro/makefile.mk57
-rw-r--r--sc/source/filter/qpro/qpro.cxx230
-rw-r--r--sc/source/filter/qpro/qproform.cxx745
-rw-r--r--sc/source/filter/qpro/qprostyle.cxx167
-rw-r--r--sc/source/filter/rtf/eeimpars.cxx634
-rw-r--r--sc/source/filter/rtf/expbase.cxx110
-rw-r--r--sc/source/filter/rtf/makefile.mk59
-rw-r--r--sc/source/filter/rtf/rtfexp.cxx305
-rw-r--r--sc/source/filter/rtf/rtfimp.cxx75
-rw-r--r--sc/source/filter/rtf/rtfparse.cxx420
-rw-r--r--sc/source/filter/starcalc/makefile.mk56
-rw-r--r--sc/source/filter/starcalc/scflt.cxx2511
-rw-r--r--sc/source/filter/starcalc/scfobj.cxx104
-rw-r--r--sc/source/filter/xcl97/XclExpChangeTrack.cxx1248
-rw-r--r--sc/source/filter/xcl97/XclImpChangeTrack.cxx502
-rw-r--r--sc/source/filter/xcl97/makefile.mk62
-rw-r--r--sc/source/filter/xcl97/xcl97dum.cxx163
-rw-r--r--sc/source/filter/xcl97/xcl97esc.cxx512
-rw-r--r--sc/source/filter/xcl97/xcl97rec.cxx1447
-rw-r--r--sc/source/filter/xml/XMLCalculationSettingsContext.cxx273
-rw-r--r--sc/source/filter/xml/XMLCalculationSettingsContext.hxx111
-rw-r--r--sc/source/filter/xml/XMLCellRangeSourceContext.cxx133
-rw-r--r--sc/source/filter/xml/XMLCellRangeSourceContext.hxx80
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx817
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingExportHelper.hxx98
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx935
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingImportHelper.hxx249
-rw-r--r--sc/source/filter/xml/XMLColumnRowGroupExport.cxx187
-rw-r--r--sc/source/filter/xml/XMLColumnRowGroupExport.hxx73
-rw-r--r--sc/source/filter/xml/XMLConsolidationContext.cxx160
-rw-r--r--sc/source/filter/xml/XMLConsolidationContext.hxx73
-rw-r--r--sc/source/filter/xml/XMLConverter.cxx670
-rw-r--r--sc/source/filter/xml/XMLConverter.hxx177
-rw-r--r--sc/source/filter/xml/XMLDDELinksContext.cxx490
-rw-r--r--sc/source/filter/xml/XMLDDELinksContext.hxx230
-rw-r--r--sc/source/filter/xml/XMLDetectiveContext.cxx265
-rw-r--r--sc/source/filter/xml/XMLDetectiveContext.hxx175
-rw-r--r--sc/source/filter/xml/XMLEmptyContext.cxx63
-rw-r--r--sc/source/filter/xml/XMLEmptyContext.hxx57
-rw-r--r--sc/source/filter/xml/XMLExportDDELinks.cxx221
-rw-r--r--sc/source/filter/xml/XMLExportDDELinks.hxx52
-rw-r--r--sc/source/filter/xml/XMLExportDataPilot.cxx894
-rw-r--r--sc/source/filter/xml/XMLExportDataPilot.hxx80
-rw-r--r--sc/source/filter/xml/XMLExportDatabaseRanges.cxx699
-rw-r--r--sc/source/filter/xml/XMLExportDatabaseRanges.hxx62
-rw-r--r--sc/source/filter/xml/XMLExportIterator.cxx892
-rw-r--r--sc/source/filter/xml/XMLExportIterator.hxx413
-rw-r--r--sc/source/filter/xml/XMLExportSharedData.cxx163
-rw-r--r--sc/source/filter/xml/XMLExportSharedData.hxx90
-rw-r--r--sc/source/filter/xml/XMLStylesExportHelper.cxx1246
-rw-r--r--sc/source/filter/xml/XMLStylesExportHelper.hxx293
-rw-r--r--sc/source/filter/xml/XMLStylesImportHelper.cxx587
-rw-r--r--sc/source/filter/xml/XMLStylesImportHelper.hxx195
-rw-r--r--sc/source/filter/xml/XMLTableHeaderFooterContext.cxx268
-rw-r--r--sc/source/filter/xml/XMLTableHeaderFooterContext.hxx114
-rw-r--r--sc/source/filter/xml/XMLTableMasterPageExport.cxx178
-rw-r--r--sc/source/filter/xml/XMLTableMasterPageExport.hxx66
-rw-r--r--sc/source/filter/xml/XMLTableShapeImportHelper.cxx215
-rw-r--r--sc/source/filter/xml/XMLTableShapeImportHelper.hxx62
-rw-r--r--sc/source/filter/xml/XMLTableShapeResizer.cxx385
-rw-r--r--sc/source/filter/xml/XMLTableShapeResizer.hxx81
-rw-r--r--sc/source/filter/xml/XMLTableShapesContext.cxx87
-rw-r--r--sc/source/filter/xml/XMLTableShapesContext.hxx55
-rw-r--r--sc/source/filter/xml/XMLTableSourceContext.cxx146
-rw-r--r--sc/source/filter/xml/XMLTableSourceContext.hxx63
-rw-r--r--sc/source/filter/xml/XMLTextPContext.cxx224
-rw-r--r--sc/source/filter/xml/XMLTextPContext.hxx72
-rw-r--r--sc/source/filter/xml/XMLTrackedChangesContext.cxx2025
-rw-r--r--sc/source/filter/xml/XMLTrackedChangesContext.hxx62
-rw-r--r--sc/source/filter/xml/makefile.mk108
-rw-r--r--sc/source/filter/xml/sheetdata.cxx272
-rw-r--r--sc/source/filter/xml/xmlannoi.cxx220
-rw-r--r--sc/source/filter/xml/xmlannoi.hxx122
-rw-r--r--sc/source/filter/xml/xmlbodyi.cxx338
-rw-r--r--sc/source/filter/xml/xmlbodyi.hxx61
-rw-r--r--sc/source/filter/xml/xmlcelli.cxx1117
-rw-r--r--sc/source/filter/xml/xmlcelli.hxx130
-rw-r--r--sc/source/filter/xml/xmlcoli.cxx333
-rw-r--r--sc/source/filter/xml/xmlcoli.hxx93
-rw-r--r--sc/source/filter/xml/xmlconti.cxx107
-rw-r--r--sc/source/filter/xml/xmlconti.hxx63
-rw-r--r--sc/source/filter/xml/xmlcvali.cxx696
-rw-r--r--sc/source/filter/xml/xmlcvali.hxx61
-rw-r--r--sc/source/filter/xml/xmldpimp.cxx1829
-rw-r--r--sc/source/filter/xml/xmldpimp.hxx693
-rw-r--r--sc/source/filter/xml/xmldrani.cxx991
-rw-r--r--sc/source/filter/xml/xmldrani.hxx362
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx4497
-rw-r--r--sc/source/filter/xml/xmlexprt.hxx293
-rw-r--r--sc/source/filter/xml/xmlexternaltabi.cxx430
-rw-r--r--sc/source/filter/xml/xmlexternaltabi.hxx171
-rw-r--r--sc/source/filter/xml/xmlfilti.cxx785
-rw-r--r--sc/source/filter/xml/xmlfilti.hxx310
-rw-r--r--sc/source/filter/xml/xmlfonte.cxx152
-rw-r--r--sc/source/filter/xml/xmlimprt.cxx3023
-rw-r--r--sc/source/filter/xml/xmlimprt.hxx1046
-rw-r--r--sc/source/filter/xml/xmllabri.cxx145
-rw-r--r--sc/source/filter/xml/xmllabri.hxx90
-rw-r--r--sc/source/filter/xml/xmlnexpi.cxx250
-rw-r--r--sc/source/filter/xml/xmlnexpi.hxx101
-rw-r--r--sc/source/filter/xml/xmlrowi.cxx360
-rw-r--r--sc/source/filter/xml/xmlrowi.hxx93
-rw-r--r--sc/source/filter/xml/xmlsceni.cxx173
-rw-r--r--sc/source/filter/xml/xmlsceni.hxx70
-rw-r--r--sc/source/filter/xml/xmlsorti.cxx279
-rw-r--r--sc/source/filter/xml/xmlsorti.hxx106
-rw-r--r--sc/source/filter/xml/xmlstyle.cxx1856
-rw-r--r--sc/source/filter/xml/xmlstyle.hxx347
-rw-r--r--sc/source/filter/xml/xmlstyli.cxx1078
-rw-r--r--sc/source/filter/xml/xmlstyli.hxx329
-rw-r--r--sc/source/filter/xml/xmlsubti.cxx833
-rw-r--r--sc/source/filter/xml/xmlsubti.hxx193
-rw-r--r--sc/source/filter/xml/xmltabi.cxx406
-rw-r--r--sc/source/filter/xml/xmltabi.hxx78
-rw-r--r--sc/source/filter/xml/xmlwrap.cxx1004
-rw-r--r--sc/source/ui/Accessibility/AccessibilityHints.cxx112
-rw-r--r--sc/source/ui/Accessibility/AccessibleCell.cxx459
-rw-r--r--sc/source/ui/Accessibility/AccessibleCellBase.cxx343
-rw-r--r--sc/source/ui/Accessibility/AccessibleContextBase.cxx632
-rw-r--r--sc/source/ui/Accessibility/AccessibleCsvControl.cxx1680
-rw-r--r--sc/source/ui/Accessibility/AccessibleDataPilotControl.cxx739
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocument.cxx2124
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocumentBase.cxx51
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx1942
-rw-r--r--sc/source/ui/Accessibility/AccessibleEditObject.cxx358
-rw-r--r--sc/source/ui/Accessibility/AccessibleFilterMenu.cxx398
-rw-r--r--sc/source/ui/Accessibility/AccessibleFilterMenuItem.cxx205
-rw-r--r--sc/source/ui/Accessibility/AccessibleFilterTopWindow.cxx134
-rw-r--r--sc/source/ui/Accessibility/AccessibleGlobal.cxx95
-rw-r--r--sc/source/ui/Accessibility/AccessiblePageHeader.cxx441
-rw-r--r--sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx330
-rw-r--r--sc/source/ui/Accessibility/AccessiblePreviewCell.cxx316
-rw-r--r--sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx443
-rw-r--r--sc/source/ui/Accessibility/AccessiblePreviewTable.cxx769
-rw-r--r--sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx999
-rw-r--r--sc/source/ui/Accessibility/AccessibleTableBase.cxx495
-rw-r--r--sc/source/ui/Accessibility/AccessibleText.cxx1911
-rw-r--r--sc/source/ui/Accessibility/DrawModelBroadcaster.cxx92
-rw-r--r--sc/source/ui/Accessibility/makefile.mk94
-rw-r--r--sc/source/ui/app/client.cxx256
-rw-r--r--sc/source/ui/app/drwtrans.cxx804
-rw-r--r--sc/source/ui/app/inputhdl.cxx3793
-rw-r--r--sc/source/ui/app/inputwin.cxx1818
-rw-r--r--sc/source/ui/app/lnktrans.cxx97
-rw-r--r--sc/source/ui/app/makefile.mk73
-rw-r--r--sc/source/ui/app/msgpool.cxx123
-rw-r--r--sc/source/ui/app/rfindlst.cxx67
-rw-r--r--sc/source/ui/app/scdll.cxx422
-rw-r--r--sc/source/ui/app/scmod.cxx2297
-rw-r--r--sc/source/ui/app/scmod2.cxx107
-rw-r--r--sc/source/ui/app/seltrans.cxx449
-rw-r--r--sc/source/ui/app/template.cxx79
-rw-r--r--sc/source/ui/app/transobj.cxx869
-rw-r--r--sc/source/ui/app/typemap.cxx135
-rw-r--r--sc/source/ui/app/uiitems.cxx737
-rw-r--r--sc/source/ui/app/wtcdummy.cxx65
-rw-r--r--sc/source/ui/attrdlg/attrdlg.cxx158
-rw-r--r--sc/source/ui/attrdlg/condfrmt.cxx829
-rw-r--r--sc/source/ui/attrdlg/makefile.mk63
-rw-r--r--sc/source/ui/attrdlg/scabstdlg.cxx56
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.cxx1529
-rw-r--r--sc/source/ui/attrdlg/scdlgfact.hxx567
-rw-r--r--sc/source/ui/attrdlg/scuiexp.cxx55
-rw-r--r--sc/source/ui/attrdlg/tabpages.cxx250
-rw-r--r--sc/source/ui/cctrl/cbuttonw.cxx178
-rw-r--r--sc/source/ui/cctrl/dpcontrol.cxx1416
-rw-r--r--sc/source/ui/cctrl/dpcontrol.src79
-rw-r--r--sc/source/ui/cctrl/editfield.cxx84
-rw-r--r--sc/source/ui/cctrl/makefile.mk70
-rw-r--r--sc/source/ui/cctrl/popmenu.cxx48
-rw-r--r--sc/source/ui/cctrl/tbinsert.cxx232
-rw-r--r--sc/source/ui/cctrl/tbzoomsliderctrl.cxx540
-rw-r--r--sc/source/ui/dbgui/asciiopt.cxx435
-rw-r--r--sc/source/ui/dbgui/asciiopt.hrc56
-rw-r--r--sc/source/ui/dbgui/asciiopt.src253
-rw-r--r--sc/source/ui/dbgui/consdlg.cxx655
-rw-r--r--sc/source/ui/dbgui/consdlg.hrc61
-rw-r--r--sc/source/ui/dbgui/consdlg.src217
-rw-r--r--sc/source/ui/dbgui/csvcontrol.cxx337
-rw-r--r--sc/source/ui/dbgui/csvgrid.cxx1354
-rw-r--r--sc/source/ui/dbgui/csvruler.cxx606
-rw-r--r--sc/source/ui/dbgui/csvsplits.cxx120
-rw-r--r--sc/source/ui/dbgui/csvtablebox.cxx464
-rw-r--r--sc/source/ui/dbgui/dapidata.cxx229
-rw-r--r--sc/source/ui/dbgui/dapitype.cxx142
-rw-r--r--sc/source/ui/dbgui/dapitype.hrc53
-rw-r--r--sc/source/ui/dbgui/dapitype.src308
-rw-r--r--sc/source/ui/dbgui/dbnamdlg.cxx721
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.cxx360
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.hrc64
-rw-r--r--sc/source/ui/dbgui/dpgroupdlg.src270
-rw-r--r--sc/source/ui/dbgui/expftext.cxx95
-rw-r--r--sc/source/ui/dbgui/fieldwnd.cxx776
-rw-r--r--sc/source/ui/dbgui/filtdlg.cxx1182
-rw-r--r--sc/source/ui/dbgui/foptmgr.cxx337
-rw-r--r--sc/source/ui/dbgui/imoptdlg.cxx90
-rw-r--r--sc/source/ui/dbgui/imoptdlg.hrc44
-rw-r--r--sc/source/ui/dbgui/imoptdlg.src141
-rw-r--r--sc/source/ui/dbgui/makefile.mk121
-rw-r--r--sc/source/ui/dbgui/outline.src51
-rw-r--r--sc/source/ui/dbgui/pfiltdlg.cxx619
-rw-r--r--sc/source/ui/dbgui/pivot.hrc81
-rw-r--r--sc/source/ui/dbgui/pivot.src328
-rw-r--r--sc/source/ui/dbgui/pvfundlg.cxx784
-rw-r--r--sc/source/ui/dbgui/pvfundlg.hrc83
-rw-r--r--sc/source/ui/dbgui/pvfundlg.src515
-rw-r--r--sc/source/ui/dbgui/pvglob.hxx42
-rw-r--r--sc/source/ui/dbgui/pvlaydlg.cxx1778
-rw-r--r--sc/source/ui/dbgui/scendlg.cxx243
-rw-r--r--sc/source/ui/dbgui/scendlg.hrc57
-rw-r--r--sc/source/ui/dbgui/scendlg.src195
-rw-r--r--sc/source/ui/dbgui/scuiasciiopt.cxx532
-rw-r--r--sc/source/ui/dbgui/scuiimoptdlg.cxx316
-rw-r--r--sc/source/ui/dbgui/sfiltdlg.cxx530
-rw-r--r--sc/source/ui/dbgui/sortdlg.cxx107
-rw-r--r--sc/source/ui/dbgui/subtdlg.cxx69
-rw-r--r--sc/source/ui/dbgui/tpsort.cxx1080
-rw-r--r--sc/source/ui/dbgui/tpsubt.cxx686
-rw-r--r--sc/source/ui/dbgui/validate.cxx1021
-rw-r--r--sc/source/ui/dbgui/validate.src407
-rw-r--r--sc/source/ui/docshell/arealink.cxx530
-rw-r--r--sc/source/ui/docshell/autostyl.cxx244
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx1493
-rw-r--r--sc/source/ui/docshell/dbdocimp.cxx720
-rw-r--r--sc/source/ui/docshell/docfunc.cxx4630
-rw-r--r--sc/source/ui/docshell/docsh.cxx2591
-rw-r--r--sc/source/ui/docshell/docsh2.cxx261
-rw-r--r--sc/source/ui/docshell/docsh3.cxx1391
-rw-r--r--sc/source/ui/docshell/docsh4.cxx2730
-rw-r--r--sc/source/ui/docshell/docsh5.cxx938
-rw-r--r--sc/source/ui/docshell/docsh6.cxx469
-rw-r--r--sc/source/ui/docshell/docsh7.cxx45
-rw-r--r--sc/source/ui/docshell/docsh8.cxx1098
-rw-r--r--sc/source/ui/docshell/docshimp.hxx57
-rw-r--r--sc/source/ui/docshell/editable.cxx162
-rw-r--r--sc/source/ui/docshell/externalrefmgr.cxx2378
-rw-r--r--sc/source/ui/docshell/hiranges.cxx53
-rw-r--r--sc/source/ui/docshell/impex.cxx2076
-rw-r--r--sc/source/ui/docshell/makefile.mk139
-rw-r--r--sc/source/ui/docshell/olinefun.cxx788
-rw-r--r--sc/source/ui/docshell/pagedata.cxx139
-rw-r--r--sc/source/ui/docshell/pntlock.cxx61
-rw-r--r--sc/source/ui/docshell/servobj.cxx273
-rw-r--r--sc/source/ui/docshell/sizedev.cxx77
-rw-r--r--sc/source/ui/docshell/tablink.cxx616
-rw-r--r--sc/source/ui/docshell/tpstat.cxx101
-rw-r--r--sc/source/ui/docshell/tpstat.hrc36
-rw-r--r--sc/source/ui/docshell/tpstat.src112
-rw-r--r--sc/source/ui/drawfunc/chartsh.cxx83
-rw-r--r--sc/source/ui/drawfunc/drawsh.cxx503
-rw-r--r--sc/source/ui/drawfunc/drawsh2.cxx399
-rw-r--r--sc/source/ui/drawfunc/drawsh4.cxx115
-rw-r--r--sc/source/ui/drawfunc/drawsh5.cxx760
-rw-r--r--sc/source/ui/drawfunc/drformsh.cxx83
-rw-r--r--sc/source/ui/drawfunc/drformsh.src248
-rw-r--r--sc/source/ui/drawfunc/drtxtob.cxx1044
-rw-r--r--sc/source/ui/drawfunc/drtxtob1.cxx156
-rw-r--r--sc/source/ui/drawfunc/drtxtob2.cxx299
-rw-r--r--sc/source/ui/drawfunc/fuconarc.cxx234
-rw-r--r--sc/source/ui/drawfunc/fuconcustomshape.cxx288
-rw-r--r--sc/source/ui/drawfunc/fuconpol.cxx355
-rw-r--r--sc/source/ui/drawfunc/fuconrec.cxx315
-rw-r--r--sc/source/ui/drawfunc/fuconstr.cxx335
-rw-r--r--sc/source/ui/drawfunc/fuconuno.cxx190
-rw-r--r--sc/source/ui/drawfunc/fudraw.cxx863
-rw-r--r--sc/source/ui/drawfunc/fuins1.cxx447
-rw-r--r--sc/source/ui/drawfunc/fuins2.cxx848
-rw-r--r--sc/source/ui/drawfunc/fumark.cxx290
-rw-r--r--sc/source/ui/drawfunc/fupoor.cxx385
-rw-r--r--sc/source/ui/drawfunc/fusel.cxx649
-rw-r--r--sc/source/ui/drawfunc/fusel2.cxx185
-rw-r--r--sc/source/ui/drawfunc/futext.cxx882
-rw-r--r--sc/source/ui/drawfunc/futext2.cxx307
-rw-r--r--sc/source/ui/drawfunc/futext3.cxx249
-rw-r--r--sc/source/ui/drawfunc/graphsh.cxx148
-rw-r--r--sc/source/ui/drawfunc/makefile.mk86
-rw-r--r--sc/source/ui/drawfunc/mediash.cxx143
-rw-r--r--sc/source/ui/drawfunc/objdraw.src1545
-rw-r--r--sc/source/ui/drawfunc/oleobjsh.cxx83
-rw-r--r--sc/source/ui/formdlg/dwfunctr.cxx1182
-rw-r--r--sc/source/ui/formdlg/dwfunctr.hrc37
-rw-r--r--sc/source/ui/formdlg/dwfunctr.src155
-rw-r--r--sc/source/ui/formdlg/formdata.cxx61
-rw-r--r--sc/source/ui/formdlg/formdlgs.src29
-rw-r--r--sc/source/ui/formdlg/formula.cxx668
-rw-r--r--sc/source/ui/formdlg/makefile.mk55
-rw-r--r--sc/source/ui/formdlg/privsplt.cxx422
-rw-r--r--sc/source/ui/inc/AccessibilityHints.hxx97
-rw-r--r--sc/source/ui/inc/AccessibleCell.hxx173
-rw-r--r--sc/source/ui/inc/AccessibleCellBase.hxx153
-rw-r--r--sc/source/ui/inc/AccessibleContextBase.hxx346
-rw-r--r--sc/source/ui/inc/AccessibleCsvControl.hxx666
-rw-r--r--sc/source/ui/inc/AccessibleDataPilotControl.hxx145
-rw-r--r--sc/source/ui/inc/AccessibleDocument.hxx328
-rw-r--r--sc/source/ui/inc/AccessibleDocumentBase.hxx50
-rw-r--r--sc/source/ui/inc/AccessibleDocumentPagePreview.hxx159
-rw-r--r--sc/source/ui/inc/AccessibleEditObject.hxx178
-rw-r--r--sc/source/ui/inc/AccessiblePageHeader.hxx111
-rw-r--r--sc/source/ui/inc/AccessiblePageHeaderArea.hxx138
-rw-r--r--sc/source/ui/inc/AccessiblePreviewCell.hxx121
-rw-r--r--sc/source/ui/inc/AccessiblePreviewHeaderCell.hxx152
-rw-r--r--sc/source/ui/inc/AccessiblePreviewTable.hxx182
-rw-r--r--sc/source/ui/inc/AccessibleSpreadsheet.hxx289
-rw-r--r--sc/source/ui/inc/AccessibleTableBase.hxx298
-rw-r--r--sc/source/ui/inc/AccessibleText.hxx359
-rw-r--r--sc/source/ui/inc/ChartRangeSelectionListener.hxx79
-rw-r--r--sc/source/ui/inc/DrawModelBroadcaster.hxx59
-rw-r--r--sc/source/ui/inc/IAnyRefDialog.hxx64
-rw-r--r--sc/source/ui/inc/ScDevChart.hxx84
-rw-r--r--sc/source/ui/inc/acredlin.hrc75
-rw-r--r--sc/source/ui/inc/acredlin.hxx264
-rw-r--r--sc/source/ui/inc/anyrefdg.hxx281
-rw-r--r--sc/source/ui/inc/areasave.hxx84
-rw-r--r--sc/source/ui/inc/areasdlg.hxx108
-rw-r--r--sc/source/ui/inc/asciiopt.hxx202
-rw-r--r--sc/source/ui/inc/attrdlg.hrc51
-rw-r--r--sc/source/ui/inc/attrdlg.hxx69
-rw-r--r--sc/source/ui/inc/auditsh.hxx59
-rw-r--r--sc/source/ui/inc/autofmt.hxx210
-rw-r--r--sc/source/ui/inc/autostyl.hxx68
-rw-r--r--sc/source/ui/inc/cbutton.hxx84
-rw-r--r--sc/source/ui/inc/cellsh.hxx106
-rw-r--r--sc/source/ui/inc/chartsh.hxx52
-rw-r--r--sc/source/ui/inc/client.hxx64
-rw-r--r--sc/source/ui/inc/colrowba.hxx110
-rw-r--r--sc/source/ui/inc/condfrmt.hrc73
-rw-r--r--sc/source/ui/inc/condfrmt.hxx155
-rw-r--r--sc/source/ui/inc/conflictsdlg.hrc43
-rw-r--r--sc/source/ui/inc/conflictsdlg.hxx216
-rw-r--r--sc/source/ui/inc/consdlg.hxx136
-rw-r--r--sc/source/ui/inc/content.hxx169
-rw-r--r--sc/source/ui/inc/corodlg.hxx81
-rw-r--r--sc/source/ui/inc/crdlg.hxx66
-rw-r--r--sc/source/ui/inc/crnrdlg.hrc46
-rw-r--r--sc/source/ui/inc/crnrdlg.hxx112
-rw-r--r--sc/source/ui/inc/csvcontrol.hxx432
-rw-r--r--sc/source/ui/inc/csvgrid.hxx358
-rw-r--r--sc/source/ui/inc/csvruler.hxx199
-rw-r--r--sc/source/ui/inc/csvsplits.hxx103
-rw-r--r--sc/source/ui/inc/csvtablebox.hxx161
-rw-r--r--sc/source/ui/inc/dapidata.hxx72
-rw-r--r--sc/source/ui/inc/dapitype.hxx95
-rw-r--r--sc/source/ui/inc/dbdocfun.hxx124
-rw-r--r--sc/source/ui/inc/dbfunc.hxx134
-rw-r--r--sc/source/ui/inc/dbnamdlg.hrc51
-rw-r--r--sc/source/ui/inc/dbnamdlg.hxx127
-rw-r--r--sc/source/ui/inc/delcldlg.hxx64
-rw-r--r--sc/source/ui/inc/delcodlg.hxx74
-rw-r--r--sc/source/ui/inc/docfunc.hxx185
-rw-r--r--sc/source/ui/inc/docsh.hxx456
-rw-r--r--sc/source/ui/inc/dpcontrol.hrc40
-rw-r--r--sc/source/ui/inc/dpcontrol.hxx363
-rw-r--r--sc/source/ui/inc/dpgroupdlg.hxx172
-rw-r--r--sc/source/ui/inc/drawsh.hxx94
-rw-r--r--sc/source/ui/inc/drawutil.hxx51
-rw-r--r--sc/source/ui/inc/drawview.hxx151
-rw-r--r--sc/source/ui/inc/drformsh.hxx55
-rw-r--r--sc/source/ui/inc/drtxtob.hxx89
-rw-r--r--sc/source/ui/inc/drwtrans.hxx110
-rw-r--r--sc/source/ui/inc/dwfunctr.hxx158
-rw-r--r--sc/source/ui/inc/editable.hxx86
-rw-r--r--sc/source/ui/inc/editfield.hxx50
-rw-r--r--sc/source/ui/inc/editsh.hxx86
-rw-r--r--sc/source/ui/inc/expftext.hxx45
-rw-r--r--sc/source/ui/inc/fieldwnd.hxx221
-rw-r--r--sc/source/ui/inc/filldlg.hxx144
-rw-r--r--sc/source/ui/inc/filtdlg.hxx266
-rw-r--r--sc/source/ui/inc/filter.hrc82
-rw-r--r--sc/source/ui/inc/foptmgr.hxx121
-rw-r--r--sc/source/ui/inc/formatsh.hxx79
-rw-r--r--sc/source/ui/inc/formdata.hxx66
-rw-r--r--sc/source/ui/inc/formula.hxx138
-rw-r--r--sc/source/ui/inc/fuconarc.hxx62
-rw-r--r--sc/source/ui/inc/fuconcustomshape.hxx61
-rw-r--r--sc/source/ui/inc/fuconpol.hxx63
-rw-r--r--sc/source/ui/inc/fuconrec.hxx62
-rw-r--r--sc/source/ui/inc/fuconstr.hxx67
-rw-r--r--sc/source/ui/inc/fuconuno.hxx67
-rw-r--r--sc/source/ui/inc/fudraw.hxx77
-rw-r--r--sc/source/ui/inc/fuedipo.hxx60
-rw-r--r--sc/source/ui/inc/fuinsert.hxx85
-rw-r--r--sc/source/ui/inc/fumark.hxx74
-rw-r--r--sc/source/ui/inc/funcpage.hxx128
-rw-r--r--sc/source/ui/inc/funcutl.hxx198
-rw-r--r--sc/source/ui/inc/fupoor.hxx136
-rw-r--r--sc/source/ui/inc/fusel.hxx81
-rw-r--r--sc/source/ui/inc/futext.hxx81
-rw-r--r--sc/source/ui/inc/graphsh.hxx57
-rw-r--r--sc/source/ui/inc/gridmerg.hxx64
-rw-r--r--sc/source/ui/inc/gridwin.hxx406
-rw-r--r--sc/source/ui/inc/groupdlg.hxx61
-rw-r--r--sc/source/ui/inc/hdrcont.hxx141
-rw-r--r--sc/source/ui/inc/hfedtdlg.hxx56
-rw-r--r--sc/source/ui/inc/highred.hrc71
-rw-r--r--sc/source/ui/inc/highred.hxx124
-rw-r--r--sc/source/ui/inc/hintwin.hxx54
-rw-r--r--sc/source/ui/inc/hiranges.hxx64
-rw-r--r--sc/source/ui/inc/imoptdlg.hxx108
-rw-r--r--sc/source/ui/inc/impex.hxx191
-rw-r--r--sc/source/ui/inc/inputhdl.hxx292
-rw-r--r--sc/source/ui/inc/inputwin.hxx228
-rw-r--r--sc/source/ui/inc/inscldlg.hxx62
-rw-r--r--sc/source/ui/inc/inscodlg.hxx122
-rw-r--r--sc/source/ui/inc/instbdlg.hrc52
-rw-r--r--sc/source/ui/inc/instbdlg.hxx136
-rw-r--r--sc/source/ui/inc/invmerge.hxx61
-rw-r--r--sc/source/ui/inc/lbseldlg.hxx70
-rw-r--r--sc/source/ui/inc/linkarea.hrc42
-rw-r--r--sc/source/ui/inc/linkarea.hxx106
-rw-r--r--sc/source/ui/inc/lnktrans.hxx53
-rw-r--r--sc/source/ui/inc/makefile.mk26
-rw-r--r--sc/source/ui/inc/mediash.hxx54
-rw-r--r--sc/source/ui/inc/miscdlgs.hrc183
-rw-r--r--sc/source/ui/inc/msgpool.hxx78
-rw-r--r--sc/source/ui/inc/mtrindlg.hxx76
-rw-r--r--sc/source/ui/inc/mvtabdlg.hxx79
-rw-r--r--sc/source/ui/inc/namecrea.hxx59
-rw-r--r--sc/source/ui/inc/namedlg.hrc52
-rw-r--r--sc/source/ui/inc/namedlg.hxx123
-rw-r--r--sc/source/ui/inc/namepast.hxx62
-rw-r--r--sc/source/ui/inc/navcitem.hxx55
-rw-r--r--sc/source/ui/inc/navipi.hxx366
-rw-r--r--sc/source/ui/inc/navsett.hxx59
-rw-r--r--sc/source/ui/inc/notemark.hxx80
-rw-r--r--sc/source/ui/inc/oleobjsh.hxx52
-rw-r--r--sc/source/ui/inc/olinefun.hxx68
-rw-r--r--sc/source/ui/inc/olinewin.hxx244
-rw-r--r--sc/source/ui/inc/opredlin.hrc38
-rw-r--r--sc/source/ui/inc/opredlin.hxx86
-rw-r--r--sc/source/ui/inc/optdlg.hrc191
-rw-r--r--sc/source/ui/inc/optload.hrc40
-rw-r--r--sc/source/ui/inc/optload.hxx68
-rw-r--r--sc/source/ui/inc/optsolver.hrc98
-rw-r--r--sc/source/ui/inc/optsolver.hxx264
-rw-r--r--sc/source/ui/inc/output.hxx263
-rw-r--r--sc/source/ui/inc/pagedata.hxx95
-rw-r--r--sc/source/ui/inc/parawin.hxx171
-rw-r--r--sc/source/ui/inc/pfiltdlg.hxx145
-rw-r--r--sc/source/ui/inc/pfuncache.hxx125
-rw-r--r--sc/source/ui/inc/pgbrksh.hxx53
-rw-r--r--sc/source/ui/inc/pivotsh.hxx61
-rw-r--r--sc/source/ui/inc/pntlock.hxx67
-rw-r--r--sc/source/ui/inc/popmenu.hxx53
-rw-r--r--sc/source/ui/inc/preview.hxx168
-rw-r--r--sc/source/ui/inc/prevloc.hxx157
-rw-r--r--sc/source/ui/inc/prevwsh.hxx137
-rw-r--r--sc/source/ui/inc/printfun.hxx368
-rw-r--r--sc/source/ui/inc/privsplt.hxx86
-rw-r--r--sc/source/ui/inc/protectiondlg.hrc44
-rw-r--r--sc/source/ui/inc/protectiondlg.hxx82
-rw-r--r--sc/source/ui/inc/pvfundlg.hxx244
-rw-r--r--sc/source/ui/inc/pvlaydlg.hxx238
-rw-r--r--sc/source/ui/inc/redcom.hxx70
-rw-r--r--sc/source/ui/inc/reffact.hxx122
-rw-r--r--sc/source/ui/inc/refundo.hxx69
-rw-r--r--sc/source/ui/inc/retypepassdlg.hrc71
-rw-r--r--sc/source/ui/inc/retypepassdlg.hxx174
-rw-r--r--sc/source/ui/inc/rfindlst.hxx75
-rw-r--r--sc/source/ui/inc/scendlg.hxx80
-rw-r--r--sc/source/ui/inc/scui_def.hxx57
-rw-r--r--sc/source/ui/inc/scuiasciiopt.hxx135
-rw-r--r--sc/source/ui/inc/scuiautofmt.hxx88
-rw-r--r--sc/source/ui/inc/scuiimoptdlg.hxx78
-rw-r--r--sc/source/ui/inc/scuitphfedit.hxx165
-rw-r--r--sc/source/ui/inc/select.hxx127
-rw-r--r--sc/source/ui/inc/selectionstate.hxx79
-rw-r--r--sc/source/ui/inc/seltrans.hxx81
-rw-r--r--sc/source/ui/inc/servobj.hxx76
-rw-r--r--sc/source/ui/inc/sharedocdlg.hrc44
-rw-r--r--sc/source/ui/inc/sharedocdlg.hxx76
-rw-r--r--sc/source/ui/inc/shtabdlg.hxx75
-rw-r--r--sc/source/ui/inc/simpref.hrc37
-rw-r--r--sc/source/ui/inc/simpref.hxx122
-rw-r--r--sc/source/ui/inc/sizedev.hxx55
-rw-r--r--sc/source/ui/inc/solveroptions.hrc47
-rw-r--r--sc/source/ui/inc/solveroptions.hxx123
-rw-r--r--sc/source/ui/inc/solverutil.hxx50
-rw-r--r--sc/source/ui/inc/solvrdlg.hrc46
-rw-r--r--sc/source/ui/inc/solvrdlg.hxx109
-rw-r--r--sc/source/ui/inc/sortdlg.hrc90
-rw-r--r--sc/source/ui/inc/sortdlg.hxx87
-rw-r--r--sc/source/ui/inc/spelldialog.hxx103
-rw-r--r--sc/source/ui/inc/spelleng.hxx169
-rw-r--r--sc/source/ui/inc/spellparam.hxx87
-rw-r--r--sc/source/ui/inc/strindlg.hxx66
-rw-r--r--sc/source/ui/inc/styledlg.hrc39
-rw-r--r--sc/source/ui/inc/styledlg.hxx59
-rw-r--r--sc/source/ui/inc/submenu.hrc68
-rw-r--r--sc/source/ui/inc/subtdlg.hrc64
-rw-r--r--sc/source/ui/inc/subtdlg.hxx56
-rw-r--r--sc/source/ui/inc/tabcont.hxx87
-rw-r--r--sc/source/ui/inc/tabopdlg.hrc50
-rw-r--r--sc/source/ui/inc/tabopdlg.hxx114
-rw-r--r--sc/source/ui/inc/tabpages.hxx83
-rw-r--r--sc/source/ui/inc/tabpopsh.hxx53
-rw-r--r--sc/source/ui/inc/tabsplit.hxx60
-rw-r--r--sc/source/ui/inc/tabview.hxx533
-rw-r--r--sc/source/ui/inc/tabvwsh.hxx443
-rw-r--r--sc/source/ui/inc/target.hxx52
-rw-r--r--sc/source/ui/inc/tbinsert.hrc32
-rw-r--r--sc/source/ui/inc/tbinsert.hxx88
-rw-r--r--sc/source/ui/inc/tbzoomsliderctrl.hxx87
-rw-r--r--sc/source/ui/inc/teamdlg.hxx53
-rw-r--r--sc/source/ui/inc/textdlgs.hxx72
-rw-r--r--sc/source/ui/inc/tpcalc.hxx101
-rw-r--r--sc/source/ui/inc/tphf.hxx103
-rw-r--r--sc/source/ui/inc/tphfedit.hxx239
-rw-r--r--sc/source/ui/inc/tpprint.hxx56
-rw-r--r--sc/source/ui/inc/tpsort.hxx222
-rw-r--r--sc/source/ui/inc/tpstat.hxx65
-rw-r--r--sc/source/ui/inc/tpsubt.hxx188
-rw-r--r--sc/source/ui/inc/tptable.hxx115
-rw-r--r--sc/source/ui/inc/tpusrlst.hxx117
-rw-r--r--sc/source/ui/inc/tpview.hxx171
-rw-r--r--sc/source/ui/inc/transobj.hxx115
-rw-r--r--sc/source/ui/inc/ui_pch.hxx333
-rw-r--r--sc/source/ui/inc/uiitems.hxx378
-rw-r--r--sc/source/ui/inc/undobase.hxx171
-rw-r--r--sc/source/ui/inc/undoblk.hxx988
-rw-r--r--sc/source/ui/inc/undocell.hxx366
-rw-r--r--sc/source/ui/inc/undodat.hxx535
-rw-r--r--sc/source/ui/inc/undodraw.hxx63
-rw-r--r--sc/source/ui/inc/undoolk.hxx44
-rw-r--r--sc/source/ui/inc/undostyl.hxx117
-rw-r--r--sc/source/ui/inc/undotab.hxx515
-rw-r--r--sc/source/ui/inc/undoutil.hxx66
-rw-r--r--sc/source/ui/inc/validate.hrc88
-rw-r--r--sc/source/ui/inc/validate.hxx347
-rw-r--r--sc/source/ui/inc/viewdata.hxx539
-rw-r--r--sc/source/ui/inc/viewfunc.hxx364
-rw-r--r--sc/source/ui/inc/viewutil.hxx116
-rw-r--r--sc/source/ui/inc/warnbox.hxx74
-rw-r--r--sc/source/ui/miscdlgs/acredlin.cxx2139
-rw-r--r--sc/source/ui/miscdlgs/acredlin.src259
-rw-r--r--sc/source/ui/miscdlgs/anyrefdg.cxx1012
-rw-r--r--sc/source/ui/miscdlgs/autofmt.cxx983
-rw-r--r--sc/source/ui/miscdlgs/conflictsdlg.cxx894
-rw-r--r--sc/source/ui/miscdlgs/conflictsdlg.src109
-rw-r--r--sc/source/ui/miscdlgs/crdlg.cxx87
-rw-r--r--sc/source/ui/miscdlgs/crnrdlg.cxx1172
-rw-r--r--sc/source/ui/miscdlgs/delcldlg.cxx120
-rw-r--r--sc/source/ui/miscdlgs/delcodlg.cxx180
-rw-r--r--sc/source/ui/miscdlgs/filldlg.cxx375
-rw-r--r--sc/source/ui/miscdlgs/groupdlg.cxx83
-rw-r--r--sc/source/ui/miscdlgs/highred.cxx301
-rw-r--r--sc/source/ui/miscdlgs/highred.src133
-rw-r--r--sc/source/ui/miscdlgs/inscldlg.cxx120
-rw-r--r--sc/source/ui/miscdlgs/inscodlg.cxx372
-rw-r--r--sc/source/ui/miscdlgs/instbdlg.cxx433
-rw-r--r--sc/source/ui/miscdlgs/instbdlg.src184
-rw-r--r--sc/source/ui/miscdlgs/lbseldlg.cxx108
-rw-r--r--sc/source/ui/miscdlgs/linkarea.cxx366
-rw-r--r--sc/source/ui/miscdlgs/linkarea.src120
-rw-r--r--sc/source/ui/miscdlgs/makefile.mk128
-rw-r--r--sc/source/ui/miscdlgs/mtrindlg.cxx186
-rw-r--r--sc/source/ui/miscdlgs/mvtabdlg.cxx205
-rw-r--r--sc/source/ui/miscdlgs/namecrea.cxx79
-rw-r--r--sc/source/ui/miscdlgs/namepast.cxx133
-rw-r--r--sc/source/ui/miscdlgs/optsolver.cxx1066
-rw-r--r--sc/source/ui/miscdlgs/protectiondlg.cxx161
-rw-r--r--sc/source/ui/miscdlgs/protectiondlg.src127
-rw-r--r--sc/source/ui/miscdlgs/redcom.cxx186
-rw-r--r--sc/source/ui/miscdlgs/retypepassdlg.cxx544
-rw-r--r--sc/source/ui/miscdlgs/retypepassdlg.src313
-rw-r--r--sc/source/ui/miscdlgs/scuiautofmt.cxx476
-rw-r--r--sc/source/ui/miscdlgs/sharedocdlg.cxx235
-rw-r--r--sc/source/ui/miscdlgs/sharedocdlg.src110
-rw-r--r--sc/source/ui/miscdlgs/shtabdlg.cxx111
-rw-r--r--sc/source/ui/miscdlgs/simpref.cxx257
-rw-r--r--sc/source/ui/miscdlgs/solveroptions.cxx492
-rw-r--r--sc/source/ui/miscdlgs/solverutil.cxx229
-rw-r--r--sc/source/ui/miscdlgs/solvrdlg.cxx313
-rw-r--r--sc/source/ui/miscdlgs/strindlg.cxx111
-rw-r--r--sc/source/ui/miscdlgs/tabopdlg.cxx371
-rw-r--r--sc/source/ui/miscdlgs/teamdlg.cxx116
-rw-r--r--sc/source/ui/miscdlgs/textdlgs.cxx140
-rw-r--r--sc/source/ui/miscdlgs/warnbox.cxx91
-rw-r--r--sc/source/ui/namedlg/makefile.mk51
-rw-r--r--sc/source/ui/namedlg/namedlg.cxx649
-rw-r--r--sc/source/ui/navipi/content.cxx1526
-rw-r--r--sc/source/ui/navipi/makefile.mk57
-rw-r--r--sc/source/ui/navipi/navcitem.cxx127
-rw-r--r--sc/source/ui/navipi/navipi.cxx1565
-rw-r--r--sc/source/ui/navipi/navipi.hrc63
-rw-r--r--sc/source/ui/navipi/navipi.src414
-rw-r--r--sc/source/ui/navipi/scenwnd.cxx309
-rw-r--r--sc/source/ui/optdlg/makefile.mk59
-rw-r--r--sc/source/ui/optdlg/opredlin.cxx289
-rw-r--r--sc/source/ui/optdlg/tpcalc.cxx268
-rw-r--r--sc/source/ui/optdlg/tpprint.cxx144
-rw-r--r--sc/source/ui/optdlg/tpusrlst.cxx839
-rw-r--r--sc/source/ui/optdlg/tpview.cxx745
-rw-r--r--sc/source/ui/pagedlg/areasdlg.cxx906
-rw-r--r--sc/source/ui/pagedlg/hfedtdlg.cxx186
-rw-r--r--sc/source/ui/pagedlg/hfedtdlg.hrc64
-rw-r--r--sc/source/ui/pagedlg/hfedtdlg.src829
-rw-r--r--sc/source/ui/pagedlg/makefile.mk74
-rw-r--r--sc/source/ui/pagedlg/pagedlg.hrc103
-rw-r--r--sc/source/ui/pagedlg/pagedlg.src416
-rw-r--r--sc/source/ui/pagedlg/scuitphfedit.cxx1001
-rw-r--r--sc/source/ui/pagedlg/tphf.cxx331
-rw-r--r--sc/source/ui/pagedlg/tphf.src64
-rw-r--r--sc/source/ui/pagedlg/tphfedit.cxx874
-rw-r--r--sc/source/ui/pagedlg/tptable.cxx570
-rw-r--r--sc/source/ui/src/attrdlg.src203
-rw-r--r--sc/source/ui/src/autofmt.src271
-rw-r--r--sc/source/ui/src/condfrmt.src398
-rw-r--r--sc/source/ui/src/crnrdlg.src166
-rw-r--r--sc/source/ui/src/dbnamdlg.src198
-rw-r--r--sc/source/ui/src/filter.src820
-rw-r--r--sc/source/ui/src/globstr.src1726
-rw-r--r--sc/source/ui/src/hdrcont.src256
-rw-r--r--sc/source/ui/src/makefile.mk77
-rw-r--r--sc/source/ui/src/miscdlgs.src1390
-rw-r--r--sc/source/ui/src/namedlg.src165
-rw-r--r--sc/source/ui/src/opredlin.src136
-rw-r--r--sc/source/ui/src/optdlg.src716
-rw-r--r--sc/source/ui/src/optsolver.src540
-rw-r--r--sc/source/ui/src/popup.src529
-rw-r--r--sc/source/ui/src/pseudo.src62
-rw-r--r--sc/source/ui/src/sc.src49
-rw-r--r--sc/source/ui/src/scerrors.src170
-rw-r--r--sc/source/ui/src/scfuncs.src9043
-rw-r--r--sc/source/ui/src/scstring.src763
-rw-r--r--sc/source/ui/src/scwarngs.src83
-rw-r--r--sc/source/ui/src/simpref.src105
-rw-r--r--sc/source/ui/src/solveroptions.src189
-rw-r--r--sc/source/ui/src/solvrdlg.src135
-rw-r--r--sc/source/ui/src/sortdlg.src348
-rw-r--r--sc/source/ui/src/subtdlg.src291
-rw-r--r--sc/source/ui/src/tabopdlg.src142
-rw-r--r--sc/source/ui/src/textdlgs.src197
-rw-r--r--sc/source/ui/src/toolbox.src299
-rw-r--r--sc/source/ui/styleui/makefile.mk57
-rw-r--r--sc/source/ui/styleui/scstyles.src70
-rw-r--r--sc/source/ui/styleui/styledlg.cxx234
-rw-r--r--sc/source/ui/styleui/styledlg.src172
-rw-r--r--sc/source/ui/styleui/template.curbin0 -> 326 bytes
-rw-r--r--sc/source/ui/undo/areasave.cxx230
-rw-r--r--sc/source/ui/undo/makefile.mk82
-rw-r--r--sc/source/ui/undo/refundo.cxx214
-rw-r--r--sc/source/ui/undo/target.cxx45
-rw-r--r--sc/source/ui/undo/undobase.cxx539
-rw-r--r--sc/source/ui/undo/undoblk.cxx2253
-rw-r--r--sc/source/ui/undo/undoblk2.cxx215
-rw-r--r--sc/source/ui/undo/undoblk3.cxx2124
-rw-r--r--sc/source/ui/undo/undocell.cxx1127
-rw-r--r--sc/source/ui/undo/undodat.cxx2190
-rw-r--r--sc/source/ui/undo/undodraw.cxx269
-rw-r--r--sc/source/ui/undo/undoolk.cxx102
-rw-r--r--sc/source/ui/undo/undostyl.cxx307
-rw-r--r--sc/source/ui/undo/undotab.cxx1661
-rw-r--r--sc/source/ui/undo/undoutil.cxx133
-rw-r--r--sc/source/ui/unoobj/ChartRangeSelectionListener.cxx95
-rw-r--r--sc/source/ui/unoobj/addruno.cxx315
-rw-r--r--sc/source/ui/unoobj/afmtuno.cxx882
-rw-r--r--sc/source/ui/unoobj/appluno.cxx1086
-rw-r--r--sc/source/ui/unoobj/celllistsource.cxx449
-rw-r--r--sc/source/ui/unoobj/celllistsource.hxx175
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx9815
-rw-r--r--sc/source/ui/unoobj/cellvaluebinding.cxx663
-rw-r--r--sc/source/ui/unoobj/cellvaluebinding.hxx171
-rw-r--r--sc/source/ui/unoobj/chart2uno.cxx3911
-rw-r--r--sc/source/ui/unoobj/chartuno.cxx692
-rw-r--r--sc/source/ui/unoobj/confuno.cxx468
-rw-r--r--sc/source/ui/unoobj/convuno.cxx64
-rw-r--r--sc/source/ui/unoobj/cursuno.cxx510
-rw-r--r--sc/source/ui/unoobj/dapiuno.cxx3549
-rw-r--r--sc/source/ui/unoobj/datauno.cxx2371
-rw-r--r--sc/source/ui/unoobj/defltuno.cxx380
-rw-r--r--sc/source/ui/unoobj/detreg.cxx111
-rw-r--r--sc/source/ui/unoobj/dispuno.cxx418
-rw-r--r--sc/source/ui/unoobj/docuno.cxx3661
-rw-r--r--sc/source/ui/unoobj/drdefuno.cxx83
-rw-r--r--sc/source/ui/unoobj/editsrc.cxx373
-rw-r--r--sc/source/ui/unoobj/fielduno.cxx1549
-rw-r--r--sc/source/ui/unoobj/filtuno.cxx288
-rw-r--r--sc/source/ui/unoobj/fmtuno.cxx1066
-rw-r--r--sc/source/ui/unoobj/forbiuno.cxx93
-rw-r--r--sc/source/ui/unoobj/funcuno.cxx704
-rw-r--r--sc/source/ui/unoobj/linkuno.cxx1817
-rw-r--r--sc/source/ui/unoobj/listenercalls.cxx89
-rw-r--r--sc/source/ui/unoobj/makefile.mk119
-rw-r--r--sc/source/ui/unoobj/miscuno.cxx424
-rw-r--r--sc/source/ui/unoobj/nameuno.cxx1131
-rw-r--r--sc/source/ui/unoobj/notesuno.cxx729
-rw-r--r--sc/source/ui/unoobj/optuno.cxx237
-rw-r--r--sc/source/ui/unoobj/pageuno.cxx78
-rw-r--r--sc/source/ui/unoobj/scdetect.cxx893
-rw-r--r--sc/source/ui/unoobj/scdetect.hxx95
-rw-r--r--sc/source/ui/unoobj/servuno.cxx475
-rw-r--r--sc/source/ui/unoobj/shapeuno.cxx1521
-rw-r--r--sc/source/ui/unoobj/srchuno.cxx276
-rw-r--r--sc/source/ui/unoobj/styleuno.cxx2132
-rw-r--r--sc/source/ui/unoobj/targuno.cxx318
-rw-r--r--sc/source/ui/unoobj/textuno.cxx1152
-rw-r--r--sc/source/ui/unoobj/tokenuno.cxx465
-rw-r--r--sc/source/ui/unoobj/unodoc.cxx69
-rw-r--r--sc/source/ui/unoobj/unoguard.cxx47
-rw-r--r--sc/source/ui/unoobj/unoreflist.cxx73
-rw-r--r--sc/source/ui/unoobj/viewuno.cxx2199
-rw-r--r--sc/source/ui/unoobj/warnpassword.cxx95
-rw-r--r--sc/source/ui/vba/excelvbahelper.cxx219
-rw-r--r--sc/source/ui/vba/excelvbahelper.hxx59
-rw-r--r--sc/source/ui/vba/helperdecl.hxx53
-rw-r--r--sc/source/ui/vba/makefile.mk119
-rw-r--r--sc/source/ui/vba/service.cxx130
-rw-r--r--sc/source/ui/vba/testvba/README37
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/ApplicationRunTest.xlsbin0 -> 25088 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/AutoFilter.xlsbin0 -> 54272 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/CalcFont.xlsbin0 -> 73728 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/CalcZoom.xlsbin0 -> 62976 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/FinancialFuncTests.xlsbin0 -> 71168 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/FinancialFuncs.xlsbin0 -> 47104 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/MiscOperatorTests.xlsbin0 -> 66048 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/MiscRangeTests.xlsbin0 -> 126976 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/PageBreaks.xlsbin0 -> 63488 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Ranges-2.xlsbin0 -> 2209280 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Ranges-3.xlsbin0 -> 54784 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Ranges.xlsbin0 -> 2236416 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Shapes.xlsbin0 -> 74240 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/StrConv-test.xlsbin0 -> 65024 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Template.xlsbin0 -> 65024 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/TestAddress.xlsbin0 -> 84480 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/TestCalc_Rangetest.xlsbin0 -> 67584 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/TestCalc_Rangetest2.xlsbin0 -> 71680 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/TestIntersection.xlsbin0 -> 81408 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/TestUnion.xlsbin0 -> 72192 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/VariantTest.xlsbin0 -> 68608 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/Window.xlsbin0 -> 87040 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/bytearraystring.xlsbin0 -> 58880 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/dateserial.xlsbin0 -> 57344 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/datevalue.xlsbin0 -> 61952 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/format.xlsbin0 -> 102400 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/TestAddress.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/excel/TestCalc_Rangetest2.log64
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/format.log36
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/CalcFont.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/CalcZoom.log18
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/FinancialFuncTests.log31
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/MiscOperatorTests.log30
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/PageBreaks.log10
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Shapes.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/StrConv-test.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Template.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/TestAddress.log67
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/TestCalc_Rangetest2.log65
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/TestIntersection.log26
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/TestUnion.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/VariantTest.log47
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/Window.log46
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/bytearraystring.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/dateserial.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/datevalue.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/format.log36
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/pagesetup.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/partition.log11
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/range-4.log16
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/replace.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/stringplusdouble.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/unix/window2.log41
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/CalcFont.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/MiscOperatorTests.log29
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/PageBreaks.log10
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Shapes.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/StrConv-test.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Template.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/TestAddress.log67
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/TestCalc_Rangetest2.log65
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/TestIntersection.log26
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/TestUnion.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/VariantTest.log47
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/Window.log46
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/bytearraystring.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/dateserial.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/datevalue.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/format.log36
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/pagesetup.log87
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/partition.log11
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/range-4.log16
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/replace.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/stringplusdouble.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/logs/win/window2.log41
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/notwork/error.xlsbin0 -> 38400 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/notwork/imagecontrols.xlsbin0 -> 2415104 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/notwork/keyword.xlsbin0 -> 50688 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/notwork/objectmodule.xlsbin0 -> 62464 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/notwork/stringtodouble.odsbin0 -> 13260 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/partition.xlsbin0 -> 65536 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/range-4.xlsbin0 -> 2192384 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/replace.xlsbin0 -> 64512 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/stringplusdouble.xlsbin0 -> 75264 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments-ooo-build/window2.xlsbin0 -> 72192 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/ApplicationRunTest.xlsbin0 -> 25088 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/AutoFilter.xlsbin0 -> 54272 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/CalcFont.xlsbin0 -> 73728 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/FinancialFuncs.xlsbin0 -> 47104 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/MiscRangeTests.xlsbin0 -> 126976 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/PageBreaks.xlsbin0 -> 63488 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/Ranges-2.xlsbin0 -> 2209280 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/Ranges-3.xlsbin0 -> 54784 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/Ranges.xlsbin0 -> 2236416 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/Shapes.xlsbin0 -> 74240 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/StrConv-test.xlsbin0 -> 65024 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/Template.xlsbin0 -> 65024 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/TestAddress.xlsbin0 -> 84480 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest.xlsbin0 -> 67584 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/TestCalc_Rangetest2.xlsbin0 -> 71680 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/TestIntersection.xlsbin0 -> 81408 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/TestUnion.xlsbin0 -> 72192 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/Window.xlsbin0 -> 87040 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/bytearraystring.xlsbin0 -> 58880 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/dateserial.xlsbin0 -> 57344 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/datevalue.xlsbin0 -> 61952 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/format.xlsbin0 -> 102400 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestAddress.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/excel/TestCalc_Rangetest2.log64
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/CalcFont.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/PageBreaks.log10
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Shapes.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/StrConv-test.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Template.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestAddress.log67
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestCalc_Rangetest2.log65
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestIntersection.log26
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/TestUnion.log17
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/Window.log46
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/bytearraystring.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/dateserial.log9
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/datevalue.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/format.log36
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/pagesetup.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/partition.log11
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/range-4.log16
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/replace.log14
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/stringplusdouble.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/unix/window2.log41
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/AutoFilter.log20
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/MiscRangeTests.log45
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-2.log68
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges-3.log8
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/Ranges.log280
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/Shapes.log77
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/TestAddress.log62
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest.log60
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/TestCalc_Rangetest2.log65
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/pagesetup.log87
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/logs/win/replace.log14
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/pagesetup.xlsbin0 -> 72704 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/partition.xlsbin0 -> 65536 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/range-4.xlsbin0 -> 2192384 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/replace.xlsbin0 -> 64512 bytes
-rw-r--r--sc/source/ui/vba/testvba/TestDocuments/stringplusdouble.xlsbin0 -> 75264 bytes
-rwxr-xr-xsc/source/ui/vba/testvba/TestDocuments/window2.xlsbin0 -> 72192 bytes
-rw-r--r--sc/source/ui/vba/testvba/launchTest.pl45
-rw-r--r--sc/source/ui/vba/testvba/makefile.mk69
-rw-r--r--sc/source/ui/vba/testvba/runTests.pl121
-rw-r--r--sc/source/ui/vba/testvba/testResult.pl171
-rwxr-xr-xsc/source/ui/vba/testvba/testResults.pl163
-rwxr-xr-xsc/source/ui/vba/testvba/testclientbin0 -> 39390 bytes
-rw-r--r--sc/source/ui/vba/testvba/testvba.cxx309
-rwxr-xr-xsc/source/ui/vba/testvba/timestampsClean.pl73
-rw-r--r--sc/source/ui/vba/vbaapplication.cxx1175
-rw-r--r--sc/source/ui/vba/vbaapplication.hxx106
-rw-r--r--sc/source/ui/vba/vbaassistant.cxx132
-rw-r--r--sc/source/ui/vba/vbaassistant.hxx70
-rw-r--r--sc/source/ui/vba/vbaaxes.cxx203
-rw-r--r--sc/source/ui/vba/vbaaxes.hxx51
-rw-r--r--sc/source/ui/vba/vbaaxis.cxx670
-rw-r--r--sc/source/ui/vba/vbaaxis.hxx98
-rw-r--r--sc/source/ui/vba/vbaaxistitle.cxx58
-rw-r--r--sc/source/ui/vba/vbaaxistitle.hxx44
-rw-r--r--sc/source/ui/vba/vbaborders.cxx574
-rw-r--r--sc/source/ui/vba/vbaborders.hxx76
-rw-r--r--sc/source/ui/vba/vbacharacters.cxx136
-rw-r--r--sc/source/ui/vba/vbacharacters.hxx75
-rw-r--r--sc/source/ui/vba/vbachart.cxx1253
-rw-r--r--sc/source/ui/vba/vbachart.hxx114
-rw-r--r--sc/source/ui/vba/vbachartobject.cxx210
-rw-r--r--sc/source/ui/vba/vbachartobject.hxx80
-rw-r--r--sc/source/ui/vba/vbachartobjects.cxx195
-rw-r--r--sc/source/ui/vba/vbachartobjects.hxx75
-rw-r--r--sc/source/ui/vba/vbacharts.cxx120
-rw-r--r--sc/source/ui/vba/vbacharts.hxx60
-rw-r--r--sc/source/ui/vba/vbacharttitle.cxx58
-rw-r--r--sc/source/ui/vba/vbacharttitle.hxx44
-rw-r--r--sc/source/ui/vba/vbacomment.cxx216
-rw-r--r--sc/source/ui/vba/vbacomment.hxx74
-rw-r--r--sc/source/ui/vba/vbacomments.cxx103
-rw-r--r--sc/source/ui/vba/vbacomments.hxx59
-rw-r--r--sc/source/ui/vba/vbacondition.cxx175
-rw-r--r--sc/source/ui/vba/vbacondition.hxx54
-rw-r--r--sc/source/ui/vba/vbadialog.cxx88
-rw-r--r--sc/source/ui/vba/vbadialog.hxx50
-rw-r--r--sc/source/ui/vba/vbadialogs.cxx68
-rw-r--r--sc/source/ui/vba/vbadialogs.hxx55
-rw-r--r--sc/source/ui/vba/vbafont.cxx493
-rw-r--r--sc/source/ui/vba/vbafont.hxx85
-rw-r--r--sc/source/ui/vba/vbaformat.cxx800
-rw-r--r--sc/source/ui/vba/vbaformat.hxx103
-rw-r--r--sc/source/ui/vba/vbaformatcondition.cxx176
-rw-r--r--sc/source/ui/vba/vbaformatcondition.hxx70
-rw-r--r--sc/source/ui/vba/vbaformatconditions.cxx301
-rw-r--r--sc/source/ui/vba/vbaformatconditions.hxx65
-rw-r--r--sc/source/ui/vba/vbaglobals.cxx275
-rw-r--r--sc/source/ui/vba/vbaglobals.hxx94
-rw-r--r--sc/source/ui/vba/vbahelper.cxx827
-rw-r--r--sc/source/ui/vba/vbahyperlink.cxx131
-rw-r--r--sc/source/ui/vba/vbahyperlink.hxx64
-rw-r--r--sc/source/ui/vba/vbainterior.cxx414
-rw-r--r--sc/source/ui/vba/vbainterior.hxx86
-rw-r--r--sc/source/ui/vba/vbaname.cxx268
-rw-r--r--sc/source/ui/vba/vbaname.hxx84
-rw-r--r--sc/source/ui/vba/vbanames.cxx211
-rw-r--r--sc/source/ui/vba/vbanames.hxx82
-rw-r--r--sc/source/ui/vba/vbaoleobject.cxx164
-rw-r--r--sc/source/ui/vba/vbaoleobject.hxx67
-rw-r--r--sc/source/ui/vba/vbaoleobjects.cxx185
-rw-r--r--sc/source/ui/vba/vbaoleobjects.hxx57
-rw-r--r--sc/source/ui/vba/vbaoutline.cxx65
-rw-r--r--sc/source/ui/vba/vbaoutline.hxx52
-rw-r--r--sc/source/ui/vba/vbapagebreak.cxx172
-rw-r--r--sc/source/ui/vba/vbapagebreak.hxx103
-rw-r--r--sc/source/ui/vba/vbapagebreaks.cxx327
-rw-r--r--sc/source/ui/vba/vbapagebreaks.hxx97
-rw-r--r--sc/source/ui/vba/vbapagesetup.cxx626
-rw-r--r--sc/source/ui/vba/vbapagesetup.hxx90
-rw-r--r--sc/source/ui/vba/vbapalette.cxx104
-rw-r--r--sc/source/ui/vba/vbapalette.hxx47
-rw-r--r--sc/source/ui/vba/vbapane.cxx222
-rw-r--r--sc/source/ui/vba/vbapane.hxx60
-rw-r--r--sc/source/ui/vba/vbapivotcache.cxx60
-rw-r--r--sc/source/ui/vba/vbapivotcache.hxx49
-rw-r--r--sc/source/ui/vba/vbapivottable.cxx63
-rw-r--r--sc/source/ui/vba/vbapivottable.hxx49
-rw-r--r--sc/source/ui/vba/vbapivottables.cxx94
-rw-r--r--sc/source/ui/vba/vbapivottables.hxx65
-rw-r--r--sc/source/ui/vba/vbapropvalue.cxx45
-rw-r--r--sc/source/ui/vba/vbapropvalue.hxx57
-rw-r--r--sc/source/ui/vba/vbarange.cxx5405
-rw-r--r--sc/source/ui/vba/vbarange.hxx282
-rw-r--r--sc/source/ui/vba/vbaseriescollection.cxx80
-rw-r--r--sc/source/ui/vba/vbaseriescollection.hxx54
-rw-r--r--sc/source/ui/vba/vbastyle.cxx186
-rw-r--r--sc/source/ui/vba/vbastyle.hxx96
-rw-r--r--sc/source/ui/vba/vbastyles.cxx182
-rw-r--r--sc/source/ui/vba/vbastyles.hxx57
-rw-r--r--sc/source/ui/vba/vbatextboxshape.cxx66
-rw-r--r--sc/source/ui/vba/vbatextboxshape.hxx50
-rw-r--r--sc/source/ui/vba/vbatextframe.cxx78
-rw-r--r--sc/source/ui/vba/vbatextframe.hxx49
-rw-r--r--sc/source/ui/vba/vbatitle.hxx163
-rw-r--r--sc/source/ui/vba/vbavalidation.cxx333
-rw-r--r--sc/source/ui/vba/vbavalidation.hxx71
-rw-r--r--sc/source/ui/vba/vbawindow.cxx845
-rw-r--r--sc/source/ui/vba/vbawindow.hxx121
-rw-r--r--sc/source/ui/vba/vbawindows.cxx260
-rw-r--r--sc/source/ui/vba/vbawindows.hxx64
-rw-r--r--sc/source/ui/vba/vbaworkbook.cxx384
-rw-r--r--sc/source/ui/vba/vbaworkbook.hxx81
-rw-r--r--sc/source/ui/vba/vbaworkbooks.cxx282
-rw-r--r--sc/source/ui/vba/vbaworkbooks.hxx71
-rw-r--r--sc/source/ui/vba/vbaworksheet.cxx971
-rw-r--r--sc/source/ui/vba/vbaworksheet.hxx148
-rw-r--r--sc/source/ui/vba/vbaworksheets.cxx437
-rw-r--r--sc/source/ui/vba/vbaworksheets.hxx79
-rw-r--r--sc/source/ui/vba/vbawsfunction.cxx171
-rw-r--r--sc/source/ui/vba/vbawsfunction.hxx58
-rw-r--r--sc/source/ui/view/auditsh.cxx155
-rw-r--r--sc/source/ui/view/cellsh.cxx981
-rw-r--r--sc/source/ui/view/cellsh1.cxx2206
-rw-r--r--sc/source/ui/view/cellsh2.cxx1432
-rw-r--r--sc/source/ui/view/cellsh3.cxx966
-rw-r--r--sc/source/ui/view/cellsh4.cxx382
-rw-r--r--sc/source/ui/view/colrowba.cxx417
-rw-r--r--sc/source/ui/view/dbfunc.cxx464
-rw-r--r--sc/source/ui/view/dbfunc2.cxx77
-rw-r--r--sc/source/ui/view/dbfunc3.cxx2298
-rw-r--r--sc/source/ui/view/dbfunc4.cxx102
-rw-r--r--sc/source/ui/view/drawattr.cxx82
-rw-r--r--sc/source/ui/view/drawutil.cxx111
-rw-r--r--sc/source/ui/view/drawvie2.cxx62
-rw-r--r--sc/source/ui/view/drawvie3.cxx182
-rw-r--r--sc/source/ui/view/drawvie4.cxx394
-rw-r--r--sc/source/ui/view/drawview.cxx852
-rw-r--r--sc/source/ui/view/editsh.cxx1171
-rw-r--r--sc/source/ui/view/formatsh.cxx2164
-rw-r--r--sc/source/ui/view/galwrap.cxx79
-rw-r--r--sc/source/ui/view/gridmerg.cxx174
-rw-r--r--sc/source/ui/view/gridwin.cxx5622
-rw-r--r--sc/source/ui/view/gridwin2.cxx1045
-rw-r--r--sc/source/ui/view/gridwin3.cxx443
-rw-r--r--sc/source/ui/view/gridwin4.cxx2069
-rw-r--r--sc/source/ui/view/gridwin5.cxx439
-rw-r--r--sc/source/ui/view/hdrcont.cxx1001
-rw-r--r--sc/source/ui/view/hintwin.cxx108
-rw-r--r--sc/source/ui/view/imapwrap.cxx76
-rw-r--r--sc/source/ui/view/invmerge.cxx192
-rw-r--r--sc/source/ui/view/makefile.mk169
-rw-r--r--sc/source/ui/view/notemark.cxx200
-rw-r--r--sc/source/ui/view/olinewin.cxx1046
-rw-r--r--sc/source/ui/view/olkact.cxx282
-rw-r--r--sc/source/ui/view/output.cxx2469
-rw-r--r--sc/source/ui/view/output2.cxx3521
-rw-r--r--sc/source/ui/view/output3.cxx276
-rw-r--r--sc/source/ui/view/pfuncache.cxx196
-rw-r--r--sc/source/ui/view/pgbrksh.cxx85
-rw-r--r--sc/source/ui/view/pivotsh.cxx204
-rw-r--r--sc/source/ui/view/preview.cxx1603
-rw-r--r--sc/source/ui/view/prevloc.cxx808
-rw-r--r--sc/source/ui/view/prevwsh.cxx1242
-rw-r--r--sc/source/ui/view/prevwsh2.cxx357
-rw-r--r--sc/source/ui/view/printfun.cxx3123
-rw-r--r--sc/source/ui/view/reffact.cxx434
-rw-r--r--sc/source/ui/view/scextopt.cxx218
-rw-r--r--sc/source/ui/view/select.cxx892
-rw-r--r--sc/source/ui/view/selectionstate.cxx89
-rw-r--r--sc/source/ui/view/spelldialog.cxx274
-rw-r--r--sc/source/ui/view/spelleng.cxx458
-rw-r--r--sc/source/ui/view/tabcont.cxx620
-rw-r--r--sc/source/ui/view/tabpopsh.cxx72
-rw-r--r--sc/source/ui/view/tabsplit.cxx105
-rw-r--r--sc/source/ui/view/tabview.cxx2538
-rw-r--r--sc/source/ui/view/tabview2.cxx983
-rw-r--r--sc/source/ui/view/tabview3.cxx2792
-rw-r--r--sc/source/ui/view/tabview4.cxx573
-rw-r--r--sc/source/ui/view/tabview5.cxx726
-rw-r--r--sc/source/ui/view/tabvwsh.cxx116
-rw-r--r--sc/source/ui/view/tabvwsh2.cxx481
-rw-r--r--sc/source/ui/view/tabvwsh3.cxx1236
-rw-r--r--sc/source/ui/view/tabvwsh4.cxx2130
-rw-r--r--sc/source/ui/view/tabvwsh5.cxx428
-rw-r--r--sc/source/ui/view/tabvwsh8.cxx104
-rw-r--r--sc/source/ui/view/tabvwsh9.cxx295
-rw-r--r--sc/source/ui/view/tabvwsha.cxx890
-rw-r--r--sc/source/ui/view/tabvwshb.cxx500
-rw-r--r--sc/source/ui/view/tabvwshc.cxx327
-rw-r--r--sc/source/ui/view/tabvwshd.cxx100
-rw-r--r--sc/source/ui/view/tabvwshe.cxx324
-rw-r--r--sc/source/ui/view/tabvwshf.cxx811
-rw-r--r--sc/source/ui/view/tabvwshg.cxx140
-rw-r--r--sc/source/ui/view/tabvwshh.cxx293
-rw-r--r--sc/source/ui/view/viewdata.cxx3107
-rw-r--r--sc/source/ui/view/viewfun2.cxx3100
-rw-r--r--sc/source/ui/view/viewfun3.cxx1789
-rw-r--r--sc/source/ui/view/viewfun4.cxx846
-rw-r--r--sc/source/ui/view/viewfun5.cxx749
-rw-r--r--sc/source/ui/view/viewfun6.cxx197
-rw-r--r--sc/source/ui/view/viewfun7.cxx454
-rw-r--r--sc/source/ui/view/viewfunc.cxx3028
-rw-r--r--sc/source/ui/view/viewutil.cxx635
-rw-r--r--sc/source/ui/view/waitoff.cxx70
-rw-r--r--sc/uiconfig/layout/delzip1
-rw-r--r--sc/uiconfig/layout/insert-sheet.xml57
-rw-r--r--sc/uiconfig/layout/makefile.mk59
-rw-r--r--sc/uiconfig/layout/move-copy-sheet.xml21
-rw-r--r--sc/uiconfig/layout/sort-options.xml40
-rw-r--r--sc/uiconfig/layout/string-input.xml16
-rw-r--r--sc/uiconfig/scalc/accelerator/de/default.xml101
-rw-r--r--sc/uiconfig/scalc/accelerator/en-GB/default.xml101
-rw-r--r--sc/uiconfig/scalc/accelerator/en-US/default.xml102
-rw-r--r--sc/uiconfig/scalc/accelerator/es/default.xml101
-rw-r--r--sc/uiconfig/scalc/accelerator/fr/default.xml101
-rw-r--r--sc/uiconfig/scalc/menubar/menubar.xml442
-rw-r--r--sc/uiconfig/scalc/statusbar/statusbar.xml13
-rw-r--r--sc/uiconfig/scalc/toolbar/alignmentbar.xml11
-rw-r--r--sc/uiconfig/scalc/toolbar/arrowshapes.xml34
-rw-r--r--sc/uiconfig/scalc/toolbar/basicshapes.xml29
-rw-r--r--sc/uiconfig/scalc/toolbar/calloutshapes.xml11
-rw-r--r--sc/uiconfig/scalc/toolbar/colorbar.xml15
-rw-r--r--sc/uiconfig/scalc/toolbar/drawbar.xml34
-rw-r--r--sc/uiconfig/scalc/toolbar/drawobjectbar.xml30
-rw-r--r--sc/uiconfig/scalc/toolbar/extrusionobjectbar.xml16
-rw-r--r--sc/uiconfig/scalc/toolbar/flowchartshapes.xml36
-rw-r--r--sc/uiconfig/scalc/toolbar/fontworkobjectbar.xml11
-rw-r--r--sc/uiconfig/scalc/toolbar/fontworkshapetype.xml38
-rw-r--r--sc/uiconfig/scalc/toolbar/formatobjectbar.xml53
-rw-r--r--sc/uiconfig/scalc/toolbar/formcontrols.xml29
-rw-r--r--sc/uiconfig/scalc/toolbar/formdesign.xml32
-rw-r--r--sc/uiconfig/scalc/toolbar/formsfilterbar.xml7
-rw-r--r--sc/uiconfig/scalc/toolbar/formsnavigationbar.xml33
-rw-r--r--sc/uiconfig/scalc/toolbar/formtextobjectbar.xml28
-rw-r--r--sc/uiconfig/scalc/toolbar/fullscreenbar.xml5
-rw-r--r--sc/uiconfig/scalc/toolbar/graffilterbar.xml17
-rw-r--r--sc/uiconfig/scalc/toolbar/graphicobjectbar.xml32
-rw-r--r--sc/uiconfig/scalc/toolbar/insertbar.xml13
-rw-r--r--sc/uiconfig/scalc/toolbar/insertcellsbar.xml8
-rw-r--r--sc/uiconfig/scalc/toolbar/mediaobjectbar.xml7
-rw-r--r--sc/uiconfig/scalc/toolbar/moreformcontrols.xml20
-rw-r--r--sc/uiconfig/scalc/toolbar/previewbar.xml22
-rw-r--r--sc/uiconfig/scalc/toolbar/standardbar.xml44
-rw-r--r--sc/uiconfig/scalc/toolbar/starshapes.xml17
-rw-r--r--sc/uiconfig/scalc/toolbar/symbolshapes.xml24
-rw-r--r--sc/uiconfig/scalc/toolbar/textobjectbar.xml35
-rw-r--r--sc/uiconfig/scalc/toolbar/toolbar.xml23
-rw-r--r--sc/uiconfig/scalc/toolbar/viewerbar.xml18
-rw-r--r--sc/util/createExtPackage.pl67
-rw-r--r--sc/util/hidother.src503
-rw-r--r--sc/util/makefile.mk343
-rw-r--r--sc/util/makefile.pmk32
-rw-r--r--sc/util/sc.flt136
-rw-r--r--sc/util/sc.map8
-rw-r--r--sc/util/sc.r777
-rw-r--r--sc/util/scd.map8
-rw-r--r--sc/util/scfilt.map6
-rw-r--r--sc/util/scui.map6
-rw-r--r--sc/util/vbaobj.map9
-rw-r--r--sc/workben/addin.cxx595
-rw-r--r--sc/workben/addin.hxx102
-rw-r--r--sc/workben/celltrans/keywords_utf16.txtbin0 -> 1830 bytes
-rwxr-xr-xsc/workben/celltrans/parse.py209
-rw-r--r--sc/workben/makefile.mk96
-rw-r--r--sc/workben/map.idl37
-rw-r--r--sc/workben/result.cxx133
-rw-r--r--sc/workben/result.hxx75
-rw-r--r--sc/workben/test.cxx2041
-rw-r--r--sc/workben/testadd.idl67
-rw-r--r--sc/xml/AccessibleEditableTextPara_HeaderFooter.xml30
-rw-r--r--sc/xml/AccessibleEditableTextPara_PreviewCell.xml29
-rw-r--r--sc/xml/AccessibleEditableTextPara_PreviewNote.xml29
-rw-r--r--sc/xml/ScAccessibleCell.xml30
-rw-r--r--sc/xml/ScAccessibleCsvCell.xml28
-rw-r--r--sc/xml/ScAccessibleCsvGrid.xml29
-rw-r--r--sc/xml/ScAccessibleCsvRuler.xml28
-rw-r--r--sc/xml/ScAccessibleDocument.xml28
-rw-r--r--sc/xml/ScAccessibleDocumentPagePreview.xml27
-rw-r--r--sc/xml/ScAccessiblePageHeader.xml27
-rw-r--r--sc/xml/ScAccessiblePageHeaderArea.xml27
-rw-r--r--sc/xml/ScAccessiblePreviewCell.xml28
-rw-r--r--sc/xml/ScAccessiblePreviewHeaderCell.xml28
-rw-r--r--sc/xml/ScAccessiblePreviewTable.xml27
-rw-r--r--sc/xml/ScAccessibleSpreadsheet.xml28
-rw-r--r--sc/xml/ScAnnotationObj.xml203
-rw-r--r--sc/xml/ScAnnotationShapeObj.xml203
-rw-r--r--sc/xml/ScAnnotationsObj.xml295
-rw-r--r--sc/xml/ScAreaLinkObj.xml108
-rw-r--r--sc/xml/ScAreaLinksObj.xml108
-rw-r--r--sc/xml/ScAutoFormatFieldObj.xml135
-rw-r--r--sc/xml/ScAutoFormatObj.xml135
-rw-r--r--sc/xml/ScAutoFormatsObj.xml135
-rw-r--r--sc/xml/ScCellCursorObj.xml200
-rw-r--r--sc/xml/ScCellFieldObj.xml205
-rw-r--r--sc/xml/ScCellFieldsObj.xml205
-rw-r--r--sc/xml/ScCellFormatsEnumeration.xml317
-rw-r--r--sc/xml/ScCellFormatsObj.xml317
-rw-r--r--sc/xml/ScCellObj.xml317
-rw-r--r--sc/xml/ScCellRangeObj.xml317
-rw-r--r--sc/xml/ScCellRangesObj.xml317
-rw-r--r--sc/xml/ScCellSearchObj.xml103
-rw-r--r--sc/xml/ScCellTextCursor.xml121
-rw-r--r--sc/xml/ScCellsEnumeration.xml317
-rw-r--r--sc/xml/ScCellsObj.xml317
-rw-r--r--sc/xml/ScChartObj.xml111
-rw-r--r--sc/xml/ScChartsObj.xml111
-rw-r--r--sc/xml/ScConsolidationDescriptor.xml219
-rw-r--r--sc/xml/ScDDELinkObj.xml108
-rw-r--r--sc/xml/ScDDELinksObj.xml108
-rw-r--r--sc/xml/ScDataPilotFieldGroupItemObj.xml123
-rw-r--r--sc/xml/ScDataPilotFieldGroupObj.xml123
-rw-r--r--sc/xml/ScDataPilotFieldGroupsObj.xml123
-rw-r--r--sc/xml/ScDataPilotFieldObj.xml123
-rw-r--r--sc/xml/ScDataPilotFieldsObj.xml123
-rw-r--r--sc/xml/ScDataPilotItemObj.xml123
-rw-r--r--sc/xml/ScDataPilotItemsObj.xml123
-rw-r--r--sc/xml/ScDataPilotTableObj.xml124
-rw-r--r--sc/xml/ScDataPilotTablesObj.xml123
-rw-r--r--sc/xml/ScDatabaseRangeObj.xml219
-rw-r--r--sc/xml/ScDatabaseRangesObj.xml219
-rw-r--r--sc/xml/ScDocumentConfiguration.xml295
-rw-r--r--sc/xml/ScDrawPageObj.xml295
-rw-r--r--sc/xml/ScDrawPagesObj.xml295
-rw-r--r--sc/xml/ScFilterDescriptorBase.xml219
-rw-r--r--sc/xml/ScFunctionListObj.xml114
-rw-r--r--sc/xml/ScHeaderFieldObj.xml205
-rw-r--r--sc/xml/ScHeaderFieldsObj.xml205
-rw-r--r--sc/xml/ScHeaderFooterContentObj.xml121
-rw-r--r--sc/xml/ScHeaderFooterTextCursor.xml121
-rw-r--r--sc/xml/ScHeaderFooterTextObj.xml121
-rw-r--r--sc/xml/ScIndexEnumeration_CellAnnotationsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_CellAreaLinksEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_DDELinksEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_DataPilotFieldsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_DataPilotItemsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_DataPilotTablesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_DatabaseRangesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_FunctionDescriptionEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_LabelRangesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_NamedRangesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_ScenariosEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_SheetCellRangesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_SheetLinksEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_SpreadsheetViewPanesEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_SpreadsheetsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_SubTotalFieldsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TableAutoFormatEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TableChartsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TableColumnsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TableConditionalEntryEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TableRowsEnumeration.xml61
-rw-r--r--sc/xml/ScIndexEnumeration_TextFieldEnumeration.xml61
-rw-r--r--sc/xml/ScLabelRangeObj.xml217
-rw-r--r--sc/xml/ScLabelRangesObj.xml217
-rw-r--r--sc/xml/ScModelObj.xml295
-rw-r--r--sc/xml/ScNamedRangeObj.xml217
-rw-r--r--sc/xml/ScNamedRangesObj.xml217
-rw-r--r--sc/xml/ScPageObj.xml295
-rw-r--r--sc/xml/ScRecentFunctionsObj.xml114
-rw-r--r--sc/xml/ScScenariosObj.xml295
-rw-r--r--sc/xml/ScShapeObj.xml34
-rw-r--r--sc/xml/ScSheetLinkObj.xml108
-rw-r--r--sc/xml/ScSheetLinksObj.xml108
-rw-r--r--sc/xml/ScSpreadsheetSettings.xml114
-rw-r--r--sc/xml/ScSpreadsheetSettingsObj.xml296
-rw-r--r--sc/xml/ScStyleFamiliesObj.xml135
-rw-r--r--sc/xml/ScStyleFamilyObj.xml134
-rw-r--r--sc/xml/ScStyleObj.xml134
-rw-r--r--sc/xml/ScSubTotalDescriptorBase.xml219
-rw-r--r--sc/xml/ScSubTotalFieldObj.xml219
-rw-r--r--sc/xml/ScTabViewObj.xml250
-rw-r--r--sc/xml/ScTableColumnObj.xml317
-rw-r--r--sc/xml/ScTableColumnsObj.xml295
-rw-r--r--sc/xml/ScTableConditionalEntry.xml73
-rw-r--r--sc/xml/ScTableConditionalFormat.xml73
-rw-r--r--sc/xml/ScTableRowObj.xml317
-rw-r--r--sc/xml/ScTableRowsObj.xml295
-rw-r--r--sc/xml/ScTableSheetObj.xml317
-rw-r--r--sc/xml/ScTableSheetsObj.xml295
-rw-r--r--sc/xml/ScTableValidationObj.xml73
-rw-r--r--sc/xml/ScUniqueCellFormatsEnumeration.xml317
-rw-r--r--sc/xml/ScUniqueCellFormatsObj.xml317
-rw-r--r--sc/xml/ScViewPaneObj.xml250
-rw-r--r--sc/xml/ScXMLExport.xml116
-rw-r--r--sc/xml/ScXMLImport.xml116
-rw-r--r--scaddins/prj/build.lst4
-rw-r--r--scaddins/prj/d.lst9
-rw-r--r--scaddins/source/analysis/analysis.cxx1312
-rw-r--r--scaddins/source/analysis/analysis.hrc330
-rw-r--r--scaddins/source/analysis/analysis.hxx240
-rw-r--r--scaddins/source/analysis/analysis.src3604
-rw-r--r--scaddins/source/analysis/analysis_deffuncnames.src874
-rw-r--r--scaddins/source/analysis/analysis_funcnames.src548
-rw-r--r--scaddins/source/analysis/analysisadd.idl592
-rw-r--r--scaddins/source/analysis/analysisdefs.hxx53
-rw-r--r--scaddins/source/analysis/analysishelper.cxx2988
-rw-r--r--scaddins/source/analysis/analysishelper.hxx1105
-rw-r--r--scaddins/source/analysis/bessel.cxx415
-rw-r--r--scaddins/source/analysis/bessel.hxx59
-rw-r--r--scaddins/source/analysis/exports.map10
-rw-r--r--scaddins/source/analysis/financial.cxx667
-rw-r--r--scaddins/source/analysis/makefile.mk134
-rw-r--r--scaddins/source/datefunc/dateadd.idl118
-rw-r--r--scaddins/source/datefunc/datefunc.cxx1000
-rw-r--r--scaddins/source/datefunc/datefunc.def7
-rw-r--r--scaddins/source/datefunc/datefunc.hrc75
-rw-r--r--scaddins/source/datefunc/datefunc.hxx428
-rw-r--r--scaddins/source/datefunc/datefunc.src348
-rw-r--r--scaddins/source/datefunc/exports.map10
-rw-r--r--scaddins/source/datefunc/makefile.mk121
-rw-r--r--scaddins/source/datefunc/msdev.mk116
-rw-r--r--sccomp/prj/build.lst4
-rw-r--r--sccomp/prj/d.lst9
-rw-r--r--sccomp/source/solver/exports.map9
-rw-r--r--sccomp/source/solver/makefile.mk77
-rw-r--r--sccomp/source/solver/solver.cxx657
-rw-r--r--sccomp/source/solver/solver.hrc45
-rw-r--r--sccomp/source/solver/solver.hxx127
-rw-r--r--sccomp/source/solver/solver.src76
-rwxr-xr-xscp2/inc/macros.inc575
-rw-r--r--scp2/macros/macro.pl294
-rw-r--r--scp2/macros/makefile.mk49
-rw-r--r--scp2/prj/build.lst28
-rw-r--r--scp2/prj/d.lst27
-rw-r--r--scp2/source/activex/file_activex.scp60
-rw-r--r--scp2/source/activex/makefile.mk56
-rw-r--r--scp2/source/activex/module_activex.scp38
-rw-r--r--scp2/source/activex/module_activex.ulf35
-rw-r--r--scp2/source/base/file_base.scp87
-rw-r--r--scp2/source/base/folderitem_base.scp41
-rw-r--r--scp2/source/base/folderitem_base.ulf30
-rw-r--r--scp2/source/base/makefile.mk62
-rw-r--r--scp2/source/base/module_base.scp96
-rw-r--r--scp2/source/base/module_base.ulf47
-rwxr-xr-xscp2/source/base/registryitem_base.scp163
-rw-r--r--scp2/source/base/registryitem_base.ulf29
-rw-r--r--scp2/source/binfilter/file_binfilter.scp74
-rw-r--r--scp2/source/binfilter/makefile.mk52
-rw-r--r--scp2/source/binfilter/module_binfilter.scp76
-rw-r--r--scp2/source/binfilter/module_binfilter.ulf32
-rw-r--r--scp2/source/binfilter/registryitem_binfilter.scp931
-rw-r--r--scp2/source/binfilter/registryitem_binfilter.ulf53
-rw-r--r--scp2/source/calc/file_calc.scp94
-rw-r--r--scp2/source/calc/folderitem_calc.scp41
-rw-r--r--scp2/source/calc/folderitem_calc.ulf32
-rw-r--r--scp2/source/calc/makefile.mk61
-rw-r--r--scp2/source/calc/module_calc.scp92
-rw-r--r--scp2/source/calc/module_calc.ulf50
-rwxr-xr-xscp2/source/calc/registryitem_calc.scp1124
-rw-r--r--scp2/source/calc/registryitem_calc.ulf54
-rw-r--r--scp2/source/canvas/cairocanvas.scp41
-rw-r--r--scp2/source/canvas/canvascommons.scp40
-rw-r--r--scp2/source/canvas/directxcanvas.scp36
-rw-r--r--scp2/source/canvas/makefile.mk64
-rw-r--r--scp2/source/canvas/vclcanvas.scp30
-rw-r--r--scp2/source/crashrep/file_crashrep.scp80
-rw-r--r--scp2/source/crashrep/makefile.mk50
-rw-r--r--scp2/source/draw/file_draw.scp64
-rw-r--r--scp2/source/draw/folderitem_draw.scp41
-rw-r--r--scp2/source/draw/folderitem_draw.ulf34
-rw-r--r--scp2/source/draw/makefile.mk58
-rw-r--r--scp2/source/draw/module_draw.scp79
-rw-r--r--scp2/source/draw/module_draw.ulf47
-rwxr-xr-xscp2/source/draw/registryitem_draw.scp933
-rw-r--r--scp2/source/draw/registryitem_draw.ulf42
-rw-r--r--scp2/source/gnome/file_gnome.scp69
-rw-r--r--scp2/source/gnome/makefile.mk71
-rw-r--r--scp2/source/gnome/module_gnome.scp58
-rw-r--r--scp2/source/gnome/module_gnome.ulf33
-rw-r--r--scp2/source/graphicfilter/file_graphicfilter.scp40
-rw-r--r--scp2/source/graphicfilter/makefile.mk50
-rw-r--r--scp2/source/graphicfilter/module_graphicfilter.scp38
-rw-r--r--scp2/source/graphicfilter/module_graphicfilter.ulf119
-rw-r--r--scp2/source/impress/file_impress.scp91
-rw-r--r--scp2/source/impress/folderitem_impress.scp41
-rw-r--r--scp2/source/impress/folderitem_impress.ulf34
-rw-r--r--scp2/source/impress/makefile.mk65
-rw-r--r--scp2/source/impress/module_impress.scp80
-rw-r--r--scp2/source/impress/module_impress.ulf48
-rw-r--r--scp2/source/impress/module_ogltrans.scp63
-rw-r--r--scp2/source/impress/module_ogltrans.ulf34
-rwxr-xr-xscp2/source/impress/registryitem_impress.scp991
-rw-r--r--scp2/source/impress/registryitem_impress.ulf60
-rw-r--r--scp2/source/javafilter/file_javafilter.scp81
-rw-r--r--scp2/source/javafilter/makefile.mk59
-rw-r--r--scp2/source/javafilter/module_javafilter.scp123
-rw-r--r--scp2/source/javafilter/module_javafilter.ulf68
-rw-r--r--scp2/source/javafilter/registryitem_javafilter.scp437
-rw-r--r--scp2/source/javafilter/registryitem_javafilter.ulf59
-rw-r--r--scp2/source/kde/file_kde.scp49
-rw-r--r--scp2/source/kde/makefile.mk62
-rw-r--r--scp2/source/kde/module_kde.scp50
-rw-r--r--scp2/source/kde/module_kde.ulf33
-rw-r--r--scp2/source/layout/layout.scp62
-rw-r--r--scp2/source/layout/makefile.mk50
-rw-r--r--scp2/source/math/file_math.scp80
-rw-r--r--scp2/source/math/folderitem_math.scp41
-rw-r--r--scp2/source/math/folderitem_math.ulf31
-rw-r--r--scp2/source/math/makefile.mk57
-rw-r--r--scp2/source/math/module_math.scp80
-rw-r--r--scp2/source/math/module_math.ulf47
-rwxr-xr-xscp2/source/math/registryitem_math.scp688
-rw-r--r--scp2/source/math/registryitem_math.ulf36
-rwxr-xr-xscp2/source/mkopenwith.btm52
-rw-r--r--scp2/source/onlineupdate/file_onlineupdate.scp46
-rw-r--r--scp2/source/onlineupdate/makefile.mk51
-rw-r--r--scp2/source/onlineupdate/module_onlineupdate.scp38
-rw-r--r--scp2/source/onlineupdate/module_onlineupdate.ulf33
-rw-r--r--scp2/source/ooo/common_brand.scp1223
-rw-r--r--scp2/source/ooo/common_brand_readme.scp126
-rw-r--r--scp2/source/ooo/datacarrier_ooo.scp34
-rw-r--r--scp2/source/ooo/directory_ooo.scp1331
-rw-r--r--scp2/source/ooo/directory_ooo.ulf54
-rwxr-xr-xscp2/source/ooo/directory_ooo_macosx.scp45
-rw-r--r--scp2/source/ooo/file_extra_ooo.scp445
-rw-r--r--scp2/source/ooo/file_font_ooo.scp208
-rw-r--r--scp2/source/ooo/file_improvement.scp41
-rw-r--r--scp2/source/ooo/file_jre_ooo.scp49
-rwxr-xr-xscp2/source/ooo/file_library_ooo.scp1816
-rw-r--r--scp2/source/ooo/file_ooo.scp2158
-rw-r--r--scp2/source/ooo/file_resource_ooo.scp140
-rw-r--r--scp2/source/ooo/folder_ooo.scp33
-rw-r--r--scp2/source/ooo/folderitem_ooo.scp56
-rw-r--r--scp2/source/ooo/folderitem_ooo.ulf35
-rw-r--r--scp2/source/ooo/installation_ooo.scp48
-rw-r--r--scp2/source/ooo/makefile.mk317
-rwxr-xr-xscp2/source/ooo/mergemodules_ooo.scp56
-rw-r--r--scp2/source/ooo/module_headless.scp27
-rw-r--r--scp2/source/ooo/module_headless.ulf32
-rw-r--r--scp2/source/ooo/module_hidden_ooo.scp1144
-rw-r--r--scp2/source/ooo/module_improvement.scp42
-rw-r--r--scp2/source/ooo/module_java.scp100
-rw-r--r--scp2/source/ooo/module_java.ulf32
-rwxr-xr-xscp2/source/ooo/module_lang_template.scp138
-rw-r--r--scp2/source/ooo/module_langpack.scp38
-rw-r--r--scp2/source/ooo/module_langpack.ulf692
-rw-r--r--scp2/source/ooo/module_ooo.scp51
-rw-r--r--scp2/source/ooo/module_ooo.ulf47
-rw-r--r--scp2/source/ooo/module_systemint.scp50
-rw-r--r--scp2/source/ooo/module_systemint.ulf32
-rw-r--r--scp2/source/ooo/ooo_brand.scp55
-rw-r--r--scp2/source/ooo/profile_ooo.scp52
-rw-r--r--scp2/source/ooo/profileitem_ooo.scp379
-rw-r--r--scp2/source/ooo/registryitem_ooo.scp676
-rw-r--r--scp2/source/ooo/registryitem_ooo.ulf41
-rw-r--r--scp2/source/ooo/scpaction_ooo.scp376
-rw-r--r--scp2/source/ooo/shortcut_ooo.scp97
-rw-r--r--scp2/source/ooo/starregistry_ooo.scp34
-rwxr-xr-xscp2/source/ooo/ure.scp1267
-rwxr-xr-xscp2/source/ooo/ure_into_ooo.scp67
-rwxr-xr-xscp2/source/ooo/ure_standalone.scp125
-rw-r--r--scp2/source/ooo/vc_redist.scp71
-rwxr-xr-xscp2/source/ooo/windowscustomaction_ooo.scp518
-rw-r--r--scp2/source/python/file_python.scp156
-rw-r--r--scp2/source/python/makefile.mk63
-rw-r--r--scp2/source/python/module_python.scp39
-rw-r--r--scp2/source/python/module_python.ulf32
-rw-r--r--scp2/source/python/module_python_mailmerge.scp36
-rwxr-xr-xscp2/source/python/module_python_mailmerge.ulf32
-rw-r--r--scp2/source/python/profileitem_python.scp82
-rw-r--r--scp2/source/quickstart/file_quickstart.scp35
-rw-r--r--scp2/source/quickstart/folderitem_quickstart.scp35
-rw-r--r--scp2/source/quickstart/makefile.mk53
-rw-r--r--scp2/source/quickstart/module_quickstart.scp36
-rw-r--r--scp2/source/quickstart/module_quickstart.ulf35
-rw-r--r--scp2/source/quickstart/registryitem_quickstart.scp36
-rw-r--r--scp2/source/sdkoo/makefile.mk46
-rw-r--r--scp2/source/sdkoo/module_sdkoo.scp37
-rw-r--r--scp2/source/sdkoo/module_sdkoo.ulf32
-rw-r--r--scp2/source/sdkoo/sdkoo.scp245
-rwxr-xr-xscp2/source/supported_extensions.txt80
-rwxr-xr-xscp2/source/templates/makefile.mk52
-rwxr-xr-xscp2/source/templates/module_langpack.sct34
-rwxr-xr-xscp2/source/templates/module_langpack_base.sct37
-rw-r--r--scp2/source/templates/module_langpack_binfilter.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_calc.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_draw.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_impress.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_math.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_onlineupdate.sct37
-rwxr-xr-xscp2/source/templates/module_langpack_root.sct83
-rwxr-xr-xscp2/source/templates/module_langpack_writer.sct37
-rwxr-xr-xscp2/source/templates/modules.pl185
-rw-r--r--scp2/source/testtool/file_testtool.scp78
-rw-r--r--scp2/source/testtool/makefile.mk50
-rw-r--r--scp2/source/testtool/module_testtool.scp38
-rw-r--r--scp2/source/testtool/module_testtool.ulf32
-rwxr-xr-xscp2/source/winexplorerext/file_winexplorerext.scp112
-rwxr-xr-xscp2/source/winexplorerext/makefile.mk61
-rwxr-xr-xscp2/source/winexplorerext/module_winexplorerext.scp57
-rw-r--r--scp2/source/winexplorerext/module_winexplorerext.ulf35
-rwxr-xr-xscp2/source/winexplorerext/registryitem_winexplorerext.scp230
-rw-r--r--scp2/source/writer/file_writer.scp101
-rw-r--r--scp2/source/writer/folderitem_writer.scp41
-rw-r--r--scp2/source/writer/folderitem_writer.ulf35
-rw-r--r--scp2/source/writer/makefile.mk58
-rw-r--r--scp2/source/writer/module_writer.scp96
-rw-r--r--scp2/source/writer/module_writer.ulf50
-rwxr-xr-xscp2/source/writer/registryitem_writer.scp1504
-rw-r--r--scp2/source/writer/registryitem_writer.ulf66
-rw-r--r--scp2/source/xsltfilter/file_xsltfilter.scp85
-rw-r--r--scp2/source/xsltfilter/makefile.mk51
-rw-r--r--scp2/source/xsltfilter/module_xsltfilter.scp50
-rw-r--r--scp2/source/xsltfilter/module_xsltfilter.ulf35
-rw-r--r--scp2/util/makefile.mk362
-rw-r--r--scripting/README67
-rw-r--r--scripting/examples/basic/InsertColouredText.xba124
-rw-r--r--scripting/examples/basic/InsertColouredTextDialog.xdl17
-rw-r--r--scripting/examples/basic/SearchAndReplace.xba109
-rw-r--r--scripting/examples/basic/SearchAndReplaceDialog.xdl13
-rw-r--r--scripting/examples/basic/dialog.xlb6
-rw-r--r--scripting/examples/basic/script.xlb6
-rw-r--r--scripting/examples/beanshell/Capitalise/capitalise.bsh94
-rwxr-xr-xscripting/examples/beanshell/Capitalise/parcel-descriptor.xml16
-rw-r--r--scripting/examples/beanshell/HelloWorld/helloworld.bsh17
-rwxr-xr-xscripting/examples/beanshell/HelloWorld/parcel-descriptor.xml16
-rw-r--r--scripting/examples/beanshell/Highlight/ButtonPressHandler.bsh106
-rw-r--r--scripting/examples/beanshell/Highlight/ShowDialog.bsh124
-rw-r--r--scripting/examples/beanshell/Highlight/highlighter.bsh149
-rwxr-xr-xscripting/examples/beanshell/Highlight/parcel-descriptor.xml25
-rwxr-xr-xscripting/examples/beanshell/InteractiveBeanShell/interactive.bsh4
-rw-r--r--scripting/examples/beanshell/InteractiveBeanShell/parcel-descriptor.xml16
-rw-r--r--scripting/examples/beanshell/MemoryUsage/memusage.bsh120
-rw-r--r--scripting/examples/beanshell/MemoryUsage/parcel-descriptor.xml16
-rwxr-xr-xscripting/examples/beanshell/WordCount/parcel-descriptor.xml16
-rw-r--r--scripting/examples/beanshell/WordCount/wordcount.bsh64
-rw-r--r--scripting/examples/delzip1
-rw-r--r--scripting/examples/java/HelloWorld/HelloWorld.java22
-rw-r--r--scripting/examples/java/HelloWorld/parcel-descriptor.xml16
-rw-r--r--scripting/examples/java/Highlight/HighlightText.java223
-rwxr-xr-xscripting/examples/java/Highlight/parcel-descriptor.xml17
-rw-r--r--scripting/examples/java/MemoryUsage/MemoryUsage.java141
-rw-r--r--scripting/examples/java/MemoryUsage/parcel-descriptor.xml16
-rw-r--r--scripting/examples/java/Newsgroup/MimeConfiguration.java219
-rw-r--r--scripting/examples/java/Newsgroup/NewsGroup.java23
-rw-r--r--scripting/examples/java/Newsgroup/OfficeAttachment.java307
-rw-r--r--scripting/examples/java/Newsgroup/PostNewsgroup.java625
-rw-r--r--scripting/examples/java/Newsgroup/Sender.java126
-rw-r--r--scripting/examples/java/Newsgroup/StatusWindow.java138
-rw-r--r--scripting/examples/java/Newsgroup/SubscribedNewsgroups.java373
-rwxr-xr-xscripting/examples/java/build.xml139
-rw-r--r--scripting/examples/java/debugger/DebugRunner.java71
-rw-r--r--scripting/examples/java/debugger/OOBeanShellDebugger.java374
-rw-r--r--scripting/examples/java/debugger/OORhinoDebugger.java75
-rw-r--r--scripting/examples/java/debugger/OOScriptDebugger.java7
-rw-r--r--scripting/examples/java/debugger/parcel-descriptor.xml18
-rwxr-xr-xscripting/examples/java/makefile.mk38
-rw-r--r--scripting/examples/java/selector/ScriptSelector.java498
-rw-r--r--scripting/examples/java/selector/container.gifbin0 -> 164 bytes
-rw-r--r--scripting/examples/java/selector/parcel-descriptor.xml17
-rw-r--r--scripting/examples/java/selector/script.gifbin0 -> 187 bytes
-rw-r--r--scripting/examples/java/selector/soffice.gifbin0 -> 136 bytes
-rw-r--r--scripting/examples/javascript/ExportSheetsToHTML/exportsheetstohtml.js71
-rwxr-xr-xscripting/examples/javascript/ExportSheetsToHTML/parcel-descriptor.xml16
-rw-r--r--scripting/examples/javascript/HelloWorld/helloworld.js16
-rwxr-xr-xscripting/examples/javascript/HelloWorld/parcel-descriptor.xml16
-rw-r--r--scripting/examples/javascript/Highlight/ButtonPressHandler.js105
-rw-r--r--scripting/examples/javascript/Highlight/ShowDialog.js115
-rw-r--r--scripting/examples/javascript/Highlight/parcel-descriptor.xml25
-rwxr-xr-xscripting/examples/makefile.mk58
-rw-r--r--scripting/examples/python/Capitalise.py61
-rw-r--r--scripting/examples/python/HelloWorld.py13
-rw-r--r--scripting/examples/python/pythonSamples/TableSample.py96
-rw-r--r--scripting/inc/makefile.mk47
-rw-r--r--scripting/inc/pch/precompiled_scripting.cxx29
-rw-r--r--scripting/inc/pch/precompiled_scripting.hxx32
-rw-r--r--scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java546
-rw-r--r--scripting/java/build.env3
-rwxr-xr-xscripting/java/build.xml285
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/DialogFactory.java423
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/ParcelBrowseNode.java376
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/PkgProviderBrowseNode.java65
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/ProviderBrowseNode.java291
-rw-r--r--scripting/java/com/sun/star/script/framework/browse/ScriptBrowseNode.java335
-rw-r--r--scripting/java/com/sun/star/script/framework/container/DeployedUnoPackagesDB.java231
-rw-r--r--scripting/java/com/sun/star/script/framework/container/Parcel.java308
-rw-r--r--scripting/java/com/sun/star/script/framework/container/ParcelContainer.java746
-rw-r--r--scripting/java/com/sun/star/script/framework/container/ParcelDescriptor.java450
-rw-r--r--scripting/java/com/sun/star/script/framework/container/ParsedScriptUri.java36
-rw-r--r--scripting/java/com/sun/star/script/framework/container/ScriptEntry.java128
-rw-r--r--scripting/java/com/sun/star/script/framework/container/ScriptMetaData.java410
-rw-r--r--scripting/java/com/sun/star/script/framework/container/UnoPkgContainer.java421
-rw-r--r--scripting/java/com/sun/star/script/framework/container/XMLParser.java38
-rw-r--r--scripting/java/com/sun/star/script/framework/container/XMLParserFactory.java180
-rw-r--r--scripting/java/com/sun/star/script/framework/io/UCBStreamHandler.java281
-rw-r--r--scripting/java/com/sun/star/script/framework/io/XInputStreamImpl.java119
-rw-r--r--scripting/java/com/sun/star/script/framework/io/XInputStreamWrapper.java102
-rw-r--r--scripting/java/com/sun/star/script/framework/io/XOutputStreamWrapper.java128
-rw-r--r--scripting/java/com/sun/star/script/framework/io/XStorageHelper.java278
-rw-r--r--scripting/java/com/sun/star/script/framework/log/LogUtils.java68
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/ClassLoaderFactory.java74
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/EditorScriptContext.java100
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/NoSuitableClassLoaderException.java53
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/PathUtils.java87
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/ScriptContext.java165
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/ScriptEditor.java13
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/ScriptProvider.java731
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/beanshell/PlainSourceView.java247
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptEditorForBeanShell.java412
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java418
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptSourceModel.java141
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptSourceView.java35
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/beanshell/template.bsh48
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/Resolver.java50
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/ScriptDescriptor.java212
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java399
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/ScriptProxy.java92
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/StrictResolver.java128
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/javascript/ScriptEditorForJavaScript.java376
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java392
-rw-r--r--scripting/java/com/sun/star/script/framework/provider/javascript/template.js37
-rwxr-xr-xscripting/java/makefile.mk38
-rw-r--r--scripting/java/manifest.mf26
-rw-r--r--scripting/java/org/openoffice/idesupport/CommandLineTools.java350
-rw-r--r--scripting/java/org/openoffice/idesupport/ExtensionFinder.java60
-rw-r--r--scripting/java/org/openoffice/idesupport/JavaFinder.java227
-rw-r--r--scripting/java/org/openoffice/idesupport/LocalOffice.java109
-rw-r--r--scripting/java/org/openoffice/idesupport/MethodFinder.java8
-rw-r--r--scripting/java/org/openoffice/idesupport/OfficeDocument.java120
-rw-r--r--scripting/java/org/openoffice/idesupport/OfficeInstallation.java110
-rw-r--r--scripting/java/org/openoffice/idesupport/SVersionRCFile.java237
-rw-r--r--scripting/java/org/openoffice/idesupport/filter/AllFilesFilter.java47
-rw-r--r--scripting/java/org/openoffice/idesupport/filter/BinaryOnlyFilter.java58
-rw-r--r--scripting/java/org/openoffice/idesupport/filter/ExceptParcelFilter.java59
-rw-r--r--scripting/java/org/openoffice/idesupport/filter/FileFilter.java32
-rw-r--r--scripting/java/org/openoffice/idesupport/localoffice/LocalOfficeImpl.java154
-rw-r--r--scripting/java/org/openoffice/idesupport/ui/ConfigurePanel.java236
-rw-r--r--scripting/java/org/openoffice/idesupport/ui/MethodPanel.java186
-rw-r--r--scripting/java/org/openoffice/idesupport/ui/ScriptPanel.java206
-rw-r--r--scripting/java/org/openoffice/idesupport/ui/add.gifbin0 -> 103 bytes
-rw-r--r--scripting/java/org/openoffice/idesupport/xml/Manifest.java171
-rw-r--r--scripting/java/org/openoffice/idesupport/zip/ParcelZipper.java600
-rw-r--r--scripting/java/org/openoffice/netbeans/editor/JavaKit.java248
-rw-r--r--scripting/java/org/openoffice/netbeans/editor/NetBeansSourceView.java209
-rw-r--r--scripting/java/org/openoffice/netbeans/editor/OOo.jcb5
-rw-r--r--scripting/java/org/openoffice/netbeans/editor/OOo.jcs21
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/Bundle.properties0
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/Bundle_en_US.properties0
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/BuildParcelAction.java69
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/CompileParcelAction.java44
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ConfigureParcelAction.java70
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/DeployParcelAction.java244
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/MountDocumentAction.java85
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/MountParcelAction.java84
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/OfficeDocumentCookie.java42
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/OfficeDocumentSupport.java143
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelCookie.java42
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelDescriptorEditorSupport.java141
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelDescriptorParserCookie.java42
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelDescriptorParserSupport.java121
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelFolderCookie.java42
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelFolderSupport.java257
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/actions/ParcelSupport.java191
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/filesystem/Bundle.properties43
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/filesystem/Bundle_en_US.properties0
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/filesystem/OpenOfficeDocFileSystem.java1192
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/filesystem/OpenOfficeDocFileSystemBeanInfo.java125
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/Bundle.properties12
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/OfficeDocumentDataLoader.java112
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/OfficeDocumentDataLoaderBeanInfo.java72
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/OfficeDocumentDataNode.java120
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/OfficeDocumentDataObject.java58
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelContentsFolder.java137
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelContentsFolderDataLoader.java82
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelContentsFolderDataLoaderBeanInfo.java76
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDataLoader.java89
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDataLoaderBeanInfo.java76
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDataNode.java114
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDataObject.java77
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDescriptorDataLoader.java91
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDescriptorDataLoaderBeanInfo.java76
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDescriptorDataNode.java81
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelDescriptorDataObject.java83
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelFolder.java303
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelFolderDataLoader.java112
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/loader/ParcelFolderDataLoaderBeanInfo.java76
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/nodes/OfficeDocumentChildren.java147
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/nodes/ParcelDescriptorChildren.java91
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/nodes/ScriptNode.java209
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/options/Bundle.properties13
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/options/OfficeSettings.java133
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/options/OfficeSettingsBeanInfo.java147
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/options/OfficeSettingsIcon.gifbin0 -> 145 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/options/OfficeSettingsIcon32.gifbin0 -> 253 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/AppStorage.html11
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/AppStorage.settings7
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/Bundle.properties23
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/EmptyParcel.html11
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OfficeIcon.gifbin0 -> 588 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OfficeIcon32.gifbin0 -> 759 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OfficeSettings.settings9
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OpenOfficeDocFileSystem.html11
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OpenOfficeDocFileSystem.settings7
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OpenOfficeDocFileSystemIcon.pngbin0 -> 702 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/OpenOfficeDocFileSystemIcon32.pngbin0 -> 1533 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/ParcelIcon.gifbin0 -> 576 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/ScriptParcel.html11
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/ScriptParcelDescriptor.html11
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/layer.xml98
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/mime-resolver.xml16
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/office-scripting.url1
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/templates/Empty.bsh_24
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/templates/Empty.java_27
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/templates/EmptyParcelDescriptor.xml_4
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/templates/HelloWorld.java_41
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/resources/templates/ParcelDescriptor.xml_8
-rwxr-xr-xscripting/java/org/openoffice/netbeans/modules/office/resources/webLink.gifbin0 -> 969 bytes
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/FrameworkJarChecker.java140
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/ManifestParser.java97
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/NagDialog.java127
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/OfficeModule.java68
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/PackageRemover.java106
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/utils/ZipMounter.java92
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/Bundle.properties26
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/Bundle_en_US.properties0
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/InstallationPathDescriptor.java72
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/InstallationPathIterator.java136
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/JavaScriptIterator.java250
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelContentsIterator.java254
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelPropertiesPanel.java117
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelPropertiesVisualPanel.form74
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/ParcelPropertiesVisualPanel.java157
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathPanel.java123
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathVisualPanel.form82
-rw-r--r--scripting/java/org/openoffice/netbeans/modules/office/wizard/SelectPathVisualPanel.java196
-rw-r--r--scripting/prj/build.lst14
-rw-r--r--scripting/prj/d.lst17
-rw-r--r--scripting/source/basprov/baslibnode.cxx148
-rw-r--r--scripting/source/basprov/baslibnode.hxx87
-rw-r--r--scripting/source/basprov/basmethnode.cxx358
-rw-r--r--scripting/source/basprov/basmethnode.hxx132
-rw-r--r--scripting/source/basprov/basmodnode.cxx145
-rw-r--r--scripting/source/basprov/basmodnode.hxx81
-rw-r--r--scripting/source/basprov/basprov.cxx606
-rw-r--r--scripting/source/basprov/basprov.hxx115
-rw-r--r--scripting/source/basprov/basprov.map9
-rw-r--r--scripting/source/basprov/basprov.xml50
-rw-r--r--scripting/source/basprov/basscript.cxx226
-rw-r--r--scripting/source/basprov/basscript.hxx89
-rw-r--r--scripting/source/basprov/makefile.mk73
-rw-r--r--scripting/source/dlgprov/dlgevtatt.cxx671
-rw-r--r--scripting/source/dlgprov/dlgevtatt.hxx167
-rw-r--r--scripting/source/dlgprov/dlgprov.cxx840
-rw-r--r--scripting/source/dlgprov/dlgprov.hxx152
-rw-r--r--scripting/source/dlgprov/dlgprov.map9
-rw-r--r--scripting/source/dlgprov/dlgprov.xml58
-rw-r--r--scripting/source/dlgprov/makefile.mk81
-rw-r--r--scripting/source/inc/bcholder.hxx70
-rw-r--r--scripting/source/inc/util/MiscUtils.hxx177
-rw-r--r--scripting/source/inc/util/scriptingconstants.hxx79
-rw-r--r--scripting/source/inc/util/util.hxx49
-rw-r--r--scripting/source/protocolhandler/exports.dxp3
-rw-r--r--scripting/source/protocolhandler/makefile.mk63
-rwxr-xr-xscripting/source/protocolhandler/protocolhandler.xml30
-rw-r--r--scripting/source/protocolhandler/scripthandler.cxx601
-rw-r--r--scripting/source/protocolhandler/scripthandler.hxx151
-rw-r--r--scripting/source/provider/ActiveMSPList.cxx317
-rw-r--r--scripting/source/provider/ActiveMSPList.hxx113
-rw-r--r--scripting/source/provider/BrowseNodeFactoryImpl.cxx797
-rw-r--r--scripting/source/provider/BrowseNodeFactoryImpl.hxx88
-rwxr-xr-xscripting/source/provider/MasterScriptProvider.cxx1037
-rw-r--r--scripting/source/provider/MasterScriptProvider.hxx157
-rw-r--r--scripting/source/provider/MasterScriptProviderFactory.cxx153
-rw-r--r--scripting/source/provider/MasterScriptProviderFactory.hxx85
-rw-r--r--scripting/source/provider/ProviderCache.cxx222
-rw-r--r--scripting/source/provider/ProviderCache.hxx108
-rw-r--r--scripting/source/provider/ScriptImpl.cxx122
-rw-r--r--scripting/source/provider/ScriptImpl.hxx113
-rwxr-xr-xscripting/source/provider/ScriptingContext.cxx116
-rw-r--r--scripting/source/provider/ScriptingContext.hxx91
-rw-r--r--scripting/source/provider/URIHelper.cxx322
-rw-r--r--scripting/source/provider/URIHelper.hxx108
-rw-r--r--scripting/source/provider/exports.dxp3
-rw-r--r--scripting/source/provider/makefile.mk53
-rwxr-xr-xscripting/source/provider/provider.xml34
-rw-r--r--scripting/source/pyprov/mailmerge.py352
-rw-r--r--scripting/source/pyprov/makefile.mk49
-rw-r--r--scripting/source/pyprov/officehelper.py93
-rw-r--r--scripting/source/pyprov/pythonscript.py967
-rw-r--r--scripting/source/runtimemgr/ScriptExecDialog.hrc28
-rw-r--r--scripting/source/runtimemgr/ScriptExecDialog.src36
-rw-r--r--scripting/source/runtimemgr/ScriptNameResolverImpl.cxx660
-rw-r--r--scripting/source/runtimemgr/ScriptNameResolverImpl.hxx110
-rwxr-xr-xscripting/source/runtimemgr/ScriptRuntimeManager.cxx566
-rw-r--r--scripting/source/runtimemgr/ScriptRuntimeManager.hxx149
-rw-r--r--scripting/source/runtimemgr/StorageBridge.cxx152
-rw-r--r--scripting/source/runtimemgr/StorageBridge.hxx85
-rw-r--r--scripting/source/runtimemgr/StorageBridgeFactory.cxx69
-rw-r--r--scripting/source/runtimemgr/StorageBridgeFactory.hxx58
-rw-r--r--scripting/source/runtimemgr/exports.dxp3
-rw-r--r--scripting/source/runtimemgr/makefile.mk48
-rwxr-xr-xscripting/source/runtimemgr/runtimemgr.xml47
-rw-r--r--scripting/source/storage/ScriptData.hxx91
-rw-r--r--scripting/source/storage/ScriptElement.cxx161
-rw-r--r--scripting/source/storage/ScriptElement.hxx61
-rw-r--r--scripting/source/storage/ScriptInfo.cxx373
-rw-r--r--scripting/source/storage/ScriptInfo.hxx75
-rw-r--r--scripting/source/storage/ScriptInfoImpl.hxx93
-rw-r--r--scripting/source/storage/ScriptMetadataImporter.cxx532
-rw-r--r--scripting/source/storage/ScriptMetadataImporter.hxx251
-rwxr-xr-xscripting/source/storage/ScriptSecurityManager.cxx605
-rwxr-xr-xscripting/source/storage/ScriptSecurityManager.hxx99
-rw-r--r--scripting/source/storage/ScriptStorage.cxx895
-rw-r--r--scripting/source/storage/ScriptStorage.hxx205
-rw-r--r--scripting/source/storage/ScriptStorageManager.cxx573
-rw-r--r--scripting/source/storage/ScriptStorageManager.hxx225
-rw-r--r--scripting/source/storage/ScriptURI.cxx227
-rw-r--r--scripting/source/storage/ScriptURI.hxx120
-rw-r--r--scripting/source/storage/XMLElement.cxx169
-rw-r--r--scripting/source/storage/XMLElement.hxx140
-rw-r--r--scripting/source/storage/exports.dxp3
-rw-r--r--scripting/source/storage/makefile.mk53
-rw-r--r--scripting/source/storage/storage.xml47
-rw-r--r--scripting/source/stringresource/makefile.mk62
-rw-r--r--scripting/source/stringresource/stringresource.cxx3097
-rw-r--r--scripting/source/stringresource/stringresource.hxx691
-rw-r--r--scripting/source/stringresource/stringresource.map9
-rw-r--r--scripting/source/stringresource/stringresource.xml36
-rwxr-xr-xscripting/source/vbaevents/eventhelper.cxx1042
-rwxr-xr-xscripting/source/vbaevents/makefile.mk93
-rwxr-xr-xscripting/source/vbaevents/service.cxx131
-rwxr-xr-xscripting/source/vbaevents/vbaevents.map9
-rwxr-xr-xscripting/source/vbaevents/vbaevents.xml26
-rwxr-xr-xscripting/util/ant.pmk55
-rw-r--r--scripting/util/exports.dxp3
-rw-r--r--scripting/util/makefile.mk67
-rwxr-xr-xscripting/util/makefile.pmk43
-rwxr-xr-xscripting/util/target.pmk28
-rw-r--r--scripting/workben/bindings/EditDebug.xdl36
-rw-r--r--scripting/workben/bindings/EventsBinding.xdl61
-rw-r--r--scripting/workben/bindings/HelpBinding.xdl30
-rw-r--r--scripting/workben/bindings/Highlight.xdl14
-rw-r--r--scripting/workben/bindings/KeyBinding.xdl59
-rw-r--r--scripting/workben/bindings/MacroEditor.xdl10
-rw-r--r--scripting/workben/bindings/MenuBinding.xdl65
-rw-r--r--scripting/workben/bindings/ScriptBinding.xba2093
-rw-r--r--scripting/workben/bindings/calckeybinding.xml94
-rw-r--r--scripting/workben/bindings/calcmenubar.xml319
-rw-r--r--scripting/workben/bindings/dialog.xlb6
-rw-r--r--scripting/workben/bindings/drawkeybinding.xml58
-rw-r--r--scripting/workben/bindings/drawmenubar.xml354
-rw-r--r--scripting/workben/bindings/eventbindings.xml4
-rw-r--r--scripting/workben/bindings/impresskeybinding.xml62
-rw-r--r--scripting/workben/bindings/impressmenubar.xml328
-rw-r--r--scripting/workben/bindings/manifest.xml14
-rw-r--r--scripting/workben/bindings/script.xlb4
-rw-r--r--scripting/workben/bindings/writerkeybinding.xml101
-rw-r--r--scripting/workben/bindings/writermenubar.xml281
-rwxr-xr-xscripting/workben/build.xml397
-rw-r--r--scripting/workben/data/ExampleSpreadSheetLatest.sxcbin0 -> 14635 bytes
-rw-r--r--scripting/workben/data/doc_with_beanshell_scripts.sxwbin0 -> 7044 bytes
-rw-r--r--scripting/workben/data/doc_with_one_script.sxwbin0 -> 6286 bytes
-rw-r--r--scripting/workben/data/doc_with_two_scripts.sxwbin0 -> 6308 bytes
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.protocolhandler.Dispatch.csv5
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.provider.Function.csv1
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.provider.FunctionProvider.csv1
-rwxr-xr-xscripting/workben/data/objdsc/drafts.com.sun.star.script.framework.runtime.ScriptRuntimeManager.csv2
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.storage.ScriptInfo.csv8
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.storage.ScriptStorage.csv4
-rw-r--r--scripting/workben/data/objdsc/drafts.com.sun.star.script.framework.storage.ScriptStorageManager.csv6
-rw-r--r--scripting/workben/data/script_in_class_file.sxwbin0 -> 6976 bytes
-rw-r--r--scripting/workben/data/script_in_jar_file.sxwbin0 -> 8081 bytes
-rw-r--r--scripting/workben/data/share_scripts.zipbin0 -> 2248 bytes
-rw-r--r--scripting/workben/data/testdata/Function.csv4
-rw-r--r--scripting/workben/data/testdata/FunctionProvider.csv1
-rw-r--r--scripting/workben/data/testdata/ScriptInfo.csv8
-rw-r--r--scripting/workben/data/testdata/ScriptRuntimeManager.csv8
-rw-r--r--scripting/workben/data/testdata/ScriptStorage.csv4
-rw-r--r--scripting/workben/data/testdata/ScriptStorageManager.csv18
-rw-r--r--scripting/workben/data/user_scripts.zipbin0 -> 6890 bytes
-rw-r--r--scripting/workben/data/xscriptcontext_test_document.sxwbin0 -> 6580 bytes
-rw-r--r--scripting/workben/ifc/scripting/ScriptingUtils.java124
-rw-r--r--scripting/workben/ifc/scripting/SecurityDialogUtil.java176
-rw-r--r--scripting/workben/ifc/scripting/_XFunction.java169
-rw-r--r--scripting/workben/ifc/scripting/_XFunctionProvider.java101
-rw-r--r--scripting/workben/ifc/scripting/_XScriptInfo.java331
-rw-r--r--scripting/workben/ifc/scripting/_XScriptInfoAccess.java228
-rw-r--r--scripting/workben/ifc/scripting/_XScriptInvocation.java232
-rw-r--r--scripting/workben/ifc/scripting/_XScriptNameResolver.java186
-rw-r--r--scripting/workben/ifc/scripting/_XScriptSecurity.java409
-rw-r--r--scripting/workben/ifc/scripting/_XScriptStorageManager.java267
-rw-r--r--scripting/workben/ifc/scripting/_XScriptStorageRefresh.java90
-rw-r--r--scripting/workben/ifc/scripting/makefile.mk40
-rw-r--r--scripting/workben/installer/Banner.java30
-rw-r--r--scripting/workben/installer/ExceptionTraceHelper.java64
-rw-r--r--scripting/workben/installer/ExecCmd.java100
-rw-r--r--scripting/workben/installer/FileUpdater.java232
-rw-r--r--scripting/workben/installer/Final.java136
-rw-r--r--scripting/workben/installer/IdeFinal.java125
-rw-r--r--scripting/workben/installer/IdeUpdater.java172
-rw-r--r--scripting/workben/installer/IdeVersion.java349
-rw-r--r--scripting/workben/installer/IdeWelcome.java79
-rw-r--r--scripting/workben/installer/InstUtil.java463
-rw-r--r--scripting/workben/installer/InstallListener.java6
-rw-r--r--scripting/workben/installer/InstallWizard.java389
-rw-r--r--scripting/workben/installer/InstallationEvent.java22
-rw-r--r--scripting/workben/installer/LogStream.java54
-rw-r--r--scripting/workben/installer/NavPanel.java113
-rw-r--r--scripting/workben/installer/Navigation.java58
-rw-r--r--scripting/workben/installer/ProtocolHandler.xcu10
-rw-r--r--scripting/workben/installer/Register.java144
-rw-r--r--scripting/workben/installer/Scripting.BeanShell.xcu11
-rwxr-xr-xscripting/workben/installer/Scripting.JavaScript.xcu11
-rw-r--r--scripting/workben/installer/Scripting.xcs57
-rw-r--r--scripting/workben/installer/Version.java339
-rw-r--r--scripting/workben/installer/Welcome.java156
-rw-r--r--scripting/workben/installer/XmlUpdater.java427
-rw-r--r--scripting/workben/installer/ZipData.java103
-rw-r--r--scripting/workben/installer/sidebar.jpgbin0 -> 8393 bytes
-rwxr-xr-xscripting/workben/makefile.mk35
-rw-r--r--scripting/workben/mod/_scripting/Dispatch.java108
-rw-r--r--scripting/workben/mod/_scripting/Function.java95
-rw-r--r--scripting/workben/mod/_scripting/FunctionProvider.java82
-rw-r--r--scripting/workben/mod/_scripting/ScriptInfo.java108
-rw-r--r--scripting/workben/mod/_scripting/ScriptRuntimeManager.java65
-rw-r--r--scripting/workben/mod/_scripting/ScriptStorage.java103
-rw-r--r--scripting/workben/mod/_scripting/ScriptStorageManager.java82
-rw-r--r--scripting/workben/mod/_scripting/TestDataLoader.java123
-rw-r--r--scripting/workben/mod/_scripting/makefile.mk40
-rw-r--r--sd/inc/CustomAnimationCloner.hxx42
-rw-r--r--sd/inc/CustomAnimationEffect.hxx476
-rw-r--r--sd/inc/CustomAnimationPreset.hxx155
-rw-r--r--sd/inc/EffectMigration.hxx83
-rw-r--r--sd/inc/FactoryIds.hxx52
-rw-r--r--sd/inc/Outliner.hxx574
-rw-r--r--sd/inc/OutlinerIterator.hxx399
-rw-r--r--sd/inc/SdShapeTypes.hxx83
-rw-r--r--sd/inc/TransitionPreset.hxx95
-rw-r--r--sd/inc/animations.hxx30
-rw-r--r--sd/inc/anmdef.hxx41
-rw-r--r--sd/inc/anminfo.hxx89
-rw-r--r--sd/inc/app.hrc466
-rw-r--r--sd/inc/app.hxx29
-rw-r--r--sd/inc/cusshow.hxx79
-rw-r--r--sd/inc/diadef.h42
-rw-r--r--sd/inc/drawdoc.hxx705
-rw-r--r--sd/inc/eetext.hxx34
-rw-r--r--sd/inc/fadedef.h44
-rw-r--r--sd/inc/glob.hrc155
-rw-r--r--sd/inc/glob.hxx97
-rw-r--r--sd/inc/helper/simplereferencecomponent.hxx115
-rw-r--r--sd/inc/helpids.h281
-rw-r--r--sd/inc/imapinfo.hxx71
-rw-r--r--sd/inc/makefile.mk48
-rw-r--r--sd/inc/misc.hxx36
-rw-r--r--sd/inc/misc/scopelock.hxx58
-rw-r--r--sd/inc/movedef.hxx42
-rw-r--r--sd/inc/pch/precompiled_sd.cxx29
-rw-r--r--sd/inc/pch/precompiled_sd.hxx917
-rw-r--r--sd/inc/pglink.hxx63
-rw-r--r--sd/inc/pres.hxx124
-rw-r--r--sd/inc/prlayout.hxx56
-rw-r--r--sd/inc/resltn.hxx52
-rw-r--r--sd/inc/sd_primitivetypes2d.hxx49
-rw-r--r--sd/inc/sdabstdlg.hxx232
-rw-r--r--sd/inc/sdattr.hrc245
-rw-r--r--sd/inc/sdattr.hxx175
-rw-r--r--sd/inc/sdcgmfilter.hxx50
-rw-r--r--sd/inc/sddll.hxx79
-rw-r--r--sd/inc/sddllapi.h40
-rw-r--r--sd/inc/sdenumdef.hxx38
-rw-r--r--sd/inc/sderror.hxx65
-rw-r--r--sd/inc/sdfilter.hxx79
-rw-r--r--sd/inc/sdgrffilter.hxx56
-rw-r--r--sd/inc/sdhtmlfilter.hxx54
-rw-r--r--sd/inc/sdiocmpt.hxx76
-rw-r--r--sd/inc/sdmod.hxx215
-rw-r--r--sd/inc/sdobjfac.hxx59
-rw-r--r--sd/inc/sdpage.hxx413
-rw-r--r--sd/inc/sdpptwrp.hxx56
-rw-r--r--sd/inc/sdresid.hxx42
-rw-r--r--sd/inc/sduiks.hrc73
-rw-r--r--sd/inc/sdundo.hxx53
-rw-r--r--sd/inc/sdxmlwrp.hxx63
-rw-r--r--sd/inc/segdefs.hxx29
-rw-r--r--sd/inc/segdefs_.hxx1400
-rw-r--r--sd/inc/shapelist.hxx88
-rw-r--r--sd/inc/stlfamily.hxx126
-rw-r--r--sd/inc/stlpool.hxx151
-rw-r--r--sd/inc/stlsheet.hxx161
-rw-r--r--sd/inc/strmname.h50
-rw-r--r--sd/inc/textapi.hxx70
-rw-r--r--sd/inc/undo/undofactory.hxx50
-rw-r--r--sd/inc/undo/undomanager.hxx81
-rw-r--r--sd/inc/undo/undoobjects.hxx202
-rw-r--r--sd/inc/undoanim.hxx95
-rwxr-xr-xsd/prj/build.lst46
-rw-r--r--sd/prj/d.lst76
-rw-r--r--sd/prj/make.bat92
-rw-r--r--sd/prj/postdlv.btm2
-rw-r--r--sd/prj/stree.bat151
-rw-r--r--sd/prj/struct.txt54
-rw-r--r--sd/qa/unoapi/knownissues.xcl52
-rw-r--r--sd/qa/unoapi/makefile.mk40
-rw-r--r--sd/qa/unoapi/sd.sce23
-rw-r--r--sd/res/buttons/glas-blue.zipbin0 -> 25629 bytes
-rw-r--r--sd/res/buttons/glas-green.zipbin0 -> 27086 bytes
-rw-r--r--sd/res/buttons/glas-red.zipbin0 -> 26476 bytes
-rw-r--r--sd/res/buttons/round-gorilla.zipbin0 -> 23118 bytes
-rw-r--r--sd/res/buttons/round-white.zipbin0 -> 16899 bytes
-rw-r--r--sd/res/buttons/simple.zipbin0 -> 7880 bytes
-rw-r--r--sd/res/buttons/square-blue.zipbin0 -> 16160 bytes
-rw-r--r--sd/res/buttons/square-gray.zipbin0 -> 14332 bytes
-rw-r--r--sd/res/buttons/square-green.zipbin0 -> 16646 bytes
-rw-r--r--sd/res/buttons/square-red.zipbin0 -> 16522 bytes
-rw-r--r--sd/res/buttons/square-yellow.zipbin0 -> 16105 bytes
-rw-r--r--sd/res/webview/common.inc110
-rw-r--r--sd/res/webview/common.pl48
-rw-r--r--sd/res/webview/edit.asp9
-rw-r--r--sd/res/webview/edit.pl18
-rw-r--r--sd/res/webview/editpic.asp58
-rw-r--r--sd/res/webview/editpic.pl40
-rw-r--r--sd/res/webview/index.pl17
-rw-r--r--sd/res/webview/poll.asp36
-rw-r--r--sd/res/webview/poll.pl32
-rw-r--r--sd/res/webview/savepic.asp39
-rw-r--r--sd/res/webview/savepic.pl41
-rw-r--r--sd/res/webview/show.asp42
-rw-r--r--sd/res/webview/show.pl39
-rw-r--r--sd/res/webview/webview.asp28
-rw-r--r--sd/res/webview/webview.pl21
-rw-r--r--sd/sdi/SlideSorterController.sdi327
-rw-r--r--sd/sdi/TaskPaneViewShell.sdi308
-rw-r--r--sd/sdi/ViewShellBase.sdi383
-rw-r--r--sd/sdi/_docsh.sdi84
-rw-r--r--sd/sdi/_drvwsh.sdi2506
-rw-r--r--sd/sdi/app.sdi84
-rw-r--r--sd/sdi/docshell.sdi38
-rw-r--r--sd/sdi/drbezob.sdi64
-rw-r--r--sd/sdi/drgrfob.sdi121
-rw-r--r--sd/sdi/drtxtob.sdi206
-rw-r--r--sd/sdi/drviewsh.sdi237
-rw-r--r--sd/sdi/grdocsh.sdi38
-rw-r--r--sd/sdi/grviewsh.sdi90
-rw-r--r--sd/sdi/makefile.mk97
-rw-r--r--sd/sdi/mediaob.sdi8
-rw-r--r--sd/sdi/outlnvsh.sdi517
-rw-r--r--sd/sdi/sdgslots.sdi105
-rw-r--r--sd/sdi/sdnew.sdi77
-rw-r--r--sd/sdi/sdraw.sdi6958
-rw-r--r--sd/sdi/sdslots.hrc33
-rw-r--r--sd/sdi/sdslots.sdi108
-rw-r--r--sd/sdi/tables.sdi153
-rw-r--r--sd/source/core/CustomAnimationCloner.cxx350
-rw-r--r--sd/source/core/CustomAnimationEffect.cxx3843
-rw-r--r--sd/source/core/CustomAnimationPreset.cxx672
-rw-r--r--sd/source/core/EffectMigration.cxx1344
-rw-r--r--sd/source/core/PageListWatcher.cxx223
-rw-r--r--sd/source/core/PageListWatcher.hxx99
-rw-r--r--sd/source/core/TransitionPreset.cxx258
-rw-r--r--sd/source/core/anminfo.cxx152
-rw-r--r--sd/source/core/annotations/Annotation.cxx445
-rw-r--r--sd/source/core/annotations/AnnotationAccess.cxx59
-rw-r--r--sd/source/core/annotations/AnnotationEnumeration.cxx93
-rw-r--r--sd/source/core/annotations/makefile.mk49
-rw-r--r--sd/source/core/cusshow.cxx126
-rw-r--r--sd/source/core/drawdoc.cxx1102
-rw-r--r--sd/source/core/drawdoc2.cxx1651
-rw-r--r--sd/source/core/drawdoc3.cxx2055
-rw-r--r--sd/source/core/drawdoc4.cxx1585
-rw-r--r--sd/source/core/drawdoc_animations.cxx64
-rw-r--r--sd/source/core/glob.src426
-rw-r--r--sd/source/core/makefile.mk78
-rw-r--r--sd/source/core/pglink.cxx147
-rw-r--r--sd/source/core/sdattr.cxx154
-rw-r--r--sd/source/core/sdiocmpt.cxx136
-rw-r--r--sd/source/core/sdobjfac.cxx79
-rw-r--r--sd/source/core/sdpage.cxx3099
-rw-r--r--sd/source/core/sdpage2.cxx648
-rw-r--r--sd/source/core/sdpage_animations.cxx163
-rw-r--r--sd/source/core/shapelist.cxx194
-rw-r--r--sd/source/core/stlfamily.cxx603
-rw-r--r--sd/source/core/stlpool.cxx1477
-rw-r--r--sd/source/core/stlsheet.cxx1448
-rw-r--r--sd/source/core/text/makefile.mk48
-rw-r--r--sd/source/core/text/textapi.cxx323
-rw-r--r--sd/source/core/typemap.cxx136
-rw-r--r--sd/source/core/undo/makefile.mk50
-rw-r--r--sd/source/core/undo/undofactory.cxx65
-rw-r--r--sd/source/core/undo/undomanager.cxx109
-rw-r--r--sd/source/core/undo/undoobjects.cxx447
-rw-r--r--sd/source/core/undoanim.cxx296
-rw-r--r--sd/source/filter/cgm/makefile.mk43
-rw-r--r--sd/source/filter/cgm/sdcgmfilter.cxx161
-rw-r--r--sd/source/filter/eppt/eppt.cxx2502
-rw-r--r--sd/source/filter/eppt/eppt.hxx850
-rw-r--r--sd/source/filter/eppt/epptdef.hxx263
-rw-r--r--sd/source/filter/eppt/epptso.cxx5844
-rw-r--r--sd/source/filter/eppt/escherex.cxx294
-rw-r--r--sd/source/filter/eppt/escherex.hxx77
-rw-r--r--sd/source/filter/eppt/makefile.mk52
-rw-r--r--sd/source/filter/eppt/pptexanimations.cxx2191
-rw-r--r--sd/source/filter/eppt/pptexanimations.hxx137
-rw-r--r--sd/source/filter/eppt/pptexsoundcollection.cxx229
-rw-r--r--sd/source/filter/eppt/pptexsoundcollection.hxx83
-rw-r--r--sd/source/filter/grf/makefile.mk44
-rw-r--r--sd/source/filter/grf/sdgrffilter.cxx558
-rw-r--r--sd/source/filter/html/HtmlOptionsDialog.cxx287
-rw-r--r--sd/source/filter/html/buttonset.cxx309
-rw-r--r--sd/source/filter/html/buttonset.hxx53
-rw-r--r--sd/source/filter/html/htmlattr.cxx114
-rw-r--r--sd/source/filter/html/htmlattr.hxx53
-rw-r--r--sd/source/filter/html/htmlex.cxx3401
-rw-r--r--sd/source/filter/html/htmlex.hxx240
-rw-r--r--sd/source/filter/html/makefile.mk68
-rw-r--r--sd/source/filter/html/pubdlg.cxx1755
-rw-r--r--sd/source/filter/html/pubdlg.src817
-rw-r--r--sd/source/filter/html/sdhtmlfilter.cxx86
-rw-r--r--sd/source/filter/makefile.mk55
-rw-r--r--sd/source/filter/ppt/makefile.mk57
-rw-r--r--sd/source/filter/ppt/ppt97animations.cxx803
-rw-r--r--sd/source/filter/ppt/ppt97animations.hxx158
-rw-r--r--sd/source/filter/ppt/pptanimations.hxx559
-rw-r--r--sd/source/filter/ppt/pptatom.cpp123
-rw-r--r--sd/source/filter/ppt/pptatom.hxx160
-rw-r--r--sd/source/filter/ppt/pptin.cxx2765
-rw-r--r--sd/source/filter/ppt/pptin.hxx105
-rw-r--r--sd/source/filter/ppt/pptinanimations.cxx3948
-rw-r--r--sd/source/filter/ppt/pptinanimations.hxx132
-rw-r--r--sd/source/filter/ppt/propread.cxx695
-rw-r--r--sd/source/filter/ppt/propread.hxx191
-rw-r--r--sd/source/filter/sdfilter.cxx133
-rw-r--r--sd/source/filter/sdpptwrp.cxx199
-rw-r--r--sd/source/filter/xml/makefile.mk47
-rw-r--r--sd/source/filter/xml/sdtransform.cxx376
-rw-r--r--sd/source/filter/xml/sdxmlwrp.cxx1113
-rw-r--r--sd/source/helper/makefile.mk47
-rw-r--r--sd/source/helper/simplereferencecomponent.cxx140
-rw-r--r--sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx842
-rw-r--r--sd/source/ui/accessibility/AccessibleDrawDocumentView.cxx742
-rw-r--r--sd/source/ui/accessibility/AccessibleOutlineEditSource.cxx225
-rw-r--r--sd/source/ui/accessibility/AccessibleOutlineView.cxx288
-rw-r--r--sd/source/ui/accessibility/AccessiblePageShape.cxx377
-rw-r--r--sd/source/ui/accessibility/AccessiblePresentationGraphicShape.cxx127
-rw-r--r--sd/source/ui/accessibility/AccessiblePresentationOLEShape.cxx148
-rw-r--r--sd/source/ui/accessibility/AccessiblePresentationShape.cxx180
-rw-r--r--sd/source/ui/accessibility/AccessibleScrollPanel.cxx151
-rw-r--r--sd/source/ui/accessibility/AccessibleSlideSorterObject.cxx584
-rw-r--r--sd/source/ui/accessibility/AccessibleSlideSorterView.cxx1065
-rw-r--r--sd/source/ui/accessibility/AccessibleTaskPane.cxx94
-rw-r--r--sd/source/ui/accessibility/AccessibleTreeNode.cxx721
-rw-r--r--sd/source/ui/accessibility/AccessibleViewForwarder.cxx193
-rw-r--r--sd/source/ui/accessibility/SdShapeTypes.cxx147
-rw-r--r--sd/source/ui/accessibility/accessibility.hrc53
-rw-r--r--sd/source/ui/accessibility/accessibility.src115
-rwxr-xr-xsd/source/ui/accessibility/makefile.mk72
-rw-r--r--sd/source/ui/animations/AnimationSchemesPane.cxx443
-rw-r--r--sd/source/ui/animations/AnimationSchemesPane.hrc50
-rw-r--r--sd/source/ui/animations/AnimationSchemesPane.hxx114
-rw-r--r--sd/source/ui/animations/AnimationSchemesPane.src113
-rw-r--r--sd/source/ui/animations/CustomAnimation.hrc144
-rw-r--r--sd/source/ui/animations/CustomAnimation.src495
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.cxx720
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.hrc38
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.hxx85
-rw-r--r--sd/source/ui/animations/CustomAnimationCreateDialog.src144
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.cxx2638
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.hrc89
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.hxx186
-rw-r--r--sd/source/ui/animations/CustomAnimationDialog.src653
-rw-r--r--sd/source/ui/animations/CustomAnimationList.cxx1018
-rw-r--r--sd/source/ui/animations/CustomAnimationList.hxx129
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.cxx2489
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.hrc60
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.hxx190
-rw-r--r--sd/source/ui/animations/CustomAnimationPane.src225
-rw-r--r--sd/source/ui/animations/CustomAnimationSchemesPane.hrc32
-rw-r--r--sd/source/ui/animations/CustomAnimationSchemesPane.src71
-rw-r--r--sd/source/ui/animations/DialogListBox.cxx340
-rw-r--r--sd/source/ui/animations/STLPropertySet.cxx124
-rw-r--r--sd/source/ui/animations/STLPropertySet.hxx86
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.cxx1321
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.hrc68
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.hxx151
-rw-r--r--sd/source/ui/animations/SlideTransitionPane.src220
-rw-r--r--sd/source/ui/animations/makefile.mk68
-rw-r--r--sd/source/ui/animations/motionpathtag.cxx1327
-rw-r--r--sd/source/ui/animations/motionpathtag.hxx133
-rw-r--r--sd/source/ui/annotations/annotationmanager.cxx1273
-rwxr-xr-xsd/source/ui/annotations/annotationmanagerimpl.hxx144
-rw-r--r--sd/source/ui/annotations/annotations.hrc65
-rw-r--r--sd/source/ui/annotations/annotations.src209
-rw-r--r--sd/source/ui/annotations/annotationtag.cxx790
-rw-r--r--sd/source/ui/annotations/annotationtag.hxx107
-rw-r--r--sd/source/ui/annotations/annotationwindow.cxx846
-rw-r--r--sd/source/ui/annotations/annotationwindow.hxx176
-rw-r--r--sd/source/ui/annotations/makefile.mk56
-rw-r--r--sd/source/ui/app/_app.hrc42
-rw-r--r--sd/source/ui/app/accel_tmpl.src117
-rw-r--r--sd/source/ui/app/accelids_tmpl.src54
-rw-r--r--sd/source/ui/app/app.img120
-rw-r--r--sd/source/ui/app/app.src35
-rw-r--r--sd/source/ui/app/makefile.mk114
-rw-r--r--sd/source/ui/app/menu_tmpl.src40
-rw-r--r--sd/source/ui/app/menuids2_tmpl.src1022
-rw-r--r--sd/source/ui/app/menuids3_tmpl.src246
-rw-r--r--sd/source/ui/app/menuids4_tmpl.src79
-rw-r--r--sd/source/ui/app/menuids_tmpl.src1305
-rw-r--r--sd/source/ui/app/menuportal_tmpl.src388
-rw-r--r--sd/source/ui/app/optsitem.cxx1814
-rw-r--r--sd/source/ui/app/popup.src553
-rw-r--r--sd/source/ui/app/popup2_tmpl.src872
-rw-r--r--sd/source/ui/app/res_bmp.src561
-rw-r--r--sd/source/ui/app/sddll.cxx151
-rw-r--r--sd/source/ui/app/sddll1.cxx138
-rw-r--r--sd/source/ui/app/sddll2.cxx230
-rw-r--r--sd/source/ui/app/sdmod.cxx355
-rw-r--r--sd/source/ui/app/sdmod1.cxx1097
-rw-r--r--sd/source/ui/app/sdmod2.cxx834
-rw-r--r--sd/source/ui/app/sdpopup.cxx338
-rw-r--r--sd/source/ui/app/sdresid.cxx46
-rw-r--r--sd/source/ui/app/sdstring.src52
-rw-r--r--sd/source/ui/app/sdxfer.cxx881
-rw-r--r--sd/source/ui/app/strings.src1272
-rw-r--r--sd/source/ui/app/tbx_ww.src1124
-rw-r--r--sd/source/ui/app/tbxids_tmpl.src536
-rw-r--r--sd/source/ui/app/tbxww.cxx472
-rw-r--r--sd/source/ui/app/tmplctrl.cxx160
-rw-r--r--sd/source/ui/app/toolbox.src786
-rw-r--r--sd/source/ui/app/toolbox2_tmpl.src885
-rw-r--r--sd/source/ui/dlg/AnimationChildWindow.cxx81
-rw-r--r--sd/source/ui/dlg/LayerDialog.src59
-rw-r--r--sd/source/ui/dlg/LayerDialogChildWindow.cxx84
-rw-r--r--sd/source/ui/dlg/LayerDialogContent.cxx114
-rw-r--r--sd/source/ui/dlg/LayerTabBar.cxx383
-rw-r--r--sd/source/ui/dlg/NavigatorChildWindow.cxx54
-rw-r--r--sd/source/ui/dlg/PaneChildWindows.cxx164
-rw-r--r--sd/source/ui/dlg/PaneDockingWindow.cxx411
-rw-r--r--sd/source/ui/dlg/PaneDockingWindow.src76
-rw-r--r--sd/source/ui/dlg/PaneShells.cxx145
-rw-r--r--sd/source/ui/dlg/SpellDialogChildWindow.cxx213
-rw-r--r--sd/source/ui/dlg/TemplateScanner.cxx493
-rw-r--r--sd/source/ui/dlg/animobjs.cxx1325
-rw-r--r--sd/source/ui/dlg/animobjs.src356
-rw-r--r--sd/source/ui/dlg/assclass.cxx220
-rw-r--r--sd/source/ui/dlg/brkdlg.cxx187
-rw-r--r--sd/source/ui/dlg/brkdlg.src96
-rw-r--r--sd/source/ui/dlg/celltempl.cxx120
-rw-r--r--sd/source/ui/dlg/celltempl.src78
-rw-r--r--sd/source/ui/dlg/copydlg.cxx357
-rw-r--r--sd/source/ui/dlg/copydlg.src308
-rw-r--r--sd/source/ui/dlg/custsdlg.cxx561
-rw-r--r--sd/source/ui/dlg/custsdlg.src190
-rw-r--r--sd/source/ui/dlg/diactrl.cxx179
-rw-r--r--sd/source/ui/dlg/dlg_char.src129
-rw-r--r--sd/source/ui/dlg/dlgass.cxx2057
-rw-r--r--sd/source/ui/dlg/dlgass.src570
-rw-r--r--sd/source/ui/dlg/dlgassim.cxx493
-rw-r--r--sd/source/ui/dlg/dlgassim.hxx119
-rw-r--r--sd/source/ui/dlg/dlgchar.cxx93
-rw-r--r--sd/source/ui/dlg/dlgctrls.cxx128
-rw-r--r--sd/source/ui/dlg/dlgfield.cxx366
-rw-r--r--sd/source/ui/dlg/dlgfield.src127
-rw-r--r--sd/source/ui/dlg/dlgolbul.cxx242
-rw-r--r--sd/source/ui/dlg/dlgolbul.src70
-rw-r--r--sd/source/ui/dlg/dlgpage.cxx118
-rw-r--r--sd/source/ui/dlg/dlgpage.src119
-rw-r--r--sd/source/ui/dlg/dlgsnap.cxx227
-rw-r--r--sd/source/ui/dlg/dlgsnap.src206
-rw-r--r--sd/source/ui/dlg/docprev.cxx324
-rw-r--r--sd/source/ui/dlg/filedlg.cxx456
-rw-r--r--sd/source/ui/dlg/gluectrl.cxx236
-rw-r--r--sd/source/ui/dlg/headerfooterdlg.cxx949
-rw-r--r--sd/source/ui/dlg/headerfooterdlg.src303
-rw-r--r--sd/source/ui/dlg/ins_paste.cxx66
-rw-r--r--sd/source/ui/dlg/ins_paste.src98
-rw-r--r--sd/source/ui/dlg/inspagob.cxx189
-rw-r--r--sd/source/ui/dlg/inspagob.src117
-rw-r--r--sd/source/ui/dlg/layeroptionsdlg.cxx85
-rw-r--r--sd/source/ui/dlg/layeroptionsdlg.src183
-rw-r--r--sd/source/ui/dlg/makefile.mk200
-rw-r--r--sd/source/ui/dlg/masterlayoutdlg.cxx179
-rw-r--r--sd/source/ui/dlg/masterlayoutdlg.src110
-rw-r--r--sd/source/ui/dlg/morphdlg.cxx166
-rw-r--r--sd/source/ui/dlg/morphdlg.src137
-rw-r--r--sd/source/ui/dlg/navigatr.cxx1000
-rw-r--r--sd/source/ui/dlg/navigatr.src161
-rw-r--r--sd/source/ui/dlg/paragr.cxx192
-rw-r--r--sd/source/ui/dlg/paragr.src173
-rw-r--r--sd/source/ui/dlg/present.cxx319
-rw-r--r--sd/source/ui/dlg/present.src277
-rw-r--r--sd/source/ui/dlg/printdialog.cxx342
-rw-r--r--sd/source/ui/dlg/printdialog.hrc38
-rw-r--r--sd/source/ui/dlg/printdialog.src130
-rw-r--r--sd/source/ui/dlg/printdlg.cxx88
-rw-r--r--sd/source/ui/dlg/printdlg.src130
-rw-r--r--sd/source/ui/dlg/prltempl.cxx357
-rw-r--r--sd/source/ui/dlg/prltempl.src195
-rw-r--r--sd/source/ui/dlg/prntopts.cxx327
-rw-r--r--sd/source/ui/dlg/prntopts.src232
-rw-r--r--sd/source/ui/dlg/sdabstdlg.cxx53
-rw-r--r--sd/source/ui/dlg/sddlgfact.cxx580
-rw-r--r--sd/source/ui/dlg/sddlgfact.hxx309
-rw-r--r--sd/source/ui/dlg/sdpreslt.cxx357
-rw-r--r--sd/source/ui/dlg/sdpreslt.src124
-rw-r--r--sd/source/ui/dlg/sdtreelb.cxx1514
-rw-r--r--sd/source/ui/dlg/sduiexp.cxx55
-rw-r--r--sd/source/ui/dlg/tabtempl.cxx223
-rw-r--r--sd/source/ui/dlg/tabtempl.src193
-rw-r--r--sd/source/ui/dlg/tpaction.cxx970
-rw-r--r--sd/source/ui/dlg/tpaction.src196
-rw-r--r--sd/source/ui/dlg/tpoption.cxx858
-rw-r--r--sd/source/ui/dlg/tpoption.src360
-rw-r--r--sd/source/ui/dlg/unchss.cxx178
-rw-r--r--sd/source/ui/dlg/vectdlg.cxx400
-rw-r--r--sd/source/ui/dlg/vectdlg.src245
-rw-r--r--sd/source/ui/docshell/docshel2.cxx509
-rw-r--r--sd/source/ui/docshell/docshel3.cxx259
-rw-r--r--sd/source/ui/docshell/docshel4.cxx1041
-rw-r--r--sd/source/ui/docshell/docshell.cxx604
-rw-r--r--sd/source/ui/docshell/grdocsh.cxx82
-rw-r--r--sd/source/ui/docshell/makefile.mk56
-rw-r--r--sd/source/ui/docshell/sdclient.cxx233
-rw-r--r--sd/source/ui/framework/configuration/ChangeRequestQueue.cxx38
-rw-r--r--sd/source/ui/framework/configuration/ChangeRequestQueue.hxx55
-rw-r--r--sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx236
-rw-r--r--sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.hxx136
-rw-r--r--sd/source/ui/framework/configuration/Configuration.cxx420
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationClassifier.cxx245
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationClassifier.hxx183
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationController.cxx752
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.cxx232
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationControllerBroadcaster.hxx151
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx351
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.hxx145
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationTracer.cxx87
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationTracer.hxx57
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationUpdater.cxx476
-rw-r--r--sd/source/ui/framework/configuration/ConfigurationUpdater.hxx218
-rw-r--r--sd/source/ui/framework/configuration/GenericConfigurationChangeRequest.cxx104
-rw-r--r--sd/source/ui/framework/configuration/GenericConfigurationChangeRequest.hxx123
-rw-r--r--sd/source/ui/framework/configuration/ResourceFactoryManager.cxx230
-rw-r--r--sd/source/ui/framework/configuration/ResourceFactoryManager.hxx128
-rw-r--r--sd/source/ui/framework/configuration/ResourceId.cxx637
-rw-r--r--sd/source/ui/framework/configuration/UpdateRequest.cxx86
-rw-r--r--sd/source/ui/framework/configuration/UpdateRequest.hxx93
-rw-r--r--sd/source/ui/framework/configuration/makefile.mk63
-rw-r--r--sd/source/ui/framework/factories/BasicPaneFactory.cxx593
-rw-r--r--sd/source/ui/framework/factories/BasicPaneFactory.hxx174
-rw-r--r--sd/source/ui/framework/factories/BasicToolBarFactory.cxx244
-rw-r--r--sd/source/ui/framework/factories/BasicToolBarFactory.hxx118
-rw-r--r--sd/source/ui/framework/factories/BasicViewFactory.cxx613
-rw-r--r--sd/source/ui/framework/factories/BasicViewFactory.hxx156
-rw-r--r--sd/source/ui/framework/factories/ChildWindowPane.cxx251
-rw-r--r--sd/source/ui/framework/factories/ChildWindowPane.hxx132
-rw-r--r--sd/source/ui/framework/factories/FrameWindowPane.cxx62
-rw-r--r--sd/source/ui/framework/factories/FrameWindowPane.hxx63
-rw-r--r--sd/source/ui/framework/factories/FullScreenPane.cxx294
-rw-r--r--sd/source/ui/framework/factories/FullScreenPane.hxx105
-rw-r--r--sd/source/ui/framework/factories/Pane.cxx267
-rw-r--r--sd/source/ui/framework/factories/PresentationFactory.cxx321
-rw-r--r--sd/source/ui/framework/factories/TaskPanelFactory.cxx333
-rw-r--r--sd/source/ui/framework/factories/TaskPanelFactory.hxx98
-rw-r--r--sd/source/ui/framework/factories/ViewShellWrapper.cxx265
-rw-r--r--sd/source/ui/framework/factories/makefile.mk60
-rw-r--r--sd/source/ui/framework/module/CenterViewFocusModule.cxx195
-rw-r--r--sd/source/ui/framework/module/CenterViewFocusModule.hxx112
-rw-r--r--sd/source/ui/framework/module/DrawModule.cxx56
-rw-r--r--sd/source/ui/framework/module/ImpressModule.cxx63
-rw-r--r--sd/source/ui/framework/module/ModuleController.cxx339
-rw-r--r--sd/source/ui/framework/module/PresentationModule.cxx48
-rw-r--r--sd/source/ui/framework/module/ReadOnlyModeObserver.cxx231
-rw-r--r--sd/source/ui/framework/module/ReadOnlyModeObserver.hxx145
-rw-r--r--sd/source/ui/framework/module/ResourceManager.cxx315
-rw-r--r--sd/source/ui/framework/module/ResourceManager.hxx135
-rw-r--r--sd/source/ui/framework/module/ShellStackGuard.cxx192
-rw-r--r--sd/source/ui/framework/module/ShellStackGuard.hxx116
-rw-r--r--sd/source/ui/framework/module/SlideSorterModule.cxx155
-rw-r--r--sd/source/ui/framework/module/SlideSorterModule.hxx69
-rw-r--r--sd/source/ui/framework/module/TaskPaneModule.cxx162
-rw-r--r--sd/source/ui/framework/module/TaskPaneModule.hxx50
-rw-r--r--sd/source/ui/framework/module/ToolBarModule.cxx234
-rw-r--r--sd/source/ui/framework/module/ToolBarModule.hxx102
-rw-r--r--sd/source/ui/framework/module/ViewTabBarModule.cxx220
-rw-r--r--sd/source/ui/framework/module/ViewTabBarModule.hxx107
-rw-r--r--sd/source/ui/framework/module/makefile.mk62
-rw-r--r--sd/source/ui/framework/tools/FrameworkHelper.cxx1221
-rw-r--r--sd/source/ui/framework/tools/makefile.mk51
-rw-r--r--sd/source/ui/func/bulmaper.cxx191
-rw-r--r--sd/source/ui/func/fuarea.cxx117
-rw-r--r--sd/source/ui/func/fubullet.cxx360
-rw-r--r--sd/source/ui/func/fuchar.cxx147
-rw-r--r--sd/source/ui/func/fucon3d.cxx531
-rw-r--r--sd/source/ui/func/fuconarc.cxx339
-rw-r--r--sd/source/ui/func/fuconbez.cxx538
-rw-r--r--sd/source/ui/func/fuconcs.cxx344
-rw-r--r--sd/source/ui/func/fuconnct.cxx91
-rw-r--r--sd/source/ui/func/fuconrec.cxx1024
-rw-r--r--sd/source/ui/func/fuconstr.cxx427
-rw-r--r--sd/source/ui/func/fuconuno.cxx221
-rw-r--r--sd/source/ui/func/fucopy.cxx315
-rw-r--r--sd/source/ui/func/fucushow.cxx99
-rw-r--r--sd/source/ui/func/fudraw.cxx1150
-rw-r--r--sd/source/ui/func/fudspord.cxx194
-rw-r--r--sd/source/ui/func/fuediglu.cxx464
-rw-r--r--sd/source/ui/func/fuexpand.cxx275
-rw-r--r--sd/source/ui/func/fuformatpaintbrush.cxx295
-rw-r--r--sd/source/ui/func/fuhhconv.cxx290
-rw-r--r--sd/source/ui/func/fuinsert.cxx757
-rw-r--r--sd/source/ui/func/fuinsfil.cxx824
-rw-r--r--sd/source/ui/func/fuline.cxx130
-rw-r--r--sd/source/ui/func/fulinend.cxx183
-rw-r--r--sd/source/ui/func/fulink.cxx92
-rw-r--r--sd/source/ui/func/fumeasur.cxx92
-rw-r--r--sd/source/ui/func/fumorph.cxx513
-rw-r--r--sd/source/ui/func/fuoaprms.cxx839
-rw-r--r--sd/source/ui/func/fuolbull.cxx146
-rw-r--r--sd/source/ui/func/fuoltext.cxx361
-rw-r--r--sd/source/ui/func/fuoutl.cxx100
-rw-r--r--sd/source/ui/func/fupage.cxx587
-rw-r--r--sd/source/ui/func/fuparagr.cxx187
-rw-r--r--sd/source/ui/func/fupoor.cxx1298
-rw-r--r--sd/source/ui/func/fuprlout.cxx287
-rw-r--r--sd/source/ui/func/fuprobjs.cxx179
-rw-r--r--sd/source/ui/func/fuscale.cxx216
-rw-r--r--sd/source/ui/func/fusearch.cxx171
-rw-r--r--sd/source/ui/func/fusel.cxx1498
-rw-r--r--sd/source/ui/func/fusldlg.cxx265
-rw-r--r--sd/source/ui/func/fusnapln.cxx218
-rw-r--r--sd/source/ui/func/fuspell.cxx166
-rw-r--r--sd/source/ui/func/fusumry.cxx243
-rw-r--r--sd/source/ui/func/futempl.cxx733
-rw-r--r--sd/source/ui/func/futext.cxx1543
-rw-r--r--sd/source/ui/func/futext2.cxx30
-rw-r--r--sd/source/ui/func/futhes.cxx170
-rw-r--r--sd/source/ui/func/futransf.cxx164
-rw-r--r--sd/source/ui/func/futxtatt.cxx105
-rw-r--r--sd/source/ui/func/fuvect.cxx116
-rw-r--r--sd/source/ui/func/fuzoom.cxx262
-rw-r--r--sd/source/ui/func/makefile.mk191
-rw-r--r--sd/source/ui/func/outlinfo.cxx301
-rw-r--r--sd/source/ui/func/sdundo.cxx36
-rw-r--r--sd/source/ui/func/sdundogr.cxx129
-rw-r--r--sd/source/ui/func/smarttag.cxx465
-rw-r--r--sd/source/ui/func/undoback.cxx96
-rw-r--r--sd/source/ui/func/undoheaderfooter.cxx65
-rw-r--r--sd/source/ui/func/undolayer.cxx90
-rw-r--r--sd/source/ui/func/undopage.cxx140
-rw-r--r--sd/source/ui/func/unmovss.cxx108
-rw-r--r--sd/source/ui/func/unoaprms.cxx187
-rw-r--r--sd/source/ui/func/unprlout.cxx119
-rw-r--r--sd/source/ui/inc/3dchld.hxx50
-rw-r--r--sd/source/ui/inc/AccessibleDocumentViewBase.hxx372
-rw-r--r--sd/source/ui/inc/AccessibleDrawDocumentView.hxx173
-rw-r--r--sd/source/ui/inc/AccessibleOutlineEditSource.hxx104
-rw-r--r--sd/source/ui/inc/AccessibleOutlineView.hxx161
-rw-r--r--sd/source/ui/inc/AccessiblePageShape.hxx178
-rw-r--r--sd/source/ui/inc/AccessiblePresentationGraphicShape.hxx71
-rw-r--r--sd/source/ui/inc/AccessiblePresentationOLEShape.hxx71
-rw-r--r--sd/source/ui/inc/AccessiblePresentationShape.hxx82
-rw-r--r--sd/source/ui/inc/AccessibleScrollPanel.hxx80
-rw-r--r--sd/source/ui/inc/AccessibleSlideSorterObject.hxx249
-rw-r--r--sd/source/ui/inc/AccessibleSlideSorterView.hxx326
-rw-r--r--sd/source/ui/inc/AccessibleSlideView.hxx280
-rw-r--r--sd/source/ui/inc/AccessibleTaskPane.hxx70
-rw-r--r--sd/source/ui/inc/AccessibleTreeNode.hxx318
-rw-r--r--sd/source/ui/inc/AccessibleViewForwarder.hxx139
-rw-r--r--sd/source/ui/inc/AnimationChildWindow.hxx55
-rw-r--r--sd/source/ui/inc/BezierObjectBar.hxx60
-rw-r--r--sd/source/ui/inc/BreakDlg.hxx96
-rw-r--r--sd/source/ui/inc/Client.hxx75
-rw-r--r--sd/source/ui/inc/ClientView.hxx65
-rw-r--r--sd/source/ui/inc/CustomAnimation.hxx43
-rw-r--r--sd/source/ui/inc/DialogListBox.hxx75
-rw-r--r--sd/source/ui/inc/DocumentRenderer.hxx82
-rw-r--r--sd/source/ui/inc/DrawController.hxx340
-rw-r--r--sd/source/ui/inc/DrawDocShell.hxx240
-rw-r--r--sd/source/ui/inc/DrawSubController.hxx42
-rw-r--r--sd/source/ui/inc/DrawViewShell.hxx504
-rw-r--r--sd/source/ui/inc/EventMultiplexer.hxx222
-rw-r--r--sd/source/ui/inc/FormShellManager.hxx143
-rw-r--r--sd/source/ui/inc/FrameView.hxx237
-rw-r--r--sd/source/ui/inc/GraphicDocShell.hxx75
-rw-r--r--sd/source/ui/inc/GraphicObjectBar.hxx66
-rw-r--r--sd/source/ui/inc/GraphicViewShell.hxx90
-rw-r--r--sd/source/ui/inc/GraphicViewShellBase.hxx62
-rw-r--r--sd/source/ui/inc/ImpressViewShellBase.hxx62
-rw-r--r--sd/source/ui/inc/LayerDialog.hrc29
-rw-r--r--sd/source/ui/inc/LayerDialogChildWindow.hxx54
-rw-r--r--sd/source/ui/inc/LayerDialogContent.hxx66
-rw-r--r--sd/source/ui/inc/LayerTabBar.hxx93
-rw-r--r--sd/source/ui/inc/MasterPageObserver.hxx140
-rw-r--r--sd/source/ui/inc/MediaObjectBar.hxx61
-rw-r--r--sd/source/ui/inc/MutexOwner.hxx47
-rw-r--r--sd/source/ui/inc/NavigatorChildWindow.hxx59
-rw-r--r--sd/source/ui/inc/NotesChildWindow.hrc30
-rw-r--r--sd/source/ui/inc/NotesChildWindow.hxx55
-rw-r--r--sd/source/ui/inc/OutlineBulletDlg.hxx71
-rw-r--r--sd/source/ui/inc/OutlineView.hxx262
-rw-r--r--sd/source/ui/inc/OutlineViewShell.hxx188
-rw-r--r--sd/source/ui/inc/OutlineViewShellBase.hxx55
-rw-r--r--sd/source/ui/inc/OutlinerIteratorImpl.hxx272
-rw-r--r--sd/source/ui/inc/PaneChildWindows.hxx91
-rw-r--r--sd/source/ui/inc/PaneDockingWindow.hrc30
-rw-r--r--sd/source/ui/inc/PaneDockingWindow.hxx147
-rw-r--r--sd/source/ui/inc/PaneShells.hxx91
-rw-r--r--sd/source/ui/inc/PresentationViewShell.hxx75
-rw-r--r--sd/source/ui/inc/PresentationViewShellBase.hxx58
-rw-r--r--sd/source/ui/inc/PreviewRenderer.hxx168
-rw-r--r--sd/source/ui/inc/Ruler.hxx82
-rw-r--r--sd/source/ui/inc/SdUnoDrawView.hxx146
-rw-r--r--sd/source/ui/inc/SdUnoOutlineView.hxx122
-rw-r--r--sd/source/ui/inc/SdUnoPresView.hxx54
-rw-r--r--sd/source/ui/inc/SdUnoSlideView.hxx137
-rw-r--r--sd/source/ui/inc/ShellFactory.hxx73
-rw-r--r--sd/source/ui/inc/SlideSorter.hxx270
-rw-r--r--sd/source/ui/inc/SlideSorterChildWindow.hrc30
-rw-r--r--sd/source/ui/inc/SlideSorterChildWindow.hxx58
-rw-r--r--sd/source/ui/inc/SlideSorterViewShell.hxx224
-rw-r--r--sd/source/ui/inc/SlideSorterViewShellBase.hxx55
-rw-r--r--sd/source/ui/inc/SlideView.hxx146
-rw-r--r--sd/source/ui/inc/SlideViewShell.hxx179
-rw-r--r--sd/source/ui/inc/SpellDialogChildWindow.hxx95
-rw-r--r--sd/source/ui/inc/TabControl.hxx122
-rw-r--r--sd/source/ui/inc/TaskPaneViewShell.hxx226
-rw-r--r--sd/source/ui/inc/TemplateScanner.hxx220
-rw-r--r--sd/source/ui/inc/TextLogger.hxx62
-rw-r--r--sd/source/ui/inc/TextObjectBar.hxx69
-rw-r--r--sd/source/ui/inc/ToolBarManager.hxx299
-rw-r--r--sd/source/ui/inc/ToolPanelChildWindow.hrc30
-rw-r--r--sd/source/ui/inc/ToolPanelChildWindow.hxx55
-rw-r--r--sd/source/ui/inc/UpdateLockManager.hxx92
-rw-r--r--sd/source/ui/inc/View.hxx263
-rw-r--r--sd/source/ui/inc/ViewClipboard.hxx93
-rw-r--r--sd/source/ui/inc/ViewShell.hxx608
-rw-r--r--sd/source/ui/inc/ViewShellBase.hxx314
-rw-r--r--sd/source/ui/inc/ViewShellHint.hxx68
-rw-r--r--sd/source/ui/inc/ViewShellImplementation.hxx168
-rw-r--r--sd/source/ui/inc/ViewShellManager.hxx255
-rw-r--r--sd/source/ui/inc/ViewTabBar.hxx210
-rw-r--r--sd/source/ui/inc/ViewTabControl.hxx120
-rw-r--r--sd/source/ui/inc/Window.hxx218
-rw-r--r--sd/source/ui/inc/WindowUpdater.hxx152
-rw-r--r--sd/source/ui/inc/animobjs.hrc49
-rw-r--r--sd/source/ui/inc/animobjs.hxx203
-rwxr-xr-xsd/source/ui/inc/annotationmanager.hxx59
-rw-r--r--sd/source/ui/inc/assclass.hxx86
-rw-r--r--sd/source/ui/inc/bmcache.hxx54
-rw-r--r--sd/source/ui/inc/brkdlg.hrc34
-rw-r--r--sd/source/ui/inc/bulmaper.hxx49
-rw-r--r--sd/source/ui/inc/celltempl.hrc29
-rw-r--r--sd/source/ui/inc/celltempl.hxx59
-rw-r--r--sd/source/ui/inc/cfgids.hxx75
-rw-r--r--sd/source/ui/inc/copydlg.hrc51
-rw-r--r--sd/source/ui/inc/copydlg.hxx105
-rw-r--r--sd/source/ui/inc/custsdlg.hrc47
-rw-r--r--sd/source/ui/inc/custsdlg.hxx116
-rw-r--r--sd/source/ui/inc/diactrl.hxx80
-rw-r--r--sd/source/ui/inc/dialogs.hrc36
-rw-r--r--sd/source/ui/inc/dlg_char.hrc28
-rw-r--r--sd/source/ui/inc/dlg_char.hxx61
-rw-r--r--sd/source/ui/inc/dlgass.hrc88
-rw-r--r--sd/source/ui/inc/dlgass.hxx80
-rw-r--r--sd/source/ui/inc/dlgctrls.hxx63
-rw-r--r--sd/source/ui/inc/dlgfield.hrc37
-rw-r--r--sd/source/ui/inc/dlgfield.hxx89
-rw-r--r--sd/source/ui/inc/dlgolbul.hrc27
-rw-r--r--sd/source/ui/inc/dlgpage.hrc27
-rw-r--r--sd/source/ui/inc/dlgpage.hxx68
-rw-r--r--sd/source/ui/inc/dlgsnap.hrc44
-rw-r--r--sd/source/ui/inc/dlgsnap.hxx101
-rw-r--r--sd/source/ui/inc/docprev.hxx90
-rw-r--r--sd/source/ui/inc/drawview.hxx95
-rw-r--r--sd/source/ui/inc/enumdlg.hrc42
-rw-r--r--sd/source/ui/inc/filedlg.hxx103
-rw-r--r--sd/source/ui/inc/fontwork.hrc45
-rw-r--r--sd/source/ui/inc/framework/Configuration.hxx207
-rw-r--r--sd/source/ui/inc/framework/ConfigurationController.hxx231
-rw-r--r--sd/source/ui/inc/framework/DrawModule.hxx48
-rw-r--r--sd/source/ui/inc/framework/FrameworkHelper.hxx438
-rw-r--r--sd/source/ui/inc/framework/ImpressModule.hxx47
-rw-r--r--sd/source/ui/inc/framework/ModuleController.hxx148
-rw-r--r--sd/source/ui/inc/framework/Pane.hxx175
-rw-r--r--sd/source/ui/inc/framework/PresentationFactory.hxx116
-rw-r--r--sd/source/ui/inc/framework/PresentationModule.hxx47
-rw-r--r--sd/source/ui/inc/framework/ResourceId.hxx246
-rw-r--r--sd/source/ui/inc/framework/ViewShellWrapper.hxx162
-rw-r--r--sd/source/ui/inc/fuarea.hxx59
-rw-r--r--sd/source/ui/inc/fubullet.hxx65
-rw-r--r--sd/source/ui/inc/fuchar.hxx60
-rw-r--r--sd/source/ui/inc/fucon3d.hxx77
-rw-r--r--sd/source/ui/inc/fuconarc.hxx70
-rw-r--r--sd/source/ui/inc/fuconbez.hxx85
-rw-r--r--sd/source/ui/inc/fuconcs.hxx87
-rw-r--r--sd/source/ui/inc/fuconnct.hxx57
-rw-r--r--sd/source/ui/inc/fuconrec.hxx84
-rw-r--r--sd/source/ui/inc/fuconstr.hxx88
-rw-r--r--sd/source/ui/inc/fuconuno.hxx81
-rw-r--r--sd/source/ui/inc/fucopy.hxx58
-rw-r--r--sd/source/ui/inc/fucushow.hxx55
-rw-r--r--sd/source/ui/inc/fudraw.hxx104
-rw-r--r--sd/source/ui/inc/fudspord.hxx82
-rw-r--r--sd/source/ui/inc/fuediglu.hxx74
-rw-r--r--sd/source/ui/inc/fuexpand.hxx56
-rw-r--r--sd/source/ui/inc/fuformatpaintbrush.hxx76
-rw-r--r--sd/source/ui/inc/fugrid.hxx59
-rw-r--r--sd/source/ui/inc/fuhhconv.hxx75
-rw-r--r--sd/source/ui/inc/fuinsert.hxx119
-rw-r--r--sd/source/ui/inc/fuinsfil.hxx70
-rw-r--r--sd/source/ui/inc/fuline.hxx60
-rw-r--r--sd/source/ui/inc/fulinend.hxx60
-rw-r--r--sd/source/ui/inc/fulink.hxx58
-rw-r--r--sd/source/ui/inc/fumeasur.hxx57
-rw-r--r--sd/source/ui/inc/fumorph.hxx80
-rw-r--r--sd/source/ui/inc/fuoaprms.hxx60
-rw-r--r--sd/source/ui/inc/fuolbull.hxx68
-rw-r--r--sd/source/ui/inc/fuoltext.hxx85
-rw-r--r--sd/source/ui/inc/fuoutl.hxx78
-rw-r--r--sd/source/ui/inc/fupage.hxx80
-rw-r--r--sd/source/ui/inc/fuparagr.hxx59
-rw-r--r--sd/source/ui/inc/fupoor.hxx214
-rw-r--r--sd/source/ui/inc/fuprlout.hxx64
-rw-r--r--sd/source/ui/inc/fuprobjs.hxx64
-rw-r--r--sd/source/ui/inc/fuscale.hxx56
-rw-r--r--sd/source/ui/inc/fusearch.hxx72
-rw-r--r--sd/source/ui/inc/fusel.hxx112
-rw-r--r--sd/source/ui/inc/fusldlg.hxx55
-rw-r--r--sd/source/ui/inc/fuslhide.hxx63
-rw-r--r--sd/source/ui/inc/fuslid.hxx77
-rw-r--r--sd/source/ui/inc/fuslsel.hxx120
-rw-r--r--sd/source/ui/inc/fusnapln.hxx58
-rw-r--r--sd/source/ui/inc/fuspell.hxx71
-rw-r--r--sd/source/ui/inc/fusumry.hxx56
-rw-r--r--sd/source/ui/inc/futempl.hxx59
-rw-r--r--sd/source/ui/inc/futext.hxx116
-rw-r--r--sd/source/ui/inc/futhes.hxx57
-rw-r--r--sd/source/ui/inc/futransf.hxx61
-rw-r--r--sd/source/ui/inc/futxtatt.hxx56
-rw-r--r--sd/source/ui/inc/fuvect.hxx57
-rw-r--r--sd/source/ui/inc/fuzoom.hxx79
-rw-r--r--sd/source/ui/inc/gluectrl.hxx76
-rw-r--r--sd/source/ui/inc/headerfooterdlg.hrc55
-rw-r--r--sd/source/ui/inc/headerfooterdlg.hxx86
-rw-r--r--sd/source/ui/inc/ins_paste.hrc36
-rw-r--r--sd/source/ui/inc/ins_paste.hxx59
-rw-r--r--sd/source/ui/inc/inspagob.hrc33
-rw-r--r--sd/source/ui/inc/inspagob.hxx71
-rw-r--r--sd/source/ui/inc/layeroptionsdlg.hrc44
-rw-r--r--sd/source/ui/inc/layeroptionsdlg.hxx67
-rw-r--r--sd/source/ui/inc/masterlayoutdlg.hrc36
-rw-r--r--sd/source/ui/inc/masterlayoutdlg.hxx78
-rw-r--r--sd/source/ui/inc/morphdlg.hrc35
-rw-r--r--sd/source/ui/inc/morphdlg.hxx81
-rw-r--r--sd/source/ui/inc/navigatr.hrc43
-rw-r--r--sd/source/ui/inc/navigatr.hxx207
-rw-r--r--sd/source/ui/inc/optdlg.hrc34
-rw-r--r--sd/source/ui/inc/optdlg.hxx57
-rw-r--r--sd/source/ui/inc/optsitem.hxx707
-rw-r--r--sd/source/ui/inc/outlinfo.hxx125
-rw-r--r--sd/source/ui/inc/packgdlg.hrc46
-rw-r--r--sd/source/ui/inc/paragr.hrc33
-rw-r--r--sd/source/ui/inc/paragr.hxx53
-rw-r--r--sd/source/ui/inc/pgjump.hxx43
-rw-r--r--sd/source/ui/inc/present.hrc67
-rw-r--r--sd/source/ui/inc/present.hxx114
-rw-r--r--sd/source/ui/inc/preview.hrc28
-rw-r--r--sd/source/ui/inc/printdialog.hxx61
-rw-r--r--sd/source/ui/inc/printdlg.hrc36
-rw-r--r--sd/source/ui/inc/printdlg.hxx70
-rw-r--r--sd/source/ui/inc/prltempl.hrc31
-rw-r--r--sd/source/ui/inc/prltempl.hxx101
-rw-r--r--sd/source/ui/inc/prntopts.hrc56
-rw-r--r--sd/source/ui/inc/prntopts.hxx110
-rw-r--r--sd/source/ui/inc/pubdlg.hrc153
-rw-r--r--sd/source/ui/inc/pubdlg.hxx235
-rw-r--r--sd/source/ui/inc/res_bmp.hrc351
-rw-r--r--sd/source/ui/inc/sdpopup.hxx61
-rw-r--r--sd/source/ui/inc/sdpreslt.hrc36
-rw-r--r--sd/source/ui/inc/sdpreslt.hxx89
-rw-r--r--sd/source/ui/inc/sdstring.hrc35
-rw-r--r--sd/source/ui/inc/sdtreelb.hxx272
-rw-r--r--sd/source/ui/inc/sdundogr.hxx56
-rw-r--r--sd/source/ui/inc/sdxfer.hxx138
-rw-r--r--sd/source/ui/inc/showview.hxx88
-rw-r--r--sd/source/ui/inc/slideshow.hxx233
-rw-r--r--sd/source/ui/inc/smarttag.hxx187
-rw-r--r--sd/source/ui/inc/sprite.hxx88
-rw-r--r--sd/source/ui/inc/strings.hrc517
-rw-r--r--sd/source/ui/inc/tabtempl.hrc30
-rw-r--r--sd/source/ui/inc/tabtempl.hxx86
-rw-r--r--sd/source/ui/inc/taskpane/ControlContainer.hxx212
-rw-r--r--sd/source/ui/inc/taskpane/ILayoutableWindow.hxx102
-rw-r--r--sd/source/ui/inc/taskpane/ScrollPanel.hxx186
-rw-r--r--sd/source/ui/inc/taskpane/SlideSorterCacheDisplay.hxx204
-rw-r--r--sd/source/ui/inc/taskpane/SubToolPanel.hxx154
-rw-r--r--sd/source/ui/inc/taskpane/TaskPaneControlFactory.hxx101
-rw-r--r--sd/source/ui/inc/taskpane/TaskPaneTreeNode.hxx239
-rw-r--r--sd/source/ui/inc/taskpane/TitleBar.hxx195
-rw-r--r--sd/source/ui/inc/taskpane/TitledControl.hxx204
-rw-r--r--sd/source/ui/inc/taskpane/ToolPanel.hxx125
-rw-r--r--sd/source/ui/inc/tbx_ww.hrc29
-rw-r--r--sd/source/ui/inc/tbx_ww.hxx89
-rw-r--r--sd/source/ui/inc/tmplctrl.hxx53
-rw-r--r--sd/source/ui/inc/tools/AsynchronousCall.hxx92
-rw-r--r--sd/source/ui/inc/tools/AsynchronousTask.hxx55
-rw-r--r--sd/source/ui/inc/tools/ConfigurationAccess.hxx152
-rw-r--r--sd/source/ui/inc/tools/IconCache.hxx79
-rw-r--r--sd/source/ui/inc/tools/IdleDetection.hxx91
-rw-r--r--sd/source/ui/inc/tools/PropertySet.hxx157
-rw-r--r--sd/source/ui/inc/tools/SdGlobalResourceContainer.hxx119
-rw-r--r--sd/source/ui/inc/tools/SlotStateListener.hxx175
-rw-r--r--sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx99
-rw-r--r--sd/source/ui/inc/tpaction.hrc51
-rw-r--r--sd/source/ui/inc/tpaction.hxx143
-rw-r--r--sd/source/ui/inc/tpoption.hrc95
-rw-r--r--sd/source/ui/inc/tpoption.hxx201
-rw-r--r--sd/source/ui/inc/unchss.hxx59
-rw-r--r--sd/source/ui/inc/undoback.hxx63
-rw-r--r--sd/source/ui/inc/undoheaderfooter.hxx57
-rw-r--r--sd/source/ui/inc/undolayer.hxx67
-rw-r--r--sd/source/ui/inc/undopage.hxx180
-rw-r--r--sd/source/ui/inc/unmodpg.hxx91
-rw-r--r--sd/source/ui/inc/unmovss.hxx54
-rw-r--r--sd/source/ui/inc/unoaprms.hxx151
-rw-r--r--sd/source/ui/inc/unokywds.hxx215
-rw-r--r--sd/source/ui/inc/unomodel.hxx354
-rw-r--r--sd/source/ui/inc/unoprnms.hxx100
-rw-r--r--sd/source/ui/inc/unosrch.hxx148
-rw-r--r--sd/source/ui/inc/unprlout.hxx65
-rw-r--r--sd/source/ui/inc/unslsel.hxx50
-rw-r--r--sd/source/ui/inc/vectdlg.hrc53
-rw-r--r--sd/source/ui/inc/vectdlg.hxx107
-rw-r--r--sd/source/ui/inc/zoomlist.hxx62
-rwxr-xr-xsd/source/ui/notes/EditWindow.cxx883
-rwxr-xr-xsd/source/ui/notes/EditWindow.hxx128
-rwxr-xr-xsd/source/ui/notes/NotesChildWindow.cxx63
-rwxr-xr-xsd/source/ui/notes/NotesChildWindow.src45
-rwxr-xr-xsd/source/ui/notes/NotesDockingWindow.cxx114
-rwxr-xr-xsd/source/ui/notes/NotesDockingWindow.hxx56
-rwxr-xr-xsd/source/ui/notes/TextLogger.cxx129
-rwxr-xr-xsd/source/ui/notes/makefile.mk60
-rw-r--r--sd/source/ui/presenter/CanvasUpdateRequester.cxx127
-rw-r--r--sd/source/ui/presenter/CanvasUpdateRequester.hxx80
-rw-r--r--sd/source/ui/presenter/PresenterCanvas.cxx1244
-rw-r--r--sd/source/ui/presenter/PresenterCanvas.hxx444
-rw-r--r--sd/source/ui/presenter/PresenterCanvasFactory.cxx307
-rw-r--r--sd/source/ui/presenter/PresenterHelper.cxx343
-rw-r--r--sd/source/ui/presenter/PresenterHelper.hxx120
-rw-r--r--sd/source/ui/presenter/PresenterPreviewCache.cxx515
-rw-r--r--sd/source/ui/presenter/PresenterPreviewCache.hxx122
-rw-r--r--sd/source/ui/presenter/PresenterTextView.cxx657
-rw-r--r--sd/source/ui/presenter/PresenterTextView.hxx89
-rw-r--r--sd/source/ui/presenter/SlideRenderer.cxx272
-rw-r--r--sd/source/ui/presenter/SlideRenderer.hxx108
-rw-r--r--sd/source/ui/presenter/makefile.mk56
-rw-r--r--sd/source/ui/slideshow/PaneHider.cxx115
-rw-r--r--sd/source/ui/slideshow/PaneHider.hxx73
-rw-r--r--sd/source/ui/slideshow/SlideShowRestarter.cxx184
-rw-r--r--sd/source/ui/slideshow/SlideShowRestarter.hxx91
-rw-r--r--sd/source/ui/slideshow/makefile.mk66
-rw-r--r--sd/source/ui/slideshow/showwin.cxx745
-rw-r--r--sd/source/ui/slideshow/showwindow.hxx144
-rw-r--r--sd/source/ui/slideshow/slideshow.cxx1269
-rw-r--r--sd/source/ui/slideshow/slideshow.hrc61
-rw-r--r--sd/source/ui/slideshow/slideshow.src221
-rw-r--r--sd/source/ui/slideshow/slideshowimpl.cxx4079
-rw-r--r--sd/source/ui/slideshow/slideshowimpl.hxx435
-rw-r--r--sd/source/ui/slideshow/slideshowviewimpl.cxx685
-rw-r--r--sd/source/ui/slideshow/slideshowviewimpl.hxx286
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapCache.cxx668
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapCache.hxx225
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapCompressor.cxx273
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx160
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapFactory.cxx81
-rw-r--r--sd/source/ui/slidesorter/cache/SlsBitmapFactory.hxx65
-rw-r--r--sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx236
-rw-r--r--sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx100
-rw-r--r--sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx181
-rw-r--r--sd/source/ui/slidesorter/cache/SlsCacheConfiguration.hxx74
-rw-r--r--sd/source/ui/slidesorter/cache/SlsGenericPageCache.cxx330
-rw-r--r--sd/source/ui/slidesorter/cache/SlsGenericPageCache.hxx156
-rw-r--r--sd/source/ui/slidesorter/cache/SlsIdleDetector.cxx66
-rw-r--r--sd/source/ui/slidesorter/cache/SlsIdleDetector.hxx51
-rw-r--r--sd/source/ui/slidesorter/cache/SlsPageCache.cxx144
-rw-r--r--sd/source/ui/slidesorter/cache/SlsPageCacheManager.cxx446
-rw-r--r--sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx255
-rw-r--r--sd/source/ui/slidesorter/cache/SlsQueueProcessor.hxx138
-rw-r--r--sd/source/ui/slidesorter/cache/SlsQueueProcessorThread.hxx365
-rw-r--r--sd/source/ui/slidesorter/cache/SlsRequestFactory.cxx78
-rw-r--r--sd/source/ui/slidesorter/cache/SlsRequestFactory.hxx48
-rw-r--r--sd/source/ui/slidesorter/cache/SlsRequestPriorityClass.hxx55
-rw-r--r--sd/source/ui/slidesorter/cache/SlsRequestQueue.cxx291
-rw-r--r--sd/source/ui/slidesorter/cache/SlsRequestQueue.hxx133
-rw-r--r--sd/source/ui/slidesorter/cache/makefile.mk65
-rw-r--r--sd/source/ui/slidesorter/controller/SlideSorterController.cxx1070
-rw-r--r--sd/source/ui/slidesorter/controller/SlsAnimator.cxx232
-rw-r--r--sd/source/ui/slidesorter/controller/SlsClipboard.cxx778
-rw-r--r--sd/source/ui/slidesorter/controller/SlsCommand.hxx45
-rw-r--r--sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx271
-rw-r--r--sd/source/ui/slidesorter/controller/SlsFocusManager.cxx362
-rw-r--r--sd/source/ui/slidesorter/controller/SlsHideSlideFunction.cxx169
-rw-r--r--sd/source/ui/slidesorter/controller/SlsHideSlideFunction.hxx73
-rw-r--r--sd/source/ui/slidesorter/controller/SlsListener.cxx604
-rw-r--r--sd/source/ui/slidesorter/controller/SlsListener.hxx185
-rw-r--r--sd/source/ui/slidesorter/controller/SlsPageObjectFactory.cxx100
-rw-r--r--sd/source/ui/slidesorter/controller/SlsPageSelector.cxx335
-rw-r--r--sd/source/ui/slidesorter/controller/SlsProperties.cxx233
-rw-r--r--sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx651
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSelectionCommand.cxx105
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSelectionCommand.hxx108
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSelectionFunction.cxx1404
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx661
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlideFunction.cxx86
-rw-r--r--sd/source/ui/slidesorter/controller/SlsSlotManager.cxx1231
-rw-r--r--sd/source/ui/slidesorter/controller/SlsTransferable.cxx92
-rw-r--r--sd/source/ui/slidesorter/controller/SlsTransferable.hxx70
-rw-r--r--sd/source/ui/slidesorter/controller/makefile.mk71
-rw-r--r--sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx106
-rw-r--r--sd/source/ui/slidesorter/inc/cache/SlsPageCache.hxx173
-rw-r--r--sd/source/ui/slidesorter/inc/cache/SlsPageCacheManager.hxx177
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlideSorterController.hxx355
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsAnimator.hxx96
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsClipboard.hxx216
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx105
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsFocusManager.hxx236
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsPageObjectFactory.hxx97
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsPageSelector.hxx182
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsProperties.hxx128
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx256
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSelectionFunction.hxx212
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSelectionManager.hxx211
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSlideFunction.hxx75
-rw-r--r--sd/source/ui/slidesorter/inc/controller/SlsSlotManager.hxx105
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlideSorterModel.hxx208
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx53
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlsPageDescriptor.hxx226
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlsPageEnumeration.hxx127
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlsPageEnumerationProvider.hxx60
-rw-r--r--sd/source/ui/slidesorter/inc/model/SlsSharedPageDescriptor.hxx41
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlideSorterView.hxx303
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsFontProvider.hxx94
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsLayouter.hxx405
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsPageObject.hxx64
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsPageObjectViewContact.hxx91
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsPageObjectViewObjectContact.hxx225
-rw-r--r--sd/source/ui/slidesorter/inc/view/SlsViewOverlay.hxx273
-rw-r--r--sd/source/ui/slidesorter/makefile.mk58
-rw-r--r--sd/source/ui/slidesorter/model/SlideSorterModel.cxx489
-rw-r--r--sd/source/ui/slidesorter/model/SlsPageDescriptor.cxx297
-rw-r--r--sd/source/ui/slidesorter/model/SlsPageEnumeration.cxx284
-rw-r--r--sd/source/ui/slidesorter/model/SlsPageEnumerationProvider.cxx110
-rw-r--r--sd/source/ui/slidesorter/model/makefile.mk56
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorter.cxx651
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterChildWindow.cxx66
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterChildWindow.src52
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterService.cxx660
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterService.hxx217
-rw-r--r--sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx794
-rw-r--r--sd/source/ui/slidesorter/shell/makefile.mk55
-rw-r--r--sd/source/ui/slidesorter/view/SlideSorterView.cxx846
-rw-r--r--sd/source/ui/slidesorter/view/SlsFontProvider.cxx132
-rw-r--r--sd/source/ui/slidesorter/view/SlsLayouter.cxx813
-rw-r--r--sd/source/ui/slidesorter/view/SlsPageObject.cxx80
-rw-r--r--sd/source/ui/slidesorter/view/SlsPageObjectViewContact.cxx140
-rw-r--r--sd/source/ui/slidesorter/view/SlsPageObjectViewObjectContact.cxx1418
-rw-r--r--sd/source/ui/slidesorter/view/SlsViewCacheContext.cxx167
-rw-r--r--sd/source/ui/slidesorter/view/SlsViewCacheContext.hxx70
-rw-r--r--sd/source/ui/slidesorter/view/SlsViewOverlay.cxx606
-rw-r--r--sd/source/ui/slidesorter/view/makefile.mk61
-rw-r--r--sd/source/ui/table/TableDesignPane.cxx949
-rw-r--r--sd/source/ui/table/TableDesignPane.hrc50
-rw-r--r--sd/source/ui/table/TableDesignPane.hxx126
-rw-r--r--sd/source/ui/table/TableDesignPane.src154
-rw-r--r--sd/source/ui/table/makefile.mk56
-rw-r--r--sd/source/ui/table/tablefunction.cxx242
-rw-r--r--sd/source/ui/table/tableobjectbar.cxx234
-rw-r--r--sd/source/ui/table/tableobjectbar.hxx64
-rw-r--r--sd/source/ui/toolpanel/ConstrainedIterator.cxx267
-rw-r--r--sd/source/ui/toolpanel/ConstrainedIterator.hxx104
-rw-r--r--sd/source/ui/toolpanel/ControlContainer.cxx500
-rw-r--r--sd/source/ui/toolpanel/ControlContainerDescriptor.hxx139
-rw-r--r--sd/source/ui/toolpanel/ControlDescriptorIterator.cxx223
-rw-r--r--sd/source/ui/toolpanel/ControlList.hxx59
-rw-r--r--sd/source/ui/toolpanel/EmptyWindow.cxx96
-rw-r--r--sd/source/ui/toolpanel/EmptyWindow.hxx57
-rw-r--r--sd/source/ui/toolpanel/LayoutMenu.cxx1054
-rw-r--r--sd/source/ui/toolpanel/LayoutMenu.hxx244
-rw-r--r--sd/source/ui/toolpanel/LayoutableWindow.hxx79
-rw-r--r--sd/source/ui/toolpanel/ScrollPanel.cxx819
-rw-r--r--sd/source/ui/toolpanel/SimpleLayoutWrapper.cxx98
-rw-r--r--sd/source/ui/toolpanel/SimpleLayoutWrapper.hxx70
-rw-r--r--sd/source/ui/toolpanel/SlideSorterCacheDisplay.cxx413
-rw-r--r--sd/source/ui/toolpanel/SubToolPanel.cxx448
-rw-r--r--sd/source/ui/toolpanel/TaskPaneControlFactory.cxx60
-rw-r--r--sd/source/ui/toolpanel/TaskPaneFocusManager.cxx325
-rw-r--r--sd/source/ui/toolpanel/TaskPaneFocusManager.hxx135
-rw-r--r--sd/source/ui/toolpanel/TaskPaneShellManager.cxx181
-rw-r--r--sd/source/ui/toolpanel/TaskPaneShellManager.hxx116
-rw-r--r--sd/source/ui/toolpanel/TaskPaneTreeNode.cxx331
-rw-r--r--sd/source/ui/toolpanel/TaskPaneViewShell.cxx889
-rw-r--r--sd/source/ui/toolpanel/TestMenu.cxx320
-rw-r--r--sd/source/ui/toolpanel/TestMenu.hxx81
-rw-r--r--sd/source/ui/toolpanel/TestPanel.cxx175
-rw-r--r--sd/source/ui/toolpanel/TestPanel.hxx53
-rw-r--r--sd/source/ui/toolpanel/TitleBar.cxx714
-rw-r--r--sd/source/ui/toolpanel/TitleToolBox.cxx116
-rw-r--r--sd/source/ui/toolpanel/TitleToolBox.hxx70
-rw-r--r--sd/source/ui/toolpanel/TitledControl.cxx512
-rw-r--r--sd/source/ui/toolpanel/ToolPanel.cxx289
-rw-r--r--sd/source/ui/toolpanel/ToolPanelChildWindow.cxx68
-rw-r--r--sd/source/ui/toolpanel/ToolPanelChildWindow.src52
-rw-r--r--sd/source/ui/toolpanel/ToolPanelDescriptor.hxx89
-rw-r--r--sd/source/ui/toolpanel/controls/AllMasterPagesSelector.cxx208
-rw-r--r--sd/source/ui/toolpanel/controls/AllMasterPagesSelector.hxx94
-rw-r--r--sd/source/ui/toolpanel/controls/AnimationSchemesPanel.cxx84
-rw-r--r--sd/source/ui/toolpanel/controls/AnimationSchemesPanel.hxx68
-rw-r--r--sd/source/ui/toolpanel/controls/CurrentMasterPagesSelector.cxx343
-rw-r--r--sd/source/ui/toolpanel/controls/CurrentMasterPagesSelector.hxx83
-rw-r--r--sd/source/ui/toolpanel/controls/CustomAnimationPanel.cxx104
-rw-r--r--sd/source/ui/toolpanel/controls/CustomAnimationPanel.hxx75
-rw-r--r--sd/source/ui/toolpanel/controls/DocumentHelper.cxx551
-rw-r--r--sd/source/ui/toolpanel/controls/DocumentHelper.hxx116
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainer.cxx1368
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainer.hxx230
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerFiller.cxx199
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerFiller.hxx95
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerProviders.cxx468
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerProviders.hxx204
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerQueue.cxx304
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageContainerQueue.hxx136
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageDescriptor.cxx445
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageDescriptor.hxx245
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPageObserver.cxx435
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPagesPanel.cxx135
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPagesPanel.hxx62
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPagesSelector.cxx884
-rw-r--r--sd/source/ui/toolpanel/controls/MasterPagesSelector.hxx241
-rw-r--r--sd/source/ui/toolpanel/controls/PreviewValueSet.cxx240
-rw-r--r--sd/source/ui/toolpanel/controls/PreviewValueSet.hxx96
-rw-r--r--sd/source/ui/toolpanel/controls/RecentMasterPagesSelector.cxx159
-rw-r--r--sd/source/ui/toolpanel/controls/RecentMasterPagesSelector.hxx76
-rw-r--r--sd/source/ui/toolpanel/controls/RecentlyUsedMasterPages.cxx501
-rw-r--r--sd/source/ui/toolpanel/controls/RecentlyUsedMasterPages.hxx128
-rw-r--r--sd/source/ui/toolpanel/controls/SlideTransitionPanel.cxx107
-rw-r--r--sd/source/ui/toolpanel/controls/SlideTransitionPanel.hxx75
-rw-r--r--sd/source/ui/toolpanel/controls/TableDesignPanel.cxx101
-rw-r--r--sd/source/ui/toolpanel/controls/TableDesignPanel.hxx75
-rw-r--r--sd/source/ui/toolpanel/controls/makefile.mk68
-rw-r--r--sd/source/ui/toolpanel/makefile.mk71
-rw-r--r--sd/source/ui/tools/AsynchronousCall.cxx82
-rw-r--r--sd/source/ui/tools/ConfigurationAccess.cxx231
-rw-r--r--sd/source/ui/tools/EventMultiplexer.cxx823
-rw-r--r--sd/source/ui/tools/IconCache.cxx133
-rw-r--r--sd/source/ui/tools/IdleDetection.cxx130
-rw-r--r--sd/source/ui/tools/PreviewRenderer.cxx501
-rw-r--r--sd/source/ui/tools/PropertySet.cxx248
-rw-r--r--sd/source/ui/tools/SdGlobalResourceContainer.cxx240
-rw-r--r--sd/source/ui/tools/SlotStateListener.cxx243
-rw-r--r--sd/source/ui/tools/TimerBasedTaskExecution.cxx180
-rw-r--r--sd/source/ui/tools/makefile.mk61
-rw-r--r--sd/source/ui/unoidl/DrawController.cxx930
-rw-r--r--sd/source/ui/unoidl/SdUnoDrawView.cxx605
-rw-r--r--sd/source/ui/unoidl/SdUnoOutlineView.cxx251
-rw-r--r--sd/source/ui/unoidl/SdUnoPresView.cxx54
-rw-r--r--sd/source/ui/unoidl/SdUnoSlideView.cxx249
-rw-r--r--sd/source/ui/unoidl/UnoDocumentSettings.cxx1248
-rw-r--r--sd/source/ui/unoidl/UnoDocumentSettings.hxx40
-rw-r--r--sd/source/ui/unoidl/detreg.cxx113
-rw-r--r--sd/source/ui/unoidl/facreg.cxx564
-rw-r--r--sd/source/ui/unoidl/makefile.mk92
-rw-r--r--sd/source/ui/unoidl/randomnode.cxx703
-rw-r--r--sd/source/ui/unoidl/sddetect.cxx546
-rw-r--r--sd/source/ui/unoidl/sddetect.hxx95
-rw-r--r--sd/source/ui/unoidl/unocpres.cxx516
-rw-r--r--sd/source/ui/unoidl/unocpres.hxx170
-rw-r--r--sd/source/ui/unoidl/unodoc.cxx110
-rw-r--r--sd/source/ui/unoidl/unohelp.hxx59
-rw-r--r--sd/source/ui/unoidl/unokywds.cxx37
-rw-r--r--sd/source/ui/unoidl/unolayer.cxx832
-rw-r--r--sd/source/ui/unoidl/unolayer.hxx189
-rw-r--r--sd/source/ui/unoidl/unomodel.cxx3081
-rw-r--r--sd/source/ui/unoidl/unomodule.cxx163
-rw-r--r--sd/source/ui/unoidl/unomodule.hxx98
-rw-r--r--sd/source/ui/unoidl/unoobj.cxx1811
-rw-r--r--sd/source/ui/unoidl/unoobj.hxx139
-rw-r--r--sd/source/ui/unoidl/unopage.cxx3163
-rw-r--r--sd/source/ui/unoidl/unopage.hxx318
-rw-r--r--sd/source/ui/unoidl/unopback.cxx472
-rw-r--r--sd/source/ui/unoidl/unopback.hxx95
-rw-r--r--sd/source/ui/unoidl/unopool.cxx99
-rw-r--r--sd/source/ui/unoidl/unosrch.cxx884
-rw-r--r--sd/source/ui/unoidl/unovwcrs.cxx209
-rw-r--r--sd/source/ui/unoidl/unowcntr.cxx150
-rw-r--r--sd/source/ui/unoidl/unowcntr.hxx61
-rw-r--r--sd/source/ui/view/DocumentRenderer.cxx2360
-rw-r--r--sd/source/ui/view/DocumentRenderer.hrc77
-rw-r--r--sd/source/ui/view/DocumentRenderer.src295
-rw-r--r--sd/source/ui/view/FormShellManager.cxx393
-rw-r--r--sd/source/ui/view/GraphicObjectBar.cxx185
-rw-r--r--sd/source/ui/view/GraphicViewShellBase.cxx138
-rw-r--r--sd/source/ui/view/ImpressViewShellBase.cxx128
-rw-r--r--sd/source/ui/view/MediaObjectBar.cxx166
-rw-r--r--sd/source/ui/view/OutlineViewShellBase.cxx92
-rw-r--r--sd/source/ui/view/Outliner.cxx1878
-rw-r--r--sd/source/ui/view/OutlinerIterator.cxx934
-rw-r--r--sd/source/ui/view/PresentationViewShellBase.cxx130
-rw-r--r--sd/source/ui/view/SlideSorterViewShellBase.cxx103
-rw-r--r--sd/source/ui/view/ToolBarManager.cxx1789
-rw-r--r--sd/source/ui/view/UpdateLockManager.cxx430
-rwxr-xr-xsd/source/ui/view/ViewClipboard.cxx278
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx1850
-rw-r--r--sd/source/ui/view/ViewShellHint.cxx52
-rw-r--r--sd/source/ui/view/ViewShellImplementation.cxx468
-rwxr-xr-xsd/source/ui/view/ViewShellManager.cxx1671
-rw-r--r--sd/source/ui/view/ViewTabBar.cxx715
-rw-r--r--sd/source/ui/view/WindowUpdater.cxx189
-rw-r--r--sd/source/ui/view/bmcache.cxx187
-rw-r--r--sd/source/ui/view/clview.cxx107
-rw-r--r--sd/source/ui/view/drawview.cxx634
-rw-r--r--sd/source/ui/view/drbezob.cxx365
-rw-r--r--sd/source/ui/view/drtxtob.cxx554
-rw-r--r--sd/source/ui/view/drtxtob1.cxx598
-rw-r--r--sd/source/ui/view/drviews1.cxx1422
-rw-r--r--sd/source/ui/view/drviews2.cxx1023
-rw-r--r--sd/source/ui/view/drviews3.cxx950
-rw-r--r--sd/source/ui/view/drviews4.cxx1007
-rw-r--r--sd/source/ui/view/drviews5.cxx746
-rw-r--r--sd/source/ui/view/drviews6.cxx769
-rw-r--r--sd/source/ui/view/drviews7.cxx1701
-rw-r--r--sd/source/ui/view/drviews8.cxx558
-rw-r--r--sd/source/ui/view/drviews9.cxx881
-rw-r--r--sd/source/ui/view/drviewsa.cxx871
-rw-r--r--sd/source/ui/view/drviewsb.cxx879
-rw-r--r--sd/source/ui/view/drviewsc.cxx994
-rw-r--r--sd/source/ui/view/drviewsd.cxx259
-rw-r--r--sd/source/ui/view/drviewse.cxx1672
-rw-r--r--sd/source/ui/view/drviewsf.cxx574
-rw-r--r--sd/source/ui/view/drviewsg.cxx296
-rw-r--r--sd/source/ui/view/drviewsh.cxx193
-rw-r--r--sd/source/ui/view/drviewsi.cxx207
-rw-r--r--sd/source/ui/view/drviewsj.cxx564
-rw-r--r--sd/source/ui/view/drvwshrg.cxx126
-rw-r--r--sd/source/ui/view/frmview.cxx1216
-rw-r--r--sd/source/ui/view/grviewsh.cxx174
-rw-r--r--sd/source/ui/view/makefile.mk123
-rw-r--r--sd/source/ui/view/outlnvs2.cxx648
-rw-r--r--sd/source/ui/view/outlnvsh.cxx2255
-rw-r--r--sd/source/ui/view/outlview.cxx2175
-rw-r--r--sd/source/ui/view/presvish.cxx189
-rw-r--r--sd/source/ui/view/sdruler.cxx226
-rw-r--r--sd/source/ui/view/sdview.cxx1403
-rw-r--r--sd/source/ui/view/sdview2.cxx1038
-rw-r--r--sd/source/ui/view/sdview3.cxx1485
-rw-r--r--sd/source/ui/view/sdview4.cxx618
-rw-r--r--sd/source/ui/view/sdview5.cxx29
-rw-r--r--sd/source/ui/view/sdwindow.cxx1240
-rw-r--r--sd/source/ui/view/showview.cxx170
-rw-r--r--sd/source/ui/view/tabcontr.cxx464
-rw-r--r--sd/source/ui/view/unmodpg.cxx249
-rw-r--r--sd/source/ui/view/viewshe2.cxx1253
-rw-r--r--sd/source/ui/view/viewshe3.cxx421
-rw-r--r--sd/source/ui/view/viewshel.cxx1627
-rw-r--r--sd/source/ui/view/zoomlist.cxx210
-rw-r--r--sd/source/unotypes/makefile.mk53
-rw-r--r--sd/uiconfig/sdraw/menubar/menubar.xml330
-rw-r--r--sd/uiconfig/sdraw/statusbar/statusbar.xml12
-rw-r--r--sd/uiconfig/sdraw/toolbar/3dobjectsbar.xml13
-rw-r--r--sd/uiconfig/sdraw/toolbar/alignmentbar.xml11
-rw-r--r--sd/uiconfig/sdraw/toolbar/arrowsbar.xml16
-rw-r--r--sd/uiconfig/sdraw/toolbar/arrowshapes.xml34
-rw-r--r--sd/uiconfig/sdraw/toolbar/basicshapes.xml29
-rw-r--r--sd/uiconfig/sdraw/toolbar/bezierobjectbar.xml20
-rw-r--r--sd/uiconfig/sdraw/toolbar/calloutshapes.xml11
-rw-r--r--sd/uiconfig/sdraw/toolbar/choosemodebar.xml13
-rw-r--r--sd/uiconfig/sdraw/toolbar/colorbar.xml15
-rw-r--r--sd/uiconfig/sdraw/toolbar/commentsbar.xml11
-rw-r--r--sd/uiconfig/sdraw/toolbar/connectorsbar.xml35
-rw-r--r--sd/uiconfig/sdraw/toolbar/drawingobjectbar.xml21
-rw-r--r--sd/uiconfig/sdraw/toolbar/ellipsesbar.xml19
-rw-r--r--sd/uiconfig/sdraw/toolbar/extrusionobjectbar.xml16
-rw-r--r--sd/uiconfig/sdraw/toolbar/flowchartshapes.xml36
-rw-r--r--sd/uiconfig/sdraw/toolbar/fontworkobjectbar.xml11
-rw-r--r--sd/uiconfig/sdraw/toolbar/fontworkshapetype.xml38
-rw-r--r--sd/uiconfig/sdraw/toolbar/formcontrols.xml26
-rw-r--r--sd/uiconfig/sdraw/toolbar/formdesign.xml29
-rw-r--r--sd/uiconfig/sdraw/toolbar/formsfilterbar.xml8
-rw-r--r--sd/uiconfig/sdraw/toolbar/formsnavigationbar.xml32
-rw-r--r--sd/uiconfig/sdraw/toolbar/formtextobjectbar.xml28
-rw-r--r--sd/uiconfig/sdraw/toolbar/fullscreenbar.xml5
-rw-r--r--sd/uiconfig/sdraw/toolbar/gluepointsobjectbar.xml20
-rw-r--r--sd/uiconfig/sdraw/toolbar/graffilterbar.xml17
-rw-r--r--sd/uiconfig/sdraw/toolbar/graphicobjectbar.xml17
-rw-r--r--sd/uiconfig/sdraw/toolbar/insertbar.xml20
-rw-r--r--sd/uiconfig/sdraw/toolbar/linesbar.xml13
-rw-r--r--sd/uiconfig/sdraw/toolbar/masterviewtoolbar.xml9
-rw-r--r--sd/uiconfig/sdraw/toolbar/mediaobjectbar.xml7
-rw-r--r--sd/uiconfig/sdraw/toolbar/moreformcontrols.xml23
-rw-r--r--sd/uiconfig/sdraw/toolbar/optimizetablebar.xml6
-rw-r--r--sd/uiconfig/sdraw/toolbar/optionsbar.xml25
-rw-r--r--sd/uiconfig/sdraw/toolbar/positionbar.xml13
-rw-r--r--sd/uiconfig/sdraw/toolbar/rectanglesbar.xml13
-rw-r--r--sd/uiconfig/sdraw/toolbar/standardbar.xml37
-rw-r--r--sd/uiconfig/sdraw/toolbar/starshapes.xml17
-rw-r--r--sd/uiconfig/sdraw/toolbar/symbolshapes.xml24
-rw-r--r--sd/uiconfig/sdraw/toolbar/tableobjectbar.xml31
-rw-r--r--sd/uiconfig/sdraw/toolbar/textbar.xml11
-rw-r--r--sd/uiconfig/sdraw/toolbar/textobjectbar.xml40
-rw-r--r--sd/uiconfig/sdraw/toolbar/toolbar.xml45
-rw-r--r--sd/uiconfig/sdraw/toolbar/viewerbar.xml18
-rw-r--r--sd/uiconfig/sdraw/toolbar/zoombar.xml16
-rw-r--r--sd/uiconfig/simpress/menubar/menubar.xml305
-rw-r--r--sd/uiconfig/simpress/statusbar/statusbar.xml12
-rw-r--r--sd/uiconfig/simpress/toolbar/3dobjectsbar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/alignmentbar.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/arrowsbar.xml16
-rw-r--r--sd/uiconfig/simpress/toolbar/arrowshapes.xml34
-rw-r--r--sd/uiconfig/simpress/toolbar/basicshapes.xml29
-rw-r--r--sd/uiconfig/simpress/toolbar/bezierobjectbar.xml20
-rw-r--r--sd/uiconfig/simpress/toolbar/calloutshapes.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/choosemodebar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/colorbar.xml15
-rw-r--r--sd/uiconfig/simpress/toolbar/commentsbar.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/commontaskbar.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/connectorsbar.xml35
-rw-r--r--sd/uiconfig/simpress/toolbar/drawingobjectbar.xml21
-rw-r--r--sd/uiconfig/simpress/toolbar/ellipsesbar.xml19
-rw-r--r--sd/uiconfig/simpress/toolbar/extrusionobjectbar.xml16
-rw-r--r--sd/uiconfig/simpress/toolbar/flowchartshapes.xml36
-rw-r--r--sd/uiconfig/simpress/toolbar/fontworkobjectbar.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/fontworkshapetype.xml38
-rw-r--r--sd/uiconfig/simpress/toolbar/formcontrols.xml26
-rw-r--r--sd/uiconfig/simpress/toolbar/formdesign.xml29
-rw-r--r--sd/uiconfig/simpress/toolbar/formsfilterbar.xml8
-rw-r--r--sd/uiconfig/simpress/toolbar/formsnavigationbar.xml32
-rw-r--r--sd/uiconfig/simpress/toolbar/formtextobjectbar.xml28
-rw-r--r--sd/uiconfig/simpress/toolbar/fullscreenbar.xml5
-rw-r--r--sd/uiconfig/simpress/toolbar/gluepointsobjectbar.xml20
-rw-r--r--sd/uiconfig/simpress/toolbar/graffilterbar.xml17
-rw-r--r--sd/uiconfig/simpress/toolbar/graphicobjectbar.xml17
-rw-r--r--sd/uiconfig/simpress/toolbar/insertbar.xml20
-rw-r--r--sd/uiconfig/simpress/toolbar/linesbar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/masterviewtoolbar.xml9
-rw-r--r--sd/uiconfig/simpress/toolbar/mediaobjectbar.xml7
-rw-r--r--sd/uiconfig/simpress/toolbar/moreformcontrols.xml23
-rw-r--r--sd/uiconfig/simpress/toolbar/optimizetablebar.xml6
-rw-r--r--sd/uiconfig/simpress/toolbar/optionsbar.xml25
-rw-r--r--sd/uiconfig/simpress/toolbar/outlinetoolbar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/positionbar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/rectanglesbar.xml13
-rw-r--r--sd/uiconfig/simpress/toolbar/slideviewobjectbar.xml10
-rw-r--r--sd/uiconfig/simpress/toolbar/slideviewtoolbar.xml7
-rw-r--r--sd/uiconfig/simpress/toolbar/standardbar.xml39
-rw-r--r--sd/uiconfig/simpress/toolbar/starshapes.xml17
-rw-r--r--sd/uiconfig/simpress/toolbar/symbolshapes.xml24
-rw-r--r--sd/uiconfig/simpress/toolbar/tableobjectbar.xml31
-rw-r--r--sd/uiconfig/simpress/toolbar/textbar.xml11
-rw-r--r--sd/uiconfig/simpress/toolbar/textobjectbar.xml45
-rw-r--r--sd/uiconfig/simpress/toolbar/toolbar.xml49
-rw-r--r--sd/uiconfig/simpress/toolbar/viewerbar.xml20
-rw-r--r--sd/uiconfig/simpress/toolbar/zoombar.xml16
-rw-r--r--sd/util/exports.dxp3
-rw-r--r--sd/util/hidother.hrc43
-rw-r--r--sd/util/hidother.src206
-rw-r--r--sd/util/makefile.mk276
-rw-r--r--sd/util/makefile.pmk32
-rw-r--r--sd/util/sd.flt136
-rw-r--r--sd/util/sd.map8
-rw-r--r--sd/util/sdd.map8
-rw-r--r--sd/util/sdfilt.map8
-rw-r--r--sd/util/sdui.map6
-rw-r--r--sd/workben/testdll/makefile101
-rw-r--r--sd/xml/AccessibleDrawDocumentView.xml41
-rw-r--r--sd/xml/AccessibleOutlineView.xml39
-rw-r--r--sd/xml/AccessiblePageShape.xml39
-rw-r--r--sd/xml/AccessiblePresentationGraphicShape.xml40
-rw-r--r--sd/xml/AccessiblePresentationOLEShape.xml40
-rw-r--r--sd/xml/AccessiblePresentationShape.xml38
-rw-r--r--sd/xml/AccessibleSlideView.xml35
-rw-r--r--sd/xml/AccessibleSlideViewObject.xml34
-rw-r--r--sd/xml/DrawingView.xml17
-rw-r--r--sd/xml/HandoutView.xml17
-rw-r--r--sd/xml/NotesView.xml17
-rw-r--r--sd/xml/OutlineView.xml17
-rw-r--r--sd/xml/PresentationView.xml17
-rw-r--r--sd/xml/SdDocLinkTargets.xml16
-rw-r--r--sd/xml/SdDrawPage.xml16
-rw-r--r--sd/xml/SdDrawPagesAccess.xml16
-rw-r--r--sd/xml/SdGenericDrawPage.xml16
-rw-r--r--sd/xml/SdLayer.xml16
-rw-r--r--sd/xml/SdLayerManager.xml16
-rw-r--r--sd/xml/SdMasterPage.xml16
-rw-r--r--sd/xml/SdMasterPagesAccess.xml16
-rw-r--r--sd/xml/SdPageLinkTargets.xml16
-rw-r--r--sd/xml/SdXCustomPresentation.xml16
-rw-r--r--sd/xml/SdXCustomPresentationAccess.xml16
-rw-r--r--sd/xml/SdXImpressDocument.xml16
-rw-r--r--sd/xml/SdXPresentation.xml16
-rw-r--r--sd/xml/SdXShape.xml16
-rw-r--r--sd/xml/SlidesView.xml17
-rw-r--r--sd/xml/effects.xml2630
-rw-r--r--sd/xml/transitions-ogl.xml33
-rw-r--r--sd/xml/transitions.xml222
-rw-r--r--sd/xsl/effect.xsl563
-rw-r--r--sdext/inc/makefile.mk47
-rw-r--r--sdext/inc/pch/precompiled_sdext.cxx29
-rw-r--r--sdext/inc/pch/precompiled_sdext.hxx32
-rw-r--r--sdext/prj/build.lst20
-rw-r--r--sdext/prj/d.lst8
-rw-r--r--sdext/source/minimizer/aboutdialog.cxx276
-rw-r--r--sdext/source/minimizer/aboutdialog.hxx91
-rw-r--r--sdext/source/minimizer/basic.txt89
-rw-r--r--sdext/source/minimizer/configurationaccess.cxx537
-rw-r--r--sdext/source/minimizer/configurationaccess.hxx139
-rw-r--r--sdext/source/minimizer/delzip1
-rw-r--r--sdext/source/minimizer/description.xml32
-rw-r--r--sdext/source/minimizer/exports.map9
-rw-r--r--sdext/source/minimizer/fileopendialog.cxx195
-rw-r--r--sdext/source/minimizer/fileopendialog.hxx72
-rw-r--r--sdext/source/minimizer/graphiccollector.cxx460
-rw-r--r--sdext/source/minimizer/graphiccollector.hxx106
-rwxr-xr-xsdext/source/minimizer/help/component.txt3
-rw-r--r--sdext/source/minimizer/help/help_de.odtbin0 -> 8987 bytes
-rw-r--r--sdext/source/minimizer/help/help_en-US.odtbin0 -> 8987 bytes
-rw-r--r--sdext/source/minimizer/impoptimizer.cxx754
-rw-r--r--sdext/source/minimizer/impoptimizer.hxx87
-rw-r--r--sdext/source/minimizer/informationdialog.cxx413
-rw-r--r--sdext/source/minimizer/informationdialog.hxx99
-rw-r--r--sdext/source/minimizer/makefile.mk136
-rw-r--r--sdext/source/minimizer/manifest.xml18
-rw-r--r--sdext/source/minimizer/minimizer.pmk28
-rw-r--r--sdext/source/minimizer/optimizationstats.cxx102
-rw-r--r--sdext/source/minimizer/optimizationstats.hxx63
-rw-r--r--sdext/source/minimizer/optimizerdialog.cxx839
-rw-r--r--sdext/source/minimizer/optimizerdialog.hrc36
-rw-r--r--sdext/source/minimizer/optimizerdialog.hxx249
-rw-r--r--sdext/source/minimizer/optimizerdialogcontrols.cxx960
-rw-r--r--sdext/source/minimizer/pagecollector.cxx180
-rw-r--r--sdext/source/minimizer/pagecollector.hxx49
-rw-r--r--sdext/source/minimizer/pppoptimizer.cxx209
-rw-r--r--sdext/source/minimizer/pppoptimizer.hxx100
-rw-r--r--sdext/source/minimizer/pppoptimizerdialog.cxx223
-rw-r--r--sdext/source/minimizer/pppoptimizerdialog.hxx111
-rw-r--r--sdext/source/minimizer/pppoptimizertoken.cxx341
-rw-r--r--sdext/source/minimizer/pppoptimizertoken.hxx286
-rw-r--r--sdext/source/minimizer/pppoptimizeruno.cxx120
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/Addons.xcu113
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/ProtocolHandler.xcu10
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/UI/ImpressWindowState.xcu27
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/UI/makefile.mk47
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/extension/SunPresentationMinimizer.xcu400
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/extension/makefile.mk50
-rw-r--r--sdext/source/minimizer/registry/data/org/openoffice/Office/makefile.mk48
-rw-r--r--sdext/source/minimizer/registry/schema/org/openoffice/Office/extension/SunPresentationMinimizer.xcs339
-rw-r--r--sdext/source/minimizer/unodialog.cxx452
-rw-r--r--sdext/source/minimizer/unodialog.hxx149
-rw-r--r--sdext/source/pdfimport/config/description.xml36
-rw-r--r--sdext/source/pdfimport/config/manifest.xml16
-rw-r--r--sdext/source/pdfimport/config/pdf_import_filter.xcu199
-rw-r--r--sdext/source/pdfimport/config/pdf_types.xcu18
-rw-r--r--sdext/source/pdfimport/delzip1
-rw-r--r--sdext/source/pdfimport/dialogs/Module1.xba7
-rw-r--r--sdext/source/pdfimport/dialogs/TargetChooser.xdl21
-rw-r--r--sdext/source/pdfimport/dialogs/dialog.xlb5
-rw-r--r--sdext/source/pdfimport/dialogs/impress.pngbin0 -> 11117 bytes
-rw-r--r--sdext/source/pdfimport/dialogs/script.xlb5
-rw-r--r--sdext/source/pdfimport/dialogs/writer.pngbin0 -> 10176 bytes
-rwxr-xr-xsdext/source/pdfimport/dialogs/xpdfimport_err.pdfbin0 -> 21204 bytes
-rw-r--r--sdext/source/pdfimport/exports.map9
-rw-r--r--sdext/source/pdfimport/filterdet.cxx774
-rw-r--r--sdext/source/pdfimport/filterdet.hxx112
-rwxr-xr-xsdext/source/pdfimport/help/component.txt3
-rw-r--r--sdext/source/pdfimport/images/pdfiext.pngbin0 -> 1965 bytes
-rw-r--r--sdext/source/pdfimport/images/pdfiext_hc.pngbin0 -> 1160 bytes
-rwxr-xr-xsdext/source/pdfimport/inc/contentsink.hxx184
-rw-r--r--sdext/source/pdfimport/inc/odfemitter.hxx45
-rwxr-xr-xsdext/source/pdfimport/inc/pdfihelper.hxx198
-rw-r--r--sdext/source/pdfimport/inc/pdfparse.hxx309
-rw-r--r--sdext/source/pdfimport/inc/saxemitter.hxx46
-rw-r--r--sdext/source/pdfimport/inc/treevisitorfactory.hxx67
-rwxr-xr-xsdext/source/pdfimport/inc/wrapper.hxx63
-rw-r--r--sdext/source/pdfimport/inc/xmlemitter.hxx60
-rw-r--r--sdext/source/pdfimport/makefile.mk155
-rw-r--r--sdext/source/pdfimport/misc/makefile.mk51
-rw-r--r--sdext/source/pdfimport/misc/pdfihelper.cxx80
-rw-r--r--sdext/source/pdfimport/misc/pwdinteract.cxx160
-rw-r--r--sdext/source/pdfimport/odf/makefile.mk50
-rw-r--r--sdext/source/pdfimport/odf/odfemitter.cxx136
-rw-r--r--sdext/source/pdfimport/pdfiadaptor.cxx329
-rw-r--r--sdext/source/pdfimport/pdfiadaptor.hxx138
-rw-r--r--sdext/source/pdfimport/pdfisettings.pmk28
-rw-r--r--sdext/source/pdfimport/pdfparse/makefile.mk58
-rw-r--r--sdext/source/pdfimport/pdfparse/pdfentries.cxx1357
-rw-r--r--sdext/source/pdfimport/pdfparse/pdfparse.cxx666
-rw-r--r--sdext/source/pdfimport/sax/emitcontext.cxx190
-rw-r--r--sdext/source/pdfimport/sax/emitcontext.hxx60
-rw-r--r--sdext/source/pdfimport/sax/makefile.mk51
-rw-r--r--sdext/source/pdfimport/sax/saxattrlist.cxx104
-rw-r--r--sdext/source/pdfimport/sax/saxattrlist.hxx76
-rw-r--r--sdext/source/pdfimport/services.cxx188
-rwxr-xr-xsdext/source/pdfimport/test/export.map34
-rwxr-xr-xsdext/source/pdfimport/test/makefile.mk164
-rw-r--r--sdext/source/pdfimport/test/outputwrap.hxx72
-rw-r--r--sdext/source/pdfimport/test/pdf2xml.cxx105
-rw-r--r--sdext/source/pdfimport/test/pdfunzip.cxx538
-rw-r--r--sdext/source/pdfimport/test/testdocs/graphicformats.pdfbin0 -> 27149 bytes
-rw-r--r--sdext/source/pdfimport/test/testdocs/graphicformats_pdfi_unittest_draw.xml242
-rw-r--r--sdext/source/pdfimport/test/testdocs/graphicformats_pdfi_unittest_impress.xml242
-rw-r--r--sdext/source/pdfimport/test/testdocs/graphicformats_pdfi_unittest_writer.xml368
-rw-r--r--sdext/source/pdfimport/test/testdocs/makefile.mk81
-rw-r--r--sdext/source/pdfimport/test/testdocs/pictxt.pdfbin0 -> 24475 bytes
-rw-r--r--sdext/source/pdfimport/test/testdocs/pictxt_pdfi_unittest_draw.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/pictxt_pdfi_unittest_impress.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/pictxt_pdfi_unittest_writer.xml533
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpic.pdfbin0 -> 24486 bytes
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpic_pdfi_unittest_draw.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpic_pdfi_unittest_impress.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpic_pdfi_unittest_writer.xml533
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpictxt.pdfbin0 -> 24484 bytes
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpictxt_pdfi_unittest_draw.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpictxt_pdfi_unittest_impress.xml3379
-rw-r--r--sdext/source/pdfimport/test/testdocs/txtpictxt_pdfi_unittest_writer.xml533
-rw-r--r--sdext/source/pdfimport/test/testdocs/verticaltext.pdfbin0 -> 16533 bytes
-rw-r--r--sdext/source/pdfimport/test/testdocs/verticaltext_pdfi_unittest_draw.xml216
-rw-r--r--sdext/source/pdfimport/test/testdocs/verticaltext_pdfi_unittest_impress.xml216
-rw-r--r--sdext/source/pdfimport/test/testdocs/verticaltext_pdfi_unittest_writer.xml339
-rwxr-xr-xsdext/source/pdfimport/test/testinput.odpbin0 -> 40660 bytes
-rwxr-xr-xsdext/source/pdfimport/test/testinput.pdfbin0 -> 67103 bytes
-rwxr-xr-xsdext/source/pdfimport/test/tests.cxx579
-rw-r--r--sdext/source/pdfimport/tree/drawtreevisiting.cxx984
-rw-r--r--sdext/source/pdfimport/tree/drawtreevisiting.hxx111
-rw-r--r--sdext/source/pdfimport/tree/genericelements.cxx489
-rw-r--r--sdext/source/pdfimport/tree/genericelements.hxx316
-rw-r--r--sdext/source/pdfimport/tree/imagecontainer.cxx153
-rw-r--r--sdext/source/pdfimport/tree/imagecontainer.hxx61
-rw-r--r--sdext/source/pdfimport/tree/makefile.mk56
-rw-r--r--sdext/source/pdfimport/tree/pdfiprocessor.cxx1046
-rw-r--r--sdext/source/pdfimport/tree/pdfiprocessor.hxx291
-rw-r--r--sdext/source/pdfimport/tree/style.cxx257
-rw-r--r--sdext/source/pdfimport/tree/style.hxx181
-rw-r--r--sdext/source/pdfimport/tree/treevisiting.hxx80
-rw-r--r--sdext/source/pdfimport/tree/treevisitorfactory.cxx118
-rw-r--r--sdext/source/pdfimport/tree/writertreevisiting.cxx1218
-rw-r--r--sdext/source/pdfimport/tree/writertreevisiting.hxx116
-rwxr-xr-xsdext/source/pdfimport/wrapper/hash.cxx214
-rwxr-xr-xsdext/source/pdfimport/wrapper/keyword_list53
-rwxr-xr-xsdext/source/pdfimport/wrapper/makefile.mk53
-rwxr-xr-xsdext/source/pdfimport/wrapper/wrapper.cxx1041
-rw-r--r--sdext/source/pdfimport/xpdftest/binary_0_out.defbin0 -> 80097 bytes
-rw-r--r--sdext/source/pdfimport/xpdftest/binary_1_out.defbin0 -> 75159156 bytes
-rw-r--r--sdext/source/pdfimport/xpdftest/book.pdfbin0 -> 463628 bytes
-rw-r--r--sdext/source/pdfimport/xpdftest/makefile.mk59
-rw-r--r--sdext/source/pdfimport/xpdftest/testinput.odpbin0 -> 44591 bytes
-rw-r--r--sdext/source/pdfimport/xpdftest/testinput.pdfbin0 -> 64488 bytes
-rw-r--r--sdext/source/pdfimport/xpdftest/text_0_out.def202
-rw-r--r--sdext/source/pdfimport/xpdftest/text_1_out.def70338
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/makefile.mk82
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.cxx907
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/pdfioutdev_gpl.hxx290
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/pnghelper.cxx415
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/pnghelper.hxx92
-rw-r--r--sdext/source/pdfimport/xpdfwrapper/wrapper_gpl.cxx214
-rwxr-xr-xsdext/source/presenter/PresenterAccessibility.cxx2488
-rwxr-xr-xsdext/source/presenter/PresenterAccessibility.hxx156
-rw-r--r--sdext/source/presenter/PresenterAnimation.cxx140
-rw-r--r--sdext/source/presenter/PresenterAnimation.hxx130
-rw-r--r--sdext/source/presenter/PresenterAnimator.cxx171
-rw-r--r--sdext/source/presenter/PresenterAnimator.hxx72
-rw-r--r--sdext/source/presenter/PresenterBitmapContainer.cxx498
-rw-r--r--sdext/source/presenter/PresenterBitmapContainer.hxx165
-rw-r--r--sdext/source/presenter/PresenterButton.cxx612
-rw-r--r--sdext/source/presenter/PresenterButton.hxx185
-rw-r--r--sdext/source/presenter/PresenterCanvasHelper.cxx328
-rw-r--r--sdext/source/presenter/PresenterCanvasHelper.hxx119
-rw-r--r--sdext/source/presenter/PresenterClock.cxx1449
-rw-r--r--sdext/source/presenter/PresenterClock.hxx199
-rw-r--r--sdext/source/presenter/PresenterComponent.cxx150
-rw-r--r--sdext/source/presenter/PresenterComponent.hxx55
-rw-r--r--sdext/source/presenter/PresenterConfigurationAccess.cxx410
-rw-r--r--sdext/source/presenter/PresenterConfigurationAccess.hxx205
-rw-r--r--sdext/source/presenter/PresenterController.cxx1376
-rw-r--r--sdext/source/presenter/PresenterController.hxx267
-rw-r--r--sdext/source/presenter/PresenterCurrentSlideObserver.cxx154
-rw-r--r--sdext/source/presenter/PresenterCurrentSlideObserver.hxx95
-rw-r--r--sdext/source/presenter/PresenterExtensionIdentifier.txx41
-rw-r--r--sdext/source/presenter/PresenterFrameworkObserver.cxx213
-rw-r--r--sdext/source/presenter/PresenterFrameworkObserver.hxx130
-rw-r--r--sdext/source/presenter/PresenterGeometryHelper.cxx334
-rw-r--r--sdext/source/presenter/PresenterGeometryHelper.hxx130
-rw-r--r--sdext/source/presenter/PresenterHelpView.cxx823
-rw-r--r--sdext/source/presenter/PresenterHelpView.hxx143
-rw-r--r--sdext/source/presenter/PresenterHelper.cxx93
-rw-r--r--sdext/source/presenter/PresenterHelper.hxx77
-rw-r--r--sdext/source/presenter/PresenterNotesView.cxx807
-rw-r--r--sdext/source/presenter/PresenterNotesView.hxx197
-rw-r--r--sdext/source/presenter/PresenterPaintManager.cxx175
-rw-r--r--sdext/source/presenter/PresenterPaintManager.hxx96
-rw-r--r--sdext/source/presenter/PresenterPane.cxx234
-rw-r--r--sdext/source/presenter/PresenterPane.hxx118
-rw-r--r--sdext/source/presenter/PresenterPaneAnimator.cxx1424
-rw-r--r--sdext/source/presenter/PresenterPaneAnimator.hxx94
-rw-r--r--sdext/source/presenter/PresenterPaneBase.cxx558
-rw-r--r--sdext/source/presenter/PresenterPaneBase.hxx173
-rw-r--r--sdext/source/presenter/PresenterPaneBorderManager.cxx582
-rw-r--r--sdext/source/presenter/PresenterPaneBorderManager.hxx174
-rw-r--r--sdext/source/presenter/PresenterPaneBorderPainter.cxx1101
-rw-r--r--sdext/source/presenter/PresenterPaneBorderPainter.hxx163
-rw-r--r--sdext/source/presenter/PresenterPaneContainer.cxx447
-rw-r--r--sdext/source/presenter/PresenterPaneContainer.hxx197
-rw-r--r--sdext/source/presenter/PresenterPaneFactory.cxx377
-rw-r--r--sdext/source/presenter/PresenterPaneFactory.hxx139
-rw-r--r--sdext/source/presenter/PresenterProtocolHandler.cxx1001
-rw-r--r--sdext/source/presenter/PresenterProtocolHandler.hxx103
-rw-r--r--sdext/source/presenter/PresenterScreen.cxx927
-rw-r--r--sdext/source/presenter/PresenterScreen.hxx247
-rw-r--r--sdext/source/presenter/PresenterScrollBar.cxx1345
-rw-r--r--sdext/source/presenter/PresenterScrollBar.hxx337
-rw-r--r--sdext/source/presenter/PresenterSlidePreview.cxx427
-rw-r--r--sdext/source/presenter/PresenterSlidePreview.hxx173
-rw-r--r--sdext/source/presenter/PresenterSlideShowView.cxx1156
-rw-r--r--sdext/source/presenter/PresenterSlideShowView.hxx297
-rw-r--r--sdext/source/presenter/PresenterSlideSorter.cxx2321
-rw-r--r--sdext/source/presenter/PresenterSlideSorter.hxx233
-rw-r--r--sdext/source/presenter/PresenterSprite.cxx289
-rw-r--r--sdext/source/presenter/PresenterSprite.hxx99
-rw-r--r--sdext/source/presenter/PresenterSpritePane.cxx260
-rw-r--r--sdext/source/presenter/PresenterSpritePane.hxx126
-rwxr-xr-xsdext/source/presenter/PresenterTextView.cxx1595
-rwxr-xr-xsdext/source/presenter/PresenterTextView.hxx319
-rw-r--r--sdext/source/presenter/PresenterTheme.cxx1414
-rw-r--r--sdext/source/presenter/PresenterTheme.hxx157
-rw-r--r--sdext/source/presenter/PresenterTimer.cxx678
-rw-r--r--sdext/source/presenter/PresenterTimer.hxx143
-rw-r--r--sdext/source/presenter/PresenterToolBar.cxx2458
-rw-r--r--sdext/source/presenter/PresenterToolBar.hxx315
-rw-r--r--sdext/source/presenter/PresenterUIPainter.cxx256
-rw-r--r--sdext/source/presenter/PresenterUIPainter.hxx70
-rw-r--r--sdext/source/presenter/PresenterViewFactory.cxx653
-rw-r--r--sdext/source/presenter/PresenterViewFactory.hxx186
-rw-r--r--sdext/source/presenter/PresenterWindowManager.cxx1641
-rw-r--r--sdext/source/presenter/PresenterWindowManager.hxx259
-rw-r--r--sdext/source/presenter/bitmaps/Background.pngbin0 -> 3474 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveBottom.pngbin0 -> 214 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveBottomCallout.pngbin0 -> 1425 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveBottomLeft.pngbin0 -> 598 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveBottomRight.pngbin0 -> 626 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveLeft.pngbin0 -> 145 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveRight.pngbin0 -> 141 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveTop.pngbin0 -> 148 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveTopLeft.pngbin0 -> 442 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderActiveTopRight.pngbin0 -> 438 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderBottom.pngbin0 -> 164 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderBottomLeft.pngbin0 -> 576 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderBottomRight.pngbin0 -> 587 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideBottom.pngbin0 -> 140 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideBottomLeft.pngbin0 -> 161 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideBottomRight.pngbin0 -> 159 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideLeft.pngbin0 -> 140 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideRight.pngbin0 -> 140 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideTop.pngbin0 -> 140 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideTopLeft.pngbin0 -> 164 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderCurrentSlideTopRight.pngbin0 -> 164 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderLeft.pngbin0 -> 147 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderRight.pngbin0 -> 177 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarBottom.pngbin0 -> 112 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarLeft.pngbin0 -> 119 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarRight.pngbin0 -> 121 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarTop.pngbin0 -> 120 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarTopLeft.pngbin0 -> 268 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderToolbarTopRight.pngbin0 -> 244 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderTop.pngbin0 -> 174 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderTopLeft.pngbin0 -> 426 bytes
-rw-r--r--sdext/source/presenter/bitmaps/BorderTopRight.pngbin0 -> 414 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonEffectNextDisabled.pngbin0 -> 258 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonEffectNextMouseOver.pngbin0 -> 259 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonEffectNextNormal.pngbin0 -> 262 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonEffectNextSelected.pngbin0 -> 257 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameCenterMouseOver.pngbin0 -> 131 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameCenterNormal.pngbin0 -> 138 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameLeftMouseOver.pngbin0 -> 166 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameLeftNormal.pngbin0 -> 166 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameRightMouseOver.pngbin0 -> 163 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonFrameRightNormal.pngbin0 -> 163 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonHelpDisabled.pngbin0 -> 543 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonHelpMouseOver.pngbin0 -> 538 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonHelpNormal.pngbin0 -> 550 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonHelpSelected.pngbin0 -> 623 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonMinusDisabled.pngbin0 -> 243 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonMinusMouseOver.pngbin0 -> 239 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonMinusNormal.pngbin0 -> 244 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonMinusSelected.pngbin0 -> 245 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonNotesDisabled.pngbin0 -> 321 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonNotesMouseOver.pngbin0 -> 314 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonNotesNormal.pngbin0 -> 324 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonNotesSelected.pngbin0 -> 318 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonPlusDisabled.pngbin0 -> 277 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonPlusMouseOver.pngbin0 -> 275 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonPlusNormal.pngbin0 -> 279 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonPlusSelected.pngbin0 -> 280 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideNextDisabled.pngbin0 -> 246 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideNextMouseOver.pngbin0 -> 250 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideNextNormal.pngbin0 -> 250 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlidePreviousDisabled.pngbin0 -> 270 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlidePreviousMouseOver.pngbin0 -> 263 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlidePreviousNormal.pngbin0 -> 271 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlidePreviousSelected.pngbin0 -> 270 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideSorterDisabled.pngbin0 -> 342 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideSorterMouseOver.pngbin0 -> 338 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideSorterNormal.pngbin0 -> 347 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ButtonSlideSorterSelected.pngbin0 -> 338 bytes
-rw-r--r--sdext/source/presenter/bitmaps/LabelMouseOverCenter.pngbin0 -> 208 bytes
-rw-r--r--sdext/source/presenter/bitmaps/LabelMouseOverLeft.pngbin0 -> 157 bytes
-rw-r--r--sdext/source/presenter/bitmaps/LabelMouseOverRight.pngbin0 -> 154 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowDownDisabled.pngbin0 -> 324 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowDownMouseOver.pngbin0 -> 324 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowDownNormal.pngbin0 -> 331 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowDownSelected.pngbin0 -> 369 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowUpDisabled.pngbin0 -> 319 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowUpMouseOver.pngbin0 -> 323 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowUpNormal.pngbin0 -> 329 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarArrowUpSelected.pngbin0 -> 365 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarPagerMiddleMouseOver.pngbin0 -> 125 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarPagerMiddleNormal.pngbin0 -> 119 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbBottomMouseOver.pngbin0 -> 120 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbBottomNormal.pngbin0 -> 120 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbMiddleMouseOver.pngbin0 -> 118 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbMiddleNormal.pngbin0 -> 118 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbTopMouseOver.pngbin0 -> 120 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ScrollbarThumbTopNormal.pngbin0 -> 120 bytes
-rw-r--r--sdext/source/presenter/bitmaps/ViewBackground.pngbin0 -> 177 bytes
-rw-r--r--sdext/source/presenter/delzip1
-rw-r--r--sdext/source/presenter/description.xml32
-rw-r--r--sdext/source/presenter/exports.map9
-rwxr-xr-xsdext/source/presenter/help/component.txt3
-rw-r--r--sdext/source/presenter/help/en-US/com.sun.PresenterScreen/makefile.mk51
-rw-r--r--sdext/source/presenter/help/en-US/com.sun.PresenterScreen/presenter.xhp186
-rw-r--r--sdext/source/presenter/makefile.mk376
-rw-r--r--sdext/source/presenter/manifest.xml18
-rw-r--r--sdext/source/presenter/registry/data/org/openoffice/Office/Jobs.xcu17
-rw-r--r--sdext/source/presenter/registry/data/org/openoffice/Office/ProtocolHandler.xcu10
-rw-r--r--sdext/source/presenter/registry/data/org/openoffice/Office/extension/PresenterScreen.xcu1224
-rw-r--r--sdext/source/presenter/registry/data/org/openoffice/Office/extension/makefile.mk51
-rw-r--r--sdext/source/presenter/registry/data/org/openoffice/Office/makefile.mk48
-rw-r--r--sdext/source/presenter/registry/schema/org/openoffice/Office/extension/PresenterScreen.xcs469
-rw-r--r--sdext/util/makefile.pmk37
-rw-r--r--set_soenv.in2531
-rw-r--r--setup_native/inc/setup_native/qswin32.h49
-rw-r--r--setup_native/prj/build.lst20
-rw-r--r--setup_native/prj/d.lst53
-rw-r--r--setup_native/scripts/admin.pl1389
-rw-r--r--setup_native/scripts/deregister_extensions78
-rw-r--r--setup_native/scripts/downloadscript.sh87
-rw-r--r--setup_native/scripts/fake-db.spec38
-rwxr-xr-xsetup_native/scripts/install_create.pl44
-rw-r--r--setup_native/scripts/install_linux.sh293
-rw-r--r--setup_native/scripts/install_solaris.sh364
-rw-r--r--setup_native/scripts/javaloader.sh498
-rw-r--r--setup_native/scripts/langpackscript.sh153
-rw-r--r--setup_native/scripts/linuxpatchscript.sh84
-rw-r--r--setup_native/scripts/mac_install.script10
-rw-r--r--setup_native/scripts/makefile.mk99
-rw-r--r--setup_native/scripts/osx_install_languagepack.applescript115
-rw-r--r--setup_native/scripts/osx_install_patch.applescript113
-rw-r--r--setup_native/scripts/register_extensions84
-rw-r--r--setup_native/scripts/source/getuid.c135
-rw-r--r--setup_native/scripts/source/makefile.mk90
-rw-r--r--setup_native/scripts/stclient_wrapper.sh66
-rw-r--r--setup_native/scripts/uninstall_linux.sh55
-rw-r--r--setup_native/scripts/uninstall_solaris.sh57
-rw-r--r--setup_native/scripts/unpack_update.sh33
-rw-r--r--setup_native/scripts/update.sh195
-rw-r--r--setup_native/scripts/userland.txt28
-rwxr-xr-xsetup_native/source/java/javaversion.dat57
-rw-r--r--setup_native/source/java/javaversion2.dat57
-rw-r--r--setup_native/source/java/openofficeorg_setup.gifbin0 -> 13549 bytes
-rw-r--r--setup_native/source/linux/root3.dat4
-rw-r--r--setup_native/source/linux/root4.dat4
-rw-r--r--setup_native/source/linux/root5.dat4
-rw-r--r--setup_native/source/mac/Info.plist.langpack36
-rw-r--r--setup_native/source/mac/macinstall.ulf68
-rw-r--r--setup_native/source/mac/makefile.mk57
-rw-r--r--setup_native/source/mac/ooo3_installer.icnsbin0 -> 49809 bytes
-rw-r--r--setup_native/source/opensolaris/bundledextensions/README80
-rw-r--r--setup_native/source/opensolaris/bundledextensions/installed1
-rw-r--r--setup_native/source/opensolaris/bundledextensions/ooo_bundled_extensions.xml60
-rw-r--r--setup_native/source/opensolaris/bundledextensions/svc-ooo_bundled_extensions108
-rw-r--r--setup_native/source/packinfo/finals_instsetoo.txt14
-rw-r--r--setup_native/source/packinfo/openoffice.pcpbin0 -> 6144 bytes
-rw-r--r--setup_native/source/packinfo/openofficelanguagepack.pcpbin0 -> 6144 bytes
-rw-r--r--setup_native/source/packinfo/package_names.txt73
-rw-r--r--setup_native/source/packinfo/package_names_ext.txt21
-rw-r--r--setup_native/source/packinfo/packinfo_brand.txt139
-rwxr-xr-xsetup_native/source/packinfo/packinfo_office.txt1004
-rwxr-xr-xsetup_native/source/packinfo/packinfo_office_lang.txt209
-rwxr-xr-xsetup_native/source/packinfo/packinfo_sdkoo.txt41
-rwxr-xr-xsetup_native/source/packinfo/packinfo_ure.txt52
-rw-r--r--setup_native/source/packinfo/private1copyrightfile2
-rwxr-xr-xsetup_native/source/packinfo/shellscripts.txt11
-rw-r--r--setup_native/source/packinfo/shellscripts_brand.txt69
-rw-r--r--setup_native/source/packinfo/shellscripts_core01.txt70
-rwxr-xr-xsetup_native/source/packinfo/shellscripts_extensions.txt360
-rwxr-xr-xsetup_native/source/packinfo/shellscripts_module.txt33
-rwxr-xr-xsetup_native/source/packinfo/shellscripts_root.txt11
-rwxr-xr-xsetup_native/source/packinfo/solariscopyrightfile2
-rw-r--r--setup_native/source/packinfo/spellchecker_selection.txt44
-rw-r--r--setup_native/source/packinfo/ure.pcpbin0 -> 6144 bytes
-rw-r--r--setup_native/source/ulfconv/makefile.mk54
-rw-r--r--setup_native/source/ulfconv/ulfconv.cxx357
-rw-r--r--setup_native/source/win32/customactions/indexingfilter/exports.dxp3
-rw-r--r--setup_native/source/win32/customactions/indexingfilter/makefile.mk68
-rw-r--r--setup_native/source/win32/customactions/indexingfilter/restartindexingservice.cxx208
-rw-r--r--setup_native/source/win32/customactions/javafilter/exports.dxp2
-rw-r--r--setup_native/source/win32/customactions/javafilter/jfregca.cxx330
-rw-r--r--setup_native/source/win32/customactions/javafilter/makefile.mk70
-rwxr-xr-xsetup_native/source/win32/customactions/languagepacks/checkrunningofficelanguagepack.cxx218
-rw-r--r--setup_native/source/win32/customactions/languagepacks/exports.dxp7
-rw-r--r--setup_native/source/win32/customactions/languagepacks/lngpckinsthelper.cxx204
-rw-r--r--setup_native/source/win32/customactions/languagepacks/makefile.mk100
-rw-r--r--setup_native/source/win32/customactions/languagepacks/respintest.cxx211
-rwxr-xr-xsetup_native/source/win32/customactions/patch/exports.dxp12
-rwxr-xr-xsetup_native/source/win32/customactions/patch/makefile.mk98
-rwxr-xr-xsetup_native/source/win32/customactions/patch/swappatchfiles.cxx908
-rw-r--r--setup_native/source/win32/customactions/quickstarter/exports.dxp3
-rw-r--r--setup_native/source/win32/customactions/quickstarter/makefile.mk102
-rw-r--r--setup_native/source/win32/customactions/quickstarter/qslnkmsi.dxp2
-rw-r--r--setup_native/source/win32/customactions/quickstarter/quickstarter.cxx221
-rw-r--r--setup_native/source/win32/customactions/quickstarter/quickstarter.hxx18
-rw-r--r--setup_native/source/win32/customactions/quickstarter/remove_quickstart_link.cxx60
-rw-r--r--setup_native/source/win32/customactions/quickstarter/sdqsmsi.dxp2
-rw-r--r--setup_native/source/win32/customactions/quickstarter/shutdown_quickstart.cxx79
-rw-r--r--setup_native/source/win32/customactions/rebase/makefile.mk90
-rw-r--r--setup_native/source/win32/customactions/rebase/rebase.cxx168
-rw-r--r--setup_native/source/win32/customactions/rebase/rebase.dxp1
-rw-r--r--setup_native/source/win32/customactions/reg4allmsdoc/exports.dxp1
-rw-r--r--setup_native/source/win32/customactions/reg4allmsdoc/makefile.mk83
-rw-r--r--setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx322
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/constants.hxx39
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/exports.dxp3
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/makefile.mk96
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/msihelper.cxx102
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/msihelper.hxx184
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/reg4msdocmsi.cxx189
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/register.cxx340
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/register.hxx84
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrar.cxx759
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrar.hxx103
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.cxx351
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrationcontextinformation.hxx158
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registry.cxx242
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registry.hxx338
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryexception.cxx111
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryexception.hxx104
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryvalueimpl.cxx189
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryvalueimpl.hxx108
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryw9x.cxx550
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registryw9x.hxx199
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrywnt.cxx619
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/registrywnt.hxx202
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/stringconverter.cxx70
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/stringconverter.hxx41
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/userregistrar.cxx136
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/userregistrar.hxx43
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/windowsregistry.cxx79
-rw-r--r--setup_native/source/win32/customactions/reg4msdoc/windowsregistry.hxx40
-rwxr-xr-xsetup_native/source/win32/customactions/reg64/exports.dxp2
-rw-r--r--setup_native/source/win32/customactions/reg64/makefile.mk108
-rw-r--r--setup_native/source/win32/customactions/reg64/reg64.cxx475
-rw-r--r--setup_native/source/win32/customactions/regactivex/exports.dxp2
-rw-r--r--setup_native/source/win32/customactions/regactivex/makefile.mk70
-rw-r--r--setup_native/source/win32/customactions/regactivex/regactivex.cxx438
-rw-r--r--setup_native/source/win32/customactions/regpatchactivex/exports.dxp1
-rw-r--r--setup_native/source/win32/customactions/regpatchactivex/makefile.mk93
-rw-r--r--setup_native/source/win32/customactions/regpatchactivex/regpatchactivex.cxx122
-rw-r--r--setup_native/source/win32/customactions/relnotes/exports.dxp3
-rw-r--r--setup_native/source/win32/customactions/relnotes/makefile.mk83
-rw-r--r--setup_native/source/win32/customactions/relnotes/relnotes.cxx160
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/checkdirectory.cxx117
-rw-r--r--setup_native/source/win32/customactions/shellextensions/checkpatches.cxx113
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/checkrunningoffice.cxx290
-rw-r--r--setup_native/source/win32/customactions/shellextensions/copyeditiondata.cxx130
-rw-r--r--setup_native/source/win32/customactions/shellextensions/copyextensiondata.cxx124
-rw-r--r--setup_native/source/win32/customactions/shellextensions/dotnetcheck.cxx193
-rw-r--r--setup_native/source/win32/customactions/shellextensions/exports.dxp23
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/iconcache.cxx110
-rw-r--r--setup_native/source/win32/customactions/shellextensions/layerlinks.cxx253
-rw-r--r--setup_native/source/win32/customactions/shellextensions/makefile.mk107
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/migrateinstallpath.cxx159
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/postuninstall.cxx155
-rw-r--r--setup_native/source/win32/customactions/shellextensions/registerextensions.cxx573
-rwxr-xr-xsetup_native/source/win32/customactions/shellextensions/setadmininstall.cxx66
-rw-r--r--setup_native/source/win32/customactions/shellextensions/shellextensions.cxx213
-rw-r--r--setup_native/source/win32/customactions/shellextensions/startmenuicon.cxx142
-rw-r--r--setup_native/source/win32/customactions/shellextensions/upgrade.cxx204
-rw-r--r--setup_native/source/win32/customactions/shellextensions/vistaspecial.cxx242
-rw-r--r--setup_native/source/win32/customactions/tools/checkversion.cxx149
-rw-r--r--setup_native/source/win32/customactions/tools/exports.dxp1
-rw-r--r--setup_native/source/win32/customactions/tools/makefile.mk84
-rw-r--r--setup_native/source/win32/customactions/tools/seterror.cxx97
-rw-r--r--setup_native/source/win32/customactions/tools/seterror.hxx54
-rw-r--r--setup_native/source/win32/desktophelper.txt1
-rwxr-xr-xsetup_native/source/win32/get_retval.bat3
-rw-r--r--setup_native/source/win32/msi-encodinglist.txt140
-rw-r--r--setup_native/source/win32/nsis/brobanner.bmpbin0 -> 9328 bytes
-rw-r--r--setup_native/source/win32/nsis/brobitmap.bmpbin0 -> 52576 bytes
-rw-r--r--setup_native/source/win32/nsis/brosdkbanner.bmpbin0 -> 25818 bytes
-rw-r--r--setup_native/source/win32/nsis/downloadtemplate.nsi432
-rw-r--r--setup_native/source/win32/nsis/ooobanner.bmpbin0 -> 9744 bytes
-rw-r--r--setup_native/source/win32/nsis/ooobitmap.bmpbin0 -> 154542 bytes
-rw-r--r--setup_native/source/win32/nsis/ooosdkbanner.bmpbin0 -> 25818 bytes
-rw-r--r--setup_native/source/win32/nsis/ooosdkbitmap.bmpbin0 -> 154544 bytes
-rwxr-xr-xsetup_native/source/win32/nsis/ooosetup.icobin0 -> 295606 bytes
-rw-r--r--setup_native/source/win32/nsis/urebanner.bmpbin0 -> 25818 bytes
-rwxr-xr-xsetup_native/source/win32/nsis/urebitmap.bmpbin0 -> 154544 bytes
-rw-r--r--setup_native/source/win32/patchlist.txt2
-rw-r--r--setup_native/source/win32/stwrapper/makefile.mk50
-rw-r--r--setup_native/source/win32/stwrapper/resource.rc125
-rw-r--r--setup_native/source/win32/stwrapper/stwrapper.cxx495
-rw-r--r--setup_native/source/win32/stwrapper/stwrapper.manifest20
-rw-r--r--setup_native/tests/opensolaris/bundledextensions/send_ooo32
-rw-r--r--sfx2/inc/QuerySaveDocument.hxx45
-rw-r--r--sfx2/inc/about.hxx87
-rw-r--r--sfx2/inc/arrdecl.hxx91
-rw-r--r--sfx2/inc/basmgr.hxx35
-rw-r--r--sfx2/inc/bitset.hxx257
-rw-r--r--sfx2/inc/brokenpackageint.hxx87
-rw-r--r--sfx2/inc/configmgr.hxx39
-rw-r--r--sfx2/inc/dinfedt.hxx79
-rw-r--r--sfx2/inc/docinsert.hxx89
-rw-r--r--sfx2/inc/docvor.hxx158
-rw-r--r--sfx2/inc/filedlghelper.hrc51
-rw-r--r--sfx2/inc/frmload.hxx107
-rw-r--r--sfx2/inc/fwkhelper.hxx35
-rw-r--r--sfx2/inc/guisaveas.hxx115
-rw-r--r--sfx2/inc/idpool.hxx63
-rw-r--r--sfx2/inc/imagemgr.hxx36
-rw-r--r--sfx2/inc/imgmgr.hxx67
-rw-r--r--sfx2/inc/inettbc.hxx93
-rw-r--r--sfx2/inc/macro.hxx183
-rw-r--r--sfx2/inc/mailmodelapi.hxx141
-rw-r--r--sfx2/inc/makefile.mk48
-rw-r--r--sfx2/inc/mieclip.hxx63
-rw-r--r--sfx2/inc/minfitem.hxx78
-rw-r--r--sfx2/inc/msgnodei.hxx219
-rw-r--r--sfx2/inc/orgmgr.hxx106
-rw-r--r--sfx2/inc/pch/precompiled_sfx2.cxx29
-rw-r--r--sfx2/inc/pch/precompiled_sfx2.hxx670
-rw-r--r--sfx2/inc/progind.hxx83
-rw-r--r--sfx2/inc/resmgr.hxx75
-rw-r--r--sfx2/inc/sfx2/DocumentMetadataAccess.hxx215
-rw-r--r--sfx2/inc/sfx2/Metadatable.hxx187
-rw-r--r--sfx2/inc/sfx2/XmlIdRegistry.hxx98
-rw-r--r--sfx2/inc/sfx2/app.hxx336
-rw-r--r--sfx2/inc/sfx2/appuno.hxx135
-rw-r--r--sfx2/inc/sfx2/basedlgs.hxx230
-rw-r--r--sfx2/inc/sfx2/bindings.hxx263
-rw-r--r--sfx2/inc/sfx2/chalign.hxx63
-rw-r--r--sfx2/inc/sfx2/childwin.hxx369
-rw-r--r--sfx2/inc/sfx2/cntids.hrc428
-rw-r--r--sfx2/inc/sfx2/controlwrapper.hxx671
-rw-r--r--sfx2/inc/sfx2/ctrlitem.hxx111
-rw-r--r--sfx2/inc/sfx2/dialogs.hrc38
-rw-r--r--sfx2/inc/sfx2/dinfdlg.hxx575
-rw-r--r--sfx2/inc/sfx2/dispatch.hxx366
-rw-r--r--sfx2/inc/sfx2/dllapi.h42
-rw-r--r--sfx2/inc/sfx2/docfac.hxx135
-rw-r--r--sfx2/inc/sfx2/docfile.hxx356
-rw-r--r--sfx2/inc/sfx2/docfilt.hxx165
-rw-r--r--sfx2/inc/sfx2/docinf.hxx81
-rw-r--r--sfx2/inc/sfx2/dockwin.hxx142
-rw-r--r--sfx2/inc/sfx2/docmacromode.hxx332
-rw-r--r--sfx2/inc/sfx2/docstoragemodifylistener.hxx95
-rw-r--r--sfx2/inc/sfx2/doctdlg.hxx86
-rw-r--r--sfx2/inc/sfx2/doctempl.hxx148
-rw-r--r--sfx2/inc/sfx2/event.hxx119
-rw-r--r--sfx2/inc/sfx2/evntconf.hxx123
-rw-r--r--sfx2/inc/sfx2/fcontnr.hxx178
-rw-r--r--sfx2/inc/sfx2/filedlghelper.hxx350
-rw-r--r--sfx2/inc/sfx2/frame.hxx361
-rw-r--r--sfx2/inc/sfx2/frmdescr.hxx294
-rw-r--r--sfx2/inc/sfx2/frmhtml.hxx59
-rw-r--r--sfx2/inc/sfx2/frmhtmlw.hxx93
-rw-r--r--sfx2/inc/sfx2/genlink.hxx56
-rw-r--r--sfx2/inc/sfx2/hintpost.hxx80
-rw-r--r--sfx2/inc/sfx2/imgdef.hxx33
-rw-r--r--sfx2/inc/sfx2/ipclient.hxx107
-rw-r--r--sfx2/inc/sfx2/itemconnect.hxx595
-rw-r--r--sfx2/inc/sfx2/itemwrapper.hxx207
-rw-r--r--sfx2/inc/sfx2/layout-post.hxx40
-rw-r--r--sfx2/inc/sfx2/layout-pre.hxx49
-rw-r--r--sfx2/inc/sfx2/layout-tabdlg.hxx46
-rw-r--r--sfx2/inc/sfx2/layout.hxx78
-rw-r--r--sfx2/inc/sfx2/linkmgr.hxx170
-rw-r--r--sfx2/inc/sfx2/linksrc.hxx135
-rw-r--r--sfx2/inc/sfx2/lnkbase.hxx185
-rw-r--r--sfx2/inc/sfx2/macrconf.hxx155
-rw-r--r--sfx2/inc/sfx2/macropg.hxx150
-rw-r--r--sfx2/inc/sfx2/mgetempl.hxx115
-rw-r--r--sfx2/inc/sfx2/minarray.hxx529
-rw-r--r--sfx2/inc/sfx2/minstack.hxx99
-rw-r--r--sfx2/inc/sfx2/mnuitem.hxx176
-rw-r--r--sfx2/inc/sfx2/mnumgr.hxx134
-rw-r--r--sfx2/inc/sfx2/module.hxx113
-rw-r--r--sfx2/inc/sfx2/msg.hxx344
-rw-r--r--sfx2/inc/sfx2/msgpool.hxx95
-rw-r--r--sfx2/inc/sfx2/navigat.hxx64
-rw-r--r--sfx2/inc/sfx2/new.hxx112
-rw-r--r--sfx2/inc/sfx2/newstyle.hxx67
-rw-r--r--sfx2/inc/sfx2/objface.hxx154
-rw-r--r--sfx2/inc/sfx2/objitem.hxx54
-rw-r--r--sfx2/inc/sfx2/objsh.hxx895
-rw-r--r--sfx2/inc/sfx2/objuno.hxx192
-rw-r--r--sfx2/inc/sfx2/opengrf.hxx70
-rw-r--r--sfx2/inc/sfx2/passwd.hxx89
-rw-r--r--sfx2/inc/sfx2/printer.hxx143
-rw-r--r--sfx2/inc/sfx2/printopt.hxx155
-rw-r--r--sfx2/inc/sfx2/prnmon.hxx104
-rw-r--r--sfx2/inc/sfx2/progress.hxx91
-rw-r--r--sfx2/inc/sfx2/querystatus.hxx61
-rw-r--r--sfx2/inc/sfx2/request.hxx139
-rw-r--r--sfx2/inc/sfx2/sfx.hrc443
-rw-r--r--sfx2/inc/sfx2/sfxbasecontroller.hxx522
-rw-r--r--sfx2/inc/sfx2/sfxbasemodel.hxx1534
-rw-r--r--sfx2/inc/sfx2/sfxdefs.hxx39
-rw-r--r--sfx2/inc/sfx2/sfxdlg.hxx160
-rw-r--r--sfx2/inc/sfx2/sfxhtml.hxx133
-rw-r--r--sfx2/inc/sfx2/sfxmodelfactory.hxx73
-rw-r--r--sfx2/inc/sfx2/sfxsids.hrc1201
-rw-r--r--sfx2/inc/sfx2/sfxstatuslistener.hxx93
-rw-r--r--sfx2/inc/sfx2/sfxuno.hxx657
-rw-r--r--sfx2/inc/sfx2/shell.hxx394
-rw-r--r--sfx2/inc/sfx2/signaturestate.hxx44
-rw-r--r--sfx2/inc/sfx2/styfitem.hxx121
-rw-r--r--sfx2/inc/sfx2/styledlg.hxx61
-rw-r--r--sfx2/inc/sfx2/tabdlg.hxx318
-rw-r--r--sfx2/inc/sfx2/tbxctrl.hxx451
-rw-r--r--sfx2/inc/sfx2/templdlg.hxx102
-rw-r--r--sfx2/inc/sfx2/topfrm.hxx122
-rw-r--r--sfx2/inc/sfx2/unoctitm.hxx211
-rw-r--r--sfx2/inc/sfx2/userinputinterception.hxx83
-rw-r--r--sfx2/inc/sfx2/viewfrm.hxx369
-rw-r--r--sfx2/inc/sfx2/viewsh.hxx402
-rw-r--r--sfx2/inc/sfxbasic.hxx42
-rw-r--r--sfx2/inc/sfxhelp.hxx74
-rw-r--r--sfx2/inc/sfxresid.hxx58
-rw-r--r--sfx2/inc/sorgitm.hxx54
-rw-r--r--sfx2/inc/srchdlg.hxx105
-rw-r--r--sfx2/inc/stbitem.hxx148
-rw-r--r--sfx2/inc/tplpitem.hxx56
-rw-r--r--sfx2/inc/viewfac.hxx67
-rw-r--r--sfx2/prj/build.lst23
-rw-r--r--sfx2/prj/d.lst46
-rw-r--r--sfx2/qa/complex/CheckGlobalEventBroadcaster_writer1.java243
-rw-r--r--sfx2/qa/complex/DocHelper/DialogThread.java95
-rw-r--r--sfx2/qa/complex/DocHelper/WriterHelper.java296
-rw-r--r--sfx2/qa/complex/DocHelper/makefile.mk46
-rw-r--r--sfx2/qa/complex/DocumentMetaData.java542
-rw-r--r--sfx2/qa/complex/DocumentMetadataAccessTest.java1268
-rw-r--r--sfx2/qa/complex/docinfo/DocumentProperties.java269
-rw-r--r--sfx2/qa/complex/docinfo/makefile.mk56
-rw-r--r--sfx2/qa/complex/makefile.mk61
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/StandaloneDocumentInfoTest.java31
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/StandaloneDocumentInfoUnitTest.java69
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/Test01.java161
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/TestHelper.java48
-rw-r--r--sfx2/qa/complex/standalonedocumentinfo/makefile.mk85
-rw-r--r--sfx2/qa/complex/testdocuments/CUSTOM.odtbin0 -> 1021 bytes
-rw-r--r--sfx2/qa/complex/testdocuments/TEST.odtbin0 -> 13803 bytes
-rw-r--r--sfx2/qa/complex/testdocuments/TESTRDFA.odtbin0 -> 7540 bytes
-rw-r--r--sfx2/qa/complex/tests.sce3
-rw-r--r--sfx2/qa/unoapi/knownissues.xcl5
-rw-r--r--sfx2/qa/unoapi/makefile.mk40
-rw-r--r--sfx2/qa/unoapi/sfx.sce5
-rw-r--r--sfx2/qa/unoapi/testdocuments/SfxStandaloneDocInfoObject.sdwbin0 -> 8192 bytes
-rw-r--r--sfx2/qa/unoapi/testdocuments/report.stwbin0 -> 11186 bytes
-rw-r--r--sfx2/qa/unoapi/testdocuments/report2.stwbin0 -> 11000 bytes
-rw-r--r--sfx2/sdi/appslots.sdi295
-rw-r--r--sfx2/sdi/docslots.sdi241
-rw-r--r--sfx2/sdi/frmslots.sdi453
-rw-r--r--sfx2/sdi/makefile.mk60
-rw-r--r--sfx2/sdi/mdislots.sdi44
-rw-r--r--sfx2/sdi/sfx.sdi8825
-rw-r--r--sfx2/sdi/sfxitems.sdi89
-rw-r--r--sfx2/sdi/sfxslots.sdi46
-rw-r--r--sfx2/sdi/viwslots.sdi110
-rw-r--r--sfx2/source/appl/app.cxx853
-rw-r--r--sfx2/source/appl/app.hrc274
-rw-r--r--sfx2/source/appl/app.src1099
-rw-r--r--sfx2/source/appl/appbas.cxx600
-rw-r--r--sfx2/source/appl/appbaslib.cxx249
-rw-r--r--sfx2/source/appl/appcfg.cxx1073
-rw-r--r--sfx2/source/appl/appchild.cxx176
-rw-r--r--sfx2/source/appl/appdata.cxx190
-rw-r--r--sfx2/source/appl/appdde.cxx715
-rw-r--r--sfx2/source/appl/appinit.cxx321
-rw-r--r--sfx2/source/appl/appmain.cxx210
-rw-r--r--sfx2/source/appl/appmisc.cxx342
-rw-r--r--sfx2/source/appl/appopen.cxx1520
-rw-r--r--sfx2/source/appl/appquit.cxx230
-rw-r--r--sfx2/source/appl/appreg.cxx154
-rw-r--r--sfx2/source/appl/appserv.cxx1231
-rw-r--r--sfx2/source/appl/appuno.cxx2472
-rw-r--r--sfx2/source/appl/childwin.cxx855
-rw-r--r--sfx2/source/appl/dde.hrc40
-rw-r--r--sfx2/source/appl/dde.src91
-rw-r--r--sfx2/source/appl/fileobj.cxx716
-rw-r--r--sfx2/source/appl/fileobj.hxx96
-rw-r--r--sfx2/source/appl/fwkhelper.cxx59
-rw-r--r--sfx2/source/appl/helpdispatch.cxx123
-rw-r--r--sfx2/source/appl/helpdispatch.hxx54
-rw-r--r--sfx2/source/appl/helpinterceptor.cxx367
-rw-r--r--sfx2/source/appl/helpinterceptor.hxx173
-rw-r--r--sfx2/source/appl/imagemgr.cxx234
-rw-r--r--sfx2/source/appl/imestatuswindow.cxx231
-rw-r--r--sfx2/source/appl/imestatuswindow.hxx130
-rw-r--r--sfx2/source/appl/impldde.cxx448
-rw-r--r--sfx2/source/appl/impldde.hxx78
-rw-r--r--sfx2/source/appl/linkmgr2.cxx646
-rw-r--r--sfx2/source/appl/linksrc.cxx435
-rw-r--r--sfx2/source/appl/lnkbase2.cxx699
-rw-r--r--sfx2/source/appl/makefile.mk159
-rw-r--r--sfx2/source/appl/module.cxx437
-rw-r--r--sfx2/source/appl/newhelp.cxx3492
-rw-r--r--sfx2/source/appl/newhelp.hrc84
-rw-r--r--sfx2/source/appl/newhelp.hxx614
-rw-r--r--sfx2/source/appl/newhelp.src580
-rw-r--r--sfx2/source/appl/opengrf.cxx295
-rw-r--r--sfx2/source/appl/panelist.hxx50
-rw-r--r--sfx2/source/appl/sfx.src133
-rw-r--r--sfx2/source/appl/sfxdll.cxx69
-rw-r--r--sfx2/source/appl/sfxhelp.cxx1021
-rw-r--r--sfx2/source/appl/sfxpicklist.cxx473
-rw-r--r--sfx2/source/appl/shutdownicon.cxx938
-rw-r--r--sfx2/source/appl/shutdownicon.hxx174
-rw-r--r--sfx2/source/appl/shutdowniconOs2.cxx94
-rw-r--r--sfx2/source/appl/shutdowniconaqua.mm510
-rw-r--r--sfx2/source/appl/shutdowniconunx.cxx409
-rw-r--r--sfx2/source/appl/shutdowniconw32.cxx957
-rw-r--r--sfx2/source/appl/workwin.cxx3115
-rw-r--r--sfx2/source/appl/xpackcreator.cxx202
-rw-r--r--sfx2/source/appl/xpackcreator.hxx75
-rw-r--r--sfx2/source/bastyp/bastyp.hrc38
-rw-r--r--sfx2/source/bastyp/bastyp.src66
-rw-r--r--sfx2/source/bastyp/bitset.cxx395
-rw-r--r--sfx2/source/bastyp/fltfnc.cxx1227
-rw-r--r--sfx2/source/bastyp/fltfnc.src75
-rw-r--r--sfx2/source/bastyp/fltlst.cxx118
-rw-r--r--sfx2/source/bastyp/fltlst.hxx67
-rw-r--r--sfx2/source/bastyp/frmhtml.cxx163
-rw-r--r--sfx2/source/bastyp/frmhtmlw.cxx381
-rw-r--r--sfx2/source/bastyp/helper.cxx879
-rw-r--r--sfx2/source/bastyp/makefile.mk66
-rw-r--r--sfx2/source/bastyp/mieclip.cxx95
-rw-r--r--sfx2/source/bastyp/minarray.cxx736
-rw-r--r--sfx2/source/bastyp/misc.cxx75
-rw-r--r--sfx2/source/bastyp/progress.cxx778
-rw-r--r--sfx2/source/bastyp/sfxhtml.cxx451
-rw-r--r--sfx2/source/bastyp/sfxresid.cxx73
-rw-r--r--sfx2/source/config/config.hrc41
-rw-r--r--sfx2/source/config/config.src35
-rw-r--r--sfx2/source/config/evntconf.cxx301
-rw-r--r--sfx2/source/config/makefile.mk47
-rw-r--r--sfx2/source/control/bindings.cxx2433
-rw-r--r--sfx2/source/control/ctrlitem.cxx466
-rwxr-xr-xsfx2/source/control/dispatch.cxx3225
-rw-r--r--sfx2/source/control/macrconf.cxx874
-rw-r--r--sfx2/source/control/macro.cxx708
-rw-r--r--sfx2/source/control/makefile.mk73
-rw-r--r--sfx2/source/control/minfitem.cxx107
-rw-r--r--sfx2/source/control/msg.cxx66
-rw-r--r--sfx2/source/control/msgpool.cxx422
-rw-r--r--sfx2/source/control/objface.cxx685
-rw-r--r--sfx2/source/control/querystatus.cxx241
-rw-r--r--sfx2/source/control/request.cxx978
-rw-r--r--sfx2/source/control/sfxstatuslistener.cxx290
-rw-r--r--sfx2/source/control/shell.cxx1298
-rw-r--r--sfx2/source/control/sorgitm.cxx136
-rw-r--r--sfx2/source/control/statcach.cxx577
-rw-r--r--sfx2/source/control/unoctitm.cxx1013
-rw-r--r--sfx2/source/dialog/about.cxx433
-rw-r--r--sfx2/source/dialog/alienwarn.cxx177
-rw-r--r--sfx2/source/dialog/alienwarn.hrc61
-rw-r--r--sfx2/source/dialog/alienwarn.src91
-rw-r--r--sfx2/source/dialog/basedlgs.cxx1082
-rw-r--r--sfx2/source/dialog/dialog.hrc115
-rw-r--r--sfx2/source/dialog/dialog.src281
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx2465
-rw-r--r--sfx2/source/dialog/dinfdlg.hrc177
-rw-r--r--sfx2/source/dialog/dinfdlg.src903
-rw-r--r--sfx2/source/dialog/dinfedt.cxx66
-rw-r--r--sfx2/source/dialog/dinfedt.hrc38
-rw-r--r--sfx2/source/dialog/dinfedt.src121
-rw-r--r--sfx2/source/dialog/dockwin.cxx1994
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx2865
-rw-r--r--sfx2/source/dialog/filedlghelper.src173
-rw-r--r--sfx2/source/dialog/filedlgimpl.hxx237
-rw-r--r--sfx2/source/dialog/filtergrouping.cxx1274
-rw-r--r--sfx2/source/dialog/filtergrouping.hxx106
-rw-r--r--sfx2/source/dialog/intro.cxx110
-rw-r--r--sfx2/source/dialog/itemconnect.cxx408
-rw-r--r--sfx2/source/dialog/mailmodel.cxx960
-rw-r--r--sfx2/source/dialog/mailmodelapi.cxx711
-rw-r--r--sfx2/source/dialog/mailwindow.src76
-rw-r--r--sfx2/source/dialog/makefile.mk122
-rw-r--r--sfx2/source/dialog/mgetempl.cxx672
-rw-r--r--sfx2/source/dialog/mgetempl.hrc38
-rw-r--r--sfx2/source/dialog/mgetempl.src152
-rw-r--r--sfx2/source/dialog/navigat.cxx100
-rw-r--r--sfx2/source/dialog/newstyle.cxx108
-rw-r--r--sfx2/source/dialog/newstyle.hrc33
-rw-r--r--sfx2/source/dialog/newstyle.src103
-rw-r--r--sfx2/source/dialog/partwnd.cxx257
-rw-r--r--sfx2/source/dialog/passwd.cxx212
-rw-r--r--sfx2/source/dialog/passwd.hrc49
-rw-r--r--sfx2/source/dialog/passwd.src140
-rw-r--r--sfx2/source/dialog/printopt.cxx545
-rw-r--r--sfx2/source/dialog/printopt.hrc64
-rw-r--r--sfx2/source/dialog/printopt.src355
-rw-r--r--sfx2/source/dialog/recfloat.cxx280
-rw-r--r--sfx2/source/dialog/recfloat.src86
-rwxr-xr-xsfx2/source/dialog/sfxdlg.cxx44
-rw-r--r--sfx2/source/dialog/sfxurl.cxx41
-rw-r--r--sfx2/source/dialog/splitwin.cxx1304
-rw-r--r--sfx2/source/dialog/srchdlg.cxx202
-rw-r--r--sfx2/source/dialog/srchdlg.hrc43
-rw-r--r--sfx2/source/dialog/srchdlg.src110
-rw-r--r--sfx2/source/dialog/styfitem.cxx187
-rw-r--r--sfx2/source/dialog/styledlg.cxx176
-rw-r--r--sfx2/source/dialog/tabdlg.cxx1798
-rw-r--r--sfx2/source/dialog/templdlg.cxx3065
-rw-r--r--sfx2/source/dialog/templdlg.hrc52
-rw-r--r--sfx2/source/dialog/templdlg.src210
-rw-r--r--sfx2/source/dialog/tplcitem.cxx188
-rw-r--r--sfx2/source/dialog/tplpitem.cxx123
-rw-r--r--sfx2/source/dialog/versdlg.cxx519
-rw-r--r--sfx2/source/dialog/versdlg.hrc48
-rw-r--r--sfx2/source/dialog/versdlg.src212
-rw-r--r--sfx2/source/doc/DocumentMetadataAccess.cxx1411
-rw-r--r--sfx2/source/doc/Metadatable.cxx1857
-rw-r--r--sfx2/source/doc/QuerySaveDocument.cxx50
-rw-r--r--sfx2/source/doc/SfxDocumentMetaData.cxx2393
-rw-r--r--sfx2/source/doc/applet.cxx383
-rw-r--r--sfx2/source/doc/commitlistener.cxx81
-rw-r--r--sfx2/source/doc/commitlistener.hxx57
-rw-r--r--sfx2/source/doc/doc.hrc222
-rw-r--r--sfx2/source/doc/doc.src536
-rw-r--r--sfx2/source/doc/docfac.cxx311
-rw-r--r--sfx2/source/doc/docfile.cxx4043
-rw-r--r--sfx2/source/doc/docfilt.cxx265
-rw-r--r--sfx2/source/doc/docinf.cxx309
-rw-r--r--sfx2/source/doc/docinsert.cxx305
-rw-r--r--sfx2/source/doc/docmacromode.cxx436
-rw-r--r--sfx2/source/doc/docstoragemodifylistener.cxx96
-rw-r--r--sfx2/source/doc/doctdlg.cxx238
-rw-r--r--sfx2/source/doc/doctdlg.hrc42
-rw-r--r--sfx2/source/doc/doctdlg.src146
-rw-r--r--sfx2/source/doc/doctempl.cxx2735
-rw-r--r--sfx2/source/doc/doctempl.src106
-rw-r--r--sfx2/source/doc/doctemplates.cxx2898
-rw-r--r--sfx2/source/doc/doctemplateslocal.cxx263
-rw-r--r--sfx2/source/doc/doctemplateslocal.hxx88
-rw-r--r--sfx2/source/doc/docvor.cxx2466
-rw-r--r--sfx2/source/doc/docvor.hrc75
-rw-r--r--sfx2/source/doc/docvor.src315
-rw-r--r--sfx2/source/doc/frmdescr.cxx329
-rw-r--r--sfx2/source/doc/graphhelp.cxx529
-rw-r--r--sfx2/source/doc/graphhelp.hxx75
-rw-r--r--sfx2/source/doc/graphhelp.src59
-rw-r--r--sfx2/source/doc/guisaveas.cxx1744
-rw-r--r--sfx2/source/doc/iframe.cxx397
-rw-r--r--sfx2/source/doc/makefile.mk103
-rw-r--r--sfx2/source/doc/new.cxx745
-rw-r--r--sfx2/source/doc/new.hrc57
-rw-r--r--sfx2/source/doc/new.src259
-rw-r--r--sfx2/source/doc/objcont.cxx1481
-rw-r--r--sfx2/source/doc/objembed.cxx317
-rw-r--r--sfx2/source/doc/objitem.cxx135
-rw-r--r--sfx2/source/doc/objmisc.cxx2578
-rw-r--r--sfx2/source/doc/objserv.cxx1519
-rw-r--r--sfx2/source/doc/objstor.cxx3792
-rw-r--r--sfx2/source/doc/objuno.cxx1350
-rw-r--r--sfx2/source/doc/objxtor.cxx1120
-rwxr-xr-xsfx2/source/doc/oleprops.cxx1227
-rwxr-xr-xsfx2/source/doc/oleprops.hxx404
-rw-r--r--sfx2/source/doc/opostponedtruncationstream.cxx491
-rw-r--r--sfx2/source/doc/opostponedtruncationstream.hxx122
-rw-r--r--sfx2/source/doc/ownsubfilterservice.cxx165
-rw-r--r--sfx2/source/doc/plugin.cxx266
-rwxr-xr-xsfx2/source/doc/printhelper.cxx900
-rwxr-xr-xsfx2/source/doc/printhelper.hxx69
-rw-r--r--sfx2/source/doc/querytemplate.cxx52
-rw-r--r--sfx2/source/doc/querytemplate.hxx44
-rw-r--r--sfx2/source/doc/sfxacldetect.cxx105
-rw-r--r--sfx2/source/doc/sfxbasemodel.cxx4252
-rw-r--r--sfx2/source/doc/sfxmodelfactory.cxx236
-rw-r--r--sfx2/source/explorer/makefile.mk47
-rw-r--r--sfx2/source/explorer/nochaos.cxx215
-rw-r--r--sfx2/source/inc/SfxDocumentMetaData.hxx49
-rw-r--r--sfx2/source/inc/alienwarn.hxx56
-rw-r--r--sfx2/source/inc/appbas.hxx44
-rw-r--r--sfx2/source/inc/appbaslib.hxx140
-rw-r--r--sfx2/source/inc/appdata.hxx181
-rw-r--r--sfx2/source/inc/applet.hxx122
-rw-r--r--sfx2/source/inc/doctemplates.hxx102
-rw-r--r--sfx2/source/inc/eventsupplier.hxx264
-rw-r--r--sfx2/source/inc/fltfnc.hxx35
-rw-r--r--sfx2/source/inc/fltoptint.hxx75
-rw-r--r--sfx2/source/inc/helper.hxx78
-rw-r--r--sfx2/source/inc/helpid.hrc361
-rw-r--r--sfx2/source/inc/hexplwnd.hxx101
-rw-r--r--sfx2/source/inc/iframe.hxx93
-rw-r--r--sfx2/source/inc/intro.hxx55
-rw-r--r--sfx2/source/inc/mailmodel.hxx105
-rw-r--r--sfx2/source/inc/mnucfga.hxx52
-rw-r--r--sfx2/source/inc/nfltdlg.hxx66
-rw-r--r--sfx2/source/inc/nochaos.hxx40
-rw-r--r--sfx2/source/inc/objmnctl.hxx56
-rw-r--r--sfx2/source/inc/objshimp.hxx193
-rw-r--r--sfx2/source/inc/openflag.hxx41
-rw-r--r--sfx2/source/inc/ownsubfilterservice.hxx90
-rw-r--r--sfx2/source/inc/partwnd.hxx90
-rw-r--r--sfx2/source/inc/plugin.hxx91
-rw-r--r--sfx2/source/inc/preview.hxx73
-rw-r--r--sfx2/source/inc/recfloat.hxx69
-rw-r--r--sfx2/source/inc/referers.hxx36
-rw-r--r--sfx2/source/inc/sfxlocal.hrc67
-rw-r--r--sfx2/source/inc/sfxpicklist.hxx86
-rw-r--r--sfx2/source/inc/sfxtypes.hxx199
-rw-r--r--sfx2/source/inc/sfxurlrelocator.hxx54
-rw-r--r--sfx2/source/inc/slotserv.hxx84
-rw-r--r--sfx2/source/inc/splitwin.hxx133
-rw-r--r--sfx2/source/inc/statcach.hxx182
-rw-r--r--sfx2/source/inc/templdgi.hxx394
-rw-r--r--sfx2/source/inc/tplcitem.hxx52
-rw-r--r--sfx2/source/inc/tplcomp.hxx224
-rw-r--r--sfx2/source/inc/versdlg.hxx109
-rw-r--r--sfx2/source/inc/virtmenu.hxx159
-rw-r--r--sfx2/source/inc/workwin.hxx390
-rw-r--r--sfx2/source/inet/inettbc.cxx403
-rw-r--r--sfx2/source/inet/makefile.mk48
-rw-r--r--sfx2/source/layout/factory.cxx68
-rw-r--r--sfx2/source/layout/makefile.mk56
-rw-r--r--sfx2/source/layout/sfxdialog.cxx38
-rw-r--r--sfx2/source/layout/sfxtabdialog.cxx72
-rw-r--r--sfx2/source/layout/sfxtabpage.cxx89
-rw-r--r--sfx2/source/menu/makefile.mk54
-rw-r--r--sfx2/source/menu/menu.hrc69
-rw-r--r--sfx2/source/menu/menu.src82
-rw-r--r--sfx2/source/menu/mnuitem.cxx583
-rw-r--r--sfx2/source/menu/mnumgr.cxx515
-rw-r--r--sfx2/source/menu/objmnctl.cxx165
-rw-r--r--sfx2/source/menu/virtmenu.cxx1373
-rw-r--r--sfx2/source/notify/eventsupplier.cxx920
-rw-r--r--sfx2/source/notify/hintpost.cxx110
-rw-r--r--sfx2/source/notify/makefile.mk49
-rw-r--r--sfx2/source/statbar/makefile.mk47
-rw-r--r--sfx2/source/statbar/stbitem.cxx687
-rw-r--r--sfx2/source/toolbox/imgmgr.cxx426
-rw-r--r--sfx2/source/toolbox/makefile.mk48
-rw-r--r--sfx2/source/toolbox/tbxitem.cxx1895
-rw-r--r--sfx2/source/view/frame.cxx1552
-rw-r--r--sfx2/source/view/frmload.cxx644
-rw-r--r--sfx2/source/view/impframe.cxx55
-rw-r--r--sfx2/source/view/impframe.hxx111
-rw-r--r--sfx2/source/view/ipclient.cxx1155
-rw-r--r--sfx2/source/view/makefile.mk65
-rw-r--r--sfx2/source/view/orgmgr.cxx832
-rw-r--r--sfx2/source/view/printer.cxx624
-rw-r--r--sfx2/source/view/prnmon.cxx495
-rw-r--r--sfx2/source/view/sfxbasecontroller.cxx1453
-rw-r--r--sfx2/source/view/topfrm.cxx1643
-rw-r--r--sfx2/source/view/userinputinterception.cxx264
-rw-r--r--sfx2/source/view/view.hrc126
-rw-r--r--sfx2/source/view/view.hxx27
-rw-r--r--sfx2/source/view/view.src190
-rw-r--r--sfx2/source/view/viewfac.cxx73
-rw-r--r--sfx2/source/view/viewfrm.cxx3864
-rw-r--r--sfx2/source/view/viewimp.hxx108
-rw-r--r--sfx2/source/view/viewprn.cxx1023
-rw-r--r--sfx2/source/view/viewsh.cxx2255
-rw-r--r--sfx2/util/hidother.src197
-rw-r--r--sfx2/util/make_tco.btm1
-rw-r--r--sfx2/util/makefile.mk164
-rw-r--r--sfx2/util/makefile.pmk30
-rw-r--r--sfx2/util/mkdemo.pl7
-rw-r--r--sfx2/util/sfx.xml97
-rw-r--r--sfx2/win/res/expdesk.icobin0 -> 4990 bytes
-rw-r--r--sfx2/win/res/expexp.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/expfld.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/expftp.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/exptrash.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/expwork.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/frameset.icobin0 -> 2758 bytes
-rw-r--r--sfx2/win/res/search.icobin0 -> 2758 bytes
-rw-r--r--shell/inc/internal/basereader.hxx80
-rw-r--r--shell/inc/internal/columninfo.hxx77
-rw-r--r--shell/inc/internal/config.hxx104
-rw-r--r--shell/inc/internal/contentreader.hxx126
-rw-r--r--shell/inc/internal/dbgmacros.hxx51
-rw-r--r--shell/inc/internal/fileextensions.hxx68
-rw-r--r--shell/inc/internal/global.hxx44
-rw-r--r--shell/inc/internal/i_xml_parser_event_handler.hxx78
-rw-r--r--shell/inc/internal/infotips.hxx100
-rw-r--r--shell/inc/internal/iso8601_converter.hxx47
-rwxr-xr-xshell/inc/internal/metainforeader.hxx148
-rwxr-xr-xshell/inc/internal/propertyhdl.hxx126
-rw-r--r--shell/inc/internal/propsheets.hxx94
-rw-r--r--shell/inc/internal/registry.hxx69
-rw-r--r--shell/inc/internal/resource.h57
-rwxr-xr-xshell/inc/internal/shlxthdl.hxx55
-rwxr-xr-xshell/inc/internal/stream_helper.hxx35
-rw-r--r--shell/inc/internal/thumbviewer.hxx118
-rw-r--r--shell/inc/internal/types.hxx95
-rwxr-xr-xshell/inc/internal/utilities.hxx110
-rw-r--r--shell/inc/internal/xml_parser.hxx134
-rw-r--r--shell/inc/internal/zipfile.hxx162
-rw-r--r--shell/inc/kde_headers.h94
-rw-r--r--shell/inc/makefile.mk47
-rw-r--r--shell/inc/pch/precompiled_shell.cxx29
-rw-r--r--shell/inc/pch/precompiled_shell.hxx32
-rwxr-xr-xshell/prj/build.lst34
-rw-r--r--shell/prj/d.lst25
-rw-r--r--shell/qa/i_xml_parser_event_handler.hxx77
-rwxr-xr-xshell/qa/makefile.mk68
-rwxr-xr-xshell/qa/recent_docs.cxx224
-rwxr-xr-xshell/source/all/makefile.mk73
-rw-r--r--shell/source/all/ooofilereader/autostyletag.cxx100
-rw-r--r--shell/source/all/ooofilereader/autostyletag.hxx72
-rw-r--r--shell/source/all/ooofilereader/basereader.cxx106
-rw-r--r--shell/source/all/ooofilereader/contentreader.cxx235
-rw-r--r--shell/source/all/ooofilereader/dummytag.hxx61
-rw-r--r--shell/source/all/ooofilereader/itag.hxx52
-rw-r--r--shell/source/all/ooofilereader/keywordstag.cxx64
-rw-r--r--shell/source/all/ooofilereader/keywordstag.hxx54
-rw-r--r--shell/source/all/ooofilereader/makefile.mk89
-rw-r--r--shell/source/all/ooofilereader/metainforeader.cxx302
-rw-r--r--shell/source/all/ooofilereader/simpletag.cxx65
-rw-r--r--shell/source/all/ooofilereader/simpletag.hxx58
-rw-r--r--shell/source/all/xml_parser.cxx215
-rw-r--r--shell/source/all/zipfile/makefile.mk58
-rw-r--r--shell/source/all/zipfile/zipexcptn.cxx137
-rw-r--r--shell/source/all/zipfile/zipexcptn.hxx78
-rw-r--r--shell/source/all/zipfile/zipfile.cxx251
-rw-r--r--shell/source/backends/desktopbe/desktopbackend.cxx290
-rw-r--r--shell/source/backends/desktopbe/desktopbe1-ucd.txt6
-rw-r--r--shell/source/backends/desktopbe/makefile.mk53
-rw-r--r--shell/source/backends/gconfbe/gconfaccess.cxx849
-rw-r--r--shell/source/backends/gconfbe/gconfaccess.hxx119
-rw-r--r--shell/source/backends/gconfbe/gconfbackend.cxx239
-rw-r--r--shell/source/backends/gconfbe/gconfbe1-ucd.txt6
-rw-r--r--shell/source/backends/gconfbe/makefile.mk96
-rw-r--r--shell/source/backends/gconfbe/orbit.h39
-rw-r--r--shell/source/backends/kde4be/kde4access.cxx319
-rw-r--r--shell/source/backends/kde4be/kde4access.hxx47
-rw-r--r--shell/source/backends/kde4be/kde4backend.cxx258
-rw-r--r--shell/source/backends/kde4be/kde4be1-ucd.txt6
-rw-r--r--shell/source/backends/kde4be/makefile.mk81
-rw-r--r--shell/source/backends/kdebe/kdeaccess.cxx315
-rw-r--r--shell/source/backends/kdebe/kdeaccess.hxx47
-rw-r--r--shell/source/backends/kdebe/kdebackend.cxx258
-rw-r--r--shell/source/backends/kdebe/kdebe1-ucd.txt6
-rw-r--r--shell/source/backends/kdebe/makefile.mk81
-rw-r--r--shell/source/backends/localebe/exports.map10
-rw-r--r--shell/source/backends/localebe/localebackend.cxx367
-rw-r--r--shell/source/backends/localebe/localebackend.hxx149
-rw-r--r--shell/source/backends/localebe/localebe.xml35
-rw-r--r--shell/source/backends/localebe/localebecdef.cxx94
-rw-r--r--shell/source/backends/localebe/makefile.mk72
-rw-r--r--shell/source/backends/macbe/exports.map10
-rw-r--r--shell/source/backends/macbe/macbackend.cxx499
-rw-r--r--shell/source/backends/macbe/macbackend.hxx138
-rw-r--r--shell/source/backends/macbe/macbe.xml35
-rw-r--r--shell/source/backends/macbe/macbecdef.cxx94
-rw-r--r--shell/source/backends/macbe/makefile.mk78
-rw-r--r--shell/source/backends/wininetbe/exports.map10
-rw-r--r--shell/source/backends/wininetbe/makefile.mk68
-rw-r--r--shell/source/backends/wininetbe/wininetbackend.cxx402
-rw-r--r--shell/source/backends/wininetbe/wininetbackend.hxx157
-rw-r--r--shell/source/backends/wininetbe/wininetbe.xml35
-rw-r--r--shell/source/backends/wininetbe/wininetbecdef.cxx95
-rw-r--r--shell/source/cmdmail/cmdmail.xml47
-rwxr-xr-xshell/source/cmdmail/cmdmailentry.cxx135
-rwxr-xr-xshell/source/cmdmail/cmdmailmsg.cxx302
-rw-r--r--shell/source/cmdmail/cmdmailmsg.hxx128
-rwxr-xr-xshell/source/cmdmail/cmdmailsuppl.cxx328
-rw-r--r--shell/source/cmdmail/cmdmailsuppl.hxx95
-rw-r--r--shell/source/cmdmail/exports.dxp3
-rw-r--r--shell/source/cmdmail/exports.map10
-rw-r--r--shell/source/cmdmail/makefile.mk64
-rw-r--r--shell/source/mingw_intel.map57
-rw-r--r--shell/source/tools/lngconvex/cmdline.cxx175
-rw-r--r--shell/source/tools/lngconvex/cmdline.hxx104
-rw-r--r--shell/source/tools/lngconvex/defs.hxx14
-rw-r--r--shell/source/tools/lngconvex/lngconvex.cxx604
-rw-r--r--shell/source/tools/lngconvex/makefile.mk68
-rw-r--r--shell/source/tools/regsvrex/makefile.mk49
-rw-r--r--shell/source/tools/regsvrex/regsvrex.cxx91
-rw-r--r--shell/source/unix/exec/exports.map10
-rw-r--r--shell/source/unix/exec/makefile.mk90
-rw-r--r--shell/source/unix/exec/shellexec.cxx331
-rw-r--r--shell/source/unix/exec/shellexec.hxx79
-rw-r--r--shell/source/unix/exec/shellexecentry.cxx134
-rw-r--r--shell/source/unix/exec/syssh.xml33
-rw-r--r--shell/source/unix/exec/urltest.cxx151
-rw-r--r--shell/source/unix/exec/urltest.sh2
-rw-r--r--shell/source/unix/exec/urltest.txt11
-rwxr-xr-xshell/source/unix/misc/cde-open-url.sh13
-rw-r--r--shell/source/unix/misc/gnome-open-url.c146
-rw-r--r--shell/source/unix/misc/gnome-open-url.sh6
-rwxr-xr-xshell/source/unix/misc/kde-open-url.sh10
-rw-r--r--shell/source/unix/misc/makefile.mk90
-rw-r--r--shell/source/unix/misc/open-url.c172
-rw-r--r--shell/source/unix/misc/open-url.def1
-rwxr-xr-xshell/source/unix/misc/open-url.sh83
-rw-r--r--shell/source/unix/misc/senddoc.c204
-rw-r--r--shell/source/unix/misc/senddoc.def1
-rw-r--r--shell/source/unix/misc/senddoc.sh401
-rw-r--r--shell/source/unix/misc/uri-encode.c50
-rw-r--r--shell/source/unix/sysshell/makefile.mk75
-rw-r--r--shell/source/unix/sysshell/recently_used_file.cxx146
-rw-r--r--shell/source/unix/sysshell/recently_used_file.hxx68
-rw-r--r--shell/source/unix/sysshell/recently_used_file_handler.cxx526
-rwxr-xr-xshell/source/unix/sysshell/recfile.map6
-rw-r--r--shell/source/win32/SysShExec.cxx388
-rw-r--r--shell/source/win32/SysShExec.hxx83
-rw-r--r--shell/source/win32/SysShentry.cxx143
-rw-r--r--shell/source/win32/exports.dxp3
-rw-r--r--shell/source/win32/makefile.mk69
-rwxr-xr-xshell/source/win32/shlxthandler/classfactory.cxx171
-rw-r--r--shell/source/win32/shlxthandler/classfactory.hxx77
-rw-r--r--shell/source/win32/shlxthandler/columninfo/columninfo.cxx231
-rw-r--r--shell/source/win32/shlxthandler/columninfo/makefile.mk59
-rw-r--r--shell/source/win32/shlxthandler/exports.dxp4
-rw-r--r--shell/source/win32/shlxthandler/infotips/infotips.cxx402
-rw-r--r--shell/source/win32/shlxthandler/infotips/makefile.mk60
-rwxr-xr-xshell/source/win32/shlxthandler/makefile.mk152
-rw-r--r--shell/source/win32/shlxthandler/ooofilt/exports.dxp4
-rwxr-xr-xshell/source/win32/shlxthandler/ooofilt/makefile.mk138
-rwxr-xr-xshell/source/win32/shlxthandler/ooofilt/ooofilt.cxx1490
-rwxr-xr-xshell/source/win32/shlxthandler/ooofilt/ooofilt.hxx218
-rw-r--r--shell/source/win32/shlxthandler/ooofilt/propspec.cxx238
-rw-r--r--shell/source/win32/shlxthandler/ooofilt/propspec.hxx159
-rwxr-xr-xshell/source/win32/shlxthandler/ooofilt/stream_helper.cxx181
-rwxr-xr-xshell/source/win32/shlxthandler/prophdl/exports.dxp2
-rwxr-xr-xshell/source/win32/shlxthandler/prophdl/makefile.mk138
-rwxr-xr-xshell/source/win32/shlxthandler/prophdl/propertyhdl.cxx459
-rw-r--r--shell/source/win32/shlxthandler/propsheets/document_statistic.cxx170
-rw-r--r--shell/source/win32/shlxthandler/propsheets/document_statistic.hxx149
-rw-r--r--shell/source/win32/shlxthandler/propsheets/listviewbuilder.cxx281
-rw-r--r--shell/source/win32/shlxthandler/propsheets/listviewbuilder.hxx115
-rw-r--r--shell/source/win32/shlxthandler/propsheets/makefile.mk64
-rwxr-xr-xshell/source/win32/shlxthandler/propsheets/propsheets.cxx366
-rw-r--r--shell/source/win32/shlxthandler/res/ctrylnglist.txt29
-rw-r--r--shell/source/win32/shlxthandler/res/makefile.mk72
-rw-r--r--shell/source/win32/shlxthandler/res/prop_img.bmpbin0 -> 958 bytes
-rw-r--r--shell/source/win32/shlxthandler/res/rcfooter.txt4
-rw-r--r--shell/source/win32/shlxthandler/res/rcheader.txt15
-rw-r--r--shell/source/win32/shlxthandler/res/rctmpl.txt71
-rw-r--r--shell/source/win32/shlxthandler/res/shlxthdl.manifest11
-rw-r--r--shell/source/win32/shlxthandler/res/shlxthdl.ulf148
-rw-r--r--shell/source/win32/shlxthandler/res/signet.pngbin0 -> 4836 bytes
-rwxr-xr-xshell/source/win32/shlxthandler/shlxthdl.cxx427
-rw-r--r--shell/source/win32/shlxthandler/thumbviewer/makefile.mk62
-rw-r--r--shell/source/win32/shlxthandler/thumbviewer/thumbviewer.cxx532
-rw-r--r--shell/source/win32/shlxthandler/util/dbgmacros.cxx58
-rw-r--r--shell/source/win32/shlxthandler/util/fileextensions.cxx111
-rw-r--r--shell/source/win32/shlxthandler/util/iso8601_converter.cxx182
-rw-r--r--shell/source/win32/shlxthandler/util/makefile.mk68
-rw-r--r--shell/source/win32/shlxthandler/util/registry.cxx205
-rw-r--r--shell/source/win32/shlxthandler/util/utilities.cxx577
-rw-r--r--shell/source/win32/simplemail/exports.dxp3
-rw-r--r--shell/source/win32/simplemail/makefile.mk79
-rw-r--r--shell/source/win32/simplemail/senddoc.cxx347
-rw-r--r--shell/source/win32/simplemail/simplemapi.cxx97
-rw-r--r--shell/source/win32/simplemail/simplemapi.hxx84
-rw-r--r--shell/source/win32/simplemail/smplmail.xml37
-rw-r--r--shell/source/win32/simplemail/smplmailclient.cxx289
-rw-r--r--shell/source/win32/simplemail/smplmailclient.hxx54
-rw-r--r--shell/source/win32/simplemail/smplmailentry.cxx143
-rw-r--r--shell/source/win32/simplemail/smplmailmsg.cxx179
-rw-r--r--shell/source/win32/simplemail/smplmailmsg.hxx122
-rw-r--r--shell/source/win32/simplemail/smplmailsuppl.cxx107
-rw-r--r--shell/source/win32/simplemail/smplmailsuppl.hxx75
-rw-r--r--shell/source/win32/syssh.xml40
-rw-r--r--shell/source/win32/workbench/TestProxySet.cxx200
-rw-r--r--shell/source/win32/workbench/TestSmplMail.cxx188
-rw-r--r--shell/source/win32/workbench/TestSysShExec.cxx167
-rw-r--r--shell/source/win32/workbench/makefile.mk101
-rw-r--r--slideshow/inc/makefile.mk47
-rw-r--r--slideshow/inc/pch/precompiled_slideshow.cxx29
-rw-r--r--slideshow/inc/pch/precompiled_slideshow.hxx52
-rw-r--r--slideshow/manifest.txt95
-rw-r--r--slideshow/prj/build.lst11
-rw-r--r--slideshow/prj/d.lst6
-rw-r--r--slideshow/qa/debug/colors.sh16
-rw-r--r--slideshow/qa/debug/nodetree.sh50
-rw-r--r--slideshow/qa/debug/readme.txt20
-rw-r--r--slideshow/qa/debug/timings.pl81
-rwxr-xr-xslideshow/qa/tools/mkeffects.pl810
-rw-r--r--slideshow/qa/tools/mktransitions.pl681
-rw-r--r--slideshow/source/engine/OGLTrans/OGLTrans_Shaders.cxx140
-rw-r--r--slideshow/source/engine/OGLTrans/OGLTrans_Shaders.hxx68
-rw-r--r--slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.cxx1315
-rw-r--r--slideshow/source/engine/OGLTrans/OGLTrans_TransitionImpl.hxx506
-rw-r--r--slideshow/source/engine/OGLTrans/OGLTrans_TransitionerImpl.cxx1484
-rw-r--r--slideshow/source/engine/OGLTrans/exports.dxp3
-rw-r--r--slideshow/source/engine/OGLTrans/exports.map8
-rw-r--r--slideshow/source/engine/OGLTrans/makefile.mk80
-rw-r--r--slideshow/source/engine/activities/accumulation.hxx92
-rw-r--r--slideshow/source/engine/activities/activitiesfactory.cxx987
-rw-r--r--slideshow/source/engine/activities/activitybase.cxx246
-rw-r--r--slideshow/source/engine/activities/activitybase.hxx152
-rw-r--r--slideshow/source/engine/activities/activityparameters.hxx143
-rw-r--r--slideshow/source/engine/activities/continuousactivitybase.cxx54
-rw-r--r--slideshow/source/engine/activities/continuousactivitybase.hxx73
-rw-r--r--slideshow/source/engine/activities/continuouskeytimeactivitybase.cxx121
-rw-r--r--slideshow/source/engine/activities/continuouskeytimeactivitybase.hxx84
-rw-r--r--slideshow/source/engine/activities/discreteactivitybase.cxx206
-rw-r--r--slideshow/source/engine/activities/discreteactivitybase.hxx87
-rw-r--r--slideshow/source/engine/activities/interpolation.hxx187
-rw-r--r--slideshow/source/engine/activities/makefile.mk53
-rw-r--r--slideshow/source/engine/activities/simplecontinuousactivitybase.cxx258
-rw-r--r--slideshow/source/engine/activities/simplecontinuousactivitybase.hxx87
-rw-r--r--slideshow/source/engine/activitiesqueue.cxx210
-rw-r--r--slideshow/source/engine/animatedsprite.cxx225
-rw-r--r--slideshow/source/engine/animationfactory.cxx1386
-rw-r--r--slideshow/source/engine/animationnodes/animationaudionode.cxx181
-rw-r--r--slideshow/source/engine/animationnodes/animationaudionode.hxx77
-rw-r--r--slideshow/source/engine/animationnodes/animationbasenode.cxx490
-rw-r--r--slideshow/source/engine/animationnodes/animationbasenode.hxx111
-rw-r--r--slideshow/source/engine/animationnodes/animationcolornode.cxx137
-rw-r--r--slideshow/source/engine/animationnodes/animationcolornode.hxx62
-rw-r--r--slideshow/source/engine/animationnodes/animationcommandnode.cxx134
-rw-r--r--slideshow/source/engine/animationnodes/animationcommandnode.hxx69
-rw-r--r--slideshow/source/engine/animationnodes/animationnodefactory.cxx620
-rw-r--r--slideshow/source/engine/animationnodes/animationpathmotionnode.cxx67
-rw-r--r--slideshow/source/engine/animationnodes/animationpathmotionnode.hxx65
-rw-r--r--slideshow/source/engine/animationnodes/animationsetnode.cxx213
-rw-r--r--slideshow/source/engine/animationnodes/animationsetnode.hxx58
-rw-r--r--slideshow/source/engine/animationnodes/animationtransformnode.cxx114
-rw-r--r--slideshow/source/engine/animationnodes/animationtransformnode.hxx66
-rw-r--r--slideshow/source/engine/animationnodes/animationtransitionfilternode.cxx59
-rw-r--r--slideshow/source/engine/animationnodes/animationtransitionfilternode.hxx67
-rw-r--r--slideshow/source/engine/animationnodes/basecontainernode.cxx175
-rw-r--r--slideshow/source/engine/animationnodes/basecontainernode.hxx105
-rw-r--r--slideshow/source/engine/animationnodes/basenode.cxx769
-rw-r--r--slideshow/source/engine/animationnodes/basenode.hxx229
-rw-r--r--slideshow/source/engine/animationnodes/generateevent.cxx246
-rw-r--r--slideshow/source/engine/animationnodes/generateevent.hxx62
-rw-r--r--slideshow/source/engine/animationnodes/makefile.mk61
-rw-r--r--slideshow/source/engine/animationnodes/nodetools.cxx128
-rw-r--r--slideshow/source/engine/animationnodes/nodetools.hxx88
-rw-r--r--slideshow/source/engine/animationnodes/paralleltimecontainer.cxx69
-rw-r--r--slideshow/source/engine/animationnodes/paralleltimecontainer.hxx63
-rw-r--r--slideshow/source/engine/animationnodes/propertyanimationnode.cxx115
-rw-r--r--slideshow/source/engine/animationnodes/propertyanimationnode.hxx58
-rw-r--r--slideshow/source/engine/animationnodes/sequentialtimecontainer.cxx162
-rw-r--r--slideshow/source/engine/animationnodes/sequentialtimecontainer.hxx75
-rw-r--r--slideshow/source/engine/animationnodes/setactivity.hxx155
-rw-r--r--slideshow/source/engine/arith-grammar.txt61
-rw-r--r--slideshow/source/engine/attributemap.cxx123
-rw-r--r--slideshow/source/engine/color.cxx467
-rw-r--r--slideshow/source/engine/debug.cxx324
-rw-r--r--slideshow/source/engine/delayevent.cxx69
-rw-r--r--slideshow/source/engine/effectrewinder.cxx433
-rw-r--r--slideshow/source/engine/effectrewinder.hxx182
-rw-r--r--slideshow/source/engine/eventmultiplexer.cxx1278
-rw-r--r--slideshow/source/engine/eventqueue.cxx335
-rw-r--r--slideshow/source/engine/expressionnodefactory.cxx279
-rw-r--r--slideshow/source/engine/makefile.mk102
-rw-r--r--slideshow/source/engine/rehearsetimingsactivity.cxx581
-rw-r--r--slideshow/source/engine/rehearsetimingsactivity.hxx147
-rw-r--r--slideshow/source/engine/screenupdater.cxx268
-rw-r--r--slideshow/source/engine/shapeattributelayer.cxx856
-rw-r--r--slideshow/source/engine/shapes/appletshape.cxx330
-rw-r--r--slideshow/source/engine/shapes/appletshape.hxx60
-rw-r--r--slideshow/source/engine/shapes/backgroundshape.cxx336
-rw-r--r--slideshow/source/engine/shapes/backgroundshape.hxx62
-rw-r--r--slideshow/source/engine/shapes/drawinglayeranimation.cxx984
-rw-r--r--slideshow/source/engine/shapes/drawinglayeranimation.hxx48
-rw-r--r--slideshow/source/engine/shapes/drawshape.cxx1478
-rw-r--r--slideshow/source/engine/shapes/drawshape.hxx382
-rw-r--r--slideshow/source/engine/shapes/drawshapesubsetting.cxx865
-rw-r--r--slideshow/source/engine/shapes/drawshapesubsetting.hxx288
-rw-r--r--slideshow/source/engine/shapes/externalshapebase.cxx246
-rw-r--r--slideshow/source/engine/shapes/externalshapebase.hxx145
-rw-r--r--slideshow/source/engine/shapes/gdimtftools.cxx549
-rw-r--r--slideshow/source/engine/shapes/gdimtftools.hxx155
-rw-r--r--slideshow/source/engine/shapes/intrinsicanimationactivity.cxx290
-rw-r--r--slideshow/source/engine/shapes/intrinsicanimationactivity.hxx76
-rw-r--r--slideshow/source/engine/shapes/makefile.mk60
-rw-r--r--slideshow/source/engine/shapes/mediashape.cxx297
-rw-r--r--slideshow/source/engine/shapes/mediashape.hxx55
-rw-r--r--slideshow/source/engine/shapes/shapeimporter.cxx671
-rw-r--r--slideshow/source/engine/shapes/viewappletshape.cxx300
-rw-r--r--slideshow/source/engine/shapes/viewappletshape.hxx169
-rw-r--r--slideshow/source/engine/shapes/viewbackgroundshape.cxx212
-rw-r--r--slideshow/source/engine/shapes/viewbackgroundshape.hxx104
-rw-r--r--slideshow/source/engine/shapes/viewmediashape.cxx545
-rw-r--r--slideshow/source/engine/shapes/viewmediashape.hxx174
-rw-r--r--slideshow/source/engine/shapes/viewshape.cxx899
-rw-r--r--slideshow/source/engine/shapes/viewshape.hxx340
-rw-r--r--slideshow/source/engine/shapesubset.cxx141
-rw-r--r--slideshow/source/engine/slide/layer.cxx359
-rw-r--r--slideshow/source/engine/slide/layer.hxx316
-rw-r--r--slideshow/source/engine/slide/layermanager.cxx923
-rw-r--r--slideshow/source/engine/slide/layermanager.hxx385
-rw-r--r--slideshow/source/engine/slide/makefile.mk51
-rw-r--r--slideshow/source/engine/slide/shapemanagerimpl.cxx461
-rw-r--r--slideshow/source/engine/slide/shapemanagerimpl.hxx209
-rw-r--r--slideshow/source/engine/slide/slideanimations.cxx131
-rw-r--r--slideshow/source/engine/slide/slideanimations.hxx125
-rw-r--r--slideshow/source/engine/slide/slideimpl.cxx1283
-rw-r--r--slideshow/source/engine/slide/userpaintoverlay.cxx504
-rw-r--r--slideshow/source/engine/slide/userpaintoverlay.hxx89
-rw-r--r--slideshow/source/engine/slidebitmap.cxx132
-rw-r--r--slideshow/source/engine/slideshowcontext.cxx76
-rw-r--r--slideshow/source/engine/slideshowimpl.cxx2534
-rw-r--r--slideshow/source/engine/slideview.cxx1198
-rw-r--r--slideshow/source/engine/smilfunctionparser.cxx638
-rw-r--r--slideshow/source/engine/soundplayer.cxx183
-rw-r--r--slideshow/source/engine/sp_debug.cxx297
-rw-r--r--slideshow/source/engine/tools.cxx853
-rw-r--r--slideshow/source/engine/transitions/barndoorwipe.cxx65
-rw-r--r--slideshow/source/engine/transitions/barndoorwipe.hxx55
-rw-r--r--slideshow/source/engine/transitions/barwipepolypolygon.cxx56
-rw-r--r--slideshow/source/engine/transitions/barwipepolypolygon.hxx55
-rw-r--r--slideshow/source/engine/transitions/boxwipe.cxx57
-rw-r--r--slideshow/source/engine/transitions/boxwipe.hxx54
-rw-r--r--slideshow/source/engine/transitions/checkerboardwipe.cxx65
-rw-r--r--slideshow/source/engine/transitions/checkerboardwipe.hxx57
-rw-r--r--slideshow/source/engine/transitions/clippingfunctor.cxx238
-rw-r--r--slideshow/source/engine/transitions/clippingfunctor.hxx95
-rw-r--r--slideshow/source/engine/transitions/clockwipe.cxx74
-rw-r--r--slideshow/source/engine/transitions/clockwipe.hxx50
-rw-r--r--slideshow/source/engine/transitions/combtransition.cxx196
-rw-r--r--slideshow/source/engine/transitions/combtransition.hxx72
-rw-r--r--slideshow/source/engine/transitions/doublediamondwipe.cxx66
-rw-r--r--slideshow/source/engine/transitions/doublediamondwipe.hxx53
-rw-r--r--slideshow/source/engine/transitions/ellipsewipe.cxx52
-rw-r--r--slideshow/source/engine/transitions/ellipsewipe.hxx48
-rw-r--r--slideshow/source/engine/transitions/fanwipe.cxx72
-rw-r--r--slideshow/source/engine/transitions/fanwipe.hxx51
-rw-r--r--slideshow/source/engine/transitions/figurewipe.cxx129
-rw-r--r--slideshow/source/engine/transitions/figurewipe.hxx55
-rw-r--r--slideshow/source/engine/transitions/fourboxwipe.cxx85
-rw-r--r--slideshow/source/engine/transitions/fourboxwipe.hxx55
-rw-r--r--slideshow/source/engine/transitions/iriswipe.cxx52
-rw-r--r--slideshow/source/engine/transitions/iriswipe.hxx52
-rw-r--r--slideshow/source/engine/transitions/makefile.mk73
-rw-r--r--slideshow/source/engine/transitions/parametricpolypolygon.hxx98
-rw-r--r--slideshow/source/engine/transitions/parametricpolypolygonfactory.cxx312
-rw-r--r--slideshow/source/engine/transitions/parametricpolypolygonfactory.hxx54
-rw-r--r--slideshow/source/engine/transitions/pinwheelwipe.cxx59
-rw-r--r--slideshow/source/engine/transitions/pinwheelwipe.hxx51
-rw-r--r--slideshow/source/engine/transitions/randomwipe.cxx95
-rw-r--r--slideshow/source/engine/transitions/randomwipe.hxx58
-rw-r--r--slideshow/source/engine/transitions/shapetransitionfactory.cxx408
-rw-r--r--slideshow/source/engine/transitions/slidechangebase.cxx535
-rw-r--r--slideshow/source/engine/transitions/slidechangebase.hxx208
-rw-r--r--slideshow/source/engine/transitions/slidetransitionfactory.cxx1074
-rw-r--r--slideshow/source/engine/transitions/snakewipe.cxx244
-rw-r--r--slideshow/source/engine/transitions/snakewipe.hxx76
-rw-r--r--slideshow/source/engine/transitions/spiralwipe.cxx131
-rw-r--r--slideshow/source/engine/transitions/spiralwipe.hxx68
-rw-r--r--slideshow/source/engine/transitions/sweepwipe.cxx84
-rw-r--r--slideshow/source/engine/transitions/sweepwipe.hxx53
-rw-r--r--slideshow/source/engine/transitions/transitionfactorytab.cxx2132
-rw-r--r--slideshow/source/engine/transitions/transitiontools.cxx69
-rw-r--r--slideshow/source/engine/transitions/transitiontools.hxx55
-rw-r--r--slideshow/source/engine/transitions/veewipe.cxx53
-rw-r--r--slideshow/source/engine/transitions/veewipe.hxx51
-rw-r--r--slideshow/source/engine/transitions/waterfallwipe.cxx77
-rw-r--r--slideshow/source/engine/transitions/waterfallwipe.hxx52
-rw-r--r--slideshow/source/engine/transitions/zigzagwipe.cxx82
-rw-r--r--slideshow/source/engine/transitions/zigzagwipe.hxx60
-rw-r--r--slideshow/source/engine/unoviewcontainer.cxx149
-rw-r--r--slideshow/source/engine/usereventqueue.cxx1007
-rw-r--r--slideshow/source/engine/waitsymbol.cxx208
-rw-r--r--slideshow/source/engine/waitsymbol.hxx108
-rw-r--r--slideshow/source/engine/wakeupevent.cxx99
-rw-r--r--slideshow/source/inc/activitiesfactory.hxx334
-rw-r--r--slideshow/source/inc/activitiesqueue.hxx130
-rw-r--r--slideshow/source/inc/activity.hxx100
-rw-r--r--slideshow/source/inc/animatableshape.hxx88
-rw-r--r--slideshow/source/inc/animatedsprite.hxx186
-rw-r--r--slideshow/source/inc/animation.hxx97
-rw-r--r--slideshow/source/inc/animationactivity.hxx75
-rw-r--r--slideshow/source/inc/animationeventhandler.hxx71
-rw-r--r--slideshow/source/inc/animationfactory.hxx157
-rw-r--r--slideshow/source/inc/animationfunction.hxx71
-rw-r--r--slideshow/source/inc/animationnode.hxx163
-rw-r--r--slideshow/source/inc/animationnodefactory.hxx78
-rw-r--r--slideshow/source/inc/attributableshape.hxx228
-rw-r--r--slideshow/source/inc/attributemap.hxx80
-rw-r--r--slideshow/source/inc/boolanimation.hxx77
-rw-r--r--slideshow/source/inc/coloranimation.hxx77
-rw-r--r--slideshow/source/inc/cursormanager.hxx72
-rw-r--r--slideshow/source/inc/debug.hxx77
-rw-r--r--slideshow/source/inc/delayevent.hxx157
-rw-r--r--slideshow/source/inc/disposable.hxx65
-rw-r--r--slideshow/source/inc/doctreenode.hxx141
-rw-r--r--slideshow/source/inc/doctreenodesupplier.hxx151
-rw-r--r--slideshow/source/inc/enumanimation.hxx79
-rw-r--r--slideshow/source/inc/event.hxx92
-rw-r--r--slideshow/source/inc/eventhandler.hxx67
-rw-r--r--slideshow/source/inc/eventmultiplexer.hxx661
-rw-r--r--slideshow/source/inc/eventqueue.hxx156
-rw-r--r--slideshow/source/inc/expressionnode.hxx66
-rw-r--r--slideshow/source/inc/expressionnodefactory.hxx82
-rw-r--r--slideshow/source/inc/externalmediashape.hxx91
-rw-r--r--slideshow/source/inc/framerate.hxx53
-rw-r--r--slideshow/source/inc/hslcolor.hxx123
-rw-r--r--slideshow/source/inc/hslcoloranimation.hxx77
-rw-r--r--slideshow/source/inc/hyperlinkarea.hxx104
-rw-r--r--slideshow/source/inc/hyperlinkhandler.hxx68
-rw-r--r--slideshow/source/inc/interruptabledelayevent.hxx150
-rw-r--r--slideshow/source/inc/intrinsicanimationeventhandler.hxx60
-rw-r--r--slideshow/source/inc/lerp.hxx59
-rw-r--r--slideshow/source/inc/listenercontainer.hxx315
-rw-r--r--slideshow/source/inc/listenercontainerimpl.hxx225
-rw-r--r--slideshow/source/inc/mouseeventhandler.hxx153
-rw-r--r--slideshow/source/inc/numberanimation.hxx79
-rw-r--r--slideshow/source/inc/pairanimation.hxx78
-rw-r--r--slideshow/source/inc/pauseeventhandler.hxx68
-rw-r--r--slideshow/source/inc/rgbcolor.hxx125
-rw-r--r--slideshow/source/inc/screenupdater.hxx139
-rw-r--r--slideshow/source/inc/shape.hxx273
-rw-r--r--slideshow/source/inc/shapeattributelayer.hxx556
-rw-r--r--slideshow/source/inc/shapeattributelayerholder.hxx110
-rw-r--r--slideshow/source/inc/shapecursoreventhandler.hxx67
-rw-r--r--slideshow/source/inc/shapeimporter.hxx155
-rw-r--r--slideshow/source/inc/shapelistenereventhandler.hxx75
-rw-r--r--slideshow/source/inc/shapemanager.hxx125
-rw-r--r--slideshow/source/inc/shapemaps.hxx61
-rw-r--r--slideshow/source/inc/shapesubset.hxx150
-rw-r--r--slideshow/source/inc/slide.hxx217
-rw-r--r--slideshow/source/inc/slidebitmap.hxx95
-rw-r--r--slideshow/source/inc/slideshowcontext.hxx118
-rw-r--r--slideshow/source/inc/slideshowexceptions.hxx53
-rw-r--r--slideshow/source/inc/slideview.hxx62
-rw-r--r--slideshow/source/inc/smilfunctionparser.hxx167
-rw-r--r--slideshow/source/inc/soundplayer.hxx118
-rw-r--r--slideshow/source/inc/state.hxx73
-rw-r--r--slideshow/source/inc/stringanimation.hxx77
-rw-r--r--slideshow/source/inc/subsettableshapemanager.hxx126
-rw-r--r--slideshow/source/inc/tools.hxx404
-rw-r--r--slideshow/source/inc/transitionfactory.hxx148
-rw-r--r--slideshow/source/inc/transitioninfo.hxx160
-rw-r--r--slideshow/source/inc/unoview.hxx85
-rw-r--r--slideshow/source/inc/unoviewcontainer.hxx110
-rw-r--r--slideshow/source/inc/usereventqueue.hxx327
-rw-r--r--slideshow/source/inc/userpainteventhandler.hxx65
-rw-r--r--slideshow/source/inc/view.hxx95
-rw-r--r--slideshow/source/inc/vieweventhandler.hxx99
-rw-r--r--slideshow/source/inc/viewlayer.hxx175
-rw-r--r--slideshow/source/inc/viewrepainthandler.hxx73
-rw-r--r--slideshow/source/inc/viewupdate.hxx76
-rw-r--r--slideshow/source/inc/wakeupevent.hxx93
-rw-r--r--slideshow/test/demoshow.cxx570
-rw-r--r--slideshow/test/export.map34
-rw-r--r--slideshow/test/makefile.mk101
-rw-r--r--slideshow/test/slidetest.cxx370
-rw-r--r--slideshow/test/tests.hxx72
-rw-r--r--slideshow/test/testshape.cxx221
-rw-r--r--slideshow/test/testview.cxx286
-rw-r--r--slideshow/test/views.cxx90
-rw-r--r--slideshow/util/exports.dxp3
-rw-r--r--slideshow/util/exports.map8
-rw-r--r--slideshow/util/makefile.mk104
-rw-r--r--slideshow/util/makefile.pmk47
-rw-r--r--slideshow/util/slideshowtest.flt4
-rwxr-xr-xsmoketestoo_native/check_setup.pl69
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/MANIFEST.MF2
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/TestExtension.idl40
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/TestExtension.java166
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/delzip1
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/makefile.mk79
-rwxr-xr-xsmoketestoo_native/com/sun/star/comp/smoketest/manifest.xml5
-rwxr-xr-xsmoketestoo_native/config.pl83
-rwxr-xr-xsmoketestoo_native/data/TestExtension.oxtbin0 -> 4210 bytes
-rw-r--r--smoketestoo_native/data/dbgsv.ini42
-rwxr-xr-xsmoketestoo_native/data/scripts/Global.xba739
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_10er.xba907
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_DB.xba135
-rwxr-xr-xsmoketestoo_native/data/scripts/Test_Ext.xba95
-rwxr-xr-xsmoketestoo_native/data/scripts/script.xlb8
-rwxr-xr-xsmoketestoo_native/data/smoketestdoc.sxwbin0 -> 35157 bytes
-rw-r--r--smoketestoo_native/data/solaris/sparc/admin6
-rwxr-xr-xsmoketestoo_native/data/solaris/sparc/getuid.sobin0 -> 4108 bytes
-rw-r--r--smoketestoo_native/data/solaris/x86/admin6
-rwxr-xr-xsmoketestoo_native/data/solaris/x86/getuid.sobin0 -> 3796 bytes
-rw-r--r--smoketestoo_native/makefile.mk54
-rw-r--r--smoketestoo_native/prj/build.lst4
-rw-r--r--smoketestoo_native/prj/d.lst0
-rwxr-xr-xsmoketestoo_native/smoketest.pl1279
-rwxr-xr-xsmoketestoo_native/testlog.pl286
-rw-r--r--soldep/bootstrp/appdef.cxx165
-rw-r--r--soldep/bootstrp/build_list_converter.pl892
-rw-r--r--soldep/bootstrp/dep.cxx116
-rw-r--r--soldep/bootstrp/hashtbl.cxx511
-rw-r--r--soldep/bootstrp/makefile.mk83
-rw-r--r--soldep/bootstrp/minormk.cxx187
-rw-r--r--soldep/bootstrp/prj.cxx3100
-rw-r--r--soldep/bootstrp/prodmap.cxx517
-rw-r--r--soldep/inc/appdef.hxx161
-rw-r--r--soldep/inc/dep.hxx69
-rw-r--r--soldep/inc/dtsodcmp.hrc99
-rw-r--r--soldep/inc/minormk.hxx77
-rw-r--r--soldep/inc/prodmap.hxx86
-rw-r--r--soldep/inc/soldep/connctr.hxx86
-rw-r--r--soldep/inc/soldep/depper.hxx208
-rw-r--r--soldep/inc/soldep/depwin.hxx75
-rw-r--r--soldep/inc/soldep/graphwin.hxx54
-rw-r--r--soldep/inc/soldep/hashobj.hxx45
-rw-r--r--soldep/inc/soldep/hashtbl.hxx204
-rw-r--r--soldep/inc/soldep/objwin.hxx160
-rw-r--r--soldep/inc/soldep/prj.hxx480
-rw-r--r--soldep/inc/soldep/sdtresid.hxx52
-rw-r--r--soldep/inc/soldep/soldep.hxx116
-rw-r--r--soldep/inc/soldep/soldlg.hrc79
-rw-r--r--soldep/inc/soldep/soldlg.hxx160
-rw-r--r--soldep/inc/soldep/tbox.hxx102
-rw-r--r--soldep/prj/build.lst5
-rw-r--r--soldep/prj/d.lst38
-rw-r--r--soldep/source/connctr.cxx272
-rw-r--r--soldep/source/depapp.cxx147
-rw-r--r--soldep/source/depapp.hxx109
-rw-r--r--soldep/source/depper.cxx687
-rw-r--r--soldep/source/depwin.cxx164
-rw-r--r--soldep/source/graphwin.cxx77
-rw-r--r--soldep/source/hashobj.cxx37
-rw-r--r--soldep/source/makefile.mk146
-rw-r--r--soldep/source/objwin.cxx821
-rw-r--r--soldep/source/sdtresid.cxx49
-rw-r--r--soldep/source/soldep.cxx1807
-rw-r--r--soldep/source/soldep.icobin0 -> 10134 bytes
-rw-r--r--soldep/source/soldlg.cxx267
-rw-r--r--soldep/source/soldlg.src374
-rw-r--r--soldep/source/tbox.cxx596
-rw-r--r--soldep/util/perl.mk76
-rwxr-xr-xsolenv/bin/_mkout11
-rwxr-xr-xsolenv/bin/addsym-macosx.sh29
-rw-r--r--solenv/bin/addsym-mingw.sh34
-rw-r--r--solenv/bin/addsym.awk53
-rwxr-xr-xsolenv/bin/build.pl3522
-rwxr-xr-xsolenv/bin/build_client.pl445
-rwxr-xr-xsolenv/bin/checkapi71
-rw-r--r--solenv/bin/checkapi.btm44
-rwxr-xr-xsolenv/bin/checkdll.sh83
-rw-r--r--solenv/bin/chrel.sed2
-rw-r--r--solenv/bin/cleandiff.pl45
-rwxr-xr-xsolenv/bin/cleanzip.pl64
-rw-r--r--solenv/bin/clipatchconfig.pl133
-rw-r--r--solenv/bin/convertlinks.pl122
-rw-r--r--solenv/bin/converttags.pl94
-rwxr-xr-xsolenv/bin/createpdbrelocators7
-rw-r--r--solenv/bin/createpdbrelocators.btm9
-rw-r--r--solenv/bin/createpdbrelocators.pl82
-rwxr-xr-xsolenv/bin/cws6
-rw-r--r--solenv/bin/cws.btm11
-rw-r--r--solenv/bin/cws.pl3137
-rwxr-xr-xsolenv/bin/cwsattach7
-rw-r--r--solenv/bin/cwsattach.btm11
-rw-r--r--solenv/bin/cwsattach.pl220
-rwxr-xr-xsolenv/bin/cwscheckapi361
-rwxr-xr-xsolenv/bin/cwscheckapi.btm206
-rwxr-xr-xsolenv/bin/cwscreate6
-rwxr-xr-xsolenv/bin/cwstestresult7
-rw-r--r--solenv/bin/cwstestresult.btm11
-rw-r--r--solenv/bin/cwstestresult.pl192
-rwxr-xr-xsolenv/bin/cwstouched6
-rwxr-xr-xsolenv/bin/cwstouched.btm11
-rwxr-xr-xsolenv/bin/cwstouched.pl151
-rwxr-xr-xsolenv/bin/cwstouched.py111
-rwxr-xr-xsolenv/bin/deliver.pl1526
-rwxr-xr-xsolenv/bin/diffmv.pl76
-rw-r--r--solenv/bin/exectest.pl98
-rw-r--r--solenv/bin/fix_def_file.cmd52
-rw-r--r--solenv/bin/fix_def_ord.cmd19
-rw-r--r--solenv/bin/fix_dxp_file.cmd30
-rw-r--r--solenv/bin/fix_exp_file.cmd54
-rw-r--r--solenv/bin/fix_lin_file.cmd13
-rw-r--r--solenv/bin/fix_shl.cmd11
-rwxr-xr-xsolenv/bin/gccinstlib.pl56
-rw-r--r--solenv/bin/gen_update_info.pl176
-rwxr-xr-xsolenv/bin/gen_userfeedback_VCL_names.pl196
-rwxr-xr-xsolenv/bin/genmap1
-rw-r--r--solenv/bin/getcompver.awk79
-rw-r--r--solenv/bin/getcsym.awk34
-rwxr-xr-xsolenv/bin/guw.pl347
-rw-r--r--solenv/bin/hicontrast-to-theme.pl125
-rwxr-xr-xsolenv/bin/image-sort.pl149
-rwxr-xr-xsolenv/bin/install-sh3
-rwxr-xr-xsolenv/bin/installoffice107
-rwxr-xr-xsolenv/bin/installoffice.btm120
-rw-r--r--solenv/bin/installoffice.oxtbin0 -> 1680 bytes
-rwxr-xr-xsolenv/bin/installoffice.pl933
-rwxr-xr-xsolenv/bin/installoffice_impress.oxtbin0 -> 1311 bytes
-rwxr-xr-xsolenv/bin/langwrap131
-rwxr-xr-xsolenv/bin/leconvert.pl91
-rw-r--r--solenv/bin/licinserter.pl138
-rwxr-xr-xsolenv/bin/linkoo360
-rwxr-xr-xsolenv/bin/localize20
-rwxr-xr-xsolenv/bin/localize_sl18
-rw-r--r--solenv/bin/macosx-change-install-names.pl91
-rwxr-xr-xsolenv/bin/macosx-create-bundle105
-rw-r--r--solenv/bin/macosx-dylib-link-list.pl91
-rw-r--r--solenv/bin/make_download.pl129
-rwxr-xr-xsolenv/bin/make_ext_update_info.pl613
-rw-r--r--solenv/bin/make_installer.pl2364
-rwxr-xr-xsolenv/bin/makedepn13
-rw-r--r--solenv/bin/makemani.pl112
-rw-r--r--solenv/bin/mapgen.pl207
-rw-r--r--solenv/bin/mhids.pl392
-rw-r--r--solenv/bin/mkdir.btm6
-rwxr-xr-xsolenv/bin/mkdir.pl65
-rwxr-xr-xsolenv/bin/mkout.pl162
-rw-r--r--solenv/bin/modules/CreatePDBRelocators.pm206
-rwxr-xr-xsolenv/bin/modules/Cws.pm2153
-rw-r--r--solenv/bin/modules/CwsConfig.pm576
-rwxr-xr-xsolenv/bin/modules/Eis.pm220
-rw-r--r--solenv/bin/modules/GenInfoParser.pm296
-rwxr-xr-xsolenv/bin/modules/SourceConfig.pm626
-rw-r--r--solenv/bin/modules/installer/archivefiles.pm486
-rw-r--r--solenv/bin/modules/installer/configuration.pm901
-rw-r--r--solenv/bin/modules/installer/control.pm719
-rw-r--r--solenv/bin/modules/installer/converter.pm462
-rw-r--r--solenv/bin/modules/installer/copyproject.pm118
-rw-r--r--solenv/bin/modules/installer/download.pm1972
-rw-r--r--solenv/bin/modules/installer/downloadsigner.pm585
-rw-r--r--solenv/bin/modules/installer/environment.pm139
-rw-r--r--solenv/bin/modules/installer/epmfile.pm3410
-rw-r--r--solenv/bin/modules/installer/existence.pm190
-rw-r--r--solenv/bin/modules/installer/exiter.pm113
-rw-r--r--solenv/bin/modules/installer/files.pm219
-rw-r--r--solenv/bin/modules/installer/followme.pm215
-rw-r--r--solenv/bin/modules/installer/globals.pm539
-rw-r--r--solenv/bin/modules/installer/javainstaller.pm1885
-rw-r--r--solenv/bin/modules/installer/languagepack.pm565
-rw-r--r--solenv/bin/modules/installer/languages.pm379
-rw-r--r--solenv/bin/modules/installer/logger.pm339
-rw-r--r--solenv/bin/modules/installer/mail.pm136
-rw-r--r--solenv/bin/modules/installer/packagelist.pm872
-rw-r--r--solenv/bin/modules/installer/packagepool.pm1048
-rw-r--r--solenv/bin/modules/installer/parameter.pm663
-rw-r--r--solenv/bin/modules/installer/pathanalyzer.pm75
-rw-r--r--solenv/bin/modules/installer/profiles.pm231
-rw-r--r--solenv/bin/modules/installer/regmerge.pm340
-rw-r--r--solenv/bin/modules/installer/remover.pm82
-rw-r--r--solenv/bin/modules/installer/scppatchsoname.pm218
-rw-r--r--solenv/bin/modules/installer/scpzipfiles.pm187
-rw-r--r--solenv/bin/modules/installer/scriptitems.pm2940
-rw-r--r--solenv/bin/modules/installer/servicesfile.pm1067
-rw-r--r--solenv/bin/modules/installer/setupscript.pm485
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm784
-rw-r--r--solenv/bin/modules/installer/sorter.pm116
-rw-r--r--solenv/bin/modules/installer/strip.pm139
-rw-r--r--solenv/bin/modules/installer/substfilenamefiles.pm169
-rw-r--r--solenv/bin/modules/installer/systemactions.pm1660
-rw-r--r--solenv/bin/modules/installer/upx.pm156
-rw-r--r--solenv/bin/modules/installer/windows/admin.pm835
-rw-r--r--solenv/bin/modules/installer/windows/assembly.pm371
-rw-r--r--solenv/bin/modules/installer/windows/binary.pm77
-rw-r--r--solenv/bin/modules/installer/windows/component.pm528
-rw-r--r--solenv/bin/modules/installer/windows/createfolder.pm153
-rw-r--r--solenv/bin/modules/installer/windows/directory.pm435
-rw-r--r--solenv/bin/modules/installer/windows/feature.pm445
-rw-r--r--solenv/bin/modules/installer/windows/featurecomponent.pm244
-rw-r--r--solenv/bin/modules/installer/windows/file.pm971
-rw-r--r--solenv/bin/modules/installer/windows/font.pm110
-rw-r--r--solenv/bin/modules/installer/windows/icon.pm77
-rw-r--r--solenv/bin/modules/installer/windows/idtglobal.pm2456
-rw-r--r--solenv/bin/modules/installer/windows/inifile.pm146
-rw-r--r--solenv/bin/modules/installer/windows/java.pm120
-rw-r--r--solenv/bin/modules/installer/windows/language.pm74
-rw-r--r--solenv/bin/modules/installer/windows/media.pm458
-rwxr-xr-xsolenv/bin/modules/installer/windows/mergemodule.pm1652
-rw-r--r--solenv/bin/modules/installer/windows/msiglobal.pm2265
-rw-r--r--solenv/bin/modules/installer/windows/msp.pm1293
-rw-r--r--solenv/bin/modules/installer/windows/patch.pm155
-rw-r--r--solenv/bin/modules/installer/windows/property.pm647
-rw-r--r--solenv/bin/modules/installer/windows/registry.pm395
-rw-r--r--solenv/bin/modules/installer/windows/removefile.pm152
-rw-r--r--solenv/bin/modules/installer/windows/selfreg.pm88
-rw-r--r--solenv/bin/modules/installer/windows/shortcut.pm712
-rw-r--r--solenv/bin/modules/installer/windows/sign.pm1249
-rw-r--r--solenv/bin/modules/installer/windows/strip.pm159
-rw-r--r--solenv/bin/modules/installer/windows/update.pm600
-rw-r--r--solenv/bin/modules/installer/windows/upgrade.pm167
-rw-r--r--solenv/bin/modules/installer/worker.pm3404
-rw-r--r--solenv/bin/modules/installer/xpdinstaller.pm1832
-rw-r--r--solenv/bin/modules/installer/ziplist.pm792
-rw-r--r--solenv/bin/modules/macosxotoolhelper.pm44
-rwxr-xr-xsolenv/bin/modules/osarch.pm195
-rw-r--r--solenv/bin/modules/packager/check.pm88
-rw-r--r--solenv/bin/modules/packager/existence.pm52
-rw-r--r--solenv/bin/modules/packager/exiter.pm71
-rw-r--r--solenv/bin/modules/packager/files.pm184
-rw-r--r--solenv/bin/modules/packager/globals.pm54
-rw-r--r--solenv/bin/modules/packager/work.pm327
-rw-r--r--solenv/bin/modules/par2script/check.pm396
-rw-r--r--solenv/bin/modules/par2script/converter.pm142
-rw-r--r--solenv/bin/modules/par2script/existence.pm74
-rw-r--r--solenv/bin/modules/par2script/exiter.pm122
-rw-r--r--solenv/bin/modules/par2script/files.pm124
-rw-r--r--solenv/bin/modules/par2script/globals.pm81
-rw-r--r--solenv/bin/modules/par2script/module.pm264
-rw-r--r--solenv/bin/modules/par2script/parameter.pm154
-rw-r--r--solenv/bin/modules/par2script/remover.pm75
-rw-r--r--solenv/bin/modules/par2script/shortcut.pm75
-rw-r--r--solenv/bin/modules/par2script/systemactions.pm184
-rw-r--r--solenv/bin/modules/par2script/undefine.pm144
-rw-r--r--solenv/bin/modules/par2script/work.pm416
-rw-r--r--solenv/bin/modules/pre2par/directory.pm54
-rw-r--r--solenv/bin/modules/pre2par/existence.pm74
-rw-r--r--solenv/bin/modules/pre2par/exiter.pm70
-rw-r--r--solenv/bin/modules/pre2par/files.pm125
-rw-r--r--solenv/bin/modules/pre2par/globals.pm67
-rw-r--r--solenv/bin/modules/pre2par/language.pm172
-rw-r--r--solenv/bin/modules/pre2par/parameter.pm178
-rw-r--r--solenv/bin/modules/pre2par/pathanalyzer.pm75
-rw-r--r--solenv/bin/modules/pre2par/remover.pm67
-rw-r--r--solenv/bin/modules/pre2par/systemactions.pm206
-rw-r--r--solenv/bin/modules/pre2par/work.pm363
-rwxr-xr-xsolenv/bin/msg_filter61
-rw-r--r--solenv/bin/newfolderforce1
-rwxr-xr-xsolenv/bin/oochkpatch6
-rwxr-xr-xsolenv/bin/oochkpatch.btm2
-rw-r--r--solenv/bin/oochkpatch.pl301
-rw-r--r--solenv/bin/packager.pl61
-rwxr-xr-xsolenv/bin/packimages.pl437
-rw-r--r--solenv/bin/packregistry.xslt81
-rw-r--r--solenv/bin/par2script.pl117
-rwxr-xr-xsolenv/bin/patch_sanitizer.pl126
-rwxr-xr-xsolenv/bin/pchdelta4
-rwxr-xr-xsolenv/bin/pchdelta.py149
-rw-r--r--solenv/bin/pre2par.pl74
-rwxr-xr-xsolenv/bin/receditor6
-rwxr-xr-xsolenv/bin/relocate233
-rwxr-xr-xsolenv/bin/reportErrorCheckAPI.btm17
-rw-r--r--solenv/bin/rmdir.pl46
-rwxr-xr-xsolenv/bin/rpm-wrapper49
-rwxr-xr-xsolenv/bin/slfl.pl176
-rwxr-xr-xsolenv/bin/soirpm.sh32
-rw-r--r--solenv/bin/sort.pl50
-rw-r--r--solenv/bin/touch.pl42
-rw-r--r--solenv/bin/transform_description.pl138
-rw-r--r--solenv/bin/unxmap-to-macosx-explist.awk63
-rw-r--r--solenv/bin/update_module_ignore_lists.pl255
-rwxr-xr-xsolenv/bin/zipdep.pl337
-rw-r--r--solenv/config/sdev300.ini3559
-rw-r--r--solenv/config/ssolar.cmn329
-rw-r--r--solenv/inc/_cppunit.mk290
-rw-r--r--solenv/inc/_tg_app.mk2840
-rw-r--r--solenv/inc/_tg_def.mk2810
-rw-r--r--solenv/inc/_tg_lib.mk1020
-rw-r--r--solenv/inc/_tg_rslb.mk770
-rw-r--r--solenv/inc/_tg_scp.mk180
-rw-r--r--solenv/inc/_tg_sdi.mk270
-rw-r--r--solenv/inc/_tg_shl.mk6000
-rw-r--r--solenv/inc/_tg_srs.mk530
-rw-r--r--solenv/inc/_tg_zip.mk1230
-rw-r--r--solenv/inc/ant.mk100
-rw-r--r--solenv/inc/ant.properties11
-rw-r--r--solenv/inc/antsettings.mk87
-rw-r--r--solenv/inc/cppunit.mk80
-rw-r--r--solenv/inc/dummy.flt0
-rw-r--r--solenv/inc/extension_post.mk172
-rw-r--r--solenv/inc/extension_pre.mk59
-rw-r--r--solenv/inc/found_no.mk5
-rw-r--r--solenv/inc/javaunittest.mk106
-rw-r--r--solenv/inc/lang.mk57
-rw-r--r--solenv/inc/layout.mk32
-rw-r--r--solenv/inc/libs.mk527
-rw-r--r--solenv/inc/mime.types201
-rw-r--r--solenv/inc/minor.mk5
-rw-r--r--solenv/inc/os2.mk333
-rw-r--r--solenv/inc/os2gcci.mk288
-rw-r--r--solenv/inc/pkg_config.mk49
-rw-r--r--solenv/inc/postmac.h52
-rw-r--r--solenv/inc/postset.mk149
-rw-r--r--solenv/inc/preinclude.h38
-rw-r--r--solenv/inc/premac.h52
-rw-r--r--solenv/inc/pstrules.mk176
-rw-r--r--solenv/inc/rules.mk804
-rw-r--r--solenv/inc/sc.mk28
-rw-r--r--solenv/inc/scpre.mk50
-rw-r--r--solenv/inc/set_ext.mk37
-rwxr-xr-xsolenv/inc/set_wntx64.mk202
-rw-r--r--solenv/inc/settings.mk1353
-rw-r--r--solenv/inc/shlinfo.rc113
-rw-r--r--solenv/inc/startup/AIX/macros.mk2
-rw-r--r--solenv/inc/startup/FREEBSD/macros.mk2
-rw-r--r--solenv/inc/startup/HPUX/macros.mk2
-rw-r--r--solenv/inc/startup/IRIX/macros.mk2
-rw-r--r--solenv/inc/startup/LINUX/macros.mk2
-rw-r--r--solenv/inc/startup/MACOSX/macros.mk2
-rw-r--r--solenv/inc/startup/NETBSD/macros.mk2
-rw-r--r--solenv/inc/startup/OS2/macros.mk73
-rw-r--r--solenv/inc/startup/Readme9
-rw-r--r--solenv/inc/startup/SOLARIS/macros.mk2
-rw-r--r--solenv/inc/startup/UNIX/macros.mk19
-rw-r--r--solenv/inc/startup/startup.mk102
-rw-r--r--solenv/inc/startup/summary3
-rw-r--r--solenv/inc/startup/wnt/macros.mk55
-rw-r--r--solenv/inc/starview.hid304
-rw-r--r--solenv/inc/target.mk2116
-rw-r--r--solenv/inc/templates/extension_tmpl.mk153
-rw-r--r--solenv/inc/tg_app.mk316
-rw-r--r--solenv/inc/tg_compv.mk144
-rw-r--r--solenv/inc/tg_config.mk200
-rw-r--r--solenv/inc/tg_def.mk313
-rw-r--r--solenv/inc/tg_dep.mk96
-rw-r--r--solenv/inc/tg_ext.mk366
-rw-r--r--solenv/inc/tg_help.mk82
-rw-r--r--solenv/inc/tg_jar.mk89
-rw-r--r--solenv/inc/tg_java.mk84
-rw-r--r--solenv/inc/tg_javav.mk53
-rw-r--r--solenv/inc/tg_lib.mk134
-rw-r--r--solenv/inc/tg_merge.mk66
-rw-r--r--solenv/inc/tg_moz.mk89
-rw-r--r--solenv/inc/tg_obj.mk94
-rw-r--r--solenv/inc/tg_res.mk43
-rw-r--r--solenv/inc/tg_rslb.mk108
-rw-r--r--solenv/inc/tg_scp.mk50
-rw-r--r--solenv/inc/tg_sdi.mk59
-rw-r--r--solenv/inc/tg_shl.mk639
-rw-r--r--solenv/inc/tg_slo.mk98
-rw-r--r--solenv/inc/tg_srs.mk85
-rw-r--r--solenv/inc/tg_wntx64.mk514
-rw-r--r--solenv/inc/tg_yxx.mk48
-rw-r--r--solenv/inc/tg_zip.mk154
-rw-r--r--solenv/inc/trustedinfo.manifest11
-rw-r--r--solenv/inc/udkversion.mk33
-rw-r--r--solenv/inc/unitools.mk201
-rw-r--r--solenv/inc/unx.mk214
-rw-r--r--solenv/inc/unxaixp.mk113
-rw-r--r--solenv/inc/unxbsda.mk99
-rw-r--r--solenv/inc/unxbsdi.mk179
-rw-r--r--solenv/inc/unxbsdi2.mk198
-rw-r--r--solenv/inc/unxbsds.mk179
-rw-r--r--solenv/inc/unxfbsd.mk229
-rw-r--r--solenv/inc/unxfbsdi.mk46
-rw-r--r--solenv/inc/unxfbsdx.mk49
-rw-r--r--solenv/inc/unxhpgr.mk133
-rw-r--r--solenv/inc/unxhpxr.mk131
-rw-r--r--solenv/inc/unxlng.mk257
-rw-r--r--solenv/inc/unxlnga.mk33
-rw-r--r--solenv/inc/unxlnghppa.mk35
-rw-r--r--solenv/inc/unxlngi.mk34
-rw-r--r--solenv/inc/unxlngm68k.mk37
-rw-r--r--solenv/inc/unxlngmips.mk33
-rw-r--r--solenv/inc/unxlngppc.mk37
-rw-r--r--solenv/inc/unxlngppc64.mk34
-rw-r--r--solenv/inc/unxlngr.mk34
-rw-r--r--solenv/inc/unxlngs.mk36
-rw-r--r--solenv/inc/unxlngs390.mk36
-rw-r--r--solenv/inc/unxlngs390x.mk33
-rw-r--r--solenv/inc/unxlngx.mk35
-rw-r--r--solenv/inc/unxmacx.mk302
-rw-r--r--solenv/inc/unxmacxi.mk58
-rw-r--r--solenv/inc/unxmacxp.mk37
-rw-r--r--solenv/inc/unxscoi.mk140
-rw-r--r--solenv/inc/unxsogi.mk141
-rw-r--r--solenv/inc/unxsogs.mk140
-rw-r--r--solenv/inc/unxsoli4.mk240
-rw-r--r--solenv/inc/unxsols4.mk246
-rw-r--r--solenv/inc/unxsolu4.mk240
-rw-r--r--solenv/inc/verinfo.hrc229
-rw-r--r--solenv/inc/version.hrc80
-rw-r--r--solenv/inc/version_so.hrc79
-rw-r--r--solenv/inc/wnt.mk77
-rwxr-xr-xsolenv/inc/wntgcci.mk217
-rw-r--r--solenv/inc/wntmsci10.mk344
-rwxr-xr-xsolenv/inc/wntmsci11.mk380
-rw-r--r--solenv/makefile.mk40
-rw-r--r--solenv/prj/build.lst3
-rw-r--r--solenv/prj/d.lst0
-rwxr-xr-xsolenv/src/component.map8
-rw-r--r--solenv/src/default_description.xml15
-rw-r--r--solenv/src/solaris_noexstk.map4
-rwxr-xr-xsolenv/src/unloadablecomponent.map9
-rw-r--r--solenv/src/version.c79
-rw-r--r--solenv/unxmacxp/inc/poll.h173
-rwxr-xr-xsoltools/HIDCompiler/hidclex.l951
-rw-r--r--soltools/HIDCompiler/makefile.mk63
-rw-r--r--soltools/HIDCompiler/wrap_hidclex.cxx31
-rw-r--r--soltools/adjustvisibility/adjustvisibility.cxx311
-rw-r--r--soltools/adjustvisibility/makefile.mk59
-rw-r--r--soltools/checkdll/checkdll.c97
-rw-r--r--soltools/checkdll/makefile.mk58
-rw-r--r--soltools/cpp/Test.txt101
-rw-r--r--soltools/cpp/_cpp.c383
-rw-r--r--soltools/cpp/_eval.c766
-rw-r--r--soltools/cpp/_getopt.c71
-rw-r--r--soltools/cpp/_include.c235
-rw-r--r--soltools/cpp/_lex.c688
-rw-r--r--soltools/cpp/_macro.c756
-rw-r--r--soltools/cpp/_mcrvalid.c129
-rw-r--r--soltools/cpp/_nlist.c120
-rw-r--r--soltools/cpp/_tokens.c535
-rw-r--r--soltools/cpp/_unix.c224
-rw-r--r--soltools/cpp/cpp.h242
-rw-r--r--soltools/cpp/makefile.mk68
-rw-r--r--soltools/giparser/gen_info.cxx88
-rw-r--r--soltools/giparser/gi_list.cxx234
-rw-r--r--soltools/giparser/gi_parse.cxx407
-rw-r--r--soltools/giparser/makefile.mk62
-rw-r--r--soltools/giparser/st_gilrw.cxx180
-rw-r--r--soltools/inc/gen_info.hxx89
-rw-r--r--soltools/inc/gi_list.hxx215
-rw-r--r--soltools/inc/gi_parse.hxx165
-rw-r--r--soltools/inc/gilacces.hxx104
-rw-r--r--soltools/inc/pch/precompiled_soltools.cxx29
-rw-r--r--soltools/inc/pch/precompiled_soltools.hxx32
-rw-r--r--soltools/inc/simstr.hxx223
-rw-r--r--soltools/inc/st_gilrw.hxx125
-rw-r--r--soltools/inc/st_list.hxx330
-rw-r--r--soltools/inc/st_types.hxx40
-rw-r--r--soltools/javadep/javadep.c904
-rw-r--r--soltools/javadep/makefile.mk50
-rw-r--r--soltools/ldump/hashtbl.cxx458
-rw-r--r--soltools/ldump/hashtbl.hxx111
-rw-r--r--soltools/ldump/ldump.cxx758
-rw-r--r--soltools/ldump/ldump.hxx78
-rw-r--r--soltools/ldump/makefile.mk59
-rwxr-xr-xsoltools/mkdepend/collectdircontent.cxx83
-rw-r--r--soltools/mkdepend/collectdircontent.hxx58
-rw-r--r--soltools/mkdepend/cppsetup.c230
-rw-r--r--soltools/mkdepend/def.h175
-rw-r--r--soltools/mkdepend/ifparser.c458
-rw-r--r--soltools/mkdepend/ifparser.h76
-rw-r--r--soltools/mkdepend/imakemdep.h730
-rw-r--r--soltools/mkdepend/include.c326
-rw-r--r--soltools/mkdepend/main.c831
-rw-r--r--soltools/mkdepend/makefile.mk82
-rw-r--r--soltools/mkdepend/mkdepend.man368
-rw-r--r--soltools/mkdepend/parse.c608
-rw-r--r--soltools/mkdepend/pr.c136
-rw-r--r--soltools/prj/build.lst14
-rw-r--r--soltools/prj/d.lst13
-rw-r--r--soltools/support/makefile.mk55
-rw-r--r--soltools/support/simstr.cxx833
-rw-r--r--soltools/testSHL/inc/tlog.hxx100
-rw-r--r--soltools/testSHL/inc/tstMgr.hxx73
-rw-r--r--soltools/testSHL/inc/tutil.hxx49
-rw-r--r--soltools/testSHL/makefile.mk52
-rw-r--r--soltools/testSHL/testshl.cxx98
-rw-r--r--soltools/testSHL/util/makefile.mk45
-rw-r--r--soltools/testSHL/util/tlog.cxx108
-rw-r--r--soltools/testSHL/util/tstMgr.cxx164
-rw-r--r--soltools/testSHL/util/tutil.cxx147
-rw-r--r--soltools/testhxx/create.pl145
-rw-r--r--soltools/testhxx/makefile.mk59
-rw-r--r--soltools/testhxx/testhxx.cxx32
-rw-r--r--soltools/util/makefile.pmk48
-rw-r--r--soltools/winunistd/makefile.mk52
-rw-r--r--soltools/winunistd/unistd.h4
-rw-r--r--sot/inc/absdev.hxx48
-rw-r--r--sot/inc/agg.hxx68
-rw-r--r--sot/inc/clsids.hxx33
-rw-r--r--sot/inc/filelist.hxx76
-rw-r--r--sot/inc/makefile.mk48
-rw-r--r--sot/inc/pch/precompiled_sot.cxx29
-rw-r--r--sot/inc/pch/precompiled_sot.hxx32
-rw-r--r--sot/inc/sot/exchange.hxx253
-rw-r--r--sot/inc/sot/factory.hxx91
-rw-r--r--sot/inc/sot/formats.hxx191
-rw-r--r--sot/inc/sot/object.hxx470
-rw-r--r--sot/inc/sot/sotdata.hxx60
-rw-r--r--sot/inc/sot/sotdllapi.h41
-rw-r--r--sot/inc/sot/sotref.hxx77
-rw-r--r--sot/inc/sot/storage.hxx272
-rw-r--r--sot/inc/stg.hxx398
-rw-r--r--sot/inc/storinfo.hxx72
-rw-r--r--sot/prj/build.lst8
-rw-r--r--sot/prj/d.lst27
-rw-r--r--sot/qa/complex/olesimplestorage/OLESimpleStorageTest.java5
-rw-r--r--sot/qa/complex/olesimplestorage/OLESimpleStorageUnitTest.java67
-rw-r--r--sot/qa/complex/olesimplestorage/Test01.java126
-rw-r--r--sot/qa/complex/olesimplestorage/TestHelper.java26
-rw-r--r--sot/qa/complex/olesimplestorage/makefile.mk84
-rw-r--r--sot/source/base/exchange.cxx508
-rw-r--r--sot/source/base/factory.cxx406
-rw-r--r--sot/source/base/filelist.cxx199
-rw-r--r--sot/source/base/formats.cxx1663
-rw-r--r--sot/source/base/makefile.mk58
-rw-r--r--sot/source/base/object.cxx489
-rw-r--r--sot/source/sdstor/makefile.mk64
-rw-r--r--sot/source/sdstor/sdintern.hdb22
-rw-r--r--sot/source/sdstor/stg.cxx1091
-rw-r--r--sot/source/sdstor/stgavl.cxx419
-rw-r--r--sot/source/sdstor/stgavl.hxx79
-rw-r--r--sot/source/sdstor/stgcache.cxx546
-rw-r--r--sot/source/sdstor/stgcache.hxx132
-rw-r--r--sot/source/sdstor/stgdir.cxx1054
-rw-r--r--sot/source/sdstor/stgdir.hxx132
-rw-r--r--sot/source/sdstor/stgelem.cxx425
-rw-r--r--sot/source/sdstor/stgelem.hxx166
-rw-r--r--sot/source/sdstor/stgio.cxx389
-rw-r--r--sot/source/sdstor/stgio.hxx80
-rw-r--r--sot/source/sdstor/stgole.cxx230
-rw-r--r--sot/source/sdstor/stgole.hxx77
-rw-r--r--sot/source/sdstor/stgstrms.cxx1247
-rw-r--r--sot/source/sdstor/stgstrms.hxx170
-rw-r--r--sot/source/sdstor/storage.cxx1563
-rw-r--r--sot/source/sdstor/storinfo.cxx111
-rw-r--r--sot/source/sdstor/ucbstorage.cxx3600
-rw-r--r--sot/source/sdstor/unostorageholder.cxx197
-rw-r--r--sot/source/sdstor/unostorageholder.hxx77
-rw-r--r--sot/source/unoolestorage/makefile.mk51
-rw-r--r--sot/source/unoolestorage/register.cxx101
-rw-r--r--sot/source/unoolestorage/xolesimplestorage.cxx811
-rw-r--r--sot/source/unoolestorage/xolesimplestorage.hxx195
-rw-r--r--sot/util/makefile.mk81
-rw-r--r--sot/util/makefile.pmk31
-rw-r--r--sot/util/sot.flt6
-rw-r--r--sot/workben/makefile.mk53
-rw-r--r--sot/workben/testsot.cxx55
-rw-r--r--splitbuild/base.lst1
-rw-r--r--splitbuild/binfilter.lst1
-rwxr-xr-xsplitbuild/bm4
-rw-r--r--splitbuild/build.lst1
-rw-r--r--splitbuild/calc.lst1
-rw-r--r--splitbuild/common.lst1
-rw-r--r--splitbuild/content.lst1
-rw-r--r--splitbuild/draw.lst1
-rw-r--r--splitbuild/extensions.lst1
-rw-r--r--splitbuild/extern.lst1
-rwxr-xr-xsplitbuild/filter.lst1
-rw-r--r--splitbuild/framework.lst1
-rw-r--r--splitbuild/gui.lst1
-rw-r--r--splitbuild/prj/build.lst1
-rw-r--r--splitbuild/prj/d.lst1
-rw-r--r--splitbuild/start.lst1
-rw-r--r--splitbuild/uno.lst1
-rw-r--r--splitbuild/writer.lst1
-rw-r--r--starmath/inc/action.hxx52
-rw-r--r--starmath/inc/applicat.hxx109
-rw-r--r--starmath/inc/config.hxx58
-rw-r--r--starmath/inc/dialog.hxx537
-rw-r--r--starmath/inc/document.hxx226
-rw-r--r--starmath/inc/edit.hxx151
-rw-r--r--starmath/inc/format.hxx167
-rw-r--r--starmath/inc/makefile.mk47
-rw-r--r--starmath/inc/node.hxx856
-rw-r--r--starmath/inc/parse.hxx269
-rw-r--r--starmath/inc/pch/precompiled_starmath.cxx29
-rw-r--r--starmath/inc/pch/precompiled_starmath.hxx32
-rw-r--r--starmath/inc/rect.hxx260
-rw-r--r--starmath/inc/smdll.hxx50
-rw-r--r--starmath/inc/smmod.hxx182
-rw-r--r--starmath/inc/starmath.hrc766
-rw-r--r--starmath/inc/symbol.hxx229
-rw-r--r--starmath/inc/toolbox.hxx89
-rw-r--r--starmath/inc/types.hxx204
-rw-r--r--starmath/inc/unomodel.hxx109
-rw-r--r--starmath/inc/utility.hxx380
-rw-r--r--starmath/inc/view.hxx298
-rw-r--r--starmath/prj/build.lst8
-rw-r--r--starmath/prj/d.lst24
-rw-r--r--starmath/qa/unoapi/knownissues.xcl15
-rw-r--r--starmath/qa/unoapi/makefile.mk40
-rw-r--r--starmath/qa/unoapi/sm.sce9
-rw-r--r--starmath/sdi/makefile.mk58
-rw-r--r--starmath/sdi/smath.sdi964
-rw-r--r--starmath/sdi/smitems.sdi595
-rw-r--r--starmath/sdi/smslots.sdi332
-rw-r--r--starmath/source/accessibility.cxx2064
-rw-r--r--starmath/source/accessibility.hxx410
-rw-r--r--starmath/source/action.cxx67
-rw-r--r--starmath/source/cfgitem.cxx1283
-rw-r--r--starmath/source/cfgitem.hxx214
-rw-r--r--starmath/source/commands.src1554
-rw-r--r--starmath/source/config.cxx128
-rw-r--r--starmath/source/detreg.cxx112
-rw-r--r--starmath/source/dialog.cxx2520
-rw-r--r--starmath/source/dialog.hrc51
-rw-r--r--starmath/source/document.cxx1409
-rw-r--r--starmath/source/edit.cxx964
-rw-r--r--starmath/source/eqnolefilehdr.cxx90
-rw-r--r--starmath/source/eqnolefilehdr.hxx63
-rw-r--r--starmath/source/format.cxx239
-rw-r--r--starmath/source/makefile.mk127
-rw-r--r--starmath/source/math_pch.cxx833
-rw-r--r--starmath/source/mathmlexport.cxx1565
-rw-r--r--starmath/source/mathmlexport.hxx143
-rw-r--r--starmath/source/mathmlimport.cxx3187
-rw-r--r--starmath/source/mathmlimport.hxx347
-rw-r--r--starmath/source/mathtype.cxx3533
-rw-r--r--starmath/source/mathtype.hxx174
-rw-r--r--starmath/source/menu_tmpl.src160
-rw-r--r--starmath/source/node.cxx2969
-rw-r--r--starmath/source/parse.cxx2475
-rw-r--r--starmath/source/rect.cxx776
-rw-r--r--starmath/source/register.cxx319
-rw-r--r--starmath/source/smdetect.cxx490
-rw-r--r--starmath/source/smdetect.hxx95
-rw-r--r--starmath/source/smdll.cxx112
-rw-r--r--starmath/source/smmod.cxx391
-rw-r--r--starmath/source/smres.src3580
-rw-r--r--starmath/source/symbol.cxx613
-rw-r--r--starmath/source/symbol.src345
-rw-r--r--starmath/source/toolbox.cxx413
-rw-r--r--starmath/source/toolbox.hrc34
-rw-r--r--starmath/source/typemap.cxx150
-rw-r--r--starmath/source/types.cxx52
-rw-r--r--starmath/source/unodoc.cxx74
-rw-r--r--starmath/source/unomodel.cxx1132
-rw-r--r--starmath/source/utility.cxx381
-rw-r--r--starmath/source/view.cxx1896
-rw-r--r--starmath/uiconfig/smath/accelerator/en-GB/default.xml14
-rw-r--r--starmath/uiconfig/smath/accelerator/en-US/default.xml14
-rw-r--r--starmath/uiconfig/smath/menubar/menubar.xml119
-rw-r--r--starmath/uiconfig/smath/statusbar/statusbar.xml8
-rw-r--r--starmath/uiconfig/smath/toolbar/fullscreenbar.xml5
-rw-r--r--starmath/uiconfig/smath/toolbar/standardbar.xml26
-rw-r--r--starmath/uiconfig/smath/toolbar/toolbar.xml12
-rw-r--r--starmath/util/hidother.src117
-rw-r--r--starmath/util/makefile.mk114
-rw-r--r--starmath/util/sm.map8
-rw-r--r--starmath/util/smd.map8
-rw-r--r--starmath/xml/math.xml92
-rw-r--r--stax/makefile.mk69
-rw-r--r--stax/prj/build.lst2
-rw-r--r--stax/prj/d.lst1
-rw-r--r--stlport/STLport-4.0-sunstudio12u1.patch21
-rw-r--r--stlport/STLport-4.0.patch4926
-rw-r--r--stlport/STLport-4.5-0119.patch1328
-rw-r--r--stlport/STLport-4.5-gcc43_warnings.patch113
-rw-r--r--stlport/STLport-4.5.patch1047
-rw-r--r--stlport/dos_lineends.patch60
-rw-r--r--stlport/download/STLport-4.0.tar.gzbin0 -> 686207 bytes
-rw-r--r--stlport/download/STLport-4.5-0119.tar.gzbin0 -> 2424604 bytes
-rw-r--r--stlport/download/STLport-4.5.tar.gzbin0 -> 728789 bytes
-rw-r--r--stlport/makefile.mk254
-rw-r--r--stlport/prj/build.lst2
-rw-r--r--stlport/prj/d.lst24
-rw-r--r--stlport/systemstl/functional62
-rw-r--r--stlport/systemstl/hash_map81
-rw-r--r--stlport/systemstl/hash_set52
-rw-r--r--stlport/systemstl/numeric53
-rw-r--r--stlport/systemstl/rope48
-rw-r--r--stlport/systemstl/slist45
-rw-r--r--stlport/systemstl/vector49
-rw-r--r--stlport/win32_custom.bat11
-rwxr-xr-xstlport/win32_custom.sh9
-rwxr-xr-xstlport/win32_sdk.bat11
-rw-r--r--stlport/win32_sdk.sh9
-rw-r--r--stoc/inc/bootstrapservices.hxx111
-rw-r--r--stoc/inc/makefile.mk47
-rw-r--r--stoc/inc/pch/precompiled_stoc.cxx29
-rw-r--r--stoc/inc/pch/precompiled_stoc.hxx289
-rw-r--r--stoc/inc/stocservices.hxx94
-rw-r--r--stoc/prj/build.lst24
-rw-r--r--stoc/prj/d.lst18
-rw-r--r--stoc/source/bootstrap/bootstrap.xml358
-rw-r--r--stoc/source/bootstrap/makefile.mk50
-rw-r--r--stoc/source/bootstrap/services.cxx147
-rw-r--r--stoc/source/corereflection/base.hxx456
-rw-r--r--stoc/source/corereflection/corefl.map9
-rw-r--r--stoc/source/corereflection/corefl.xml44
-rw-r--r--stoc/source/corereflection/crarray.cxx232
-rw-r--r--stoc/source/corereflection/crbase.cxx291
-rw-r--r--stoc/source/corereflection/crcomp.cxx405
-rw-r--r--stoc/source/corereflection/crefl.cxx546
-rw-r--r--stoc/source/corereflection/crenum.cxx247
-rw-r--r--stoc/source/corereflection/criface.cxx992
-rw-r--r--stoc/source/corereflection/lrucache.hxx243
-rw-r--r--stoc/source/corereflection/makefile.mk75
-rw-r--r--stoc/source/cppumaker.mk41
-rw-r--r--stoc/source/defaultregistry/defaultregistry.cxx1423
-rw-r--r--stoc/source/defaultregistry/makefile.mk46
-rw-r--r--stoc/source/implementationregistration/implreg.cxx1930
-rw-r--r--stoc/source/implementationregistration/makefile.mk47
-rw-r--r--stoc/source/implementationregistration/mergekeys.cxx186
-rw-r--r--stoc/source/implementationregistration/mergekeys.hxx52
-rw-r--r--stoc/source/inspect/insp.xml59
-rw-r--r--stoc/source/inspect/introspection.cxx3118
-rw-r--r--stoc/source/inspect/introspection.map8
-rw-r--r--stoc/source/inspect/makefile.mk66
-rw-r--r--stoc/source/invocation/inv.map9
-rw-r--r--stoc/source/invocation/inv.xml77
-rw-r--r--stoc/source/invocation/invocation.cxx1268
-rw-r--r--stoc/source/invocation/makefile.mk65
-rw-r--r--stoc/source/invocation_adapterfactory/iafactory.cxx1033
-rw-r--r--stoc/source/invocation_adapterfactory/invadp.map9
-rw-r--r--stoc/source/invocation_adapterfactory/invadp.xml41
-rw-r--r--stoc/source/invocation_adapterfactory/makefile.mk65
-rw-r--r--stoc/source/javaloader/javaloader.cxx486
-rw-r--r--stoc/source/javaloader/javaloader.map8
-rw-r--r--stoc/source/javaloader/javaloader.xml39
-rw-r--r--stoc/source/javaloader/makefile.mk72
-rw-r--r--stoc/source/javavm/interact.cxx125
-rw-r--r--stoc/source/javavm/interact.hxx75
-rw-r--r--stoc/source/javavm/javavm.cxx1776
-rw-r--r--stoc/source/javavm/javavm.hxx172
-rw-r--r--stoc/source/javavm/jen.map8
-rw-r--r--stoc/source/javavm/jen.xml70
-rw-r--r--stoc/source/javavm/jvmargs.cxx66
-rw-r--r--stoc/source/javavm/jvmargs.hxx58
-rw-r--r--stoc/source/javavm/makefile.mk87
-rw-r--r--stoc/source/loader/dllcomponentloader.cxx261
-rw-r--r--stoc/source/loader/makefile.mk47
-rw-r--r--stoc/source/module-description.dtd54
-rw-r--r--stoc/source/namingservice/makefile.mk66
-rw-r--r--stoc/source/namingservice/namingservice.cxx252
-rw-r--r--stoc/source/namingservice/namingservice.map9
-rw-r--r--stoc/source/namingservice/namingservice.xml37
-rw-r--r--stoc/source/proxy_factory/makefile.mk65
-rw-r--r--stoc/source/proxy_factory/proxyfac.cxx544
-rw-r--r--stoc/source/proxy_factory/proxyfac.map9
-rw-r--r--stoc/source/proxy_factory/proxyfac.xml37
-rw-r--r--stoc/source/registry_tdprovider/base.hxx647
-rw-r--r--stoc/source/registry_tdprovider/functiondescription.cxx115
-rw-r--r--stoc/source/registry_tdprovider/functiondescription.hxx86
-rw-r--r--stoc/source/registry_tdprovider/makefile.mk61
-rw-r--r--stoc/source/registry_tdprovider/methoddescription.cxx144
-rw-r--r--stoc/source/registry_tdprovider/methoddescription.hxx82
-rw-r--r--stoc/source/registry_tdprovider/rdbtdp_tdenumeration.cxx643
-rw-r--r--stoc/source/registry_tdprovider/rdbtdp_tdenumeration.hxx116
-rw-r--r--stoc/source/registry_tdprovider/structtypedescription.cxx139
-rw-r--r--stoc/source/registry_tdprovider/structtypedescription.hxx105
-rw-r--r--stoc/source/registry_tdprovider/td.cxx80
-rw-r--r--stoc/source/registry_tdprovider/tdcomp.cxx187
-rw-r--r--stoc/source/registry_tdprovider/tdconsts.cxx110
-rw-r--r--stoc/source/registry_tdprovider/tdef.cxx82
-rw-r--r--stoc/source/registry_tdprovider/tdenum.cxx135
-rw-r--r--stoc/source/registry_tdprovider/tdiface.cxx585
-rw-r--r--stoc/source/registry_tdprovider/tdmodule.cxx126
-rw-r--r--stoc/source/registry_tdprovider/tdprop.cxx68
-rw-r--r--stoc/source/registry_tdprovider/tdprovider.cxx632
-rw-r--r--stoc/source/registry_tdprovider/tdservice.cxx565
-rw-r--r--stoc/source/registry_tdprovider/tdsingleton.cxx132
-rw-r--r--stoc/source/security/access_controller.cxx1061
-rw-r--r--stoc/source/security/file_policy.cxx604
-rw-r--r--stoc/source/security/lru_cache.h279
-rw-r--r--stoc/source/security/makefile.mk62
-rw-r--r--stoc/source/security/permissions.cxx666
-rw-r--r--stoc/source/security/permissions.h102
-rw-r--r--stoc/source/servicemanager/makefile.mk47
-rw-r--r--stoc/source/servicemanager/servicemanager.cxx2059
-rw-r--r--stoc/source/simpleregistry/makefile.mk46
-rw-r--r--stoc/source/simpleregistry/simpleregistry.cxx1306
-rw-r--r--stoc/source/stocservices/makefile.mk49
-rw-r--r--stoc/source/stocservices/stocserv.xml98
-rw-r--r--stoc/source/stocservices/stocservices.cxx117
-rw-r--r--stoc/source/tdmanager/lrucache.hxx247
-rw-r--r--stoc/source/tdmanager/makefile.mk49
-rw-r--r--stoc/source/tdmanager/tdmgr.cxx1163
-rw-r--r--stoc/source/tdmanager/tdmgr_check.cxx556
-rw-r--r--stoc/source/tdmanager/tdmgr_common.hxx60
-rw-r--r--stoc/source/tdmanager/tdmgr_tdenumeration.cxx187
-rw-r--r--stoc/source/tdmanager/tdmgr_tdenumeration.hxx89
-rw-r--r--stoc/source/typeconv/convert.cxx963
-rw-r--r--stoc/source/typeconv/makefile.mk48
-rw-r--r--stoc/source/uriproc/ExternalUriReferenceTranslator.cxx240
-rw-r--r--stoc/source/uriproc/ExternalUriReferenceTranslator.hxx59
-rw-r--r--stoc/source/uriproc/UriReference.cxx206
-rw-r--r--stoc/source/uriproc/UriReference.hxx108
-rw-r--r--stoc/source/uriproc/UriReferenceFactory.cxx724
-rw-r--r--stoc/source/uriproc/UriReferenceFactory.hxx59
-rw-r--r--stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTexpand.cxx268
-rw-r--r--stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTexpand.hxx62
-rw-r--r--stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.cxx485
-rw-r--r--stoc/source/uriproc/UriSchemeParser_vndDOTsunDOTstarDOTscript.hxx61
-rw-r--r--stoc/source/uriproc/VndSunStarPkgUrlReferenceFactory.cxx167
-rw-r--r--stoc/source/uriproc/VndSunStarPkgUrlReferenceFactory.hxx59
-rw-r--r--stoc/source/uriproc/makefile.mk53
-rw-r--r--stoc/source/uriproc/supportsService.cxx51
-rw-r--r--stoc/source/uriproc/supportsService.hxx43
-rw-r--r--stoc/test/excomp/example/ExampleComponent1.idl43
-rw-r--r--stoc/test/excomp/example/ExampleComponent2.idl43
-rw-r--r--stoc/test/excomp/example/XTest.idl49
-rw-r--r--stoc/test/excomp/excomp.cxx136
-rw-r--r--stoc/test/excomp/excomp1.cxx215
-rw-r--r--stoc/test/excomp/excomp1.xml33
-rw-r--r--stoc/test/excomp/excomp2.cxx286
-rw-r--r--stoc/test/excomp/excomp2.xml33
-rw-r--r--stoc/test/excomp/exports.dxp3
-rw-r--r--stoc/test/excomp/makefile.mk130
-rw-r--r--stoc/test/javavm/jvm_interaction/interactionhandler.cxx205
-rw-r--r--stoc/test/javavm/jvm_interaction/makefile.mk81
-rw-r--r--stoc/test/javavm/makefile.mk73
-rw-r--r--stoc/test/javavm/testapplet/TestApplet.html19
-rw-r--r--stoc/test/javavm/testapplet/TestApplet.java58
-rw-r--r--stoc/test/javavm/testapplet/makefile.mk55
-rw-r--r--stoc/test/javavm/testcomponent/TestComponent.java128
-rw-r--r--stoc/test/javavm/testcomponent/makefile.mk58
-rw-r--r--stoc/test/javavm/testcomponent/manifest1
-rw-r--r--stoc/test/javavm/testjavavm.cxx202
-rw-r--r--stoc/test/javavm/testjavavm.java39
-rw-r--r--stoc/test/language_binding.idl177
-rw-r--r--stoc/test/makefile.mk223
-rw-r--r--stoc/test/mergekeys_.cxx31
-rw-r--r--stoc/test/registry_tdprovider/makefile.mk68
-rw-r--r--stoc/test/registry_tdprovider/readme.txt4
-rw-r--r--stoc/test/registry_tdprovider/testregistrytdprovider.cxx943
-rw-r--r--stoc/test/registry_tdprovider/testregistrytdprovider.gcc3.map38
-rw-r--r--stoc/test/registry_tdprovider/testregistrytdprovider.map36
-rw-r--r--stoc/test/registry_tdprovider/types.idl112
-rw-r--r--stoc/test/security/makefile.mk59
-rw-r--r--stoc/test/security/test_security.cxx523
-rw-r--r--stoc/test/security/test_security.ini6
-rw-r--r--stoc/test/security/test_security.policy37
-rw-r--r--stoc/test/security/test_security_singleuser.ini6
-rw-r--r--stoc/test/tdmanager/makefile.mk80
-rw-r--r--stoc/test/tdmanager/readme.txt4
-rw-r--r--stoc/test/tdmanager/testtdmanager.cxx374
-rw-r--r--stoc/test/tdmanager/testtdmanager.gcc3.map38
-rw-r--r--stoc/test/tdmanager/testtdmanager.map36
-rw-r--r--stoc/test/tdmanager/types.idl45
-rw-r--r--stoc/test/tdmanager/types2_incomp.idl38
-rw-r--r--stoc/test/tdmanager/types3_incomp.idl33
-rw-r--r--stoc/test/tdmanager/types4_incomp.idl42
-rw-r--r--stoc/test/tdmanager/types5.idl45
-rw-r--r--stoc/test/tdmanager/types5_incomp.idl43
-rw-r--r--stoc/test/tdmanager/types6_incomp.idl43
-rw-r--r--stoc/test/testconv.cxx705
-rw-r--r--stoc/test/testcorefl.cxx412
-rw-r--r--stoc/test/testcorefl.idl102
-rw-r--r--stoc/test/testiadapter.cxx1069
-rw-r--r--stoc/test/testintrosp.cxx1617
-rw-r--r--stoc/test/testintrosp.idl220
-rw-r--r--stoc/test/testloader.cxx137
-rw-r--r--stoc/test/testproxyfac.cxx379
-rw-r--r--stoc/test/testregistry.cxx696
-rw-r--r--stoc/test/testsmgr.cxx105
-rw-r--r--stoc/test/testsmgr2.cxx118
-rw-r--r--stoc/test/testsmgr_cpnt.cxx472
-rw-r--r--stoc/test/testsmgr_cpnt.map9
-rw-r--r--stoc/test/uriproc/makefile.mk71
-rw-r--r--stoc/test/uriproc/test_uriproc.cxx1011
-rw-r--r--stoc/test/uriproc/version.map34
-rw-r--r--stoc/unosdk.mk34
-rw-r--r--stoc/util/bootstrap.map9
-rw-r--r--stoc/util/makefile.mk96
-rw-r--r--stoc/util/stocservices.map9
-rw-r--r--store/inc/makefile.mk47
-rw-r--r--store/inc/pch/precompiled_store.cxx29
-rw-r--r--store/inc/pch/precompiled_store.hxx32
-rw-r--r--store/inc/store/store.h411
-rw-r--r--store/inc/store/store.hxx387
-rw-r--r--store/inc/store/store.inl451
-rw-r--r--store/inc/store/types.h167
-rw-r--r--store/prj/build.lst5
-rw-r--r--store/prj/d.lst13
-rw-r--r--store/source/lockbyte.cxx981
-rw-r--r--store/source/lockbyte.hxx214
-rw-r--r--store/source/makefile.mk71
-rw-r--r--store/source/object.cxx112
-rw-r--r--store/source/object.hxx138
-rw-r--r--store/source/storbase.cxx197
-rw-r--r--store/source/storbase.hxx971
-rw-r--r--store/source/storbios.cxx1562
-rw-r--r--store/source/storbios.hxx294
-rw-r--r--store/source/storcach.cxx561
-rw-r--r--store/source/storcach.hxx112
-rw-r--r--store/source/stordata.cxx1204
-rw-r--r--store/source/stordata.hxx870
-rw-r--r--store/source/stordir.cxx241
-rw-r--r--store/source/stordir.hxx149
-rw-r--r--store/source/store.cxx765
-rw-r--r--store/source/storlckb.cxx451
-rw-r--r--store/source/storlckb.hxx171
-rw-r--r--store/source/storpage.cxx1063
-rw-r--r--store/source/storpage.hxx226
-rw-r--r--store/source/stortree.cxx685
-rw-r--r--store/source/stortree.hxx345
-rw-r--r--store/util/makefile.mk79
-rw-r--r--store/util/store.map31
-rw-r--r--store/util/store.xml7
-rw-r--r--store/version.mk40
-rw-r--r--store/workben/makefile.mk106
-rw-r--r--store/workben/t_base.cxx382
-rw-r--r--store/workben/t_file.cxx244
-rw-r--r--store/workben/t_leak.cxx19
-rw-r--r--store/workben/t_page.cxx1574
-rw-r--r--store/workben/t_store.cxx605
-rw-r--r--svl/inc/PasswordHelper.hxx54
-rw-r--r--svl/inc/adrparse.hxx107
-rw-r--r--svl/inc/broadcast.hxx67
-rw-r--r--svl/inc/cntnrsrt.hxx174
-rw-r--r--svl/inc/cntwids.hrc506
-rw-r--r--svl/inc/converter.hxx43
-rw-r--r--svl/inc/filenotation.hxx71
-rw-r--r--svl/inc/folderrestriction.hxx56
-rw-r--r--svl/inc/fstathelper.hxx65
-rw-r--r--svl/inc/inetdef.hxx29
-rw-r--r--svl/inc/inetmsg.hxx29
-rw-r--r--svl/inc/inetstrm.hxx29
-rw-r--r--svl/inc/instrm.hxx80
-rw-r--r--svl/inc/listener.hxx65
-rw-r--r--svl/inc/listeneriter.hxx79
-rw-r--r--svl/inc/lngmisc.hxx73
-rw-r--r--svl/inc/makefile.mk48
-rw-r--r--svl/inc/nfsymbol.hxx69
-rw-r--r--svl/inc/numuno.hxx99
-rw-r--r--svl/inc/outstrm.hxx66
-rw-r--r--svl/inc/pch/precompiled_svl.cxx29
-rw-r--r--svl/inc/pch/precompiled_svl.hxx432
-rw-r--r--svl/inc/pickerhelper.hxx69
-rw-r--r--svl/inc/pickerhistory.hxx51
-rw-r--r--svl/inc/pickerhistoryaccess.hxx54
-rw-r--r--svl/inc/poolcach.hxx58
-rw-r--r--svl/inc/strmadpt.hxx135
-rw-r--r--svl/inc/stylepool.hxx100
-rw-r--r--svl/inc/svl/aeitem.hxx71
-rw-r--r--svl/inc/svl/asiancfg.hxx69
-rw-r--r--svl/inc/svl/brdcst.hxx75
-rw-r--r--svl/inc/svl/cancel.hxx142
-rw-r--r--svl/inc/svl/cenumitm.hxx177
-rw-r--r--svl/inc/svl/cintitem.hxx283
-rw-r--r--svl/inc/svl/cjkoptions.hxx79
-rw-r--r--svl/inc/svl/cnclhint.hxx48
-rw-r--r--svl/inc/svl/cntwall.hxx80
-rw-r--r--svl/inc/svl/ctloptions.hxx94
-rw-r--r--svl/inc/svl/ctypeitm.hxx82
-rw-r--r--svl/inc/svl/custritm.hxx92
-rw-r--r--svl/inc/svl/dateitem.hxx106
-rw-r--r--svl/inc/svl/documentlockfile.hxx71
-rw-r--r--svl/inc/svl/eitem.hxx69
-rw-r--r--svl/inc/svl/filerec.hxx1084
-rw-r--r--svl/inc/svl/flagitem.hxx80
-rw-r--r--svl/inc/svl/globalnameitem.hxx59
-rw-r--r--svl/inc/svl/hint.hxx72
-rw-r--r--svl/inc/svl/httpcook.hxx152
-rw-r--r--svl/inc/svl/ilstitem.hxx63
-rw-r--r--svl/inc/svl/imageitm.hxx59
-rw-r--r--svl/inc/svl/inethist.hxx132
-rw-r--r--svl/inc/svl/inettype.hxx476
-rw-r--r--svl/inc/svl/intitem.hxx173
-rw-r--r--svl/inc/svl/isethint.hxx55
-rw-r--r--svl/inc/svl/itemiter.hxx68
-rw-r--r--svl/inc/svl/itempool.hxx303
-rw-r--r--svl/inc/svl/itemprop.hxx219
-rw-r--r--svl/inc/svl/itemset.hxx213
-rw-r--r--svl/inc/svl/languageoptions.hxx128
-rw-r--r--svl/inc/svl/lckbitem.hxx65
-rw-r--r--svl/inc/svl/lockfilecommon.hxx80
-rw-r--r--svl/inc/svl/lstner.hxx78
-rw-r--r--svl/inc/svl/macitem.hxx209
-rw-r--r--svl/inc/svl/mailenum.hxx95
-rw-r--r--svl/inc/svl/memberid.hrc69
-rw-r--r--svl/inc/svl/metitem.hxx53
-rw-r--r--svl/inc/svl/nfkeytab.hxx117
-rw-r--r--svl/inc/svl/nfversi.hxx69
-rw-r--r--svl/inc/svl/nranges.hxx94
-rw-r--r--svl/inc/svl/ondemand.hxx465
-rw-r--r--svl/inc/svl/ownlist.hxx99
-rw-r--r--svl/inc/svl/poolitem.hxx488
-rw-r--r--svl/inc/svl/ptitem.hxx77
-rw-r--r--svl/inc/svl/rectitem.hxx77
-rw-r--r--svl/inc/svl/restrictedpaths.hxx82
-rw-r--r--svl/inc/svl/rngitem.hxx114
-rw-r--r--svl/inc/svl/sfontitm.hxx241
-rw-r--r--svl/inc/svl/sharecontrolfile.hxx85
-rw-r--r--svl/inc/svl/slstitm.hxx84
-rw-r--r--svl/inc/svl/smplhint.hxx99
-rw-r--r--svl/inc/svl/solar.hrc341
-rw-r--r--svl/inc/svl/srchcfg.hxx82
-rw-r--r--svl/inc/svl/srchdefs.hxx49
-rw-r--r--svl/inc/svl/srchitem.hxx293
-rw-r--r--svl/inc/svl/stritem.hxx55
-rw-r--r--svl/inc/svl/style.hrc39
-rw-r--r--svl/inc/svl/style.hxx397
-rw-r--r--svl/inc/svl/svarray.hxx1053
-rw-r--r--svl/inc/svl/svdde.hxx480
-rw-r--r--svl/inc/svl/svldata.hxx72
-rw-r--r--svl/inc/svl/svldllapi.h41
-rw-r--r--svl/inc/svl/svstdarr.hxx271
-rw-r--r--svl/inc/svl/svtools.hrc513
-rw-r--r--svl/inc/svl/szitem.hxx77
-rw-r--r--svl/inc/svl/undo.hxx237
-rw-r--r--svl/inc/svl/urlfilter.hxx63
-rw-r--r--svl/inc/svl/visitem.hxx93
-rw-r--r--svl/inc/svl/zforlist.hxx1011
-rw-r--r--svl/inc/svl/zformat.hxx586
-rw-r--r--svl/inc/urihelper.hxx235
-rw-r--r--svl/inc/urlbmk.hxx69
-rw-r--r--svl/inc/whiter.hxx60
-rw-r--r--svl/inc/xmlement.hxx43
-rw-r--r--svl/prj/build.lst22
-rw-r--r--svl/prj/d.lst22
-rw-r--r--svl/qa/complex/ConfigItems/CheckConfigItems.java178
-rw-r--r--svl/qa/complex/ConfigItems/helper/AccessibilityOptTest.cxx392
-rw-r--r--svl/qa/complex/ConfigItems/helper/AccessibilityOptTest.hxx70
-rw-r--r--svl/qa/complex/ConfigItems/helper/ConfigItemTest.cxx245
-rw-r--r--svl/qa/complex/ConfigItems/helper/HistoryOptTest.cxx798
-rw-r--r--svl/qa/complex/ConfigItems/helper/HistoryOptTest.hxx203
-rw-r--r--svl/qa/complex/ConfigItems/helper/PrintOptTest.cxx735
-rw-r--r--svl/qa/complex/ConfigItems/helper/PrintOptTest.hxx84
-rw-r--r--svl/qa/complex/ConfigItems/helper/UserOptTest.cxx266
-rw-r--r--svl/qa/complex/ConfigItems/helper/UserOptTest.hxx70
-rw-r--r--svl/qa/complex/ConfigItems/helper/exports.map10
-rw-r--r--svl/qa/complex/ConfigItems/helper/makefile.mk73
-rw-r--r--svl/qa/complex/ConfigItems/makefile.mk83
-rw-r--r--svl/qa/complex/passwordcontainer/MasterPasswdHandler.java61
-rw-r--r--svl/qa/complex/passwordcontainer/PasswordContainerTest.java32
-rw-r--r--svl/qa/complex/passwordcontainer/PasswordContainerUnitTest.java73
-rw-r--r--svl/qa/complex/passwordcontainer/Test01.java111
-rw-r--r--svl/qa/complex/passwordcontainer/Test02.java155
-rw-r--r--svl/qa/complex/passwordcontainer/Test03.java118
-rw-r--r--svl/qa/complex/passwordcontainer/TestHelper.java88
-rw-r--r--svl/qa/complex/passwordcontainer/makefile.mk87
-rw-r--r--svl/qa/export.map34
-rw-r--r--svl/qa/makefile.mk99
-rw-r--r--svl/qa/test_URIHelper.cxx459
-rw-r--r--svl/source/config/asiancfg.cxx291
-rw-r--r--svl/source/config/cjkoptions.cxx504
-rw-r--r--svl/source/config/ctloptions.cxx492
-rw-r--r--svl/source/config/itemholder2.cxx179
-rw-r--r--svl/source/config/itemholder2.hxx89
-rw-r--r--svl/source/config/languageoptions.cxx276
-rw-r--r--svl/source/config/makefile.mk52
-rw-r--r--svl/source/config/srchcfg.cxx287
-rw-r--r--svl/source/filepicker/makefile.mk47
-rw-r--r--svl/source/filepicker/pickerhelper.cxx99
-rw-r--r--svl/source/filepicker/pickerhistory.cxx138
-rw-r--r--svl/source/filerec/filerec.cxx1016
-rw-r--r--svl/source/filerec/makefile.mk46
-rw-r--r--svl/source/fsstor/exports.map8
-rw-r--r--svl/source/fsstor/fsfactory.cxx292
-rw-r--r--svl/source/fsstor/fsstorage.cxx1614
-rw-r--r--svl/source/fsstor/fsstorage.hxx337
-rw-r--r--svl/source/fsstor/makefile.mk66
-rw-r--r--svl/source/fsstor/oinputstreamcontainer.cxx347
-rw-r--r--svl/source/fsstor/oinputstreamcontainer.hxx96
-rw-r--r--svl/source/fsstor/ostreamcontainer.cxx567
-rw-r--r--svl/source/fsstor/ostreamcontainer.hxx125
-rw-r--r--svl/source/inc/fsfactory.hxx72
-rw-r--r--svl/source/inc/passwordcontainer.hxx426
-rw-r--r--svl/source/inc/poolio.hxx201
-rw-r--r--svl/source/items/aeitem.cxx314
-rw-r--r--svl/source/items/cenumitm.cxx294
-rw-r--r--svl/source/items/cintitem.cxx562
-rw-r--r--svl/source/items/cntwall.cxx167
-rw-r--r--svl/source/items/cstitem.src69
-rw-r--r--svl/source/items/ctypeitm.cxx251
-rw-r--r--svl/source/items/custritm.cxx138
-rw-r--r--svl/source/items/dateitem.cxx279
-rw-r--r--svl/source/items/eitem.cxx47
-rw-r--r--svl/source/items/flagitem.cxx163
-rw-r--r--svl/source/items/globalnameitem.cxx114
-rw-r--r--svl/source/items/ilstitem.cxx103
-rw-r--r--svl/source/items/imageitm.cxx145
-rw-r--r--svl/source/items/intitem.cxx258
-rw-r--r--svl/source/items/itemiter.cxx119
-rw-r--r--svl/source/items/itempool.cxx1173
-rw-r--r--svl/source/items/itemprop.cxx503
-rw-r--r--svl/source/items/itemset.cxx2125
-rw-r--r--svl/source/items/lckbitem.cxx191
-rw-r--r--svl/source/items/macitem.cxx295
-rw-r--r--svl/source/items/makefile.mk84
-rw-r--r--svl/source/items/nranges.cxx850
-rw-r--r--svl/source/items/poolcach.cxx156
-rw-r--r--svl/source/items/poolio.cxx1712
-rw-r--r--svl/source/items/poolitem.cxx524
-rw-r--r--svl/source/items/ptitem.cxx205
-rw-r--r--svl/source/items/rectitem.cxx201
-rw-r--r--svl/source/items/rngitem.cxx54
-rw-r--r--svl/source/items/rngitem_inc.cxx240
-rw-r--r--svl/source/items/sfontitm.cxx139
-rw-r--r--svl/source/items/sitem.cxx113
-rw-r--r--svl/source/items/slstitm.cxx422
-rw-r--r--svl/source/items/srchitem.cxx649
-rw-r--r--svl/source/items/stritem.cxx72
-rw-r--r--svl/source/items/style.cxx1377
-rw-r--r--svl/source/items/stylepool.cxx541
-rw-r--r--svl/source/items/szitem.cxx211
-rw-r--r--svl/source/items/visitem.cxx145
-rw-r--r--svl/source/items/whassert.hxx54
-rw-r--r--svl/source/items/whiter.cxx124
-rw-r--r--svl/source/memtools/makefile.mk46
-rw-r--r--svl/source/memtools/svarray.cxx382
-rw-r--r--svl/source/misc/PasswordHelper.cxx106
-rw-r--r--svl/source/misc/adrparse.cxx918
-rw-r--r--svl/source/misc/documentlockfile.cxx234
-rw-r--r--svl/source/misc/filenotation.cxx144
-rw-r--r--svl/source/misc/folderrestriction.cxx106
-rw-r--r--svl/source/misc/fstathelper.cxx100
-rw-r--r--svl/source/misc/inethist.cxx542
-rw-r--r--svl/source/misc/inettype.cxx1345
-rw-r--r--svl/source/misc/lngmisc.cxx138
-rw-r--r--svl/source/misc/lockfilecommon.cxx272
-rw-r--r--svl/source/misc/makefile.mk70
-rw-r--r--svl/source/misc/mediatyp.src607
-rw-r--r--svl/source/misc/ownlist.cxx327
-rw-r--r--svl/source/misc/restrictedpaths.cxx214
-rw-r--r--svl/source/misc/sharecontrolfile.cxx373
-rw-r--r--svl/source/misc/strmadpt.cxx1045
-rw-r--r--svl/source/misc/svldata.cxx91
-rw-r--r--svl/source/misc/urihelper.cxx949
-rw-r--r--svl/source/notify/brdcst.cxx209
-rw-r--r--svl/source/notify/broadcast.cxx148
-rw-r--r--svl/source/notify/cancel.cxx201
-rw-r--r--svl/source/notify/hint.cxx47
-rw-r--r--svl/source/notify/isethint.cxx75
-rw-r--r--svl/source/notify/listener.cxx166
-rw-r--r--svl/source/notify/listenerbase.cxx81
-rw-r--r--svl/source/notify/listenerbase.hxx57
-rw-r--r--svl/source/notify/listeneriter.cxx192
-rw-r--r--svl/source/notify/lstner.cxx193
-rw-r--r--svl/source/notify/makefile.mk63
-rw-r--r--svl/source/notify/smplhint.cxx47
-rw-r--r--svl/source/numbers/makefile.mk74
-rw-r--r--svl/source/numbers/nbdll.cxx79
-rw-r--r--svl/source/numbers/numfmuno.cxx1140
-rw-r--r--svl/source/numbers/numfmuno.hxx321
-rw-r--r--svl/source/numbers/numhead.cxx249
-rw-r--r--svl/source/numbers/numhead.hxx106
-rw-r--r--svl/source/numbers/numuno.cxx167
-rw-r--r--svl/source/numbers/supservs.cxx229
-rw-r--r--svl/source/numbers/supservs.hxx102
-rw-r--r--svl/source/numbers/zforfind.cxx2816
-rw-r--r--svl/source/numbers/zforfind.hxx288
-rw-r--r--svl/source/numbers/zforlist.cxx4345
-rw-r--r--svl/source/numbers/zformat.cxx4477
-rw-r--r--svl/source/numbers/zforscan.cxx2809
-rw-r--r--svl/source/numbers/zforscan.hxx275
-rw-r--r--svl/source/passwordcontainer/exports.map8
-rw-r--r--svl/source/passwordcontainer/makefile.mk62
-rw-r--r--svl/source/passwordcontainer/passwordcontainer.cxx1585
-rw-r--r--svl/source/passwordcontainer/syscreds.cxx300
-rw-r--r--svl/source/passwordcontainer/syscreds.hxx92
-rw-r--r--svl/source/svdde/ddecli.cxx473
-rw-r--r--svl/source/svdde/ddedata.cxx230
-rw-r--r--svl/source/svdde/ddedll.cxx64
-rw-r--r--svl/source/svdde/ddeimp.hxx177
-rw-r--r--svl/source/svdde/ddeinf.cxx190
-rw-r--r--svl/source/svdde/ddeml1.cxx2658
-rw-r--r--svl/source/svdde/ddeml2.cxx1011
-rw-r--r--svl/source/svdde/ddemldeb.cxx280
-rw-r--r--svl/source/svdde/ddemldeb.hxx66
-rw-r--r--svl/source/svdde/ddemlimp.hxx433
-rw-r--r--svl/source/svdde/ddemlos2.h374
-rw-r--r--svl/source/svdde/ddestrg.cxx78
-rw-r--r--svl/source/svdde/ddesvr.cxx1104
-rw-r--r--svl/source/svdde/ddewrap.cxx100
-rw-r--r--svl/source/svdde/ddewrap.hxx24
-rw-r--r--svl/source/svdde/makefile.mk60
-rw-r--r--svl/source/svsql/converter.cxx42
-rw-r--r--svl/source/svsql/makefile.mk46
-rw-r--r--svl/source/undo/makefile.mk47
-rw-r--r--svl/source/undo/undo.cxx816
-rw-r--r--svl/source/uno/makefile.mk47
-rw-r--r--svl/source/uno/pathservice.cxx103
-rw-r--r--svl/source/uno/registerservices.cxx151
-rw-r--r--svl/unx/inc/convert.hxx63
-rw-r--r--svl/unx/source/svdde/ddedummy.cxx338
-rw-r--r--svl/unx/source/svdde/makefile.mk46
-rw-r--r--svl/util/makefile.mk122
-rw-r--r--svl/util/svl.pmk31
-rw-r--r--svtools/bmpmaker/bmp.cxx248
-rw-r--r--svtools/bmpmaker/bmp.hrc44
-rw-r--r--svtools/bmpmaker/bmp.src116
-rw-r--r--svtools/bmpmaker/bmpcore.cxx420
-rw-r--r--svtools/bmpmaker/bmpcore.hxx97
-rw-r--r--svtools/bmpmaker/bmpsum.cxx508
-rw-r--r--svtools/bmpmaker/g2g.cxx251
-rw-r--r--svtools/bmpmaker/makefile.mk74
-rw-r--r--svtools/inc/DocumentInfoPreview.hxx61
-rw-r--r--svtools/inc/QueryFolderName.hxx66
-rw-r--r--svtools/inc/acceleratorexecute.hxx287
-rw-r--r--svtools/inc/addresstemplate.hxx163
-rw-r--r--svtools/inc/apearcfg.hxx127
-rw-r--r--svtools/inc/asynclink.hxx77
-rw-r--r--svtools/inc/calendar.hxx501
-rw-r--r--svtools/inc/cliplistener.hxx61
-rw-r--r--svtools/inc/collatorres.hxx24
-rw-r--r--svtools/inc/contextmenuhelper.hxx130
-rw-r--r--svtools/inc/controldims.hrc102
-rw-r--r--svtools/inc/ctrlbox.hxx504
-rw-r--r--svtools/inc/ctrltool.hxx251
-rw-r--r--svtools/inc/dialogclosedlistener.hxx77
-rw-r--r--svtools/inc/dialogcontrolling.hxx306
-rw-r--r--svtools/inc/expander.hxx92
-rw-r--r--svtools/inc/extcolorcfg.hxx128
-rw-r--r--svtools/inc/filectrl.hxx111
-rw-r--r--svtools/inc/filedlg.hxx108
-rw-r--r--svtools/inc/filedlg2.hrc41
-rw-r--r--svtools/inc/fileview.hxx271
-rw-r--r--svtools/inc/fltdefs.hxx152
-rw-r--r--svtools/inc/fontsubstconfig.hxx68
-rw-r--r--svtools/inc/framestatuslistener.hxx116
-rw-r--r--svtools/inc/helpagentwindow.hxx88
-rw-r--r--svtools/inc/htmlkywd.hxx801
-rw-r--r--svtools/inc/htmltokn.h569
-rw-r--r--svtools/inc/imagemgr.hrc190
-rw-r--r--svtools/inc/imagemgr.hxx95
-rw-r--r--svtools/inc/imageresourceaccess.hxx90
-rw-r--r--svtools/inc/imgdef.hxx43
-rw-r--r--svtools/inc/indexentryres.hxx23
-rw-r--r--svtools/inc/inetimg.hxx86
-rw-r--r--svtools/inc/itemdel.hxx39
-rw-r--r--svtools/inc/ivctrl.hxx390
-rw-r--r--svtools/inc/localresaccess.hxx82
-rw-r--r--svtools/inc/makefile.mk48
-rw-r--r--svtools/inc/pch/precompiled_svtools.cxx29
-rw-r--r--svtools/inc/pch/precompiled_svtools.hxx437
-rw-r--r--svtools/inc/prgsbar.hxx100
-rw-r--r--svtools/inc/roadmap.hxx137
-rw-r--r--svtools/inc/rtfkeywd.hxx1141
-rw-r--r--svtools/inc/rtfout.hxx67
-rw-r--r--svtools/inc/rtftoken.h1273
-rw-r--r--svtools/inc/ruler.hxx874
-rw-r--r--svtools/inc/scriptedtext.hxx129
-rw-r--r--svtools/inc/scrwin.hxx112
-rw-r--r--svtools/inc/sfxecode.hxx118
-rw-r--r--svtools/inc/soerr.hxx81
-rw-r--r--svtools/inc/sores.hxx179
-rw-r--r--svtools/inc/statusbarcontroller.hxx158
-rw-r--r--svtools/inc/stdmenu.hxx241
-rw-r--r--svtools/inc/svtools/AccessibleBrowseBoxObjType.hxx59
-rw-r--r--svtools/inc/svtools/FilterConfigItem.hxx100
-rw-r--r--svtools/inc/svtools/accessibilityoptions.hxx82
-rw-r--r--svtools/inc/svtools/accessiblefactory.hxx171
-rw-r--r--svtools/inc/svtools/accessibletable.hxx182
-rw-r--r--svtools/inc/svtools/accessibletableprovider.hxx252
-rw-r--r--svtools/inc/svtools/brwbox.hxx879
-rw-r--r--svtools/inc/svtools/brwhead.hxx53
-rw-r--r--svtools/inc/svtools/chartprettypainter.hxx71
-rw-r--r--svtools/inc/svtools/colctrl.hxx202
-rw-r--r--svtools/inc/svtools/colorcfg.hxx152
-rw-r--r--svtools/inc/svtools/colrdlg.hxx107
-rw-r--r--svtools/inc/svtools/editbrowsebox.hxx696
-rw-r--r--svtools/inc/svtools/editimplementation.hxx151
-rw-r--r--svtools/inc/svtools/editsyntaxhighlighter.hxx64
-rw-r--r--svtools/inc/svtools/ehdl.hxx88
-rw-r--r--svtools/inc/svtools/embedhlp.hxx142
-rw-r--r--svtools/inc/svtools/embedtransfer.hxx64
-rw-r--r--svtools/inc/svtools/extensionlistbox.hxx105
-rw-r--r--svtools/inc/svtools/fileurlbox.hxx77
-rw-r--r--svtools/inc/svtools/filter.hxx424
-rw-r--r--svtools/inc/svtools/fixedhyper.hxx231
-rw-r--r--svtools/inc/svtools/fltcall.hxx74
-rw-r--r--svtools/inc/svtools/fmtfield.hxx350
-rw-r--r--svtools/inc/svtools/generictoolboxcontroller.hxx71
-rw-r--r--svtools/inc/svtools/genericunodialog.hxx194
-rw-r--r--svtools/inc/svtools/grfmgr.hxx566
-rw-r--r--svtools/inc/svtools/headbar.hxx395
-rw-r--r--svtools/inc/svtools/helpid.hrc117
-rw-r--r--svtools/inc/svtools/helpopt.hxx96
-rw-r--r--svtools/inc/svtools/htmlcfg.hxx107
-rw-r--r--svtools/inc/svtools/htmlout.hxx125
-rw-r--r--svtools/inc/svtools/hyperlabel.hxx98
-rw-r--r--svtools/inc/svtools/imap.hxx171
-rw-r--r--svtools/inc/svtools/imapcirc.hxx87
-rw-r--r--svtools/inc/svtools/imapobj.hxx163
-rw-r--r--svtools/inc/svtools/imappoly.hxx93
-rw-r--r--svtools/inc/svtools/imaprect.hxx85
-rw-r--r--svtools/inc/svtools/inettbc.hxx111
-rw-r--r--svtools/inc/svtools/insdlg.hxx74
-rw-r--r--svtools/inc/svtools/javacontext.hxx91
-rw-r--r--svtools/inc/svtools/javainteractionhandler.hxx82
-rw-r--r--svtools/inc/svtools/langtab.hxx58
-rw-r--r--svtools/inc/svtools/logindlg.hxx118
-rw-r--r--svtools/inc/svtools/menuoptions.hxx169
-rw-r--r--svtools/inc/svtools/miscopt.hxx180
-rw-r--r--svtools/inc/svtools/optionsdrawinglayer.hxx238
-rw-r--r--svtools/inc/svtools/parhtml.hxx297
-rw-r--r--svtools/inc/svtools/parrtf.hxx91
-rw-r--r--svtools/inc/svtools/printdlg.hxx297
-rw-r--r--svtools/inc/svtools/printoptions.hxx124
-rw-r--r--svtools/inc/svtools/prnsetup.hxx122
-rw-r--r--svtools/inc/svtools/roadmapwizard.hxx246
-rw-r--r--svtools/inc/svtools/stdctrl.hxx73
-rw-r--r--svtools/inc/svtools/stringtransfer.hxx83
-rw-r--r--svtools/inc/svtools/svicnvw.hxx291
-rw-r--r--svtools/inc/svtools/svlbitm.hxx297
-rw-r--r--svtools/inc/svtools/svlbox.hxx664
-rw-r--r--svtools/inc/svtools/svmedit.hxx154
-rw-r--r--svtools/inc/svtools/svmedit2.hxx54
-rw-r--r--svtools/inc/svtools/svparser.hxx285
-rw-r--r--svtools/inc/svtools/svtabbx.hxx268
-rw-r--r--svtools/inc/svtools/svtdata.hxx85
-rw-r--r--svtools/inc/svtools/svtdllapi.h41
-rw-r--r--svtools/inc/svtools/svtreebx.hxx421
-rw-r--r--svtools/inc/svtools/svxbox.hxx193
-rw-r--r--svtools/inc/svtools/syntaxhighlight.hxx191
-rw-r--r--svtools/inc/svtools/table/abstracttablecontrol.hxx131
-rw-r--r--svtools/inc/svtools/table/defaultinputhandler.hxx68
-rw-r--r--svtools/inc/svtools/table/gridtablerenderer.hxx104
-rw-r--r--svtools/inc/svtools/table/tablecontrol.hxx247
-rw-r--r--svtools/inc/svtools/table/tabledatawindow.hxx76
-rw-r--r--svtools/inc/svtools/table/tableinputhandler.hxx78
-rw-r--r--svtools/inc/svtools/table/tablemodel.hxx455
-rw-r--r--svtools/inc/svtools/table/tablerenderer.hxx242
-rw-r--r--svtools/inc/svtools/table/tabletypes.hxx76
-rw-r--r--svtools/inc/svtools/textdata.hxx205
-rw-r--r--svtools/inc/svtools/texteng.hxx329
-rw-r--r--svtools/inc/svtools/textview.hxx224
-rw-r--r--svtools/inc/svtools/textwindowpeer.hxx71
-rw-r--r--svtools/inc/svtools/toolboxcontroller.hxx144
-rw-r--r--svtools/inc/svtools/transfer.hxx591
-rw-r--r--svtools/inc/svtools/treelist.hxx514
-rw-r--r--svtools/inc/svtools/ttprops.hxx106
-rw-r--r--svtools/inc/svtools/unitconv.hxx113
-rw-r--r--svtools/inc/svtools/urlcontrol.hxx61
-rw-r--r--svtools/inc/svtools/valueset.hxx442
-rw-r--r--svtools/inc/svtools/wizardmachine.hxx392
-rw-r--r--svtools/inc/svtools/wizdlg.hxx311
-rw-r--r--svtools/inc/svtools/wmf.hxx46
-rw-r--r--svtools/inc/svtools/xtextedt.hxx79
-rw-r--r--svtools/inc/sychconv.hxx47
-rw-r--r--svtools/inc/tabbar.hxx555
-rw-r--r--svtools/inc/taskbar.hxx490
-rw-r--r--svtools/inc/templatefoldercache.hxx108
-rw-r--r--svtools/inc/templdlg.hxx92
-rw-r--r--svtools/inc/testtool.hxx75
-rw-r--r--svtools/inc/tooltiplbox.hxx67
-rw-r--r--svtools/inc/txtattr.hxx235
-rw-r--r--svtools/inc/txtcmp.hxx33
-rw-r--r--svtools/inc/unoevent.hxx329
-rw-r--r--svtools/inc/unoimap.hxx45
-rw-r--r--svtools/inc/wallitem.hxx65
-rw-r--r--svtools/prj/build.lst29
-rw-r--r--svtools/prj/d.lst35
-rw-r--r--svtools/prj/svtools.xml122
-rw-r--r--svtools/qa/unoapi/knownissues.xcl35
-rw-r--r--svtools/qa/unoapi/makefile.mk40
-rw-r--r--svtools/qa/unoapi/svtools.sce12
-rw-r--r--svtools/source/brwbox/brwbox1.cxx2766
-rw-r--r--svtools/source/brwbox/brwbox2.cxx2189
-rw-r--r--svtools/source/brwbox/brwbox3.cxx568
-rw-r--r--svtools/source/brwbox/brwhead.cxx119
-rw-r--r--svtools/source/brwbox/brwimpl.hxx87
-rw-r--r--svtools/source/brwbox/datwin.cxx782
-rw-r--r--svtools/source/brwbox/datwin.hxx255
-rw-r--r--svtools/source/brwbox/ebbcontrols.cxx628
-rw-r--r--svtools/source/brwbox/editbrowsebox.cxx1437
-rw-r--r--svtools/source/brwbox/editbrowsebox.hrc42
-rw-r--r--svtools/source/brwbox/editbrowsebox.src66
-rw-r--r--svtools/source/brwbox/editbrowsebox2.cxx222
-rw-r--r--svtools/source/brwbox/editbrowseboximpl.hxx45
-rw-r--r--svtools/source/brwbox/makefile.mk59
-rw-r--r--svtools/source/config/accessibilityoptions.cxx649
-rw-r--r--svtools/source/config/apearcfg.cxx321
-rw-r--r--svtools/source/config/colorcfg.cxx686
-rw-r--r--svtools/source/config/extcolorcfg.cxx827
-rw-r--r--svtools/source/config/fontsubstconfig.cxx229
-rw-r--r--svtools/source/config/helpopt.cxx764
-rw-r--r--svtools/source/config/htmlcfg.cxx523
-rw-r--r--svtools/source/config/itemholder2.cxx209
-rw-r--r--svtools/source/config/itemholder2.hxx89
-rw-r--r--svtools/source/config/makefile.mk58
-rw-r--r--svtools/source/config/menuoptions.cxx561
-rw-r--r--svtools/source/config/miscopt.cxx831
-rw-r--r--svtools/source/config/optionsdrawinglayer.cxx1713
-rw-r--r--svtools/source/config/printoptions.cxx870
-rw-r--r--svtools/source/config/test/makefile.mk62
-rw-r--r--svtools/source/config/test/test.cxx270
-rw-r--r--svtools/source/contnr/cont_pch.cxx41
-rw-r--r--svtools/source/contnr/contentenumeration.cxx464
-rw-r--r--svtools/source/contnr/contentenumeration.hxx287
-rw-r--r--svtools/source/contnr/ctrdll.cxx79
-rw-r--r--svtools/source/contnr/fileview.cxx2696
-rw-r--r--svtools/source/contnr/fileview.hrc40
-rw-r--r--svtools/source/contnr/fileview.src196
-rw-r--r--svtools/source/contnr/imivctl.hxx637
-rw-r--r--svtools/source/contnr/imivctl1.cxx4681
-rw-r--r--svtools/source/contnr/imivctl2.cxx848
-rw-r--r--svtools/source/contnr/ivctrl.cxx642
-rw-r--r--svtools/source/contnr/makefile.mk82
-rw-r--r--svtools/source/contnr/svcontnr.src103
-rw-r--r--svtools/source/contnr/svicnvw.cxx833
-rw-r--r--svtools/source/contnr/svimpbox.cxx3636
-rw-r--r--svtools/source/contnr/svimpicn.cxx4167
-rw-r--r--svtools/source/contnr/svlbitm.cxx618
-rw-r--r--svtools/source/contnr/svlbox.cxx1918
-rw-r--r--svtools/source/contnr/svtabbx.cxx1304
-rw-r--r--svtools/source/contnr/svtreebx.cxx2671
-rw-r--r--svtools/source/contnr/templwin.cxx2044
-rw-r--r--svtools/source/contnr/templwin.hrc59
-rw-r--r--svtools/source/contnr/templwin.hxx309
-rw-r--r--svtools/source/contnr/templwin.src376
-rw-r--r--svtools/source/contnr/tooltiplbox.cxx120
-rw-r--r--svtools/source/contnr/treelist.cxx2126
-rw-r--r--svtools/source/control/asynclink.cxx139
-rw-r--r--svtools/source/control/calendar.cxx3051
-rw-r--r--svtools/source/control/calendar.src74
-rw-r--r--svtools/source/control/collatorres.cxx128
-rw-r--r--svtools/source/control/ctrlbox.cxx1509
-rw-r--r--svtools/source/control/ctrlbox.src232
-rw-r--r--svtools/source/control/ctrldll.cxx78
-rw-r--r--svtools/source/control/ctrltool.cxx1016
-rw-r--r--svtools/source/control/ctrltool.src144
-rw-r--r--svtools/source/control/filectrl.cxx236
-rw-r--r--svtools/source/control/filectrl.src58
-rw-r--r--svtools/source/control/filectrl2.cxx94
-rw-r--r--svtools/source/control/fileurlbox.cxx124
-rw-r--r--svtools/source/control/fixedhyper.cxx233
-rw-r--r--svtools/source/control/fmtfield.cxx1398
-rw-r--r--svtools/source/control/headbar.cxx1653
-rw-r--r--svtools/source/control/hyperlabel.cxx270
-rw-r--r--svtools/source/control/indexentryres.cxx133
-rw-r--r--svtools/source/control/inettbc.cxx1376
-rw-r--r--svtools/source/control/makefile.mk85
-rw-r--r--svtools/source/control/prgsbar.cxx262
-rw-r--r--svtools/source/control/roadmap.cxx1025
-rw-r--r--svtools/source/control/ruler.cxx3181
-rw-r--r--svtools/source/control/scriptedtext.cxx395
-rw-r--r--svtools/source/control/scrwin.cxx572
-rw-r--r--svtools/source/control/stdctrl.cxx96
-rw-r--r--svtools/source/control/stdmenu.cxx515
-rw-r--r--svtools/source/control/svxbox.cxx617
-rw-r--r--svtools/source/control/tabbar.cxx2639
-rw-r--r--svtools/source/control/taskbar.cxx594
-rw-r--r--svtools/source/control/taskbox.cxx352
-rw-r--r--svtools/source/control/taskmisc.cxx380
-rw-r--r--svtools/source/control/taskstat.cxx656
-rw-r--r--svtools/source/control/urlcontrol.cxx95
-rw-r--r--svtools/source/control/valueacc.cxx1261
-rw-r--r--svtools/source/control/valueimp.hxx329
-rw-r--r--svtools/source/control/valueset.cxx2751
-rw-r--r--svtools/source/dialogs/addresstemplate.cxx1340
-rw-r--r--svtools/source/dialogs/addresstemplate.hrc88
-rw-r--r--svtools/source/dialogs/addresstemplate.src358
-rw-r--r--svtools/source/dialogs/colctrl.cxx690
-rw-r--r--svtools/source/dialogs/colrdlg.cxx328
-rw-r--r--svtools/source/dialogs/colrdlg.hrc67
-rw-r--r--svtools/source/dialogs/colrdlg.src308
-rw-r--r--svtools/source/dialogs/filedlg.cxx148
-rw-r--r--svtools/source/dialogs/filedlg2.cxx1362
-rw-r--r--svtools/source/dialogs/filedlg2.hxx219
-rw-r--r--svtools/source/dialogs/filedlg2.src126
-rw-r--r--svtools/source/dialogs/formats.src294
-rw-r--r--svtools/source/dialogs/insdlg.cxx389
-rw-r--r--svtools/source/dialogs/logindlg.cxx312
-rw-r--r--svtools/source/dialogs/logindlg.hrc57
-rw-r--r--svtools/source/dialogs/logindlg.src200
-rw-r--r--svtools/source/dialogs/makefile.mk77
-rw-r--r--svtools/source/dialogs/mcvmath.cxx305
-rw-r--r--svtools/source/dialogs/mcvmath.hxx228
-rw-r--r--svtools/source/dialogs/printdlg.cxx798
-rw-r--r--svtools/source/dialogs/printdlg.hrc74
-rw-r--r--svtools/source/dialogs/printdlg.src333
-rw-r--r--svtools/source/dialogs/prnsetup.cxx403
-rw-r--r--svtools/source/dialogs/prnsetup.hrc48
-rw-r--r--svtools/source/dialogs/prnsetup.src278
-rw-r--r--svtools/source/dialogs/propctrl.cxx503
-rw-r--r--svtools/source/dialogs/propctrl.hxx115
-rw-r--r--svtools/source/dialogs/property.cxx1560
-rw-r--r--svtools/source/dialogs/roadmapwizard.cxx705
-rw-r--r--svtools/source/dialogs/so3res.src315
-rw-r--r--svtools/source/dialogs/wizardmachine.cxx724
-rw-r--r--svtools/source/dialogs/wizardmachine.src50
-rw-r--r--svtools/source/dialogs/wizdlg.cxx707
-rw-r--r--svtools/source/edit/editsyntaxhighlighter.cxx204
-rw-r--r--svtools/source/edit/makefile.mk63
-rw-r--r--svtools/source/edit/svmedit.cxx1656
-rw-r--r--svtools/source/edit/svmedit2.cxx81
-rw-r--r--svtools/source/edit/sychconv.cxx103
-rw-r--r--svtools/source/edit/syntaxhighlight.cxx909
-rw-r--r--svtools/source/edit/textdat2.hxx306
-rw-r--r--svtools/source/edit/textdata.cxx361
-rw-r--r--svtools/source/edit/textdoc.cxx1047
-rw-r--r--svtools/source/edit/textdoc.hxx148
-rw-r--r--svtools/source/edit/texteng.cxx3303
-rw-r--r--svtools/source/edit/textund2.hxx148
-rw-r--r--svtools/source/edit/textundo.cxx343
-rw-r--r--svtools/source/edit/textundo.hxx84
-rw-r--r--svtools/source/edit/textview.cxx2470
-rw-r--r--svtools/source/edit/textwindowpeer.cxx59
-rw-r--r--svtools/source/edit/txtattr.cxx197
-rw-r--r--svtools/source/edit/xtextedt.cxx421
-rw-r--r--svtools/source/filter.vcl/filter/FilterConfigCache.cxx596
-rw-r--r--svtools/source/filter.vcl/filter/FilterConfigCache.hxx145
-rw-r--r--svtools/source/filter.vcl/filter/FilterConfigItem.cxx623
-rw-r--r--svtools/source/filter.vcl/filter/SvFilterOptionsDialog.cxx327
-rw-r--r--svtools/source/filter.vcl/filter/SvFilterOptionsDialog.hxx101
-rw-r--r--svtools/source/filter.vcl/filter/dlgejpg.cxx96
-rw-r--r--svtools/source/filter.vcl/filter/dlgejpg.hrc39
-rw-r--r--svtools/source/filter.vcl/filter/dlgejpg.hxx72
-rw-r--r--svtools/source/filter.vcl/filter/dlgejpg.src136
-rw-r--r--svtools/source/filter.vcl/filter/dlgepng.cxx90
-rw-r--r--svtools/source/filter.vcl/filter/dlgepng.hrc35
-rw-r--r--svtools/source/filter.vcl/filter/dlgepng.hxx71
-rw-r--r--svtools/source/filter.vcl/filter/dlgepng.src119
-rw-r--r--svtools/source/filter.vcl/filter/dlgexpor.cxx442
-rw-r--r--svtools/source/filter.vcl/filter/dlgexpor.hrc58
-rw-r--r--svtools/source/filter.vcl/filter/dlgexpor.hxx127
-rw-r--r--svtools/source/filter.vcl/filter/dlgexpor.src315
-rw-r--r--svtools/source/filter.vcl/filter/filter.cxx2167
-rw-r--r--svtools/source/filter.vcl/filter/filter2.cxx1419
-rw-r--r--svtools/source/filter.vcl/filter/fldll.cxx76
-rw-r--r--svtools/source/filter.vcl/filter/gradwrap.cxx570
-rw-r--r--svtools/source/filter.vcl/filter/makefile.mk88
-rw-r--r--svtools/source/filter.vcl/filter/sgf.ini118
-rw-r--r--svtools/source/filter.vcl/filter/sgfbram.cxx666
-rw-r--r--svtools/source/filter.vcl/filter/sgvmain.cxx1143
-rw-r--r--svtools/source/filter.vcl/filter/sgvspln.cxx895
-rw-r--r--svtools/source/filter.vcl/filter/sgvtext.cxx1338
-rw-r--r--svtools/source/filter.vcl/filter/strings.hrc27
-rw-r--r--svtools/source/filter.vcl/filter/strings.src85
-rw-r--r--svtools/source/filter.vcl/igif/decode.cxx215
-rw-r--r--svtools/source/filter.vcl/igif/decode.hxx68
-rw-r--r--svtools/source/filter.vcl/igif/gifread.cxx858
-rw-r--r--svtools/source/filter.vcl/igif/makefile.mk45
-rw-r--r--svtools/source/filter.vcl/ixbm/makefile.mk44
-rw-r--r--svtools/source/filter.vcl/ixbm/xbmread.cxx398
-rw-r--r--svtools/source/filter.vcl/ixpm/makefile.mk43
-rw-r--r--svtools/source/filter.vcl/ixpm/rgbtable.hxx695
-rw-r--r--svtools/source/filter.vcl/ixpm/xpmread.cxx702
-rw-r--r--svtools/source/filter.vcl/jpeg/jpeg.cxx772
-rw-r--r--svtools/source/filter.vcl/jpeg/jpeg.h75
-rw-r--r--svtools/source/filter.vcl/jpeg/jpegc.c284
-rw-r--r--svtools/source/filter.vcl/jpeg/makefile.mk45
-rw-r--r--svtools/source/filter.vcl/wmf/emfwr.cxx1415
-rw-r--r--svtools/source/filter.vcl/wmf/emfwr.hxx100
-rw-r--r--svtools/source/filter.vcl/wmf/enhwmf.cxx1343
-rw-r--r--svtools/source/filter.vcl/wmf/makefile.mk50
-rw-r--r--svtools/source/filter.vcl/wmf/winmtf.cxx2199
-rw-r--r--svtools/source/filter.vcl/wmf/winmtf.hxx776
-rw-r--r--svtools/source/filter.vcl/wmf/winwmf.cxx1426
-rw-r--r--svtools/source/filter.vcl/wmf/wmf.cxx114
-rw-r--r--svtools/source/filter.vcl/wmf/wmfwr.cxx2096
-rw-r--r--svtools/source/filter.vcl/wmf/wmfwr.hxx229
-rw-r--r--svtools/source/graphic/descriptor.cxx498
-rw-r--r--svtools/source/graphic/descriptor.hxx140
-rw-r--r--svtools/source/graphic/graphic.cxx300
-rw-r--r--svtools/source/graphic/graphic.hxx103
-rw-r--r--svtools/source/graphic/graphicunofactory.cxx103
-rw-r--r--svtools/source/graphic/grfattr.cxx118
-rw-r--r--svtools/source/graphic/grfcache.cxx1062
-rw-r--r--svtools/source/graphic/grfcache.hxx109
-rw-r--r--svtools/source/graphic/grfmgr.cxx1316
-rw-r--r--svtools/source/graphic/grfmgr2.cxx2382
-rw-r--r--svtools/source/graphic/makefile.mk66
-rw-r--r--svtools/source/graphic/provider.cxx861
-rw-r--r--svtools/source/graphic/renderer.cxx345
-rw-r--r--svtools/source/graphic/transformer.cxx156
-rw-r--r--svtools/source/graphic/transformer.hxx63
-rw-r--r--svtools/source/hatchwindow/documentcloser.cxx295
-rw-r--r--svtools/source/hatchwindow/documentcloser.hxx89
-rw-r--r--svtools/source/hatchwindow/exports.map8
-rw-r--r--svtools/source/hatchwindow/hatchwindow.cxx235
-rw-r--r--svtools/source/hatchwindow/hatchwindow.hxx79
-rw-r--r--svtools/source/hatchwindow/hatchwindowfactory.cxx187
-rw-r--r--svtools/source/hatchwindow/hatchwindowfactory.hxx74
-rw-r--r--svtools/source/hatchwindow/ipwin.cxx644
-rw-r--r--svtools/source/hatchwindow/ipwin.hxx110
-rw-r--r--svtools/source/hatchwindow/makefile.mk65
-rw-r--r--svtools/source/inc/configitems/accessibilityoptions_const.hxx50
-rw-r--r--svtools/source/inc/filectrl.hrc34
-rw-r--r--svtools/source/inc/gifread.hxx144
-rw-r--r--svtools/source/inc/gradwrap.hxx77
-rw-r--r--svtools/source/inc/iodlg.hrc107
-rw-r--r--svtools/source/inc/jpeg.hxx124
-rw-r--r--svtools/source/inc/msgrd.hxx37
-rw-r--r--svtools/source/inc/msgwr.hxx38
-rw-r--r--svtools/source/inc/property.hxx585
-rw-r--r--svtools/source/inc/provider.hxx82
-rw-r--r--svtools/source/inc/renderer.hxx100
-rw-r--r--svtools/source/inc/sgfbram.hxx157
-rw-r--r--svtools/source/inc/sgffilt.hxx46
-rw-r--r--svtools/source/inc/sgvmain.hxx353
-rw-r--r--svtools/source/inc/sgvspln.hxx73
-rw-r--r--svtools/source/inc/svimpbox.hxx474
-rw-r--r--svtools/source/inc/svimpicn.hxx321
-rw-r--r--svtools/source/inc/svtaccessiblefactory.hxx73
-rw-r--r--svtools/source/inc/unoiface.hxx442
-rw-r--r--svtools/source/inc/xbmread.hxx97
-rw-r--r--svtools/source/inc/xpmread.hxx131
-rw-r--r--svtools/source/java/javacontext.cxx106
-rw-r--r--svtools/source/java/javaerror.src93
-rw-r--r--svtools/source/java/javainteractionhandler.cxx340
-rw-r--r--svtools/source/java/makefile.mk54
-rw-r--r--svtools/source/java/patchjavaerror.src93
-rw-r--r--svtools/source/misc/acceleratorexecute.cxx578
-rw-r--r--svtools/source/misc/chartprettypainter.cxx140
-rw-r--r--svtools/source/misc/cliplistener.cxx98
-rw-r--r--svtools/source/misc/dialogclosedlistener.cxx75
-rw-r--r--svtools/source/misc/dialogcontrolling.cxx314
-rw-r--r--svtools/source/misc/ehdl.cxx489
-rw-r--r--svtools/source/misc/ehdl.src40
-rw-r--r--svtools/source/misc/embedhlp.cxx955
-rw-r--r--svtools/source/misc/embedtransfer.cxx256
-rw-r--r--svtools/source/misc/errtxt.src514
-rw-r--r--svtools/source/misc/helpagent.src41
-rw-r--r--svtools/source/misc/helpagentwindow.cxx192
-rw-r--r--svtools/source/misc/imagemgr.cxx876
-rw-r--r--svtools/source/misc/imagemgr.src452
-rw-r--r--svtools/source/misc/imageresourceaccess.cxx207
-rw-r--r--svtools/source/misc/imap.cxx1232
-rw-r--r--svtools/source/misc/imap2.cxx757
-rw-r--r--svtools/source/misc/imap3.cxx97
-rw-r--r--svtools/source/misc/itemdel.cxx135
-rwxr-xr-xsvtools/source/misc/langtab.cxx208
-rw-r--r--svtools/source/misc/langtab.src313
-rw-r--r--svtools/source/misc/makefile.mk83
-rw-r--r--svtools/source/misc/stringtransfer.cxx112
-rw-r--r--svtools/source/misc/svtaccessiblefactory.cxx337
-rw-r--r--svtools/source/misc/svtdata.cxx92
-rw-r--r--svtools/source/misc/templatefoldercache.cxx919
-rw-r--r--svtools/source/misc/transfer.cxx2402
-rw-r--r--svtools/source/misc/transfer2.cxx635
-rw-r--r--svtools/source/misc/unitconv.cxx763
-rw-r--r--svtools/source/misc/wallitem.cxx65
-rw-r--r--svtools/source/plugapp/commtest.cxx261
-rw-r--r--svtools/source/plugapp/commtest.hrc34
-rw-r--r--svtools/source/plugapp/commtest.src60
-rw-r--r--svtools/source/plugapp/makefile.mk61
-rw-r--r--svtools/source/plugapp/testtool.hrc55
-rw-r--r--svtools/source/plugapp/testtool.src194
-rw-r--r--svtools/source/plugapp/ttprops.cxx79
-rw-r--r--svtools/source/productregistration/exports.map8
-rw-r--r--svtools/source/productregistration/makefile.mk78
-rw-r--r--svtools/source/productregistration/productregistration.cxx507
-rw-r--r--svtools/source/productregistration/productregistration.hxx100
-rw-r--r--svtools/source/productregistration/registrationdlg.cxx171
-rw-r--r--svtools/source/productregistration/registrationdlg.hrc43
-rw-r--r--svtools/source/productregistration/registrationdlg.hxx87
-rw-r--r--svtools/source/productregistration/registrationdlg.src129
-rw-r--r--svtools/source/svhtml/htmlkywd.cxx1081
-rw-r--r--svtools/source/svhtml/htmlout.cxx980
-rw-r--r--svtools/source/svhtml/htmlsupp.cxx173
-rw-r--r--svtools/source/svhtml/makefile.mk51
-rw-r--r--svtools/source/svhtml/parhtml.cxx2375
-rw-r--r--svtools/source/svrtf/makefile.mk49
-rw-r--r--svtools/source/svrtf/parrtf.cxx710
-rw-r--r--svtools/source/svrtf/rtfkey2.cxx1159
-rw-r--r--svtools/source/svrtf/rtfkeywd.cxx1248
-rw-r--r--svtools/source/svrtf/rtfout.cxx209
-rw-r--r--svtools/source/svrtf/svparser.cxx726
-rw-r--r--svtools/source/table/defaultinputhandler.cxx211
-rw-r--r--svtools/source/table/gridtablerenderer.cxx235
-rw-r--r--svtools/source/table/makefile.mk55
-rw-r--r--svtools/source/table/tablecontrol.cxx540
-rw-r--r--svtools/source/table/tablecontrol_impl.cxx2003
-rw-r--r--svtools/source/table/tablecontrol_impl.hxx343
-rw-r--r--svtools/source/table/tabledatawindow.cxx82
-rw-r--r--svtools/source/table/tablegeometry.cxx131
-rw-r--r--svtools/source/table/tablegeometry.hxx162
-rw-r--r--svtools/source/uno/addrtempuno.cxx245
-rw-r--r--svtools/source/uno/contextmenuhelper.cxx687
-rw-r--r--svtools/source/uno/framestatuslistener.cxx444
-rw-r--r--svtools/source/uno/generictoolboxcontroller.cxx208
-rw-r--r--svtools/source/uno/genericunodialog.cxx373
-rw-r--r--svtools/source/uno/makefile.mk62
-rw-r--r--svtools/source/uno/miscservices.cxx200
-rw-r--r--svtools/source/uno/statusbarcontroller.cxx784
-rw-r--r--svtools/source/uno/svtxgridcontrol.cxx455
-rw-r--r--svtools/source/uno/svtxgridcontrol.hxx103
-rw-r--r--svtools/source/uno/toolboxcontroller.cxx707
-rw-r--r--svtools/source/uno/treecontrolpeer.cxx1731
-rw-r--r--svtools/source/uno/treecontrolpeer.hxx173
-rw-r--r--svtools/source/uno/unocontroltablemodel.cxx408
-rw-r--r--svtools/source/uno/unocontroltablemodel.hxx150
-rw-r--r--svtools/source/uno/unoevent.cxx610
-rw-r--r--svtools/source/uno/unoifac2.hrc52
-rw-r--r--svtools/source/uno/unoifac2.src107
-rw-r--r--svtools/source/uno/unoiface.cxx2367
-rw-r--r--svtools/source/uno/unoimap.cxx820
-rw-r--r--svtools/source/urlobj/inetimg.cxx149
-rw-r--r--svtools/source/urlobj/makefile.mk46
-rw-r--r--svtools/util/hidother.src59
-rw-r--r--svtools/util/makefile.mk190
-rw-r--r--svtools/util/svt.pmk31
-rw-r--r--svtools/workben/browser.cxx810
-rw-r--r--svtools/workben/cui/loadlib.cxx89
-rw-r--r--svtools/workben/cui/makefile.mk60
-rw-r--r--svtools/workben/makefile.mk69
-rw-r--r--svtools/workben/stest.cxx186
-rw-r--r--svtools/workben/svdem.cxx1125
-rw-r--r--svtools/workben/treecontrol/makefile.mk91
-rw-r--r--svtools/workben/treecontrol/treetest.cxx396
-rw-r--r--svtools/workben/unodialog/makefile.mk90
-rw-r--r--svtools/workben/unodialog/roadmapskeleton.cxx113
-rw-r--r--svtools/workben/unodialog/roadmapskeleton.hrc41
-rw-r--r--svtools/workben/unodialog/roadmapskeleton.hxx65
-rw-r--r--svtools/workben/unodialog/roadmapskeleton.src84
-rw-r--r--svtools/workben/unodialog/roadmapskeletonpages.cxx114
-rw-r--r--svtools/workben/unodialog/roadmapskeletonpages.hxx104
-rw-r--r--svtools/workben/unodialog/udlg.map8
-rw-r--r--svtools/workben/unodialog/udlg_global.hrc54
-rw-r--r--svtools/workben/unodialog/udlg_module.cxx42
-rw-r--r--svtools/workben/unodialog/udlg_module.hxx45
-rw-r--r--svtools/workben/unodialog/udlg_services.cxx58
-rw-r--r--svtools/workben/unodialog/unodialogsample.cxx214
-rw-r--r--svtools/workben/urange.cxx220
-rw-r--r--svx/doc/UML/edit_engine_UNO_implementation.zuml1
-rw-r--r--svx/doc/UML/grid_control_implementation.zumlbin0 -> 36412 bytes
-rw-r--r--svx/doc/UML/readme.txt9
-rw-r--r--svx/doc/drawing_layer_UNO_objects.odgbin0 -> 13284 bytes
-rw-r--r--svx/inc/ActionDescriptionProvider.hxx65
-rw-r--r--svx/inc/DescriptionGenerator.hxx217
-rw-r--r--svx/inc/ParseContext.hxx91
-rw-r--r--svx/inc/UnoNamespaceMap.hxx45
-rw-r--r--svx/inc/XPropertyTable.hxx44
-rw-r--r--svx/inc/accessibility.hrc87
-rw-r--r--svx/inc/anchorid.hxx42
-rw-r--r--svx/inc/chrtitem.hxx385
-rw-r--r--svx/inc/clipboardctl.hxx66
-rw-r--r--svx/inc/clipfmtitem.hxx67
-rw-r--r--svx/inc/connctrl.hxx77
-rw-r--r--svx/inc/databaseregistrationui.hxx53
-rw-r--r--svx/inc/dbexch.hrc57
-rw-r--r--svx/inc/dgdefs_.hxx341
-rw-r--r--svx/inc/dialcontrol.hxx138
-rw-r--r--svx/inc/dialdll.hxx42
-rw-r--r--svx/inc/dlgutil.hxx47
-rw-r--r--svx/inc/dragmt3d.hxx153
-rw-r--r--svx/inc/drawitem.hxx246
-rw-r--r--svx/inc/drawuiks.hxx73
-rw-r--r--svx/inc/extrusioncontrols.hxx390
-rw-r--r--svx/inc/flagsdef.hxx103
-rw-r--r--svx/inc/float3d.hrc184
-rw-r--r--svx/inc/fmgridif.hxx551
-rw-r--r--svx/inc/fmhelp.hrc117
-rw-r--r--svx/inc/fmobjfac.hxx51
-rw-r--r--svx/inc/fontlb.hxx138
-rw-r--r--svx/inc/fontworkgallery.hrc72
-rw-r--r--svx/inc/fontworkgallery.hxx258
-rw-r--r--svx/inc/formatpaintbrushctrl.hxx73
-rw-r--r--svx/inc/galbrws.hxx116
-rw-r--r--svx/inc/galbrws2.hxx181
-rw-r--r--svx/inc/galctrl.hxx191
-rw-r--r--svx/inc/gallery.hrc212
-rw-r--r--svx/inc/gallery.hxx174
-rw-r--r--svx/inc/galobj.hxx238
-rw-r--r--svx/inc/galtheme.hrc77
-rw-r--r--svx/inc/galtheme.hxx231
-rw-r--r--svx/inc/globl3d.hxx53
-rw-r--r--svx/inc/globlac.hrc223
-rw-r--r--svx/inc/globlmn_tmpl.hrc1407
-rw-r--r--svx/inc/grafctrl.hxx191
-rw-r--r--svx/inc/helpid.hrc294
-rw-r--r--svx/inc/hlnkitem.hxx110
-rw-r--r--svx/inc/htmlmode.hxx72
-rw-r--r--svx/inc/hyperdlg.hxx58
-rw-r--r--svx/inc/imapdlg.hxx211
-rw-r--r--svx/inc/insctrl.hxx62
-rw-r--r--svx/inc/layctrl.hxx79
-rw-r--r--svx/inc/lboxctrl.hxx86
-rw-r--r--svx/inc/lightdlg.hxx75
-rw-r--r--svx/inc/linectrl.hxx175
-rw-r--r--svx/inc/makefile.mk50
-rw-r--r--svx/inc/measctrl.hxx70
-rw-r--r--svx/inc/modctrl.hxx60
-rw-r--r--svx/inc/numvset.hxx165
-rw-r--r--svx/inc/objfac3d.hxx56
-rw-r--r--svx/inc/ofaitem.hxx53
-rw-r--r--svx/inc/optgenrl.hxx50
-rw-r--r--svx/inc/optgrid.hxx180
-rw-r--r--svx/inc/orienthelper.hxx132
-rw-r--r--svx/inc/passwd.hxx86
-rw-r--r--svx/inc/pch/precompiled_svx.cxx29
-rw-r--r--svx/inc/pch/precompiled_svx.hxx965
-rw-r--r--svx/inc/pfiledlg.hxx64
-rw-r--r--svx/inc/postattr.hxx133
-rw-r--r--svx/inc/prtqry.hxx40
-rw-r--r--svx/inc/pszctrl.hxx62
-rw-r--r--svx/inc/relfld.hxx73
-rw-r--r--svx/inc/rotmodit.hxx69
-rw-r--r--svx/inc/rubydialog.hxx204
-rw-r--r--svx/inc/rulritem.hxx303
-rw-r--r--svx/inc/sdrpaintwindow.hxx167
-rw-r--r--svx/inc/selctrl.hxx61
-rw-r--r--svx/inc/sjctrl.hxx630
-rw-r--r--svx/inc/srchdlg.hxx302
-rw-r--r--svx/inc/srchitem.hxx34
-rw-r--r--svx/inc/svdglob.hxx69
-rw-r--r--svx/inc/svdibrow.hxx144
-rw-r--r--svx/inc/svditer.hxx81
-rw-r--r--svx/inc/svdpomv.hxx58
-rw-r--r--svx/inc/svdshort.hxx91
-rw-r--r--svx/inc/svdstr.hrc789
-rw-r--r--svx/inc/svdviter.hxx126
-rw-r--r--svx/inc/svimbase.hxx216
-rw-r--r--svx/inc/svx/AccessibleControlShape.hxx216
-rw-r--r--svx/inc/svx/AccessibleGraphicShape.hxx123
-rw-r--r--svx/inc/svx/AccessibleOLEShape.hxx133
-rwxr-xr-xsvx/inc/svx/AccessibleShape.hxx410
-rw-r--r--svx/inc/svx/AccessibleShapeInfo.hxx109
-rw-r--r--svx/inc/svx/AccessibleShapeTreeInfo.hxx216
-rw-r--r--svx/inc/svx/AccessibleTableShape.hxx132
-rw-r--r--svx/inc/svx/AccessibleTextHelper.hxx431
-rw-r--r--svx/inc/svx/ChildrenManager.hxx216
-rw-r--r--svx/inc/svx/EnhancedCustomShapeFunctionParser.hxx214
-rw-r--r--svx/inc/svx/IAccessibleParent.hxx95
-rw-r--r--svx/inc/svx/IAccessibleViewForwarder.hxx132
-rw-r--r--svx/inc/svx/IAccessibleViewForwarderListener.hxx74
-rwxr-xr-xsvx/inc/svx/ShapeTypeHandler.hxx237
-rw-r--r--svx/inc/svx/SmartTagCtl.hxx86
-rw-r--r--svx/inc/svx/SmartTagItem.hxx96
-rw-r--r--svx/inc/svx/SmartTagMgr.hxx234
-rw-r--r--svx/inc/svx/SpellDialogChildWindow.hxx121
-rw-r--r--svx/inc/svx/SvxShapeTypes.hxx88
-rw-r--r--svx/inc/svx/algitem.hxx202
-rw-r--r--svx/inc/svx/bmpmask.hxx200
-rw-r--r--svx/inc/svx/camera3d.hxx94
-rw-r--r--svx/inc/svx/charmap.hxx140
-rw-r--r--svx/inc/svx/checklbx.hxx94
-rw-r--r--svx/inc/svx/colrctrl.hxx145
-rw-r--r--svx/inc/svx/contdlg.hxx142
-rw-r--r--svx/inc/svx/ctredlin.hxx431
-rw-r--r--svx/inc/svx/cube3d.hxx98
-rw-r--r--svx/inc/svx/dataaccessdescriptor.hxx164
-rw-r--r--svx/inc/svx/databaselocationinput.hxx97
-rw-r--r--svx/inc/svx/dbaexchange.hxx299
-rw-r--r--svx/inc/svx/dbaobjectex.hxx94
-rwxr-xr-xsvx/inc/svx/dbcharsethelper.hxx66
-rwxr-xr-xsvx/inc/svx/dbtoolsclient.hxx235
-rw-r--r--svx/inc/svx/def3d.hxx54
-rw-r--r--svx/inc/svx/deflt3d.hxx135
-rw-r--r--svx/inc/svx/dialmgr.hxx49
-rw-r--r--svx/inc/svx/dialogs.hrc1055
-rw-r--r--svx/inc/svx/dlgctl3d.hxx215
-rw-r--r--svx/inc/svx/dlgctrl.hxx539
-rw-r--r--svx/inc/svx/dstribut_enum.hxx53
-rw-r--r--svx/inc/svx/e3ditem.hxx73
-rw-r--r--svx/inc/svx/e3dsceneupdater.hxx74
-rw-r--r--svx/inc/svx/e3dundo.hxx124
-rw-r--r--svx/inc/svx/exthelpid.hrc55
-rw-r--r--svx/inc/svx/extrud3d.hxx113
-rw-r--r--svx/inc/svx/extrusionbar.hxx61
-rw-r--r--svx/inc/svx/f3dchild.hxx51
-rw-r--r--svx/inc/svx/fillctrl.hxx108
-rw-r--r--svx/inc/svx/float3d.hxx313
-rw-r--r--svx/inc/svx/fmdmod.hxx45
-rw-r--r--svx/inc/svx/fmdpage.hxx76
-rw-r--r--svx/inc/svx/fmglob.hxx66
-rw-r--r--svx/inc/svx/fmgridcl.hxx216
-rw-r--r--svx/inc/svx/fmmodel.hxx102
-rw-r--r--svx/inc/svx/fmpage.hxx87
-rw-r--r--svx/inc/svx/fmsearch.hxx95
-rw-r--r--svx/inc/svx/fmshell.hxx169
-rw-r--r--svx/inc/svx/fmtools.hxx233
-rw-r--r--svx/inc/svx/fmview.hxx166
-rw-r--r--svx/inc/svx/fntctl.hxx69
-rw-r--r--svx/inc/svx/fntctrl.hxx90
-rw-r--r--svx/inc/svx/fntszctl.hxx69
-rw-r--r--svx/inc/svx/fontwork.hxx197
-rw-r--r--svx/inc/svx/fontworkbar.hxx61
-rw-r--r--svx/inc/svx/framebordertype.hxx65
-rw-r--r--svx/inc/svx/framelink.hxx727
-rw-r--r--svx/inc/svx/framelinkarray.hxx537
-rw-r--r--svx/inc/svx/frmdirlbox.hxx106
-rw-r--r--svx/inc/svx/frmsel.hxx204
-rw-r--r--svx/inc/svx/gallery1.hxx183
-rw-r--r--svx/inc/svx/galmisc.hxx262
-rw-r--r--svx/inc/svx/graphctl.hxx193
-rw-r--r--svx/inc/svx/grfcrop.hxx80
-rw-r--r--svx/inc/svx/grfflt.hxx69
-rw-r--r--svx/inc/svx/gridctrl.hxx613
-rw-r--r--svx/inc/svx/hdft.hxx136
-rw-r--r--svx/inc/svx/helperhittest3d.hxx110
-rw-r--r--svx/inc/svx/ifaceids.hxx45
-rw-r--r--svx/inc/svx/ipolypolygoneditorcontroller.hxx76
-rw-r--r--svx/inc/svx/itemwin.hxx197
-rw-r--r--svx/inc/svx/langbox.hxx128
-rw-r--r--svx/inc/svx/lathe3d.hxx125
-rw-r--r--svx/inc/svx/msdffdef.hxx1223
-rw-r--r--svx/inc/svx/numfmtsh.hxx267
-rw-r--r--svx/inc/svx/numinf.hxx100
-rw-r--r--svx/inc/svx/obj3d.hxx326
-rw-r--r--svx/inc/svx/pagectrl.hxx170
-rw-r--r--svx/inc/svx/pageitem.hxx157
-rw-r--r--svx/inc/svx/paraprev.hxx113
-rw-r--r--svx/inc/svx/polygn3d.hxx89
-rw-r--r--svx/inc/svx/polypolygoneditor.hxx76
-rw-r--r--svx/inc/svx/polysc3d.hxx50
-rw-r--r--svx/inc/svx/rectenum.hxx46
-rw-r--r--svx/inc/svx/ruler.hxx270
-rw-r--r--svx/inc/svx/scene3d.hxx253
-rw-r--r--svx/inc/svx/sdangitm.hxx59
-rw-r--r--svx/inc/svx/sdasaitm.hxx82
-rw-r--r--svx/inc/svx/sdasitm.hxx146
-rw-r--r--svx/inc/svx/sderitm.hxx42
-rw-r--r--svx/inc/svx/sdgcoitm.hxx86
-rw-r--r--svx/inc/svx/sdgcpitm.hxx54
-rw-r--r--svx/inc/svx/sdggaitm.hxx55
-rw-r--r--svx/inc/svx/sdginitm.hxx52
-rw-r--r--svx/inc/svx/sdgluitm.hxx69
-rw-r--r--svx/inc/svx/sdgmoitm.hxx62
-rw-r--r--svx/inc/svx/sdgtritm.hxx51
-rw-r--r--svx/inc/svx/sdmetitm.hxx61
-rw-r--r--svx/inc/svx/sdooitm.hxx58
-rw-r--r--svx/inc/svx/sdprcitm.hxx79
-rw-r--r--svx/inc/svx/sdr/animation/animationstate.hxx83
-rw-r--r--svx/inc/svx/sdr/animation/objectanimator.hxx57
-rw-r--r--svx/inc/svx/sdr/animation/scheduler.hxx159
-rw-r--r--svx/inc/svx/sdr/attribute/sdrallattribute.hxx198
-rw-r--r--svx/inc/svx/sdr/attribute/sdrformtextattribute.hxx104
-rw-r--r--svx/inc/svx/sdr/attribute/sdrformtextoutlineattribute.hxx70
-rw-r--r--svx/inc/svx/sdr/attribute/sdrtextattribute.hxx138
-rw-r--r--svx/inc/svx/sdr/contact/displayinfo.hxx129
-rw-r--r--svx/inc/svx/sdr/contact/objectcontact.hxx229
-rw-r--r--svx/inc/svx/sdr/contact/objectcontactofobjlistpainter.hxx144
-rw-r--r--svx/inc/svx/sdr/contact/objectcontactofpageview.hxx153
-rw-r--r--svx/inc/svx/sdr/contact/objectcontacttools.hxx62
-rw-r--r--svx/inc/svx/sdr/contact/viewcontact.hxx172
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3d.hxx120
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dcube.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dextrude.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dlathe.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dpolygon.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dscene.hxx129
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofe3dsphere.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofgraphic.hxx94
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofgroup.hxx75
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofmasterpagedescriptor.hxx85
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofpageobj.hxx80
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrcaptionobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrcircobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdredgeobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrmeasureobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrmediaobj.hxx89
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrobj.hxx99
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrobjcustomshape.hxx73
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrole2obj.hxx81
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrpage.hxx311
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrpathobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofsdrrectobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactoftextobj.hxx65
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofunocontrol.hxx101
-rw-r--r--svx/inc/svx/sdr/contact/viewcontactofvirtobj.hxx70
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontact.hxx157
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofe3d.hxx82
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofe3dscene.hxx62
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofgraphic.hxx81
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx62
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofmasterpagedescriptor.hxx65
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofpageobj.hxx71
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx72
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx61
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofsdrole2obj.hxx62
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofsdrpage.hxx246
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofunocontrol.hxx142
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactredirector.hxx74
-rw-r--r--svx/inc/svx/sdr/event/eventhandler.hxx140
-rw-r--r--svx/inc/svx/sdr/overlay/overlayanimatedbitmapex.hxx105
-rw-r--r--svx/inc/svx/sdr/overlay/overlaybitmapex.hxx73
-rw-r--r--svx/inc/svx/sdr/overlay/overlaycrosshair.hxx59
-rw-r--r--svx/inc/svx/sdr/overlay/overlayhatchrect.hxx81
-rw-r--r--svx/inc/svx/sdr/overlay/overlayhelpline.hxx68
-rw-r--r--svx/inc/svx/sdr/overlay/overlayline.hxx68
-rw-r--r--svx/inc/svx/sdr/overlay/overlaymanager.hxx150
-rw-r--r--svx/inc/svx/sdr/overlay/overlaymanagerbuffered.hxx113
-rw-r--r--svx/inc/svx/sdr/overlay/overlayobject.hxx203
-rw-r--r--svx/inc/svx/sdr/overlay/overlayobjectcell.hxx70
-rw-r--r--svx/inc/svx/sdr/overlay/overlayobjectlist.hxx85
-rw-r--r--svx/inc/svx/sdr/overlay/overlaypolypolygon.hxx67
-rw-r--r--svx/inc/svx/sdr/overlay/overlayprimitive2dsequenceobject.hxx70
-rw-r--r--svx/inc/svx/sdr/overlay/overlayrollingrectangle.hxx85
-rw-r--r--svx/inc/svx/sdr/overlay/overlayselection.hxx95
-rw-r--r--svx/inc/svx/sdr/overlay/overlaytools.hxx278
-rw-r--r--svx/inc/svx/sdr/overlay/overlaytriangle.hxx72
-rw-r--r--svx/inc/svx/sdr/primitive2d/primitiveFactory2d.hxx84
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrattributecreator.hxx111
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrcaptionprimitive2d.hxx87
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrconnectorprimitive2d.hxx76
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrcustomshapeprimitive2d.hxx97
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrdecompositiontools.hxx88
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrellipseprimitive2d.hxx120
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrgrafprimitive2d.hxx85
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrmeasureprimitive2d.hxx134
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrole2primitive2d.hxx79
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrolecontentprimitive2d.hxx92
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrpathprimitive2d.hxx80
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrprimitivetools.hxx65
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrrectangleprimitive2d.hxx90
-rw-r--r--svx/inc/svx/sdr/primitive2d/sdrtextprimitive2d.hxx305
-rw-r--r--svx/inc/svx/sdr/primitive2d/svx_primitivetypes2d.hxx64
-rw-r--r--svx/inc/svx/sdr/primitive3d/sdrattributecreator3d.hxx63
-rw-r--r--svx/inc/svx/sdr/properties/attributeproperties.hxx101
-rw-r--r--svx/inc/svx/sdr/properties/captionproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/circleproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/connectorproperties.hxx71
-rw-r--r--svx/inc/svx/sdr/properties/customshapeproperties.hxx94
-rw-r--r--svx/inc/svx/sdr/properties/defaultproperties.hxx112
-rw-r--r--svx/inc/svx/sdr/properties/e3dcompoundproperties.hxx79
-rw-r--r--svx/inc/svx/sdr/properties/e3dextrudeproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/e3dlatheproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/e3dproperties.hxx72
-rw-r--r--svx/inc/svx/sdr/properties/e3dsceneproperties.hxx96
-rw-r--r--svx/inc/svx/sdr/properties/e3dsphereproperties.hxx66
-rw-r--r--svx/inc/svx/sdr/properties/emptyproperties.hxx104
-rw-r--r--svx/inc/svx/sdr/properties/graphicproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/groupproperties.hxx129
-rw-r--r--svx/inc/svx/sdr/properties/itemsettools.hxx76
-rw-r--r--svx/inc/svx/sdr/properties/measureproperties.hxx75
-rw-r--r--svx/inc/svx/sdr/properties/pageproperties.hxx80
-rw-r--r--svx/inc/svx/sdr/properties/properties.hxx197
-rw-r--r--svx/inc/svx/sdr/properties/rectangleproperties.hxx69
-rw-r--r--svx/inc/svx/sdr/properties/textproperties.hxx97
-rw-r--r--svx/inc/svx/sdr/table/tabledesign.hxx54
-rw-r--r--svx/inc/svx/sdrcomment.hxx105
-rw-r--r--svx/inc/svx/sdrhittesthelper.hxx78
-rw-r--r--svx/inc/svx/sdrmasterpagedescriptor.hxx97
-rw-r--r--svx/inc/svx/sdrobjectuser.hxx60
-rw-r--r--svx/inc/svx/sdrpageuser.hxx60
-rw-r--r--svx/inc/svx/sdrpagewindow.hxx142
-rw-r--r--svx/inc/svx/sdshcitm.hxx46
-rw-r--r--svx/inc/svx/sdshitm.hxx44
-rw-r--r--svx/inc/svx/sdshtitm.hxx42
-rw-r--r--svx/inc/svx/sdsxyitm.hxx51
-rw-r--r--svx/inc/svx/sdtaaitm.hxx47
-rw-r--r--svx/inc/svx/sdtacitm.hxx40
-rw-r--r--svx/inc/svx/sdtaditm.hxx61
-rw-r--r--svx/inc/svx/sdtagitm.hxx51
-rw-r--r--svx/inc/svx/sdtaiitm.hxx45
-rw-r--r--svx/inc/svx/sdtaitm.hxx89
-rw-r--r--svx/inc/svx/sdtakitm.hxx105
-rw-r--r--svx/inc/svx/sdtayitm.hxx44
-rw-r--r--svx/inc/svx/sdtcfitm.hxx42
-rw-r--r--svx/inc/svx/sdtditm.hxx60
-rw-r--r--svx/inc/svx/sdtfchim.hxx57
-rw-r--r--svx/inc/svx/sdtfsitm.hxx71
-rw-r--r--svx/inc/svx/sdtmfitm.hxx69
-rw-r--r--svx/inc/svx/sdynitm.hxx55
-rw-r--r--svx/inc/svx/selectioncontroller.hxx86
-rwxr-xr-xsvx/inc/svx/shapeproperty.hxx59
-rw-r--r--svx/inc/svx/shapepropertynotifier.hxx148
-rw-r--r--svx/inc/svx/simptabl.hxx180
-rw-r--r--svx/inc/svx/sphere3d.hxx91
-rw-r--r--svx/inc/svx/splitcelldlg.hxx62
-rw-r--r--svx/inc/svx/stddlg.hxx51
-rw-r--r--svx/inc/svx/strarray.hxx53
-rw-r--r--svx/inc/svx/subtoolboxcontrol.hxx55
-rw-r--r--svx/inc/svx/svdattr.hxx76
-rw-r--r--svx/inc/svx/svdattrx.hxx85
-rw-r--r--svx/inc/svx/svdcrtv.hxx209
-rw-r--r--svx/inc/svx/svddef.hxx312
-rw-r--r--svx/inc/svx/svddrag.hxx192
-rw-r--r--svx/inc/svx/svddrgmt.hxx324
-rw-r--r--svx/inc/svx/svddrgv.hxx321
-rw-r--r--svx/inc/svx/svdedtv.hxx473
-rw-r--r--svx/inc/svx/svdedxv.hxx306
-rw-r--r--svx/inc/svx/svdetc.hxx356
-rw-r--r--svx/inc/svx/svdfield.hxx36
-rw-r--r--svx/inc/svx/svdglev.hxx119
-rw-r--r--svx/inc/svx/svdglue.hxx151
-rw-r--r--svx/inc/svx/svdhdl.hxx520
-rw-r--r--svx/inc/svx/svdhlpln.hxx107
-rw-r--r--svx/inc/svx/svdlayer.hxx160
-rw-r--r--svx/inc/svx/svdmark.hxx412
-rw-r--r--svx/inc/svx/svdmodel.hxx767
-rw-r--r--svx/inc/svx/svdmrkv.hxx538
-rw-r--r--svx/inc/svx/svdoashp.hxx264
-rw-r--r--svx/inc/svx/svdoattr.hxx89
-rw-r--r--svx/inc/svx/svdobj.hxx1178
-rw-r--r--svx/inc/svx/svdocapt.hxx174
-rw-r--r--svx/inc/svx/svdocirc.hxx156
-rw-r--r--svx/inc/svx/svdoedge.hxx439
-rw-r--r--svx/inc/svx/svdograf.hxx233
-rw-r--r--svx/inc/svx/svdogrp.hxx127
-rw-r--r--svx/inc/svx/svdomeas.hxx220
-rw-r--r--svx/inc/svx/svdomedia.hxx92
-rw-r--r--svx/inc/svx/svdoole2.hxx191
-rw-r--r--svx/inc/svx/svdopage.hxx79
-rw-r--r--svx/inc/svx/svdopath.hxx196
-rw-r--r--svx/inc/svx/svdorect.hxx142
-rw-r--r--svx/inc/svx/svdotable.hxx345
-rw-r--r--svx/inc/svx/svdotext.hxx612
-rw-r--r--svx/inc/svx/svdouno.hxx163
-rw-r--r--svx/inc/svx/svdoutl.hxx60
-rw-r--r--svx/inc/svx/svdovirt.hxx167
-rw-r--r--svx/inc/svx/svdpage.hxx601
-rw-r--r--svx/inc/svx/svdpagv.hxx294
-rw-r--r--svx/inc/svx/svdpntv.hxx577
-rw-r--r--svx/inc/svx/svdpoev.hxx110
-rw-r--r--svx/inc/svx/svdpool.hxx63
-rw-r--r--svx/inc/svx/svdsnpv.hxx338
-rw-r--r--svx/inc/svx/svdsob.hxx133
-rw-r--r--svx/inc/svx/svdtext.hxx88
-rw-r--r--svx/inc/svx/svdtrans.hxx326
-rw-r--r--svx/inc/svx/svdtypes.hxx169
-rw-r--r--svx/inc/svx/svdundo.hxx882
-rw-r--r--svx/inc/svx/svdview.hxx339
-rw-r--r--svx/inc/svx/svdxcgv.hxx162
-rw-r--r--svx/inc/svx/svx3ditems.hxx377
-rw-r--r--svx/inc/svx/svxdlg.hxx507
-rw-r--r--svx/inc/svx/svxdllapi.h40
-rw-r--r--svx/inc/svx/svxids.hrc1315
-rw-r--r--svx/inc/svx/svxitems.hrc174
-rw-r--r--svx/inc/svx/sxallitm.hxx69
-rw-r--r--svx/inc/svx/sxcaitm.hxx60
-rw-r--r--svx/inc/svx/sxcecitm.hxx93
-rw-r--r--svx/inc/svx/sxcgitm.hxx43
-rw-r--r--svx/inc/svx/sxciaitm.hxx51
-rw-r--r--svx/inc/svx/sxcikitm.hxx55
-rw-r--r--svx/inc/svx/sxcllitm.hxx58
-rw-r--r--svx/inc/svx/sxctitm.hxx52
-rw-r--r--svx/inc/svx/sxekitm.hxx58
-rw-r--r--svx/inc/svx/sxelditm.hxx64
-rw-r--r--svx/inc/svx/sxenditm.hxx78
-rw-r--r--svx/inc/svx/sxfiitm.hxx57
-rw-r--r--svx/inc/svx/sxlayitm.hxx56
-rw-r--r--svx/inc/svx/sxlogitm.hxx51
-rw-r--r--svx/inc/svx/sxmbritm.hxx48
-rw-r--r--svx/inc/svx/sxmfsitm.hxx42
-rw-r--r--svx/inc/svx/sxmkitm.hxx55
-rw-r--r--svx/inc/svx/sxmlhitm.hxx85
-rw-r--r--svx/inc/svx/sxmoitm.hxx41
-rw-r--r--svx/inc/svx/sxmovitm.hxx51
-rw-r--r--svx/inc/svx/sxmsitm.hxx43
-rw-r--r--svx/inc/svx/sxmspitm.hxx51
-rw-r--r--svx/inc/svx/sxmsuitm.hxx40
-rw-r--r--svx/inc/svx/sxmtaitm.hxx51
-rw-r--r--svx/inc/svx/sxmtfitm.hxx58
-rw-r--r--svx/inc/svx/sxmtpitm.hxx77
-rw-r--r--svx/inc/svx/sxmtritm.hxx49
-rw-r--r--svx/inc/svx/sxmuitm.hxx54
-rw-r--r--svx/inc/svx/sxoneitm.hxx69
-rw-r--r--svx/inc/svx/sxonitm.hxx44
-rw-r--r--svx/inc/svx/sxopitm.hxx42
-rw-r--r--svx/inc/svx/sxraitm.hxx42
-rw-r--r--svx/inc/svx/sxreaitm.hxx56
-rw-r--r--svx/inc/svx/sxreoitm.hxx56
-rw-r--r--svx/inc/svx/sxroaitm.hxx42
-rw-r--r--svx/inc/svx/sxrooitm.hxx42
-rw-r--r--svx/inc/svx/sxsaitm.hxx42
-rw-r--r--svx/inc/svx/sxsalitm.hxx51
-rw-r--r--svx/inc/svx/sxsiitm.hxx45
-rw-r--r--svx/inc/svx/sxsoitm.hxx51
-rw-r--r--svx/inc/svx/sxtraitm.hxx69
-rw-r--r--svx/inc/svx/tabarea.hxx76
-rw-r--r--svx/inc/svx/tabline.hxx66
-rw-r--r--svx/inc/svx/tbcontrl.hxx447
-rw-r--r--svx/inc/svx/tbxcolorupdate.hxx85
-rw-r--r--svx/inc/svx/ucsubset.hrc155
-rw-r--r--svx/inc/svx/ucsubset.hxx81
-rw-r--r--svx/inc/svx/unomid.hxx117
-rw-r--r--svx/inc/svx/unomod.hxx66
-rw-r--r--svx/inc/svx/unomodel.hxx112
-rw-r--r--svx/inc/svx/unopage.hxx160
-rw-r--r--svx/inc/svx/unoprov.hxx149
-rw-r--r--svx/inc/svx/unoshape.hxx892
-rwxr-xr-xsvx/inc/svx/unoshprp.hxx533
-rw-r--r--svx/inc/svx/unoshtxt.hxx99
-rw-r--r--svx/inc/svx/view3d.hxx277
-rw-r--r--svx/inc/svx/viewlayoutitem.hxx63
-rw-r--r--svx/inc/svx/viewpt3d.hxx132
-rw-r--r--svx/inc/svx/volume3d.hxx33
-rw-r--r--svx/inc/svx/xbitmap.hxx100
-rw-r--r--svx/inc/svx/xbtmpit.hxx76
-rw-r--r--svx/inc/svx/xcolit.hxx67
-rw-r--r--svx/inc/svx/xdash.hxx77
-rw-r--r--svx/inc/svx/xdef.hxx101
-rw-r--r--svx/inc/svx/xenum.hxx62
-rw-r--r--svx/inc/svx/xfillit.hxx51
-rw-r--r--svx/inc/svx/xfillit0.hxx63
-rw-r--r--svx/inc/svx/xflasit.hxx54
-rw-r--r--svx/inc/svx/xflbckit.hxx58
-rw-r--r--svx/inc/svx/xflbmpit.hxx60
-rw-r--r--svx/inc/svx/xflbmsli.hxx56
-rw-r--r--svx/inc/svx/xflbmsxy.hxx88
-rw-r--r--svx/inc/svx/xflbmtit.hxx56
-rw-r--r--svx/inc/svx/xflboxy.hxx79
-rw-r--r--svx/inc/svx/xflbstit.hxx56
-rw-r--r--svx/inc/svx/xflbtoxy.hxx79
-rw-r--r--svx/inc/svx/xflclit.hxx63
-rw-r--r--svx/inc/svx/xflftrit.hxx72
-rw-r--r--svx/inc/svx/xflgrit.hxx74
-rw-r--r--svx/inc/svx/xflhtit.hxx76
-rw-r--r--svx/inc/svx/xfltrit.hxx54
-rw-r--r--svx/inc/svx/xftadit.hxx55
-rw-r--r--svx/inc/svx/xftdiit.hxx50
-rw-r--r--svx/inc/svx/xftmrit.hxx50
-rw-r--r--svx/inc/svx/xftouit.hxx50
-rw-r--r--svx/inc/svx/xftsfit.hxx55
-rw-r--r--svx/inc/svx/xftshcit.hxx53
-rw-r--r--svx/inc/svx/xftshit.hxx56
-rw-r--r--svx/inc/svx/xftshtit.hxx49
-rw-r--r--svx/inc/svx/xftshxy.hxx67
-rw-r--r--svx/inc/svx/xftstit.hxx50
-rw-r--r--svx/inc/svx/xgrad.hxx86
-rw-r--r--svx/inc/svx/xgrscit.hxx54
-rw-r--r--svx/inc/svx/xhatch.hxx65
-rw-r--r--svx/inc/svx/xit.hxx88
-rw-r--r--svx/inc/svx/xlineit.hxx54
-rw-r--r--svx/inc/svx/xlineit0.hxx59
-rw-r--r--svx/inc/svx/xlinjoit.hxx60
-rw-r--r--svx/inc/svx/xlnasit.hxx55
-rw-r--r--svx/inc/svx/xlnclit.hxx58
-rw-r--r--svx/inc/svx/xlndsit.hxx80
-rw-r--r--svx/inc/svx/xlnedcit.hxx55
-rw-r--r--svx/inc/svx/xlnedit.hxx72
-rw-r--r--svx/inc/svx/xlnedwit.hxx59
-rw-r--r--svx/inc/svx/xlnstcit.hxx56
-rw-r--r--svx/inc/svx/xlnstit.hxx72
-rw-r--r--svx/inc/svx/xlnstwit.hxx58
-rw-r--r--svx/inc/svx/xlntrit.hxx54
-rw-r--r--svx/inc/svx/xlnwtit.hxx55
-rw-r--r--svx/inc/svx/xpoly.hxx216
-rw-r--r--svx/inc/svx/xpool.hxx60
-rw-r--r--svx/inc/svx/xsetit.hxx53
-rw-r--r--svx/inc/svx/xsflclit.hxx58
-rw-r--r--svx/inc/svx/xtable.hxx653
-rw-r--r--svx/inc/svx/xtextit.hxx48
-rw-r--r--svx/inc/svx/xtextit0.hxx72
-rw-r--r--svx/inc/svx/zoomitem.hxx91
-rw-r--r--svx/inc/svx/zoomsliderctrl.hxx62
-rw-r--r--svx/inc/svx/zoomslideritem.hxx68
-rw-r--r--svx/inc/svxempty.hxx45
-rw-r--r--svx/inc/svxerr.hxx110
-rw-r--r--svx/inc/svxgrahicitem.hxx54
-rw-r--r--svx/inc/swframeexample.hxx101
-rw-r--r--svx/inc/swframeposstrings.hxx94
-rw-r--r--svx/inc/swframevalidation.hxx87
-rw-r--r--svx/inc/tbunocontroller.hxx88
-rw-r--r--svx/inc/tbxalign.hxx54
-rw-r--r--svx/inc/tbxcolor.hxx71
-rw-r--r--svx/inc/tbxctl.hxx62
-rw-r--r--svx/inc/tbxcustomshapes.hxx68
-rw-r--r--svx/inc/tbxdraw.hxx75
-rw-r--r--svx/inc/txencbox.hxx121
-rw-r--r--svx/inc/txenctab.hxx55
-rw-r--r--svx/inc/uiks.hxx89
-rw-r--r--svx/inc/unoapi.hxx102
-rw-r--r--svx/inc/unofill.hxx44
-rw-r--r--svx/inc/unomaster.hxx66
-rw-r--r--svx/inc/unomlstr.hxx57
-rw-r--r--svx/inc/unopool.hxx96
-rw-r--r--svx/inc/unoshcol.hxx101
-rw-r--r--svx/inc/verttexttbxctrl.hxx67
-rw-r--r--svx/inc/wrapfield.hxx58
-rw-r--r--svx/inc/xattr.hxx67
-rw-r--r--svx/inc/xexch.hxx67
-rw-r--r--svx/inc/xmleohlp.hxx149
-rw-r--r--svx/inc/xmlexchg.hxx104
-rw-r--r--svx/inc/xmlgrhlp.hxx163
-rw-r--r--svx/inc/xmlsecctrl.hxx59
-rw-r--r--svx/inc/xoutbmp.hxx97
-rw-r--r--svx/inc/xpolyimp.hxx106
-rw-r--r--svx/inc/zoom_def.hxx8
-rw-r--r--svx/inc/zoomctrl.hxx59
-rw-r--r--svx/prj/build.lst37
-rw-r--r--svx/prj/d.lst691
-rw-r--r--svx/qa/unoapi/knownissues.xcl81
-rw-r--r--svx/qa/unoapi/makefile.mk40
-rw-r--r--svx/qa/unoapi/svx.sce31
-rw-r--r--svx/qa/unoapi/testdocuments/SvxShape.sxdbin0 -> 6344 bytes
-rw-r--r--svx/qa/unoapi/testdocuments/crazy-blue.jpgbin0 -> 4451 bytes
-rw-r--r--svx/qa/unoapi/testdocuments/space-metal.jpgbin0 -> 4313 bytes
-rw-r--r--svx/sdi/fmslots.sdi770
-rw-r--r--svx/sdi/makefile.mk57
-rw-r--r--svx/sdi/svx.sdi15087
-rw-r--r--svx/sdi/svxitems.sdi698
-rw-r--r--svx/sdi/svxslots.hrc33
-rw-r--r--svx/sdi/svxslots.sdi77
-rw-r--r--svx/sdi/xoitems.sdi163
-rw-r--r--svx/source/accessibility/AccessibleControlShape.cxx920
-rw-r--r--svx/source/accessibility/AccessibleEmptyEditSource.cxx354
-rw-r--r--svx/source/accessibility/AccessibleEmptyEditSource.hxx100
-rw-r--r--svx/source/accessibility/AccessibleFrameSelector.cxx740
-rw-r--r--svx/source/accessibility/AccessibleGraphicShape.cxx212
-rw-r--r--svx/source/accessibility/AccessibleOLEShape.cxx232
-rwxr-xr-xsvx/source/accessibility/AccessibleShape.cxx1244
-rw-r--r--svx/source/accessibility/AccessibleShapeInfo.cxx84
-rw-r--r--svx/source/accessibility/AccessibleShapeTreeInfo.cxx223
-rw-r--r--svx/source/accessibility/AccessibleTextEventQueue.cxx111
-rw-r--r--svx/source/accessibility/AccessibleTextEventQueue.hxx103
-rw-r--r--svx/source/accessibility/AccessibleTextHelper.cxx2081
-rw-r--r--svx/source/accessibility/ChildrenManager.cxx180
-rw-r--r--svx/source/accessibility/ChildrenManagerImpl.cxx1098
-rw-r--r--svx/source/accessibility/ChildrenManagerImpl.hxx577
-rw-r--r--svx/source/accessibility/DGColorNameLookUp.cxx148
-rw-r--r--svx/source/accessibility/DescriptionGenerator.cxx484
-rw-r--r--svx/source/accessibility/GraphCtlAccessibleContext.cxx1027
-rwxr-xr-xsvx/source/accessibility/ShapeTypeHandler.cxx338
-rw-r--r--svx/source/accessibility/SvxShapeTypes.cxx207
-rw-r--r--svx/source/accessibility/accessibility.src262
-rw-r--r--svx/source/accessibility/charmapacc.cxx891
-rwxr-xr-xsvx/source/accessibility/makefile.mk68
-rw-r--r--svx/source/accessibility/svxrectctaccessiblecontext.cxx1206
-rw-r--r--svx/source/customshapes/EnhancedCustomShape2d.cxx2154
-rw-r--r--svx/source/customshapes/EnhancedCustomShape2d.hxx209
-rw-r--r--svx/source/customshapes/EnhancedCustomShape3d.cxx752
-rw-r--r--svx/source/customshapes/EnhancedCustomShape3d.hxx78
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeEngine.cxx471
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeEngine.hxx124
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeFontWork.cxx910
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeFontWork.hxx45
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeFunctionParser.cxx1212
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeGeometry.cxx8273
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeGeometry.hxx101
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeHandle.cxx93
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeHandle.hxx69
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx321
-rw-r--r--svx/source/customshapes/EnhancedCustomShapeTypeNames.hxx39
-rw-r--r--svx/source/customshapes/makefile.mk71
-rw-r--r--svx/source/customshapes/tbxcustomshapes.cxx204
-rw-r--r--svx/source/dialog/SpellDialogChildWindow.cxx119
-rw-r--r--svx/source/dialog/_bmpmask.cxx1241
-rw-r--r--svx/source/dialog/_contdlg.cxx1161
-rw-r--r--svx/source/dialog/bmpmask.hrc62
-rw-r--r--svx/source/dialog/bmpmask.src358
-rw-r--r--svx/source/dialog/charmap.cxx893
-rw-r--r--svx/source/dialog/checklbx.cxx270
-rw-r--r--svx/source/dialog/connctrl.cxx387
-rw-r--r--svx/source/dialog/contdlg.hrc87
-rw-r--r--svx/source/dialog/contdlg.src288
-rw-r--r--svx/source/dialog/contimp.hxx127
-rw-r--r--svx/source/dialog/contwnd.cxx358
-rw-r--r--svx/source/dialog/contwnd.hxx90
-rw-r--r--svx/source/dialog/ctredlin.cxx1531
-rw-r--r--svx/source/dialog/ctredlin.hrc70
-rw-r--r--svx/source/dialog/ctredlin.src365
-rw-r--r--svx/source/dialog/databaseregistrationui.cxx69
-rw-r--r--svx/source/dialog/dialcontrol.cxx572
-rw-r--r--svx/source/dialog/dialmgr.cxx54
-rw-r--r--svx/source/dialog/dlgctl3d.cxx1314
-rw-r--r--svx/source/dialog/dlgctrl.cxx2287
-rw-r--r--svx/source/dialog/dlgctrl.src34
-rw-r--r--svx/source/dialog/dlgutil.cxx55
-rw-r--r--svx/source/dialog/docrecovery.cxx2182
-rw-r--r--svx/source/dialog/docrecovery.hrc292
-rw-r--r--svx/source/dialog/docrecovery.src635
-rw-r--r--svx/source/dialog/fntctrl.cxx851
-rw-r--r--svx/source/dialog/fontlb.cxx189
-rw-r--r--svx/source/dialog/fontwork.cxx1283
-rw-r--r--svx/source/dialog/fontwork.hrc67
-rw-r--r--svx/source/dialog/fontwork.src555
-rw-r--r--svx/source/dialog/framelink.cxx1531
-rw-r--r--svx/source/dialog/framelinkarray.cxx1247
-rw-r--r--svx/source/dialog/frmdirlbox.cxx127
-rw-r--r--svx/source/dialog/frmsel.cxx1205
-rw-r--r--svx/source/dialog/frmsel.src70
-rw-r--r--svx/source/dialog/graphctl.cxx960
-rw-r--r--svx/source/dialog/grfflt.cxx793
-rw-r--r--svx/source/dialog/hdft.cxx981
-rw-r--r--svx/source/dialog/hdft.hrc52
-rw-r--r--svx/source/dialog/hdft.src365
-rw-r--r--svx/source/dialog/hyperdlg.cxx107
-rw-r--r--svx/source/dialog/hyprdlg.hxx143
-rw-r--r--svx/source/dialog/hyprlink.cxx999
-rw-r--r--svx/source/dialog/hyprlink.hrc58
-rw-r--r--svx/source/dialog/hyprlink.hxx43
-rw-r--r--svx/source/dialog/hyprlink.src167
-rw-r--r--svx/source/dialog/imapdlg.cxx1055
-rw-r--r--svx/source/dialog/imapdlg.hrc106
-rw-r--r--svx/source/dialog/imapdlg.src365
-rw-r--r--svx/source/dialog/imapimp.hxx56
-rw-r--r--svx/source/dialog/imapwnd.cxx1069
-rw-r--r--svx/source/dialog/imapwnd.hxx226
-rw-r--r--svx/source/dialog/langbox.cxx526
-rw-r--r--svx/source/dialog/langbox.src49
-rw-r--r--svx/source/dialog/language.src66
-rw-r--r--svx/source/dialog/makefile.mk154
-rw-r--r--svx/source/dialog/measctrl.cxx199
-rw-r--r--svx/source/dialog/optgrid.cxx419
-rw-r--r--svx/source/dialog/optgrid.hrc71
-rw-r--r--svx/source/dialog/optgrid.src353
-rw-r--r--svx/source/dialog/orienthelper.cxx206
-rw-r--r--svx/source/dialog/pagectrl.cxx421
-rw-r--r--svx/source/dialog/paraprev.cxx238
-rw-r--r--svx/source/dialog/passwd.cxx136
-rw-r--r--svx/source/dialog/passwd.hrc51
-rw-r--r--svx/source/dialog/passwd.src153
-rw-r--r--svx/source/dialog/pfiledlg.cxx285
-rw-r--r--svx/source/dialog/prtqry.cxx62
-rw-r--r--svx/source/dialog/prtqry.src74
-rw-r--r--svx/source/dialog/relfld.cxx146
-rw-r--r--svx/source/dialog/rlrcitem.cxx166
-rw-r--r--svx/source/dialog/rlrcitem.hxx51
-rw-r--r--svx/source/dialog/rubydialog.cxx990
-rw-r--r--svx/source/dialog/rubydialog.hrc53
-rw-r--r--svx/source/dialog/rubydialog.src207
-rw-r--r--svx/source/dialog/ruler.hrc37
-rw-r--r--svx/source/dialog/ruler.src137
-rw-r--r--svx/source/dialog/rulritem.cxx743
-rw-r--r--svx/source/dialog/sdstring.src1289
-rw-r--r--svx/source/dialog/sendreportgen.cxx53
-rw-r--r--svx/source/dialog/sendreportunx.cxx272
-rw-r--r--svx/source/dialog/sendreportw32.cxx260
-rw-r--r--svx/source/dialog/simptabl.cxx580
-rw-r--r--svx/source/dialog/srchctrl.cxx90
-rw-r--r--svx/source/dialog/srchctrl.hxx51
-rw-r--r--svx/source/dialog/srchdlg.cxx2535
-rw-r--r--svx/source/dialog/srchdlg.hrc93
-rw-r--r--svx/source/dialog/srchdlg.src411
-rw-r--r--svx/source/dialog/stddlg.cxx67
-rw-r--r--svx/source/dialog/strarray.cxx99
-rw-r--r--svx/source/dialog/svxbmpnumvalueset.cxx572
-rw-r--r--svx/source/dialog/svxbmpnumvalueset.src127
-rw-r--r--svx/source/dialog/svxdlg.cxx41
-rw-r--r--svx/source/dialog/svxgrahicitem.cxx50
-rw-r--r--svx/source/dialog/svxruler.cxx3929
-rw-r--r--svx/source/dialog/swframeexample.cxx737
-rw-r--r--svx/source/dialog/swframeposstrings.cxx76
-rw-r--r--svx/source/dialog/swframeposstrings.src245
-rw-r--r--svx/source/dialog/txencbox.cxx254
-rw-r--r--svx/source/dialog/txenctab.cxx76
-rw-r--r--svx/source/dialog/txenctab.src122
-rwxr-xr-xsvx/source/dialog/ucsubset.src511
-rw-r--r--svx/source/dialog/wrapfield.cxx61
-rw-r--r--svx/source/engine3d/camera3d.cxx392
-rw-r--r--svx/source/engine3d/cube3d.cxx199
-rw-r--r--svx/source/engine3d/deflt3d.cxx81
-rw-r--r--svx/source/engine3d/dragmt3d.cxx764
-rw-r--r--svx/source/engine3d/e3dsceneupdater.cxx130
-rw-r--r--svx/source/engine3d/e3dundo.cxx180
-rw-r--r--svx/source/engine3d/extrud3d.cxx264
-rw-r--r--svx/source/engine3d/float3d.cxx3333
-rw-r--r--svx/source/engine3d/float3d.src1420
-rw-r--r--svx/source/engine3d/helperhittest3d.cxx295
-rw-r--r--svx/source/engine3d/helperminimaldepth3d.cxx212
-rw-r--r--svx/source/engine3d/helperminimaldepth3d.hxx60
-rw-r--r--svx/source/engine3d/lathe3d.cxx277
-rw-r--r--svx/source/engine3d/makefile.mk84
-rw-r--r--svx/source/engine3d/obj3d.cxx1280
-rw-r--r--svx/source/engine3d/objfac3d.cxx110
-rw-r--r--svx/source/engine3d/polygn3d.cxx361
-rw-r--r--svx/source/engine3d/polysc3d.cxx74
-rw-r--r--svx/source/engine3d/scene3d.cxx868
-rw-r--r--svx/source/engine3d/sphere3d.cxx226
-rw-r--r--svx/source/engine3d/string3d.src116
-rw-r--r--svx/source/engine3d/svx3ditems.cxx547
-rw-r--r--svx/source/engine3d/view3d.cxx1959
-rw-r--r--svx/source/engine3d/view3d1.cxx230
-rw-r--r--svx/source/engine3d/viewpt3d.cxx32
-rw-r--r--svx/source/engine3d/viewpt3d2.cxx394
-rw-r--r--svx/source/engine3d/volume3d.cxx32
-rw-r--r--svx/source/fmcomp/dbaexchange.cxx767
-rw-r--r--svx/source/fmcomp/dbaobjectex.cxx187
-rw-r--r--svx/source/fmcomp/fmgridcl.cxx2131
-rw-r--r--svx/source/fmcomp/fmgridif.cxx2965
-rw-r--r--svx/source/fmcomp/gridcell.cxx4821
-rw-r--r--svx/source/fmcomp/gridcols.cxx114
-rw-r--r--svx/source/fmcomp/gridctrl.cxx3850
-rw-r--r--svx/source/fmcomp/gridctrl.src257
-rw-r--r--svx/source/fmcomp/makefile.mk63
-rw-r--r--svx/source/fmcomp/trace.cxx124
-rw-r--r--svx/source/fmcomp/xmlexchg.cxx93
-rw-r--r--svx/source/form/ParseContext.cxx249
-rw-r--r--svx/source/form/dataaccessdescriptor.cxx567
-rw-r--r--svx/source/form/databaselocationinput.cxx314
-rw-r--r--svx/source/form/datalistener.cxx98
-rw-r--r--svx/source/form/datanavi.cxx3735
-rw-r--r--svx/source/form/datanavi.src1160
-rw-r--r--svx/source/form/dbcharsethelper.cxx59
-rw-r--r--svx/source/form/dbtoolsclient.cxx366
-rw-r--r--svx/source/form/delayedevent.cxx68
-rw-r--r--svx/source/form/filtnav.cxx2085
-rw-r--r--svx/source/form/filtnav.src87
-rw-r--r--svx/source/form/fmPropBrw.cxx722
-rw-r--r--svx/source/form/fmcontrolbordermanager.cxx445
-rw-r--r--svx/source/form/fmcontrollayout.cxx328
-rw-r--r--svx/source/form/fmdmod.cxx131
-rw-r--r--svx/source/form/fmdocumentclassification.cxx214
-rw-r--r--svx/source/form/fmdpage.cxx146
-rw-r--r--svx/source/form/fmexch.cxx443
-rw-r--r--svx/source/form/fmexpl.cxx707
-rw-r--r--svx/source/form/fmexpl.src378
-rw-r--r--svx/source/form/fmitems.cxx69
-rw-r--r--svx/source/form/fmmodel.cxx369
-rw-r--r--svx/source/form/fmobj.cxx737
-rw-r--r--svx/source/form/fmobjfac.cxx278
-rw-r--r--svx/source/form/fmpage.cxx282
-rw-r--r--svx/source/form/fmpgeimp.cxx739
-rw-r--r--svx/source/form/fmscriptingenv.cxx562
-rw-r--r--svx/source/form/fmservs.cxx106
-rw-r--r--svx/source/form/fmshell.cxx1440
-rw-r--r--svx/source/form/fmshimp.cxx4758
-rw-r--r--svx/source/form/fmsrccfg.cxx363
-rw-r--r--svx/source/form/fmsrcimp.cxx1303
-rw-r--r--svx/source/form/fmstring.src495
-rw-r--r--svx/source/form/fmtextcontroldialogs.cxx131
-rw-r--r--svx/source/form/fmtextcontrolfeature.cxx131
-rw-r--r--svx/source/form/fmtextcontrolshell.cxx1398
-rw-r--r--svx/source/form/fmtools.cxx494
-rw-r--r--svx/source/form/fmundo.cxx1337
-rw-r--r--svx/source/form/fmview.cxx630
-rw-r--r--svx/source/form/fmvwimp.cxx1943
-rw-r--r--svx/source/form/formcontrolfactory.cxx725
-rw-r--r--svx/source/form/formcontroller.cxx4317
-rw-r--r--svx/source/form/formcontrolling.cxx604
-rw-r--r--svx/source/form/formdispatchinterceptor.cxx214
-rw-r--r--svx/source/form/formfeaturedispatcher.cxx241
-rw-r--r--svx/source/form/formshell.src227
-rw-r--r--svx/source/form/formtoolbars.cxx117
-rw-r--r--svx/source/form/legacyformcontroller.cxx226
-rw-r--r--svx/source/form/makefile.mk119
-rw-r--r--svx/source/form/navigatortree.cxx2322
-rw-r--r--svx/source/form/navigatortreemodel.cxx1126
-rw-r--r--svx/source/form/sdbdatacolumn.cxx287
-rw-r--r--svx/source/form/sqlparserclient.cxx62
-rw-r--r--svx/source/form/stringlistresource.cxx71
-rw-r--r--svx/source/form/tabwin.cxx438
-rw-r--r--svx/source/form/tbxform.cxx477
-rw-r--r--svx/source/form/typeconversionclient.cxx58
-rw-r--r--svx/source/form/typemap.cxx65
-rw-r--r--svx/source/form/xfm_addcondition.cxx193
-rw-r--r--svx/source/gallery2/codec.cxx173
-rw-r--r--svx/source/gallery2/codec.hxx51
-rw-r--r--svx/source/gallery2/galbrws.cxx285
-rw-r--r--svx/source/gallery2/galbrws1.cxx715
-rw-r--r--svx/source/gallery2/galbrws1.hxx135
-rw-r--r--svx/source/gallery2/galbrws2.cxx1253
-rw-r--r--svx/source/gallery2/galctrl.cxx723
-rw-r--r--svx/source/gallery2/galexpl.cxx515
-rw-r--r--svx/source/gallery2/gallery.src493
-rw-r--r--svx/source/gallery2/gallery1.cxx923
-rw-r--r--svx/source/gallery2/gallerydrawmodel.hxx44
-rw-r--r--svx/source/gallery2/galmisc.cxx669
-rw-r--r--svx/source/gallery2/galobj.cxx607
-rw-r--r--svx/source/gallery2/galtheme.cxx1599
-rw-r--r--svx/source/gallery2/galtheme.src341
-rw-r--r--svx/source/gallery2/makefile.mk69
-rw-r--r--svx/source/gengal/gengal.cxx318
-rw-r--r--svx/source/gengal/gengal.sh101
-rw-r--r--svx/source/gengal/gengalrc.in12
-rw-r--r--svx/source/gengal/makefile.mk85
-rw-r--r--svx/source/inc/AccessibleFrameSelector.hxx149
-rw-r--r--svx/source/inc/DGColorNameLookUp.hxx99
-rw-r--r--svx/source/inc/GraphCtlAccessibleContext.hxx281
-rw-r--r--svx/source/inc/charmapacc.hxx278
-rw-r--r--svx/source/inc/clonelist.hxx57
-rw-r--r--svx/source/inc/datalistener.hxx79
-rw-r--r--svx/source/inc/datanavi.hrc180
-rw-r--r--svx/source/inc/datanavi.hxx601
-rw-r--r--svx/source/inc/delayedevent.hxx87
-rw-r--r--svx/source/inc/docrecovery.hxx973
-rw-r--r--svx/source/inc/filtnav.hxx372
-rw-r--r--svx/source/inc/fmPropBrw.hxx124
-rw-r--r--svx/source/inc/fmcontrolbordermanager.hxx268
-rw-r--r--svx/source/inc/fmcontrollayout.hxx93
-rw-r--r--svx/source/inc/fmdocumentclassification.hxx87
-rw-r--r--svx/source/inc/fmexch.hxx283
-rw-r--r--svx/source/inc/fmexpl.hrc40
-rw-r--r--svx/source/inc/fmexpl.hxx612
-rw-r--r--svx/source/inc/fmgroup.hxx120
-rw-r--r--svx/source/inc/fmhlpids.hrc36
-rw-r--r--svx/source/inc/fmitems.hxx72
-rw-r--r--svx/source/inc/fmobj.hxx134
-rw-r--r--svx/source/inc/fmpgeimp.hxx170
-rw-r--r--svx/source/inc/fmprop.hrc178
-rw-r--r--svx/source/inc/fmresids.hrc264
-rw-r--r--svx/source/inc/fmscriptingenv.hxx99
-rw-r--r--svx/source/inc/fmservs.hxx91
-rw-r--r--svx/source/inc/fmshimp.hxx768
-rw-r--r--svx/source/inc/fmslotinvalidator.hxx55
-rw-r--r--svx/source/inc/fmsrccfg.hxx156
-rw-r--r--svx/source/inc/fmsrcimp.hxx409
-rw-r--r--svx/source/inc/fmtextcontroldialogs.hxx70
-rw-r--r--svx/source/inc/fmtextcontrolfeature.hxx105
-rw-r--r--svx/source/inc/fmtextcontrolshell.hxx224
-rw-r--r--svx/source/inc/fmundo.hxx230
-rw-r--r--svx/source/inc/fmurl.hxx60
-rw-r--r--svx/source/inc/fmvwimp.hxx310
-rw-r--r--svx/source/inc/formcontrolfactory.hxx119
-rw-r--r--svx/source/inc/formcontroller.hxx592
-rw-r--r--svx/source/inc/formcontrolling.hxx308
-rw-r--r--svx/source/inc/formdispatchinterceptor.hxx119
-rw-r--r--svx/source/inc/formfeaturedispatcher.hxx157
-rw-r--r--svx/source/inc/formtoolbars.hxx90
-rw-r--r--svx/source/inc/frmsel.hrc38
-rw-r--r--svx/source/inc/frmselimpl.hxx305
-rw-r--r--svx/source/inc/gridcell.hxx1155
-rw-r--r--svx/source/inc/gridcols.hxx62
-rw-r--r--svx/source/inc/linectrl.hrc28
-rw-r--r--svx/source/inc/recoveryui.hxx155
-rw-r--r--svx/source/inc/sdbdatacolumn.hxx140
-rw-r--r--svx/source/inc/sqlparserclient.hxx79
-rw-r--r--svx/source/inc/stringlistresource.hxx86
-rw-r--r--svx/source/inc/svdoimp.hxx111
-rw-r--r--svx/source/inc/svdoutlinercache.hxx54
-rw-r--r--svx/source/inc/svxrectctaccessiblecontext.hxx566
-rw-r--r--svx/source/inc/tabwin.hxx141
-rw-r--r--svx/source/inc/tbxform.hxx166
-rw-r--r--svx/source/inc/trace.hxx68
-rw-r--r--svx/source/inc/treevisitor.hxx109
-rw-r--r--svx/source/inc/typeconversionclient.hxx93
-rw-r--r--svx/source/inc/unogalthemeprovider.hxx100
-rw-r--r--svx/source/inc/unopolyhelper.hxx55
-rw-r--r--svx/source/inc/xfm_addcondition.hxx92
-rw-r--r--svx/source/inc/xmlxtexp.hxx70
-rw-r--r--svx/source/inc/xmlxtimp.hxx64
-rw-r--r--svx/source/intro/intro_tmpl.hrc1327
-rw-r--r--svx/source/intro/iso.src218
-rw-r--r--svx/source/intro/makefile.mk70
-rw-r--r--svx/source/intro/ooo.src188
-rw-r--r--svx/source/items/SmartTagItem.cxx123
-rw-r--r--svx/source/items/algitem.cxx765
-rw-r--r--svx/source/items/chrtitem.cxx538
-rw-r--r--svx/source/items/clipfmtitem.cxx180
-rw-r--r--svx/source/items/customshapeitem.cxx386
-rw-r--r--svx/source/items/drawitem.cxx557
-rw-r--r--svx/source/items/e3ditem.cxx170
-rw-r--r--svx/source/items/grfitem.cxx197
-rw-r--r--svx/source/items/hlnkitem.cxx430
-rw-r--r--svx/source/items/makefile.mk83
-rw-r--r--svx/source/items/numfmtsh.cxx1869
-rw-r--r--svx/source/items/numinf.cxx250
-rw-r--r--svx/source/items/ofaitem.cxx91
-rw-r--r--svx/source/items/pageitem.cxx338
-rw-r--r--svx/source/items/postattr.cxx192
-rw-r--r--svx/source/items/rotmodit.cxx178
-rw-r--r--svx/source/items/svxempty.cxx40
-rw-r--r--svx/source/items/svxerr.cxx54
-rw-r--r--svx/source/items/svxerr.src174
-rw-r--r--svx/source/items/svxitems.src393
-rw-r--r--svx/source/items/viewlayoutitem.cxx211
-rw-r--r--svx/source/items/zoomitem.cxx231
-rw-r--r--svx/source/items/zoomslideritem.cxx280
-rw-r--r--svx/source/mnuctrls/SmartTagCtl.cxx225
-rw-r--r--svx/source/mnuctrls/clipboardctl.cxx163
-rw-r--r--svx/source/mnuctrls/fntctl.cxx182
-rw-r--r--svx/source/mnuctrls/fntszctl.cxx211
-rw-r--r--svx/source/mnuctrls/makefile.mk71
-rw-r--r--svx/source/mnuctrls/mnuctrls.src81
-rw-r--r--svx/source/sdr/animation/animationstate.cxx148
-rw-r--r--svx/source/sdr/animation/makefile.mk46
-rw-r--r--svx/source/sdr/animation/objectanimator.cxx52
-rw-r--r--svx/source/sdr/animation/scheduler.cxx315
-rw-r--r--svx/source/sdr/attribute/makefile.mk47
-rw-r--r--svx/source/sdr/attribute/sdrallattribute.cxx408
-rw-r--r--svx/source/sdr/attribute/sdrformtextattribute.cxx300
-rw-r--r--svx/source/sdr/attribute/sdrformtextoutlineattribute.cxx62
-rw-r--r--svx/source/sdr/attribute/sdrtextattribute.cxx218
-rw-r--r--svx/source/sdr/contact/displayinfo.cxx110
-rw-r--r--svx/source/sdr/contact/makefile.mk92
-rw-r--r--svx/source/sdr/contact/objectcontact.cxx322
-rw-r--r--svx/source/sdr/contact/objectcontactofobjlistpainter.cxx207
-rw-r--r--svx/source/sdr/contact/objectcontactofpageview.cxx485
-rw-r--r--svx/source/sdr/contact/objectcontacttools.cxx104
-rw-r--r--svx/source/sdr/contact/sdrmediawindow.cxx193
-rw-r--r--svx/source/sdr/contact/sdrmediawindow.hxx69
-rw-r--r--svx/source/sdr/contact/viewcontact.cxx328
-rw-r--r--svx/source/sdr/contact/viewcontactofe3d.cxx221
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dcube.cxx112
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dextrude.cxx108
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dlathe.cxx123
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dpolygon.cxx194
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dscene.cxx503
-rw-r--r--svx/source/sdr/contact/viewcontactofe3dsphere.cxx106
-rw-r--r--svx/source/sdr/contact/viewcontactofgraphic.cxx471
-rw-r--r--svx/source/sdr/contact/viewcontactofgroup.cxx105
-rw-r--r--svx/source/sdr/contact/viewcontactofmasterpagedescriptor.cxx136
-rw-r--r--svx/source/sdr/contact/viewcontactofpageobj.cxx105
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrcaptionobj.cxx179
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrcircobj.cxx112
-rw-r--r--svx/source/sdr/contact/viewcontactofsdredgeobj.cxx88
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrmeasureobj.cxx150
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrmediaobj.cxx179
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrobj.cxx194
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx246
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrole2obj.cxx139
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrpage.cxx707
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrpathobj.cxx148
-rw-r--r--svx/source/sdr/contact/viewcontactofsdrrectobj.cxx127
-rw-r--r--svx/source/sdr/contact/viewcontactoftextobj.cxx51
-rw-r--r--svx/source/sdr/contact/viewcontactofunocontrol.cxx172
-rw-r--r--svx/source/sdr/contact/viewcontactofvirtobj.cxx105
-rw-r--r--svx/source/sdr/contact/viewobjectcontact.cxx438
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofe3d.cxx102
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofe3dscene.cxx159
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofgraphic.cxx327
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofgroup.cxx124
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx155
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofpageobj.cxx354
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx176
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx145
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrole2obj.cxx243
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofsdrpage.cxx723
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx1917
-rw-r--r--svx/source/sdr/contact/viewobjectcontactredirector.cxx60
-rw-r--r--svx/source/sdr/event/eventhandler.cxx162
-rw-r--r--svx/source/sdr/event/makefile.mk44
-rw-r--r--svx/source/sdr/overlay/makefile.mk59
-rw-r--r--svx/source/sdr/overlay/overlayanimatedbitmapex.cxx217
-rw-r--r--svx/source/sdr/overlay/overlaybitmapex.cxx104
-rw-r--r--svx/source/sdr/overlay/overlaycrosshair.cxx84
-rw-r--r--svx/source/sdr/overlay/overlayhatchrect.cxx94
-rw-r--r--svx/source/sdr/overlay/overlayhelpline.cxx93
-rw-r--r--svx/source/sdr/overlay/overlayline.cxx107
-rw-r--r--svx/source/sdr/overlay/overlaymanager.cxx393
-rw-r--r--svx/source/sdr/overlay/overlaymanagerbuffered.cxx538
-rw-r--r--svx/source/sdr/overlay/overlayobject.cxx216
-rw-r--r--svx/source/sdr/overlay/overlayobjectcell.cxx111
-rw-r--r--svx/source/sdr/overlay/overlayobjectlist.cxx184
-rw-r--r--svx/source/sdr/overlay/overlaypolypolygon.cxx99
-rw-r--r--svx/source/sdr/overlay/overlayprimitive2dsequenceobject.cxx61
-rw-r--r--svx/source/sdr/overlay/overlayrollingrectangle.cxx150
-rw-r--r--svx/source/sdr/overlay/overlayselection.cxx237
-rw-r--r--svx/source/sdr/overlay/overlaytools.cxx493
-rw-r--r--svx/source/sdr/overlay/overlaytriangle.cxx106
-rw-r--r--svx/source/sdr/primitive2d/makefile.mk57
-rw-r--r--svx/source/sdr/primitive2d/primitivefactory2d.cxx132
-rw-r--r--svx/source/sdr/primitive2d/sdrattributecreator.cxx1099
-rw-r--r--svx/source/sdr/primitive2d/sdrcaptionprimitive2d.cxx180
-rw-r--r--svx/source/sdr/primitive2d/sdrconnectorprimitive2d.cxx112
-rw-r--r--svx/source/sdr/primitive2d/sdrcustomshapeprimitive2d.cxx127
-rw-r--r--svx/source/sdr/primitive2d/sdrdecompositiontools.cxx484
-rw-r--r--svx/source/sdr/primitive2d/sdrellipseprimitive2d.cxx238
-rw-r--r--svx/source/sdr/primitive2d/sdrgrafprimitive2d.cxx157
-rw-r--r--svx/source/sdr/primitive2d/sdrmeasureprimitive2d.cxx506
-rw-r--r--svx/source/sdr/primitive2d/sdrole2primitive2d.cxx156
-rw-r--r--svx/source/sdr/primitive2d/sdrolecontentprimitive2d.cxx201
-rw-r--r--svx/source/sdr/primitive2d/sdrpathprimitive2d.cxx132
-rw-r--r--svx/source/sdr/primitive2d/sdrprimitivetools.cxx193
-rw-r--r--svx/source/sdr/primitive2d/sdrrectangleprimitive2d.cxx159
-rw-r--r--svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx489
-rw-r--r--svx/source/sdr/primitive3d/makefile.mk42
-rw-r--r--svx/source/sdr/primitive3d/sdrattributecreator3d.cxx155
-rw-r--r--svx/source/sdr/properties/attributeproperties.cxx614
-rw-r--r--svx/source/sdr/properties/captionproperties.cxx120
-rw-r--r--svx/source/sdr/properties/circleproperties.cxx157
-rw-r--r--svx/source/sdr/properties/connectorproperties.cxx107
-rw-r--r--svx/source/sdr/properties/customshapeproperties.cxx239
-rw-r--r--svx/source/sdr/properties/defaultproperties.cxx237
-rw-r--r--svx/source/sdr/properties/e3dcompoundproperties.cxx165
-rw-r--r--svx/source/sdr/properties/e3dextrudeproperties.cxx90
-rw-r--r--svx/source/sdr/properties/e3dlatheproperties.cxx100
-rw-r--r--svx/source/sdr/properties/e3dproperties.cxx106
-rw-r--r--svx/source/sdr/properties/e3dsceneproperties.cxx334
-rw-r--r--svx/source/sdr/properties/e3dsphereproperties.cxx85
-rw-r--r--svx/source/sdr/properties/emptyproperties.cxx153
-rw-r--r--svx/source/sdr/properties/graphicproperties.cxx143
-rw-r--r--svx/source/sdr/properties/groupproperties.cxx298
-rw-r--r--svx/source/sdr/properties/itemsettools.cxx146
-rw-r--r--svx/source/sdr/properties/makefile.mk64
-rw-r--r--svx/source/sdr/properties/measureproperties.cxx141
-rw-r--r--svx/source/sdr/properties/pageproperties.cxx101
-rw-r--r--svx/source/sdr/properties/properties.cxx189
-rw-r--r--svx/source/sdr/properties/rectangleproperties.cxx84
-rw-r--r--svx/source/sdr/properties/textproperties.cxx635
-rw-r--r--svx/source/smarttags/SmartTagMgr.cxx555
-rw-r--r--svx/source/smarttags/makefile.mk48
-rw-r--r--svx/source/src/app.hrc445
-rw-r--r--svx/source/src/app.src86
-rw-r--r--svx/source/src/hidgen.hrc33
-rw-r--r--svx/source/src/makefile.mk57
-rw-r--r--svx/source/stbctrls/insctrl.cxx132
-rw-r--r--svx/source/stbctrls/makefile.mk75
-rw-r--r--svx/source/stbctrls/modctrl.cxx98
-rw-r--r--svx/source/stbctrls/pszctrl.cxx436
-rw-r--r--svx/source/stbctrls/selctrl.cxx154
-rw-r--r--svx/source/stbctrls/stbctrls.h55
-rw-r--r--svx/source/stbctrls/stbctrls.src327
-rw-r--r--svx/source/stbctrls/xmlsecctrl.cxx212
-rw-r--r--svx/source/stbctrls/zoomctrl.cxx223
-rw-r--r--svx/source/stbctrls/zoomsliderctrl.cxx448
-rw-r--r--svx/source/svdraw/ActionDescriptionProvider.cxx82
-rw-r--r--svx/source/svdraw/clonelist.cxx134
-rw-r--r--svx/source/svdraw/gradtrns.cxx538
-rw-r--r--svx/source/svdraw/gradtrns.hxx64
-rw-r--r--svx/source/svdraw/impgrfll.cxx255
-rw-r--r--svx/source/svdraw/makefile.mk126
-rw-r--r--svx/source/svdraw/polypolygoneditor.cxx190
-rw-r--r--svx/source/svdraw/sdrcomment.cxx98
-rw-r--r--svx/source/svdraw/sdrhittesthelper.cxx173
-rw-r--r--svx/source/svdraw/sdrmasterpagedescriptor.cxx160
-rw-r--r--svx/source/svdraw/sdrpagewindow.cxx464
-rw-r--r--svx/source/svdraw/sdrpaintwindow.cxx312
-rw-r--r--svx/source/svdraw/selectioncontroller.cxx114
-rw-r--r--svx/source/svdraw/svdattr.cxx2427
-rw-r--r--svx/source/svdraw/svdcrtmt.hxx32
-rw-r--r--svx/source/svdraw/svdcrtv.cxx964
-rw-r--r--svx/source/svdraw/svddrag.cxx153
-rw-r--r--svx/source/svdraw/svddrgm1.hxx277
-rw-r--r--svx/source/svdraw/svddrgmt.cxx3653
-rw-r--r--svx/source/svdraw/svddrgv.cxx1006
-rw-r--r--svx/source/svdraw/svdedtv.cxx995
-rw-r--r--svx/source/svdraw/svdedtv1.cxx1780
-rw-r--r--svx/source/svdraw/svdedtv2.cxx2130
-rw-r--r--svx/source/svdraw/svdedxv.cxx2146
-rw-r--r--svx/source/svdraw/svdetc.cxx1118
-rw-r--r--svx/source/svdraw/svdfmtf.cxx979
-rw-r--r--svx/source/svdraw/svdfmtf.hxx166
-rw-r--r--svx/source/svdraw/svdglev.cxx422
-rw-r--r--svx/source/svdraw/svdglue.cxx450
-rw-r--r--svx/source/svdraw/svdhdl.cxx2402
-rw-r--r--svx/source/svdraw/svdhlpln.cxx149
-rw-r--r--svx/source/svdraw/svdibrow.cxx1299
-rw-r--r--svx/source/svdraw/svditer.cxx110
-rw-r--r--svx/source/svdraw/svditext.hxx37
-rw-r--r--svx/source/svdraw/svdlayer.cxx458
-rw-r--r--svx/source/svdraw/svdmark.cxx1040
-rw-r--r--svx/source/svdraw/svdmodel.cxx2250
-rw-r--r--svx/source/svdraw/svdmrkv.cxx2134
-rw-r--r--svx/source/svdraw/svdmrkv1.cxx724
-rw-r--r--svx/source/svdraw/svdoashp.cxx3501
-rw-r--r--svx/source/svdraw/svdoattr.cxx180
-rw-r--r--svx/source/svdraw/svdobj.cxx3332
-rw-r--r--svx/source/svdraw/svdocapt.cxx851
-rw-r--r--svx/source/svdraw/svdocirc.cxx1170
-rw-r--r--svx/source/svdraw/svdoedge.cxx2478
-rw-r--r--svx/source/svdraw/svdograf.cxx1282
-rw-r--r--svx/source/svdraw/svdogrp.cxx795
-rw-r--r--svx/source/svdraw/svdoimp.cxx33
-rw-r--r--svx/source/svdraw/svdomeas.cxx1494
-rw-r--r--svx/source/svdraw/svdomedia.cxx236
-rw-r--r--svx/source/svdraw/svdoole2.cxx2231
-rw-r--r--svx/source/svdraw/svdopage.cxx195
-rw-r--r--svx/source/svdraw/svdopath.cxx3119
-rw-r--r--svx/source/svdraw/svdorect.cxx603
-rw-r--r--svx/source/svdraw/svdotext.cxx2133
-rw-r--r--svx/source/svdraw/svdotextdecomposition.cxx1258
-rw-r--r--svx/source/svdraw/svdotextpathdecomposition.cxx794
-rw-r--r--svx/source/svdraw/svdotxat.cxx462
-rw-r--r--svx/source/svdraw/svdotxdr.cxx285
-rw-r--r--svx/source/svdraw/svdotxed.cxx350
-rw-r--r--svx/source/svdraw/svdotxfl.cxx58
-rw-r--r--svx/source/svdraw/svdotxln.cxx350
-rw-r--r--svx/source/svdraw/svdotxtr.cxx558
-rw-r--r--svx/source/svdraw/svdouno.cxx665
-rw-r--r--svx/source/svdraw/svdoutl.cxx129
-rw-r--r--svx/source/svdraw/svdoutlinercache.cxx115
-rw-r--r--svx/source/svdraw/svdovirt.cxx659
-rw-r--r--svx/source/svdraw/svdpage.cxx1901
-rw-r--r--svx/source/svdraw/svdpagv.cxx1116
-rw-r--r--svx/source/svdraw/svdpntv.cxx1524
-rw-r--r--svx/source/svdraw/svdpoev.cxx745
-rw-r--r--svx/source/svdraw/svdscrol.cxx33
-rw-r--r--svx/source/svdraw/svdscrol.hxx31
-rw-r--r--svx/source/svdraw/svdsnpv.cxx730
-rw-r--r--svx/source/svdraw/svdstr.src2930
-rw-r--r--svx/source/svdraw/svdtext.cxx224
-rw-r--r--svx/source/svdraw/svdtrans.cxx1271
-rw-r--r--svx/source/svdraw/svdundo.cxx1871
-rw-r--r--svx/source/svdraw/svdview.cxx1602
-rw-r--r--svx/source/svdraw/svdviter.cxx351
-rw-r--r--svx/source/svdraw/svdxcgv.cxx894
-rw-r--r--svx/source/table/accessiblecell.cxx584
-rw-r--r--svx/source/table/accessiblecell.hxx149
-rw-r--r--svx/source/table/accessibletableshape.cxx723
-rw-r--r--svx/source/table/cell.cxx1809
-rw-r--r--svx/source/table/cell.hxx244
-rw-r--r--svx/source/table/cellcursor.cxx590
-rw-r--r--svx/source/table/cellcursor.hxx83
-rw-r--r--svx/source/table/celleditsource.cxx1056
-rw-r--r--svx/source/table/celleditsource.hxx89
-rw-r--r--svx/source/table/cellrange.cxx132
-rw-r--r--svx/source/table/cellrange.hxx72
-rw-r--r--svx/source/table/celltypes.hxx109
-rw-r--r--svx/source/table/makefile.mk80
-rw-r--r--svx/source/table/propertyset.cxx259
-rw-r--r--svx/source/table/propertyset.hxx109
-rw-r--r--svx/source/table/svdotable.cxx2810
-rw-r--r--svx/source/table/table.src34
-rw-r--r--svx/source/table/tablecolumn.cxx305
-rw-r--r--svx/source/table/tablecolumn.hxx88
-rw-r--r--svx/source/table/tablecolumns.cxx141
-rw-r--r--svx/source/table/tablecolumns.hxx71
-rw-r--r--svx/source/table/tablecontroller.cxx2618
-rw-r--r--svx/source/table/tablecontroller.hxx170
-rw-r--r--svx/source/table/tabledesign.cxx808
-rw-r--r--svx/source/table/tablehandles.cxx313
-rw-r--r--svx/source/table/tablehandles.hxx96
-rw-r--r--svx/source/table/tablelayouter.cxx1300
-rw-r--r--svx/source/table/tablelayouter.hxx178
-rw-r--r--svx/source/table/tablemodel.cxx1258
-rw-r--r--svx/source/table/tablemodel.hxx225
-rw-r--r--svx/source/table/tablerow.cxx381
-rw-r--r--svx/source/table/tablerow.hxx92
-rw-r--r--svx/source/table/tablerows.cxx136
-rw-r--r--svx/source/table/tablerows.hxx71
-rw-r--r--svx/source/table/tablertfexporter.cxx284
-rw-r--r--svx/source/table/tablertfimporter.cxx447
-rw-r--r--svx/source/table/tableundo.cxx559
-rw-r--r--svx/source/table/tableundo.hxx259
-rw-r--r--svx/source/table/viewcontactoftableobj.cxx707
-rw-r--r--svx/source/table/viewcontactoftableobj.hxx72
-rw-r--r--svx/source/tbxctrls/colorwindow.hxx48
-rw-r--r--svx/source/tbxctrls/colrctrl.cxx661
-rw-r--r--svx/source/tbxctrls/colrctrl.src84
-rw-r--r--svx/source/tbxctrls/extrusioncontrols.cxx1500
-rw-r--r--svx/source/tbxctrls/extrusioncontrols.hrc120
-rw-r--r--svx/source/tbxctrls/extrusioncontrols.src795
-rw-r--r--svx/source/tbxctrls/fillctrl.cxx846
-rw-r--r--svx/source/tbxctrls/fontworkgallery.cxx941
-rw-r--r--svx/source/tbxctrls/fontworkgallery.src323
-rw-r--r--svx/source/tbxctrls/formatpaintbrushctrl.cxx120
-rw-r--r--svx/source/tbxctrls/grafctrl.cxx1291
-rw-r--r--svx/source/tbxctrls/grafctrl.hrc28
-rw-r--r--svx/source/tbxctrls/grafctrl.src192
-rw-r--r--svx/source/tbxctrls/itemwin.cxx825
-rw-r--r--svx/source/tbxctrls/layctrl.cxx899
-rw-r--r--svx/source/tbxctrls/lboxctrl.cxx351
-rw-r--r--svx/source/tbxctrls/lboxctrl.hrc30
-rw-r--r--svx/source/tbxctrls/lboxctrl.src76
-rw-r--r--svx/source/tbxctrls/linectrl.cxx784
-rw-r--r--svx/source/tbxctrls/linectrl.src34
-rw-r--r--svx/source/tbxctrls/makefile.mk83
-rw-r--r--svx/source/tbxctrls/subtoolboxcontrol.cxx84
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx2858
-rw-r--r--svx/source/tbxctrls/tbcontrl.src189
-rw-r--r--svx/source/tbxctrls/tbunocontroller.cxx429
-rw-r--r--svx/source/tbxctrls/tbxalign.cxx141
-rw-r--r--svx/source/tbxctrls/tbxcolor.cxx118
-rw-r--r--svx/source/tbxctrls/tbxcolorupdate.cxx208
-rw-r--r--svx/source/tbxctrls/tbxdraw.hrc31
-rw-r--r--svx/source/tbxctrls/tbxdraw.src265
-rw-r--r--svx/source/tbxctrls/tbxdrctl.cxx120
-rw-r--r--svx/source/tbxctrls/toolbarmenu.cxx1029
-rw-r--r--svx/source/tbxctrls/toolbarmenu.hxx90
-rw-r--r--svx/source/tbxctrls/verttexttbxctrl.cxx123
-rw-r--r--svx/source/toolbars/extrusionbar.cxx1373
-rw-r--r--svx/source/toolbars/extrusionbar.src115
-rw-r--r--svx/source/toolbars/fontworkbar.cxx641
-rw-r--r--svx/source/toolbars/fontworkbar.src87
-rw-r--r--svx/source/toolbars/makefile.mk56
-rw-r--r--svx/source/unodialogs/inc/buttongroup.hrc65
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.cxx895
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hrc53
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.hxx201
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_dictionarydialog.src184
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_direction_ids.hrc34
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_direction_tmpl.hrc51
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.cxx285
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translation_unodialog.hxx143
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.cxx201
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.hrc44
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.hxx90
-rw-r--r--svx/source/unodialogs/textconversiondlgs/chinese_translationdialog.src117
-rw-r--r--svx/source/unodialogs/textconversiondlgs/export.map8
-rw-r--r--svx/source/unodialogs/textconversiondlgs/makefile.mk90
-rw-r--r--svx/source/unodialogs/textconversiondlgs/resid.cxx52
-rw-r--r--svx/source/unodialogs/textconversiondlgs/resid.hxx50
-rw-r--r--svx/source/unodialogs/textconversiondlgs/resids.hrc33
-rw-r--r--svx/source/unodialogs/textconversiondlgs/services.cxx70
-rw-r--r--svx/source/unodraw/UnoGraphicExporter.cxx1290
-rw-r--r--svx/source/unodraw/UnoGraphicExporter.hxx40
-rw-r--r--svx/source/unodraw/UnoNameItemTable.cxx341
-rw-r--r--svx/source/unodraw/UnoNameItemTable.hxx91
-rw-r--r--svx/source/unodraw/UnoNamespaceMap.cxx314
-rw-r--r--svx/source/unodraw/XPropertyTable.cxx743
-rw-r--r--svx/source/unodraw/gluepts.cxx548
-rw-r--r--svx/source/unodraw/makefile.mk83
-rw-r--r--svx/source/unodraw/recoveryui.cxx399
-rw-r--r--svx/source/unodraw/shapeimpl.hxx129
-rw-r--r--svx/source/unodraw/shapepropertynotifier.cxx207
-rw-r--r--svx/source/unodraw/tableshape.cxx194
-rw-r--r--svx/source/unodraw/unobtabl.cxx122
-rw-r--r--svx/source/unodraw/unoctabl.cxx399
-rw-r--r--svx/source/unodraw/unodraw.src42
-rw-r--r--svx/source/unodraw/unodtabl.cxx108
-rw-r--r--svx/source/unodraw/unogtabl.cxx107
-rw-r--r--svx/source/unodraw/unohtabl.cxx105
-rw-r--r--svx/source/unodraw/unomlstr.cxx72
-rw-r--r--svx/source/unodraw/unomod.cxx778
-rw-r--r--svx/source/unodraw/unomtabl.cxx482
-rw-r--r--svx/source/unodraw/unopage.cxx1002
-rw-r--r--svx/source/unodraw/unopool.cxx430
-rw-r--r--svx/source/unodraw/unoprov.cxx1425
-rw-r--r--svx/source/unodraw/unoshap2.cxx2148
-rw-r--r--svx/source/unodraw/unoshap3.cxx1210
-rw-r--r--svx/source/unodraw/unoshap4.cxx992
-rw-r--r--svx/source/unodraw/unoshape.cxx4567
-rw-r--r--svx/source/unodraw/unoshcol.cxx258
-rw-r--r--svx/source/unodraw/unoshtxt.cxx1149
-rw-r--r--svx/source/unodraw/unottabl.cxx107
-rwxr-xr-xsvx/source/unogallery/makefile.mk48
-rw-r--r--svx/source/unogallery/unogalitem.cxx485
-rw-r--r--svx/source/unogallery/unogalitem.hxx126
-rw-r--r--svx/source/unogallery/unogaltheme.cxx433
-rw-r--r--svx/source/unogallery/unogaltheme.hxx110
-rw-r--r--svx/source/unogallery/unogalthemeprovider.cxx316
-rw-r--r--svx/source/xml/makefile.mk49
-rw-r--r--svx/source/xml/xmleohlp.cxx819
-rw-r--r--svx/source/xml/xmlexport.cxx319
-rw-r--r--svx/source/xml/xmlgrhlp.cxx1154
-rw-r--r--svx/source/xml/xmlxtexp.cxx492
-rw-r--r--svx/source/xml/xmlxtimp.cxx488
-rw-r--r--svx/source/xoutdev/_xoutbmp.cxx768
-rw-r--r--svx/source/xoutdev/_xpoly.cxx2135
-rw-r--r--svx/source/xoutdev/makefile.mk59
-rw-r--r--svx/source/xoutdev/xattr.cxx5778
-rw-r--r--svx/source/xoutdev/xattr2.cxx1712
-rw-r--r--svx/source/xoutdev/xattrbmp.cxx894
-rw-r--r--svx/source/xoutdev/xexch.cxx204
-rw-r--r--svx/source/xoutdev/xpool.cxx235
-rw-r--r--svx/source/xoutdev/xtabbtmp.cxx294
-rw-r--r--svx/source/xoutdev/xtabcolr.cxx548
-rw-r--r--svx/source/xoutdev/xtabdash.cxx378
-rw-r--r--svx/source/xoutdev/xtabgrdt.cxx372
-rw-r--r--svx/source/xoutdev/xtabhtch.cxx374
-rw-r--r--svx/source/xoutdev/xtable.cxx511
-rw-r--r--svx/source/xoutdev/xtablend.cxx395
-rw-r--r--svx/uiconfig/accelerator/default.xml5
-rw-r--r--svx/uiconfig/accelerator/en-US/default.xml29
-rw-r--r--svx/uiconfig/accelerator/es/default.xml29
-rw-r--r--svx/uiconfig/layout/delzip1
-rw-r--r--svx/uiconfig/layout/layout.mk33
-rw-r--r--svx/uiconfig/layout/makefile.mk46
-rw-r--r--svx/uiconfig/layout/zoom.xml59
-rw-r--r--svx/util/cui.dxp1
-rw-r--r--svx/util/cui.flt139
-rw-r--r--svx/util/dl.flt139
-rw-r--r--svx/util/gal.dxp21
-rw-r--r--svx/util/hidother.hrc27
-rw-r--r--svx/util/hidother.src79
-rw-r--r--svx/util/makefile.mk194
-rw-r--r--svx/util/makefile.pmk43
-rw-r--r--svx/util/svx.dxp3
-rw-r--r--svx/util/svx.flt134
-rw-r--r--svx/util/svxpch.cxx69
-rw-r--r--svx/workben/edittest.cxx1795
-rw-r--r--svx/workben/makefile.mk72
-rw-r--r--svx/workben/msview/makefile.mk72
-rw-r--r--svx/workben/msview/msview.cxx1224
-rw-r--r--svx/workben/msview/msview.xml294
-rw-r--r--svx/workben/msview/xmlconfig.cxx575
-rw-r--r--svx/workben/msview/xmlconfig.hxx108
-rw-r--r--svx/xml/AccessibleControlShape.xml40
-rw-r--r--svx/xml/AccessibleEditableTextPara.xml36
-rw-r--r--svx/xml/AccessibleGraphicShape.xml41
-rw-r--r--svx/xml/AccessibleImageBullet.xml34
-rw-r--r--svx/xml/AccessibleOLEShape.xml41
-rw-r--r--svx/xml/AccessibleShape.xml39
-rw-r--r--svx/xml/SvxDrawPage.xml16
-rw-r--r--svx/xml/SvxGraphCtrlAccessibleContext.xml19
-rw-r--r--svx/xml/SvxGraphicExporter.xml16
-rw-r--r--svx/xml/SvxGraphicObject.xml16
-rw-r--r--svx/xml/SvxShape.xml16
-rw-r--r--svx/xml/SvxShapeCircle.xml16
-rw-r--r--svx/xml/SvxShapeCollection.xml16
-rw-r--r--svx/xml/SvxShapeConnector.xml16
-rw-r--r--svx/xml/SvxShapeControl.xml16
-rw-r--r--svx/xml/SvxShapeDimensioning.xml16
-rw-r--r--svx/xml/SvxShapeGroup.xml16
-rw-r--r--svx/xml/SvxShapePolyPolygon.xml16
-rw-r--r--svx/xml/SvxShapePolyPolygonBezier.xml16
-rw-r--r--svx/xml/SvxUnoNumberingRules.xml16
-rw-r--r--svx/xml/SvxUnoText.xml16
-rw-r--r--svx/xml/SvxUnoTextContent.xml16
-rw-r--r--svx/xml/SvxUnoTextContentEnum.xml16
-rw-r--r--svx/xml/SvxUnoTextCursor.xml16
-rw-r--r--svx/xml/SvxUnoTextField.xml16
-rw-r--r--svx/xml/SvxUnoTextRange.xml16
-rw-r--r--svx/xml/SvxUnoTextRangeEnumeration.xml16
-rw-r--r--sw/inc/EnhancedPDFExportHelper.hxx256
-rw-r--r--sw/inc/HandleAnchorNodeChg.hxx81
-rw-r--r--sw/inc/IDocumentChartDataProviderAccess.hxx69
-rw-r--r--sw/inc/IDocumentContentOperations.hxx203
-rwxr-xr-xsw/inc/IDocumentDeviceAccess.hxx145
-rw-r--r--sw/inc/IDocumentDrawModelAccess.hxx111
-rw-r--r--sw/inc/IDocumentExternalData.hxx69
-rw-r--r--sw/inc/IDocumentFieldsAccess.hxx191
-rw-r--r--sw/inc/IDocumentLayoutAccess.hxx78
-rw-r--r--sw/inc/IDocumentLineNumberAccess.hxx51
-rw-r--r--sw/inc/IDocumentLinksAdministration.hxx91
-rw-r--r--sw/inc/IDocumentListItems.hxx61
-rw-r--r--sw/inc/IDocumentListsAccess.hxx57
-rw-r--r--sw/inc/IDocumentMarkAccess.hxx251
-rw-r--r--sw/inc/IDocumentOutlineNodes.hxx57
-rw-r--r--sw/inc/IDocumentRedlineAccess.hxx259
-rw-r--r--sw/inc/IDocumentSettingAccess.hxx212
-rw-r--r--sw/inc/IDocumentState.hxx87
-rw-r--r--sw/inc/IDocumentStatistics.hxx60
-rw-r--r--sw/inc/IDocumentStylePoolAccess.hxx87
-rw-r--r--sw/inc/IDocumentTimerAccess.hxx60
-rw-r--r--sw/inc/IDocumentUndoRedo.hxx193
-rw-r--r--sw/inc/IGrammarContact.hxx87
-rw-r--r--sw/inc/IInterface.hxx67
-rw-r--r--sw/inc/IMark.hxx119
-rw-r--r--sw/inc/PostItMgr.hxx273
-rw-r--r--sw/inc/RefreshListenerContainer.hxx38
-rw-r--r--sw/inc/SwAppletImpl.hxx79
-rw-r--r--sw/inc/SwCapObjType.hxx35
-rw-r--r--sw/inc/SwGetPoolIdFromName.hxx44
-rw-r--r--sw/inc/SwNodeNum.hxx118
-rw-r--r--sw/inc/SwNumberTree.hxx774
-rw-r--r--sw/inc/SwNumberTreeTypes.hxx39
-rw-r--r--sw/inc/SwRewriter.hxx50
-rw-r--r--sw/inc/SwSmartTagMgr.hxx65
-rw-r--r--sw/inc/SwStyleNameMapper.hxx204
-rw-r--r--sw/inc/SwUndoField.hxx85
-rw-r--r--sw/inc/SwUndoFmt.hxx250
-rw-r--r--sw/inc/SwUndoPageDesc.hxx90
-rw-r--r--sw/inc/SwUndoTOXChange.hxx47
-rw-r--r--sw/inc/SwXMLSectionList.hxx89
-rw-r--r--sw/inc/TextCursorHelper.hxx54
-rw-r--r--sw/inc/access.hrc61
-rw-r--r--sw/inc/accessibilityoptions.hxx53
-rw-r--r--sw/inc/accmap.hxx396
-rw-r--r--sw/inc/acmplwrd.hxx73
-rw-r--r--sw/inc/anchoreddrawobject.hxx223
-rw-r--r--sw/inc/anchoredobject.hxx642
-rw-r--r--sw/inc/authfld.hxx203
-rw-r--r--sw/inc/authratr.hxx54
-rw-r--r--sw/inc/bparr.hxx126
-rw-r--r--sw/inc/breakit.hxx122
-rw-r--r--sw/inc/calbck.hxx250
-rw-r--r--sw/inc/calc.hxx241
-rw-r--r--sw/inc/ccoll.hxx100
-rw-r--r--sw/inc/cellatr.hxx129
-rw-r--r--sw/inc/cellfml.hxx164
-rw-r--r--sw/inc/charatr.hxx178
-rw-r--r--sw/inc/charfmt.hxx61
-rw-r--r--sw/inc/chcmprse.hxx40
-rw-r--r--sw/inc/checkit.hxx54
-rw-r--r--sw/inc/chpfld.hxx102
-rw-r--r--sw/inc/chrdlg.hrc60
-rw-r--r--sw/inc/cmdid.h1310
-rw-r--r--sw/inc/colwd.hxx62
-rw-r--r--sw/inc/comcore.hrc123
-rw-r--r--sw/inc/crsrsh.hxx949
-rw-r--r--sw/inc/crsskip.hxx42
-rw-r--r--sw/inc/crstate.hxx217
-rw-r--r--sw/inc/cshtyp.hxx119
-rw-r--r--sw/inc/dbfld.hxx338
-rw-r--r--sw/inc/dbgoutsw.hxx129
-rw-r--r--sw/inc/dbmgr.hxx399
-rw-r--r--sw/inc/dbui.hrc126
-rw-r--r--sw/inc/dcontact.hxx561
-rw-r--r--sw/inc/ddefld.hxx117
-rw-r--r--sw/inc/dialog.hrc89
-rw-r--r--sw/inc/dlelstnr.hxx95
-rw-r--r--sw/inc/dobjfac.hxx47
-rw-r--r--sw/inc/doc.hxx2212
-rw-r--r--sw/inc/docary.hxx132
-rw-r--r--sw/inc/docfac.hxx48
-rw-r--r--sw/inc/dochdl.hrc56
-rw-r--r--sw/inc/docsh.hxx310
-rw-r--r--sw/inc/docstat.hxx52
-rw-r--r--sw/inc/docstyle.hxx245
-rw-r--r--sw/inc/docufld.hxx836
-rw-r--r--sw/inc/dpage.hxx64
-rw-r--r--sw/inc/drawdoc.hxx65
-rw-r--r--sw/inc/edglbldc.hxx77
-rw-r--r--sw/inc/edimp.hxx83
-rw-r--r--sw/inc/editsh.hxx988
-rw-r--r--sw/inc/envelp.hrc97
-rw-r--r--sw/inc/errhdl.hxx76
-rw-r--r--sw/inc/error.h50
-rw-r--r--sw/inc/expfld.hxx436
-rw-r--r--sw/inc/extinput.hxx59
-rw-r--r--sw/inc/fchrfmt.hxx83
-rw-r--r--sw/inc/fesh.hxx780
-rw-r--r--sw/inc/fldbas.hxx456
-rw-r--r--sw/inc/flddat.hxx148
-rw-r--r--sw/inc/flddropdown.hxx279
-rw-r--r--sw/inc/fldinit.hxx38
-rw-r--r--sw/inc/fldui.hrc292
-rw-r--r--sw/inc/fldupde.hxx39
-rw-r--r--sw/inc/flyenum.hxx55
-rw-r--r--sw/inc/flypos.hxx60
-rw-r--r--sw/inc/fmtanchr.hxx92
-rw-r--r--sw/inc/fmtautofmt.hxx75
-rw-r--r--sw/inc/fmtclbl.hxx54
-rw-r--r--sw/inc/fmtclds.hxx179
-rw-r--r--sw/inc/fmtcnct.hxx87
-rw-r--r--sw/inc/fmtcntnt.hxx66
-rw-r--r--sw/inc/fmtcol.hxx304
-rw-r--r--sw/inc/fmtcolfunc.hxx89
-rw-r--r--sw/inc/fmteiro.hxx60
-rw-r--r--sw/inc/fmtflcnt.hxx64
-rw-r--r--sw/inc/fmtfld.hxx119
-rw-r--r--sw/inc/fmtfollowtextflow.hxx66
-rw-r--r--sw/inc/fmtfordr.hxx72
-rw-r--r--sw/inc/fmtfsize.hxx113
-rw-r--r--sw/inc/fmtftn.hxx81
-rw-r--r--sw/inc/fmtftntx.hxx137
-rw-r--r--sw/inc/fmthdft.hxx114
-rw-r--r--sw/inc/fmtinfmt.hxx110
-rw-r--r--sw/inc/fmtline.hxx71
-rw-r--r--sw/inc/fmtlsplt.hxx58
-rwxr-xr-xsw/inc/fmtmeta.hxx229
-rw-r--r--sw/inc/fmtornt.hxx143
-rw-r--r--sw/inc/fmtpdsc.hxx99
-rw-r--r--sw/inc/fmtrfmrk.hxx64
-rw-r--r--sw/inc/fmtrowsplt.hxx58
-rw-r--r--sw/inc/fmtruby.hxx91
-rw-r--r--sw/inc/fmtsrnd.hxx93
-rw-r--r--sw/inc/fmtsrndenum.hxx41
-rw-r--r--sw/inc/fmtui.hrc89
-rw-r--r--sw/inc/fmturl.hxx92
-rw-r--r--sw/inc/fmtwrapinfluenceonobjpos.hxx77
-rw-r--r--sw/inc/format.hxx358
-rw-r--r--sw/inc/frmatr.hxx99
-rw-r--r--sw/inc/frmfmt.hxx323
-rw-r--r--sw/inc/ftnidx.hxx79
-rw-r--r--sw/inc/ftninfo.hxx117
-rw-r--r--sw/inc/globals.hrc290
-rw-r--r--sw/inc/globdoc.hxx53
-rw-r--r--sw/inc/grfatr.hxx370
-rw-r--r--sw/inc/helpid.h983
-rw-r--r--sw/inc/hfspacingitem.hxx59
-rw-r--r--sw/inc/hhcwrp.hxx121
-rw-r--r--sw/inc/hintids.hxx486
-rw-r--r--sw/inc/hints.hxx284
-rw-r--r--sw/inc/htmltbl.hxx491
-rw-r--r--sw/inc/index.hrc66
-rw-r--r--sw/inc/index.hxx217
-rw-r--r--sw/inc/inetfld.hxx109
-rw-r--r--sw/inc/init.hxx48
-rw-r--r--sw/inc/io.hxx176
-rw-r--r--sw/inc/iodetect.hxx127
-rw-r--r--sw/inc/istyleaccess.hxx69
-rw-r--r--sw/inc/itabenum.hxx54
-rw-r--r--sw/inc/lineinfo.hxx109
-rw-r--r--sw/inc/linkenum.hxx39
-rw-r--r--sw/inc/list.hxx74
-rw-r--r--sw/inc/listfunc.hxx38
-rw-r--r--sw/inc/makefile.mk49
-rw-r--r--sw/inc/mdiexp.hxx78
-rw-r--r--sw/inc/modcfg.hxx343
-rw-r--r--sw/inc/modeltoviewhelper.hxx111
-rw-r--r--sw/inc/ndarr.hxx344
-rw-r--r--sw/inc/ndgrf.hxx261
-rw-r--r--sw/inc/ndhints.hxx223
-rw-r--r--sw/inc/ndindex.hxx252
-rw-r--r--sw/inc/ndnotxt.hxx121
-rw-r--r--sw/inc/ndole.hxx171
-rw-r--r--sw/inc/ndtxt.hxx893
-rw-r--r--sw/inc/ndtyp.hxx69
-rw-r--r--sw/inc/newhdl.hxx73
-rw-r--r--sw/inc/node.hxx757
-rw-r--r--sw/inc/numrule.hxx374
-rw-r--r--sw/inc/pagedesc.hxx347
-rw-r--r--sw/inc/pageiter.hxx53
-rw-r--r--sw/inc/pagepreviewlayout.hxx624
-rw-r--r--sw/inc/pam.hxx280
-rw-r--r--sw/inc/paratr.hxx278
-rw-r--r--sw/inc/pausethreadstarting.hxx48
-rw-r--r--sw/inc/pch/precompiled_sw.cxx29
-rw-r--r--sw/inc/pch/precompiled_sw.hxx1005
-rw-r--r--sw/inc/poolfmt.awk73
-rw-r--r--sw/inc/poolfmt.hrc281
-rw-r--r--sw/inc/poolfmt.hxx443
-rw-r--r--sw/inc/postit.hxx413
-rw-r--r--sw/inc/postithelper.hxx139
-rw-r--r--sw/inc/printdata.hxx314
-rw-r--r--sw/inc/pvprtdat.hxx79
-rw-r--r--sw/inc/rcid.hrc268
-rw-r--r--sw/inc/redline.hxx314
-rw-r--r--sw/inc/redlnaut.hxx54
-rw-r--r--sw/inc/reffld.hxx162
-rw-r--r--sw/inc/ring.hxx52
-rw-r--r--sw/inc/rolbck.hxx473
-rw-r--r--sw/inc/rubylist.hxx54
-rw-r--r--sw/inc/section.hxx322
-rw-r--r--sw/inc/shellid.hxx73
-rw-r--r--sw/inc/shellio.hxx677
-rw-r--r--sw/inc/shellres.hxx120
-rw-r--r--sw/inc/sortopt.hxx69
-rw-r--r--sw/inc/splargs.hxx180
-rw-r--r--sw/inc/statstr.hrc54
-rw-r--r--sw/inc/stringhash.hxx104
-rw-r--r--sw/inc/sw.mk40
-rw-r--r--sw/inc/sw_primitivetypes2d.hxx46
-rw-r--r--sw/inc/swabstdlg.hxx498
-rw-r--r--sw/inc/swacorr.hxx59
-rw-r--r--sw/inc/swatrset.hxx353
-rw-r--r--sw/inc/swbaslnk.hxx95
-rw-r--r--sw/inc/swcalwrp.hxx55
-rw-r--r--sw/inc/swcli.hxx58
-rw-r--r--sw/inc/swcrsr.hxx309
-rw-r--r--sw/inc/swdbdata.hxx49
-rw-r--r--sw/inc/swdbtoolsclient.hxx76
-rw-r--r--sw/inc/swddetbl.hxx61
-rw-r--r--sw/inc/swdll.hxx69
-rw-r--r--sw/inc/swdllapi.h13
-rw-r--r--sw/inc/swerror.h112
-rw-r--r--sw/inc/swevent.hxx129
-rw-r--r--sw/inc/swfltopt.hxx44
-rw-r--r--sw/inc/swgstr.hxx148
-rw-r--r--sw/inc/swhints.hxx36
-rw-r--r--sw/inc/swmodule.hxx278
-rw-r--r--sw/inc/swpre.mk46
-rw-r--r--sw/inc/swprtopt.hxx102
-rw-r--r--sw/inc/swrect.hxx364
-rw-r--r--sw/inc/swregion.hxx57
-rw-r--r--sw/inc/swserv.hxx93
-rw-r--r--sw/inc/swstyle.h41
-rw-r--r--sw/inc/swtable.hxx471
-rw-r--r--sw/inc/swtblfmt.hxx99
-rw-r--r--sw/inc/swtypes.hxx338
-rw-r--r--sw/inc/swundo.hxx200
-rw-r--r--sw/inc/swunodef.hxx36
-rw-r--r--sw/inc/swunohelper.hxx81
-rw-r--r--sw/inc/swurl.hxx46
-rw-r--r--sw/inc/swwait.hxx44
-rw-r--r--sw/inc/tabcol.hxx107
-rw-r--r--sw/inc/tblafmt.hxx270
-rw-r--r--sw/inc/tblenum.hxx79
-rw-r--r--sw/inc/tblsel.hxx230
-rw-r--r--sw/inc/tgrditem.hxx120
-rw-r--r--sw/inc/tox.hxx793
-rw-r--r--sw/inc/toxe.hxx125
-rw-r--r--sw/inc/toxinit.hxx37
-rw-r--r--sw/inc/toxwrap.hxx77
-rw-r--r--sw/inc/txatbase.hxx244
-rw-r--r--sw/inc/txatritr.hxx99
-rw-r--r--sw/inc/txtatr.hxx118
-rw-r--r--sw/inc/txtflcnt.hxx68
-rw-r--r--sw/inc/txtfld.hxx80
-rw-r--r--sw/inc/txtftn.hxx81
-rw-r--r--sw/inc/txtinet.hxx81
-rw-r--r--sw/inc/txtrfmrk.hxx61
-rw-r--r--sw/inc/txttxmrk.hxx65
-rw-r--r--sw/inc/undobj.hxx2001
-rw-r--r--sw/inc/unoatxt.hxx306
-rw-r--r--sw/inc/unobaseclass.hxx174
-rw-r--r--sw/inc/unobookmark.hxx260
-rw-r--r--sw/inc/unochart.hxx433
-rw-r--r--sw/inc/unocoll.hxx581
-rw-r--r--sw/inc/unocore.hrc48
-rw-r--r--sw/inc/unocrsr.hxx122
-rw-r--r--sw/inc/unocrsrhelper.hxx211
-rw-r--r--sw/inc/unodraw.hxx353
-rw-r--r--sw/inc/unoevent.hxx118
-rw-r--r--sw/inc/unoevtlstnr.hxx58
-rw-r--r--sw/inc/unofield.hxx330
-rw-r--r--sw/inc/unoflatpara.hxx137
-rw-r--r--sw/inc/unofootnote.hxx229
-rw-r--r--sw/inc/unoframe.hxx379
-rw-r--r--sw/inc/unoidx.hxx367
-rw-r--r--sw/inc/unomailmerge.hxx206
-rw-r--r--sw/inc/unomap.hxx349
-rw-r--r--sw/inc/unomid.h157
-rw-r--r--sw/inc/unomod.hxx210
-rw-r--r--sw/inc/unoparaframeenum.hxx127
-rw-r--r--sw/inc/unoparagraph.hxx365
-rw-r--r--sw/inc/unoport.hxx325
-rw-r--r--sw/inc/unoprnms.hxx842
-rw-r--r--sw/inc/unoredline.hxx156
-rw-r--r--sw/inc/unoredlines.hxx105
-rw-r--r--sw/inc/unorefmark.hxx174
-rw-r--r--sw/inc/unosection.hxx247
-rw-r--r--sw/inc/unosett.hxx326
-rw-r--r--sw/inc/unosrch.hxx136
-rw-r--r--sw/inc/unostyle.hxx467
-rw-r--r--sw/inc/unotbl.hxx625
-rw-r--r--sw/inc/unotext.hxx339
-rw-r--r--sw/inc/unotextbodyhf.hxx210
-rw-r--r--sw/inc/unotextcursor.hxx347
-rw-r--r--sw/inc/unotextmarkup.hxx111
-rw-r--r--sw/inc/unotextrange.hxx338
-rw-r--r--sw/inc/unotxdoc.hxx612
-rw-r--r--sw/inc/usrfld.hxx132
-rw-r--r--sw/inc/viewopt.hxx609
-rw-r--r--sw/inc/viewsh.hxx646
-rw-r--r--sw/inc/viscrs.hxx225
-rw-r--r--sw/inc/warnpassword.hxx47
-rw-r--r--sw/inc/wdocsh.hxx63
-rwxr-xr-xsw/prj/build.lst76
-rw-r--r--sw/prj/d.lst113
-rw-r--r--sw/qa/complex/accessibility/AccessibleRelationSet.java252
-rw-r--r--sw/qa/complex/accessibility/makefile.mk57
-rwxr-xr-xsw/qa/complex/checkColor/CheckChangeColor.java90
-rwxr-xr-xsw/qa/complex/checkColor/makefile.mk75
-rwxr-xr-xsw/qa/complex/indeterminateState/CheckIndeterminateState.java136
-rwxr-xr-xsw/qa/complex/indeterminateState/makefile.mk82
-rw-r--r--sw/qa/complex/writer/CheckBookmarks.java277
-rw-r--r--sw/qa/complex/writer/CheckCrossReferences.java369
-rw-r--r--sw/qa/complex/writer/CheckFlies.java233
-rwxr-xr-xsw/qa/complex/writer/CheckIndexedPropertyValues.java182
-rwxr-xr-xsw/qa/complex/writer/CheckNamedPropertyValues.java196
-rwxr-xr-xsw/qa/complex/writer/TextPortionEnumerationTest.java3868
-rwxr-xr-xsw/qa/complex/writer/makefile.mk108
-rw-r--r--sw/qa/complex/writer/testdocuments/CheckCrossReferences.odtbin0 -> 11628 bytes
-rw-r--r--sw/qa/complex/writer/testdocuments/CheckFlies.odtbin0 -> 65022 bytes
-rwxr-xr-xsw/qa/complex/writer/testdocuments/TESTMETA.odtbin0 -> 8678 bytes
-rw-r--r--sw/qa/core/Test-BigPtrArray.cxx877
-rw-r--r--sw/qa/core/bigpointerarray-new.cxx110
-rw-r--r--sw/qa/core/bigpointerarray-new.hxx159
-rw-r--r--sw/qa/core/export.exp1
-rw-r--r--sw/qa/core/export.map34
-rw-r--r--sw/qa/core/makefile.mk67
-rw-r--r--sw/qa/core/performance-jobfile9
-rw-r--r--sw/qa/unoapi/knownissues.xcl153
-rw-r--r--sw/qa/unoapi/lastCheck.txt1
-rw-r--r--sw/qa/unoapi/makefile.mk39
-rw-r--r--sw/qa/unoapi/sw.sce94
-rw-r--r--sw/qa/unoapi/testdocuments/MailMerge.sxwbin0 -> 5391 bytes
-rw-r--r--sw/qa/unoapi/testdocuments/SwXTextEmbeddedObject.sdwbin0 -> 180736 bytes
-rw-r--r--sw/qa/unoapi/testdocuments/SwXTextEmbeddedObject.sxwbin0 -> 24763 bytes
-rw-r--r--sw/qa/unoapi/testdocuments/XDocumentInsertable.sxwbin0 -> 4914 bytes
-rw-r--r--sw/qa/unoapi/testdocuments/sForm.sxwbin0 -> 5568 bytes
-rwxr-xr-xsw/sdi/_annotsh.sdi391
-rw-r--r--sw/sdi/_basesh.sdi525
-rw-r--r--sw/sdi/_beziers.sdi128
-rw-r--r--sw/sdi/_docsh.sdi141
-rw-r--r--sw/sdi/_drwbase.sdi139
-rw-r--r--sw/sdi/_formsh.sdi44
-rw-r--r--sw/sdi/_frmsh.sdi305
-rw-r--r--sw/sdi/_grfsh.sdi216
-rw-r--r--sw/sdi/_listsh.sdi111
-rw-r--r--sw/sdi/_mediash.sdi51
-rw-r--r--sw/sdi/_olesh.sdi35
-rw-r--r--sw/sdi/_tabsh.sdi409
-rw-r--r--sw/sdi/_textsh.sdi1587
-rw-r--r--sw/sdi/_viewsh.sdi774
-rwxr-xr-xsw/sdi/annotsh.sdi352
-rw-r--r--sw/sdi/basesh.sdi64
-rw-r--r--sw/sdi/beziersh.sdi135
-rw-r--r--sw/sdi/docsh.sdi83
-rw-r--r--sw/sdi/drawsh.sdi477
-rw-r--r--sw/sdi/drwbassh.sdi47
-rw-r--r--sw/sdi/drwtxtsh.sdi633
-rw-r--r--sw/sdi/formsh.sdi40
-rw-r--r--sw/sdi/frmsh.sdi56
-rw-r--r--sw/sdi/grfsh.sdi44
-rw-r--r--sw/sdi/listsh.sdi43
-rw-r--r--sw/sdi/makefile.mk106
-rw-r--r--sw/sdi/mediash.sdi42
-rw-r--r--sw/sdi/olesh.sdi41
-rw-r--r--sw/sdi/swinterf.c249
-rw-r--r--sw/sdi/switems.sdi82
-rw-r--r--sw/sdi/swpatch.txt21
-rw-r--r--sw/sdi/swriter.sdi10318
-rw-r--r--sw/sdi/swslots.hrc33
-rw-r--r--sw/sdi/swslots.sdi125
-rw-r--r--sw/sdi/swslots.src1488
-rw-r--r--sw/sdi/tabsh.sdi67
-rw-r--r--sw/sdi/textsh.sdi124
-rw-r--r--sw/sdi/viewsh.sdi326
-rw-r--r--sw/sdi/wbasesh.sdi44
-rw-r--r--sw/sdi/wbeziers.sdi38
-rw-r--r--sw/sdi/wdocsh.sdi60
-rw-r--r--sw/sdi/wdrwbase.sdi49
-rw-r--r--sw/sdi/wformsh.sdi40
-rw-r--r--sw/sdi/wfrmsh.sdi44
-rw-r--r--sw/sdi/wgrfsh.sdi43
-rw-r--r--sw/sdi/wlistsh.sdi41
-rw-r--r--sw/sdi/wolesh.sdi43
-rw-r--r--sw/sdi/wrtapp.sdi90
-rw-r--r--sw/sdi/wtabsh.sdi40
-rw-r--r--sw/sdi/wtextsh.sdi49
-rw-r--r--sw/sdi/wviewsh.sdi203
-rw-r--r--sw/source/core/SwNumberTree/SwNodeNum.cxx517
-rw-r--r--sw/source/core/SwNumberTree/SwNumberTree.cxx1422
-rw-r--r--sw/source/core/SwNumberTree/makefile.mk50
-rw-r--r--sw/source/core/access/acccell.cxx375
-rw-r--r--sw/source/core/access/acccell.hxx137
-rw-r--r--sw/source/core/access/acccontext.cxx1492
-rw-r--r--sw/source/core/access/acccontext.hxx434
-rw-r--r--sw/source/core/access/accdoc.cxx513
-rw-r--r--sw/source/core/access/accdoc.hxx213
-rw-r--r--sw/source/core/access/accembedded.cxx97
-rw-r--r--sw/source/core/access/accembedded.hxx69
-rw-r--r--sw/source/core/access/accfootnote.cxx157
-rw-r--r--sw/source/core/access/accfootnote.hxx84
-rw-r--r--sw/source/core/access/accframe.cxx503
-rw-r--r--sw/source/core/access/accframe.hxx185
-rw-r--r--sw/source/core/access/accframebase.cxx277
-rw-r--r--sw/source/core/access/accframebase.hxx70
-rw-r--r--sw/source/core/access/accfrmobj.cxx65
-rw-r--r--sw/source/core/access/accfrmobj.hxx217
-rw-r--r--sw/source/core/access/accfrmobjmap.cxx122
-rw-r--r--sw/source/core/access/accfrmobjmap.hxx104
-rw-r--r--sw/source/core/access/accfrmobjslist.cxx124
-rw-r--r--sw/source/core/access/accfrmobjslist.hxx144
-rw-r--r--sw/source/core/access/accgraphic.cxx97
-rw-r--r--sw/source/core/access/accgraphic.hxx69
-rw-r--r--sw/source/core/access/accheaderfooter.cxx145
-rw-r--r--sw/source/core/access/accheaderfooter.hxx85
-rw-r--r--sw/source/core/access/acchyperlink.cxx190
-rw-r--r--sw/source/core/access/acchyperlink.hxx91
-rw-r--r--sw/source/core/access/acchypertextdata.cxx55
-rw-r--r--sw/source/core/access/acchypertextdata.hxx51
-rw-r--r--sw/source/core/access/accmap.cxx2764
-rw-r--r--sw/source/core/access/accnotextframe.cxx275
-rw-r--r--sw/source/core/access/accnotextframe.hxx110
-rw-r--r--sw/source/core/access/accpage.cxx200
-rw-r--r--sw/source/core/access/accpage.hxx99
-rw-r--r--sw/source/core/access/accpara.cxx2582
-rw-r--r--sw/source/core/access/accpara.hxx446
-rw-r--r--sw/source/core/access/accportions.cxx748
-rw-r--r--sw/source/core/access/accportions.hxx176
-rw-r--r--sw/source/core/access/accpreview.cxx104
-rw-r--r--sw/source/core/access/accpreview.hxx76
-rw-r--r--sw/source/core/access/accselectionhelper.cxx333
-rw-r--r--sw/source/core/access/accselectionhelper.hxx81
-rw-r--r--sw/source/core/access/acctable.cxx1750
-rw-r--r--sw/source/core/access/acctable.hxx328
-rw-r--r--sw/source/core/access/acctextframe.cxx278
-rw-r--r--sw/source/core/access/acctextframe.hxx115
-rw-r--r--sw/source/core/access/makefile.mk98
-rw-r--r--sw/source/core/access/textmarkuphelper.cxx206
-rw-r--r--sw/source/core/access/textmarkuphelper.hxx76
-rw-r--r--sw/source/core/attr/calbck.cxx634
-rw-r--r--sw/source/core/attr/cellatr.cxx264
-rw-r--r--sw/source/core/attr/fmtfollowtextflow.cxx37
-rw-r--r--sw/source/core/attr/fmtwrapinfluenceonobjpos.cxx166
-rw-r--r--sw/source/core/attr/format.cxx694
-rw-r--r--sw/source/core/attr/hints.cxx308
-rw-r--r--sw/source/core/attr/makefile.mk55
-rw-r--r--sw/source/core/attr/swatrset.cxx404
-rw-r--r--sw/source/core/bastyp/SwSmartTagMgr.cxx95
-rw-r--r--sw/source/core/bastyp/bparr.cxx580
-rw-r--r--sw/source/core/bastyp/breakit.cxx186
-rw-r--r--sw/source/core/bastyp/calc.cxx1824
-rw-r--r--sw/source/core/bastyp/checkit.cxx51
-rw-r--r--sw/source/core/bastyp/index.cxx593
-rw-r--r--sw/source/core/bastyp/init.cxx918
-rw-r--r--sw/source/core/bastyp/makefile.mk79
-rw-r--r--sw/source/core/bastyp/ring.cxx125
-rw-r--r--sw/source/core/bastyp/swcache.cxx656
-rw-r--r--sw/source/core/bastyp/swrect.cxx336
-rw-r--r--sw/source/core/bastyp/swregion.cxx254
-rw-r--r--sw/source/core/bastyp/swtypes.cxx133
-rw-r--r--sw/source/core/bastyp/tabcol.cxx142
-rw-r--r--sw/source/core/crsr/BlockCursor.cxx106
-rw-r--r--sw/source/core/crsr/BlockCursor.hxx36
-rw-r--r--sw/source/core/crsr/IBlockCursor.hxx95
-rw-r--r--sw/source/core/crsr/bookmrk.cxx346
-rw-r--r--sw/source/core/crsr/callnk.cxx221
-rw-r--r--sw/source/core/crsr/callnk.hxx56
-rw-r--r--sw/source/core/crsr/crbm.cxx260
-rw-r--r--sw/source/core/crsr/crossrefbookmark.cxx102
-rw-r--r--sw/source/core/crsr/crsrsh.cxx3507
-rw-r--r--sw/source/core/crsr/crstrvl.cxx2199
-rw-r--r--sw/source/core/crsr/crstrvl1.cxx97
-rw-r--r--sw/source/core/crsr/findattr.cxx1309
-rw-r--r--sw/source/core/crsr/findcoll.cxx119
-rw-r--r--sw/source/core/crsr/findfmt.cxx84
-rw-r--r--sw/source/core/crsr/findtxt.cxx704
-rw-r--r--sw/source/core/crsr/makefile.mk83
-rw-r--r--sw/source/core/crsr/pam.cxx1246
-rw-r--r--sw/source/core/crsr/paminit.cxx131
-rw-r--r--sw/source/core/crsr/swcrsr.cxx2302
-rw-r--r--sw/source/core/crsr/trvlcol.cxx133
-rw-r--r--sw/source/core/crsr/trvlfnfl.cxx357
-rw-r--r--sw/source/core/crsr/trvlreg.cxx291
-rw-r--r--sw/source/core/crsr/trvltbl.cxx931
-rw-r--r--sw/source/core/crsr/unocrsr.cxx280
-rw-r--r--sw/source/core/crsr/viscrs.cxx1016
-rw-r--r--sw/source/core/doc/SwStyleNameMapper.cxx1142
-rw-r--r--sw/source/core/doc/acmplwrd.cxx472
-rw-r--r--sw/source/core/doc/dbgoutsw.cxx1104
-rw-r--r--sw/source/core/doc/doc.cxx2684
-rw-r--r--sw/source/core/doc/docbasic.cxx276
-rw-r--r--sw/source/core/doc/docbm.cxx1748
-rw-r--r--sw/source/core/doc/docchart.cxx277
-rw-r--r--sw/source/core/doc/doccomp.cxx1826
-rw-r--r--sw/source/core/doc/doccorr.cxx461
-rw-r--r--sw/source/core/doc/docdde.cxx416
-rw-r--r--sw/source/core/doc/docdesc.cxx1018
-rw-r--r--sw/source/core/doc/docdraw.cxx1074
-rw-r--r--sw/source/core/doc/docedt.cxx2801
-rw-r--r--sw/source/core/doc/docfld.cxx2811
-rw-r--r--sw/source/core/doc/docfly.cxx1068
-rw-r--r--sw/source/core/doc/docfmt.cxx2687
-rw-r--r--sw/source/core/doc/docftn.cxx500
-rw-r--r--sw/source/core/doc/docglbl.cxx847
-rw-r--r--sw/source/core/doc/docglos.cxx203
-rw-r--r--sw/source/core/doc/doclay.cxx2291
-rw-r--r--sw/source/core/doc/docnew.cxx1450
-rw-r--r--sw/source/core/doc/docnum.cxx2969
-rw-r--r--sw/source/core/doc/docredln.cxx3858
-rw-r--r--sw/source/core/doc/docruby.cxx364
-rw-r--r--sw/source/core/doc/docsort.cxx1028
-rw-r--r--sw/source/core/doc/docstat.cxx67
-rw-r--r--sw/source/core/doc/doctxm.cxx2475
-rw-r--r--sw/source/core/doc/docxforms.cxx123
-rw-r--r--sw/source/core/doc/extinput.cxx292
-rw-r--r--sw/source/core/doc/fmtcol.cxx717
-rw-r--r--sw/source/core/doc/ftnidx.cxx398
-rw-r--r--sw/source/core/doc/gctable.cxx451
-rw-r--r--sw/source/core/doc/htmltbl.cxx1923
-rw-r--r--sw/source/core/doc/lineinfo.cxx154
-rw-r--r--sw/source/core/doc/list.cxx303
-rw-r--r--sw/source/core/doc/makefile.mk92
-rw-r--r--sw/source/core/doc/notxtfrm.cxx1105
-rw-r--r--sw/source/core/doc/number.cxx1671
-rw-r--r--sw/source/core/doc/poolfmt.cxx2594
-rw-r--r--sw/source/core/doc/sortopt.cxx103
-rw-r--r--sw/source/core/doc/swserv.cxx371
-rw-r--r--sw/source/core/doc/swstylemanager.cxx173
-rw-r--r--sw/source/core/doc/swstylemanager.hxx38
-rw-r--r--sw/source/core/doc/tblafmt.cxx1106
-rw-r--r--sw/source/core/doc/tblcpy.cxx1100
-rw-r--r--sw/source/core/doc/tblrwcl.cxx4769
-rw-r--r--sw/source/core/doc/visiturl.cxx139
-rw-r--r--sw/source/core/docnode/cancellablejob.cxx40
-rw-r--r--sw/source/core/docnode/cancellablejob.hxx53
-rw-r--r--sw/source/core/docnode/finalthreadmanager.cxx549
-rw-r--r--sw/source/core/docnode/makefile.mk82
-rw-r--r--sw/source/core/docnode/ndcopy.cxx1618
-rw-r--r--sw/source/core/docnode/ndindex.cxx168
-rw-r--r--sw/source/core/docnode/ndnotxt.cxx307
-rw-r--r--sw/source/core/docnode/ndnum.cxx225
-rw-r--r--sw/source/core/docnode/ndsect.cxx1503
-rw-r--r--sw/source/core/docnode/ndtbl.cxx4628
-rw-r--r--sw/source/core/docnode/ndtbl1.cxx1605
-rw-r--r--sw/source/core/docnode/node.cxx2126
-rw-r--r--sw/source/core/docnode/node2lay.cxx405
-rw-r--r--sw/source/core/docnode/nodes.cxx2691
-rw-r--r--sw/source/core/docnode/observablethread.cxx97
-rw-r--r--sw/source/core/docnode/pausethreadstarting.cxx55
-rw-r--r--sw/source/core/docnode/retrievedinputstreamdata.cxx167
-rw-r--r--sw/source/core/docnode/retrieveinputstream.cxx86
-rw-r--r--sw/source/core/docnode/retrieveinputstreamconsumer.cxx72
-rw-r--r--sw/source/core/docnode/section.cxx1703
-rw-r--r--sw/source/core/docnode/swbaslnk.cxx534
-rw-r--r--sw/source/core/docnode/swthreadjoiner.cxx61
-rw-r--r--sw/source/core/docnode/swthreadmanager.cxx87
-rw-r--r--sw/source/core/docnode/threadlistener.cxx57
-rw-r--r--sw/source/core/docnode/threadmanager.cxx258
-rw-r--r--sw/source/core/draw/dcontact.cxx2815
-rw-r--r--sw/source/core/draw/dflyobj.cxx964
-rw-r--r--sw/source/core/draw/dobjfac.cxx57
-rw-r--r--sw/source/core/draw/dpage.cxx265
-rw-r--r--sw/source/core/draw/drawdoc.cxx240
-rw-r--r--sw/source/core/draw/dview.cxx1120
-rw-r--r--sw/source/core/draw/makefile.mk60
-rw-r--r--sw/source/core/edit/acorrect.cxx526
-rw-r--r--sw/source/core/edit/autofmt.cxx2840
-rw-r--r--sw/source/core/edit/edatmisc.cxx189
-rw-r--r--sw/source/core/edit/edattr.cxx650
-rw-r--r--sw/source/core/edit/eddel.cxx354
-rw-r--r--sw/source/core/edit/edfcol.cxx161
-rw-r--r--sw/source/core/edit/edfld.cxx597
-rw-r--r--sw/source/core/edit/edfldexp.cxx101
-rw-r--r--sw/source/core/edit/edfmt.cxx197
-rw-r--r--sw/source/core/edit/edglbldc.cxx404
-rw-r--r--sw/source/core/edit/edglss.cxx373
-rw-r--r--sw/source/core/edit/editsh.cxx1197
-rw-r--r--sw/source/core/edit/edlingu.cxx1917
-rw-r--r--sw/source/core/edit/ednumber.cxx835
-rw-r--r--sw/source/core/edit/edredln.cxx150
-rw-r--r--sw/source/core/edit/edsect.cxx456
-rw-r--r--sw/source/core/edit/edtab.cxx492
-rw-r--r--sw/source/core/edit/edtox.cxx503
-rw-r--r--sw/source/core/edit/edundo.cxx280
-rw-r--r--sw/source/core/edit/edws.cxx385
-rw-r--r--sw/source/core/edit/makefile.mk71
-rw-r--r--sw/source/core/except/dbgloop.cxx168
-rw-r--r--sw/source/core/except/errhdl.cxx141
-rw-r--r--sw/source/core/except/makefile.mk60
-rw-r--r--sw/source/core/fields/authfld.cxx831
-rw-r--r--sw/source/core/fields/cellfml.cxx1231
-rw-r--r--sw/source/core/fields/chpfld.cxx309
-rw-r--r--sw/source/core/fields/dbfld.cxx1076
-rw-r--r--sw/source/core/fields/ddefld.cxx450
-rw-r--r--sw/source/core/fields/ddetbl.cxx187
-rw-r--r--sw/source/core/fields/docufld.cxx2793
-rw-r--r--sw/source/core/fields/expfld.cxx1330
-rw-r--r--sw/source/core/fields/fldbas.cxx800
-rw-r--r--sw/source/core/fields/flddat.cxx321
-rw-r--r--sw/source/core/fields/flddropdown.cxx284
-rw-r--r--sw/source/core/fields/fldlst.cxx233
-rw-r--r--sw/source/core/fields/macrofld.cxx266
-rw-r--r--sw/source/core/fields/makefile.mk94
-rw-r--r--sw/source/core/fields/postithelper.cxx185
-rw-r--r--sw/source/core/fields/reffld.cxx1099
-rw-r--r--sw/source/core/fields/scrptfld.cxx153
-rw-r--r--sw/source/core/fields/tblcalc.cxx264
-rwxr-xr-xsw/source/core/fields/textapi.cxx191
-rw-r--r--sw/source/core/fields/usrfld.cxx378
-rw-r--r--sw/source/core/frmedt/fecopy.cxx1550
-rw-r--r--sw/source/core/frmedt/fedesc.cxx291
-rw-r--r--sw/source/core/frmedt/fefly1.cxx2177
-rw-r--r--sw/source/core/frmedt/feflyole.cxx150
-rw-r--r--sw/source/core/frmedt/feshview.cxx3177
-rw-r--r--sw/source/core/frmedt/fetab.cxx2593
-rw-r--r--sw/source/core/frmedt/fews.cxx1296
-rw-r--r--sw/source/core/frmedt/makefile.mk76
-rw-r--r--sw/source/core/frmedt/tblsel.cxx2728
-rw-r--r--sw/source/core/graphic/grfatr.cxx366
-rw-r--r--sw/source/core/graphic/makefile.mk53
-rw-r--r--sw/source/core/graphic/ndgrf.cxx1230
-rw-r--r--sw/source/core/inc/GetMetricVal.hxx54
-rw-r--r--sw/source/core/inc/MarkManager.hxx97
-rw-r--r--sw/source/core/inc/SwGrammarMarkUp.hxx76
-rw-r--r--sw/source/core/inc/SwPortionHandler.hxx101
-rw-r--r--sw/source/core/inc/SwXMLBlockExport.hxx73
-rw-r--r--sw/source/core/inc/SwXMLBlockImport.hxx89
-rw-r--r--sw/source/core/inc/SwXMLBlockListContext.hxx126
-rw-r--r--sw/source/core/inc/SwXMLTextBlocks.hxx111
-rw-r--r--sw/source/core/inc/SwXTextDefaults.hxx84
-rw-r--r--sw/source/core/inc/acorrect.hxx122
-rw-r--r--sw/source/core/inc/anchoredobjectposition.hxx488
-rw-r--r--sw/source/core/inc/ascharanchoredobjectposition.hxx171
-rw-r--r--sw/source/core/inc/blink.hxx89
-rw-r--r--sw/source/core/inc/bodyfrm.hxx49
-rw-r--r--sw/source/core/inc/bookmrk.hxx261
-rw-r--r--sw/source/core/inc/cellfrm.hxx67
-rw-r--r--sw/source/core/inc/cntfrm.hxx147
-rw-r--r--sw/source/core/inc/colfrm.hxx42
-rw-r--r--sw/source/core/inc/crossrefbookmark.hxx99
-rw-r--r--sw/source/core/inc/dbg_lay.hxx120
-rw-r--r--sw/source/core/inc/dbgloop.hxx77
-rw-r--r--sw/source/core/inc/dflyobj.hxx136
-rw-r--r--sw/source/core/inc/docfld.hxx193
-rw-r--r--sw/source/core/inc/docsort.hxx176
-rw-r--r--sw/source/core/inc/doctxm.hxx147
-rw-r--r--sw/source/core/inc/drawdev.hxx140
-rw-r--r--sw/source/core/inc/drawfont.hxx594
-rw-r--r--sw/source/core/inc/dview.hxx134
-rw-r--r--sw/source/core/inc/environmentofanchoredobject.hxx117
-rw-r--r--sw/source/core/inc/finalthreadmanager.hxx105
-rw-r--r--sw/source/core/inc/flowfrm.hxx273
-rw-r--r--sw/source/core/inc/flyfrm.hxx287
-rw-r--r--sw/source/core/inc/flyfrms.hxx259
-rw-r--r--sw/source/core/inc/fntcache.hxx160
-rw-r--r--sw/source/core/inc/frame.hxx1261
-rw-r--r--sw/source/core/inc/frminf.hxx85
-rw-r--r--sw/source/core/inc/frmtool.hxx582
-rw-r--r--sw/source/core/inc/ftnboss.hxx137
-rw-r--r--sw/source/core/inc/ftnfrm.hxx150
-rw-r--r--sw/source/core/inc/hffrm.hxx66
-rw-r--r--sw/source/core/inc/ifinishedthreadlistener.hxx55
-rw-r--r--sw/source/core/inc/ithreadlistenerowner.hxx58
-rw-r--r--sw/source/core/inc/layact.hxx245
-rw-r--r--sw/source/core/inc/laycache.hxx77
-rw-r--r--sw/source/core/inc/layfrm.hxx209
-rw-r--r--sw/source/core/inc/layouter.hxx183
-rw-r--r--sw/source/core/inc/makefile.mk26
-rw-r--r--sw/source/core/inc/movedfwdfrmsbyobjpos.hxx70
-rw-r--r--sw/source/core/inc/mvsave.hxx231
-rw-r--r--sw/source/core/inc/node2lay.hxx81
-rw-r--r--sw/source/core/inc/noteurl.hxx76
-rw-r--r--sw/source/core/inc/notxtfrm.hxx78
-rw-r--r--sw/source/core/inc/objectformatter.hxx238
-rw-r--r--sw/source/core/inc/observablethread.hxx105
-rw-r--r--sw/source/core/inc/pagefrm.hxx540
-rw-r--r--sw/source/core/inc/pamtyp.hxx102
-rw-r--r--sw/source/core/inc/prevwpage.hxx36
-rw-r--r--sw/source/core/inc/ptqueue.hxx62
-rw-r--r--sw/source/core/inc/retrievedinputstreamdata.hxx111
-rw-r--r--sw/source/core/inc/retrieveinputstream.hxx68
-rw-r--r--sw/source/core/inc/retrieveinputstreamconsumer.hxx74
-rw-r--r--sw/source/core/inc/rootfrm.hxx369
-rw-r--r--sw/source/core/inc/rowfrm.hxx111
-rw-r--r--sw/source/core/inc/scriptinfo.hxx416
-rw-r--r--sw/source/core/inc/scrrect.hxx125
-rw-r--r--sw/source/core/inc/sectfrm.hxx148
-rw-r--r--sw/source/core/inc/setmapvirtdev.hxx71
-rw-r--r--sw/source/core/inc/sortedobjs.hxx108
-rw-r--r--sw/source/core/inc/sortedobjsimpl.hxx61
-rw-r--r--sw/source/core/inc/swblocks.hxx242
-rw-r--r--sw/source/core/inc/swcache.hxx302
-rw-r--r--sw/source/core/inc/swfntcch.hxx99
-rw-r--r--sw/source/core/inc/swfont.hxx899
-rw-r--r--sw/source/core/inc/swselectionlist.hxx97
-rw-r--r--sw/source/core/inc/swthreadjoiner.hxx51
-rw-r--r--sw/source/core/inc/swthreadmanager.hxx89
-rw-r--r--sw/source/core/inc/tabfrm.hxx233
-rw-r--r--sw/source/core/inc/tblrwcl.hxx228
-rwxr-xr-xsw/source/core/inc/textapi.hxx70
-rw-r--r--sw/source/core/inc/threadlistener.hxx62
-rw-r--r--sw/source/core/inc/threadmanager.hxx172
-rw-r--r--sw/source/core/inc/tocntntanchoredobjectposition.hxx103
-rw-r--r--sw/source/core/inc/tolayoutanchoredobjectposition.hxx66
-rw-r--r--sw/source/core/inc/toxhlp.hxx76
-rw-r--r--sw/source/core/inc/txmsrt.hxx294
-rw-r--r--sw/source/core/inc/txtfrm.hxx833
-rw-r--r--sw/source/core/inc/txttypes.hxx103
-rw-r--r--sw/source/core/inc/undoflystrattr.hxx57
-rw-r--r--sw/source/core/inc/unofldmid.h71
-rwxr-xr-xsw/source/core/inc/unometa.hxx355
-rw-r--r--sw/source/core/inc/viewimp.hxx432
-rw-r--r--sw/source/core/inc/visiturl.hxx49
-rw-r--r--sw/source/core/inc/wrong.hxx160
-rw-r--r--sw/source/core/layout/anchoreddrawobject.cxx906
-rw-r--r--sw/source/core/layout/anchoredobject.cxx1064
-rw-r--r--sw/source/core/layout/atrfrm.cxx3244
-rw-r--r--sw/source/core/layout/calcmove.cxx2104
-rw-r--r--sw/source/core/layout/colfrm.cxx483
-rw-r--r--sw/source/core/layout/dbg_lay.cxx866
-rw-r--r--sw/source/core/layout/findfrm.cxx1827
-rw-r--r--sw/source/core/layout/flowfrm.cxx2734
-rw-r--r--sw/source/core/layout/fly.cxx2826
-rw-r--r--sw/source/core/layout/flycnt.cxx1563
-rw-r--r--sw/source/core/layout/flyincnt.cxx360
-rw-r--r--sw/source/core/layout/flylay.cxx1392
-rw-r--r--sw/source/core/layout/flypos.cxx112
-rw-r--r--sw/source/core/layout/frmtool.cxx3740
-rw-r--r--sw/source/core/layout/ftnfrm.cxx3367
-rw-r--r--sw/source/core/layout/hffrm.cxx795
-rw-r--r--sw/source/core/layout/layact.cxx3068
-rw-r--r--sw/source/core/layout/laycache.cxx1391
-rw-r--r--sw/source/core/layout/layhelp.hxx232
-rw-r--r--sw/source/core/layout/layouter.cxx571
-rw-r--r--sw/source/core/layout/makefile.mk113
-rw-r--r--sw/source/core/layout/movedfwdfrmsbyobjpos.cxx109
-rw-r--r--sw/source/core/layout/newfrm.cxx589
-rw-r--r--sw/source/core/layout/objectformatter.cxx578
-rw-r--r--sw/source/core/layout/objectformatterlayfrm.cxx215
-rw-r--r--sw/source/core/layout/objectformatterlayfrm.hxx81
-rw-r--r--sw/source/core/layout/objectformattertxtfrm.cxx870
-rw-r--r--sw/source/core/layout/objectformattertxtfrm.hxx215
-rw-r--r--sw/source/core/layout/objstmpconsiderwrapinfl.cxx73
-rw-r--r--sw/source/core/layout/objstmpconsiderwrapinfl.hxx47
-rw-r--r--sw/source/core/layout/pagechg.cxx2490
-rw-r--r--sw/source/core/layout/pagedesc.cxx512
-rw-r--r--sw/source/core/layout/paintfrm.cxx6742
-rw-r--r--sw/source/core/layout/sectfrm.cxx2800
-rw-r--r--sw/source/core/layout/softpagebreak.cxx156
-rw-r--r--sw/source/core/layout/sortedobjs.cxx76
-rw-r--r--sw/source/core/layout/sortedobjsimpl.cxx313
-rw-r--r--sw/source/core/layout/ssfrm.cxx750
-rw-r--r--sw/source/core/layout/swselectionlist.cxx94
-rw-r--r--sw/source/core/layout/tabfrm.cxx6063
-rw-r--r--sw/source/core/layout/trvlfrm.cxx2659
-rw-r--r--sw/source/core/layout/unusedf.cxx93
-rw-r--r--sw/source/core/layout/virtoutp.cxx256
-rw-r--r--sw/source/core/layout/virtoutp.hxx74
-rw-r--r--sw/source/core/layout/wsfrm.cxx4022
-rw-r--r--sw/source/core/makefile.mk110
-rw-r--r--sw/source/core/objectpositioning/anchoredobjectposition.cxx1128
-rw-r--r--sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx457
-rw-r--r--sw/source/core/objectpositioning/environmentofanchoredobject.cxx121
-rw-r--r--sw/source/core/objectpositioning/makefile.mk59
-rw-r--r--sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx1071
-rw-r--r--sw/source/core/objectpositioning/tolayoutanchoredobjectposition.cxx245
-rw-r--r--sw/source/core/ole/makefile.mk55
-rw-r--r--sw/source/core/ole/ndole.cxx1018
-rw-r--r--sw/source/core/para/makefile.mk54
-rw-r--r--sw/source/core/para/paratr.cxx295
-rw-r--r--sw/source/core/sw3io/makefile.mk49
-rw-r--r--sw/source/core/sw3io/sw3convert.cxx433
-rw-r--r--sw/source/core/sw3io/swacorr.cxx106
-rw-r--r--sw/source/core/swg/SwXMLBlockExport.cxx142
-rw-r--r--sw/source/core/swg/SwXMLBlockImport.cxx118
-rw-r--r--sw/source/core/swg/SwXMLBlockListContext.cxx250
-rw-r--r--sw/source/core/swg/SwXMLSectionList.cxx150
-rw-r--r--sw/source/core/swg/SwXMLTextBlocks.cxx643
-rw-r--r--sw/source/core/swg/SwXMLTextBlocks1.cxx741
-rw-r--r--sw/source/core/swg/makefile.mk62
-rw-r--r--sw/source/core/swg/swblocks.cxx818
-rw-r--r--sw/source/core/table/makefile.mk48
-rw-r--r--sw/source/core/table/swnewtable.cxx2323
-rw-r--r--sw/source/core/table/swtable.cxx2728
-rw-r--r--sw/source/core/text/EnhancedPDFExportHelper.cxx2214
-rw-r--r--sw/source/core/text/SwGrammarMarkUp.cxx181
-rw-r--r--sw/source/core/text/atrhndl.hxx179
-rw-r--r--sw/source/core/text/atrstck.cxx956
-rw-r--r--sw/source/core/text/blink.cxx198
-rw-r--r--sw/source/core/text/frmcrsr.cxx1744
-rw-r--r--sw/source/core/text/frmform.cxx2173
-rw-r--r--sw/source/core/text/frminf.cxx377
-rw-r--r--sw/source/core/text/frmpaint.cxx817
-rw-r--r--sw/source/core/text/guess.cxx554
-rw-r--r--sw/source/core/text/guess.hxx73
-rw-r--r--sw/source/core/text/inftxt.cxx1975
-rw-r--r--sw/source/core/text/inftxt.hxx901
-rw-r--r--sw/source/core/text/itradj.cxx919
-rw-r--r--sw/source/core/text/itratr.cxx1078
-rw-r--r--sw/source/core/text/itratr.hxx131
-rw-r--r--sw/source/core/text/itrcrsr.cxx1856
-rw-r--r--sw/source/core/text/itrform2.cxx2124
-rw-r--r--sw/source/core/text/itrform2.hxx214
-rw-r--r--sw/source/core/text/itrpaint.cxx718
-rw-r--r--sw/source/core/text/itrpaint.hxx69
-rw-r--r--sw/source/core/text/itrtxt.cxx523
-rw-r--r--sw/source/core/text/itrtxt.hxx340
-rw-r--r--sw/source/core/text/makefile.mk119
-rw-r--r--sw/source/core/text/noteurl.cxx87
-rw-r--r--sw/source/core/text/pordrop.hxx119
-rw-r--r--sw/source/core/text/porexp.cxx312
-rw-r--r--sw/source/core/text/porexp.hxx108
-rw-r--r--sw/source/core/text/porfld.cxx1389
-rw-r--r--sw/source/core/text/porfld.hxx274
-rw-r--r--sw/source/core/text/porfly.cxx454
-rw-r--r--sw/source/core/text/porfly.hxx108
-rw-r--r--sw/source/core/text/porftn.hxx130
-rw-r--r--sw/source/core/text/porglue.cxx318
-rw-r--r--sw/source/core/text/porglue.hxx134
-rw-r--r--sw/source/core/text/porhyph.hxx119
-rw-r--r--sw/source/core/text/porlay.cxx2465
-rw-r--r--sw/source/core/text/porlay.hxx427
-rw-r--r--sw/source/core/text/porlin.cxx426
-rw-r--r--sw/source/core/text/porlin.hxx251
-rw-r--r--sw/source/core/text/pormulti.cxx2415
-rw-r--r--sw/source/core/text/pormulti.hxx268
-rw-r--r--sw/source/core/text/porref.cxx115
-rw-r--r--sw/source/core/text/porref.hxx73
-rw-r--r--sw/source/core/text/porrst.cxx579
-rw-r--r--sw/source/core/text/porrst.hxx187
-rw-r--r--sw/source/core/text/portab.hxx157
-rw-r--r--sw/source/core/text/portox.cxx115
-rw-r--r--sw/source/core/text/portox.hxx75
-rw-r--r--sw/source/core/text/portxt.cxx877
-rw-r--r--sw/source/core/text/portxt.hxx117
-rw-r--r--sw/source/core/text/possiz.hxx84
-rw-r--r--sw/source/core/text/redlnitr.cxx505
-rw-r--r--sw/source/core/text/redlnitr.hxx123
-rw-r--r--sw/source/core/text/txtcache.cxx241
-rw-r--r--sw/source/core/text/txtcache.hxx76
-rw-r--r--sw/source/core/text/txtcfg.hxx54
-rw-r--r--sw/source/core/text/txtdrop.cxx1105
-rw-r--r--sw/source/core/text/txtfld.cxx549
-rw-r--r--sw/source/core/text/txtfly.cxx2508
-rw-r--r--sw/source/core/text/txtfly.hxx259
-rw-r--r--sw/source/core/text/txtfrm.cxx2735
-rw-r--r--sw/source/core/text/txtftn.cxx1699
-rw-r--r--sw/source/core/text/txthyph.cxx695
-rw-r--r--sw/source/core/text/txtinit.cxx101
-rw-r--r--sw/source/core/text/txtio.cxx949
-rw-r--r--sw/source/core/text/txtpaint.cxx137
-rw-r--r--sw/source/core/text/txtpaint.hxx191
-rw-r--r--sw/source/core/text/txttab.cxx663
-rw-r--r--sw/source/core/text/widorp.cxx566
-rw-r--r--sw/source/core/text/widorp.hxx95
-rw-r--r--sw/source/core/text/wrong.cxx644
-rw-r--r--sw/source/core/tox/makefile.mk57
-rw-r--r--sw/source/core/tox/tox.cxx954
-rw-r--r--sw/source/core/tox/toxhlp.cxx193
-rw-r--r--sw/source/core/tox/txmsrt.cxx951
-rw-r--r--sw/source/core/txtnode/SwGrammarContact.cxx221
-rw-r--r--sw/source/core/txtnode/atrfld.cxx389
-rw-r--r--sw/source/core/txtnode/atrflyin.cxx290
-rw-r--r--sw/source/core/txtnode/atrftn.cxx537
-rw-r--r--sw/source/core/txtnode/atrref.cxx103
-rw-r--r--sw/source/core/txtnode/atrtox.cxx96
-rw-r--r--sw/source/core/txtnode/chrfmt.cxx38
-rw-r--r--sw/source/core/txtnode/fmtatr2.cxx908
-rw-r--r--sw/source/core/txtnode/fntcache.cxx2912
-rw-r--r--sw/source/core/txtnode/fntcap.cxx855
-rw-r--r--sw/source/core/txtnode/makefile.mk86
-rw-r--r--sw/source/core/txtnode/modeltoviewhelper.cxx120
-rw-r--r--sw/source/core/txtnode/ndhints.cxx489
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx4989
-rw-r--r--sw/source/core/txtnode/swfntcch.cxx94
-rw-r--r--sw/source/core/txtnode/swfont.cxx1246
-rw-r--r--sw/source/core/txtnode/thints.cxx2898
-rw-r--r--sw/source/core/txtnode/txatbase.cxx84
-rw-r--r--sw/source/core/txtnode/txatritr.cxx246
-rw-r--r--sw/source/core/txtnode/txtatr2.cxx338
-rw-r--r--sw/source/core/txtnode/txtedt.cxx1965
-rw-r--r--sw/source/core/undo/SwRewriter.cxx78
-rw-r--r--sw/source/core/undo/SwUndoField.cxx154
-rw-r--r--sw/source/core/undo/SwUndoFmt.cxx510
-rw-r--r--sw/source/core/undo/SwUndoPageDesc.cxx474
-rw-r--r--sw/source/core/undo/SwUndoTOXChange.cxx71
-rw-r--r--sw/source/core/undo/docundo.cxx1027
-rw-r--r--sw/source/core/undo/makefile.mk85
-rw-r--r--sw/source/core/undo/rolbck.cxx1525
-rw-r--r--sw/source/core/undo/unattr.cxx1318
-rw-r--r--sw/source/core/undo/unbkmk.cxx126
-rw-r--r--sw/source/core/undo/undel.cxx997
-rw-r--r--sw/source/core/undo/undo.hrc185
-rw-r--r--sw/source/core/undo/undo.src657
-rw-r--r--sw/source/core/undo/undobj.cxx1399
-rw-r--r--sw/source/core/undo/undobj1.cxx704
-rw-r--r--sw/source/core/undo/undoflystrattr.cxx104
-rw-r--r--sw/source/core/undo/undraw.cxx642
-rw-r--r--sw/source/core/undo/unfmco.cxx131
-rw-r--r--sw/source/core/undo/unins.cxx1115
-rw-r--r--sw/source/core/undo/unmove.cxx366
-rw-r--r--sw/source/core/undo/unnum.cxx466
-rw-r--r--sw/source/core/undo/unoutl.cxx70
-rw-r--r--sw/source/core/undo/unovwr.cxx520
-rw-r--r--sw/source/core/undo/unredln.cxx543
-rw-r--r--sw/source/core/undo/unsect.cxx455
-rw-r--r--sw/source/core/undo/unsort.cxx302
-rw-r--r--sw/source/core/undo/unspnd.cxx216
-rw-r--r--sw/source/core/undo/untbl.cxx3285
-rw-r--r--sw/source/core/undo/untblk.cxx367
-rw-r--r--sw/source/core/unocore/SwXTextDefaults.cxx292
-rw-r--r--sw/source/core/unocore/TextCursorHelper.cxx61
-rw-r--r--sw/source/core/unocore/XMLRangeHelper.cxx412
-rw-r--r--sw/source/core/unocore/XMLRangeHelper.hxx78
-rw-r--r--sw/source/core/unocore/makefile.mk124
-rw-r--r--sw/source/core/unocore/swunohelper.cxx291
-rw-r--r--sw/source/core/unocore/unobkm.cxx651
-rw-r--r--sw/source/core/unocore/unochart.cxx3092
-rw-r--r--sw/source/core/unocore/unocoll.cxx1929
-rw-r--r--sw/source/core/unocore/unocore.src64
-rw-r--r--sw/source/core/unocore/unocrsrhelper.cxx1097
-rw-r--r--sw/source/core/unocore/unodraw.cxx3095
-rw-r--r--sw/source/core/unocore/unoevent.cxx333
-rw-r--r--sw/source/core/unocore/unoevtlstnr.cxx118
-rw-r--r--sw/source/core/unocore/unofield.cxx3007
-rw-r--r--sw/source/core/unocore/unoflatpara.cxx511
-rw-r--r--sw/source/core/unocore/unoframe.cxx3433
-rw-r--r--sw/source/core/unocore/unoftn.cxx730
-rw-r--r--sw/source/core/unocore/unoidx.cxx3411
-rw-r--r--sw/source/core/unocore/unomap.cxx3122
-rw-r--r--sw/source/core/unocore/unoobj.cxx3209
-rw-r--r--sw/source/core/unocore/unoobj2.cxx2097
-rw-r--r--sw/source/core/unocore/unoparagraph.cxx1461
-rw-r--r--sw/source/core/unocore/unoport.cxx1072
-rw-r--r--sw/source/core/unocore/unoportenum.cxx1226
-rw-r--r--sw/source/core/unocore/unoprnms.cxx792
-rw-r--r--sw/source/core/unocore/unoredline.cxx794
-rw-r--r--sw/source/core/unocore/unoredlines.cxx235
-rw-r--r--sw/source/core/unocore/unorefmk.cxx1644
-rw-r--r--sw/source/core/unocore/unosect.cxx1881
-rw-r--r--sw/source/core/unocore/unosett.cxx2823
-rw-r--r--sw/source/core/unocore/unosrch.cxx762
-rw-r--r--sw/source/core/unocore/unostyle.cxx4536
-rw-r--r--sw/source/core/unocore/unotbl.cxx5470
-rw-r--r--sw/source/core/unocore/unotext.cxx2919
-rw-r--r--sw/source/core/unocore/unotextmarkup.cxx486
-rw-r--r--sw/source/core/view/makefile.mk59
-rw-r--r--sw/source/core/view/pagepreviewlayout.cxx1554
-rw-r--r--sw/source/core/view/scrrect.cxx1192
-rw-r--r--sw/source/core/view/vdraw.cxx378
-rw-r--r--sw/source/core/view/viewimp.cxx629
-rw-r--r--sw/source/core/view/viewpg.cxx262
-rw-r--r--sw/source/core/view/viewsh.cxx2768
-rw-r--r--sw/source/core/view/vnew.cxx407
-rw-r--r--sw/source/core/view/vprint.cxx1396
-rw-r--r--sw/source/filter/ascii/ascatr.cxx219
-rw-r--r--sw/source/filter/ascii/makefile.mk56
-rw-r--r--sw/source/filter/ascii/parasc.cxx535
-rw-r--r--sw/source/filter/ascii/wrtasc.cxx225
-rw-r--r--sw/source/filter/ascii/wrtasc.hxx52
-rw-r--r--sw/source/filter/basflt/docfact.cxx85
-rw-r--r--sw/source/filter/basflt/fltini.cxx1031
-rw-r--r--sw/source/filter/basflt/iodetect.cxx592
-rw-r--r--sw/source/filter/basflt/makefile.mk58
-rw-r--r--sw/source/filter/basflt/shellio.cxx1010
-rw-r--r--sw/source/filter/html/SwAppletImpl.cxx208
-rw-r--r--sw/source/filter/html/css1atr.cxx3859
-rw-r--r--sw/source/filter/html/css1kywd.cxx281
-rw-r--r--sw/source/filter/html/css1kywd.hxx291
-rw-r--r--sw/source/filter/html/htmlatr.cxx3494
-rw-r--r--sw/source/filter/html/htmlbas.cxx369
-rw-r--r--sw/source/filter/html/htmlcss1.cxx2477
-rw-r--r--sw/source/filter/html/htmlctxt.cxx752
-rw-r--r--sw/source/filter/html/htmldraw.cxx859
-rw-r--r--sw/source/filter/html/htmlfld.cxx670
-rw-r--r--sw/source/filter/html/htmlfld.hxx92
-rw-r--r--sw/source/filter/html/htmlfldw.cxx539
-rw-r--r--sw/source/filter/html/htmlfly.cxx1929
-rw-r--r--sw/source/filter/html/htmlfly.hxx137
-rw-r--r--sw/source/filter/html/htmlflyt.cxx516
-rw-r--r--sw/source/filter/html/htmlform.cxx2659
-rw-r--r--sw/source/filter/html/htmlform.hxx52
-rw-r--r--sw/source/filter/html/htmlforw.cxx1447
-rw-r--r--sw/source/filter/html/htmlftn.cxx621
-rw-r--r--sw/source/filter/html/htmlgrin.cxx1449
-rw-r--r--sw/source/filter/html/htmlnum.cxx987
-rw-r--r--sw/source/filter/html/htmlnum.hxx131
-rw-r--r--sw/source/filter/html/htmlplug.cxx1401
-rw-r--r--sw/source/filter/html/htmlsect.cxx870
-rw-r--r--sw/source/filter/html/htmltab.cxx5600
-rw-r--r--sw/source/filter/html/htmltabw.cxx1265
-rw-r--r--sw/source/filter/html/htmlvsh.hxx55
-rw-r--r--sw/source/filter/html/makefile.mk83
-rw-r--r--sw/source/filter/html/parcss1.cxx1426
-rw-r--r--sw/source/filter/html/parcss1.hxx307
-rw-r--r--sw/source/filter/html/svxcss1.cxx3311
-rw-r--r--sw/source/filter/html/svxcss1.hxx435
-rw-r--r--sw/source/filter/html/swcss1.hxx227
-rw-r--r--sw/source/filter/html/swhtml.cxx5521
-rw-r--r--sw/source/filter/html/swhtml.hxx1040
-rw-r--r--sw/source/filter/html/wrthtml.cxx1438
-rw-r--r--sw/source/filter/html/wrthtml.hxx603
-rw-r--r--sw/source/filter/inc/fltbase.hxx127
-rw-r--r--sw/source/filter/inc/fltglbls.hxx124
-rw-r--r--sw/source/filter/inc/fltini.hxx108
-rw-r--r--sw/source/filter/inc/fltshell.hxx628
-rw-r--r--sw/source/filter/inc/makefile.mk26
-rw-r--r--sw/source/filter/inc/msfilter.hxx528
-rw-r--r--sw/source/filter/inc/rtf.hxx132
-rw-r--r--sw/source/filter/inc/wrt_fn.hxx66
-rw-r--r--sw/source/filter/inc/wrtswtbl.hxx334
-rw-r--r--sw/source/filter/inc/wwstyles.hxx221
-rw-r--r--sw/source/filter/makefile.mk67
-rw-r--r--sw/source/filter/rtf/makefile.mk65
-rw-r--r--sw/source/filter/rtf/rtfatr.cxx4357
-rw-r--r--sw/source/filter/rtf/rtffld.cxx1231
-rw-r--r--sw/source/filter/rtf/rtffly.cxx1631
-rw-r--r--sw/source/filter/rtf/rtfnum.cxx1460
-rw-r--r--sw/source/filter/rtf/rtftbl.cxx1021
-rw-r--r--sw/source/filter/rtf/swparrtf.cxx4461
-rw-r--r--sw/source/filter/rtf/swparrtf.hxx481
-rw-r--r--sw/source/filter/rtf/wrtrtf.cxx1799
-rw-r--r--sw/source/filter/rtf/wrtrtf.hxx253
-rw-r--r--sw/source/filter/writer/makefile.mk54
-rw-r--r--sw/source/filter/writer/writer.cxx629
-rw-r--r--sw/source/filter/writer/wrt_fn.cxx131
-rw-r--r--sw/source/filter/writer/wrtswtbl.cxx919
-rw-r--r--sw/source/filter/ww1/fltshell.cxx2085
-rw-r--r--sw/source/filter/ww1/makefile.mk94
-rw-r--r--sw/source/filter/ww1/w1class.cxx1256
-rw-r--r--sw/source/filter/ww1/w1class.hxx1649
-rw-r--r--sw/source/filter/ww1/w1filter.cxx2063
-rw-r--r--sw/source/filter/ww1/w1par.cxx141
-rw-r--r--sw/source/filter/ww1/w1par.hxx45
-rw-r--r--sw/source/filter/ww1/w1sprm.cxx684
-rw-r--r--sw/source/filter/ww1/w1struct.hxx928
-rw-r--r--sw/source/filter/ww8/CREDITS3
-rw-r--r--sw/source/filter/ww8/WW8FFData.cxx176
-rw-r--r--sw/source/filter/ww8/WW8FFData.hxx116
-rw-r--r--sw/source/filter/ww8/WW8FibData.cxx62
-rw-r--r--sw/source/filter/ww8/WW8FibData.hxx51
-rw-r--r--sw/source/filter/ww8/WW8Sttbf.cxx118
-rw-r--r--sw/source/filter/ww8/WW8Sttbf.hxx145
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.cxx637
-rw-r--r--sw/source/filter/ww8/WW8TableInfo.hxx186
-rw-r--r--sw/source/filter/ww8/attributeoutputbase.hxx578
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.cxx3321
-rw-r--r--sw/source/filter/ww8/docxattributeoutput.hxx610
-rw-r--r--sw/source/filter/ww8/docxexport.cxx809
-rw-r--r--sw/source/filter/ww8/docxexport.hxx225
-rw-r--r--sw/source/filter/ww8/docxexportfilter.cxx187
-rw-r--r--sw/source/filter/ww8/docxexportfilter.hxx62
-rw-r--r--sw/source/filter/ww8/docxfootnotes.hxx100
-rw-r--r--sw/source/filter/ww8/dump/dump8.cxx171
-rw-r--r--sw/source/filter/ww8/dump/dump8a.cxx2746
-rw-r--r--sw/source/filter/ww8/dump/makefile.mk122
-rw-r--r--sw/source/filter/ww8/dump/msvbasic.cxx536
-rw-r--r--sw/source/filter/ww8/dump/msvbasic.hxx102
-rw-r--r--sw/source/filter/ww8/dump/ww8darr.cxx546
-rw-r--r--sw/source/filter/ww8/dump/ww8darr.hxx43
-rw-r--r--sw/source/filter/ww8/dump/ww8dout.cxx419
-rw-r--r--sw/source/filter/ww8/dump/ww8dout.hxx86
-rw-r--r--sw/source/filter/ww8/dump/ww8scan.cxx6671
-rw-r--r--sw/source/filter/ww8/dump/ww8scan.hxx1489
-rw-r--r--sw/source/filter/ww8/dump/ww8struc.hxx815
-rw-r--r--sw/source/filter/ww8/escher.hxx189
-rw-r--r--sw/source/filter/ww8/fields.cxx152
-rw-r--r--sw/source/filter/ww8/fields.hxx157
-rw-r--r--sw/source/filter/ww8/hash_wrap.hxx124
-rw-r--r--sw/source/filter/ww8/makefile.mk105
-rw-r--r--sw/source/filter/ww8/needed_cast.hxx63
-rw-r--r--sw/source/filter/ww8/sortedarray.hxx121
-rw-r--r--sw/source/filter/ww8/staticassert.hxx71
-rw-r--r--sw/source/filter/ww8/styles.cxx218
-rw-r--r--sw/source/filter/ww8/tracer.cxx209
-rw-r--r--sw/source/filter/ww8/tracer.hxx91
-rw-r--r--sw/source/filter/ww8/types.hxx58
-rw-r--r--sw/source/filter/ww8/typessw.hxx46
-rw-r--r--sw/source/filter/ww8/writerhelper.cxx858
-rw-r--r--sw/source/filter/ww8/writerhelper.hxx987
-rw-r--r--sw/source/filter/ww8/writerwordglue.cxx1047
-rw-r--r--sw/source/filter/ww8/writerwordglue.hxx164
-rw-r--r--sw/source/filter/ww8/wrtw8esh.cxx2877
-rw-r--r--sw/source/filter/ww8/wrtw8nds.cxx2718
-rw-r--r--sw/source/filter/ww8/wrtw8num.cxx956
-rw-r--r--sw/source/filter/ww8/wrtw8sty.cxx2263
-rw-r--r--sw/source/filter/ww8/wrtww8.cxx3754
-rw-r--r--sw/source/filter/ww8/wrtww8.hxx1424
-rw-r--r--sw/source/filter/ww8/wrtww8gr.cxx886
-rw-r--r--sw/source/filter/ww8/ww8atr.cxx5310
-rw-r--r--sw/source/filter/ww8/ww8attributeoutput.hxx452
-rw-r--r--sw/source/filter/ww8/ww8glsy.cxx272
-rw-r--r--sw/source/filter/ww8/ww8glsy.hxx92
-rw-r--r--sw/source/filter/ww8/ww8graf.cxx3252
-rw-r--r--sw/source/filter/ww8/ww8graf.hxx112
-rw-r--r--sw/source/filter/ww8/ww8graf2.cxx824
-rw-r--r--sw/source/filter/ww8/ww8par.cxx5037
-rw-r--r--sw/source/filter/ww8/ww8par.hxx1628
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx4753
-rw-r--r--sw/source/filter/ww8/ww8par2.hxx296
-rw-r--r--sw/source/filter/ww8/ww8par3.cxx2640
-rw-r--r--sw/source/filter/ww8/ww8par4.cxx581
-rw-r--r--sw/source/filter/ww8/ww8par5.cxx3626
-rw-r--r--sw/source/filter/ww8/ww8par6.cxx6158
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx7357
-rw-r--r--sw/source/filter/ww8/ww8scan.hxx1783
-rw-r--r--sw/source/filter/ww8/ww8struc.hxx1059
-rw-r--r--sw/source/filter/xml/DocSettingNames.hxx26
-rw-r--r--sw/source/filter/xml/ForbiddenCharactersEnum.hxx41
-rw-r--r--sw/source/filter/xml/XMLRedlineImportHelper.cxx754
-rw-r--r--sw/source/filter/xml/XMLRedlineImportHelper.hxx164
-rw-r--r--sw/source/filter/xml/makefile.mk94
-rw-r--r--sw/source/filter/xml/swxml.cxx1143
-rw-r--r--sw/source/filter/xml/wrtxml.cxx701
-rw-r--r--sw/source/filter/xml/wrtxml.hxx105
-rw-r--r--sw/source/filter/xml/xmlbrsh.cxx258
-rw-r--r--sw/source/filter/xml/xmlbrshe.hxx56
-rw-r--r--sw/source/filter/xml/xmlbrshi.hxx86
-rw-r--r--sw/source/filter/xml/xmlexp.cxx995
-rw-r--r--sw/source/filter/xml/xmlexp.hxx190
-rw-r--r--sw/source/filter/xml/xmlexpit.cxx1042
-rw-r--r--sw/source/filter/xml/xmlexpit.hxx136
-rw-r--r--sw/source/filter/xml/xmlfmt.cxx1134
-rw-r--r--sw/source/filter/xml/xmlfmte.cxx363
-rw-r--r--sw/source/filter/xml/xmlfonte.cxx102
-rw-r--r--sw/source/filter/xml/xmlimp.cxx1745
-rw-r--r--sw/source/filter/xml/xmlimp.hxx231
-rw-r--r--sw/source/filter/xml/xmlimpit.cxx976
-rw-r--r--sw/source/filter/xml/xmlimpit.hxx110
-rw-r--r--sw/source/filter/xml/xmlitem.cxx90
-rw-r--r--sw/source/filter/xml/xmlitem.hxx80
-rw-r--r--sw/source/filter/xml/xmliteme.cxx256
-rw-r--r--sw/source/filter/xml/xmlitemi.cxx272
-rw-r--r--sw/source/filter/xml/xmlitemm.cxx296
-rw-r--r--sw/source/filter/xml/xmlithlp.cxx422
-rw-r--r--sw/source/filter/xml/xmlithlp.hxx101
-rw-r--r--sw/source/filter/xml/xmlitmap.hxx96
-rw-r--r--sw/source/filter/xml/xmlitmpr.cxx91
-rw-r--r--sw/source/filter/xml/xmlmeta.cxx200
-rw-r--r--sw/source/filter/xml/xmlscript.cxx65
-rw-r--r--sw/source/filter/xml/xmltble.cxx1250
-rw-r--r--sw/source/filter/xml/xmltbli.cxx2951
-rw-r--r--sw/source/filter/xml/xmltbli.hxx225
-rw-r--r--sw/source/filter/xml/xmltext.cxx107
-rw-r--r--sw/source/filter/xml/xmltexte.cxx767
-rw-r--r--sw/source/filter/xml/xmltexte.hxx88
-rw-r--r--sw/source/filter/xml/xmltexti.cxx1062
-rw-r--r--sw/source/filter/xml/xmltexti.hxx132
-rw-r--r--sw/source/ui/app/app.src665
-rw-r--r--sw/source/ui/app/appenv.cxx545
-rw-r--r--sw/source/ui/app/apphdl.cxx980
-rw-r--r--sw/source/ui/app/applab.cxx472
-rw-r--r--sw/source/ui/app/appopt.cxx657
-rw-r--r--sw/source/ui/app/docsh.cxx1356
-rw-r--r--sw/source/ui/app/docsh2.cxx1906
-rw-r--r--sw/source/ui/app/docshdrw.cxx84
-rw-r--r--sw/source/ui/app/docshini.cxx808
-rw-r--r--sw/source/ui/app/docst.cxx1313
-rw-r--r--sw/source/ui/app/docstyle.cxx2908
-rw-r--r--sw/source/ui/app/error.src214
-rw-r--r--sw/source/ui/app/mainwn.cxx165
-rw-r--r--sw/source/ui/app/makefile.mk100
-rw-r--r--sw/source/ui/app/mn.src1108
-rw-r--r--sw/source/ui/app/swdll.cxx156
-rw-r--r--sw/source/ui/app/swmodul1.cxx675
-rw-r--r--sw/source/ui/app/swmodule.cxx512
-rw-r--r--sw/source/ui/app/swwait.cxx75
-rw-r--r--sw/source/ui/cctrl/actctrl.cxx138
-rw-r--r--sw/source/ui/cctrl/makefile.mk56
-rw-r--r--sw/source/ui/cctrl/popbox.cxx91
-rw-r--r--sw/source/ui/cctrl/swlbox.cxx231
-rw-r--r--sw/source/ui/chrdlg/break.cxx252
-rw-r--r--sw/source/ui/chrdlg/break.hrc41
-rw-r--r--sw/source/ui/chrdlg/ccoll.cxx236
-rw-r--r--sw/source/ui/chrdlg/ccoll.hrc50
-rw-r--r--sw/source/ui/chrdlg/ccoll.src160
-rw-r--r--sw/source/ui/chrdlg/chardlg.cxx405
-rw-r--r--sw/source/ui/chrdlg/chardlg.hrc86
-rw-r--r--sw/source/ui/chrdlg/chardlg.src264
-rw-r--r--sw/source/ui/chrdlg/chrdlg.src77
-rw-r--r--sw/source/ui/chrdlg/drpcps.cxx894
-rw-r--r--sw/source/ui/chrdlg/drpcps.hrc51
-rw-r--r--sw/source/ui/chrdlg/drpcps.src226
-rw-r--r--sw/source/ui/chrdlg/makefile.mk69
-rw-r--r--sw/source/ui/chrdlg/numpara.cxx364
-rw-r--r--sw/source/ui/chrdlg/numpara.hrc53
-rw-r--r--sw/source/ui/chrdlg/numpara.src229
-rw-r--r--sw/source/ui/chrdlg/paradlg.hrc71
-rw-r--r--sw/source/ui/chrdlg/paradlg.src165
-rw-r--r--sw/source/ui/chrdlg/pardlg.cxx269
-rw-r--r--sw/source/ui/chrdlg/swbreak.src172
-rw-r--r--sw/source/ui/chrdlg/swuiccoll.cxx357
-rw-r--r--sw/source/ui/chrdlg/tblnumfm.cxx76
-rw-r--r--sw/source/ui/config/barcfg.cxx152
-rw-r--r--sw/source/ui/config/caption.cxx182
-rw-r--r--sw/source/ui/config/cfgitems.cxx461
-rw-r--r--sw/source/ui/config/config.hrc67
-rw-r--r--sw/source/ui/config/dbconfig.cxx143
-rw-r--r--sw/source/ui/config/fontcfg.cxx359
-rw-r--r--sw/source/ui/config/mailconfigpage.cxx622
-rw-r--r--sw/source/ui/config/mailconfigpage.hrc83
-rw-r--r--sw/source/ui/config/mailconfigpage.src421
-rw-r--r--sw/source/ui/config/makefile.mk87
-rw-r--r--sw/source/ui/config/modcfg.cxx1392
-rw-r--r--sw/source/ui/config/optcomp.cxx628
-rw-r--r--sw/source/ui/config/optcomp.hrc56
-rw-r--r--sw/source/ui/config/optcomp.src140
-rw-r--r--sw/source/ui/config/optdlg.hrc205
-rw-r--r--sw/source/ui/config/optdlg.src997
-rw-r--r--sw/source/ui/config/optload.cxx983
-rw-r--r--sw/source/ui/config/optload.hrc82
-rw-r--r--sw/source/ui/config/optload.src399
-rw-r--r--sw/source/ui/config/optpage.cxx2612
-rw-r--r--sw/source/ui/config/prtopt.cxx198
-rw-r--r--sw/source/ui/config/redlopt.hrc54
-rw-r--r--sw/source/ui/config/redlopt.src279
-rw-r--r--sw/source/ui/config/uinums.cxx673
-rw-r--r--sw/source/ui/config/usrpref.cxx691
-rw-r--r--sw/source/ui/config/viewopt.cxx638
-rw-r--r--sw/source/ui/dbui/addresslistdialog.cxx752
-rw-r--r--sw/source/ui/dbui/addresslistdialog.hrc48
-rw-r--r--sw/source/ui/dbui/addresslistdialog.hxx122
-rw-r--r--sw/source/ui/dbui/addresslistdialog.src126
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.cxx835
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.hrc64
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.hxx130
-rw-r--r--sw/source/ui/dbui/createaddresslistdialog.src225
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.cxx274
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.hrc49
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.hxx99
-rw-r--r--sw/source/ui/dbui/customizeaddresslistdialog.src162
-rw-r--r--sw/source/ui/dbui/dbinsdlg.cxx1966
-rw-r--r--sw/source/ui/dbui/dbinsdlg.hrc73
-rw-r--r--sw/source/ui/dbui/dbinsdlg.src309
-rw-r--r--sw/source/ui/dbui/dbmgr.cxx3068
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.cxx144
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.hrc35
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.hxx60
-rw-r--r--sw/source/ui/dbui/dbtablepreviewdialog.src61
-rw-r--r--sw/source/ui/dbui/dbtree.cxx622
-rw-r--r--sw/source/ui/dbui/dbui.cxx151
-rw-r--r--sw/source/ui/dbui/dbui.src283
-rw-r--r--sw/source/ui/dbui/maildispatcher.cxx296
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.cxx796
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.hrc61
-rw-r--r--sw/source/ui/dbui/mailmergechildwindow.src278
-rw-r--r--sw/source/ui/dbui/mailmergehelper.cxx1047
-rw-r--r--sw/source/ui/dbui/mailmergewizard.cxx336
-rw-r--r--sw/source/ui/dbui/mailmergewizard.hrc37
-rw-r--r--sw/source/ui/dbui/mailmergewizard.src79
-rw-r--r--sw/source/ui/dbui/makefile.mk122
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.cxx1827
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.hrc115
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.hxx332
-rw-r--r--sw/source/ui/dbui/mmaddressblockpage.src632
-rw-r--r--sw/source/ui/dbui/mmconfigitem.cxx1986
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.cxx224
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.hrc37
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.hxx74
-rw-r--r--sw/source/ui/dbui/mmdocselectpage.src100
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.cxx619
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.hrc65
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.hxx176
-rw-r--r--sw/source/ui/dbui/mmgreetingspage.src255
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.cxx816
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.hrc48
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.hxx114
-rw-r--r--sw/source/ui/dbui/mmlayoutpage.src159
-rw-r--r--sw/source/ui/dbui/mmmergepage.cxx123
-rw-r--r--sw/source/ui/dbui/mmmergepage.hrc43
-rw-r--r--sw/source/ui/dbui/mmmergepage.hxx73
-rw-r--r--sw/source/ui/dbui/mmmergepage.src101
-rw-r--r--sw/source/ui/dbui/mmoutputpage.cxx1419
-rw-r--r--sw/source/ui/dbui/mmoutputpage.hrc103
-rw-r--r--sw/source/ui/dbui/mmoutputpage.hxx242
-rw-r--r--sw/source/ui/dbui/mmoutputpage.src463
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.cxx113
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.hrc44
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.hxx67
-rw-r--r--sw/source/ui/dbui/mmoutputtypepage.src99
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.cxx204
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.hrc46
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.hxx77
-rw-r--r--sw/source/ui/dbui/mmpreparemergepage.src125
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.cxx223
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.hrc43
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.hxx79
-rw-r--r--sw/source/ui/dbui/selectdbtabledialog.src98
-rw-r--r--sw/source/ui/dbui/swdbtoolsclient.cxx248
-rw-r--r--sw/source/ui/dialog/SwSpellDialogChildWindow.cxx898
-rw-r--r--sw/source/ui/dialog/abstract.cxx92
-rw-r--r--sw/source/ui/dialog/abstract.hrc36
-rw-r--r--sw/source/ui/dialog/abstract.src153
-rw-r--r--sw/source/ui/dialog/addrdlg.cxx69
-rw-r--r--sw/source/ui/dialog/ascfldlg.cxx450
-rw-r--r--sw/source/ui/dialog/ascfldlg.hrc44
-rw-r--r--sw/source/ui/dialog/ascfldlg.src177
-rw-r--r--sw/source/ui/dialog/dialog.src62
-rw-r--r--sw/source/ui/dialog/docstdlg.cxx197
-rw-r--r--sw/source/ui/dialog/docstdlg.hrc47
-rw-r--r--sw/source/ui/dialog/docstdlg.src183
-rw-r--r--sw/source/ui/dialog/macassgn.cxx196
-rw-r--r--sw/source/ui/dialog/makefile.mk103
-rw-r--r--sw/source/ui/dialog/regionsw.cxx264
-rw-r--r--sw/source/ui/dialog/regionsw.hrc116
-rw-r--r--sw/source/ui/dialog/regionsw.src857
-rw-r--r--sw/source/ui/dialog/swabstdlg.cxx51
-rw-r--r--sw/source/ui/dialog/swdialmgr.cxx54
-rw-r--r--sw/source/ui/dialog/swdlgfact.cxx1741
-rw-r--r--sw/source/ui/dialog/swdlgfact.hxx586
-rw-r--r--sw/source/ui/dialog/swuiexp.cxx55
-rw-r--r--sw/source/ui/dialog/swwrtshitem.cxx51
-rw-r--r--sw/source/ui/dialog/uiregionsw.cxx2367
-rw-r--r--sw/source/ui/dialog/wordcountdialog.cxx99
-rw-r--r--sw/source/ui/dialog/wordcountdialog.hrc43
-rw-r--r--sw/source/ui/dialog/wordcountdialog.src115
-rw-r--r--sw/source/ui/dochdl/dochdl.src85
-rw-r--r--sw/source/ui/dochdl/gloshdl.cxx937
-rw-r--r--sw/source/ui/dochdl/makefile.mk65
-rw-r--r--sw/source/ui/dochdl/selglos.cxx77
-rw-r--r--sw/source/ui/dochdl/selglos.hrc31
-rw-r--r--sw/source/ui/dochdl/selglos.src111
-rw-r--r--sw/source/ui/dochdl/swdtflvr.cxx3856
-rw-r--r--sw/source/ui/docvw/PostItMgr.cxx1950
-rw-r--r--sw/source/ui/docvw/access.src86
-rw-r--r--sw/source/ui/docvw/docvw.hrc104
-rw-r--r--sw/source/ui/docvw/docvw.src337
-rw-r--r--sw/source/ui/docvw/edtdd.cxx527
-rw-r--r--sw/source/ui/docvw/edtwin.cxx5748
-rw-r--r--sw/source/ui/docvw/edtwin2.cxx608
-rw-r--r--sw/source/ui/docvw/edtwin3.cxx216
-rw-r--r--sw/source/ui/docvw/makefile.mk60
-rw-r--r--sw/source/ui/docvw/postit.cxx2483
-rw-r--r--sw/source/ui/docvw/romenu.cxx521
-rw-r--r--sw/source/ui/docvw/romenu.hxx75
-rw-r--r--sw/source/ui/docvw/srcedtw.cxx1103
-rw-r--r--sw/source/ui/envelp/envelp.src87
-rw-r--r--sw/source/ui/envelp/envfmt.cxx635
-rw-r--r--sw/source/ui/envelp/envfmt.hrc82
-rw-r--r--sw/source/ui/envelp/envfmt.hxx112
-rw-r--r--sw/source/ui/envelp/envfmt.src315
-rw-r--r--sw/source/ui/envelp/envimg.cxx381
-rw-r--r--sw/source/ui/envelp/envlop.hrc65
-rw-r--r--sw/source/ui/envelp/envlop.src206
-rw-r--r--sw/source/ui/envelp/envlop1.cxx441
-rw-r--r--sw/source/ui/envelp/envprt.cxx259
-rw-r--r--sw/source/ui/envelp/envprt.hrc96
-rw-r--r--sw/source/ui/envelp/envprt.hxx93
-rw-r--r--sw/source/ui/envelp/envprt.src292
-rw-r--r--sw/source/ui/envelp/label.hrc128
-rw-r--r--sw/source/ui/envelp/label.src714
-rw-r--r--sw/source/ui/envelp/label1.cxx1111
-rw-r--r--sw/source/ui/envelp/labelcfg.cxx302
-rw-r--r--sw/source/ui/envelp/labelexp.cxx281
-rw-r--r--sw/source/ui/envelp/labfmt.cxx712
-rw-r--r--sw/source/ui/envelp/labfmt.hrc89
-rw-r--r--sw/source/ui/envelp/labfmt.hxx175
-rw-r--r--sw/source/ui/envelp/labfmt.src359
-rw-r--r--sw/source/ui/envelp/labimg.cxx482
-rw-r--r--sw/source/ui/envelp/labimp.hxx118
-rw-r--r--sw/source/ui/envelp/labprt.cxx242
-rw-r--r--sw/source/ui/envelp/labprt.hrc59
-rw-r--r--sw/source/ui/envelp/labprt.hxx86
-rw-r--r--sw/source/ui/envelp/labprt.src151
-rw-r--r--sw/source/ui/envelp/mailmrge.cxx941
-rw-r--r--sw/source/ui/envelp/mailmrge.hrc92
-rw-r--r--sw/source/ui/envelp/mailmrge.src428
-rw-r--r--sw/source/ui/envelp/makefile.mk80
-rw-r--r--sw/source/ui/envelp/swuilabimp.hxx254
-rw-r--r--sw/source/ui/envelp/syncbtn.cxx112
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.cxx147
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.hrc37
-rw-r--r--sw/source/ui/fldui/DropDownFieldDialog.src122
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.cxx81
-rw-r--r--sw/source/ui/fldui/FldRefTreeListBox.hxx44
-rw-r--r--sw/source/ui/fldui/changedb.cxx363
-rw-r--r--sw/source/ui/fldui/changedb.hrc62
-rw-r--r--sw/source/ui/fldui/changedb.src128
-rw-r--r--sw/source/ui/fldui/flddb.cxx583
-rw-r--r--sw/source/ui/fldui/flddb.hxx106
-rw-r--r--sw/source/ui/fldui/flddb.src198
-rw-r--r--sw/source/ui/fldui/flddinf.cxx537
-rw-r--r--sw/source/ui/fldui/flddinf.hxx89
-rw-r--r--sw/source/ui/fldui/flddinf.src138
-rw-r--r--sw/source/ui/fldui/flddok.cxx731
-rw-r--r--sw/source/ui/fldui/flddok.hxx95
-rw-r--r--sw/source/ui/fldui/flddok.src195
-rw-r--r--sw/source/ui/fldui/fldedt.cxx421
-rw-r--r--sw/source/ui/fldui/fldfunc.cxx744
-rw-r--r--sw/source/ui/fldui/fldfunc.hxx113
-rw-r--r--sw/source/ui/fldui/fldfunc.src269
-rw-r--r--sw/source/ui/fldui/fldmgr.cxx1793
-rw-r--r--sw/source/ui/fldui/fldpage.cxx433
-rw-r--r--sw/source/ui/fldui/fldpage.hxx107
-rw-r--r--sw/source/ui/fldui/fldref.cxx1073
-rw-r--r--sw/source/ui/fldui/fldref.hxx114
-rw-r--r--sw/source/ui/fldui/fldref.src145
-rw-r--r--sw/source/ui/fldui/fldtdlg.cxx386
-rw-r--r--sw/source/ui/fldui/fldtdlg.hrc171
-rw-r--r--sw/source/ui/fldui/fldtdlg.src118
-rw-r--r--sw/source/ui/fldui/fldui.src684
-rw-r--r--sw/source/ui/fldui/fldvar.cxx1383
-rw-r--r--sw/source/ui/fldui/fldvar.hxx126
-rw-r--r--sw/source/ui/fldui/fldvar.src236
-rw-r--r--sw/source/ui/fldui/fldwrap.cxx212
-rw-r--r--sw/source/ui/fldui/inpdlg.cxx209
-rw-r--r--sw/source/ui/fldui/inpdlg.hrc34
-rw-r--r--sw/source/ui/fldui/inpdlg.src131
-rw-r--r--sw/source/ui/fldui/javaedit.cxx366
-rw-r--r--sw/source/ui/fldui/javaedit.hrc51
-rw-r--r--sw/source/ui/fldui/javaedit.src172
-rw-r--r--sw/source/ui/fldui/makefile.mk94
-rw-r--r--sw/source/ui/fldui/xfldui.cxx184
-rw-r--r--sw/source/ui/fmtui/fmtui.src88
-rw-r--r--sw/source/ui/fmtui/makefile.mk51
-rw-r--r--sw/source/ui/fmtui/tmpdlg.cxx647
-rw-r--r--sw/source/ui/fmtui/tmpdlg.src380
-rw-r--r--sw/source/ui/frmdlg/colex.cxx610
-rw-r--r--sw/source/ui/frmdlg/colmgr.cxx191
-rw-r--r--sw/source/ui/frmdlg/column.cxx1462
-rw-r--r--sw/source/ui/frmdlg/column.hrc87
-rw-r--r--sw/source/ui/frmdlg/column.src404
-rw-r--r--sw/source/ui/frmdlg/cption.cxx648
-rw-r--r--sw/source/ui/frmdlg/cption.hrc78
-rw-r--r--sw/source/ui/frmdlg/cption.src329
-rw-r--r--sw/source/ui/frmdlg/frmdlg.cxx219
-rw-r--r--sw/source/ui/frmdlg/frmmgr.cxx623
-rw-r--r--sw/source/ui/frmdlg/frmpage.cxx3249
-rw-r--r--sw/source/ui/frmdlg/frmpage.hrc146
-rw-r--r--sw/source/ui/frmdlg/frmpage.src840
-rw-r--r--sw/source/ui/frmdlg/frmui.src133
-rw-r--r--sw/source/ui/frmdlg/makefile.mk79
-rw-r--r--sw/source/ui/frmdlg/pattern.cxx75
-rw-r--r--sw/source/ui/frmdlg/pattern.hrc46
-rw-r--r--sw/source/ui/frmdlg/uiborder.cxx79
-rw-r--r--sw/source/ui/frmdlg/wrap.cxx785
-rw-r--r--sw/source/ui/frmdlg/wrap.hrc66
-rw-r--r--sw/source/ui/frmdlg/wrap.src257
-rw-r--r--sw/source/ui/globdoc/globdoc.cxx91
-rw-r--r--sw/source/ui/globdoc/globdoc.src45
-rw-r--r--sw/source/ui/globdoc/makefile.mk51
-rw-r--r--sw/source/ui/inc/DropDownFieldDialog.hxx71
-rw-r--r--sw/source/ui/inc/SwSpellDialogChildWindow.hxx76
-rw-r--r--sw/source/ui/inc/SwXFilterOptions.hxx113
-rw-r--r--sw/source/ui/inc/abstract.hxx73
-rw-r--r--sw/source/ui/inc/actctrl.hxx98
-rw-r--r--sw/source/ui/inc/addrdlg.hxx44
-rwxr-xr-xsw/source/ui/inc/annotsh.hxx77
-rw-r--r--sw/source/ui/inc/app.hrc183
-rw-r--r--sw/source/ui/inc/ascfldlg.hxx78
-rw-r--r--sw/source/ui/inc/autoedit.hxx50
-rw-r--r--sw/source/ui/inc/barcfg.hxx47
-rw-r--r--sw/source/ui/inc/basesh.hxx127
-rw-r--r--sw/source/ui/inc/beziersh.hxx44
-rw-r--r--sw/source/ui/inc/bmpwin.hxx69
-rw-r--r--sw/source/ui/inc/bookctrl.hxx57
-rw-r--r--sw/source/ui/inc/bookmark.hxx88
-rw-r--r--sw/source/ui/inc/break.hxx92
-rw-r--r--sw/source/ui/inc/caption.hxx118
-rw-r--r--sw/source/ui/inc/cfgdesc.hxx69
-rw-r--r--sw/source/ui/inc/cfgid.h40
-rw-r--r--sw/source/ui/inc/cfgitems.hxx242
-rw-r--r--sw/source/ui/inc/changedb.hxx92
-rw-r--r--sw/source/ui/inc/chartins.hxx35
-rw-r--r--sw/source/ui/inc/chldwrap.hxx55
-rw-r--r--sw/source/ui/inc/chrdlg.hxx119
-rw-r--r--sw/source/ui/inc/cnttab.hxx90
-rw-r--r--sw/source/ui/inc/colex.hxx118
-rw-r--r--sw/source/ui/inc/colmgr.hxx131
-rw-r--r--sw/source/ui/inc/column.hxx227
-rw-r--r--sw/source/ui/inc/conarc.hxx57
-rw-r--r--sw/source/ui/inc/concustomshape.hxx72
-rw-r--r--sw/source/ui/inc/condedit.hxx72
-rw-r--r--sw/source/ui/inc/conform.hxx47
-rw-r--r--sw/source/ui/inc/conpoly.hxx55
-rw-r--r--sw/source/ui/inc/conrect.hxx60
-rw-r--r--sw/source/ui/inc/content.hxx225
-rw-r--r--sw/source/ui/inc/conttree.hxx334
-rw-r--r--sw/source/ui/inc/convert.hxx91
-rw-r--r--sw/source/ui/inc/cption.hxx137
-rw-r--r--sw/source/ui/inc/dbconfig.hxx54
-rw-r--r--sw/source/ui/inc/dbinsdlg.hxx188
-rw-r--r--sw/source/ui/inc/dbtree.hxx86
-rw-r--r--sw/source/ui/inc/dbui.hxx86
-rw-r--r--sw/source/ui/inc/dialmgr.hxx48
-rw-r--r--sw/source/ui/inc/docfnote.hxx50
-rw-r--r--sw/source/ui/inc/docstdlg.hxx85
-rw-r--r--sw/source/ui/inc/drawbase.hxx90
-rw-r--r--sw/source/ui/inc/drawsh.hxx52
-rw-r--r--sw/source/ui/inc/drformsh.hxx47
-rw-r--r--sw/source/ui/inc/drpcps.hxx125
-rw-r--r--sw/source/ui/inc/drwbassh.hxx64
-rw-r--r--sw/source/ui/inc/drwtxtsh.hxx85
-rw-r--r--sw/source/ui/inc/dselect.hxx52
-rw-r--r--sw/source/ui/inc/edtwin.hxx307
-rw-r--r--sw/source/ui/inc/envimg.hxx100
-rw-r--r--sw/source/ui/inc/envlop.hxx149
-rw-r--r--sw/source/ui/inc/fldedt.hxx66
-rw-r--r--sw/source/ui/inc/fldmgr.hxx234
-rw-r--r--sw/source/ui/inc/fldtdlg.hxx68
-rw-r--r--sw/source/ui/inc/fldwrap.hxx63
-rw-r--r--sw/source/ui/inc/fontcfg.hxx120
-rw-r--r--sw/source/ui/inc/formatclipboard.hxx69
-rw-r--r--sw/source/ui/inc/formedt.hxx108
-rw-r--r--sw/source/ui/inc/frmdlg.hxx66
-rw-r--r--sw/source/ui/inc/frmmgr.hxx193
-rw-r--r--sw/source/ui/inc/frmpage.hxx344
-rw-r--r--sw/source/ui/inc/frmsh.hxx50
-rw-r--r--sw/source/ui/inc/frmui.hrc144
-rw-r--r--sw/source/ui/inc/globals.h37
-rw-r--r--sw/source/ui/inc/globdoc.hrc64
-rw-r--r--sw/source/ui/inc/glosbib.hxx121
-rw-r--r--sw/source/ui/inc/glosdoc.hxx148
-rw-r--r--sw/source/ui/inc/gloshdl.hxx110
-rw-r--r--sw/source/ui/inc/gloslst.hxx89
-rw-r--r--sw/source/ui/inc/glossary.hxx197
-rw-r--r--sw/source/ui/inc/glshell.hxx114
-rw-r--r--sw/source/ui/inc/grfsh.hxx44
-rw-r--r--sw/source/ui/inc/hidfunc.h350
-rw-r--r--sw/source/ui/inc/hyp.hxx67
-rw-r--r--sw/source/ui/inc/idxmrk.hxx73
-rw-r--r--sw/source/ui/inc/imaildsplistener.hxx77
-rw-r--r--sw/source/ui/inc/initui.hxx79
-rw-r--r--sw/source/ui/inc/inpdlg.hxx78
-rw-r--r--sw/source/ui/inc/inputwin.hxx138
-rw-r--r--sw/source/ui/inc/insfnote.hxx97
-rw-r--r--sw/source/ui/inc/insrule.hxx66
-rw-r--r--sw/source/ui/inc/instable.hxx100
-rw-r--r--sw/source/ui/inc/javaedit.hxx118
-rw-r--r--sw/source/ui/inc/label.hxx99
-rw-r--r--sw/source/ui/inc/labelcfg.hxx59
-rw-r--r--sw/source/ui/inc/labimg.hxx131
-rwxr-xr-xsw/source/ui/inc/langhelper.hxx62
-rw-r--r--sw/source/ui/inc/linenum.hxx110
-rw-r--r--sw/source/ui/inc/listsh.hxx44
-rw-r--r--sw/source/ui/inc/macassgn.hxx54
-rw-r--r--sw/source/ui/inc/mailconfigpage.hxx110
-rw-r--r--sw/source/ui/inc/maildispatcher.hxx168
-rw-r--r--sw/source/ui/inc/mailmergechildwindow.hxx66
-rw-r--r--sw/source/ui/inc/mailmergehelper.hxx349
-rw-r--r--sw/source/ui/inc/mailmergewizard.hxx103
-rw-r--r--sw/source/ui/inc/mailmrge.hxx204
-rw-r--r--sw/source/ui/inc/makefile.mk42
-rw-r--r--sw/source/ui/inc/mediash.hxx43
-rw-r--r--sw/source/ui/inc/mergetbl.hxx59
-rw-r--r--sw/source/ui/inc/misc.hrc106
-rw-r--r--sw/source/ui/inc/mmconfigitem.hxx279
-rw-r--r--sw/source/ui/inc/multmrk.hxx77
-rw-r--r--sw/source/ui/inc/navicfg.hxx119
-rw-r--r--sw/source/ui/inc/navicont.hxx61
-rw-r--r--sw/source/ui/inc/navipi.hxx198
-rw-r--r--sw/source/ui/inc/num.hxx205
-rw-r--r--sw/source/ui/inc/numberingtypelistbox.hxx58
-rw-r--r--sw/source/ui/inc/numfmtlb.hxx87
-rw-r--r--sw/source/ui/inc/numpara.hxx98
-rw-r--r--sw/source/ui/inc/numprevw.hxx71
-rw-r--r--sw/source/ui/inc/olesh.hxx48
-rw-r--r--sw/source/ui/inc/olmenu.hxx92
-rw-r--r--sw/source/ui/inc/optcomp.hxx87
-rw-r--r--sw/source/ui/inc/optload.hxx213
-rw-r--r--sw/source/ui/inc/optpage.hxx502
-rw-r--r--sw/source/ui/inc/outline.hxx166
-rw-r--r--sw/source/ui/inc/pardlg.hxx39
-rw-r--r--sw/source/ui/inc/pattern.hxx44
-rw-r--r--sw/source/ui/inc/pgfnote.hxx93
-rw-r--r--sw/source/ui/inc/pggrid.hxx113
-rw-r--r--sw/source/ui/inc/popbox.hxx67
-rw-r--r--sw/source/ui/inc/popup.hrc58
-rw-r--r--sw/source/ui/inc/prcntfld.hxx99
-rw-r--r--sw/source/ui/inc/prtopt.hxx55
-rw-r--r--sw/source/ui/inc/pview.hxx337
-rw-r--r--sw/source/ui/inc/redlndlg.hxx189
-rw-r--r--sw/source/ui/inc/regionsw.hxx415
-rw-r--r--sw/source/ui/inc/ribbar.hrc135
-rw-r--r--sw/source/ui/inc/rowht.hxx67
-rw-r--r--sw/source/ui/inc/scroll.hxx71
-rw-r--r--sw/source/ui/inc/selglos.hxx74
-rw-r--r--sw/source/ui/inc/sharedconnection.hxx36
-rw-r--r--sw/source/ui/inc/shdwcrsr.hxx67
-rw-r--r--sw/source/ui/inc/shells.hrc112
-rw-r--r--sw/source/ui/inc/split.hxx76
-rw-r--r--sw/source/ui/inc/splittbl.hxx61
-rw-r--r--sw/source/ui/inc/srcedtw.hxx164
-rw-r--r--sw/source/ui/inc/srcview.hxx126
-rw-r--r--sw/source/ui/inc/srtdlg.hxx118
-rw-r--r--sw/source/ui/inc/stmenu.hxx85
-rw-r--r--sw/source/ui/inc/swcont.hxx113
-rw-r--r--sw/source/ui/inc/swdtflvr.hxx223
-rw-r--r--sw/source/ui/inc/swlbox.hxx128
-rw-r--r--sw/source/ui/inc/swmn_tmpl.hrc383
-rw-r--r--sw/source/ui/inc/swmodalredlineacceptdlg.hxx48
-rw-r--r--sw/source/ui/inc/swrenamexnameddlg.hxx87
-rw-r--r--sw/source/ui/inc/swtablerep.hxx94
-rw-r--r--sw/source/ui/inc/swuiccoll.hxx89
-rw-r--r--sw/source/ui/inc/swuicnttab.hxx537
-rw-r--r--sw/source/ui/inc/swuiidxmrk.hxx295
-rw-r--r--sw/source/ui/inc/swuipardlg.hxx51
-rw-r--r--sw/source/ui/inc/swvset.hxx41
-rw-r--r--sw/source/ui/inc/swwrtshitem.hxx52
-rw-r--r--sw/source/ui/inc/syncbtn.hxx71
-rw-r--r--sw/source/ui/inc/table.hrc50
-rw-r--r--sw/source/ui/inc/tabledlg.hxx55
-rw-r--r--sw/source/ui/inc/tablemgr.hxx95
-rw-r--r--sw/source/ui/inc/tabsh.hxx58
-rw-r--r--sw/source/ui/inc/tautofmt.hxx118
-rw-r--r--sw/source/ui/inc/tblctrl.hxx57
-rw-r--r--sw/source/ui/inc/tblnumfm.hxx44
-rw-r--r--sw/source/ui/inc/tbxanchr.hxx49
-rw-r--r--sw/source/ui/inc/tbxmgr.hxx52
-rw-r--r--sw/source/ui/inc/textcontrolcombo.hxx66
-rw-r--r--sw/source/ui/inc/textsh.hxx90
-rw-r--r--sw/source/ui/inc/tmpdlg.hxx66
-rw-r--r--sw/source/ui/inc/tmplctrl.hxx58
-rw-r--r--sw/source/ui/inc/toolbox_tmpl.hrc563
-rw-r--r--sw/source/ui/inc/toxmgr.hxx324
-rw-r--r--sw/source/ui/inc/uiborder.hxx49
-rw-r--r--sw/source/ui/inc/uiitems.hxx116
-rw-r--r--sw/source/ui/inc/uinums.hxx136
-rw-r--r--sw/source/ui/inc/uitool.hxx92
-rw-r--r--sw/source/ui/inc/uivwimp.hxx191
-rw-r--r--sw/source/ui/inc/unodispatch.hxx134
-rw-r--r--sw/source/ui/inc/unotools.hxx135
-rw-r--r--sw/source/ui/inc/unotxvw.hxx274
-rw-r--r--sw/source/ui/inc/usrpref.hxx277
-rw-r--r--sw/source/ui/inc/utlui.hrc194
-rw-r--r--sw/source/ui/inc/view.hxx691
-rw-r--r--sw/source/ui/inc/viewlayoutctrl.hxx56
-rw-r--r--sw/source/ui/inc/web.hrc74
-rw-r--r--sw/source/ui/inc/wformsh.hxx45
-rw-r--r--sw/source/ui/inc/wfrmsh.hxx48
-rw-r--r--sw/source/ui/inc/wgrfsh.hxx45
-rw-r--r--sw/source/ui/inc/wlistsh.hxx42
-rw-r--r--sw/source/ui/inc/wolesh.hxx48
-rw-r--r--sw/source/ui/inc/wordcountdialog.hxx65
-rw-r--r--sw/source/ui/inc/workctrl.hxx225
-rw-r--r--sw/source/ui/inc/wrap.hxx151
-rw-r--r--sw/source/ui/inc/wrtsh.hxx653
-rw-r--r--sw/source/ui/inc/wtabsh.hxx42
-rw-r--r--sw/source/ui/inc/wtextsh.hxx48
-rw-r--r--sw/source/ui/inc/wview.hxx51
-rw-r--r--sw/source/ui/inc/zoomctrl.hxx52
-rw-r--r--sw/source/ui/index/cntex.cxx516
-rw-r--r--sw/source/ui/index/cnttab.cxx4513
-rw-r--r--sw/source/ui/index/cnttab.hrc284
-rw-r--r--sw/source/ui/index/cnttab.src1278
-rw-r--r--sw/source/ui/index/idxmrk.cxx153
-rw-r--r--sw/source/ui/index/idxmrk.hrc108
-rw-r--r--sw/source/ui/index/idxmrk.src635
-rw-r--r--sw/source/ui/index/makefile.mk68
-rw-r--r--sw/source/ui/index/multmrk.cxx98
-rw-r--r--sw/source/ui/index/multmrk.hrc34
-rw-r--r--sw/source/ui/index/multmrk.src118
-rw-r--r--sw/source/ui/index/swuiidxmrk.cxx1959
-rw-r--r--sw/source/ui/index/toxmgr.cxx525
-rw-r--r--sw/source/ui/lingu/cvdata.mac19
-rw-r--r--sw/source/ui/lingu/hhcwrp.cxx818
-rw-r--r--sw/source/ui/lingu/hyp.cxx176
-rw-r--r--sw/source/ui/lingu/makefile.mk56
-rw-r--r--sw/source/ui/lingu/olmenu.cxx997
-rw-r--r--sw/source/ui/lingu/olmenu.hrc67
-rw-r--r--sw/source/ui/lingu/olmenu.src132
-rw-r--r--sw/source/ui/lingu/sdrhhcwrap.cxx235
-rw-r--r--sw/source/ui/lingu/sdrhhcwrap.hxx69
-rw-r--r--sw/source/ui/makefile.mk101
-rw-r--r--sw/source/ui/misc/autocorr.src29
-rw-r--r--sw/source/ui/misc/bookmark.cxx304
-rw-r--r--sw/source/ui/misc/bookmark.hrc34
-rw-r--r--sw/source/ui/misc/bookmark.src116
-rw-r--r--sw/source/ui/misc/docfnote.cxx500
-rw-r--r--sw/source/ui/misc/docfnote.hrc60
-rw-r--r--sw/source/ui/misc/docfnote.src537
-rw-r--r--sw/source/ui/misc/glosbib.cxx580
-rw-r--r--sw/source/ui/misc/glosbib.hrc41
-rw-r--r--sw/source/ui/misc/glosbib.src178
-rw-r--r--sw/source/ui/misc/glosdoc.cxx806
-rw-r--r--sw/source/ui/misc/glossary.cxx1305
-rw-r--r--sw/source/ui/misc/glossary.hrc91
-rw-r--r--sw/source/ui/misc/glossary.src463
-rw-r--r--sw/source/ui/misc/glshell.cxx353
-rw-r--r--sw/source/ui/misc/impfnote.hxx120
-rw-r--r--sw/source/ui/misc/insfnote.cxx353
-rw-r--r--sw/source/ui/misc/insfnote.hrc41
-rw-r--r--sw/source/ui/misc/insfnote.src167
-rw-r--r--sw/source/ui/misc/insrule.cxx226
-rw-r--r--sw/source/ui/misc/insrule.hrc35
-rw-r--r--sw/source/ui/misc/insrule.src114
-rw-r--r--sw/source/ui/misc/linenum.cxx335
-rw-r--r--sw/source/ui/misc/linenum.hrc50
-rw-r--r--sw/source/ui/misc/linenum.src268
-rw-r--r--sw/source/ui/misc/makefile.mk96
-rw-r--r--sw/source/ui/misc/num.cxx1173
-rw-r--r--sw/source/ui/misc/num.hrc55
-rw-r--r--sw/source/ui/misc/num.src362
-rw-r--r--sw/source/ui/misc/numberingtypelistbox.cxx177
-rw-r--r--sw/source/ui/misc/numberingtypelistbox.src98
-rw-r--r--sw/source/ui/misc/outline.cxx1343
-rw-r--r--sw/source/ui/misc/outline.hrc98
-rw-r--r--sw/source/ui/misc/outline.src373
-rw-r--r--sw/source/ui/misc/pgfnote.cxx373
-rw-r--r--sw/source/ui/misc/pgfnote.hrc44
-rw-r--r--sw/source/ui/misc/pgfnote.src192
-rw-r--r--sw/source/ui/misc/pggrid.cxx521
-rw-r--r--sw/source/ui/misc/pggrid.hrc52
-rw-r--r--sw/source/ui/misc/pggrid.src231
-rw-r--r--sw/source/ui/misc/redlndlg.cxx1418
-rw-r--r--sw/source/ui/misc/redlndlg.hrc38
-rw-r--r--sw/source/ui/misc/redlndlg.src148
-rw-r--r--sw/source/ui/misc/srtdlg.cxx492
-rw-r--r--sw/source/ui/misc/srtdlg.hrc65
-rw-r--r--sw/source/ui/misc/srtdlg.src384
-rw-r--r--sw/source/ui/misc/swmodalredlineacceptdlg.cxx147
-rw-r--r--sw/source/ui/ribbar/conarc.cxx161
-rw-r--r--sw/source/ui/ribbar/concustomshape.cxx252
-rw-r--r--sw/source/ui/ribbar/conform.cxx144
-rw-r--r--sw/source/ui/ribbar/conpoly.cxx163
-rw-r--r--sw/source/ui/ribbar/conrect.cxx229
-rw-r--r--sw/source/ui/ribbar/drawbase.cxx737
-rw-r--r--sw/source/ui/ribbar/dselect.cxx102
-rw-r--r--sw/source/ui/ribbar/inputwin.cxx685
-rw-r--r--sw/source/ui/ribbar/inputwin.hrc84
-rw-r--r--sw/source/ui/ribbar/inputwin.src345
-rw-r--r--sw/source/ui/ribbar/makefile.mk66
-rw-r--r--sw/source/ui/ribbar/tblctrl.cxx94
-rw-r--r--sw/source/ui/ribbar/tblctrl.hrc35
-rw-r--r--sw/source/ui/ribbar/tblctrl.src94
-rw-r--r--sw/source/ui/ribbar/tbxanchr.cxx166
-rw-r--r--sw/source/ui/ribbar/tbxanchr.src107
-rw-r--r--sw/source/ui/ribbar/tbxmgr.cxx180
-rw-r--r--sw/source/ui/ribbar/workctrl.cxx944
-rw-r--r--sw/source/ui/ribbar/workctrl.hrc88
-rw-r--r--sw/source/ui/ribbar/workctrl.src596
-rwxr-xr-xsw/source/ui/shells/annotsh.cxx1634
-rw-r--r--sw/source/ui/shells/basesh.cxx2932
-rw-r--r--sw/source/ui/shells/beziersh.cxx356
-rw-r--r--sw/source/ui/shells/drawdlg.cxx259
-rw-r--r--sw/source/ui/shells/drawsh.cxx497
-rw-r--r--sw/source/ui/shells/drformsh.cxx276
-rw-r--r--sw/source/ui/shells/drwbassh.cxx995
-rw-r--r--sw/source/ui/shells/drwtxtex.cxx960
-rw-r--r--sw/source/ui/shells/drwtxtsh.cxx902
-rw-r--r--sw/source/ui/shells/frmsh.cxx1148
-rw-r--r--sw/source/ui/shells/grfsh.cxx707
-rw-r--r--sw/source/ui/shells/grfshex.cxx165
-rwxr-xr-xsw/source/ui/shells/langhelper.cxx564
-rw-r--r--sw/source/ui/shells/listsh.cxx295
-rw-r--r--sw/source/ui/shells/makefile.mk92
-rw-r--r--sw/source/ui/shells/mediash.cxx222
-rw-r--r--sw/source/ui/shells/olesh.cxx80
-rw-r--r--sw/source/ui/shells/shells.src1139
-rw-r--r--sw/source/ui/shells/slotadd.cxx150
-rw-r--r--sw/source/ui/shells/tabsh.cxx1597
-rw-r--r--sw/source/ui/shells/textdrw.cxx144
-rw-r--r--sw/source/ui/shells/textfld.cxx889
-rw-r--r--sw/source/ui/shells/textglos.cxx145
-rw-r--r--sw/source/ui/shells/textidx.cxx261
-rw-r--r--sw/source/ui/shells/textsh.cxx1260
-rw-r--r--sw/source/ui/shells/textsh1.cxx1735
-rw-r--r--sw/source/ui/shells/textsh2.cxx312
-rw-r--r--sw/source/ui/shells/txtattr.cxx847
-rw-r--r--sw/source/ui/shells/txtcrsr.cxx334
-rw-r--r--sw/source/ui/shells/txtnum.cxx251
-rw-r--r--sw/source/ui/smartmenu/makefile.mk53
-rw-r--r--sw/source/ui/smartmenu/stmenu.cxx186
-rw-r--r--sw/source/ui/smartmenu/stmenu.hrc41
-rw-r--r--sw/source/ui/smartmenu/stmenu.src44
-rw-r--r--sw/source/ui/table/chartins.cxx287
-rw-r--r--sw/source/ui/table/chartins.hrc47
-rw-r--r--sw/source/ui/table/chartins.src124
-rw-r--r--sw/source/ui/table/colwd.cxx123
-rw-r--r--sw/source/ui/table/colwd.hrc36
-rw-r--r--sw/source/ui/table/colwd.src144
-rw-r--r--sw/source/ui/table/convert.cxx279
-rw-r--r--sw/source/ui/table/convert.hrc47
-rw-r--r--sw/source/ui/table/convert.src185
-rw-r--r--sw/source/ui/table/instable.cxx253
-rw-r--r--sw/source/ui/table/instable.hrc49
-rw-r--r--sw/source/ui/table/instable.src190
-rw-r--r--sw/source/ui/table/makefile.mk81
-rw-r--r--sw/source/ui/table/mergetbl.cxx66
-rw-r--r--sw/source/ui/table/mergetbl.hrc32
-rw-r--r--sw/source/ui/table/mergetbl.src116
-rw-r--r--sw/source/ui/table/rowht.cxx120
-rw-r--r--sw/source/ui/table/rowht.hrc34
-rw-r--r--sw/source/ui/table/rowht.src121
-rw-r--r--sw/source/ui/table/splittbl.cxx79
-rw-r--r--sw/source/ui/table/splittbl.hrc34
-rw-r--r--sw/source/ui/table/splittbl.src125
-rw-r--r--sw/source/ui/table/swtablerep.cxx241
-rw-r--r--sw/source/ui/table/table.src59
-rw-r--r--sw/source/ui/table/tabledlg.cxx1981
-rw-r--r--sw/source/ui/table/tabledlg.hrc110
-rw-r--r--sw/source/ui/table/tabledlg.src749
-rw-r--r--sw/source/ui/table/tablemgr.cxx382
-rw-r--r--sw/source/ui/table/tablepg.hxx239
-rw-r--r--sw/source/ui/table/tautofmt.cxx1057
-rw-r--r--sw/source/ui/table/tautofmt.hrc78
-rw-r--r--sw/source/ui/table/tautofmt.src296
-rw-r--r--sw/source/ui/uiview/formatclipboard.cxx617
-rw-r--r--sw/source/ui/uiview/makefile.mk85
-rw-r--r--sw/source/ui/uiview/pview.cxx2715
-rw-r--r--sw/source/ui/uiview/pview.hrc72
-rw-r--r--sw/source/ui/uiview/pview.src490
-rw-r--r--sw/source/ui/uiview/scroll.cxx160
-rw-r--r--sw/source/ui/uiview/srcview.cxx966
-rw-r--r--sw/source/ui/uiview/swcli.cxx171
-rw-r--r--sw/source/ui/uiview/uivwimp.cxx345
-rw-r--r--sw/source/ui/uiview/view.cxx1963
-rw-r--r--sw/source/ui/uiview/view.hrc91
-rw-r--r--sw/source/ui/uiview/view.src376
-rw-r--r--sw/source/ui/uiview/view0.cxx561
-rw-r--r--sw/source/ui/uiview/view1.cxx219
-rw-r--r--sw/source/ui/uiview/view2.cxx2452
-rw-r--r--sw/source/ui/uiview/viewcoll.cxx98
-rw-r--r--sw/source/ui/uiview/viewdlg.cxx98
-rw-r--r--sw/source/ui/uiview/viewdlg2.cxx241
-rw-r--r--sw/source/ui/uiview/viewdraw.cxx844
-rw-r--r--sw/source/ui/uiview/viewfunc.hxx68
-rw-r--r--sw/source/ui/uiview/viewling.cxx1060
-rw-r--r--sw/source/ui/uiview/viewmdi.cxx755
-rw-r--r--sw/source/ui/uiview/viewport.cxx1384
-rw-r--r--sw/source/ui/uiview/viewprt.cxx375
-rw-r--r--sw/source/ui/uiview/viewsrch.cxx821
-rw-r--r--sw/source/ui/uiview/viewstat.cxx532
-rw-r--r--sw/source/ui/uiview/viewtab.cxx1847
-rw-r--r--sw/source/ui/uno/RefreshListenerContainer.cxx58
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.cxx1046
-rw-r--r--sw/source/ui/uno/SwXDocumentSettings.hxx109
-rw-r--r--sw/source/ui/uno/SwXFilterOptions.cxx217
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.cxx375
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.hxx89
-rw-r--r--sw/source/ui/uno/detreg.cxx109
-rw-r--r--sw/source/ui/uno/dlelstnr.cxx204
-rw-r--r--sw/source/ui/uno/makefile.mk83
-rw-r--r--sw/source/ui/uno/swdet2.cxx122
-rw-r--r--sw/source/ui/uno/swdetect.cxx489
-rw-r--r--sw/source/ui/uno/swdetect.hxx95
-rw-r--r--sw/source/ui/uno/unoatxt.cxx1308
-rw-r--r--sw/source/ui/uno/unodefaults.cxx72
-rw-r--r--sw/source/ui/uno/unodefaults.hxx48
-rw-r--r--sw/source/ui/uno/unodispatch.cxx449
-rw-r--r--sw/source/ui/uno/unodoc.cxx130
-rw-r--r--sw/source/ui/uno/unofreg.cxx476
-rw-r--r--sw/source/ui/uno/unomailmerge.cxx1255
-rw-r--r--sw/source/ui/uno/unomod.cxx1057
-rw-r--r--sw/source/ui/uno/unomodule.cxx172
-rw-r--r--sw/source/ui/uno/unomodule.hxx98
-rw-r--r--sw/source/ui/uno/unotxdoc.cxx4122
-rw-r--r--sw/source/ui/uno/unotxvw.cxx2209
-rw-r--r--sw/source/ui/uno/warnpassword.cxx86
-rw-r--r--sw/source/ui/utlui/attrdesc.cxx1350
-rw-r--r--sw/source/ui/utlui/attrdesc.hrc123
-rw-r--r--sw/source/ui/utlui/attrdesc.src384
-rw-r--r--sw/source/ui/utlui/bookctrl.cxx164
-rw-r--r--sw/source/ui/utlui/condedit.cxx108
-rw-r--r--sw/source/ui/utlui/content.cxx3265
-rw-r--r--sw/source/ui/utlui/glbltree.cxx1524
-rw-r--r--sw/source/ui/utlui/gloslst.cxx514
-rw-r--r--sw/source/ui/utlui/gloslst.hrc38
-rw-r--r--sw/source/ui/utlui/gloslst.src108
-rw-r--r--sw/source/ui/utlui/initui.cxx306
-rw-r--r--sw/source/ui/utlui/initui.hrc66
-rw-r--r--sw/source/ui/utlui/initui.src519
-rw-r--r--sw/source/ui/utlui/makefile.mk79
-rw-r--r--sw/source/ui/utlui/navicfg.cxx141
-rw-r--r--sw/source/ui/utlui/navipi.cxx1549
-rw-r--r--sw/source/ui/utlui/navipi.hrc91
-rw-r--r--sw/source/ui/utlui/navipi.src536
-rw-r--r--sw/source/ui/utlui/numfmtlb.cxx540
-rw-r--r--sw/source/ui/utlui/poolfmt.src745
-rw-r--r--sw/source/ui/utlui/prcntfld.cxx370
-rw-r--r--sw/source/ui/utlui/shdwcrsr.cxx135
-rw-r--r--sw/source/ui/utlui/swrenamexnameddlg.cxx143
-rw-r--r--sw/source/ui/utlui/textcontrolcombo.cxx113
-rw-r--r--sw/source/ui/utlui/tmplctrl.cxx174
-rw-r--r--sw/source/ui/utlui/uiitems.cxx324
-rw-r--r--sw/source/ui/utlui/uitool.cxx774
-rw-r--r--sw/source/ui/utlui/unotools.cxx522
-rw-r--r--sw/source/ui/utlui/unotools.hrc41
-rw-r--r--sw/source/ui/utlui/unotools.src130
-rw-r--r--sw/source/ui/utlui/utlui.src478
-rw-r--r--sw/source/ui/utlui/viewlayoutctrl.cxx209
-rw-r--r--sw/source/ui/utlui/zoomctrl.cxx99
-rw-r--r--sw/source/ui/vba/makefile.mk107
-rw-r--r--sw/source/ui/vba/service.cxx84
-rw-r--r--sw/source/ui/vba/vbaaddin.cxx104
-rw-r--r--sw/source/ui/vba/vbaaddin.hxx59
-rw-r--r--sw/source/ui/vba/vbaaddins.cxx107
-rw-r--r--sw/source/ui/vba/vbaaddins.hxx52
-rw-r--r--sw/source/ui/vba/vbaapplication.cxx203
-rw-r--r--sw/source/ui/vba/vbaapplication.hxx74
-rw-r--r--sw/source/ui/vba/vbaautotextentry.cxx126
-rw-r--r--sw/source/ui/vba/vbaautotextentry.hxx80
-rw-r--r--sw/source/ui/vba/vbabookmark.cxx109
-rw-r--r--sw/source/ui/vba/vbabookmark.hxx65
-rw-r--r--sw/source/ui/vba/vbabookmarks.cxx237
-rw-r--r--sw/source/ui/vba/vbabookmarks.hxx75
-rw-r--r--sw/source/ui/vba/vbaborders.cxx378
-rw-r--r--sw/source/ui/vba/vbaborders.hxx63
-rw-r--r--sw/source/ui/vba/vbadialog.cxx78
-rw-r--r--sw/source/ui/vba/vbadialog.hxx50
-rw-r--r--sw/source/ui/vba/vbadialogs.cxx61
-rw-r--r--sw/source/ui/vba/vbadialogs.hxx53
-rw-r--r--sw/source/ui/vba/vbadocument.cxx381
-rw-r--r--sw/source/ui/vba/vbadocument.hxx80
-rw-r--r--sw/source/ui/vba/vbadocumentproperties.cxx764
-rw-r--r--sw/source/ui/vba/vbadocumentproperties.hxx67
-rw-r--r--sw/source/ui/vba/vbadocuments.cxx197
-rw-r--r--sw/source/ui/vba/vbadocuments.hxx66
-rw-r--r--sw/source/ui/vba/vbafield.cxx478
-rw-r--r--sw/source/ui/vba/vbafield.hxx77
-rw-r--r--sw/source/ui/vba/vbafind.cxx428
-rw-r--r--sw/source/ui/vba/vbafind.hxx101
-rw-r--r--sw/source/ui/vba/vbafont.cxx216
-rw-r--r--sw/source/ui/vba/vbafont.hxx31
-rw-r--r--sw/source/ui/vba/vbaglobals.cxx193
-rw-r--r--sw/source/ui/vba/vbaglobals.hxx80
-rw-r--r--sw/source/ui/vba/vbaheaderfooter.cxx111
-rw-r--r--sw/source/ui/vba/vbaheaderfooter.hxx60
-rw-r--r--sw/source/ui/vba/vbaheaderfooterhelper.cxx175
-rw-r--r--sw/source/ui/vba/vbaheaderfooterhelper.hxx49
-rw-r--r--sw/source/ui/vba/vbainformationhelper.cxx68
-rw-r--r--sw/source/ui/vba/vbainformationhelper.hxx43
-rw-r--r--sw/source/ui/vba/vbaoptions.cxx284
-rw-r--r--sw/source/ui/vba/vbaoptions.hxx87
-rw-r--r--sw/source/ui/vba/vbapagesetup.cxx272
-rw-r--r--sw/source/ui/vba/vbapagesetup.hxx67
-rw-r--r--sw/source/ui/vba/vbapalette.cxx75
-rw-r--r--sw/source/ui/vba/vbapalette.hxx15
-rw-r--r--sw/source/ui/vba/vbapane.cxx76
-rw-r--r--sw/source/ui/vba/vbapane.hxx54
-rw-r--r--sw/source/ui/vba/vbapanes.cxx124
-rw-r--r--sw/source/ui/vba/vbapanes.hxx57
-rw-r--r--sw/source/ui/vba/vbaparagraph.cxx174
-rw-r--r--sw/source/ui/vba/vbaparagraph.hxx81
-rw-r--r--sw/source/ui/vba/vbaparagraphformat.cxx573
-rw-r--r--sw/source/ui/vba/vbaparagraphformat.hxx95
-rw-r--r--sw/source/ui/vba/vbarange.cxx345
-rw-r--r--sw/source/ui/vba/vbarange.hxx90
-rw-r--r--sw/source/ui/vba/vbarangehelper.cxx171
-rw-r--r--sw/source/ui/vba/vbarangehelper.hxx43
-rw-r--r--sw/source/ui/vba/vbareplacement.cxx71
-rw-r--r--sw/source/ui/vba/vbareplacement.hxx54
-rw-r--r--sw/source/ui/vba/vbasection.cxx87
-rw-r--r--sw/source/ui/vba/vbasection.hxx59
-rw-r--r--sw/source/ui/vba/vbasections.cxx187
-rw-r--r--sw/source/ui/vba/vbasections.hxx59
-rw-r--r--sw/source/ui/vba/vbaselection.cxx679
-rw-r--r--sw/source/ui/vba/vbaselection.hxx105
-rw-r--r--sw/source/ui/vba/vbastyle.cxx149
-rw-r--r--sw/source/ui/vba/vbastyle.hxx67
-rw-r--r--sw/source/ui/vba/vbastyles.cxx377
-rw-r--r--sw/source/ui/vba/vbastyles.hxx51
-rw-r--r--sw/source/ui/vba/vbasystem.cxx192
-rw-r--r--sw/source/ui/vba/vbasystem.hxx72
-rw-r--r--sw/source/ui/vba/vbatable.cxx97
-rw-r--r--sw/source/ui/vba/vbatable.hxx28
-rw-r--r--sw/source/ui/vba/vbatables.cxx131
-rw-r--r--sw/source/ui/vba/vbatables.hxx28
-rw-r--r--sw/source/ui/vba/vbatemplate.cxx103
-rw-r--r--sw/source/ui/vba/vbatemplate.hxx52
-rw-r--r--sw/source/ui/vba/vbavariable.cxx105
-rw-r--r--sw/source/ui/vba/vbavariable.hxx59
-rw-r--r--sw/source/ui/vba/vbavariables.cxx102
-rw-r--r--sw/source/ui/vba/vbavariables.hxx61
-rw-r--r--sw/source/ui/vba/vbaview.cxx422
-rw-r--r--sw/source/ui/vba/vbaview.hxx68
-rw-r--r--sw/source/ui/vba/vbawindow.cxx113
-rw-r--r--sw/source/ui/vba/vbawindow.hxx58
-rw-r--r--sw/source/ui/vba/vbawrapformat.cxx257
-rw-r--r--sw/source/ui/vba/vbawrapformat.hxx70
-rw-r--r--sw/source/ui/vba/wordvbahelper.cxx92
-rw-r--r--sw/source/ui/vba/wordvbahelper.hxx54
-rw-r--r--sw/source/ui/web/makefile.mk59
-rw-r--r--sw/source/ui/web/wdocsh.cxx114
-rw-r--r--sw/source/ui/web/web.src345
-rw-r--r--sw/source/ui/web/wformsh.cxx71
-rw-r--r--sw/source/ui/web/wfrmsh.cxx95
-rw-r--r--sw/source/ui/web/wgrfsh.cxx74
-rw-r--r--sw/source/ui/web/wlistsh.cxx67
-rw-r--r--sw/source/ui/web/wolesh.cxx68
-rw-r--r--sw/source/ui/web/wtabsh.cxx76
-rw-r--r--sw/source/ui/web/wtextsh.cxx99
-rw-r--r--sw/source/ui/web/wview.cxx337
-rw-r--r--sw/source/ui/wrtsh/delete.cxx570
-rw-r--r--sw/source/ui/wrtsh/makefile.mk62
-rw-r--r--sw/source/ui/wrtsh/move.cxx691
-rw-r--r--sw/source/ui/wrtsh/select.cxx1072
-rw-r--r--sw/source/ui/wrtsh/wrtsh.hrc48
-rw-r--r--sw/source/ui/wrtsh/wrtsh.src52
-rw-r--r--sw/source/ui/wrtsh/wrtsh1.cxx1855
-rw-r--r--sw/source/ui/wrtsh/wrtsh2.cxx498
-rw-r--r--sw/source/ui/wrtsh/wrtsh3.cxx247
-rw-r--r--sw/source/ui/wrtsh/wrtsh4.cxx300
-rw-r--r--sw/source/ui/wrtsh/wrtundo.cxx182
-rw-r--r--sw/uiconfig/layout/delzip1
-rw-r--r--sw/uiconfig/layout/layout.mk33
-rw-r--r--sw/uiconfig/layout/makefile.mk46
-rw-r--r--sw/uiconfig/layout/wordcount.xml50
-rw-r--r--sw/uiconfig/sglobal/accelerator/de/default.xml114
-rw-r--r--sw/uiconfig/sglobal/accelerator/en-GB/default.xml115
-rw-r--r--sw/uiconfig/sglobal/accelerator/en-US/default.xml115
-rw-r--r--sw/uiconfig/sglobal/accelerator/es/default.xml114
-rw-r--r--sw/uiconfig/sglobal/accelerator/fr/default.xml114
-rw-r--r--sw/uiconfig/sglobal/menubar/menubar.xml457
-rw-r--r--sw/uiconfig/sglobal/statusbar/statusbar.xml15
-rw-r--r--sw/uiconfig/sglobal/toolbar/alignmentbar.xml11
-rw-r--r--sw/uiconfig/sglobal/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/sglobal/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/sglobal/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/sglobal/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/sglobal/toolbar/colorbar.xml15
-rw-r--r--sw/uiconfig/sglobal/toolbar/drawbar.xml34
-rw-r--r--sw/uiconfig/sglobal/toolbar/drawingobjectbar.xml40
-rw-r--r--sw/uiconfig/sglobal/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/sglobal/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/sglobal/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/sglobal/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/sglobal/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/sglobal/toolbar/formcontrols.xml26
-rw-r--r--sw/uiconfig/sglobal/toolbar/formdesign.xml31
-rw-r--r--sw/uiconfig/sglobal/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/sglobal/toolbar/formsnavigationbar.xml32
-rw-r--r--sw/uiconfig/sglobal/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/sglobal/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/sglobal/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/sglobal/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/sglobal/toolbar/graphicobjectbar.xml18
-rw-r--r--sw/uiconfig/sglobal/toolbar/insertbar.xml30
-rw-r--r--sw/uiconfig/sglobal/toolbar/insertobjectbar.xml7
-rw-r--r--sw/uiconfig/sglobal/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/sglobal/toolbar/moreformcontrols.xml23
-rw-r--r--sw/uiconfig/sglobal/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/sglobal/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/sglobal/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/sglobal/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/sglobal/toolbar/standardbar.xml42
-rw-r--r--sw/uiconfig/sglobal/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/sglobal/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/sglobal/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/sglobal/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/sglobal/toolbar/toolbar.xml13
-rw-r--r--sw/uiconfig/sglobal/toolbar/viewerbar.xml18
-rw-r--r--sw/uiconfig/sweb/accelerator/de/default.xml114
-rw-r--r--sw/uiconfig/sweb/accelerator/en-GB/default.xml115
-rw-r--r--sw/uiconfig/sweb/accelerator/en-US/default.xml115
-rw-r--r--sw/uiconfig/sweb/accelerator/es/default.xml114
-rw-r--r--sw/uiconfig/sweb/accelerator/fr/default.xml114
-rw-r--r--sw/uiconfig/sweb/menubar/menubar.xml386
-rw-r--r--sw/uiconfig/sweb/statusbar/statusbar.xml14
-rw-r--r--sw/uiconfig/sweb/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/sweb/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/sweb/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/sweb/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/sweb/toolbar/colorbar.xml17
-rw-r--r--sw/uiconfig/sweb/toolbar/drawingobjectbar.xml39
-rw-r--r--sw/uiconfig/sweb/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/sweb/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/sweb/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/sweb/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/sweb/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/sweb/toolbar/formcontrols.xml25
-rw-r--r--sw/uiconfig/sweb/toolbar/formdesign.xml31
-rw-r--r--sw/uiconfig/sweb/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/sweb/toolbar/formsnavigationbar.xml32
-rw-r--r--sw/uiconfig/sweb/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/sweb/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/sweb/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/sweb/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/sweb/toolbar/graphicobjectbar.xml26
-rw-r--r--sw/uiconfig/sweb/toolbar/insertbar.xml25
-rw-r--r--sw/uiconfig/sweb/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/sweb/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/sweb/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/sweb/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/sweb/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/sweb/toolbar/standardbar.xml45
-rw-r--r--sw/uiconfig/sweb/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/sweb/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/sweb/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/sweb/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/sweb/toolbar/toolbar.xml11
-rw-r--r--sw/uiconfig/sweb/toolbar/viewerbar.xml18
-rw-r--r--sw/uiconfig/swform/accelerator/de/default.xml119
-rw-r--r--sw/uiconfig/swform/accelerator/en-US/default.xml120
-rw-r--r--sw/uiconfig/swform/accelerator/es/default.xml119
-rw-r--r--sw/uiconfig/swform/accelerator/fr/default.xml119
-rw-r--r--sw/uiconfig/swform/menubar/menubar.xml452
-rw-r--r--sw/uiconfig/swform/statusbar/statusbar.xml14
-rw-r--r--sw/uiconfig/swform/toolbar/alignmentbar.xml11
-rw-r--r--sw/uiconfig/swform/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/swform/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/swform/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/swform/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/swform/toolbar/colorbar.xml15
-rw-r--r--sw/uiconfig/swform/toolbar/drawbar.xml34
-rw-r--r--sw/uiconfig/swform/toolbar/drawingobjectbar.xml40
-rw-r--r--sw/uiconfig/swform/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/swform/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/swform/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/swform/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/swform/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/swform/toolbar/formcontrols.xml26
-rw-r--r--sw/uiconfig/swform/toolbar/formdesign.xml33
-rw-r--r--sw/uiconfig/swform/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/swform/toolbar/formsnavigationbar.xml33
-rw-r--r--sw/uiconfig/swform/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/swform/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/swform/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/swform/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/swform/toolbar/graphicobjectbar.xml18
-rw-r--r--sw/uiconfig/swform/toolbar/insertbar.xml29
-rw-r--r--sw/uiconfig/swform/toolbar/insertobjectbar.xml7
-rw-r--r--sw/uiconfig/swform/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/swform/toolbar/moreformcontrols.xml23
-rw-r--r--sw/uiconfig/swform/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/swform/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/swform/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/swform/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/swform/toolbar/standardbar.xml42
-rw-r--r--sw/uiconfig/swform/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/swform/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/swform/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/swform/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/swform/toolbar/toolbar.xml13
-rw-r--r--sw/uiconfig/swform/toolbar/viewerbar.xml18
-rw-r--r--sw/uiconfig/swreport/accelerator/de/default.xml114
-rw-r--r--sw/uiconfig/swreport/accelerator/en-GB/default.xml115
-rw-r--r--sw/uiconfig/swreport/accelerator/en-US/default.xml115
-rw-r--r--sw/uiconfig/swreport/accelerator/es/default.xml114
-rw-r--r--sw/uiconfig/swreport/accelerator/fr/default.xml114
-rw-r--r--sw/uiconfig/swreport/menubar/menubar.xml452
-rw-r--r--sw/uiconfig/swreport/statusbar/statusbar.xml14
-rw-r--r--sw/uiconfig/swreport/toolbar/alignmentbar.xml11
-rw-r--r--sw/uiconfig/swreport/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/swreport/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/swreport/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/swreport/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/swreport/toolbar/colorbar.xml15
-rw-r--r--sw/uiconfig/swreport/toolbar/drawbar.xml34
-rw-r--r--sw/uiconfig/swreport/toolbar/drawingobjectbar.xml40
-rw-r--r--sw/uiconfig/swreport/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/swreport/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/swreport/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/swreport/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/swreport/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/swreport/toolbar/formcontrols.xml26
-rw-r--r--sw/uiconfig/swreport/toolbar/formdesign.xml34
-rw-r--r--sw/uiconfig/swreport/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/swreport/toolbar/formsnavigationbar.xml32
-rw-r--r--sw/uiconfig/swreport/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/swreport/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/swreport/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/swreport/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/swreport/toolbar/graphicobjectbar.xml18
-rw-r--r--sw/uiconfig/swreport/toolbar/insertbar.xml29
-rw-r--r--sw/uiconfig/swreport/toolbar/insertobjectbar.xml7
-rw-r--r--sw/uiconfig/swreport/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/swreport/toolbar/moreformcontrols.xml23
-rw-r--r--sw/uiconfig/swreport/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/swreport/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/swreport/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/swreport/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/swreport/toolbar/standardbar.xml42
-rw-r--r--sw/uiconfig/swreport/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/swreport/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/swreport/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/swreport/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/swreport/toolbar/toolbar.xml13
-rw-r--r--sw/uiconfig/swreport/toolbar/viewerbar.xml18
-rw-r--r--sw/uiconfig/swriter/accelerator/de/default.xml114
-rw-r--r--sw/uiconfig/swriter/accelerator/en-GB/default.xml115
-rw-r--r--sw/uiconfig/swriter/accelerator/en-US/default.xml115
-rw-r--r--sw/uiconfig/swriter/accelerator/es/default.xml114
-rw-r--r--sw/uiconfig/swriter/accelerator/fr/default.xml114
-rw-r--r--sw/uiconfig/swriter/menubar/menubar.xml460
-rw-r--r--sw/uiconfig/swriter/statusbar/statusbar.xml15
-rw-r--r--sw/uiconfig/swriter/toolbar/alignmentbar.xml11
-rw-r--r--sw/uiconfig/swriter/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/swriter/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/swriter/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/swriter/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/swriter/toolbar/colorbar.xml15
-rw-r--r--sw/uiconfig/swriter/toolbar/drawbar.xml34
-rw-r--r--sw/uiconfig/swriter/toolbar/drawingobjectbar.xml40
-rw-r--r--sw/uiconfig/swriter/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/swriter/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/swriter/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/swriter/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/swriter/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/swriter/toolbar/formcontrols.xml26
-rw-r--r--sw/uiconfig/swriter/toolbar/formdesign.xml33
-rw-r--r--sw/uiconfig/swriter/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/swriter/toolbar/formsnavigationbar.xml33
-rw-r--r--sw/uiconfig/swriter/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/swriter/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/swriter/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/swriter/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/swriter/toolbar/graphicobjectbar.xml18
-rw-r--r--sw/uiconfig/swriter/toolbar/insertbar.xml31
-rw-r--r--sw/uiconfig/swriter/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/swriter/toolbar/moreformcontrols.xml23
-rw-r--r--sw/uiconfig/swriter/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/swriter/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/swriter/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/swriter/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/swriter/toolbar/standardbar.xml42
-rw-r--r--sw/uiconfig/swriter/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/swriter/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/swriter/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/swriter/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/swriter/toolbar/toolbar.xml13
-rw-r--r--sw/uiconfig/swriter/toolbar/viewerbar.xml18
-rw-r--r--sw/uiconfig/swxform/accelerator/de/default.xml114
-rw-r--r--sw/uiconfig/swxform/accelerator/en-GB/default.xml115
-rw-r--r--sw/uiconfig/swxform/accelerator/en-US/default.xml115
-rw-r--r--sw/uiconfig/swxform/accelerator/es/default.xml114
-rw-r--r--sw/uiconfig/swxform/accelerator/fr/default.xml114
-rw-r--r--sw/uiconfig/swxform/menubar/menubar.xml453
-rw-r--r--sw/uiconfig/swxform/statusbar/statusbar.xml15
-rw-r--r--sw/uiconfig/swxform/toolbar/alignmentbar.xml11
-rw-r--r--sw/uiconfig/swxform/toolbar/arrowshapes.xml34
-rw-r--r--sw/uiconfig/swxform/toolbar/basicshapes.xml29
-rw-r--r--sw/uiconfig/swxform/toolbar/bezierobjectbar.xml20
-rw-r--r--sw/uiconfig/swxform/toolbar/calloutshapes.xml11
-rw-r--r--sw/uiconfig/swxform/toolbar/colorbar.xml15
-rw-r--r--sw/uiconfig/swxform/toolbar/drawbar.xml34
-rw-r--r--sw/uiconfig/swxform/toolbar/drawingobjectbar.xml40
-rw-r--r--sw/uiconfig/swxform/toolbar/drawtextobjectbar.xml34
-rw-r--r--sw/uiconfig/swxform/toolbar/extrusionobjectbar.xml16
-rw-r--r--sw/uiconfig/swxform/toolbar/flowchartshapes.xml36
-rw-r--r--sw/uiconfig/swxform/toolbar/fontworkobjectbar.xml11
-rw-r--r--sw/uiconfig/swxform/toolbar/fontworkshapetype.xml38
-rw-r--r--sw/uiconfig/swxform/toolbar/formcontrols.xml23
-rw-r--r--sw/uiconfig/swxform/toolbar/formdesign.xml33
-rw-r--r--sw/uiconfig/swxform/toolbar/formsfilterbar.xml8
-rw-r--r--sw/uiconfig/swxform/toolbar/formsnavigationbar.xml33
-rw-r--r--sw/uiconfig/swxform/toolbar/formtextobjectbar.xml28
-rw-r--r--sw/uiconfig/swxform/toolbar/frameobjectbar.xml34
-rw-r--r--sw/uiconfig/swxform/toolbar/fullscreenbar.xml5
-rw-r--r--sw/uiconfig/swxform/toolbar/graffilterbar.xml17
-rw-r--r--sw/uiconfig/swxform/toolbar/graphicobjectbar.xml18
-rw-r--r--sw/uiconfig/swxform/toolbar/insertbar.xml29
-rw-r--r--sw/uiconfig/swxform/toolbar/insertobjectbar.xml7
-rw-r--r--sw/uiconfig/swxform/toolbar/mediaobjectbar.xml7
-rw-r--r--sw/uiconfig/swxform/toolbar/moreformcontrols.xml12
-rw-r--r--sw/uiconfig/swxform/toolbar/numobjectbar.xml23
-rw-r--r--sw/uiconfig/swxform/toolbar/oleobjectbar.xml30
-rw-r--r--sw/uiconfig/swxform/toolbar/optimizetablebar.xml8
-rw-r--r--sw/uiconfig/swxform/toolbar/previewobjectbar.xml24
-rw-r--r--sw/uiconfig/swxform/toolbar/standardbar.xml42
-rw-r--r--sw/uiconfig/swxform/toolbar/starshapes.xml17
-rw-r--r--sw/uiconfig/swxform/toolbar/symbolshapes.xml24
-rw-r--r--sw/uiconfig/swxform/toolbar/tableobjectbar.xml35
-rw-r--r--sw/uiconfig/swxform/toolbar/textobjectbar.xml44
-rw-r--r--sw/uiconfig/swxform/toolbar/toolbar.xml13
-rw-r--r--sw/uiconfig/swxform/toolbar/viewerbar.xml18
-rw-r--r--sw/util/hidother.hrc31
-rw-r--r--sw/util/hidother.src393
-rw-r--r--sw/util/makefile.mk374
-rw-r--r--sw/util/msword.map11
-rw-r--r--sw/util/sw.flt136
-rw-r--r--sw/util/sw.map8
-rw-r--r--sw/util/swd.map8
-rw-r--r--sw/util/swui.map6
-rw-r--r--sw/util/vbaswobj.map9
-rw-r--r--sw/xml/writer.xml1244
-rw-r--r--swext/makefile.pmk37
-rw-r--r--swext/mediawiki/build.xml235
-rw-r--r--swext/mediawiki/dialogs/EditSetting.xdl47
-rw-r--r--swext/mediawiki/dialogs/Module1.xba33
-rw-r--r--swext/mediawiki/dialogs/SendToMediaWiki.xdl54
-rw-r--r--swext/mediawiki/dialogs/Settings.xdl46
-rw-r--r--swext/mediawiki/dialogs/dialog.xlb33
-rw-r--r--swext/mediawiki/dialogs/script.xlb31
-rwxr-xr-xswext/mediawiki/help/component.txt3
-rw-r--r--swext/mediawiki/help/makefile.mk73
-rw-r--r--swext/mediawiki/help/wiki.xhp156
-rw-r--r--swext/mediawiki/help/wikiaccount.xhp56
-rw-r--r--swext/mediawiki/help/wikiformats.xhp72
-rw-r--r--swext/mediawiki/help/wikisend.xhp60
-rw-r--r--swext/mediawiki/help/wikisettings.xhp54
-rw-r--r--swext/mediawiki/makefile.mk63
-rw-r--r--swext/mediawiki/src/THIRDPARTYLICENSEREADME.html148
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/EditPageParser.java188
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/Helper.java1121
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/MainThreadDialogExecutor.java176
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/Settings.java347
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiArticle.java293
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiCancelException.java33
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiDialog.java325
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiEditSettingDialog.java429
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiEditorImpl.java476
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiOptionsEventHandlerImpl.java303
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiPropDialog.java388
-rw-r--r--swext/mediawiki/src/com/sun/star/wiki/WikiProtocolSocketFactory.java168
-rw-r--r--swext/mediawiki/src/description.xml19
-rw-r--r--swext/mediawiki/src/filter/mediawiki.ottbin0 -> 6304 bytes
-rwxr-xr-xswext/mediawiki/src/filter/odt2mediawiki.xsl1567
-rw-r--r--swext/mediawiki/src/makefile.mk70
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/Addons.xcu67
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/Custom/WikiExtension.xcu153
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/Custom/makefile.mk48
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/OptionsDialog.xcu50
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/Paths.xcu36
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/ProtocolHandler.xcu36
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/Office/makefile.mk46
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Filter.xcu56
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/Types.xcu44
-rw-r--r--swext/mediawiki/src/registry/data/org/openoffice/TypeDetection/makefile.mk46
-rw-r--r--swext/mediawiki/src/registry/schema/org/openoffice/Office/Custom/WikiExtension.xcs197
-rw-r--r--swext/mediawiki/src/registry/schema/org/openoffice/Office/Custom/makefile.mk46
-rw-r--r--swext/mediawiki/src/uno-extension-manifest.xml53
-rw-r--r--swext/prj/build.lst10
-rw-r--r--swext/prj/d.lst4
-rw-r--r--sysui/desktop/cleanversion/makefile.mk50
-rw-r--r--sysui/desktop/debian/control6
-rw-r--r--sysui/desktop/debian/makefile.mk96
-rw-r--r--sysui/desktop/debian/openoffice.org-debian-menus42
-rw-r--r--sysui/desktop/debian/postinst157
-rw-r--r--sysui/desktop/debian/postrm26
-rw-r--r--sysui/desktop/debian/prerm10
-rw-r--r--sysui/desktop/freedesktop/freedesktop-menus.spec335
-rw-r--r--sysui/desktop/freedesktop/makefile.mk59
-rw-r--r--sysui/desktop/icons/base.icnsbin0 -> 56259 bytes
-rw-r--r--sysui/desktop/icons/calc.icnsbin0 -> 51959 bytes
-rw-r--r--sysui/desktop/icons/configuration.icnsbin0 -> 50975 bytes
-rw-r--r--sysui/desktop/icons/draw.icnsbin0 -> 54777 bytes
-rw-r--r--sysui/desktop/icons/drawing-template.icnsbin0 -> 10935 bytes
-rw-r--r--sysui/desktop/icons/drawing.icnsbin0 -> 11290 bytes
-rw-r--r--sysui/desktop/icons/empty-document.icnsbin0 -> 50465 bytes
-rw-r--r--sysui/desktop/icons/empty-template.icnsbin0 -> 47059 bytes
-rwxr-xr-xsysui/desktop/icons/extension.icnsbin0 -> 39192 bytes
-rw-r--r--sysui/desktop/icons/formula.icnsbin0 -> 10380 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/base.pngbin0 -> 16745 bytes
-rw-r--r--sysui/desktop/icons/hicolor/128x128/apps/calc.pngbin0 -> 12968 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/draw.pngbin0 -> 16732 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/impress.pngbin0 -> 14614 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/main.pngbin0 -> 12442 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/math.pngbin0 -> 12934 bytes
-rw-r--r--sysui/desktop/icons/hicolor/128x128/apps/startcenter.pngbin0 -> 11073 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/apps/writer.pngbin0 -> 11861 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-database.pngbin0 -> 15854 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-drawing-template.pngbin0 -> 16120 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-drawing.pngbin0 -> 16063 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-formula.pngbin0 -> 12936 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-master-document.pngbin0 -> 11992 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-presentation-template.pngbin0 -> 13955 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-presentation.pngbin0 -> 13654 bytes
-rw-r--r--sysui/desktop/icons/hicolor/128x128/mimetypes/oasis-spreadsheet-template.pngbin0 -> 12792 bytes
-rw-r--r--sysui/desktop/icons/hicolor/128x128/mimetypes/oasis-spreadsheet.pngbin0 -> 12338 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-text-template.pngbin0 -> 12100 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-text.pngbin0 -> 11770 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/128x128/mimetypes/oasis-web-template.pngbin0 -> 17754 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/base.pngbin0 -> 3618 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/calc.pngbin0 -> 3629 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/draw.pngbin0 -> 3606 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/impress.pngbin0 -> 3608 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/math.pngbin0 -> 3607 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/printeradmin.pngbin0 -> 963 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/startcenter.pngbin0 -> 1043 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/apps/writer.pngbin0 -> 3586 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/database.pngbin0 -> 291 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/drawing-template.pngbin0 -> 348 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/drawing.pngbin0 -> 354 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/16x16/mimetypes/extension.pngbin0 -> 557 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/formula.pngbin0 -> 252 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/master-document.pngbin0 -> 310 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-database.pngbin0 -> 1009 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-drawing-template.pngbin0 -> 1094 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-drawing.pngbin0 -> 1082 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-formula.pngbin0 -> 1014 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-master-document.pngbin0 -> 929 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-presentation-template.pngbin0 -> 1025 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-presentation.pngbin0 -> 960 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-spreadsheet-template.pngbin0 -> 1018 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-spreadsheet.pngbin0 -> 961 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-text-template.pngbin0 -> 986 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-text.pngbin0 -> 923 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/oasis-web-template.pngbin0 -> 1023 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/presentation-template.pngbin0 -> 303 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/presentation.pngbin0 -> 302 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/spreadsheet-template.pngbin0 -> 287 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/spreadsheet.pngbin0 -> 271 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/text-template.pngbin0 -> 240 bytes
-rw-r--r--sysui/desktop/icons/hicolor/16x16/mimetypes/text.pngbin0 -> 245 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/base.pngbin0 -> 3153 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/calc.pngbin0 -> 2731 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/draw.pngbin0 -> 3147 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/impress.pngbin0 -> 2903 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/math.pngbin0 -> 2715 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/printeradmin.pngbin0 -> 2534 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/startcenter.pngbin0 -> 2375 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/apps/writer.pngbin0 -> 2485 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/database.pngbin0 -> 529 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/drawing-template.pngbin0 -> 1344 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/drawing.pngbin0 -> 1483 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/32x32/mimetypes/extension.pngbin0 -> 1301 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/formula.pngbin0 -> 1349 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/master-document.pngbin0 -> 1559 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-database.pngbin0 -> 2922 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-drawing-template.pngbin0 -> 2957 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-drawing.pngbin0 -> 2828 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-formula.pngbin0 -> 2622 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-master-document.pngbin0 -> 2338 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-presentation-template.pngbin0 -> 2812 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-presentation.pngbin0 -> 2623 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-spreadsheet-template.pngbin0 -> 2856 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-spreadsheet.pngbin0 -> 2618 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-text-template.pngbin0 -> 2575 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-text.pngbin0 -> 2311 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/oasis-web-template.pngbin0 -> 2908 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/presentation-template.pngbin0 -> 1403 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/presentation.pngbin0 -> 1515 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/spreadsheet-template.pngbin0 -> 1211 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/spreadsheet.pngbin0 -> 1301 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/text-template.pngbin0 -> 1211 bytes
-rw-r--r--sysui/desktop/icons/hicolor/32x32/mimetypes/text.pngbin0 -> 1406 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/base.pngbin0 -> 5196 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/calc.pngbin0 -> 4319 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/draw.pngbin0 -> 5207 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/impress.pngbin0 -> 4974 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/math.pngbin0 -> 4489 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/printeradmin.pngbin0 -> 4058 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/startcenter.pngbin0 -> 3615 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/apps/writer.pngbin0 -> 3938 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/database.pngbin0 -> 652 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/drawing-template.pngbin0 -> 1819 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/drawing.pngbin0 -> 1913 bytes
-rwxr-xr-xsysui/desktop/icons/hicolor/48x48/mimetypes/extension.pngbin0 -> 2269 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/formula.pngbin0 -> 1803 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/master-document.pngbin0 -> 2003 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-database.pngbin0 -> 5032 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-drawing-template.pngbin0 -> 4919 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-drawing.pngbin0 -> 4935 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-formula.pngbin0 -> 4422 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-master-document.pngbin0 -> 3808 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-presentation-template.pngbin0 -> 4650 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-presentation.pngbin0 -> 4611 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-spreadsheet-template.pngbin0 -> 4409 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-spreadsheet.pngbin0 -> 4211 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-text-template.pngbin0 -> 4023 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-text.pngbin0 -> 3785 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/oasis-web-template.pngbin0 -> 4854 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/presentation-template.pngbin0 -> 2044 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/presentation.pngbin0 -> 2043 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/spreadsheet-template.pngbin0 -> 1599 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/spreadsheet.pngbin0 -> 1684 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/text-template.pngbin0 -> 1687 bytes
-rw-r--r--sysui/desktop/icons/hicolor/48x48/mimetypes/text.pngbin0 -> 1764 bytes
-rw-r--r--sysui/desktop/icons/impress.icnsbin0 -> 53113 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/base.pngbin0 -> 361 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/calc.pngbin0 -> 383 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/draw.pngbin0 -> 378 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/impress.pngbin0 -> 373 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/math.pngbin0 -> 392 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/printeradmin.pngbin0 -> 395 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/startcenter.pngbin0 -> 361 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/apps/writer.pngbin0 -> 380 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/database.pngbin0 -> 291 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/drawing-template.pngbin0 -> 348 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/drawing.pngbin0 -> 354 bytes
-rwxr-xr-xsysui/desktop/icons/locolor/16x16/mimetypes/extension.pngbin0 -> 309 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/formula.pngbin0 -> 252 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/master-document.pngbin0 -> 310 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-database.pngbin0 -> 414 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-drawing-template.pngbin0 -> 394 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-drawing.pngbin0 -> 419 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-formula.pngbin0 -> 423 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-master-document.pngbin0 -> 416 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-presentation-template.pngbin0 -> 417 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-presentation.pngbin0 -> 416 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-spreadsheet-template.pngbin0 -> 396 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-spreadsheet.pngbin0 -> 395 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-text-template.pngbin0 -> 393 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-text.pngbin0 -> 397 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/oasis-web-template.pngbin0 -> 437 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/presentation-template.pngbin0 -> 303 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/presentation.pngbin0 -> 302 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/spreadsheet-template.pngbin0 -> 287 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/spreadsheet.pngbin0 -> 271 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/text-template.pngbin0 -> 240 bytes
-rw-r--r--sysui/desktop/icons/locolor/16x16/mimetypes/text.pngbin0 -> 245 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/base.pngbin0 -> 611 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/calc.pngbin0 -> 629 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/draw.pngbin0 -> 639 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/impress.pngbin0 -> 606 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/math.pngbin0 -> 616 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/printeradmin.pngbin0 -> 618 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/startcenter.pngbin0 -> 611 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/apps/writer.pngbin0 -> 541 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/database.pngbin0 -> 529 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/drawing-template.pngbin0 -> 1344 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/drawing.pngbin0 -> 1483 bytes
-rwxr-xr-xsysui/desktop/icons/locolor/32x32/mimetypes/extension.pngbin0 -> 504 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/formula.pngbin0 -> 1349 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/master-document.pngbin0 -> 1559 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-database.pngbin0 -> 780 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-drawing-template.pngbin0 -> 667 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-drawing.pngbin0 -> 779 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-formula.pngbin0 -> 742 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-master-document.pngbin0 -> 758 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-presentation-template.pngbin0 -> 678 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-presentation.pngbin0 -> 752 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-spreadsheet-template.pngbin0 -> 653 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-spreadsheet.pngbin0 -> 774 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-text-template.pngbin0 -> 624 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-text.pngbin0 -> 702 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/oasis-web-template.pngbin0 -> 801 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/presentation-template.pngbin0 -> 1403 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/presentation.pngbin0 -> 1515 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/spreadsheet-template.pngbin0 -> 1211 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/spreadsheet.pngbin0 -> 1301 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/text-template.pngbin0 -> 1211 bytes
-rw-r--r--sysui/desktop/icons/locolor/32x32/mimetypes/text.pngbin0 -> 1406 bytes
-rw-r--r--sysui/desktop/icons/macro.icnsbin0 -> 53951 bytes
-rw-r--r--sysui/desktop/icons/main.icnsbin0 -> 45712 bytes
-rw-r--r--sysui/desktop/icons/makefile.mk169
-rw-r--r--sysui/desktop/icons/master-document.icnsbin0 -> 11003 bytes
-rw-r--r--sysui/desktop/icons/math.icnsbin0 -> 52282 bytes
-rw-r--r--sysui/desktop/icons/oasis-chart.icnsbin0 -> 60133 bytes
-rw-r--r--sysui/desktop/icons/oasis-database.icnsbin0 -> 53983 bytes
-rw-r--r--sysui/desktop/icons/oasis-drawing-template.icnsbin0 -> 53400 bytes
-rw-r--r--sysui/desktop/icons/oasis-drawing.icnsbin0 -> 52603 bytes
-rw-r--r--sysui/desktop/icons/oasis-formula.icnsbin0 -> 50335 bytes
-rw-r--r--sysui/desktop/icons/oasis-master-document.icnsbin0 -> 48904 bytes
-rw-r--r--sysui/desktop/icons/oasis-presentation-template.icnsbin0 -> 51890 bytes
-rw-r--r--sysui/desktop/icons/oasis-presentation.icnsbin0 -> 51073 bytes
-rw-r--r--sysui/desktop/icons/oasis-spreadsheet-template.icnsbin0 -> 51919 bytes
-rw-r--r--sysui/desktop/icons/oasis-spreadsheet.icnsbin0 -> 50953 bytes
-rw-r--r--sysui/desktop/icons/oasis-text-template.icnsbin0 -> 49196 bytes
-rw-r--r--sysui/desktop/icons/oasis-text.icnsbin0 -> 47545 bytes
-rw-r--r--sysui/desktop/icons/oasis-web-template.icnsbin0 -> 55853 bytes
-rw-r--r--sysui/desktop/icons/ooo-base-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-base-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-calc-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-calc-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-calc-tem.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-chart-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-configuration.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-draw-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-draw-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-draw-tem.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-empty-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-empty-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-image-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-impress-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-impress-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-impress-tem.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-macro-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-main-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-master-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-math-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-math-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-open.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-printer.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/ooo-web-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-writer-app.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-writer-doc.icobin0 -> 92854 bytes
-rw-r--r--sysui/desktop/icons/ooo-writer-tem.icobin0 -> 92854 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-base-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-calc-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-calc-tem.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-chart-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-draw-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-draw-tem.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-impress-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-impress-tem.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-master-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-math-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-writer-doc.icobin0 -> 10638 bytes
-rwxr-xr-xsysui/desktop/icons/ooo11-writer-tem.icobin0 -> 10638 bytes
-rw-r--r--sysui/desktop/icons/ooo3_base_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_base_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_calc_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_calc_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_calc_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_chart_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_draw_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_draw_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_draw_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_empty_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_empty_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_global_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_html_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_impress_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_impress_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_impress_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_macro_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_main_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_math_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_math_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_writer_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_writer_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/ooo3_writer_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/open.icnsbin0 -> 50105 bytes
-rw-r--r--sysui/desktop/icons/oxt-extension.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/presentation-template.icnsbin0 -> 10690 bytes
-rw-r--r--sysui/desktop/icons/presentation.icnsbin0 -> 10947 bytes
-rw-r--r--sysui/desktop/icons/printer.icnsbin0 -> 50434 bytes
-rw-r--r--sysui/desktop/icons/so7-base-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-calc-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-calc-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-chart-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-draw-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-draw-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-impress-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-impress-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-master-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-math-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-writer-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so7-writer-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-base-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-base-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-calc-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-calc-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-calc-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-chart-doc.icobin0 -> 10134 bytes
-rw-r--r--sysui/desktop/icons/so8-configuration.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-draw-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-draw-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-draw-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-empty-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-empty-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-image-doc.icobin0 -> 10134 bytes
-rw-r--r--sysui/desktop/icons/so8-impress-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-impress-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-impress-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-macro-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-main-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-master-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-math-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-math-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-open.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-printer.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-web-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-writer-app.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-writer-doc.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so8-writer-tem.icobin0 -> 25214 bytes
-rw-r--r--sysui/desktop/icons/so9_base_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_base_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_calc_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_calc_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_calc_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_chart_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_draw_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_draw_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_draw_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_empty_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_empty_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_global_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_html_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_impress_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_impress_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_impress_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_macro_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_main_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_math_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_math_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_writer_app.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_writer_doc.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/so9_writer_tem.icobin0 -> 295606 bytes
-rw-r--r--sysui/desktop/icons/spreadsheet-template.icnsbin0 -> 10085 bytes
-rw-r--r--sysui/desktop/icons/spreadsheet.icnsbin0 -> 10457 bytes
-rw-r--r--sysui/desktop/icons/text-template.icnsbin0 -> 10095 bytes
-rw-r--r--sysui/desktop/icons/text.icnsbin0 -> 10401 bytes
-rw-r--r--sysui/desktop/icons/writer.icnsbin0 -> 49850 bytes
-rw-r--r--sysui/desktop/macosx/Info.plist1408
-rw-r--r--sysui/desktop/macosx/delzip0
-rw-r--r--sysui/desktop/macosx/gen_strings.pl116
-rw-r--r--sysui/desktop/macosx/list_icons.pl84
-rw-r--r--sysui/desktop/macosx/makefile.mk94
-rw-r--r--sysui/desktop/mandriva/makefile.mk59
-rw-r--r--sysui/desktop/mandriva/mandriva-menus.spec333
-rw-r--r--sysui/desktop/menus/base.desktop11
-rw-r--r--sysui/desktop/menus/calc.desktop11
-rw-r--r--sysui/desktop/menus/draw.desktop11
-rw-r--r--sysui/desktop/menus/impress.desktop11
-rw-r--r--sysui/desktop/menus/javafilter.desktop9
-rw-r--r--sysui/desktop/menus/math.desktop11
-rw-r--r--sysui/desktop/menus/printeradmin.desktop8
-rw-r--r--sysui/desktop/menus/qstart.desktop9
-rw-r--r--sysui/desktop/menus/startcenter.desktop11
-rw-r--r--sysui/desktop/menus/writer.desktop11
-rw-r--r--sysui/desktop/mimetypes/drawing-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/drawing-template.keys10
-rw-r--r--sysui/desktop/mimetypes/drawing.desktop9
-rw-r--r--sysui/desktop/mimetypes/drawing.keys10
-rw-r--r--sysui/desktop/mimetypes/extension.desktop9
-rw-r--r--sysui/desktop/mimetypes/extension.keys10
-rw-r--r--sysui/desktop/mimetypes/formula.desktop9
-rw-r--r--sysui/desktop/mimetypes/formula.keys10
-rw-r--r--sysui/desktop/mimetypes/master-document.desktop9
-rw-r--r--sysui/desktop/mimetypes/master-document.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet-binary-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet-binary-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-excel-sheet.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-excel-template-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-excel-template-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-presentation-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-presentation-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-presentation.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-presentation.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-template-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-powerpoint-template-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-word-document-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-word-document-12.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-word-document.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-word-document.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-word-document2.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-word-document2.keys10
-rw-r--r--sysui/desktop/mimetypes/ms-word-template-12.desktop9
-rw-r--r--sysui/desktop/mimetypes/ms-word-template-12.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-database.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-database.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-drawing-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-drawing-template.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-drawing.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-drawing.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-formula.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-formula.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-master-document.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-master-document.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-presentation-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-presentation-template.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-presentation.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-presentation.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-spreadsheet-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-spreadsheet-template.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-spreadsheet.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-spreadsheet.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-text-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-text-template.keys9
-rw-r--r--sysui/desktop/mimetypes/oasis-text.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-text.keys10
-rw-r--r--sysui/desktop/mimetypes/oasis-web-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/oasis-web-template.keys10
-rw-r--r--sysui/desktop/mimetypes/openoffice.applications9
-rw-r--r--sysui/desktop/mimetypes/openoffice.mime83
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-presentationml-presentation.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-presentationml-presentation.keys10
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-presentationml-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-presentationml-template.keys10
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-spreadsheetml-sheet.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-spreadsheetml-sheet.keys10
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-spreadsheetml-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-spreadsheetml-template.keys10
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-wordprocessingml-document.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-wordprocessingml-document.keys10
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-wordprocessingml-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/openxmlformats-officedocument-wordprocessingml-template.keys10
-rw-r--r--sysui/desktop/mimetypes/presentation-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/presentation-template.keys10
-rw-r--r--sysui/desktop/mimetypes/presentation.desktop9
-rw-r--r--sysui/desktop/mimetypes/presentation.keys10
-rw-r--r--sysui/desktop/mimetypes/spreadsheet-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/spreadsheet-template.keys10
-rw-r--r--sysui/desktop/mimetypes/spreadsheet.desktop9
-rw-r--r--sysui/desktop/mimetypes/spreadsheet.keys10
-rw-r--r--sysui/desktop/mimetypes/text-template.desktop9
-rw-r--r--sysui/desktop/mimetypes/text-template.keys9
-rw-r--r--sysui/desktop/mimetypes/text.desktop9
-rw-r--r--sysui/desktop/mimetypes/text.keys10
-rw-r--r--sysui/desktop/os2/makefile.mk123
-rw-r--r--sysui/desktop/os2/ooo-base-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-base-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-calc-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-calc-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-calc-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-chart-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-configuration.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-draw-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-draw-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-draw-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-empty-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-empty-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-image-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-impress-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-impress-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-impress-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-macro-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-main-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-master-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-math-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-math-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-open.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-printer.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-web-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-writer-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo-writer-doc.icobin0 -> 11644 bytes
-rw-r--r--sysui/desktop/os2/ooo-writer-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-base-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-calc-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-calc-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-chart-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-draw-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-draw-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-impress-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-impress-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-master-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-math-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-writer-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/ooo11-writer-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-base-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-calc-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-calc-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-chart-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-draw-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-draw-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-impress-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-impress-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-master-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-math-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-writer-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so7-writer-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-base-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-base-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-calc-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-calc-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-calc-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-chart-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-configuration.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-draw-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-draw-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-draw-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-empty-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-empty-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-image-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-impress-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-impress-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-impress-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-macro-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-main-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-master-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-math-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-math-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-open.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-printer.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-web-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-writer-app.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-writer-doc.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/os2/so8-writer-tem.icobin0 -> 5604 bytes
-rw-r--r--sysui/desktop/productversion.mk78
-rw-r--r--sysui/desktop/redhat/makefile.mk59
-rw-r--r--sysui/desktop/redhat/redhat-menus.spec301
-rw-r--r--sysui/desktop/share/add_specfile_triggers.sed4
-rw-r--r--sysui/desktop/share/brand.pl127
-rw-r--r--sysui/desktop/share/create_mime_xml.pl89
-rw-r--r--sysui/desktop/share/create_tree.sh111
-rw-r--r--sysui/desktop/share/documents.ulf107
-rw-r--r--sysui/desktop/share/launcher_comment.ulf21
-rw-r--r--sysui/desktop/share/launcher_genericname.ulf23
-rw-r--r--sysui/desktop/share/launcher_name.ulf3
-rw-r--r--sysui/desktop/share/makefile.mk263
-rw-r--r--sysui/desktop/share/openoffice.sh2
-rw-r--r--sysui/desktop/share/printeradmin.sh3
-rw-r--r--sysui/desktop/share/translate.pl145
-rw-r--r--sysui/desktop/slackware/makefile.mk116
-rw-r--r--sysui/desktop/slackware/slack-desc13
-rw-r--r--sysui/desktop/slackware/update-script8
-rw-r--r--sysui/desktop/solaris/copyright2
-rw-r--r--sysui/desktop/solaris/depend7
-rw-r--r--sysui/desktop/solaris/mailcap78
-rw-r--r--sysui/desktop/solaris/makefile.mk130
-rw-r--r--sysui/desktop/solaris/mime.types59
-rw-r--r--sysui/desktop/solaris/pkginfo16
-rw-r--r--sysui/desktop/solaris/postinstall23
-rw-r--r--sysui/desktop/solaris/postremove16
-rw-r--r--sysui/desktop/solaris/prototype66
-rw-r--r--sysui/desktop/suse/makefile.mk59
-rw-r--r--sysui/desktop/suse/suse-menus.spec305
-rw-r--r--sysui/desktop/tg_rpm.mk45
-rw-r--r--sysui/desktop/util/makefile.mk66
-rw-r--r--sysui/desktop/util/pkgdiff.pl119
-rw-r--r--sysui/prj/build.lst19
-rw-r--r--sysui/prj/d.lst25
-rw-r--r--sysui/source/win32/QuickStart/OOQuickStart.rc130
-rw-r--r--sysui/source/win32/QuickStart/QuickStart.cpp423
-rw-r--r--sysui/source/win32/QuickStart/QuickStart.h12
-rw-r--r--sysui/source/win32/QuickStart/StdAfx.h39
-rw-r--r--sysui/source/win32/QuickStart/makefile.mk74
-rw-r--r--sysui/source/win32/QuickStart/resource.h32
-rw-r--r--sysui/source/win32/QuickStart/so/QuickStart.rc130
-rw-r--r--sysui/source/win32/QuickStart/so/makefile.mk73
-rw-r--r--sysui/source/win32/misc/AutoBuffer.cxx163
-rw-r--r--sysui/source/win32/misc/AutoBuffer.hxx85
-rw-r--r--sysui/source/win32/misc/WinImplHelper.cxx358
-rw-r--r--sysui/source/win32/misc/WinImplHelper.hxx90
-rw-r--r--sysui/source/win32/misc/makefile.mk52
-rw-r--r--sysui/source/win32/misc/resourceprovider.cxx229
-rw-r--r--sysui/source/win32/misc/resourceprovider.hxx60
-rw-r--r--sysui/util/checksize.pl87
-rw-r--r--sysui/util/exports.dxp3
-rw-r--r--sysui/util/makefile.mk44
-rwxr-xr-xtestautomation/chart2/optional/ch2_chart_data_dlg_impress.bas56
-rwxr-xr-xtestautomation/chart2/optional/ch2_flexible_source_range_selection.bas69
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_ods_to_ods.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_ods_to_ots.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_ods_to_sdc.bas67
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_ods_to_sxc.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_ods_to_xls.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_sxc_to_ods.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_losa_sxc_to_sdc.bas68
-rwxr-xr-xtestautomation/chart2/optional/ch2_lvl1.bas57
-rwxr-xr-xtestautomation/chart2/optional/ch2_lvl1_wizard.bas66
-rwxr-xr-xtestautomation/chart2/optional/ch2_xml_format.bas55
-rw-r--r--testautomation/chart2/optional/includes/ch2_datadialogue.inc343
-rw-r--r--testautomation/chart2/optional/includes/ch2_flexible_source_range_selection.inc797
-rw-r--r--testautomation/chart2/optional/includes/ch2_flexible_source_range_selection01.inc794
-rw-r--r--testautomation/chart2/optional/includes/ch2_lvl1a.inc260
-rw-r--r--testautomation/chart2/optional/includes/loadsave/ch2_losa.inc214
-rw-r--r--testautomation/chart2/optional/includes/loadsave/ch2_xml_format.inc243
-rw-r--r--testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard.inc1092
-rw-r--r--testautomation/chart2/optional/includes/wizard/ch2_lvl1_wizard2.inc124
-rw-r--r--testautomation/chart2/optional/input/BubbleChartData.odsbin0 -> 8000 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_areas_normal.odsbin0 -> 19980 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_areas_percent.odsbin0 -> 22854 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_areas_stacked.odsbin0 -> 20547 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_bars_normal.odsbin0 -> 22851 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_bars_percent.odsbin0 -> 23088 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_bars_stacked.odsbin0 -> 23782 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_columns_lines_and_columns.odsbin0 -> 24097 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_columns_lines_and_stacked_columns.odsbin0 -> 25212 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_columns_normal.odsbin0 -> 23151 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_columns_percent.odsbin0 -> 23058 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/2d_columns_stacked.odsbin0 -> 24970 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/3d_lines_deep.odsbin0 -> 35335 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/3d_pies_normal.odsbin0 -> 39008 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/areas_deep.odsbin0 -> 52064 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/areas_percent.odsbin0 -> 38468 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/areas_stacked.odsbin0 -> 42860 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_deep.odsbin0 -> 61483 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_cones.odsbin0 -> 66269 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_cones_deep.odsbin0 -> 110686 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_cones_percent.odsbin0 -> 110617 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_pyramids.odsbin0 -> 67118 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_pyramids_deep.odsbin0 -> 98383 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_pyramids_percent.odsbin0 -> 110239 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_pyramids_stacked.odsbin0 -> 85911 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_horizontal_stacked_cones.odsbin0 -> 88184 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_normal.odsbin0 -> 71033 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_percent.odsbin0 -> 66755 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_stacked.odsbin0 -> 60722 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_tube.odsbin0 -> 41905 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_tubes_deep.odsbin0 -> 59620 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_tubes_percent.odsbin0 -> 62875 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/bars_tubes_stacked.odsbin0 -> 50291 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cones.odsbin0 -> 50195 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cones_deep.odsbin0 -> 84795 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cones_percent.odsbin0 -> 90080 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cones_stacked.odsbin0 -> 88072 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cylinder.odsbin0 -> 53406 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cylinder_deep.odsbin0 -> 67403 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cylinder_percent.odsbin0 -> 86518 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_cylinder_stacked.odsbin0 -> 79786 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_deep.odsbin0 -> 50144 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_normal.odsbin0 -> 59819 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_percent.odsbin0 -> 60109 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_pyramids.odsbin0 -> 71749 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_pyramids_deep.odsbin0 -> 96324 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_pyramids_percent.odsbin0 -> 103938 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_pyramids_stacked.odsbin0 -> 104487 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/columns_stacked.odsbin0 -> 65360 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_b-spline.odsbin0 -> 25651 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_b-spline_with_symbols.odsbin0 -> 30305 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_cubic_spline.odsbin0 -> 25841 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_cubic_spline_with_symbols.odsbin0 -> 33585 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_normal.odsbin0 -> 19673 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_percent.odsbin0 -> 19326 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_percent_with_symbols.odsbin0 -> 23242 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_stacked.odsbin0 -> 20462 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_stacked_with_symbols.odsbin0 -> 24066 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/lines_symbols.odsbin0 -> 23002 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_normal.odsbin0 -> 19926 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_percent.odsbin0 -> 20031 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_percent_with_symbols.odsbin0 -> 24009 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_stacked.odsbin0 -> 20018 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_stacked_with_symbols.odsbin0 -> 24083 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/net_symbols.odsbin0 -> 23820 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/pies_normal.odsbin0 -> 20506 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/pies_offset1.odsbin0 -> 20195 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/pies_offset2.odsbin0 -> 20524 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/pies_rings.odsbin0 -> 27925 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/stockchart_type1.odsbin0 -> 19889 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/stockchart_type2.odsbin0 -> 21315 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/stockchart_type3.odsbin0 -> 22123 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/stockchart_type4.odsbin0 -> 23348 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_b-spline.odsbin0 -> 24219 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_b-spline_with_symbols.odsbin0 -> 27576 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_cubic_spline.odsbin0 -> 24489 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_cubic_spline_with_symbols.odsbin0 -> 27677 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_lines_only.odsbin0 -> 19266 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_lines_with_symbols.odsbin0 -> 22498 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/ods/xy_chart_symbols_only.odsbin0 -> 21517 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/randomData.odsbin0 -> 7713 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_areas_normal.sxcbin0 -> 11879 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_areas_percent.sxcbin0 -> 12137 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_areas_stacked.sxcbin0 -> 12547 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_bars_normal.sxcbin0 -> 13620 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_bars_percent.sxcbin0 -> 13373 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_bars_stacked.sxcbin0 -> 12325 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_columns_lines_and_columns.sxcbin0 -> 14033 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_columns_lines_and_stacked_columns.sxcbin0 -> 14458 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_columns_normal.sxcbin0 -> 13793 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_columns_percent.sxcbin0 -> 13675 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/2d_columns_stacked.sxcbin0 -> 14365 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/3d_lines_deep.sxcbin0 -> 18632 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/3d_pies_normal.sxcbin0 -> 20396 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/areas_deep.sxcbin0 -> 32742 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/areas_percent.sxcbin0 -> 21962 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/areas_stacked.sxcbin0 -> 23672 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_deep.sxcbin0 -> 39140 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_cones.sxcbin0 -> 34799 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_cones_deep.sxcbin0 -> 51450 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_cones_percent.sxcbin0 -> 48313 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_pyramids.sxcbin0 -> 32902 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_pyramids_deep.sxcbin0 -> 48143 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_pyramids_percent.sxcbin0 -> 47134 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_pyramids_stacked.sxcbin0 -> 40866 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_horizontal_stacked_cones.sxcbin0 -> 41810 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_normal.sxcbin0 -> 34087 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_percent.sxcbin0 -> 35015 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_stacked.sxcbin0 -> 30564 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_tube.sxcbin0 -> 28453 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_tubes_deep.sxcbin0 -> 36522 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_tubes_percent.sxcbin0 -> 39245 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/bars_tubes_stacked.sxcbin0 -> 32849 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cones.sxcbin0 -> 27681 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cones_deep.sxcbin0 -> 41842 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cones_percent.sxcbin0 -> 44938 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cones_stacked.sxcbin0 -> 40843 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cylinder.sxcbin0 -> 28562 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cylinder_deep.sxcbin0 -> 34619 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cylinder_percent.sxcbin0 -> 42982 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_cylinder_stacked.sxcbin0 -> 44840 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_deep.sxcbin0 -> 32156 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_normal.sxcbin0 -> 37062 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_percent.sxcbin0 -> 37149 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_pyramids.sxcbin0 -> 38666 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_pyramids_deep.sxcbin0 -> 53341 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_pyramids_percent.sxcbin0 -> 55649 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_pyramids_stacked.sxcbin0 -> 53051 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/columns_stacked.sxcbin0 -> 32245 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_b-spline.sxcbin0 -> 19509 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_b-spline_with_symbols.sxcbin0 -> 22013 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_cubic_spline.sxcbin0 -> 19650 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_cubic_spline_with_symbols.sxcbin0 -> 22066 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_normal.sxcbin0 -> 17027 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_percent.sxcbin0 -> 16447 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_percent_with_symbols.sxcbin0 -> 18472 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_stacked.sxcbin0 -> 17579 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_stacked_with_symbols.sxcbin0 -> 19077 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/lines_symbols.sxcbin0 -> 18275 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_normal.sxcbin0 -> 16864 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_percent.sxcbin0 -> 16992 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_percent_with_symbols.sxcbin0 -> 19009 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_stacked.sxcbin0 -> 16947 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_stacked_with_symbols.sxcbin0 -> 19043 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/net_symbols.sxcbin0 -> 18861 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/pies_normal.sxcbin0 -> 25337 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/pies_offset1.sxcbin0 -> 16978 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/pies_offset2.sxcbin0 -> 17217 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/pies_rings.sxcbin0 -> 20869 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/stockchart_type1.sxcbin0 -> 16651 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/stockchart_type2.sxcbin0 -> 17371 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/stockchart_type3.sxcbin0 -> 17883 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/stockchart_type4.sxcbin0 -> 18534 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_b-spline.sxcbin0 -> 19090 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_b-spline_with_symbols.sxcbin0 -> 20759 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_cubic_spline.sxcbin0 -> 19391 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_cubic_spline_with_symbols.sxcbin0 -> 20911 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_lines_only.sxcbin0 -> 16609 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_lines_with_symbols.sxcbin0 -> 18325 bytes
-rwxr-xr-xtestautomation/chart2/optional/input/sxc/xy_chart_symbols_only.sxcbin0 -> 17630 bytes
-rw-r--r--testautomation/chart2/required/ch2_updt_calc.bas152
-rw-r--r--testautomation/chart2/required/includes/ch2_file.inc404
-rw-r--r--testautomation/chart2/required/includes/ch2_format.inc1407
-rw-r--r--testautomation/chart2/required/includes/ch2_format1.inc829
-rw-r--r--testautomation/chart2/required/includes/ch2_insert.inc326
-rw-r--r--testautomation/chart2/required/includes/ch2_insert_ctl.inc488
-rw-r--r--testautomation/chart2/required/includes/ch2_menu.inc214
-rw-r--r--testautomation/chart2/required/includes/ch2_ole.inc137
-rw-r--r--testautomation/chart2/required/includes/ch2_toolbars.inc168
-rw-r--r--testautomation/chart2/required/includes/ch2_view.inc182
-rw-r--r--testautomation/chart2/required/includes/ch2_window.inc63
-rw-r--r--testautomation/chart2/required/includes/ch2_wizard.inc86
-rwxr-xr-xtestautomation/chart2/required/input/basetable.sdcbin0 -> 28672 bytes
-rwxr-xr-xtestautomation/chart2/required/input/basetable.sxcbin0 -> 5500 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange01.odsbin0 -> 98073 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange02.odsbin0 -> 6849 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange03.odsbin0 -> 32530 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange04.odsbin0 -> 20799 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange05.odtbin0 -> 7305 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange06.odtbin0 -> 7303 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange07.odtbin0 -> 13104 bytes
-rwxr-xr-xtestautomation/chart2/required/input/ch_flexrange08.odtbin0 -> 13280 bytes
-rwxr-xr-xtestautomation/chart2/required/input/spreadsheetFile.odsbin0 -> 6337 bytes
-rwxr-xr-xtestautomation/chart2/required/input/verySimpleChart.odsbin0 -> 10429 bytes
-rw-r--r--testautomation/chart2/tools/ch_tools_axes.inc193
-rw-r--r--testautomation/chart2/tools/ch_tools_chart_type.inc641
-rw-r--r--testautomation/chart2/tools/ch_tools_common.inc203
-rw-r--r--testautomation/chart2/tools/ch_tools_data_labels.inc369
-rw-r--r--testautomation/chart2/tools/ch_tools_grids.inc202
-rw-r--r--testautomation/chart2/tools/ch_tools_legend.inc241
-rw-r--r--testautomation/chart2/tools/ch_tools_select.inc136
-rw-r--r--testautomation/chart2/tools/ch_tools_statistics.inc429
-rw-r--r--testautomation/chart2/tools/ch_tools_tab_borders_lines.inc144
-rw-r--r--testautomation/chart2/tools/ch_tools_tab_pages.inc147
-rw-r--r--testautomation/chart2/tools/ch_tools_titles.inc189
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_Clipboard.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_General.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_Grid.bas55
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_PropertyBrowser.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_Several.bas56
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_Spreadsheet.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_TextControl.bas55
-rwxr-xr-xtestautomation/dbaccess/optional/dba_ctrl_Wizards.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_ADOAccess.bas56
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_AdabasD.bas56
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_Addressbook.bas67
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_Dbase.bas55
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_JDBCMySQL.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_Spreadsheet.bas55
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_Text.bas80
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_dBase_functions.bas66
-rwxr-xr-xtestautomation/dbaccess/optional/dba_db_hsqldb.bas56
-rwxr-xr-xtestautomation/dbaccess/optional/dba_frm_FormFilter.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_frm_Forms.bas58
-rwxr-xr-xtestautomation/dbaccess/optional/dba_misc_Macros.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_misc_RegisterDatabase.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_DateTime.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_ExecuteReport.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_Formating.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_FunctionWizard.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_Grouping.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_PageNumber.bas61
-rwxr-xr-xtestautomation/dbaccess/optional/dba_rpt_PropertyBrowser.bas59
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_CopyTableWizard.bas54
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_DatabaseWizards.bas53
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_FormWizard.bas53
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_QueryWizard.bas53
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_ReportWizard.bas56
-rwxr-xr-xtestautomation/dbaccess/optional/dba_wiz_TableWizard.bas53
-rwxr-xr-xtestautomation/dbaccess/optional/dba_xf_Submission.bas53
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Clipboard.inc492
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_General.inc1063
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Grid.inc521
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_PropertyBrowser.inc510
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Several1.inc648
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Several2.inc927
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Spreadsheet.inc387
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_TextControl.inc290
-rw-r--r--testautomation/dbaccess/optional/includes/ctrl_Wizards.inc859
-rw-r--r--testautomation/dbaccess/optional/includes/db_ADOAccess.inc175
-rw-r--r--testautomation/dbaccess/optional/includes/db_AdabasD.inc156
-rw-r--r--testautomation/dbaccess/optional/includes/db_Dbase.inc118
-rw-r--r--testautomation/dbaccess/optional/includes/db_DbaseFunction.inc886
-rw-r--r--testautomation/dbaccess/optional/includes/db_IndexDesign.inc92
-rw-r--r--testautomation/dbaccess/optional/includes/db_JDBCMySQL.inc194
-rw-r--r--testautomation/dbaccess/optional/includes/db_Mozilla.inc136
-rw-r--r--testautomation/dbaccess/optional/includes/db_ODBCMySQL.inc192
-rw-r--r--testautomation/dbaccess/optional/includes/db_Query.inc975
-rw-r--r--testautomation/dbaccess/optional/includes/db_Relations.inc431
-rw-r--r--testautomation/dbaccess/optional/includes/db_Spreadsheet.inc61
-rw-r--r--testautomation/dbaccess/optional/includes/db_Text.inc148
-rw-r--r--testautomation/dbaccess/optional/includes/db_Windows.inc81
-rw-r--r--testautomation/dbaccess/optional/includes/db_hsqldb.inc286
-rw-r--r--testautomation/dbaccess/optional/includes/frm_FormFilter.inc222
-rw-r--r--testautomation/dbaccess/optional/includes/frm_Forms.inc1063
-rw-r--r--testautomation/dbaccess/optional/includes/misc_Macros.inc115
-rw-r--r--testautomation/dbaccess/optional/includes/misc_RegisterDatabase.inc63
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_DateTime.inc298
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_ExecuteReport.inc234
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_Formating.inc201
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_FunctionWizard.inc117
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_Grouping.inc156
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_PageNumber.inc257
-rw-r--r--testautomation/dbaccess/optional/includes/rpt_PropertyBrowser.inc76
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_CopyTableWizard.inc833
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_DatabaseWizard.inc308
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_FormWizard.inc254
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_QueryWizard.inc233
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_ReportWizard.inc123
-rw-r--r--testautomation/dbaccess/optional/includes/wiz_TableWizard.inc499
-rw-r--r--testautomation/dbaccess/optional/includes/xf_Submission.inc186
-rwxr-xr-xtestautomation/dbaccess/optional/input/TT_All_Controls.odtbin0 -> 12522 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/TT_Form_Filter.odtbin0 -> 8174 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/ado_datasource/testdb.mdbbin0 -> 286720 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/dbase_datasource/TT_Forms.dbfbin0 -> 903 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/dbase_datasource/TT_Func1.dbfbin0 -> 116 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/dbase_datasource/TT_Query1.dbfbin0 -> 1180 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/dbase_datasource/TT_Query1.dbtbin0 -> 5046204 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/hsql_datasource/TT_hsqldb.odbbin0 -> 16127 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/hsql_datasource/TT_hsqldb_2.0.0.odbbin0 -> 2501 bytes
-rw-r--r--testautomation/dbaccess/optional/input/hsql_datasource/hsql_macros_in_subdocument.odbbin0 -> 11948 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/spreadsheet_datasource/TT_Query1.odsbin0 -> 6738 bytes
-rwxr-xr-xtestautomation/dbaccess/optional/input/text_datasource/TT_Query1.txt12
-rwxr-xr-xtestautomation/dbaccess/optional/input/text_datasource/text_database.txt3
-rwxr-xr-xtestautomation/dbaccess/required/dba_Main.bas77
-rwxr-xr-xtestautomation/dbaccess/required/dba_ReportBuilder.bas55
-rwxr-xr-xtestautomation/dbaccess/required/dba_xforms_Main.bas53
-rw-r--r--testautomation/dbaccess/required/includes/DatabaseTypes.inc741
-rw-r--r--testautomation/dbaccess/required/includes/Forms.inc91
-rw-r--r--testautomation/dbaccess/required/includes/MainApp.inc627
-rw-r--r--testautomation/dbaccess/required/includes/Query.inc963
-rw-r--r--testautomation/dbaccess/required/includes/ReportBuilder01.inc876
-rw-r--r--testautomation/dbaccess/required/includes/Table.inc629
-rw-r--r--testautomation/dbaccess/required/includes/TableDesign.inc506
-rw-r--r--testautomation/dbaccess/required/includes/Wizards.inc235
-rw-r--r--testautomation/dbaccess/required/includes/Xforms01.inc485
-rwxr-xr-xtestautomation/dbaccess/required/input/sun-report-builder.oxtbin0 -> 2184747 bytes
-rw-r--r--testautomation/dbaccess/tools/controltools.inc831
-rw-r--r--testautomation/dbaccess/tools/dbcreatetools.inc1588
-rw-r--r--testautomation/dbaccess/tools/dbinit.inc56
-rw-r--r--testautomation/dbaccess/tools/dbtools.inc349
-rw-r--r--testautomation/dbaccess/tools/formtools.inc193
-rw-r--r--testautomation/dbaccess/tools/querytools.inc439
-rw-r--r--testautomation/dbaccess/tools/reporttools.inc387
-rw-r--r--testautomation/dbaccess/tools/tabletools.inc771
-rwxr-xr-xtestautomation/extensions/optional/e_display_name.bas57
-rwxr-xr-xtestautomation/extensions/optional/e_extensions.bas54
-rwxr-xr-xtestautomation/extensions/optional/e_fileopen.bas55
-rwxr-xr-xtestautomation/extensions/optional/e_help.bas57
-rwxr-xr-xtestautomation/extensions/optional/e_identifiers.bas59
-rwxr-xr-xtestautomation/extensions/optional/e_location.bas68
-rwxr-xr-xtestautomation/extensions/optional/e_meta-inf.bas59
-rwxr-xr-xtestautomation/extensions/optional/e_online_update.bas57
-rwxr-xr-xtestautomation/extensions/optional/e_options.bas59
-rwxr-xr-xtestautomation/extensions/optional/e_platforms.bas58
-rwxr-xr-xtestautomation/extensions/optional/e_publisher.bas55
-rw-r--r--testautomation/extensions/optional/includes/display_name.inc113
-rw-r--r--testautomation/extensions/optional/includes/extensions.inc676
-rw-r--r--testautomation/extensions/optional/includes/fileopen.inc103
-rw-r--r--testautomation/extensions/optional/includes/help.inc213
-rw-r--r--testautomation/extensions/optional/includes/identifiers.inc120
-rw-r--r--testautomation/extensions/optional/includes/location.inc135
-rw-r--r--testautomation/extensions/optional/includes/meta-inf.inc83
-rw-r--r--testautomation/extensions/optional/includes/online_update.inc114
-rw-r--r--testautomation/extensions/optional/includes/options.inc172
-rw-r--r--testautomation/extensions/optional/includes/platforms.inc126
-rw-r--r--testautomation/extensions/optional/includes/publisher.inc285
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/broken-dependency.oxtbin0 -> 1655 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/double-dependencies.oxtbin0 -> 1651 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/empty-dependencies.oxtbin0 -> 1624 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/funny-dependency.oxtbin0 -> 1730 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/license-dependency.oxtbin0 -> 1891 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/many-dependencies.oxtbin0 -> 1702 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/no-dependencies.oxtbin0 -> 1611 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/no-description.oxtbin0 -> 1360 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/unknown-dependency.oxtbin0 -> 1633 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version10000.oxtbin0 -> 1668 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version21.oxtbin0 -> 1666 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version21ns.oxtbin0 -> 1661 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version21other.oxtbin0 -> 1679 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version25.oxtbin0 -> 1794 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/version30.oxt3
-rw-r--r--testautomation/extensions/optional/input/dependencies/version300.oxtbin0 -> 1408 bytes
-rw-r--r--testautomation/extensions/optional/input/dependencies/version301.oxtbin0 -> 1409 bytes
-rw-r--r--testautomation/extensions/optional/input/dependencies/version31.oxtbin0 -> 1440 bytes
-rw-r--r--testautomation/extensions/optional/input/dependencies/version937.oxtbin0 -> 1409 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/versionempty.oxtbin0 -> 1675 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/dependencies/versionnone.oxtbin0 -> 1674 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/name1.oxtbin0 -> 704 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/name2.oxtbin0 -> 699 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/name3.oxtbin0 -> 681 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/name4.oxtbin0 -> 675 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/name5.oxtbin0 -> 654 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/display_name/readme.txt26
-rwxr-xr-xtestautomation/extensions/optional/input/errors/i77436-README.txt21
-rwxr-xr-xtestautomation/extensions/optional/input/errors/i77436-extension.oxtbin0 -> 57727 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/errors/lowercasemetainf.oxtbin0 -> 9381 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/eventbinding/DialogComponent.odtbin0 -> 12541 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/eventbinding/DialogComponent.oxtbin0 -> 7588 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/extensible_help/extensible_help_en.oxtbin0 -> 8284 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/extensible_help/extensible_help_en_de.oxtbin0 -> 13522 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/extensible_help/extension.info59
-rwxr-xr-xtestautomation/extensions/optional/input/files.txt45
-rwxr-xr-xtestautomation/extensions/optional/input/identifier/explicit/identifier.oxtbin0 -> 1660 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/identifier/legacy/identifier.oxtbin0 -> 1634 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/identifier/readme.txt16
-rwxr-xr-xtestautomation/extensions/optional/input/options/leaf1.oxtbin0 -> 8308 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/leaf2.oxtbin0 -> 8338 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/leaves1.oxtbin0 -> 21158 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/leaves2.oxtbin0 -> 21153 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/leaves3.oxtbin0 -> 21080 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/modules1.oxtbin0 -> 24317 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/modules2.oxtbin0 -> 24196 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/nodes1.oxtbin0 -> 1882 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/nodes2.oxtbin0 -> 24287 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/nodes3.oxtbin0 -> 24315 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/nodes4.oxtbin0 -> 24318 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/nodes5.oxtbin0 -> 12616 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/options/readme.txt195
-rwxr-xr-xtestautomation/extensions/optional/input/path_to_extension/LocationTest.odtbin0 -> 7666 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/path_to_extension/locationtest.oxtbin0 -> 5055 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/all1.oxtbin0 -> 692 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/all2.oxtbin0 -> 702 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/all3.oxtbin0 -> 297 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/extensions.info146
-rwxr-xr-xtestautomation/extensions/optional/input/platform/freebsd_x86.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/freebsd_x86_64.oxtbin0 -> 711 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/invalid1.oxtbin0 -> 653 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/invalid2.oxtbin0 -> 653 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/invalid3.oxtbin0 -> 655 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_arm_eabi.oxtbin0 -> 709 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_arm_oabi.oxtbin0 -> 710 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_ia64.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_mips_eb.oxtbin0 -> 709 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_mips_el.oxtbin0 -> 708 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_powerpc.oxtbin0 -> 708 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_powerpc64.oxtbin0 -> 710 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_s390.oxtbin0 -> 705 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_s390x.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_sparc.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_x86.oxtbin0 -> 705 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/linux_x86_64.oxtbin0 -> 708 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/macosx_powerpc.oxtbin0 -> 710 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/macosx_x86.oxtbin0 -> 707 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/mul1.oxtbin0 -> 952 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/os2_x86.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/readme.txt49
-rwxr-xr-xtestautomation/extensions/optional/input/platform/solaris_sparc.oxtbin0 -> 709 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/solaris_x86.oxtbin0 -> 706 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/platform/windows_x86.oxtbin0 -> 707 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/extension.info58
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub1.oxtbin0 -> 1882 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub2.oxtbin0 -> 1866 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub3.oxtbin0 -> 1829 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub4.oxtbin0 -> 1812 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub5.oxtbin0 -> 1769 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub6.oxtbin0 -> 1814 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/publisher/pub7.oxtbin0 -> 1769 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/BadDesc.oxtbin0 -> 9663 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/BadNamespace.oxtbin0 -> 10027 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/BadRoot.oxtbin0 -> 9248 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/CancelLicense.oxtbin0 -> 9406 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/IncompAttr1.oxtbin0 -> 9389 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/IncompAttr2.oxtbin0 -> 9365 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/LongLic.oxtbin0 -> 9540 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/MissingLic.oxtbin0 -> 9232 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/MissingLicRef.oxtbin0 -> 9343 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/NoDesc.oxtbin0 -> 8722 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/NoLangNoDefault.oxtbin0 -> 9234 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/OnlyDefault.oxtbin0 -> 9394 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/ShortLicense.oxtbin0 -> 9406 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/simpleLicense/ShortLicenseShared.oxtbin0 -> 9407 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/update/plain1.oxtbin0 -> 2187 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/update/plain2.oxtbin0 -> 2186 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/update/plain3.oxtbin0 -> 2186 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/update/readme.txt26
-rwxr-xr-xtestautomation/extensions/optional/input/versions/plain.oxtbin0 -> 1522 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_0.0/plain.oxtbin0 -> 1618 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_1.02.4.7.0/plain.oxtbin0 -> 1624 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_1.2.15.3/plain.oxtbin0 -> 1624 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_1.2.3/plain.oxtbin0 -> 1620 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_1.2.4.7/plain.oxtbin0 -> 1623 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/versions/version_none/plain.oxtbin0 -> 1598 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/readme.txt133
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web1.oxtbin0 -> 1693 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web2.oxtbin0 -> 1693 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web3.oxtbin0 -> 1693 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web4.oxtbin0 -> 1693 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web5.oxtbin0 -> 1693 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web6.oxtbin0 -> 1638 bytes
-rwxr-xr-xtestautomation/extensions/optional/input/web_update/web7.oxtbin0 -> 1894 bytes
-rwxr-xr-xtestautomation/extensions/required/e_update.bas58
-rw-r--r--testautomation/extensions/required/includes/e_update.inc287
-rw-r--r--testautomation/extensions/required/includes/e_update_oooimprovement.inc94
-rwxr-xr-xtestautomation/framework/optional/f_CJK_CollationDialogue.bas78
-rwxr-xr-xtestautomation/framework/optional/f_CJK_FeatureSwitch.bas97
-rwxr-xr-xtestautomation/framework/optional/f_CJK_GridLayout.bas82
-rwxr-xr-xtestautomation/framework/optional/f_CJK_RubyDialogueProposal.bas73
-rwxr-xr-xtestautomation/framework/optional/f_NewSortingAlgorithmForJapanese.bas79
-rwxr-xr-xtestautomation/framework/optional/f_basic_dialog_i18n.bas67
-rwxr-xr-xtestautomation/framework/optional/f_basic_documents.bas67
-rwxr-xr-xtestautomation/framework/optional/f_basic_eventbinding.bas58
-rwxr-xr-xtestautomation/framework/optional/f_basic_first.bas77
-rwxr-xr-xtestautomation/framework/optional/f_basic_formcontrols.bas73
-rw-r--r--testautomation/framework/optional/f_basic_gridcontrol.bas49
-rwxr-xr-xtestautomation/framework/optional/f_basic_issues.bas58
-rwxr-xr-xtestautomation/framework/optional/f_basic_library_export_import.bas78
-rwxr-xr-xtestautomation/framework/optional/f_basic_modules.bas78
-rwxr-xr-xtestautomation/framework/optional/f_basic_package_export_import.bas74
-rwxr-xr-xtestautomation/framework/optional/f_basic_protected_libraries.bas64
-rwxr-xr-xtestautomation/framework/optional/f_basic_shared_modules.bas61
-rwxr-xr-xtestautomation/framework/optional/f_basic_templatedocuments.bas74
-rwxr-xr-xtestautomation/framework/optional/f_basic_vba-compat.bas64
-rwxr-xr-xtestautomation/framework/optional/f_configuration.bas52
-rwxr-xr-xtestautomation/framework/optional/f_extras_labels.bas52
-rwxr-xr-xtestautomation/framework/optional/f_extras_samplefileopen.bas67
-rwxr-xr-xtestautomation/framework/optional/f_extras_sampleopen.bas69
-rwxr-xr-xtestautomation/framework/optional/f_extras_samplepreview.bas60
-rwxr-xr-xtestautomation/framework/optional/f_extras_tableautoformat.bas66
-rwxr-xr-xtestautomation/framework/optional/f_extras_templatefileopen.bas67
-rwxr-xr-xtestautomation/framework/optional/f_extras_templateopen.bas70
-rwxr-xr-xtestautomation/framework/optional/f_extras_templatepreview.bas58
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_allowed_names.bas59
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_autocompletion.bas57
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_cjk_files.bas69
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_dialogtest.bas67
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_folder_navigation.bas76
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_forbidden_names_windows.bas60
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_multiselection.bas59
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_passwords.bas58
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_reserved_names_unix.bas60
-rwxr-xr-xtestautomation/framework/optional/f_filedlg_reserved_names_windows.bas60
-rwxr-xr-xtestautomation/framework/optional/f_fontworkgallery.bas54
-rwxr-xr-xtestautomation/framework/optional/f_help_bookmarks.bas56
-rwxr-xr-xtestautomation/framework/optional/f_help_compare_applications.bas59
-rwxr-xr-xtestautomation/framework/optional/f_help_compare_content.bas60
-rwxr-xr-xtestautomation/framework/optional/f_help_compare_topics.bas58
-rwxr-xr-xtestautomation/framework/optional/f_help_search.bas62
-rwxr-xr-xtestautomation/framework/optional/f_help_view_topics.bas68
-rwxr-xr-xtestautomation/framework/optional/f_loadsave_general.bas55
-rwxr-xr-xtestautomation/framework/optional/f_menuentries.bas51
-rwxr-xr-xtestautomation/framework/optional/f_ole.bas106
-rwxr-xr-xtestautomation/framework/optional/f_options_loadsave.bas63
-rwxr-xr-xtestautomation/framework/optional/f_options_ooo.bas89
-rwxr-xr-xtestautomation/framework/optional/f_scripting_basics.bas56
-rwxr-xr-xtestautomation/framework/optional/f_scripting_organizers.bas83
-rwxr-xr-xtestautomation/framework/optional/f_security_broken_signature.bas66
-rwxr-xr-xtestautomation/framework/optional/f_security_certification_dialogs.bas73
-rwxr-xr-xtestautomation/framework/optional/f_security_certified_docs.bas80
-rwxr-xr-xtestautomation/framework/optional/f_security_evilmacro.bas80
-rwxr-xr-xtestautomation/framework/optional/f_security_incorrect_password.bas78
-rwxr-xr-xtestautomation/framework/optional/f_security_macrosecurity.bas60
-rwxr-xr-xtestautomation/framework/optional/f_security_recommend_password.bas77
-rwxr-xr-xtestautomation/framework/optional/f_security_trusted_path.bas100
-rwxr-xr-xtestautomation/framework/optional/f_toolbar_behavior.bas53
-rwxr-xr-xtestautomation/framework/optional/f_toolbar_items.bas64
-rwxr-xr-xtestautomation/framework/optional/f_usage_tracking.bas61
-rw-r--r--testautomation/framework/optional/includes/CJK_CollationDialogue_1.inc706
-rw-r--r--testautomation/framework/optional/includes/CJK_FeatureSwitchTest_1.inc736
-rw-r--r--testautomation/framework/optional/includes/CJK_RubyDialogueProposal_1.inc389
-rw-r--r--testautomation/framework/optional/includes/NewSortingAlgorithmForJapanese_1.inc227
-rw-r--r--testautomation/framework/optional/includes/basic_delete_modules.inc103
-rw-r--r--testautomation/framework/optional/includes/basic_dialog_i18n_copy_control.inc202
-rw-r--r--testautomation/framework/optional/includes/basic_dialog_i18n_defaults.inc406
-rw-r--r--testautomation/framework/optional/includes/basic_documents.inc185
-rw-r--r--testautomation/framework/optional/includes/basic_eventbinding.inc283
-rw-r--r--testautomation/framework/optional/includes/basic_formcontrols.inc288
-rw-r--r--testautomation/framework/optional/includes/basic_gridcontrol.inc131
-rw-r--r--testautomation/framework/optional/includes/basic_ide.inc335
-rw-r--r--testautomation/framework/optional/includes/basic_issues.inc235
-rw-r--r--testautomation/framework/optional/includes/basic_library_export.inc200
-rw-r--r--testautomation/framework/optional/includes/basic_library_import.inc123
-rw-r--r--testautomation/framework/optional/includes/basic_macros.inc407
-rw-r--r--testautomation/framework/optional/includes/basic_modulehide.inc102
-rw-r--r--testautomation/framework/optional/includes/basic_modulenames.inc347
-rw-r--r--testautomation/framework/optional/includes/basic_modules.inc140
-rw-r--r--testautomation/framework/optional/includes/basic_package_export.inc219
-rw-r--r--testautomation/framework/optional/includes/basic_package_import.inc140
-rw-r--r--testautomation/framework/optional/includes/basic_protected_libraries.inc160
-rw-r--r--testautomation/framework/optional/includes/basic_shared_modules.inc90
-rw-r--r--testautomation/framework/optional/includes/basic_spectemplate.inc123
-rw-r--r--testautomation/framework/optional/includes/basic_usertemplate.inc204
-rw-r--r--testautomation/framework/optional/includes/basic_vba-compat_import_disabled.inc138
-rw-r--r--testautomation/framework/optional/includes/basic_vba-compat_import_enabled.inc154
-rw-r--r--testautomation/framework/optional/includes/basic_vba-compat_import_nothing.inc101
-rw-r--r--testautomation/framework/optional/includes/basic_vba_compat_tools.inc72
-rw-r--r--testautomation/framework/optional/includes/configuration.inc371
-rw-r--r--testautomation/framework/optional/includes/extras_file_open.inc213
-rw-r--r--testautomation/framework/optional/includes/extras_labels.inc107
-rw-r--r--testautomation/framework/optional/includes/extras_modify_objects.inc168
-rw-r--r--testautomation/framework/optional/includes/extras_preview.inc112
-rw-r--r--testautomation/framework/optional/includes/extras_table_autoformat.inc126
-rw-r--r--testautomation/framework/optional/includes/f_usage_tracking.inc288
-rw-r--r--testautomation/framework/optional/includes/filedlg_allowed_names.inc115
-rw-r--r--testautomation/framework/optional/includes/filedlg_autocomplete.inc207
-rw-r--r--testautomation/framework/optional/includes/filedlg_cjk_files.inc82
-rw-r--r--testautomation/framework/optional/includes/filedlg_cjk_folders.inc86
-rw-r--r--testautomation/framework/optional/includes/filedlg_document_properties.inc106
-rw-r--r--testautomation/framework/optional/includes/filedlg_filternames.inc123
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders1.inc106
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders2.inc72
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders3.inc65
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders4.inc128
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders5.inc117
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders6.inc166
-rw-r--r--testautomation/framework/optional/includes/filedlg_folders7.inc127
-rw-r--r--testautomation/framework/optional/includes/filedlg_forbidden_names_windows.inc85
-rw-r--r--testautomation/framework/optional/includes/filedlg_multiselection.inc197
-rw-r--r--testautomation/framework/optional/includes/filedlg_passwords.inc181
-rw-r--r--testautomation/framework/optional/includes/filedlg_rename.inc97
-rw-r--r--testautomation/framework/optional/includes/filedlg_reserved_names_unix.inc76
-rw-r--r--testautomation/framework/optional/includes/filedlg_reserved_names_windows.inc133
-rw-r--r--testautomation/framework/optional/includes/filedlg_tools.inc478
-rw-r--r--testautomation/framework/optional/includes/filedlg_triggers.inc274
-rw-r--r--testautomation/framework/optional/includes/fontworkgallery.inc146
-rw-r--r--testautomation/framework/optional/includes/help_bookmarks.inc201
-rw-r--r--testautomation/framework/optional/includes/help_compare_applications.inc99
-rw-r--r--testautomation/framework/optional/includes/help_compare_content.inc94
-rw-r--r--testautomation/framework/optional/includes/help_compare_topics.inc129
-rw-r--r--testautomation/framework/optional/includes/help_search.inc160
-rw-r--r--testautomation/framework/optional/includes/help_view_topics.inc105
-rw-r--r--testautomation/framework/optional/includes/loadsave_files.inc181
-rw-r--r--testautomation/framework/optional/includes/loadsave_new.inc116
-rw-r--r--testautomation/framework/optional/includes/menuentries.inc172
-rw-r--r--testautomation/framework/optional/includes/ole_1.inc467
-rw-r--r--testautomation/framework/optional/includes/ole_2.inc129
-rw-r--r--testautomation/framework/optional/includes/ole_3.inc360
-rw-r--r--testautomation/framework/optional/includes/ole_tools.inc462
-rw-r--r--testautomation/framework/optional/includes/options_asia.inc641
-rw-r--r--testautomation/framework/optional/includes/options_data.inc192
-rw-r--r--testautomation/framework/optional/includes/options_int1.inc286
-rw-r--r--testautomation/framework/optional/includes/options_lan1.inc894
-rw-r--r--testautomation/framework/optional/includes/options_loadsave_general.inc284
-rw-r--r--testautomation/framework/optional/includes/options_loadsave_html.inc220
-rw-r--r--testautomation/framework/optional/includes/options_loadsave_msoffice.inc127
-rw-r--r--testautomation/framework/optional/includes/options_loadsave_vba.inc129
-rw-r--r--testautomation/framework/optional/includes/options_ls_2.inc307
-rw-r--r--testautomation/framework/optional/includes/options_ooo_accessibility.inc185
-rw-r--r--testautomation/framework/optional/includes/options_ooo_appearance.inc169
-rw-r--r--testautomation/framework/optional/includes/options_ooo_colors.inc206
-rw-r--r--testautomation/framework/optional/includes/options_ooo_fontreplacement.inc118
-rw-r--r--testautomation/framework/optional/includes/options_ooo_general.inc583
-rw-r--r--testautomation/framework/optional/includes/options_ooo_java.inc131
-rw-r--r--testautomation/framework/optional/includes/options_ooo_memory.inc219
-rw-r--r--testautomation/framework/optional/includes/options_ooo_paths.inc349
-rw-r--r--testautomation/framework/optional/includes/options_ooo_print.inc438
-rw-r--r--testautomation/framework/optional/includes/options_ooo_security.inc134
-rw-r--r--testautomation/framework/optional/includes/options_ooo_userdata.inc212
-rw-r--r--testautomation/framework/optional/includes/options_ooo_view.inc243
-rw-r--r--testautomation/framework/optional/includes/scripting_basics.inc73
-rw-r--r--testautomation/framework/optional/includes/scripting_organizers.inc278
-rw-r--r--testautomation/framework/optional/includes/security_broken_signature.inc71
-rw-r--r--testautomation/framework/optional/includes/security_certification_dialogs.inc98
-rw-r--r--testautomation/framework/optional/includes/security_certified_docs.inc147
-rw-r--r--testautomation/framework/optional/includes/security_evilmacro1.inc100
-rw-r--r--testautomation/framework/optional/includes/security_evilmacro2.inc89
-rw-r--r--testautomation/framework/optional/includes/security_evilmacro3.inc95
-rw-r--r--testautomation/framework/optional/includes/security_incorrect_password.inc136
-rw-r--r--testautomation/framework/optional/includes/security_macrosecurity.inc169
-rw-r--r--testautomation/framework/optional/includes/security_recommend_password.inc122
-rw-r--r--testautomation/framework/optional/includes/security_trusted_path.inc86
-rw-r--r--testautomation/framework/optional/includes/standardbar2.inc160
-rw-r--r--testautomation/framework/optional/includes/toolbar_behavior.inc152
-rw-r--r--testautomation/framework/optional/includes/w_grid_layout1.inc576
-rwxr-xr-xtestautomation/framework/optional/input/AppLibrary1/Dialog1.xdl8
-rwxr-xr-xtestautomation/framework/optional/input/AppLibrary1/Module1.xba8
-rwxr-xr-xtestautomation/framework/optional/input/AppLibrary1/Module2.xba8
-rwxr-xr-xtestautomation/framework/optional/input/AppLibrary1/dialog.xlb5
-rwxr-xr-xtestautomation/framework/optional/input/AppLibrary1/script.xlb6
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odfbin0 -> 5631 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odgbin0 -> 8864 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odmbin0 -> 7274 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odpbin0 -> 10802 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odsbin0 -> 7328 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.odtbin0 -> 7262 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxcbin0 -> 7695 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxdbin0 -> 8165 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxgbin0 -> 7652 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxibin0 -> 9729 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxmbin0 -> 5111 bytes
-rw-r--r--testautomation/framework/optional/input/BasicDocs/basic.sxwbin0 -> 7632 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/FontSizeChanges_1.sxwbin0 -> 5231 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/IndentsTest.sxwbin0 -> 5515 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/graphicInPage.sxwbin0 -> 75327 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/gridtest.sxwbin0 -> 5341 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/objectsTest.sxwbin0 -> 7814 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/rubytest.sxwbin0 -> 5263 bytes
-rwxr-xr-xtestautomation/framework/optional/input/CJK/sortTest.sxwbin0 -> 5051 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/aendern.sdabin0 -> 39424 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/bereich.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/body.htm146
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/borabora.jpgbin0 -> 28566 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/columbia.dxf12638
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/erwin.sdwbin0 -> 8192 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxcbin0 -> 4923 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxdbin0 -> 6016 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxgbin0 -> 4777 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxibin0 -> 7338 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxmbin0 -> 2954 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/fdlg.sxwbin0 -> 4776 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/ffortpf.smfbin0 -> 6656 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/ls3_3_15.sdsbin0 -> 59904 bytes
-rwxr-xr-xtestautomation/framework/optional/input/alldocs/schach.sddbin0 -> 65536 bytes
-rwxr-xr-xtestautomation/framework/optional/input/eventbinding/DialogComponent.odtbin0 -> 12541 bytes
-rwxr-xr-xtestautomation/framework/optional/input/eventbinding/DialogComponent.oxtbin0 -> 7588 bytes
-rwxr-xr-xtestautomation/framework/optional/input/extras_formats/Labels_en-US.txt1537
-rwxr-xr-xtestautomation/framework/optional/input/extras_formats/Tables_calc_en-US.txt17
-rwxr-xr-xtestautomation/framework/optional/input/extras_formats/Tables_writer_en-US.txt17
-rwxr-xr-xtestautomation/framework/optional/input/filetest/level1/level2/level3/filetest.txt6
-rwxr-xr-xtestautomation/framework/optional/input/filetest/level1/level2/level3/testdoc.sdwbin0 -> 15872 bytes
-rwxr-xr-xtestautomation/framework/optional/input/filetst2/spaces/filetest.txt6
-rwxr-xr-xtestautomation/framework/optional/input/filetst2/spaces/testdoc.sdwbin0 -> 15872 bytes
-rwxr-xr-xtestautomation/framework/optional/input/filternames/OpenOffice.org_Filternames_en-US.txt133
-rwxr-xr-xtestautomation/framework/optional/input/filternames/StarOffice_Filternames_add_en-US.txt133
-rwxr-xr-xtestautomation/framework/optional/input/filternames/StarOffice_Filternames_en-US.txt126
-rwxr-xr-xtestautomation/framework/optional/input/filternames/StarSuite_Filternames_en-US.txt122
-rwxr-xr-xtestautomation/framework/optional/input/gridcontrol.odtbin0 -> 11602 bytes
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_help_applications_en-US.txt8
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_help_content_en-US.txt869
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_help_topic_en-US.txt22162
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_help_topics_en-US.txt21949
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_search_headings_and_whole_words_en-US.txt6
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_search_headings_only_en-US.txt7
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_search_whole_words_only_en-US.txt16
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/OpenOffice.org_search_without_filter_en-US.txt22
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_help_applications_en-US.txt8
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_help_content_en-US.txt868
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_help_topics_en-US.txt21964
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_search_headings_and_whole_words_en-US.txt6
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_search_headings_only_en-US.txt7
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_search_whole_words_only_en-US.txt16
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarOffice_search_without_filter_en-US.txt22
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_help_applications_en-US.txt8
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_help_content_en-US.txt869
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_help_topics_en-US.txt21949
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_search_headings_and_whole_words_en-US.txt6
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_search_headings_only_en-US.txt7
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_search_whole_words_only_en-US.txt16
-rwxr-xr-xtestautomation/framework/optional/input/help_browser/StarSuite_search_without_filter_en-US.txt22
-rwxr-xr-xtestautomation/framework/optional/input/menu/areadme.txt18
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_basic.txt57
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_calc.txt177
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_draw.txt157
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_htmldokument.txt172
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_impress.txt158
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_insight.txt82
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_masterdoc.txt194
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_math.txt85
-rwxr-xr-xtestautomation/framework/optional/input/menu/en-us_writer.txt195
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Cmulti.odsbin0 -> 6271 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Wmulti.odtbin0 -> 6475 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/01Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Cmulti.odsbin0 -> 6278 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Wmulti.odtbin0 -> 6477 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/02Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Cmulti.odsbin0 -> 6281 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Wmulti.odtbin0 -> 6475 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/03Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Cmulti.odsbin0 -> 6279 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Wmulti.odtbin0 -> 6478 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/04Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Cmulti.odsbin0 -> 6269 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Wmulti.odtbin0 -> 6479 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/05Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Cmulti.odsbin0 -> 6273 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Wmulti.odtbin0 -> 6477 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/06Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Cmulti.odsbin0 -> 6270 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Wmulti.odtbin0 -> 6482 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/07Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Cmulti.odsbin0 -> 6274 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Wmulti.odtbin0 -> 6479 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/08Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Cmulti.odsbin0 -> 6279 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Wmulti.odtbin0 -> 6477 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/09Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Cmulti.odsbin0 -> 6269 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Cmulti.sdcbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Cmulti.xlsbin0 -> 98304 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Wmulti.docbin0 -> 96256 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Wmulti.odtbin0 -> 6475 bytes
-rwxr-xr-xtestautomation/framework/optional/input/multiselect/10Wmulti.sdwbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/framework/optional/input/options/ooo_security_changed.ref13
-rwxr-xr-xtestautomation/framework/optional/input/options/ooo_security_defaults.ref13
-rwxr-xr-xtestautomation/framework/optional/input/options/ooo_view_changed.ref20
-rwxr-xr-xtestautomation/framework/optional/input/options/ooo_view_defaults.ref19
-rwxr-xr-xtestautomation/framework/optional/input/options/paths_1.txt15
-rwxr-xr-xtestautomation/framework/optional/input/resetregistration.txt63
-rwxr-xr-xtestautomation/framework/optional/input/security/DigitalSignature.odfbin0 -> 5563 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/DigitalSignature.odgbin0 -> 9301 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/DigitalSignature.odpbin0 -> 11002 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/DigitalSignature.odsbin0 -> 7944 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/DigitalSignature.odtbin0 -> 7851 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/autotest.p12bin0 -> 1821 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/readme.txt33
-rwxr-xr-xtestautomation/framework/optional/input/security/test_macro (signed).odtbin0 -> 8550 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/test_macro.html34
-rwxr-xr-xtestautomation/framework/optional/input/security/test_macro.odtbin0 -> 7407 bytes
-rwxr-xr-xtestautomation/framework/optional/input/security/test_macro.sxwbin0 -> 5049 bytes
-rw-r--r--testautomation/framework/optional/input/vba-compat/vba-compat-macros.txt30
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-sample.xlsbin0 -> 31232 bytes
-rwxr-xr-xtestautomation/framework/optional/input/vba-compat/vba-test.xlsbin0 -> 48640 bytes
-rwxr-xr-xtestautomation/framework/required/f_basic_dialogs.bas73
-rwxr-xr-xtestautomation/framework/required/f_first.bas70
-rwxr-xr-xtestautomation/framework/required/f_help_browser.bas60
-rwxr-xr-xtestautomation/framework/required/f_printer_administration.bas58
-rwxr-xr-xtestautomation/framework/required/f_script_organizers.bas57
-rwxr-xr-xtestautomation/framework/required/f_security_dialogs.bas55
-rwxr-xr-xtestautomation/framework/required/f_standard_toolbar.bas73
-rwxr-xr-xtestautomation/framework/required/f_tools_customize.bas75
-rwxr-xr-xtestautomation/framework/required/f_tools_options.bas58
-rwxr-xr-xtestautomation/framework/required/f_topten.bas67
-rwxr-xr-xtestautomation/framework/required/f_window_functions.bas60
-rwxr-xr-xtestautomation/framework/required/f_wizards.bas86
-rw-r--r--testautomation/framework/required/includes/basic_dialog_export.inc110
-rw-r--r--testautomation/framework/required/includes/basic_dialog_i18n.inc140
-rw-r--r--testautomation/framework/required/includes/basic_dialog_i18n_import.inc152
-rw-r--r--testautomation/framework/required/includes/basic_macroassignment.inc141
-rw-r--r--testautomation/framework/required/includes/basic_organizer.inc230
-rw-r--r--testautomation/framework/required/includes/first.inc332
-rw-r--r--testautomation/framework/required/includes/graphics_import.inc314
-rw-r--r--testautomation/framework/required/includes/help_browser.inc156
-rw-r--r--testautomation/framework/required/includes/printer_administration.inc311
-rw-r--r--testautomation/framework/required/includes/script_organizers.inc116
-rw-r--r--testautomation/framework/required/includes/security_dialogs.inc186
-rw-r--r--testautomation/framework/required/includes/smoketest.inc206
-rw-r--r--testautomation/framework/required/includes/standard_toolbar_1.inc77
-rw-r--r--testautomation/framework/required/includes/standard_toolbar_3.inc256
-rw-r--r--testautomation/framework/required/includes/standard_toolbar_4.inc57
-rw-r--r--testautomation/framework/required/includes/standard_toolbar_5.inc78
-rw-r--r--testautomation/framework/required/includes/standard_toolbar_6.inc139
-rw-r--r--testautomation/framework/required/includes/tools_customize.inc730
-rw-r--r--testautomation/framework/required/includes/tools_options.inc85
-rw-r--r--testautomation/framework/required/includes/topten.inc322
-rw-r--r--testautomation/framework/required/includes/window_functions.inc341
-rw-r--r--testautomation/framework/required/includes/wizard_agenda.inc109
-rw-r--r--testautomation/framework/required/includes/wizard_documentconverter.inc153
-rw-r--r--testautomation/framework/required/includes/wizard_euroconverter.inc132
-rw-r--r--testautomation/framework/required/includes/wizard_fax.inc100
-rw-r--r--testautomation/framework/required/includes/wizard_firsttime.inc229
-rw-r--r--testautomation/framework/required/includes/wizard_letter.inc201
-rw-r--r--testautomation/framework/required/includes/wizard_mailmerge.inc1211
-rw-r--r--testautomation/framework/required/includes/wizard_presentation.inc75
-rw-r--r--testautomation/framework/required/includes/wizard_webpage.inc212
-rwxr-xr-xtestautomation/framework/required/input/10erTest_680.sxwbin0 -> 32738 bytes
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5.xdl7
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_ar_DZ.default0
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_ar_DZ.properties5
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_ca_ES.properties5
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_de_DE.properties5
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_en_US.properties5
-rw-r--r--testautomation/framework/required/input/basic_ide/Dialog5_fr_FR.properties5
-rwxr-xr-xtestautomation/framework/required/input/document_converter/docconv1.sdwbin0 -> 15360 bytes
-rwxr-xr-xtestautomation/framework/required/input/mailmerge_data.odbbin0 -> 3524 bytes
-rw-r--r--testautomation/framework/tools/includes/CJK_tools.inc308
-rwxr-xr-xtestautomation/framework/tools/includes/all_interfaces.txt125
-rw-r--r--testautomation/framework/tools/includes/apicalls.inc116
-rw-r--r--testautomation/framework/tools/includes/arrayfuncs.inc163
-rw-r--r--testautomation/framework/tools/includes/customize_tools.inc343
-rw-r--r--testautomation/framework/tools/includes/filedlg_tools.inc117
-rw-r--r--testautomation/framework/tools/includes/fileoperations.inc945
-rw-r--r--testautomation/framework/tools/includes/formcontrols.inc816
-rw-r--r--testautomation/framework/tools/includes/help_tools.inc431
-rw-r--r--testautomation/framework/tools/includes/i18n_tools.inc189
-rw-r--r--testautomation/framework/tools/includes/init_tools.inc205
-rw-r--r--testautomation/framework/tools/includes/javatools.inc151
-rw-r--r--testautomation/framework/tools/includes/options_tools.inc404
-rw-r--r--testautomation/framework/tools/includes/pbrowser_tools.inc476
-rw-r--r--testautomation/framework/tools/includes/performance.inc69
-rw-r--r--testautomation/framework/tools/includes/private_environment.inc335
-rw-r--r--testautomation/framework/tools/includes/scriptorganizer_tools.inc419
-rw-r--r--testautomation/framework/tools/includes/signature_tools.inc90
-rw-r--r--testautomation/framework/tools/includes/spadmin_tools.inc317
-rw-r--r--testautomation/framework/tools/includes/tabpages.inc95
-rw-r--r--testautomation/framework/tools/includes/template_tools.inc552
-rw-r--r--testautomation/framework/tools/includes/toolbar_tools.inc502
-rw-r--r--testautomation/framework/tools/includes/webtools.inc153
-rw-r--r--testautomation/framework/tools/includes/window_tools.inc86
-rw-r--r--testautomation/framework/tools/includes/wizards.inc618
-rwxr-xr-xtestautomation/framework/tools/input/i18ndata.txt43
-rwxr-xr-xtestautomation/framework/tools/input/menuentries.txt50
-rw-r--r--testautomation/global/hid/readme.txt130
-rwxr-xr-xtestautomation/global/input/accelerators.txt206
-rwxr-xr-xtestautomation/global/input/applications.txt40
-rw-r--r--testautomation/global/input/empty/please_do_not_delete_this_file3
-rw-r--r--testautomation/global/input/filters/api_filternames.txt331
-rw-r--r--testautomation/global/input/filters/build_to_filter.txt68
-rw-r--r--testautomation/global/input/filters/build_to_suffix.txt68
-rw-r--r--testautomation/global/input/filters/graphic_filters.txt26
-rwxr-xr-xtestautomation/global/input/filters/native_suffixes.dat53
-rwxr-xr-xtestautomation/global/input/graf_inp/airshw.metbin0 -> 142702 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/baer.tifbin0 -> 67790 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/ball.epsbin0 -> 582053 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/borabora.jpgbin0 -> 28566 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/circle.pcxbin0 -> 76917 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/columbia.dxf12638
-rwxr-xr-xtestautomation/global/input/graf_inp/desp.bmpbin0 -> 236746 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/eface.gifbin0 -> 163067 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/enter.bmpbin0 -> 42278 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/extrud.emfbin0 -> 59320 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/faxpfeil.sgvbin0 -> 1291 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/grafix1.pbmbin0 -> 24106 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/grafix2.pgmbin0 -> 191590 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/grafix3.rasbin0 -> 237488 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/grafix4.xbm2011
-rwxr-xr-xtestautomation/global/input/graf_inp/graph_ex.metbin0 -> 237285 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/graph_ex.pngbin0 -> 406588 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/graph_ex.ppm63414
-rwxr-xr-xtestautomation/global/input/graf_inp/krokodil.wmfbin0 -> 225136 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/london.ppmbin0 -> 1179663 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/mickym.sgfbin0 -> 26501 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/newtonme.pctbin0 -> 217008 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/obst.pngbin0 -> 114792 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/papagei1.pcdbin0 -> 3944448 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/papagei2.xpm629
-rwxr-xr-xtestautomation/global/input/graf_inp/picture.svmbin0 -> 17929 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/pilz.tgabin0 -> 318936 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/purzel.gifbin0 -> 18909 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/stabler.tifbin0 -> 492359 bytes
-rwxr-xr-xtestautomation/global/input/graf_inp/tiger.psdbin0 -> 523335 bytes
-rwxr-xr-xtestautomation/global/input/java/Clock.classbin0 -> 4775 bytes
-rwxr-xr-xtestautomation/global/input/java/Clock.java227
-rw-r--r--testautomation/global/input/java/java.htm47
-rwxr-xr-xtestautomation/global/input/macros.txt281
-rw-r--r--testautomation/global/input/officeinfo.txt6
-rw-r--r--testautomation/global/input/proxies.txt25
-rw-r--r--testautomation/global/input/servers.txt50
-rw-r--r--testautomation/global/input/xml_filter/docbook.xml210
-rwxr-xr-xtestautomation/global/input/xml_filter/excel.xml74
-rwxr-xr-xtestautomation/global/input/xml_filter/word.xml4
-rwxr-xr-xtestautomation/global/input/xslt_stylesheets/docbook.jarbin0 -> 17693 bytes
-rwxr-xr-xtestautomation/global/input/xslt_stylesheets/excel.jarbin0 -> 47729 bytes
-rwxr-xr-xtestautomation/global/input/xslt_stylesheets/word.jarbin0 -> 9063 bytes
-rwxr-xr-xtestautomation/global/input/xslt_stylesheets/xhtml.jarbin0 -> 16829 bytes
-rw-r--r--testautomation/global/required/includes/g_001.inc149
-rw-r--r--testautomation/global/required/includes/g_009.inc178
-rw-r--r--testautomation/global/required/includes/g_customize.inc331
-rw-r--r--testautomation/global/required/includes/g_numberformatter1.inc797
-rw-r--r--testautomation/global/required/includes/g_option.inc852
-rw-r--r--testautomation/global/required/includes/g_option_application.inc664
-rw-r--r--testautomation/global/required/includes/g_printing.inc518
-rw-r--r--testautomation/global/sid/all.sid654
-rwxr-xr-xtestautomation/global/sid/bars.sid757
-rw-r--r--testautomation/global/sid/basic.sid12
-rw-r--r--testautomation/global/sid/context.sid39
-rwxr-xr-xtestautomation/global/sid/e_all.sid959
-rw-r--r--testautomation/global/sid/others.sid40
-rw-r--r--testautomation/global/sid/sop.sid18
-rw-r--r--testautomation/global/system/includes/declare.inc361
-rw-r--r--testautomation/global/system/includes/gvariabl.inc262
-rw-r--r--testautomation/global/system/includes/iniinfo.inc1185
-rw-r--r--testautomation/global/system/includes/inivalue.inc279
-rw-r--r--testautomation/global/system/includes/master.inc1252
-rw-r--r--testautomation/global/system/includes/status.inc716
-rw-r--r--testautomation/global/system/includes/sysinfo.inc412
-rwxr-xr-xtestautomation/global/tools/closeoffice.bas48
-rwxr-xr-xtestautomation/global/tools/compressstatus.bas188
-rwxr-xr-xtestautomation/global/tools/declare.bas84
-rw-r--r--testautomation/global/tools/includes/optional/t_accels.inc124
-rw-r--r--testautomation/global/tools/includes/optional/t_basic_ide_tools.inc995
-rw-r--r--testautomation/global/tools/includes/optional/t_basic_organizer_tools.inc520
-rw-r--r--testautomation/global/tools/includes/optional/t_control_objects.inc611
-rw-r--r--testautomation/global/tools/includes/optional/t_ctrl_1.inc955
-rw-r--r--testautomation/global/tools/includes/optional/t_ctrl_2.inc355
-rw-r--r--testautomation/global/tools/includes/optional/t_docfuncs.inc589
-rw-r--r--testautomation/global/tools/includes/optional/t_extension_manager_tools.inc776
-rw-r--r--testautomation/global/tools/includes/optional/t_filetools.inc414
-rw-r--r--testautomation/global/tools/includes/optional/t_key_tools.inc563
-rw-r--r--testautomation/global/tools/includes/optional/t_listfuncs.inc733
-rw-r--r--testautomation/global/tools/includes/optional/t_locale_strings1.inc543
-rw-r--r--testautomation/global/tools/includes/optional/t_locale_tools.inc92
-rw-r--r--testautomation/global/tools/includes/optional/t_macro_tools.inc176
-rw-r--r--testautomation/global/tools/includes/optional/t_ole.inc140
-rw-r--r--testautomation/global/tools/includes/optional/t_proxy_info.inc138
-rw-r--r--testautomation/global/tools/includes/optional/t_security_tools.inc664
-rw-r--r--testautomation/global/tools/includes/optional/t_server_info.inc148
-rw-r--r--testautomation/global/tools/includes/optional/t_set_standard_controls.inc646
-rw-r--r--testautomation/global/tools/includes/optional/t_spreadsheet_tools1.inc84
-rw-r--r--testautomation/global/tools/includes/optional/t_stringtools.inc353
-rw-r--r--testautomation/global/tools/includes/optional/t_toolbar_calc.inc300
-rw-r--r--testautomation/global/tools/includes/optional/t_toolbar_impress.inc290
-rw-r--r--testautomation/global/tools/includes/optional/t_toolbar_tools1.inc401
-rw-r--r--testautomation/global/tools/includes/optional/t_toolbar_writer.inc766
-rw-r--r--testautomation/global/tools/includes/optional/t_treelist_tools.inc503
-rw-r--r--testautomation/global/tools/includes/optional/t_ui_filters.inc130
-rw-r--r--testautomation/global/tools/includes/optional/t_user_info.inc54
-rw-r--r--testautomation/global/tools/includes/optional/t_xml1.inc652
-rw-r--r--testautomation/global/tools/includes/optional/t_xml2.inc492
-rw-r--r--testautomation/global/tools/includes/optional/t_xml_filter1.inc822
-rw-r--r--testautomation/global/tools/includes/required/t_dir.inc377
-rw-r--r--testautomation/global/tools/includes/required/t_dirloc.inc288
-rw-r--r--testautomation/global/tools/includes/required/t_doc1.inc531
-rw-r--r--testautomation/global/tools/includes/required/t_doc2.inc330
-rw-r--r--testautomation/global/tools/includes/required/t_files.inc950
-rw-r--r--testautomation/global/tools/includes/required/t_filters.inc519
-rw-r--r--testautomation/global/tools/includes/required/t_lists.inc625
-rw-r--r--testautomation/global/tools/includes/required/t_menu.inc928
-rw-r--r--testautomation/global/tools/includes/required/t_option.inc556
-rw-r--r--testautomation/global/tools/includes/required/t_option2.inc550
-rw-r--r--testautomation/global/tools/includes/required/t_tools1.inc1329
-rw-r--r--testautomation/global/tools/includes/required/t_tools2.inc1055
-rw-r--r--testautomation/global/tools/includes/required/t_tools3.inc975
-rwxr-xr-xtestautomation/global/tools/record_macro.bas54
-rwxr-xr-xtestautomation/global/tools/resetoffice.bas75
-rwxr-xr-xtestautomation/global/tools/wintree.bas39
-rwxr-xr-xtestautomation/global/win/bars.win1396
-rwxr-xr-xtestautomation/global/win/dial_a_c.win294
-rwxr-xr-xtestautomation/global/win/dial_d_h.win581
-rwxr-xr-xtestautomation/global/win/dial_i_o.win455
-rwxr-xr-xtestautomation/global/win/dial_p_s.win405
-rwxr-xr-xtestautomation/global/win/dial_t_z.win360
-rwxr-xr-xtestautomation/global/win/dokument.win75
-rwxr-xr-xtestautomation/global/win/e_mathop.win202
-rwxr-xr-xtestautomation/global/win/edia_a_c.win478
-rwxr-xr-xtestautomation/global/win/edia_d_h.win481
-rwxr-xr-xtestautomation/global/win/edia_i_o.win310
-rw-r--r--testautomation/global/win/edia_p_s.win624
-rwxr-xr-xtestautomation/global/win/edia_t_z.win285
-rwxr-xr-xtestautomation/global/win/etab_a_d.win474
-rwxr-xr-xtestautomation/global/win/etab_e_g.win374
-rwxr-xr-xtestautomation/global/win/etab_h_o.win238
-rwxr-xr-xtestautomation/global/win/etab_p_s.win115
-rwxr-xr-xtestautomation/global/win/etab_t_z.win147
-rwxr-xr-xtestautomation/global/win/etoolbox.win61
-rwxr-xr-xtestautomation/global/win/mathop.win204
-rwxr-xr-xtestautomation/global/win/piloten.win74
-rwxr-xr-xtestautomation/global/win/reportdesigner.win86
-rwxr-xr-xtestautomation/global/win/spadmin.win108
-rwxr-xr-xtestautomation/global/win/sys_dial.win133
-rwxr-xr-xtestautomation/global/win/tab_a_d.win373
-rwxr-xr-xtestautomation/global/win/tab_e_g.win302
-rwxr-xr-xtestautomation/global/win/tab_h_o.win489
-rwxr-xr-xtestautomation/global/win/tab_p_s.win287
-rwxr-xr-xtestautomation/global/win/tab_t_z.win401
-rwxr-xr-xtestautomation/global/win/w_autop.win29
-rwxr-xr-xtestautomation/graphics/optional/d_export_graphic_a.bas74
-rwxr-xr-xtestautomation/graphics/optional/d_export_graphic_b.bas73
-rwxr-xr-xtestautomation/graphics/optional/export_graphic_a.bas73
-rwxr-xr-xtestautomation/graphics/optional/export_graphic_b.bas73
-rwxr-xr-xtestautomation/graphics/optional/g_accessability.bas59
-rwxr-xr-xtestautomation/graphics/optional/g_area.bas57
-rwxr-xr-xtestautomation/graphics/optional/g_arrangealign.bas79
-rwxr-xr-xtestautomation/graphics/optional/g_autocorrection.bas71
-rwxr-xr-xtestautomation/graphics/optional/g_character.bas66
-rwxr-xr-xtestautomation/graphics/optional/g_clipboard.bas76
-rwxr-xr-xtestautomation/graphics/optional/g_clipexport.bas68
-rwxr-xr-xtestautomation/graphics/optional/g_convertto.bas72
-rwxr-xr-xtestautomation/graphics/optional/g_crossfading.bas56
-rwxr-xr-xtestautomation/graphics/optional/g_customshapes.bas58
-rwxr-xr-xtestautomation/graphics/optional/g_demoguide.bas56
-rwxr-xr-xtestautomation/graphics/optional/g_dimensions.bas55
-rwxr-xr-xtestautomation/graphics/optional/g_edit.bas69
-rwxr-xr-xtestautomation/graphics/optional/g_export_html.bas62
-rwxr-xr-xtestautomation/graphics/optional/g_findreplace.bas60
-rwxr-xr-xtestautomation/graphics/optional/g_format.bas70
-rwxr-xr-xtestautomation/graphics/optional/g_group.bas56
-rwxr-xr-xtestautomation/graphics/optional/g_imagemap.bas58
-rwxr-xr-xtestautomation/graphics/optional/g_insert.bas90
-rwxr-xr-xtestautomation/graphics/optional/g_line.bas58
-rwxr-xr-xtestautomation/graphics/optional/g_load_save.bas89
-rwxr-xr-xtestautomation/graphics/optional/g_mediaplayer.bas56
-rwxr-xr-xtestautomation/graphics/optional/g_navigator.bas64
-rwxr-xr-xtestautomation/graphics/optional/g_ole.bas60
-rwxr-xr-xtestautomation/graphics/optional/g_paneview.bas62
-rwxr-xr-xtestautomation/graphics/optional/g_paragraph.bas56
-rwxr-xr-xtestautomation/graphics/optional/g_savepictureas.bas64
-rwxr-xr-xtestautomation/graphics/optional/g_shaddow.bas60
-rwxr-xr-xtestautomation/graphics/optional/g_slidelayer.bas69
-rwxr-xr-xtestautomation/graphics/optional/g_spellcheck.bas68
-rwxr-xr-xtestautomation/graphics/optional/g_stylist.bas99
-rwxr-xr-xtestautomation/graphics/optional/g_tables.bas65
-rwxr-xr-xtestautomation/graphics/optional/g_toolbars.bas69
-rwxr-xr-xtestautomation/graphics/optional/g_tools.bas65
-rwxr-xr-xtestautomation/graphics/optional/g_zoom.bas57
-rwxr-xr-xtestautomation/graphics/optional/gallery.bas65
-rwxr-xr-xtestautomation/graphics/optional/gallery2.bas63
-rwxr-xr-xtestautomation/graphics/optional/i_animation.bas51
-rwxr-xr-xtestautomation/graphics/optional/i_headerfooter.bas54
-rwxr-xr-xtestautomation/graphics/optional/i_only_updt_1.bas77
-rwxr-xr-xtestautomation/graphics/optional/i_only_updt_2.bas76
-rwxr-xr-xtestautomation/graphics/optional/i_pengine.bas78
-rwxr-xr-xtestautomation/graphics/optional/i_saveloadlayout.bas60
-rwxr-xr-xtestautomation/graphics/optional/i_shape.bas56
-rwxr-xr-xtestautomation/graphics/optional/i_slidecopy.bas61
-rwxr-xr-xtestautomation/graphics/optional/i_slideshow.bas92
-rwxr-xr-xtestautomation/graphics/optional/i_us_presentation.bas64
-rwxr-xr-xtestautomation/graphics/optional/i_view.bas60
-rw-r--r--testautomation/graphics/optional/includes/draw/d_002_.inc109
-rw-r--r--testautomation/graphics/optional/includes/draw/d_003_.inc82
-rw-r--r--testautomation/graphics/optional/includes/draw/d_005_.inc51
-rw-r--r--testautomation/graphics/optional/includes/draw/d_007.inc47
-rw-r--r--testautomation/graphics/optional/includes/global/export_graphic.inc609
-rw-r--r--testautomation/graphics/optional/includes/global/export_graphic_2.inc1418
-rw-r--r--testautomation/graphics/optional/includes/global/g_accessability.inc284
-rw-r--r--testautomation/graphics/optional/includes/global/g_area.inc407
-rw-r--r--testautomation/graphics/optional/includes/global/g_arrangealign.inc317
-rw-r--r--testautomation/graphics/optional/includes/global/g_autocorrection.inc458
-rw-r--r--testautomation/graphics/optional/includes/global/g_character.inc714
-rw-r--r--testautomation/graphics/optional/includes/global/g_clipboard.inc468
-rw-r--r--testautomation/graphics/optional/includes/global/g_clipexport.inc490
-rw-r--r--testautomation/graphics/optional/includes/global/g_clipexport2.inc429
-rw-r--r--testautomation/graphics/optional/includes/global/g_clipexport3.inc729
-rw-r--r--testautomation/graphics/optional/includes/global/g_convertto.inc366
-rw-r--r--testautomation/graphics/optional/includes/global/g_crossfading.inc266
-rw-r--r--testautomation/graphics/optional/includes/global/g_customshapes.inc847
-rw-r--r--testautomation/graphics/optional/includes/global/g_demoguide.inc464
-rw-r--r--testautomation/graphics/optional/includes/global/g_dimensions.inc116
-rw-r--r--testautomation/graphics/optional/includes/global/g_edit.inc283
-rw-r--r--testautomation/graphics/optional/includes/global/g_export_html.inc757
-rw-r--r--testautomation/graphics/optional/includes/global/g_find_replace.inc362
-rw-r--r--testautomation/graphics/optional/includes/global/g_format.inc1250
-rw-r--r--testautomation/graphics/optional/includes/global/g_group.inc106
-rw-r--r--testautomation/graphics/optional/includes/global/g_imagemap.inc159
-rw-r--r--testautomation/graphics/optional/includes/global/g_insert.inc1227
-rw-r--r--testautomation/graphics/optional/includes/global/g_line.inc532
-rw-r--r--testautomation/graphics/optional/includes/global/g_load_save.inc788
-rw-r--r--testautomation/graphics/optional/includes/global/g_mediaplayer.inc256
-rw-r--r--testautomation/graphics/optional/includes/global/g_navigator.inc309
-rw-r--r--testautomation/graphics/optional/includes/global/g_ole.inc448
-rw-r--r--testautomation/graphics/optional/includes/global/g_paneview.inc535
-rw-r--r--testautomation/graphics/optional/includes/global/g_paragraph.inc211
-rw-r--r--testautomation/graphics/optional/includes/global/g_savepictureas.inc769
-rw-r--r--testautomation/graphics/optional/includes/global/g_shaddow.inc512
-rw-r--r--testautomation/graphics/optional/includes/global/g_slidelayer.inc92
-rw-r--r--testautomation/graphics/optional/includes/global/g_spellcheck.inc914
-rw-r--r--testautomation/graphics/optional/includes/global/g_stylist.inc1023
-rw-r--r--testautomation/graphics/optional/includes/global/g_tables.inc555
-rw-r--r--testautomation/graphics/optional/includes/global/g_toolbars.inc358
-rw-r--r--testautomation/graphics/optional/includes/global/g_tools.inc430
-rw-r--r--testautomation/graphics/optional/includes/global/g_zoom.inc133
-rw-r--r--testautomation/graphics/optional/includes/global/gallery.inc949
-rw-r--r--testautomation/graphics/optional/includes/global/gallery2.inc258
-rw-r--r--testautomation/graphics/optional/includes/global/id_001.inc739
-rw-r--r--testautomation/graphics/optional/includes/global/id_002.inc449
-rw-r--r--testautomation/graphics/optional/includes/global/id_003.inc272
-rw-r--r--testautomation/graphics/optional/includes/global/id_004.inc388
-rw-r--r--testautomation/graphics/optional/includes/global/id_005.inc804
-rw-r--r--testautomation/graphics/optional/includes/global/id_006.inc362
-rw-r--r--testautomation/graphics/optional/includes/global/id_007.inc426
-rw-r--r--testautomation/graphics/optional/includes/global/id_008.inc71
-rw-r--r--testautomation/graphics/optional/includes/global/id_009.inc243
-rw-r--r--testautomation/graphics/optional/includes/global/id_011.inc995
-rw-r--r--testautomation/graphics/optional/includes/impress/i_animation.inc186
-rw-r--r--testautomation/graphics/optional/includes/impress/i_headerfooter.inc685
-rw-r--r--testautomation/graphics/optional/includes/impress/i_pengine.inc762
-rw-r--r--testautomation/graphics/optional/includes/impress/i_pengine1.inc1356
-rw-r--r--testautomation/graphics/optional/includes/impress/i_pengine2.inc608
-rw-r--r--testautomation/graphics/optional/includes/impress/i_saveloadlayout.inc403
-rw-r--r--testautomation/graphics/optional/includes/impress/i_shape.inc89
-rw-r--r--testautomation/graphics/optional/includes/impress/i_slidecopy.inc960
-rw-r--r--testautomation/graphics/optional/includes/impress/i_slidelayer.inc521
-rw-r--r--testautomation/graphics/optional/includes/impress/i_slideshow.inc1232
-rw-r--r--testautomation/graphics/optional/includes/impress/i_slideshow2.inc1007
-rw-r--r--testautomation/graphics/optional/includes/impress/i_slideshow3.inc1101
-rw-r--r--testautomation/graphics/optional/includes/impress/i_stylist.inc157
-rw-r--r--testautomation/graphics/optional/includes/impress/i_us2_present.inc339
-rw-r--r--testautomation/graphics/optional/includes/impress/i_us_present.inc739
-rw-r--r--testautomation/graphics/optional/includes/impress/i_view.inc318
-rw-r--r--testautomation/graphics/optional/includes/impress/im_002_.inc52
-rw-r--r--testautomation/graphics/optional/includes/impress/im_003_.inc254
-rw-r--r--testautomation/graphics/optional/includes/impress/im_004_.inc58
-rw-r--r--testautomation/graphics/optional/includes/impress/im_005_.inc50
-rw-r--r--testautomation/graphics/optional/includes/impress/im_007_.inc693
-rw-r--r--testautomation/graphics/optional/includes/impress/im_011_.inc173
-rw-r--r--testautomation/graphics/optional/includes/impress/options.inc270
-rwxr-xr-xtestautomation/graphics/required/d_opt.bas72
-rwxr-xr-xtestautomation/graphics/required/d_updt.bas92
-rwxr-xr-xtestautomation/graphics/required/i_opt.bas74
-rwxr-xr-xtestautomation/graphics/required/i_updt_1.bas75
-rwxr-xr-xtestautomation/graphics/required/i_updt_2.bas79
-rw-r--r--testautomation/graphics/required/includes/draw/d_002_.inc109
-rw-r--r--testautomation/graphics/required/includes/draw/d_003_.inc82
-rw-r--r--testautomation/graphics/required/includes/draw/d_005_.inc51
-rw-r--r--testautomation/graphics/required/includes/draw/d_007.inc47
-rw-r--r--testautomation/graphics/required/includes/global/gallery.inc1000
-rw-r--r--testautomation/graphics/required/includes/global/gallery2.inc290
-rw-r--r--testautomation/graphics/required/includes/global/id_001.inc823
-rw-r--r--testautomation/graphics/required/includes/global/id_002.inc578
-rw-r--r--testautomation/graphics/required/includes/global/id_003.inc351
-rw-r--r--testautomation/graphics/required/includes/global/id_004.inc517
-rw-r--r--testautomation/graphics/required/includes/global/id_005.inc1028
-rw-r--r--testautomation/graphics/required/includes/global/id_006.inc468
-rw-r--r--testautomation/graphics/required/includes/global/id_007.inc578
-rw-r--r--testautomation/graphics/required/includes/global/id_008.inc78
-rw-r--r--testautomation/graphics/required/includes/global/id_009.inc289
-rw-r--r--testautomation/graphics/required/includes/global/id_011.inc1159
-rw-r--r--testautomation/graphics/required/includes/global/id_opt_1.inc1059
-rw-r--r--testautomation/graphics/required/includes/global/id_opt_2.inc135
-rw-r--r--testautomation/graphics/required/includes/impress/i_opt_1_.inc199
-rw-r--r--testautomation/graphics/required/includes/impress/im_002_.inc52
-rw-r--r--testautomation/graphics/required/includes/impress/im_003_.inc250
-rw-r--r--testautomation/graphics/required/includes/impress/im_004_.inc56
-rw-r--r--testautomation/graphics/required/includes/impress/im_005_.inc49
-rw-r--r--testautomation/graphics/required/includes/impress/im_007_.inc719
-rw-r--r--testautomation/graphics/required/includes/impress/im_011_.inc172
-rwxr-xr-xtestautomation/graphics/required/input/255chars.dxf40724
-rwxr-xr-xtestautomation/graphics/required/input/29secsound.wavbin0 -> 5204330 bytes
-rwxr-xr-xtestautomation/graphics/required/input/Blueprint.odgbin0 -> 34747 bytes
-rwxr-xr-xtestautomation/graphics/required/input/FormatConnector.odgbin0 -> 7205 bytes
-rwxr-xr-xtestautomation/graphics/required/input/FormatConnector.odpbin0 -> 8965 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.PSDbin0 -> 122042 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.bmpbin0 -> 1456904 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.cgmbin0 -> 10850 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.dxf1234
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.emfbin0 -> 1457144 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.epsbin0 -> 36862 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.gifbin0 -> 61548 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.giffbin0 -> 109193 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.jpegbin0 -> 10520 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.jpgbin0 -> 31861 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.metbin0 -> 1458043 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pbmbin0 -> 61015 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pcdbin0 -> 3944448 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pctbin0 -> 152900 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pcxbin0 -> 76917 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pgm3
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.pngbin0 -> 57476 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.ppm218
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.rasbin0 -> 773076 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.sgfbin0 -> 23794 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.sgvbin0 -> 1212 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.svmbin0 -> 1456971 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.tgabin0 -> 318936 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.tifbin0 -> 222342 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.tiffbin0 -> 154374 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.wmfbin0 -> 486926 bytes
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.xbm29
-rwxr-xr-xtestautomation/graphics/required/input/SaveAsPicture/SaveAsPicture.xpm866
-rwxr-xr-xtestautomation/graphics/required/input/allshapes.odpbin0 -> 38069 bytes
-rwxr-xr-xtestautomation/graphics/required/input/allshapes2.odpbin0 -> 33965 bytes
-rwxr-xr-xtestautomation/graphics/required/input/blip.wavbin0 -> 176444 bytes
-rwxr-xr-xtestautomation/graphics/required/input/diashow.odpbin0 -> 233833 bytes
-rwxr-xr-xtestautomation/graphics/required/input/dotNetOverview.pptbin0 -> 6485504 bytes
-rwxr-xr-xtestautomation/graphics/required/input/effects.odpbin0 -> 6174 bytes
-rwxr-xr-xtestautomation/graphics/required/input/einfg.ini14
-rwxr-xr-xtestautomation/graphics/required/input/engtext.odgbin0 -> 7980 bytes
-rwxr-xr-xtestautomation/graphics/required/input/engtext.odpbin0 -> 9878 bytes
-rwxr-xr-xtestautomation/graphics/required/input/export_graphic2.odpbin0 -> 1526400 bytes
-rwxr-xr-xtestautomation/graphics/required/input/export_graphic3.odgbin0 -> 186696 bytes
-rwxr-xr-xtestautomation/graphics/required/input/export_graphic3.odpbin0 -> 188029 bytes
-rwxr-xr-xtestautomation/graphics/required/input/frame1.htm16
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_1.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_31.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_33.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_34.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_36.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_39.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_46.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_48.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_49.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_55.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_7.txt30
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_81.txt29
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_82.txt29
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_86.txt29
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_88.txt29
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_oo_1.txt6
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_oo_49.txt6
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_oo_50.txt6
-rwxr-xr-xtestautomation/graphics/required/input/gallery/gal_oo_84.txt6
-rwxr-xr-xtestautomation/graphics/required/input/generic_de.pptbin0 -> 741376 bytes
-rwxr-xr-xtestautomation/graphics/required/input/graphicexport.odgbin0 -> 115305 bytes
-rwxr-xr-xtestautomation/graphics/required/input/graphicexport.odpbin0 -> 852873 bytes
-rwxr-xr-xtestautomation/graphics/required/input/graphicexport_pdf.odgbin0 -> 120020 bytes
-rwxr-xr-xtestautomation/graphics/required/input/graphicexport_pdf.odpbin0 -> 1676079 bytes
-rwxr-xr-xtestautomation/graphics/required/input/gridtst.odgbin0 -> 7223 bytes
-rwxr-xr-xtestautomation/graphics/required/input/gridtst.odpbin0 -> 8449 bytes
-rwxr-xr-xtestautomation/graphics/required/input/gridtst.sxdbin0 -> 5347 bytes
-rwxr-xr-xtestautomation/graphics/required/input/gridtst.sxibin0 -> 6519 bytes
-rwxr-xr-xtestautomation/graphics/required/input/i_us_large.jpgbin0 -> 6483577 bytes
-rwxr-xr-xtestautomation/graphics/required/input/imsusmap.cgmbin0 -> 15536 bytes
-rwxr-xr-xtestautomation/graphics/required/input/leer.odgbin0 -> 7108 bytes
-rwxr-xr-xtestautomation/graphics/required/input/leer.odpbin0 -> 9050 bytes
-rwxr-xr-xtestautomation/graphics/required/input/ole.bmpbin0 -> 2672794 bytes
-rwxr-xr-xtestautomation/graphics/required/input/oletest.odgbin0 -> 32898 bytes
-rwxr-xr-xtestautomation/graphics/required/input/outlinefromwriter.odtbin0 -> 7818 bytes
-rwxr-xr-xtestautomation/graphics/required/input/passwo52.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/graphics/required/input/passwo52.sddbin0 -> 32256 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_1.odgbin0 -> 10261 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_1.odpbin0 -> 13772 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_3.odgbin0 -> 10506 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_3.odpbin0 -> 13728 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_31.odgbin0 -> 9606 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_31.odpbin0 -> 13837 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_33.odgbin0 -> 9773 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_33.odpbin0 -> 12994 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_34.odgbin0 -> 9659 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_34.odpbin0 -> 14831 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_36.odgbin0 -> 9896 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_36.odpbin0 -> 14284 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_39.odgbin0 -> 9123 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_39.odpbin0 -> 11319 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_46.odgbin0 -> 11019 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_46.odpbin0 -> 15605 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_48.odgbin0 -> 10064 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_48.odpbin0 -> 12666 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_48.sxdbin0 -> 6627 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_48.sxibin0 -> 7578 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_49.odgbin0 -> 11187 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_49.odpbin0 -> 13159 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_50.odgbin0 -> 8882 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_50.odpbin0 -> 10544 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_55.odgbin0 -> 10281 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_55.odpbin0 -> 13487 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_81.odgbin0 -> 18373 bytes
-rwxr-xr-xtestautomation/graphics/required/input/recht_81.odpbin0 -> 10934 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont.odgbin0 -> 7647 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont.odpbin0 -> 9412 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont1.odgbin0 -> 7679 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont1.odpbin0 -> 9444 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont33.odgbin0 -> 7682 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont33.odpbin0 -> 9448 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont34.odgbin0 -> 7681 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont34.odpbin0 -> 9445 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont36.odgbin0 -> 7682 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont36.odpbin0 -> 9446 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont39.odgbin0 -> 7680 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont39.odpbin0 -> 9445 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont46.odgbin0 -> 7682 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont46.odpbin0 -> 9446 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont48.odgbin0 -> 7717 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont48.odpbin0 -> 9476 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont49.odgbin0 -> 7681 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont49.odpbin0 -> 9447 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont50.odpbin0 -> 8746 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont55.odgbin0 -> 7681 bytes
-rwxr-xr-xtestautomation/graphics/required/input/rightfont55.odpbin0 -> 9446 bytes
-rwxr-xr-xtestautomation/graphics/required/input/sample.movbin0 -> 72490 bytes
-rwxr-xr-xtestautomation/graphics/required/input/screen_white.wmfbin0 -> 37252 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/1Lines.pptbin0 -> 13312 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/2Connectors.pptbin0 -> 24064 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/3BasicShapes.pptbin0 -> 42496 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/4BlockArrows.pptbin0 -> 36352 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/5Flowchart.pptbin0 -> 36352 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/6StarsBanners.pptbin0 -> 28160 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/7Callouts.pptbin0 -> 33792 bytes
-rwxr-xr-xtestautomation/graphics/required/input/shapes/8ActionButtons.pptbin0 -> 26624 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_1.odgbin0 -> 7262 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_1.odpbin0 -> 9741 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_31.odgbin0 -> 7494 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_31.odpbin0 -> 9194 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_31.sxdbin0 -> 8237 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_31.sxibin0 -> 9899 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_33.odgbin0 -> 7313 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_33.odpbin0 -> 9123 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_34.odgbin0 -> 7911 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_34.odpbin0 -> 8428 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_36.odgbin0 -> 7241 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_36.odpbin0 -> 9732 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_39.odgbin0 -> 7269 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_39.odpbin0 -> 9087 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_46.odgbin0 -> 7197 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_46.odpbin0 -> 8445 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_48.odgbin0 -> 7268 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_48.odpbin0 -> 8454 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_49.odgbin0 -> 7303 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_49.odpbin0 -> 9143 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_50.odgbin0 -> 8222 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_50.odpbin0 -> 9927 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_55.odgbin0 -> 7158 bytes
-rwxr-xr-xtestautomation/graphics/required/input/silben_55.odpbin0 -> 8992 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_1.odgbin0 -> 13092 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_1.odpbin0 -> 16509 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_1.txt152
-rwxr-xr-xtestautomation/graphics/required/input/spellb_31.odgbin0 -> 10548 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_31.odpbin0 -> 15188 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_31.txt188
-rwxr-xr-xtestautomation/graphics/required/input/spellb_33.odgbin0 -> 10054 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_33.odpbin0 -> 13618 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_33.txt152
-rwxr-xr-xtestautomation/graphics/required/input/spellb_34.odgbin0 -> 10624 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_34.odpbin0 -> 15499 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_34.txt200
-rwxr-xr-xtestautomation/graphics/required/input/spellb_36.odgbin0 -> 11043 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_36.odpbin0 -> 15528 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_36.txt184
-rwxr-xr-xtestautomation/graphics/required/input/spellb_39.odgbin0 -> 14115 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_39.odpbin0 -> 18441 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_39.txt221
-rwxr-xr-xtestautomation/graphics/required/input/spellb_49.odgbin0 -> 13466 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_49.odpbin0 -> 16938 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_49.txt152
-rwxr-xr-xtestautomation/graphics/required/input/spellb_50.odgbin0 -> 10752 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_50.odpbin0 -> 14148 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_50.txt202
-rwxr-xr-xtestautomation/graphics/required/input/spellb_55.odgbin0 -> 10541 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_55.odpbin0 -> 15187 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_55.txt199
-rwxr-xr-xtestautomation/graphics/required/input/spellb_7.odgbin0 -> 8841 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_7.odpbin0 -> 13868 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_7.txt56
-rwxr-xr-xtestautomation/graphics/required/input/spellb_82.odgbin0 -> 14978 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_82.odpbin0 -> 19689 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_82.txt196
-rwxr-xr-xtestautomation/graphics/required/input/spellb_86.odgbin0 -> 14680 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_86.odpbin0 -> 16580 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_86.txt214
-rwxr-xr-xtestautomation/graphics/required/input/spellb_88.odgbin0 -> 15497 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_88.odpbin0 -> 20549 bytes
-rwxr-xr-xtestautomation/graphics/required/input/spellb_88.txt214
-rwxr-xr-xtestautomation/graphics/required/input/tbo_alf_.odgbin0 -> 243716 bytes
-rwxr-xr-xtestautomation/graphics/required/input/tbo_alf_.odpbin0 -> 173471 bytes
-rwxr-xr-xtestautomation/graphics/required/input/tchinese.odgbin0 -> 9813 bytes
-rwxr-xr-xtestautomation/graphics/required/input/tchinese.odpbin0 -> 10574 bytes
-rw-r--r--testautomation/graphics/tools/id_tools.inc1534
-rw-r--r--testautomation/graphics/tools/id_tools_2.inc1066
-rwxr-xr-xtestautomation/graphics/tools/locale_1.txt134
-rwxr-xr-xtestautomation/graphics/tools/makeLokaleTxt.bas292
-rw-r--r--testautomation/math/optional/includes/m_101_.inc714
-rw-r--r--testautomation/math/optional/includes/m_105.inc692
-rw-r--r--testautomation/math/optional/includes/m_106_.inc65
-rwxr-xr-xtestautomation/math/optional/input/101_1.sxmbin0 -> 3284 bytes
-rwxr-xr-xtestautomation/math/optional/input/101_2.sxwbin0 -> 20478 bytes
-rwxr-xr-xtestautomation/math/optional/input/filter/math.sxwbin0 -> 5399 bytes
-rwxr-xr-xtestautomation/math/optional/input/filter/precal_test.docbin0 -> 143360 bytes
-rwxr-xr-xtestautomation/math/optional/input/filter/quantum_field.docbin0 -> 219648 bytes
-rwxr-xr-xtestautomation/math/optional/input/filter/seventh_grade.docbin0 -> 244224 bytes
-rwxr-xr-xtestautomation/math/optional/m_lvl1.bas60
-rw-r--r--testautomation/math/required/includes/m_001_.inc662
-rw-r--r--testautomation/math/required/includes/m_002_.inc132
-rw-r--r--testautomation/math/required/includes/m_003_.inc177
-rw-r--r--testautomation/math/required/includes/m_004_.inc286
-rw-r--r--testautomation/math/required/includes/m_005_.inc309
-rw-r--r--testautomation/math/required/includes/m_006_.inc53
-rw-r--r--testautomation/math/required/includes/m_007_.inc274
-rw-r--r--testautomation/math/required/includes/m_010_.inc670
-rw-r--r--testautomation/math/required/includes/m_020_.inc72
-rwxr-xr-xtestautomation/math/required/input/ShortLicense.oxtbin0 -> 9406 bytes
-rw-r--r--testautomation/math/required/input/test.odtbin0 -> 6725 bytes
-rwxr-xr-xtestautomation/math/required/input/unknown-dependency.oxtbin0 -> 1633 bytes
-rwxr-xr-xtestautomation/math/required/m_updt.bas81
-rw-r--r--testautomation/prj/build.lst1
-rw-r--r--testautomation/prj/d.lst4
-rwxr-xr-xtestautomation/spreadsheet/optional/c_arrayconstants.bas61
-rwxr-xr-xtestautomation/spreadsheet/optional/c_getpivotdata.bas62
-rwxr-xr-xtestautomation/spreadsheet/optional/c_import_general.bas87
-rwxr-xr-xtestautomation/spreadsheet/optional/c_namedrange.bas66
-rwxr-xr-xtestautomation/spreadsheet/optional/c_print_scale.bas53
-rwxr-xr-xtestautomation/spreadsheet/optional/c_printrange.bas67
-rwxr-xr-xtestautomation/spreadsheet/optional/c_so7_pp1.bas69
-rwxr-xr-xtestautomation/spreadsheet/optional/c_solver.bas62
-rw-r--r--testautomation/spreadsheet/optional/c_validity.bas87
-rw-r--r--testautomation/spreadsheet/optional/includes/arrayconstants/c_arrayconstants.inc316
-rw-r--r--testautomation/spreadsheet/optional/includes/getpivotdata/c_getpivotdata.inc326
-rw-r--r--testautomation/spreadsheet/optional/includes/import_general/c_import_general.inc180
-rw-r--r--testautomation/spreadsheet/optional/includes/namedrange/c_namedrange.inc188
-rw-r--r--testautomation/spreadsheet/optional/includes/printrange/c_printrange.inc923
-rw-r--r--testautomation/spreadsheet/optional/includes/printscale/c_print_scale.inc299
-rw-r--r--testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_ibis.inc221
-rw-r--r--testautomation/spreadsheet/optional/includes/so7pp1/c_so7_pp1_iz.inc211
-rw-r--r--testautomation/spreadsheet/optional/includes/solver/c_solver.inc225
-rw-r--r--testautomation/spreadsheet/optional/includes/validity/c_validity.inc378
-rwxr-xr-xtestautomation/spreadsheet/optional/input/111099.xlsbin0 -> 24064 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/111158.xlsbin0 -> 67584 bytes
-rw-r--r--testautomation/spreadsheet/optional/input/Solver_testdoc01.odsbin0 -> 10326 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/arrayconstants.xlsbin0 -> 74752 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/datapilot.odsbin0 -> 13211 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/getpivotdata2.xlsbin0 -> 13824 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/bugdocs/1024.odsbin0 -> 12880 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/common/csv.csv7
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/common/dbase.dbfbin0 -> 1166 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/common/dbase.dbt0
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/corel/qpro6.wb2bin0 -> 7290 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/lotus/123toexcel.xlsbin0 -> 7168 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/lotus/lotus123.123bin0 -> 13540 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/lotus/lotuswk1.wk1bin0 -> 3999 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/lotus/lotuswks.wksbin0 -> 6902 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/dif.DIF110
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel2.xlsbin0 -> 31481 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel3.xlsbin0 -> 23510 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel4.xlsbin0 -> 12517 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel95.xlsbin0 -> 60416 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel95tmpl.xltbin0 -> 34816 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel97.xlsbin0 -> 51712 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excel97tmpl.xltbin0 -> 51712 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/excelxml.xml254
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/ms_excel_2007_binary.xlsbbin0 -> 8797 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/ms_excel_2007_xml.xlsxbin0 -> 8210 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/ms_excel_2007_xml_macroenabled.xlsmbin0 -> 8243 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/ms_excel_2007_xml_template.xltxbin0 -> 8218 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/ms_excel_2007_xml_template_macroenabled.xltmbin0 -> 8246 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/microsoft/sylk.slk1
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/preselected_filter/rtf.rtf218
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/preselected_filter/txt.txt7
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so1.sdcbin0 -> 80228 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so3.sdcbin0 -> 29696 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so3tmpl.vorbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so4.sdcbin0 -> 131584 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so4tmpl.vorbin0 -> 24576 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so5.sdcbin0 -> 24064 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so5tmpl.vorbin0 -> 404480 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so7.sxcbin0 -> 14926 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so7tmpl.stcbin0 -> 11367 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so8.odsbin0 -> 38161 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/sun/so8tmpl.otsbin0 -> 37500 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/tableimport/HTML_Doc_Numberformats_in_table.html107
-rwxr-xr-xtestautomation/spreadsheet/optional/input/loadsave/tableimport/HTML_Doc_Numberformats_in_table.rtf62
-rwxr-xr-xtestautomation/spreadsheet/optional/input/namedrange.sxcbin0 -> 6538 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/printrange.sxcbin0 -> 9648 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/printrange.xlsbin0 -> 41984 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/printranges_3defined.odsbin0 -> 13408 bytes
-rw-r--r--testautomation/spreadsheet/optional/input/stest_large.odsbin0 -> 23467 bytes
-rwxr-xr-xtestautomation/spreadsheet/optional/input/validity.odsbin0 -> 22633 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/c_updt1.bas72
-rwxr-xr-xtestautomation/spreadsheet/required/c_updt2.bas75
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_datamenu.inc1047
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_editmenu.inc1029
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_editmenu2.inc669
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_filemenu.inc591
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_formatmenu.inc947
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_formatmenu2.inc826
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_formatmenu3.inc1068
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_helpmenu.inc119
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_insertmenu.inc1307
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc995
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_toolsmenu2.inc517
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_viewmenu.inc394
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_windowmenu.inc141
-rwxr-xr-xtestautomation/spreadsheet/required/input/Database_Refresh.odsbin0 -> 10588 bytes
-rw-r--r--testautomation/spreadsheet/required/input/DocwithMacro.odsbin0 -> 7765 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/datapilot.odsbin0 -> 12613 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/english.odsbin0 -> 6384 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/korean.odsbin0 -> 12224 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/linkclient.odsbin0 -> 6185 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/linkserver.odsbin0 -> 5995 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/merge.odsbin0 -> 6349 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/recentdocument.odsbin0 -> 6141 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/tEditObject.odsbin0 -> 11589 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/tFileOpen_CSV.csv3
-rwxr-xr-xtestautomation/spreadsheet/required/input/tFileOpen_DBF.dbfbin0 -> 1166 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/tFileOpen_DBF.dbt0
-rwxr-xr-xtestautomation/spreadsheet/required/input/twoobjects.odsbin0 -> 7269 bytes
-rwxr-xr-xtestautomation/spreadsheet/required/input/twosheets.odsbin0 -> 6411 bytes
-rw-r--r--testautomation/spreadsheet/tools/includes/c_cell_tools.inc102
-rw-r--r--testautomation/spreadsheet/tools/includes/c_l10n_tools.inc217
-rw-r--r--testautomation/spreadsheet/tools/includes/c_select_tools.inc232
-rw-r--r--testautomation/spreadsheet/tools/includes/c_tool_l10n_mnomics.inc160
-rw-r--r--testautomation/spreadsheet/tools/includes/c_tool_options.inc95
-rw-r--r--testautomation/spreadsheet/tools/includes/c_validity_tools.inc139
-rwxr-xr-xtestautomation/spreadsheet/tools/input/Errorcodes.odsbin0 -> 13154 bytes
-rwxr-xr-xtestautomation/spreadsheet/tools/input/Functionnames.odsbin0 -> 19172 bytes
-rwxr-xr-xtestautomation/tools/analyze/app.srs2807
-rwxr-xr-xtestautomation/tools/analyze/make_summary.pl127
-rwxr-xr-xtestautomation/tools/analyze/translate_res_file.pl241
-rwxr-xr-xtestautomation/tools/hid/cons.txt83
-rwxr-xr-xtestautomation/tools/hid/hid.bat2
-rwxr-xr-xtestautomation/tools/hid/hid.pl92
-rwxr-xr-xtestautomation/tools/hid/hid.sh2
-rwxr-xr-xtestautomation/tools/run_tests/run_tests.sh196
-rwxr-xr-xtestautomation/tools/run_tests/run_tests.vbs100
-rw-r--r--testautomation/writer/optional/includes/CJKCTLDependency/CJKCTLDependency1.inc980
-rw-r--r--testautomation/writer/optional/includes/alternative_text/w_alternative_text.inc299
-rw-r--r--testautomation/writer/optional/includes/autocorrection/w_autocorrect1.inc1446
-rw-r--r--testautomation/writer/optional/includes/autocorrection/w_autocorrect2.inc474
-rw-r--r--testautomation/writer/optional/includes/autotext/w_autotext.inc658
-rw-r--r--testautomation/writer/optional/includes/calculate/w_calculate.inc463
-rw-r--r--testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate1.inc409
-rw-r--r--testautomation/writer/optional/includes/chinesetranslate/w_chinesetranslate2.inc454
-rw-r--r--testautomation/writer/optional/includes/clipboard/clipbrd_func.inc447
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_210_.inc455
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_211_.inc540
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_212_.inc532
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_213_.inc533
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_214_.inc524
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_215_.inc448
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_216_.inc440
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_217_.inc393
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_218_.inc402
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_219_.inc397
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_220_.inc392
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_221_.inc430
-rw-r--r--testautomation/writer/optional/includes/clipboard/w_222_.inc432
-rw-r--r--testautomation/writer/optional/includes/contextmenu/w_contextmenu1.inc433
-rw-r--r--testautomation/writer/optional/includes/drawing/w_drawing_tools1.inc1027
-rw-r--r--testautomation/writer/optional/includes/drawing/w_drawing_tools2.inc698
-rw-r--r--testautomation/writer/optional/includes/dropdownLB/w_dropdownLB1.inc1093
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields1.inc394
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields2.inc1064
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields3.inc993
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields4.inc1034
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields5.inc839
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields6.inc830
-rw-r--r--testautomation/writer/optional/includes/fields/w_fields7.inc421
-rw-r--r--testautomation/writer/optional/includes/filter/w_filter.inc608
-rw-r--r--testautomation/writer/optional/includes/fontwork/w_fontwork1.inc400
-rw-r--r--testautomation/writer/optional/includes/formatcharacter/w_format_character1.inc743
-rw-r--r--testautomation/writer/optional/includes/formatpage/w_formatpage1.inc876
-rw-r--r--testautomation/writer/optional/includes/formatpage/w_formatpage2.inc986
-rw-r--r--testautomation/writer/optional/includes/formatpage/w_formatpage3.inc1370
-rw-r--r--testautomation/writer/optional/includes/formatpage/w_formatpage4.inc787
-rw-r--r--testautomation/writer/optional/includes/formatparagraph/w_formatparagraph1.inc1263
-rw-r--r--testautomation/writer/optional/includes/formatparagraph/w_formatparagraph2.inc1463
-rw-r--r--testautomation/writer/optional/includes/formatparagraph/w_formatparagraph3.inc1199
-rw-r--r--testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion1.inc657
-rw-r--r--testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion2.inc1540
-rw-r--r--testautomation/writer/optional/includes/hangulhanjaonversion/hhConversion3.inc999
-rw-r--r--testautomation/writer/optional/includes/hyphenation/w_hyphenation.inc380
-rw-r--r--testautomation/writer/optional/includes/insertgraphic/w_insertgraphic1.inc952
-rw-r--r--testautomation/writer/optional/includes/insertgraphic/w_insertgraphic2.inc985
-rw-r--r--testautomation/writer/optional/includes/insertgraphic/w_insertgraphic3.inc1041
-rw-r--r--testautomation/writer/optional/includes/insertgraphic/w_insertgraphic4.inc831
-rw-r--r--testautomation/writer/optional/includes/insertgraphic/w_insertgraphic5.inc755
-rw-r--r--testautomation/writer/optional/includes/loadsave/w_loadsave.inc488
-rw-r--r--testautomation/writer/optional/includes/navigator/w_navigator.inc809
-rw-r--r--testautomation/writer/optional/includes/number/w_205_.inc731
-rw-r--r--testautomation/writer/optional/includes/number/w_205a_.inc875
-rw-r--r--testautomation/writer/optional/includes/number/w_206_.inc726
-rw-r--r--testautomation/writer/optional/includes/number/w_207_.inc175
-rw-r--r--testautomation/writer/optional/includes/option/wh_o_1.inc642
-rw-r--r--testautomation/writer/optional/includes/option/wh_o_2.inc473
-rw-r--r--testautomation/writer/optional/includes/option/wh_o_3.inc389
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_1.inc937
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_2.inc972
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_3.inc1403
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_4.inc992
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_5.inc200
-rw-r--r--testautomation/writer/optional/includes/option/wr_o_a.inc663
-rw-r--r--testautomation/writer/optional/includes/redlining/w_redlining1.inc1233
-rw-r--r--testautomation/writer/optional/includes/redlining/w_redlining2.inc1267
-rw-r--r--testautomation/writer/optional/includes/regexp/regular.inc974
-rw-r--r--testautomation/writer/optional/includes/regexp/search.inc1689
-rw-r--r--testautomation/writer/optional/includes/regression/issuezilla/w_issuezilla_regression.inc515
-rw-r--r--testautomation/writer/optional/includes/section/w_section_1.inc620
-rw-r--r--testautomation/writer/optional/includes/section/w_section_2.inc1055
-rw-r--r--testautomation/writer/optional/includes/section/w_section_3.inc1761
-rw-r--r--testautomation/writer/optional/includes/section/w_section_4.inc1509
-rw-r--r--testautomation/writer/optional/includes/section/w_section_tools.inc186
-rw-r--r--testautomation/writer/optional/includes/shortcut/w_shortcuts.inc856
-rw-r--r--testautomation/writer/optional/includes/sorting/w_sorting1.inc663
-rw-r--r--testautomation/writer/optional/includes/sorting/w_sorting2.inc345
-rw-r--r--testautomation/writer/optional/includes/spellcheck/w_spellcheck.inc1475
-rw-r--r--testautomation/writer/optional/includes/spellcheck/w_spellcheck1.inc160
-rw-r--r--testautomation/writer/optional/includes/stylist/w_stylist.inc1016
-rw-r--r--testautomation/writer/optional/includes/table/w_204_.inc1157
-rw-r--r--testautomation/writer/optional/includes/table/w_204a_.inc1163
-rw-r--r--testautomation/writer/optional/includes/table/w_204b_.inc100
-rw-r--r--testautomation/writer/optional/includes/textframes/w_textframes1.inc1458
-rw-r--r--testautomation/writer/optional/includes/textframes/w_textframes2.inc1159
-rw-r--r--testautomation/writer/optional/includes/textframes/w_textframes3.inc1070
-rw-r--r--testautomation/writer/optional/includes/textframes/w_textframes4.inc1525
-rw-r--r--testautomation/writer/optional/includes/textframes/w_textframes5.inc753
-rw-r--r--testautomation/writer/optional/includes/tools/tools1.inc342
-rw-r--r--testautomation/writer/optional/includes/tools/tools2.inc426
-rw-r--r--testautomation/writer/optional/includes/undo/w_undo1.inc357
-rw-r--r--testautomation/writer/optional/includes/undo/w_undo_history_1.inc204
-rw-r--r--testautomation/writer/optional/includes/undo/w_undo_history_2.inc528
-rw-r--r--testautomation/writer/optional/includes/undo/w_undo_history_3.inc671
-rw-r--r--testautomation/writer/optional/includes/undo/w_undo_history_4.inc495
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling1.stwbin0 -> 6602 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling10.stwbin0 -> 6763 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling11.stwbin0 -> 6801 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling12.stwbin0 -> 6577 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling13.stwbin0 -> 6644 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling14.stwbin0 -> 6770 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling15.stwbin0 -> 6726 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling16.stwbin0 -> 6739 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling17.stwbin0 -> 6834 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling18.stwbin0 -> 6672 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling19.stwbin0 -> 6702 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling2.stwbin0 -> 6564 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling20.stwbin0 -> 6641 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling21.stwbin0 -> 6542 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling22.stwbin0 -> 6684 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling23.stwbin0 -> 6580 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling24.stwbin0 -> 6755 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling25.stwbin0 -> 6719 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling26.stwbin0 -> 6827 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling27.stwbin0 -> 6799 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling28.stwbin0 -> 6825 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling29.stwbin0 -> 6867 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling3.stwbin0 -> 6686 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling30.stwbin0 -> 6071 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling4.stwbin0 -> 6980 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling5.stwbin0 -> 6741 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling6.stwbin0 -> 6715 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling7.stwbin0 -> 6610 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling8.stwbin0 -> 6711 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/new_german_spelling9.stwbin0 -> 6773 bytes
-rwxr-xr-xtestautomation/writer/optional/input/advanced/tToolsAutocorrectWordCompletion_4.sxwbin0 -> 5891 bytes
-rwxr-xr-xtestautomation/writer/optional/input/alternative_text/jolink.jpgbin0 -> 11686 bytes
-rw-r--r--testautomation/writer/optional/input/autocorrection/01-01.odtbin0 -> 7798 bytes
-rw-r--r--testautomation/writer/optional/input/autocorrection/01.odtbin0 -> 7798 bytes
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/calc.sxcbin0 -> 9722 bytes
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/draw.sxdbin0 -> 10003 bytes
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/dummy.sxwbin0 -> 5998 bytes
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/dummy.txt2
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/flower.gifbin0 -> 6073 bytes
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/html.html93
-rwxr-xr-xtestautomation/writer/optional/input/clipboard/writer.sxwbin0 -> 18839 bytes
-rwxr-xr-xtestautomation/writer/optional/input/dropdownLB/DropDownListBox.docbin0 -> 23552 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/act_1.all16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_1.txt19
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_1.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_1.w9519
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_3.unx17
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_3.w9515
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_31.unx17
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_31.w9516
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_33.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_33.w9515
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_34.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_34.w9515
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_39.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_39.w9515
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_46.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_46.w9516
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_49.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_49.w9519
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_50.w9518
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_55.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_55.w9516
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_7.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_7.w9516
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_81.unx16
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_81.w9518
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_82.w9518
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_86.w9521
-rwxr-xr-xtestautomation/writer/optional/input/export/filter/exlst_88.w9518
-rwxr-xr-xtestautomation/writer/optional/input/export/odt/export1.odtbin0 -> 17537 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/odt/export2.odtbin0 -> 12082 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/odt/export3.odtbin0 -> 54196 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/odt/export4.odtbin0 -> 10133 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/sdw/sw50.sdwbin0 -> 46080 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/sdw/test1.sdwbin0 -> 21504 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/sdw/test2.sdwbin0 -> 144896 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/sxw/i50228.sxwbin0 -> 471146 bytes
-rwxr-xr-xtestautomation/writer/optional/input/export/sxw/test3.sxwbin0 -> 49456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/AboveBelow.sxwbin0 -> 5981 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/CombineTest.sxwbin0 -> 6134 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/Date.sxwbin0 -> 6011 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/Time.sxwbin0 -> 5890 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/chapterTest.sxwbin0 -> 5945 bytes
-rw-r--r--testautomation/writer/optional/input/fields/diploma.ottbin0 -> 18090 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/fields_docinfos.sxwbin0 -> 10496 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/numberRange.sxwbin0 -> 29143 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/pageTest.sxwbin0 -> 5717 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/staticsTest.sxwbin0 -> 8897 bytes
-rwxr-xr-xtestautomation/writer/optional/input/fields/statisticsTest.sxwbin0 -> 9094 bytes
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_cod_lin.txt0
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_cod_w95.txt111
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_1_all.txt72
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_33_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_34_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_39_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_46_all.txt63
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_46_exe.txt5
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_49_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_55_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_81_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_82_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_86_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_88_all.txt58
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_st_all.txt53
-rwxr-xr-xtestautomation/writer/optional/input/filter/if_w4w_lin.txt6
-rwxr-xr-xtestautomation/writer/optional/input/filter/lib/old/hwpreadermi.dll1557
-rwxr-xr-xtestautomation/writer/optional/input/filter/lib/old/jsreadermi.dll130
-rwxr-xr-xtestautomation/writer/optional/input/filter/lib/wps2star.dll159
-rwxr-xr-xtestautomation/writer/optional/input/filter/readme.txt16
-rwxr-xr-xtestautomation/writer/optional/input/filter/regcomp/regcompli16
-rwxr-xr-xtestautomation/writer/optional/input/filter/regcomp/regcompsi25
-rwxr-xr-xtestautomation/writer/optional/input/filter/regcomp/regcompss57
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_1.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_36.txt82
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_49.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_81.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_82.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_86.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_actua_88.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_1.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_36.txt82
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_49.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_81.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_82.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_86.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/sa_sorte_88.txt74
-rwxr-xr-xtestautomation/writer/optional/input/filter/wf____1_all.txt56
-rwxr-xr-xtestautomation/writer/optional/input/filter/wf____49.all0
-rwxr-xr-xtestautomation/writer/optional/input/filter/wf____49_all.txt57
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/pageLayout.sxwbin0 -> 5628 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testColumnInPage.sxwbin0 -> 5419 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testColumnInPage2.sxwbin0 -> 5409 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testColumnVertical.sxwbin0 -> 5267 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testFooterContent31.sxwbin0 -> 5488 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testFooterContent32.sxwbin0 -> 5469 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testForAutoFit.sxwbin0 -> 5542 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testHeaderContent29.sxwbin0 -> 5506 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testHeaderContent30.sxwbin0 -> 5499 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatpage/testSeparatorLine.sxwbin0 -> 5279 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/AddSpacingShouldCheck.docbin0 -> 28160 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/AddSpacingShouldNotCheck.docbin0 -> 28160 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/DropCapsTest.sxwbin0 -> 5523 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/TabsDecimal.sxwbin0 -> 5433 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/TabsTest.sxwbin0 -> 5467 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/alignmentTest.sxwbin0 -> 5114 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/alignmentTestJustified.sxwbin0 -> 5203 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/alignmentTestJustifiedCentered.sxwbin0 -> 5188 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/alignmentTestRight.sxwbin0 -> 5102 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/columnBreakParagraph.sxwbin0 -> 5242 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/columnBreakParagraphAfter.sxwbin0 -> 5090 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/columnBreakParagraphBefore.sxwbin0 -> 5245 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/eightLineAdd1Pic.sxwbin0 -> 6750 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/eightline.sxwbin0 -> 5225 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/hyphenation.sxwbin0 -> 4895 bytes
-rw-r--r--testautomation/writer/optional/input/formatparagraph/hyphenationNew.odtbin0 -> 8387 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/hyphenationNew.sxwbin0 -> 5266 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/indent.sxwbin0 -> 6259 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/pageBreakAfter.sxwbin0 -> 5044 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/pageBreakBefore.sxwbin0 -> 5056 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/paragraphNumbering.sxwbin0 -> 5477 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/registerTrue.sxwbin0 -> 6345 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/spacing.sxwbin0 -> 5746 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/spacing1.sxwbin0 -> 5741 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/specialHyphenation.sxwbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/testExpand.sxwbin0 -> 6264 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/textFlowOptions.sxwbin0 -> 5619 bytes
-rwxr-xr-xtestautomation/writer/optional/input/formatparagraph/textFlowOptions1.sxwbin0 -> 7632 bytes
-rwxr-xr-xtestautomation/writer/optional/input/graphics/bild.jpgbin0 -> 13711 bytes
-rwxr-xr-xtestautomation/writer/optional/input/graphics/bullet.gifbin0 -> 111 bytes
-rwxr-xr-xtestautomation/writer/optional/input/graphics/jolink.jpgbin0 -> 11686 bytes
-rw-r--r--testautomation/writer/optional/input/hangul/hangul.html32
-rw-r--r--testautomation/writer/optional/input/hangul/hangul.sxwbin0 -> 5861 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/ChineseToKorean.sxwbin0 -> 5545 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/KoreanToChinese.sxwbin0 -> 5530 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/Replace.sxwbin0 -> 5952 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/alwayIgnore.sxwbin0 -> 5517 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/alwaysReplace.sxwbin0 -> 5411 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/drawBox.sxwbin0 -> 5727 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/hangul.sxwbin0 -> 6809 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/multiLanguage_C.sxwbin0 -> 6235 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/multiLanguage_K.sxwbin0 -> 6244 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/multiSelection.sxwbin0 -> 5542 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/noKoreanAndChinese.sxwbin0 -> 15424 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/notConvertHangulHanja.sxwbin0 -> 5594 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/replaceAll.sxwbin0 -> 5411 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hangulhanjaonversion/textBox.sxwbin0 -> 5722 bytes
-rwxr-xr-xtestautomation/writer/optional/input/hyphenation/tHyphenation.odtbin0 -> 9034 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/amipro3.sam3107
-rwxr-xr-xtestautomation/writer/optional/input/import/dostext.txt79
-rwxr-xr-xtestautomation/writer/optional/input/import/dummy.sxwbin0 -> 5998 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/hangul.hwpbin0 -> 211128 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/html.html93
-rwxr-xr-xtestautomation/writer/optional/input/import/html/html.html93
-rwxr-xr-xtestautomation/writer/optional/input/import/mactext.txt1
-rwxr-xr-xtestautomation/writer/optional/input/import/pocketword.pswbin0 -> 37220 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/rtf.rtf408
-rwxr-xr-xtestautomation/writer/optional/input/import/sw1.sdwbin0 -> 103329 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw2.sdwbin0 -> 145047 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw30.sdwbin0 -> 16896 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw31.sdwbin0 -> 74240 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw31.vorbin0 -> 101888 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw40.sdwbin0 -> 219648 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw40_sp2.vorbin0 -> 15360 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw50.sdwbin0 -> 92672 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw50.vorbin0 -> 33280 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/sw60.sxwbin0 -> 9396 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/swdos.txt3314
-rwxr-xr-xtestautomation/writer/optional/input/import/unixtext.txt64
-rwxr-xr-xtestautomation/writer/optional/input/import/wintext.txt47
-rwxr-xr-xtestautomation/writer/optional/input/import/winw97.docbin0 -> 60416 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/winword6.docbin0 -> 108544 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/wpsfile.wpsbin0 -> 15631 bytes
-rwxr-xr-xtestautomation/writer/optional/input/import/xml2.odtbin0 -> 51176 bytes
-rwxr-xr-xtestautomation/writer/optional/input/insertgraphic/Bughunter.jpgbin0 -> 33124 bytes
-rwxr-xr-xtestautomation/writer/optional/input/insertgraphic/boy.gifbin0 -> 48286 bytes
-rwxr-xr-xtestautomation/writer/optional/input/insertgraphic/flowers.gifbin0 -> 9333 bytes
-rwxr-xr-xtestautomation/writer/optional/input/insertgraphic/game.bmpbin0 -> 75032 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/001.odtbin0 -> 8932 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/003.odtbin0 -> 9361 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/007.odtbin0 -> 9814 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/031.odtbin0 -> 8303 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/033.odtbin0 -> 8607 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/034.odtbin0 -> 8044 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/036.odtbin0 -> 8345 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/039.odtbin0 -> 8739 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/045.odtbin0 -> 8717 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/046.odtbin0 -> 8952 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/048.odtbin0 -> 8249 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/049.odtbin0 -> 7970 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/055.odtbin0 -> 9422 bytes
-rwxr-xr-xtestautomation/writer/optional/input/linguistik/sprache.odtbin0 -> 71268 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/dok1.sxwbin0 -> 5911 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/dok2.sxwbin0 -> 5908 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/dok3.sxwbin0 -> 5908 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/frame.sxgbin0 -> 5431 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/htmltest.sxgbin0 -> 5451 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/link_of_section_test.sxwbin0 -> 6195 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/update1.sxgbin0 -> 5283 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/update2.sxgbin0 -> 5283 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/update3.sxgbin0 -> 5278 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_12.sxgbin0 -> 120199 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_121.sxwbin0 -> 7410 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_122.sxwbin0 -> 5455 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_123.sxwbin0 -> 7315 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_124.sxwbin0 -> 7649 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_125.sxwbin0 -> 5174 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_126.sxwbin0 -> 7103 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_127.sxwbin0 -> 7103 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_128.sxwbin0 -> 7133 bytes
-rwxr-xr-xtestautomation/writer/optional/input/masterdoc/w_102a/st1_129.sxwbin0 -> 7103 bytes
-rwxr-xr-xtestautomation/writer/optional/input/menu/drums.jpgbin0 -> 43931 bytes
-rwxr-xr-xtestautomation/writer/optional/input/navigator/navigator.odtbin0 -> 123768 bytes
-rw-r--r--testautomation/writer/optional/input/navigator/st1_1.sxwbin0 -> 132211 bytes
-rwxr-xr-xtestautomation/writer/optional/input/number/format1.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format31.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format33.txt36
-rwxr-xr-xtestautomation/writer/optional/input/number/format36.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format39.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format44.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format46.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/format49.txt36
-rwxr-xr-xtestautomation/writer/optional/input/number/format86.txt40
-rwxr-xr-xtestautomation/writer/optional/input/number/numbering1.sxwbin0 -> 5504 bytes
-rwxr-xr-xtestautomation/writer/optional/input/number/regression/46588.docbin0 -> 19968 bytes
-rwxr-xr-xtestautomation/writer/optional/input/number/regression/73790.docbin0 -> 19968 bytes
-rwxr-xr-xtestautomation/writer/optional/input/number/regression/Unnumbered_outline.docbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/compatibility1.docbin0 -> 19968 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/ga000907.gifbin0 -> 21777 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/gridtst.sxwbin0 -> 27812 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/gridtst2.sxwbin0 -> 27150 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/htmltag.html19
-rwxr-xr-xtestautomation/writer/optional/input/options/options1.sxwbin0 -> 110364 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/options2.sxwbin0 -> 5204 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/options3.sxwbin0 -> 17454 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test.html93
-rwxr-xr-xtestautomation/writer/optional/input/options/test1.html72
-rwxr-xr-xtestautomation/writer/optional/input/options/test1_html_m5a52a8ec.jpgbin0 -> 3177 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test_html_616818a1.gifbin0 -> 2112 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test_html_8166445.jpgbin0 -> 5992 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test_html_m2e0be98f.gifbin0 -> 1597 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test_html_m3914db47.gifbin0 -> 1202 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/test_html_m3ad7a8be.gifbin0 -> 1243 bytes
-rwxr-xr-xtestautomation/writer/optional/input/options/wtitertest.sxwbin0 -> 68992 bytes
-rwxr-xr-xtestautomation/writer/optional/input/redlining/tRedlining_15.sxwbin0 -> 5945 bytes
-rwxr-xr-xtestautomation/writer/optional/input/redlining/tRedlining_4.sxwbin0 -> 5142 bytes
-rw-r--r--testautomation/writer/optional/input/regression/issuezilla/i103265.odtbin0 -> 8768 bytes
-rwxr-xr-xtestautomation/writer/optional/input/regression/issuezilla/i64991.odtbin0 -> 9344 bytes
-rwxr-xr-xtestautomation/writer/optional/input/regression/issuezilla/i65094a.odtbin0 -> 283217 bytes
-rwxr-xr-xtestautomation/writer/optional/input/regression/issuezilla/i65094b.odtbin0 -> 325787 bytes
-rwxr-xr-xtestautomation/writer/optional/input/regression/issuezilla/i69521.odtbin0 -> 21558 bytes
-rwxr-xr-xtestautomation/writer/optional/input/search/attrib.sxwbin0 -> 6328 bytes
-rwxr-xr-xtestautomation/writer/optional/input/search/regu_aus.sxwbin0 -> 6738 bytes
-rwxr-xr-xtestautomation/writer/optional/input/search/style_characters_raw.sxwbin0 -> 7592 bytes
-rwxr-xr-xtestautomation/writer/optional/input/search/style_characters_styles_allone.sxwbin0 -> 8025 bytes
-rwxr-xr-xtestautomation/writer/optional/input/search/such_u_e.sxwbin0 -> 8627 bytes
-rwxr-xr-xtestautomation/writer/optional/input/section/Footnote.sdwbin0 -> 504320 bytes
-rw-r--r--testautomation/writer/optional/input/section/bt.sxwbin0 -> 75639 bytes
-rwxr-xr-xtestautomation/writer/optional/input/section/section_test.sxdbin0 -> 11573 bytes
-rwxr-xr-xtestautomation/writer/optional/input/section/tParagraphSection_1.sxwbin0 -> 5942 bytes
-rwxr-xr-xtestautomation/writer/optional/input/section/tScenarioSection_1.sxwbin0 -> 5121 bytes
-rwxr-xr-xtestautomation/writer/optional/input/section/tScenarioSection_2.sxwbin0 -> 5473 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/phonelist.odtbin0 -> 7519 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/phonelist_sc.odtbin0 -> 7411 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort1.odmbin0 -> 7405 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort1.odtbin0 -> 7281 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort2.odmbin0 -> 6313 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort2.odtbin0 -> 6278 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort3.odmbin0 -> 7136 bytes
-rwxr-xr-xtestautomation/writer/optional/input/sorting/sort3.odtbin0 -> 7073 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/Language_Guessing_Sample_Texts.odtbin0 -> 9574 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/spellcheck_1.odtbin0 -> 7196 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/spellcheck_33.odtbin0 -> 7196 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/spellcheck_34.odtbin0 -> 7196 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/spellcheck_49.odtbin0 -> 7196 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_01.odtbin0 -> 6651 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_03.odtbin0 -> 6276 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_07.odtbin0 -> 7424 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_31.odtbin0 -> 6541 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_33.odtbin0 -> 6756 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_34.odtbin0 -> 6496 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_36.odtbin0 -> 8016 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_39.odtbin0 -> 7896 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_45.odtbin0 -> 6788 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_46.odtbin0 -> 7573 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_48.odtbin0 -> 6585 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_49.odtbin0 -> 6491 bytes
-rwxr-xr-xtestautomation/writer/optional/input/spellcheck/st1_2_55.odtbin0 -> 6661 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_1.sxwbin0 -> 132211 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_13a.sxwbin0 -> 4936 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_13b.sxwbin0 -> 5543 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_14.sxwbin0 -> 5511 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_5.sxwbin0 -> 5025 bytes
-rwxr-xr-xtestautomation/writer/optional/input/st1_7.sxwbin0 -> 5792 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/AnchorAsCharacter.sxwbin0 -> 5758 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/AnchorToCharacter.sxwbin0 -> 5872 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/AnchorToPage.sxwbin0 -> 5706 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/AnchorToParagraph.sxwbin0 -> 6613 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/Footer.sxwbin0 -> 6047 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/Header.sxwbin0 -> 6069 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/after.sxwbin0 -> 5702 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/before.sxwbin0 -> 5708 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/behindText.docbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frame.sxwbin0 -> 5958 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInEndnote.sxwbin0 -> 6210 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInFooter.sxwbin0 -> 5642 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInFootnote.sxwbin0 -> 6137 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInFrame.sxwbin0 -> 6253 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInHeader.sxwbin0 -> 5671 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/frameInTable.sxwbin0 -> 8720 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/inFrontText.docbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/inLineWithText.docbin0 -> 28160 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/lineInText.docbin0 -> 28160 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/lineOfText.docbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/lineOfText.sxwbin0 -> 5753 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/pageColumn1.sxwbin0 -> 5577 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/pageColumn2.sxwbin0 -> 5719 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/pageParagraph.sxwbin0 -> 5810 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/square.docbin0 -> 22016 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/through.sxwbin0 -> 5711 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/tight.docbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/twopages.sxwbin0 -> 5793 bytes
-rwxr-xr-xtestautomation/writer/optional/input/textframe/wrap.sxwbin0 -> 5541 bytes
-rw-r--r--testautomation/writer/optional/input/undo/htmltest.sxgbin0 -> 5451 bytes
-rw-r--r--testautomation/writer/optional/input/undo/htmltest.sxwbin0 -> 5557 bytes
-rw-r--r--testautomation/writer/optional/input/undo/spellcheck_undo.odtbin0 -> 7159 bytes
-rwxr-xr-xtestautomation/writer/optional/input/verzeichnis/verzeichnis.sxwbin0 -> 2664060 bytes
-rwxr-xr-xtestautomation/writer/optional/input/verzeichnis/verzeichnisse.sxwbin0 -> 9501 bytes
-rwxr-xr-xtestautomation/writer/optional/w_CJKCTLDependency.bas89
-rwxr-xr-xtestautomation/writer/optional/w_alternative_text.bas59
-rw-r--r--testautomation/writer/optional/w_autocorrection.bas78
-rwxr-xr-xtestautomation/writer/optional/w_autotext.bas61
-rwxr-xr-xtestautomation/writer/optional/w_calculate.bas72
-rwxr-xr-xtestautomation/writer/optional/w_chinesetranslate.bas106
-rwxr-xr-xtestautomation/writer/optional/w_clipbrd.bas86
-rwxr-xr-xtestautomation/writer/optional/w_contextmenu.bas62
-rwxr-xr-xtestautomation/writer/optional/w_drawing_tools.bas72
-rwxr-xr-xtestautomation/writer/optional/w_dropdownLB.bas84
-rwxr-xr-xtestautomation/writer/optional/w_fields.bas94
-rwxr-xr-xtestautomation/writer/optional/w_filter.bas59
-rwxr-xr-xtestautomation/writer/optional/w_fontwork.bas69
-rwxr-xr-xtestautomation/writer/optional/w_formatcharacter.bas69
-rwxr-xr-xtestautomation/writer/optional/w_formatpage.bas140
-rwxr-xr-xtestautomation/writer/optional/w_formatparagraph.bas141
-rwxr-xr-xtestautomation/writer/optional/w_hhConversion.bas139
-rwxr-xr-xtestautomation/writer/optional/w_hyphenation.bas60
-rwxr-xr-xtestautomation/writer/optional/w_insertgraphic.bas131
-rwxr-xr-xtestautomation/writer/optional/w_issuezilla_regression.bas62
-rwxr-xr-xtestautomation/writer/optional/w_loadsave.bas63
-rwxr-xr-xtestautomation/writer/optional/w_navigator.bas50
-rwxr-xr-xtestautomation/writer/optional/w_numbering.bas77
-rwxr-xr-xtestautomation/writer/optional/w_opt.bas85
-rwxr-xr-xtestautomation/writer/optional/w_redlining.bas98
-rwxr-xr-xtestautomation/writer/optional/w_search.bas59
-rwxr-xr-xtestautomation/writer/optional/w_section.bas97
-rwxr-xr-xtestautomation/writer/optional/w_shortcuts.bas75
-rwxr-xr-xtestautomation/writer/optional/w_sorting.bas64
-rwxr-xr-xtestautomation/writer/optional/w_spellcheck.bas63
-rwxr-xr-xtestautomation/writer/optional/w_stylist.bas51
-rwxr-xr-xtestautomation/writer/optional/w_table.bas160
-rwxr-xr-xtestautomation/writer/optional/w_textframes.bas85
-rwxr-xr-xtestautomation/writer/optional/w_undo.bas73
-rwxr-xr-xtestautomation/writer/optional/ww_opt.bas70
-rw-r--r--testautomation/writer/required/includes/w_001_.inc1115
-rw-r--r--testautomation/writer/required/includes/w_001a_.inc474
-rw-r--r--testautomation/writer/required/includes/w_001b_.inc870
-rw-r--r--testautomation/writer/required/includes/w_002_.inc1526
-rw-r--r--testautomation/writer/required/includes/w_003_.inc641
-rw-r--r--testautomation/writer/required/includes/w_004_.inc1804
-rw-r--r--testautomation/writer/required/includes/w_005_.inc1189
-rw-r--r--testautomation/writer/required/includes/w_005b_.inc1514
-rw-r--r--testautomation/writer/required/includes/w_006_.inc292
-rw-r--r--testautomation/writer/required/includes/w_007_.inc1318
-rw-r--r--testautomation/writer/required/includes/w_008_.inc61
-rw-r--r--testautomation/writer/required/includes/w_009_.inc96
-rw-r--r--testautomation/writer/required/includes/w_010_.inc1227
-rw-r--r--testautomation/writer/required/includes/w_010_1.inc878
-rw-r--r--testautomation/writer/required/includes/w_011_.inc783
-rw-r--r--testautomation/writer/required/includes/w_020_.inc964
-rwxr-xr-xtestautomation/writer/required/input/bt.sxwbin0 -> 75639 bytes
-rwxr-xr-xtestautomation/writer/required/input/graphics/jolink.jpgbin0 -> 11686 bytes
-rwxr-xr-xtestautomation/writer/required/input/hangul.html32
-rwxr-xr-xtestautomation/writer/required/input/hangul.sxwbin0 -> 5861 bytes
-rwxr-xr-xtestautomation/writer/required/input/htmltest.sxgbin0 -> 5451 bytes
-rwxr-xr-xtestautomation/writer/required/input/htmltest.sxwbin0 -> 5557 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/001.odtbin0 -> 8932 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/003.odtbin0 -> 9361 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/007.odtbin0 -> 9814 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/031.odtbin0 -> 8303 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/033.odtbin0 -> 8607 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/034.odtbin0 -> 8044 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/036.odtbin0 -> 8345 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/039.odtbin0 -> 8739 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/045.odtbin0 -> 8717 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/046.odtbin0 -> 8952 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/048.odtbin0 -> 8249 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/049.odtbin0 -> 7970 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/055.odtbin0 -> 9422 bytes
-rwxr-xr-xtestautomation/writer/required/input/linguistik/sprache.odtbin0 -> 71268 bytes
-rwxr-xr-xtestautomation/writer/required/input/st1_1.sxwbin0 -> 132211 bytes
-rwxr-xr-xtestautomation/writer/required/w_updt.bas93
-rw-r--r--testautomation/writer/tools/includes/w_get_locale_strings.inc180
-rw-r--r--testautomation/writer/tools/includes/w_locale_strings2.inc367
-rw-r--r--testautomation/writer/tools/includes/w_tool1.inc1022
-rw-r--r--testautomation/writer/tools/includes/w_tool2.inc423
-rw-r--r--testautomation/writer/tools/includes/w_tool3.inc643
-rw-r--r--testautomation/writer/tools/includes/w_tool4.inc210
-rw-r--r--testautomation/writer/tools/includes/w_tool5.inc235
-rw-r--r--testautomation/writer/tools/includes/w_tool6.inc769
-rw-r--r--testautomation/writer/tools/includes/w_tool7.inc460
-rw-r--r--testautomation/writer/tools/includes/w_tools.inc1367
-rw-r--r--testautomation/writer/tools/includes/w_tools_autocorrection.inc157
-rw-r--r--testautomation/writer/tools/includes/w_tools_drawing.inc68
-rw-r--r--testautomation/writer/tools/includes/w_tools_hyphenation.inc79
-rw-r--r--testautomation/writer/tools/includes/w_tools_undo.inc867
-rwxr-xr-xtestautomation/writer/tools/w_get_locale_strings.bas50
-rwxr-xr-xtestautomation/xml/optional/c_datapilot_pagefields.bas57
-rwxr-xr-xtestautomation/xml/optional/c_xml_print_scale.bas55
-rwxr-xr-xtestautomation/xml/optional/c_xml_scenario.bas54
-rwxr-xr-xtestautomation/xml/optional/calc_xml_7_export.bas67
-rwxr-xr-xtestautomation/xml/optional/ch_xml_japanese_candlestick.bas54
-rwxr-xr-xtestautomation/xml/optional/docbook_losa.bas63
-rwxr-xr-xtestautomation/xml/optional/draw_xml_7_export.bas69
-rwxr-xr-xtestautomation/xml/optional/f_xml_save_ms_ole.bas83
-rwxr-xr-xtestautomation/xml/optional/impress_xml_7_export.bas60
-rw-r--r--testautomation/xml/optional/includes/c_datapilot_pagefields.inc175
-rw-r--r--testautomation/xml/optional/includes/c_xml_print_scale.inc403
-rw-r--r--testautomation/xml/optional/includes/c_xml_scenario.inc433
-rw-r--r--testautomation/xml/optional/includes/ch_xml_japanese_candlestick.inc143
-rw-r--r--testautomation/xml/optional/includes/docbook_001.inc121
-rw-r--r--testautomation/xml/optional/includes/f_xml_save_ms_ole.inc251
-rw-r--r--testautomation/xml/optional/includes/sxc7_01.inc696
-rw-r--r--testautomation/xml/optional/includes/sxc7_02.inc254
-rw-r--r--testautomation/xml/optional/includes/sxc7_03.inc332
-rw-r--r--testautomation/xml/optional/includes/sxd7_01.inc634
-rw-r--r--testautomation/xml/optional/includes/sxd7_02.inc313
-rw-r--r--testautomation/xml/optional/includes/sxd7_03.inc313
-rw-r--r--testautomation/xml/optional/includes/sxd7_04.inc315
-rw-r--r--testautomation/xml/optional/includes/sxd7_05.inc259
-rw-r--r--testautomation/xml/optional/includes/sxi7_01.inc563
-rw-r--r--testautomation/xml/optional/includes/sxm7_01.inc818
-rw-r--r--testautomation/xml/optional/includes/sxw7_01.inc867
-rw-r--r--testautomation/xml/optional/includes/sxw7_01a.inc451
-rw-r--r--testautomation/xml/optional/includes/sxw7_02.inc688
-rw-r--r--testautomation/xml/optional/includes/sxw7_03.inc458
-rw-r--r--testautomation/xml/optional/includes/w_xml_vertical_alignment.inc141
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/cell_pattern.xml215
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/cellstyle.xml254
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/conditionalformat.xml583
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/dataformat.xml307
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/dataformat2.xml504
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/datarange.xml1314
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/font.xml559
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/formula.xml213
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/headerfooter.xml97
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/merge.xml126
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/pagebreak.xml154
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/pagesheet.xml140
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/rowcolumn.xml88
-rwxr-xr-xtestautomation/xml/optional/input/calc/ExcelXML/solvsamp.xml9881
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/NatNumtest.sxcbin0 -> 9548 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/alien_attributes.sxcbin0 -> 5782 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/feat906.sxcbin0 -> 7568 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/japan.sxcbin0 -> 9864 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/korean.sxcbin0 -> 7728 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/pagefields_datapilot1.sxcbin0 -> 9742 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/pagefields_datapilot2.sxcbin0 -> 9748 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/pagefields_datapilot3.sxcbin0 -> 9744 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/pagefields_datapilot4.sxcbin0 -> 9740 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/simple_c.sxcbin0 -> 10931 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/ooo10/trad_c.sxcbin0 -> 8791 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats1.sdcbin0 -> 59392 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats2.sdcbin0 -> 79872 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats2b.sdcbin0 -> 75264 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats3.sdcbin0 -> 57344 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats5.sdcbin0 -> 62976 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/cellformats6.sdcbin0 -> 64000 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/chart_export.sdcbin0 -> 294912 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/conditional_formatting.sdcbin0 -> 20480 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/controls01.sdcbin0 -> 42496 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/database_ranges.sdcbin0 -> 25088 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/filter_and_subtotals1.sdcbin0 -> 23552 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/filter_and_subtotals4.sdcbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/matrixformula_and_notes.sdcbin0 -> 24064 bytes
-rwxr-xr-xtestautomation/xml/optional/input/calc/so_binary/password3.sdcbin0 -> 76800 bytes
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.001.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.002.xml50
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.003.xml52
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.004.xml49
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.005.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.006.xml48
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.007.xml61
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.008.xml52
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.009.xml46
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.010.xml45
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.011.xml44
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.012.xml36
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.013.xml29
-rwxr-xr-xtestautomation/xml/optional/input/docbook/informaltable.014.xml54
-rwxr-xr-xtestautomation/xml/optional/input/docbook/inline.001.xml27
-rwxr-xr-xtestautomation/xml/optional/input/docbook/itemizedlist.001.xml27
-rwxr-xr-xtestautomation/xml/optional/input/docbook/itemizedlist.002.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/itemizedlist.003.xml53
-rwxr-xr-xtestautomation/xml/optional/input/docbook/link.001.xml36
-rwxr-xr-xtestautomation/xml/optional/input/docbook/literallayout.001.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/literallayout.002.xml21
-rwxr-xr-xtestautomation/xml/optional/input/docbook/literallayout.003.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/lot.001.xml56
-rwxr-xr-xtestautomation/xml/optional/input/docbook/mathml.001.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/methodsynopsis.001.xml55
-rwxr-xr-xtestautomation/xml/optional/input/docbook/note.001.xml18
-rwxr-xr-xtestautomation/xml/optional/input/docbook/olink.001.xml22
-rwxr-xr-xtestautomation/xml/optional/input/docbook/orderedlist.001.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/orderedlist.002.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/procedure.001.xml44
-rwxr-xr-xtestautomation/xml/optional/input/docbook/procedure.003.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/productionset.001.xml66
-rwxr-xr-xtestautomation/xml/optional/input/docbook/productionset.002.xml27
-rwxr-xr-xtestautomation/xml/optional/input/docbook/productionset.003.xml30
-rwxr-xr-xtestautomation/xml/optional/input/docbook/productionset.004.xml53
-rwxr-xr-xtestautomation/xml/optional/input/docbook/productionset.005.xml89
-rwxr-xr-xtestautomation/xml/optional/input/docbook/programlisting.001.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/programlisting.002.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/programlisting.003.xml45
-rwxr-xr-xtestautomation/xml/optional/input/docbook/programlistingco.001.xml78
-rwxr-xr-xtestautomation/xml/optional/input/docbook/programlistingco.002.xml34
-rwxr-xr-xtestautomation/xml/optional/input/docbook/qandaset.001.xml45
-rwxr-xr-xtestautomation/xml/optional/input/docbook/qandaset.002.xml35
-rwxr-xr-xtestautomation/xml/optional/input/docbook/qandaset.003.xml92
-rwxr-xr-xtestautomation/xml/optional/input/docbook/refentry.001.xml25
-rwxr-xr-xtestautomation/xml/optional/input/docbook/refentry.002.xml29
-rwxr-xr-xtestautomation/xml/optional/input/docbook/refentry.003.xml65
-rwxr-xr-xtestautomation/xml/optional/input/docbook/refentry.004.xml68
-rwxr-xr-xtestautomation/xml/optional/input/docbook/reference.001.xml59
-rwxr-xr-xtestautomation/xml/optional/input/docbook/revhistory.001.xml41
-rwxr-xr-xtestautomation/xml/optional/input/docbook/screen.001.xml19
-rwxr-xr-xtestautomation/xml/optional/input/docbook/sect1.001.xml53
-rwxr-xr-xtestautomation/xml/optional/input/docbook/sect1.002.xml56
-rwxr-xr-xtestautomation/xml/optional/input/docbook/section.001.xml53
-rwxr-xr-xtestautomation/xml/optional/input/docbook/section.002.xml56
-rwxr-xr-xtestautomation/xml/optional/input/docbook/section.003.xml20
-rwxr-xr-xtestautomation/xml/optional/input/docbook/segmentedlist.001.xml21
-rwxr-xr-xtestautomation/xml/optional/input/docbook/segmentedlist.002.xml23
-rwxr-xr-xtestautomation/xml/optional/input/docbook/set.001.xml31
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.001.xml26
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.002.xml31
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.003.xml30
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.004.xml30
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.005.xml28
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.006.xml29
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.007.xml29
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.008.xml27
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.009.xml28
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.010.xml28
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.011.xml31
-rwxr-xr-xtestautomation/xml/optional/input/docbook/stamp.012.xml41
-rwxr-xr-xtestautomation/xml/optional/input/docbook/svg.001.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/svg.002.xml31
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.001.xml31
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.002.xml37
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.003.xml38
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.004.xml30
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.005.xml35
-rwxr-xr-xtestautomation/xml/optional/input/docbook/table.006.xml207
-rwxr-xr-xtestautomation/xml/optional/input/docbook/template.xml17
-rwxr-xr-xtestautomation/xml/optional/input/docbook/toc.001.xml63
-rwxr-xr-xtestautomation/xml/optional/input/docbook/ulink.001.xml23
-rwxr-xr-xtestautomation/xml/optional/input/docbook/variablelist.001.xml64
-rwxr-xr-xtestautomation/xml/optional/input/docbook/variablelist.002.xml35
-rwxr-xr-xtestautomation/xml/optional/input/docbook/variablelist.003.xml26
-rwxr-xr-xtestautomation/xml/optional/input/docbook/variablelist.004.xml26
-rwxr-xr-xtestautomation/xml/optional/input/docbook/xref.001.xml98
-rwxr-xr-xtestautomation/xml/optional/input/docbook/xrefstyle.001.xml19
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/Table-XHTML.odtbin0 -> 6572 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/border.odsbin0 -> 6700 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/bullets.sxwbin0 -> 16074 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/bullets_14364.sdwbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/p_in_h.odtbin0 -> 9860 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/presentation_xhtml.odpbin0 -> 83785 bytes
-rwxr-xr-xtestautomation/xml/optional/input/for_xhtml_export/span_split.odtbin0 -> 6651 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/excelOLE.docbin0 -> 26112 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/excelOLE.pptbin0 -> 35840 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/mathOLE.docbin0 -> 10752 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/mathOLE.pptbin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/mathOLE.xlsbin0 -> 9728 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/pptOLE.docbin0 -> 22016 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/pptOLE.xlsbin0 -> 14848 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/wordOLE.pptbin0 -> 33792 bytes
-rwxr-xr-xtestautomation/xml/optional/input/framework/ms_ole/wordOLE.xlsbin0 -> 27136 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/alien.sxdbin0 -> 6016 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/alien.sxibin0 -> 6182 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/chin.sxdbin0 -> 6931 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/chin.sxibin0 -> 8119 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/japan.sxdbin0 -> 6961 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/japan.sxibin0 -> 8119 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/korean.sxdbin0 -> 6916 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/korean.sxibin0 -> 8207 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/trad_chin.sxdbin0 -> 6887 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/ooo10/trad_chin.sxibin0 -> 8063 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18092.sdabin0 -> 38912 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18093.sdabin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18094.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18098.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18099.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18100.sdabin0 -> 31744 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18101.sdabin0 -> 28672 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18102.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18106.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18107.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18108-18115.sdabin0 -> 33280 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18116.sdabin0 -> 48640 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18117.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18118.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18119.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18120.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18121-18122.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18123.sdabin0 -> 33280 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18124.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18125.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18126.sdabin0 -> 31744 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18127-18128.sdabin0 -> 29184 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18129.sdabin0 -> 31744 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18130-18131.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18132.sdabin0 -> 36352 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18133-18134.sdabin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18135.sdabin0 -> 29184 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18136.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18137.sdabin0 -> 36352 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18138.sdabin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18139-18145.sdabin0 -> 74752 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18244.sdabin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18245.sdabin0 -> 30720 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18246-18250.sdabin0 -> 32768 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18464-18467.sdabin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18520-18524.sdabin0 -> 31744 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18526-18531.sdabin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18537-18544.sdabin0 -> 32768 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18629-18632.sdabin0 -> 28160 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18633.sdabin0 -> 28672 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18634.sdabin0 -> 29184 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18635.sdabin0 -> 27648 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/18636.sdabin0 -> 29184 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/19542-19544.sdabin0 -> 34304 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/19545-19547.sdabin0 -> 33792 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/19548-19553.sdabin0 -> 33792 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/19554-19557.sdabin0 -> 36352 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/19558-19560.sdabin0 -> 31232 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/Autolayout.sddbin0 -> 130048 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/Effects_slides.sddbin0 -> 53760 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/Effects_text_objects.sddbin0 -> 72192 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/Objects.sddbin0 -> 89088 bytes
-rwxr-xr-xtestautomation/xml/optional/input/graphics/so_bin/Text.sddbin0 -> 59392 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/asian/jp_math.sxmbin0 -> 3105 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/asian/ko_math.sxmbin0 -> 3062 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/asian/zh_cn_math.sxmbin0 -> 2952 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/asian/zh_tw_math.sxmbin0 -> 3143 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/1_unary-binary.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/2_relations.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/3_set_operations.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/4_functions.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/5_operators.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/6_attributes.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/7_others.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/8_brackets.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/9_formats.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/all_commands.smfbin0 -> 8192 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/all_commands_star_math_3.0.smfbin0 -> 8192 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/all_selections.smfbin0 -> 8192 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/annuities.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/cauchy.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/chemicalelement.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/definitionstraightline.smfbin0 -> 20992 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/effectiveannualinterestrate.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/hamiltonoperator.smfbin0 -> 6144 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/investmentreturns.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/lawoferrorpropagation.smfbin0 -> 36864 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/limes.smfbin0 -> 21504 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/linearregression.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/maxwell.smfbin0 -> 6144 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/scalarproduct.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/sinus.smfbin0 -> 5120 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/squareroot.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/standarddeviation.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/math/so_binary/vectorproduct.smfbin0 -> 5632 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/bookmark_script_note.sdwbin0 -> 18944 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/characters.sdwbin0 -> 16896 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/events_to_objects.sdwbin0 -> 65024 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/feat1318.sxwbin0 -> 6096 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/feat476.sxwbin0 -> 5891 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/fields.sdwbin0 -> 37376 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/fiscus.sxwbin0 -> 5666 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/fiscus2.sxwbin0 -> 5840 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/footnotes.sdwbin0 -> 30208 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/frames.sdwbin0 -> 24064 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/hyperlinks.sdwbin0 -> 10240 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/index_biblio.sdwbin0 -> 24576 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/index_most.sdwbin0 -> 24576 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/indexes_alpha.sdwbin0 -> 37376 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/jp_text.sxwbin0 -> 6133 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/ko_text.sxwbin0 -> 6292 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/pages.sdwbin0 -> 32768 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/paragraph01.sdwbin0 -> 25088 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/paragraph02.sdwbin0 -> 19456 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/section_main.sdwbin0 -> 32256 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/verttoline1.docbin0 -> 25600 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/zh_cn_text.sxwbin0 -> 5599 bytes
-rwxr-xr-xtestautomation/xml/optional/input/writer/zh_tw_text.sxwbin0 -> 5545 bytes
-rwxr-xr-xtestautomation/xml/optional/math_xml_7_export.bas91
-rwxr-xr-xtestautomation/xml/optional/w_xml_vertical_alignment.bas56
-rwxr-xr-xtestautomation/xml/optional/writer_xml_7_export.bas67
-rw-r--r--testautomation/xml/required/includes/oasis_graphics_01.inc597
-rwxr-xr-xtestautomation/xml/required/input/graphics/alien_attributes/alien_attributes_presentation.odpbin0 -> 7351 bytes
-rwxr-xr-xtestautomation/xml/required/input/graphics/header_footer/allheaderfooter_fixed.odpbin0 -> 9161 bytes
-rwxr-xr-xtestautomation/xml/required/input/graphics/header_footer/noheaderfooter.odpbin0 -> 10143 bytes
-rwxr-xr-xtestautomation/xml/required/input/graphics/header_footer/nomasterelements.odpbin0 -> 9485 bytes
-rwxr-xr-xtestautomation/xml/required/input/graphics/header_footer/someheaderfooter_varible.odpbin0 -> 10190 bytes
-rwxr-xr-xtestautomation/xml/required/oasis_graphics_update.bas58
-rw-r--r--testautomation/xml/tools/includes/itools1.inc60
-rw-r--r--testautomation/xml/tools/includes/xmltool1.inc84
-rw-r--r--testshl2/README8
-rw-r--r--testshl2/inc/makefile.mk47
-rw-r--r--testshl2/inc/pch/precompiled_testshl2.cxx29
-rw-r--r--testshl2/inc/pch/precompiled_testshl2.hxx32
-rw-r--r--testshl2/inc/testshl/additionalfunc.hxx61
-rw-r--r--testshl2/inc/testshl/autoregister/callbackstructure.h86
-rw-r--r--testshl2/inc/testshl/autoregister/htestresult.h6
-rw-r--r--testshl2/inc/testshl/autoregister/registerfunc.h47
-rw-r--r--testshl2/inc/testshl/autoregister/registertestfunction.h51
-rw-r--r--testshl2/inc/testshl/autoregister/testfunc.h44
-rw-r--r--testshl2/inc/testshl/autoregisterhelper.hxx62
-rw-r--r--testshl2/inc/testshl/checkboom.hxx37
-rw-r--r--testshl2/inc/testshl/cmdlinebits.hxx49
-rw-r--r--testshl2/inc/testshl/dynamicregister.hxx64
-rw-r--r--testshl2/inc/testshl/filehelper.hxx47
-rw-r--r--testshl2/inc/testshl/getopt.hxx332
-rw-r--r--testshl2/inc/testshl/joblist.hxx96
-rw-r--r--testshl2/inc/testshl/log.hxx113
-rw-r--r--testshl2/inc/testshl/nocopy.hxx13
-rw-r--r--testshl2/inc/testshl/result/SynchronizedObject.h82
-rw-r--r--testshl2/inc/testshl/result/TestListener.h62
-rw-r--r--testshl2/inc/testshl/result/TestResult.h123
-rw-r--r--testshl2/inc/testshl/result/TestResultCollector.h165
-rw-r--r--testshl2/inc/testshl/result/TestSucessListener.h40
-rw-r--r--testshl2/inc/testshl/result/TextTestResult.h62
-rw-r--r--testshl2/inc/testshl/result/callbackfunc.h25
-rw-r--r--testshl2/inc/testshl/result/emacsTestResult.hxx79
-rw-r--r--testshl2/inc/testshl/result/log.hxx103
-rw-r--r--testshl2/inc/testshl/result/optionhelper.hxx95
-rw-r--r--testshl2/inc/testshl/result/outputter.hxx82
-rw-r--r--testshl2/inc/testshl/result/testshlTestResult.h72
-rw-r--r--testshl2/inc/testshl/signaltest.h62
-rw-r--r--testshl2/inc/testshl/simpleheader.hxx43
-rw-r--r--testshl2/inc/testshl/stringhelper.hxx39
-rw-r--r--testshl2/inc/testshl/taghelper.hxx88
-rw-r--r--testshl2/inc/testshl/tresstatewrapper.h63
-rw-r--r--testshl2/inc/testshl/tresstatewrapper.hxx57
-rw-r--r--testshl2/inc/testshl/versionhelper.hxx84
-rw-r--r--testshl2/inc/testshl/winstuff.hxx40
-rw-r--r--testshl2/prj/build.lst9
-rw-r--r--testshl2/prj/d.lst29
-rw-r--r--testshl2/source/autoregisterhelper.cxx140
-rw-r--r--testshl2/source/codegen/codegen.pl601
-rw-r--r--testshl2/source/cppunit/cmdlinebits.cxx141
-rw-r--r--testshl2/source/cppunit/joblist.cxx221
-rw-r--r--testshl2/source/cppunit/makefile.mk99
-rw-r--r--testshl2/source/cppunit/registertestfunction.cxx57
-rw-r--r--testshl2/source/cppunit/result/SynchronizedObject.cpp38
-rw-r--r--testshl2/source/cppunit/result/TestResult.cpp264
-rw-r--r--testshl2/source/cppunit/result/TestResultCollector.cpp150
-rw-r--r--testshl2/source/cppunit/result/TestSucessListener.cpp50
-rw-r--r--testshl2/source/cppunit/result/TextTestResult.cpp194
-rw-r--r--testshl2/source/cppunit/result/emacsTestResult.cxx190
-rw-r--r--testshl2/source/cppunit/result/log.cxx122
-rw-r--r--testshl2/source/cppunit/result/makefile.mk79
-rw-r--r--testshl2/source/cppunit/result/optionhelper.cxx314
-rw-r--r--testshl2/source/cppunit/result/outputter.cxx103
-rw-r--r--testshl2/source/cppunit/result/signal.cxx996
-rw-r--r--testshl2/source/cppunit/result/signal.hxx39
-rw-r--r--testshl2/source/cppunit/result/testshlTestResult.cxx425
-rw-r--r--testshl2/source/cppunit/result/treswrapper.cxx259
-rw-r--r--testshl2/source/cppunit/signaltest.cxx89
-rw-r--r--testshl2/source/cppunit/t_print.cxx95
-rw-r--r--testshl2/source/cppunit/tresregister.cxx66
-rw-r--r--testshl2/source/cppunit/tresstatewrapper.cxx166
-rw-r--r--testshl2/source/cppunit/win32/makefile.mk60
-rw-r--r--testshl2/source/cppunit/win32/winstuff.cxx140
-rw-r--r--testshl2/source/dynamicregister.cxx207
-rw-r--r--testshl2/source/file.cxx74
-rw-r--r--testshl2/source/filehelper.cxx228
-rw-r--r--testshl2/source/getopt.cxx919
-rw-r--r--testshl2/source/makefile.mk130
-rw-r--r--testshl2/source/terminate.cxx289
-rw-r--r--testshl2/source/testshl.cxx396
-rw-r--r--testshl2/source/testshlrunner/ProcessHandler.java355
-rw-r--r--testshl2/source/testshlrunner/TestShl2Runner.java937
-rw-r--r--testshl2/source/testshlrunner/makefile.mk44
-rw-r--r--testshl2/source/versioner.cxx117
-rw-r--r--testshl2/source/versionhelper.cxx124
-rw-r--r--testshl2/util/makefile.mk38
-rw-r--r--testshl2/workben/codegen/README9
-rw-r--r--testshl2/workben/codegen/checkfile7
-rw-r--r--testshl2/workben/codegen/cleanup10
-rw-r--r--testshl2/workben/codegen/makefile.mk45
-rw-r--r--testshl2/workben/codegen/selftest49
-rw-r--r--testshl2/workben/codegen/test.job17
-rw-r--r--testshl2/workben/codegen/w32/checkfile.btm7
-rw-r--r--testshl2/workben/codegen/w32/cleanup.btm9
-rw-r--r--testshl2/workben/codegen/w32/makefile.mk45
-rw-r--r--testshl2/workben/codegen/w32/selftest.btm47
-rw-r--r--testshl2/workben/codegen/w32/test.job17
-rw-r--r--testshl2/workben/dlltest/export.exp1
-rw-r--r--testshl2/workben/dlltest/makefile.mk126
-rw-r--r--testshl2/workben/dlltest/onefunc.cxx51
-rw-r--r--testshl2/workben/dlltest/onefuncstarter.cxx140
-rw-r--r--testshl2/workben/dlltest/registerfunc.h41
-rw-r--r--testshl2/workben/examples/makefile.mk64
-rw-r--r--testshl2/workben/examples/testshl_test.cxx286
-rw-r--r--testshl2/workben/garbage_dump/float.cxx137
-rw-r--r--testshl2/workben/garbage_dump/nippondir.cxx316
-rw-r--r--testshl2/workben/garbage_dump/some_tips.cxx126
-rw-r--r--testshl2/workben/getopt/makefile.mk60
-rw-r--r--testshl2/workben/getopt/test_getopt.cxx140
-rw-r--r--testshl2/workben/makefile.mk126
-rw-r--r--testshl2/workben/runner/unxlngi4.config.file34
-rw-r--r--testshl2/workben/runner/unxsols3.config.file34
-rw-r--r--testshl2/workben/runner/wntmsci9.config.file46
-rw-r--r--testshl2/workben/selftest/README.txt30
-rw-r--r--testshl2/workben/selftest/delivertest.cxx61
-rw-r--r--testshl2/workben/selftest/export.map8
-rw-r--r--testshl2/workben/selftest/makefile.mk87
-rw-r--r--testshl2/workben/selftest/notdeliveredtest.cxx61
-rw-r--r--testshl2/workben/singleton.cxx49
-rw-r--r--testshl2/workben/skeleton/export.map7
-rw-r--r--testshl2/workben/skeleton/makefile.mk51
-rw-r--r--testshl2/workben/skeleton/skeleton.cxx79
-rw-r--r--testshl2/workben/test_autoptr.cxx100
-rw-r--r--testshl2/workben/test_filter.cxx230
-rw-r--r--testshl2/workben/test_member.cxx97
-rw-r--r--testshl2/workben/test_ostringstream.cxx116
-rw-r--r--testshl2/workben/test_preproc.cxx55
-rw-r--r--testshl2/workben/test_printf.cxx60
-rw-r--r--testshl2/workben/test_string.cxx138
-rw-r--r--testshl2/workben/uno/export.exp1
-rwxr-xr-xtestshl2/workben/uno/export.map8
-rw-r--r--testshl2/workben/uno/makefile.mk79
-rw-r--r--testshl2/workben/uno/unotest.cxx114
-rw-r--r--testtools/com/sun/star/comp/bridge/CurrentContextChecker.java81
-rw-r--r--testtools/com/sun/star/comp/bridge/TestComponent.java1332
-rw-r--r--testtools/com/sun/star/comp/bridge/TestComponentMain.java158
-rw-r--r--testtools/com/sun/star/comp/bridge/makefile.mk61
-rw-r--r--testtools/com/sun/star/comp/bridge/manifest2
-rw-r--r--testtools/inc/makefile.mk47
-rw-r--r--testtools/inc/pch/precompiled_testtools.cxx29
-rw-r--r--testtools/inc/pch/precompiled_testtools.hxx32
-rw-r--r--testtools/prj/build.lst8
-rw-r--r--testtools/prj/d.lst0
-rw-r--r--testtools/qa/cli/CLITest.java111
-rw-r--r--testtools/qa/cli/makefile.mk82
-rw-r--r--testtools/qa/cli/readme.txt26
-rw-r--r--testtools/qa/cliversioning/VersionTestCase.java106
-rw-r--r--testtools/qa/cliversioning/makefile.mk93
-rw-r--r--testtools/readme.txt34
-rw-r--r--testtools/source/bridgetest/bridgetest.cxx1369
-rw-r--r--testtools/source/bridgetest/cli/cli_bridgetest_inprocess.cs260
-rw-r--r--testtools/source/bridgetest/cli/cli_bridgetest_inprocess.ini3
-rw-r--r--testtools/source/bridgetest/cli/cli_cpp_bridgetest.cxx982
-rw-r--r--testtools/source/bridgetest/cli/cli_cs_bridgetest.cs1033
-rw-r--r--testtools/source/bridgetest/cli/cli_cs_multi.cs119
-rw-r--r--testtools/source/bridgetest/cli/cli_cs_testobj.cs909
-rw-r--r--testtools/source/bridgetest/cli/cli_vb_bridgetest.vb862
-rw-r--r--testtools/source/bridgetest/cli/cli_vb_testobj.vb624
-rw-r--r--testtools/source/bridgetest/cli/makefile.mk203
-rw-r--r--testtools/source/bridgetest/component.gcc3.map38
-rw-r--r--testtools/source/bridgetest/component.map36
-rw-r--r--testtools/source/bridgetest/constructors.cxx517
-rw-r--r--testtools/source/bridgetest/cppobj.cxx1229
-rw-r--r--testtools/source/bridgetest/currentcontextchecker.cxx129
-rw-r--r--testtools/source/bridgetest/currentcontextchecker.hxx73
-rw-r--r--testtools/source/bridgetest/idl/bridgetest.idl552
-rw-r--r--testtools/source/bridgetest/idl/makefile.mk70
-rw-r--r--testtools/source/bridgetest/makefile.mk238
-rw-r--r--testtools/source/bridgetest/multi.cxx240
-rw-r--r--testtools/source/bridgetest/multi.hxx126
-rw-r--r--testtools/source/bridgetest/pyuno/core.py367
-rw-r--r--testtools/source/bridgetest/pyuno/impl.py196
-rw-r--r--testtools/source/bridgetest/pyuno/importer.py78
-rw-r--r--testtools/source/bridgetest/pyuno/main.py49
-rw-r--r--testtools/source/bridgetest/pyuno/makefile.mk125
-rw-r--r--testtools/source/bridgetest/pyuno/pyuno2
-rw-r--r--testtools/source/bridgetest/pyuno/samplecomponent.py154
-rw-r--r--testtools/source/bridgetest/pyuno/testcomp.py40
-rw-r--r--testtools/source/cliversioning/makefile.mk142
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/readme.txt3
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_0.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_2.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_3.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_3r3.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_0_4.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_2.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_2_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_3.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_3_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_4.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/old_version_libs_v2/version_2_4_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/readme.txt106
-rw-r--r--testtools/source/cliversioning/runtests.cs127
-rw-r--r--testtools/source/cliversioning/version.cs608
-rw-r--r--testtools/source/cliversioning/version_libs/readme.txt3
-rw-r--r--testtools/source/cliversioning/version_libs/version_3_0_0.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/version_libs/version_3_0_1.dllbin0 -> 11776 bytes
-rwxr-xr-xtesttools/source/cliversioning/version_libs/version_3_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/cliversioning/version_libs/version_3_1_1.dllbin0 -> 11776 bytes
-rw-r--r--testtools/source/performance/cli_testobj_performance.cs118
-rw-r--r--testtools/source/performance/exports.dxp3
-rw-r--r--testtools/source/performance/makefile.mk98
-rw-r--r--testtools/source/performance/pseudo.cxx274
-rw-r--r--testtools/source/performance/pseudo_uno_uno.map7
-rw-r--r--testtools/source/performance/ubobject.cxx308
-rw-r--r--testtools/source/performance/ubtest.cxx1337
-rw-r--r--testtools/source/servicetests/LocalServiceTest.java53
-rw-r--r--testtools/source/servicetests/RemoteServiceTest.java121
-rw-r--r--testtools/source/servicetests/TestBase.java145
-rw-r--r--testtools/source/servicetests/TestService.java197
-rw-r--r--testtools/source/servicetests/TestService1.idl55
-rw-r--r--testtools/source/servicetests/TestService2.idl47
-rw-r--r--testtools/source/servicetests/XTestService1.idl41
-rw-r--r--testtools/source/servicetests/XTestService2.idl41
-rw-r--r--testtools/source/servicetests/XTestService3.idl41
-rw-r--r--testtools/source/servicetests/XTestService4.idl41
-rw-r--r--testtools/source/servicetests/makefile.mk44
-rw-r--r--testtools/util/makefile.pmk35
-rw-r--r--tomcat/download/jakarta-tomcat-5.0.30-src.tar.gzbin0 -> 3568559 bytes
-rwxr-xr-xtomcat/makefile.mk63
-rwxr-xr-xtomcat/prj/build.lst2
-rwxr-xr-xtomcat/prj/d.lst1
-rw-r--r--tomcat/tomcat.patch35
-rw-r--r--toolkit/doc/layout/ChangeLog1286
-rw-r--r--toolkit/doc/layout/ChangeLog.0546
-rw-r--r--toolkit/doc/layout/README24
-rw-r--r--toolkit/doc/layout/TODO227
-rw-r--r--toolkit/doc/layout/apinotes.txt76
-rw-r--r--toolkit/doc/layout/metricfield.txt57
-rw-r--r--toolkit/doc/layout/notes.txt117
-rw-r--r--toolkit/doc/layout/oldnotes.txt224
-rw-r--r--toolkit/doc/layout/vcl.txt20
-rw-r--r--toolkit/inc/layout/layout-post.hxx102
-rw-r--r--toolkit/inc/layout/layout-pre.hxx107
-rw-r--r--toolkit/inc/layout/layout.hxx829
-rw-r--r--toolkit/inc/makefile.mk48
-rw-r--r--toolkit/inc/pch/precompiled_toolkit.cxx29
-rw-r--r--toolkit/inc/pch/precompiled_toolkit.hxx349
-rw-r--r--toolkit/inc/toolkit/awt/vclxaccessiblecomponent.hxx166
-rw-r--r--toolkit/inc/toolkit/awt/vclxbitmap.hxx87
-rw-r--r--toolkit/inc/toolkit/awt/vclxcontainer.hxx80
-rw-r--r--toolkit/inc/toolkit/awt/vclxdevice.hxx137
-rw-r--r--toolkit/inc/toolkit/awt/vclxfont.hxx96
-rw-r--r--toolkit/inc/toolkit/awt/vclxgraphics.hxx140
-rw-r--r--toolkit/inc/toolkit/awt/vclxmenu.hxx186
-rw-r--r--toolkit/inc/toolkit/awt/vclxpointer.hxx85
-rw-r--r--toolkit/inc/toolkit/awt/vclxprinter.hxx225
-rw-r--r--toolkit/inc/toolkit/awt/vclxregion.hxx96
-rw-r--r--toolkit/inc/toolkit/awt/vclxspinbutton.hxx100
-rw-r--r--toolkit/inc/toolkit/awt/vclxsystemdependentwindow.hxx67
-rw-r--r--toolkit/inc/toolkit/awt/vclxtoolkit.hxx217
-rw-r--r--toolkit/inc/toolkit/awt/vclxtopwindow.hxx123
-rw-r--r--toolkit/inc/toolkit/awt/vclxwindow.hxx220
-rw-r--r--toolkit/inc/toolkit/awt/vclxwindows.hxx1164
-rw-r--r--toolkit/inc/toolkit/awt/xsimpleanimation.hxx92
-rw-r--r--toolkit/inc/toolkit/awt/xthrobber.hxx88
-rw-r--r--toolkit/inc/toolkit/controls/accessiblecontrolcontext.hxx136
-rw-r--r--toolkit/inc/toolkit/controls/dialogcontrol.hxx308
-rw-r--r--toolkit/inc/toolkit/controls/eventcontainer.hxx142
-rw-r--r--toolkit/inc/toolkit/controls/formattedcontrol.hxx127
-rw-r--r--toolkit/inc/toolkit/controls/geometrycontrolmodel.hxx262
-rw-r--r--toolkit/inc/toolkit/controls/geometrycontrolmodel_impl.hxx90
-rw-r--r--toolkit/inc/toolkit/controls/roadmapcontrol.hxx229
-rw-r--r--toolkit/inc/toolkit/controls/roadmapentry.hxx91
-rw-r--r--toolkit/inc/toolkit/controls/stdtabcontroller.hxx94
-rw-r--r--toolkit/inc/toolkit/controls/stdtabcontrollermodel.hxx142
-rw-r--r--toolkit/inc/toolkit/controls/tkscrollbar.hxx124
-rw-r--r--toolkit/inc/toolkit/controls/tksimpleanimation.hxx111
-rw-r--r--toolkit/inc/toolkit/controls/tkspinbutton.hxx127
-rw-r--r--toolkit/inc/toolkit/controls/tkthrobber.hxx109
-rw-r--r--toolkit/inc/toolkit/controls/unocontrol.hxx232
-rw-r--r--toolkit/inc/toolkit/controls/unocontrolbase.hxx69
-rw-r--r--toolkit/inc/toolkit/controls/unocontrolcontainer.hxx166
-rw-r--r--toolkit/inc/toolkit/controls/unocontrolcontainermodel.hxx66
-rw-r--r--toolkit/inc/toolkit/controls/unocontrolmodel.hxx177
-rw-r--r--toolkit/inc/toolkit/controls/unocontrols.hxx1434
-rw-r--r--toolkit/inc/toolkit/dllapi.h40
-rw-r--r--toolkit/inc/toolkit/helper/accessibilityclient.hxx73
-rw-r--r--toolkit/inc/toolkit/helper/accessiblefactory.hxx141
-rw-r--r--toolkit/inc/toolkit/helper/convert.hxx67
-rw-r--r--toolkit/inc/toolkit/helper/emptyfontdescriptor.hxx56
-rw-r--r--toolkit/inc/toolkit/helper/externallock.hxx45
-rw-r--r--toolkit/inc/toolkit/helper/fixedhyperbase.hxx57
-rw-r--r--toolkit/inc/toolkit/helper/formpdfexport.hxx63
-rw-r--r--toolkit/inc/toolkit/helper/imagealign.hxx63
-rw-r--r--toolkit/inc/toolkit/helper/listenermultiplexer.hxx251
-rw-r--r--toolkit/inc/toolkit/helper/macros.hxx270
-rw-r--r--toolkit/inc/toolkit/helper/mutexandbroadcasthelper.hxx57
-rw-r--r--toolkit/inc/toolkit/helper/mutexhelper.hxx51
-rw-r--r--toolkit/inc/toolkit/helper/property.hxx241
-rw-r--r--toolkit/inc/toolkit/helper/servicenames.hxx111
-rw-r--r--toolkit/inc/toolkit/helper/solarrelease.hxx61
-rw-r--r--toolkit/inc/toolkit/helper/throbberimpl.hxx84
-rw-r--r--toolkit/inc/toolkit/helper/tkresmgr.hxx77
-rw-r--r--toolkit/inc/toolkit/helper/unomemorystream.hxx73
-rw-r--r--toolkit/inc/toolkit/helper/unopropertyarrayhelper.hxx64
-rw-r--r--toolkit/inc/toolkit/helper/unowrapper.hxx93
-rw-r--r--toolkit/inc/toolkit/helper/vclunohelper.hxx163
-rw-r--r--toolkit/prj/build.lst13
-rw-r--r--toolkit/prj/d.lst63
-rw-r--r--toolkit/qa/complex/toolkit/CallbackClass.java67
-rwxr-xr-xtoolkit/qa/complex/toolkit/CheckAccessibleStatusBar.java331
-rwxr-xr-xtoolkit/qa/complex/toolkit/CheckAccessibleStatusBarItem.java385
-rw-r--r--toolkit/qa/complex/toolkit/CheckAsyncCallback.java127
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/_XAccessibleComponent.java489
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/_XAccessibleContext.java261
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/_XAccessibleEventBroadcaster.java211
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/_XAccessibleExtendedComponent.java99
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/_XAccessibleText.java1017
-rw-r--r--toolkit/qa/complex/toolkit/interface_tests/_XRequestCallback.java88
-rwxr-xr-xtoolkit/qa/complex/toolkit/interface_tests/makefile.mk57
-rwxr-xr-xtoolkit/qa/complex/toolkit/makefile.mk82
-rw-r--r--toolkit/qa/complex/xunitconversion/XUnitConversionTest.java222
-rw-r--r--toolkit/qa/complex/xunitconversion/makefile.mk77
-rw-r--r--toolkit/qa/unoapi/knownissues.xcl242
-rw-r--r--toolkit/qa/unoapi/makefile.mk43
-rw-r--r--toolkit/qa/unoapi/testdocuments/poliball.gifbin0 -> 945 bytes
-rw-r--r--toolkit/qa/unoapi/toolkit.sce77
-rw-r--r--toolkit/source/awt/asynccallback.cxx199
-rw-r--r--toolkit/source/awt/forward.hxx73
-rw-r--r--toolkit/source/awt/makefile.mk83
-rw-r--r--toolkit/source/awt/non-interactable-containers.xml15
-rw-r--r--toolkit/source/awt/vclxaccessiblecomponent.cxx916
-rw-r--r--toolkit/source/awt/vclxbitmap.cxx93
-rw-r--r--toolkit/source/awt/vclxbutton.cxx126
-rw-r--r--toolkit/source/awt/vclxbutton.hxx114
-rw-r--r--toolkit/source/awt/vclxcontainer.cxx239
-rw-r--r--toolkit/source/awt/vclxdevice.cxx382
-rw-r--r--toolkit/source/awt/vclxdialog.cxx279
-rw-r--r--toolkit/source/awt/vclxdialog.hxx107
-rw-r--r--toolkit/source/awt/vclxfixedline.cxx132
-rw-r--r--toolkit/source/awt/vclxfixedline.hxx75
-rw-r--r--toolkit/source/awt/vclxfont.cxx252
-rw-r--r--toolkit/source/awt/vclxgraphics.cxx478
-rw-r--r--toolkit/source/awt/vclxmenu.cxx1059
-rw-r--r--toolkit/source/awt/vclxplugin.cxx80
-rw-r--r--toolkit/source/awt/vclxplugin.hxx67
-rw-r--r--toolkit/source/awt/vclxpointer.cxx80
-rw-r--r--toolkit/source/awt/vclxprinter.cxx463
-rw-r--r--toolkit/source/awt/vclxregion.cxx171
-rw-r--r--toolkit/source/awt/vclxscroller.cxx212
-rw-r--r--toolkit/source/awt/vclxscroller.hxx87
-rw-r--r--toolkit/source/awt/vclxspinbutton.cxx355
-rw-r--r--toolkit/source/awt/vclxsplitter.cxx245
-rw-r--r--toolkit/source/awt/vclxsplitter.hxx121
-rw-r--r--toolkit/source/awt/vclxsystemdependentwindow.cxx124
-rw-r--r--toolkit/source/awt/vclxtabcontrol.cxx540
-rw-r--r--toolkit/source/awt/vclxtabcontrol.hxx144
-rw-r--r--toolkit/source/awt/vclxtabpage.cxx156
-rw-r--r--toolkit/source/awt/vclxtabpage.hxx73
-rw-r--r--toolkit/source/awt/vclxtoolkit.cxx1697
-rw-r--r--toolkit/source/awt/vclxtopwindow.cxx345
-rw-r--r--toolkit/source/awt/vclxwindow.cxx2772
-rw-r--r--toolkit/source/awt/vclxwindow1.cxx108
-rw-r--r--toolkit/source/awt/vclxwindows.cxx6036
-rw-r--r--toolkit/source/awt/xsimpleanimation.cxx165
-rw-r--r--toolkit/source/awt/xthrobber.cxx158
-rw-r--r--toolkit/source/awt/xthrobber.hrc39
-rw-r--r--toolkit/source/awt/xthrobber.src177
-rw-r--r--toolkit/source/controls/accessiblecontrolcontext.cxx380
-rw-r--r--toolkit/source/controls/dialogcontrol.cxx2104
-rw-r--r--toolkit/source/controls/eventcontainer.cxx214
-rw-r--r--toolkit/source/controls/formattedcontrol.cxx468
-rw-r--r--toolkit/source/controls/geometrycontrolmodel.cxx653
-rw-r--r--toolkit/source/controls/grid/defaultgridcolumnmodel.cxx239
-rw-r--r--toolkit/source/controls/grid/defaultgridcolumnmodel.hxx93
-rw-r--r--toolkit/source/controls/grid/defaultgriddatamodel.cxx307
-rw-r--r--toolkit/source/controls/grid/defaultgriddatamodel.hxx96
-rw-r--r--toolkit/source/controls/grid/gridcolumn.cxx163
-rw-r--r--toolkit/source/controls/grid/gridcolumn.hxx82
-rw-r--r--toolkit/source/controls/grid/gridcontrol.cxx270
-rw-r--r--toolkit/source/controls/grid/gridcontrol.hxx121
-rw-r--r--toolkit/source/controls/grid/makefile.mk50
-rw-r--r--toolkit/source/controls/makefile.mk66
-rw-r--r--toolkit/source/controls/roadmapcontrol.cxx589
-rw-r--r--toolkit/source/controls/roadmapentry.cxx126
-rw-r--r--toolkit/source/controls/stdtabcontroller.cxx428
-rw-r--r--toolkit/source/controls/stdtabcontrollermodel.cxx408
-rw-r--r--toolkit/source/controls/tkscrollbar.cxx294
-rw-r--r--toolkit/source/controls/tksimpleanimation.cxx211
-rw-r--r--toolkit/source/controls/tkspinbutton.cxx350
-rw-r--r--toolkit/source/controls/tkthrobber.cxx190
-rw-r--r--toolkit/source/controls/tree/makefile.mk48
-rw-r--r--toolkit/source/controls/tree/treecontrol.cxx502
-rw-r--r--toolkit/source/controls/tree/treecontrol.hxx136
-rw-r--r--toolkit/source/controls/tree/treedatamodel.cxx673
-rw-r--r--toolkit/source/controls/unocontrol.cxx1537
-rw-r--r--toolkit/source/controls/unocontrolbase.cxx285
-rw-r--r--toolkit/source/controls/unocontrolcontainer.cxx834
-rw-r--r--toolkit/source/controls/unocontrolcontainermodel.cxx89
-rw-r--r--toolkit/source/controls/unocontrolmodel.cxx1495
-rw-r--r--toolkit/source/controls/unocontrols.cxx3788
-rw-r--r--toolkit/source/helper/accessibilityclient.cxx277
-rw-r--r--toolkit/source/helper/externallock.cxx46
-rw-r--r--toolkit/source/helper/fixedhyperbase.cxx72
-rw-r--r--toolkit/source/helper/formpdfexport.cxx639
-rw-r--r--toolkit/source/helper/imagealign.cxx135
-rw-r--r--toolkit/source/helper/listenermultiplexer.cxx208
-rw-r--r--toolkit/source/helper/makefile.mk64
-rw-r--r--toolkit/source/helper/property.cxx398
-rw-r--r--toolkit/source/helper/registerservices.cxx399
-rw-r--r--toolkit/source/helper/servicenames.cxx105
-rw-r--r--toolkit/source/helper/throbberimpl.cxx138
-rw-r--r--toolkit/source/helper/tkresmgr.cxx100
-rw-r--r--toolkit/source/helper/unomemorystream.cxx108
-rw-r--r--toolkit/source/helper/unopropertyarrayhelper.cxx160
-rw-r--r--toolkit/source/helper/unowrapper.cxx335
-rw-r--r--toolkit/source/helper/vclunohelper.cxx799
-rw-r--r--toolkit/source/layout/core/bin.cxx198
-rw-r--r--toolkit/source/layout/core/bin.hxx113
-rw-r--r--toolkit/source/layout/core/box-base.cxx172
-rw-r--r--toolkit/source/layout/core/box-base.hxx87
-rw-r--r--toolkit/source/layout/core/box.cxx281
-rw-r--r--toolkit/source/layout/core/box.hxx102
-rw-r--r--toolkit/source/layout/core/byteseq.cxx76
-rw-r--r--toolkit/source/layout/core/container.cxx169
-rw-r--r--toolkit/source/layout/core/container.hxx136
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.cxx289
-rw-r--r--toolkit/source/layout/core/dialogbuttonhbox.hxx73
-rw-r--r--toolkit/source/layout/core/factory.cxx150
-rw-r--r--toolkit/source/layout/core/factory.hxx74
-rw-r--r--toolkit/source/layout/core/flow.cxx209
-rw-r--r--toolkit/source/layout/core/flow.hxx95
-rw-r--r--toolkit/source/layout/core/helper.cxx672
-rw-r--r--toolkit/source/layout/core/helper.hxx149
-rw-r--r--toolkit/source/layout/core/import.cxx336
-rw-r--r--toolkit/source/layout/core/import.hxx259
-rw-r--r--toolkit/source/layout/core/localized-string.cxx79
-rw-r--r--toolkit/source/layout/core/localized-string.hxx76
-rw-r--r--toolkit/source/layout/core/makefile.mk65
-rw-r--r--toolkit/source/layout/core/precompiled_xmlscript.hxx35
-rw-r--r--toolkit/source/layout/core/proplist.cxx454
-rw-r--r--toolkit/source/layout/core/proplist.hxx91
-rw-r--r--toolkit/source/layout/core/root.cxx409
-rw-r--r--toolkit/source/layout/core/root.hxx156
-rw-r--r--toolkit/source/layout/core/table.cxx311
-rw-r--r--toolkit/source/layout/core/table.hxx102
-rw-r--r--toolkit/source/layout/core/timer.cxx148
-rw-r--r--toolkit/source/layout/core/timer.hxx49
-rw-r--r--toolkit/source/layout/core/translate.cxx130
-rw-r--r--toolkit/source/layout/core/translate.hxx40
-rw-r--r--toolkit/source/layout/core/vcl.cxx66
-rw-r--r--toolkit/source/layout/core/vcl.hxx48
-rw-r--r--toolkit/source/layout/vcl/makefile.mk52
-rw-r--r--toolkit/source/layout/vcl/wbutton.cxx681
-rw-r--r--toolkit/source/layout/vcl/wcontainer.cxx266
-rw-r--r--toolkit/source/layout/vcl/wfield.cxx792
-rw-r--r--toolkit/source/layout/vcl/wrapper.cxx1626
-rw-r--r--toolkit/source/layout/vcl/wrapper.hxx149
-rw-r--r--toolkit/src2xml/README16
-rw-r--r--toolkit/src2xml/dryrunall.sh2
-rw-r--r--toolkit/src2xml/include-sc.lst8
-rw-r--r--toolkit/src2xml/include-sd.lst6
-rw-r--r--toolkit/src2xml/include-sw.lst5
-rw-r--r--toolkit/src2xml/include.lst301
-rw-r--r--toolkit/src2xml/sc.sh3
-rw-r--r--toolkit/src2xml/sd.sh3
-rw-r--r--toolkit/src2xml/source/boxer.py73
-rw-r--r--toolkit/src2xml/source/expression.py111
-rw-r--r--toolkit/src2xml/source/expression_test.py23
-rw-r--r--toolkit/src2xml/source/globals.py115
-rw-r--r--toolkit/src2xml/source/macroexpander_test.py71
-rw-r--r--toolkit/src2xml/source/macroparser.py130
-rw-r--r--toolkit/src2xml/source/macroparser_test.py20
-rw-r--r--toolkit/src2xml/source/src2xml.py227
-rw-r--r--toolkit/src2xml/source/srclexer.py488
-rw-r--r--toolkit/src2xml/source/srcparser.py416
-rw-r--r--toolkit/src2xml/src-sc.lst57
-rw-r--r--toolkit/src2xml/src-sd.lst124
-rw-r--r--toolkit/src2xml/src-sw.lst121
-rw-r--r--toolkit/src2xml/src.lst680
-rw-r--r--toolkit/src2xml/sw.sh3
-rwxr-xr-xtoolkit/test/accessibility/AWB.sxwbin0 -> 9257 bytes
-rw-r--r--toolkit/test/accessibility/AccTreeNode.java350
-rwxr-xr-xtoolkit/test/accessibility/AccessibilityTree.java377
-rw-r--r--toolkit/test/accessibility/AccessibilityTreeModel.java513
-rw-r--r--toolkit/test/accessibility/AccessibilityTreeModelBase.java122
-rwxr-xr-xtoolkit/test/accessibility/AccessibilityWorkBench.java620
-rw-r--r--toolkit/test/accessibility/AccessibleActionHandler.java72
-rw-r--r--toolkit/test/accessibility/AccessibleActionNode.java48
-rw-r--r--toolkit/test/accessibility/AccessibleCellHandler.java156
-rw-r--r--toolkit/test/accessibility/AccessibleComponentHandler.java102
-rw-r--r--toolkit/test/accessibility/AccessibleContextHandler.java91
-rw-r--r--toolkit/test/accessibility/AccessibleEditableTextHandler.java40
-rw-r--r--toolkit/test/accessibility/AccessibleExtendedComponentHandler.java73
-rw-r--r--toolkit/test/accessibility/AccessibleHyperlinkHandler.java42
-rw-r--r--toolkit/test/accessibility/AccessibleHypertextHandler.java42
-rw-r--r--toolkit/test/accessibility/AccessibleImageHandler.java51
-rw-r--r--toolkit/test/accessibility/AccessibleRelationHandler.java96
-rw-r--r--toolkit/test/accessibility/AccessibleSelectionHandler.java130
-rw-r--r--toolkit/test/accessibility/AccessibleTableHandler.java90
-rw-r--r--toolkit/test/accessibility/AccessibleTextHandler.java792
-rw-r--r--toolkit/test/accessibility/AccessibleTreeCellRenderer.java86
-rw-r--r--toolkit/test/accessibility/AccessibleTreeHandler.java110
-rw-r--r--toolkit/test/accessibility/AccessibleTreeNode.java101
-rw-r--r--toolkit/test/accessibility/AccessibleUNOHandler.java115
-rwxr-xr-xtoolkit/test/accessibility/Canvas.java448
-rw-r--r--toolkit/test/accessibility/CanvasShape.java330
-rw-r--r--toolkit/test/accessibility/ChildEventHandler.java46
-rw-r--r--toolkit/test/accessibility/ContextEventHandler.java52
-rw-r--r--toolkit/test/accessibility/EventHandler.java57
-rw-r--r--toolkit/test/accessibility/EventListener.java124
-rw-r--r--toolkit/test/accessibility/EventLogger.java31
-rw-r--r--toolkit/test/accessibility/EventQueue.java126
-rw-r--r--toolkit/test/accessibility/FrameActionListener.java21
-rw-r--r--toolkit/test/accessibility/GeometryEventHandler.java54
-rw-r--r--toolkit/test/accessibility/HelpWindow.java185
-rwxr-xr-xtoolkit/test/accessibility/InformationWriter.java415
-rw-r--r--toolkit/test/accessibility/MessageArea.java123
-rwxr-xr-xtoolkit/test/accessibility/MessageInterface.java5
-rw-r--r--toolkit/test/accessibility/NodeFactory.java147
-rw-r--r--toolkit/test/accessibility/NodeHandler.java140
-rw-r--r--toolkit/test/accessibility/NodeMap.java112
-rwxr-xr-xtoolkit/test/accessibility/OfficeConnection.java102
-rw-r--r--toolkit/test/accessibility/Options.java88
-rwxr-xr-xtoolkit/test/accessibility/Print.java5
-rw-r--r--toolkit/test/accessibility/QueuedListener.java55
-rw-r--r--toolkit/test/accessibility/QueuedTopWindowListener.java88
-rw-r--r--toolkit/test/accessibility/SelectionDialog.java179
-rwxr-xr-xtoolkit/test/accessibility/SimpleOffice.java389
-rw-r--r--toolkit/test/accessibility/StringNode.java13
-rw-r--r--toolkit/test/accessibility/TableEventHandler.java43
-rw-r--r--toolkit/test/accessibility/TextLogger.java52
-rw-r--r--toolkit/test/accessibility/TextUpdateListener.java170
-rw-r--r--toolkit/test/accessibility/TopWindowListener.java205
-rw-r--r--toolkit/test/accessibility/VectorNode.java50
-rw-r--r--toolkit/test/accessibility/about.html8
-rw-r--r--toolkit/test/accessibility/help.html91
-rw-r--r--toolkit/test/accessibility/jawb.mf3
-rw-r--r--toolkit/test/accessibility/makefile.mk127
-rw-r--r--toolkit/test/accessibility/news.html36
-rw-r--r--toolkit/test/accessibility/ov/ContextView.java125
-rw-r--r--toolkit/test/accessibility/ov/FocusView.java119
-rw-r--r--toolkit/test/accessibility/ov/ListeningObjectView.java60
-rw-r--r--toolkit/test/accessibility/ov/ObjectView.java77
-rw-r--r--toolkit/test/accessibility/ov/ObjectViewContainer.java166
-rw-r--r--toolkit/test/accessibility/ov/SelectionView.java230
-rw-r--r--toolkit/test/accessibility/ov/StateSetView.java249
-rw-r--r--toolkit/test/accessibility/ov/TextView.java123
-rw-r--r--toolkit/test/accessibility/ov/makefile.mk51
-rw-r--r--toolkit/test/accessibility/tools/NameProvider.java259
-rw-r--r--toolkit/test/accessibility/tools/makefile.mk42
-rw-r--r--toolkit/uiconfig/layout/delzip1
-rw-r--r--toolkit/uiconfig/layout/makefile.mk54
-rw-r--r--toolkit/uiconfig/layout/message-box.xml41
-rw-r--r--toolkit/uiconfig/layout/tab-dialog.xml20
-rw-r--r--toolkit/util/makefile.mk85
-rw-r--r--toolkit/util/makefile.pmk36
-rw-r--r--toolkit/util/toolkit.xml750
-rw-r--r--toolkit/workben/controls.cxx449
-rw-r--r--toolkit/workben/layout/.gitignore4
-rw-r--r--toolkit/workben/layout/README43
-rwxr-xr-xtoolkit/workben/layout/TEST11
-rw-r--r--toolkit/workben/layout/adjust.xml44
-rw-r--r--toolkit/workben/layout/align-test.xml30
-rw-r--r--toolkit/workben/layout/align.xml44
-rw-r--r--toolkit/workben/layout/boxtest.xml36
-rw-r--r--toolkit/workben/layout/dialogbuttons-ok.xml49
-rw-r--r--toolkit/workben/layout/dialogbuttons-reset.xml54
-rw-r--r--toolkit/workben/layout/dialogbuttons-save.xml49
-rw-r--r--toolkit/workben/layout/dialogbuttons-yes.xml49
-rw-r--r--toolkit/workben/layout/editor-normal.xml53
-rw-r--r--toolkit/workben/layout/editor.cxx1944
-rw-r--r--toolkit/workben/layout/editor.hxx48
-rw-r--r--toolkit/workben/layout/editor.xml52
-rw-r--r--toolkit/workben/layout/empty.xml26
-rw-r--r--toolkit/workben/layout/flow-container.xml48
-rw-r--r--toolkit/workben/layout/flow.xml17
-rw-r--r--toolkit/workben/layout/insert-sheet.xml57
-rw-r--r--toolkit/workben/layout/interactable-containers.xml49
-rw-r--r--toolkit/workben/layout/layout-flat.xml14
-rw-r--r--toolkit/workben/layout/layout.xml15
-rw-r--r--toolkit/workben/layout/makefile.mk151
-rw-r--r--toolkit/workben/layout/message-box.xml41
-rw-r--r--toolkit/workben/layout/more.xml19
-rw-r--r--toolkit/workben/layout/move-copy-sheet.xml21
-rw-r--r--toolkit/workben/layout/non-interactable-containers.xml41
-rw-r--r--toolkit/workben/layout/number-format.xml70
-rw-r--r--toolkit/workben/layout/numeric.xml10
-rw-r--r--toolkit/workben/layout/ooo-patch7
-rw-r--r--toolkit/workben/layout/paragraph.xml77
-rw-r--r--toolkit/workben/layout/plugin.cxx65
-rw-r--r--toolkit/workben/layout/plugin.hxx57
-rw-r--r--toolkit/workben/layout/plugin.xml29
-rw-r--r--toolkit/workben/layout/radio-groups.xml21
-rw-r--r--toolkit/workben/layout/recover.cxx110
-rw-r--r--toolkit/workben/layout/recover.hxx79
-rw-r--r--toolkit/workben/layout/recover.xml67
-rw-r--r--toolkit/workben/layout/refresh7
-rw-r--r--toolkit/workben/layout/run-s2x6
-rw-r--r--toolkit/workben/layout/scroller.xml32
-rw-r--r--toolkit/workben/layout/sequence.xml13
-rw-r--r--toolkit/workben/layout/shutdown.xml54
-rw-r--r--toolkit/workben/layout/simple-paragraph.cxx179
-rw-r--r--toolkit/workben/layout/simple-paragraph.hxx52
-rw-r--r--toolkit/workben/layout/simple-paragraph.xml11
-rw-r--r--toolkit/workben/layout/sort-options.xml40
-rw-r--r--toolkit/workben/layout/sortdlg.cxx70
-rw-r--r--toolkit/workben/layout/sortdlg.hrc83
-rw-r--r--toolkit/workben/layout/sortdlg.hxx73
-rw-r--r--toolkit/workben/layout/sortdlg.src317
-rw-r--r--toolkit/workben/layout/sortdlg.xml65
-rw-r--r--toolkit/workben/layout/splitter.xml13
-rw-r--r--toolkit/workben/layout/string-input.xml16
-rw-r--r--toolkit/workben/layout/tab-dialog.xml20
-rw-r--r--toolkit/workben/layout/tabcontrol.xml18
-rw-r--r--toolkit/workben/layout/table.xml15
-rw-r--r--toolkit/workben/layout/test.cxx366
-rw-r--r--toolkit/workben/layout/test.xml12
-rw-r--r--toolkit/workben/layout/testrc.in12
-rw-r--r--toolkit/workben/layout/tpsort.cxx1105
-rw-r--r--toolkit/workben/layout/tpsort.hxx217
-rw-r--r--toolkit/workben/layout/un-test.sh14
-rw-r--r--toolkit/workben/layout/uno.hxx106
-rw-r--r--toolkit/workben/layout/wordcount-plain.xml29
-rw-r--r--toolkit/workben/layout/wordcount-tight.xml35
-rw-r--r--toolkit/workben/layout/wordcount.xml50
-rw-r--r--toolkit/workben/layout/wordcountdialog.cxx110
-rw-r--r--toolkit/workben/layout/wordcountdialog.hxx65
-rw-r--r--toolkit/workben/layout/zoom-1.xml38
-rw-r--r--toolkit/workben/layout/zoom-2.xml39
-rw-r--r--toolkit/workben/layout/zoom-indent.xml41
-rw-r--r--toolkit/workben/layout/zoom-plain.xml20
-rw-r--r--toolkit/workben/layout/zoom.cxx622
-rw-r--r--toolkit/workben/layout/zoom.hrc53
-rw-r--r--toolkit/workben/layout/zoom.hxx123
-rw-r--r--toolkit/workben/layout/zoom.xml60
-rw-r--r--toolkit/workben/layout/zoom_def.hxx35
-rw-r--r--toolkit/workben/makefile.mk84
-rw-r--r--toolkit/workben/no_localization1
-rw-r--r--toolkit/workben/unodialog.cxx269
-rw-r--r--tools/bootstrp/addexes/makefile.mk49
-rw-r--r--tools/bootstrp/addexes/replace.cxx76
-rw-r--r--tools/bootstrp/addexes2/makefile.mk56
-rw-r--r--tools/bootstrp/addexes2/mkfilt.cxx237
-rw-r--r--tools/bootstrp/appdef.cxx168
-rw-r--r--tools/bootstrp/command.cxx690
-rw-r--r--tools/bootstrp/cppdep.cxx246
-rw-r--r--tools/bootstrp/cppdep.hxx58
-rw-r--r--tools/bootstrp/inimgr.cxx210
-rw-r--r--tools/bootstrp/iserver.cxx152
-rw-r--r--tools/bootstrp/makefile.mk99
-rw-r--r--tools/bootstrp/md5.cxx149
-rw-r--r--tools/bootstrp/md5.hxx32
-rw-r--r--tools/bootstrp/mkcreate.cxx945
-rw-r--r--tools/bootstrp/prj.cxx1600
-rw-r--r--tools/bootstrp/rscdep.cxx340
-rw-r--r--tools/bootstrp/so_checksum.cxx56
-rw-r--r--tools/bootstrp/sspretty.cxx60
-rw-r--r--tools/bootstrp/sstring.cxx317
-rw-r--r--tools/inc/bootstrp/appdef.hxx68
-rw-r--r--tools/inc/bootstrp/command.hxx165
-rw-r--r--tools/inc/bootstrp/inimgr.hxx61
-rw-r--r--tools/inc/bootstrp/listmacr.hxx60
-rw-r--r--tools/inc/bootstrp/mkcreate.hxx295
-rw-r--r--tools/inc/bootstrp/prj.hxx331
-rw-r--r--tools/inc/bootstrp/sstring.hxx105
-rw-r--r--tools/inc/impcont.hxx147
-rw-r--r--tools/inc/impstrg.hxx54
-rw-r--r--tools/inc/makefile.mk48
-rw-r--r--tools/inc/pch/precompiled_tools.cxx29
-rw-r--r--tools/inc/pch/precompiled_tools.hxx92
-rw-r--r--tools/inc/poly.h99
-rw-r--r--tools/inc/tools/StringListResource.hxx56
-rw-r--r--tools/inc/tools/agapi.hxx67
-rw-r--r--tools/inc/tools/agitem.hxx51
-rw-r--r--tools/inc/tools/appendunixshellword.hxx59
-rw-r--r--tools/inc/tools/b3dtrans.hxx352
-rw-r--r--tools/inc/tools/bigint.hxx328
-rw-r--r--tools/inc/tools/cachestr.hxx83
-rw-r--r--tools/inc/tools/chapi.hxx68
-rw-r--r--tools/inc/tools/color.hxx239
-rw-r--r--tools/inc/tools/config.hxx101
-rw-r--r--tools/inc/tools/contnr.hxx123
-rw-r--r--tools/inc/tools/date.hxx120
-rw-r--r--tools/inc/tools/datetime.hxx111
-rw-r--r--tools/inc/tools/debug.hxx782
-rw-r--r--tools/inc/tools/diagnose_ex.h129
-rw-r--r--tools/inc/tools/download.hxx56
-rw-r--r--tools/inc/tools/dynary.hxx110
-rw-r--r--tools/inc/tools/eacopier.hxx47
-rw-r--r--tools/inc/tools/errcode.hxx323
-rw-r--r--tools/inc/tools/errinf.hxx243
-rw-r--r--tools/inc/tools/extendapplicationenvironment.hxx42
-rw-r--r--tools/inc/tools/fldunit.hxx41
-rw-r--r--tools/inc/tools/fontenum.hxx172
-rw-r--r--tools/inc/tools/fract.hxx165
-rw-r--r--tools/inc/tools/fsys.hxx575
-rw-r--r--tools/inc/tools/gen.hxx697
-rw-r--r--tools/inc/tools/geninfo.hxx230
-rw-r--r--tools/inc/tools/getprocessworkingdir.hxx48
-rw-r--r--tools/inc/tools/globname.hxx138
-rw-r--r--tools/inc/tools/inetdef.hxx111
-rw-r--r--tools/inc/tools/inetmime.hxx1445
-rw-r--r--tools/inc/tools/inetmsg.hxx623
-rw-r--r--tools/inc/tools/inetstrm.hxx275
-rw-r--r--tools/inc/tools/iparser.hxx147
-rw-r--r--tools/inc/tools/isofallback.hxx38
-rw-r--r--tools/inc/tools/line.hxx75
-rw-r--r--tools/inc/tools/link.hxx158
-rw-r--r--tools/inc/tools/list.hxx143
-rw-r--r--tools/inc/tools/mapunit.hxx41
-rw-r--r--tools/inc/tools/mempool.hxx120
-rw-r--r--tools/inc/tools/multisel.hxx216
-rw-r--r--tools/inc/tools/ownlist.hxx94
-rw-r--r--tools/inc/tools/pathutils.hxx101
-rw-r--r--tools/inc/tools/poly.hxx347
-rw-r--r--tools/inc/tools/postsys.h244
-rw-r--r--tools/inc/tools/postwin.h257
-rw-r--r--tools/inc/tools/postx.h73
-rw-r--r--tools/inc/tools/presys.h43
-rw-r--r--tools/inc/tools/prewin.h80
-rw-r--r--tools/inc/tools/prex.h78
-rw-r--r--tools/inc/tools/pstm.hxx270
-rw-r--r--tools/inc/tools/queue.hxx104
-rw-r--r--tools/inc/tools/rc.h220
-rw-r--r--tools/inc/tools/rc.hxx108
-rw-r--r--tools/inc/tools/rcid.h134
-rw-r--r--tools/inc/tools/ref.hxx456
-rw-r--r--tools/inc/tools/resary.hxx93
-rw-r--r--tools/inc/tools/resid.hxx162
-rw-r--r--tools/inc/tools/resmgr.hxx238
-rw-r--r--tools/inc/tools/rtti.hxx174
-rw-r--r--tools/inc/tools/shl.hxx114
-rw-r--r--tools/inc/tools/simplerm.hxx117
-rw-r--r--tools/inc/tools/solar.h458
-rw-r--r--tools/inc/tools/solarmutex.hxx45
-rw-r--r--tools/inc/tools/stack.hxx105
-rw-r--r--tools/inc/tools/stream.hxx856
-rw-r--r--tools/inc/tools/string.hxx699
-rw-r--r--tools/inc/tools/svborder.hxx89
-rw-r--r--tools/inc/tools/svwin.h36
-rw-r--r--tools/inc/tools/table.hxx152
-rw-r--r--tools/inc/tools/tempfile.hxx77
-rw-r--r--tools/inc/tools/tenccvt.hxx58
-rw-r--r--tools/inc/tools/testtoolloader.hxx39
-rw-r--r--tools/inc/tools/time.hxx112
-rw-r--r--tools/inc/tools/tools.h38
-rw-r--r--tools/inc/tools/toolsdllapi.h41
-rw-r--r--tools/inc/tools/unqid.hxx109
-rw-r--r--tools/inc/tools/unqidx.hxx151
-rw-r--r--tools/inc/tools/urlkeys.hxx77
-rw-r--r--tools/inc/tools/urlobj.hxx1921
-rw-r--r--tools/inc/tools/vcompat.hxx70
-rw-r--r--tools/inc/tools/vector2d.hxx119
-rw-r--r--tools/inc/tools/weakbase.h160
-rw-r--r--tools/inc/tools/weakbase.hxx183
-rw-r--r--tools/inc/tools/wintypes.hxx340
-rw-r--r--tools/inc/tools/wldcrd.hxx91
-rw-r--r--tools/inc/tools/zcodec.hxx128
-rw-r--r--tools/inc/toolsin.hxx52
-rw-r--r--tools/os2/inc/dll.hxx39
-rw-r--r--tools/os2/source/dll/makefile.mk46
-rw-r--r--tools/os2/source/dll/toolsdll.cxx48
-rw-r--r--tools/prj/build.lst30
-rw-r--r--tools/prj/d.lst124
-rw-r--r--tools/qa/makefile.mk51
-rw-r--r--tools/qa/test_pathutils.cxx76
-rw-r--r--tools/qa/version.map34
-rw-r--r--tools/source/communi/geninfo.cxx408
-rw-r--r--tools/source/communi/makefile.mk50
-rw-r--r--tools/source/communi/parser.cxx469
-rw-r--r--tools/source/datetime/datetime.cxx442
-rw-r--r--tools/source/datetime/makefile.mk50
-rw-r--r--tools/source/datetime/tdate.cxx494
-rw-r--r--tools/source/datetime/ttime.cxx445
-rw-r--r--tools/source/debug/debug.cxx1810
-rw-r--r--tools/source/debug/makefile.mk53
-rw-r--r--tools/source/debug/stcktree.cxx320
-rw-r--r--tools/source/fsys/comdep.cxx44
-rw-r--r--tools/source/fsys/comdep.hxx156
-rw-r--r--tools/source/fsys/dirent.cxx3213
-rw-r--r--tools/source/fsys/filecopy.cxx486
-rw-r--r--tools/source/fsys/fstat.cxx419
-rw-r--r--tools/source/fsys/makefile.mk67
-rw-r--r--tools/source/fsys/os2.cxx1014
-rw-r--r--tools/source/fsys/os2.hxx93
-rw-r--r--tools/source/fsys/tdir.cxx768
-rw-r--r--tools/source/fsys/tempfile.cxx301
-rw-r--r--tools/source/fsys/unx.cxx660
-rw-r--r--tools/source/fsys/unx.hxx95
-rw-r--r--tools/source/fsys/urlobj.cxx5554
-rw-r--r--tools/source/fsys/wldcrd.cxx143
-rw-r--r--tools/source/fsys/wntmsc.cxx1081
-rw-r--r--tools/source/fsys/wntmsc.hxx102
-rw-r--r--tools/source/generic/b3dtrans.cxx1014
-rw-r--r--tools/source/generic/bigint.cxx1141
-rw-r--r--tools/source/generic/color.cxx510
-rw-r--r--tools/source/generic/config.cxx1304
-rw-r--r--tools/source/generic/fract.cxx736
-rw-r--r--tools/source/generic/gen.cxx661
-rw-r--r--tools/source/generic/line.cxx363
-rw-r--r--tools/source/generic/link.cxx58
-rw-r--r--tools/source/generic/makefile.mk70
-rw-r--r--tools/source/generic/poly.cxx2375
-rw-r--r--tools/source/generic/poly2.cxx891
-rw-r--r--tools/source/generic/svborder.cxx77
-rw-r--r--tools/source/generic/toolsin.cxx95
-rw-r--r--tools/source/inet/inetmime.cxx4563
-rw-r--r--tools/source/inet/inetmsg.cxx1653
-rw-r--r--tools/source/inet/inetstrm.cxx1821
-rw-r--r--tools/source/inet/makefile.mk45
-rw-r--r--tools/source/makefile.mk58
-rw-r--r--tools/source/memtools/contnr.cxx1708
-rw-r--r--tools/source/memtools/makefile.mk56
-rw-r--r--tools/source/memtools/mempool.cxx83
-rw-r--r--tools/source/memtools/multisel.cxx1162
-rw-r--r--tools/source/memtools/table.cxx413
-rw-r--r--tools/source/memtools/unqidx.cxx601
-rw-r--r--tools/source/misc/appendunixshellword.cxx76
-rw-r--r--tools/source/misc/extendapplicationenvironment.cxx103
-rw-r--r--tools/source/misc/getprocessworkingdir.cxx64
-rw-r--r--tools/source/misc/makefile.mk47
-rw-r--r--tools/source/misc/pathutils.cxx219
-rw-r--r--tools/source/misc/solarmutex.cxx60
-rw-r--r--tools/source/rc/isofallback.cxx67
-rw-r--r--tools/source/rc/makefile.mk53
-rw-r--r--tools/source/rc/rc.cxx97
-rw-r--r--tools/source/rc/resary.cxx78
-rw-r--r--tools/source/rc/resmgr.cxx2074
-rw-r--r--tools/source/ref/errinf.cxx462
-rw-r--r--tools/source/ref/globname.cxx453
-rw-r--r--tools/source/ref/makefile.mk53
-rw-r--r--tools/source/ref/pstm.cxx915
-rw-r--r--tools/source/ref/ref.cxx51
-rw-r--r--tools/source/solar/makefile.mk63
-rw-r--r--tools/source/solar/solar.c562
-rw-r--r--tools/source/stream/cachestr.cxx290
-rw-r--r--tools/source/stream/makefile.mk58
-rw-r--r--tools/source/stream/stream.cxx2841
-rw-r--r--tools/source/stream/strmos2.cxx864
-rw-r--r--tools/source/stream/strmsys.cxx37
-rw-r--r--tools/source/stream/strmunx.cxx920
-rw-r--r--tools/source/stream/strmwnt.cxx689
-rw-r--r--tools/source/stream/vcompat.cxx80
-rw-r--r--tools/source/string/debugprint.cxx48
-rw-r--r--tools/source/string/makefile.mk79
-rw-r--r--tools/source/string/strascii.cxx637
-rw-r--r--tools/source/string/strcvt.cxx613
-rw-r--r--tools/source/string/strimp.cxx2115
-rw-r--r--tools/source/string/strucvt.cxx211
-rw-r--r--tools/source/string/tenccvt.cxx97
-rw-r--r--tools/source/string/tstring.cxx295
-rw-r--r--tools/source/string/tustring.cxx162
-rw-r--r--tools/source/testtoolloader/makefile.mk45
-rw-r--r--tools/source/testtoolloader/testtoolloader.cxx185
-rw-r--r--tools/source/zcodec/makefile.mk47
-rw-r--r--tools/source/zcodec/zcodec.cxx488
-rw-r--r--tools/test/export.map34
-rw-r--r--tools/test/makefile.mk63
-rw-r--r--tools/test/tests.cxx126
-rw-r--r--tools/unx/source/dll/makefile.mk48
-rw-r--r--tools/unx/source/dll/toolsdll.cxx47
-rw-r--r--tools/util/makefile.mk173
-rw-r--r--tools/util/makefile.pmk31
-rw-r--r--tools/util/tools.r17
-rw-r--r--tools/win/inc/dll.hxx59
-rw-r--r--tools/win/inc/parser.hxx48
-rw-r--r--tools/win/inc/shellex.h115
-rw-r--r--tools/win/inc/shutil.h215
-rw-r--r--tools/win/inc/toolsdll.hxx88
-rw-r--r--tools/win/inc/winshell.hxx386
-rw-r--r--tools/win/source/dll/makefile.mk56
-rw-r--r--tools/win/source/dll/toolsdll.cxx48
-rw-r--r--tools/win/source/fastfsys/makefile.mk71
-rw-r--r--tools/workben/fstest.cxx94
-rw-r--r--tools/workben/hashtbl.cxx515
-rw-r--r--tools/workben/hashtbl.hxx203
-rw-r--r--tools/workben/helloworld.c33
-rw-r--r--tools/workben/inetmimetest.cxx67
-rw-r--r--tools/workben/makefile.mk89
-rw-r--r--tools/workben/solar.c427
-rw-r--r--tools/workben/tldem.cxx82
-rw-r--r--tools/workben/urltest.cxx1896
-rw-r--r--twain/inc/twain.h1973
-rw-r--r--twain/prj/build.lst3
-rw-r--r--twain/prj/d.lst3
-rw-r--r--twain/util/makefile.mk39
-rw-r--r--ucb/inc/makefile.mk48
-rw-r--r--ucb/inc/pch/precompiled_ucb.cxx29
-rw-r--r--ucb/inc/pch/precompiled_ucb.hxx184
-rw-r--r--ucb/prj/build.lst16
-rw-r--r--ucb/prj/d.lst35
-rwxr-xr-xucb/qa/complex/tdoc/CheckContentProvider.java398
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsContent.java145
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsContentProvider.java143
-rwxr-xr-xucb/qa/complex/tdoc/CheckTransientDocumentsDocumentContent.java179
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XChild.java104
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XCommandInfoChangeNotifier.java64
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XCommandProcessor.java286
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XComponent.java171
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XContent.java86
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XPropertiesChangeNotifier.java67
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XPropertyContainer.java102
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XPropertySetInfoChangeNotifier.java67
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XServiceInfo.java99
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/_XTypeProvider.java95
-rwxr-xr-xucb/qa/complex/tdoc/interfaces/makefile.mk63
-rwxr-xr-xucb/qa/complex/tdoc/makefile.mk86
-rw-r--r--ucb/qa/complex/test_documents/Iterator.sxwbin0 -> 5627 bytes
-rw-r--r--ucb/qa/complex/test_documents/chinese.sxwbin0 -> 5757 bytes
-rw-r--r--ucb/qa/complex/test_documents/filter.sxwbin0 -> 14359 bytes
-rwxr-xr-xucb/qa/complex/ucb/UCB.java232
-rwxr-xr-xucb/qa/complex/ucb/makefile.mk78
-rw-r--r--ucb/qa/unoapi/knownissues.xcl2
-rw-r--r--ucb/qa/unoapi/makefile.mk40
-rw-r--r--ucb/qa/unoapi/ucb.sce11
-rw-r--r--ucb/source/cacher/cached.xml146
-rw-r--r--ucb/source/cacher/cachedcontentresultset.cxx2229
-rw-r--r--ucb/source/cacher/cachedcontentresultset.hxx521
-rw-r--r--ucb/source/cacher/cachedcontentresultsetstub.cxx631
-rw-r--r--ucb/source/cacher/cachedcontentresultsetstub.hxx202
-rw-r--r--ucb/source/cacher/cacheddynamicresultset.cxx206
-rw-r--r--ucb/source/cacher/cacheddynamicresultset.hxx137
-rw-r--r--ucb/source/cacher/cacheddynamicresultsetstub.cxx245
-rw-r--r--ucb/source/cacher/cacheddynamicresultsetstub.hxx136
-rw-r--r--ucb/source/cacher/cacheserv.cxx187
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.cxx1477
-rw-r--r--ucb/source/cacher/contentresultsetwrapper.hxx587
-rw-r--r--ucb/source/cacher/dynamicresultsetwrapper.cxx528
-rw-r--r--ucb/source/cacher/dynamicresultsetwrapper.hxx229
-rw-r--r--ucb/source/cacher/exports.map8
-rw-r--r--ucb/source/cacher/makefile.mk68
-rw-r--r--ucb/source/core/cmdenv.cxx191
-rw-r--r--ucb/source/core/cmdenv.hxx102
-rw-r--r--ucb/source/core/exports.map8
-rw-r--r--ucb/source/core/exports2.dxp5
-rw-r--r--ucb/source/core/identify.cxx116
-rw-r--r--ucb/source/core/identify.hxx68
-rw-r--r--ucb/source/core/makefile.mk76
-rw-r--r--ucb/source/core/providermap.hxx77
-rw-r--r--ucb/source/core/provprox.cxx401
-rw-r--r--ucb/source/core/provprox.hxx166
-rw-r--r--ucb/source/core/ucb.cxx548
-rw-r--r--ucb/source/core/ucb.hxx189
-rw-r--r--ucb/source/core/ucb.xml172
-rw-r--r--ucb/source/core/ucbcmds.cxx2090
-rw-r--r--ucb/source/core/ucbcmds.hxx43
-rw-r--r--ucb/source/core/ucbprops.cxx477
-rw-r--r--ucb/source/core/ucbprops.hxx93
-rw-r--r--ucb/source/core/ucbserv.cxx208
-rw-r--r--ucb/source/core/ucbstore.cxx2793
-rw-r--r--ucb/source/core/ucbstore.hxx347
-rw-r--r--ucb/source/inc/regexp.hxx84
-rw-r--r--ucb/source/inc/regexpmap.hxx188
-rw-r--r--ucb/source/inc/regexpmap.tpt564
-rw-r--r--ucb/source/regexp/makefile.mk41
-rw-r--r--ucb/source/regexp/regexp.cxx473
-rw-r--r--ucb/source/sorter/exports.map8
-rw-r--r--ucb/source/sorter/makefile.mk63
-rw-r--r--ucb/source/sorter/sortdynres.cxx628
-rw-r--r--ucb/source/sorter/sortdynres.hxx257
-rw-r--r--ucb/source/sorter/sortmain.cxx130
-rw-r--r--ucb/source/sorter/sortresult.cxx2070
-rw-r--r--ucb/source/sorter/sortresult.hxx455
-rw-r--r--ucb/source/sorter/srtrs.xml66
-rw-r--r--ucb/source/ucp/expand/makefile.mk61
-rw-r--r--ucb/source/ucp/expand/ucpexpand.cxx293
-rw-r--r--ucb/source/ucp/expand/ucpexpand1.uno.map8
-rw-r--r--ucb/source/ucp/file/bc.cxx1409
-rw-r--r--ucb/source/ucp/file/bc.hxx353
-rw-r--r--ucb/source/ucp/file/exports.map8
-rw-r--r--ucb/source/ucp/file/exports2.dxp9
-rw-r--r--ucb/source/ucp/file/filcmd.cxx141
-rw-r--r--ucb/source/ucp/file/filcmd.hxx108
-rw-r--r--ucb/source/ucp/file/filerror.hxx118
-rw-r--r--ucb/source/ucp/file/filglob.cxx954
-rw-r--r--ucb/source/ucp/file/filglob.hxx119
-rw-r--r--ucb/source/ucp/file/filid.cxx148
-rw-r--r--ucb/source/ucp/file/filid.hxx102
-rw-r--r--ucb/source/ucp/file/filinl.hxx76
-rw-r--r--ucb/source/ucp/file/filinpstr.cxx262
-rw-r--r--ucb/source/ucp/file/filinpstr.hxx164
-rw-r--r--ucb/source/ucp/file/filinsreq.cxx224
-rw-r--r--ucb/source/ucp/file/filinsreq.hxx240
-rw-r--r--ucb/source/ucp/file/filnot.cxx269
-rw-r--r--ucb/source/ucp/file/filnot.hxx137
-rw-r--r--ucb/source/ucp/file/filprp.cxx151
-rw-r--r--ucb/source/ucp/file/filprp.hxx97
-rw-r--r--ucb/source/ucp/file/filrec.cxx201
-rw-r--r--ucb/source/ucp/file/filrec.hxx86
-rw-r--r--ucb/source/ucp/file/filrow.cxx429
-rw-r--r--ucb/source/ucp/file/filrow.hxx204
-rw-r--r--ucb/source/ucp/file/filrset.cxx936
-rw-r--r--ucb/source/ucp/file/filrset.hxx683
-rw-r--r--ucb/source/ucp/file/filstr.cxx404
-rw-r--r--ucb/source/ucp/file/filstr.hxx246
-rw-r--r--ucb/source/ucp/file/filtask.cxx184
-rw-r--r--ucb/source/ucp/file/filtask.hxx225
-rw-r--r--ucb/source/ucp/file/makefile.mk80
-rw-r--r--ucb/source/ucp/file/prov.cxx738
-rw-r--r--ucb/source/ucp/file/prov.hxx238
-rw-r--r--ucb/source/ucp/file/shell.cxx3068
-rw-r--r--ucb/source/ucp/file/shell.hxx607
-rw-r--r--ucb/source/ucp/file/ucpfile.xml113
-rw-r--r--ucb/source/ucp/ftp/curl.hxx41
-rw-r--r--ucb/source/ucp/ftp/ftpcfunc.cxx56
-rw-r--r--ucb/source/ucp/ftp/ftpcfunc.hxx63
-rw-r--r--ucb/source/ucp/ftp/ftpcontainer.hxx61
-rw-r--r--ucb/source/ucp/ftp/ftpcontent.cxx957
-rw-r--r--ucb/source/ucp/ftp/ftpcontent.hxx183
-rw-r--r--ucb/source/ucp/ftp/ftpcontentcaps.cxx187
-rw-r--r--ucb/source/ucp/ftp/ftpcontentidentifier.cxx150
-rw-r--r--ucb/source/ucp/ftp/ftpcontentidentifier.hxx118
-rw-r--r--ucb/source/ucp/ftp/ftpcontentprovider.cxx280
-rw-r--r--ucb/source/ucp/ftp/ftpcontentprovider.hxx130
-rw-r--r--ucb/source/ucp/ftp/ftpdirp.cxx1292
-rw-r--r--ucb/source/ucp/ftp/ftpdirp.hxx189
-rw-r--r--ucb/source/ucp/ftp/ftpdynresultset.cxx91
-rw-r--r--ucb/source/ucp/ftp/ftpdynresultset.hxx67
-rwxr-xr-xucb/source/ucp/ftp/ftphandleprovider.hxx29
-rw-r--r--ucb/source/ucp/ftp/ftpinpstr.cxx217
-rw-r--r--ucb/source/ucp/ftp/ftpinpstr.hxx151
-rw-r--r--ucb/source/ucp/ftp/ftpintreq.cxx230
-rw-r--r--ucb/source/ucp/ftp/ftpintreq.hxx181
-rw-r--r--ucb/source/ucp/ftp/ftploaderthread.cxx109
-rw-r--r--ucb/source/ucp/ftp/ftploaderthread.hxx73
-rw-r--r--ucb/source/ucp/ftp/ftpresultsetI.cxx105
-rw-r--r--ucb/source/ucp/ftp/ftpresultsetI.hxx63
-rw-r--r--ucb/source/ucp/ftp/ftpresultsetbase.cxx662
-rw-r--r--ucb/source/ucp/ftp/ftpresultsetbase.hxx608
-rw-r--r--ucb/source/ucp/ftp/ftpresultsetfactory.hxx57
-rw-r--r--ucb/source/ucp/ftp/ftpservices.cxx128
-rw-r--r--ucb/source/ucp/ftp/ftpstrcont.hxx87
-rw-r--r--ucb/source/ucp/ftp/ftpurl.cxx838
-rw-r--r--ucb/source/ucp/ftp/ftpurl.hxx178
-rw-r--r--ucb/source/ucp/ftp/makefile.mk106
-rw-r--r--ucb/source/ucp/ftp/test.cxx298
-rw-r--r--ucb/source/ucp/ftp/test.py25
-rw-r--r--ucb/source/ucp/ftp/test_activedatasink.cxx64
-rw-r--r--ucb/source/ucp/ftp/test_activedatasink.hxx89
-rwxr-xr-xucb/source/ucp/ftp/test_ftpurl.cxx284
-rwxr-xr-xucb/source/ucp/ftp/test_ftpurl.hxx5
-rw-r--r--ucb/source/ucp/ftp/test_interactionhandler.hxx75
-rw-r--r--ucb/source/ucp/ftp/test_multiservicefac.cxx113
-rw-r--r--ucb/source/ucp/ftp/test_multiservicefac.hxx96
-rw-r--r--ucb/source/ucp/ftp/ucpftp.map8
-rw-r--r--ucb/source/ucp/ftp/ucpftp.xml89
-rw-r--r--ucb/source/ucp/gio/exports.map8
-rw-r--r--ucb/source/ucp/gio/gio_content.cxx1334
-rw-r--r--ucb/source/ucp/gio/gio_content.hxx200
-rw-r--r--ucb/source/ucp/gio/gio_datasupplier.cxx282
-rw-r--r--ucb/source/ucp/gio/gio_datasupplier.hxx99
-rw-r--r--ucb/source/ucp/gio/gio_inputstream.cxx120
-rw-r--r--ucb/source/ucp/gio/gio_inputstream.hxx94
-rw-r--r--ucb/source/ucp/gio/gio_mount.cxx183
-rw-r--r--ucb/source/ucp/gio/gio_mount.hxx72
-rw-r--r--ucb/source/ucp/gio/gio_outputstream.cxx92
-rw-r--r--ucb/source/ucp/gio/gio_outputstream.hxx82
-rw-r--r--ucb/source/ucp/gio/gio_provider.cxx175
-rw-r--r--ucb/source/ucp/gio/gio_provider.hxx66
-rw-r--r--ucb/source/ucp/gio/gio_resultset.cxx59
-rw-r--r--ucb/source/ucp/gio/gio_resultset.hxx56
-rw-r--r--ucb/source/ucp/gio/gio_seekable.cxx140
-rw-r--r--ucb/source/ucp/gio/gio_seekable.hxx80
-rw-r--r--ucb/source/ucp/gio/makefile.mk81
-rw-r--r--ucb/source/ucp/gio/ucpgio-ucd.txt6
-rw-r--r--ucb/source/ucp/gio/ucpgio.xml100
-rw-r--r--ucb/source/ucp/gvfs/exports.map8
-rw-r--r--ucb/source/ucp/gvfs/gvfs_content.cxx1817
-rw-r--r--ucb/source/ucp/gvfs/gvfs_content.hxx271
-rw-r--r--ucb/source/ucp/gvfs/gvfs_directory.cxx423
-rw-r--r--ucb/source/ucp/gvfs/gvfs_directory.hxx95
-rw-r--r--ucb/source/ucp/gvfs/gvfs_provider.cxx228
-rw-r--r--ucb/source/ucp/gvfs/gvfs_provider.hxx65
-rw-r--r--ucb/source/ucp/gvfs/gvfs_stream.cxx343
-rw-r--r--ucb/source/ucp/gvfs/gvfs_stream.hxx165
-rw-r--r--ucb/source/ucp/gvfs/makefile.mk86
-rw-r--r--ucb/source/ucp/gvfs/ucpgvfs-ucd.txt6
-rw-r--r--ucb/source/ucp/gvfs/ucpgvfs.xml113
-rw-r--r--ucb/source/ucp/hierarchy/dynamicresultset.cxx91
-rw-r--r--ucb/source/ucp/hierarchy/dynamicresultset.hxx55
-rw-r--r--ucb/source/ucp/hierarchy/hierarchycontent.cxx2009
-rw-r--r--ucb/source/ucp/hierarchy/hierarchycontent.hxx311
-rw-r--r--ucb/source/ucp/hierarchy/hierarchycontentcaps.cxx765
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydata.cxx1266
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydata.hxx149
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydatasource.cxx1116
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydatasource.hxx125
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydatasupplier.cxx446
-rw-r--r--ucb/source/ucp/hierarchy/hierarchydatasupplier.hxx82
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyprovider.cxx338
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyprovider.hxx155
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyservices.cxx149
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyuri.cxx209
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyuri.hxx91
-rw-r--r--ucb/source/ucp/hierarchy/makefile.mk84
-rw-r--r--ucb/source/ucp/hierarchy/ucphier.map8
-rw-r--r--ucb/source/ucp/hierarchy/ucphier.xml121
-rw-r--r--ucb/source/ucp/inc/urihelper.hxx123
-rw-r--r--ucb/source/ucp/odma/exports.map8
-rw-r--r--ucb/source/ucp/odma/makefile.mk97
-rw-r--r--ucb/source/ucp/odma/odma.h315
-rw-r--r--ucb/source/ucp/odma/odma_content.cxx1215
-rw-r--r--ucb/source/ucp/odma/odma_content.hxx196
-rw-r--r--ucb/source/ucp/odma/odma_contentcaps.cxx247
-rw-r--r--ucb/source/ucp/odma/odma_contentprops.hxx85
-rw-r--r--ucb/source/ucp/odma/odma_datasupplier.cxx455
-rw-r--r--ucb/source/ucp/odma/odma_datasupplier.hxx74
-rw-r--r--ucb/source/ucp/odma/odma_inputstream.cxx286
-rw-r--r--ucb/source/ucp/odma/odma_inputstream.hxx138
-rw-r--r--ucb/source/ucp/odma/odma_lib.cxx133
-rw-r--r--ucb/source/ucp/odma/odma_lib.hxx272
-rw-r--r--ucb/source/ucp/odma/odma_main.cxx91
-rw-r--r--ucb/source/ucp/odma/odma_provider.cxx599
-rw-r--r--ucb/source/ucp/odma/odma_provider.hxx174
-rw-r--r--ucb/source/ucp/odma/odma_resultset.cxx96
-rw-r--r--ucb/source/ucp/odma/odma_resultset.hxx60
-rw-r--r--ucb/source/ucp/odma/odma_services.cxx138
-rw-r--r--ucb/source/ucp/odma/ucpodma.xml100
-rw-r--r--ucb/source/ucp/package/exports.map8
-rw-r--r--ucb/source/ucp/package/makefile.mk88
-rw-r--r--ucb/source/ucp/package/pkgcontent.cxx3012
-rw-r--r--ucb/source/ucp/package/pkgcontent.hxx335
-rw-r--r--ucb/source/ucp/package/pkgcontentcaps.cxx562
-rw-r--r--ucb/source/ucp/package/pkgdatasupplier.cxx498
-rw-r--r--ucb/source/ucp/package/pkgdatasupplier.hxx77
-rw-r--r--ucb/source/ucp/package/pkgprovider.cxx330
-rw-r--r--ucb/source/ucp/package/pkgprovider.hxx105
-rw-r--r--ucb/source/ucp/package/pkgresultset.cxx94
-rw-r--r--ucb/source/ucp/package/pkgresultset.hxx59
-rw-r--r--ucb/source/ucp/package/pkgservices.cxx133
-rw-r--r--ucb/source/ucp/package/pkguri.cxx245
-rw-r--r--ucb/source/ucp/package/pkguri.hxx101
-rw-r--r--ucb/source/ucp/package/ucppkg.xml92
-rw-r--r--ucb/source/ucp/tdoc/exports.map8
-rw-r--r--ucb/source/ucp/tdoc/makefile.mk94
-rw-r--r--ucb/source/ucp/tdoc/tdoc_content.cxx3135
-rw-r--r--ucb/source/ucp/tdoc/tdoc_content.hxx342
-rw-r--r--ucb/source/ucp/tdoc/tdoc_contentcaps.cxx705
-rw-r--r--ucb/source/ucp/tdoc/tdoc_datasupplier.cxx468
-rw-r--r--ucb/source/ucp/tdoc/tdoc_datasupplier.hxx81
-rw-r--r--ucb/source/ucp/tdoc/tdoc_docmgr.cxx691
-rw-r--r--ucb/source/ucp/tdoc/tdoc_docmgr.hxx173
-rw-r--r--ucb/source/ucp/tdoc/tdoc_documentcontentfactory.cxx188
-rw-r--r--ucb/source/ucp/tdoc/tdoc_documentcontentfactory.hxx86
-rw-r--r--ucb/source/ucp/tdoc/tdoc_passwordrequest.cxx242
-rw-r--r--ucb/source/ucp/tdoc/tdoc_passwordrequest.hxx100
-rw-r--r--ucb/source/ucp/tdoc/tdoc_provider.cxx629
-rw-r--r--ucb/source/ucp/tdoc/tdoc_provider.hxx148
-rw-r--r--ucb/source/ucp/tdoc/tdoc_resultset.cxx95
-rw-r--r--ucb/source/ucp/tdoc/tdoc_resultset.hxx56
-rw-r--r--ucb/source/ucp/tdoc/tdoc_services.cxx151
-rw-r--r--ucb/source/ucp/tdoc/tdoc_stgelems.cxx1108
-rw-r--r--ucb/source/ucp/tdoc/tdoc_stgelems.hxx542
-rw-r--r--ucb/source/ucp/tdoc/tdoc_storage.cxx712
-rw-r--r--ucb/source/ucp/tdoc/tdoc_storage.hxx172
-rw-r--r--ucb/source/ucp/tdoc/tdoc_uri.cxx135
-rw-r--r--ucb/source/ucp/tdoc/tdoc_uri.hxx131
-rw-r--r--ucb/source/ucp/tdoc/ucptdoc.xml129
-rw-r--r--ucb/source/ucp/webdav/ContentProperties.cxx573
-rw-r--r--ucb/source/ucp/webdav/ContentProperties.hxx197
-rw-r--r--ucb/source/ucp/webdav/DAVAuthListener.hxx55
-rw-r--r--ucb/source/ucp/webdav/DAVAuthListenerImpl.hxx78
-rw-r--r--ucb/source/ucp/webdav/DAVException.hxx166
-rw-r--r--ucb/source/ucp/webdav/DAVProperties.cxx199
-rw-r--r--ucb/source/ucp/webdav/DAVProperties.hxx62
-rw-r--r--ucb/source/ucp/webdav/DAVRequestEnvironment.hxx62
-rw-r--r--ucb/source/ucp/webdav/DAVResource.hxx67
-rw-r--r--ucb/source/ucp/webdav/DAVResourceAccess.cxx1219
-rw-r--r--ucb/source/ucp/webdav/DAVResourceAccess.hxx251
-rw-r--r--ucb/source/ucp/webdav/DAVSession.hxx219
-rw-r--r--ucb/source/ucp/webdav/DAVSessionFactory.cxx106
-rw-r--r--ucb/source/ucp/webdav/DAVSessionFactory.hxx82
-rw-r--r--ucb/source/ucp/webdav/DAVTypes.hxx85
-rw-r--r--ucb/source/ucp/webdav/DateTimeHelper.cxx270
-rw-r--r--ucb/source/ucp/webdav/DateTimeHelper.hxx63
-rw-r--r--ucb/source/ucp/webdav/LinkSequence.cxx223
-rw-r--r--ucb/source/ucp/webdav/LinkSequence.hxx51
-rw-r--r--ucb/source/ucp/webdav/LockEntrySequence.cxx244
-rw-r--r--ucb/source/ucp/webdav/LockEntrySequence.hxx48
-rw-r--r--ucb/source/ucp/webdav/LockSequence.cxx351
-rw-r--r--ucb/source/ucp/webdav/LockSequence.hxx48
-rw-r--r--ucb/source/ucp/webdav/NeonHeadRequest.cxx200
-rw-r--r--ucb/source/ucp/webdav/NeonHeadRequest.hxx53
-rw-r--r--ucb/source/ucp/webdav/NeonInputStream.cxx195
-rw-r--r--ucb/source/ucp/webdav/NeonInputStream.hxx124
-rw-r--r--ucb/source/ucp/webdav/NeonLockStore.cxx245
-rw-r--r--ucb/source/ucp/webdav/NeonLockStore.hxx102
-rw-r--r--ucb/source/ucp/webdav/NeonPropFindRequest.cxx345
-rw-r--r--ucb/source/ucp/webdav/NeonPropFindRequest.hxx62
-rw-r--r--ucb/source/ucp/webdav/NeonSession.cxx2205
-rw-r--r--ucb/source/ucp/webdav/NeonSession.hxx295
-rw-r--r--ucb/source/ucp/webdav/NeonTypes.hxx46
-rw-r--r--ucb/source/ucp/webdav/NeonUri.cxx358
-rw-r--r--ucb/source/ucp/webdav/NeonUri.hxx102
-rw-r--r--ucb/source/ucp/webdav/PropertyMap.hxx65
-rw-r--r--ucb/source/ucp/webdav/UCBDeadPropertyValue.cxx547
-rw-r--r--ucb/source/ucp/webdav/UCBDeadPropertyValue.hxx65
-rw-r--r--ucb/source/ucp/webdav/exports.map8
-rw-r--r--ucb/source/ucp/webdav/makefile.mk160
-rw-r--r--ucb/source/ucp/webdav/ucpdav.xml109
-rw-r--r--ucb/source/ucp/webdav/webdavcontent.cxx3247
-rw-r--r--ucb/source/ucp/webdav/webdavcontent.hxx299
-rw-r--r--ucb/source/ucp/webdav/webdavcontentcaps.cxx672
-rw-r--r--ucb/source/ucp/webdav/webdavdatasupplier.cxx512
-rw-r--r--ucb/source/ucp/webdav/webdavdatasupplier.hxx82
-rw-r--r--ucb/source/ucp/webdav/webdavprovider.cxx232
-rw-r--r--ucb/source/ucp/webdav/webdavprovider.hxx124
-rw-r--r--ucb/source/ucp/webdav/webdavresultset.cxx95
-rw-r--r--ucb/source/ucp/webdav/webdavresultset.hxx59
-rw-r--r--ucb/source/ucp/webdav/webdavservices.cxx130
-rw-r--r--ucb/test/com/sun/star/comp/ucb/GlobalTransfer_Test.java214
-rw-r--r--ucb/test/com/sun/star/comp/ucb/makefile.mk60
-rw-r--r--ucb/workben/cachemap/cachemapobject1.cxx90
-rw-r--r--ucb/workben/cachemap/cachemapobject1.hxx104
-rw-r--r--ucb/workben/cachemap/cachemapobject2.hxx40
-rw-r--r--ucb/workben/cachemap/cachemapobject3.cxx105
-rw-r--r--ucb/workben/cachemap/cachemapobject3.hxx103
-rw-r--r--ucb/workben/cachemap/cachemapobjectcontainer2.cxx68
-rw-r--r--ucb/workben/cachemap/cachemapobjectcontainer2.hxx73
-rw-r--r--ucb/workben/cachemap/cachemaptest.cxx168
-rw-r--r--ucb/workben/cachemap/makefile.mk52
-rw-r--r--ucb/workben/ucb/makefile.mk84
-rw-r--r--ucb/workben/ucb/srcharg.cxx490
-rw-r--r--ucb/workben/ucb/srcharg.hxx41
-rw-r--r--ucb/workben/ucb/ucbdemo.cxx2597
-rw-r--r--ucbhelper/inc/makefile.mk48
-rw-r--r--ucbhelper/inc/pch/precompiled_ucbhelper.cxx29
-rw-r--r--ucbhelper/inc/pch/precompiled_ucbhelper.hxx32
-rw-r--r--ucbhelper/inc/ucbhelper/activedatasink.hxx75
-rw-r--r--ucbhelper/inc/ucbhelper/activedatastreamer.hxx70
-rw-r--r--ucbhelper/inc/ucbhelper/cancelcommandexecution.hxx110
-rw-r--r--ucbhelper/inc/ucbhelper/commandenvironment.hxx102
-rw-r--r--ucbhelper/inc/ucbhelper/commandenvironmentproxy.hxx99
-rw-r--r--ucbhelper/inc/ucbhelper/configurationkeys.hxx43
-rw-r--r--ucbhelper/inc/ucbhelper/configureucb.hxx201
-rw-r--r--ucbhelper/inc/ucbhelper/content.hxx1040
-rw-r--r--ucbhelper/inc/ucbhelper/contentbroker.hxx205
-rw-r--r--ucbhelper/inc/ucbhelper/contenthelper.hxx524
-rw-r--r--ucbhelper/inc/ucbhelper/contentidentifier.hxx100
-rw-r--r--ucbhelper/inc/ucbhelper/contentinfo.hxx177
-rw-r--r--ucbhelper/inc/ucbhelper/fileidentifierconverter.hxx127
-rw-r--r--ucbhelper/inc/ucbhelper/handleinteractionrequest.hxx214
-rw-r--r--ucbhelper/inc/ucbhelper/interactionrequest.hxx727
-rw-r--r--ucbhelper/inc/ucbhelper/interceptedinteraction.hxx351
-rw-r--r--ucbhelper/inc/ucbhelper/macros.hxx747
-rw-r--r--ucbhelper/inc/ucbhelper/propertyvalueset.hxx404
-rw-r--r--ucbhelper/inc/ucbhelper/providerhelper.hxx285
-rw-r--r--ucbhelper/inc/ucbhelper/proxydecider.hxx143
-rw-r--r--ucbhelper/inc/ucbhelper/resultset.hxx579
-rw-r--r--ucbhelper/inc/ucbhelper/resultsethelper.hxx220
-rw-r--r--ucbhelper/inc/ucbhelper/resultsetmetadata.hxx476
-rw-r--r--ucbhelper/inc/ucbhelper/simpleauthenticationrequest.hxx212
-rwxr-xr-xucbhelper/inc/ucbhelper/simplecertificatevalidationrequest.hxx78
-rw-r--r--ucbhelper/inc/ucbhelper/simpleinteractionrequest.hxx96
-rw-r--r--ucbhelper/inc/ucbhelper/simpleioerrorrequest.hxx75
-rw-r--r--ucbhelper/inc/ucbhelper/simplenameclashresolverequest.hxx83
-rw-r--r--ucbhelper/inc/ucbhelper/ucbhelperdllapi.h41
-rw-r--r--ucbhelper/prj/build.lst6
-rw-r--r--ucbhelper/prj/d.lst40
-rw-r--r--ucbhelper/source/client/activedatasink.cxx93
-rw-r--r--ucbhelper/source/client/activedatastreamer.cxx92
-rw-r--r--ucbhelper/source/client/commandenvironment.cxx139
-rw-r--r--ucbhelper/source/client/content.cxx1972
-rw-r--r--ucbhelper/source/client/contentbroker.cxx376
-rw-r--r--ucbhelper/source/client/fileidentifierconverter.cxx107
-rw-r--r--ucbhelper/source/client/interceptedinteraction.cxx201
-rw-r--r--ucbhelper/source/client/makefile.mk60
-rw-r--r--ucbhelper/source/client/proxydecider.cxx861
-rw-r--r--ucbhelper/source/provider/cancelcommandexecution.cxx130
-rw-r--r--ucbhelper/source/provider/commandenvironmentproxy.cxx167
-rw-r--r--ucbhelper/source/provider/configureucb.cxx242
-rw-r--r--ucbhelper/source/provider/contenthelper.cxx1127
-rw-r--r--ucbhelper/source/provider/contentidentifier.cxx221
-rw-r--r--ucbhelper/source/provider/contentinfo.cxx423
-rw-r--r--ucbhelper/source/provider/handleinteractionrequest.cxx164
-rw-r--r--ucbhelper/source/provider/interactionrequest.cxx1151
-rw-r--r--ucbhelper/source/provider/makefile.mk72
-rw-r--r--ucbhelper/source/provider/propertyvalueset.cxx923
-rw-r--r--ucbhelper/source/provider/provconf.cxx266
-rw-r--r--ucbhelper/source/provider/provconf.hxx52
-rw-r--r--ucbhelper/source/provider/providerhelper.cxx672
-rw-r--r--ucbhelper/source/provider/registerucb.cxx202
-rw-r--r--ucbhelper/source/provider/registerucb.hxx96
-rw-r--r--ucbhelper/source/provider/resultset.cxx1695
-rw-r--r--ucbhelper/source/provider/resultsethelper.cxx329
-rw-r--r--ucbhelper/source/provider/resultsetmetadata.cxx602
-rw-r--r--ucbhelper/source/provider/simpleauthenticationrequest.cxx242
-rwxr-xr-xucbhelper/source/provider/simplecertificatevalidationrequest.cxx88
-rw-r--r--ucbhelper/source/provider/simpleinteractionrequest.cxx132
-rw-r--r--ucbhelper/source/provider/simpleioerrorrequest.cxx60
-rw-r--r--ucbhelper/source/provider/simplenameclashresolverequest.cxx67
-rw-r--r--ucbhelper/util/makefile.mk75
-rw-r--r--ucbhelper/util/makefile.pmk31
-rw-r--r--ucbhelper/util/ucbhelper.flt181
-rw-r--r--ucbhelper/util/ucbhelper.xml114
-rw-r--r--ucbhelper/version.mk42
-rw-r--r--ucbhelper/workben/myucp/exports.map8
-rw-r--r--ucbhelper/workben/myucp/makefile.mk89
-rw-r--r--ucbhelper/workben/myucp/myucp_content.cxx983
-rw-r--r--ucbhelper/workben/myucp/myucp_content.hxx191
-rw-r--r--ucbhelper/workben/myucp/myucp_contentcaps.cxx223
-rw-r--r--ucbhelper/workben/myucp/myucp_datasupplier.cxx398
-rw-r--r--ucbhelper/workben/myucp/myucp_datasupplier.hxx77
-rw-r--r--ucbhelper/workben/myucp/myucp_provider.cxx171
-rw-r--r--ucbhelper/workben/myucp/myucp_provider.hxx95
-rw-r--r--ucbhelper/workben/myucp/myucp_resultset.cxx97
-rw-r--r--ucbhelper/workben/myucp/myucp_resultset.hxx62
-rw-r--r--ucbhelper/workben/myucp/myucp_services.cxx136
-rw-r--r--ucbhelper/workben/ucbexplorer/bmp/document.bmpbin0 -> 1318 bytes
-rw-r--r--ucbhelper/workben/ucbexplorer/bmp/fldclose.bmpbin0 -> 298 bytes
-rw-r--r--ucbhelper/workben/ucbexplorer/bmp/fldopen.bmpbin0 -> 322 bytes
-rw-r--r--ucbhelper/workben/ucbexplorer/bmp/link.bmpbin0 -> 1318 bytes
-rw-r--r--ucbhelper/workben/ucbexplorer/makefile.mk71
-rw-r--r--ucbhelper/workben/ucbexplorer/ucbexplorer.cxx1200
-rw-r--r--ucbhelper/workben/ucbexplorer/ucbexplorer.hrc65
-rw-r--r--ucbhelper/workben/ucbexplorer/ucbexplorer.src149
-rw-r--r--udkapi/com/sun/star/beans/Ambiguous.idl59
-rw-r--r--udkapi/com/sun/star/beans/Defaulted.idl59
-rw-r--r--udkapi/com/sun/star/beans/GetDirectPropertyTolerantResult.idl65
-rw-r--r--udkapi/com/sun/star/beans/GetPropertyTolerantResult.idl82
-rw-r--r--udkapi/com/sun/star/beans/IllegalTypeException.idl55
-rw-r--r--udkapi/com/sun/star/beans/Introspection.idl60
-rw-r--r--udkapi/com/sun/star/beans/IntrospectionException.idl54
-rw-r--r--udkapi/com/sun/star/beans/MethodConcept.idl127
-rw-r--r--udkapi/com/sun/star/beans/NamedValue.idl54
-rw-r--r--udkapi/com/sun/star/beans/NotRemoveableException.idl51
-rw-r--r--udkapi/com/sun/star/beans/Optional.idl60
-rw-r--r--udkapi/com/sun/star/beans/Pair.idl56
-rw-r--r--udkapi/com/sun/star/beans/Property.idl92
-rw-r--r--udkapi/com/sun/star/beans/PropertyAttribute.idl121
-rw-r--r--udkapi/com/sun/star/beans/PropertyBag.idl70
-rw-r--r--udkapi/com/sun/star/beans/PropertyChangeEvent.idl94
-rw-r--r--udkapi/com/sun/star/beans/PropertyConcept.idl93
-rw-r--r--udkapi/com/sun/star/beans/PropertyExistException.idl54
-rw-r--r--udkapi/com/sun/star/beans/PropertySet.idl76
-rw-r--r--udkapi/com/sun/star/beans/PropertySetInfoChange.idl61
-rw-r--r--udkapi/com/sun/star/beans/PropertySetInfoChangeEvent.idl76
-rw-r--r--udkapi/com/sun/star/beans/PropertyState.idl97
-rw-r--r--udkapi/com/sun/star/beans/PropertyStateChangeEvent.idl95
-rw-r--r--udkapi/com/sun/star/beans/PropertyValue.idl85
-rw-r--r--udkapi/com/sun/star/beans/PropertyValues.idl49
-rw-r--r--udkapi/com/sun/star/beans/PropertyVetoException.idl54
-rw-r--r--udkapi/com/sun/star/beans/SetPropertyTolerantFailed.idl66
-rw-r--r--udkapi/com/sun/star/beans/StringPair.idl55
-rw-r--r--udkapi/com/sun/star/beans/TolerantPropertySetResultType.idl90
-rw-r--r--udkapi/com/sun/star/beans/UnknownPropertyException.idl54
-rw-r--r--udkapi/com/sun/star/beans/XExactName.idl73
-rw-r--r--udkapi/com/sun/star/beans/XFastPropertySet.idl126
-rw-r--r--udkapi/com/sun/star/beans/XHierarchicalPropertySet.idl175
-rw-r--r--udkapi/com/sun/star/beans/XHierarchicalPropertySetInfo.idl104
-rw-r--r--udkapi/com/sun/star/beans/XIntroTest.idl208
-rw-r--r--udkapi/com/sun/star/beans/XIntrospection.idl121
-rw-r--r--udkapi/com/sun/star/beans/XIntrospectionAccess.idl321
-rw-r--r--udkapi/com/sun/star/beans/XMaterialHolder.idl67
-rw-r--r--udkapi/com/sun/star/beans/XMultiHierarchicalPropertySet.idl161
-rw-r--r--udkapi/com/sun/star/beans/XMultiPropertySet.idl180
-rw-r--r--udkapi/com/sun/star/beans/XMultiPropertyStates.idl140
-rw-r--r--udkapi/com/sun/star/beans/XPropertiesChangeListener.idl66
-rw-r--r--udkapi/com/sun/star/beans/XPropertiesChangeNotifier.idl71
-rw-r--r--udkapi/com/sun/star/beans/XProperty.idl69
-rw-r--r--udkapi/com/sun/star/beans/XPropertyAccess.idl100
-rw-r--r--udkapi/com/sun/star/beans/XPropertyChangeListener.idl62
-rw-r--r--udkapi/com/sun/star/beans/XPropertyContainer.idl118
-rw-r--r--udkapi/com/sun/star/beans/XPropertySet.idl217
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfo.idl102
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfoChangeListener.idl63
-rw-r--r--udkapi/com/sun/star/beans/XPropertySetInfoChangeNotifier.idl75
-rw-r--r--udkapi/com/sun/star/beans/XPropertyState.idl150
-rw-r--r--udkapi/com/sun/star/beans/XPropertyStateChangeListener.idl65
-rw-r--r--udkapi/com/sun/star/beans/XPropertyWithState.idl117
-rw-r--r--udkapi/com/sun/star/beans/XTolerantMultiPropertySet.idl164
-rw-r--r--udkapi/com/sun/star/beans/XVetoableChangeListener.idl70
-rw-r--r--udkapi/com/sun/star/beans/makefile.mk101
-rw-r--r--udkapi/com/sun/star/bridge/Bridge.idl94
-rw-r--r--udkapi/com/sun/star/bridge/BridgeExistsException.idl44
-rw-r--r--udkapi/com/sun/star/bridge/BridgeFactory.idl66
-rw-r--r--udkapi/com/sun/star/bridge/IiopBridge.idl80
-rw-r--r--udkapi/com/sun/star/bridge/InvalidProtocolChangeException.idl54
-rw-r--r--udkapi/com/sun/star/bridge/ModelDependent.idl79
-rw-r--r--udkapi/com/sun/star/bridge/OleApplicationRegistration.idl75
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplier.idl63
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplier2.idl75
-rw-r--r--udkapi/com/sun/star/bridge/OleBridgeSupplierVar1.idl58
-rw-r--r--udkapi/com/sun/star/bridge/OleObjectFactory.idl67
-rw-r--r--udkapi/com/sun/star/bridge/ProtocolProperty.idl46
-rw-r--r--udkapi/com/sun/star/bridge/UnoUrlResolver.idl51
-rw-r--r--udkapi/com/sun/star/bridge/UrpBridge.idl80
-rw-r--r--udkapi/com/sun/star/bridge/XBridge.idl64
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeFactory.idl95
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeSupplier.idl107
-rw-r--r--udkapi/com/sun/star/bridge/XBridgeSupplier2.idl121
-rw-r--r--udkapi/com/sun/star/bridge/XInstanceProvider.idl64
-rw-r--r--udkapi/com/sun/star/bridge/XProtocolProperties.idl100
-rw-r--r--udkapi/com/sun/star/bridge/XUnoUrlResolver.idl66
-rw-r--r--udkapi/com/sun/star/bridge/makefile.mk66
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/ApplicationRegistration.idl81
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/BridgeSupplier.idl80
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Currency.idl61
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Date.idl60
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Decimal.idl64
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/Factory.idl69
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/NamedArgument.idl63
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/PropertyPutArgument.idl70
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/SCode.idl62
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/XAutomationObject.idl58
-rw-r--r--udkapi/com/sun/star/bridge/oleautomation/makefile.mk54
-rw-r--r--udkapi/com/sun/star/connection/Acceptor.idl50
-rw-r--r--udkapi/com/sun/star/connection/AlreadyAcceptingException.idl42
-rw-r--r--udkapi/com/sun/star/connection/ConnectionSetupException.idl42
-rw-r--r--udkapi/com/sun/star/connection/Connector.idl49
-rw-r--r--udkapi/com/sun/star/connection/NoConnectException.idl42
-rw-r--r--udkapi/com/sun/star/connection/SocketPermission.idl104
-rw-r--r--udkapi/com/sun/star/connection/XAcceptor.idl83
-rw-r--r--udkapi/com/sun/star/connection/XConnection.idl98
-rw-r--r--udkapi/com/sun/star/connection/XConnection2.idl64
-rw-r--r--udkapi/com/sun/star/connection/XConnectionBroadcaster.idl65
-rw-r--r--udkapi/com/sun/star/connection/XConnector.idl72
-rw-r--r--udkapi/com/sun/star/connection/makefile.mk56
-rw-r--r--udkapi/com/sun/star/container/ContainerEvent.idl73
-rw-r--r--udkapi/com/sun/star/container/ElementExistException.idl58
-rw-r--r--udkapi/com/sun/star/container/EnumerableMap.idl141
-rw-r--r--udkapi/com/sun/star/container/NoSuchElementException.idl54
-rw-r--r--udkapi/com/sun/star/container/XChild.idl74
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumeration.idl70
-rw-r--r--udkapi/com/sun/star/container/XComponentEnumerationAccess.idl62
-rw-r--r--udkapi/com/sun/star/container/XContainer.idl93
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveBroadcaster.idl66
-rw-r--r--udkapi/com/sun/star/container/XContainerApproveListener.idl89
-rw-r--r--udkapi/com/sun/star/container/XContainerListener.idl73
-rw-r--r--udkapi/com/sun/star/container/XContainerQuery.idl114
-rw-r--r--udkapi/com/sun/star/container/XContentEnumerationAccess.idl84
-rw-r--r--udkapi/com/sun/star/container/XElementAccess.idl72
-rw-r--r--udkapi/com/sun/star/container/XEnumerableMap.idl110
-rw-r--r--udkapi/com/sun/star/container/XEnumeration.idl102
-rw-r--r--udkapi/com/sun/star/container/XEnumerationAccess.idl63
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalName.idl82
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameAccess.idl90
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameContainer.idl92
-rw-r--r--udkapi/com/sun/star/container/XHierarchicalNameReplace.idl81
-rw-r--r--udkapi/com/sun/star/container/XIdentifierAccess.idl84
-rw-r--r--udkapi/com/sun/star/container/XIdentifierContainer.idl111
-rw-r--r--udkapi/com/sun/star/container/XIdentifierReplace.idl89
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDAccess.idl68
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDContainer.idl74
-rw-r--r--udkapi/com/sun/star/container/XImplicitIDReplace.idl66
-rw-r--r--udkapi/com/sun/star/container/XIndexAccess.idl91
-rw-r--r--udkapi/com/sun/star/container/XIndexContainer.idl83
-rw-r--r--udkapi/com/sun/star/container/XIndexReplace.idl74
-rw-r--r--udkapi/com/sun/star/container/XMap.idl203
-rw-r--r--udkapi/com/sun/star/container/XNameAccess.idl106
-rw-r--r--udkapi/com/sun/star/container/XNameContainer.idl86
-rw-r--r--udkapi/com/sun/star/container/XNameReplace.idl74
-rw-r--r--udkapi/com/sun/star/container/XNamed.idl65
-rw-r--r--udkapi/com/sun/star/container/XSet.idl87
-rw-r--r--udkapi/com/sun/star/container/XStringKeyMap.idl154
-rw-r--r--udkapi/com/sun/star/container/XUniqueIDAccess.idl65
-rw-r--r--udkapi/com/sun/star/container/makefile.mk83
-rw-r--r--udkapi/com/sun/star/corba/corba.idl103
-rw-r--r--udkapi/com/sun/star/corba/giop/giop.idl251
-rw-r--r--udkapi/com/sun/star/corba/giop/makefile.mk43
-rw-r--r--udkapi/com/sun/star/corba/iiop/iiop.idl87
-rw-r--r--udkapi/com/sun/star/corba/iiop/makefile.mk43
-rw-r--r--udkapi/com/sun/star/corba/iop/iop.idl123
-rw-r--r--udkapi/com/sun/star/corba/iop/makefile.mk43
-rw-r--r--udkapi/com/sun/star/corba/makefile.mk43
-rw-r--r--udkapi/com/sun/star/io/AlreadyConnectedException.idl56
-rw-r--r--udkapi/com/sun/star/io/BufferSizeExceededException.idl60
-rw-r--r--udkapi/com/sun/star/io/ConnectException.idl57
-rw-r--r--udkapi/com/sun/star/io/DataInputStream.idl81
-rw-r--r--udkapi/com/sun/star/io/DataOutputStream.idl71
-rw-r--r--udkapi/com/sun/star/io/DataTransferEvent.idl63
-rw-r--r--udkapi/com/sun/star/io/FilePermission.idl84
-rw-r--r--udkapi/com/sun/star/io/IOException.idl55
-rw-r--r--udkapi/com/sun/star/io/MarkableInputStream.idl78
-rw-r--r--udkapi/com/sun/star/io/MarkableOutputStream.idl83
-rw-r--r--udkapi/com/sun/star/io/NoRouteToHostException.idl56
-rw-r--r--udkapi/com/sun/star/io/NotConnectedException.idl56
-rw-r--r--udkapi/com/sun/star/io/ObjectInputStream.idl109
-rw-r--r--udkapi/com/sun/star/io/ObjectOutputStream.idl96
-rw-r--r--udkapi/com/sun/star/io/Pipe.idl72
-rw-r--r--udkapi/com/sun/star/io/Pump.idl78
-rw-r--r--udkapi/com/sun/star/io/SequenceInputStream.idl62
-rw-r--r--udkapi/com/sun/star/io/SequenceOutputStream.idl48
-rw-r--r--udkapi/com/sun/star/io/SocketException.idl55
-rw-r--r--udkapi/com/sun/star/io/TempFile.idl47
-rw-r--r--udkapi/com/sun/star/io/TextInputStream.idl70
-rw-r--r--udkapi/com/sun/star/io/TextOutputStream.idl66
-rw-r--r--udkapi/com/sun/star/io/UnexpectedEOFException.idl56
-rw-r--r--udkapi/com/sun/star/io/UnknownHostException.idl54
-rw-r--r--udkapi/com/sun/star/io/WrongFormatException.idl56
-rw-r--r--udkapi/com/sun/star/io/XActiveDataControl.idl107
-rw-r--r--udkapi/com/sun/star/io/XActiveDataSink.idl81
-rw-r--r--udkapi/com/sun/star/io/XActiveDataSource.idl81
-rw-r--r--udkapi/com/sun/star/io/XActiveDataStreamer.idl82
-rw-r--r--udkapi/com/sun/star/io/XAsyncOutputMonitor.idl95
-rw-r--r--udkapi/com/sun/star/io/XConnectable.idl94
-rw-r--r--udkapi/com/sun/star/io/XDataExporter.idl86
-rw-r--r--udkapi/com/sun/star/io/XDataImporter.idl85
-rw-r--r--udkapi/com/sun/star/io/XDataInputStream.idl134
-rw-r--r--udkapi/com/sun/star/io/XDataOutputStream.idl134
-rw-r--r--udkapi/com/sun/star/io/XDataTransferEventListener.idl73
-rw-r--r--udkapi/com/sun/star/io/XInputStream.idl177
-rw-r--r--udkapi/com/sun/star/io/XInputStreamProvider.idl60
-rw-r--r--udkapi/com/sun/star/io/XMarkableStream.idl127
-rw-r--r--udkapi/com/sun/star/io/XObjectInputStream.idl72
-rw-r--r--udkapi/com/sun/star/io/XObjectOutputStream.idl71
-rw-r--r--udkapi/com/sun/star/io/XOutputStream.idl105
-rw-r--r--udkapi/com/sun/star/io/XPersist.idl72
-rw-r--r--udkapi/com/sun/star/io/XPersistObject.idl117
-rw-r--r--udkapi/com/sun/star/io/XSeekable.idl93
-rw-r--r--udkapi/com/sun/star/io/XSeekableInputStream.idl56
-rw-r--r--udkapi/com/sun/star/io/XSequenceOutputStream.idl65
-rw-r--r--udkapi/com/sun/star/io/XStream.idl80
-rw-r--r--udkapi/com/sun/star/io/XStreamListener.idl90
-rw-r--r--udkapi/com/sun/star/io/XTempFile.idl89
-rw-r--r--udkapi/com/sun/star/io/XTextInputStream.idl121
-rw-r--r--udkapi/com/sun/star/io/XTextOutputStream.idl86
-rw-r--r--udkapi/com/sun/star/io/XTruncate.idl67
-rw-r--r--udkapi/com/sun/star/io/XXMLExtractor.idl64
-rw-r--r--udkapi/com/sun/star/io/makefile.mk99
-rwxr-xr-xudkapi/com/sun/star/java/InvalidJavaSettingsException.idl52
-rw-r--r--udkapi/com/sun/star/java/JavaDisabledException.idl51
-rw-r--r--udkapi/com/sun/star/java/JavaInitializationException.idl59
-rw-r--r--udkapi/com/sun/star/java/JavaNotConfiguredException.idl50
-rw-r--r--udkapi/com/sun/star/java/JavaNotFoundException.idl48
-rw-r--r--udkapi/com/sun/star/java/JavaVMCreationFailureException.idl61
-rw-r--r--udkapi/com/sun/star/java/JavaVirtualMachine.idl64
-rw-r--r--udkapi/com/sun/star/java/MissingJavaRuntimeException.idl53
-rwxr-xr-xudkapi/com/sun/star/java/RestartRequiredException.idl48
-rw-r--r--udkapi/com/sun/star/java/WrongJavaVersionException.idl64
-rw-r--r--udkapi/com/sun/star/java/XJavaThreadRegister_11.idl83
-rw-r--r--udkapi/com/sun/star/java/XJavaVM.idl141
-rw-r--r--udkapi/com/sun/star/java/makefile.mk57
-rw-r--r--udkapi/com/sun/star/lang/ArrayIndexOutOfBoundsException.idl59
-rw-r--r--udkapi/com/sun/star/lang/ClassNotFoundException.idl56
-rw-r--r--udkapi/com/sun/star/lang/DisposedException.idl60
-rw-r--r--udkapi/com/sun/star/lang/EventObject.idl61
-rw-r--r--udkapi/com/sun/star/lang/IllegalAccessException.idl56
-rw-r--r--udkapi/com/sun/star/lang/IllegalArgumentException.idl65
-rw-r--r--udkapi/com/sun/star/lang/IndexOutOfBoundsException.idl59
-rw-r--r--udkapi/com/sun/star/lang/InvalidListenerException.idl59
-rw-r--r--udkapi/com/sun/star/lang/ListenerExistException.idl58
-rw-r--r--udkapi/com/sun/star/lang/Locale.idl122
-rw-r--r--udkapi/com/sun/star/lang/MultiServiceFactory.idl86
-rw-r--r--udkapi/com/sun/star/lang/NoSuchFieldException.idl55
-rw-r--r--udkapi/com/sun/star/lang/NoSuchMethodException.idl55
-rw-r--r--udkapi/com/sun/star/lang/NoSupportException.idl61
-rw-r--r--udkapi/com/sun/star/lang/NotInitializedException.idl56
-rw-r--r--udkapi/com/sun/star/lang/NullPointerException.idl61
-rw-r--r--udkapi/com/sun/star/lang/RegistryServiceManager.idl100
-rw-r--r--udkapi/com/sun/star/lang/ServiceManager.idl141
-rw-r--r--udkapi/com/sun/star/lang/ServiceNotRegisteredException.idl58
-rw-r--r--udkapi/com/sun/star/lang/SystemDependent.idl125
-rw-r--r--udkapi/com/sun/star/lang/WrappedTargetException.idl69
-rw-r--r--udkapi/com/sun/star/lang/WrappedTargetRuntimeException.idl61
-rw-r--r--udkapi/com/sun/star/lang/XComponent.idl143
-rw-r--r--udkapi/com/sun/star/lang/XConnectionPoint.idl204
-rw-r--r--udkapi/com/sun/star/lang/XConnectionPointContainer.idl118
-rw-r--r--udkapi/com/sun/star/lang/XEventListener.idl76
-rw-r--r--udkapi/com/sun/star/lang/XInitialization.idl83
-rw-r--r--udkapi/com/sun/star/lang/XLocalizable.idl70
-rw-r--r--udkapi/com/sun/star/lang/XMain.idl69
-rw-r--r--udkapi/com/sun/star/lang/XMultiComponentFactory.idl90
-rw-r--r--udkapi/com/sun/star/lang/XMultiServiceFactory.idl97
-rw-r--r--udkapi/com/sun/star/lang/XServiceDisplayName.idl76
-rw-r--r--udkapi/com/sun/star/lang/XServiceInfo.idl79
-rw-r--r--udkapi/com/sun/star/lang/XServiceName.idl64
-rw-r--r--udkapi/com/sun/star/lang/XSingleComponentFactory.idl75
-rw-r--r--udkapi/com/sun/star/lang/XSingleServiceFactory.idl82
-rw-r--r--udkapi/com/sun/star/lang/XTypeProvider.idl79
-rw-r--r--udkapi/com/sun/star/lang/XUnoTunnel.idl80
-rw-r--r--udkapi/com/sun/star/lang/makefile.mk83
-rw-r--r--udkapi/com/sun/star/loader/CannotActivateFactoryException.idl62
-rw-r--r--udkapi/com/sun/star/loader/Dynamic.idl67
-rw-r--r--udkapi/com/sun/star/loader/Java.idl66
-rw-r--r--udkapi/com/sun/star/loader/Java2.idl51
-rw-r--r--udkapi/com/sun/star/loader/SharedLibrary.idl64
-rw-r--r--udkapi/com/sun/star/loader/XImplementationLoader.idl123
-rw-r--r--udkapi/com/sun/star/loader/makefile.mk51
-rw-r--r--udkapi/com/sun/star/makefile.mk46
-rw-r--r--udkapi/com/sun/star/reflection/CoreReflection.idl74
-rw-r--r--udkapi/com/sun/star/reflection/FieldAccessMode.idl64
-rw-r--r--udkapi/com/sun/star/reflection/InvalidTypeNameException.idl55
-rw-r--r--udkapi/com/sun/star/reflection/InvocationTargetException.idl57
-rw-r--r--udkapi/com/sun/star/reflection/MethodMode.idl59
-rw-r--r--udkapi/com/sun/star/reflection/NoSuchTypeNameException.idl54
-rw-r--r--udkapi/com/sun/star/reflection/ParamInfo.idl66
-rw-r--r--udkapi/com/sun/star/reflection/ParamMode.idl63
-rw-r--r--udkapi/com/sun/star/reflection/ProxyFactory.idl73
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionManager.idl125
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionProvider.idl90
-rw-r--r--udkapi/com/sun/star/reflection/TypeDescriptionSearchDepth.idl59
-rw-r--r--udkapi/com/sun/star/reflection/XArrayTypeDescription.idl78
-rw-r--r--udkapi/com/sun/star/reflection/XCompoundTypeDescription.idl85
-rw-r--r--udkapi/com/sun/star/reflection/XConstantTypeDescription.idl80
-rw-r--r--udkapi/com/sun/star/reflection/XConstantsTypeDescription.idl65
-rw-r--r--udkapi/com/sun/star/reflection/XEnumTypeDescription.idl74
-rw-r--r--udkapi/com/sun/star/reflection/XIdlArray.idl134
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClass.idl215
-rw-r--r--udkapi/com/sun/star/reflection/XIdlClassProvider.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XIdlField2.idl133
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMember.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XIdlMethod.idl141
-rw-r--r--udkapi/com/sun/star/reflection/XIdlReflection.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XIndirectTypeDescription.idl63
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription.idl77
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceAttributeTypeDescription2.idl79
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMemberTypeDescription.idl71
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceMethodTypeDescription.idl90
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription.idl96
-rw-r--r--udkapi/com/sun/star/reflection/XInterfaceTypeDescription2.idl76
-rw-r--r--udkapi/com/sun/star/reflection/XMethodParameter.idl98
-rw-r--r--udkapi/com/sun/star/reflection/XModuleTypeDescription.idl61
-rw-r--r--udkapi/com/sun/star/reflection/XParameter.idl59
-rw-r--r--udkapi/com/sun/star/reflection/XPropertyTypeDescription.idl67
-rw-r--r--udkapi/com/sun/star/reflection/XProxyFactory.idl81
-rw-r--r--udkapi/com/sun/star/reflection/XPublished.idl113
-rw-r--r--udkapi/com/sun/star/reflection/XServiceConstructorDescription.idl83
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription.idl109
-rw-r--r--udkapi/com/sun/star/reflection/XServiceTypeDescription2.idl81
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription.idl72
-rw-r--r--udkapi/com/sun/star/reflection/XSingletonTypeDescription2.idl70
-rw-r--r--udkapi/com/sun/star/reflection/XStructTypeDescription.idl93
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescription.idl85
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumeration.idl69
-rw-r--r--udkapi/com/sun/star/reflection/XTypeDescriptionEnumerationAccess.idl187
-rw-r--r--udkapi/com/sun/star/reflection/XUnionTypeDescription.idl100
-rw-r--r--udkapi/com/sun/star/reflection/makefile.mk93
-rw-r--r--udkapi/com/sun/star/registry/CannotRegisterImplementationException.idl64
-rw-r--r--udkapi/com/sun/star/registry/DefaultRegistry.idl163
-rw-r--r--udkapi/com/sun/star/registry/ImplementationRegistration.idl66
-rw-r--r--udkapi/com/sun/star/registry/InvalidRegistryException.idl56
-rw-r--r--udkapi/com/sun/star/registry/InvalidValueException.idl56
-rw-r--r--udkapi/com/sun/star/registry/MergeConflictException.idl56
-rw-r--r--udkapi/com/sun/star/registry/NestedRegistry.idl161
-rw-r--r--udkapi/com/sun/star/registry/RegistryKeyType.idl66
-rw-r--r--udkapi/com/sun/star/registry/RegistryValueType.idl119
-rw-r--r--udkapi/com/sun/star/registry/SimpleRegistry.idl64
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration.idl128
-rw-r--r--udkapi/com/sun/star/registry/XImplementationRegistration2.idl74
-rw-r--r--udkapi/com/sun/star/registry/XRegistryKey.idl466
-rw-r--r--udkapi/com/sun/star/registry/XSimpleRegistry.idl159
-rw-r--r--udkapi/com/sun/star/registry/makefile.mk59
-rw-r--r--udkapi/com/sun/star/script/AllEventObject.idl80
-rw-r--r--udkapi/com/sun/star/script/AllListenerAdapter.idl53
-rw-r--r--udkapi/com/sun/star/script/ArrayWrapper.idl68
-rw-r--r--udkapi/com/sun/star/script/BasicErrorException.idl69
-rw-r--r--udkapi/com/sun/star/script/CannotConvertException.idl72
-rw-r--r--udkapi/com/sun/star/script/CannotCreateAdapterException.idl55
-rw-r--r--udkapi/com/sun/star/script/ContextInformation.idl99
-rw-r--r--udkapi/com/sun/star/script/Converter.idl104
-rw-r--r--udkapi/com/sun/star/script/Engine.idl60
-rw-r--r--udkapi/com/sun/star/script/FailReason.idl91
-rw-r--r--udkapi/com/sun/star/script/FinishEngineEvent.idl76
-rw-r--r--udkapi/com/sun/star/script/FinishReason.idl62
-rw-r--r--udkapi/com/sun/star/script/InterruptEngineEvent.idl118
-rw-r--r--udkapi/com/sun/star/script/InterruptReason.idl88
-rw-r--r--udkapi/com/sun/star/script/Invocation.idl61
-rw-r--r--udkapi/com/sun/star/script/InvocationAdapterFactory.idl77
-rw-r--r--udkapi/com/sun/star/script/InvocationInfo.idl93
-rw-r--r--udkapi/com/sun/star/script/JavaScript.idl56
-rw-r--r--udkapi/com/sun/star/script/MemberType.idl51
-rw-r--r--udkapi/com/sun/star/script/ScriptEvent.idl65
-rw-r--r--udkapi/com/sun/star/script/ScriptEventDescriptor.idl76
-rw-r--r--udkapi/com/sun/star/script/XAllListener.idl75
-rw-r--r--udkapi/com/sun/star/script/XAllListenerAdapterService.idl72
-rw-r--r--udkapi/com/sun/star/script/XDebugging.idl153
-rw-r--r--udkapi/com/sun/star/script/XDefaultMethod.idl62
-rw-r--r--udkapi/com/sun/star/script/XDefaultProperty.idl66
-rw-r--r--udkapi/com/sun/star/script/XEngine.idl132
-rw-r--r--udkapi/com/sun/star/script/XEngineListener.idl83
-rw-r--r--udkapi/com/sun/star/script/XEventAttacher.idl123
-rw-r--r--udkapi/com/sun/star/script/XEventAttacherManager.idl232
-rw-r--r--udkapi/com/sun/star/script/XInvocation.idl157
-rw-r--r--udkapi/com/sun/star/script/XInvocation2.idl84
-rw-r--r--udkapi/com/sun/star/script/XInvocationAdapterFactory.idl72
-rw-r--r--udkapi/com/sun/star/script/XInvocationAdapterFactory2.idl68
-rw-r--r--udkapi/com/sun/star/script/XLibraryAccess.idl108
-rw-r--r--udkapi/com/sun/star/script/XScriptEventsAttacher.idl101
-rw-r--r--udkapi/com/sun/star/script/XScriptEventsSupplier.idl62
-rw-r--r--udkapi/com/sun/star/script/XScriptListener.idl71
-rw-r--r--udkapi/com/sun/star/script/XStarBasicAccess.idl98
-rw-r--r--udkapi/com/sun/star/script/XStarBasicDialogInfo.idl63
-rw-r--r--udkapi/com/sun/star/script/XStarBasicLibraryInfo.idl106
-rw-r--r--udkapi/com/sun/star/script/XStarBasicModuleInfo.idl70
-rw-r--r--udkapi/com/sun/star/script/XTypeConverter.idl109
-rw-r--r--udkapi/com/sun/star/script/makefile.mk88
-rw-r--r--udkapi/com/sun/star/security/AccessControlException.idl62
-rw-r--r--udkapi/com/sun/star/security/AccessController.idl62
-rw-r--r--udkapi/com/sun/star/security/AllPermission.idl56
-rw-r--r--udkapi/com/sun/star/security/Policy.idl48
-rw-r--r--udkapi/com/sun/star/security/RuntimePermission.idl52
-rw-r--r--udkapi/com/sun/star/security/XAccessControlContext.idl91
-rw-r--r--udkapi/com/sun/star/security/XAccessController.idl155
-rw-r--r--udkapi/com/sun/star/security/XAction.idl65
-rw-r--r--udkapi/com/sun/star/security/XPolicy.idl70
-rw-r--r--udkapi/com/sun/star/security/makefile.mk60
-rw-r--r--udkapi/com/sun/star/task/XInteractionAbort.idl56
-rw-r--r--udkapi/com/sun/star/task/XInteractionContinuation.idl66
-rw-r--r--udkapi/com/sun/star/task/XInteractionHandler.idl66
-rw-r--r--udkapi/com/sun/star/task/XInteractionHandler2.idl68
-rw-r--r--udkapi/com/sun/star/task/XInteractionRequest.idl77
-rw-r--r--udkapi/com/sun/star/task/XInteractionRetry.idl56
-rw-r--r--udkapi/com/sun/star/task/makefile.mk50
-rw-r--r--udkapi/com/sun/star/test/TestEvent.idl62
-rw-r--r--udkapi/com/sun/star/test/TestFactory.idl70
-rw-r--r--udkapi/com/sun/star/test/XSimpleTest.idl121
-rw-r--r--udkapi/com/sun/star/test/XTest.idl155
-rw-r--r--udkapi/com/sun/star/test/XTestListener.idl85
-rw-r--r--udkapi/com/sun/star/test/bridge/XBridgeTest.idl306
-rw-r--r--udkapi/com/sun/star/test/bridge/makefile.mk45
-rw-r--r--udkapi/com/sun/star/test/makefile.mk50
-rw-r--r--udkapi/com/sun/star/test/performance/XPerformanceTest.idl139
-rw-r--r--udkapi/com/sun/star/test/performance/makefile.mk45
-rw-r--r--udkapi/com/sun/star/udk-modules.idl82
-rw-r--r--udkapi/com/sun/star/uno/DeploymentException.idl53
-rw-r--r--udkapi/com/sun/star/uno/Exception.idl71
-rw-r--r--udkapi/com/sun/star/uno/NamingService.idl57
-rw-r--r--udkapi/com/sun/star/uno/RuntimeException.idl60
-rw-r--r--udkapi/com/sun/star/uno/SecurityException.idl51
-rw-r--r--udkapi/com/sun/star/uno/TypeClass.idl153
-rw-r--r--udkapi/com/sun/star/uno/Uik.idl70
-rw-r--r--udkapi/com/sun/star/uno/XAdapter.idl92
-rw-r--r--udkapi/com/sun/star/uno/XAggregation.idl124
-rw-r--r--udkapi/com/sun/star/uno/XComponentContext.idl69
-rw-r--r--udkapi/com/sun/star/uno/XCurrentContext.idl61
-rw-r--r--udkapi/com/sun/star/uno/XInterface.idl134
-rw-r--r--udkapi/com/sun/star/uno/XNamingService.idl82
-rw-r--r--udkapi/com/sun/star/uno/XReference.idl71
-rw-r--r--udkapi/com/sun/star/uno/XUnloadingPreference.idl71
-rw-r--r--udkapi/com/sun/star/uno/XWeak.idl123
-rw-r--r--udkapi/com/sun/star/uno/makefile.mk61
-rw-r--r--udkapi/com/sun/star/uri/ExternalUriReferenceTranslator.idl45
-rw-r--r--udkapi/com/sun/star/uri/RelativeUriExcessParentSegments.idl62
-rw-r--r--udkapi/com/sun/star/uri/UriReferenceFactory.idl77
-rw-r--r--udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTexpand.idl58
-rw-r--r--udkapi/com/sun/star/uri/UriSchemeParser_vndDOTsunDOTstarDOTscript.idl58
-rw-r--r--udkapi/com/sun/star/uri/VndSunStarPkgUrlReferenceFactory.idl45
-rw-r--r--udkapi/com/sun/star/uri/XExternalUriReferenceTranslator.idl91
-rw-r--r--udkapi/com/sun/star/uri/XUriReference.idl231
-rw-r--r--udkapi/com/sun/star/uri/XUriReferenceFactory.idl163
-rw-r--r--udkapi/com/sun/star/uri/XUriSchemeParser.idl75
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarExpandUrl.idl77
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarExpandUrlReference.idl59
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarPkgUrlReferenceFactory.idl61
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarScriptUrl.idl137
-rw-r--r--udkapi/com/sun/star/uri/XVndSunStarScriptUrlReference.idl57
-rw-r--r--udkapi/com/sun/star/uri/makefile.mk54
-rw-r--r--udkapi/com/sun/star/util/BootstrapMacroExpander.idl66
-rw-r--r--udkapi/com/sun/star/util/MacroExpander.idl63
-rw-r--r--udkapi/com/sun/star/util/XMacroExpander.idl68
-rw-r--r--udkapi/com/sun/star/util/XVeto.idl64
-rw-r--r--udkapi/com/sun/star/util/logging/LogLevel.idl59
-rw-r--r--udkapi/com/sun/star/util/logging/Logger.idl64
-rw-r--r--udkapi/com/sun/star/util/logging/LoggerRemote.idl64
-rw-r--r--udkapi/com/sun/star/util/logging/XLogger.idl71
-rw-r--r--udkapi/com/sun/star/util/logging/XLoggerRemote.idl77
-rw-r--r--udkapi/com/sun/star/util/logging/makefile.mk50
-rw-r--r--udkapi/com/sun/star/util/makefile.mk50
-rw-r--r--udkapi/com/sun/star/util/theMacroExpander.idl53
-rw-r--r--udkapi/prj/build.lst30
-rw-r--r--udkapi/prj/d.lst55
-rw-r--r--udkapi/prj/makefile.mk61
-rw-r--r--udkapi/util/makefile.mk75
-rw-r--r--udkapi/util/makefile.pmk35
-rw-r--r--udkapi/util/target.pmk34
-rw-r--r--udm/inc/udm/html/htmlitem.hxx408
-rw-r--r--udm/inc/udm/xml/xmlitem.hxx387
-rw-r--r--udm/prj/build.lst12
-rw-r--r--udm/prj/d.lst9
-rw-r--r--udm/source/html/htmlitem.cxx243
-rw-r--r--udm/source/html/makefile.mk56
-rw-r--r--udm/source/inc/precomp.h66
-rw-r--r--udm/source/mkinc/fullcpp.mk60
-rw-r--r--udm/source/unittest/makefile.mk77
-rw-r--r--udm/source/unittest/test.cxx112
-rw-r--r--udm/source/xml/makefile.mk56
-rw-r--r--udm/source/xml/xmlitem.cxx614
-rw-r--r--udm/util/makefile.mk54
-rw-r--r--unixODBC/inc/sql.h824
-rw-r--r--unixODBC/inc/sqlext.h2122
-rw-r--r--unixODBC/inc/sqltypes.h478
-rw-r--r--unixODBC/inc/sqlucode.h789
-rw-r--r--unixODBC/prj/build.lst3
-rw-r--r--unixODBC/prj/d.lst3
-rw-r--r--unodevtools/inc/unodevtools/options.hxx50
-rw-r--r--unodevtools/inc/unodevtools/typemanager.hxx100
-rw-r--r--unodevtools/prj/build.lst8
-rw-r--r--unodevtools/prj/d.lst5
-rw-r--r--unodevtools/source/skeletonmaker/cppcompskeleton.cxx1277
-rw-r--r--unodevtools/source/skeletonmaker/cpptypemaker.cxx971
-rw-r--r--unodevtools/source/skeletonmaker/javacompskeleton.cxx997
-rw-r--r--unodevtools/source/skeletonmaker/javatypemaker.cxx876
-rw-r--r--unodevtools/source/skeletonmaker/makefile.mk57
-rw-r--r--unodevtools/source/skeletonmaker/skeletoncommon.cxx722
-rw-r--r--unodevtools/source/skeletonmaker/skeletoncommon.hxx168
-rw-r--r--unodevtools/source/skeletonmaker/skeletoncpp.hxx142
-rw-r--r--unodevtools/source/skeletonmaker/skeletonjava.hxx116
-rw-r--r--unodevtools/source/skeletonmaker/skeletonmaker.cxx352
-rw-r--r--unodevtools/source/unodevtools/makefile.mk52
-rw-r--r--unodevtools/source/unodevtools/options.cxx125
-rw-r--r--unodevtools/source/unodevtools/typeblob.cxx803
-rw-r--r--unodevtools/source/unodevtools/typemanager.cxx281
-rwxr-xr-xunodevtools/unodevtools.pmk65
-rw-r--r--unoil/climaker/cli_oootypes_config11
-rw-r--r--unoil/climaker/makefile.mk94
-rw-r--r--unoil/climaker/version.txt32
-rw-r--r--unoil/com/sun/star/deployment/ui/makefile.mk33
-rw-r--r--unoil/com/sun/star/frame/status/makefile.mk35
-rwxr-xr-xunoil/com/sun/star/graphic/makefile.mk35
-rw-r--r--unoil/com/sun/star/mail/makefile.mk35
-rw-r--r--unoil/com/sun/star/media/makefile.mk35
-rw-r--r--unoil/drafts/com/sun/star/frame/status/makefile.mk35
-rw-r--r--unoil/javamaker/makefile.mk47
-rw-r--r--unoil/prj/build.lst4
-rw-r--r--unoil/prj/d.lst5
-rw-r--r--unoil/util/makefile.mk44
-rw-r--r--unoil/util/makefile.pmk35
-rw-r--r--unotools/inc/makefile.mk48
-rw-r--r--unotools/inc/pch/precompiled_unotools.cxx29
-rw-r--r--unotools/inc/pch/precompiled_unotools.hxx32
-rw-r--r--unotools/inc/unotools/accelcfg.hxx85
-rw-r--r--unotools/inc/unotools/accessiblerelationsethelper.hxx161
-rw-r--r--unotools/inc/unotools/accessiblestatesethelper.hxx183
-rw-r--r--unotools/inc/unotools/atom.hxx132
-rw-r--r--unotools/inc/unotools/bootstrap.hxx138
-rw-r--r--unotools/inc/unotools/cacheoptions.hxx173
-rw-r--r--unotools/inc/unotools/calendarwrapper.hxx133
-rw-r--r--unotools/inc/unotools/charclass.hxx236
-rw-r--r--unotools/inc/unotools/cmdoptions.hxx255
-rw-r--r--unotools/inc/unotools/collatorwrapper.hxx97
-rw-r--r--unotools/inc/unotools/compatibility.hxx253
-rw-r--r--unotools/inc/unotools/componentresmodule.hxx203
-rw-r--r--unotools/inc/unotools/configitem.hxx212
-rw-r--r--unotools/inc/unotools/configmgr.hxx115
-rw-r--r--unotools/inc/unotools/confignode.hxx340
-rw-r--r--unotools/inc/unotools/configpathes.hxx177
-rw-r--r--unotools/inc/unotools/configvaluecontainer.hxx236
-rw-r--r--unotools/inc/unotools/datetime.hxx63
-rw-r--r--unotools/inc/unotools/defaultoptions.hxx54
-rw-r--r--unotools/inc/unotools/desktopterminationobserver.hxx79
-rw-r--r--unotools/inc/unotools/digitgroupingiterator.hxx204
-rw-r--r--unotools/inc/unotools/docinfohelper.hxx47
-rw-r--r--unotools/inc/unotools/dynamicmenuoptions.hxx219
-rw-r--r--unotools/inc/unotools/eventcfg.hxx122
-rw-r--r--unotools/inc/unotools/eventlisteneradapter.hxx71
-rw-r--r--unotools/inc/unotools/extendedsecurityoptions.hxx160
-rw-r--r--unotools/inc/unotools/fltrcfg.hxx100
-rw-r--r--unotools/inc/unotools/fontcfg.hxx227
-rw-r--r--unotools/inc/unotools/fontcvt.hxx79
-rw-r--r--unotools/inc/unotools/fontdefs.hxx110
-rw-r--r--unotools/inc/unotools/fontoptions.hxx173
-rw-r--r--unotools/inc/unotools/historyoptions.hxx248
-rw-r--r--unotools/inc/unotools/historyoptions_const.hxx55
-rw-r--r--unotools/inc/unotools/idhelper.hxx210
-rw-r--r--unotools/inc/unotools/inetoptions.hxx143
-rw-r--r--unotools/inc/unotools/internaloptions.hxx180
-rw-r--r--unotools/inc/unotools/intlwrapper.hxx123
-rw-r--r--unotools/inc/unotools/itemholderbase.hxx128
-rw-r--r--unotools/inc/unotools/javaoptions.hxx73
-rw-r--r--unotools/inc/unotools/lingucfg.hxx241
-rw-r--r--unotools/inc/unotools/linguprops.hxx121
-rw-r--r--unotools/inc/unotools/localedatawrapper.hxx363
-rw-r--r--unotools/inc/unotools/localfilehelper.hxx68
-rw-r--r--unotools/inc/unotools/localisationoptions.hxx178
-rw-r--r--unotools/inc/unotools/loghelper.hxx51
-rw-r--r--unotools/inc/unotools/misccfg.hxx67
-rw-r--r--unotools/inc/unotools/moduleoptions.hxx257
-rw-r--r--unotools/inc/unotools/nativenumberwrapper.hxx75
-rw-r--r--unotools/inc/unotools/numberformatcodewrapper.hxx76
-rw-r--r--unotools/inc/unotools/options.hxx97
-rw-r--r--unotools/inc/unotools/optionsdlg.hxx56
-rw-r--r--unotools/inc/unotools/pathoptions.hxx140
-rw-r--r--unotools/inc/unotools/printwarningoptions.hxx161
-rw-r--r--unotools/inc/unotools/processfactory.hxx59
-rw-r--r--unotools/inc/unotools/progresshandlerwrap.hxx57
-rw-r--r--unotools/inc/unotools/propertysethelper.hxx96
-rw-r--r--unotools/inc/unotools/propertysetinfo.hxx93
-rw-r--r--unotools/inc/unotools/querydeep.hxx486
-rw-r--r--unotools/inc/unotools/readwritemutexguard.hxx113
-rw-r--r--unotools/inc/unotools/regoptions.hxx126
-rw-r--r--unotools/inc/unotools/regpathhelper.hxx71
-rw-r--r--unotools/inc/unotools/saveopt.hxx130
-rw-r--r--unotools/inc/unotools/searchopt.hxx119
-rw-r--r--unotools/inc/unotools/securityoptions.hxx296
-rw-r--r--unotools/inc/unotools/sharedunocomponent.hxx370
-rw-r--r--unotools/inc/unotools/sourceviewconfig.hxx63
-rw-r--r--unotools/inc/unotools/startoptions.hxx170
-rw-r--r--unotools/inc/unotools/streamhelper.hxx116
-rw-r--r--unotools/inc/unotools/streamsection.hxx85
-rw-r--r--unotools/inc/unotools/streamwrap.hxx183
-rw-r--r--unotools/inc/unotools/syslocale.hxx88
-rw-r--r--unotools/inc/unotools/syslocaleoptions.hxx168
-rw-r--r--unotools/inc/unotools/tempfile.hxx161
-rw-r--r--unotools/inc/unotools/textsearch.hxx196
-rw-r--r--unotools/inc/unotools/transliterationwrapper.hxx145
-rw-r--r--unotools/inc/unotools/ucbhelper.hxx88
-rw-r--r--unotools/inc/unotools/ucblockbytes.hxx222
-rw-r--r--unotools/inc/unotools/ucbstreamhelper.hxx83
-rw-r--r--unotools/inc/unotools/undoopt.hxx49
-rw-r--r--unotools/inc/unotools/unotoolsdllapi.h41
-rw-r--r--unotools/inc/unotools/unotunnelhelper.hxx196
-rw-r--r--unotools/inc/unotools/useroptions.hxx118
-rw-r--r--unotools/inc/unotools/useroptions_const.hxx56
-rw-r--r--unotools/inc/unotools/viewoptions.hxx353
-rw-r--r--unotools/inc/unotools/workingsetoptions.hxx156
-rw-r--r--unotools/inc/unotools/xmlaccelcfg.hxx109
-rw-r--r--unotools/prj/build.lst12
-rw-r--r--unotools/prj/d.lst11
-rw-r--r--unotools/qa/complex/tempfile/TempFileTest.java31
-rw-r--r--unotools/qa/complex/tempfile/TempFileUnitTest.java85
-rw-r--r--unotools/qa/complex/tempfile/Test01.java120
-rw-r--r--unotools/qa/complex/tempfile/Test02.java100
-rw-r--r--unotools/qa/complex/tempfile/TestHelper.java225
-rw-r--r--unotools/qa/complex/tempfile/makefile.mk85
-rw-r--r--unotools/source/accessibility/accessiblerelationsethelper.cxx272
-rw-r--r--unotools/source/accessibility/accessiblestatesethelper.cxx346
-rw-r--r--unotools/source/accessibility/makefile.mk48
-rw-r--r--unotools/source/config/accelcfg.cxx289
-rw-r--r--unotools/source/config/bootstrap.cxx912
-rw-r--r--unotools/source/config/cacheoptions.cxx512
-rw-r--r--unotools/source/config/cmdoptions.cxx628
-rw-r--r--unotools/source/config/compatibility.cxx804
-rw-r--r--unotools/source/config/configitem.cxx1422
-rw-r--r--unotools/source/config/configmgr.cxx732
-rw-r--r--unotools/source/config/confignode.cxx695
-rw-r--r--unotools/source/config/configpathes.cxx303
-rw-r--r--unotools/source/config/configvaluecontainer.cxx456
-rw-r--r--unotools/source/config/defaultoptions.cxx363
-rw-r--r--unotools/source/config/docinfohelper.cxx116
-rw-r--r--unotools/source/config/dynamicmenuoptions.cxx920
-rw-r--r--unotools/source/config/eventcfg.cxx455
-rw-r--r--unotools/source/config/extendedsecurityoptions.cxx538
-rw-r--r--unotools/source/config/fltrcfg.cxx616
-rw-r--r--unotools/source/config/fontcfg.cxx1217
-rw-r--r--unotools/source/config/fontoptions.cxx511
-rw-r--r--unotools/source/config/historyoptions.cxx745
-rw-r--r--unotools/source/config/inetoptions.cxx554
-rw-r--r--unotools/source/config/internaloptions.cxx628
-rw-r--r--unotools/source/config/itemholder1.cxx329
-rw-r--r--unotools/source/config/itemholder1.hxx89
-rw-r--r--unotools/source/config/javaoptions.cxx369
-rw-r--r--unotools/source/config/lingucfg.cxx1450
-rw-r--r--unotools/source/config/localisationoptions.cxx458
-rw-r--r--unotools/source/config/makefile.mk91
-rw-r--r--unotools/source/config/menuoptions.cxx561
-rw-r--r--unotools/source/config/misccfg.cxx310
-rw-r--r--unotools/source/config/moduleoptions.cxx1597
-rw-r--r--unotools/source/config/options.cxx106
-rw-r--r--unotools/source/config/optionsdlg.cxx290
-rw-r--r--unotools/source/config/optionsdrawinglayer.cxx1705
-rw-r--r--unotools/source/config/pathoptions.cxx1091
-rw-r--r--unotools/source/config/printwarningoptions.cxx421
-rw-r--r--unotools/source/config/regoptions.cxx550
-rw-r--r--unotools/source/config/saveopt.cxx1044
-rw-r--r--unotools/source/config/searchopt.cxx636
-rw-r--r--unotools/source/config/securityoptions.cxx1309
-rw-r--r--unotools/source/config/sourceviewconfig.cxx268
-rw-r--r--unotools/source/config/startoptions.cxx458
-rw-r--r--unotools/source/config/syslocaleoptions.cxx702
-rw-r--r--unotools/source/config/undoopt.cxx201
-rw-r--r--unotools/source/config/useroptions.cxx1297
-rw-r--r--unotools/source/config/viewoptions.cxx1301
-rw-r--r--unotools/source/config/workingsetoptions.cxx393
-rw-r--r--unotools/source/config/xmlaccelcfg.cxx415
-rw-r--r--unotools/source/i18n/calendarwrapper.cxx680
-rw-r--r--unotools/source/i18n/charclass.cxx582
-rw-r--r--unotools/source/i18n/collatorwrapper.cxx214
-rw-r--r--unotools/source/i18n/intlwrapper.cxx110
-rw-r--r--unotools/source/i18n/localedatawrapper.cxx2007
-rw-r--r--unotools/source/i18n/makefile.mk57
-rw-r--r--unotools/source/i18n/nativenumberwrapper.cxx170
-rw-r--r--unotools/source/i18n/numberformatcodewrapper.cxx170
-rw-r--r--unotools/source/i18n/readwritemutexguard.cxx120
-rw-r--r--unotools/source/i18n/textsearch.cxx398
-rw-r--r--unotools/source/i18n/transliterationwrapper.cxx323
-rw-r--r--unotools/source/misc/atom.cxx383
-rw-r--r--unotools/source/misc/componentresmodule.cxx146
-rw-r--r--unotools/source/misc/datetime.cxx121
-rw-r--r--unotools/source/misc/desktopterminationobserver.cxx237
-rw-r--r--unotools/source/misc/eventlisteneradapter.cxx182
-rw-r--r--unotools/source/misc/fontcvt.cxx1520
-rw-r--r--unotools/source/misc/fontdefs.cxx596
-rw-r--r--unotools/source/misc/makefile.mk55
-rw-r--r--unotools/source/misc/sharedunocomponent.cxx246
-rw-r--r--unotools/source/misc/syslocale.cxx214
-rw-r--r--unotools/source/processfactory/componentfactory.cxx186
-rw-r--r--unotools/source/processfactory/makefile.mk50
-rw-r--r--unotools/source/processfactory/processfactory.cxx54
-rw-r--r--unotools/source/property/makefile.mk48
-rw-r--r--unotools/source/property/propertysethelper.cxx301
-rw-r--r--unotools/source/property/propertysetinfo.cxx199
-rw-r--r--unotools/source/streaming/makefile.mk48
-rw-r--r--unotools/source/streaming/streamhelper.cxx204
-rw-r--r--unotools/source/streaming/streamwrap.cxx379
-rw-r--r--unotools/source/ucbhelper/XTempFile.hxx153
-rw-r--r--unotools/source/ucbhelper/localfilehelper.cxx242
-rw-r--r--unotools/source/ucbhelper/makefile.mk54
-rw-r--r--unotools/source/ucbhelper/progresshandlerwrap.cxx98
-rw-r--r--unotools/source/ucbhelper/tempfile.cxx493
-rw-r--r--unotools/source/ucbhelper/ucbhelper.cxx876
-rw-r--r--unotools/source/ucbhelper/ucblockbytes.cxx1746
-rw-r--r--unotools/source/ucbhelper/ucbstreamhelper.cxx248
-rw-r--r--unotools/source/ucbhelper/xtempfile.cxx576
-rw-r--r--unotools/util/makefile.mk96
-rw-r--r--unotools/util/makefile.pmk31
-rw-r--r--unoxml/prj/build.lst6
-rw-r--r--unoxml/prj/d.lst3
-rw-r--r--unoxml/qa/complex/RDFRepositoryTest.java843
-rw-r--r--unoxml/qa/complex/makefile.mk59
-rw-r--r--unoxml/qa/complex/testdocuments/example.rdf27
-rw-r--r--unoxml/qa/complex/tests.sce1
-rw-r--r--unoxml/source/dom/attr.cxx153
-rw-r--r--unoxml/source/dom/attr.hxx210
-rw-r--r--unoxml/source/dom/attributesmap.cxx211
-rw-r--r--unoxml/source/dom/attributesmap.hxx97
-rw-r--r--unoxml/source/dom/cdatasection.cxx60
-rw-r--r--unoxml/source/dom/cdatasection.hxx230
-rw-r--r--unoxml/source/dom/characterdata.cxx233
-rw-r--r--unoxml/source/dom/characterdata.hxx239
-rw-r--r--unoxml/source/dom/childlist.cxx72
-rw-r--r--unoxml/source/dom/childlist.hxx64
-rw-r--r--unoxml/source/dom/comment.cxx58
-rw-r--r--unoxml/source/dom/comment.hxx222
-rw-r--r--unoxml/source/dom/document.cxx751
-rw-r--r--unoxml/source/dom/document.hxx366
-rw-r--r--unoxml/source/dom/documentbuilder.cxx429
-rw-r--r--unoxml/source/dom/documentbuilder.hxx157
-rw-r--r--unoxml/source/dom/documentfragment.cxx45
-rw-r--r--unoxml/source/dom/documentfragment.hxx179
-rw-r--r--unoxml/source/dom/documenttype.cxx127
-rw-r--r--unoxml/source/dom/documenttype.hxx217
-rw-r--r--unoxml/source/dom/domimplementation.cxx75
-rw-r--r--unoxml/source/dom/domimplementation.hxx73
-rw-r--r--unoxml/source/dom/element.cxx649
-rw-r--r--unoxml/source/dom/element.hxx296
-rw-r--r--unoxml/source/dom/elementlist.cxx133
-rw-r--r--unoxml/source/dom/elementlist.hxx86
-rw-r--r--unoxml/source/dom/entitiesmap.cxx100
-rw-r--r--unoxml/source/dom/entitiesmap.hxx97
-rw-r--r--unoxml/source/dom/entity.cxx90
-rw-r--r--unoxml/source/dom/entity.hxx200
-rw-r--r--unoxml/source/dom/entityreference.cxx52
-rw-r--r--unoxml/source/dom/entityreference.hxx176
-rw-r--r--unoxml/source/dom/makefile.mk74
-rw-r--r--unoxml/source/dom/node.cxx1008
-rw-r--r--unoxml/source/dom/node.hxx354
-rw-r--r--unoxml/source/dom/notation.cxx70
-rw-r--r--unoxml/source/dom/notation.hxx191
-rw-r--r--unoxml/source/dom/notationsmap.cxx101
-rw-r--r--unoxml/source/dom/notationsmap.hxx97
-rw-r--r--unoxml/source/dom/processinginstruction.cxx92
-rw-r--r--unoxml/source/dom/processinginstruction.hxx198
-rw-r--r--unoxml/source/dom/saxbuilder.cxx353
-rw-r--r--unoxml/source/dom/saxbuilder.hxx150
-rw-r--r--unoxml/source/dom/text.cxx72
-rw-r--r--unoxml/source/dom/text.hxx241
-rw-r--r--unoxml/source/events/event.cxx62
-rw-r--r--unoxml/source/events/event.hxx70
-rw-r--r--unoxml/source/events/eventdispatcher.cxx198
-rw-r--r--unoxml/source/events/eventdispatcher.hxx51
-rw-r--r--unoxml/source/events/makefile.mk56
-rw-r--r--unoxml/source/events/mouseevent.cxx149
-rw-r--r--unoxml/source/events/mouseevent.hxx92
-rw-r--r--unoxml/source/events/mutationevent.cxx100
-rw-r--r--unoxml/source/events/mutationevent.hxx66
-rw-r--r--unoxml/source/events/testlistener.cxx137
-rw-r--r--unoxml/source/events/testlistener.hxx106
-rw-r--r--unoxml/source/events/uievent.cxx81
-rw-r--r--unoxml/source/events/uievent.hxx55
-rw-r--r--unoxml/source/rdf/CBlankNode.cxx158
-rw-r--r--unoxml/source/rdf/CLiteral.cxx221
-rw-r--r--unoxml/source/rdf/CNodes.hxx74
-rw-r--r--unoxml/source/rdf/CURI.cxx867
-rw-r--r--unoxml/source/rdf/librdf_repository.cxx2261
-rw-r--r--unoxml/source/rdf/librdf_repository.hxx48
-rw-r--r--unoxml/source/rdf/librdf_services.cxx83
-rw-r--r--unoxml/source/rdf/makefile.mk76
-rw-r--r--unoxml/source/service/exports.map10
-rw-r--r--unoxml/source/service/makefile.mk78
-rw-r--r--unoxml/source/service/services.cxx153
-rw-r--r--unoxml/source/xpath/makefile.mk52
-rw-r--r--unoxml/source/xpath/nodelist.cxx65
-rw-r--r--unoxml/source/xpath/nodelist.hxx71
-rw-r--r--unoxml/source/xpath/xpathapi.cxx400
-rw-r--r--unoxml/source/xpath/xpathapi.hxx142
-rw-r--r--unoxml/source/xpath/xpathobject.cxx157
-rw-r--r--unoxml/source/xpath/xpathobject.hxx113
-rw-r--r--unoxml/test/domtest.cxx399
-rw-r--r--unoxml/test/export.map34
-rw-r--r--unoxml/test/makefile.mk103
-rw-r--r--ure/prj/build.lst2
-rw-r--r--ure/prj/d.lst9
-rw-r--r--ure/source/README409
-rw-r--r--ure/source/THIRDPARTYLICENSEREADME.html556
-rw-r--r--ure/source/delzip0
-rw-r--r--ure/source/jvmfwk3.ini5
-rw-r--r--ure/source/jvmfwk3rc5
-rw-r--r--ure/source/makefile.mk76
-rw-r--r--ure/source/startup.sh47
-rw-r--r--ure/source/uno.ini6
-rw-r--r--ure/source/unorc6
-rw-r--r--ure/source/uretest/JavaClient.java72
-rw-r--r--ure/source/uretest/JavaMain.java70
-rw-r--r--ure/source/uretest/JavaNative.java41
-rw-r--r--ure/source/uretest/JavaTest.java64
-rw-r--r--ure/source/uretest/Makefile310
-rw-r--r--ure/source/uretest/Makefile.pln315
-rw-r--r--ure/source/uretest/README115
-rw-r--r--ure/source/uretest/Runner.java41
-rw-r--r--ure/source/uretest/Tester.java55
-rw-r--r--ure/source/uretest/cppmain.cc292
-rw-r--r--ure/source/uretest/cppserver.cc125
-rw-r--r--ure/source/uretest/cpptest.cc125
-rw-r--r--ure/source/uretest/javaclient.mf.template5
-rw-r--r--ure/source/uretest/javamain.mf.template5
-rw-r--r--ure/source/uretest/javanative.mf.template5
-rw-r--r--ure/source/uretest/javatest.mf.template5
-rw-r--r--ure/source/uretest/runner.mf.template5
-rw-r--r--ure/source/uretest/tester.mf.template5
-rw-r--r--ure/source/uretest/types.idl52
-rw-r--r--ure/source/uretest/types.mf.template4
-rw-r--r--ure/source/uretest/version.map39
-rw-r--r--uui/prj/build.lst4
-rw-r--r--uui/prj/d.lst9
-rw-r--r--uui/source/alreadyopen.cxx60
-rw-r--r--uui/source/alreadyopen.hxx40
-rw-r--r--uui/source/alreadyopen.src62
-rw-r--r--uui/source/cookiedg.cxx144
-rw-r--r--uui/source/cookiedg.hrc45
-rw-r--r--uui/source/cookiedg.hxx65
-rw-r--r--uui/source/cookiedg.src166
-rw-r--r--uui/source/filechanged.cxx49
-rw-r--r--uui/source/filechanged.hxx40
-rw-r--r--uui/source/filechanged.src46
-rw-r--r--uui/source/fltdlg.cxx251
-rw-r--r--uui/source/fltdlg.hrc38
-rw-r--r--uui/source/fltdlg.hxx98
-rw-r--r--uui/source/fltdlg.src119
-rw-r--r--uui/source/getcontinuations.hxx118
-rw-r--r--uui/source/iahndl-authentication.cxx585
-rw-r--r--uui/source/iahndl-cookies.cxx209
-rw-r--r--uui/source/iahndl-errorhandler.cxx318
-rw-r--r--uui/source/iahndl-filter.cxx471
-rw-r--r--uui/source/iahndl-ioexceptions.cxx343
-rw-r--r--uui/source/iahndl-locking.cxx316
-rw-r--r--uui/source/iahndl-ssl.cxx357
-rw-r--r--uui/source/iahndl.cxx1524
-rw-r--r--uui/source/iahndl.hxx362
-rw-r--r--uui/source/ids.hrc186
-rw-r--r--uui/source/ids.src434
-rw-r--r--uui/source/interactionhandler.cxx144
-rw-r--r--uui/source/interactionhandler.hxx101
-rw-r--r--uui/source/lockfailed.cxx50
-rw-r--r--uui/source/lockfailed.hxx42
-rw-r--r--uui/source/lockfailed.src46
-rw-r--r--uui/source/logindlg.cxx374
-rw-r--r--uui/source/logindlg.hrc59
-rw-r--r--uui/source/logindlg.hxx122
-rw-r--r--uui/source/logindlg.src207
-rw-r--r--uui/source/loginerr.hxx155
-rw-r--r--uui/source/makefile.mk87
-rw-r--r--uui/source/masterpasscrtdlg.cxx190
-rw-r--r--uui/source/masterpasscrtdlg.hrc72
-rw-r--r--uui/source/masterpasscrtdlg.hxx80
-rw-r--r--uui/source/masterpasscrtdlg.src133
-rw-r--r--uui/source/masterpassworddlg.cxx80
-rw-r--r--uui/source/masterpassworddlg.hrc42
-rw-r--r--uui/source/masterpassworddlg.hxx66
-rw-r--r--uui/source/masterpassworddlg.src102
-rw-r--r--uui/source/mphndl.hxx96
-rw-r--r--uui/source/newerverwarn.cxx201
-rw-r--r--uui/source/newerverwarn.hrc57
-rw-r--r--uui/source/newerverwarn.hxx61
-rw-r--r--uui/source/newerverwarn.src81
-rw-r--r--uui/source/openlocked.cxx52
-rw-r--r--uui/source/openlocked.hxx40
-rw-r--r--uui/source/openlocked.src54
-rw-r--r--uui/source/passcrtdlg.cxx128
-rw-r--r--uui/source/passcrtdlg.hrc43
-rw-r--r--uui/source/passcrtdlg.hxx63
-rw-r--r--uui/source/passcrtdlg.src108
-rw-r--r--uui/source/passwordcontainer.cxx470
-rw-r--r--uui/source/passwordcontainer.hxx197
-rw-r--r--uui/source/passworddlg.cxx113
-rw-r--r--uui/source/passworddlg.hrc40
-rw-r--r--uui/source/passworddlg.hxx62
-rw-r--r--uui/source/passworddlg.src88
-rw-r--r--uui/source/passworderrs.src69
-rw-r--r--uui/source/requeststringresolver.cxx118
-rw-r--r--uui/source/requeststringresolver.hxx90
-rw-r--r--uui/source/secmacrowarnings.cxx378
-rw-r--r--uui/source/secmacrowarnings.hrc88
-rw-r--r--uui/source/secmacrowarnings.hxx103
-rw-r--r--uui/source/secmacrowarnings.src118
-rw-r--r--uui/source/services.cxx210
-rw-r--r--uui/source/sslwarndlg.cxx93
-rw-r--r--uui/source/sslwarndlg.hrc60
-rw-r--r--uui/source/sslwarndlg.hxx85
-rw-r--r--uui/source/sslwarndlg.src106
-rw-r--r--uui/source/trylater.cxx51
-rw-r--r--uui/source/trylater.hxx40
-rw-r--r--uui/source/trylater.src50
-rw-r--r--uui/source/unknownauthdlg.cxx103
-rw-r--r--uui/source/unknownauthdlg.hrc64
-rw-r--r--uui/source/unknownauthdlg.hxx87
-rw-r--r--uui/source/unknownauthdlg.src135
-rw-r--r--uui/util/exports.map10
-rw-r--r--uui/util/makefile.mk64
-rw-r--r--uui/util/uui.xml77
-rw-r--r--vbahelper/inc/vbahelper/helperdecl.hxx55
-rw-r--r--vbahelper/inc/vbahelper/msvbahelper.hxx55
-rw-r--r--vbahelper/inc/vbahelper/vbaapplicationbase.hxx61
-rw-r--r--vbahelper/inc/vbahelper/vbacollectionimpl.hxx254
-rw-r--r--vbahelper/inc/vbahelper/vbadialogbase.hxx51
-rw-r--r--vbahelper/inc/vbahelper/vbadialogsbase.hxx51
-rw-r--r--vbahelper/inc/vbahelper/vbadllapi.h41
-rw-r--r--vbahelper/inc/vbahelper/vbadocumentbase.hxx70
-rw-r--r--vbahelper/inc/vbahelper/vbadocumentsbase.hxx66
-rw-r--r--vbahelper/inc/vbahelper/vbafontbase.hxx96
-rw-r--r--vbahelper/inc/vbahelper/vbaglobalbase.hxx50
-rw-r--r--vbahelper/inc/vbahelper/vbahelper.hxx228
-rw-r--r--vbahelper/inc/vbahelper/vbahelperinterface.hxx118
-rw-r--r--vbahelper/inc/vbahelper/vbapagesetupbase.hxx67
-rw-r--r--vbahelper/inc/vbahelper/vbapropvalue.hxx57
-rw-r--r--vbahelper/inc/vbahelper/vbashape.hxx115
-rw-r--r--vbahelper/inc/vbahelper/vbashaperange.hxx86
-rw-r--r--vbahelper/inc/vbahelper/vbashapes.hxx81
-rw-r--r--vbahelper/inc/vbahelper/vbatextframe.hxx67
-rw-r--r--vbahelper/inc/vbahelper/vbawindowbase.hxx63
-rw-r--r--vbahelper/prj/build.lst6
-rw-r--r--vbahelper/prj/d.lst27
-rw-r--r--vbahelper/source/msforms/makefile.mk75
-rw-r--r--vbahelper/source/msforms/service.cxx80
-rw-r--r--vbahelper/source/msforms/vbabutton.cxx71
-rw-r--r--vbahelper/source/msforms/vbabutton.hxx48
-rw-r--r--vbahelper/source/msforms/vbacheckbox.cxx104
-rw-r--r--vbahelper/source/msforms/vbacheckbox.hxx53
-rw-r--r--vbahelper/source/msforms/vbacombobox.cxx180
-rw-r--r--vbahelper/source/msforms/vbacombobox.hxx77
-rw-r--r--vbahelper/source/msforms/vbacontrol.cxx536
-rw-r--r--vbahelper/source/msforms/vbacontrol.hxx111
-rw-r--r--vbahelper/source/msforms/vbacontrols.cxx229
-rw-r--r--vbahelper/source/msforms/vbacontrols.hxx59
-rw-r--r--vbahelper/source/msforms/vbaframe.cxx85
-rw-r--r--vbahelper/source/msforms/vbaframe.hxx50
-rw-r--r--vbahelper/source/msforms/vbaimage.cxx56
-rw-r--r--vbahelper/source/msforms/vbaimage.hxx45
-rw-r--r--vbahelper/source/msforms/vbalabel.cxx85
-rw-r--r--vbahelper/source/msforms/vbalabel.hxx53
-rw-r--r--vbahelper/source/msforms/vbalistbox.cxx287
-rw-r--r--vbahelper/source/msforms/vbalistbox.hxx87
-rw-r--r--vbahelper/source/msforms/vbalistcontrolhelper.cxx146
-rw-r--r--vbahelper/source/msforms/vbalistcontrolhelper.hxx20
-rw-r--r--vbahelper/source/msforms/vbamultipage.cxx124
-rw-r--r--vbahelper/source/msforms/vbamultipage.hxx57
-rw-r--r--vbahelper/source/msforms/vbapages.cxx72
-rw-r--r--vbahelper/source/msforms/vbapages.hxx56
-rw-r--r--vbahelper/source/msforms/vbaprogressbar.cxx70
-rw-r--r--vbahelper/source/msforms/vbaprogressbar.hxx51
-rw-r--r--vbahelper/source/msforms/vbaradiobutton.cxx104
-rw-r--r--vbahelper/source/msforms/vbaradiobutton.hxx52
-rw-r--r--vbahelper/source/msforms/vbascrollbar.cxx131
-rw-r--r--vbahelper/source/msforms/vbascrollbar.hxx58
-rw-r--r--vbahelper/source/msforms/vbaspinbutton.cxx101
-rw-r--r--vbahelper/source/msforms/vbaspinbutton.hxx53
-rw-r--r--vbahelper/source/msforms/vbatextbox.cxx134
-rw-r--r--vbahelper/source/msforms/vbatextbox.hxx56
-rw-r--r--vbahelper/source/msforms/vbatogglebutton.cxx100
-rw-r--r--vbahelper/source/msforms/vbatogglebutton.hxx55
-rw-r--r--vbahelper/source/msforms/vbauserform.cxx219
-rw-r--r--vbahelper/source/msforms/vbauserform.hxx69
-rw-r--r--vbahelper/source/vbahelper/makefile.mk77
-rw-r--r--vbahelper/source/vbahelper/msvbahelper.cxx381
-rw-r--r--vbahelper/source/vbahelper/vbaapplicationbase.cxx210
-rw-r--r--vbahelper/source/vbahelper/vbacolorformat.cxx187
-rw-r--r--vbahelper/source/vbahelper/vbacolorformat.hxx125
-rw-r--r--vbahelper/source/vbahelper/vbacommandbar.cxx204
-rw-r--r--vbahelper/source/vbahelper/vbacommandbar.hxx75
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarcontrol.cxx251
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarcontrol.hxx114
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarcontrols.cxx248
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarcontrols.hxx67
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarhelper.cxx274
-rw-r--r--vbahelper/source/vbahelper/vbacommandbarhelper.hxx102
-rw-r--r--vbahelper/source/vbahelper/vbacommandbars.cxx230
-rw-r--r--vbahelper/source/vbahelper/vbacommandbars.hxx63
-rw-r--r--vbahelper/source/vbahelper/vbadialogbase.cxx48
-rw-r--r--vbahelper/source/vbahelper/vbadialogsbase.cxx44
-rw-r--r--vbahelper/source/vbahelper/vbadocumentbase.cxx225
-rw-r--r--vbahelper/source/vbahelper/vbadocumentsbase.cxx302
-rw-r--r--vbahelper/source/vbahelper/vbafillformat.cxx199
-rw-r--r--vbahelper/source/vbahelper/vbafillformat.hxx71
-rw-r--r--vbahelper/source/vbahelper/vbafontbase.cxx306
-rw-r--r--vbahelper/source/vbahelper/vbaglobalbase.cxx118
-rw-r--r--vbahelper/source/vbahelper/vbahelper.cxx1195
-rw-r--r--vbahelper/source/vbahelper/vbalineformat.cxx455
-rw-r--r--vbahelper/source/vbahelper/vbalineformat.hxx82
-rw-r--r--vbahelper/source/vbahelper/vbapagesetupbase.cxx322
-rw-r--r--vbahelper/source/vbahelper/vbapictureformat.cxx144
-rw-r--r--vbahelper/source/vbahelper/vbapictureformat.hxx61
-rw-r--r--vbahelper/source/vbahelper/vbapropvalue.cxx45
-rw-r--r--vbahelper/source/vbahelper/vbashape.cxx673
-rw-r--r--vbahelper/source/vbahelper/vbashaperange.cxx379
-rw-r--r--vbahelper/source/vbahelper/vbashapes.cxx488
-rw-r--r--vbahelper/source/vbahelper/vbatextframe.cxx166
-rw-r--r--vbahelper/source/vbahelper/vbawindowbase.cxx177
-rw-r--r--vbahelper/util/makefile.mk99
-rw-r--r--vbahelper/util/msforms.map9
-rw-r--r--vcl/aqua/inc/aqua11yfactory.h47
-rw-r--r--vcl/aqua/inc/aqua11yfocustracker.hxx108
-rw-r--r--vcl/aqua/inc/aqua11ylistener.hxx65
-rw-r--r--vcl/aqua/inc/aqua11ywrapper.h119
-rwxr-xr-xvcl/aqua/inc/aquaprintview.h67
-rw-r--r--vcl/aqua/inc/aquavclevents.hxx96
-rw-r--r--vcl/aqua/inc/aquavcltypes.h36
-rw-r--r--vcl/aqua/inc/keyboardfocuslistener.hxx47
-rw-r--r--vcl/aqua/inc/salatsuifontutils.hxx63
-rw-r--r--vcl/aqua/inc/salbmp.h108
-rwxr-xr-xvcl/aqua/inc/salcolorutils.hxx52
-rwxr-xr-xvcl/aqua/inc/salconst.h68
-rw-r--r--vcl/aqua/inc/saldata.hxx138
-rw-r--r--vcl/aqua/inc/salfontutils.hxx66
-rw-r--r--vcl/aqua/inc/salframe.h218
-rwxr-xr-xvcl/aqua/inc/salframeview.h207
-rw-r--r--vcl/aqua/inc/salgdi.h417
-rw-r--r--vcl/aqua/inc/salinst.h200
-rwxr-xr-xvcl/aqua/inc/salmathutils.hxx87
-rw-r--r--vcl/aqua/inc/salmenu.h121
-rwxr-xr-xvcl/aqua/inc/salnativewidgets.h71
-rwxr-xr-xvcl/aqua/inc/salnsmenu.h68
-rwxr-xr-xvcl/aqua/inc/salnstimer.h40
-rw-r--r--vcl/aqua/inc/salobj.h86
-rwxr-xr-xvcl/aqua/inc/salpixmaputils.hxx47
-rw-r--r--vcl/aqua/inc/salprn.h171
-rw-r--r--vcl/aqua/inc/salsys.h70
-rw-r--r--vcl/aqua/inc/saltimer.h54
-rw-r--r--vcl/aqua/inc/salvd.h94
-rw-r--r--vcl/aqua/inc/svsys.h35
-rwxr-xr-xvcl/aqua/inc/vclnsapp.h70
-rw-r--r--vcl/aqua/source/a11y/aqua11yactionwrapper.h41
-rw-r--r--vcl/aqua/source/a11y/aqua11yactionwrapper.mm83
-rw-r--r--vcl/aqua/source/a11y/aqua11ycomponentwrapper.h45
-rw-r--r--vcl/aqua/source/a11y/aqua11ycomponentwrapper.mm110
-rw-r--r--vcl/aqua/source/a11y/aqua11yfactory.mm195
-rw-r--r--vcl/aqua/source/a11y/aqua11yfocuslistener.cxx118
-rw-r--r--vcl/aqua/source/a11y/aqua11yfocuslistener.hxx62
-rw-r--r--vcl/aqua/source/a11y/aqua11yfocustracker.cxx278
-rw-r--r--vcl/aqua/source/a11y/aqua11ylistener.cxx158
-rw-r--r--vcl/aqua/source/a11y/aqua11yrolehelper.h42
-rw-r--r--vcl/aqua/source/a11y/aqua11yrolehelper.mm272
-rw-r--r--vcl/aqua/source/a11y/aqua11yselectionwrapper.h43
-rw-r--r--vcl/aqua/source/a11y/aqua11yselectionwrapper.mm91
-rw-r--r--vcl/aqua/source/a11y/aqua11ytablewrapper.h38
-rw-r--r--vcl/aqua/source/a11y/aqua11ytablewrapper.mm89
-rw-r--r--vcl/aqua/source/a11y/aqua11ytextattributeswrapper.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ytextattributeswrapper.mm254
-rw-r--r--vcl/aqua/source/a11y/aqua11ytextwrapper.h64
-rw-r--r--vcl/aqua/source/a11y/aqua11ytextwrapper.mm289
-rw-r--r--vcl/aqua/source/a11y/aqua11yutil.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11yutil.mm53
-rw-r--r--vcl/aqua/source/a11y/aqua11yvaluewrapper.h46
-rw-r--r--vcl/aqua/source/a11y/aqua11yvaluewrapper.mm95
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapper.mm1129
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperbutton.h41
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperbutton.mm61
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappercheckbox.h41
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappercheckbox.mm65
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappercombobox.h50
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappercombobox.mm161
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappergroup.h40
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappergroup.mm57
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperlist.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperlist.mm48
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperradiobutton.h41
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperradiobutton.mm65
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperradiogroup.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperradiogroup.mm48
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperrow.h40
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperrow.mm56
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperscrollarea.h41
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperscrollarea.mm84
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperscrollbar.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperscrollbar.mm49
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappersplitter.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappersplitter.mm48
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperstatictext.h40
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrapperstatictext.mm56
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertabgroup.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertabgroup.mm50
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertextarea.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertextarea.mm48
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertoolbar.h39
-rw-r--r--vcl/aqua/source/a11y/aqua11ywrappertoolbar.mm50
-rw-r--r--vcl/aqua/source/a11y/documentfocuslistener.cxx253
-rw-r--r--vcl/aqua/source/a11y/documentfocuslistener.hxx101
-rw-r--r--vcl/aqua/source/a11y/makefile.mk88
-rw-r--r--vcl/aqua/source/a11y/readme.txt8
-rw-r--r--vcl/aqua/source/app/makefile.mk63
-rw-r--r--vcl/aqua/source/app/saldata.cxx293
-rw-r--r--vcl/aqua/source/app/salinst.cxx1298
-rwxr-xr-xvcl/aqua/source/app/salnstimer.mm56
-rw-r--r--vcl/aqua/source/app/salsys.cxx131
-rw-r--r--vcl/aqua/source/app/saltimer.cxx135
-rwxr-xr-xvcl/aqua/source/app/vclnsapp.mm518
-rw-r--r--vcl/aqua/source/dtrans/DataFlavorMapping.cxx708
-rw-r--r--vcl/aqua/source/dtrans/DataFlavorMapping.hxx138
-rw-r--r--vcl/aqua/source/dtrans/DragActionConversion.cxx92
-rw-r--r--vcl/aqua/source/dtrans/DragActionConversion.hxx46
-rw-r--r--vcl/aqua/source/dtrans/DragSource.cxx363
-rw-r--r--vcl/aqua/source/dtrans/DragSource.hxx140
-rw-r--r--vcl/aqua/source/dtrans/DragSourceContext.cxx74
-rw-r--r--vcl/aqua/source/dtrans/DragSourceContext.hxx72
-rw-r--r--vcl/aqua/source/dtrans/DropTarget.cxx599
-rw-r--r--vcl/aqua/source/dtrans/DropTarget.hxx169
-rw-r--r--vcl/aqua/source/dtrans/HtmlFmtFlt.cxx147
-rw-r--r--vcl/aqua/source/dtrans/HtmlFmtFlt.hxx20
-rw-r--r--vcl/aqua/source/dtrans/OSXTransferable.cxx212
-rw-r--r--vcl/aqua/source/dtrans/OSXTransferable.hxx100
-rw-r--r--vcl/aqua/source/dtrans/PictToBmpFlt.cxx114
-rw-r--r--vcl/aqua/source/dtrans/PictToBmpFlt.hxx22
-rw-r--r--vcl/aqua/source/dtrans/aqua_clipboard.cxx382
-rw-r--r--vcl/aqua/source/dtrans/aqua_clipboard.hxx181
-rw-r--r--vcl/aqua/source/dtrans/aqua_service.cxx108
-rw-r--r--vcl/aqua/source/dtrans/makefile.mk68
-rw-r--r--vcl/aqua/source/dtrans/service_entry.cxx64
-rw-r--r--vcl/aqua/source/dtrans/test_aquacb.cxx208
-rw-r--r--vcl/aqua/source/gdi/aquaprintaccessoryview.mm1234
-rwxr-xr-xvcl/aqua/source/gdi/aquaprintview.mm82
-rw-r--r--vcl/aqua/source/gdi/makefile.mk75
-rwxr-xr-xvcl/aqua/source/gdi/salatslayout.cxx1264
-rw-r--r--vcl/aqua/source/gdi/salatsuifontutils.cxx552
-rw-r--r--vcl/aqua/source/gdi/salbmp.cxx904
-rwxr-xr-xvcl/aqua/source/gdi/salcolorutils.cxx50
-rw-r--r--vcl/aqua/source/gdi/salgdi.cxx2656
-rwxr-xr-xvcl/aqua/source/gdi/salgdiutils.cxx300
-rwxr-xr-xvcl/aqua/source/gdi/salmathutils.cxx163
-rw-r--r--vcl/aqua/source/gdi/salnativewidgets.cxx1474
-rwxr-xr-xvcl/aqua/source/gdi/salpixmaputils.cxx36
-rw-r--r--vcl/aqua/source/gdi/salprn.cxx855
-rw-r--r--vcl/aqua/source/gdi/salvd.cxx236
-rw-r--r--vcl/aqua/source/res/MainMenu.nib/classes.nib4
-rw-r--r--vcl/aqua/source/res/MainMenu.nib/info.nib21
-rw-r--r--vcl/aqua/source/res/MainMenu.nib/keyedobjects.nibbin0 -> 3615 bytes
-rw-r--r--vcl/aqua/source/res/cursors/airbrush.pngbin0 -> 253 bytes
-rw-r--r--vcl/aqua/source/res/cursors/ase.pngbin0 -> 214 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asn.pngbin0 -> 212 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asne.pngbin0 -> 240 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asns.pngbin0 -> 234 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asnswe.pngbin0 -> 285 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asnw.pngbin0 -> 246 bytes
-rw-r--r--vcl/aqua/source/res/cursors/ass.pngbin0 -> 222 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asse.pngbin0 -> 243 bytes
-rw-r--r--vcl/aqua/source/res/cursors/assw.pngbin0 -> 236 bytes
-rw-r--r--vcl/aqua/source/res/cursors/asw.pngbin0 -> 212 bytes
-rw-r--r--vcl/aqua/source/res/cursors/aswe.pngbin0 -> 228 bytes
-rw-r--r--vcl/aqua/source/res/cursors/chain.pngbin0 -> 344 bytes
-rw-r--r--vcl/aqua/source/res/cursors/chainnot.pngbin0 -> 390 bytes
-rw-r--r--vcl/aqua/source/res/cursors/chart.pngbin0 -> 270 bytes
-rw-r--r--vcl/aqua/source/res/cursors/copydata.pngbin0 -> 336 bytes
-rw-r--r--vcl/aqua/source/res/cursors/copydlnk.pngbin0 -> 340 bytes
-rw-r--r--vcl/aqua/source/res/cursors/copyf.pngbin0 -> 329 bytes
-rw-r--r--vcl/aqua/source/res/cursors/copyf2.pngbin0 -> 344 bytes
-rw-r--r--vcl/aqua/source/res/cursors/copyflnk.pngbin0 -> 339 bytes
-rw-r--r--vcl/aqua/source/res/cursors/crook.pngbin0 -> 291 bytes
-rw-r--r--vcl/aqua/source/res/cursors/crop.pngbin0 -> 239 bytes
-rw-r--r--vcl/aqua/source/res/cursors/darc.pngbin0 -> 172 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dbezier.pngbin0 -> 185 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dcapt.pngbin0 -> 183 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dcirccut.pngbin0 -> 185 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dconnect.pngbin0 -> 183 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dellipse.pngbin0 -> 176 bytes
-rw-r--r--vcl/aqua/source/res/cursors/detectiv.pngbin0 -> 268 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dfree.pngbin0 -> 188 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dline.pngbin0 -> 177 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dpie.pngbin0 -> 183 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dpolygon.pngbin0 -> 191 bytes
-rw-r--r--vcl/aqua/source/res/cursors/drect.pngbin0 -> 172 bytes
-rw-r--r--vcl/aqua/source/res/cursors/dtext.pngbin0 -> 174 bytes
-rw-r--r--vcl/aqua/source/res/cursors/fill.pngbin0 -> 255 bytes
-rw-r--r--vcl/aqua/source/res/cursors/help.pngbin0 -> 303 bytes
-rw-r--r--vcl/aqua/source/res/cursors/hourglass.pngbin0 -> 246 bytes
-rw-r--r--vcl/aqua/source/res/cursors/hshear.pngbin0 -> 223 bytes
-rw-r--r--vcl/aqua/source/res/cursors/linkdata.pngbin0 -> 348 bytes
-rw-r--r--vcl/aqua/source/res/cursors/linkf.pngbin0 -> 336 bytes
-rw-r--r--vcl/aqua/source/res/cursors/magnify.pngbin0 -> 282 bytes
-rw-r--r--vcl/aqua/source/res/cursors/mirror.pngbin0 -> 304 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movebw.pngbin0 -> 320 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movedata.pngbin0 -> 290 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movedlnk.pngbin0 -> 318 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movef.pngbin0 -> 294 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movef2.pngbin0 -> 314 bytes
-rw-r--r--vcl/aqua/source/res/cursors/moveflnk.pngbin0 -> 307 bytes
-rw-r--r--vcl/aqua/source/res/cursors/movept.pngbin0 -> 275 bytes
-rw-r--r--vcl/aqua/source/res/cursors/neswsize.pngbin0 -> 312 bytes
-rw-r--r--vcl/aqua/source/res/cursors/notallow.pngbin0 -> 297 bytes
-rw-r--r--vcl/aqua/source/res/cursors/nullptr.pngbin0 -> 150 bytes
-rw-r--r--vcl/aqua/source/res/cursors/nwsesize.pngbin0 -> 313 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pen.pngbin0 -> 351 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pivotcol.pngbin0 -> 293 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pivotdel.pngbin0 -> 264 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pivotfld.pngbin0 -> 272 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pivotrow.pngbin0 -> 295 bytes
-rw-r--r--vcl/aqua/source/res/cursors/pntbrsh.pngbin0 -> 268 bytes
-rw-r--r--vcl/aqua/source/res/cursors/rotate.pngbin0 -> 274 bytes
-rw-r--r--vcl/aqua/source/res/cursors/tblsele.pngbin0 -> 174 bytes
-rw-r--r--vcl/aqua/source/res/cursors/tblsels.pngbin0 -> 171 bytes
-rw-r--r--vcl/aqua/source/res/cursors/tblselse.pngbin0 -> 183 bytes
-rw-r--r--vcl/aqua/source/res/cursors/tblselsw.pngbin0 -> 183 bytes
-rw-r--r--vcl/aqua/source/res/cursors/tblselw.pngbin0 -> 174 bytes
-rw-r--r--vcl/aqua/source/res/cursors/timemove.pngbin0 -> 249 bytes
-rw-r--r--vcl/aqua/source/res/cursors/timesize.pngbin0 -> 241 bytes
-rw-r--r--vcl/aqua/source/res/cursors/vshear.pngbin0 -> 228 bytes
-rw-r--r--vcl/aqua/source/res/cursors/vtext.pngbin0 -> 162 bytes
-rw-r--r--vcl/aqua/source/res/delzip0
-rw-r--r--vcl/aqua/source/res/makefile.mk54
-rw-r--r--vcl/aqua/source/window/makefile.mk63
-rw-r--r--vcl/aqua/source/window/salframe.cxx1590
-rwxr-xr-xvcl/aqua/source/window/salframeview.mm1602
-rw-r--r--vcl/aqua/source/window/salmenu.cxx954
-rwxr-xr-xvcl/aqua/source/window/salnsmenu.mm213
-rw-r--r--vcl/aqua/source/window/salobj.cxx239
-rw-r--r--vcl/inc/cupsmgr.hxx108
-rw-r--r--vcl/inc/list.h99
-rw-r--r--vcl/inc/makefile.mk49
-rw-r--r--vcl/inc/pch/precompiled_vcl.cxx29
-rw-r--r--vcl/inc/pch/precompiled_vcl.hxx33
-rw-r--r--vcl/inc/postgraphitestl.h9
-rw-r--r--vcl/inc/pregraphitestl.h30
-rw-r--r--vcl/inc/sft.hxx630
-rw-r--r--vcl/inc/vcl/ImageListProvider.hxx54
-rw-r--r--vcl/inc/vcl/abstdlg.hxx80
-rw-r--r--vcl/inc/vcl/accel.h59
-rw-r--r--vcl/inc/vcl/accel.hxx128
-rw-r--r--vcl/inc/vcl/accmgr.hxx64
-rw-r--r--vcl/inc/vcl/alpha.hxx111
-rw-r--r--vcl/inc/vcl/animate.hxx254
-rw-r--r--vcl/inc/vcl/apptypes.hxx79
-rw-r--r--vcl/inc/vcl/arrange.hxx422
-rw-r--r--vcl/inc/vcl/bitmap.hxx854
-rw-r--r--vcl/inc/vcl/bitmapex.hxx400
-rw-r--r--vcl/inc/vcl/bmpacc.hxx545
-rw-r--r--vcl/inc/vcl/bmpfast.hxx51
-rw-r--r--vcl/inc/vcl/brdwin.hxx352
-rw-r--r--vcl/inc/vcl/btndlg.hxx117
-rw-r--r--vcl/inc/vcl/button.hxx564
-rw-r--r--vcl/inc/vcl/canvasbitmap.hxx129
-rw-r--r--vcl/inc/vcl/canvastools.hxx253
-rw-r--r--vcl/inc/vcl/cmdevt.h63
-rw-r--r--vcl/inc/vcl/cmdevt.hxx522
-rw-r--r--vcl/inc/vcl/combobox.h37
-rw-r--r--vcl/inc/vcl/combobox.hxx229
-rw-r--r--vcl/inc/vcl/configsettings.hxx73
-rw-r--r--vcl/inc/vcl/controldata.hxx62
-rw-r--r--vcl/inc/vcl/controllayout.hxx85
-rw-r--r--vcl/inc/vcl/ctrl.hxx201
-rw-r--r--vcl/inc/vcl/cursor.hxx119
-rw-r--r--vcl/inc/vcl/cvtgrf.hxx70
-rw-r--r--vcl/inc/vcl/cvtsvm.hxx117
-rw-r--r--vcl/inc/vcl/dbggui.hxx74
-rw-r--r--vcl/inc/vcl/decoview.hxx108
-rw-r--r--vcl/inc/vcl/dialog.hxx162
-rw-r--r--vcl/inc/vcl/dllapi.h40
-rw-r--r--vcl/inc/vcl/dndhelp.hxx126
-rw-r--r--vcl/inc/vcl/dockingarea.hxx65
-rw-r--r--vcl/inc/vcl/dockwin.hxx449
-rw-r--r--vcl/inc/vcl/edit.hxx260
-rw-r--r--vcl/inc/vcl/event.hxx479
-rw-r--r--vcl/inc/vcl/evntpost.hxx59
-rw-r--r--vcl/inc/vcl/extoutdevdata.hxx47
-rw-r--r--vcl/inc/vcl/field.hxx884
-rw-r--r--vcl/inc/vcl/fixbrd.hxx82
-rw-r--r--vcl/inc/vcl/fixed.hxx199
-rw-r--r--vcl/inc/vcl/fldunit.hxx33
-rw-r--r--vcl/inc/vcl/floatwin.hxx161
-rw-r--r--vcl/inc/vcl/fntstyle.hxx53
-rw-r--r--vcl/inc/vcl/font.hxx140
-rw-r--r--vcl/inc/vcl/fontcache.hxx99
-rw-r--r--vcl/inc/vcl/fontmanager.hxx745
-rw-r--r--vcl/inc/vcl/fontsubset.hxx97
-rw-r--r--vcl/inc/vcl/gdimtf.hxx249
-rw-r--r--vcl/inc/vcl/gfxlink.hxx188
-rw-r--r--vcl/inc/vcl/glyphcache.hxx376
-rw-r--r--vcl/inc/vcl/gradient.hxx132
-rw-r--r--vcl/inc/vcl/graph.h81
-rw-r--r--vcl/inc/vcl/graph.hxx222
-rw-r--r--vcl/inc/vcl/graphictools.hxx462
-rw-r--r--vcl/inc/vcl/graphite_adaptors.hxx152
-rw-r--r--vcl/inc/vcl/graphite_cache.hxx264
-rw-r--r--vcl/inc/vcl/graphite_features.hxx75
-rw-r--r--vcl/inc/vcl/graphite_layout.hxx166
-rw-r--r--vcl/inc/vcl/graphite_serverfont.hxx100
-rw-r--r--vcl/inc/vcl/group.hxx67
-rw-r--r--vcl/inc/vcl/hatch.hxx96
-rw-r--r--vcl/inc/vcl/help.hxx122
-rw-r--r--vcl/inc/vcl/helper.hxx65
-rw-r--r--vcl/inc/vcl/helpwin.hxx92
-rw-r--r--vcl/inc/vcl/i18nhelp.hxx97
-rw-r--r--vcl/inc/vcl/idlemgr.hxx60
-rw-r--r--vcl/inc/vcl/ilstbox.hxx641
-rw-r--r--vcl/inc/vcl/image.h182
-rw-r--r--vcl/inc/vcl/image.hxx178
-rw-r--r--vcl/inc/vcl/imagerepository.hxx70
-rw-r--r--vcl/inc/vcl/imgcons.hxx105
-rw-r--r--vcl/inc/vcl/imgctrl.hxx67
-rw-r--r--vcl/inc/vcl/impbmp.hxx108
-rw-r--r--vcl/inc/vcl/impbmpconv.hxx39
-rw-r--r--vcl/inc/vcl/impdel.hxx87
-rw-r--r--vcl/inc/vcl/impfont.hxx243
-rw-r--r--vcl/inc/vcl/impgraph.hxx176
-rw-r--r--vcl/inc/vcl/impimagetree.hxx96
-rw-r--r--vcl/inc/vcl/impoct.hxx176
-rw-r--r--vcl/inc/vcl/impprn.hxx140
-rw-r--r--vcl/inc/vcl/inputctx.hxx88
-rw-r--r--vcl/inc/vcl/introwin.hxx51
-rw-r--r--vcl/inc/vcl/javachild.hxx57
-rw-r--r--vcl/inc/vcl/jobdata.hxx85
-rw-r--r--vcl/inc/vcl/jobset.h79
-rw-r--r--vcl/inc/vcl/jobset.hxx83
-rw-r--r--vcl/inc/vcl/keycod.hxx157
-rw-r--r--vcl/inc/vcl/keycodes.hxx191
-rw-r--r--vcl/inc/vcl/lazydelete.hxx262
-rw-r--r--vcl/inc/vcl/lineinfo.hxx132
-rw-r--r--vcl/inc/vcl/longcurr.hxx162
-rw-r--r--vcl/inc/vcl/lstbox.h65
-rw-r--r--vcl/inc/vcl/lstbox.hxx265
-rw-r--r--vcl/inc/vcl/mapmod.hxx116
-rw-r--r--vcl/inc/vcl/mapunit.hxx33
-rw-r--r--vcl/inc/vcl/menu.hxx520
-rw-r--r--vcl/inc/vcl/menubtn.hxx98
-rw-r--r--vcl/inc/vcl/metaact.hxx1546
-rw-r--r--vcl/inc/vcl/metric.hxx163
-rw-r--r--vcl/inc/vcl/mnemonic.hxx88
-rw-r--r--vcl/inc/vcl/mnemonicengine.hxx158
-rw-r--r--vcl/inc/vcl/morebtn.hxx95
-rw-r--r--vcl/inc/vcl/msgbox.hxx190
-rw-r--r--vcl/inc/vcl/octree.hxx161
-rw-r--r--vcl/inc/vcl/oldprintadaptor.hxx52
-rw-r--r--vcl/inc/vcl/outdata.hxx49
-rw-r--r--vcl/inc/vcl/outdev.h264
-rw-r--r--vcl/inc/vcl/outdev.hxx1159
-rw-r--r--vcl/inc/vcl/outfont.hxx400
-rw-r--r--vcl/inc/vcl/pdfextoutdevdata.hxx518
-rw-r--r--vcl/inc/vcl/pdfwriter.hxx1299
-rw-r--r--vcl/inc/vcl/pngread.hxx70
-rw-r--r--vcl/inc/vcl/pngwrite.hxx67
-rw-r--r--vcl/inc/vcl/pointr.hxx59
-rw-r--r--vcl/inc/vcl/polyscan.hxx155
-rw-r--r--vcl/inc/vcl/popupmenuwindow.hxx47
-rw-r--r--vcl/inc/vcl/ppdparser.hxx343
-rw-r--r--vcl/inc/vcl/print.h81
-rw-r--r--vcl/inc/vcl/print.hxx679
-rw-r--r--vcl/inc/vcl/printergfx.hxx442
-rw-r--r--vcl/inc/vcl/printerinfomanager.hxx241
-rw-r--r--vcl/inc/vcl/printerjob.hxx149
-rw-r--r--vcl/inc/vcl/prndlg.hxx330
-rw-r--r--vcl/inc/vcl/prntypes.hxx95
-rw-r--r--vcl/inc/vcl/ptrstyle.hxx142
-rw-r--r--vcl/inc/vcl/regband.hxx150
-rw-r--r--vcl/inc/vcl/region.h134
-rw-r--r--vcl/inc/vcl/region.hxx151
-rw-r--r--vcl/inc/vcl/salatype.hxx47
-rw-r--r--vcl/inc/vcl/salbmp.hxx65
-rw-r--r--vcl/inc/vcl/salbtype.hxx900
-rw-r--r--vcl/inc/vcl/salctrlhandle.hxx48
-rw-r--r--vcl/inc/vcl/salctype.hxx80
-rw-r--r--vcl/inc/vcl/saldatabasic.hxx53
-rw-r--r--vcl/inc/vcl/salframe.hxx293
-rw-r--r--vcl/inc/vcl/salgdi.hxx498
-rw-r--r--vcl/inc/vcl/salgeom.hxx51
-rw-r--r--vcl/inc/vcl/salgtype.hxx90
-rw-r--r--vcl/inc/vcl/salimestatus.hxx45
-rw-r--r--vcl/inc/vcl/salinst.hxx216
-rwxr-xr-xvcl/inc/vcl/sallayout.hxx390
-rw-r--r--vcl/inc/vcl/salmenu.hxx101
-rw-r--r--vcl/inc/vcl/salnativewidgets.hxx431
-rw-r--r--vcl/inc/vcl/salobj.hxx90
-rw-r--r--vcl/inc/vcl/salprn.hxx137
-rw-r--r--vcl/inc/vcl/salptype.hxx60
-rw-r--r--vcl/inc/vcl/salsession.hxx117
-rw-r--r--vcl/inc/vcl/salsys.hxx146
-rw-r--r--vcl/inc/vcl/saltimer.hxx69
-rw-r--r--vcl/inc/vcl/salvd.hxx58
-rw-r--r--vcl/inc/vcl/salwtype.hxx341
-rw-r--r--vcl/inc/vcl/scrbar.hxx170
-rw-r--r--vcl/inc/vcl/seleng.hxx253
-rw-r--r--vcl/inc/vcl/settings.hxx1298
-rw-r--r--vcl/inc/vcl/slider.hxx132
-rwxr-xr-xvcl/inc/vcl/smartid.hxx87
-rw-r--r--vcl/inc/vcl/sndstyle.hxx46
-rw-r--r--vcl/inc/vcl/sound.hxx51
-rw-r--r--vcl/inc/vcl/spin.h51
-rw-r--r--vcl/inc/vcl/spin.hxx117
-rw-r--r--vcl/inc/vcl/spinfld.hxx115
-rw-r--r--vcl/inc/vcl/split.hxx126
-rw-r--r--vcl/inc/vcl/splitwin.hxx268
-rw-r--r--vcl/inc/vcl/status.hxx225
-rw-r--r--vcl/inc/vcl/stdtext.hxx53
-rw-r--r--vcl/inc/vcl/strhelper.hxx83
-rw-r--r--vcl/inc/vcl/subedit.hxx48
-rw-r--r--vcl/inc/vcl/sv.h33
-rw-r--r--vcl/inc/vcl/svapp.hxx517
-rw-r--r--vcl/inc/vcl/svcompat.hxx70
-rw-r--r--vcl/inc/vcl/svdata.hxx453
-rw-r--r--vcl/inc/vcl/svids.hrc261
-rw-r--r--vcl/inc/vcl/symbol.hxx81
-rw-r--r--vcl/inc/vcl/syschild.hxx67
-rw-r--r--vcl/inc/vcl/sysdata.hxx189
-rw-r--r--vcl/inc/vcl/syswin.hxx279
-rw-r--r--vcl/inc/vcl/tabctrl.hxx219
-rw-r--r--vcl/inc/vcl/tabdlg.hxx72
-rw-r--r--vcl/inc/vcl/tabpage.hxx62
-rw-r--r--vcl/inc/vcl/taskpanelist.hxx57
-rw-r--r--vcl/inc/vcl/textlayout.hxx136
-rw-r--r--vcl/inc/vcl/threadex.hxx288
-rw-r--r--vcl/inc/vcl/timer.hxx89
-rw-r--r--vcl/inc/vcl/toolbox.h182
-rw-r--r--vcl/inc/vcl/toolbox.hxx682
-rw-r--r--vcl/inc/vcl/unobrok.hxx39
-rw-r--r--vcl/inc/vcl/unohelp.hxx70
-rw-r--r--vcl/inc/vcl/unohelp2.hxx84
-rw-r--r--vcl/inc/vcl/unowrap.hxx91
-rw-r--r--vcl/inc/vcl/vclenum.hxx328
-rw-r--r--vcl/inc/vcl/vclevent.hxx300
-rw-r--r--vcl/inc/vcl/virdev.hxx129
-rw-r--r--vcl/inc/vcl/waitobj.hxx53
-rw-r--r--vcl/inc/vcl/wall.hxx143
-rw-r--r--vcl/inc/vcl/wall2.hxx60
-rw-r--r--vcl/inc/vcl/windata.hxx49
-rw-r--r--vcl/inc/vcl/window.h374
-rw-r--r--vcl/inc/vcl/window.hxx1145
-rw-r--r--vcl/inc/vcl/wintypes.hxx33
-rw-r--r--vcl/inc/vcl/wrkwin.hxx108
-rw-r--r--vcl/inc/vcl/xconnection.hxx70
-rw-r--r--vcl/os2/howto.txt13
-rw-r--r--vcl/os2/inc/salbmp.h109
-rw-r--r--vcl/os2/inc/saldata.hxx307
-rw-r--r--vcl/os2/inc/salframe.h166
-rw-r--r--vcl/os2/inc/salgdi.h373
-rw-r--r--vcl/os2/inc/salids.hrc109
-rw-r--r--vcl/os2/inc/salinst.h103
-rw-r--r--vcl/os2/inc/sallang.hxx70
-rw-r--r--vcl/os2/inc/sallayout.h69
-rw-r--r--vcl/os2/inc/salmenu.h65
-rw-r--r--vcl/os2/inc/salobj.h69
-rw-r--r--vcl/os2/inc/salprn.h146
-rw-r--r--vcl/os2/inc/salsound.h94
-rw-r--r--vcl/os2/inc/salsound.hxx84
-rw-r--r--vcl/os2/inc/salsys.h44
-rw-r--r--vcl/os2/inc/saltimer.h44
-rw-r--r--vcl/os2/inc/salvd.h65
-rw-r--r--vcl/os2/inc/svsys.h35
-rw-r--r--vcl/os2/inc/wingdi.h70
-rw-r--r--vcl/os2/inc/xwphook.h620
-rw-r--r--vcl/os2/source/app/makefile.mk59
-rw-r--r--vcl/os2/source/app/printf.c284
-rw-r--r--vcl/os2/source/app/salinfo.cxx182
-rw-r--r--vcl/os2/source/app/salinst.cxx863
-rw-r--r--vcl/os2/source/app/sallang.cxx117
-rw-r--r--vcl/os2/source/app/salshl.cxx123
-rw-r--r--vcl/os2/source/app/saltimer.cxx140
-rw-r--r--vcl/os2/source/gdi/makefile.mk56
-rw-r--r--vcl/os2/source/gdi/os2layout.cxx1056
-rw-r--r--vcl/os2/source/gdi/salbmp.cxx737
-rw-r--r--vcl/os2/source/gdi/salgdi.cxx1043
-rw-r--r--vcl/os2/source/gdi/salgdi2.cxx786
-rw-r--r--vcl/os2/source/gdi/salgdi3.cxx1769
-rw-r--r--vcl/os2/source/gdi/salprn.cxx1833
-rw-r--r--vcl/os2/source/gdi/salvd.cxx200
-rw-r--r--vcl/os2/source/src/airbrush.ptrbin0 -> 2106 bytes
-rwxr-xr-xvcl/os2/source/src/ase.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asn.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asne.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asns.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asnswe.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asnw.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/ass.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asse.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/assw.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/asw.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/aswe.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/chain.ptrbin0 -> 16 bytes
-rw-r--r--vcl/os2/source/src/chainnot.ptrbin0 -> 16 bytes
-rw-r--r--vcl/os2/source/src/chart.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/copydata.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/copydlnk.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/copyf.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/copyf2.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/copyflnk.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/crook.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/crop.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/cross.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/darc.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/data.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dbezier.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dcapt.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dcirccut.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dconnect.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dellipse.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/detectiv.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dfree.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dline.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dpie.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dpolygon.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/drect.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/dtext.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/fill.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/hand.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/help.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/hshear.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/hsizebar.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/hsplit.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/linkdata.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/linkf.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/magnify.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/makefile.mk111
-rw-r--r--vcl/os2/source/src/mirror.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/move.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/movebw.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/movedata.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/movedlnk.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/movef.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/movef2.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/moveflnk.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/movept.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/nullptr.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/pen.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/pivotcol.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/pivotfld.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/pivotrow.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/pntbrsh.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/src/refhand.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/rotate.ptrbin0 -> 1191 bytes
-rw-r--r--vcl/os2/source/src/salsrc.rc108
-rw-r--r--vcl/os2/source/src/sd.icobin0 -> 3344 bytes
-rw-r--r--vcl/os2/source/src/sd2.icobin0 -> 5604 bytes
-rw-r--r--vcl/os2/source/src/tblsele.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/src/tblsels.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/src/tblselse.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/src/tblselsw.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/src/tblselw.ptrbin0 -> 2106 bytes
-rwxr-xr-xvcl/os2/source/src/timemove.ptrbin0 -> 1190 bytes
-rwxr-xr-xvcl/os2/source/src/timesize.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/vshear.ptrbin0 -> 1201 bytes
-rw-r--r--vcl/os2/source/src/vsizebar.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/vsplit.ptrbin0 -> 1190 bytes
-rw-r--r--vcl/os2/source/src/vtext.ptrbin0 -> 2106 bytes
-rw-r--r--vcl/os2/source/window/makefile53
-rw-r--r--vcl/os2/source/window/makefile.mk47
-rw-r--r--vcl/os2/source/window/salframe.cxx3777
-rw-r--r--vcl/os2/source/window/salmenu.cxx132
-rw-r--r--vcl/os2/source/window/salobj.cxx568
-rw-r--r--vcl/prj/build.lst50
-rw-r--r--vcl/prj/d.lst156
-rw-r--r--vcl/qa/complex/memCheck/CheckMemoryUsage.java340
-rw-r--r--vcl/qa/complex/memCheck/CheckMemoryUsage.props14
-rwxr-xr-xvcl/qa/complex/memCheck/makefile.mk89
-rw-r--r--vcl/qa/complex/persistent_window_states/DocumentHandle.java169
-rw-r--r--vcl/qa/complex/persistent_window_states/PersistentWindowTest.java393
-rw-r--r--vcl/qa/complex/persistent_window_states/PersistentWindowTest.props10
-rw-r--r--vcl/qa/complex/persistent_window_states/makefile.mk81
-rwxr-xr-xvcl/qa/testdocuments/CalcDoc.sxcbin0 -> 9547 bytes
-rwxr-xr-xvcl/qa/testdocuments/ImpressDoc.sxibin0 -> 35135 bytes
-rwxr-xr-xvcl/qa/testdocuments/WriterDoc.sxwbin0 -> 5754 bytes
-rw-r--r--vcl/source/app/dbggui.cxx2054
-rw-r--r--vcl/source/app/dndhelp.cxx182
-rw-r--r--vcl/source/app/help.cxx779
-rw-r--r--vcl/source/app/i18nhelp.cxx187
-rw-r--r--vcl/source/app/idlemgr.cxx150
-rw-r--r--vcl/source/app/makefile.mk69
-rw-r--r--vcl/source/app/salvtables.cxx144
-rw-r--r--vcl/source/app/session.cxx369
-rw-r--r--vcl/source/app/settings.cxx2080
-rw-r--r--vcl/source/app/sound.cxx55
-rw-r--r--vcl/source/app/stdtext.cxx68
-rw-r--r--vcl/source/app/svapp.cxx2082
-rw-r--r--vcl/source/app/svdata.cxx537
-rw-r--r--vcl/source/app/svmain.cxx638
-rw-r--r--vcl/source/app/svmainhook.cxx116
-rw-r--r--vcl/source/app/timer.cxx380
-rw-r--r--vcl/source/app/unohelp.cxx242
-rw-r--r--vcl/source/app/unohelp2.cxx112
-rw-r--r--vcl/source/app/vclevent.cxx151
-rw-r--r--vcl/source/components/display.cxx345
-rw-r--r--vcl/source/components/dtranscomp.cxx552
-rw-r--r--vcl/source/components/factory.cxx200
-rw-r--r--vcl/source/components/fontident.cxx211
-rw-r--r--vcl/source/components/makefile.mk51
-rw-r--r--vcl/source/control/button.cxx4470
-rw-r--r--vcl/source/control/combobox.cxx1584
-rw-r--r--vcl/source/control/ctrl.cxx587
-rw-r--r--vcl/source/control/edit.cxx3141
-rw-r--r--vcl/source/control/field.cxx2474
-rw-r--r--vcl/source/control/field2.cxx3469
-rw-r--r--vcl/source/control/fixbrd.cxx236
-rw-r--r--vcl/source/control/fixed.cxx1192
-rw-r--r--vcl/source/control/group.cxx324
-rw-r--r--vcl/source/control/ilstbox.cxx3227
-rw-r--r--vcl/source/control/imgctrl.cxx269
-rw-r--r--vcl/source/control/longcurr.cxx859
-rw-r--r--vcl/source/control/lstbox.cxx1628
-rw-r--r--vcl/source/control/makefile.mk79
-rw-r--r--vcl/source/control/menubtn.cxx242
-rw-r--r--vcl/source/control/morebtn.cxx280
-rw-r--r--vcl/source/control/scrbar.cxx1655
-rw-r--r--vcl/source/control/slider.cxx1040
-rw-r--r--vcl/source/control/spinbtn.cxx550
-rw-r--r--vcl/source/control/spinfld.cxx1098
-rw-r--r--vcl/source/control/tabctrl.cxx2332
-rw-r--r--vcl/source/fontsubset/cff.cxx2496
-rw-r--r--vcl/source/fontsubset/fontsubset.cxx185
-rw-r--r--vcl/source/fontsubset/gsub.cxx360
-rw-r--r--vcl/source/fontsubset/gsub.h44
-rw-r--r--vcl/source/fontsubset/list.c541
-rw-r--r--vcl/source/fontsubset/makefile.mk51
-rw-r--r--vcl/source/fontsubset/sft.cxx3354
-rw-r--r--vcl/source/fontsubset/ttcr.cxx1666
-rw-r--r--vcl/source/fontsubset/ttcr.hxx261
-rw-r--r--vcl/source/fontsubset/xlat.cxx221
-rw-r--r--vcl/source/fontsubset/xlat.hxx54
-rw-r--r--vcl/source/gdi/alpha.cxx434
-rw-r--r--vcl/source/gdi/animate.cxx939
-rw-r--r--vcl/source/gdi/base14.cxx687
-rw-r--r--vcl/source/gdi/bitmap.cxx1952
-rw-r--r--vcl/source/gdi/bitmap2.cxx1277
-rw-r--r--vcl/source/gdi/bitmap3.cxx2203
-rw-r--r--vcl/source/gdi/bitmap4.cxx1009
-rw-r--r--vcl/source/gdi/bitmapex.cxx914
-rw-r--r--vcl/source/gdi/bmpacc.cxx447
-rw-r--r--vcl/source/gdi/bmpacc2.cxx331
-rw-r--r--vcl/source/gdi/bmpacc3.cxx410
-rw-r--r--vcl/source/gdi/bmpconv.cxx213
-rw-r--r--vcl/source/gdi/bmpfast.cxx1040
-rw-r--r--vcl/source/gdi/configsettings.cxx205
-rw-r--r--vcl/source/gdi/cvtgrf.cxx175
-rw-r--r--vcl/source/gdi/cvtsvm.cxx2516
-rw-r--r--vcl/source/gdi/extoutdevdata.cxx41
-rw-r--r--vcl/source/gdi/font.cxx1116
-rw-r--r--vcl/source/gdi/gdimtf.cxx2990
-rw-r--r--vcl/source/gdi/gfxlink.cxx512
-rw-r--r--vcl/source/gdi/gradient.cxx344
-rw-r--r--vcl/source/gdi/graph.cxx814
-rw-r--r--vcl/source/gdi/graphictools.cxx759
-rw-r--r--vcl/source/gdi/hatch.cxx222
-rw-r--r--vcl/source/gdi/image.cxx1017
-rw-r--r--vcl/source/gdi/imagerepository.cxx57
-rw-r--r--vcl/source/gdi/imgcons.cxx574
-rw-r--r--vcl/source/gdi/impanmvw.cxx355
-rw-r--r--vcl/source/gdi/impanmvw.hxx96
-rw-r--r--vcl/source/gdi/impbmp.cxx134
-rw-r--r--vcl/source/gdi/impgraph.cxx1677
-rw-r--r--vcl/source/gdi/impimage.cxx634
-rw-r--r--vcl/source/gdi/impimagetree.cxx352
-rw-r--r--vcl/source/gdi/impprn.cxx584
-rw-r--r--vcl/source/gdi/impvect.cxx1204
-rw-r--r--vcl/source/gdi/impvect.hxx63
-rw-r--r--vcl/source/gdi/jobset.cxx458
-rw-r--r--vcl/source/gdi/lineinfo.cxx361
-rw-r--r--vcl/source/gdi/makefile.mk121
-rw-r--r--vcl/source/gdi/mapmod.cxx311
-rw-r--r--vcl/source/gdi/metaact.cxx4276
-rw-r--r--vcl/source/gdi/metric.cxx915
-rw-r--r--vcl/source/gdi/octree.cxx369
-rw-r--r--vcl/source/gdi/oldprintadaptor.cxx117
-rw-r--r--vcl/source/gdi/outdev.cxx3483
-rw-r--r--vcl/source/gdi/outdev2.cxx2278
-rw-r--r--vcl/source/gdi/outdev3.cxx8003
-rw-r--r--vcl/source/gdi/outdev4.cxx1421
-rw-r--r--vcl/source/gdi/outdev5.cxx313
-rw-r--r--vcl/source/gdi/outdev6.cxx1215
-rw-r--r--vcl/source/gdi/outmap.cxx2297
-rw-r--r--vcl/source/gdi/pdfextoutdevdata.cxx793
-rw-r--r--vcl/source/gdi/pdffontcache.cxx85
-rw-r--r--vcl/source/gdi/pdffontcache.hxx81
-rw-r--r--vcl/source/gdi/pdfwriter.cxx571
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx12126
-rw-r--r--vcl/source/gdi/pdfwriter_impl.hxx1364
-rw-r--r--vcl/source/gdi/pngread.cxx1579
-rw-r--r--vcl/source/gdi/pngwrite.cxx736
-rw-r--r--vcl/source/gdi/polyscan.cxx358
-rw-r--r--vcl/source/gdi/print.cxx1481
-rw-r--r--vcl/source/gdi/print2.cxx1570
-rw-r--r--vcl/source/gdi/print3.cxx1762
-rw-r--r--vcl/source/gdi/regband.cxx969
-rw-r--r--vcl/source/gdi/region.cxx2905
-rw-r--r--vcl/source/gdi/salgdilayout.cxx816
-rwxr-xr-xvcl/source/gdi/sallayout.cxx2325
-rw-r--r--vcl/source/gdi/salmisc.cxx516
-rw-r--r--vcl/source/gdi/salnativewidgets-none.cxx141
-rw-r--r--vcl/source/gdi/svcompat.cxx78
-rw-r--r--vcl/source/gdi/textlayout.cxx386
-rw-r--r--vcl/source/gdi/virdev.cxx449
-rw-r--r--vcl/source/gdi/wall.cxx639
-rw-r--r--vcl/source/glyphs/gcach_ftyp.cxx2557
-rw-r--r--vcl/source/glyphs/gcach_ftyp.hxx255
-rw-r--r--vcl/source/glyphs/gcach_layout.cxx644
-rw-r--r--vcl/source/glyphs/gcach_rbmp.cxx274
-rw-r--r--vcl/source/glyphs/gcach_vdev.cxx287
-rw-r--r--vcl/source/glyphs/gcach_vdev.hxx57
-rw-r--r--vcl/source/glyphs/glyphcache.cxx594
-rw-r--r--vcl/source/glyphs/graphite_adaptors.cxx326
-rw-r--r--vcl/source/glyphs/graphite_cache.cxx200
-rw-r--r--vcl/source/glyphs/graphite_features.cxx286
-rw-r--r--vcl/source/glyphs/graphite_layout.cxx1368
-rw-r--r--vcl/source/glyphs/graphite_serverfont.cxx85
-rw-r--r--vcl/source/glyphs/graphite_textsrc.cxx169
-rw-r--r--vcl/source/glyphs/graphite_textsrc.hxx130
-rw-r--r--vcl/source/glyphs/makefile.mk80
-rw-r--r--vcl/source/helper/canvasbitmap.cxx1467
-rw-r--r--vcl/source/helper/canvastools.cxx837
-rw-r--r--vcl/source/helper/evntpost.cxx65
-rw-r--r--vcl/source/helper/lazydelete.cxx125
-rw-r--r--vcl/source/helper/makefile.mk56
-rwxr-xr-xvcl/source/helper/smartid.cxx264
-rw-r--r--vcl/source/helper/strhelper.cxx442
-rw-r--r--vcl/source/helper/threadex.cxx127
-rw-r--r--vcl/source/helper/xconnection.cxx170
-rw-r--r--vcl/source/salmain/makefile.mk38
-rw-r--r--vcl/source/salmain/salmain.cxx40
-rw-r--r--vcl/source/src/btntext.src147
-rw-r--r--vcl/source/src/helptext.src163
-rw-r--r--vcl/source/src/images.src852
-rw-r--r--vcl/source/src/makefile.mk56
-rw-r--r--vcl/source/src/menu.src107
-rw-r--r--vcl/source/src/print.src492
-rw-r--r--vcl/source/src/stdtext.src127
-rw-r--r--vcl/source/src/units.src57
-rw-r--r--vcl/source/window/abstdlg.cxx64
-rw-r--r--vcl/source/window/accel.cxx731
-rw-r--r--vcl/source/window/accmgr.cxx290
-rw-r--r--vcl/source/window/arrange.cxx903
-rw-r--r--vcl/source/window/brdwin.cxx2354
-rw-r--r--vcl/source/window/btndlg.cxx551
-rw-r--r--vcl/source/window/cmdevt.cxx101
-rw-r--r--vcl/source/window/cursor.cxx462
-rw-r--r--vcl/source/window/decoview.cxx1355
-rw-r--r--vcl/source/window/dialog.cxx1028
-rw-r--r--vcl/source/window/dlgctrl.cxx1242
-rw-r--r--vcl/source/window/dndevdis.cxx564
-rw-r--r--vcl/source/window/dndevdis.hxx114
-rw-r--r--vcl/source/window/dndlcon.cxx567
-rw-r--r--vcl/source/window/dndlcon.hxx124
-rw-r--r--vcl/source/window/dockingarea.cxx248
-rw-r--r--vcl/source/window/dockmgr.cxx1639
-rw-r--r--vcl/source/window/dockwin.cxx1120
-rw-r--r--vcl/source/window/floatwin.cxx878
-rw-r--r--vcl/source/window/introwin.cxx79
-rw-r--r--vcl/source/window/javachild.cxx207
-rw-r--r--vcl/source/window/keycod.cxx160
-rw-r--r--vcl/source/window/keyevent.cxx116
-rw-r--r--vcl/source/window/makefile.mk104
-rw-r--r--vcl/source/window/menu.cxx5987
-rw-r--r--vcl/source/window/mnemonic.cxx417
-rw-r--r--vcl/source/window/mnemonicengine.cxx130
-rw-r--r--vcl/source/window/mouseevent.cxx92
-rw-r--r--vcl/source/window/msgbox.cxx694
-rw-r--r--vcl/source/window/popupmenuwindow.cxx79
-rw-r--r--vcl/source/window/printdlg.cxx2486
-rw-r--r--vcl/source/window/scrwnd.cxx420
-rw-r--r--vcl/source/window/scrwnd.hxx92
-rw-r--r--vcl/source/window/seleng.cxx487
-rw-r--r--vcl/source/window/split.cxx806
-rw-r--r--vcl/source/window/splitwin.cxx3877
-rw-r--r--vcl/source/window/status.cxx1737
-rw-r--r--vcl/source/window/syschild.cxx192
-rw-r--r--vcl/source/window/syswin.cxx1025
-rw-r--r--vcl/source/window/tabdlg.cxx293
-rw-r--r--vcl/source/window/tabpage.cxx216
-rw-r--r--vcl/source/window/taskpanelist.cxx398
-rw-r--r--vcl/source/window/toolbox.cxx6336
-rw-r--r--vcl/source/window/toolbox2.cxx2437
-rw-r--r--vcl/source/window/window.cxx9951
-rw-r--r--vcl/source/window/window2.cxx2065
-rw-r--r--vcl/source/window/window3.cxx335
-rw-r--r--vcl/source/window/winproc.cxx2617
-rw-r--r--vcl/source/window/wrkwin.cxx323
-rw-r--r--vcl/test/canvasbitmaptest.cxx1046
-rwxr-xr-xvcl/test/dndtest.cxx447
-rw-r--r--vcl/test/makefile.mk78
-rw-r--r--vcl/unx/gtk/a11y/TODO49
-rw-r--r--vcl/unx/gtk/a11y/atkaction.cxx278
-rw-r--r--vcl/unx/gtk/a11y/atkbridge.cxx81
-rw-r--r--vcl/unx/gtk/a11y/atkcomponent.cxx382
-rw-r--r--vcl/unx/gtk/a11y/atkeditabletext.cxx202
-rw-r--r--vcl/unx/gtk/a11y/atkfactory.cxx183
-rw-r--r--vcl/unx/gtk/a11y/atkfactory.hxx41
-rw-r--r--vcl/unx/gtk/a11y/atkhypertext.cxx291
-rw-r--r--vcl/unx/gtk/a11y/atkimage.cxx138
-rw-r--r--vcl/unx/gtk/a11y/atklistener.cxx537
-rw-r--r--vcl/unx/gtk/a11y/atklistener.hxx79
-rw-r--r--vcl/unx/gtk/a11y/atkregistry.cxx71
-rw-r--r--vcl/unx/gtk/a11y/atkregistry.hxx40
-rw-r--r--vcl/unx/gtk/a11y/atkselection.cxx195
-rw-r--r--vcl/unx/gtk/a11y/atktable.cxx721
-rw-r--r--vcl/unx/gtk/a11y/atktext.cxx798
-rw-r--r--vcl/unx/gtk/a11y/atktextattributes.cxx1393
-rw-r--r--vcl/unx/gtk/a11y/atktextattributes.hxx49
-rw-r--r--vcl/unx/gtk/a11y/atkutil.cxx796
-rw-r--r--vcl/unx/gtk/a11y/atkutil.hxx37
-rw-r--r--vcl/unx/gtk/a11y/atkvalue.cxx147
-rw-r--r--vcl/unx/gtk/a11y/atkwindow.cxx305
-rw-r--r--vcl/unx/gtk/a11y/atkwindow.hxx38
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.cxx951
-rw-r--r--vcl/unx/gtk/a11y/atkwrapper.hxx125
-rw-r--r--vcl/unx/gtk/a11y/makefile.mk93
-rw-r--r--vcl/unx/gtk/app/gtkdata.cxx994
-rw-r--r--vcl/unx/gtk/app/gtkinst.cxx352
-rw-r--r--vcl/unx/gtk/app/gtksys.cxx96
-rw-r--r--vcl/unx/gtk/app/makefile.mk76
-rw-r--r--vcl/unx/gtk/gdi/makefile.mk67
-rw-r--r--vcl/unx/gtk/gdi/salnativewidgets-gtk.cxx3964
-rw-r--r--vcl/unx/gtk/window/gtkframe.cxx3719
-rw-r--r--vcl/unx/gtk/window/gtkobject.cxx211
-rw-r--r--vcl/unx/gtk/window/makefile.mk79
-rw-r--r--vcl/unx/headless/makefile.mk66
-rw-r--r--vcl/unx/headless/svpbmp.cxx323
-rw-r--r--vcl/unx/headless/svpbmp.hxx66
-rw-r--r--vcl/unx/headless/svpdummies.cxx116
-rw-r--r--vcl/unx/headless/svpdummies.hxx94
-rw-r--r--vcl/unx/headless/svpelement.cxx291
-rw-r--r--vcl/unx/headless/svpelement.hxx46
-rw-r--r--vcl/unx/headless/svpframe.cxx422
-rw-r--r--vcl/unx/headless/svpframe.hxx126
-rw-r--r--vcl/unx/headless/svpgdi.cxx587
-rw-r--r--vcl/unx/headless/svpgdi.hxx173
-rw-r--r--vcl/unx/headless/svpinst.cxx521
-rw-r--r--vcl/unx/headless/svpinst.hxx197
-rw-r--r--vcl/unx/headless/svpprn.cxx1075
-rw-r--r--vcl/unx/headless/svpprn.hxx120
-rw-r--r--vcl/unx/headless/svppspgraphics.cxx1368
-rw-r--r--vcl/unx/headless/svppspgraphics.hxx193
-rw-r--r--vcl/unx/headless/svptext.cxx501
-rw-r--r--vcl/unx/headless/svpvd.cxx110
-rw-r--r--vcl/unx/headless/svpvd.hxx59
-rw-r--r--vcl/unx/inc/XIM.h137
-rw-r--r--vcl/unx/inc/Xproto.h49
-rw-r--r--vcl/unx/inc/cdeint.hxx44
-rw-r--r--vcl/unx/inc/dtint.hxx78
-rw-r--r--vcl/unx/inc/i18n_cb.hxx95
-rw-r--r--vcl/unx/inc/i18n_ic.hxx100
-rw-r--r--vcl/unx/inc/i18n_im.hxx69
-rw-r--r--vcl/unx/inc/i18n_keysym.hxx71
-rw-r--r--vcl/unx/inc/i18n_status.hxx125
-rw-r--r--vcl/unx/inc/i18n_xkb.hxx115
-rw-r--r--vcl/unx/inc/plugins/gtk/atkbridge.hxx36
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkdata.hxx89
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkframe.hxx401
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkgdi.hxx182
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkinst.hxx105
-rw-r--r--vcl/unx/inc/plugins/gtk/gtkobject.hxx69
-rw-r--r--vcl/unx/inc/plugins/kde/kdedata.hxx110
-rw-r--r--vcl/unx/inc/pspgraphics.h193
-rw-r--r--vcl/unx/inc/salbmp.h237
-rw-r--r--vcl/unx/inc/saldata.hxx128
-rw-r--r--vcl/unx/inc/saldisp.hxx565
-rw-r--r--vcl/unx/inc/salfont.h180
-rw-r--r--vcl/unx/inc/salframe.h286
-rw-r--r--vcl/unx/inc/salgdi.h396
-rw-r--r--vcl/unx/inc/salinst.h131
-rw-r--r--vcl/unx/inc/salmenu.h65
-rw-r--r--vcl/unx/inc/salobj.h103
-rw-r--r--vcl/unx/inc/salprn.h120
-rw-r--r--vcl/unx/inc/salstd.hxx77
-rw-r--r--vcl/unx/inc/salsys.h67
-rw-r--r--vcl/unx/inc/saltimer.h44
-rw-r--r--vcl/unx/inc/salunx.h128
-rw-r--r--vcl/unx/inc/salvd.h101
-rw-r--r--vcl/unx/inc/sm.hxx91
-rw-r--r--vcl/unx/inc/soicon.hxx37
-rw-r--r--vcl/unx/inc/strhelper.hxx41
-rw-r--r--vcl/unx/inc/svsys.h32
-rw-r--r--vcl/unx/inc/svunx.h35
-rw-r--r--vcl/unx/inc/wmadaptor.hxx326
-rw-r--r--vcl/unx/inc/xfont.hxx162
-rw-r--r--vcl/unx/kde/kdedata.cxx277
-rw-r--r--vcl/unx/kde/makefile.mk81
-rw-r--r--vcl/unx/kde/salnativewidgets-kde.cxx2125
-rw-r--r--vcl/unx/kde4/KDEData.cxx54
-rw-r--r--vcl/unx/kde4/KDEData.hxx42
-rw-r--r--vcl/unx/kde4/KDESalDisplay.cxx45
-rw-r--r--vcl/unx/kde4/KDESalDisplay.hxx37
-rw-r--r--vcl/unx/kde4/KDESalFrame.cxx405
-rw-r--r--vcl/unx/kde4/KDESalFrame.hxx58
-rw-r--r--vcl/unx/kde4/KDESalGraphics.cxx850
-rw-r--r--vcl/unx/kde4/KDESalGraphics.hxx114
-rw-r--r--vcl/unx/kde4/KDESalInstance.cxx35
-rw-r--r--vcl/unx/kde4/KDESalInstance.hxx41
-rw-r--r--vcl/unx/kde4/KDEXLib.cxx178
-rw-r--r--vcl/unx/kde4/KDEXLib.hxx48
-rw-r--r--vcl/unx/kde4/VCLKDEApplication.cxx52
-rw-r--r--vcl/unx/kde4/VCLKDEApplication.hxx53
-rw-r--r--vcl/unx/kde4/main.cxx93
-rw-r--r--vcl/unx/kde4/makefile.mk88
-rw-r--r--vcl/unx/source/app/i18n_cb.cxx664
-rw-r--r--vcl/unx/source/app/i18n_ic.cxx786
-rw-r--r--vcl/unx/source/app/i18n_im.cxx628
-rw-r--r--vcl/unx/source/app/i18n_keysym.cxx365
-rw-r--r--vcl/unx/source/app/i18n_status.cxx733
-rw-r--r--vcl/unx/source/app/i18n_wrp.cxx259
-rw-r--r--vcl/unx/source/app/i18n_xkb.cxx163
-rw-r--r--vcl/unx/source/app/keysymnames.cxx687
-rw-r--r--vcl/unx/source/app/makefile.mk110
-rw-r--r--vcl/unx/source/app/randrwrapper.cxx360
-rw-r--r--vcl/unx/source/app/saldata.cxx870
-rw-r--r--vcl/unx/source/app/saldisp.cxx3444
-rw-r--r--vcl/unx/source/app/salinst.cxx433
-rw-r--r--vcl/unx/source/app/salsys.cxx225
-rw-r--r--vcl/unx/source/app/saltimer.cxx96
-rw-r--r--vcl/unx/source/app/sm.cxx775
-rw-r--r--vcl/unx/source/app/soicon.cxx115
-rw-r--r--vcl/unx/source/app/wmadaptor.cxx2414
-rw-r--r--vcl/unx/source/desktopdetect/desktopdetector.cxx343
-rw-r--r--vcl/unx/source/desktopdetect/makefile.mk57
-rw-r--r--vcl/unx/source/dtrans/X11_clipboard.cxx293
-rw-r--r--vcl/unx/source/dtrans/X11_clipboard.hxx151
-rw-r--r--vcl/unx/source/dtrans/X11_dndcontext.cxx138
-rw-r--r--vcl/unx/source/dtrans/X11_dndcontext.hxx104
-rw-r--r--vcl/unx/source/dtrans/X11_droptarget.cxx228
-rw-r--r--vcl/unx/source/dtrans/X11_selection.cxx4125
-rw-r--r--vcl/unx/source/dtrans/X11_selection.hxx531
-rw-r--r--vcl/unx/source/dtrans/X11_service.cxx135
-rw-r--r--vcl/unx/source/dtrans/X11_transferable.cxx134
-rw-r--r--vcl/unx/source/dtrans/X11_transferable.hxx72
-rw-r--r--vcl/unx/source/dtrans/bmp.cxx739
-rw-r--r--vcl/unx/source/dtrans/bmp.hxx105
-rw-r--r--vcl/unx/source/dtrans/config.cxx148
-rw-r--r--vcl/unx/source/dtrans/copydata_curs.h42
-rw-r--r--vcl/unx/source/dtrans/copydata_mask.h42
-rw-r--r--vcl/unx/source/dtrans/linkdata_curs.h42
-rw-r--r--vcl/unx/source/dtrans/linkdata_mask.h42
-rw-r--r--vcl/unx/source/dtrans/makefile.mk68
-rw-r--r--vcl/unx/source/dtrans/movedata_curs.h42
-rw-r--r--vcl/unx/source/dtrans/movedata_mask.h42
-rw-r--r--vcl/unx/source/dtrans/nodrop_curs.h42
-rw-r--r--vcl/unx/source/dtrans/nodrop_mask.h42
-rw-r--r--vcl/unx/source/fontmanager/adobeenc.tab1087
-rwxr-xr-xvcl/unx/source/fontmanager/afm_hash.cpp245
-rwxr-xr-xvcl/unx/source/fontmanager/afm_keyword_list58
-rw-r--r--vcl/unx/source/fontmanager/fontcache.cxx811
-rw-r--r--vcl/unx/source/fontmanager/fontconfig.cxx1217
-rw-r--r--vcl/unx/source/fontmanager/fontmanager.cxx4067
-rw-r--r--vcl/unx/source/fontmanager/helper.cxx404
-rw-r--r--vcl/unx/source/fontmanager/makefile.mk72
-rw-r--r--vcl/unx/source/fontmanager/parseAFM.cxx1559
-rw-r--r--vcl/unx/source/fontmanager/parseAFM.hxx334
-rw-r--r--vcl/unx/source/gdi/cdeint.cxx241
-rw-r--r--vcl/unx/source/gdi/dtint.cxx139
-rw-r--r--vcl/unx/source/gdi/dtsetenum.hxx146
-rw-r--r--vcl/unx/source/gdi/gcach_xpeer.cxx682
-rw-r--r--vcl/unx/source/gdi/gcach_xpeer.hxx94
-rw-r--r--vcl/unx/source/gdi/makefile.mk111
-rw-r--r--vcl/unx/source/gdi/pspgraphics.cxx1500
-rw-r--r--vcl/unx/source/gdi/salbmp.cxx1093
-rw-r--r--vcl/unx/source/gdi/salcvt.cxx341
-rw-r--r--vcl/unx/source/gdi/salcvt.hxx92
-rw-r--r--vcl/unx/source/gdi/salgdi.cxx1904
-rw-r--r--vcl/unx/source/gdi/salgdi2.cxx1149
-rw-r--r--vcl/unx/source/gdi/salgdi3.cxx2248
-rw-r--r--vcl/unx/source/gdi/salprnpsp.cxx1155
-rw-r--r--vcl/unx/source/gdi/salvd.cxx272
-rw-r--r--vcl/unx/source/gdi/xfont.cxx780
-rw-r--r--vcl/unx/source/gdi/xlfd_attr.cxx686
-rw-r--r--vcl/unx/source/gdi/xlfd_attr.hxx228
-rw-r--r--vcl/unx/source/gdi/xlfd_extd.cxx1001
-rw-r--r--vcl/unx/source/gdi/xlfd_extd.hxx272
-rw-r--r--vcl/unx/source/gdi/xlfd_smpl.cxx268
-rw-r--r--vcl/unx/source/gdi/xlfd_smpl.hxx92
-rw-r--r--vcl/unx/source/gdi/xrender_peer.cxx236
-rw-r--r--vcl/unx/source/gdi/xrender_peer.hxx386
-rw-r--r--vcl/unx/source/inc/airbrush_curs.h40
-rw-r--r--vcl/unx/source/inc/airbrush_mask.h40
-rw-r--r--vcl/unx/source/inc/ase_curs.h40
-rw-r--r--vcl/unx/source/inc/ase_mask.h40
-rw-r--r--vcl/unx/source/inc/asn_curs.h40
-rw-r--r--vcl/unx/source/inc/asn_mask.h40
-rw-r--r--vcl/unx/source/inc/asne_curs.h40
-rw-r--r--vcl/unx/source/inc/asne_mask.h40
-rw-r--r--vcl/unx/source/inc/asns_curs.h40
-rw-r--r--vcl/unx/source/inc/asns_mask.h40
-rw-r--r--vcl/unx/source/inc/asnswe_curs.h40
-rw-r--r--vcl/unx/source/inc/asnswe_mask.h40
-rw-r--r--vcl/unx/source/inc/asnw_curs.h40
-rw-r--r--vcl/unx/source/inc/asnw_mask.h40
-rw-r--r--vcl/unx/source/inc/ass_curs.h40
-rw-r--r--vcl/unx/source/inc/ass_mask.h40
-rw-r--r--vcl/unx/source/inc/asse_curs.h40
-rw-r--r--vcl/unx/source/inc/asse_mask.h40
-rw-r--r--vcl/unx/source/inc/assw_curs.h40
-rw-r--r--vcl/unx/source/inc/assw_mask.h40
-rw-r--r--vcl/unx/source/inc/asw_curs.h40
-rw-r--r--vcl/unx/source/inc/asw_mask.h40
-rw-r--r--vcl/unx/source/inc/aswe_curs.h40
-rw-r--r--vcl/unx/source/inc/aswe_mask.h40
-rw-r--r--vcl/unx/source/inc/chain_curs.h40
-rw-r--r--vcl/unx/source/inc/chain_mask.h38
-rw-r--r--vcl/unx/source/inc/chainnot_curs.h40
-rw-r--r--vcl/unx/source/inc/chainnot_mask.h38
-rw-r--r--vcl/unx/source/inc/chart_curs.h40
-rw-r--r--vcl/unx/source/inc/chart_mask.h40
-rw-r--r--vcl/unx/source/inc/copydata_curs.h42
-rw-r--r--vcl/unx/source/inc/copydata_mask.h42
-rw-r--r--vcl/unx/source/inc/copydlnk_curs.h42
-rw-r--r--vcl/unx/source/inc/copydlnk_mask.h42
-rw-r--r--vcl/unx/source/inc/copyfile_curs.h42
-rw-r--r--vcl/unx/source/inc/copyfile_mask.h42
-rw-r--r--vcl/unx/source/inc/copyfiles_curs.h42
-rw-r--r--vcl/unx/source/inc/copyfiles_mask.h42
-rw-r--r--vcl/unx/source/inc/copyflnk_curs.h42
-rw-r--r--vcl/unx/source/inc/copyflnk_mask.h42
-rw-r--r--vcl/unx/source/inc/crook_curs.h42
-rw-r--r--vcl/unx/source/inc/crook_mask.h40
-rw-r--r--vcl/unx/source/inc/crop_curs.h42
-rw-r--r--vcl/unx/source/inc/crop_mask.h40
-rw-r--r--vcl/unx/source/inc/detective_curs.h40
-rw-r--r--vcl/unx/source/inc/detective_mask.h40
-rw-r--r--vcl/unx/source/inc/drawarc_curs.h42
-rw-r--r--vcl/unx/source/inc/drawarc_mask.h40
-rw-r--r--vcl/unx/source/inc/drawbezier_curs.h42
-rw-r--r--vcl/unx/source/inc/drawbezier_mask.h40
-rw-r--r--vcl/unx/source/inc/drawcaption_curs.h42
-rw-r--r--vcl/unx/source/inc/drawcaption_mask.h40
-rw-r--r--vcl/unx/source/inc/drawcirclecut_curs.h42
-rw-r--r--vcl/unx/source/inc/drawcirclecut_mask.h40
-rw-r--r--vcl/unx/source/inc/drawconnect_curs.h42
-rw-r--r--vcl/unx/source/inc/drawconnect_mask.h40
-rw-r--r--vcl/unx/source/inc/drawcrook_curs.h42
-rw-r--r--vcl/unx/source/inc/drawcrook_mask.h40
-rw-r--r--vcl/unx/source/inc/drawcrop_curs.h42
-rw-r--r--vcl/unx/source/inc/drawcrop_mask.h40
-rw-r--r--vcl/unx/source/inc/drawellipse_curs.h42
-rw-r--r--vcl/unx/source/inc/drawellipse_mask.h40
-rw-r--r--vcl/unx/source/inc/drawfreehand_curs.h42
-rw-r--r--vcl/unx/source/inc/drawfreehand_mask.h40
-rw-r--r--vcl/unx/source/inc/drawline_curs.h42
-rw-r--r--vcl/unx/source/inc/drawline_mask.h40
-rw-r--r--vcl/unx/source/inc/drawmirror_curs.h42
-rw-r--r--vcl/unx/source/inc/drawmirror_mask.h40
-rw-r--r--vcl/unx/source/inc/drawpie_curs.h42
-rw-r--r--vcl/unx/source/inc/drawpie_mask.h40
-rw-r--r--vcl/unx/source/inc/drawpolygon_curs.h42
-rw-r--r--vcl/unx/source/inc/drawpolygon_mask.h40
-rw-r--r--vcl/unx/source/inc/drawrect_curs.h42
-rw-r--r--vcl/unx/source/inc/drawrect_mask.h40
-rw-r--r--vcl/unx/source/inc/drawtext_curs.h42
-rw-r--r--vcl/unx/source/inc/drawtext_mask.h40
-rw-r--r--vcl/unx/source/inc/fill_curs.h40
-rw-r--r--vcl/unx/source/inc/fill_mask.h40
-rw-r--r--vcl/unx/source/inc/hshear_curs.h42
-rw-r--r--vcl/unx/source/inc/hshear_mask.h40
-rw-r--r--vcl/unx/source/inc/invert50.h65
-rw-r--r--vcl/unx/source/inc/linkdata_curs.h42
-rw-r--r--vcl/unx/source/inc/linkdata_mask.h42
-rw-r--r--vcl/unx/source/inc/linkfile_curs.h42
-rw-r--r--vcl/unx/source/inc/linkfile_mask.h42
-rw-r--r--vcl/unx/source/inc/magnify_curs.h40
-rw-r--r--vcl/unx/source/inc/magnify_mask.h40
-rw-r--r--vcl/unx/source/inc/mirror_curs.h42
-rw-r--r--vcl/unx/source/inc/mirror_mask.h40
-rw-r--r--vcl/unx/source/inc/movebezierweight_curs.h42
-rw-r--r--vcl/unx/source/inc/movebezierweight_mask.h40
-rw-r--r--vcl/unx/source/inc/movedata_curs.h42
-rw-r--r--vcl/unx/source/inc/movedata_mask.h42
-rw-r--r--vcl/unx/source/inc/movedlnk_curs.h42
-rw-r--r--vcl/unx/source/inc/movedlnk_mask.h42
-rw-r--r--vcl/unx/source/inc/movefile_curs.h42
-rw-r--r--vcl/unx/source/inc/movefile_mask.h42
-rw-r--r--vcl/unx/source/inc/movefiles_curs.h42
-rw-r--r--vcl/unx/source/inc/movefiles_mask.h42
-rw-r--r--vcl/unx/source/inc/moveflnk_curs.h42
-rw-r--r--vcl/unx/source/inc/moveflnk_mask.h42
-rw-r--r--vcl/unx/source/inc/movepoint_curs.h42
-rw-r--r--vcl/unx/source/inc/movepoint_mask.h40
-rw-r--r--vcl/unx/source/inc/nodrop_curs.h42
-rw-r--r--vcl/unx/source/inc/nodrop_mask.h42
-rw-r--r--vcl/unx/source/inc/null_curs.h31
-rw-r--r--vcl/unx/source/inc/null_mask.h29
-rw-r--r--vcl/unx/source/inc/paintbrush_curs.h8
-rw-r--r--vcl/unx/source/inc/paintbrush_mask.h7
-rw-r--r--vcl/unx/source/inc/pivotcol_curs.h42
-rw-r--r--vcl/unx/source/inc/pivotcol_mask.h42
-rw-r--r--vcl/unx/source/inc/pivotdel_curs.h42
-rw-r--r--vcl/unx/source/inc/pivotdel_mask.h42
-rw-r--r--vcl/unx/source/inc/pivotfld_curs.h42
-rw-r--r--vcl/unx/source/inc/pivotfld_mask.h42
-rw-r--r--vcl/unx/source/inc/pivotrow_curs.h42
-rw-r--r--vcl/unx/source/inc/pivotrow_mask.h42
-rw-r--r--vcl/unx/source/inc/rotate_curs.h42
-rw-r--r--vcl/unx/source/inc/rotate_mask.h40
-rw-r--r--vcl/unx/source/inc/salcursors.h162
-rw-r--r--vcl/unx/source/inc/tblsele_curs.h8
-rw-r--r--vcl/unx/source/inc/tblsele_mask.h7
-rw-r--r--vcl/unx/source/inc/tblsels_curs.h9
-rw-r--r--vcl/unx/source/inc/tblsels_mask.h7
-rw-r--r--vcl/unx/source/inc/tblselse_curs.h8
-rw-r--r--vcl/unx/source/inc/tblselse_mask.h7
-rw-r--r--vcl/unx/source/inc/tblselsw_curs.h8
-rw-r--r--vcl/unx/source/inc/tblselsw_mask.h7
-rw-r--r--vcl/unx/source/inc/tblselw_curs.h8
-rw-r--r--vcl/unx/source/inc/tblselw_mask.h6
-rw-r--r--vcl/unx/source/inc/timemove_curs.h40
-rw-r--r--vcl/unx/source/inc/timemove_mask.h40
-rw-r--r--vcl/unx/source/inc/timesize_curs.h40
-rw-r--r--vcl/unx/source/inc/timesize_mask.h40
-rw-r--r--vcl/unx/source/inc/vertcurs_curs.h8
-rw-r--r--vcl/unx/source/inc/vertcurs_mask.h8
-rw-r--r--vcl/unx/source/inc/vshear_curs.h42
-rw-r--r--vcl/unx/source/inc/vshear_mask.h40
-rw-r--r--vcl/unx/source/plugadapt/makefile.mk59
-rw-r--r--vcl/unx/source/plugadapt/salplug.cxx292
-rw-r--r--vcl/unx/source/printer/cupsmgr.cxx1141
-rw-r--r--vcl/unx/source/printer/jobdata.cxx226
-rw-r--r--vcl/unx/source/printer/makefile.mk70
-rw-r--r--vcl/unx/source/printer/ppdparser.cxx2165
-rw-r--r--vcl/unx/source/printer/printerinfomanager.cxx1404
-rw-r--r--vcl/unx/source/printergfx/bitmap_gfx.cxx732
-rw-r--r--vcl/unx/source/printergfx/common_gfx.cxx1284
-rw-r--r--vcl/unx/source/printergfx/glyphset.cxx942
-rw-r--r--vcl/unx/source/printergfx/glyphset.hxx135
-rw-r--r--vcl/unx/source/printergfx/makefile.mk65
-rw-r--r--vcl/unx/source/printergfx/printerjob.cxx1198
-rw-r--r--vcl/unx/source/printergfx/psheader.ps368
-rw-r--r--vcl/unx/source/printergfx/psputil.cxx268
-rw-r--r--vcl/unx/source/printergfx/psputil.hxx78
-rw-r--r--vcl/unx/source/printergfx/text_gfx.cxx862
-rw-r--r--vcl/unx/source/window/FWS.cxx280
-rw-r--r--vcl/unx/source/window/FWS.hxx64
-rw-r--r--vcl/unx/source/window/makefile.mk59
-rw-r--r--vcl/unx/source/window/salframe.cxx4378
-rw-r--r--vcl/unx/source/window/salmenu.cxx132
-rw-r--r--vcl/unx/source/window/salobj.cxx561
-rw-r--r--vcl/util/hidother.src31
-rw-r--r--vcl/util/linksvp/makefile.mk65
-rw-r--r--vcl/util/makefile.mk459
-rw-r--r--vcl/util/makefile.pmk34
-rw-r--r--vcl/util/makefile2.pmk41
-rw-r--r--vcl/util/target.pmk44
-rw-r--r--vcl/win/inc/salbmp.h88
-rw-r--r--vcl/win/inc/saldata.hxx372
-rw-r--r--vcl/win/inc/salframe.h150
-rw-r--r--vcl/win/inc/salgdi.h403
-rw-r--r--vcl/win/inc/salids.hrc120
-rw-r--r--vcl/win/inc/salinst.h103
-rw-r--r--vcl/win/inc/salmenu.h78
-rw-r--r--vcl/win/inc/salnativewidgets.h54
-rw-r--r--vcl/win/inc/salobj.h69
-rw-r--r--vcl/win/inc/salprn.h130
-rw-r--r--vcl/win/inc/salsys.h92
-rw-r--r--vcl/win/inc/saltimer.h44
-rw-r--r--vcl/win/inc/salvd.h61
-rw-r--r--vcl/win/inc/svsys.h33
-rw-r--r--vcl/win/inc/wincomp.hxx264
-rw-r--r--vcl/win/source/app/MAKEFILE.MK53
-rw-r--r--vcl/win/source/app/saldata.cxx190
-rw-r--r--vcl/win/source/app/salinfo.cxx300
-rw-r--r--vcl/win/source/app/salinst.cxx1173
-rw-r--r--vcl/win/source/app/salshl.cxx164
-rw-r--r--vcl/win/source/app/saltimer.cxx154
-rw-r--r--vcl/win/source/gdi/MAKEFILE.MK69
-rw-r--r--vcl/win/source/gdi/salbmp.cxx632
-rw-r--r--vcl/win/source/gdi/salgdi.cxx1798
-rw-r--r--vcl/win/source/gdi/salgdi2.cxx821
-rw-r--r--vcl/win/source/gdi/salgdi3.cxx2909
-rw-r--r--vcl/win/source/gdi/salgdi_gdiplus.cxx264
-rw-r--r--vcl/win/source/gdi/salnativewidgets-luna.cxx1169
-rw-r--r--vcl/win/source/gdi/salprn.cxx2364
-rw-r--r--vcl/win/source/gdi/salvd.cxx256
-rw-r--r--vcl/win/source/gdi/winlayout.cxx3203
-rw-r--r--vcl/win/source/gdi/wntgdi.cxx67
-rw-r--r--vcl/win/source/src/50.bmpbin0 -> 94 bytes
-rw-r--r--vcl/win/source/src/50.pngbin0 -> 125 bytes
-rw-r--r--vcl/win/source/src/MAKEFILE.MK130
-rw-r--r--vcl/win/source/src/airbrush.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/ase.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asn.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asne.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asns.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asnswe.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asnw.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/ass.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asse.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/assw.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/asw.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/aswe.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/chain.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/chainnot.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/chart.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/copydata.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/copydlnk.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/copyf.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/copyf2.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/copyflnk.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/crook.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/crop.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/cross.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/darc.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dbezier.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dcapt.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dcirccut.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dconnect.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dellipse.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/detectiv.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dfree.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dline.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dpie.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dpolygon.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/drect.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/dtext.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/fill.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/hand.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/help.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/hshear.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/hsize.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/hsizebar.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/hsplit.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/linkdata.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/linkf.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/magnify.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/mirror.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/move.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movebw.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movedata.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movedlnk.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movef.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movef2.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/moveflnk.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/movept.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/neswsize.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/notallow.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/nullptr.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/nwsesize.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pen.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pivotcol.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pivotdel.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pivotfld.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pivotrow.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/pntbrsh.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/refhand.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/rotate.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/salsrc.rc121
-rw-r--r--vcl/win/source/src/sd.icobin0 -> 3310 bytes
-rw-r--r--vcl/win/source/src/tblsele.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/tblsels.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/tblselse.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/tblselsw.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/tblselw.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/timemove.curbin0 -> 326 bytes
-rwxr-xr-xvcl/win/source/src/timesize.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/vshear.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/vsize.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/vsizebar.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/vsplit.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/src/vtext.curbin0 -> 326 bytes
-rw-r--r--vcl/win/source/window/MAKEFILE.MK65
-rwxr-xr-xvcl/win/source/window/salframe.cxx6440
-rw-r--r--vcl/win/source/window/salmenu.cxx410
-rw-r--r--vcl/win/source/window/salobj.cxx838
-rw-r--r--vcl/workben/makefile.mk151
-rwxr-xr-xvcl/workben/outdevgrind.cxx974
-rw-r--r--vcl/workben/svdem.cxx148
-rw-r--r--vcl/workben/svpclient.cxx346
-rw-r--r--vcl/workben/svptest.cxx379
-rw-r--r--vcl/workben/vcldemo.cxx187
-rw-r--r--vigra/makefile.mk65
-rw-r--r--vigra/prj/build.lst3
-rw-r--r--vigra/prj/d.lst3
-rw-r--r--vigra/vigra1.4.0.patch1713
-rw-r--r--vos/docu/.html138
-rw-r--r--vos/inc/vos/conditn.hxx138
-rw-r--r--vos/inc/vos/connectn.hxx116
-rw-r--r--vos/inc/vos/diagnose.hxx56
-rw-r--r--vos/inc/vos/execabl.hxx152
-rw-r--r--vos/inc/vos/istream.hxx73
-rw-r--r--vos/inc/vos/macros.hxx159
-rw-r--r--vos/inc/vos/module.hxx79
-rw-r--r--vos/inc/vos/mutex.hxx183
-rw-r--r--vos/inc/vos/object.hxx193
-rw-r--r--vos/inc/vos/pipe.hxx259
-rw-r--r--vos/inc/vos/process.hxx319
-rw-r--r--vos/inc/vos/ref.hxx183
-rw-r--r--vos/inc/vos/ref.inl192
-rw-r--r--vos/inc/vos/refernce.hxx109
-rw-r--r--vos/inc/vos/refobj.hxx89
-rw-r--r--vos/inc/vos/refobj.inl86
-rw-r--r--vos/inc/vos/runnable.hxx67
-rw-r--r--vos/inc/vos/security.hxx121
-rw-r--r--vos/inc/vos/signal.hxx98
-rw-r--r--vos/inc/vos/socket.hxx1130
-rw-r--r--vos/inc/vos/stream.hxx285
-rw-r--r--vos/inc/vos/thread.hxx235
-rw-r--r--vos/inc/vos/timer.hxx200
-rw-r--r--vos/inc/vos/types.hxx40
-rw-r--r--vos/inc/vos/xception.hxx79
-rw-r--r--vos/prj/build.lst6
-rw-r--r--vos/prj/d.lst15
-rw-r--r--vos/source/conditn.cxx76
-rw-r--r--vos/source/dllentry.cxx62
-rw-r--r--vos/source/makefile.mk79
-rw-r--r--vos/source/module.cxx87
-rw-r--r--vos/source/mutex.cxx72
-rw-r--r--vos/source/object.cxx165
-rw-r--r--vos/source/pipe.cxx416
-rw-r--r--vos/source/process.cxx525
-rw-r--r--vos/source/refernce.cxx66
-rw-r--r--vos/source/security.cxx116
-rw-r--r--vos/source/signal.cxx64
-rw-r--r--vos/source/socket.cxx1723
-rw-r--r--vos/source/stream.cxx115
-rw-r--r--vos/source/thread.cxx240
-rw-r--r--vos/source/timer.cxx501
-rw-r--r--vos/source/xception.cxx43
-rw-r--r--vos/util/libvos1C50.so.mapfile274
-rw-r--r--vos/util/makefile.mk85
-rw-r--r--vos/version.mk40
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaTemplate.java1961
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaWizardDialog.java384
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaWizardDialogConst.java107
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaWizardDialogImpl.java596
-rw-r--r--wizards/com/sun/star/wizards/agenda/AgendaWizardDialogResources.java221
-rw-r--r--wizards/com/sun/star/wizards/agenda/CGAgenda.java83
-rw-r--r--wizards/com/sun/star/wizards/agenda/CGTopic.java87
-rw-r--r--wizards/com/sun/star/wizards/agenda/CallWizard.java240
-rw-r--r--wizards/com/sun/star/wizards/agenda/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/agenda/TemplateConsts.java146
-rw-r--r--wizards/com/sun/star/wizards/agenda/TopicsControl.java1320
-rw-r--r--wizards/com/sun/star/wizards/agenda/makefile.mk71
-rw-r--r--wizards/com/sun/star/wizards/common/ConfigGroup.java183
-rw-r--r--wizards/com/sun/star/wizards/common/ConfigNode.java53
-rw-r--r--wizards/com/sun/star/wizards/common/ConfigSet.java452
-rw-r--r--wizards/com/sun/star/wizards/common/Configuration.java457
-rw-r--r--wizards/com/sun/star/wizards/common/DebugHelper.java58
-rw-r--r--wizards/com/sun/star/wizards/common/Desktop.java509
-rw-r--r--wizards/com/sun/star/wizards/common/FileAccess.java1200
-rw-r--r--wizards/com/sun/star/wizards/common/Helper.java444
-rw-r--r--wizards/com/sun/star/wizards/common/IRenderer.java40
-rw-r--r--wizards/com/sun/star/wizards/common/Indexable.java44
-rw-r--r--wizards/com/sun/star/wizards/common/InvalidQueryException.java40
-rw-r--r--wizards/com/sun/star/wizards/common/JavaTools.java785
-rw-r--r--wizards/com/sun/star/wizards/common/MANIFEST.MF1
-rw-r--r--wizards/com/sun/star/wizards/common/NoValidPathException.java44
-rw-r--r--wizards/com/sun/star/wizards/common/NumberFormatter.java332
-rw-r--r--wizards/com/sun/star/wizards/common/NumericalHelper.java1625
-rw-r--r--wizards/com/sun/star/wizards/common/Properties.java126
-rw-r--r--wizards/com/sun/star/wizards/common/PropertySetHelper.java396
-rw-r--r--wizards/com/sun/star/wizards/common/Resource.java143
-rw-r--r--wizards/com/sun/star/wizards/common/SystemDialog.java428
-rw-r--r--wizards/com/sun/star/wizards/common/TerminateWizardException.java43
-rw-r--r--wizards/com/sun/star/wizards/common/UCB.java269
-rw-r--r--wizards/com/sun/star/wizards/common/XMLHelper.java74
-rw-r--r--wizards/com/sun/star/wizards/common/XMLProvider.java46
-rw-r--r--wizards/com/sun/star/wizards/common/delzip0
-rw-r--r--wizards/com/sun/star/wizards/db/BlindtextCreator.java113
-rw-r--r--wizards/com/sun/star/wizards/db/ColumnPropertySet.java213
-rw-r--r--wizards/com/sun/star/wizards/db/CommandMetaData.java832
-rw-r--r--wizards/com/sun/star/wizards/db/CommandName.java267
-rw-r--r--wizards/com/sun/star/wizards/db/DBMetaData.java1166
-rw-r--r--wizards/com/sun/star/wizards/db/FieldColumn.java471
-rw-r--r--wizards/com/sun/star/wizards/db/MANIFEST.MF0
-rw-r--r--wizards/com/sun/star/wizards/db/QueryMetaData.java293
-rw-r--r--wizards/com/sun/star/wizards/db/RecordParser.java306
-rw-r--r--wizards/com/sun/star/wizards/db/RelationController.java161
-rw-r--r--wizards/com/sun/star/wizards/db/SQLQueryComposer.java421
-rw-r--r--wizards/com/sun/star/wizards/db/TableDescriptor.java862
-rw-r--r--wizards/com/sun/star/wizards/db/TypeInspector.java465
-rw-r--r--wizards/com/sun/star/wizards/document/Control.java353
-rw-r--r--wizards/com/sun/star/wizards/document/DatabaseControl.java263
-rw-r--r--wizards/com/sun/star/wizards/document/FormHandler.java594
-rw-r--r--wizards/com/sun/star/wizards/document/GridControl.java93
-rw-r--r--wizards/com/sun/star/wizards/document/OfficeDocument.java457
-rw-r--r--wizards/com/sun/star/wizards/document/Shape.java142
-rw-r--r--wizards/com/sun/star/wizards/document/TimeStampControl.java172
-rw-r--r--wizards/com/sun/star/wizards/fax/CGFax.java60
-rw-r--r--wizards/com/sun/star/wizards/fax/CGFaxWizard.java38
-rw-r--r--wizards/com/sun/star/wizards/fax/CallWizard.java257
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxDocument.java212
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialog.java628
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogConst.java115
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogImpl.java873
-rw-r--r--wizards/com/sun/star/wizards/fax/FaxWizardDialogResources.java182
-rw-r--r--wizards/com/sun/star/wizards/fax/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/fax/makefile.mk62
-rw-r--r--wizards/com/sun/star/wizards/form/CallFormWizard.java239
-rw-r--r--wizards/com/sun/star/wizards/form/DataEntrySetter.java147
-rw-r--r--wizards/com/sun/star/wizards/form/FieldLinker.java312
-rw-r--r--wizards/com/sun/star/wizards/form/Finalizer.java142
-rw-r--r--wizards/com/sun/star/wizards/form/FormConfiguration.java241
-rw-r--r--wizards/com/sun/star/wizards/form/FormControlArranger.java731
-rw-r--r--wizards/com/sun/star/wizards/form/FormDocument.java594
-rw-r--r--wizards/com/sun/star/wizards/form/FormWizard.java513
-rw-r--r--wizards/com/sun/star/wizards/form/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/form/StyleApplier.java494
-rw-r--r--wizards/com/sun/star/wizards/form/UIControlArranger.java504
-rw-r--r--wizards/com/sun/star/wizards/form/XCallFormWizard.java37
-rw-r--r--wizards/com/sun/star/wizards/form/makefile.mk68
-rw-r--r--wizards/com/sun/star/wizards/letter/CGLetter.java66
-rw-r--r--wizards/com/sun/star/wizards/letter/CGLetterWizard.java39
-rw-r--r--wizards/com/sun/star/wizards/letter/CGPaperElementLocation.java40
-rw-r--r--wizards/com/sun/star/wizards/letter/CallWizard.java257
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterDocument.java330
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialog.java913
-rwxr-xr-xwizards/com/sun/star/wizards/letter/LetterWizardDialogConst.java93
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogEvents.java89
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogImpl.java1543
-rw-r--r--wizards/com/sun/star/wizards/letter/LetterWizardDialogResources.java207
-rw-r--r--wizards/com/sun/star/wizards/letter/LocaleCodes.java202
-rw-r--r--wizards/com/sun/star/wizards/letter/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/letter/makefile.mk65
-rw-r--r--wizards/com/sun/star/wizards/makefile.mk147
-rw-r--r--wizards/com/sun/star/wizards/query/CallQueryWizard.java240
-rw-r--r--wizards/com/sun/star/wizards/query/Finalizer.java209
-rw-r--r--wizards/com/sun/star/wizards/query/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/query/QuerySummary.java254
-rw-r--r--wizards/com/sun/star/wizards/query/QueryWizard.java506
-rw-r--r--wizards/com/sun/star/wizards/query/XCallQueryWizard.java38
-rw-r--r--wizards/com/sun/star/wizards/query/makefile.mk62
-rw-r--r--wizards/com/sun/star/wizards/report/CallReportWizard.java312
-rw-r--r--wizards/com/sun/star/wizards/report/DBColumn.java482
-rw-r--r--wizards/com/sun/star/wizards/report/Dataimport.java222
-rw-r--r--wizards/com/sun/star/wizards/report/GroupFieldHandler.java196
-rwxr-xr-xwizards/com/sun/star/wizards/report/IReportBuilderLayouter.java119
-rwxr-xr-xwizards/com/sun/star/wizards/report/IReportDefinitionReadAccess.java61
-rw-r--r--wizards/com/sun/star/wizards/report/IReportDocument.java262
-rw-r--r--wizards/com/sun/star/wizards/report/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/report/RecordTable.java99
-rw-r--r--wizards/com/sun/star/wizards/report/ReportFinalizer.java293
-rw-r--r--wizards/com/sun/star/wizards/report/ReportImplementationHelper.java68
-rw-r--r--wizards/com/sun/star/wizards/report/ReportLayouter.java341
-rw-r--r--wizards/com/sun/star/wizards/report/ReportTextDocument.java786
-rw-r--r--wizards/com/sun/star/wizards/report/ReportTextImplementation.java733
-rw-r--r--wizards/com/sun/star/wizards/report/ReportWizard.java996
-rw-r--r--wizards/com/sun/star/wizards/report/XCallReportWizard.java38
-rw-r--r--wizards/com/sun/star/wizards/report/delzip0
-rw-r--r--wizards/com/sun/star/wizards/report/makefile.mk68
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/Manifest.mf2
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/ReportBuilderImplementation.java893
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarSingleColumn.java105
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarThreeColumns.java62
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/ColumnarTwoColumns.java137
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/DesignTemplate.java333
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/InBlocksLabelsAbove.java166
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/InBlocksLabelsLeft.java133
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/LayoutConstants.java52
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/ReportBuilderLayouter.java1693
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/SectionEmptyObject.java55
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/SectionLabel.java74
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/SectionObject.java86
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/SectionTextField.java67
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/Tabular.java154
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/layout/makefile.mk71
-rw-r--r--wizards/com/sun/star/wizards/reportbuilder/makefile.mk55
-rw-r--r--wizards/com/sun/star/wizards/table/CGCategory.java88
-rw-r--r--wizards/com/sun/star/wizards/table/CGTable.java95
-rw-r--r--wizards/com/sun/star/wizards/table/CallTableWizard.java239
-rw-r--r--wizards/com/sun/star/wizards/table/FieldDescription.java176
-rw-r--r--wizards/com/sun/star/wizards/table/FieldFormatter.java433
-rw-r--r--wizards/com/sun/star/wizards/table/Finalizer.java364
-rw-r--r--wizards/com/sun/star/wizards/table/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/table/PrimaryKeyHandler.java460
-rw-r--r--wizards/com/sun/star/wizards/table/ScenarioSelector.java385
-rw-r--r--wizards/com/sun/star/wizards/table/TableWizard.java458
-rw-r--r--wizards/com/sun/star/wizards/table/XCallTableWizard.java38
-rw-r--r--wizards/com/sun/star/wizards/table/makefile.mk66
-rw-r--r--wizards/com/sun/star/wizards/text/TextDocument.java483
-rw-r--r--wizards/com/sun/star/wizards/text/TextFieldHandler.java348
-rw-r--r--wizards/com/sun/star/wizards/text/TextFrameHandler.java51
-rw-r--r--wizards/com/sun/star/wizards/text/TextSectionHandler.java271
-rw-r--r--wizards/com/sun/star/wizards/text/TextStyleHandler.java114
-rw-r--r--wizards/com/sun/star/wizards/text/TextTableHandler.java253
-rw-r--r--wizards/com/sun/star/wizards/text/ViewHandler.java115
-rw-r--r--wizards/com/sun/star/wizards/ui/AggregateComponent.java611
-rw-r--r--wizards/com/sun/star/wizards/ui/ButtonList.java908
-rw-r--r--wizards/com/sun/star/wizards/ui/CommandFieldSelection.java474
-rw-r--r--wizards/com/sun/star/wizards/ui/ControlScroller.java509
-rw-r--r--wizards/com/sun/star/wizards/ui/DBLimitedFieldSelection.java158
-rw-r--r--wizards/com/sun/star/wizards/ui/DocumentPreview.java186
-rw-r--r--wizards/com/sun/star/wizards/ui/FieldSelection.java697
-rw-r--r--wizards/com/sun/star/wizards/ui/FilterComponent.java1154
-rw-r--r--wizards/com/sun/star/wizards/ui/ImageList.java1133
-rwxr-xr-xwizards/com/sun/star/wizards/ui/PathSelection.java188
-rw-r--r--wizards/com/sun/star/wizards/ui/PeerConfig.java261
-rw-r--r--wizards/com/sun/star/wizards/ui/SortingComponent.java384
-rw-r--r--wizards/com/sun/star/wizards/ui/TitlesComponent.java249
-rw-r--r--wizards/com/sun/star/wizards/ui/UIConsts.java83
-rw-r--r--wizards/com/sun/star/wizards/ui/UnoDialog.java1148
-rw-r--r--wizards/com/sun/star/wizards/ui/UnoDialog2.java384
-rw-r--r--wizards/com/sun/star/wizards/ui/WizardDialog.java801
-rw-r--r--wizards/com/sun/star/wizards/ui/XCommandSelectionListener.java43
-rw-r--r--wizards/com/sun/star/wizards/ui/XCompletion.java39
-rw-r--r--wizards/com/sun/star/wizards/ui/XFieldSelectionListener.java53
-rwxr-xr-xwizards/com/sun/star/wizards/ui/XPathSelectionListener.java34
-rw-r--r--wizards/com/sun/star/wizards/ui/event/AbstractListener.java133
-rw-r--r--wizards/com/sun/star/wizards/ui/event/CommonListener.java167
-rw-r--r--wizards/com/sun/star/wizards/ui/event/DataAware.java365
-rw-r--r--wizards/com/sun/star/wizards/ui/event/DataAwareFields.java507
-rw-r--r--wizards/com/sun/star/wizards/ui/event/EventNames.java52
-rw-r--r--wizards/com/sun/star/wizards/ui/event/ListModelBinder.java209
-rw-r--r--wizards/com/sun/star/wizards/ui/event/MethodInvocation.java108
-rw-r--r--wizards/com/sun/star/wizards/ui/event/RadioDataAware.java101
-rw-r--r--wizards/com/sun/star/wizards/ui/event/SimpleDataAware.java84
-rw-r--r--wizards/com/sun/star/wizards/ui/event/Task.java204
-rw-r--r--wizards/com/sun/star/wizards/ui/event/TaskEvent.java65
-rw-r--r--wizards/com/sun/star/wizards/ui/event/TaskListener.java51
-rw-r--r--wizards/com/sun/star/wizards/ui/event/UnoDataAware.java265
-rw-r--r--wizards/com/sun/star/wizards/web/AbstractErrorHandler.java238
-rw-r--r--wizards/com/sun/star/wizards/web/BackgroundsDialog.java290
-rw-r--r--wizards/com/sun/star/wizards/web/CallWizard.java312
-rw-r--r--wizards/com/sun/star/wizards/web/ErrorHandler.java117
-rw-r--r--wizards/com/sun/star/wizards/web/ExtensionVerifier.java63
-rw-r--r--wizards/com/sun/star/wizards/web/FTPDialog.java751
-rw-r--r--wizards/com/sun/star/wizards/web/FTPDialogResources.java98
-rw-r--r--wizards/com/sun/star/wizards/web/IconsDialog.java208
-rw-r--r--wizards/com/sun/star/wizards/web/ImageListDialog.java282
-rw-r--r--wizards/com/sun/star/wizards/web/LogTaskListener.java103
-rw-r--r--wizards/com/sun/star/wizards/web/MANIFEST.MF2
-rw-r--r--wizards/com/sun/star/wizards/web/Process.java844
-rw-r--r--wizards/com/sun/star/wizards/web/ProcessErrorHandler.java92
-rw-r--r--wizards/com/sun/star/wizards/web/ProcessErrors.java48
-rw-r--r--wizards/com/sun/star/wizards/web/ProcessStatusRenderer.java68
-rw-r--r--wizards/com/sun/star/wizards/web/StatusDialog.java305
-rw-r--r--wizards/com/sun/star/wizards/web/StylePreview.java154
-rw-r--r--wizards/com/sun/star/wizards/web/TOCPreview.java120
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_Events.java1304
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_General.java392
-rw-r--r--wizards/com/sun/star/wizards/web/WWD_Startup.java984
-rw-r--r--wizards/com/sun/star/wizards/web/WWHID.java186
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizard.java72
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardConst.java73
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardDialog.java930
-rw-r--r--wizards/com/sun/star/wizards/web/WebWizardDialogResources.java349
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGArgument.java35
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGContent.java68
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGDesign.java91
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGDocument.java453
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGExporter.java57
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGFilter.java35
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGGeneralInfo.java92
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGIconSet.java35
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGImage.java45
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGLayout.java87
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGPublish.java94
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGSession.java110
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGSessionName.java38
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGSettings.java212
-rw-r--r--wizards/com/sun/star/wizards/web/data/CGStyle.java54
-rw-r--r--wizards/com/sun/star/wizards/web/data/ConfigSetItem.java55
-rw-r--r--wizards/com/sun/star/wizards/web/data/TypeDetection.java79
-rw-r--r--wizards/com/sun/star/wizards/web/data/makefile.mk74
-rw-r--r--wizards/com/sun/star/wizards/web/export/AbstractExporter.java192
-rw-r--r--wizards/com/sun/star/wizards/web/export/ConfiguredExporter.java98
-rw-r--r--wizards/com/sun/star/wizards/web/export/CopyExporter.java88
-rw-r--r--wizards/com/sun/star/wizards/web/export/Exporter.java61
-rw-r--r--wizards/com/sun/star/wizards/web/export/FilterExporter.java89
-rw-r--r--wizards/com/sun/star/wizards/web/export/ImpressHTMLExporter.java105
-rw-r--r--wizards/com/sun/star/wizards/web/export/makefile.mk63
-rw-r--r--wizards/com/sun/star/wizards/web/makefile.mk85
-rw-r--r--wizards/com/sun/star/wizards/web/status/ErrorLog.java69
-rw-r--r--wizards/com/sun/star/wizards/web/status/ErrorReporter.java46
-rw-r--r--wizards/com/sun/star/wizards/web/status/LogTaskListener.java87
-rw-r--r--wizards/com/sun/star/wizards/web/status/Task.java196
-rw-r--r--wizards/com/sun/star/wizards/web/status/TaskEvent.java71
-rw-r--r--wizards/com/sun/star/wizards/web/status/TaskListener.java58
-rw-r--r--wizards/prj/build.lst28
-rw-r--r--wizards/prj/d.lst15
-rw-r--r--wizards/source/config/delzip0
-rw-r--r--wizards/source/config/dialog.xlc5
-rw-r--r--wizards/source/config/makefile.mk52
-rw-r--r--wizards/source/config/script.xlc5
-rw-r--r--wizards/source/configshare/delzip0
-rw-r--r--wizards/source/configshare/dialog.xlc13
-rw-r--r--wizards/source/configshare/makefile.mk52
-rw-r--r--wizards/source/configshare/script.xlc13
-rw-r--r--wizards/source/depot/CommonLang.xba351
-rw-r--r--wizards/source/depot/Currency.xba178
-rw-r--r--wizards/source/depot/Depot.xba500
-rw-r--r--wizards/source/depot/Dialog2.xdl36
-rw-r--r--wizards/source/depot/Dialog3.xdl45
-rw-r--r--wizards/source/depot/Dialog4.xdl17
-rw-r--r--wizards/source/depot/Internet.xba339
-rw-r--r--wizards/source/depot/Lang_de.xba158
-rw-r--r--wizards/source/depot/Lang_en.xba158
-rw-r--r--wizards/source/depot/Lang_es.xba158
-rw-r--r--wizards/source/depot/Lang_fr.xba158
-rw-r--r--wizards/source/depot/Lang_it.xba158
-rw-r--r--wizards/source/depot/Lang_ja.xba158
-rw-r--r--wizards/source/depot/Lang_ko.xba158
-rw-r--r--wizards/source/depot/Lang_sv.xba157
-rw-r--r--wizards/source/depot/Lang_tw.xba158
-rw-r--r--wizards/source/depot/Lang_zh.xba158
-rw-r--r--wizards/source/depot/delzip1
-rw-r--r--wizards/source/depot/dialog.xlb7
-rw-r--r--wizards/source/depot/makefile.mk53
-rw-r--r--wizards/source/depot/script.xlb19
-rw-r--r--wizards/source/depot/tools.xba200
-rw-r--r--wizards/source/euro/AutoPilotRun.xba409
-rw-r--r--wizards/source/euro/Common.xba272
-rw-r--r--wizards/source/euro/ConvertRun.xba317
-rw-r--r--wizards/source/euro/DlgConvert.xdl77
-rw-r--r--wizards/source/euro/DlgPassword.xdl15
-rw-r--r--wizards/source/euro/Hard.xba229
-rw-r--r--wizards/source/euro/Init.xba604
-rw-r--r--wizards/source/euro/Protect.xba175
-rw-r--r--wizards/source/euro/Soft.xba239
-rw-r--r--wizards/source/euro/Writer.xba72
-rw-r--r--wizards/source/euro/delzip0
-rw-r--r--wizards/source/euro/dialog.xlb6
-rw-r--r--wizards/source/euro/euro.src476
-rw-r--r--wizards/source/euro/makefile.mk53
-rw-r--r--wizards/source/euro/script.xlb12
-rw-r--r--wizards/source/formwizard/DBMeta.xba330
-rw-r--r--wizards/source/formwizard/DlgFormDB.xdl102
-rw-r--r--wizards/source/formwizard/FormWizard.xba427
-rw-r--r--wizards/source/formwizard/Language.xba285
-rw-r--r--wizards/source/formwizard/Layouter.xba380
-rw-r--r--wizards/source/formwizard/dbwizres.src3518
-rw-r--r--wizards/source/formwizard/delzip0
-rw-r--r--wizards/source/formwizard/develop.xba533
-rw-r--r--wizards/source/formwizard/dialog.xlb5
-rw-r--r--wizards/source/formwizard/makefile.mk53
-rw-r--r--wizards/source/formwizard/script.xlb10
-rw-r--r--wizards/source/formwizard/tools.xba349
-rw-r--r--wizards/source/gimmicks/AutoText.xba97
-rw-r--r--wizards/source/gimmicks/ChangeAllChars.xba75
-rw-r--r--wizards/source/gimmicks/GetTexts.xba522
-rw-r--r--wizards/source/gimmicks/ReadDir.xba305
-rw-r--r--wizards/source/gimmicks/ReadFolderDlg.xdl22
-rw-r--r--wizards/source/gimmicks/UserfieldDlg.xdl49
-rw-r--r--wizards/source/gimmicks/Userfields.xba219
-rw-r--r--wizards/source/gimmicks/delzip0
-rw-r--r--wizards/source/gimmicks/dialog.xlb6
-rw-r--r--wizards/source/gimmicks/makefile.mk46
-rw-r--r--wizards/source/gimmicks/readdirs.dlgbin0 -> 3180 bytes
-rw-r--r--wizards/source/gimmicks/script.xlb9
-rw-r--r--wizards/source/imagelists/imagelists.src215
-rw-r--r--wizards/source/imagelists/makefile.mk50
-rw-r--r--wizards/source/importwizard/API.xba208
-rw-r--r--wizards/source/importwizard/DialogModul.xba657
-rw-r--r--wizards/source/importwizard/FilesModul.xba824
-rw-r--r--wizards/source/importwizard/ImportDialog.xdl96
-rw-r--r--wizards/source/importwizard/Language.xba157
-rw-r--r--wizards/source/importwizard/Main.xba290
-rw-r--r--wizards/source/importwizard/delzip0
-rw-r--r--wizards/source/importwizard/dialog.xlb5
-rw-r--r--wizards/source/importwizard/importwi.src674
-rw-r--r--wizards/source/importwizard/makefile.mk53
-rw-r--r--wizards/source/importwizard/script.xlb9
-rw-r--r--wizards/source/launcher/DicOOo.xba59
-rw-r--r--wizards/source/launcher/delzip0
-rw-r--r--wizards/source/launcher/dialog.xlb3
-rw-r--r--wizards/source/launcher/makefile.mk46
-rw-r--r--wizards/source/launcher/script.xlb5
-rw-r--r--wizards/source/schedule/BankHoliday.xba177
-rw-r--r--wizards/source/schedule/CalendarMain.xba302
-rw-r--r--wizards/source/schedule/CreateTable.xba133
-rw-r--r--wizards/source/schedule/DlgCalendar.xdl64
-rw-r--r--wizards/source/schedule/DlgControl.xba148
-rw-r--r--wizards/source/schedule/GermanHolidays.xba132
-rw-r--r--wizards/source/schedule/Language.xba95
-rw-r--r--wizards/source/schedule/LocalHolidays.xba642
-rw-r--r--wizards/source/schedule/OwnEvents.xba217
-rw-r--r--wizards/source/schedule/delzip0
-rw-r--r--wizards/source/schedule/dialog.xlb5
-rw-r--r--wizards/source/schedule/makefile.mk53
-rw-r--r--wizards/source/schedule/schedule.src357
-rw-r--r--wizards/source/schedule/script.xlb12
-rw-r--r--wizards/source/standard/Module1.xba7
-rw-r--r--wizards/source/standard/delzip0
-rw-r--r--wizards/source/standard/dialog.xlb3
-rw-r--r--wizards/source/standard/makefile.mk45
-rw-r--r--wizards/source/standard/script.xlb5
-rw-r--r--wizards/source/template/Autotext.xba173
-rw-r--r--wizards/source/template/Correspondence.xba286
-rw-r--r--wizards/source/template/DialogStyles.xdl15
-rw-r--r--wizards/source/template/ModuleAgenda.xba203
-rw-r--r--wizards/source/template/Samples.xba185
-rw-r--r--wizards/source/template/TemplateDialog.xdl29
-rw-r--r--wizards/source/template/delzip0
-rw-r--r--wizards/source/template/dialog.xlb7
-rw-r--r--wizards/source/template/makefile.mk54
-rw-r--r--wizards/source/template/script.xlb8
-rw-r--r--wizards/source/template/template.src358
-rw-r--r--wizards/source/tools/Debug.xba236
-rw-r--r--wizards/source/tools/DlgOverwriteAll.xdl17
-rw-r--r--wizards/source/tools/Listbox.xba353
-rw-r--r--wizards/source/tools/Misc.xba817
-rw-r--r--wizards/source/tools/ModuleControls.xba370
-rw-r--r--wizards/source/tools/Strings.xba452
-rw-r--r--wizards/source/tools/UCB.xba294
-rw-r--r--wizards/source/tools/delzip0
-rw-r--r--wizards/source/tools/dialog.xlb5
-rw-r--r--wizards/source/tools/makefile.mk45
-rw-r--r--wizards/source/tools/script.xlb10
-rw-r--r--wizards/source/tutorials/Functions.xba368
-rw-r--r--wizards/source/tutorials/RoadMap.xba117
-rw-r--r--wizards/source/tutorials/ShowInfoDialog.xba305
-rw-r--r--wizards/source/tutorials/TutorialClose.xba15
-rw-r--r--wizards/source/tutorials/TutorialCloseDialog.xdl14
-rw-r--r--wizards/source/tutorials/TutorialCreator.xba10
-rw-r--r--wizards/source/tutorials/TutorialOpen.xba96
-rw-r--r--wizards/source/tutorials/TutorialOpenDialog.xdl21
-rw-r--r--wizards/source/tutorials/TutorialsDialog.xdl26
-rw-r--r--wizards/source/tutorials/delzip0
-rw-r--r--wizards/source/tutorials/dialog.xlb7
-rw-r--r--wizards/source/tutorials/makefile.mk45
-rw-r--r--wizards/source/tutorials/script.xlb10
-rw-r--r--wizards/source/webwizard/Bullets.xba117
-rw-r--r--wizards/source/webwizard/Common.xba145
-rw-r--r--wizards/source/webwizard/HtmlAutoPilotBasic.xba436
-rw-r--r--wizards/source/webwizard/Language.xba84
-rw-r--r--wizards/source/webwizard/WebWzrd.xdl28
-rw-r--r--wizards/source/webwizard/delzip0
-rw-r--r--wizards/source/webwizard/dialog.xlb5
-rw-r--r--wizards/source/webwizard/makefile.mk53
-rw-r--r--wizards/source/webwizard/script.xlb8
-rw-r--r--wizards/source/webwizard/webwizar.src167
-rw-r--r--wizards/util/hidother.src1498
-rw-r--r--wizards/util/makefile.mk42
-rw-r--r--wizards/util/soffice.lnk248
-rw-r--r--wizards/util/target.pmk41
-rw-r--r--writerfilter/documentation/AddingTable.cxx56
-rw-r--r--writerfilter/documentation/KnownIssues.txt9
-rw-r--r--writerfilter/documentation/TODO13
-rw-r--r--writerfilter/documentation/doxygen/Doxyfile1237
-rw-r--r--writerfilter/documentation/doxygen/images/doctok.pngbin0 -> 7291 bytes
-rw-r--r--writerfilter/documentation/doxygen/images/ooxmlimportchain.pngbin0 -> 22605 bytes
-rw-r--r--writerfilter/documentation/sprms.txt10
-rw-r--r--writerfilter/documentation/tablesInDoc.txt135
-rw-r--r--writerfilter/inc/WriterFilterDllApi.hxx40
-rw-r--r--writerfilter/inc/dmapper/DomainMapper.hxx151
-rw-r--r--writerfilter/inc/doctok/WW8Document.hxx448
-rw-r--r--writerfilter/inc/ooxml/OOXMLDocument.hxx279
-rw-r--r--writerfilter/inc/resourcemodel/OutputWithDepth.hxx130
-rw-r--r--writerfilter/inc/resourcemodel/QNameToString.hxx88
-rw-r--r--writerfilter/inc/resourcemodel/SubSequence.hxx351
-rw-r--r--writerfilter/inc/resourcemodel/TableData.hxx399
-rw-r--r--writerfilter/inc/resourcemodel/TableManager.hxx663
-rw-r--r--writerfilter/inc/resourcemodel/TagLogger.hxx142
-rw-r--r--writerfilter/inc/resourcemodel/WW8ResourceModel.hxx398
-rw-r--r--writerfilter/inc/resourcemodel/exceptions.hxx60
-rw-r--r--writerfilter/inc/resourcemodel/util.hxx45
-rw-r--r--writerfilter/inc/rtftok/RTFInputSource.hxx42
-rw-r--r--writerfilter/inc/rtftok/RTFParseException.hxx42
-rw-r--r--writerfilter/inc/rtftok/RTFScanner.hxx65
-rw-r--r--writerfilter/inc/rtftok/RTFScannerHandler.hxx50
-rw-r--r--writerfilter/inc/writerfilter.mk29
-rw-r--r--writerfilter/prj/build.lst11
-rw-r--r--writerfilter/prj/d.lst7
-rw-r--r--writerfilter/qa/cppunittests/doctok/doctok.job1
-rw-r--r--writerfilter/qa/cppunittests/doctok/export.map7
-rw-r--r--writerfilter/qa/cppunittests/doctok/makefile.mk72
-rw-r--r--writerfilter/qa/cppunittests/doctok/testdoctok.cxx228
-rw-r--r--writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.cxx203
-rw-r--r--writerfilter/qa/cppunittests/odiapi/ExternalViewLogger.hxx90
-rw-r--r--writerfilter/qa/cppunittests/odiapi/FileLoggerImpl.cxx80
-rw-r--r--writerfilter/qa/cppunittests/odiapi/FileLoggerImpl.hxx57
-rw-r--r--writerfilter/qa/cppunittests/odiapi/export.exp1
-rw-r--r--writerfilter/qa/cppunittests/odiapi/export.map34
-rw-r--r--writerfilter/qa/cppunittests/odiapi/makefile.mk74
-rw-r--r--writerfilter/qa/cppunittests/odiapi/testCore.cxx172
-rw-r--r--writerfilter/qa/cppunittests/odiapi/testProperty.cxx682
-rw-r--r--writerfilter/qa/cppunittests/qname/export.map34
-rw-r--r--writerfilter/qa/cppunittests/qname/makefile.mk76
-rw-r--r--writerfilter/qa/cppunittests/qname/testQName.cxx7535
-rw-r--r--writerfilter/qa/cppunittests/sl/export.map34
-rw-r--r--writerfilter/qa/cppunittests/sl/helloworld.odt.flat.xml12
-rw-r--r--writerfilter/qa/cppunittests/sl/makefile.mk73
-rw-r--r--writerfilter/qa/cppunittests/sl/testOD_SL.cxx118
-rw-r--r--writerfilter/qa/cppunittests/xxml/export.map34
-rw-r--r--writerfilter/qa/cppunittests/xxml/makefile.mk75
-rw-r--r--writerfilter/qa/cppunittests/xxml/test.xml2
-rw-r--r--writerfilter/qa/cppunittests/xxml/testXXML.cxx184
-rw-r--r--writerfilter/qa/documents/Bookmark1.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/Bookmark1.docxbin0 -> 10729 bytes
-rw-r--r--writerfilter/qa/documents/CellAlignment.docbin0 -> 26624 bytes
-rw-r--r--writerfilter/qa/documents/Footnote.docbin0 -> 24064 bytes
-rw-r--r--writerfilter/qa/documents/Footnote.docxbin0 -> 11742 bytes
-rw-r--r--writerfilter/qa/documents/IndentedTable.docbin0 -> 27136 bytes
-rw-r--r--writerfilter/qa/documents/IndentedTable1.docxbin0 -> 10667 bytes
-rw-r--r--writerfilter/qa/documents/MergedTable.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/MergedTable.docxbin0 -> 10530 bytes
-rw-r--r--writerfilter/qa/documents/MergedTable_3_3.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/MergedTable_3_3.docxbin0 -> 10431 bytes
-rw-r--r--writerfilter/qa/documents/MultiMergedTable.docxbin0 -> 10641 bytes
-rw-r--r--writerfilter/qa/documents/MultiWrapping1.docxbin0 -> 21123 bytes
-rw-r--r--writerfilter/qa/documents/Picture1.docxbin0 -> 82050 bytes
-rw-r--r--writerfilter/qa/documents/RedlineTest.docxbin0 -> 10322 bytes
-rw-r--r--writerfilter/qa/documents/RowHeight.docbin0 -> 27648 bytes
-rw-r--r--writerfilter/qa/documents/RowHeight.docxbin0 -> 10504 bytes
-rw-r--r--writerfilter/qa/documents/StandardFontAlbertus.docbin0 -> 24064 bytes
-rw-r--r--writerfilter/qa/documents/Table5CellBorders.docbin0 -> 24064 bytes
-rw-r--r--writerfilter/qa/documents/Table5CellBorders.docxbin0 -> 10420 bytes
-rw-r--r--writerfilter/qa/documents/TableDifferentColumns.docbin0 -> 24064 bytes
-rw-r--r--writerfilter/qa/documents/TableDifferentColumns.docxbin0 -> 10440 bytes
-rw-r--r--writerfilter/qa/documents/TablePreferredWidth.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/TablePreferredWidth.docxbin0 -> 10393 bytes
-rw-r--r--writerfilter/qa/documents/TableRowProperties.docbin0 -> 25600 bytes
-rw-r--r--writerfilter/qa/documents/TableRowProperties.docxbin0 -> 10622 bytes
-rw-r--r--writerfilter/qa/documents/VertAlign1.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/WordOLE.docxbin0 -> 17324 bytes
-rw-r--r--writerfilter/qa/documents/align1.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/bookmark2.docbin0 -> 24576 bytes
-rw-r--r--writerfilter/qa/documents/docx/numbering/num-1.docxbin0 -> 11288 bytes
-rw-r--r--writerfilter/qa/documents/docx/pictures/Word DocumentOffice 2007 Format Sample6.docxbin0 -> 302738 bytes
-rw-r--r--writerfilter/qa/documents/docx/pictures/i97645 New example.docxbin0 -> 102969 bytes
-rw-r--r--writerfilter/qa/documents/docx/pictures/test-image.docxbin0 -> 24026 bytes
-rw-r--r--writerfilter/qa/documents/docx/pictures/test-image1.docxbin0 -> 61174 bytes
-rw-r--r--writerfilter/qa/documents/docx/pictures/test.docxbin0 -> 22007 bytes
-rw-r--r--writerfilter/qa/documents/docx/redlines/test-review-brk.docxbin0 -> 10621 bytes
-rw-r--r--writerfilter/qa/documents/docx/redlines/test-review-para.docxbin0 -> 10682 bytes
-rw-r--r--writerfilter/qa/documents/docx/redlines/test-review-stack.docxbin0 -> 10598 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/nested-tables.docxbin0 -> 11079 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/nested-tables2.docxbin0 -> 10521 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/nested-tables3.docxbin0 -> 11482 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/nested-tables4.docxbin0 -> 13956 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/nested-tables5.docxbin0 -> 10761 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/parentinvguid.docxbin0 -> 139481 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/table-styles.docxbin0 -> 13859 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/test-grid.docxbin0 -> 10978 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/test-paras.docxbin0 -> 13586 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/test-simple.docxbin0 -> 10527 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/two-tables.docxbin0 -> 10619 bytes
-rw-r--r--writerfilter/qa/documents/docx/tables/updatejpegprocessing.docxbin0 -> 24439 bytes
-rw-r--r--writerfilter/qa/documents/docx/test-page-format.docxbin0 -> 20846 bytes
-rwxr-xr-xwriterfilter/qa/documents/fields.docbin0 -> 34816 bytes
-rwxr-xr-xwriterfilter/qa/documents/fields.docx1
-rw-r--r--writerfilter/qa/documents/multimerge2.docx2
-rw-r--r--writerfilter/qa/documents/runProperties.docbin0 -> 25600 bytes
-rwxr-xr-xwriterfilter/qa/documents/runProperties.docxbin0 -> 11239 bytes
-rw-r--r--writerfilter/qa/documents/table_4_4.docbin0 -> 25600 bytes
-rw-r--r--writerfilter/qa/documents/table_4_4.docxbin0 -> 11131 bytes
-rw-r--r--writerfilter/qa/documents/table_style.docxbin0 -> 12649 bytes
-rw-r--r--writerfilter/source/dmapper/BorderHandler.cxx182
-rw-r--r--writerfilter/source/dmapper/BorderHandler.hxx81
-rw-r--r--writerfilter/source/dmapper/CellColorHandler.cxx235
-rw-r--r--writerfilter/source/dmapper/CellColorHandler.hxx64
-rw-r--r--writerfilter/source/dmapper/CellMarginHandler.cxx120
-rw-r--r--writerfilter/source/dmapper/CellMarginHandler.hxx69
-rw-r--r--writerfilter/source/dmapper/ConversionHelper.cxx639
-rw-r--r--writerfilter/source/dmapper/ConversionHelper.hxx64
-rw-r--r--writerfilter/source/dmapper/DomainMapper.cxx4877
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.cxx743
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableHandler.hxx97
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.cxx445
-rw-r--r--writerfilter/source/dmapper/DomainMapperTableManager.hxx121
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx3722
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx539
-rw-r--r--writerfilter/source/dmapper/FontTable.cxx677
-rw-r--r--writerfilter/source/dmapper/FontTable.hxx106
-rw-r--r--writerfilter/source/dmapper/GraphicHelpers.cxx223
-rw-r--r--writerfilter/source/dmapper/GraphicHelpers.hxx48
-rw-r--r--writerfilter/source/dmapper/GraphicImport.cxx2261
-rw-r--r--writerfilter/source/dmapper/GraphicImport.hxx128
-rw-r--r--writerfilter/source/dmapper/LFOTable.cxx606
-rw-r--r--writerfilter/source/dmapper/LFOTable.hxx65
-rw-r--r--writerfilter/source/dmapper/ListTable.cxx1300
-rw-r--r--writerfilter/source/dmapper/ListTable.hxx89
-rw-r--r--writerfilter/source/dmapper/MeasureHandler.cxx132
-rw-r--r--writerfilter/source/dmapper/MeasureHandler.hxx66
-rw-r--r--writerfilter/source/dmapper/ModelEventListener.cxx96
-rw-r--r--writerfilter/source/dmapper/ModelEventListener.hxx51
-rw-r--r--writerfilter/source/dmapper/OLEHandler.cxx246
-rw-r--r--writerfilter/source/dmapper/OLEHandler.hxx107
-rw-r--r--writerfilter/source/dmapper/PageBordersHandler.cxx121
-rw-r--r--writerfilter/source/dmapper/PageBordersHandler.hxx57
-rw-r--r--writerfilter/source/dmapper/PropertyIds.cxx345
-rw-r--r--writerfilter/source/dmapper/PropertyIds.hxx298
-rw-r--r--writerfilter/source/dmapper/PropertyMap.cxx1063
-rw-r--r--writerfilter/source/dmapper/PropertyMap.hxx548
-rw-r--r--writerfilter/source/dmapper/SectionColumnHandler.cxx118
-rw-r--r--writerfilter/source/dmapper/SectionColumnHandler.hxx76
-rw-r--r--writerfilter/source/dmapper/SettingsTable.cxx87
-rw-r--r--writerfilter/source/dmapper/SettingsTable.hxx46
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.cxx1718
-rw-r--r--writerfilter/source/dmapper/StyleSheetTable.hxx150
-rw-r--r--writerfilter/source/dmapper/TDefTableHandler.cxx323
-rw-r--r--writerfilter/source/dmapper/TDefTableHandler.hxx86
-rw-r--r--writerfilter/source/dmapper/TablePropertiesHandler.cxx217
-rw-r--r--writerfilter/source/dmapper/TablePropertiesHandler.hxx83
-rw-r--r--writerfilter/source/dmapper/TblStylePrHandler.cxx69
-rw-r--r--writerfilter/source/dmapper/TblStylePrHandler.hxx64
-rw-r--r--writerfilter/source/dmapper/ThemeTable.cxx196
-rw-r--r--writerfilter/source/dmapper/ThemeTable.hxx62
-rw-r--r--writerfilter/source/dmapper/makefile.mk73
-rw-r--r--writerfilter/source/doctok/Dff.cxx518
-rw-r--r--writerfilter/source/doctok/Dff.hxx153
-rw-r--r--writerfilter/source/doctok/DffImpl.cxx518
-rw-r--r--writerfilter/source/doctok/PLCF.hxx195
-rw-r--r--writerfilter/source/doctok/WW8Annotation.cxx37
-rw-r--r--writerfilter/source/doctok/WW8BinTable.hxx88
-rw-r--r--writerfilter/source/doctok/WW8BinTableImpl.cxx106
-rw-r--r--writerfilter/source/doctok/WW8BinTableImpl.hxx98
-rw-r--r--writerfilter/source/doctok/WW8Clx.cxx84
-rw-r--r--writerfilter/source/doctok/WW8Clx.hxx93
-rw-r--r--writerfilter/source/doctok/WW8CpAndFc.cxx130
-rw-r--r--writerfilter/source/doctok/WW8CpAndFc.hxx360
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.cxx2277
-rw-r--r--writerfilter/source/doctok/WW8DocumentImpl.hxx827
-rw-r--r--writerfilter/source/doctok/WW8FKP.hxx133
-rw-r--r--writerfilter/source/doctok/WW8FKPImpl.cxx240
-rw-r--r--writerfilter/source/doctok/WW8FKPImpl.hxx214
-rw-r--r--writerfilter/source/doctok/WW8FontTable.cxx118
-rw-r--r--writerfilter/source/doctok/WW8LFOLevel.cxx45
-rw-r--r--writerfilter/source/doctok/WW8LFOTable.cxx129
-rw-r--r--writerfilter/source/doctok/WW8ListTable.cxx153
-rw-r--r--writerfilter/source/doctok/WW8OutputWithDepth.cxx49
-rw-r--r--writerfilter/source/doctok/WW8OutputWithDepth.hxx53
-rw-r--r--writerfilter/source/doctok/WW8Picture.cxx208
-rw-r--r--writerfilter/source/doctok/WW8PieceTable.hxx175
-rw-r--r--writerfilter/source/doctok/WW8PieceTableImpl.cxx299
-rw-r--r--writerfilter/source/doctok/WW8PieceTableImpl.hxx75
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.cxx403
-rw-r--r--writerfilter/source/doctok/WW8PropertySetImpl.hxx144
-rw-r--r--writerfilter/source/doctok/WW8ResourceModelImpl.cxx501
-rw-r--r--writerfilter/source/doctok/WW8ResourceModelImpl.hxx318
-rw-r--r--writerfilter/source/doctok/WW8StreamImpl.cxx205
-rw-r--r--writerfilter/source/doctok/WW8StreamImpl.hxx65
-rw-r--r--writerfilter/source/doctok/WW8StructBase.cxx191
-rw-r--r--writerfilter/source/doctok/WW8StructBase.hxx316
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.cxx89
-rw-r--r--writerfilter/source/doctok/WW8Sttbf.hxx103
-rw-r--r--writerfilter/source/doctok/WW8StyleSheet.cxx211
-rw-r--r--writerfilter/source/doctok/WW8Table.cxx204
-rw-r--r--writerfilter/source/doctok/WW8Text.cxx76
-rw-r--r--writerfilter/source/doctok/WW8inc.xsl106
-rw-r--r--writerfilter/source/doctok/WW8sprms.xsl66
-rw-r--r--writerfilter/source/doctok/WW8xmi.xsl184
-rw-r--r--writerfilter/source/doctok/XNoteHelper.hxx143
-rw-r--r--writerfilter/source/doctok/XNoteHelperImpl.hxx168
-rw-r--r--writerfilter/source/doctok/analyzer.xsl39
-rw-r--r--writerfilter/source/doctok/doctokLoggers.hxx40
-rw-r--r--writerfilter/source/doctok/doctokutil.cxx53
-rw-r--r--writerfilter/source/doctok/escher.html207
-rw-r--r--writerfilter/source/doctok/escherdoc.xsl145
-rw-r--r--writerfilter/source/doctok/genqnametostr33
-rw-r--r--writerfilter/source/doctok/makefile.mk156
-rw-r--r--writerfilter/source/doctok/qnametostr.xsl41
-rw-r--r--writerfilter/source/doctok/qnametostrfooter2
-rw-r--r--writerfilter/source/doctok/qnametostrheader36
-rwxr-xr-xwriterfilter/source/doctok/replacesprmids517
-rw-r--r--writerfilter/source/doctok/resourceidmapper.xsl125
-rw-r--r--writerfilter/source/doctok/resourceidmapperback.xsl125
-rw-r--r--writerfilter/source/doctok/resourceids.xsl205
-rw-r--r--writerfilter/source/doctok/resources.xmi54986
-rw-r--r--writerfilter/source/doctok/resources.xsl915
-rw-r--r--writerfilter/source/doctok/resourcesimpl.xsl855
-rw-r--r--writerfilter/source/doctok/resourcetools.xsl566
-rw-r--r--writerfilter/source/doctok/sprmcodetostr.xsl39
-rw-r--r--writerfilter/source/doctok/sprmids.xsl82
-rw-r--r--writerfilter/source/doctok/tidyxmi.xsl120
-rw-r--r--writerfilter/source/doctok/util.hxx57
-rw-r--r--writerfilter/source/doctok/xmigen.el127
-rw-r--r--writerfilter/source/doctok/xmistat.xsl37
-rwxr-xr-xwriterfilter/source/doctok/xmitocpp34
-rw-r--r--writerfilter/source/filter/ImportFilter.cxx245
-rw-r--r--writerfilter/source/filter/WriterFilter.cxx79
-rw-r--r--writerfilter/source/filter/WriterFilter.hxx104
-rw-r--r--writerfilter/source/filter/WriterFilterDetection.cxx200
-rw-r--r--writerfilter/source/filter/WriterFilterDetection.hxx76
-rw-r--r--writerfilter/source/filter/makefile.mk51
-rw-r--r--writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/wordnetaux.xsdbin0 -> 48598 bytes
-rw-r--r--writerfilter/source/odiapi/qname/resource/office2003/WordprocessingML Schemas/xsdlib.xsdbin0 -> 7918 bytes
-rw-r--r--writerfilter/source/odiapi/qname/resource/rdfxml.rng453
-rw-r--r--writerfilter/source/odiapi/qname/resource/rng.rng331
-rw-r--r--writerfilter/source/odiapi/qname/resource/rtf.rtfs1385
-rw-r--r--writerfilter/source/ooxml/Handler.cxx348
-rw-r--r--writerfilter/source/ooxml/Handler.hxx145
-rw-r--r--writerfilter/source/ooxml/OOXMLBinaryObjectReference.cxx86
-rw-r--r--writerfilter/source/ooxml/OOXMLBinaryObjectReference.hxx55
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.cxx386
-rw-r--r--writerfilter/source/ooxml/OOXMLDocumentImpl.hxx112
-rw-r--r--writerfilter/source/ooxml/OOXMLFastContextHandler.cxx2436
-rw-r--r--writerfilter/source/ooxml/OOXMLFastContextHandler.hxx696
-rw-r--r--writerfilter/source/ooxml/OOXMLFastDocumentHandler.cxx225
-rw-r--r--writerfilter/source/ooxml/OOXMLFastDocumentHandler.hxx114
-rw-r--r--writerfilter/source/ooxml/OOXMLFastHelper.hxx221
-rw-r--r--writerfilter/source/ooxml/OOXMLFastTokenHandler.cxx119
-rw-r--r--writerfilter/source/ooxml/OOXMLFastTokenHandler.hxx65
-rw-r--r--writerfilter/source/ooxml/OOXMLParserState.cxx275
-rw-r--r--writerfilter/source/ooxml/OOXMLParserState.hxx102
-rw-r--r--writerfilter/source/ooxml/OOXMLPropertySet.hxx82
-rw-r--r--writerfilter/source/ooxml/OOXMLPropertySetImpl.cxx777
-rw-r--r--writerfilter/source/ooxml/OOXMLPropertySetImpl.hxx298
-rw-r--r--writerfilter/source/ooxml/OOXMLStreamImpl.cxx333
-rw-r--r--writerfilter/source/ooxml/OOXMLStreamImpl.hxx95
-rw-r--r--writerfilter/source/ooxml/RefAndPointer.hxx119
-rw-r--r--writerfilter/source/ooxml/analyzer.xsl46
-rw-r--r--writerfilter/source/ooxml/checkmodel.xsl167
-rw-r--r--writerfilter/source/ooxml/dummyannotate.xsl845
-rw-r--r--writerfilter/source/ooxml/fastresources.xsl116
-rw-r--r--writerfilter/source/ooxml/fastresources_.xsl99
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-baseStylesheet.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-baseTypes.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-chartDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-documentProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-graphicalObject.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DCamera.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DLighting.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DScene.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shape3DStyles.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeEffects.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeGeometry.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeLineProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-shapeProperties.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-styleDefaults.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-stylesheet.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-textCharacter.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_dml-wordprocessingDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_shared-math.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_shared-relationshipReference.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_sml-customXmlMappings.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-main.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-officeDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_vml-wordprocessingDrawing.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresources_wml.xsl98
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl.xsl95
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-baseStylesheet.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-baseTypes.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-chartDrawing.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-documentProperties.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-graphicalObject.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DCamera.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DLighting.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DScene.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shape3DStyles.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeEffects.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeGeometry.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeLineProperties.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-shapeProperties.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-styleDefaults.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-stylesheet.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-textCharacter.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_dml-wordprocessingDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_shared-math.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_shared-relationshipReference.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_sml-customXmlMappings.xsl93
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-main.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-officeDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_vml-wordprocessingDrawing.xsl94
-rw-r--r--writerfilter/source/ooxml/fastresourcesimpl_wml.xsl94
-rw-r--r--writerfilter/source/ooxml/fasttokens.xsl95
-rw-r--r--writerfilter/source/ooxml/fasttokensimpl.xsl77
-rw-r--r--writerfilter/source/ooxml/gperffasttokenhandler.xsl72
-rw-r--r--writerfilter/source/ooxml/makefile.mk271
-rw-r--r--writerfilter/source/ooxml/model.xml23181
-rwxr-xr-xwriterfilter/source/ooxml/modelcleanup3
-rw-r--r--writerfilter/source/ooxml/modelcleanup.xsl196
-rw-r--r--writerfilter/source/ooxml/modelpreprocess.xsl224
-rw-r--r--writerfilter/source/ooxml/namespace_preprocess.pl65
-rw-r--r--writerfilter/source/ooxml/namespaceids.xsl89
-rw-r--r--writerfilter/source/ooxml/ooxmlLoggers.hxx38
-rw-r--r--writerfilter/source/ooxml/qnametostr.xsl73
-rw-r--r--writerfilter/source/ooxml/resourceids.xsl85
-rw-r--r--writerfilter/source/ooxml/resourcestools.xsl2338
-rwxr-xr-xwriterfilter/source/ooxml/rngtocxx32
-rw-r--r--writerfilter/source/ooxml/tokenxmlfooter1
-rw-r--r--writerfilter/source/ooxml/tokenxmlheader1
-rw-r--r--writerfilter/source/ooxml/values.xsl88
-rw-r--r--writerfilter/source/ooxml/valuesimpl.xsl85
-rw-r--r--writerfilter/source/resourcemodel/TagLogger.cxx331
-rw-r--r--writerfilter/source/resourcemodel/WW8Analyzer.cxx216
-rw-r--r--writerfilter/source/resourcemodel/WW8Analyzer.hxx99
-rw-r--r--writerfilter/source/resourcemodel/analyzerfooter4
-rw-r--r--writerfilter/source/resourcemodel/analyzerheader36
-rwxr-xr-xwriterfilter/source/resourcemodel/genqnametostr35
-rw-r--r--writerfilter/source/resourcemodel/makefile.mk189
-rw-r--r--writerfilter/source/resourcemodel/qnametostrfooter24
-rw-r--r--writerfilter/source/resourcemodel/qnametostrheader57
-rw-r--r--writerfilter/source/resourcemodel/resourcemodel.cxx569
-rw-r--r--writerfilter/source/resourcemodel/resourcemodel.hxx112
-rw-r--r--writerfilter/source/resourcemodel/sprmcodetostrfooter1
-rw-r--r--writerfilter/source/resourcemodel/sprmcodetostrheader50
-rw-r--r--writerfilter/source/resourcemodel/util.cxx400
-rw-r--r--writerfilter/source/rtftok/FlexLexer.h149
-rw-r--r--writerfilter/source/rtftok/RTFParseException.cxx33
-rw-r--r--writerfilter/source/rtftok/RTFScanner.lex333
-rw-r--r--writerfilter/source/rtftok/RTFScanner.skl1537
-rw-r--r--writerfilter/source/rtftok/makefile.mk82
-rw-r--r--writerfilter/unocomponent/component.cxx81
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.cxx293
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokAnalyzeService.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokTestService.cxx149
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/DocTokTestService.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/doctok/makefile.mk44
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/OOXMLAnalyzeService.cxx291
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/OOXMLAnalyzeService.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.cxx170
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/OOXMLTestService.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/ooxml/makefile.mk58
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.cxx455
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/ScannerTestService.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/XMLScanner.cxx333
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/XMLScanner.hxx70
-rw-r--r--writerfilter/unocomponent/debugservices/rtftok/makefile.mk45
-rw-r--r--writerfilter/unocomponent/exports.dxp3
-rw-r--r--writerfilter/unocomponent/makefile.mk90
-rw-r--r--writerfilter/util/exports.map9
-rw-r--r--writerfilter/util/makefile.mk78
-rw-r--r--writerperfect/prj/build.lst6
-rw-r--r--writerperfect/prj/d.lst4
-rw-r--r--writerperfect/source/filter/DocumentCollector.cxx931
-rw-r--r--writerperfect/source/filter/DocumentCollector.hxx201
-rw-r--r--writerperfect/source/filter/DocumentElement.cxx102
-rw-r--r--writerperfect/source/filter/DocumentElement.hxx99
-rw-r--r--writerperfect/source/filter/DocumentHandler.cxx83
-rw-r--r--writerperfect/source/filter/DocumentHandler.hxx31
-rw-r--r--writerperfect/source/filter/FilterInternal.hxx31
-rw-r--r--writerperfect/source/filter/FontStyle.cxx50
-rw-r--r--writerperfect/source/filter/FontStyle.hxx52
-rw-r--r--writerperfect/source/filter/ListStyle.cxx161
-rw-r--r--writerperfect/source/filter/ListStyle.hxx101
-rw-r--r--writerperfect/source/filter/PageSpan.cxx173
-rw-r--r--writerperfect/source/filter/PageSpan.hxx65
-rw-r--r--writerperfect/source/filter/SectionStyle.cxx86
-rw-r--r--writerperfect/source/filter/SectionStyle.hxx52
-rw-r--r--writerperfect/source/filter/Style.hxx63
-rw-r--r--writerperfect/source/filter/TableStyle.cxx163
-rw-r--r--writerperfect/source/filter/TableStyle.hxx80
-rw-r--r--writerperfect/source/filter/TextRunStyle.cxx162
-rw-r--r--writerperfect/source/filter/TextRunStyle.hxx69
-rw-r--r--writerperfect/source/filter/WriterProperties.hxx36
-rw-r--r--writerperfect/source/filter/makefile.mk27
-rw-r--r--writerperfect/source/stream/WPXSvStream.cxx174
-rw-r--r--writerperfect/source/stream/WPXSvStream.h47
-rw-r--r--writerperfect/source/stream/makefile.mk18
-rw-r--r--writerperfect/source/wpdimp/WordPerfectCollector.cxx53
-rw-r--r--writerperfect/source/wpdimp/WordPerfectCollector.hxx41
-rw-r--r--writerperfect/source/wpdimp/WordPerfectImportFilter.cxx296
-rw-r--r--writerperfect/source/wpdimp/WordPerfectImportFilter.hxx115
-rw-r--r--writerperfect/source/wpdimp/makefile.mk21
-rw-r--r--writerperfect/source/wpdimp/wpft_genericfilter.cxx98
-rw-r--r--writerperfect/util/makefile.mk45
-rw-r--r--writerperfect/util/wpft.map8
-rw-r--r--x11_extensions/inc/Xrandr.h151
-rw-r--r--x11_extensions/inc/Xrender.h528
-rw-r--r--x11_extensions/inc/randr.h74
-rw-r--r--x11_extensions/inc/randrproto.h209
-rw-r--r--x11_extensions/inc/render.h189
-rw-r--r--x11_extensions/inc/renderproto.h663
-rw-r--r--x11_extensions/prj/build.lst3
-rw-r--r--x11_extensions/prj/d.lst5
-rwxr-xr-xxmerge/JAVA_TREE_IS_DEPRECATED1
-rwxr-xr-xxmerge/README.TXT9
-rw-r--r--xmerge/build.xml88
-rw-r--r--xmerge/inc/makefile.mk47
-rw-r--r--xmerge/inc/pch/precompiled_xmerge.cxx29
-rw-r--r--xmerge/inc/pch/precompiled_xmerge.hxx32
-rw-r--r--xmerge/java/build.xml147
-rw-r--r--xmerge/java/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/Convert.java330
-rw-r--r--xmerge/java/org/openoffice/xmerge/ConvertData.java117
-rw-r--r--xmerge/java/org/openoffice/xmerge/ConvertException.java45
-rw-r--r--xmerge/java/org/openoffice/xmerge/ConverterCapabilities.java67
-rw-r--r--xmerge/java/org/openoffice/xmerge/ConverterFactory.java124
-rw-r--r--xmerge/java/org/openoffice/xmerge/Document.java99
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentDeserializer.java65
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentDeserializer2.java71
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentDeserializerFactory.java65
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentMerger.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentMergerFactory.java63
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentSerializer.java67
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentSerializer2.java73
-rw-r--r--xmerge/java/org/openoffice/xmerge/DocumentSerializerFactory.java63
-rw-r--r--xmerge/java/org/openoffice/xmerge/MergeException.java45
-rw-r--r--xmerge/java/org/openoffice/xmerge/PluginFactory.java193
-rw-r--r--xmerge/java/org/openoffice/xmerge/Version.java88
-rw-r--r--xmerge/java/org/openoffice/xmerge/build.xml142
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/dom/DOMDocument.java382
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/dom/build.xml127
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/dom/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/dom/package.html53
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/PalmDB.java469
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/PalmDocument.java180
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/PdbDecoder.java235
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/PdbEncoder.java196
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/PdbHeader.java162
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/PdbUtil.java106
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/Record.java216
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/build.xml130
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/package.html140
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/README50
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/bin/README6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/bin/rd24
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/bin/spose108
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/bin/verify_sane.pl108
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/bin/qa_comparator.pl255
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/bin/qa_test_driver.pl844
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/bin/run-convtest536
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/env/master.env85
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/lists/master.list55
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_animatedgif.pdbbin0 -> 208 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_bolddoc.pdbbin0 -> 243 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_bookmarks.pdbbin0 -> 648 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_bulletorderedlist.pdbbin0 -> 237 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_emptydoc.pdbbin0 -> 111 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_firstlineindent.pdbbin0 -> 254 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_fontsize.pdbbin0 -> 261 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading.pdbbin0 -> 159 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading1.pdbbin0 -> 160 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading2.pdbbin0 -> 150 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_hyperlink.pdbbin0 -> 304 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_justified.pdbbin0 -> 169 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_linebreaks.pdbbin0 -> 362 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_linespacing.pdbbin0 -> 435 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_numberorderedlist.pdbbin0 -> 232 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_pagebreak.pdbbin0 -> 174 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_paragraph.pdbbin0 -> 240 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple01.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple02.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple03.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple04.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple05.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_standard.pdbbin0 -> 158 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_subscript.pdbbin0 -> 161 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_superscript.pdbbin0 -> 164 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_symbols.pdbbin0 -> 190 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_tab.pdbbin0 -> 240 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_table.pdbbin0 -> 165 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_textspan.pdbbin0 -> 364 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_unorderedlist.pdbbin0 -> 428 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/a_wordwrap.pdbbin0 -> 221 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet1.pdbbin0 -> 670 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet1.pdbbin0 -> 1534 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet1.pdbbin0 -> 558 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet1.pdbbin0 -> 670 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet1.pdbbin0 -> 282 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet1.pdbbin0 -> 614 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet1.pdbbin0 -> 324 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet1.pdbbin0 -> 651 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet1.pdbbin0 -> 631 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet1.pdbbin0 -> 455 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet1.pdbbin0 -> 485 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet1.pdbbin0 -> 475 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet1.pdbbin0 -> 250 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet1.pdbbin0 -> 573 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet1.pdbbin0 -> 3957 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet1.pdbbin0 -> 1086 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet1.pdbbin0 -> 958 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet1.pdbbin0 -> 608 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet2.pdbbin0 -> 238 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet1.pdbbin0 -> 779 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet2.pdbbin0 -> 373 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet3.pdbbin0 -> 371 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet1.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet1.pdbbin0 -> 353 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet1.pdbbin0 -> 518 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet1.pdbbin0 -> 683 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet1.pdbbin0 -> 651 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet1.pdbbin0 -> 675 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet1.pdbbin0 -> 250 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet2.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet3.pdbbin0 -> 188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/Blocklist.dtd34
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_animatedgif.sxwbin0 -> 52952 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_bolddoc.sxwbin0 -> 5500 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_bookmarks.sxwbin0 -> 6047 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_bulletorderedlist.sxwbin0 -> 6347 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_emptydoc.sxwbin0 -> 5701 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_firstlineindent.sxwbin0 -> 5519 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_fontsize.sxwbin0 -> 6130 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_heading.sxwbin0 -> 5518 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_heading1.sxwbin0 -> 5640 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_heading2.sxwbin0 -> 5964 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_hyperlink.sxwbin0 -> 5514 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_justified.sxwbin0 -> 6088 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_linebreaks.sxwbin0 -> 6269 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_linespacing.sxwbin0 -> 5618 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_numberorderedlist.sxwbin0 -> 6188 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_pagebreak.sxwbin0 -> 5534 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_paragraph.sxwbin0 -> 5914 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_simple01.sxwbin0 -> 5823 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_simple02.sxwbin0 -> 5821 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_simple03.sxwbin0 -> 5817 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_simple04.sxwbin0 -> 5792 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_simple05.sxwbin0 -> 5791 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_standard.sxwbin0 -> 5797 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_subscript.sxwbin0 -> 5798 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_superscript.sxwbin0 -> 5799 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_symbols.sxwbin0 -> 4916 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_tab.sxwbin0 -> 5731 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_table.sxwbin0 -> 6011 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_textspan.sxwbin0 -> 5958 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_unorderedlist.sxwbin0 -> 6817 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/a_wordwrap.sxwbin0 -> 5363 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_addition.sxcbin0 -> 5829 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_alignment.sxcbin0 -> 6383 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_backwardrange.sxcbin0 -> 5995 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_basic.sxcbin0 -> 5830 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_boolean.sxcbin0 -> 6066 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_cellcurrencyalue.sxcbin0 -> 6776 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_cellpercentvalue.sxcbin0 -> 6318 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_cellstringvalue.sxcbin0 -> 6009 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_columnswidth.sxcbin0 -> 6127 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_cyclic.sxcbin0 -> 6005 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_dividefloating.sxcbin0 -> 6315 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_forwardrange.sxcbin0 -> 6058 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_insertimage.sxcbin0 -> 40476 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_invalidcellref.sxcbin0 -> 5838 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_largerange.sxcbin0 -> 6306 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_listrange.sxcbin0 -> 6162 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_mathematical.sxcbin0 -> 6026 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_protection.sxcbin0 -> 6839 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_sheetreference.sxcbin0 -> 6173 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_simple01.sxcbin0 -> 5080 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_simple02.sxcbin0 -> 4962 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_simple03.sxcbin0 -> 4995 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_simple04.sxcbin0 -> 5007 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_smallrange.sxcbin0 -> 5924 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_styles.sxcbin0 -> 6531 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/c_textimage.sxcbin0 -> 40702 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/chart.mod228
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/datastyl.mod168
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/drawing.mod837
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/dtypes.mod143
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/form.mod308
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/meta.mod90
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/nmspace.mod50
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/office.dtd54
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/office.mod234
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/script.mod51
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/settings.mod49
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/style.mod391
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/table.mod493
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/results/baseline/xml-base/text.mod1099
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_animatedgif.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_bolddoc.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_bookmarks.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_bulletorderedlist.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_emptydoc-mod.infile9
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_emptydoc.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_firstlineindent.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_fontsize.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_heading.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_heading1.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_heading2.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_hyperlink.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_justified.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_linebreaks.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_linespacing.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_numberorderedlist.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_pagebreak.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_paragraph.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_simple01.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_simple02.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_simple03.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_simple04.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_simple05.infile5
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_standard.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_subscript.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_superscript.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_symbols.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_tab.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_table.infile5
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_textspan.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_unorderedlist.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/a_wordwrap.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_addition01-mod.infile5
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_alignment.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_backwardrange-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_basic-mod.infile5
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_bob-mod.infile5
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_boolean-mod.infile6
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_cellcurrencyvalue.infile5
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_cellpercentvalue-mod.infile8
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_cellstringvalue-mod.infile10
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_columnswidth-mod.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_cyclic-mod.infile12
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_dividefloating-mod.infile8
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_forwardrange-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_insertimage.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_insertrow-mod.infile13
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_invalidcellref-mod.infile10
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_largerange-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_listrange-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_mathematical-mod.infile10
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_multi_boolean.infile5
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_protection-mod01.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_sheetreference-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_simple01-mod.infile13
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_simple02-mod.infile13
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_simple03-mod.infile22
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_simple04-mod.infile14
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_smallrange-mod.infile6
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_styles.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/c_textimage.infile12
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/empty01.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/hyperlink01.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/image01.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/simple01.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/simple02.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/simple03.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/simple04.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/simple05.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/table01.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/table02.infile3
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/table03.infile4
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/table04.infile4
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_animatedgif.sxwbin0 -> 53136 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_bolddoc.sxwbin0 -> 5664 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_bookmarks.sxwbin0 -> 6227 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_bulletorderedlist.sxwbin0 -> 6347 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_emptydoc-mod.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_emptydoc.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_firstlineindent.sxwbin0 -> 5683 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_fontsize.sxwbin0 -> 6315 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_heading.sxwbin0 -> 5700 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_heading1.sxwbin0 -> 5819 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_heading2.sxwbin0 -> 6142 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_hyperlink.sxwbin0 -> 5673 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_justified.sxwbin0 -> 6269 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_linebreaks.sxwbin0 -> 6444 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_linespacing.sxwbin0 -> 5783 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_numberorderedlist.sxwbin0 -> 6366 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_pagebreak.sxwbin0 -> 5698 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_paragraph.sxwbin0 -> 6093 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_simple01.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_simple02.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_simple03.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_simple04.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_simple05.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_standard.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_subscript.sxwbin0 -> 5980 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_superscript.sxwbin0 -> 5981 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_symbols.sxwbin0 -> 5106 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_tab.sxwbin0 -> 5912 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_table.sxwbin0 -> 6181 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_textspan.sxwbin0 -> 6142 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_unorderedlist.sxwbin0 -> 6817 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/a_wordwrap.sxwbin0 -> 5524 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_addition.sxcbin0 -> 6020 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_alignment.sxcbin0 -> 6535 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_backwardrange.sxcbin0 -> 6204 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_basic.sxcbin0 -> 6020 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_boolean.sxcbin0 -> 6239 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_cellcurrencyalue.sxcbin0 -> 6776 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_cellpercentvalue.sxcbin0 -> 6495 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_cellstringvalue.sxcbin0 -> 6172 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_columnswidth.sxcbin0 -> 6287 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_cyclic.sxcbin0 -> 6005 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_dividefloating.sxcbin0 -> 6315 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_forwardrange.sxcbin0 -> 6259 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_insertimage.sxcbin0 -> 40702 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_insertrow.sxcbin0 -> 5157 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_invalidcellref.sxcbin0 -> 6035 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_largerange.sxcbin0 -> 6487 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_listrange.sxcbin0 -> 6370 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_mathematical.sxcbin0 -> 6351 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_multi_boolean.sxcbin0 -> 5338 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_protection.sxcbin0 -> 6839 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_sheetreference.sxcbin0 -> 6358 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_simple01.sxcbin0 -> 5176 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_simple02.sxcbin0 -> 4999 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_simple03.sxcbin0 -> 5044 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_simple04.sxcbin0 -> 5083 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_smallrange.sxcbin0 -> 6129 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_styles.sxcbin0 -> 6531 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/c_textimage.sxcbin0 -> 40702 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/empty01.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/hyperlink01.sxwbin0 -> 6088 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/image01.sxwbin0 -> 53136 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/simple01.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/simple02.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/simple03.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/simple04.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/simple05.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/table01.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/table02.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/table03.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa-wrapper/testcases/xml-orig/table04.sxwbin0 -> 6443 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/bin/mysplit.pl56
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/bin/tappen.pl59
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/bin/template.pl53
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/bin/test_driver.pl783
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/OfficeZip.java241
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/PDBDecoder.java135
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/PDBHeader.java154
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/PDBUtil.java101
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/PalmDB.java350
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/README10
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/Record.java167
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/SimplePdbCompare.java94
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/XmlDiff.java465
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/XmlDiff.properties13
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/XmlWrapper.java153
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/XmlZipExtract.java146
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/comparator.pl245
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/Blocklist.dtd34
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/chart.mod228
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/datastyl.mod168
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/drawing.mod837
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/dtypes.mod143
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/form.mod308
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/meta.mod90
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/nmspace.mod50
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/office.dtd54
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/office.mod234
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/script.mod51
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/settings.mod49
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/style.mod391
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/table.mod493
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/dtd/text.mod1099
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/comparator/pdbcomparison.java542
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/docs/Doc_descriptions.sxcbin0 -> 8347 bytes
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/docs/Spreadsheet_descriptions.csv39
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/docs/Spreadsheet_descriptions.sxcbin0 -> 5752 bytes
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/lib/converterlib.pm1172
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/palm-session/session8
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/palm/palmtests/qa/test_spec/convertor_test_spec.html2274
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedBinaryObject.java128
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedObject.java117
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedXMLObject.java298
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/OfficeConstants.java439
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocument.java1234
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocumentException.java131
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/OfficeZip.java458
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/ParaStyle.java607
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/Style.java235
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/StyleCatalog.java397
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/StyleTest01.xml169
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/TextStyle.java684
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/build.xml137
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/package.html39
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/BookSettings.java229
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/CellStyle.java515
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnRowInfo.java195
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnStyle.java306
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/DocumentMergerImpl.java199
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/Format.java477
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/NameDefinition.java216
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/RowStyle.java305
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SheetSettings.java374
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetDecoder.java181
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetEncoder.java131
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcConstants.java50
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocument.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocumentDeserializer.java794
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocumentSerializer.java992
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcPluginFactory.java83
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/build.xml143
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/ConverterCapabilitiesImpl.java113
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcConstants.java45
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcDataString.java545
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcDecoder.java744
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcEncoder.java582
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/PluginFactoryImpl.java129
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/SxcDocumentDeserializerImpl.java138
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/SxcDocumentSerializerImpl.java141
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/build.xml135
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/converter.xml43
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/package.html51
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/package.html38
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/ConverterCapabilitiesImpl.java113
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PluginFactoryImpl.java130
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelConstants.java68
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelDecoder.java446
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelEncoder.java295
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/SxcDocumentDeserializerImpl.java129
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/SxcDocumentSerializerImpl.java136
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/build.xml132
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/converter.xml43
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/package.html41
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BIFFRecord.java62
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BeginningOfFile.java116
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BlankCell.java116
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoolErrCell.java127
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoundSheet.java137
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CellValue.java138
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CodePage.java108
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ColInfo.java158
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefColWidth.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefRowHeight.java97
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefinedName.java227
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Eof.java72
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ExtendedFormat.java385
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FloatNumber.java121
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FontDescription.java287
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Formula.java263
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/LabelCell.java140
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/NumberFormat.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Pane.java219
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Row.java139
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Selection.java143
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/StringValue.java125
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/UnsupportedFormulaException.java43
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window1.java116
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window2.java155
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Workbook.java540
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Worksheet.java320
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/build.xml152
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaCompiler.java272
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaHelper.java153
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParser.java564
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParsingException.java46
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FunctionLookup.java207
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/OperandLookup.java65
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/OperatorLookup.java76
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/ParseToken.java43
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/PrecedenceTable.java86
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/SymbolLookup.java82
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/Token.java154
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenConstants.java206
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java498
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenEncoder.java561
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenFactory.java123
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/UnsupportedFunctionException.java41
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/build.xml141
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/package.html40
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/package.html45
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/SxwDocument.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/SxwPluginFactory.java78
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocConstants.java69
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocDecoder.java304
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocEncoder.java214
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentDeserializerImpl.java313
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentMergerImpl.java99
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentSerializerImpl.java532
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/PluginFactoryImpl.java141
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/build.xml134
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/converter.xml43
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/package.html237
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/build.xml128
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/package.html38
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDescriptor.java236
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDeserializerImpl.java298
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentMergerImpl.java99
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentSerializerImpl.java437
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/Paragraph.java859
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/ParagraphTextSegment.java205
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PluginFactoryImpl.java165
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordConstants.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordDocument.java408
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/build.xml136
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/converter.xml47
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/package.html56
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DOCConstants.java61
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentDeserializerImpl.java565
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentMergerImpl.java99
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentSerializerImpl.java536
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/PluginFactoryImpl.java149
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WSDecoder.java352
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WSEncoder.java212
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/Wse.java100
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseColorTable.java247
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseFontTable.java218
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseHeader.java145
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WsePara.java299
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseTextRun.java324
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/build.xml141
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/converter.xml17
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/textRecord.java115
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/util.java68
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java254
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentMergerImpl.java99
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentSerializerImpl.java309
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/GenericOfficeDocument.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java204
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/XsltPlugin.properties36
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/build.xml136
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/converter.xml50
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/docbookfilter/DBFilter.java570
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/docbookfilter/Manifest1
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/docbookfilter/Readme.txt14
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/docbookfilter/makefile.mk60
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/docbooktosoffheadings.xsl1725
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/literallayout.java135
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/sofftodocbookheadings_article.xsl848
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/docbook/sofftodocbookheadings_chapter.xsl858
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/htmltosoff.xsl174
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/package.html65
-rw-r--r--xmerge/java/org/openoffice/xmerge/converter/xml/xslt/sofftohtml.xsl28
-rw-r--r--xmerge/java/org/openoffice/xmerge/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/DiffAlgorithm.java51
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/Difference.java242
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/Iterator.java123
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/MergeAlgorithm.java61
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/NodeMergeAlgorithm.java55
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/build.xml131
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/CellNodeIterator.java116
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/CharArrayLCSAlgorithm.java235
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/CharacterParser.java143
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/IteratorLCSAlgorithm.java236
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/IteratorRowCompare.java243
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/NodeIterator.java386
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/ObjectArrayIterator.java210
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/ParaNodeIterator.java95
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/RowIterator.java84
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeEntry.java88
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeIterator.java90
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/build.xml137
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/diff/package.html41
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/CharacterBaseParagraphMerge.java310
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/DocumentMerge.java250
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/PositionBaseRowMerge.java267
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/SheetMerge.java92
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/SheetUtil.java108
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/build.xml131
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/merge/package.html41
-rw-r--r--xmerge/java/org/openoffice/xmerge/merger/package.html73
-rw-r--r--xmerge/java/org/openoffice/xmerge/package.html111
-rw-r--r--xmerge/java/org/openoffice/xmerge/test/ConverterInfoList.java108
-rw-r--r--xmerge/java/org/openoffice/xmerge/test/ConverterInfoList.properties36
-rw-r--r--xmerge/java/org/openoffice/xmerge/test/Driver.java321
-rw-r--r--xmerge/java/org/openoffice/xmerge/test/build.xml131
-rw-r--r--xmerge/java/org/openoffice/xmerge/test/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/ActiveSyncDriver.java147
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/ColourConverter.java446
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/Debug.java341
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/Debug.properties38
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/EndianConverter.java179
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/IntArrayList.java147
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/OfficeUtil.java135
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/Resources.java100
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java100
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/XmlUtil.java189
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/build.xml140
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/package.html37
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfo.java436
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoMgr.java536
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoReader.java279
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/RegistryException.java47
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/build.xml130
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/converter.dtd94
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/makefile.mk32
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/registry/package.html80
-rw-r--r--xmerge/java/org/openoffice/xmerge/util/resources.properties68
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.cxx523
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/FlatXml.xml24
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/Makefile102
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/Makefile.bck108
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/README97
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/exports.dxp3
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/cpp/makefile.mk97
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/Makefile123
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/Manifest1
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/README97
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/TestStream.java461
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/XFilterAdapter.idl71
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/XFlatXml.java506
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/XInputStreamToInputStreamAdapter.java204
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/XOutputStreamToOutputStreamAdapter.java116
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/makefile.mk126
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.cxx267
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java/streamwrap.hxx141
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java_prettyprint/FlatXml.java546
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java_prettyprint/Makefile97
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java_prettyprint/Manifest1
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java_prettyprint/README97
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/FlatXml/java_prettyprint/TypeDetection.xcu30
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/Makefile_sdk102
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/Manifest1
-rw-r--r--xmerge/java/org/openoffice/xmerge/xmergebridge/TestStream.java488
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/XMergeBridge.java712
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/streamwrap.cxx267
-rwxr-xr-xxmerge/java/org/openoffice/xmerge/xmergebridge/streamwrap.hxx141
-rw-r--r--xmerge/prj/build.lst11
-rw-r--r--xmerge/prj/d.lst11
-rw-r--r--xmerge/source/activesync/BIN/xmergesync.dllbin0 -> 86016 bytes
-rw-r--r--xmerge/source/activesync/XMergeFactory.cpp90
-rw-r--r--xmerge/source/activesync/XMergeFactory.h34
-rw-r--r--xmerge/source/activesync/XMergeFilter.cpp495
-rw-r--r--xmerge/source/activesync/XMergeFilter.h73
-rw-r--r--xmerge/source/activesync/XMergeSync.cpp837
-rw-r--r--xmerge/source/activesync/XMergeSync.def9
-rw-r--r--xmerge/source/activesync/XMergeSync.dsp143
-rw-r--r--xmerge/source/activesync/XMergeSync.dsw33
-rw-r--r--xmerge/source/activesync/XMergeSync.h29
-rw-r--r--xmerge/source/activesync/XMergeSync.rc80
-rw-r--r--xmerge/source/activesync/exports.map12
-rw-r--r--xmerge/source/activesync/guids.txt60
-rw-r--r--xmerge/source/activesync/makefile.mk72
-rw-r--r--xmerge/source/activesync/resource.h17
-rw-r--r--xmerge/source/activesync/stdafx.cpp7
-rw-r--r--xmerge/source/activesync/stdafx.h28
-rw-r--r--xmerge/source/aportisdoc/build.xml76
-rw-r--r--xmerge/source/aportisdoc/converter.xml45
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocConstants.java69
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocDecoder.java301
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocEncoder.java213
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentDeserializerImpl.java312
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentMergerImpl.java97
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/DocumentSerializerImpl.java531
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/PluginFactoryImpl.java141
-rw-r--r--xmerge/source/aportisdoc/java/org/openoffice/xmerge/converter/xml/sxw/aportisdoc/package.html239
-rw-r--r--xmerge/source/aportisdoc/makefile.mk35
-rw-r--r--xmerge/source/bridge/antcall.txt19
-rw-r--r--xmerge/source/bridge/build.xml81
-rw-r--r--xmerge/source/bridge/java/XMergeBridge.java715
-rw-r--r--xmerge/source/bridge/makefile.mk35
-rw-r--r--xmerge/source/bridge/manifest.mf3
-rw-r--r--xmerge/source/htmlsoff/build.xml67
-rw-r--r--xmerge/source/htmlsoff/converter.xml52
-rw-r--r--xmerge/source/htmlsoff/htmltosoff.xsl176
-rw-r--r--xmerge/source/htmlsoff/makefile.mk35
-rw-r--r--xmerge/source/htmlsoff/package.html67
-rw-r--r--xmerge/source/htmlsoff/sofftohtml.xsl118
-rw-r--r--xmerge/source/inc/antbuild.properties11
-rw-r--r--xmerge/source/inc/antbuild.xml2
-rw-r--r--xmerge/source/minicalc/build.xml76
-rw-r--r--xmerge/source/minicalc/converter.xml45
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/ConverterCapabilitiesImpl.java113
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcConstants.java45
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcDataString.java545
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcDecoder.java744
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/MinicalcEncoder.java582
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/PluginFactoryImpl.java129
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/SxcDocumentDeserializerImpl.java138
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/SxcDocumentSerializerImpl.java141
-rw-r--r--xmerge/source/minicalc/java/org/openoffice/xmerge/converter/xml/sxc/minicalc/package.html53
-rw-r--r--xmerge/source/minicalc/makefile.mk33
-rw-r--r--xmerge/source/palmtests/README50
-rw-r--r--xmerge/source/palmtests/bin/README6
-rwxr-xr-xxmerge/source/palmtests/bin/rd24
-rwxr-xr-xxmerge/source/palmtests/bin/spose108
-rwxr-xr-xxmerge/source/palmtests/bin/verify_sane.pl110
-rwxr-xr-xxmerge/source/palmtests/qa-wrapper/bin/qa_comparator.pl257
-rwxr-xr-xxmerge/source/palmtests/qa-wrapper/bin/qa_test_driver.pl846
-rwxr-xr-xxmerge/source/palmtests/qa-wrapper/bin/run-convtest538
-rw-r--r--xmerge/source/palmtests/qa-wrapper/env/master.env85
-rw-r--r--xmerge/source/palmtests/qa-wrapper/lists/master.list55
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_animatedgif.pdb6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_bolddoc.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_bookmarks.pdb10
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_bulletorderedlist.pdb8
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_emptydoc.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_firstlineindent.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_fontsize.pdb6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_heading2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_hyperlink.pdb6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_justified.pdb4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_linebreaks.pdb4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_linespacing.pdb12
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_numberorderedlist.pdb9
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_pagebreak.pdb4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_paragraph.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple01.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple02.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple03.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple04.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_simple05.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_standard.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_subscript.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_superscript.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_symbols.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_tab.pdb8
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_table.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_textspan.pdb3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_unorderedlist.pdb20
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/a_wordwrap.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_addition-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_alignment-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_backwardrange-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_basic-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_boolean-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellcurrencyalue-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellpercentvalue-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cellstringvalue-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_columnswidth-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_cyclic-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_dividefloating-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_forwardrange-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_insertimage-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_invalidcellref-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_largerange-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet1.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet2.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_listrange-Sheet3.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet1.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet2.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_mathematical-Sheet3.pdb2
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_protection-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_sheetreference-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple01-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple02-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple03-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_simple04-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_smallrange-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_styles-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet1.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet2.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/pdb-base/c_textimage-Sheet3.pdb1
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/Blocklist.dtd34
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_animatedgif.sxwbin0 -> 52952 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_bolddoc.sxwbin0 -> 5500 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_bookmarks.sxwbin0 -> 6047 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_bulletorderedlist.sxwbin0 -> 6347 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_emptydoc.sxwbin0 -> 5701 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_firstlineindent.sxwbin0 -> 5519 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_fontsize.sxwbin0 -> 6130 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_heading.sxwbin0 -> 5518 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_heading1.sxwbin0 -> 5640 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_heading2.sxwbin0 -> 5964 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_hyperlink.sxwbin0 -> 5514 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_justified.sxwbin0 -> 6088 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_linebreaks.sxwbin0 -> 6269 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_linespacing.sxwbin0 -> 5618 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_numberorderedlist.sxwbin0 -> 6188 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_pagebreak.sxwbin0 -> 5534 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_paragraph.sxwbin0 -> 5914 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_simple01.sxwbin0 -> 5823 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_simple02.sxwbin0 -> 5821 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_simple03.sxwbin0 -> 5817 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_simple04.sxwbin0 -> 5792 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_simple05.sxwbin0 -> 5791 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_standard.sxwbin0 -> 5797 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_subscript.sxwbin0 -> 5798 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_superscript.sxwbin0 -> 5799 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_symbols.sxwbin0 -> 4916 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_tab.sxwbin0 -> 5731 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_table.sxwbin0 -> 6011 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_textspan.sxwbin0 -> 5958 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_unorderedlist.sxwbin0 -> 6817 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/a_wordwrap.sxwbin0 -> 5363 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_addition.sxcbin0 -> 5829 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_alignment.sxcbin0 -> 6383 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_backwardrange.sxcbin0 -> 5995 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_basic.sxcbin0 -> 5830 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_boolean.sxcbin0 -> 6066 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_cellcurrencyalue.sxcbin0 -> 6776 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_cellpercentvalue.sxcbin0 -> 6318 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_cellstringvalue.sxcbin0 -> 6009 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_columnswidth.sxcbin0 -> 6127 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_cyclic.sxcbin0 -> 6005 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_dividefloating.sxcbin0 -> 6315 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_forwardrange.sxcbin0 -> 6058 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_insertimage.sxcbin0 -> 40476 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_invalidcellref.sxcbin0 -> 5838 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_largerange.sxcbin0 -> 6306 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_listrange.sxcbin0 -> 6162 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_mathematical.sxcbin0 -> 6026 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_protection.sxcbin0 -> 6839 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_sheetreference.sxcbin0 -> 6173 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_simple01.sxcbin0 -> 5080 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_simple02.sxcbin0 -> 4962 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_simple03.sxcbin0 -> 4995 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_simple04.sxcbin0 -> 5007 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_smallrange.sxcbin0 -> 5924 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_styles.sxcbin0 -> 6531 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/c_textimage.sxcbin0 -> 40702 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/chart.mod228
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/datastyl.mod168
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/drawing.mod837
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/dtypes.mod143
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/form.mod308
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/meta.mod90
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/nmspace.mod50
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/office.dtd54
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/office.mod234
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/script.mod51
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/settings.mod49
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/style.mod391
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/table.mod493
-rw-r--r--xmerge/source/palmtests/qa-wrapper/results/baseline/xml-base/text.mod1099
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_animatedgif.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_bolddoc.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_bookmarks.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_bulletorderedlist.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_emptydoc-mod.infile9
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_emptydoc.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_firstlineindent.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_fontsize.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_heading.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_heading1.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_heading2.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_hyperlink.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_justified.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_linebreaks.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_linespacing.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_numberorderedlist.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_pagebreak.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_paragraph.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_simple01.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_simple02.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_simple03.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_simple04.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_simple05.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_standard.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_subscript.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_superscript.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_symbols.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_tab.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_table.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_textspan.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_unorderedlist.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/a_wordwrap.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_addition01-mod.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_alignment.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_backwardrange-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_basic-mod.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_bob-mod.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_boolean-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_cellcurrencyvalue.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_cellpercentvalue-mod.infile8
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_cellstringvalue-mod.infile10
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_columnswidth-mod.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_cyclic-mod.infile12
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_dividefloating-mod.infile8
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_forwardrange-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_insertimage.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_insertrow-mod.infile13
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_invalidcellref-mod.infile10
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_largerange-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_listrange-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_mathematical-mod.infile10
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_multi_boolean.infile5
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_protection-mod01.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_sheetreference-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_simple01-mod.infile13
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_simple02-mod.infile13
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_simple03-mod.infile22
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_simple04-mod.infile14
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_smallrange-mod.infile6
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_styles.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/c_textimage.infile12
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/empty01.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/hyperlink01.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/image01.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/simple01.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/simple02.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/simple03.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/simple04.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/simple05.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/table01.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/table02.infile3
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/table03.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/table04.infile4
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_animatedgif.sxwbin0 -> 53136 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_bolddoc.sxwbin0 -> 5664 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_bookmarks.sxwbin0 -> 6227 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_bulletorderedlist.sxwbin0 -> 6347 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_emptydoc-mod.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_emptydoc.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_firstlineindent.sxwbin0 -> 5683 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_fontsize.sxwbin0 -> 6315 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_heading.sxwbin0 -> 5700 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_heading1.sxwbin0 -> 5819 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_heading2.sxwbin0 -> 6142 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_hyperlink.sxwbin0 -> 5673 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_justified.sxwbin0 -> 6269 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_linebreaks.sxwbin0 -> 6444 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_linespacing.sxwbin0 -> 5783 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_numberorderedlist.sxwbin0 -> 6366 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_pagebreak.sxwbin0 -> 5698 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_paragraph.sxwbin0 -> 6093 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_simple01.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_simple02.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_simple03.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_simple04.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_simple05.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_standard.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_subscript.sxwbin0 -> 5980 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_superscript.sxwbin0 -> 5981 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_symbols.sxwbin0 -> 5106 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_tab.sxwbin0 -> 5912 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_table.sxwbin0 -> 6181 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_textspan.sxwbin0 -> 6142 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_unorderedlist.sxwbin0 -> 6817 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/a_wordwrap.sxwbin0 -> 5524 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_addition.sxcbin0 -> 6020 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_alignment.sxcbin0 -> 6535 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_backwardrange.sxcbin0 -> 6204 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_basic.sxcbin0 -> 6020 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_boolean.sxcbin0 -> 6239 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_cellcurrencyalue.sxcbin0 -> 6776 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_cellpercentvalue.sxcbin0 -> 6495 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_cellstringvalue.sxcbin0 -> 6172 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_columnswidth.sxcbin0 -> 6287 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_cyclic.sxcbin0 -> 6005 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_dividefloating.sxcbin0 -> 6315 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_forwardrange.sxcbin0 -> 6259 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_insertimage.sxcbin0 -> 40702 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_insertrow.sxcbin0 -> 5157 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_invalidcellref.sxcbin0 -> 6035 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_largerange.sxcbin0 -> 6487 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_listrange.sxcbin0 -> 6370 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_mathematical.sxcbin0 -> 6351 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_multi_boolean.sxcbin0 -> 5338 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_protection.sxcbin0 -> 6839 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_sheetreference.sxcbin0 -> 6358 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_simple01.sxcbin0 -> 5176 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_simple02.sxcbin0 -> 4999 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_simple03.sxcbin0 -> 5044 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_simple04.sxcbin0 -> 5083 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_smallrange.sxcbin0 -> 6129 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_styles.sxcbin0 -> 6531 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/c_textimage.sxcbin0 -> 40702 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/empty01.sxwbin0 -> 5880 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/hyperlink01.sxwbin0 -> 6088 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/image01.sxwbin0 -> 53136 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/simple01.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/simple02.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/simple03.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/simple04.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/simple05.sxwbin0 -> 5978 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/table01.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/table02.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/table03.sxwbin0 -> 6443 bytes
-rw-r--r--xmerge/source/palmtests/qa-wrapper/testcases/xml-orig/table04.sxwbin0 -> 6443 bytes
-rwxr-xr-xxmerge/source/palmtests/qa/bin/mysplit.pl58
-rwxr-xr-xxmerge/source/palmtests/qa/bin/tappen.pl61
-rwxr-xr-xxmerge/source/palmtests/qa/bin/template.pl55
-rwxr-xr-xxmerge/source/palmtests/qa/bin/test_driver.pl785
-rw-r--r--xmerge/source/palmtests/qa/comparator/OfficeZip.java241
-rw-r--r--xmerge/source/palmtests/qa/comparator/PDBDecoder.java135
-rw-r--r--xmerge/source/palmtests/qa/comparator/PDBHeader.java153
-rw-r--r--xmerge/source/palmtests/qa/comparator/PDBUtil.java100
-rw-r--r--xmerge/source/palmtests/qa/comparator/PalmDB.java348
-rw-r--r--xmerge/source/palmtests/qa/comparator/README10
-rw-r--r--xmerge/source/palmtests/qa/comparator/Record.java165
-rw-r--r--xmerge/source/palmtests/qa/comparator/SimplePdbCompare.java94
-rw-r--r--xmerge/source/palmtests/qa/comparator/XmlDiff.java464
-rw-r--r--xmerge/source/palmtests/qa/comparator/XmlDiff.properties13
-rw-r--r--xmerge/source/palmtests/qa/comparator/XmlWrapper.java153
-rw-r--r--xmerge/source/palmtests/qa/comparator/XmlZipExtract.java144
-rw-r--r--xmerge/source/palmtests/qa/comparator/comparator.pl248
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/Blocklist.dtd34
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/chart.mod228
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/datastyl.mod168
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/drawing.mod837
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/dtypes.mod143
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/form.mod308
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/meta.mod90
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/nmspace.mod50
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/office.dtd54
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/office.mod234
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/script.mod51
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/settings.mod49
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/style.mod391
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/table.mod493
-rw-r--r--xmerge/source/palmtests/qa/comparator/dtd/text.mod1099
-rw-r--r--xmerge/source/palmtests/qa/comparator/pdbcomparison.java542
-rw-r--r--xmerge/source/palmtests/qa/docs/Doc_descriptions.sxcbin0 -> 8347 bytes
-rw-r--r--xmerge/source/palmtests/qa/docs/Spreadsheet_descriptions.csv39
-rw-r--r--xmerge/source/palmtests/qa/docs/Spreadsheet_descriptions.sxcbin0 -> 5752 bytes
-rw-r--r--xmerge/source/palmtests/qa/lib/converterlib.pm1174
-rw-r--r--xmerge/source/palmtests/qa/palm-session/session8
-rw-r--r--xmerge/source/palmtests/qa/test_spec/convertor_test_spec.html2274
-rw-r--r--xmerge/source/pexcel/build.xml76
-rw-r--r--xmerge/source/pexcel/converter.xml45
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/ConverterCapabilitiesImpl.java113
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PluginFactoryImpl.java130
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelConstants.java67
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelDecoder.java438
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/PocketExcelEncoder.java289
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/SxcDocumentDeserializerImpl.java129
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/SxcDocumentSerializerImpl.java130
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/package.html43
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BIFFRecord.java61
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BeginningOfFile.java116
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BlankCell.java115
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoolErrCell.java125
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/BoundSheet.java136
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CellValue.java136
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/CodePage.java107
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ColInfo.java157
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefColWidth.java94
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefRowHeight.java96
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/DefinedName.java226
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Eof.java70
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/ExtendedFormat.java384
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FloatNumber.java120
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/FontDescription.java286
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Formula.java257
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/LabelCell.java139
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/NumberFormat.java93
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Pane.java218
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Row.java138
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Selection.java142
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/StringValue.java124
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/UnsupportedFormulaException.java41
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window1.java115
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Window2.java154
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Workbook.java539
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/Worksheet.java319
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaCompiler.java271
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaHelper.java152
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParser.java561
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FormulaParsingException.java41
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/FunctionLookup.java204
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/OperandLookup.java62
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/OperatorLookup.java73
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/ParseToken.java42
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/PrecedenceTable.java85
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/SymbolLookup.java81
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/Token.java151
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenConstants.java203
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenDecoder.java497
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenEncoder.java559
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/TokenFactory.java118
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/UnsupportedFunctionException.java40
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/formula/package.html42
-rw-r--r--xmerge/source/pexcel/java/org/openoffice/xmerge/converter/xml/sxc/pexcel/records/package.html47
-rw-r--r--xmerge/source/pexcel/makefile.mk35
-rw-r--r--xmerge/source/pocketword/build.xml76
-rw-r--r--xmerge/source/pocketword/converter.xml50
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDescriptor.java235
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentDeserializerImpl.java294
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentMergerImpl.java97
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/DocumentSerializerImpl.java433
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/Paragraph.java858
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/ParagraphTextSegment.java202
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PluginFactoryImpl.java164
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordConstants.java94
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/PocketWordDocument.java404
-rw-r--r--xmerge/source/pocketword/java/org/openoffice/xmerge/converter/xml/sxw/pocketword/package.html58
-rw-r--r--xmerge/source/pocketword/makefile.mk35
-rw-r--r--xmerge/source/regutil/makefile.mk48
-rw-r--r--xmerge/source/regutil/regutil.cpp102
-rw-r--r--xmerge/source/regutil/regutil.dsp96
-rw-r--r--xmerge/source/regutil/regutil.dsw17
-rw-r--r--xmerge/source/wordsmith/build.xml76
-rw-r--r--xmerge/source/wordsmith/converter.xml17
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DOCConstants.java61
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentDeserializerImpl.java565
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentMergerImpl.java99
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/DocumentSerializerImpl.java536
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/PluginFactoryImpl.java149
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WSDecoder.java352
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WSEncoder.java212
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/Wse.java100
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseColorTable.java247
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseFontTable.java218
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseHeader.java145
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WsePara.java299
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/WseTextRun.java324
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/textRecord.java115
-rw-r--r--xmerge/source/wordsmith/java/org/openoffice/xmerge/converter/xml/sxw/wordsmith/util.java68
-rw-r--r--xmerge/source/wordsmith/makefile.mk33
-rw-r--r--xmerge/source/xmerge/build.xml92
-rw-r--r--xmerge/source/xmerge/converter.dtd96
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/Convert.java327
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/ConvertData.java117
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/ConvertException.java45
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/ConverterCapabilities.java67
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/ConverterFactory.java124
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/Document.java99
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializer.java65
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializer2.java71
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentDeserializerFactory.java65
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentMerger.java93
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentMergerFactory.java63
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentSerializer.java67
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentSerializer2.java73
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/DocumentSerializerFactory.java63
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/MergeException.java45
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/PluginFactory.java193
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/Version.java88
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/dom/DOMDocument.java412
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/dom/package.html55
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PalmDB.java469
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PalmDocument.java177
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbDecoder.java233
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbEncoder.java196
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbHeader.java162
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/PdbUtil.java105
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/Record.java216
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/palm/package.html142
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedBinaryObject.java127
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedObject.java116
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/EmbeddedXMLObject.java295
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeConstants.java439
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocument.java1265
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeDocumentException.java130
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/OfficeZip.java458
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/ParaStyle.java601
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/Style.java227
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/StyleCatalog.java390
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/TextStyle.java679
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/package.html41
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/BookSettings.java228
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/CellStyle.java510
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnRowInfo.java195
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/ColumnStyle.java300
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/DocumentMergerImpl.java198
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/Format.java475
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/NameDefinition.java215
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/RowStyle.java300
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SheetSettings.java373
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetDecoder.java180
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SpreadsheetEncoder.java129
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcConstants.java49
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocument.java92
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocumentDeserializer.java792
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcDocumentSerializer.java993
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/SxcPluginFactory.java82
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxc/package.html40
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxw/SxwDocument.java94
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxw/SxwPluginFactory.java76
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/sxw/package.html40
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/ConverterCapabilitiesImpl.java93
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentDeserializerImpl.java250
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentMergerImpl.java97
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/DocumentSerializerImpl.java297
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/GenericOfficeDocument.java93
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/PluginFactoryImpl.java202
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/XsltPlugin.properties36
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/converter/xml/xslt/package.html67
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/DiffAlgorithm.java51
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/Difference.java242
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/Iterator.java123
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/MergeAlgorithm.java61
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/NodeMergeAlgorithm.java52
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/CellNodeIterator.java114
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/CharArrayLCSAlgorithm.java234
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/CharacterParser.java142
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/IteratorLCSAlgorithm.java236
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/IteratorRowCompare.java243
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/NodeIterator.java384
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/ObjectArrayIterator.java210
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/ParaNodeIterator.java90
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/RowIterator.java81
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeEntry.java88
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/TextNodeIterator.java84
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/diff/package.html43
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/CharacterBaseParagraphMerge.java310
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/DocumentMerge.java247
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/PositionBaseRowMerge.java260
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/SheetMerge.java89
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/SheetUtil.java107
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/merge/package.html43
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/merger/package.html75
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/package.html113
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/test/ConverterInfoList.java105
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/test/ConverterInfoList.properties36
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/test/Driver.java318
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/ActiveSyncDriver.java144
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/ColourConverter.java446
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/Debug.java339
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/Debug.properties38
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/EndianConverter.java178
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/IntArrayList.java147
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/OfficeUtil.java135
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/Resources.java99
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/TwipsConverter.java99
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/XmlUtil.java189
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/package.html39
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfo.java436
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoMgr.java536
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/ConverterInfoReader.java279
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/RegistryException.java47
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/build.xml135
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/registry/package.html82
-rw-r--r--xmerge/source/xmerge/java/org/openoffice/xmerge/util/resources.properties68
-rw-r--r--xmerge/source/xmerge/makefile.mk34
-rw-r--r--xmerge/util/build.xml94
-rw-r--r--xmerge/util/makefile.mk34
-rw-r--r--xmerge/util/minicalc.mf3
-rw-r--r--xmerge/util/xmerge.mf8
-rw-r--r--xmerge/workben/XmlDiff.java458
-rw-r--r--xmerge/workben/XmlDiff.properties39
-rw-r--r--xmerge/workben/build.xml128
-rw-r--r--xmerge/workben/jstyle.pl541
-rw-r--r--xmerge/workben/makefile.mk32
-rw-r--r--xml2cmp/prj/build.lst7
-rw-r--r--xml2cmp/prj/d.lst4
-rw-r--r--xml2cmp/source/finder/dep_main.cxx95
-rw-r--r--xml2cmp/source/finder/dependy.cxx224
-rw-r--r--xml2cmp/source/finder/dependy.hxx116
-rw-r--r--xml2cmp/source/finder/makefile.mk69
-rw-r--r--xml2cmp/source/inc/lst_str.h99
-rw-r--r--xml2cmp/source/inc/new_del.h55
-rw-r--r--xml2cmp/source/inc/precomp.h55
-rw-r--r--xml2cmp/source/inc/str.h71
-rw-r--r--xml2cmp/source/inc/textbuff.h85
-rw-r--r--xml2cmp/source/inc/textfile.h76
-rw-r--r--xml2cmp/source/support/badcast.cxx45
-rw-r--r--xml2cmp/source/support/cmdline.cxx222
-rw-r--r--xml2cmp/source/support/cmdline.hxx86
-rw-r--r--xml2cmp/source/support/heap.cxx207
-rw-r--r--xml2cmp/source/support/heap.hxx91
-rw-r--r--xml2cmp/source/support/list.hxx251
-rw-r--r--xml2cmp/source/support/makefile.mk61
-rw-r--r--xml2cmp/source/support/sistr.cxx400
-rw-r--r--xml2cmp/source/support/sistr.hxx148
-rw-r--r--xml2cmp/source/support/syshelp.cxx314
-rw-r--r--xml2cmp/source/support/syshelp.hxx85
-rw-r--r--xml2cmp/source/x2cclass/x2cstl.hxx47
-rw-r--r--xml2cmp/source/x2cclass/xml_cd.hxx85
-rw-r--r--xml2cmp/source/x2cclass/xml_cdff.cxx231
-rw-r--r--xml2cmp/source/x2cclass/xml_cdff.hxx104
-rw-r--r--xml2cmp/source/x2cclass/xml_cdim.cxx183
-rw-r--r--xml2cmp/source/x2cclass/xml_cdim.hxx113
-rw-r--r--xml2cmp/source/xcd/cr_html.cxx268
-rw-r--r--xml2cmp/source/xcd/cr_html.hxx99
-rw-r--r--xml2cmp/source/xcd/cr_index.cxx275
-rw-r--r--xml2cmp/source/xcd/cr_index.hxx92
-rw-r--r--xml2cmp/source/xcd/cr_metho.cxx106
-rw-r--r--xml2cmp/source/xcd/cr_metho.hxx37
-rw-r--r--xml2cmp/source/xcd/filebuff.cxx63
-rw-r--r--xml2cmp/source/xcd/filebuff.hxx54
-rw-r--r--xml2cmp/source/xcd/main.cxx326
-rw-r--r--xml2cmp/source/xcd/makefile.mk79
-rw-r--r--xml2cmp/source/xcd/parse.cxx452
-rw-r--r--xml2cmp/source/xcd/parse.hxx143
-rw-r--r--xml2cmp/source/xcd/xmlelem.cxx264
-rw-r--r--xml2cmp/source/xcd/xmlelem.hxx241
-rw-r--r--xml2cmp/source/xcd/xmltree.cxx286
-rw-r--r--xml2cmp/source/xcd/xmltree.hxx146
-rw-r--r--xml2cmp/util/makefile.mk58
-rw-r--r--xmlhelp/inc/makefile.mk47
-rw-r--r--xmlhelp/inc/pch/precompiled_xmlhelp.cxx29
-rw-r--r--xmlhelp/inc/pch/precompiled_xmlhelp.hxx32
-rw-r--r--xmlhelp/prj/build.lst9
-rw-r--r--xmlhelp/prj/d.lst9
-rwxr-xr-xxmlhelp/source/com/sun/star/help/HelpComponent.java135
-rw-r--r--xmlhelp/source/com/sun/star/help/HelpIndexer.java186
-rw-r--r--xmlhelp/source/com/sun/star/help/HelpSearch.java344
-rw-r--r--xmlhelp/source/com/sun/star/help/MANIFEST.MF1
-rw-r--r--xmlhelp/source/com/sun/star/help/helplinker.pmk31
-rw-r--r--xmlhelp/source/com/sun/star/help/makefile.mk108
-rw-r--r--xmlhelp/source/cxxhelp/inc/db/EntryProcessor.hxx52
-rw-r--r--xmlhelp/source/cxxhelp/inc/excep/XmlSearchExceptions.hxx107
-rw-r--r--xmlhelp/source/cxxhelp/inc/qe/DocGenerator.hxx104
-rw-r--r--xmlhelp/source/cxxhelp/inc/qe/Query.hxx175
-rw-r--r--xmlhelp/source/cxxhelp/inc/util/CompressorIterator.hxx49
-rw-r--r--xmlhelp/source/cxxhelp/inc/util/ConceptList.hxx70
-rw-r--r--xmlhelp/source/cxxhelp/inc/util/Decompressor.hxx151
-rw-r--r--xmlhelp/source/cxxhelp/inc/util/RandomAccessStream.hxx63
-rw-r--r--xmlhelp/source/cxxhelp/provider/bufferedinputstream.cxx233
-rw-r--r--xmlhelp/source/cxxhelp/provider/bufferedinputstream.hxx113
-rw-r--r--xmlhelp/source/cxxhelp/provider/content.cxx578
-rw-r--r--xmlhelp/source/cxxhelp/provider/content.hxx152
-rw-r--r--xmlhelp/source/cxxhelp/provider/contentcaps.cxx247
-rw-r--r--xmlhelp/source/cxxhelp/provider/databases.cxx2117
-rw-r--r--xmlhelp/source/cxxhelp/provider/databases.hxx551
-rw-r--r--xmlhelp/source/cxxhelp/provider/db.cxx664
-rw-r--r--xmlhelp/source/cxxhelp/provider/db.hxx250
-rw-r--r--xmlhelp/source/cxxhelp/provider/inputstream.cxx223
-rw-r--r--xmlhelp/source/cxxhelp/provider/inputstream.hxx144
-rw-r--r--xmlhelp/source/cxxhelp/provider/makefile.mk97
-rw-r--r--xmlhelp/source/cxxhelp/provider/provider.cxx510
-rw-r--r--xmlhelp/source/cxxhelp/provider/provider.hxx187
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultset.cxx90
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultset.hxx67
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetbase.cxx656
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetbase.hxx576
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetfactory.hxx27
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetforquery.cxx449
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetforquery.hxx65
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetforroot.cxx82
-rw-r--r--xmlhelp/source/cxxhelp/provider/resultsetforroot.hxx65
-rw-r--r--xmlhelp/source/cxxhelp/provider/services.cxx132
-rw-r--r--xmlhelp/source/cxxhelp/provider/urlparameter.cxx1239
-rw-r--r--xmlhelp/source/cxxhelp/provider/urlparameter.hxx255
-rw-r--r--xmlhelp/source/cxxhelp/qe/DocGenerator.cxx61
-rw-r--r--xmlhelp/source/cxxhelp/qe/makefile.mk49
-rw-r--r--xmlhelp/source/cxxhelp/test/abidebug.hxx32
-rw-r--r--xmlhelp/source/cxxhelp/test/makefile.mk69
-rw-r--r--xmlhelp/source/cxxhelp/test/searchdemo.cxx117
-rw-r--r--xmlhelp/source/cxxhelp/util/Decompressor.cxx55
-rw-r--r--xmlhelp/source/cxxhelp/util/makefile.mk50
-rw-r--r--xmlhelp/source/treeview/makefile.mk69
-rw-r--r--xmlhelp/source/treeview/tvfactory.cxx355
-rw-r--r--xmlhelp/source/treeview/tvfactory.hxx138
-rw-r--r--xmlhelp/source/treeview/tvhlp.map9
-rw-r--r--xmlhelp/source/treeview/tvread.cxx1277
-rw-r--r--xmlhelp/source/treeview/tvread.hxx395
-rw-r--r--xmlhelp/util/exports.map8
-rw-r--r--xmlhelp/util/makefile.mk78
-rw-r--r--xmlhelp/util/ucpchelp.xml97
-rw-r--r--xmloff/dtd/Blocklist.dtd34
-rw-r--r--xmloff/dtd/chart.mod262
-rw-r--r--xmloff/dtd/datastyl.mod208
-rw-r--r--xmloff/dtd/defs.mod56
-rw-r--r--xmloff/dtd/drawing.mod861
-rw-r--r--xmloff/dtd/dtypes.mod143
-rw-r--r--xmloff/dtd/form.mod366
-rw-r--r--xmloff/dtd/meta.mod90
-rw-r--r--xmloff/dtd/nmspace.mod53
-rw-r--r--xmloff/dtd/office.dtd56
-rw-r--r--xmloff/dtd/office.mod245
-rw-r--r--xmloff/dtd/openoffice-2.0-schema.rng92
-rw-r--r--xmloff/dtd/script.mod59
-rw-r--r--xmloff/dtd/settings.mod49
-rw-r--r--xmloff/dtd/style.mod427
-rw-r--r--xmloff/dtd/table.mod496
-rw-r--r--xmloff/dtd/text.mod1099
-rw-r--r--xmloff/inc/AttributeContainerHandler.hxx47
-rw-r--r--xmloff/inc/DashStyle.hxx73
-rw-r--r--xmloff/inc/DomBuilderContext.hxx109
-rw-r--r--xmloff/inc/DomExport.hxx43
-rw-r--r--xmloff/inc/EnhancedCustomShapeToken.hxx166
-rw-r--r--xmloff/inc/GradientStyle.hxx74
-rw-r--r--xmloff/inc/HatchStyle.hxx71
-rw-r--r--xmloff/inc/ImageStyle.hxx60
-rw-r--r--xmloff/inc/MarkerStyle.hxx73
-rw-r--r--xmloff/inc/MetaExportComponent.hxx83
-rw-r--r--xmloff/inc/MetaImportComponent.hxx83
-rw-r--r--xmloff/inc/MultiPropertySetHelper.hxx204
-rw-r--r--xmloff/inc/PageMasterImportContext.hxx67
-rw-r--r--xmloff/inc/PropertySetMerger.hxx38
-rw-r--r--xmloff/inc/RDFaExportHelper.hxx80
-rw-r--r--xmloff/inc/RDFaImportHelper.hxx88
-rw-r--r--xmloff/inc/SchXMLExport.hxx90
-rw-r--r--xmloff/inc/SchXMLImport.hxx218
-rw-r--r--xmloff/inc/StyleMap.hxx95
-rw-r--r--xmloff/inc/TransGradientStyle.hxx70
-rw-r--r--xmloff/inc/VisAreaContext.hxx69
-rw-r--r--xmloff/inc/VisAreaExport.hxx55
-rw-r--r--xmloff/inc/XMLBackgroundImageContext.hxx83
-rw-r--r--xmloff/inc/XMLBackgroundImageExport.hxx65
-rw-r--r--xmloff/inc/XMLBase64Export.hxx60
-rw-r--r--xmloff/inc/XMLBasicExportFilter.hxx72
-rw-r--r--xmloff/inc/XMLBitmapLogicalSizePropertyHandler.hxx62
-rw-r--r--xmloff/inc/XMLBitmapRepeatOffsetPropertyHandler.hxx65
-rw-r--r--xmloff/inc/XMLChartPropertySetMapper.hxx127
-rw-r--r--xmloff/inc/XMLChartStyleContext.hxx67
-rw-r--r--xmloff/inc/XMLClipPropertyHandler.hxx48
-rw-r--r--xmloff/inc/XMLElementPropertyContext.hxx68
-rw-r--r--xmloff/inc/XMLEmbeddedObjectExportFilter.hxx92
-rw-r--r--xmloff/inc/XMLEmbeddedObjectImportContext.hxx79
-rw-r--r--xmloff/inc/XMLEventImportHelper.hxx106
-rw-r--r--xmloff/inc/XMLFillBitmapSizePropertyHandler.hxx62
-rw-r--r--xmloff/inc/XMLFilterServiceNames.h46
-rw-r--r--xmloff/inc/XMLFootnoteConfigurationImportContext.hxx121
-rw-r--r--xmloff/inc/XMLImageMapContext.hxx76
-rw-r--r--xmloff/inc/XMLImageMapExport.hxx119
-rw-r--r--xmloff/inc/XMLIndexBibliographyConfigurationContext.hxx107
-rw-r--r--xmloff/inc/XMLIsPercentagePropertyHandler.hxx52
-rw-r--r--xmloff/inc/XMLLineNumberingImportContext.hxx126
-rw-r--r--xmloff/inc/XMLNumberStylesImport.hxx79
-rw-r--r--xmloff/inc/XMLPercentOrMeasurePropertyHandler.hxx54
-rw-r--r--xmloff/inc/XMLRectangleMembersHandler.hxx64
-rw-r--r--xmloff/inc/XMLReplacementImageContext.hxx72
-rw-r--r--xmloff/inc/XMLScriptContextFactory.hxx67
-rw-r--r--xmloff/inc/XMLScriptExportHandler.hxx59
-rw-r--r--xmloff/inc/XMLShapePropertySetContext.hxx62
-rw-r--r--xmloff/inc/XMLStarBasicContextFactory.hxx68
-rw-r--r--xmloff/inc/XMLStarBasicExportHandler.hxx63
-rw-r--r--xmloff/inc/XMLStringBufferImportContext.hxx71
-rw-r--r--xmloff/inc/XMLTextColumnsContext.hxx79
-rw-r--r--xmloff/inc/XMLTextColumnsExport.hxx58
-rw-r--r--xmloff/inc/XMLTextColumnsPropertyHandler.hxx56
-rw-r--r--xmloff/inc/XMLTextHeaderFooterContext.hxx77
-rw-r--r--xmloff/inc/XMLTextListAutoStylePool.hxx84
-rw-r--r--xmloff/inc/anim.hxx104
-rw-r--r--xmloff/inc/animationexport.hxx56
-rw-r--r--xmloff/inc/animationimport.hxx72
-rw-r--r--xmloff/inc/animations.hxx67
-rw-r--r--xmloff/inc/animimp.hxx57
-rw-r--r--xmloff/inc/functional.hxx27
-rw-r--r--xmloff/inc/i18nmap.hxx69
-rw-r--r--xmloff/inc/makefile.mk48
-rw-r--r--xmloff/inc/numehelp.hxx129
-rw-r--r--xmloff/inc/pch/precompiled_xmloff.cxx29
-rw-r--r--xmloff/inc/pch/precompiled_xmloff.hxx480
-rw-r--r--xmloff/inc/txtflde.hxx546
-rw-r--r--xmloff/inc/txtfldi.hxx1593
-rw-r--r--xmloff/inc/txtimppr.hxx81
-rw-r--r--xmloff/inc/txtlists.hxx194
-rw-r--r--xmloff/inc/txtvfldi.hxx618
-rw-r--r--xmloff/inc/unoatrcn.hxx89
-rw-r--r--xmloff/inc/unointerfacetouniqueidentifiermapper.hxx52
-rw-r--r--xmloff/inc/xexptran.hxx201
-rw-r--r--xmloff/inc/xformsexport.hxx60
-rw-r--r--xmloff/inc/xformsimport.hxx91
-rw-r--r--xmloff/inc/xmlcnitm.hxx90
-rw-r--r--xmloff/inc/xmlehelp.hxx51
-rw-r--r--xmloff/inc/xmlerror.hxx166
-rw-r--r--xmloff/inc/xmlkywd.hxx1998
-rw-r--r--xmloff/inc/xmlnmspe.hxx107
-rw-r--r--xmloff/inc/xmloff/DocumentSettingsContext.hxx63
-rw-r--r--xmloff/inc/xmloff/EnumPropertyHdl.hxx52
-rw-r--r--xmloff/inc/xmloff/NamedBoolPropertyHdl.hxx62
-rw-r--r--xmloff/inc/xmloff/PageMasterStyleMap.hxx155
-rw-r--r--xmloff/inc/xmloff/ProgressBarHelper.hxx78
-rw-r--r--xmloff/inc/xmloff/PropertySetInfoHash.hxx65
-rw-r--r--xmloff/inc/xmloff/PropertySetInfoKey.hxx67
-rw-r--r--xmloff/inc/xmloff/SchXMLExportHelper.hxx236
-rw-r--r--xmloff/inc/xmloff/SchXMLImportHelper.hxx169
-rw-r--r--xmloff/inc/xmloff/SettingsExportHelper.hxx103
-rw-r--r--xmloff/inc/xmloff/SinglePropertySetInfoCache.hxx79
-rw-r--r--xmloff/inc/xmloff/WordWrapPropertyHdl.hxx53
-rw-r--r--xmloff/inc/xmloff/XMLBase64ImportContext.hxx64
-rw-r--r--xmloff/inc/xmloff/XMLCharContext.hxx71
-rw-r--r--xmloff/inc/xmloff/XMLConstantsPropertyHandler.hxx69
-rw-r--r--xmloff/inc/xmloff/XMLEventExport.hxx131
-rw-r--r--xmloff/inc/xmloff/XMLEventsImportContext.hxx138
-rw-r--r--xmloff/inc/xmloff/XMLFontAutoStylePool.hxx75
-rw-r--r--xmloff/inc/xmloff/XMLFontStylesContext.hxx99
-rw-r--r--xmloff/inc/xmloff/XMLGraphicsDefaultStyle.hxx63
-rw-r--r--xmloff/inc/xmloff/XMLPageExport.hxx114
-rw-r--r--xmloff/inc/xmloff/XMLShapeStyleContext.hxx76
-rw-r--r--xmloff/inc/xmloff/XMLStringVector.hxx39
-rw-r--r--xmloff/inc/xmloff/XMLTextMasterPageContext.hxx92
-rw-r--r--xmloff/inc/xmloff/XMLTextMasterPageExport.hxx71
-rw-r--r--xmloff/inc/xmloff/XMLTextMasterStylesContext.hxx62
-rw-r--r--xmloff/inc/xmloff/XMLTextShapeStyleContext.hxx72
-rw-r--r--xmloff/inc/xmloff/XMLTextTableContext.hxx59
-rw-r--r--xmloff/inc/xmloff/animexp.hxx52
-rw-r--r--xmloff/inc/xmloff/attrlist.hxx93
-rw-r--r--xmloff/inc/xmloff/contextid.hxx54
-rw-r--r--xmloff/inc/xmloff/controlpropertyhdl.hxx143
-rw-r--r--xmloff/inc/xmloff/dllapi.h40
-rw-r--r--xmloff/inc/xmloff/families.hxx116
-rw-r--r--xmloff/inc/xmloff/formlayerexport.hxx212
-rw-r--r--xmloff/inc/xmloff/formlayerimport.hxx171
-rw-r--r--xmloff/inc/xmloff/formsimp.hxx49
-rw-r--r--xmloff/inc/xmloff/maptype.hxx74
-rw-r--r--xmloff/inc/xmloff/nmspmap.hxx185
-rw-r--r--xmloff/inc/xmloff/odffields.hxx56
-rw-r--r--xmloff/inc/xmloff/prhdlfac.hxx111
-rw-r--r--xmloff/inc/xmloff/prstylei.hxx109
-rw-r--r--xmloff/inc/xmloff/shapeexport.hxx337
-rw-r--r--xmloff/inc/xmloff/shapeimport.hxx439
-rw-r--r--xmloff/inc/xmloff/styleexp.hxx142
-rw-r--r--xmloff/inc/xmloff/table/XMLTableExport.hxx112
-rw-r--r--xmloff/inc/xmloff/table/XMLTableImport.hxx78
-rw-r--r--xmloff/inc/xmloff/txtimp.hxx964
-rw-r--r--xmloff/inc/xmloff/txtparae.hxx745
-rw-r--r--xmloff/inc/xmloff/txtprmap.hxx202
-rw-r--r--xmloff/inc/xmloff/txtstyle.hxx60
-rw-r--r--xmloff/inc/xmloff/txtstyli.hxx120
-rw-r--r--xmloff/inc/xmloff/uniref.hxx229
-rw-r--r--xmloff/inc/xmloff/xmlaustp.hxx137
-rw-r--r--xmloff/inc/xmloff/xmlcnimp.hxx129
-rw-r--r--xmloff/inc/xmloff/xmlement.hxx60
-rw-r--r--xmloff/inc/xmloff/xmlevent.hxx152
-rw-r--r--xmloff/inc/xmloff/xmlexp.hxx727
-rw-r--r--xmloff/inc/xmloff/xmlexppr.hxx204
-rw-r--r--xmloff/inc/xmloff/xmlictxt.hxx108
-rw-r--r--xmloff/inc/xmloff/xmlimp.hxx529
-rw-r--r--xmloff/inc/xmloff/xmlimppr.hxx211
-rw-r--r--xmloff/inc/xmloff/xmlmetae.hxx127
-rw-r--r--xmloff/inc/xmloff/xmlmetai.hxx84
-rw-r--r--xmloff/inc/xmloff/xmlnume.hxx116
-rw-r--r--xmloff/inc/xmloff/xmlnumfe.hxx140
-rw-r--r--xmloff/inc/xmloff/xmlnumfi.hxx233
-rw-r--r--xmloff/inc/xmloff/xmlnumi.hxx111
-rw-r--r--xmloff/inc/xmloff/xmlprcon.hxx78
-rw-r--r--xmloff/inc/xmloff/xmlprhdl.hxx64
-rw-r--r--xmloff/inc/xmloff/xmlprmap.hxx189
-rw-r--r--xmloff/inc/xmloff/xmlscripti.hxx61
-rw-r--r--xmloff/inc/xmloff/xmlstyle.hxx269
-rw-r--r--xmloff/inc/xmloff/xmltkmap.hxx67
-rw-r--r--xmloff/inc/xmloff/xmltoken.hxx3121
-rw-r--r--xmloff/inc/xmloff/xmltypes.hxx286
-rw-r--r--xmloff/inc/xmloff/xmluconv.hxx445
-rw-r--r--xmloff/inc/xmlreg.hxx43
-rw-r--r--xmloff/inc/xmltabe.hxx60
-rw-r--r--xmloff/inc/xmltabi.hxx65
-rw-r--r--xmloff/inc/xmlversion.hxx155
-rw-r--r--xmloff/prj/build.lst16
-rw-r--r--xmloff/prj/d.lst118
-rw-r--r--xmloff/qa/unoapi/knownissues.xcl27
-rw-r--r--xmloff/qa/unoapi/makefile.mk40
-rw-r--r--xmloff/qa/unoapi/testdocuments/emptyChart.sdsbin0 -> 44544 bytes
-rw-r--r--xmloff/qa/unoapi/xmloff.sce26
-rw-r--r--xmloff/source/chart/ColorPropertySet.cxx225
-rw-r--r--xmloff/source/chart/ColorPropertySet.hxx126
-rw-r--r--xmloff/source/chart/MultiPropertySetHandler.hxx294
-rw-r--r--xmloff/source/chart/PropertyMap.hxx323
-rw-r--r--xmloff/source/chart/PropertyMaps.cxx618
-rw-r--r--xmloff/source/chart/SchXMLAutoStylePoolP.cxx91
-rw-r--r--xmloff/source/chart/SchXMLAutoStylePoolP.hxx53
-rwxr-xr-xxmloff/source/chart/SchXMLCalculationSettingsContext.cxx86
-rwxr-xr-xxmloff/source/chart/SchXMLCalculationSettingsContext.hxx51
-rw-r--r--xmloff/source/chart/SchXMLChartContext.cxx1432
-rw-r--r--xmloff/source/chart/SchXMLChartContext.hxx189
-rw-r--r--xmloff/source/chart/SchXMLExport.cxx3832
-rw-r--r--xmloff/source/chart/SchXMLImport.cxx956
-rw-r--r--xmloff/source/chart/SchXMLParagraphContext.cxx108
-rw-r--r--xmloff/source/chart/SchXMLParagraphContext.hxx64
-rw-r--r--xmloff/source/chart/SchXMLPlotAreaContext.cxx2005
-rw-r--r--xmloff/source/chart/SchXMLPlotAreaContext.hxx339
-rw-r--r--xmloff/source/chart/SchXMLSeries2Context.cxx1134
-rw-r--r--xmloff/source/chart/SchXMLSeries2Context.hxx135
-rw-r--r--xmloff/source/chart/SchXMLSeriesHelper.cxx301
-rw-r--r--xmloff/source/chart/SchXMLSeriesHelper.hxx80
-rw-r--r--xmloff/source/chart/SchXMLTableContext.cxx1140
-rw-r--r--xmloff/source/chart/SchXMLTableContext.hxx229
-rwxr-xr-xxmloff/source/chart/SchXMLTextListContext.cxx136
-rwxr-xr-xxmloff/source/chart/SchXMLTextListContext.hxx58
-rw-r--r--xmloff/source/chart/SchXMLTools.cxx799
-rw-r--r--xmloff/source/chart/SchXMLTools.hxx144
-rw-r--r--xmloff/source/chart/XMLAxisPositionPropertyHdl.cxx128
-rw-r--r--xmloff/source/chart/XMLAxisPositionPropertyHdl.hxx45
-rw-r--r--xmloff/source/chart/XMLChartPropertyContext.cxx82
-rw-r--r--xmloff/source/chart/XMLChartPropertyContext.hxx58
-rw-r--r--xmloff/source/chart/XMLChartStyleContext.cxx161
-rw-r--r--xmloff/source/chart/XMLErrorBarStylePropertyHdl.cxx68
-rw-r--r--xmloff/source/chart/XMLErrorBarStylePropertyHdl.hxx41
-rw-r--r--xmloff/source/chart/XMLErrorIndicatorPropertyHdl.cxx105
-rw-r--r--xmloff/source/chart/XMLErrorIndicatorPropertyHdl.hxx46
-rw-r--r--xmloff/source/chart/XMLLabelSeparatorContext.cxx87
-rw-r--r--xmloff/source/chart/XMLLabelSeparatorContext.hxx54
-rw-r--r--xmloff/source/chart/XMLSymbolImageContext.cxx150
-rw-r--r--xmloff/source/chart/XMLSymbolImageContext.hxx59
-rw-r--r--xmloff/source/chart/XMLSymbolTypePropertyHdl.cxx170
-rw-r--r--xmloff/source/chart/XMLSymbolTypePropertyHdl.hxx46
-rw-r--r--xmloff/source/chart/XMLTextOrientationHdl.cxx80
-rw-r--r--xmloff/source/chart/XMLTextOrientationHdl.hxx46
-rw-r--r--xmloff/source/chart/contexts.cxx233
-rw-r--r--xmloff/source/chart/contexts.hxx115
-rw-r--r--xmloff/source/chart/makefile.mk70
-rw-r--r--xmloff/source/chart/transporttypes.cxx38
-rw-r--r--xmloff/source/chart/transporttypes.hxx222
-rw-r--r--xmloff/source/core/DocumentSettingsContext.cxx1014
-rw-r--r--xmloff/source/core/DomBuilderContext.cxx264
-rw-r--r--xmloff/source/core/DomExport.cxx305
-rw-r--r--xmloff/source/core/ProgressBarHelper.cxx139
-rw-r--r--xmloff/source/core/PropertySetMerger.cxx267
-rw-r--r--xmloff/source/core/RDFaExportHelper.cxx215
-rw-r--r--xmloff/source/core/RDFaImportHelper.cxx455
-rw-r--r--xmloff/source/core/SettingsExportHelper.cxx554
-rw-r--r--xmloff/source/core/XMLBase64Export.cxx95
-rw-r--r--xmloff/source/core/XMLBase64ImportContext.cxx91
-rw-r--r--xmloff/source/core/XMLBasicExportFilter.cxx125
-rw-r--r--xmloff/source/core/XMLEmbeddedObjectExportFilter.cxx182
-rw-r--r--xmloff/source/core/XMLEmbeddedObjectImportContext.cxx395
-rw-r--r--xmloff/source/core/attrlist.cxx301
-rw-r--r--xmloff/source/core/facreg.cxx394
-rw-r--r--xmloff/source/core/i18nmap.cxx126
-rw-r--r--xmloff/source/core/makefile.mk83
-rw-r--r--xmloff/source/core/nmspmap.cxx593
-rw-r--r--xmloff/source/core/unoatrcn.cxx315
-rw-r--r--xmloff/source/core/unointerfacetouniqueidentifiermapper.cxx171
-rw-r--r--xmloff/source/core/xmlcnitm.cxx218
-rw-r--r--xmloff/source/core/xmlehelp.cxx500
-rw-r--r--xmloff/source/core/xmlenums.hxx55
-rw-r--r--xmloff/source/core/xmlerror.cxx257
-rw-r--r--xmloff/source/core/xmlexp.cxx2660
-rw-r--r--xmloff/source/core/xmlictxt.cxx84
-rw-r--r--xmloff/source/core/xmlimp.cxx2004
-rw-r--r--xmloff/source/core/xmlkywd.cxx38
-rw-r--r--xmloff/source/core/xmltkmap.cxx122
-rw-r--r--xmloff/source/core/xmltoken.cxx3179
-rw-r--r--xmloff/source/core/xmluconv.cxx2306
-rw-r--r--xmloff/source/draw/EnhancedCustomShapeToken.cxx221
-rw-r--r--xmloff/source/draw/XMLGraphicsDefaultStyle.cxx111
-rw-r--r--xmloff/source/draw/XMLImageMapContext.cxx723
-rw-r--r--xmloff/source/draw/XMLImageMapExport.cxx386
-rw-r--r--xmloff/source/draw/XMLNumberStyles.cxx743
-rw-r--r--xmloff/source/draw/XMLNumberStylesExport.hxx53
-rw-r--r--xmloff/source/draw/XMLReplacementImageContext.cxx137
-rw-r--r--xmloff/source/draw/XMLShapePropertySetContext.cxx116
-rw-r--r--xmloff/source/draw/XMLShapeStyleContext.cxx326
-rw-r--r--xmloff/source/draw/animationexport.cxx1796
-rw-r--r--xmloff/source/draw/animationimport.cxx1515
-rw-r--r--xmloff/source/draw/animexp.cxx553
-rw-r--r--xmloff/source/draw/animimp.cxx694
-rw-r--r--xmloff/source/draw/descriptionimp.cxx93
-rw-r--r--xmloff/source/draw/descriptionimp.hxx60
-rw-r--r--xmloff/source/draw/eventimp.cxx575
-rw-r--r--xmloff/source/draw/eventimp.hxx57
-rw-r--r--xmloff/source/draw/layerexp.cxx109
-rw-r--r--xmloff/source/draw/layerexp.hxx40
-rw-r--r--xmloff/source/draw/layerimp.cxx180
-rw-r--r--xmloff/source/draw/layerimp.hxx58
-rw-r--r--xmloff/source/draw/makefile.mk85
-rw-r--r--xmloff/source/draw/numithdl.cxx63
-rw-r--r--xmloff/source/draw/numithdl.hxx52
-rw-r--r--xmloff/source/draw/propimp0.cxx272
-rw-r--r--xmloff/source/draw/propimp0.hxx78
-rw-r--r--xmloff/source/draw/sdpropls.cxx1763
-rw-r--r--xmloff/source/draw/sdpropls.hxx334
-rw-r--r--xmloff/source/draw/sdxmlexp.cxx2984
-rw-r--r--xmloff/source/draw/sdxmlexp_impl.hxx228
-rw-r--r--xmloff/source/draw/sdxmlimp.cxx1099
-rw-r--r--xmloff/source/draw/sdxmlimp_impl.hxx338
-rw-r--r--xmloff/source/draw/shapeexport.cxx1219
-rw-r--r--xmloff/source/draw/shapeexport2.cxx2075
-rw-r--r--xmloff/source/draw/shapeexport3.cxx498
-rw-r--r--xmloff/source/draw/shapeexport4.cxx1236
-rw-r--r--xmloff/source/draw/shapeimport.cxx1466
-rw-r--r--xmloff/source/draw/viewcontext.cxx91
-rw-r--r--xmloff/source/draw/viewcontext.hxx54
-rw-r--r--xmloff/source/draw/xexptran.cxx3117
-rw-r--r--xmloff/source/draw/ximp3dobject.cxx613
-rw-r--r--xmloff/source/draw/ximp3dobject.hxx179
-rw-r--r--xmloff/source/draw/ximp3dscene.cxx497
-rw-r--r--xmloff/source/draw/ximp3dscene.hxx81
-rw-r--r--xmloff/source/draw/ximpbody.cxx375
-rw-r--r--xmloff/source/draw/ximpbody.hxx79
-rw-r--r--xmloff/source/draw/ximpcustomshape.cxx1382
-rw-r--r--xmloff/source/draw/ximpcustomshape.hxx77
-rw-r--r--xmloff/source/draw/ximpgrp.cxx130
-rw-r--r--xmloff/source/draw/ximpgrp.hxx72
-rw-r--r--xmloff/source/draw/ximplink.cxx102
-rw-r--r--xmloff/source/draw/ximplink.hxx66
-rw-r--r--xmloff/source/draw/ximpnote.cxx142
-rw-r--r--xmloff/source/draw/ximpnote.hxx58
-rw-r--r--xmloff/source/draw/ximppage.cxx644
-rw-r--r--xmloff/source/draw/ximppage.hxx96
-rw-r--r--xmloff/source/draw/ximpshap.cxx3676
-rw-r--r--xmloff/source/draw/ximpshap.hxx661
-rw-r--r--xmloff/source/draw/ximpshow.cxx282
-rw-r--r--xmloff/source/draw/ximpshow.hxx57
-rw-r--r--xmloff/source/draw/ximpstyl.cxx1692
-rw-r--r--xmloff/source/draw/ximpstyl.hxx302
-rw-r--r--xmloff/source/forms/attriblistmerge.cxx170
-rw-r--r--xmloff/source/forms/attriblistmerge.hxx85
-rw-r--r--xmloff/source/forms/callbacks.hxx95
-rw-r--r--xmloff/source/forms/controlelement.cxx70
-rw-r--r--xmloff/source/forms/controlelement.hxx93
-rw-r--r--xmloff/source/forms/controlpropertyhdl.cxx390
-rw-r--r--xmloff/source/forms/controlpropertymap.cxx156
-rw-r--r--xmloff/source/forms/controlpropertymap.hxx68
-rw-r--r--xmloff/source/forms/elementexport.cxx2152
-rw-r--r--xmloff/source/forms/elementexport.hxx322
-rw-r--r--xmloff/source/forms/elementimport.cxx2029
-rw-r--r--xmloff/source/forms/elementimport.hxx752
-rw-r--r--xmloff/source/forms/elementimport_impl.hxx123
-rw-r--r--xmloff/source/forms/eventexport.cxx160
-rw-r--r--xmloff/source/forms/eventexport.hxx86
-rw-r--r--xmloff/source/forms/eventimport.cxx163
-rw-r--r--xmloff/source/forms/eventimport.hxx95
-rw-r--r--xmloff/source/forms/formattributes.cxx341
-rw-r--r--xmloff/source/forms/formattributes.hxx363
-rw-r--r--xmloff/source/forms/formcellbinding.cxx490
-rw-r--r--xmloff/source/forms/formcellbinding.hxx279
-rw-r--r--xmloff/source/forms/formenums.cxx348
-rw-r--r--xmloff/source/forms/formenums.hxx80
-rw-r--r--xmloff/source/forms/formevents.cxx85
-rw-r--r--xmloff/source/forms/formevents.hxx47
-rw-r--r--xmloff/source/forms/formlayerexport.cxx187
-rw-r--r--xmloff/source/forms/formlayerimport.cxx129
-rw-r--r--xmloff/source/forms/formsimp.cxx58
-rw-r--r--xmloff/source/forms/formstyles.cxx66
-rw-r--r--xmloff/source/forms/formstyles.hxx72
-rw-r--r--xmloff/source/forms/gridcolumnproptranslator.cxx345
-rw-r--r--xmloff/source/forms/gridcolumnproptranslator.hxx84
-rw-r--r--xmloff/source/forms/ifacecompare.hxx70
-rw-r--r--xmloff/source/forms/layerexport.cxx833
-rw-r--r--xmloff/source/forms/layerexport.hxx320
-rw-r--r--xmloff/source/forms/layerimport.cxx657
-rw-r--r--xmloff/source/forms/layerimport.hxx227
-rw-r--r--xmloff/source/forms/logging.cxx60
-rw-r--r--xmloff/source/forms/logging.hxx75
-rw-r--r--xmloff/source/forms/makefile.mk70
-rw-r--r--xmloff/source/forms/officeforms.cxx193
-rw-r--r--xmloff/source/forms/officeforms.hxx104
-rw-r--r--xmloff/source/forms/propertyexport.cxx725
-rw-r--r--xmloff/source/forms/propertyexport.hxx408
-rw-r--r--xmloff/source/forms/propertyimport.cxx641
-rw-r--r--xmloff/source/forms/propertyimport.hxx253
-rw-r--r--xmloff/source/forms/strings.cxx37
-rw-r--r--xmloff/source/forms/strings.hxx283
-rw-r--r--xmloff/source/forms/valueproperties.cxx203
-rw-r--r--xmloff/source/forms/valueproperties.hxx84
-rw-r--r--xmloff/source/meta/MetaExportComponent.cxx258
-rw-r--r--xmloff/source/meta/MetaImportComponent.cxx118
-rw-r--r--xmloff/source/meta/makefile.mk53
-rw-r--r--xmloff/source/meta/xmlmetae.cxx526
-rw-r--r--xmloff/source/meta/xmlmetai.cxx277
-rw-r--r--xmloff/source/meta/xmlversion.cxx541
-rw-r--r--xmloff/source/script/XMLEventExport.cxx348
-rw-r--r--xmloff/source/script/XMLEventImportHelper.cxx179
-rw-r--r--xmloff/source/script/XMLEventsImportContext.cxx247
-rw-r--r--xmloff/source/script/XMLScriptContextFactory.cxx102
-rw-r--r--xmloff/source/script/XMLScriptExportHandler.cxx85
-rw-r--r--xmloff/source/script/XMLStarBasicContextFactory.cxx139
-rw-r--r--xmloff/source/script/XMLStarBasicExportHandler.cxx111
-rw-r--r--xmloff/source/script/makefile.mk56
-rw-r--r--xmloff/source/script/xmlbasici.cxx197
-rw-r--r--xmloff/source/script/xmlbasici.hxx88
-rw-r--r--xmloff/source/script/xmlscripti.cxx188
-rw-r--r--xmloff/source/style/AttributeContainerHandler.cxx104
-rw-r--r--xmloff/source/style/DashStyle.cxx332
-rw-r--r--xmloff/source/style/DrawAspectHdl.cxx89
-rw-r--r--xmloff/source/style/DrawAspectHdl.hxx45
-rw-r--r--xmloff/source/style/EnumPropertyHdl.cxx98
-rw-r--r--xmloff/source/style/FillStyleContext.cxx361
-rw-r--r--xmloff/source/style/FillStyleContext.hxx167
-rw-r--r--xmloff/source/style/GradientStyle.cxx344
-rw-r--r--xmloff/source/style/HatchStyle.cxx263
-rw-r--r--xmloff/source/style/ImageStyle.cxx225
-rw-r--r--xmloff/source/style/MarkerStyle.cxx286
-rw-r--r--xmloff/source/style/MultiPropertySetHelper.cxx216
-rw-r--r--xmloff/source/style/NamedBoolPropertyHdl.cxx82
-rw-r--r--xmloff/source/style/PageHeaderFooterContext.cxx100
-rw-r--r--xmloff/source/style/PageHeaderFooterContext.hxx63
-rw-r--r--xmloff/source/style/PageMasterExportPropMapper.cxx444
-rw-r--r--xmloff/source/style/PageMasterExportPropMapper.hxx79
-rw-r--r--xmloff/source/style/PageMasterImportContext.cxx201
-rw-r--r--xmloff/source/style/PageMasterImportPropMapper.cxx341
-rw-r--r--xmloff/source/style/PageMasterImportPropMapper.hxx62
-rw-r--r--xmloff/source/style/PageMasterPropHdl.cxx426
-rw-r--r--xmloff/source/style/PageMasterPropHdl.hxx180
-rw-r--r--xmloff/source/style/PageMasterPropHdlFactory.cxx150
-rw-r--r--xmloff/source/style/PageMasterPropHdlFactory.hxx47
-rw-r--r--xmloff/source/style/PageMasterPropMapper.cxx63
-rw-r--r--xmloff/source/style/PageMasterPropMapper.hxx46
-rw-r--r--xmloff/source/style/PageMasterStyleMap.cxx191
-rw-r--r--xmloff/source/style/PagePropertySetContext.cxx144
-rw-r--r--xmloff/source/style/PagePropertySetContext.hxx66
-rw-r--r--xmloff/source/style/SinglePropertySetInfoCache.cxx89
-rw-r--r--xmloff/source/style/StyleMap.cxx94
-rw-r--r--xmloff/source/style/TransGradientStyle.cxx329
-rw-r--r--xmloff/source/style/VisAreaContext.cxx134
-rw-r--r--xmloff/source/style/VisAreaExport.cxx84
-rw-r--r--xmloff/source/style/WordWrapPropertyHdl.cxx103
-rw-r--r--xmloff/source/style/XMLBackgroundImageContext.cxx414
-rw-r--r--xmloff/source/style/XMLBackgroundImageExport.cxx174
-rw-r--r--xmloff/source/style/XMLBitmapLogicalSizePropertyHandler.cxx66
-rw-r--r--xmloff/source/style/XMLBitmapRepeatOffsetPropertyHandler.cxx105
-rw-r--r--xmloff/source/style/XMLClipPropertyHandler.cxx147
-rw-r--r--xmloff/source/style/XMLConstantsPropertyHandler.cxx113
-rw-r--r--xmloff/source/style/XMLElementPropertyContext.cxx60
-rw-r--r--xmloff/source/style/XMLFillBitmapSizePropertyHandler.cxx99
-rw-r--r--xmloff/source/style/XMLFontAutoStylePool.cxx293
-rw-r--r--xmloff/source/style/XMLFontStylesContext.cxx290
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorExport.cxx167
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorExport.hxx62
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorImport.cxx193
-rw-r--r--xmloff/source/style/XMLFootnoteSeparatorImport.hxx77
-rw-r--r--xmloff/source/style/XMLIsPercentagePropertyHandler.cxx62
-rw-r--r--xmloff/source/style/XMLPageExport.cxx282
-rw-r--r--xmloff/source/style/XMLPercentOrMeasurePropertyHandler.cxx98
-rw-r--r--xmloff/source/style/XMLRectangleMembersHandler.cxx130
-rw-r--r--xmloff/source/style/adjushdl.cxx140
-rw-r--r--xmloff/source/style/adjushdl.hxx57
-rw-r--r--xmloff/source/style/backhdl.cxx302
-rw-r--r--xmloff/source/style/backhdl.hxx53
-rw-r--r--xmloff/source/style/bordrhdl.cxx458
-rw-r--r--xmloff/source/style/bordrhdl.hxx55
-rw-r--r--xmloff/source/style/breakhdl.cxx197
-rw-r--r--xmloff/source/style/breakhdl.hxx57
-rw-r--r--xmloff/source/style/cdouthdl.cxx336
-rw-r--r--xmloff/source/style/cdouthdl.hxx72
-rw-r--r--xmloff/source/style/chrhghdl.cxx171
-rw-r--r--xmloff/source/style/chrhghdl.hxx64
-rw-r--r--xmloff/source/style/chrlohdl.cxx148
-rw-r--r--xmloff/source/style/chrlohdl.hxx59
-rw-r--r--xmloff/source/style/csmaphdl.cxx144
-rw-r--r--xmloff/source/style/csmaphdl.hxx54
-rw-r--r--xmloff/source/style/durationhdl.cxx81
-rw-r--r--xmloff/source/style/durationhdl.hxx45
-rw-r--r--xmloff/source/style/escphdl.cxx176
-rw-r--r--xmloff/source/style/escphdl.hxx55
-rw-r--r--xmloff/source/style/fonthdl.cxx324
-rw-r--r--xmloff/source/style/fonthdl.hxx82
-rw-r--r--xmloff/source/style/impastp1.cxx132
-rw-r--r--xmloff/source/style/impastp2.cxx61
-rw-r--r--xmloff/source/style/impastp3.cxx185
-rw-r--r--xmloff/source/style/impastp4.cxx527
-rw-r--r--xmloff/source/style/impastpl.hxx227
-rw-r--r--xmloff/source/style/kernihdl.cxx89
-rw-r--r--xmloff/source/style/kernihdl.hxx45
-rw-r--r--xmloff/source/style/lspachdl.cxx199
-rw-r--r--xmloff/source/style/lspachdl.hxx64
-rw-r--r--xmloff/source/style/makefile.mk219
-rw-r--r--xmloff/source/style/numehelp.cxx558
-rw-r--r--xmloff/source/style/opaquhdl.cxx82
-rw-r--r--xmloff/source/style/opaquhdl.hxx45
-rw-r--r--xmloff/source/style/postuhdl.cxx97
-rw-r--r--xmloff/source/style/postuhdl.hxx45
-rw-r--r--xmloff/source/style/prhdlfac.cxx449
-rw-r--r--xmloff/source/style/prstylei.cxx422
-rw-r--r--xmloff/source/style/shadwhdl.cxx175
-rw-r--r--xmloff/source/style/shadwhdl.hxx45
-rw-r--r--xmloff/source/style/shdwdhdl.cxx84
-rw-r--r--xmloff/source/style/shdwdhdl.hxx45
-rw-r--r--xmloff/source/style/styleexp.cxx557
-rw-r--r--xmloff/source/style/tabsthdl.cxx92
-rw-r--r--xmloff/source/style/tabsthdl.hxx48
-rw-r--r--xmloff/source/style/undlihdl.cxx387
-rw-r--r--xmloff/source/style/undlihdl.hxx63
-rw-r--r--xmloff/source/style/uniref.cxx40
-rw-r--r--xmloff/source/style/weighhdl.cxx175
-rw-r--r--xmloff/source/style/weighhdl.hxx46
-rw-r--r--xmloff/source/style/xmlaustp.cxx448
-rw-r--r--xmloff/source/style/xmlbahdl.cxx944
-rw-r--r--xmloff/source/style/xmlbahdl.hxx307
-rw-r--r--xmloff/source/style/xmlexppr.cxx1146
-rw-r--r--xmloff/source/style/xmlimppr.cxx785
-rw-r--r--xmloff/source/style/xmlnume.cxx964
-rw-r--r--xmloff/source/style/xmlnumfe.cxx1820
-rw-r--r--xmloff/source/style/xmlnumfi.cxx2418
-rw-r--r--xmloff/source/style/xmlnumi.cxx1410
-rw-r--r--xmloff/source/style/xmlprcon.cxx104
-rw-r--r--xmloff/source/style/xmlprhdl.cxx41
-rw-r--r--xmloff/source/style/xmlprmap.cxx252
-rw-r--r--xmloff/source/style/xmlstyle.cxx976
-rw-r--r--xmloff/source/style/xmltabe.cxx142
-rw-r--r--xmloff/source/style/xmltabi.cxx293
-rw-r--r--xmloff/source/table/XMLTableExport.cxx593
-rw-r--r--xmloff/source/table/XMLTableImport.cxx826
-rw-r--r--xmloff/source/table/makefile.mk48
-rw-r--r--xmloff/source/table/table.hxx45
-rw-r--r--xmloff/source/table/tabledesignsimporter.cxx103
-rw-r--r--xmloff/source/text/XMLAnchorTypePropHdl.hxx54
-rw-r--r--xmloff/source/text/XMLAutoMarkFileContext.cxx95
-rw-r--r--xmloff/source/text/XMLAutoMarkFileContext.hxx64
-rw-r--r--xmloff/source/text/XMLAutoTextContainerEventImport.cxx82
-rw-r--r--xmloff/source/text/XMLAutoTextContainerEventImport.hxx75
-rw-r--r--xmloff/source/text/XMLAutoTextEventExport.cxx297
-rw-r--r--xmloff/source/text/XMLAutoTextEventExport.hxx159
-rw-r--r--xmloff/source/text/XMLAutoTextEventImport.cxx144
-rw-r--r--xmloff/source/text/XMLAutoTextEventImport.hxx99
-rw-r--r--xmloff/source/text/XMLCalculationSettingsContext.cxx94
-rw-r--r--xmloff/source/text/XMLCalculationSettingsContext.hxx49
-rw-r--r--xmloff/source/text/XMLChangeElementImportContext.cxx113
-rw-r--r--xmloff/source/text/XMLChangeElementImportContext.hxx85
-rw-r--r--xmloff/source/text/XMLChangeImportContext.cxx100
-rw-r--r--xmloff/source/text/XMLChangeImportContext.hxx85
-rw-r--r--xmloff/source/text/XMLChangeInfoContext.cxx109
-rw-r--r--xmloff/source/text/XMLChangeInfoContext.hxx87
-rw-r--r--xmloff/source/text/XMLChangedRegionImportContext.cxx187
-rw-r--r--xmloff/source/text/XMLChangedRegionImportContext.hxx98
-rw-r--r--xmloff/source/text/XMLFootnoteBodyImportContext.cxx74
-rw-r--r--xmloff/source/text/XMLFootnoteBodyImportContext.hxx68
-rw-r--r--xmloff/source/text/XMLFootnoteConfigurationImportContext.cxx457
-rw-r--r--xmloff/source/text/XMLFootnoteImportContext.cxx243
-rw-r--r--xmloff/source/text/XMLFootnoteImportContext.hxx97
-rw-r--r--xmloff/source/text/XMLIndexAlphabeticalSourceContext.cxx271
-rw-r--r--xmloff/source/text/XMLIndexAlphabeticalSourceContext.hxx103
-rw-r--r--xmloff/source/text/XMLIndexBibliographyConfigurationContext.cxx297
-rw-r--r--xmloff/source/text/XMLIndexBibliographyEntryContext.cxx181
-rw-r--r--xmloff/source/text/XMLIndexBibliographyEntryContext.hxx84
-rw-r--r--xmloff/source/text/XMLIndexBibliographySourceContext.cxx111
-rw-r--r--xmloff/source/text/XMLIndexBibliographySourceContext.hxx76
-rw-r--r--xmloff/source/text/XMLIndexBodyContext.cxx77
-rw-r--r--xmloff/source/text/XMLIndexBodyContext.hxx79
-rw-r--r--xmloff/source/text/XMLIndexChapterInfoEntryContext.cxx205
-rw-r--r--xmloff/source/text/XMLIndexChapterInfoEntryContext.hxx81
-rw-r--r--xmloff/source/text/XMLIndexIllustrationSourceContext.cxx92
-rw-r--r--xmloff/source/text/XMLIndexIllustrationSourceContext.hxx72
-rw-r--r--xmloff/source/text/XMLIndexMarkExport.cxx267
-rw-r--r--xmloff/source/text/XMLIndexMarkExport.hxx117
-rw-r--r--xmloff/source/text/XMLIndexObjectSourceContext.cxx190
-rw-r--r--xmloff/source/text/XMLIndexObjectSourceContext.hxx87
-rw-r--r--xmloff/source/text/XMLIndexSimpleEntryContext.cxx146
-rw-r--r--xmloff/source/text/XMLIndexSimpleEntryContext.hxx93
-rw-r--r--xmloff/source/text/XMLIndexSourceBaseContext.cxx277
-rw-r--r--xmloff/source/text/XMLIndexSourceBaseContext.hxx131
-rw-r--r--xmloff/source/text/XMLIndexSpanEntryContext.cxx76
-rw-r--r--xmloff/source/text/XMLIndexSpanEntryContext.hxx72
-rw-r--r--xmloff/source/text/XMLIndexTOCContext.cxx388
-rw-r--r--xmloff/source/text/XMLIndexTOCContext.hxx109
-rw-r--r--xmloff/source/text/XMLIndexTOCSourceContext.cxx196
-rw-r--r--xmloff/source/text/XMLIndexTOCSourceContext.hxx86
-rw-r--r--xmloff/source/text/XMLIndexTOCStylesContext.cxx159
-rw-r--r--xmloff/source/text/XMLIndexTOCStylesContext.hxx97
-rw-r--r--xmloff/source/text/XMLIndexTabStopEntryContext.cxx174
-rw-r--r--xmloff/source/text/XMLIndexTabStopEntryContext.hxx79
-rw-r--r--xmloff/source/text/XMLIndexTableSourceContext.cxx188
-rw-r--r--xmloff/source/text/XMLIndexTableSourceContext.hxx86
-rw-r--r--xmloff/source/text/XMLIndexTemplateContext.cxx504
-rw-r--r--xmloff/source/text/XMLIndexTemplateContext.hxx159
-rw-r--r--xmloff/source/text/XMLIndexTitleTemplateContext.cxx116
-rw-r--r--xmloff/source/text/XMLIndexTitleTemplateContext.hxx90
-rw-r--r--xmloff/source/text/XMLIndexUserSourceContext.cxx231
-rw-r--r--xmloff/source/text/XMLIndexUserSourceContext.hxx93
-rw-r--r--xmloff/source/text/XMLLineNumberingExport.cxx212
-rw-r--r--xmloff/source/text/XMLLineNumberingExport.hxx60
-rw-r--r--xmloff/source/text/XMLLineNumberingImportContext.cxx322
-rw-r--r--xmloff/source/text/XMLLineNumberingSeparatorImportContext.cxx97
-rw-r--r--xmloff/source/text/XMLLineNumberingSeparatorImportContext.hxx72
-rw-r--r--xmloff/source/text/XMLPropertyBackpatcher.cxx291
-rw-r--r--xmloff/source/text/XMLPropertyBackpatcher.hxx156
-rw-r--r--xmloff/source/text/XMLRedlineExport.cxx672
-rw-r--r--xmloff/source/text/XMLRedlineExport.hxx212
-rw-r--r--xmloff/source/text/XMLSectionExport.cxx1922
-rw-r--r--xmloff/source/text/XMLSectionExport.hxx366
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigExport.cxx202
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigExport.hxx59
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigImport.cxx195
-rw-r--r--xmloff/source/text/XMLSectionFootnoteConfigImport.hxx76
-rw-r--r--xmloff/source/text/XMLSectionImportContext.cxx406
-rw-r--r--xmloff/source/text/XMLSectionImportContext.hxx118
-rw-r--r--xmloff/source/text/XMLSectionSourceDDEImportContext.cxx186
-rw-r--r--xmloff/source/text/XMLSectionSourceDDEImportContext.hxx78
-rw-r--r--xmloff/source/text/XMLSectionSourceImportContext.cxx156
-rw-r--r--xmloff/source/text/XMLSectionSourceImportContext.hxx73
-rw-r--r--xmloff/source/text/XMLStringBufferImportContext.cxx83
-rw-r--r--xmloff/source/text/XMLTextCharStyleNamesElementExport.cxx89
-rw-r--r--xmloff/source/text/XMLTextCharStyleNamesElementExport.hxx56
-rw-r--r--xmloff/source/text/XMLTextColumnsContext.cxx503
-rw-r--r--xmloff/source/text/XMLTextColumnsExport.cxx189
-rw-r--r--xmloff/source/text/XMLTextFrameContext.cxx1673
-rw-r--r--xmloff/source/text/XMLTextFrameContext.hxx108
-rw-r--r--xmloff/source/text/XMLTextFrameHyperlinkContext.cxx188
-rw-r--r--xmloff/source/text/XMLTextFrameHyperlinkContext.hxx85
-rw-r--r--xmloff/source/text/XMLTextHeaderFooterContext.cxx198
-rw-r--r--xmloff/source/text/XMLTextListAutoStylePool.cxx311
-rw-r--r--xmloff/source/text/XMLTextListBlockContext.cxx332
-rw-r--r--xmloff/source/text/XMLTextListBlockContext.hxx101
-rw-r--r--xmloff/source/text/XMLTextListItemContext.cxx195
-rw-r--r--xmloff/source/text/XMLTextListItemContext.hxx86
-rw-r--r--xmloff/source/text/XMLTextMarkImportContext.cxx468
-rw-r--r--xmloff/source/text/XMLTextMarkImportContext.hxx124
-rw-r--r--xmloff/source/text/XMLTextMasterPageContext.cxx293
-rw-r--r--xmloff/source/text/XMLTextMasterPageExport.cxx185
-rw-r--r--xmloff/source/text/XMLTextMasterStylesContext.cxx102
-rw-r--r--xmloff/source/text/XMLTextNumRuleInfo.cxx252
-rw-r--r--xmloff/source/text/XMLTextNumRuleInfo.hxx200
-rw-r--r--xmloff/source/text/XMLTextPropertySetContext.cxx158
-rw-r--r--xmloff/source/text/XMLTextPropertySetContext.hxx62
-rw-r--r--xmloff/source/text/XMLTextShapeImportHelper.cxx166
-rw-r--r--xmloff/source/text/XMLTextShapeImportHelper.hxx57
-rw-r--r--xmloff/source/text/XMLTextShapeStyleContext.cxx255
-rw-r--r--xmloff/source/text/XMLTextTableContext.cxx49
-rw-r--r--xmloff/source/text/XMLTrackedChangesImportContext.cxx116
-rw-r--r--xmloff/source/text/XMLTrackedChangesImportContext.hxx75
-rw-r--r--xmloff/source/text/makefile.mk127
-rw-r--r--xmloff/source/text/txtdrope.cxx106
-rw-r--r--xmloff/source/text/txtdrope.hxx51
-rw-r--r--xmloff/source/text/txtdropi.cxx154
-rw-r--r--xmloff/source/text/txtdropi.hxx66
-rw-r--r--xmloff/source/text/txtexppr.cxx1034
-rw-r--r--xmloff/source/text/txtexppr.hxx98
-rw-r--r--xmloff/source/text/txtflde.cxx3619
-rw-r--r--xmloff/source/text/txtfldi.cxx4210
-rw-r--r--xmloff/source/text/txtftne.cxx393
-rw-r--r--xmloff/source/text/txtimp.cxx2557
-rw-r--r--xmloff/source/text/txtimppr.cxx728
-rw-r--r--xmloff/source/text/txtlists.cxx540
-rw-r--r--xmloff/source/text/txtparae.cxx3863
-rw-r--r--xmloff/source/text/txtparai.cxx2441
-rw-r--r--xmloff/source/text/txtparai.hxx132
-rw-r--r--xmloff/source/text/txtparaimphint.hxx296
-rw-r--r--xmloff/source/text/txtprhdl.cxx1492
-rw-r--r--xmloff/source/text/txtprhdl.hxx48
-rw-r--r--xmloff/source/text/txtprmap.cxx903
-rw-r--r--xmloff/source/text/txtsecte.cxx258
-rw-r--r--xmloff/source/text/txtstyle.cxx210
-rw-r--r--xmloff/source/text/txtstyli.cxx579
-rw-r--r--xmloff/source/text/txtvfldi.cxx1474
-rw-r--r--xmloff/source/transform/ActionMapTypesOASIS.hxx96
-rw-r--r--xmloff/source/transform/ActionMapTypesOOo.hxx92
-rw-r--r--xmloff/source/transform/AttrTransformerAction.hxx142
-rw-r--r--xmloff/source/transform/ChartOASISTContext.cxx145
-rw-r--r--xmloff/source/transform/ChartOASISTContext.hxx46
-rw-r--r--xmloff/source/transform/ChartOOoTContext.cxx150
-rw-r--r--xmloff/source/transform/ChartOOoTContext.hxx46
-rw-r--r--xmloff/source/transform/ChartPlotAreaOASISTContext.cxx256
-rw-r--r--xmloff/source/transform/ChartPlotAreaOASISTContext.hxx56
-rw-r--r--xmloff/source/transform/ChartPlotAreaOOoTContext.cxx240
-rw-r--r--xmloff/source/transform/ChartPlotAreaOOoTContext.hxx64
-rw-r--r--xmloff/source/transform/ControlOASISTContext.cxx165
-rw-r--r--xmloff/source/transform/ControlOASISTContext.hxx53
-rw-r--r--xmloff/source/transform/ControlOOoTContext.cxx107
-rw-r--r--xmloff/source/transform/ControlOOoTContext.hxx61
-rw-r--r--xmloff/source/transform/CreateElemTContext.cxx131
-rw-r--r--xmloff/source/transform/CreateElemTContext.hxx57
-rw-r--r--xmloff/source/transform/DeepTContext.cxx181
-rw-r--r--xmloff/source/transform/DeepTContext.hxx84
-rw-r--r--xmloff/source/transform/DlgOASISTContext.cxx116
-rw-r--r--xmloff/source/transform/DlgOASISTContext.hxx46
-rw-r--r--xmloff/source/transform/DocumentTContext.cxx149
-rw-r--r--xmloff/source/transform/DocumentTContext.hxx58
-rw-r--r--xmloff/source/transform/ElemTransformerAction.hxx96
-rw-r--r--xmloff/source/transform/EventMap.cxx111
-rw-r--r--xmloff/source/transform/EventMap.hxx44
-rw-r--r--xmloff/source/transform/EventOASISTContext.cxx420
-rw-r--r--xmloff/source/transform/EventOASISTContext.hxx56
-rw-r--r--xmloff/source/transform/EventOOoTContext.cxx266
-rw-r--r--xmloff/source/transform/EventOOoTContext.hxx64
-rw-r--r--xmloff/source/transform/FamilyType.hxx60
-rw-r--r--xmloff/source/transform/FlatTContext.cxx70
-rw-r--r--xmloff/source/transform/FlatTContext.hxx70
-rw-r--r--xmloff/source/transform/FormPropOASISTContext.cxx225
-rw-r--r--xmloff/source/transform/FormPropOASISTContext.hxx55
-rw-r--r--xmloff/source/transform/FormPropOOoTContext.cxx314
-rw-r--r--xmloff/source/transform/FormPropOOoTContext.hxx70
-rw-r--r--xmloff/source/transform/FrameOASISTContext.cxx200
-rw-r--r--xmloff/source/transform/FrameOASISTContext.hxx68
-rw-r--r--xmloff/source/transform/FrameOOoTContext.cxx174
-rw-r--r--xmloff/source/transform/FrameOOoTContext.hxx60
-rw-r--r--xmloff/source/transform/IgnoreTContext.cxx109
-rw-r--r--xmloff/source/transform/IgnoreTContext.hxx89
-rw-r--r--xmloff/source/transform/MergeElemTContext.cxx346
-rw-r--r--xmloff/source/transform/MergeElemTContext.hxx70
-rw-r--r--xmloff/source/transform/MetaTContext.cxx146
-rw-r--r--xmloff/source/transform/MetaTContext.hxx83
-rw-r--r--xmloff/source/transform/MutableAttrList.cxx203
-rw-r--r--xmloff/source/transform/MutableAttrList.hxx87
-rw-r--r--xmloff/source/transform/NotesTContext.cxx232
-rw-r--r--xmloff/source/transform/NotesTContext.hxx61
-rw-r--r--xmloff/source/transform/OOo2Oasis.cxx2206
-rw-r--r--xmloff/source/transform/OOo2Oasis.hxx114
-rw-r--r--xmloff/source/transform/Oasis2OOo.cxx2092
-rw-r--r--xmloff/source/transform/Oasis2OOo.hxx71
-rw-r--r--xmloff/source/transform/PersAttrListTContext.cxx196
-rw-r--r--xmloff/source/transform/PersAttrListTContext.hxx122
-rw-r--r--xmloff/source/transform/PersMixedContentTContext.cxx160
-rw-r--r--xmloff/source/transform/PersMixedContentTContext.hxx69
-rw-r--r--xmloff/source/transform/ProcAddAttrTContext.cxx80
-rw-r--r--xmloff/source/transform/ProcAddAttrTContext.hxx58
-rw-r--r--xmloff/source/transform/ProcAttrTContext.cxx84
-rw-r--r--xmloff/source/transform/ProcAttrTContext.hxx66
-rw-r--r--xmloff/source/transform/PropType.hxx50
-rw-r--r--xmloff/source/transform/PropertyActionsOASIS.cxx554
-rw-r--r--xmloff/source/transform/PropertyActionsOASIS.hxx75
-rw-r--r--xmloff/source/transform/PropertyActionsOOo.cxx1064
-rw-r--r--xmloff/source/transform/PropertyActionsOOo.hxx79
-rw-r--r--xmloff/source/transform/RenameElemTContext.cxx93
-rw-r--r--xmloff/source/transform/RenameElemTContext.hxx73
-rw-r--r--xmloff/source/transform/StyleOASISTContext.cxx1013
-rw-r--r--xmloff/source/transform/StyleOASISTContext.hxx76
-rw-r--r--xmloff/source/transform/StyleOOoTContext.cxx1377
-rw-r--r--xmloff/source/transform/StyleOOoTContext.hxx75
-rw-r--r--xmloff/source/transform/TContextVector.hxx42
-rw-r--r--xmloff/source/transform/Transformer.hxx45
-rw-r--r--xmloff/source/transform/TransformerAction.hxx35
-rw-r--r--xmloff/source/transform/TransformerActionInit.hxx51
-rw-r--r--xmloff/source/transform/TransformerActions.cxx92
-rw-r--r--xmloff/source/transform/TransformerActions.hxx161
-rw-r--r--xmloff/source/transform/TransformerBase.cxx1489
-rw-r--r--xmloff/source/transform/TransformerBase.hxx208
-rw-r--r--xmloff/source/transform/TransformerContext.cxx113
-rw-r--r--xmloff/source/transform/TransformerContext.hxx116
-rw-r--r--xmloff/source/transform/TransformerTokenMap.cxx54
-rw-r--r--xmloff/source/transform/TransformerTokenMap.hxx50
-rw-r--r--xmloff/source/transform/XMLFilterRegistration.cxx228
-rw-r--r--xmloff/source/transform/makefile.mk95
-rw-r--r--xmloff/source/transform/xof.map8
-rw-r--r--xmloff/source/xforms/SchemaContext.cxx100
-rw-r--r--xmloff/source/xforms/SchemaContext.hxx84
-rw-r--r--xmloff/source/xforms/SchemaRestrictionContext.cxx380
-rw-r--r--xmloff/source/xforms/SchemaRestrictionContext.hxx91
-rw-r--r--xmloff/source/xforms/SchemaSimpleTypeContext.cxx115
-rw-r--r--xmloff/source/xforms/SchemaSimpleTypeContext.hxx86
-rw-r--r--xmloff/source/xforms/TokenContext.cxx146
-rw-r--r--xmloff/source/xforms/TokenContext.hxx114
-rw-r--r--xmloff/source/xforms/XFormsBindContext.cxx190
-rw-r--r--xmloff/source/xforms/XFormsBindContext.hxx88
-rw-r--r--xmloff/source/xforms/XFormsInstanceContext.cxx158
-rw-r--r--xmloff/source/xforms/XFormsInstanceContext.hxx99
-rw-r--r--xmloff/source/xforms/XFormsModelContext.cxx163
-rw-r--r--xmloff/source/xforms/XFormsModelContext.hxx85
-rw-r--r--xmloff/source/xforms/XFormsModelExport.hxx42
-rw-r--r--xmloff/source/xforms/XFormsSubmissionContext.cxx182
-rw-r--r--xmloff/source/xforms/XFormsSubmissionContext.hxx83
-rw-r--r--xmloff/source/xforms/makefile.mk58
-rw-r--r--xmloff/source/xforms/xformsapi.cxx348
-rw-r--r--xmloff/source/xforms/xformsapi.hxx93
-rw-r--r--xmloff/source/xforms/xformsexport.cxx835
-rw-r--r--xmloff/source/xforms/xformsimport.cxx206
-rw-r--r--xmloff/util/makefile.mk112
-rw-r--r--xmloff/util/makefile.pmk30
-rw-r--r--xmloff/xml/components.xml473
-rw-r--r--xmlscript/dtd/dialog.dtd405
-rw-r--r--xmlscript/dtd/libraries.dtd45
-rw-r--r--xmlscript/dtd/library.dtd44
-rw-r--r--xmlscript/dtd/module.dtd35
-rw-r--r--xmlscript/inc/makefile.mk47
-rw-r--r--xmlscript/inc/pch/precompiled_xmlscript.cxx29
-rw-r--r--xmlscript/inc/pch/precompiled_xmlscript.hxx32
-rw-r--r--xmlscript/inc/xmlscript/xml_helper.hxx146
-rw-r--r--xmlscript/inc/xmlscript/xml_import.hxx66
-rw-r--r--xmlscript/inc/xmlscript/xmldlg_imexp.hxx89
-rw-r--r--xmlscript/inc/xmlscript/xmllib_imexp.hxx94
-rw-r--r--xmlscript/inc/xmlscript/xmlmod_imexp.hxx64
-rw-r--r--xmlscript/inc/xmlscript/xmlns.h45
-rw-r--r--xmlscript/prj/build.lst10
-rw-r--r--xmlscript/prj/d.lst13
-rw-r--r--xmlscript/source/inc/misc.hxx63
-rw-r--r--xmlscript/source/misc/makefile.mk48
-rw-r--r--xmlscript/source/misc/unoservices.cxx133
-rw-r--r--xmlscript/source/xml_helper/makefile.mk50
-rw-r--r--xmlscript/source/xml_helper/xml_byteseq.cxx173
-rw-r--r--xmlscript/source/xml_helper/xml_element.cxx132
-rw-r--r--xmlscript/source/xml_helper/xml_impctx.cxx904
-rw-r--r--xmlscript/source/xmldlg_imexp/common.hxx42
-rw-r--r--xmlscript/source/xmldlg_imexp/exp_share.hxx245
-rw-r--r--xmlscript/source/xmldlg_imexp/imp_share.hxx1020
-rw-r--r--xmlscript/source/xmldlg_imexp/makefile.mk52
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_addfunc.cxx138
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_expmodels.cxx1167
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_export.cxx1610
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_impmodels.cxx2286
-rw-r--r--xmlscript/source/xmldlg_imexp/xmldlg_import.cxx1905
-rw-r--r--xmlscript/source/xmlflat_imexp/makefile.mk50
-rw-r--r--xmlscript/source/xmlflat_imexp/xmlbas_export.cxx551
-rw-r--r--xmlscript/source/xmlflat_imexp/xmlbas_export.hxx132
-rw-r--r--xmlscript/source/xmlflat_imexp/xmlbas_import.cxx931
-rw-r--r--xmlscript/source/xmlflat_imexp/xmlbas_import.hxx347
-rw-r--r--xmlscript/source/xmllib_imexp/imp_share.hxx263
-rw-r--r--xmlscript/source/xmllib_imexp/makefile.mk50
-rw-r--r--xmlscript/source/xmllib_imexp/xmllib_export.cxx176
-rw-r--r--xmlscript/source/xmllib_imexp/xmllib_import.cxx372
-rw-r--r--xmlscript/source/xmlmod_imexp/imp_share.hxx143
-rw-r--r--xmlscript/source/xmlmod_imexp/makefile.mk49
-rw-r--r--xmlscript/source/xmlmod_imexp/xmlmod_export.cxx77
-rw-r--r--xmlscript/source/xmlmod_imexp/xmlmod_import.cxx227
-rw-r--r--xmlscript/test/imexp.cxx242
-rw-r--r--xmlscript/test/makefile.mk85
-rw-r--r--xmlscript/test/test.xml106
-rw-r--r--xmlscript/test/w3c.jpgbin0 -> 2028 bytes
-rw-r--r--xmlscript/util/makefile.mk76
-rw-r--r--xmlscript/util/target.pmk35
-rw-r--r--xmlscript/util/xcr.flt13
-rw-r--r--xmlsecurity/doc/OpenDocumentSignatures-TestIntegration.sxwbin0 -> 14189 bytes
-rw-r--r--xmlsecurity/doc/OpenDocumentSignatures-Workflow.sxdbin0 -> 10310 bytes
-rw-r--r--xmlsecurity/doc/OpenDocumentSignatures.sxwbin0 -> 16195 bytes
-rw-r--r--xmlsecurity/doc/XMLSecurityFramework.sxwbin0 -> 187975 bytes
-rw-r--r--xmlsecurity/inc/makefile.mk47
-rw-r--r--xmlsecurity/inc/pch/precompiled_xmlsecurity.cxx29
-rw-r--r--xmlsecurity/inc/pch/precompiled_xmlsecurity.hxx32
-rw-r--r--xmlsecurity/inc/xmlsecurity/biginteger.hxx43
-rw-r--r--xmlsecurity/inc/xmlsecurity/certificatechooser.hxx94
-rw-r--r--xmlsecurity/inc/xmlsecurity/certificateviewer.hxx165
-rw-r--r--xmlsecurity/inc/xmlsecurity/certvalidity.hxx37
-rw-r--r--xmlsecurity/inc/xmlsecurity/digitalsignaturesdialog.hxx151
-rw-r--r--xmlsecurity/inc/xmlsecurity/documentsignaturehelper.hxx103
-rw-r--r--xmlsecurity/inc/xmlsecurity/global.hrc49
-rw-r--r--xmlsecurity/inc/xmlsecurity/macrosecurity.hxx175
-rw-r--r--xmlsecurity/inc/xmlsecurity/sigstruct.hxx112
-rw-r--r--xmlsecurity/inc/xmlsecurity/stbcontrl.hxx57
-rw-r--r--xmlsecurity/inc/xmlsecurity/warnings.hxx89
-rw-r--r--xmlsecurity/inc/xmlsecurity/xmlsignaturehelper.hxx207
-rw-r--r--xmlsecurity/prj/build.lst11
-rw-r--r--xmlsecurity/prj/d.lst10
-rw-r--r--xmlsecurity/source/component/certificatecontainer.cxx171
-rw-r--r--xmlsecurity/source/component/certificatecontainer.hxx99
-rw-r--r--xmlsecurity/source/component/documentdigitalsignatures.cxx516
-rw-r--r--xmlsecurity/source/component/documentdigitalsignatures.hxx101
-rw-r--r--xmlsecurity/source/component/makefile.mk54
-rw-r--r--xmlsecurity/source/component/registerservices.cxx130
-rw-r--r--xmlsecurity/source/component/warnbox.src36
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.cxx238
-rw-r--r--xmlsecurity/source/dialogs/certificatechooser.src87
-rw-r--r--xmlsecurity/source/dialogs/certificateviewer.cxx550
-rw-r--r--xmlsecurity/source/dialogs/certificateviewer.src347
-rw-r--r--xmlsecurity/source/dialogs/dialogs.hrc360
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.cxx844
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.hrc36
-rw-r--r--xmlsecurity/source/dialogs/digitalsignaturesdialog.src223
-rw-r--r--xmlsecurity/source/dialogs/helpids.hrc67
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.cxx469
-rw-r--r--xmlsecurity/source/dialogs/macrosecurity.src240
-rw-r--r--xmlsecurity/source/dialogs/makefile.mk64
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.cxx431
-rw-r--r--xmlsecurity/source/dialogs/resourcemanager.hxx69
-rw-r--r--xmlsecurity/source/dialogs/stbcontrl.cxx188
-rw-r--r--xmlsecurity/source/dialogs/warnings.cxx145
-rw-r--r--xmlsecurity/source/dialogs/warnings.src112
-rw-r--r--xmlsecurity/source/framework/buffernode.cxx1279
-rw-r--r--xmlsecurity/source/framework/buffernode.hxx137
-rw-r--r--xmlsecurity/source/framework/decryptorimpl.cxx245
-rw-r--r--xmlsecurity/source/framework/decryptorimpl.hxx136
-rw-r--r--xmlsecurity/source/framework/elementcollector.cxx296
-rw-r--r--xmlsecurity/source/framework/elementcollector.hxx108
-rw-r--r--xmlsecurity/source/framework/elementmark.cxx105
-rw-r--r--xmlsecurity/source/framework/elementmark.hxx85
-rw-r--r--xmlsecurity/source/framework/encryptionengine.cxx216
-rw-r--r--xmlsecurity/source/framework/encryptionengine.hxx103
-rw-r--r--xmlsecurity/source/framework/encryptorimpl.cxx281
-rw-r--r--xmlsecurity/source/framework/encryptorimpl.hxx150
-rw-r--r--xmlsecurity/source/framework/makefile.mk61
-rw-r--r--xmlsecurity/source/framework/saxeventkeeperimpl.cxx1463
-rw-r--r--xmlsecurity/source/framework/saxeventkeeperimpl.hxx369
-rw-r--r--xmlsecurity/source/framework/securityengine.cxx88
-rw-r--r--xmlsecurity/source/framework/securityengine.hxx172
-rw-r--r--xmlsecurity/source/framework/signaturecreatorimpl.cxx297
-rw-r--r--xmlsecurity/source/framework/signaturecreatorimpl.hxx147
-rw-r--r--xmlsecurity/source/framework/signatureengine.cxx268
-rw-r--r--xmlsecurity/source/framework/signatureengine.hxx144
-rw-r--r--xmlsecurity/source/framework/signatureverifierimpl.cxx242
-rw-r--r--xmlsecurity/source/framework/signatureverifierimpl.hxx135
-rw-r--r--xmlsecurity/source/framework/xmlencryptiontemplateimpl.cxx142
-rw-r--r--xmlsecurity/source/framework/xmlencryptiontemplateimpl.hxx113
-rw-r--r--xmlsecurity/source/framework/xmlsignaturetemplateimpl.cxx167
-rw-r--r--xmlsecurity/source/framework/xmlsignaturetemplateimpl.hxx125
-rw-r--r--xmlsecurity/source/framework/xsec_framework.cxx250
-rw-r--r--xmlsecurity/source/helper/documentsignaturehelper.cxx462
-rw-r--r--xmlsecurity/source/helper/makefile.mk54
-rw-r--r--xmlsecurity/source/helper/xmlsignaturehelper.cxx467
-rw-r--r--xmlsecurity/source/helper/xmlsignaturehelper2.cxx232
-rw-r--r--xmlsecurity/source/helper/xmlsignaturehelper2.hxx134
-rw-r--r--xmlsecurity/source/helper/xsecctl.cxx1498
-rw-r--r--xmlsecurity/source/helper/xsecctl.hxx577
-rw-r--r--xmlsecurity/source/helper/xsecparser.cxx377
-rw-r--r--xmlsecurity/source/helper/xsecparser.hxx165
-rw-r--r--xmlsecurity/source/helper/xsecsign.cxx374
-rw-r--r--xmlsecurity/source/helper/xsecverify.cxx331
-rw-r--r--xmlsecurity/source/xmlsec/biginteger.cxx126
-rw-r--r--xmlsecurity/source/xmlsec/certificateextension_xmlsecimpl.cxx97
-rw-r--r--xmlsecurity/source/xmlsec/certificateextension_xmlsecimpl.hxx65
-rw-r--r--xmlsecurity/source/xmlsec/certvalidity.cxx98
-rw-r--r--xmlsecurity/source/xmlsec/diagnose.cxx77
-rw-r--r--xmlsecurity/source/xmlsec/diagnose.hxx43
-rw-r--r--xmlsecurity/source/xmlsec/errorcallback.cxx211
-rw-r--r--xmlsecurity/source/xmlsec/errorcallback.hxx44
-rw-r--r--xmlsecurity/source/xmlsec/makefile.mk72
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/makefile.mk73
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/oid.hxx158
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.cxx1312
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/securityenvironment_mscryptimpl.hxx195
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.cxx238
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/seinitializer_mscryptimpl.hxx108
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.cxx659
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/x509certificate_mscryptimpl.hxx114
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.cxx390
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlencryption_mscryptimpl.hxx102
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.cxx345
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsecuritycontext_mscryptimpl.hxx137
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.cxx334
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xmlsignature_mscryptimpl.hxx102
-rw-r--r--xmlsecurity/source/xmlsec/mscrypt/xsec_mscrypt.cxx164
-rw-r--r--xmlsecurity/source/xmlsec/nss/certerrors.h384
-rw-r--r--xmlsecurity/source/xmlsec/nss/makefile.mk142
-rw-r--r--xmlsecurity/source/xmlsec/nss/nssrenam.h49
-rw-r--r--xmlsecurity/source/xmlsec/nss/secerror.cxx165
-rw-r--r--xmlsecurity/source/xmlsec/nss/secerror.hxx40
-rw-r--r--xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.cxx1148
-rw-r--r--xmlsecurity/source/xmlsec/nss/securityenvironment_nssimpl.hxx183
-rw-r--r--xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.cxx516
-rw-r--r--xmlsecurity/source/xmlsec/nss/seinitializer_nssimpl.hxx108
-rw-r--r--xmlsecurity/source/xmlsec/nss/x509certificate_nssimpl.cxx471
-rw-r--r--xmlsecurity/source/xmlsec/nss/x509certificate_nssimpl.hxx108
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.cxx426
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlencryption_nssimpl.hxx102
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlsecuritycontext_nssimpl.cxx325
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlsecuritycontext_nssimpl.hxx139
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.cxx354
-rw-r--r--xmlsecurity/source/xmlsec/nss/xmlsignature_nssimpl.hxx102
-rw-r--r--xmlsecurity/source/xmlsec/nss/xsec_nss.cxx165
-rw-r--r--xmlsecurity/source/xmlsec/saxhelper.cxx450
-rw-r--r--xmlsecurity/source/xmlsec/saxhelper.hxx88
-rw-r--r--xmlsecurity/source/xmlsec/xmldocumentwrapper_xmlsecimpl.cxx1153
-rw-r--r--xmlsecurity/source/xmlsec/xmldocumentwrapper_xmlsecimpl.hxx284
-rw-r--r--xmlsecurity/source/xmlsec/xmlelementwrapper_xmlsecimpl.cxx187
-rw-r--r--xmlsecurity/source/xmlsec/xmlelementwrapper_xmlsecimpl.hxx108
-rw-r--r--xmlsecurity/source/xmlsec/xmlstreamio.cxx244
-rw-r--r--xmlsecurity/source/xmlsec/xmlstreamio.hxx46
-rw-r--r--xmlsecurity/source/xmlsec/xsec_xmlsec.cxx231
-rwxr-xr-xxmlsecurity/test_docs/CAs/README.txt383
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_1/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_10/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/index.txt34
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1000.pem57
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1002.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1003.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1004.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1005.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1006.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1007.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1008.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1009.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100A.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100B.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100C.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100D.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100E.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/100F.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1010.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1011.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1012.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1013.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1014.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1015.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1016.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1017.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1018.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1019.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101A.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101B.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101C.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101D.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101E.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/101F.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1020.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/newcerts/1021.pem61
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_11/openssl.cfg295
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_2/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_3/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/README.txt4
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/newcerts/1001.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_4/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/newcerts/1001.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_5/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/README.txt5
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/crl/Root_6.crlbin0 -> 316 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/newcerts/1001.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_6/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/README.txt10
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/crl/Root_7.crlbin0 -> 353 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/newcerts/1000.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/newcerts/1001.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_7/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/README.txt9
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/crl/Root_8.crlbin0 -> 353 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/newcerts/1000.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/newcerts/1001.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_8/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/DO_NOT_INSTALL_THIS_ROOT_CERT.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/DO_NO_INSTALL_THIS_ROOT_CERTIFICATE0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/Root_9.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/cacert.pem19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Root_9/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/newcerts/1000.pem58
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_1/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/DO_NOT_INSTALL_THIS_CERTIFICATE0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/README.txt19
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/DO_NOT_INSTALL_THIS_CERTIFICATE0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/Sub_CA_1_Root_10.crtbin0 -> 781 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/crl/Sub_CA_1_Root_10.crlbin0 -> 326 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/newcerts/1000.pem67
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_10/openssl.cfg293
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/newcerts/1000.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/req.pem11
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_2/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/newcerts/1000.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/req.pem11
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_3/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/README.txt4
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/newcerts/1000.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/newcerts/1001.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_4/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/README.txt5
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/crl/Sub_CA_1_Root_5.crlbin0 -> 325 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/newcerts/1002.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_5/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/crl/DO_NOT_CREATE_A_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_6/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/README.txt3
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/crl/Sub_CA_1_Root_7.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/newcerts/1001.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_7/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/README.txt13
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/crl/Sub_CA_1_Root_8.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/newcerts/1001.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_8/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/index.txt1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/newcerts/1000.pem58
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_1_Root_9/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/README.txt4
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/cacert.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/newcerts/1001.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/newcerts/1002.pem60
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_4/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/README.txt12
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/crl/Sub_CA_2_Root_7.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/newcerts/1000.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/newcerts/1001.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_7/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/README.txt13
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/cacert.pem66
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/crl/DO_NOT_INSTALL_THIS_CRL0
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/crl/Sub_CA_2_Root_8.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/crlnumber1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/index.txt2
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/index.txt.attr1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/newcerts/1002.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/newcerts/1003.pem62
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/private/cakey.pem18
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/demoCA/serial1
-rwxr-xr-xxmlsecurity/test_docs/CAs/Sub_CA_2_Root_8/openssl.cfg292
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_1.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_10.crtbin0 -> 779 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_11.crtbin0 -> 779 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_2.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_3.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_4.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_5.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_6.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_7.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Root_8.crtbin0 -> 776 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_1.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_2.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_3.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_4.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_5.crtbin0 -> 842 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_6.crtbin0 -> 842 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_7.crtbin0 -> 842 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_8.crtbin0 -> 829 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_1_Root_9.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_2_Root_4.crtbin0 -> 778 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_2_Root_7.crtbin0 -> 842 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/ca_certs/Sub_CA_2_Root_8.crtbin0 -> 829 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Root_10.crlbin0 -> 317 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Root_11.crlbin0 -> 317 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Root_3.crlbin0 -> 316 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Root_4.crlbin0 -> 353 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Root_9.crlbin0 -> 316 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Sub_CA_1_Root_2.crlbin0 -> 325 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Sub_CA_1_Root_4.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Sub_CA_1_Root_9.crlbin0 -> 325 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/crl/Sub_CA_2_Root_4.crlbin0 -> 362 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_10_Root_11.crtbin0 -> 739 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_11_Root_11.crtbin0 -> 733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_12_Root_11.crtbin0 -> 729 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_13_Root_11.crtbin0 -> 739 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_14_Root_11.crtbin0 -> 729 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_15_Root_11.crtbin0 -> 720 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_16_Root_11.crtbin0 -> 739 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_17_Root_11.crtbin0 -> 749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_18_Root_11.crtbin0 -> 714 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_19_Root_11.crtbin0 -> 710 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Root_11.crtbin0 -> 699 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_1.crtbin0 -> 706 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_10.crtbin0 -> 828 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_2.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_3.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_4.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_5.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_6.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_7.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_8.crtbin0 -> 726 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_1_Root_9.crtbin0 -> 673 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_2_Root_4.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_2_Root_7.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_1_Sub_CA_2_Root_8.crtbin0 -> 726 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_20_Root_11.crtbin0 -> 710 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_21_Root_11.crtbin0 -> 727 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_22_Root_11.crtbin0 -> 739 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_23_Root_11.crtbin0 -> 733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_24_Root_11.crtbin0 -> 729 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_25_Root_11.crtbin0 -> 737 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_26_Root_11.crtbin0 -> 729 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_27_Root_11.crtbin0 -> 705 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_28_Root_11.crtbin0 -> 700 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_29_Root_11.crtbin0 -> 698 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Root_11.crtbin0 -> 695 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_1_Root_4.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_1_Root_7.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_1_Root_8.crtbin0 -> 726 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_2_Root_4.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_2_Root_7.crtbin0 -> 746 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_2_Sub_CA_2_Root_8.crtbin0 -> 726 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_30_Root_11.crtbin0 -> 716 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_31_Root_11.crtbin0 -> 745 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_3_Root_11.crtbin0 -> 719 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_4_Root_11.crtbin0 -> 738 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_5_Root_11.crtbin0 -> 748 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_6_Root_11.crtbin0 -> 713 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_7_Root_11.crtbin0 -> 709 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_8_Root_11.crtbin0 -> 709 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/end_certs/User_9_Root_11.crtbin0 -> 726 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_10_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_11_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_12_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_13_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_14_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_15_Root_11.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_16_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_17_Root_11.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_18_Root_11.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_19_Root_11.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Root_11.p12bin0 -> 1717 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_1.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_10.p12bin0 -> 1845 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_2.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_3.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_4.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_5.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_6.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_7.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_8.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_1_Root_9.p12bin0 -> 1693 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_2_Root_4.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_2_Root_7.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_1_Sub_CA_2_Root_8.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_20_Root_11.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_21_Root_11.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_22_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_23_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_24_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_25_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_26_Root_11.p12bin0 -> 1749 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_27_Root_11.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_28_Root_11.p12bin0 -> 1717 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_29_Root_11.p12bin0 -> 1717 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Root_11.p12bin0 -> 1709 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_1_Root_4.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_1_Root_7.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_1_Root_8.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_2_Root_4.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_2_Root_7.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_2_Sub_CA_2_Root_8.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_30_Root_11.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_31_Root_11.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_3_Root_11.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_4_Root_11.p12bin0 -> 1757 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_5_Root_11.p12bin0 -> 1765 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_6_Root_11.p12bin0 -> 1733 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_7_Root_11.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_8_Root_11.p12bin0 -> 1725 bytes
-rwxr-xr-xxmlsecurity/test_docs/certs/p12/User_9_Root_11.p12bin0 -> 1741 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/aia_ca_issuers.odtbin0 -> 9511 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/aia_ocsp.odtbin0 -> 9376 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/aia_ocsp_revoked_chain.odtbin0 -> 9370 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/aia_ocsp_revoked_leaf.odtbin0 -> 9379 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/aia_ocsp_revoked_leaf_chain.odtbin0 -> 9378 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crl.odtbin0 -> 9354 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crl_revoked_chain.odtbin0 -> 9352 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crl_revoked_leaf.odtbin0 -> 9363 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crl_revoked_leaf_chain.odtbin0 -> 9351 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp.odtbin0 -> 9379 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp_no_intermediate_ca_revocation_info.odtbin0 -> 9382 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp_no_root_revocation_info.odtbin0 -> 9379 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp_revoked_chain.odtbin0 -> 9381 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp_revoked_leaf.odtbin0 -> 9380 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/crldp_revoked_leaf_chain.odtbin0 -> 9383 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_cyrillic_bmpstring.odtbin0 -> 9392 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_latin_ext_greak_bmpstring.odtbin0 -> 9388 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/dn_quoting.odtbin0 -> 28429 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/incomplete_path.odtbin0 -> 9308 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_doc1.odtbin0 -> 9550 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_doc2.odtbin0 -> 6989 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_macro1.odtbin0 -> 12911 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_macro2.odtbin0 -> 12929 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_macro3.odtbin0 -> 13043 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_macro4.odtbin0 -> 13079 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo2_x_macro5.odtbin0 -> 20336 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo3_2_doc1.odtbin0 -> 9200 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo3_2_doc3.odtbin0 -> 8908 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo3_2_doc4.odtbin0 -> 8997 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/invalid_ooo_3_2_doc2.odtbin0 -> 9199 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/ocsp_crl.odtbin0 -> 9444 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/ocsp_crl_revoked_leaf.odtbin0 -> 9447 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/stateOrProvinceName.odtbin0 -> 10534 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_no_revocation.odtbin0 -> 9341 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_no_root_revocation_info.odtbin0 -> 9349 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_no_sub_ca_revocation_info.odtbin0 -> 9352 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo2_x_doc1.odtbin0 -> 9880 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo2_x_doc_macro.odtbin0 -> 12425 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo2_x_doc_unsigned_macro.odtbin0 -> 10821 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_0_doc1.odtbin0 -> 12565 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_0_doc_macro.odtbin0 -> 15656 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_0_doc_unsigned_macro.odtbin0 -> 13975 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_2_doc1.odtbin0 -> 12514 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_2_doc_macro.odtbin0 -> 15579 bytes
-rwxr-xr-xxmlsecurity/test_docs/documents/valid_ooo3_2_doc_unsigned_macro.odtbin0 -> 13929 bytes
-rwxr-xr-xxmlsecurity/test_docs/test_description.odtbin0 -> 24746 bytes
-rwxr-xr-xxmlsecurity/test_docs/tools/README.txt23
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/build.xml74
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/dist/README.TXT33
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/dist/httpserv.jarbin0 -> 6994 bytes
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/manifest.mf3
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/nbproject/build-impl.xml700
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/nbproject/genfiles.properties8
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/nbproject/project.properties64
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/nbproject/project.xml15
-rwxr-xr-xxmlsecurity/test_docs/tools/httpserv/src/httpserv/Main.java213
-rw-r--r--xmlsecurity/tools/demo/JavaFlatFilter.java225
-rw-r--r--xmlsecurity/tools/demo/makefile.mk157
-rw-r--r--xmlsecurity/tools/demo/manifest1
-rw-r--r--xmlsecurity/tools/demo/mozprofile.cxx108
-rw-r--r--xmlsecurity/tools/demo/multisigdemo.cxx236
-rw-r--r--xmlsecurity/tools/demo/performance.cxx1880
-rw-r--r--xmlsecurity/tools/demo/readme.txt22
-rw-r--r--xmlsecurity/tools/demo/signdemo.cxx157
-rw-r--r--xmlsecurity/tools/demo/util.cxx111
-rw-r--r--xmlsecurity/tools/demo/util.hxx50
-rw-r--r--xmlsecurity/tools/demo/util2.cxx426
-rw-r--r--xmlsecurity/tools/demo/verifydemo.cxx109
-rw-r--r--xmlsecurity/tools/examples/demo-sample.gifbin0 -> 94 bytes
-rw-r--r--xmlsecurity/tools/examples/demo-sample.sxwbin0 -> 19891 bytes
-rw-r--r--xmlsecurity/tools/examples/demo-sample.xml3
-rw-r--r--xmlsecurity/tools/examples/enc-1.xml31
-rw-r--r--xmlsecurity/tools/examples/enc-2.xml58
-rw-r--r--xmlsecurity/tools/examples/eval_export.txt7
-rw-r--r--xmlsecurity/tools/examples/eval_import.txt14
-rw-r--r--xmlsecurity/tools/examples/evaluate_win.bat138
-rw-r--r--xmlsecurity/tools/examples/readme.txt7
-rw-r--r--xmlsecurity/tools/examples/s-in-e-1.xml53
-rw-r--r--xmlsecurity/tools/examples/s-in-e-2.xml53
-rw-r--r--xmlsecurity/tools/examples/sign-0.xml27
-rw-r--r--xmlsecurity/tools/examples/sign-1.xml29
-rw-r--r--xmlsecurity/tools/examples/sign-2.xml33
-rw-r--r--xmlsecurity/tools/examples/sign-3.xml41
-rw-r--r--xmlsecurity/tools/examples/sign-4.xml57
-rw-r--r--xmlsecurity/tools/examples/sign-5.xml89
-rw-r--r--xmlsecurity/tools/examples/uno_win.bat23
-rw-r--r--xmlsecurity/tools/examples/warmup.xml27
-rw-r--r--xmlsecurity/tools/standalone/csfit/certmngr.cxx189
-rw-r--r--xmlsecurity/tools/standalone/csfit/decrypter.cxx272
-rw-r--r--xmlsecurity/tools/standalone/csfit/encrypter.cxx309
-rw-r--r--xmlsecurity/tools/standalone/csfit/helper.cxx266
-rw-r--r--xmlsecurity/tools/standalone/csfit/helper.hxx241
-rw-r--r--xmlsecurity/tools/standalone/csfit/makefile.mk155
-rw-r--r--xmlsecurity/tools/standalone/csfit/signer.cxx370
-rw-r--r--xmlsecurity/tools/standalone/csfit/util/makefile.mk174
-rw-r--r--xmlsecurity/tools/standalone/csfit/verifier.cxx340
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/certmngr.cxx152
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/decrypter.cxx246
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/encrypter.cxx308
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/helper.cxx220
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/helper.hxx204
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/makefile.mk147
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/signer.cxx342
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/util/makefile.mk174
-rw-r--r--xmlsecurity/tools/standalone/mscsfit/verifier.cxx328
-rw-r--r--xmlsecurity/tools/standalone/readme.txt19
-rw-r--r--xmlsecurity/tools/uno/AdapterNode.java165
-rw-r--r--xmlsecurity/tools/uno/AttributeListHelper.java148
-rw-r--r--xmlsecurity/tools/uno/DomToTreeModelAdapter.java166
-rw-r--r--xmlsecurity/tools/uno/EncryptionEntity.java218
-rw-r--r--xmlsecurity/tools/uno/ParsingThread.java248
-rw-r--r--xmlsecurity/tools/uno/SAXEventCollector.java195
-rw-r--r--xmlsecurity/tools/uno/SAXEventPrinter.java320
-rw-r--r--xmlsecurity/tools/uno/SecurityEntity.java202
-rw-r--r--xmlsecurity/tools/uno/SignatureEntity.java288
-rw-r--r--xmlsecurity/tools/uno/TestTool.java1392
-rw-r--r--xmlsecurity/tools/uno/UnsolvedReferenceTableModel.java89
-rw-r--r--xmlsecurity/tools/uno/XMLFileFilter.java79
-rw-r--r--xmlsecurity/tools/uno/XMLSecurityFrameworkController.java1085
-rw-r--r--xmlsecurity/tools/uno/XMLTreeCellRanderer.java85
-rw-r--r--xmlsecurity/tools/uno/current.gifbin0 -> 94 bytes
-rw-r--r--xmlsecurity/tools/uno/makefile.mk48
-rw-r--r--xmlsecurity/util/exports_xsmscrypt.dxp3
-rw-r--r--xmlsecurity/util/exports_xsnss.dxp3
-rw-r--r--xmlsecurity/util/makefile.mk174
-rw-r--r--xmlsecurity/util/target.pmk32
-rw-r--r--xmlsecurity/util/xmlsecurity.map8
-rw-r--r--xmlsecurity/util/xsec_fw.dxp3
-rw-r--r--xmlsecurity/util/xsecctl.flt19
-rw-r--r--xmlsecurity/workben/makefile.mk71
-rw-r--r--xmlsecurity/workben/signaturetest.cxx551
-rw-r--r--xpdf/download/xpdf-3.02.tar.gzbin0 -> 674912 bytes
-rw-r--r--xpdf/makefile.mk131
-rw-r--r--xpdf/prj/build.lst2
-rw-r--r--xpdf/prj/d.lst5
-rw-r--r--xpdf/xpdf-3.02.patch1872
-rwxr-xr-xxsltml/README14
-rwxr-xr-xxsltml/makefile.mk65
-rwxr-xr-xxsltml/prj/build.lst3
-rwxr-xr-xxsltml/prj/d.lst6
-rw-r--r--xsltml/xsltml_2.1.2.patch1747
-rwxr-xr-xzlib/make_patched_header.pl66
-rw-r--r--zlib/makefile.mk74
-rw-r--r--zlib/prj/build.lst2
-rw-r--r--zlib/prj/d.lst13
-rw-r--r--zlib/zlib-1.1.4.patch3244
49682 files changed, 11990698 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000000..416fa8c63b14
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+*.doc binary
+*.sdw binary
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..ddc5d8042ab4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,87 @@
+# backup and temporary files
+*~
+.*.sw[op]
+
+# where the 'subrepos' and downloads are located
+/clone
+/src
+
+# the build directories
+/*/unxlng??
+/*/unxlng??.pro
+/*/unxlng???
+/*/unxlng???.pro
+/*/wntmsc???
+/*/wntmsc???.pro
+/*/wntgcc?
+/*/wntgcc?.pro
+/*/unxmac??
+/*/unxmac??.pro
+/*/unx?bsd??
+/*/unx?bsd??.pro
+/*/unxdfly??
+/*/unxdfly??.pro
+/*/unxso???
+/*/unxso???.pro
+/*/unxaig??
+/*/unxaig??.pro
+/*/unxios?
+/*/unxios?.pro
+/*/unxand?
+/*/unxand?.pro
+/workdir
+/solver
+/instsetoo_native/util/LibreOffice
+/instsetoo_native/util/LibreOffice_SDK
+
+# autoconf generated stuff
+/aclocal.m4
+/autom4te.cache
+/autogen.lastrun
+/bootstrap
+/ChangeLog
+/config.guess
+/config.log
+/config.parms
+/config.status
+/configure
+/Makefile
+/makefile.mk
+/set_soenv
+/visibility.cxx
+/post_download
+/bin/repo-list
+/src.downloaded
+/ooo.lst
+
+# misc
+/cross-build-toolset.built
+/set_soenv.last
+/set_soenv.stamp
+/warn
+/build.log
+/post_download.log
+/install
+/downloaded
+/Env.Build.sh
+/Env.Host.sh
+/ID
+/tags
+/docs
+/autogen.save
+
+/*/*.exe
+
+# external dlls etc
+/external/*/*.dll
+/external/*/*.exe
+/external/*/*.manifest
+/external/*/*.txt
+/moz/zipped/*.zip
+
+# links to the other repositories
+/binfilter
+/dictionaries
+/helpcontent2
+/translations
+
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 000000000000..be50d1d4034d
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,17 @@
+# just dumb wrapper; make install comes later
+
+SHELL=/bin/sh
+
+all:
+ . ./*Env.Set.sh && \
+ ./bootstrap && \
+ cd instsetoo_native && ../solenv/bin/build.pl --all
+
+distclean:
+ . ./*Env.Set.sh && \
+ dmake distclean
+
+clean:
+ . ./*Env.Set.sh && \
+ dmake clean
+
diff --git a/MathMLDTD/math.dtd b/MathMLDTD/math.dtd
new file mode 100644
index 000000000000..0349e3031acf
--- /dev/null
+++ b/MathMLDTD/math.dtd
@@ -0,0 +1,957 @@
+<!-- Copyright 1997-1999 World Wide Web Consortium, -->
+<!-- (Massachusetts Institute of Technology, -->
+<!-- Institut National de Recherche en Informatique et en Automatique, -->
+<!-- Keio University). All Rights Reserved. -->
+<!-- http://www.w3.org/Consortium/Legal/ -->
+
+<!-- Modified DTD for MathML 1.01 -->
+<!-- -->
+<!-- Original DTD: -->
+<!-- http://www.w3.org/1999/07/REC-MathML-19990707/mmlents.zip -->
+<!-- -->
+<!-- modified 20. June 2001: -->
+<!-- 1) added "math:" namespace prefix -->
+<!-- 2) removed entity include files -->
+<!-- 3) added copyright notice above to comply with -->
+<!-- W3C IPR Software Notice -->
+<!-- 4) added this comment block -->
+<!-- Modifications are intended to ease validation -->
+<!-- of MathML files written by StarMath 6.0 -->
+
+
+<!-- Content model for content and presentation -->
+<!-- and browser interface tags in MathML -->
+<!-- initial draft 9.May.1997 syntax = XML -->
+<!-- author = s.buswell sb@stilo.demon.co.uk -->
+<!-- -->
+<!-- revised 14.May.1997 by Robert Miner -->
+<!-- revised 29.June.1997 and 2.July.1997 by s.buswell -->
+<!-- -->
+<!-- revised 15.December.1997 by s.buswell -->
+<!-- revised 8.February.1998 by s.buswell -->
+<!-- revised 4.april.1998 by s.buswell -->
+<!-- 21.February.1999 entities and small revisions by d.carlisle -->
+<!-- -->
+<!-- W3C Recommendation 7 April 1998 -->
+<!-- ************************************************* -->
+
+<!-- general attribute definitions for class & style & id & other -->
+<!-- : attributes shared by all mathml elements -->
+
+<!ENTITY % att-globalatts 'math:class CDATA #IMPLIED
+ math:style CDATA #IMPLIED
+ math:id ID #IMPLIED
+ math:other CDATA #IMPLIED' >
+
+<!-- ************************************************* -->
+<!-- Presentation element set -->
+
+<!-- presentation attribute definitions -->
+
+<!ENTITY % att-fontsize 'math:fontsize CDATA #IMPLIED' >
+<!ENTITY % att-fontweight 'math:fontweight (normal | bold) #IMPLIED' >
+<!ENTITY % att-fontstyle 'math:fontstyle (normal | italic) #IMPLIED' >
+<!ENTITY % att-fontfamily 'math:fontfamily CDATA #IMPLIED' >
+<!ENTITY % att-color 'math:color CDATA #IMPLIED' >
+
+<!ENTITY % att-fontinfo '%att-fontsize;
+ %att-fontweight;
+ %att-fontstyle;
+ %att-fontfamily;
+ %att-color;' >
+
+<!ENTITY % att-form 'math:form (prefix | infix | postfix) #IMPLIED' >
+<!ENTITY % att-fence 'math:fence (true | false ) #IMPLIED' >
+<!ENTITY % att-separator 'math:separator (true | false ) #IMPLIED' >
+<!ENTITY % att-lspace 'math:lspace CDATA #IMPLIED' >
+<!ENTITY % att-rspace 'math:rspace CDATA #IMPLIED' >
+<!ENTITY % att-stretchy 'math:stretchy (true | false ) #IMPLIED' >
+<!ENTITY % att-symmetric 'math:symmetric (true | false ) #IMPLIED' >
+<!ENTITY % att-maxsize 'math:maxsize CDATA #IMPLIED' >
+<!ENTITY % att-minsize 'math:minsize CDATA #IMPLIED' >
+<!ENTITY % att-largeop 'math:largeop (true | false ) #IMPLIED' >
+<!ENTITY % att-movablelimits 'math:movablelimits (true | false )
+#IMPLIED' >
+<!ENTITY % att-accent 'math:accent (true | false) #IMPLIED'>
+
+<!ENTITY % att-opinfo '%att-form;
+ %att-fence;
+ %att-separator;
+ %att-lspace;
+ %att-rspace;
+ %att-stretchy;
+ %att-symmetric;
+ %att-maxsize;
+ %att-minsize;
+ %att-largeop;
+ %att-movablelimits;
+ %att-accent;' >
+
+<!ENTITY % att-width 'math:width CDATA #IMPLIED' >
+<!ENTITY % att-height 'math:height CDATA #IMPLIED' >
+<!ENTITY % att-depth 'math:depth CDATA #IMPLIED' >
+
+<!ENTITY % att-sizeinfo '%att-width;
+ %att-height;
+ %att-depth;' >
+
+<!ENTITY % att-lquote 'math:lquote CDATA #IMPLIED' >
+<!ENTITY % att-rquote 'math:rquote CDATA #IMPLIED' >
+
+<!ENTITY % att-linethickness 'math:linethickness CDATA #IMPLIED' >
+
+<!ENTITY % att-scriptlevel 'math:scriptlevel CDATA #IMPLIED'>
+<!ENTITY % att-displaystyle 'math:displaystyle (true | false)
+#IMPLIED'>
+<!ENTITY % att-scriptsizemultiplier 'math:scriptsizemultiplier CDATA
+#IMPLIED' >
+<!ENTITY % att-scriptminsize 'math:scriptminsize CDATA #IMPLIED'>
+<!ENTITY % att-background 'math:background CDATA #IMPLIED' >
+
+<!ENTITY % att-open 'math:open CDATA #IMPLIED' >
+<!ENTITY % att-close 'math:close CDATA #IMPLIED' >
+<!ENTITY % att-separators 'math:separators CDATA #IMPLIED' >
+
+<!ENTITY % att-subscriptshift 'math:subscriptshift CDATA #IMPLIED'>
+<!ENTITY % att-superscriptshift 'math:superscriptshift CDATA #IMPLIED' >
+
+<!ENTITY % att-accentunder 'math:accentunder (true | false)
+#IMPLIED'>
+
+<!ENTITY % att-align 'math:align CDATA #IMPLIED' >
+<!ENTITY % att-rowalign 'math:rowalign CDATA #IMPLIED' >
+<!ENTITY % att-columnalign 'math:columnalign CDATA #IMPLIED' >
+<!ENTITY % att-groupalign 'math:groupalign CDATA #IMPLIED' >
+<!ENTITY % att-alignmentscope 'math:alignmentscope CDATA #IMPLIED' >
+
+<!ENTITY % att-rowspacing 'math:rowspacing CDATA #IMPLIED' >
+<!ENTITY % att-columnspacing 'math:columnspacing CDATA #IMPLIED' >
+<!ENTITY % att-rowlines 'math:rowlines CDATA #IMPLIED' >
+<!ENTITY % att-columnlines 'math:columnlines CDATA #IMPLIED' >
+<!ENTITY % att-frame 'math:frame (none | solid | dashed)
+#IMPLIED' >
+<!ENTITY % att-framespacing 'math:framespacing CDATA #IMPLIED' >
+<!ENTITY % att-equalrows 'math:equalrows CDATA #IMPLIED' >
+<!ENTITY % att-equalcolumns 'math:equalcolumns CDATA #IMPLIED' >
+
+<!ENTITY % att-tableinfo '%att-align;
+ %att-rowalign;
+ %att-columnalign;
+ %att-groupalign;
+ %att-alignmentscope;
+ %att-rowspacing;
+ %att-columnspacing;
+ %att-rowlines;
+ %att-columnlines;
+ %att-frame;
+ %att-framespacing;
+ %att-equalrows;
+ %att-equalcolumns;
+ %att-displaystyle;' >
+
+<!ENTITY % att-rowspan 'math:rowspan CDATA #IMPLIED' >
+<!ENTITY % att-columnspan 'math:columnspan CDATA #IMPLIED' >
+
+<!ENTITY % att-edge 'math:edge (left | right) #IMPLIED ' >
+
+<!ENTITY % att-actiontype 'math:actiontype CDATA #IMPLIED' >
+<!ENTITY % att-selection 'math:selection CDATA #IMPLIED ' >
+
+<!-- presentation token schemata with content-->
+
+<!ENTITY % ptoken "math:mi | math:mn | math:mo | math:mtext | math:ms" >
+
+<!ATTLIST math:mi %att-fontinfo;
+ %att-globalatts; >
+
+<!ATTLIST math:mn %att-fontinfo;
+ %att-globalatts; >
+
+<!ATTLIST math:mo %att-fontinfo;
+ %att-opinfo;
+ %att-globalatts; >
+
+<!ATTLIST math:mtext %att-fontinfo;
+ %att-globalatts; >
+
+<!ATTLIST math:ms %att-fontinfo;
+ %att-lquote;
+ %att-rquote;
+ %att-globalatts; >
+
+<!-- empty presentation token schemata -->
+
+<!ENTITY % petoken "math:mspace" >
+<!ELEMENT math:mspace EMPTY >
+
+<!ATTLIST math:mspace %att-sizeinfo;
+ %att-globalatts; >
+
+<!-- presentation general layout schemata -->
+
+<!ENTITY % pgenschema "math:mrow|math:mfrac|math:msqrt|math:mroot|
+ math:mstyle|math:merror|math:mpadded| math:mphantom|math:mfenced" >
+
+<!ATTLIST math:mrow %att-globalatts; >
+
+<!ATTLIST math:mfrac %att-linethickness;
+ %att-globalatts; >
+
+<!ATTLIST math:msqrt %att-globalatts; >
+
+<!ATTLIST math:mroot %att-globalatts; >
+
+<!ATTLIST math:mstyle %att-fontinfo;
+ %att-opinfo;
+ %att-lquote;
+ %att-rquote;
+ %att-linethickness;
+ %att-scriptlevel;
+ %att-scriptsizemultiplier;
+ %att-scriptminsize;
+ %att-background;
+ %att-open;
+ %att-close;
+ %att-separators;
+ %att-subscriptshift;
+ %att-superscriptshift;
+ %att-accentunder;
+ %att-tableinfo;
+ %att-rowspan;
+ %att-columnspan;
+ %att-edge;
+ %att-actiontype;
+ %att-selection;
+ %att-globalatts; >
+
+<!ATTLIST math:merror %att-globalatts; >
+
+<!ATTLIST math:mpadded %att-sizeinfo;
+ %att-lspace;
+ %att-globalatts; >
+
+<!ATTLIST math:mphantom %att-globalatts; >
+
+<!ATTLIST math:mfenced %att-open;
+ %att-close;
+ %att-separators;
+ %att-globalatts; >
+
+<!-- presentation layout schemata : scripts and limits -->
+
+<!ENTITY % pscrschema "math:msub|math:msup|math:msubsup|
+ math:munder|math:mover|math:munderover|math:mmultiscripts" >
+
+<!ATTLIST math:msub %att-subscriptshift;
+ %att-globalatts; >
+
+<!ATTLIST math:msup %att-superscriptshift;
+ %att-globalatts; >
+
+<!ATTLIST math:msubsup %att-subscriptshift;
+ %att-superscriptshift;
+ %att-globalatts; >
+
+<!ATTLIST math:munder %att-accentunder;
+ %att-globalatts; >
+
+<!ATTLIST math:mover %att-accent;
+ %att-globalatts; >
+
+<!ATTLIST math:munderover %att-accent;
+ %att-accentunder;
+ %att-globalatts; >
+
+<!ATTLIST math:mmultiscripts
+ %att-subscriptshift;
+ %att-superscriptshift;
+ %att-globalatts; >
+
+<!-- presentation layout schemata: script empty elements -->
+
+<!ENTITY % pscreschema "math:mprescripts|math:none" >
+
+<!ELEMENT math:mprescripts EMPTY >
+<!ATTLIST math:mprescripts %att-globalatts; >
+
+<!ELEMENT math:none EMPTY >
+<!ATTLIST math:none %att-globalatts; >
+
+<!-- presentation layout schemata: tables -->
+
+<!ENTITY % ptabschema "math:mtable|math:mtr|math:mtd" >
+
+<!ATTLIST math:mtable %att-tableinfo;
+ %att-globalatts; >
+
+<!ATTLIST math:mtr %att-rowalign;
+ %att-columnalign;
+ %att-groupalign;
+ %att-globalatts; >
+
+<!ATTLIST math:mtd %att-rowalign;
+ %att-columnalign;
+ %att-groupalign;
+ %att-rowspan;
+ %att-columnspan;
+ %att-globalatts; >
+
+<!ENTITY % plschema "%pgenschema;|%pscrschema;|%ptabschema;" >
+
+<!-- empty presentation layout schemata -->
+
+<!ENTITY % peschema "math:maligngroup | math:malignmark" >
+
+<!ELEMENT math:malignmark EMPTY >
+
+<!ATTLIST math:malignmark %att-edge;
+ %att-globalatts; >
+
+<!ELEMENT math:maligngroup EMPTY >
+<!ATTLIST math:maligngroup %att-groupalign;
+ %att-globalatts; >
+
+<!-- presentation action schemata -->
+
+<!ENTITY % pactions "math:maction" >
+<!ATTLIST math:maction %att-actiontype;
+ %att-selection;
+ %att-globalatts; >
+
+<!-- Presentation entity for substitution into content tag constructs -->
+<!-- excludes elements which are not valid as expressions -->
+
+<!ENTITY % PresInCont "%ptoken; | %petoken; |
+ %plschema; | %peschema; | %pactions;">
+
+<!-- Presentation entity - all presentation constructs -->
+
+<!ENTITY % Presentation "%ptoken; | %petoken; | %pscreschema; |
+ %plschema; | %peschema; | %pactions;">
+
+<!-- ************************************************* -->
+<!-- Content element set -->
+<!-- attribute definitions -->
+
+<!ENTITY % att-base 'math:base CDATA "10"' >
+<!ENTITY % att-closure 'math:closure CDATA "closed"' >
+<!ENTITY % att-definition 'math:definitionURL CDATA ""' >
+<!ENTITY % att-encoding 'math:encoding CDATA ""' >
+<!ENTITY % att-nargs 'math:nargs CDATA "1"' >
+<!ENTITY % att-occurence 'math:occurence CDATA "function-model"' >
+<!ENTITY % att-order 'math:order CDATA "numeric"' >
+<!ENTITY % att-scope 'math:scope CDATA "local"' >
+<!ENTITY % att-type 'math:type CDATA #IMPLIED' >
+
+<!-- content leaf token elements -->
+
+<!ENTITY % ctoken "math:ci | math:cn" >
+
+<!ATTLIST math:ci %att-type;
+ %att-globalatts; >
+
+<!ATTLIST math:cn %att-type;
+ %att-base;
+ %att-globalatts; >
+
+<!-- content elements - specials -->
+
+<!ENTITY % cspecial "math:apply | math:reln | math:lambda" >
+
+<!ATTLIST math:apply %att-globalatts; >
+
+<!ATTLIST math:reln %att-globalatts; >
+
+<!ATTLIST math:lambda %att-globalatts; >
+
+<!-- content elements - others -->
+
+<!ENTITY % cother "math:condition | math:declare | math:sep" >
+
+<!ATTLIST math:condition %att-globalatts; >
+
+<!ATTLIST math:declare %att-type;
+ %att-scope;
+ %att-nargs;
+ %att-occurence;
+ %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:sep EMPTY >
+<!ATTLIST math:sep %att-globalatts; >
+
+<!-- content elements - semantic mapping -->
+
+<!ENTITY % csemantics "math:semantics | math:annotation | math:annotation-xml" >
+
+<!ATTLIST math:semantics %att-definition;
+ %att-globalatts; >
+
+<!ATTLIST math:annotation %att-encoding;
+ %att-globalatts; >
+
+<!ATTLIST math:annotation-xml %att-encoding;
+ %att-globalatts; >
+
+<!-- content elements - constructors -->
+
+<!ENTITY % cconstructor "math:interval | math:list | math:matrix | math:matrixrow | math:set |
+math:vector" >
+
+<!ATTLIST math:interval %att-closure;
+ %att-globalatts; >
+
+<!ATTLIST math:set %att-globalatts; >
+
+<!ATTLIST math:list %att-order;
+ %att-globalatts; >
+
+<!ATTLIST math:vector %att-globalatts; >
+
+<!ATTLIST math:matrix %att-globalatts; >
+
+<!ATTLIST math:matrixrow %att-globalatts; >
+
+<!-- content elements - operators -->
+
+<!ENTITY % cfuncop1ary "math:inverse | math:ident " >
+
+<!ELEMENT math:inverse EMPTY >
+<!ATTLIST math:inverse %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cfuncopnary "math:fn | math:compose" >
+
+<!ATTLIST math:fn %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:ident EMPTY >
+<!ATTLIST math:ident %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:compose EMPTY >
+<!ATTLIST math:compose %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % carithop1ary "math:abs | math:conjugate | math:exp | math:factorial" >
+
+<!ELEMENT math:exp EMPTY >
+<!ATTLIST math:exp %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:abs EMPTY >
+<!ATTLIST math:abs %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:conjugate EMPTY >
+<!ATTLIST math:conjugate %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:factorial EMPTY >
+<!ATTLIST math:factorial %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % carithop1or2ary "math:minus" >
+
+<!ELEMENT math:minus EMPTY >
+<!ATTLIST math:minus %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % carithop2ary "math:quotient | math:divide | math:power | math:rem" >
+
+<!ELEMENT math:quotient EMPTY >
+<!ATTLIST math:quotient %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:divide EMPTY >
+<!ATTLIST math:divide %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:power EMPTY >
+<!ATTLIST math:power %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:rem EMPTY >
+<!ATTLIST math:rem %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % carithopnary "math:plus | math:times | math:max | math:min | math:gcd" >
+
+<!ELEMENT math:plus EMPTY >
+<!ATTLIST math:plus %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:max EMPTY >
+<!ATTLIST math:max %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:min EMPTY >
+<!ATTLIST math:min %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:times EMPTY >
+<!ATTLIST math:times %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:gcd EMPTY >
+<!ATTLIST math:gcd %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % carithoproot "math:root" >
+
+<!ELEMENT math:root EMPTY >
+<!ATTLIST math:root %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clogicopquant "math:exists | math:forall" >
+
+<!ELEMENT math:exists EMPTY >
+<!ATTLIST math:exists %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:forall EMPTY >
+<!ATTLIST math:forall %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clogicopnary "math:and | math:or | math:xor" >
+
+<!ELEMENT math:and EMPTY >
+<!ATTLIST math:and %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:or EMPTY >
+<!ATTLIST math:or %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:xor EMPTY >
+<!ATTLIST math:xor %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clogicop1ary "math:not" >
+
+<!ELEMENT math:not EMPTY >
+<!ATTLIST math:not %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clogicop2ary "math:implies" >
+
+<!ELEMENT math:implies EMPTY >
+<!ATTLIST math:implies %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % ccalcop "math:log | math:int | math:diff | math:partialdiff" >
+
+<!ELEMENT math:log EMPTY >
+<!ATTLIST math:log %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:int EMPTY >
+<!ATTLIST math:int %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:diff EMPTY >
+<!ATTLIST math:diff %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:partialdiff EMPTY >
+<!ATTLIST math:partialdiff %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % ccalcop1ary "math:ln" >
+
+<!ELEMENT math:ln EMPTY >
+<!ATTLIST math:ln %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % csetop2ary "math:setdiff" >
+
+<!ELEMENT math:setdiff EMPTY >
+<!ATTLIST math:setdiff %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % csetopnary "math:union | math:intersect" >
+
+<!ELEMENT math:union EMPTY >
+<!ATTLIST math:union %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:intersect EMPTY >
+<!ATTLIST math:intersect %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cseqop "math:sum | math:product | math:limit" >
+
+<!ELEMENT math:sum EMPTY >
+<!ATTLIST math:sum %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:product EMPTY >
+<!ATTLIST math:product %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:limit EMPTY >
+<!ATTLIST math:limit %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % ctrigop "math:sin | math:cos | math:tan | math:sec | math:csc | math:cot | math:sinh
+ | math:cosh | math:tanh | math:sech | math:csch | math:coth
+ | math:arcsin | math:arccos | math:arctan" >
+
+<!ELEMENT math:sin EMPTY >
+<!ATTLIST math:sin %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:cos EMPTY >
+<!ATTLIST math:cos %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:tan EMPTY >
+<!ATTLIST math:tan %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:sec EMPTY >
+<!ATTLIST math:sec %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:csc EMPTY >
+<!ATTLIST math:csc %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:cot EMPTY >
+<!ATTLIST math:cot %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:sinh EMPTY >
+<!ATTLIST math:sinh %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:cosh EMPTY >
+<!ATTLIST math:cosh %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:tanh EMPTY >
+<!ATTLIST math:tanh %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:sech EMPTY >
+<!ATTLIST math:sech %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:csch EMPTY >
+<!ATTLIST math:csch %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:coth EMPTY >
+<!ATTLIST math:coth %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:arcsin EMPTY >
+<!ATTLIST math:arcsin %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:arccos EMPTY >
+<!ATTLIST math:arccos %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:arctan EMPTY >
+<!ATTLIST math:arctan %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cstatopnary "math:mean | math:sdev | math:variance | math:median | math:mode" >
+
+<!ELEMENT math:mean EMPTY >
+<!ATTLIST math:mean %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:sdev EMPTY >
+<!ATTLIST math:sdev %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:variance EMPTY >
+<!ATTLIST math:variance %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:median EMPTY >
+<!ATTLIST math:median %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:mode EMPTY >
+<!ATTLIST math:mode %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cstatopmoment "math:moment" >
+
+<!ELEMENT math:moment EMPTY >
+<!ATTLIST math:moment %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clalgop1ary "math:determinant | math:transpose" >
+
+<!ELEMENT math:determinant EMPTY >
+<!ATTLIST math:determinant %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:transpose EMPTY >
+<!ATTLIST math:transpose %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % clalgopnary "math:selector" >
+
+<!ELEMENT math:selector EMPTY >
+<!ATTLIST math:selector %att-definition;
+ %att-globalatts; >
+
+<!-- content elements - relations -->
+
+<!ENTITY % cgenrel2ary "math:neq" >
+
+<!ELEMENT math:neq EMPTY >
+<!ATTLIST math:neq %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cgenrelnary "math:eq | math:leq | math:lt | math:geq | math:gt" >
+
+<!ELEMENT math:eq EMPTY >
+<!ATTLIST math:eq %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:gt EMPTY >
+<!ATTLIST math:gt %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:lt EMPTY >
+<!ATTLIST math:lt %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:geq EMPTY >
+<!ATTLIST math:geq %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:leq EMPTY >
+<!ATTLIST math:leq %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % csetrel2ary "math:in | math:notin | math:notsubset | math:notprsubset" >
+
+<!ELEMENT math:in EMPTY >
+<!ATTLIST math:in %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:notin EMPTY >
+<!ATTLIST math:notin %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:notsubset EMPTY >
+<!ATTLIST math:notsubset %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:notprsubset EMPTY >
+<!ATTLIST math:notprsubset %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % csetrelnary "math:subset | math:prsubset" >
+
+<!ELEMENT math:subset EMPTY >
+<!ATTLIST math:subset %att-definition;
+ %att-globalatts; >
+
+<!ELEMENT math:prsubset EMPTY >
+<!ATTLIST math:prsubset %att-definition;
+ %att-globalatts; >
+
+<!ENTITY % cseqrel2ary "math:tendsto" >
+
+<!ELEMENT math:tendsto EMPTY >
+<!ATTLIST math:tendsto %att-definition;
+ %att-type;
+ %att-globalatts; >
+
+<!-- content elements - quantifiers -->
+
+<!ENTITY % cquantifier "math:lowlimit | math:uplimit | math:bvar | math:degree | math:logbase" >
+
+<!ATTLIST math:lowlimit %att-globalatts; >
+
+<!ATTLIST math:uplimit %att-globalatts; >
+
+<!ATTLIST math:bvar %att-globalatts; >
+
+<!ATTLIST math:degree %att-globalatts; >
+
+<!ATTLIST math:logbase %att-globalatts; >
+
+<!-- operator groups -->
+
+<!ENTITY % cop1ary "%cfuncop1ary; | %carithop1ary; | %clogicop1ary;
+ | %ccalcop1ary; | %ctrigop; | %clalgop1ary; " >
+
+<!ENTITY % cop2ary "%carithop2ary; | %clogicop2ary;| %csetop2ary; " >
+
+<!ENTITY % copnary "%cfuncopnary; | %carithopnary; | %clogicopnary;
+ | %csetopnary; | %cstatopnary; | %clalgopnary; " >
+
+<!ENTITY % copmisc "%carithoproot; | %carithop1or2ary; | %ccalcop;
+ | %cseqop; | %cstatopmoment; | %clogicopquant;" >
+
+<!-- relation groups -->
+
+<!ENTITY % crel2ary "%cgenrel2ary; | %csetrel2ary; | %cseqrel2ary; " >
+
+<!ENTITY % crelnary "%cgenrelnary; | %csetrelnary;" >
+
+<!-- content constructs - all -->
+
+<!ENTITY % Content "%ctoken; | %cspecial; | %cother; | %csemantics;
+ |%cconstructor; | %cquantifier;
+ |%cop1ary; |%cop2ary; |%copnary; |%copmisc;
+ |%crel2ary; |%crelnary;" >
+
+<!-- content constructs for substitution in presentation structures -->
+
+<!ENTITY % ContInPres "math:ci | math:cn | math:apply | math:fn | math:lambda | math:reln
+ | math:interval | math:list | math:matrix |math:matrixrow
+ | math:set | math:vector | math:semantics" > <!--dpc-->
+
+<!-- ************************************************* -->
+
+<!-- recursive definition for content of expressions -->
+<!-- include presentation tag constructs at lowest level -->
+<!-- so presentation layout schemata hold presentation or Content -->
+<!-- include Content tag constructs at lowest level -->
+<!-- so Content tokens hold PCDATA or Presentation at leaf level -->
+<!-- (for permitted substitutable elements in context) -->
+
+<!ENTITY % ContentExpression "(%Content; | %PresInCont;)* " >
+<!ENTITY % PresExpression "(%Presentation; | %ContInPres;)* " >
+<!ENTITY % MathExpression "(%PresInCont; | %ContInPres;)* " >
+
+<!-- content token elements (may hold embedded presentation constructs)
+-->
+
+<!ELEMENT math:ci (#PCDATA | %PresInCont;)* >
+<!ELEMENT math:cn (#PCDATA | math:sep | %PresInCont;)* >
+
+<!-- content special elements -->
+
+<!ELEMENT math:apply (%ContentExpression;) >
+<!ELEMENT math:reln (%ContentExpression;) >
+<!ELEMENT math:lambda (%ContentExpression;) >
+
+<!-- content other elements -->
+
+<!ELEMENT math:condition (%ContentExpression;) >
+<!ELEMENT math:declare (%ContentExpression;) >
+
+<!-- content semantics elements -->
+
+<!ELEMENT math:semantics (%ContentExpression;) >
+<!ELEMENT math:annotation (#PCDATA) >
+<!ELEMENT math:annotation-xml (%ContentExpression;) >
+
+<!-- content constructor elements -->
+
+<!ELEMENT math:interval (%ContentExpression;) >
+<!ELEMENT math:set (%ContentExpression;) >
+<!ELEMENT math:list (%ContentExpression;) >
+<!ELEMENT math:vector (%ContentExpression;) >
+<!ELEMENT math:matrix (%ContentExpression;) >
+<!ELEMENT math:matrixrow (%ContentExpression;) >
+
+<!-- content operator element (user-defined) -->
+
+<!ELEMENT math:fn (%ContentExpression;) >
+
+<!-- content quantifier elements -->
+
+<!ELEMENT math:lowlimit (%ContentExpression;) >
+<!ELEMENT math:uplimit (%ContentExpression;) >
+<!ELEMENT math:bvar (%ContentExpression;) >
+<!ELEMENT math:degree (%ContentExpression;) >
+<!ELEMENT math:logbase (%ContentExpression;) >
+
+<!-- ************************************************* -->
+<!-- presentation layout schema contain tokens, layout and content
+schema -->
+
+<!ELEMENT math:mstyle (%PresExpression;) >
+<!ELEMENT math:merror (%PresExpression;) >
+<!ELEMENT math:mphantom (%PresExpression;) >
+<!ELEMENT math:mrow (%PresExpression;) >
+<!ELEMENT math:mfrac (%PresExpression;) >
+<!ELEMENT math:msqrt (%PresExpression;) >
+<!ELEMENT math:mroot (%PresExpression;) >
+<!ELEMENT math:msub (%PresExpression;) >
+<!ELEMENT math:msup (%PresExpression;) >
+<!ELEMENT math:msubsup (%PresExpression;) >
+<!ELEMENT math:mmultiscripts (%PresExpression;) >
+<!ELEMENT math:munder (%PresExpression;) >
+<!ELEMENT math:mover (%PresExpression;) >
+<!ELEMENT math:munderover (%PresExpression;) >
+<!ELEMENT math:mtable (%PresExpression;) >
+<!ELEMENT math:mtr (%PresExpression;) >
+<!ELEMENT math:mtd (%PresExpression;) >
+<!ELEMENT math:maction (%PresExpression;) >
+<!ELEMENT math:mfenced (%PresExpression;) >
+<!ELEMENT math:mpadded (%PresExpression;) >
+
+<!-- presentation tokens contain PCDATA or malignmark constructs -->
+
+<!ELEMENT math:mi (#PCDATA | math:malignmark )* >
+<!ELEMENT math:mn (#PCDATA | math:malignmark )* >
+<!ELEMENT math:mo (#PCDATA | math:malignmark )* >
+<!ELEMENT math:mtext (#PCDATA | math:malignmark )* >
+<!ELEMENT math:ms (#PCDATA | math:malignmark )* >
+
+<!-- ************************************************* -->
+<!-- browser interface definition -->
+
+<!-- attributes for top level math element -->
+
+<!ENTITY % att-macros 'math:macros CDATA #IMPLIED' >
+<!ENTITY % att-mode 'math:mode CDATA #IMPLIED' >
+
+<!ENTITY % att-topinfo '%att-globalatts;
+ %att-macros;
+ %att-mode;' >
+
+<!-- attributes for browser interface element element -->
+
+<!ENTITY % att-name 'math:name CDATA #IMPLIED' >
+<!ENTITY % att-baseline 'math:baseline CDATA #IMPLIED' >
+<!ENTITY % att-overflow 'math:overflow
+(scroll|elide|truncate|scale) "scroll"' >
+<!ENTITY % att-altimg 'math:altimg CDATA #IMPLIED' >
+<!ENTITY % att-alttext 'math:alttext CDATA #IMPLIED' >
+
+<!ENTITY % att-browif '%att-type;
+ %att-name;
+ %att-height;
+ %att-width;
+ %att-baseline;
+ %att-overflow;
+ %att-altimg;
+ %att-alttext; ' >
+
+<!-- the top level math element -->
+<!-- math contains MathML encoded mathematics -->
+<!-- math has the browser info attributes iff it is the
+ browser interface element also -->
+
+<!ELEMENT math:math (%MathExpression;) >
+
+<!ATTLIST math:math %att-topinfo;
+ %att-browif; >
+
+
+<!-- ENTITY sets -->
+
+<!-- ... removed ... -->
+
+
+<!-- MathML new characters -->
+
+<!-- ... removed ... -->
+
+<!-- end of ENTITY sets -->
+<!-- end of DTD fragment -->
+<!-- ************************************************* -->
diff --git a/MathMLDTD/prj/build.lst b/MathMLDTD/prj/build.lst
new file mode 100644
index 000000000000..98f9bc77da80
--- /dev/null
+++ b/MathMLDTD/prj/build.lst
@@ -0,0 +1,3 @@
+md MathMLDTD : solenv NULL
+md MathMLDTD usr1 - all md_mkout NULL
+md MathMLDTD\prj get - all md_prj NULL
diff --git a/MathMLDTD/prj/d.lst b/MathMLDTD/prj/d.lst
new file mode 100644
index 000000000000..40d4a6a44f05
--- /dev/null
+++ b/MathMLDTD/prj/d.lst
@@ -0,0 +1,2 @@
+..\math.dtd %_DEST%\bin%_EXT%\math.dtd
+..\w3c_ipr_software_notice.html %_DEST%\bin%_EXT%\w3c_ipr_software_notice.html
diff --git a/MathMLDTD/w3c_ipr_software_notice.html b/MathMLDTD/w3c_ipr_software_notice.html
new file mode 100644
index 000000000000..3a4ed535c1a7
--- /dev/null
+++ b/MathMLDTD/w3c_ipr_software_notice.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+"http://www.w3.org/TR/html4/loose.dtd">
+
+<!-- W3C IPR SOFTWARE NOTICE -->
+<!-- downloaded from: -->
+<!-- http://www.w3.org/Consortium/Legal/copyright-software-19980720 -->
+<!-- -->
+<!-- Changed: 24. July 2001 -->
+<!-- 1) removed link to stylesheet -->
+<!-- 2) removed "webmaster" link -->
+<!-- 3) changed site-relative URLs to absolute URLs -->
+<!-- 4) added this comment block -->
+<!-- Changes are intended to allow proper -->
+<!-- off-line viewing of the license. -->
+
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<meta http-equiv="Content-Type" content=
+"text/html; charset=iso-8859-1">
+<title>W3C IPR SOFTWARE NOTICE</title>
+</head>
+<body text="#000000" bgcolor="#FFFFFF">
+<h1>W3C<sup>&reg;</sup> SOFTWARE NOTICE AND LICENSE</h1>
+
+<h3>Copyright &copy; 1994-2001 <a href="http://www.w3.org/">World
+Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/</h3>
+
+<p>This W3C work (including software, documents, or other related
+items) is being provided by the copyright holders under the
+following license. By obtaining, using and/or copying this work,
+you (the licensee) agree that you have read, understood, and will
+comply with the following terms and conditions:</p>
+
+<p>Permission to use, copy, modify, and distribute this software
+and its documentation, with or without modification,&nbsp; for any
+purpose and without fee or royalty is hereby granted, provided that
+you include the following on ALL copies of the software and
+documentation or portions thereof, including modifications, that
+you make:</p>
+
+<ol>
+<li>The full text of this NOTICE in a location viewable to users of
+the redistributed or derivative work.</li>
+
+<li>Any pre-existing intellectual property disclaimers, notices, or
+terms and conditions. If none exist, a short notice of the
+following form (hypertext is preferred, text is permitted) should
+be used within the body of any redistributed or derivative code:
+"Copyright &copy; [$date-of-software] <a href="http://www.w3.org/">
+World Wide Web Consortium</a>, (<a href=
+"http://www.lcs.mit.edu/">Massachusetts Institute of
+Technology</a>, <a href="http://www.inria.fr/">Institut National de
+Recherche en Informatique et en Automatique</a>, <a href=
+"http://www.keio.ac.jp/">Keio University</a>). All Rights Reserved.
+http://www.w3.org/Consortium/Legal/"</li>
+
+<li>Notice of any changes or modifications to the W3C files,
+including the date changes were made. (We recommend you provide
+URIs to the location from which the code is derived.)</li>
+</ol>
+
+<p>THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND
+COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE
+USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD
+PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.</p>
+
+<p>COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT,
+SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
+SOFTWARE OR DOCUMENTATION.</p>
+
+<p>The name and trademarks of copyright holders may NOT be used in
+advertising or publicity pertaining to the software without
+specific, written prior permission. Title to copyright in this
+software and any associated documentation will at all times remain
+with copyright holders.</p>
+
+<p>____________________________________</p>
+
+<p>This formulation of W3C's notice and license became active on
+August 14 1998 so as to improve compatibility with GPL. This
+version ensures that W3C software licensing terms are no more
+restrictive than GPL and consequently W3C software may be
+distributed in GPL packages. See the <a href=
+"http://www.w3.org/Consortium/Legal/copyright-software-19980519.html">older formulation</a> for the
+policy prior to this date. Please see our <a href="http://www.w3.org/Consortium/Legal/IPR-FAQ.html">
+Copyright FAQ</a> for common questions about using materials from
+our site, including specific terms and conditions for packages like
+libwww, Amaya, and Jigsaw. Other questions about this notice can be
+directed to <a href="mailto:site-policy@w3.org">
+site-policy@w3.org</a>.<br>
+&nbsp;</p>
+
+<p>&nbsp;</p>
+
+</body>
+</html>
+
diff --git a/UnoControls/inc/basecontainercontrol.hxx b/UnoControls/inc/basecontainercontrol.hxx
new file mode 100644
index 000000000000..34563ec3441d
--- /dev/null
+++ b/UnoControls/inc/basecontainercontrol.hxx
@@ -0,0 +1,567 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_BASECONTAINERCONTROL_CTRL_HXX
+#define _UNOCONTROLS_BASECONTAINERCONTROL_CTRL_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XServiceName.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/container/XContainer.hpp>
+#include <com/sun/star/container/XIndexContainer.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/container/XContainerListener.hpp>
+#include <com/sun/star/container/XSet.hpp>
+#include <com/sun/star/container/ContainerEvent.hpp>
+#include <com/sun/star/container/XIndexReplace.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <tools/list.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+#include "basecontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// "namespaces"
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_XCONTROL ::com::sun::star::awt::XControl
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XCONTROLCONTAINER ::com::sun::star::awt::XControlContainer
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_XTOOLKIT ::com::sun::star::awt::XToolkit
+#define UNO3_XWINDOWPEER ::com::sun::star::awt::XWindowPeer
+#define UNO3_EVENTOBJECT ::com::sun::star::lang::EventObject
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_XCONTAINERLISTENER ::com::sun::star::container::XContainerListener
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_XTABCONTROLLER ::com::sun::star::awt::XTabController
+#define UNO3_WINDOWDESCRIPTOR ::com::sun::star::awt::WindowDescriptor
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
+#define UNO3_ILLEGALARGUMENTEXCEPTION ::com::sun::star::lang::IllegalArgumentException
+
+//____________________________________________________________________________________________________________
+// structs, types, forwards
+//____________________________________________________________________________________________________________
+
+struct IMPL_ControlInfo
+{
+ UNO3_REFERENCE< UNO3_XCONTROL > xControl ;
+ UNO3_OUSTRING sName ;
+};
+
+// makro define a list-class for struct IMPL_ControlInfo!
+class IMPL_ControlInfoList ;
+DECLARE_LIST( IMPL_ControlInfoList, IMPL_ControlInfo* )
+
+//____________________________________________________________________________________________________________
+// classes
+//____________________________________________________________________________________________________________
+
+class BaseContainerControl : public UNO3_XCONTROLMODEL
+ , public UNO3_XCONTROLCONTAINER
+ , public BaseControl
+{
+
+//____________________________________________________________________________________________________________
+// public methods
+//____________________________________________________________________________________________________________
+
+public:
+
+ //________________________________________________________________________________________________________
+ // construct/destruct
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ BaseContainerControl( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual ~BaseContainerControl();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XTypeProvider
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short get information about supported interfaces
+ @descr -
+
+ @seealso XTypeProvider
+
+ @param -
+
+ @return Sequence of types of all supported interfaces
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XAggregation
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XControl
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit ,
+ const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XComponent
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XEventListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL disposing( const UNO3_EVENTOBJECT& rEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XControlContainer
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addControl( const UNO3_OUSTRING& sName ,
+ const UNO3_REFERENCE< UNO3_XCONTROL >& xControl ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addContainerListener( const UNO3_REFERENCE< UNO3_XCONTAINERLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeControl( const UNO3_REFERENCE< UNO3_XCONTROL >& xControl ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeContainerListener( const UNO3_REFERENCE< UNO3_XCONTAINERLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setStatusText( const UNO3_OUSTRING& sStatusText ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROL > SAL_CALL getControl( const UNO3_OUSTRING& sName) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_REFERENCE< UNO3_XCONTROL > > SAL_CALL getControls() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XUnoControlContainer
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addTabController( const UNO3_REFERENCE< UNO3_XTABCONTROLLER >& xTabController ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeTabController( const UNO3_REFERENCE< UNO3_XTABCONTROLLER >& xTabController ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setTabControllers( const UNO3_SEQUENCE< UNO3_REFERENCE< UNO3_XTABCONTROLLER > >& xTabControllers ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_REFERENCE< UNO3_XTABCONTROLLER > > SAL_CALL getTabControllers() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XWindow
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setVisible( sal_Bool bVisible ) throw( UNO3_RUNTIMEEXCEPTION );
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+ using OComponentHelper::disposing;
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void impl_paint( sal_Int32 nX ,
+ sal_Int32 nY ,
+ const UNO3_REFERENCE< UNO3_XGRAPHICS >& xGraphics );
+
+//____________________________________________________________________________________________________________
+// private methods
+//____________________________________________________________________________________________________________
+
+private:
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_activateTabControllers();
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_cleanMemory();
+
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ IMPL_ControlInfoList* m_pControlInfoList ; /// list of pointer of "struct IMPL_ControlInfo" to hold child-controls
+ UNO3_SEQUENCE< UNO3_REFERENCE< UNO3_XTABCONTROLLER > > m_xTabControllerList ; /// list of references of XTabController to hold tab-order in this container
+ UNO3_OMULTITYPEINTERFACECONTAINERHELPER m_aListeners ;
+
+}; // class BaseContainerControl
+
+} // namespace unocontrols
+
+#endif // ifndef _UNOCONTROLS_BASECONTAINERCONTROL_CTRL_HXX
diff --git a/UnoControls/inc/basecontrol.hxx b/UnoControls/inc/basecontrol.hxx
new file mode 100644
index 000000000000..050fd10fa2cc
--- /dev/null
+++ b/UnoControls/inc/basecontrol.hxx
@@ -0,0 +1,1231 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_BASECONTROL_CTRL_HXX
+#define _UNOCONTROLS_BASECONTROL_CTRL_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XKeyListener.hpp>
+#include <com/sun/star/awt/XPaintListener.hpp>
+#include <com/sun/star/awt/KeyEvent.hpp>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/awt/XMouseMotionListener.hpp>
+#include <com/sun/star/awt/FocusEvent.hpp>
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/awt/XActivateListener.hpp>
+#include <com/sun/star/awt/MouseEvent.hpp>
+#include <com/sun/star/awt/XTopWindowListener.hpp>
+#include <com/sun/star/awt/PaintEvent.hpp>
+#include <com/sun/star/awt/InputEvent.hpp>
+#include <com/sun/star/awt/KeyGroup.hpp>
+#include <com/sun/star/awt/Key.hpp>
+#include <com/sun/star/awt/WindowEvent.hpp>
+#include <com/sun/star/awt/XMouseListener.hpp>
+#include <com/sun/star/awt/KeyFunction.hpp>
+#include <com/sun/star/awt/FocusChangeReason.hpp>
+#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/awt/XFileDialog.hpp>
+#include <com/sun/star/awt/XTextComponent.hpp>
+#include <com/sun/star/awt/XListBox.hpp>
+#include <com/sun/star/awt/XProgressMonitor.hpp>
+#include <com/sun/star/awt/TextAlign.hpp>
+#include <com/sun/star/awt/XScrollBar.hpp>
+#include <com/sun/star/awt/XVclContainerPeer.hpp>
+#include <com/sun/star/awt/XTabControllerModel.hpp>
+#include <com/sun/star/awt/XMessageBox.hpp>
+#include <com/sun/star/awt/XTextEditField.hpp>
+#include <com/sun/star/awt/Style.hpp>
+#include <com/sun/star/awt/XTimeField.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <com/sun/star/awt/XControlModel.hpp>
+#include <com/sun/star/awt/XSpinField.hpp>
+#include <com/sun/star/awt/XUnoControlContainer.hpp>
+#include <com/sun/star/awt/XTextLayoutConstrains.hpp>
+#include <com/sun/star/awt/XNumericField.hpp>
+#include <com/sun/star/awt/XButton.hpp>
+#include <com/sun/star/awt/XTextArea.hpp>
+#include <com/sun/star/awt/XImageButton.hpp>
+#include <com/sun/star/awt/XFixedText.hpp>
+#include <com/sun/star/awt/XControlContainer.hpp>
+#include <com/sun/star/awt/XDialog.hpp>
+#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+#include <com/sun/star/awt/XRadioButton.hpp>
+#include <com/sun/star/awt/XCurrencyField.hpp>
+#include <com/sun/star/awt/XPatternField.hpp>
+#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+#include <com/sun/star/awt/XTabController.hpp>
+#include <com/sun/star/awt/XVclContainer.hpp>
+#include <com/sun/star/awt/XDateField.hpp>
+#include <com/sun/star/awt/XComboBox.hpp>
+#include <com/sun/star/awt/XControl.hpp>
+#include <com/sun/star/awt/XCheckBox.hpp>
+#include <com/sun/star/awt/MessageBoxCommand.hpp>
+#include <com/sun/star/awt/XLayoutConstrains.hpp>
+#include <com/sun/star/awt/XProgressBar.hpp>
+#include <com/sun/star/awt/XTopWindow.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <com/sun/star/awt/XView.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <osl/mutex.hxx>
+#include <cppuhelper/weak.hxx>
+#include <cppuhelper/component.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my project
+//____________________________________________________________________________________________________________
+#include "multiplexer.hxx"
+
+//____________________________________________________________________________________________________________
+// "namespaces"
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_EVENTOBJECT ::com::sun::star::lang::EventObject
+#define UNO3_MUTEX ::osl::Mutex
+#define UNO3_OCOMPONENTHELPER ::cppu::OComponentHelper
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_PAINTEVENT ::com::sun::star::awt::PaintEvent
+#define UNO3_RECTANGLE ::com::sun::star::awt::Rectangle
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_SIZE ::com::sun::star::awt::Size
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_WINDOWDESCRIPTOR ::com::sun::star::awt::WindowDescriptor
+#define UNO3_XCONTROL ::com::sun::star::awt::XControl
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XEVENTLISTENER ::com::sun::star::lang::XEventListener
+#define UNO3_XFOCUSLISTENER ::com::sun::star::awt::XFocusListener
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_XKEYLISTENER ::com::sun::star::awt::XKeyListener
+#define UNO3_XMOUSELISTENER ::com::sun::star::awt::XMouseListener
+#define UNO3_XMOUSEMOTIONLISTENER ::com::sun::star::awt::XMouseMotionListener
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_XPAINTLISTENER ::com::sun::star::awt::XPaintListener
+#define UNO3_XSERVICEINFO ::com::sun::star::lang::XServiceInfo
+#define UNO3_XTOOLKIT ::com::sun::star::awt::XToolkit
+#define UNO3_XVIEW ::com::sun::star::awt::XView
+#define UNO3_XWINDOW ::com::sun::star::awt::XWindow
+#define UNO3_XWINDOWLISTENER ::com::sun::star::awt::XWindowListener
+#define UNO3_XWINDOWPEER ::com::sun::star::awt::XWindowPeer
+#define UNO3_XINTERFACE ::com::sun::star::uno::XInterface
+
+//____________________________________________________________________________________________________________
+// macros
+//____________________________________________________________________________________________________________
+
+#define TRGB_COLORDATA(TRANSPARENCE,RED,GREEN,BLUE) \
+ ((sal_Int32)(((sal_uInt32)((sal_uInt8)(BLUE))))|(((sal_uInt32)((sal_uInt8)(GREEN)))<<8)|(((sal_uInt32)((sal_uInt8)(RED)))<<16)|(((sal_uInt32)((sal_uInt8)(TRANSPARENCE)))<<24))
+
+//____________________________________________________________________________________________________________
+// structs
+//____________________________________________________________________________________________________________
+
+struct IMPL_MutexContainer
+{
+ // Is necassery to initialize "BaseControl" and make this class thread-safe.
+ UNO3_MUTEX m_aMutex ;
+};
+
+//____________________________________________________________________________________________________________
+// classes
+//____________________________________________________________________________________________________________
+
+class BaseControl : public UNO3_XSERVICEINFO
+ , public UNO3_XPAINTLISTENER
+ , public UNO3_XWINDOWLISTENER
+ , public UNO3_XVIEW
+ , public UNO3_XWINDOW
+ , public UNO3_XCONTROL
+ , public IMPL_MutexContainer
+ , public UNO3_OCOMPONENTHELPER
+{
+//____________________________________________________________________________________________________________
+// public methods
+//____________________________________________________________________________________________________________
+
+public:
+
+ //________________________________________________________________________________________________________
+ // construct/destruct
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ BaseControl( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual ~BaseControl();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //________________________________________________________________________________________________________
+ // XTypeProvider
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short get information about supported interfaces
+ @descr -
+
+ @seealso XTypeProvider
+
+ @param -
+
+ @return Sequence of types of all supported interfaces
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short get implementation id
+ @descr This ID is neccessary for UNO-caching. If there no ID, cache is disabled.
+ Another way, cache is enabled.
+
+ @seealso XTypeProvider
+
+ @param -
+
+ @return ID as Sequence of byte
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_SEQUENCE< sal_Int8 > SAL_CALL getImplementationId() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XAggregation
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setDelegator( const UNO3_REFERENCE< UNO3_XINTERFACE >& xDelegator ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XServiceInfo
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL supportsService( const UNO3_OUSTRING& sServiceName ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_OUSTRING SAL_CALL getImplementationName() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_OUSTRING > SAL_CALL getSupportedServiceNames() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XComponent
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addEventListener( const UNO3_REFERENCE< UNO3_XEVENTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeEventListener( const UNO3_REFERENCE< UNO3_XEVENTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XControl
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit, const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setContext( const UNO3_REFERENCE< UNO3_XINTERFACE >& xContext ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION ) = 0 ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setDesignMode( sal_Bool bOn ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XINTERFACE > SAL_CALL getContext() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION ) = 0;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XWINDOWPEER > SAL_CALL getPeer() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XVIEW > SAL_CALL getView() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL isDesignMode() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL isTransparent() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XWindow
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setPosSize( sal_Int32 nX ,
+ sal_Int32 nY ,
+ sal_Int32 nWidth ,
+ sal_Int32 nHeight ,
+ sal_Int16 nFlags ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setVisible( sal_Bool bVisible ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setEnable( sal_Bool bEnable ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setFocus() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_RECTANGLE SAL_CALL getPosSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addWindowListener( const UNO3_REFERENCE< UNO3_XWINDOWLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addFocusListener( const UNO3_REFERENCE< UNO3_XFOCUSLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addKeyListener( const UNO3_REFERENCE< UNO3_XKEYLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addMouseListener( const UNO3_REFERENCE< UNO3_XMOUSELISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addMouseMotionListener( const UNO3_REFERENCE< UNO3_XMOUSEMOTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addPaintListener( const UNO3_REFERENCE< UNO3_XPAINTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeWindowListener( const UNO3_REFERENCE< UNO3_XWINDOWLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeFocusListener( const UNO3_REFERENCE< UNO3_XFOCUSLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeKeyListener( const UNO3_REFERENCE< UNO3_XKEYLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeMouseListener( const UNO3_REFERENCE< UNO3_XMOUSELISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeMouseMotionListener( const UNO3_REFERENCE< UNO3_XMOUSEMOTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removePaintListener( const UNO3_REFERENCE< UNO3_XPAINTLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XView
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL draw( sal_Int32 nX ,
+ sal_Int32 nY ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL setGraphics( const UNO3_REFERENCE< UNO3_XGRAPHICS >& xDevice ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setZoom( float fZoomX ,
+ float fZoomY ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XGRAPHICS > SAL_CALL getGraphics() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL getSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // UNO3_XEVENTLISTENER
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL disposing( const UNO3_EVENTOBJECT& rSource ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XPaintListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowPaint( const UNO3_PAINTEVENT& rEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XWindowListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowResized( const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+ virtual void SAL_CALL windowMoved( const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+ virtual void SAL_CALL windowShown( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+ virtual void SAL_CALL windowHidden( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // impl but public method to register service
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_OUSTRING impl_getStaticImplementationName();
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+ using OComponentHelper::disposing;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY > impl_getMultiServiceFactory();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ const UNO3_REFERENCE< UNO3_XWINDOW > impl_getPeerWindow();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ const UNO3_REFERENCE< UNO3_XGRAPHICS > impl_getGraphicsPeer();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ const sal_Int32& impl_getWidth();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ const sal_Int32& impl_getHeight();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void impl_paint( sal_Int32 nX ,
+ sal_Int32 nY ,
+ const UNO3_REFERENCE< UNO3_XGRAPHICS >& xGraphics );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void impl_recalcLayout( const UNO3_WINDOWEVENT& aEvent );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ UNO3_REFERENCE< UNO3_XINTERFACE > impl_getDelegator();
+
+//____________________________________________________________________________________________________________
+// private methods
+//____________________________________________________________________________________________________________
+
+private:
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_releasePeer();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ OMRCListenerMultiplexerHelper* impl_getMultiplexer();
+
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY > m_xFactory ;
+ UNO3_REFERENCE< UNO3_XINTERFACE > m_xDelegator ;
+ OMRCListenerMultiplexerHelper* m_pMultiplexer ; // multiplex events
+ UNO3_REFERENCE< UNO3_XINTERFACE > m_xMultiplexer ;
+ UNO3_REFERENCE< UNO3_XINTERFACE > m_xContext ;
+ UNO3_REFERENCE< UNO3_XWINDOWPEER > m_xPeer ;
+ UNO3_REFERENCE< UNO3_XWINDOW > m_xPeerWindow ;
+ UNO3_REFERENCE< UNO3_XGRAPHICS > m_xGraphicsView ; // graphics for ::com::sun::star::awt::XView-operations
+ UNO3_REFERENCE< UNO3_XGRAPHICS > m_xGraphicsPeer ; // graphics for painting on a peer
+ sal_Int32 m_nX ; // Position ...
+ sal_Int32 m_nY ;
+ sal_Int32 m_nWidth ; // ... and size of window
+ sal_Int32 m_nHeight ;
+ sal_Bool m_bVisible ; // Some state flags
+ sal_Bool m_bInDesignMode ;
+ sal_Bool m_bEnable ;
+
+}; // class BaseControl
+
+} // namespace unocontrols
+
+#endif // ifndef _UNOCONTROLS_BASECONTROL_CTRL_HXX
diff --git a/UnoControls/inc/definesunocontrols.hxx b/UnoControls/inc/definesunocontrols.hxx
new file mode 100644
index 000000000000..cf072736c4b5
--- /dev/null
+++ b/UnoControls/inc/definesunocontrols.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_DEFINES_CTRL_HXX
+#define _UNOCONTROLS_DEFINES_CTRL_HXX
+
+//-------------------------------------------------------------------------------------------------------------------
+// includes
+#include <limits.h> // defines for min/max of INT
+
+namespace unocontrols{
+
+//-------------------------------------------------------------------------------------------------------------------
+// global defines for all UnoControls
+//-------------------------------------------------------------------------------------------------------------------
+#define UNOCONTROLS_TRGB_COLORDATA( t,r,g,b ) ((INT32)(((UINT32)((UINT8)(b))))|(((UINT32)((UINT8)(g)))<<8)|(((UINT32)((UINT8)(r)))<<16)|(((UINT32)((UINT8)(t)))<<24))
+//-------------------------------------------------------------------------------------------------------------------
+
+// defines for BaseControl
+#ifdef _UNOCONTROLS_BASECONTROL_CTRL_HXX
+ #define BASECONTROL_IDLCLASSNAME "BaseControl"
+ #define BASECONTROL_DEFAULT_PMULTIPLEXER NULL
+ #define BASECONTROL_DEFAULT_X 0
+ #define BASECONTROL_DEFAULT_Y 0
+ #define BASECONTROL_DEFAULT_WIDTH 100
+ #define BASECONTROL_DEFAULT_HEIGHT 100
+ #define BASECONTROL_DEFAULT_VISIBLE FALSE
+ #define BASECONTROL_DEFAULT_INDESIGNMODE FALSE
+ #define BASECONTROL_DEFAULT_ENABLE TRUE
+ #define BASECONTROL_SERVICE_VCLTOOLKIT "com.sun.star.awt.VclToolkit"
+#endif
+//-------------------------------------------------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------------------------------------------------
+// defines for BaseContainerControl
+#ifdef _UNOCONTROLS_BASECONTAINERCONTROL_CTRL_HXX
+ #define BASECONTAINERCONTROL_IDLCLASSNAME "BaseContainerControl"
+#endif
+//-------------------------------------------------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------------------------------------------------
+// defines for ProgressBar
+#ifdef _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
+ #define PROGRESSBAR_IDLCLASSNAME "XProgressbar"
+ #define PROGRESSBAR_SERVICENAME "com.sun.star.awt.XProgressBar"
+ #define PROGRESSBAR_IMPLEMENTATIONNAME "stardiv.UnoControls.ProgressBar"
+ #define PROGRESSBAR_FREEBORDER 2
+ #define PROGRESSBAR_DEFAULT_HORIZONTAL TRUE
+ #define PROGRESSBAR_DEFAULT_BLOCKDIMENSION Size(1,1)
+ #define PROGRESSBAR_DEFAULT_BACKGROUNDCOLOR UNOCONTROLS_TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 ) // lightgray
+ #define PROGRESSBAR_DEFAULT_FOREGROUNDCOLOR UNOCONTROLS_TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x80 ) // blue
+ #define PROGRESSBAR_DEFAULT_MINRANGE INT_MIN
+ #define PROGRESSBAR_DEFAULT_MAXRANGE INT_MAX
+ #define PROGRESSBAR_DEFAULT_BLOCKVALUE 1
+ #define PROGRESSBAR_DEFAULT_VALUE PROGRESSBAR_DEFAULT_MINRANGE
+ #define PROGRESSBAR_LINECOLOR_BRIGHT UNOCONTROLS_TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF ) // white
+ #define PROGRESSBAR_LINECOLOR_SHADOW UNOCONTROLS_TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 ) // black
+#endif
+//-------------------------------------------------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------------------------------------------------
+// defines for FrameControl
+#ifdef _UNOCONTROLS_FRAMECONTROL_CTRL_HXX
+ #define FRAMECONTROL_IDLCLASSNAME "FrameControl"
+ #define FRAMECONTROL_SERVICENAME "com.sun.star.frame.FrameControl"
+ #define FRAMECONTROL_IMPLEMENTATIONNAME "stardiv.UnoControls.FrameControl"
+ #define FRAMECONTROL_DEFAULT_COMPONENTURL "private:factory/swriter"
+ #define FRAMECONTROL_PROPERTYNAME_LOADERARGUMENTS "LoaderArguments"
+ #define FRAMECONTROL_PROPERTYNAME_COMPONENTURL "ComponentURL"
+ #define FRAMECONTROL_PROPERTYNAME_FRAME "Frame"
+ #define FRAMECONTROL_PROPERTYNAME_IDLCLASSES "IDLClasses"
+ #define FRAMECONTROL_ERRORTEXT_VOSENSHURE "This is an invalid property handle."
+ #define FRAMECONTROL_PROPERTY_COUNT 4 // you must count the propertys
+ #define FRAMECONTROL_PROPERTY_COMPONENTURL 0 // Id must be the index into the array
+ #define FRAMECONTROL_PROPERTY_FRAME 1
+ #define FRAMECONTROL_PROPERTY_IDLCLASSES 2
+ #define FRAMECONTROL_PROPERTY_LOADERARGUMENTS 3
+#endif
+//-------------------------------------------------------------------------------------------------------------------
+
+//-------------------------------------------------------------------------------------------------------------------
+// defines for ProgressMonitor
+#ifdef _UNOCONTROLS_PROGRESSMONITOR_CTRL_HXX
+ #define PROGRESSMONITOR_IDLCLASSNAME "XProgressMonitor"
+ #define PROGRESSMONITOR_SERVICENAME "com.sun.star.awt.XProgressMonitor"
+ #define PROGRESSMONITOR_IMPLEMENTATIONNAME "stardiv.UnoControls.ProgressMonitor"
+ #define PROGRESSMONITOR_FREEBORDER 10 // border around and between the controls
+ #define PROGRESSMONITOR_WIDTH_RELATION 4 // reserve 1/4 for button width and rest for progressbar width
+ #define PROGRESSMONITOR_HEIGHT_RELATION 5 // reserve 1/5 for button and progressbar heigth and rest for text height
+ #define PROGRESSMONITOR_FIXEDTEXT_SERVICENAME "com.sun.star.awt.UnoControlFixedText"
+ #define PROGRESSMONITOR_BUTTON_SERVICENAME "com.sun.star.awt.UnoControlButton"
+ #define PROGRESSMONITOR_FIXEDTEXT_MODELNAME "com.sun.star.awt.UnoControlFixedTextModel"
+ #define PROGRESSMONITOR_BUTTON_MODELNAME "com.sun.star.awt.UnoControlButtonModel"
+ #define PROGRESSMONITOR_CONTROLNAME_TEXT "Text" // identifier the control in container
+ #define PROGRESSMONITOR_CONTROLNAME_BUTTON "Button" // -||-
+ #define PROGRESSMONITOR_CONTROLNAME_PROGRESSBAR "ProgressBar" // -||-
+ #define PROGRESSMONITOR_DEFAULT_BUTTONLABEL "Abbrechen"
+ #define PROGRESSMONITOR_DEFAULT_TOPIC "\0"
+ #define PROGRESSMONITOR_DEFAULT_TEXT "\0"
+ #define PROGRESSMONITOR_BACKGROUNDCOLOR UNOCONTROLS_TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 ) // lighgray
+ #define PROGRESSMONITOR_LINECOLOR_BRIGHT UNOCONTROLS_TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF ) // white
+ #define PROGRESSMONITOR_LINECOLOR_SHADOW UNOCONTROLS_TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 ) // black
+ #define PROGRESSMONITOR_HEIGHT_PROGRESSBAR 15
+ #define PROGRESSMONITOR_DEFAULT_WIDTH 350
+ #define PROGRESSMONITOR_DEFAULT_HEIGHT 100
+#endif
+//-------------------------------------------------------------------------------------------------------------------
+
+} // namespace unocontrols
+
+#endif // #ifndef _UNOCONTROLS_DEFINES_CTRL_HXX
diff --git a/UnoControls/inc/multiplexer.hxx b/UnoControls/inc/multiplexer.hxx
new file mode 100644
index 000000000000..b22513e5f16c
--- /dev/null
+++ b/UnoControls/inc/multiplexer.hxx
@@ -0,0 +1,771 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_MULTIPLEXER_HXX
+#define _UNOCONTROLS_MULTIPLEXER_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XKeyListener.hpp>
+#include <com/sun/star/awt/XPaintListener.hpp>
+#include <com/sun/star/awt/KeyEvent.hpp>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/awt/XMouseMotionListener.hpp>
+#include <com/sun/star/awt/FocusEvent.hpp>
+#include <com/sun/star/awt/XWindowListener.hpp>
+#include <com/sun/star/awt/XActivateListener.hpp>
+#include <com/sun/star/awt/MouseEvent.hpp>
+#include <com/sun/star/awt/XTopWindowListener.hpp>
+#include <com/sun/star/awt/PaintEvent.hpp>
+#include <com/sun/star/awt/InputEvent.hpp>
+#include <com/sun/star/awt/KeyGroup.hpp>
+#include <com/sun/star/awt/Key.hpp>
+#include <com/sun/star/awt/WindowEvent.hpp>
+#include <com/sun/star/awt/XMouseListener.hpp>
+#include <com/sun/star/awt/KeyFunction.hpp>
+#include <com/sun/star/awt/FocusChangeReason.hpp>
+#include <com/sun/star/awt/MouseButton.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <com/sun/star/awt/XTopWindow.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <cppuhelper/weak.hxx>
+#include <cppuhelper/interfacecontainer.hxx>
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// "namespaces"
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_OWEAKOBJECT ::cppu::OWeakObject
+#define UNO3_XWINDOW ::com::sun::star::awt::XWindow
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_WEAKREFERENCE ::com::sun::star::uno::WeakReference
+#define UNO3_MUTEX ::osl::Mutex
+#define UNO3_XWINDOWLISTENER ::com::sun::star::awt::XWindowListener
+#define UNO3_XKEYLISTENER ::com::sun::star::awt::XKeyListener
+#define UNO3_XMOUSELISTENER ::com::sun::star::awt::XMouseListener
+#define UNO3_XMOUSEMOTIONLISTENER ::com::sun::star::awt::XMouseMotionListener
+#define UNO3_XPAINTLISTENER ::com::sun::star::awt::XPaintListener
+#define UNO3_XTOPWINDOWLISTENER ::com::sun::star::awt::XTopWindowListener
+#define UNO3_XFOCUSLISTENER ::com::sun::star::awt::XFocusListener
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_XINTERFACE ::com::sun::star::uno::XInterface
+#define UNO3_EVENTOBJECT ::com::sun::star::lang::EventObject
+#define UNO3_FOCUSEVENT ::com::sun::star::awt::FocusEvent
+#define UNO3_WINDOWEVENT ::com::sun::star::awt::WindowEvent
+#define UNO3_KEYEVENT ::com::sun::star::awt::KeyEvent
+#define UNO3_MOUSEEVENT ::com::sun::star::awt::MouseEvent
+#define UNO3_PAINTEVENT ::com::sun::star::awt::PaintEvent
+#define UNO3_OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
+
+//____________________________________________________________________________________________________________
+// class
+//____________________________________________________________________________________________________________
+
+class OMRCListenerMultiplexerHelper : public UNO3_XFOCUSLISTENER
+ , public UNO3_XWINDOWLISTENER
+ , public UNO3_XKEYLISTENER
+ , public UNO3_XMOUSELISTENER
+ , public UNO3_XMOUSEMOTIONLISTENER
+ , public UNO3_XPAINTLISTENER
+ , public UNO3_XTOPWINDOWLISTENER
+ , public UNO3_OWEAKOBJECT
+{
+
+//____________________________________________________________________________________________________________
+// public methods
+//____________________________________________________________________________________________________________
+
+public:
+
+ //________________________________________________________________________________________________________
+ // construct/destruct
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short constructor
+ @descr Create a Multiplexer of XWindowEvents.
+
+ @seealso -
+
+ @param rControl The control. All listeners think that this is the original broadcaster.
+ @param rPeer The peer from which the original events are dispatched. Null is allowed.
+
+ @return -
+
+ @onerror -
+ */
+
+ OMRCListenerMultiplexerHelper( const UNO3_REFERENCE< UNO3_XWINDOW >& xControl ,
+ const UNO3_REFERENCE< UNO3_XWINDOW >& xPeer );
+
+ /**_______________________________________________________________________________________________________
+ @short copy-constructor
+ @descr
+
+ @seealso -
+
+ @param rCopyInstance C++-Reference to instance to make copy from.
+
+ @return -
+
+ @onerror -
+ */
+
+ OMRCListenerMultiplexerHelper( const OMRCListenerMultiplexerHelper& aCopyInstance );
+
+ /**_______________________________________________________________________________________________________
+ @short destructor
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ ~OMRCListenerMultiplexerHelper();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //________________________________________________________________________________________________________
+ // operator
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ operator UNO3_REFERENCE< UNO3_XINTERFACE >() const;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ OMRCListenerMultiplexerHelper& operator= ( const OMRCListenerMultiplexerHelper& aCopyInstance );
+
+ //________________________________________________________________________________________________________
+ // container methods
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short Remove all listeners from the previous set peer and add the needed listeners to rPeer.
+ @descr -
+
+ @seealso -
+
+ @param rPeer The peer from which the original events are dispatched. Null is allowed.
+
+ @return -
+
+ @onerror -
+ */
+
+ void setPeer( const UNO3_REFERENCE< UNO3_XWINDOW >& xPeer );
+
+ /**_______________________________________________________________________________________________________
+ @short Remove all listeners and send a disposing message.
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void disposeAndClear();
+
+ /**_______________________________________________________________________________________________________
+ @short Add the specified listener to the source.
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void advise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener );
+
+ /**_______________________________________________________________________________________________________
+ @short Remove the specified listener from the source.
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void unadvise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener );
+
+ //________________________________________________________________________________________________________
+ // XEventListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL disposing(const UNO3_EVENTOBJECT& aSource) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XFocusListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL focusGained(const UNO3_FOCUSEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL focusLost(const UNO3_FOCUSEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XWindowListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowResized(const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowMoved(const UNO3_WINDOWEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowShown(const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowHidden(const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XKeyListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL keyPressed( const UNO3_KEYEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL keyReleased( const UNO3_KEYEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XMouseListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mousePressed(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mouseReleased(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mouseEntered(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mouseExited(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XMouseMotionListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mouseDragged(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL mouseMoved(const UNO3_MOUSEEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XPaintListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowPaint(const UNO3_PAINTEVENT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ //________________________________________________________________________________________________________
+ // XTopWindowListener
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowOpened( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowClosing( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowClosed( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowMinimized( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowNormalized( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowActivated( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL windowDeactivated( const UNO3_EVENTOBJECT& aEvent ) throw( UNO3_RUNTIMEEXCEPTION ) ;
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+
+ /**_______________________________________________________________________________________________________
+ @short Remove the listener from the peer.
+ @descr -
+
+ @seealso -
+
+ @param xPeer The peer from which the listener is removed.
+ @param rType The listener type, which specify the type of the listener.
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_adviseToPeer( const UNO3_REFERENCE< UNO3_XWINDOW >& xPeer ,
+ const UNO3_TYPE& aType );
+
+ /**_______________________________________________________________________________________________________
+ @short Add the listener to the peer.
+ @descr -
+
+ @seealso -
+
+ @param xPeer The peer to which the listener is added.
+ @param rType The listener type, which specify the type of the listener.
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_unadviseFromPeer( const UNO3_REFERENCE< UNO3_XWINDOW >& xPeer ,
+ const UNO3_TYPE& aType );
+
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ UNO3_MUTEX m_aMutex ;
+ UNO3_REFERENCE< UNO3_XWINDOW > m_xPeer ; /// The source of the events. Normally this is the peer object.
+ UNO3_WEAKREFERENCE< UNO3_XWINDOW > m_xControl ;
+ UNO3_OMULTITYPEINTERFACECONTAINERHELPER m_aListenerHolder ;
+
+}; // class OMRCListenerMultiplexerHelper
+
+} // namespace unocontrols
+
+#endif // ifndef _UNOCONTROLS_MULTIPLEXER_HXX
diff --git a/UnoControls/prj/build.lst b/UnoControls/prj/build.lst
new file mode 100644
index 000000000000..de5d7fd81d33
--- /dev/null
+++ b/UnoControls/prj/build.lst
@@ -0,0 +1,5 @@
+us UnoControls : cppuhelper offuh tools NULL
+us UnoControls usr1 - all us_mkout NULL
+us UnoControls\source\base nmake - all us_base NULL
+us UnoControls\source\controls nmake - all us_ctrls NULL
+us UnoControls\util nmake - all us_util us_base us_ctrls NULL
diff --git a/UnoControls/prj/d.lst b/UnoControls/prj/d.lst
new file mode 100644
index 000000000000..5f65d3c80717
--- /dev/null
+++ b/UnoControls/prj/d.lst
@@ -0,0 +1,5 @@
+..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
+..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
+..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
diff --git a/UnoControls/source/base/basecontainercontrol.cxx b/UnoControls/source/base/basecontainercontrol.cxx
new file mode 100644
index 000000000000..68ed6287c2b4
--- /dev/null
+++ b/UnoControls/source/base/basecontainercontrol.cxx
@@ -0,0 +1,642 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//____________________________________________________________________________________________________________
+// my own includes
+//____________________________________________________________________________________________________________
+
+#include "basecontainercontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <cppuhelper/typeprovider.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// namespaces
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::rtl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::awt ;
+using namespace ::com::sun::star::container ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+BaseContainerControl::BaseContainerControl( const Reference< XMultiServiceFactory >& xFactory )
+ : BaseControl ( xFactory )
+ , m_aListeners ( m_aMutex )
+{
+ // initialize info list for controls
+ m_pControlInfoList = new IMPL_ControlInfoList ;
+}
+
+BaseContainerControl::~BaseContainerControl()
+{
+ impl_cleanMemory();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL BaseContainerControl::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+ Any aReturn ;
+ Reference< XInterface > xDel = BaseControl::impl_getDelegator();
+ if ( xDel.is() == sal_True )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = xDel->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL BaseContainerControl::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XControlModel >*)NULL ) ,
+ ::getCppuType(( const Reference< XControlContainer >*)NULL ) ,
+ BaseControl::getTypes()
+ );
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL BaseContainerControl::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XControlModel* > ( this ) ,
+ static_cast< XControlContainer* > ( this )
+ )
+ );
+
+ // If searched interface supported by this class ...
+ if ( aReturn.hasValue() == sal_True )
+ {
+ // ... return this information.
+ return aReturn ;
+ }
+ else
+ {
+ // Else; ... ask baseclass for interfaces!
+ return BaseControl::queryAggregation( aType );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::createPeer( const Reference< XToolkit >& xToolkit ,
+ const Reference< XWindowPeer >& xParent ) throw( RuntimeException )
+{
+ if ( getPeer().is() == sal_False )
+ {
+ // create own peer
+ BaseControl::createPeer( xToolkit, xParent );
+
+ // create peers at all childs
+ Sequence< Reference< XControl > > seqControlList = getControls();
+ sal_uInt32 nControls = seqControlList.getLength();
+
+ for ( sal_uInt32 n=0; n<nControls; n++ )
+ {
+ seqControlList.getArray()[n]->createPeer( xToolkit, getPeer() );
+ }
+
+ // activate new tab order
+ impl_activateTabControllers();
+
+/*
+ Reference< XVclContainerPeer > xC;
+ mxPeer->queryInterface( ::getCppuType((const Reference< XVclContainerPeer >*)0), xC );
+ xC->enableDialogControl( sal_True );
+*/
+
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL BaseContainerControl::setModel( const Reference< XControlModel >& ) throw( RuntimeException )
+{
+ // This object has NO model.
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XControlModel > SAL_CALL BaseContainerControl::getModel() throw( RuntimeException )
+{
+ // This object has NO model.
+ // return (XControlModel*)this ;
+ return Reference< XControlModel >();
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::dispose() throw( RuntimeException )
+{
+ // Zuerst der Welt mitteilen, da� der Container wegfliegt. Dieses ist um einiges
+ // schneller wenn die Welt sowohl an den Controls als auch am Container horcht
+
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // remove listeners
+ EventObject aObject ;
+
+ aObject.Source = Reference< XComponent > ( (XControlContainer*)this, UNO_QUERY );
+ m_aListeners.disposeAndClear( aObject );
+
+ // remove controls
+ Sequence< Reference< XControl > > seqCtrls = getControls();
+ Reference< XControl > * pCtrls = seqCtrls.getArray();
+ sal_uInt32 nCtrls = seqCtrls.getLength();
+ sal_uInt32 nMaxCount = m_pControlInfoList->Count();
+ sal_uInt32 nCount = 0;
+
+ for ( nCount = 0; nCount < nMaxCount; ++nCount )
+ {
+ delete m_pControlInfoList->GetObject( 0 );
+ }
+ m_pControlInfoList->Clear();
+
+
+ for ( nCount = 0; nCount < nCtrls; ++nCount )
+ {
+ pCtrls [ nCount ] -> removeEventListener ( static_cast< XEventListener* >( static_cast< XWindowListener* >( this ) ) ) ;
+ pCtrls [ nCount ] -> dispose ( ) ;
+ }
+
+ // call baseclass
+ BaseControl::dispose();
+}
+
+//____________________________________________________________________________________________________________
+// XEventListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::disposing( const EventObject& rEvent ) throw( RuntimeException )
+{
+ Reference< XControl > xControl( rEvent.Source, UNO_QUERY );
+
+ // "removeControl" remove only, when control is an active control
+ removeControl( xControl );
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::addControl ( const OUString& rName, const Reference< XControl > & rControl ) throw( RuntimeException )
+{
+ if ( !rControl.is () )
+ return;
+
+ // take memory for new item
+ IMPL_ControlInfo* pNewControl = new IMPL_ControlInfo ;
+
+ if (pNewControl!=(IMPL_ControlInfo*)0)
+ {
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ // set control
+ pNewControl->sName = rName ;
+ pNewControl->xControl = rControl ;
+
+ // and insert in list
+ m_pControlInfoList->Insert ( pNewControl, LIST_APPEND ) ;
+
+ // initialize new control
+ pNewControl->xControl->setContext ( (OWeakObject*)this ) ;
+ pNewControl->xControl->addEventListener ( static_cast< XEventListener* >( static_cast< XWindowListener* >( this ) ) ) ;
+
+ // when container has a peer ...
+ if (getPeer().is())
+ {
+ // .. then create a peer on child
+ pNewControl->xControl->createPeer ( getPeer()->getToolkit(), getPeer() ) ;
+ impl_activateTabControllers () ;
+ }
+
+ // Send message to all listener
+ OInterfaceContainerHelper* pInterfaceContainer = m_aListeners.getContainer( ::getCppuType((const Reference< XContainerListener >*)0) ) ;
+
+ if (pInterfaceContainer)
+ {
+ // Build event
+ ContainerEvent aEvent ;
+
+ aEvent.Source = *this ;
+ aEvent.Element <<= rControl ;
+
+ // Get all listener
+ OInterfaceIteratorHelper aIterator (*pInterfaceContainer) ;
+
+ // Send event
+ while ( aIterator.hasMoreElements() )
+ {
+ ((XContainerListener*)aIterator.next())->elementInserted (aEvent) ;
+ }
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::addContainerListener ( const Reference< XContainerListener > & rListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ m_aListeners.addInterface ( ::getCppuType((const Reference< XContainerListener >*)0), rListener ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::removeControl ( const Reference< XControl > & rControl ) throw( RuntimeException )
+{
+ if ( rControl.is() )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ sal_uInt32 nControls = m_pControlInfoList->Count () ;
+
+ for ( sal_uInt32 n=0; n<nControls; n++ )
+ {
+ // Search for right control
+ IMPL_ControlInfo* pControl = m_pControlInfoList->GetObject (n) ;
+ if ( rControl == pControl->xControl )
+ {
+ //.is it found ... remove listener from control
+ pControl->xControl->removeEventListener (static_cast< XEventListener* >( static_cast< XWindowListener* >( this ) )) ;
+ pControl->xControl->setContext ( Reference< XInterface > () ) ;
+
+ // ... free memory
+ delete pControl ;
+ m_pControlInfoList->Remove (n) ;
+
+ // Send message to all other listener
+ OInterfaceContainerHelper * pInterfaceContainer = m_aListeners.getContainer( ::getCppuType((const Reference< XContainerListener >*)0) ) ;
+
+ if (pInterfaceContainer)
+ {
+ ContainerEvent aEvent ;
+
+ aEvent.Source = *this ;
+ aEvent.Element <<= rControl ;
+
+ OInterfaceIteratorHelper aIterator (*pInterfaceContainer) ;
+
+ while ( aIterator.hasMoreElements() )
+ {
+ ((XContainerListener*)aIterator.next())->elementRemoved (aEvent) ;
+ }
+ }
+ // Break "for" !
+ break ;
+ }
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::removeContainerListener ( const Reference< XContainerListener > & rListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ m_aListeners.removeInterface ( ::getCppuType((const Reference< XContainerListener >*)0), rListener ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::setStatusText ( const OUString& rStatusText ) throw( RuntimeException )
+{
+ // go down to each parent
+ Reference< XControlContainer > xContainer ( getContext(), UNO_QUERY ) ;
+
+ if ( xContainer.is () )
+ {
+ xContainer->setStatusText ( rStatusText ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+Reference< XControl > SAL_CALL BaseContainerControl::getControl ( const OUString& rName ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( Mutex::getGlobalMutex() ) ;
+
+ Reference< XControl > xRetControl = Reference< XControl > () ;
+ sal_uInt32 nControls = m_pControlInfoList->Count () ;
+
+ // Search for right control
+ for( sal_uInt32 nCount = 0; nCount < nControls; ++nCount )
+ {
+ IMPL_ControlInfo* pSearchControl = m_pControlInfoList->GetObject ( nCount ) ;
+
+ if ( pSearchControl->sName == rName )
+ {
+ // We have found it ...
+ // Break operation and return.
+ return pSearchControl->xControl ;
+ }
+ }
+
+ // We have not found it ... return NULL.
+ return Reference< XControl > () ;
+}
+
+//____________________________________________________________________________________________________________
+// XControlContainer
+//____________________________________________________________________________________________________________
+
+Sequence< Reference< XControl > > SAL_CALL BaseContainerControl::getControls () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( Mutex::getGlobalMutex() ) ;
+
+ sal_uInt32 nControls = m_pControlInfoList->Count () ;
+ Sequence< Reference< XControl > > aDescriptor ( nControls ) ;
+ Reference< XControl > * pDestination = aDescriptor.getArray () ;
+ sal_uInt32 nCount = 0 ;
+
+ // Copy controls to sequence
+ for( nCount = 0; nCount < nControls; ++nCount )
+ {
+ IMPL_ControlInfo* pCopyControl = m_pControlInfoList->GetObject ( nCount ) ;
+ pDestination [ nCount ] = pCopyControl->xControl ;
+ }
+
+ // Return sequence
+ return aDescriptor ;
+}
+
+//____________________________________________________________________________________________________________
+// XUnoControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::addTabController ( const Reference< XTabController > & rTabController ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ sal_uInt32 nOldCount = m_xTabControllerList.getLength () ;
+ Sequence< Reference< XTabController > > aNewList ( nOldCount + 1 ) ;
+ sal_uInt32 nCount = 0 ;
+
+ // Copy old elements of sequence to new list.
+ for ( nCount = 0; nCount < nOldCount; ++nCount )
+ {
+ aNewList.getArray () [nCount] = m_xTabControllerList.getConstArray () [nCount] ;
+ }
+
+ // Add new controller
+ aNewList.getArray () [nOldCount] = rTabController ;
+
+ // change old and new list
+ m_xTabControllerList = aNewList ;
+}
+
+//____________________________________________________________________________________________________________
+// XUnoControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::removeTabController ( const Reference< XTabController > & rTabController ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ sal_uInt32 nMaxCount = m_xTabControllerList.getLength () ;
+ sal_uInt32 nCount = 0 ;
+
+ // Search right tabcontroller ...
+ for ( nCount = 0; nCount < nMaxCount; ++nCount )
+ {
+ if ( m_xTabControllerList.getConstArray () [nCount] == rTabController )
+ {
+ // ... if is it found ... remove it from list.
+ m_xTabControllerList.getArray()[ nCount ] = Reference< XTabController >() ;
+ break ;
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XUnoControlContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::setTabControllers ( const Sequence< Reference< XTabController > >& rTabControllers ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ m_xTabControllerList = rTabControllers ;
+}
+
+Sequence<Reference< XTabController > > SAL_CALL BaseContainerControl::getTabControllers () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ return m_xTabControllerList ;
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseContainerControl::setVisible ( sal_Bool bVisible ) throw( RuntimeException )
+{
+ // override baseclass definition
+ BaseControl::setVisible ( bVisible ) ;
+
+ // is it a top window ?
+ if ( !getContext().is() && bVisible )
+ {
+ // then show it automaticly
+ createPeer ( Reference< XToolkit > (), Reference< XWindowPeer > () ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+WindowDescriptor* BaseContainerControl::impl_getWindowDescriptor ( const Reference< XWindowPeer > & rParentPeer )
+{
+ // - used from "createPeer()" to set the values of an WindowDescriptor !!!
+ // - if you will change the descriptor-values, you must override thid virtuell function
+ // - the caller must release the memory for this dynamical descriptor !!!
+
+ WindowDescriptor * aDescriptor = new WindowDescriptor ;
+
+ aDescriptor->Type = WindowClass_CONTAINER ;
+ aDescriptor->WindowServiceName = OUString(RTL_CONSTASCII_USTRINGPARAM("window")) ;
+ aDescriptor->ParentIndex = -1 ;
+ aDescriptor->Parent = rParentPeer ;
+ aDescriptor->Bounds = getPosSize () ;
+ aDescriptor->WindowAttributes = 0 ;
+
+ return aDescriptor ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void BaseContainerControl::impl_paint ( sal_Int32 /*nX*/, sal_Int32 /*nY*/, const Reference< XGraphics > & /*rGraphics*/ )
+{
+/*
+ if (rGraphics.is())
+ {
+ for ( sal_uInt32 n=m_pControlInfoList->Count(); n; )
+ {
+ ControlInfo* pSearchControl = m_pControlInfoList->GetObject (--n) ;
+
+ pSearchControl->xControl->paint ( nX, nY, rGraphics ) ;
+ }
+ }
+*/
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void BaseContainerControl::impl_activateTabControllers ()
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ sal_uInt32 nMaxCount = m_xTabControllerList.getLength () ;
+ sal_uInt32 nCount = 0 ;
+
+ for ( nCount = 0; nCount < nMaxCount; ++nCount )
+ {
+ m_xTabControllerList.getArray () [nCount]->setContainer ( this ) ;
+ m_xTabControllerList.getArray () [nCount]->activateTabOrder ( ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void BaseContainerControl::impl_cleanMemory ()
+{
+ // Get count of listitems.
+ sal_uInt32 nMaxCount = m_pControlInfoList->Count () ;
+ sal_uInt32 nCount = 0 ;
+
+ // Delete all items.
+ for ( nCount = 0; nCount < nMaxCount; ++nCount )
+ {
+ // Delete everytime first element of list!
+ // We count from 0 to MAX, where "MAX=count of items" BEFORE we delete some elements!
+ // If we use "GetObject ( nCount )" ... it can be, that we have an index greater then count of current elements!
+
+ IMPL_ControlInfo* pSearchControl = m_pControlInfoList->GetObject ( 0 ) ;
+ delete pSearchControl ;
+ }
+
+ // Delete list himself.
+ m_pControlInfoList->Clear () ;
+ delete m_pControlInfoList ;
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/base/basecontrol.cxx b/UnoControls/source/base/basecontrol.cxx
new file mode 100644
index 000000000000..030f19d6d452
--- /dev/null
+++ b/UnoControls/source/base/basecontrol.cxx
@@ -0,0 +1,1019 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//____________________________________________________________________________________________________________
+// my own include
+//____________________________________________________________________________________________________________
+
+#include "basecontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <com/sun/star/awt/XDevice.hpp>
+#include <com/sun/star/awt/XDisplayBitmap.hpp>
+#include <com/sun/star/awt/DeviceInfo.hpp>
+#include <com/sun/star/awt/WindowAttribute.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <cppuhelper/typeprovider.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// namespaces
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::rtl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::awt ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// defines
+//____________________________________________________________________________________________________________
+
+#define DEFAULT_PMULTIPLEXER NULL
+#define DEFAULT_X 0
+#define DEFAULT_Y 0
+#define DEFAULT_WIDTH 100
+#define DEFAULT_HEIGHT 100
+#define DEFAULT_VISIBLE sal_False
+#define DEFAULT_INDESIGNMODE sal_False
+#define DEFAULT_ENABLE sal_True
+#define SERVICE_VCLTOOLKIT "com.sun.star.awt.Toolkit"
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+BaseControl::BaseControl( const Reference< XMultiServiceFactory >& xFactory )
+ : IMPL_MutexContainer ( )
+ , OComponentHelper ( m_aMutex )
+ , m_xFactory ( xFactory )
+ , m_pMultiplexer ( DEFAULT_PMULTIPLEXER )
+ , m_nX ( DEFAULT_X )
+ , m_nY ( DEFAULT_Y )
+ , m_nWidth ( DEFAULT_WIDTH )
+ , m_nHeight ( DEFAULT_HEIGHT )
+ , m_bVisible ( DEFAULT_VISIBLE )
+ , m_bInDesignMode ( DEFAULT_INDESIGNMODE )
+ , m_bEnable ( DEFAULT_ENABLE )
+{
+}
+
+BaseControl::~BaseControl()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL BaseControl::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ Any aReturn ;
+ if ( m_xDelegator.is() == sal_True )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = m_xDelegator->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OComponentHelper::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OComponentHelper::release();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL BaseControl::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XPaintListener >*)NULL ) ,
+ ::getCppuType(( const Reference< XWindowListener>*)NULL ) ,
+ ::getCppuType(( const Reference< XView >*)NULL ) ,
+ ::getCppuType(( const Reference< XWindow >*)NULL ) ,
+ ::getCppuType(( const Reference< XServiceInfo >*)NULL ) ,
+ ::getCppuType(( const Reference< XControl >*)NULL ) ,
+ OComponentHelper::getTypes()
+ );
+
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< sal_Int8 > SAL_CALL BaseControl::getImplementationId() throw( RuntimeException )
+{
+ // Create one Id for all instances of this class.
+ // Use ethernet address to do this! (sal_True)
+
+ // Optimize this method
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pID is NULL - for the second call pID is different from NULL!
+ static OImplementationId* pID = NULL ;
+
+ if ( pID == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pID == NULL )
+ {
+ // Create a new static ID ...
+ static OImplementationId aID( sal_False );
+ // ... and set his address to static pointer!
+ pID = &aID ;
+ }
+ }
+
+ return pID->getImplementationId();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setDelegator( const Reference< XInterface >& xDel ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ m_xDelegator = xDel;
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL BaseControl::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XPaintListener*> ( this ) ,
+ static_cast< XWindowListener*> ( this ) ,
+ static_cast< XView* > ( this ) ,
+ static_cast< XWindow* > ( this ) ,
+ static_cast< XServiceInfo* > ( this ) ,
+ static_cast< XControl* > ( this )
+ )
+ );
+
+ // If searched interface supported by this class ...
+ if ( aReturn.hasValue() == sal_True )
+ {
+ // ... return this information.
+ return aReturn ;
+ }
+ else
+ {
+ // Else; ... ask baseclass for interfaces!
+ return OComponentHelper::queryAggregation( aType );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XServiceInfo
+//____________________________________________________________________________________________________________
+
+OUString SAL_CALL BaseControl::getImplementationName() throw( RuntimeException )
+{
+ return impl_getStaticImplementationName();
+}
+
+//____________________________________________________________________________________________________________
+// XServiceInfo
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL BaseControl::supportsService( const OUString& sServiceName ) throw( RuntimeException )
+{
+ Sequence< OUString > seqServiceNames = getSupportedServiceNames();
+ const OUString* pArray = seqServiceNames.getConstArray();
+ for ( sal_Int32 nCounter=0; nCounter<seqServiceNames.getLength(); nCounter++ )
+ {
+ if ( pArray[nCounter] == sServiceName )
+ {
+ return sal_True ;
+ }
+ }
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XServiceInfo
+//____________________________________________________________________________________________________________
+
+Sequence< OUString > SAL_CALL BaseControl::getSupportedServiceNames() throw( RuntimeException )
+{
+ return impl_getStaticSupportedServiceNames();
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::dispose() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ if ( m_pMultiplexer != NULL )
+ {
+ // to all other paint, focus, etc.
+ m_pMultiplexer->disposeAndClear();
+ }
+
+ // set the service manager to disposed
+ OComponentHelper::dispose();
+
+ // release context and peer
+ m_xContext = Reference< XInterface >();
+ impl_releasePeer();
+
+ // release view
+ if ( m_xGraphicsView.is() == sal_True )
+ {
+ m_xGraphicsView = Reference< XGraphics >();
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addEventListener( const Reference< XEventListener >& xListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ OComponentHelper::addEventListener( xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeEventListener( const Reference< XEventListener >& xListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ OComponentHelper::removeEventListener( xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::createPeer( const Reference< XToolkit >& xToolkit ,
+ const Reference< XWindowPeer >& xParentPeer ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ if ( m_xPeer.is() == sal_False )
+ {
+ // use method "BaseControl::getWindowDescriptor()" fot change window attributes !!!
+ WindowDescriptor* pDescriptor = impl_getWindowDescriptor( xParentPeer );
+
+ if ( m_bVisible == sal_True )
+ {
+ pDescriptor->WindowAttributes |= WindowAttribute::SHOW ;
+ }
+
+ // very slow under remote conditions!
+ // create the window on the server
+ Reference< XToolkit > xLocalToolkit = xToolkit ;
+ if ( xLocalToolkit.is() == sal_False )
+ {
+ // but first create wellknown toolkit, if it not exist
+ xLocalToolkit = Reference< XToolkit > ( m_xFactory->createInstance( OUString::createFromAscii( SERVICE_VCLTOOLKIT ) ), UNO_QUERY );
+ }
+ m_xPeer = xLocalToolkit->createWindow( *pDescriptor );
+ m_xPeerWindow = Reference< XWindow >( m_xPeer, UNO_QUERY );
+
+ // don't forget to release the memory!
+ delete pDescriptor ;
+
+ if ( m_xPeerWindow.is() == sal_True )
+ {
+ if ( m_pMultiplexer != NULL )
+ {
+ m_pMultiplexer->setPeer( m_xPeerWindow );
+ }
+
+ // create new referenz to xgraphics for painting on a peer
+ // and add a paint listener
+ Reference< XDevice > xDevice( m_xPeerWindow, UNO_QUERY );
+
+ if ( xDevice.is() == sal_True )
+ {
+ m_xGraphicsPeer = xDevice->createGraphics();
+ }
+
+ if ( m_xGraphicsPeer.is() == sal_True )
+ {
+ addPaintListener( this );
+ addWindowListener( this );
+ }
+
+ // PosSize_POSSIZE defined in <stardiv/uno/awt/window.hxx>
+ m_xPeerWindow->setPosSize( m_nX, m_nY, m_nWidth, m_nHeight, PosSize::POSSIZE );
+ m_xPeerWindow->setEnable( m_bEnable );
+ m_xPeerWindow->setVisible( m_bVisible && !m_bInDesignMode );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setContext( const Reference< XInterface >& xContext ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ m_xContext = xContext ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setDesignMode( sal_Bool bOn ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ m_bInDesignMode = bOn ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XInterface > SAL_CALL BaseControl::getContext() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return m_xContext ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XWindowPeer > SAL_CALL BaseControl::getPeer() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return m_xPeer ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XView > SAL_CALL BaseControl::getView() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return Reference< XView >( (OWeakObject*)this, UNO_QUERY );
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL BaseControl::isDesignMode() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return m_bInDesignMode ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL BaseControl::isTransparent() throw( RuntimeException )
+{
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setPosSize( sal_Int32 nX ,
+ sal_Int32 nY ,
+ sal_Int32 nWidth ,
+ sal_Int32 nHeight ,
+ sal_Int16 nFlags ) throw( RuntimeException )
+{
+ // - change size and position of window and save the values
+ // - "nFlags" declared in <stardiv/uno/awt/window.hxx> ("#define PosSize_X .....")
+
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ sal_Bool bChanged = sal_False ;
+
+ if ( nFlags & PosSize::X )
+ {
+ bChanged |= m_nX != nX, m_nX = nX ;
+ }
+
+ if ( nFlags & PosSize::Y )
+ {
+ bChanged |= m_nY != nY, m_nY = nY ;
+ }
+
+ if ( nFlags & PosSize::WIDTH )
+ {
+ bChanged |= m_nWidth != nWidth, m_nWidth = nWidth ;
+ }
+
+ if ( nFlags & PosSize::HEIGHT )
+ {
+ bChanged |= m_nHeight != nHeight, m_nHeight = nHeight ;
+ }
+
+ if ( bChanged && m_xPeerWindow.is() )
+ {
+ m_xPeerWindow->setPosSize( m_nX, m_nY, m_nWidth, m_nHeight, nFlags );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setVisible( sal_Bool bVisible ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Set new state of flag
+ m_bVisible = bVisible ;
+
+ if ( m_xPeerWindow.is() == sal_True )
+ {
+ // Set it also on peerwindow
+ m_xPeerWindow->setVisible( m_bVisible );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setEnable( sal_Bool bEnable ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Set new state of flag
+ m_bEnable = bEnable ;
+
+ if ( m_xPeerWindow.is() == sal_True )
+ {
+ // Set it also on peerwindow
+ m_xPeerWindow->setEnable( m_bEnable );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setFocus() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ if ( m_xPeerWindow.is() == sal_True )
+ {
+ m_xPeerWindow->setFocus();
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+Rectangle SAL_CALL BaseControl::getPosSize() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return Rectangle( m_nX, m_nY , m_nWidth, m_nHeight );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addWindowListener( const Reference< XWindowListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XWindowListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addFocusListener( const Reference< XFocusListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XFocusListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addKeyListener( const Reference< XKeyListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XKeyListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addMouseListener( const Reference< XMouseListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XMouseListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addMouseMotionListener( const Reference< XMouseMotionListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XMouseMotionListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::addPaintListener( const Reference< XPaintListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->advise( ::getCppuType(( const Reference< XPaintListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeWindowListener( const Reference< XWindowListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XWindowListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeFocusListener( const Reference< XFocusListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XFocusListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeKeyListener( const Reference< XKeyListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XKeyListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeMouseListener( const Reference< XMouseListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XMouseListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removeMouseMotionListener( const Reference< XMouseMotionListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XMouseMotionListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::removePaintListener( const Reference< XPaintListener >& xListener ) throw( RuntimeException )
+{
+ impl_getMultiplexer()->unadvise( ::getCppuType(( const Reference< XPaintListener >*)0), xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::draw( sal_Int32 nX ,
+ sal_Int32 nY ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // - paint to an view
+ // - use the method "paint()"
+ // - see also "windowPaint()"
+ impl_paint( nX, nY, m_xGraphicsView );
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL BaseControl::setGraphics( const Reference< XGraphics >& xDevice ) throw( RuntimeException )
+{
+ // - set the graphics for an view
+ // - in this class exist 2 graphics-member ... one for peer[_xGraphicsPeer] and one for view[_xGraphicsView]
+ // - they are used by "windowPaint() and draw()", forwarded to "paint ()"
+ sal_Bool bReturn = sal_False ;
+ if ( xDevice.is() == sal_True )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ m_xGraphicsView = xDevice ;
+ bReturn = sal_True ;
+ }
+
+ return bReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::setZoom( float /*fZoomX*/ ,
+ float /*fZoomY*/ ) throw( RuntimeException )
+{
+ // Not implemented yet
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+Reference< XGraphics > SAL_CALL BaseControl::getGraphics() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return m_xGraphicsView ;
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL BaseControl::getSize() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+ return Size( m_nWidth, m_nHeight );
+}
+
+//____________________________________________________________________________________________________________
+// XEventListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::disposing( const EventObject& /*aSource*/ ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // - release ALL references
+ // - it must be !!!
+ if ( m_xGraphicsPeer.is() == sal_True )
+ {
+ removePaintListener( this );
+ removeWindowListener( this );
+ m_xGraphicsPeer = Reference< XGraphics >();
+ }
+
+ if ( m_xGraphicsView.is() == sal_True )
+ {
+ m_xGraphicsView = Reference< XGraphics >();
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XPaintListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::windowPaint( const PaintEvent& /*aEvent*/ ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // - repaint the peer
+ // - use the method "paint ()" for painting on a peer and a print device !!!
+ // - see also "draw ()"
+ impl_paint( 0, 0, m_xGraphicsPeer );
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::windowResized( const WindowEvent& aEvent ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ m_nWidth = aEvent.Width ;
+ m_nHeight = aEvent.Height ;
+ WindowEvent aMappedEvent = aEvent;
+ aMappedEvent.X = 0;
+ aMappedEvent.Y = 0;
+ impl_recalcLayout( aMappedEvent );
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::windowMoved( const WindowEvent& aEvent ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ m_nWidth = aEvent.Width ;
+ m_nHeight = aEvent.Height ;
+ WindowEvent aMappedEvent = aEvent;
+ aMappedEvent.X = 0;
+ aMappedEvent.Y = 0;
+ impl_recalcLayout( aMappedEvent );
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::windowShown( const EventObject& /*aEvent*/ ) throw( RuntimeException )
+{
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL BaseControl::windowHidden( const EventObject& /*aEvent*/ ) throw( RuntimeException )
+{
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service in DLL
+// (In this BASE-implementation not implemented! Overwrite it in derived classes.)
+//____________________________________________________________________________________________________________
+
+const Sequence< OUString > BaseControl::impl_getStaticSupportedServiceNames()
+{
+ return Sequence< OUString >();
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service in DLL
+// (In this BASE-implementation not implemented! Overwrite it in derived classes.)
+//____________________________________________________________________________________________________________
+
+const OUString BaseControl::impl_getStaticImplementationName()
+{
+ return OUString();
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+const Reference< XMultiServiceFactory > BaseControl::impl_getMultiServiceFactory()
+{
+ return m_xFactory ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+const Reference< XWindow > BaseControl::impl_getPeerWindow()
+{
+ return m_xPeerWindow ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+const Reference< XGraphics > BaseControl::impl_getGraphicsPeer()
+{
+ return m_xGraphicsPeer ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+const sal_Int32& BaseControl::impl_getWidth()
+{
+ return m_nWidth ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+const sal_Int32& BaseControl::impl_getHeight()
+{
+ return m_nHeight ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+WindowDescriptor* BaseControl::impl_getWindowDescriptor( const Reference< XWindowPeer >& xParentPeer )
+{
+ // - used from "createPeer()" to set the values of an ::com::sun::star::awt::WindowDescriptor !!!
+ // - if you will change the descriptor-values, you must override this virtuell function
+ // - the caller must release the memory for this dynamical descriptor !!!
+
+ WindowDescriptor* pDescriptor = new WindowDescriptor ;
+
+ pDescriptor->Type = WindowClass_SIMPLE ;
+ pDescriptor->WindowServiceName = OUString::createFromAscii( "window" ) ;
+ pDescriptor->ParentIndex = -1 ;
+ pDescriptor->Parent = xParentPeer ;
+ pDescriptor->Bounds = getPosSize () ;
+ pDescriptor->WindowAttributes = 0 ;
+
+ return pDescriptor ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void BaseControl::impl_paint( sal_Int32 /*nX*/ ,
+ sal_Int32 /*nY*/ ,
+ const Reference< XGraphics >& /*xGraphics*/ )
+{
+ // - one paint method for peer AND view !!!
+ // (see also => "windowPaint()" and "draw()")
+ // - not used in this implementation, but its not necessary to make it pure virtual !!!
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void BaseControl::impl_recalcLayout( const WindowEvent& /*aEvent*/ )
+{
+ // We need as virtual function to support automaticly resizing of derived controls!
+ // But we make it not pure virtual because it's not neccessary for all derived classes!
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+Reference< XInterface > BaseControl::impl_getDelegator()
+{
+ return m_xDelegator ;
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void BaseControl::impl_releasePeer()
+{
+ if ( m_xPeer.is() == sal_True )
+ {
+ if ( m_xGraphicsPeer.is() == sal_True )
+ {
+ removePaintListener( this );
+ removeWindowListener( this );
+ m_xGraphicsPeer = Reference< XGraphics >();
+ }
+
+ m_xPeer->dispose();
+ m_xPeerWindow = Reference< XWindow >();
+ m_xPeer = Reference< XWindowPeer >();
+
+ if ( m_pMultiplexer != NULL )
+ {
+ // take changes on multiplexer
+ m_pMultiplexer->setPeer( Reference< XWindow >() );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+OMRCListenerMultiplexerHelper* BaseControl::impl_getMultiplexer()
+{
+ if ( m_pMultiplexer == NULL )
+ {
+ m_pMultiplexer = new OMRCListenerMultiplexerHelper( (XWindow*)this, m_xPeerWindow );
+ m_xMultiplexer = Reference< XInterface >( (OWeakObject*)m_pMultiplexer, UNO_QUERY );
+ }
+
+ return m_pMultiplexer ;
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/base/makefile.mk b/UnoControls/source/base/makefile.mk
new file mode 100644
index 000000000000..74c6d4d43656
--- /dev/null
+++ b/UnoControls/source/base/makefile.mk
@@ -0,0 +1,69 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..$/..
+
+PRJNAME=UnoControls
+TARGET=base
+ENABLE_EXCEPTIONS=TRUE
+#LIBTARGET=NO
+#USE_LDUMP2=TRUE
+#USE_DEFFILE=TRUE
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+
+# --- Files --------------------------------------------------------
+SLOFILES= $(SLO)$/multiplexer.obj \
+ $(SLO)$/basecontrol.obj \
+ $(SLO)$/basecontainercontrol.obj \
+ $(SLO)$/registercontrols.obj
+
+#LIB1TARGET= $(SLB)$/$(TARGET).lib
+#LIB1OBJFILES= $(SLOFILES)
+
+#SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
+
+#SHL1STDLIBS=\
+# $(ONELIB) \
+# $(USRLIB) \
+# $(UNOLIB) \
+# $(VOSLIB) \
+# $(OSLLIB) \
+# $(TOOLSLIB) \
+# $(RTLLIB)
+
+#SHL1DEPN= makefile.mk
+#SHL1LIBS= $(LIB1TARGET)
+#SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+#DEF1NAME= $(SHL1TARGET)
+#DEF1EXPORTFILE= exports.dxp
+
+# --- Targets ------------------------------------------------------
+.INCLUDE : target.mk
+#.INCLUDE : $(PRJ)$/util$/target.pmk
diff --git a/UnoControls/source/base/multiplexer.cxx b/UnoControls/source/base/multiplexer.cxx
new file mode 100644
index 000000000000..0c1ded49694e
--- /dev/null
+++ b/UnoControls/source/base/multiplexer.cxx
@@ -0,0 +1,577 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+//____________________________________________________________________________________________________________
+// my own include
+//____________________________________________________________________________________________________________
+
+#include "multiplexer.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <vos/diagnose.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// namespaces
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::awt ;
+using namespace ::com::sun::star::lang ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// macros
+//____________________________________________________________________________________________________________
+
+#define MULTIPLEX( INTERFACE, METHOD, EVENTTYP, EVENT ) \
+ \
+ /* First get all interfaces from container with right type.*/ \
+ OInterfaceContainerHelper* pContainer = m_aListenerHolder.getContainer( ::getCppuType((const Reference< INTERFACE >*)0) ); \
+ /* Do the follow only, if elements in container exist.*/ \
+ if( pContainer != NULL ) \
+ { \
+ OInterfaceIteratorHelper aIterator( *pContainer ); \
+ EVENTTYP aLocalEvent = EVENT; \
+ /* Remark: The control is the event source not the peer.*/ \
+ /* We must change the source of the event. */ \
+ aLocalEvent.Source = m_xControl ; \
+ /* Is the control not destroyed? */ \
+ if( aLocalEvent.Source.is() == sal_True ) \
+ { \
+ if( aIterator.hasMoreElements() ) \
+ { \
+ INTERFACE * pListener = (INTERFACE *)aIterator.next(); \
+ try \
+ { \
+ pListener->METHOD( aLocalEvent ); \
+ } \
+ catch( RuntimeException& ) \
+ { \
+ /* Ignore all system exceptions from the listener! */ \
+ } \
+ } \
+ } \
+ }
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+OMRCListenerMultiplexerHelper::OMRCListenerMultiplexerHelper( const Reference< XWindow >& xControl ,
+ const Reference< XWindow >& xPeer )
+ : m_xPeer ( xPeer )
+ , m_xControl ( xControl )
+ , m_aListenerHolder ( m_aMutex )
+{
+}
+
+OMRCListenerMultiplexerHelper::OMRCListenerMultiplexerHelper( const OMRCListenerMultiplexerHelper& /*aCopyInstance*/ )
+ : XFocusListener()
+ , XWindowListener()
+ , XKeyListener()
+ , XMouseListener()
+ , XMouseMotionListener()
+ , XPaintListener()
+ , XTopWindowListener()
+ , OWeakObject()
+ , m_aListenerHolder ( m_aMutex )
+{
+}
+
+OMRCListenerMultiplexerHelper::~OMRCListenerMultiplexerHelper()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL OMRCListenerMultiplexerHelper::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( rType ,
+ static_cast< XWindowListener* > ( this ) ,
+ static_cast< XKeyListener* > ( this ) ,
+ static_cast< XFocusListener* > ( this ) ,
+ static_cast< XMouseListener* > ( this ) ,
+ static_cast< XMouseMotionListener* > ( this ) ,
+ static_cast< XPaintListener* > ( this ) ,
+ static_cast< XTopWindowListener* > ( this ) ,
+ static_cast< XTopWindowListener* > ( this )
+ )
+ );
+
+ // If searched interface supported by this class ...
+ if ( aReturn.hasValue() == sal_True )
+ {
+ // ... return this information.
+ return aReturn ;
+ }
+ else
+ {
+ // Else; ... ask baseclass for interfaces!
+ return OWeakObject::queryInterface( rType );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OMRCListenerMultiplexerHelper::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OMRCListenerMultiplexerHelper::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::release();
+}
+
+//____________________________________________________________________________________________________________
+// operator
+//____________________________________________________________________________________________________________
+
+OMRCListenerMultiplexerHelper::operator Reference< XInterface >() const
+{
+ return ((OWeakObject*)this) ;
+}
+
+//____________________________________________________________________________________________________________
+// operator
+//____________________________________________________________________________________________________________
+
+//OMRCListenerMultiplexerHelper& OMRCListenerMultiplexerHelper::operator= ( const OMRCListenerMultiplexerHelper& aCopyInstance )
+//{
+// return this ;
+//}
+
+//____________________________________________________________________________________________________________
+// container method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::setPeer( const Reference< XWindow >& xPeer )
+{
+ MutexGuard aGuard( m_aMutex );
+ if( m_xPeer != xPeer )
+ {
+ if( m_xPeer.is() )
+ {
+ // get all types from the listener added to the peer
+ Sequence< Type > aContainedTypes = m_aListenerHolder.getContainedTypes();
+ const Type* pArray = aContainedTypes.getConstArray();
+ sal_Int32 nCount = aContainedTypes.getLength();
+ // loop over all listener types and remove the listeners from the peer
+ for( sal_Int32 i=0; i<nCount; i++ )
+ impl_unadviseFromPeer( m_xPeer, pArray[i] );
+ }
+ m_xPeer = xPeer;
+ if( m_xPeer.is() )
+ {
+ // get all types from the listener added to the peer
+ Sequence< Type > aContainedTypes = m_aListenerHolder.getContainedTypes();
+ const Type* pArray = aContainedTypes.getConstArray();
+ sal_Int32 nCount = aContainedTypes.getLength();
+ // loop over all listener types and add the listeners to the peer
+ for( sal_Int32 i = 0; i < nCount; i++ )
+ impl_adviseToPeer( m_xPeer, pArray[i] );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// container method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::disposeAndClear()
+{
+ EventObject aEvent ;
+ aEvent.Source = m_xControl ;
+ m_aListenerHolder.disposeAndClear( aEvent );
+}
+
+//____________________________________________________________________________________________________________
+// container method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::advise( const Type& aType ,
+ const Reference< XInterface >& xListener )
+{
+ MutexGuard aGuard( m_aMutex );
+ if( m_aListenerHolder.addInterface( aType, xListener ) == 1 )
+ {
+ // the first listener is added
+ if( m_xPeer.is() )
+ {
+ impl_adviseToPeer( m_xPeer, aType );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// container method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::unadvise( const Type& aType ,
+ const Reference< XInterface >& xListener )
+{
+ MutexGuard aGuard( m_aMutex );
+ if( m_aListenerHolder.removeInterface( aType, xListener ) == 0 )
+ {
+ // the last listener is removed
+ if ( m_xPeer.is() )
+ {
+ impl_unadviseFromPeer( m_xPeer, aType );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XEventListener
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OMRCListenerMultiplexerHelper::disposing( const EventObject& /*aSource*/ ) throw( RuntimeException )
+{
+ MutexGuard aGuard( m_aMutex );
+ // peer is disposed, clear the reference
+ m_xPeer = Reference< XWindow >();
+}
+
+//____________________________________________________________________________________________________________
+// XFcousListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::focusGained(const FocusEvent& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+/*
+ OInterfaceContainerHelper * pCont = aListenerHolder.getContainer( ::getCppuType((const Reference< XFocusListener >*)0) );
+ if( pCont )
+ {
+ OInterfaceIteratorHelper aIt( *pCont );
+ FocusEvent aEvt = e;
+ // Reamark: The control is the event source not the peer. We must change
+ // the source of the event
+ xControl.queryHardRef( ((XInterface*)NULL)->getSmartUik(), aEvt.Source );
+ //.is the control not destroyed
+ if( aEvt.Source.is() )
+ {
+ if( aIt.hasMoreElements() )
+ {
+ XFocusListener * pListener = (XFocusListener *)aIt.next();
+ try
+ {
+ pListener->focusGained( aEvt );
+ }
+ catch( RuntimeException, e )
+ {
+ // ignore all usr system exceptions from the listener
+ }
+ }
+ }
+ }
+*/
+ MULTIPLEX( XFocusListener, focusGained, FocusEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XFcousListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::focusLost(const FocusEvent& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XFocusListener, focusLost, FocusEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowResized(const WindowEvent& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XWindowListener, windowResized, WindowEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowMoved(const WindowEvent& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XWindowListener, windowMoved, WindowEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowShown(const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XWindowListener, windowShown, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowHidden(const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XWindowListener, windowHidden, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XKeyListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::keyPressed(const KeyEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XKeyListener, keyPressed, KeyEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XKeyListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::keyReleased(const KeyEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XKeyListener, keyReleased, KeyEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mousePressed(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseListener, mousePressed, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mouseReleased(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseListener, mouseReleased, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mouseEntered(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseListener, mouseEntered, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mouseExited(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseListener, mouseExited, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseMotionListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mouseDragged(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseMotionListener, mouseDragged, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XMouseMotionListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::mouseMoved(const MouseEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XMouseMotionListener, mouseMoved, MouseEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XPaintListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowPaint(const PaintEvent& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XPaintListener, windowPaint, PaintEvent, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowOpened(const EventObject& aEvent) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowOpened, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowClosing( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowClosing, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowClosed( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowClosed, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowMinimized( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowMinimized, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowNormalized( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowNormalized, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowActivated( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowActivated, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// XTopWindowListener
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::windowDeactivated( const EventObject& aEvent ) throw( UNO3_RUNTIMEEXCEPTION )
+{
+ MULTIPLEX( XTopWindowListener, windowDeactivated, EventObject, aEvent )
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::impl_adviseToPeer( const Reference< XWindow >& xPeer ,
+ const Type& aType )
+{
+ // add a listener to the source (peer)
+ if( aType == ::getCppuType((const Reference< XWindowListener >*)0) )
+ xPeer->addWindowListener( this );
+ else if( aType == ::getCppuType((const Reference< XKeyListener >*)0) )
+ xPeer->addKeyListener( this );
+ else if( aType == ::getCppuType((const Reference< XFocusListener >*)0) )
+ xPeer->addFocusListener( this );
+ else if( aType == ::getCppuType((const Reference< XMouseListener >*)0) )
+ xPeer->addMouseListener( this );
+ else if( aType == ::getCppuType((const Reference< XMouseMotionListener >*)0) )
+ xPeer->addMouseMotionListener( this );
+ else if( aType == ::getCppuType((const Reference< XPaintListener >*)0) )
+ xPeer->addPaintListener( this );
+ else if( aType == ::getCppuType((const Reference< XTopWindowListener >*)0) )
+ {
+ Reference< XTopWindow > xTop( xPeer, UNO_QUERY );
+ if( xTop.is() )
+ xTop->addTopWindowListener( this );
+ }
+ else
+ {
+ VOS_ENSHURE( sal_False, "unknown listener" );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void OMRCListenerMultiplexerHelper::impl_unadviseFromPeer( const Reference< XWindow >& xPeer ,
+ const Type& aType )
+{
+ // the last listener is removed, remove the listener from the source (peer)
+ if( aType == ::getCppuType((const Reference< XWindowListener >*)0) )
+ xPeer->removeWindowListener( this );
+ else if( aType == ::getCppuType((const Reference< XKeyListener >*)0) )
+ xPeer->removeKeyListener( this );
+ else if( aType == ::getCppuType((const Reference< XFocusListener >*)0) )
+ xPeer->removeFocusListener( this );
+ else if( aType == ::getCppuType((const Reference< XMouseListener >*)0) )
+ xPeer->removeMouseListener( this );
+ else if( aType == ::getCppuType((const Reference< XMouseMotionListener >*)0) )
+ xPeer->removeMouseMotionListener( this );
+ else if( aType == ::getCppuType((const Reference< XPaintListener >*)0) )
+ xPeer->removePaintListener( this );
+ else if( aType == ::getCppuType((const Reference< XTopWindowListener >*)0) )
+ {
+ Reference< XTopWindow > xTop( xPeer, UNO_QUERY );
+ if( xTop.is() )
+ xTop->removeTopWindowListener( this );
+ }
+ else
+ {
+ VOS_ENSHURE( sal_False, "unknown listener" );
+ }
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/base/registercontrols.cxx b/UnoControls/source/base/registercontrols.cxx
new file mode 100644
index 000000000000..686c7578b88d
--- /dev/null
+++ b/UnoControls/source/base/registercontrols.cxx
@@ -0,0 +1,322 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+#include <cppuhelper/factory.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#include <com/sun/star/container/XSet.hpp>
+
+#include <stdio.h>
+
+//______________________________________________________________________________________________________________
+// includes of my own project
+//______________________________________________________________________________________________________________
+
+//=============================================================================
+// Add new include line to use new services.
+//=============================================================================
+#include "framecontrol.hxx"
+#include "progressbar.hxx"
+#include "progressmonitor.hxx"
+#include "statusindicator.hxx"
+//=============================================================================
+
+//______________________________________________________________________________________________________________
+// defines
+//______________________________________________________________________________________________________________
+
+// If you will debug macros of this file ... you must define follow constant!
+// Ths switch on another macro AS_DBG_OUT(...), which will print text to "stdout".
+
+//#define AS_DBG_SWITCH
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+using namespace ::rtl ;
+using namespace ::cppu ;
+using namespace ::unocontrols ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::container ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::registry ;
+
+//______________________________________________________________________________________________________________
+// macros
+//______________________________________________________________________________________________________________
+
+//******************************************************************************************************************************
+// See AS_DBG_SWITCH below !!!
+#ifdef AS_DBG_SWITCH
+ #define AS_DBG_OUT(OUTPUT) printf( OUTPUT );
+#else
+ #define AS_DBG_OUT(OUTPUT)
+#endif
+
+//******************************************************************************************************************************
+#define CREATEINSTANCE(CLASS) \
+ \
+ static Reference< XInterface > SAL_CALL CLASS##_createInstance ( const Reference< XMultiServiceFactory >& rServiceManager ) throw ( Exception ) \
+ { \
+ AS_DBG_OUT ( "\tCREATEINSTANCE():\tOK\n" ) \
+ return Reference< XInterface >( *(OWeakObject*)(new CLASS( rServiceManager )) ); \
+ }
+
+//******************************************************************************************************************************
+#define COMPONENT_INFO(CLASS) \
+ \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t[start]\n" ) \
+ try \
+ { \
+ /* Set default result of follow operations !!! */ \
+ bReturn = sal_False ; \
+ \
+ /* Do the follow only, if given key is valid ! */ \
+ if ( xKey.is () ) \
+ { \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\txkey is valid ...\n" ) \
+ /* Build new keyname */ \
+ sKeyName = OUString::createFromAscii( "/" ) ; \
+ sKeyName += CLASS::impl_getStaticImplementationName() ; \
+ sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ); \
+ \
+ /* Create new key with new name. */ \
+ xNewKey = xKey->createKey( sKeyName ); \
+ \
+ /* If this new key valid ... */ \
+ if ( xNewKey.is () ) \
+ { \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\txNewkey is valid ...\n" ) \
+ /* Get information about supported services. */ \
+ seqServiceNames = CLASS::impl_getStaticSupportedServiceNames() ; \
+ pArray = seqServiceNames.getArray() ; \
+ nLength = seqServiceNames.getLength() ; \
+ nCounter = 0 ; \
+ \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\tloop ..." ) \
+ /* Then set this information on this key. */ \
+ for ( nCounter = 0; nCounter < nLength; ++nCounter ) \
+ { \
+ xNewKey->createKey( pArray [nCounter] ); \
+ } \
+ AS_DBG_OUT ( " OK\n" ) \
+ \
+ /* Result of this operations = OK. */ \
+ bReturn = sal_True ; \
+ } \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\t... leave xNewKey\n" ) \
+ } \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\t... leave xKey\n" ) \
+ } \
+ catch( InvalidRegistryException& ) \
+ { \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\tInvalidRegistryException detected!!!\n" ) \
+ bReturn = sal_False ; \
+ } \
+ AS_DBG_OUT ( "\tCOMPONENT_INFO():\t[end]\n" )
+
+//******************************************************************************************************************************
+#define CREATEFACTORY_ONEINSTANCE(CLASS) \
+ \
+ AS_DBG_OUT ( "\tCREATEFACTORY_ONEINSTANCE():\t[start]\n" ) \
+ /* Create right factory ... */ \
+ xFactory = Reference< XSingleServiceFactory > \
+ ( \
+ cppu::createOneInstanceFactory ( xServiceManager , \
+ CLASS::impl_getStaticImplementationName () , \
+ CLASS##_createInstance , \
+ CLASS::impl_getStaticSupportedServiceNames () ) \
+ ) ; \
+ AS_DBG_OUT ( "\tCREATEFACTORY_ONEINSTANCE():\t[end]\n" )
+
+//******************************************************************************************************************************
+#define CREATEFACTORY_SINGLE(CLASS) \
+ \
+ AS_DBG_OUT ( "\tCREATEFACTORY_SINGLE():\t[start]\n" ) \
+ /* Create right factory ... */ \
+ xFactory = Reference< XSingleServiceFactory > \
+ ( \
+ cppu::createSingleFactory ( xServiceManager , \
+ CLASS::impl_getStaticImplementationName () , \
+ CLASS##_createInstance , \
+ CLASS::impl_getStaticSupportedServiceNames () ) \
+ ) ; \
+ AS_DBG_OUT ( "\tCREATEFACTORY_SINGLE():\t[end]\n" )
+
+//******************************************************************************************************************************
+#define IF_NAME_CREATECOMPONENTFACTORY_ONEINSTANCE(CLASS) \
+ \
+ if ( CLASS::impl_getStaticImplementationName().equals( OUString::createFromAscii( pImplementationName ) ) ) \
+ { \
+ AS_DBG_OUT ( "\tIF_NAME_CREATECOMPONENTFACTORY_ONEINSTANCE():\timplementationname found\n" ) \
+ CREATEFACTORY_ONEINSTANCE ( CLASS ) \
+ }
+
+//******************************************************************************************************************************
+#define IF_NAME_CREATECOMPONENTFACTORY_SINGLE(CLASS) \
+ \
+ if ( CLASS::impl_getStaticImplementationName().equals( OUString::createFromAscii( pImplementationName ) ) ) \
+ { \
+ AS_DBG_OUT ( "\tIF_NAME_CREATECOMPONENTFACTORY_SINGLE():\timplementationname found\n" ) \
+ CREATEFACTORY_SINGLE ( CLASS ) \
+ }
+
+//______________________________________________________________________________________________________________
+// declare functions to create a new instance of service
+//______________________________________________________________________________________________________________
+
+//=============================================================================
+// Add new macro line to use new services.
+//
+// !!! ATTENTION !!!
+// Write no ";" at end of line! (see macro)
+//=============================================================================
+CREATEINSTANCE ( FrameControl )
+CREATEINSTANCE ( ProgressBar )
+CREATEINSTANCE ( ProgressMonitor )
+CREATEINSTANCE ( StatusIndicator )
+//=============================================================================
+
+//______________________________________________________________________________________________________________
+// return environment
+//______________________________________________________________________________________________________________
+
+extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvironmentTypeName ,
+ uno_Environment** /*ppEnvironment*/ )
+{
+ *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
+}
+
+//______________________________________________________________________________________________________________
+// write component info to registry
+//______________________________________________________________________________________________________________
+
+extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/ ,
+ void* pRegistryKey )
+{
+ AS_DBG_OUT ( "component_writeInfo():\t[start]\n" )
+
+ // Set default return value for this operation - if it failed.
+ sal_Bool bReturn = sal_False ;
+
+ if ( pRegistryKey != NULL )
+ {
+ AS_DBG_OUT ( "component_writeInfo():\t\tpRegistryKey is valid ... enter scope\n" )
+
+ // Define variables for following macros!
+ // bReturn is set automaticly.
+ Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
+ Reference< XRegistryKey > xNewKey ;
+ Sequence< OUString > seqServiceNames ;
+ const OUString* pArray ;
+ sal_Int32 nLength ;
+ sal_Int32 nCounter ;
+ OUString sKeyName ;
+
+ //=============================================================================
+ // Add new macro line to register new services.
+ //
+ // !!! ATTENTION !!!
+ // Write no ";" at end of line! (see macro)
+ //=============================================================================
+ COMPONENT_INFO ( FrameControl )
+ COMPONENT_INFO ( ProgressBar )
+ COMPONENT_INFO ( ProgressMonitor )
+ COMPONENT_INFO ( StatusIndicator )
+ //=============================================================================
+
+ AS_DBG_OUT ( "component_writeInfo():\t\t... leave pRegistryKey scope\n" )
+ }
+
+ AS_DBG_OUT ( "component_writeInfo():\t[end]\n" )
+
+ // Return with result of this operation.
+ return bReturn ;
+}
+
+//______________________________________________________________________________________________________________
+// create right component factory
+//______________________________________________________________________________________________________________
+
+extern "C" void* SAL_CALL component_getFactory( const sal_Char* pImplementationName ,
+ void* pServiceManager ,
+ void* /*pRegistryKey*/ )
+{
+ AS_DBG_OUT( "component_getFactory():\t[start]\n" )
+
+ // Set default return value for this operation - if it failed.
+ void* pReturn = NULL ;
+
+ if (
+ ( pImplementationName != NULL ) &&
+ ( pServiceManager != NULL )
+ )
+ {
+ AS_DBG_OUT( "component_getFactory():\t\t... enter scope - pointer are valid\n" )
+
+ // Define variables which are used in following macros.
+ Reference< XSingleServiceFactory > xFactory ;
+ Reference< XMultiServiceFactory > xServiceManager( reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
+
+ //=============================================================================
+ // Add new macro line to handle new service.
+ //
+ // !!! ATTENTION !!!
+ // Write no ";" at end of line and dont forget "else" ! (see macro)
+ //=============================================================================
+ IF_NAME_CREATECOMPONENTFACTORY_SINGLE( FrameControl )
+ else
+ IF_NAME_CREATECOMPONENTFACTORY_SINGLE( ProgressBar )
+ else
+ IF_NAME_CREATECOMPONENTFACTORY_SINGLE( ProgressMonitor )
+ else
+ IF_NAME_CREATECOMPONENTFACTORY_SINGLE( StatusIndicator )
+ //=============================================================================
+
+ // Factory is valid - service was found.
+ if ( xFactory.is() )
+ {
+ AS_DBG_OUT( "component_getFactory():\t\t\t... xFactory valid - service was found\n" )
+
+ xFactory->acquire();
+ pReturn = xFactory.get();
+ }
+
+ AS_DBG_OUT( "component_getFactory():\t\t... leave scope\n" )
+ }
+
+ AS_DBG_OUT ( "component_getFactory():\t[end]\n" )
+
+ // Return with result of this operation.
+ return pReturn ;
+}
diff --git a/UnoControls/source/controls/OConnectionPointContainerHelper.cxx b/UnoControls/source/controls/OConnectionPointContainerHelper.cxx
new file mode 100644
index 000000000000..56f336124a7d
--- /dev/null
+++ b/UnoControls/source/controls/OConnectionPointContainerHelper.cxx
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//______________________________________________________________________________________________________________
+// my own include
+//______________________________________________________________________________________________________________
+
+#include "OConnectionPointContainerHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// include of my own project
+//______________________________________________________________________________________________________________
+#include "OConnectionPointHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+using namespace ::rtl ;
+using namespace ::osl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+
+namespace unocontrols{
+
+//______________________________________________________________________________________________________________
+// construct/destruct
+//______________________________________________________________________________________________________________
+
+OConnectionPointContainerHelper::OConnectionPointContainerHelper( Mutex& aMutex )
+ : m_aSharedMutex ( aMutex )
+ , m_aMultiTypeContainer ( aMutex )
+{
+}
+
+OConnectionPointContainerHelper::~OConnectionPointContainerHelper()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL OConnectionPointContainerHelper::queryInterface( const Type& aType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Ask for my own supported interfaces ...
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XConnectionPointContainer* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = OWeakObject::queryInterface( aType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointContainerHelper::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointContainerHelper::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::release();
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPointContainer
+//______________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL OConnectionPointContainerHelper::getConnectionPointTypes() throw( RuntimeException )
+{
+ // Container is threadsafe himself !
+ return m_aMultiTypeContainer.getContainedTypes();
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPointContainer
+//______________________________________________________________________________________________________________
+
+Reference< XConnectionPoint > SAL_CALL OConnectionPointContainerHelper::queryConnectionPoint( const Type& aType ) throw( RuntimeException )
+{
+ // Set default return value, if method failed.
+ Reference< XConnectionPoint > xConnectionPoint = Reference< XConnectionPoint >();
+
+ // Get all elements of the container, which have the searched type.
+ OInterfaceContainerHelper* pSpecialContainer = m_aMultiTypeContainer.getContainer( aType );
+ if ( pSpecialContainer && pSpecialContainer->getLength() > 0 )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+ // If this container contains elements, build a connectionpoint-instance.
+ OConnectionPointHelper* pNewConnectionPoint = new OConnectionPointHelper( m_aSharedMutex, this, aType );
+ xConnectionPoint = Reference< XConnectionPoint >( (OWeakObject*)pNewConnectionPoint, UNO_QUERY );
+ }
+
+ return xConnectionPoint ;
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPointContainer
+//______________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointContainerHelper::advise( const Type& aType ,
+ const Reference< XInterface >& xListener ) throw( RuntimeException )
+{
+ // Container is threadsafe himself !
+ m_aMultiTypeContainer.addInterface( aType, xListener );
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPointContainer
+//______________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointContainerHelper::unadvise( const Type& aType ,
+ const Reference< XInterface >& xListener ) throw( RuntimeException )
+{
+ // Container is threadsafe himself !
+ m_aMultiTypeContainer.removeInterface( aType, xListener );
+}
+
+//______________________________________________________________________________________________________________
+// public but impl method!
+// Is neccessary to get container member at OConnectionPoint-instance.
+//______________________________________________________________________________________________________________
+
+OMultiTypeInterfaceContainerHelper& OConnectionPointContainerHelper::impl_getMultiTypeContainer()
+{
+ // Impl methods are not threadsafe!
+ // "Parent" function must do this.
+ return m_aMultiTypeContainer;
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/controls/OConnectionPointHelper.cxx b/UnoControls/source/controls/OConnectionPointHelper.cxx
new file mode 100644
index 000000000000..24b08f6a4937
--- /dev/null
+++ b/UnoControls/source/controls/OConnectionPointHelper.cxx
@@ -0,0 +1,271 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//______________________________________________________________________________________________________________
+// my own include
+//______________________________________________________________________________________________________________
+
+#include "OConnectionPointHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// include of my own project
+//______________________________________________________________________________________________________________
+#include "OConnectionPointContainerHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+using namespace ::rtl ;
+using namespace ::osl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+
+namespace unocontrols{
+
+//______________________________________________________________________________________________________________
+// construct/destruct
+//______________________________________________________________________________________________________________
+
+OConnectionPointHelper::OConnectionPointHelper( Mutex& aMutex ,
+ OConnectionPointContainerHelper* pContainerImplementation ,
+ UNO3_TYPE aType )
+ : m_aSharedMutex ( aMutex )
+ , m_oContainerWeakReference ( pContainerImplementation )
+ , m_pContainerImplementation ( pContainerImplementation )
+ , m_aInterfaceType ( aType )
+{
+}
+
+OConnectionPointHelper::~OConnectionPointHelper()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL OConnectionPointHelper::queryInterface( const Type& aType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Ask for my own supported interfaces ...
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XConnectionPoint* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = OWeakObject::queryInterface( aType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointHelper::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointHelper::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ OWeakObject::release();
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPoint
+//______________________________________________________________________________________________________________
+
+Type SAL_CALL OConnectionPointHelper::getConnectionType() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+
+ // Set default return value, if method failed.
+ if ( impl_LockContainer() == sal_False )
+ {
+ // Container not exist! Its an runtime error.
+ throw RuntimeException();
+ }
+
+ // If container reference valid, return right type of supported interfaces of THIS connectionpoint.
+ Type aReturnType = m_aInterfaceType ;
+ // Don't forget this!
+ impl_UnlockContainer();
+
+ return aReturnType;
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPoint
+//______________________________________________________________________________________________________________
+
+Reference< XConnectionPointContainer > SAL_CALL OConnectionPointHelper::getConnectionPointContainer() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+ // Convert weakreference to correct uno3-reference and return value. It can be NULL, if container destroyed!
+ return Reference< XConnectionPointContainer >( m_oContainerWeakReference.get(), UNO_QUERY );
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPoint
+//______________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointHelper::advise( const Reference< XInterface >& xListener ) throw( ListenerExistException ,
+ InvalidListenerException ,
+ RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+
+ // If type of listener not the same for this special container ...
+ Any aCheckType = xListener->queryInterface( m_aInterfaceType );
+ if ( aCheckType.hasValue() )
+ {
+ // ... throw an exception.
+ throw InvalidListenerException();
+ }
+
+ // ListenerExistException is obsolete!?
+ // Its the same container for XConnectionPointContainer and XConnectionPoint. But only here we must control, if a listener already exist!?
+ // You can add a listener more then one time at XConnectionPointContainer, but here only one ...
+
+ // Operation is permitted only, if reference to container is valid!
+ if ( impl_LockContainer() == sal_False )
+ {
+ // Container not exist! Its an runtime error.
+ throw RuntimeException();
+ }
+ // Forward it to OConnectionPointHelperContainer!
+ m_pContainerImplementation->advise( m_aInterfaceType, xListener );
+ // Don't forget this!
+ impl_UnlockContainer();
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPoint
+//______________________________________________________________________________________________________________
+
+void SAL_CALL OConnectionPointHelper::unadvise( const Reference< XInterface >& xListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+ // Operation is permitted only, if reference to container is valid!
+ if ( impl_LockContainer() == sal_False )
+ {
+ // Container not exist! Its an runtime error.
+ throw RuntimeException();
+
+ }
+ // Forward it to OConnectionPointHelperContainer!
+ m_pContainerImplementation->unadvise( m_aInterfaceType, xListener );
+ // Don't forget this!
+ impl_UnlockContainer();
+}
+
+//______________________________________________________________________________________________________________
+// XConnectionPoint
+//______________________________________________________________________________________________________________
+
+Sequence< Reference< XInterface > > SAL_CALL OConnectionPointHelper::getConnections() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aSharedMutex );
+ // Operation is permitted only, if reference to container is valid!
+ if ( impl_LockContainer() == sal_False )
+ {
+ // Container not exist! Its an runtime error.
+ throw RuntimeException();
+ }
+ // Set default return value, if method failed.
+ Sequence< Reference< XInterface > > seqReturnConnections = Sequence< Reference< XInterface > >();
+ // Get reference to private member of OConnectionPointHelperContainer!
+ OMultiTypeInterfaceContainerHelper& aSharedContainer = m_pContainerImplementation->impl_getMultiTypeContainer();
+ // Get pointer to specialized container which hold all interfaces of searched type.
+ OInterfaceContainerHelper* pSpecialContainer = aSharedContainer.getContainer( m_aInterfaceType );
+ // Get elements of searched type, if somelse exist.
+ if ( pSpecialContainer != NULL )
+ {
+ seqReturnConnections = pSpecialContainer->getElements();
+ }
+ // Don't forget this!
+ impl_UnlockContainer();
+
+ return seqReturnConnections;
+}
+
+//______________________________________________________________________________________________________________
+// private method
+//______________________________________________________________________________________________________________
+
+sal_Bool OConnectionPointHelper::impl_LockContainer()
+{
+ // Convert weakreference to hard uno3-reference and return state.
+ // If this reference different from NULL, there exist a hard reference to container. Container-instance can't be destroyed.
+ // Don't forget to "unlock" this reference!
+ m_xLock = m_oContainerWeakReference.get();
+ return m_xLock.is();
+}
+
+//______________________________________________________________________________________________________________
+// private method
+//______________________________________________________________________________________________________________
+
+void OConnectionPointHelper::impl_UnlockContainer()
+{
+ // Free hard uno3-reference to container.
+ // see also "impl_LockContainer()"
+ m_xLock = Reference< XInterface >();
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/controls/framecontrol.cxx b/UnoControls/source/controls/framecontrol.cxx
new file mode 100644
index 000000000000..2ae0e27dc56c
--- /dev/null
+++ b/UnoControls/source/controls/framecontrol.cxx
@@ -0,0 +1,604 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+//______________________________________________________________________________________________________________
+// my own include
+//______________________________________________________________________________________________________________
+
+#include "framecontrol.hxx"
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/FrameSearchFlag.hpp>
+#include <com/sun/star/frame/FrameSearchFlag.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <vos/diagnose.hxx>
+
+//______________________________________________________________________________________________________________
+// include of my own project
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+using namespace ::rtl ;
+using namespace ::osl ;
+using namespace ::cppu ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::beans ;
+using namespace ::com::sun::star::awt ;
+using namespace ::com::sun::star::frame ;
+using namespace ::com::sun::star::util ;
+
+namespace unocontrols{
+
+//______________________________________________________________________________________________________________
+// construct/destruct
+//______________________________________________________________________________________________________________
+
+FrameControl::FrameControl( const Reference< XMultiServiceFactory >& xFactory )
+ : BaseControl ( xFactory )
+ , OBroadcastHelper ( m_aMutex )
+ , OPropertySetHelper ( *SAL_STATIC_CAST( OBroadcastHelper *, this ) )
+ , m_aInterfaceContainer ( m_aMutex )
+ , m_aConnectionPointContainer ( m_aMutex )
+{
+}
+
+FrameControl::~FrameControl()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL FrameControl::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+ Any aReturn ;
+ Reference< XInterface > xDel = BaseControl::impl_getDelegator();
+ if ( xDel.is() )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = xDel->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::release();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL FrameControl::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XControlModel >*)NULL ) ,
+ ::getCppuType(( const Reference< XControlContainer >*)NULL ) ,
+ ::getCppuType(( const Reference< XConnectionPointContainer >*)NULL ) ,
+ BaseControl::getTypes()
+ );
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL FrameControl::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XControlModel* > ( this ) ,
+ static_cast< XConnectionPointContainer* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = OPropertySetHelper::queryInterface( aType );
+ if ( aReturn.hasValue() == sal_False )
+ {
+ aReturn = BaseControl::queryAggregation( aType );
+ }
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::createPeer( const Reference< XToolkit >& xToolkit ,
+ const Reference< XWindowPeer >& xParentPeer ) throw( RuntimeException )
+{
+ BaseControl::createPeer( xToolkit, xParentPeer );
+ if ( impl_getPeerWindow().is() )
+ {
+ if( m_sComponentURL.getLength() > 0 )
+ {
+ impl_createFrame( getPeer(), m_sComponentURL, m_seqLoaderArguments );
+ }
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL FrameControl::setModel( const Reference< XControlModel >& /*xModel*/ ) throw( RuntimeException )
+{
+ // We have no model.
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XControlModel > SAL_CALL FrameControl::getModel() throw( RuntimeException )
+{
+ // We have no model.
+ return Reference< XControlModel >();
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::dispose() throw( RuntimeException )
+{
+ impl_deleteFrame();
+ BaseControl::dispose();
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL FrameControl::setGraphics( const Reference< XGraphics >& /*xDevice*/ ) throw( RuntimeException )
+{
+ // it is not possible to print this control
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XView
+//____________________________________________________________________________________________________________
+
+Reference< XGraphics > SAL_CALL FrameControl::getGraphics() throw( RuntimeException )
+{
+ // when its not posible to set graphics ! then its possible to return null
+ return Reference< XGraphics >();
+}
+
+//____________________________________________________________________________________________________________
+// XConnectionPointContainer
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL FrameControl::getConnectionPointTypes() throw( RuntimeException )
+{
+ // Forwarded to helper class
+ return m_aConnectionPointContainer.getConnectionPointTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XConnectionPointContainer
+//____________________________________________________________________________________________________________
+
+Reference< XConnectionPoint > SAL_CALL FrameControl::queryConnectionPoint( const Type& aType ) throw( RuntimeException )
+{
+ // Forwarded to helper class
+ return m_aConnectionPointContainer.queryConnectionPoint( aType );
+}
+
+//____________________________________________________________________________________________________________
+// XConnectionPointContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::advise( const Type& aType ,
+ const Reference< XInterface >& xListener ) throw( RuntimeException )
+{
+ // Forwarded to helper class
+ m_aConnectionPointContainer.advise( aType, xListener );
+}
+
+//____________________________________________________________________________________________________________
+// XConnectionPointContainer
+//____________________________________________________________________________________________________________
+
+void SAL_CALL FrameControl::unadvise( const Type& aType ,
+ const Reference< XInterface >& xListener ) throw( RuntimeException )
+{
+ // Forwarded to helper class
+ m_aConnectionPointContainer.unadvise( aType, xListener );
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const Sequence< OUString > FrameControl::impl_getStaticSupportedServiceNames()
+{
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+ Sequence< OUString > seqServiceNames( 1 );
+ seqServiceNames.getArray() [0] = OUString::createFromAscii( SERVICENAME_FRAMECONTROL );
+ return seqServiceNames ;
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const OUString FrameControl::impl_getStaticImplementationName()
+{
+ return OUString::createFromAscii( IMPLEMENTATIONNAME_FRAMECONTROL );
+}
+
+//____________________________________________________________________________________________________________
+// OPropertySetHelper
+//____________________________________________________________________________________________________________
+
+sal_Bool FrameControl::convertFastPropertyValue( Any& rConvertedValue ,
+ Any& rOldValue ,
+ sal_Int32 nHandle ,
+ const Any& rValue ) throw( IllegalArgumentException )
+{
+ sal_Bool bReturn = sal_False ;
+ switch (nHandle)
+ {
+ case PROPERTYHANDLE_COMPONENTURL : rConvertedValue = rValue ;
+ rOldValue <<= m_sComponentURL ;
+ bReturn = sal_True ;
+ break ;
+
+ case PROPERTYHANDLE_LOADERARGUMENTS : rConvertedValue = rValue ;
+ rOldValue <<= m_seqLoaderArguments ;
+ bReturn = sal_True ;
+ break ;
+ }
+
+ if ( bReturn == sal_False )
+ {
+ throw IllegalArgumentException();
+ }
+
+ return bReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// OPropertySetHelper
+//____________________________________________________________________________________________________________
+
+void FrameControl::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
+ const Any& rValue )
+ throw ( ::com::sun::star::uno::Exception )
+{
+ // this method only set the value
+ MutexGuard aGuard (m_aMutex) ;
+ switch (nHandle)
+ {
+ case PROPERTYHANDLE_COMPONENTURL : rValue >>= m_sComponentURL ;
+ if (getPeer().is())
+ {
+ impl_createFrame ( getPeer(), m_sComponentURL, m_seqLoaderArguments ) ;
+ }
+ break ;
+
+ case PROPERTYHANDLE_LOADERARGUMENTS : rValue >>= m_seqLoaderArguments ;
+ break ;
+
+ default : VOS_ENSHURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// OPropertySetHelper
+//____________________________________________________________________________________________________________
+
+void FrameControl::getFastPropertyValue( Any& rRet ,
+ sal_Int32 nHandle ) const
+{
+ MutexGuard aGuard ( Mutex::getGlobalMutex() ) ;
+
+ switch (nHandle)
+ {
+ case PROPERTYHANDLE_COMPONENTURL : rRet <<= m_sComponentURL ;
+ break ;
+
+ case PROPERTYHANDLE_LOADERARGUMENTS : rRet <<= m_seqLoaderArguments ;
+ break ;
+
+ case PROPERTYHANDLE_FRAME : rRet <<= m_xFrame ;
+ break ;
+
+ default : VOS_ENSHURE ( nHandle == -1, ERRORTEXT_VOSENSHURE ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// OPropertySetHelper
+//____________________________________________________________________________________________________________
+
+IPropertyArrayHelper& FrameControl::getInfoHelper()
+{
+ // Create a table that map names to index values.
+ static OPropertyArrayHelper* pInfo ;
+
+ if (!pInfo)
+ {
+ // global method must be guarded
+ MutexGuard aGuard ( Mutex::getGlobalMutex() ) ;
+
+ if (!pInfo)
+ {
+ pInfo = new OPropertyArrayHelper( impl_getStaticPropertyDescriptor(), sal_True );
+ }
+ }
+
+ return *pInfo ;
+}
+/*
+//--------------------------------------------------------------------------------------------------
+// start OConnectionPointContainerHelper
+//--------------------------------------------------------------------------------------------------
+Uik* FrameControl::getConnectionPointUiks ( sal_Int32* pCount ) const
+{
+ static Uik szUiks[] =
+ {
+ ((XEventListener*)NULL)->getSmartUik (),
+ ::getCppuType((const Reference< XPropertyChangeListener >*)0),
+ ::getCppuType((const Reference< XVetoableChangeListener >*)0),
+ ::getCppuType((const Reference< XPropertiesChangeListener >*)0)
+ } ;
+
+ *pCount = 4 ;
+
+ return szUiks ;
+}
+//--------------------------------------------------------------------------------------------------
+// end OConnectionPointContainerHelper
+//--------------------------------------------------------------------------------------------------
+*/
+
+//____________________________________________________________________________________________________________
+// OPropertySetHelper
+//____________________________________________________________________________________________________________
+
+Reference< XPropertySetInfo > SAL_CALL FrameControl::getPropertySetInfo() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pInfo is NULL - for the second call pInfo is different from NULL!
+ static Reference< XPropertySetInfo >* pInfo = (Reference< XPropertySetInfo >*)0 ;
+ if ( pInfo == (Reference< XPropertySetInfo >*)0 )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard ( Mutex::getGlobalMutex () ) ;
+ // Control this pointer again, another instance can be faster then these!
+ if ( pInfo == (Reference< XPropertySetInfo >*)0 )
+ {
+ // Create structure of propertysetinfo for baseclass "OPropertySetHelper".
+ // (Use method "getInfoHelper()".)
+ static Reference< XPropertySetInfo > xInfo ( createPropertySetInfo ( getInfoHelper () ) ) ;
+ pInfo = &xInfo ;
+ }
+ }
+ return ( *pInfo ) ;
+}
+
+//____________________________________________________________________________________________________________
+// BaseControl
+//____________________________________________________________________________________________________________
+
+WindowDescriptor* FrameControl::impl_getWindowDescriptor( const Reference< XWindowPeer >& xParentPeer )
+{
+ WindowDescriptor* pDescriptor = new WindowDescriptor ;
+
+ pDescriptor->Type = WindowClass_CONTAINER ;
+ pDescriptor->ParentIndex = -1 ;
+ pDescriptor->Parent = xParentPeer ;
+ pDescriptor->Bounds = getPosSize () ;
+ pDescriptor->WindowAttributes = 0 ;
+
+ return pDescriptor ;
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void FrameControl::impl_createFrame( const Reference< XWindowPeer >& xPeer ,
+ const OUString& rURL ,
+ const Sequence< PropertyValue >& rArguments )
+{
+ Reference< XFrame > xOldFrame ;
+ Reference< XFrame > xNewFrame ;
+
+ {
+ MutexGuard aGuard ( m_aMutex ) ;
+ xOldFrame = m_xFrame ;
+ }
+
+ xNewFrame = Reference< XFrame > ( impl_getMultiServiceFactory()->createInstance ( OUString::createFromAscii( "com.sun.star.frame.Frame" ) ), UNO_QUERY ) ;
+ Reference< XDispatchProvider > xDSP ( xNewFrame, UNO_QUERY ) ;
+
+ if (xDSP.is())
+ {
+ Reference< XWindow > xWP ( xPeer, UNO_QUERY ) ;
+ xNewFrame->initialize ( xWP ) ;
+
+ // option
+ //xFrame->setName( "WhatYouWant" );
+
+ Reference< XURLTransformer > xTrans ( impl_getMultiServiceFactory()->createInstance ( OUString::createFromAscii( "com.sun.star.util.URLTransformer" ) ), UNO_QUERY ) ;
+ if(xTrans.is())
+ {
+ // load file
+ URL aURL ;
+
+ aURL.Complete = rURL ;
+ xTrans->parseStrict( aURL ) ;
+
+ Reference< XDispatch > xDisp = xDSP->queryDispatch ( aURL, OUString (), FrameSearchFlag::SELF ) ;
+ if (xDisp.is())
+ {
+ xDisp->dispatch ( aURL, rArguments ) ;
+ }
+ }
+ }
+
+ // set the frame
+ {
+ MutexGuard aGuard ( m_aMutex ) ;
+ m_xFrame = xNewFrame ;
+ }
+
+ // notify the listeners
+ sal_Int32 nFrameId = PROPERTYHANDLE_FRAME ;
+ Any aNewFrame ( &xNewFrame, ::getCppuType((const Reference< XFrame >*)0) ) ;
+ Any aOldFrame ( &xOldFrame, ::getCppuType((const Reference< XFrame >*)0) ) ;
+
+ fire ( &nFrameId, &aNewFrame, &aOldFrame, 1, sal_False ) ;
+
+ if (xOldFrame.is())
+ {
+ xOldFrame->dispose () ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void FrameControl::impl_deleteFrame()
+{
+ Reference< XFrame > xOldFrame;
+ Reference< XFrame > xNullFrame;
+
+ {
+ // do not dispose the frame in this guarded section (deadlock?)
+ MutexGuard aGuard( m_aMutex );
+ xOldFrame = m_xFrame;
+ m_xFrame = Reference< XFrame > ();
+ }
+
+ // notify the listeners
+ sal_Int32 nFrameId = PROPERTYHANDLE_FRAME;
+ Any aNewFrame( &xNullFrame, ::getCppuType((const Reference< XFrame >*)0) );
+ Any aOldFrame( &xOldFrame, ::getCppuType((const Reference< XFrame >*)0) );
+ fire( &nFrameId, &aNewFrame, &aOldFrame, 1, sal_False );
+
+ // dispose the frame
+ if( xOldFrame.is() )
+ xOldFrame->dispose();
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+const Sequence< Property > FrameControl::impl_getStaticPropertyDescriptor()
+{
+ // All Properties of this implementation. The array must be sorted!
+ static const Property pPropertys[PROPERTY_COUNT] =
+ {
+ Property( OUString::createFromAscii( PROPERTYNAME_COMPONENTURL ), PROPERTYHANDLE_COMPONENTURL , ::getCppuType((const OUString*)0) , PropertyAttribute::BOUND | PropertyAttribute::CONSTRAINED ),
+ Property( OUString::createFromAscii( PROPERTYNAME_FRAME ), PROPERTYHANDLE_FRAME , ::getCppuType((const Reference< XFrame >*)0) , PropertyAttribute::BOUND | PropertyAttribute::TRANSIENT ),
+ Property( OUString::createFromAscii( PROPERTYNAME_LOADERARGUMENTS ), PROPERTYHANDLE_LOADERARGUMENTS , ::getCppuType((const Sequence< PropertyValue >*)0), PropertyAttribute::BOUND | PropertyAttribute::CONSTRAINED )
+ };
+
+ static const Sequence< Property > seqPropertys( pPropertys, PROPERTY_COUNT );
+
+ return seqPropertys ;
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/controls/makefile.mk b/UnoControls/source/controls/makefile.mk
new file mode 100644
index 000000000000..20314ea8e321
--- /dev/null
+++ b/UnoControls/source/controls/makefile.mk
@@ -0,0 +1,49 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..$/..
+
+PRJNAME=UnoControls
+TARGET=controls
+ENABLE_EXCEPTIONS=TRUE
+.IF "$(L10N_framework)"==""
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+SLOFILES=\
+ $(SLO)$/progressbar.obj \
+ $(SLO)$/framecontrol.obj \
+ $(SLO)$/progressmonitor.obj \
+ $(SLO)$/OConnectionPointHelper.obj \
+ $(SLO)$/OConnectionPointContainerHelper.obj \
+ $(SLO)$/statusindicator.obj
+
+# --- Targets ------------------------------------------------------
+.ENDIF # L10N_framework
+
+.INCLUDE : target.mk
diff --git a/UnoControls/source/controls/progressbar.cxx b/UnoControls/source/controls/progressbar.cxx
new file mode 100644
index 000000000000..842affed16da
--- /dev/null
+++ b/UnoControls/source/controls/progressbar.cxx
@@ -0,0 +1,558 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+//____________________________________________________________________________________________________________
+// my own includes
+//____________________________________________________________________________________________________________
+
+#include "progressbar.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <com/sun/star/awt/GradientStyle.hpp>
+#include <com/sun/star/awt/RasterOperation.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/XGraphics.hpp>
+#include <tools/debug.hxx>
+#include <cppuhelper/typeprovider.hxx>
+
+#include <math.h>
+#include <limits.h>
+
+//____________________________________________________________________________________________________________
+// includes of my project
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// namespace
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::rtl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::awt ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+ProgressBar::ProgressBar( const Reference< XMultiServiceFactory >& xFactory )
+ : BaseControl ( xFactory )
+ , m_bHorizontal ( DEFAULT_HORIZONTAL )
+ , m_aBlockSize ( DEFAULT_BLOCKDIMENSION )
+ , m_nForegroundColor ( DEFAULT_FOREGROUNDCOLOR )
+ , m_nBackgroundColor ( DEFAULT_BACKGROUNDCOLOR )
+ , m_nMinRange ( DEFAULT_MINRANGE )
+ , m_nMaxRange ( DEFAULT_MAXRANGE )
+ , m_nBlockValue ( DEFAULT_BLOCKVALUE )
+ , m_nValue ( DEFAULT_VALUE )
+{
+}
+
+ProgressBar::~ProgressBar()
+{
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL ProgressBar::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+ Any aReturn ;
+ Reference< XInterface > xDel = BaseControl::impl_getDelegator();
+ if ( xDel.is() )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = xDel->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::release();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL ProgressBar::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XControlModel >*)NULL ) ,
+ ::getCppuType(( const Reference< XProgressBar >*)NULL ) ,
+ BaseControl::getTypes()
+ );
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL ProgressBar::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XControlModel* > ( this ) ,
+ static_cast< XProgressBar* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = BaseControl::queryAggregation( aType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::setForegroundColor( sal_Int32 nColor ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ // Safe color for later use.
+ m_nForegroundColor = nColor ;
+
+ // Repaint control
+ impl_paint ( 0, 0, impl_getGraphicsPeer() ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::setBackgroundColor ( sal_Int32 nColor ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ // Safe color for later use.
+ m_nBackgroundColor = nColor ;
+
+ // Repaint control
+ impl_paint ( 0, 0, impl_getGraphicsPeer() ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::setValue ( sal_Int32 nValue ) throw( RuntimeException )
+{
+ // This method is defined for follow things:
+ // 1) Values >= _nMinRange
+ // 2) Values <= _nMaxRange
+
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ // save impossible cases
+ // This method is only defined for valid values
+ DBG_ASSERT ( (( nValue >= m_nMinRange ) && ( nValue <= m_nMaxRange )), "ProgressBar::setValue()\nNot valid value.\n" ) ;
+
+ // If new value not valid ... do nothing in release version!
+ if (
+ ( nValue >= m_nMinRange ) &&
+ ( nValue <= m_nMaxRange )
+ )
+ {
+ // New value is ok => save this
+ m_nValue = nValue ;
+
+ // Repaint to display changes
+ impl_paint ( 0, 0, impl_getGraphicsPeer() ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::setRange ( sal_Int32 nMin, sal_Int32 nMax ) throw( RuntimeException )
+{
+ // This method is defined for follow things:
+ // 1) All values of sal_Int32
+ // 2) Min < Max
+ // 3) Min > Max
+
+ // save impossible cases
+ // This method is only defined for valid values
+ // If you ignore this, the release version wil produce an error "division by zero" in "ProgressBar::setValue()"!
+ DBG_ASSERT ( ( nMin != nMax ) , "ProgressBar::setRange()\nValues for MIN and MAX are the same. This is not allowed!\n" ) ;
+
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ // control the values for min and max
+ if ( nMin < nMax )
+ {
+ // Take correct Min and Max
+ m_nMinRange = nMin ;
+ m_nMaxRange = nMax ;
+ }
+ else
+ {
+ // Change Min and Max automaticly
+ m_nMinRange = nMax ;
+ m_nMaxRange = nMin ;
+ }
+
+ // assure that m_nValue is within the range
+ if (!(m_nMinRange < m_nValue && m_nValue < m_nMaxRange))
+ m_nValue = m_nMinRange;
+
+ impl_recalcRange () ;
+
+ // Do not repaint the control at this place!!!
+ // An old "m_nValue" is set and can not be correct for this new range.
+ // Next call of "ProgressBar::setValue()" do this.
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+sal_Int32 SAL_CALL ProgressBar::getValue () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard (m_aMutex) ;
+
+ return ( m_nValue ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressBar::setPosSize ( sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight, sal_Int16 nFlags ) throw( RuntimeException )
+{
+ // Take old size BEFORE you set the new values at baseclass!
+ // You will control changes. At the other way, the values are the same!
+ Rectangle aBasePosSize = getPosSize () ;
+ BaseControl::setPosSize (nX, nY, nWidth, nHeight, nFlags) ;
+
+ // Do only, if size has changed.
+ if (
+ ( nWidth != aBasePosSize.Width ) ||
+ ( nHeight != aBasePosSize.Height )
+ )
+ {
+ impl_recalcRange ( ) ;
+ impl_paint ( 0, 0, impl_getGraphicsPeer () ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL ProgressBar::setModel( const Reference< XControlModel >& /*xModel*/ ) throw( RuntimeException )
+{
+ // A model is not possible for this control.
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XControlModel > SAL_CALL ProgressBar::getModel() throw( RuntimeException )
+{
+ // A model is not possible for this control.
+ return Reference< XControlModel >();
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const Sequence< OUString > ProgressBar::impl_getStaticSupportedServiceNames()
+{
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+ Sequence< OUString > seqServiceNames( 1 );
+ seqServiceNames.getArray() [0] = OUString::createFromAscii( SERVICENAME_PROGRESSBAR );
+ return seqServiceNames ;
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const OUString ProgressBar::impl_getStaticImplementationName()
+{
+ return OUString::createFromAscii( IMPLEMENTATIONNAME_PROGRESSBAR );
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void ProgressBar::impl_paint ( sal_Int32 nX, sal_Int32 nY, const Reference< XGraphics > & rGraphics )
+{
+ // save impossible cases
+ DBG_ASSERT ( rGraphics.is(), "ProgressBar::paint()\nCalled with invalid Reference< XGraphics > ." ) ;
+
+ // This paint method ist not buffered !!
+ // Every request paint the completely control. ( but only, if peer exist )
+ if ( rGraphics.is () )
+ {
+ MutexGuard aGuard (m_aMutex) ;
+
+ // Clear background
+ // (same color for line and fill)
+ rGraphics->setFillColor ( m_nBackgroundColor ) ;
+ rGraphics->setLineColor ( m_nBackgroundColor ) ;
+ rGraphics->drawRect ( nX, nY, impl_getWidth(), impl_getHeight() ) ;
+
+ // same color for line and fill for blocks
+ rGraphics->setFillColor ( m_nForegroundColor ) ;
+ rGraphics->setLineColor ( m_nForegroundColor ) ;
+
+ sal_Int32 nBlockStart = 0 ; // = left site of new block
+ sal_Int32 nBlockCount = m_nBlockValue!=0.00 ? (sal_Int32)((m_nValue-m_nMinRange)/m_nBlockValue) : 0 ; // = number of next block
+
+ // Draw horizontal progressbar
+ // decision in "recalcRange()"
+ if (m_bHorizontal)
+ {
+ // Step to left side of window
+ nBlockStart = nX ;
+
+ for ( sal_Int16 i=1; i<=nBlockCount; ++i )
+ {
+ // step free field
+ nBlockStart += FREESPACE ;
+ // paint block
+ rGraphics->drawRect (nBlockStart, nY+FREESPACE, m_aBlockSize.Width, m_aBlockSize.Height) ;
+ // step next free field
+ nBlockStart += m_aBlockSize.Width ;
+ }
+ }
+ // draw vertikal progressbar
+ // decision in "recalcRange()"
+ else
+ {
+ // step to bottom side of window
+ nBlockStart = nY+impl_getHeight() ;
+ nBlockStart -= m_aBlockSize.Height ;
+
+ for ( sal_Int16 i=1; i<=nBlockCount; ++i )
+ {
+ // step free field
+ nBlockStart -= FREESPACE ;
+ // paint block
+ rGraphics->drawRect (nX+FREESPACE, nBlockStart, m_aBlockSize.Width, m_aBlockSize.Height) ;
+ // step next free field
+ nBlockStart -= m_aBlockSize.Height;
+ }
+ }
+
+ // Paint shadow border around the progressbar
+ rGraphics->setLineColor ( LINECOLOR_SHADOW ) ;
+ rGraphics->drawLine ( nX, nY, impl_getWidth(), nY ) ;
+ rGraphics->drawLine ( nX, nY, nX , impl_getHeight() ) ;
+
+ rGraphics->setLineColor ( LINECOLOR_BRIGHT ) ;
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, impl_getWidth()-1, nY ) ;
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, nX , impl_getHeight()-1 ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void ProgressBar::impl_recalcRange ()
+{
+ MutexGuard aGuard (m_aMutex) ;
+
+ sal_Int32 nWindowWidth = impl_getWidth() ;
+ sal_Int32 nWindowHeight = impl_getHeight() ;
+ double fBlockHeight ;
+ double fBlockWidth ;
+ double fMaxBlocks ;
+
+ if( nWindowWidth > nWindowHeight )
+ {
+ m_bHorizontal = sal_True ;
+ fBlockHeight = (nWindowHeight-(2*FREESPACE)) ;
+ fBlockWidth = fBlockHeight ;
+ fMaxBlocks = nWindowWidth/(fBlockWidth+FREESPACE);
+ }
+ else
+ {
+ m_bHorizontal = sal_False ;
+ fBlockWidth = (nWindowWidth-(2*FREESPACE)) ;
+ fBlockHeight = fBlockWidth ;
+ fMaxBlocks = nWindowHeight/(fBlockHeight+FREESPACE);
+ }
+
+ double fRange = m_nMaxRange-m_nMinRange ;
+ double fBlockValue = fRange/fMaxBlocks ;
+
+ m_nBlockValue = fBlockValue ;
+ m_aBlockSize.Height = (sal_Int32)fBlockHeight;
+ m_aBlockSize.Width = (sal_Int32)fBlockWidth ;
+/*
+ // Calculate count of blocks for actual size
+ // (prevent error "division by zero")
+ if ( nHeight == 0 )
+ {
+ nHeight = 1 ;
+ }
+
+ nMaxBlock = nWidth / nHeight ;
+ nMaxBlock *= 2 ;
+
+ // prevent error "division by zero"
+ if ( nMaxBlock == 0 )
+ {
+ nMaxBlock = 1 ;
+ }
+
+ // Calculate new value and new size for ONE block.
+
+ // Do not a calculation like this: "m_nBlockValue=(m_nMaxRange-m_nMinRange)/nMaxBlock" !
+ // If difference between m_nMaxRange and m_nMinRange to large, it give an overflow and a
+ // following error "division by zero" in method "paint() ... nBlockCount=nDifference/m_nBlockValue ..."
+
+ // Overflow ? => example: _I32_MAX - _I32_MIN = -1 and not _UI32_MAX !!!
+
+ m_nBlockValue = ( m_nMaxRange / nMaxBlock ) - ( m_nMinRange / nMaxBlock ) ;
+ m_aBlockSize.Height = ( nHeight - ( FREESPACE * 2 ) ) ;
+ m_aBlockSize.Width = ( ( nWidth / nMaxBlock ) - FREESPACE ) ;
+ }
+ else
+ {
+ // Don't forget to save this state! Used in "ProgressBar::paint()"
+ m_bHorizontal = sal_False ;
+
+ double fBlockWidth = (nHeight-(2*FREESPACE)) ;
+ double fBlockHeight = fBlockWidth ;
+ double fRange = m_nMaxRange-m_nMinRange ;
+ double fBlockValue = fRange/(fBlockWidth+FREESPACE);
+
+ m_nBlockValue = fBlockValue ;
+ m_aBlockSize.Height = (sal_Int32)fBlockHeight;
+ m_aBlockSize.Width = (sal_Int32)fBlockWidth ;
+
+ // Calculate count of blocks for actual size
+ // (prevent error "division by zero")
+ if ( nWidth == 0 )
+ {
+ nWidth = 1 ;
+ }
+
+ nMaxBlock = nHeight / nWidth ;
+ nMaxBlock *= 2 ;
+
+ // prevent error "division by zero"
+ if ( nMaxBlock == 0 )
+ {
+ nMaxBlock = 1 ;
+ }
+
+ // Calculate new value and new size for ONE block.
+
+ // Do not a calculation like this: "m_nBlockValue=(m_nMaxRange-m_nMinRange)/nMaxBlock" !
+ // If difference between m_nMaxRange and m_nMinRange to large, it give an overflow and a
+ // following error "division by zero" in method "paint() ... nBlockCount=nDifference/m_nBlockValue ..."
+
+ // Overflow ? => example: _I32_MAX - _I32_MIN = -1 and not _UI32_MAX !!!
+
+ m_nBlockValue = ( m_nMaxRange / nMaxBlock ) - ( m_nMinRange / nMaxBlock ) ;
+ m_aBlockSize.Height = ( ( nHeight / nMaxBlock ) - FREESPACE ) ;
+ m_aBlockSize.Width = ( nWidth - ( FREESPACE * 2 ) ) ;
+
+ }
+*/
+}
+
+} // namespace unocontrols
diff --git a/UnoControls/source/controls/progressmonitor.cxx b/UnoControls/source/controls/progressmonitor.cxx
new file mode 100644
index 000000000000..39bf4d84f8b9
--- /dev/null
+++ b/UnoControls/source/controls/progressmonitor.cxx
@@ -0,0 +1,1066 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//____________________________________________________________________________________________________________
+// my own includes
+//____________________________________________________________________________________________________________
+
+#include "progressmonitor.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <com/sun/star/awt/GradientStyle.hpp>
+#include <com/sun/star/awt/RasterOperation.hpp>
+#include <com/sun/star/awt/Gradient.hpp>
+#include <com/sun/star/awt/XGraphics.hpp>
+#include <com/sun/star/awt/PosSize.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <tools/debug.hxx>
+#include <tools/solar.h>
+
+//____________________________________________________________________________________________________________
+// includes of my project
+//____________________________________________________________________________________________________________
+#include "progressbar.hxx"
+
+//____________________________________________________________________________________________________________
+// namespace
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::rtl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::awt ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+ProgressMonitor::ProgressMonitor( const Reference< XMultiServiceFactory >& xFactory )
+ : BaseContainerControl ( xFactory )
+{
+ // Its not allowed to work with member in this method (refcounter !!!)
+ // But with a HACK (++refcount) its "OK" :-(
+ ++m_refCount ;
+
+ // Create instances for fixedtext, button and progress ...
+ m_xTopic_Top = Reference< XFixedText > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_SERVICENAME ) ), UNO_QUERY ) ;
+ m_xText_Top = Reference< XFixedText > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_SERVICENAME ) ), UNO_QUERY ) ;
+ m_xTopic_Bottom = Reference< XFixedText > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_SERVICENAME ) ), UNO_QUERY ) ;
+ m_xText_Bottom = Reference< XFixedText > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_SERVICENAME ) ), UNO_QUERY ) ;
+ m_xButton = Reference< XButton > ( xFactory->createInstance ( OUString::createFromAscii( BUTTON_SERVICENAME ) ), UNO_QUERY ) ;
+ m_xProgressBar = Reference< XProgressBar > ( xFactory->createInstance ( OUString::createFromAscii( SERVICENAME_PROGRESSBAR ) ), UNO_QUERY ) ;
+
+ // ... cast controls to Reference< XControl > (for "setModel"!) ...
+ Reference< XControl > xRef_Topic_Top ( m_xTopic_Top , UNO_QUERY ) ;
+ Reference< XControl > xRef_Text_Top ( m_xText_Top , UNO_QUERY ) ;
+ Reference< XControl > xRef_Topic_Bottom ( m_xTopic_Bottom , UNO_QUERY ) ;
+ Reference< XControl > xRef_Text_Bottom ( m_xText_Bottom , UNO_QUERY ) ;
+ Reference< XControl > xRef_Button ( m_xButton , UNO_QUERY ) ;
+ Reference< XControl > xRef_ProgressBar ( m_xProgressBar , UNO_QUERY ) ;
+
+ // ... set models ...
+ xRef_Topic_Top->setModel ( Reference< XControlModel > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_MODELNAME ) ), UNO_QUERY ) ) ;
+ xRef_Text_Top->setModel ( Reference< XControlModel > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_MODELNAME ) ), UNO_QUERY ) ) ;
+ xRef_Topic_Bottom->setModel ( Reference< XControlModel > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_MODELNAME ) ), UNO_QUERY ) ) ;
+ xRef_Text_Bottom->setModel ( Reference< XControlModel > ( xFactory->createInstance ( OUString::createFromAscii( FIXEDTEXT_MODELNAME ) ), UNO_QUERY ) ) ;
+ xRef_Button->setModel ( Reference< XControlModel > ( xFactory->createInstance ( OUString::createFromAscii( BUTTON_MODELNAME ) ), UNO_QUERY ) ) ;
+ // ProgressBar has no model !!!
+
+ // ... and add controls to basecontainercontrol!
+ addControl ( OUString::createFromAscii( CONTROLNAME_TEXT ) , xRef_Topic_Top ) ;
+ addControl ( OUString::createFromAscii( CONTROLNAME_TEXT ) , xRef_Text_Top ) ;
+ addControl ( OUString::createFromAscii( CONTROLNAME_TEXT ) , xRef_Topic_Bottom ) ;
+ addControl ( OUString::createFromAscii( CONTROLNAME_TEXT ) , xRef_Text_Bottom ) ;
+ addControl ( OUString::createFromAscii( CONTROLNAME_BUTTON ) , xRef_Button ) ;
+ addControl ( OUString::createFromAscii( CONTROLNAME_PROGRESSBAR ) , xRef_ProgressBar ) ;
+
+ // FixedText make it automaticly visible by himself ... but not the progressbar !!!
+ // it must be set explicitly
+ Reference< XWindow > xWindowRef_ProgressBar( m_xProgressBar, UNO_QUERY );
+ xWindowRef_ProgressBar->setVisible( sal_True );
+
+ // Reset to defaults !!!
+ // (progressbar take automaticly its own defaults)
+ m_xButton->setLabel ( OUString::createFromAscii( DEFAULT_BUTTONLABEL ) ) ;
+ m_xTopic_Top->setText ( OUString::createFromAscii( DEFAULT_TOPIC ) ) ;
+ m_xText_Top->setText ( OUString::createFromAscii( DEFAULT_TEXT ) ) ;
+ m_xTopic_Bottom->setText ( OUString::createFromAscii( DEFAULT_TOPIC ) ) ;
+ m_xText_Bottom->setText ( OUString::createFromAscii( DEFAULT_TEXT ) ) ;
+
+ --m_refCount ;
+
+ // Initialize info lists for fixedtext's
+ m_pTextlist_Top = new IMPL_Textlist ;
+ m_pTextlist_Bottom = new IMPL_Textlist ;
+}
+
+ProgressMonitor::~ProgressMonitor()
+{
+ impl_cleanMemory () ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL ProgressMonitor::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+ Any aReturn ;
+ Reference< XInterface > xDel = BaseContainerControl::impl_getDelegator();
+ if ( xDel.is() )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = xDel->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::release();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL ProgressMonitor::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XLayoutConstrains >*)NULL ) ,
+ ::getCppuType(( const Reference< XButton >*)NULL ) ,
+ ::getCppuType(( const Reference< XProgressMonitor >*)NULL ) ,
+ BaseContainerControl::getTypes()
+ );
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL ProgressMonitor::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XLayoutConstrains* > ( this ) ,
+ static_cast< XButton* > ( this ) ,
+ static_cast< XProgressMonitor* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = BaseControl::queryAggregation( aType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XProgressMonitor
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::addText( const OUString& rTopic, const OUString& rText, sal_Bool bbeforeProgress ) throw( RuntimeException )
+{
+ // Safe impossible cases
+ // Check valid call of this method.
+ DBG_ASSERT ( impl_debug_checkParameter ( rTopic, rText, bbeforeProgress ) , "ProgressMonitor::addText()\nCall without valid parameters!\n") ;
+ DBG_ASSERT ( !(impl_searchTopic ( rTopic, bbeforeProgress ) != NULL ) , "ProgresMonitor::addText()\nThe text already exist.\n" ) ;
+
+ // Do nothing (in Release), if topic already exist.
+ if ( impl_searchTopic ( rTopic, bbeforeProgress ) != NULL )
+ {
+ return ;
+ }
+
+ // Else ... take memory for new item ...
+ IMPL_TextlistItem* pTextItem = new IMPL_TextlistItem ;
+
+ if ( pTextItem != NULL )
+ {
+ // Set values ...
+ pTextItem->sTopic = rTopic ;
+ pTextItem->sText = rText ;
+
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // ... and insert it in right list.
+ if ( bbeforeProgress == sal_True )
+ {
+ m_pTextlist_Top->Insert ( pTextItem, LIST_APPEND ) ;
+ }
+ else
+ {
+ m_pTextlist_Bottom->Insert ( pTextItem, LIST_APPEND ) ;
+ }
+ }
+
+ // ... update window
+ impl_rebuildFixedText () ;
+ impl_recalcLayout () ;
+}
+
+//____________________________________________________________________________________________________________
+// XProgressMonitor
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::removeText ( const OUString& rTopic, sal_Bool bbeforeProgress ) throw( RuntimeException )
+{
+ // Safe impossible cases
+ // Check valid call of this method.
+ DBG_ASSERT ( impl_debug_checkParameter ( rTopic, bbeforeProgress ), "ProgressMonitor::removeText()\nCall without valid parameters!\n" ) ;
+
+ // Search the topic ...
+ IMPL_TextlistItem* pSearchItem = impl_searchTopic ( rTopic, bbeforeProgress ) ;
+
+ if ( pSearchItem != NULL )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // ... delete item from right list ...
+ if ( bbeforeProgress == sal_True )
+ {
+ m_pTextlist_Top->Remove ( pSearchItem ) ;
+ }
+ else
+ {
+ m_pTextlist_Bottom->Remove ( pSearchItem ) ;
+ }
+
+ delete pSearchItem ;
+
+ // ... and update window.
+ impl_rebuildFixedText () ;
+ impl_recalcLayout () ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressMonitor
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::updateText ( const OUString& rTopic, const OUString& rText, sal_Bool bbeforeProgress ) throw( RuntimeException )
+{
+ // Safe impossible cases
+ // Check valid call of this method.
+ DBG_ASSERT ( impl_debug_checkParameter ( rTopic, rText, bbeforeProgress ), "ProgressMonitor::updateText()\nCall without valid parameters!\n" ) ;
+
+ // Search topic ...
+ IMPL_TextlistItem* pSearchItem = impl_searchTopic ( rTopic, bbeforeProgress ) ;
+
+ if ( pSearchItem != NULL )
+ {
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // ... update text ...
+ pSearchItem->sText = rText ;
+
+ // ... and update window.
+ impl_rebuildFixedText () ;
+ impl_recalcLayout () ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setForegroundColor ( sal_Int32 nColor ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xProgressBar.is () )
+ {
+ m_xProgressBar->setForegroundColor ( nColor ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setBackgroundColor ( sal_Int32 nColor ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xProgressBar.is () )
+ {
+ m_xProgressBar->setBackgroundColor ( nColor ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setValue ( sal_Int32 nValue ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xProgressBar.is () )
+ {
+ m_xProgressBar->setValue ( nValue ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setRange ( sal_Int32 nMin, sal_Int32 nMax ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xProgressBar.is () )
+ {
+ m_xProgressBar->setRange ( nMin, nMax ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XProgressBar
+//____________________________________________________________________________________________________________
+
+sal_Int32 SAL_CALL ProgressMonitor::getValue () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if (m_xProgressBar.is())
+ {
+ return m_xProgressBar->getValue () ;
+ }
+
+ return 0 ;
+}
+
+//____________________________________________________________________________________________________________
+// XButton
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::addActionListener ( const Reference< XActionListener > & rListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xButton.is () )
+ {
+ m_xButton->addActionListener ( rListener ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XButton
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::removeActionListener ( const Reference< XActionListener > & rListener ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xButton.is () )
+ {
+ m_xButton->removeActionListener ( rListener ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XButton
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setLabel ( const OUString& rLabel ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xButton.is () )
+ {
+ m_xButton->setLabel ( rLabel ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XButton
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setActionCommand ( const OUString& rCommand ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ if ( m_xButton.is () )
+ {
+ m_xButton->setActionCommand ( rCommand ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL ProgressMonitor::getMinimumSize () throw( RuntimeException )
+{
+ return Size (DEFAULT_WIDTH, DEFAULT_HEIGHT) ;
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL ProgressMonitor::getPreferredSize () throw( RuntimeException )
+{
+ // Ready for multithreading
+ ClearableMutexGuard aGuard ( m_aMutex ) ;
+
+ // get information about required place of child controls
+ Reference< XLayoutConstrains > xTopicLayout_Top ( m_xTopic_Top , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xTopicLayout_Bottom ( m_xTopic_Bottom , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xButtonLayout ( m_xButton , UNO_QUERY ) ;
+ Reference< XWindow > xProgressBarWindow ( m_xProgressBar , UNO_QUERY ) ;
+
+ Size aTopicSize_Top = xTopicLayout_Top->getPreferredSize ();
+ Size aTopicSize_Bottom = xTopicLayout_Bottom->getPreferredSize ();
+ Size aButtonSize = xButtonLayout->getPreferredSize ();
+ Rectangle aTempRectangle = xProgressBarWindow->getPosSize ();
+ Size aProgressBarSize = Size( aTempRectangle.Width, aTempRectangle.Height );
+
+ aGuard.clear () ;
+
+ // calc preferred size of progressmonitor
+ sal_Int32 nWidth = 0 ;
+ sal_Int32 nHeight = 0 ;
+
+ nWidth = 3 * FREEBORDER ;
+ nWidth += aProgressBarSize.Width ;
+
+ nHeight = 6 * FREEBORDER ;
+ nHeight += aTopicSize_Top.Height ;
+ nHeight += aProgressBarSize.Height ;
+ nHeight += aTopicSize_Bottom.Height;
+ nHeight += 2 ; // 1 for black line, 1 for white line = 3D-Line!
+ nHeight += aButtonSize.Height ;
+
+ // norm to minimum
+ if ( nWidth<DEFAULT_WIDTH )
+ {
+ nWidth = DEFAULT_WIDTH ;
+ }
+ if ( nHeight<DEFAULT_HEIGHT )
+ {
+ nHeight = DEFAULT_HEIGHT ;
+ }
+
+ // return to caller
+ return Size ( nWidth, nHeight ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL ProgressMonitor::calcAdjustedSize ( const Size& /*rNewSize*/ ) throw( RuntimeException )
+{
+ return getPreferredSize () ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::createPeer ( const Reference< XToolkit > & rToolkit, const Reference< XWindowPeer > & rParent ) throw( RuntimeException )
+{
+ if (!getPeer().is())
+ {
+ BaseContainerControl::createPeer ( rToolkit, rParent ) ;
+
+ // If user forget to call "setPosSize()", we have still a correct size.
+ // And a "MinimumSize" IS A "MinimumSize"!
+ // We change not the position of control at this point.
+ Size aDefaultSize = getMinimumSize () ;
+ setPosSize ( 0, 0, aDefaultSize.Width, aDefaultSize.Height, PosSize::SIZE ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL ProgressMonitor::setModel ( const Reference< XControlModel > & /*rModel*/ ) throw( RuntimeException )
+{
+ // We have no model.
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XControlModel > SAL_CALL ProgressMonitor::getModel () throw( RuntimeException )
+{
+ // We have no model.
+ // return (XControlModel*)this ;
+ return Reference< XControlModel > () ;
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::dispose () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // "removeControl()" control the state of a reference
+ Reference< XControl > xRef_Topic_Top ( m_xTopic_Top , UNO_QUERY ) ;
+ Reference< XControl > xRef_Text_Top ( m_xText_Top , UNO_QUERY ) ;
+ Reference< XControl > xRef_Topic_Bottom ( m_xTopic_Bottom , UNO_QUERY ) ;
+ Reference< XControl > xRef_Text_Bottom ( m_xText_Bottom , UNO_QUERY ) ;
+ Reference< XControl > xRef_Button ( m_xButton , UNO_QUERY ) ;
+ Reference< XControl > xRef_ProgressBar ( m_xProgressBar , UNO_QUERY ) ;
+
+ removeControl ( xRef_Topic_Top ) ;
+ removeControl ( xRef_Text_Top ) ;
+ removeControl ( xRef_Topic_Bottom ) ;
+ removeControl ( xRef_Text_Bottom ) ;
+ removeControl ( xRef_Button ) ;
+ removeControl ( xRef_ProgressBar ) ;
+
+ // do'nt use "...->clear ()" or "... = XFixedText ()"
+ // when other hold a reference at this object !!!
+ xRef_Topic_Top->dispose () ;
+ xRef_Text_Top->dispose () ;
+ xRef_Topic_Bottom->dispose () ;
+ xRef_Text_Bottom->dispose () ;
+ xRef_Button->dispose () ;
+ xRef_ProgressBar->dispose () ;
+
+ BaseContainerControl::dispose () ;
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL ProgressMonitor::setPosSize ( sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight, sal_Int16 nFlags ) throw( RuntimeException )
+{
+ Rectangle aBasePosSize = getPosSize () ;
+ BaseContainerControl::setPosSize (nX, nY, nWidth, nHeight, nFlags) ;
+
+ // if position or size changed
+ if (
+ ( nWidth != aBasePosSize.Width ) ||
+ ( nHeight != aBasePosSize.Height)
+ )
+ {
+ // calc new layout for controls
+ impl_recalcLayout () ;
+ // clear background (!)
+ // [Childs was repainted in "recalcLayout" by setPosSize() automaticly!]
+ getPeer()->invalidate(2);
+ // and repaint the control
+ impl_paint ( 0, 0, impl_getGraphicsPeer() ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const Sequence< OUString > ProgressMonitor::impl_getStaticSupportedServiceNames()
+{
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+ Sequence< OUString > seqServiceNames( 1 );
+ seqServiceNames.getArray() [0] = OUString::createFromAscii( SERVICENAME_PROGRESSMONITOR );
+ return seqServiceNames ;
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const OUString ProgressMonitor::impl_getStaticImplementationName()
+{
+ return OUString::createFromAscii( IMPLEMENTATIONNAME_PROGRESSMONITOR );
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void ProgressMonitor::impl_paint ( sal_Int32 nX, sal_Int32 nY, const Reference< XGraphics > & rGraphics )
+{
+ if (rGraphics.is())
+ {
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // paint shadowed border around the progressmonitor
+ rGraphics->setLineColor ( LINECOLOR_SHADOW ) ;
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, impl_getWidth()-1, nY ) ;
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, nX , impl_getHeight()-1 ) ;
+
+ rGraphics->setLineColor ( LINECOLOR_BRIGHT ) ;
+ rGraphics->drawLine ( nX, nY, impl_getWidth(), nY ) ;
+ rGraphics->drawLine ( nX, nY, nX , impl_getHeight() ) ;
+
+ // Paint 3D-line
+ rGraphics->setLineColor ( LINECOLOR_SHADOW ) ;
+ rGraphics->drawLine ( m_a3DLine.X, m_a3DLine.Y, m_a3DLine.X+m_a3DLine.Width, m_a3DLine.Y ) ;
+
+ rGraphics->setLineColor ( LINECOLOR_BRIGHT ) ;
+ rGraphics->drawLine ( m_a3DLine.X, m_a3DLine.Y+1, m_a3DLine.X+m_a3DLine.Width, m_a3DLine.Y+1 ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void ProgressMonitor::impl_recalcLayout ()
+{
+ sal_Int32 nX_Button ;
+ sal_Int32 nY_Button ;
+ sal_Int32 nWidth_Button ;
+ sal_Int32 nHeight_Button ;
+
+ sal_Int32 nX_ProgressBar ;
+ sal_Int32 nY_ProgressBar ;
+ sal_Int32 nWidth_ProgressBar ;
+ sal_Int32 nHeight_ProgressBar ;
+
+ sal_Int32 nX_3DLine ;
+ sal_Int32 nY_3DLine ;
+ sal_Int32 nWidth_3DLine ;
+ sal_Int32 nHeight_3DLine ;
+
+ sal_Int32 nX_Text_Top ;
+ sal_Int32 nY_Text_Top ;
+ sal_Int32 nWidth_Text_Top ;
+ sal_Int32 nHeight_Text_Top ;
+
+ sal_Int32 nX_Topic_Top ;
+ sal_Int32 nY_Topic_Top ;
+ sal_Int32 nWidth_Topic_Top ;
+ sal_Int32 nHeight_Topic_Top ;
+
+ sal_Int32 nX_Text_Bottom ;
+ sal_Int32 nY_Text_Bottom ;
+ sal_Int32 nWidth_Text_Bottom ;
+ sal_Int32 nHeight_Text_Bottom ;
+
+ sal_Int32 nX_Topic_Bottom ;
+ sal_Int32 nY_Topic_Bottom ;
+ sal_Int32 nWidth_Topic_Bottom ;
+ sal_Int32 nHeight_Topic_Bottom ;
+
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // get information about required place of child controls
+ Reference< XLayoutConstrains > xTopicLayout_Top ( m_xTopic_Top , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xTextLayout_Top ( m_xText_Top , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xTopicLayout_Bottom ( m_xTopic_Bottom , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xTextLayout_Bottom ( m_xText_Bottom , UNO_QUERY ) ;
+ Reference< XLayoutConstrains > xButtonLayout ( m_xButton , UNO_QUERY ) ;
+
+ Size aTopicSize_Top = xTopicLayout_Top->getPreferredSize () ;
+ Size aTextSize_Top = xTextLayout_Top->getPreferredSize () ;
+ Size aTopicSize_Bottom = xTopicLayout_Bottom->getPreferredSize () ;
+ Size aTextSize_Bottom = xTextLayout_Bottom->getPreferredSize () ;
+ Size aButtonSize = xButtonLayout->getPreferredSize () ;
+
+ // calc position and size of child controls
+ // Button has preferred size!
+ nWidth_Button = aButtonSize.Width ;
+ nHeight_Button = aButtonSize.Height ;
+
+ // Left column before progressbar has preferred size and fixed position.
+ // But "Width" is oriented on left column below progressbar to!!! "max(...)"
+ nX_Topic_Top = FREEBORDER ;
+ nY_Topic_Top = FREEBORDER ;
+ nWidth_Topic_Top = Max ( aTopicSize_Top.Width, aTopicSize_Bottom.Width ) ;
+ nHeight_Topic_Top = aTopicSize_Top.Height ;
+
+ // Right column before progressbar has relativ position to left column ...
+ // ... and a size as rest of dialog size!
+ nX_Text_Top = nX_Topic_Top+nWidth_Topic_Top+FREEBORDER ;
+ nY_Text_Top = nY_Topic_Top ;
+ nWidth_Text_Top = Max ( aTextSize_Top.Width, aTextSize_Bottom.Width ) ;
+ // Fix size of this column to minimum!
+ sal_Int32 nSummaryWidth = nWidth_Text_Top+nWidth_Topic_Top+(3*FREEBORDER) ;
+ if ( nSummaryWidth < DEFAULT_WIDTH )
+ nWidth_Text_Top = DEFAULT_WIDTH-nWidth_Topic_Top-(3*FREEBORDER);
+ // Fix size of column to maximum!
+ if ( nSummaryWidth > impl_getWidth() )
+ nWidth_Text_Top = impl_getWidth()-nWidth_Topic_Top-(3*FREEBORDER) ;
+ nHeight_Text_Top = nHeight_Topic_Top ;
+
+ // Position of progressbar is relativ to columns before.
+ // Progressbar.Width = Dialog.Width !!!
+ // Progressbar.Height = Button.Height
+ nX_ProgressBar = nX_Topic_Top ;
+ nY_ProgressBar = nY_Topic_Top+nHeight_Topic_Top+FREEBORDER ;
+ nWidth_ProgressBar = FREEBORDER+nWidth_Topic_Top+nWidth_Text_Top ;
+ nHeight_ProgressBar = nHeight_Button ;
+
+ // Oriented by left column before progressbar.
+ nX_Topic_Bottom = nX_Topic_Top ;
+ nY_Topic_Bottom = nY_ProgressBar+nHeight_ProgressBar+FREEBORDER ;
+ nWidth_Topic_Bottom = nWidth_Topic_Top ;
+ nHeight_Topic_Bottom = aTopicSize_Bottom.Height ;
+
+ // Oriented by right column before progressbar.
+ nX_Text_Bottom = nX_Topic_Bottom+nWidth_Topic_Bottom+FREEBORDER ;
+ nY_Text_Bottom = nY_Topic_Bottom ;
+ nWidth_Text_Bottom = nWidth_Text_Top ;
+ nHeight_Text_Bottom = nHeight_Topic_Bottom ;
+
+ // Oriented by progressbar.
+ nX_3DLine = nX_Topic_Top ;
+ nY_3DLine = nY_Topic_Bottom+nHeight_Topic_Bottom+(FREEBORDER/2) ;
+ nWidth_3DLine = nWidth_ProgressBar ;
+ nHeight_3DLine = 1 ; // Height for ONE line ! (But we paint two lines!)
+
+ // Oriented by progressbar.
+ nX_Button = nX_ProgressBar+nWidth_ProgressBar-nWidth_Button ;
+ nY_Button = nY_Topic_Bottom+nHeight_Topic_Bottom+FREEBORDER ;
+
+ // Calc offsets to center controls
+ sal_Int32 nDx ;
+ sal_Int32 nDy ;
+
+ nDx = ( (2*FREEBORDER)+nWidth_ProgressBar ) ;
+ nDy = ( (6*FREEBORDER)+nHeight_Topic_Top+nHeight_ProgressBar+nHeight_Topic_Bottom+2+nHeight_Button ) ;
+
+ // At this point use original dialog size to center controls!
+ nDx = (impl_getWidth ()/2)-(nDx/2) ;
+ nDy = (impl_getHeight()/2)-(nDy/2) ;
+
+ if ( nDx<0 )
+ {
+ nDx=0 ;
+ }
+ if ( nDy<0 )
+ {
+ nDy=0 ;
+ }
+
+ // Set new position and size on all controls
+ Reference< XWindow > xRef_Topic_Top ( m_xTopic_Top , UNO_QUERY ) ;
+ Reference< XWindow > xRef_Text_Top ( m_xText_Top , UNO_QUERY ) ;
+ Reference< XWindow > xRef_Topic_Bottom ( m_xTopic_Bottom , UNO_QUERY ) ;
+ Reference< XWindow > xRef_Text_Bottom ( m_xText_Bottom , UNO_QUERY ) ;
+ Reference< XWindow > xRef_Button ( m_xButton , UNO_QUERY ) ;
+ Reference< XWindow > xRef_ProgressBar ( m_xProgressBar , UNO_QUERY ) ;
+
+ xRef_Topic_Top->setPosSize ( nDx+nX_Topic_Top , nDy+nY_Topic_Top , nWidth_Topic_Top , nHeight_Topic_Top , 15 ) ;
+ xRef_Text_Top->setPosSize ( nDx+nX_Text_Top , nDy+nY_Text_Top , nWidth_Text_Top , nHeight_Text_Top , 15 ) ;
+ xRef_Topic_Bottom->setPosSize ( nDx+nX_Topic_Bottom , nDy+nY_Topic_Bottom , nWidth_Topic_Bottom , nHeight_Topic_Bottom , 15 ) ;
+ xRef_Text_Bottom->setPosSize ( nDx+nX_Text_Bottom , nDy+nY_Text_Bottom , nWidth_Text_Bottom , nHeight_Text_Bottom , 15 ) ;
+ xRef_Button->setPosSize ( nDx+nX_Button , nDy+nY_Button , nWidth_Button , nHeight_Button , 15 ) ;
+ xRef_ProgressBar->setPosSize ( nDx+nX_ProgressBar , nDy+nY_ProgressBar , nWidth_ProgressBar , nHeight_ProgressBar , 15 ) ;
+
+ m_a3DLine.X = nDx+nX_Topic_Top ;
+ m_a3DLine.Y = nDy+nY_Topic_Bottom+nHeight_Topic_Bottom+(FREEBORDER/2) ;
+ m_a3DLine.Width = nWidth_ProgressBar ;
+ m_a3DLine.Height = nHeight_ProgressBar ;
+
+ // All childcontrols make an implicit repaint in setPosSize()!
+ // Make it also for this 3D-line ...
+ Reference< XGraphics > xGraphics = impl_getGraphicsPeer () ;
+
+ xGraphics->setLineColor ( LINECOLOR_SHADOW ) ;
+ xGraphics->drawLine ( m_a3DLine.X, m_a3DLine.Y, m_a3DLine.X+m_a3DLine.Width, m_a3DLine.Y ) ;
+
+ xGraphics->setLineColor ( LINECOLOR_BRIGHT ) ;
+ xGraphics->drawLine ( m_a3DLine.X, m_a3DLine.Y+1, m_a3DLine.X+m_a3DLine.Width, m_a3DLine.Y+1 ) ;
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void ProgressMonitor::impl_rebuildFixedText ()
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // Rebuild fixedtext before progress
+
+ // Rebuild left site of text
+ if (m_xTopic_Top.is())
+ {
+ OUString aCollectString ;
+
+ // Collect all topics from list and format text.
+ // "\n" MUST BE at the end of line!!! => Else ... topic and his text are not in the same line!!!
+ for ( sal_uInt32 n=0; n<m_pTextlist_Top->Count(); ++n )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Top->GetObject (n) ;
+ aCollectString += pSearchItem->sTopic ;
+ aCollectString += OUString::createFromAscii("\n") ;
+ }
+ aCollectString += OUString::createFromAscii("\0") ; // It's better :-)
+
+ m_xTopic_Top->setText ( aCollectString ) ;
+ }
+
+ // Rebuild right site of text
+ if (m_xText_Top.is())
+ {
+ OUString aCollectString ;
+
+ // Collect all topics from list and format text.
+ // "\n" MUST BE at the end of line!!! => Else ... topic and his text are not in the same line!!!
+ for ( sal_uInt32 n=0; n<m_pTextlist_Top->Count(); ++n )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Top->GetObject (n) ;
+ aCollectString += pSearchItem->sText ;
+ aCollectString += OUString::createFromAscii("\n") ;
+ }
+ aCollectString += OUString::createFromAscii("\0") ; // It's better :-)
+
+ m_xText_Top->setText ( aCollectString ) ;
+ }
+
+ // Rebuild fixedtext below progress
+
+ // Rebuild left site of text
+ if (m_xTopic_Bottom.is())
+ {
+ OUString aCollectString ;
+
+ // Collect all topics from list and format text.
+ // "\n" MUST BE at the end of line!!! => Else ... topic and his text are not in the same line!!!
+ for ( sal_uInt32 n=0; n<m_pTextlist_Bottom->Count(); ++n )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Bottom->GetObject (n) ;
+ aCollectString += pSearchItem->sTopic ;
+ aCollectString += OUString::createFromAscii("\n") ;
+ }
+ aCollectString += OUString::createFromAscii("\0") ; // It's better :-)
+
+ m_xTopic_Bottom->setText ( aCollectString ) ;
+ }
+
+ // Rebuild right site of text
+ if (m_xText_Bottom.is())
+ {
+ OUString aCollectString ;
+
+ // Collect all topics from list and format text.
+ // "\n" MUST BE at the end of line!!! => Else ... topic and his text are not in the same line!!!
+ for ( sal_uInt32 n=0; n<m_pTextlist_Bottom->Count(); ++n )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Bottom->GetObject (n) ;
+ aCollectString += pSearchItem->sText ;
+ aCollectString += OUString::createFromAscii("\n") ;
+ }
+ aCollectString += OUString::createFromAscii("\0") ; // It's better :-)
+
+ m_xText_Bottom->setText ( aCollectString ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+void ProgressMonitor::impl_cleanMemory ()
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // Delete all of lists.
+
+ sal_uInt32 nPosition ;
+
+ for ( nPosition = 0; nPosition < m_pTextlist_Top->Count () ; ++nPosition )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Top->GetObject ( nPosition ) ;
+ delete pSearchItem ;
+ }
+ m_pTextlist_Top->Clear () ;
+ delete m_pTextlist_Top ;
+
+ for ( nPosition = 0; nPosition < m_pTextlist_Bottom->Count () ; ++nPosition )
+ {
+ IMPL_TextlistItem* pSearchItem = m_pTextlist_Bottom->GetObject ( nPosition ) ;
+ delete pSearchItem ;
+ }
+ m_pTextlist_Bottom->Clear () ;
+ delete m_pTextlist_Bottom ;
+}
+
+//____________________________________________________________________________________________________________
+// private method
+//____________________________________________________________________________________________________________
+
+IMPL_TextlistItem* ProgressMonitor::impl_searchTopic ( const OUString& rTopic, sal_Bool bbeforeProgress )
+{
+ // Get right textlist for following operations.
+ IMPL_Textlist* pTextList ;
+
+ // Ready for multithreading
+ ClearableMutexGuard aGuard ( m_aMutex ) ;
+
+ if ( bbeforeProgress == sal_True )
+ {
+ pTextList = m_pTextlist_Top ;
+ }
+ else
+ {
+ pTextList = m_pTextlist_Bottom ;
+ }
+
+ // Switch off guard.
+ aGuard.clear () ;
+
+ // Search the topic in textlist.
+ sal_uInt32 nPosition = 0 ;
+ sal_uInt32 nCount = pTextList->Count () ;
+
+ for ( nPosition = 0; nPosition < nCount ; ++nPosition )
+ {
+ IMPL_TextlistItem* pSearchItem = pTextList->GetObject ( nPosition ) ;
+
+ if ( pSearchItem->sTopic == rTopic )
+ {
+ // We have found this topic ... return a valid pointer.
+ return pSearchItem ;
+ }
+ }
+
+ // We have'nt found this topic ... return a nonvalid pointer.
+ return NULL ;
+}
+
+//____________________________________________________________________________________________________________
+// debug methods
+//____________________________________________________________________________________________________________
+
+#ifdef DBG_UTIL
+
+// addText, updateText
+sal_Bool ProgressMonitor::impl_debug_checkParameter ( const OUString& rTopic, const OUString& rText, sal_Bool /*bbeforeProgress*/ )
+{
+ // Check "rTopic"
+ if ( &rTopic == NULL ) return sal_False ; // NULL-pointer for reference ???!!!
+ if ( rTopic.getLength () < 1 ) return sal_False ; // ""
+
+ // Check "rText"
+ if ( &rText == NULL ) return sal_False ; // NULL-pointer for reference ???!!!
+ if ( rText.getLength () < 1 ) return sal_False ; // ""
+
+ // "bbeforeProgress" is valid in everyway!
+
+ // Parameter OK ... return sal_True.
+ return sal_True ;
+}
+
+// removeText
+sal_Bool ProgressMonitor::impl_debug_checkParameter ( const OUString& rTopic, sal_Bool /*bbeforeProgress*/ )
+{
+ // Check "rTopic"
+ if ( &rTopic == NULL ) return sal_False ; // NULL-pointer for reference ???!!!
+ if ( rTopic.getLength () < 1 ) return sal_False ; // ""
+
+ // "bbeforeProgress" is valid in everyway!
+
+ // Parameter OK ... return sal_True.
+ return sal_True ;
+}
+
+#endif // #ifdef DBG_UTIL
+
+} // namespace unocontrols
diff --git a/UnoControls/source/controls/statusindicator.cxx b/UnoControls/source/controls/statusindicator.cxx
new file mode 100644
index 000000000000..5dd5bd647017
--- /dev/null
+++ b/UnoControls/source/controls/statusindicator.cxx
@@ -0,0 +1,558 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+//____________________________________________________________________________________________________________
+// my own includes
+//____________________________________________________________________________________________________________
+
+#include "statusindicator.hxx"
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+#include <com/sun/star/awt/InvalidateStyle.hpp>
+#include <com/sun/star/awt/WindowAttribute.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <tools/debug.hxx>
+
+//____________________________________________________________________________________________________________
+// includes of my project
+//____________________________________________________________________________________________________________
+#include "progressbar.hxx"
+
+//____________________________________________________________________________________________________________
+// namespace
+//____________________________________________________________________________________________________________
+
+using namespace ::cppu ;
+using namespace ::osl ;
+using namespace ::rtl ;
+using namespace ::com::sun::star::uno ;
+using namespace ::com::sun::star::lang ;
+using namespace ::com::sun::star::awt ;
+using namespace ::com::sun::star::task ;
+
+namespace unocontrols{
+
+//____________________________________________________________________________________________________________
+// construct/destruct
+//____________________________________________________________________________________________________________
+
+StatusIndicator::StatusIndicator( const Reference< XMultiServiceFactory >& xFactory )
+ : BaseContainerControl ( xFactory )
+{
+ // Its not allowed to work with member in this method (refcounter !!!)
+ // But with a HACK (++refcount) its "OK" :-(
+ ++m_refCount ;
+
+ // Create instances for fixedtext and progress ...
+ m_xText = Reference< XFixedText > ( xFactory->createInstance( OUString::createFromAscii( FIXEDTEXT_SERVICENAME ) ), UNO_QUERY );
+ m_xProgressBar = Reference< XProgressBar > ( xFactory->createInstance( OUString::createFromAscii( SERVICENAME_PROGRESSBAR ) ), UNO_QUERY );
+ // ... cast controls to Reference< XControl > and set model ...
+ // ( ProgressBar has no model !!! )
+ Reference< XControl > xTextControl ( m_xText , UNO_QUERY );
+ Reference< XControl > xProgressControl ( m_xProgressBar, UNO_QUERY );
+ xTextControl->setModel( Reference< XControlModel >( xFactory->createInstance( OUString::createFromAscii( FIXEDTEXT_MODELNAME ) ), UNO_QUERY ) );
+ // ... and add controls to basecontainercontrol!
+ addControl( OUString::createFromAscii( CONTROLNAME_TEXT ), xTextControl );
+ addControl( OUString::createFromAscii( CONTROLNAME_PROGRESSBAR ), xProgressControl );
+ // FixedText make it automaticly visible by himself ... but not the progressbar !!!
+ // it must be set explicitly
+ Reference< XWindow > xProgressWindow( m_xProgressBar, UNO_QUERY );
+ xProgressWindow->setVisible( sal_True );
+ // Reset to defaults !!!
+ // (progressbar take automaticly its own defaults)
+ m_xText->setText( OUString::createFromAscii( DEFAULT_TEXT ) );
+
+ --m_refCount ;
+}
+
+StatusIndicator::~StatusIndicator()
+{
+ // Release all references
+ m_xText = Reference< XFixedText >();
+ m_xProgressBar = Reference< XProgressBar >();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL StatusIndicator::queryInterface( const Type& rType ) throw( RuntimeException )
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+ Any aReturn ;
+ Reference< XInterface > xDel = BaseContainerControl::impl_getDelegator();
+ if ( xDel.is() )
+ {
+ // If an delegator exist, forward question to his queryInterface.
+ // Delegator will ask his own queryAggregation!
+ aReturn = xDel->queryInterface( rType );
+ }
+ else
+ {
+ // If an delegator unknown, forward question to own queryAggregation.
+ aReturn = queryAggregation( rType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::acquire() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::acquire();
+}
+
+//____________________________________________________________________________________________________________
+// XInterface
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::release() throw()
+{
+ // Attention:
+ // Don't use mutex or guard in this method!!! Is a method of XInterface.
+
+ // Forward to baseclass
+ BaseControl::release();
+}
+
+//____________________________________________________________________________________________________________
+// XTypeProvider
+//____________________________________________________________________________________________________________
+
+Sequence< Type > SAL_CALL StatusIndicator::getTypes() throw( RuntimeException )
+{
+ // Optimize this method !
+ // We initialize a static variable only one time. And we don't must use a mutex at every call!
+ // For the first call; pTypeCollection is NULL - for the second call pTypeCollection is different from NULL!
+ static OTypeCollection* pTypeCollection = NULL ;
+
+ if ( pTypeCollection == NULL )
+ {
+ // Ready for multithreading; get global mutex for first call of this method only! see before
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+
+ // Control these pointer again ... it can be, that another instance will be faster then these!
+ if ( pTypeCollection == NULL )
+ {
+ // Create a static typecollection ...
+ static OTypeCollection aTypeCollection ( ::getCppuType(( const Reference< XLayoutConstrains >*)NULL ) ,
+ ::getCppuType(( const Reference< XStatusIndicator >*)NULL ) ,
+ BaseContainerControl::getTypes()
+ );
+ // ... and set his address to static pointer!
+ pTypeCollection = &aTypeCollection ;
+ }
+ }
+
+ return pTypeCollection->getTypes();
+}
+
+//____________________________________________________________________________________________________________
+// XAggregation
+//____________________________________________________________________________________________________________
+
+Any SAL_CALL StatusIndicator::queryAggregation( const Type& aType ) throw( RuntimeException )
+{
+ // Ask for my own supported interfaces ...
+ // Attention: XTypeProvider and XInterface are supported by OComponentHelper!
+ Any aReturn ( ::cppu::queryInterface( aType ,
+ static_cast< XLayoutConstrains* > ( this ) ,
+ static_cast< XStatusIndicator* > ( this )
+ )
+ );
+
+ // If searched interface not supported by this class ...
+ if ( aReturn.hasValue() == sal_False )
+ {
+ // ... ask baseclasses.
+ aReturn = BaseControl::queryAggregation( aType );
+ }
+
+ return aReturn ;
+}
+
+//____________________________________________________________________________________________________________
+// XStatusIndicator
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::start( const OUString& sText, sal_Int32 nRange ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Initialize status controls with given values.
+ m_xText->setText( sText );
+ m_xProgressBar->setRange( 0, nRange );
+ // force repaint ... fixedtext has changed !
+ impl_recalcLayout ( WindowEvent(static_cast< OWeakObject* >(this),0,0,impl_getWidth(),impl_getHeight(),0,0,0,0) ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XStatusIndicator
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::end() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Clear values of status controls.
+ m_xText->setText( OUString() );
+ m_xProgressBar->setValue( 0 );
+ setVisible( sal_False );
+}
+
+//____________________________________________________________________________________________________________
+// XStatusIndicator
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::setText( const OUString& sText ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Take text on right control
+ m_xText->setText( sText );
+}
+
+//____________________________________________________________________________________________________________
+// XStatusIndicator
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::setValue( sal_Int32 nValue ) throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Take value on right control
+ m_xProgressBar->setValue( nValue );
+}
+
+//____________________________________________________________________________________________________________
+// XStatusIndicator
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::reset() throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard( m_aMutex );
+
+ // Clear values of status controls.
+ // (Don't hide the window! User will reset current values ... but he will not finish using of indicator!)
+ m_xText->setText( OUString() );
+ m_xProgressBar->setValue( 0 );
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL StatusIndicator::getMinimumSize () throw( RuntimeException )
+{
+ return Size (DEFAULT_WIDTH, DEFAULT_HEIGHT) ;
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL StatusIndicator::getPreferredSize () throw( RuntimeException )
+{
+ // Ready for multithreading
+ ClearableMutexGuard aGuard ( m_aMutex ) ;
+
+ // get information about required place of child controls
+ Reference< XLayoutConstrains > xTextLayout ( m_xText, UNO_QUERY );
+ Size aTextSize = xTextLayout->getPreferredSize();
+
+ aGuard.clear () ;
+
+ // calc preferred size of status indicator
+ sal_Int32 nWidth = impl_getWidth() ;
+ sal_Int32 nHeight = (2*FREEBORDER)+aTextSize.Height ;
+
+ // norm to minimum
+ if ( nWidth<DEFAULT_WIDTH )
+ {
+ nWidth = DEFAULT_WIDTH ;
+ }
+ if ( nHeight<DEFAULT_HEIGHT )
+ {
+ nHeight = DEFAULT_HEIGHT ;
+ }
+
+ // return to caller
+ return Size ( nWidth, nHeight ) ;
+}
+
+//____________________________________________________________________________________________________________
+// XLayoutConstrains
+//____________________________________________________________________________________________________________
+
+Size SAL_CALL StatusIndicator::calcAdjustedSize ( const Size& /*rNewSize*/ ) throw( RuntimeException )
+{
+ return getPreferredSize () ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::createPeer ( const Reference< XToolkit > & rToolkit, const Reference< XWindowPeer > & rParent ) throw( RuntimeException )
+{
+ if( getPeer().is() == sal_False )
+ {
+ BaseContainerControl::createPeer( rToolkit, rParent );
+
+ // If user forget to call "setPosSize()", we have still a correct size.
+ // And a "MinimumSize" IS A "MinimumSize"!
+ // We change not the position of control at this point.
+ Size aDefaultSize = getMinimumSize () ;
+ setPosSize ( 0, 0, aDefaultSize.Width, aDefaultSize.Height, PosSize::SIZE ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+sal_Bool SAL_CALL StatusIndicator::setModel ( const Reference< XControlModel > & /*rModel*/ ) throw( RuntimeException )
+{
+ // We have no model.
+ return sal_False ;
+}
+
+//____________________________________________________________________________________________________________
+// XControl
+//____________________________________________________________________________________________________________
+
+Reference< XControlModel > SAL_CALL StatusIndicator::getModel () throw( RuntimeException )
+{
+ // We have no model.
+ // return (XControlModel*)this ;
+ return Reference< XControlModel > () ;
+}
+
+//____________________________________________________________________________________________________________
+// XComponent
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::dispose () throw( RuntimeException )
+{
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // "removeControl()" control the state of a reference
+ Reference< XControl > xTextControl ( m_xText , UNO_QUERY );
+ Reference< XControl > xProgressControl ( m_xProgressBar, UNO_QUERY );
+
+ removeControl( xTextControl );
+ removeControl( xProgressControl );
+
+ // do'nt use "...->clear ()" or "... = XFixedText ()"
+ // when other hold a reference at this object !!!
+ xTextControl->dispose();
+ xProgressControl->dispose();
+ BaseContainerControl::dispose();
+}
+
+//____________________________________________________________________________________________________________
+// XWindow
+//____________________________________________________________________________________________________________
+
+void SAL_CALL StatusIndicator::setPosSize ( sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight, sal_Int16 nFlags ) throw( RuntimeException )
+{
+ Rectangle aBasePosSize = getPosSize () ;
+ BaseContainerControl::setPosSize (nX, nY, nWidth, nHeight, nFlags) ;
+
+ // if position or size changed
+ if (
+ ( nWidth != aBasePosSize.Width ) ||
+ ( nHeight != aBasePosSize.Height)
+ )
+ {
+ // calc new layout for controls
+ impl_recalcLayout ( WindowEvent(static_cast< OWeakObject* >(this),0,0,nWidth,nHeight,0,0,0,0) ) ;
+ // clear background (!)
+ // [Childs was repainted in "recalcLayout" by setPosSize() automaticly!]
+ getPeer()->invalidate(2);
+ // and repaint the control
+ impl_paint ( 0, 0, impl_getGraphicsPeer() ) ;
+ }
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const Sequence< OUString > StatusIndicator::impl_getStaticSupportedServiceNames()
+{
+ MutexGuard aGuard( Mutex::getGlobalMutex() );
+ Sequence< OUString > seqServiceNames( 1 );
+ seqServiceNames.getArray() [0] = OUString::createFromAscii( SERVICENAME_STATUSINDICATOR );
+ return seqServiceNames ;
+}
+
+//____________________________________________________________________________________________________________
+// impl but public method to register service
+//____________________________________________________________________________________________________________
+
+const OUString StatusIndicator::impl_getStaticImplementationName()
+{
+ return OUString::createFromAscii( IMPLEMENTATIONNAME_STATUSINDICATOR );
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+WindowDescriptor* StatusIndicator::impl_getWindowDescriptor( const Reference< XWindowPeer >& xParentPeer )
+{
+ // - used from "createPeer()" to set the values of an ::com::sun::star::awt::WindowDescriptor !!!
+ // - if you will change the descriptor-values, you must override this virtuell function
+ // - the caller must release the memory for this dynamical descriptor !!!
+
+ WindowDescriptor* pDescriptor = new WindowDescriptor ;
+
+ pDescriptor->Type = WindowClass_SIMPLE ;
+ pDescriptor->WindowServiceName = OUString::createFromAscii( "floatingwindow" ) ;
+ pDescriptor->ParentIndex = -1 ;
+ pDescriptor->Parent = xParentPeer ;
+ pDescriptor->Bounds = getPosSize () ;
+
+ return pDescriptor ;
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void StatusIndicator::impl_paint ( sal_Int32 nX, sal_Int32 nY, const Reference< XGraphics > & rGraphics )
+{
+ // This paint method ist not buffered !!
+ // Every request paint the completely control. ( but only, if peer exist )
+ if ( rGraphics.is () )
+ {
+ MutexGuard aGuard (m_aMutex) ;
+
+ // background = gray
+ Reference< XWindowPeer > xPeer( impl_getPeerWindow(), UNO_QUERY );
+ if( xPeer.is() == sal_True )
+ xPeer->setBackground( BACKGROUNDCOLOR );
+
+ // FixedText background = gray
+ Reference< XControl > xTextControl( m_xText, UNO_QUERY );
+ xPeer = xTextControl->getPeer();
+ if( xPeer.is() == sal_True )
+ xPeer->setBackground( BACKGROUNDCOLOR );
+
+ // Progress background = gray
+ xPeer = Reference< XWindowPeer >( m_xProgressBar, UNO_QUERY );
+ if( xPeer.is() == sal_True )
+ xPeer->setBackground( BACKGROUNDCOLOR );
+
+ // paint shadow border
+ rGraphics->setLineColor ( LINECOLOR_BRIGHT );
+ rGraphics->drawLine ( nX, nY, impl_getWidth(), nY );
+ rGraphics->drawLine ( nX, nY, nX , impl_getHeight() );
+
+ rGraphics->setLineColor ( LINECOLOR_SHADOW );
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, impl_getWidth()-1, nY );
+ rGraphics->drawLine ( impl_getWidth()-1, impl_getHeight()-1, nX , impl_getHeight()-1 );
+ }
+}
+
+//____________________________________________________________________________________________________________
+// protected method
+//____________________________________________________________________________________________________________
+
+void StatusIndicator::impl_recalcLayout ( const WindowEvent& aEvent )
+{
+ sal_Int32 nX_ProgressBar ;
+ sal_Int32 nY_ProgressBar ;
+ sal_Int32 nWidth_ProgressBar ;
+ sal_Int32 nHeight_ProgressBar ;
+ sal_Int32 nX_Text ;
+ sal_Int32 nY_Text ;
+ sal_Int32 nWidth_Text ;
+ sal_Int32 nHeight_Text ;
+
+ // Ready for multithreading
+ MutexGuard aGuard ( m_aMutex ) ;
+
+ // get information about required place of child controls
+ Size aWindowSize ( aEvent.Width, aEvent.Height );
+ Reference< XLayoutConstrains > xTextLayout ( m_xText, UNO_QUERY );
+ Size aTextSize = xTextLayout->getPreferredSize();
+
+ if( aWindowSize.Width < DEFAULT_WIDTH )
+ {
+ aWindowSize.Width = DEFAULT_WIDTH;
+ }
+ if( aWindowSize.Height < DEFAULT_HEIGHT )
+ {
+ aWindowSize.Height = DEFAULT_HEIGHT;
+ }
+
+ // calc position and size of child controls
+ nX_Text = FREEBORDER ;
+ nY_Text = FREEBORDER ;
+ nWidth_Text = aTextSize.Width ;
+ nHeight_Text = aTextSize.Height ;
+
+ nX_ProgressBar = nX_Text+nWidth_Text+FREEBORDER ;
+ nY_ProgressBar = nY_Text ;
+ nWidth_ProgressBar = aWindowSize.Width-nWidth_Text-(3*FREEBORDER) ;
+ nHeight_ProgressBar = nHeight_Text ;
+
+ // Set new position and size on all controls
+ Reference< XWindow > xTextWindow ( m_xText , UNO_QUERY );
+ Reference< XWindow > xProgressWindow ( m_xProgressBar, UNO_QUERY );
+
+ xTextWindow->setPosSize ( nX_Text , nY_Text , nWidth_Text , nHeight_Text , 15 ) ;
+ xProgressWindow->setPosSize ( nX_ProgressBar, nY_ProgressBar, nWidth_ProgressBar, nHeight_ProgressBar , 15 ) ;
+}
+
+//____________________________________________________________________________________________________________
+// debug methods
+//____________________________________________________________________________________________________________
+
+#if OSL_DEBUG_LEVEL > 1
+
+#endif // #if OSL_DEBUG_LEVEL > 1
+
+} // namespace unocontrols
diff --git a/UnoControls/source/inc/OConnectionPointContainerHelper.hxx b/UnoControls/source/inc/OConnectionPointContainerHelper.hxx
new file mode 100644
index 000000000000..92e7e7df0fe2
--- /dev/null
+++ b/UnoControls/source/inc/OConnectionPointContainerHelper.hxx
@@ -0,0 +1,262 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _OCONNECTIONPOINTCONTAINERHELPER_HXX
+#define _OCONNECTIONPOINTCONTAINERHELPER_HXX
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XConnectionPointContainer.hpp>
+#include <com/sun/star/lang/XConnectionPoint.hpp>
+#include <cppuhelper/weak.hxx>
+#include <cppuhelper/propshlp.hxx>
+
+//______________________________________________________________________________________________________________
+// includes of my own project
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_XCONNECTIONPOINTCONTAINER ::com::sun::star::lang::XConnectionPointContainer
+#define UNO3_XCONNECTIONPOINT ::com::sun::star::lang::XConnectionPoint
+#define UNO3_MUTEX ::osl::Mutex
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_XINTERFACE ::com::sun::star::uno::XInterface
+#define UNO3_OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
+#define UNO3_LISTENEREXISTEXCEPTION ::com::sun::star::lang::ListenerExistException
+#define UNO3_INVALIDLISTENEREXCEPTION ::com::sun::star::lang::InvalidListenerException
+#define UNO3_WEAKREFERENCE ::com::sun::star::uno::WeakReference
+#define UNO3_OWEAKOBJECT ::cppu::OWeakObject
+
+//______________________________________________________________________________________________________________
+// defines
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// class declaration OConnectionPointContainerHelper
+//______________________________________________________________________________________________________________
+
+class OConnectionPointContainerHelper : public UNO3_XCONNECTIONPOINTCONTAINER
+ , public UNO3_OWEAKOBJECT
+{
+
+//______________________________________________________________________________________________________________
+// public methods
+//______________________________________________________________________________________________________________
+
+public:
+
+ //__________________________________________________________________________________________________________
+ // construct/destruct
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ OConnectionPointContainerHelper( UNO3_MUTEX& aMutex );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~OConnectionPointContainerHelper();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //__________________________________________________________________________________________________________
+ // XConnectionPointContainer
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getConnectionPointTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONNECTIONPOINT > SAL_CALL queryConnectionPoint( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL advise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL unadvise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ UNO3_OMULTITYPEINTERFACECONTAINERHELPER& impl_getMultiTypeContainer();
+
+//______________________________________________________________________________________________________________
+// private variables
+//______________________________________________________________________________________________________________
+
+private:
+
+ UNO3_MUTEX& m_aSharedMutex ;
+ UNO3_OMULTITYPEINTERFACECONTAINERHELPER m_aMultiTypeContainer ; // Container to hold listener
+
+}; // class OConnectionPointContainerHelper
+
+} // namespace unocontrols
+
+#endif // #ifndef _OCONNECTIONPOINTCONTAINERHELPER_HXX
diff --git a/UnoControls/source/inc/OConnectionPointHelper.hxx b/UnoControls/source/inc/OConnectionPointHelper.hxx
new file mode 100644
index 000000000000..0856db8027f4
--- /dev/null
+++ b/UnoControls/source/inc/OConnectionPointHelper.hxx
@@ -0,0 +1,306 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _OCONNECTIONPOINTHELPER_HXX
+#define _OCONNECTIONPOINTHELPER_HXX
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XConnectionPointContainer.hpp>
+#include <com/sun/star/lang/XConnectionPoint.hpp>
+#include <cppuhelper/weak.hxx>
+#include <cppuhelper/propshlp.hxx>
+
+//______________________________________________________________________________________________________________
+// includes of my own project
+//______________________________________________________________________________________________________________
+#include "OConnectionPointContainerHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_XCONNECTIONPOINTCONTAINER ::com::sun::star::lang::XConnectionPointContainer
+#define UNO3_XCONNECTIONPOINT ::com::sun::star::lang::XConnectionPoint
+#define UNO3_MUTEX ::osl::Mutex
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_XINTERFACE ::com::sun::star::uno::XInterface
+#define UNO3_OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
+#define UNO3_LISTENEREXISTEXCEPTION ::com::sun::star::lang::ListenerExistException
+#define UNO3_INVALIDLISTENEREXCEPTION ::com::sun::star::lang::InvalidListenerException
+#define UNO3_WEAKREFERENCE ::com::sun::star::uno::WeakReference
+#define UNO3_OWEAKOBJECT ::cppu::OWeakObject
+#define UNO3_OCONNECTIONPOINTCONTAINERHELPER OConnectionPointContainerHelper
+
+//______________________________________________________________________________________________________________
+// defines
+//______________________________________________________________________________________________________________
+
+//______________________________________________________________________________________________________________
+// class declaration OConnectionPointHelper
+//______________________________________________________________________________________________________________
+
+class OConnectionPointHelper : public UNO3_XCONNECTIONPOINT
+ , public UNO3_OWEAKOBJECT
+{
+
+//______________________________________________________________________________________________________________
+// public methods
+//______________________________________________________________________________________________________________
+
+public:
+
+ //__________________________________________________________________________________________________________
+ // construct/destruct
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ OConnectionPointHelper( UNO3_MUTEX& aMutex ,
+ UNO3_OCONNECTIONPOINTCONTAINERHELPER* pContainerImplementation ,
+ UNO3_TYPE aType );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~OConnectionPointHelper();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //__________________________________________________________________________________________________________
+ // XConnectionPoint
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_TYPE SAL_CALL getConnectionType() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONNECTIONPOINTCONTAINER > SAL_CALL getConnectionPointContainer() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL advise( const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_LISTENEREXISTEXCEPTION ,
+ UNO3_INVALIDLISTENEREXCEPTION ,
+ UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL unadvise( const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_REFERENCE< UNO3_XINTERFACE > > SAL_CALL getConnections() throw( UNO3_RUNTIMEEXCEPTION );
+
+//______________________________________________________________________________________________________________
+// private methods
+//______________________________________________________________________________________________________________
+
+private:
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ sal_Bool impl_LockContainer();
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_UnlockContainer();
+
+//______________________________________________________________________________________________________________
+// private variables
+//______________________________________________________________________________________________________________
+
+private:
+
+ UNO3_MUTEX& m_aSharedMutex ;
+ UNO3_WEAKREFERENCE< UNO3_XCONNECTIONPOINTCONTAINER > m_oContainerWeakReference ; // Reference to container-class!. Don't use Reference<...>
+ // It is a ring-reference => and must be a wekreference!
+ UNO3_OCONNECTIONPOINTCONTAINERHELPER* m_pContainerImplementation ;
+ UNO3_TYPE m_aInterfaceType ;
+ UNO3_REFERENCE< UNO3_XINTERFACE > m_xLock ;
+
+}; // class OConnectionPointHelper
+
+} // namespace unocontrols
+
+#endif // #ifndef _OCONNECTIONPOINTHELPER_HXX
diff --git a/UnoControls/source/inc/framecontrol.hxx b/UnoControls/source/inc/framecontrol.hxx
new file mode 100644
index 000000000000..4ec2683e1ba6
--- /dev/null
+++ b/UnoControls/source/inc/framecontrol.hxx
@@ -0,0 +1,624 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_FRAMECONTROL_CTRL_HXX
+#define _UNOCONTROLS_FRAMECONTROL_CTRL_HXX
+
+//______________________________________________________________________________________________________________
+// includes of other projects
+//______________________________________________________________________________________________________________
+
+#include <com/sun/star/frame/XFrameActionListener.hpp>
+#include <com/sun/star/frame/XComponentLoader.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/FrameActionEvent.hpp>
+#include <com/sun/star/frame/FrameAction.hpp>
+#include <com/sun/star/lang/XServiceName.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XConnectionPointContainer.hpp>
+#include <cppuhelper/propshlp.hxx>
+
+//______________________________________________________________________________________________________________
+// includes of my own project
+//______________________________________________________________________________________________________________
+#include "basecontrol.hxx"
+#include "OConnectionPointContainerHelper.hxx"
+
+//______________________________________________________________________________________________________________
+// namespaces
+//______________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_ILLEGALARGUMENTEXCEPTION ::com::sun::star::lang::IllegalArgumentException
+#define UNO3_IPROPERTYARRAYHELPER ::cppu::IPropertyArrayHelper
+#define UNO3_OBROADCASTHELPER ::cppu::OBroadcastHelper
+#define UNO3_OCONNECTIONPOINTCONTAINERHELPER OConnectionPointContainerHelper
+#define UNO3_OMULTITYPEINTERFACECONTAINERHELPER ::cppu::OMultiTypeInterfaceContainerHelper
+#define UNO3_OPROPERTYSETHELPER ::cppu::OPropertySetHelper
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_PROPERTY ::com::sun::star::beans::Property
+#define UNO3_PROPERTYVALUE ::com::sun::star::beans::PropertyValue
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_WINDOWDESCRIPTOR ::com::sun::star::awt::WindowDescriptor
+#define UNO3_XCONNECTIONPOINT ::com::sun::star::lang::XConnectionPoint
+#define UNO3_XCONNECTIONPOINTCONTAINER ::com::sun::star::lang::XConnectionPointContainer
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XFRAME ::com::sun::star::frame::XFrame
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_XINTERFACE ::com::sun::star::uno::XInterface
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_XPROPERTYSETINFO ::com::sun::star::beans::XPropertySetInfo
+#define UNO3_XTOOLKIT ::com::sun::star::awt::XToolkit
+#define UNO3_XWINDOWPEER ::com::sun::star::awt::XWindowPeer
+
+//______________________________________________________________________________________________________________
+// defines
+//______________________________________________________________________________________________________________
+
+#define SERVICENAME_FRAMECONTROL "com.sun.star.frame.FrameControl"
+#define IMPLEMENTATIONNAME_FRAMECONTROL "stardiv.UnoControls.FrameControl"
+#define PROPERTYNAME_LOADERARGUMENTS "LoaderArguments"
+#define PROPERTYNAME_COMPONENTURL "ComponentURL"
+#define PROPERTYNAME_FRAME "Frame"
+#define ERRORTEXT_VOSENSHURE "This is an invalid property handle."
+#define PROPERTY_COUNT 3 // you must count the propertys
+#define PROPERTYHANDLE_COMPONENTURL 0 // Id must be the index into the array
+#define PROPERTYHANDLE_FRAME 1
+#define PROPERTYHANDLE_LOADERARGUMENTS 2
+
+//______________________________________________________________________________________________________________
+// class
+//______________________________________________________________________________________________________________
+
+class FrameControl : public UNO3_XCONTROLMODEL
+ , public UNO3_XCONNECTIONPOINTCONTAINER
+ , public BaseControl // This order is neccessary for right initialization of m_aMutex!
+ , public UNO3_OBROADCASTHELPER
+ , public UNO3_OPROPERTYSETHELPER
+{
+
+//______________________________________________________________________________________________________________
+// public methods
+//______________________________________________________________________________________________________________
+
+public:
+
+ //__________________________________________________________________________________________________________
+ // construct/destruct
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ FrameControl( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~FrameControl();
+
+ //__________________________________________________________________________________________________________
+ // XInterface
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //__________________________________________________________________________________________________________
+ // XTypeProvider
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XAggregation
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XControl
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit ,
+ const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XComponent
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XView
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual sal_Bool SAL_CALL setGraphics( const UNO3_REFERENCE< UNO3_XGRAPHICS >& xDevice ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XGRAPHICS > SAL_CALL getGraphics() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XConnectionPointContainer
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getConnectionPointTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONNECTIONPOINT > SAL_CALL queryConnectionPoint( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL advise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL unadvise( const UNO3_TYPE& aType ,
+ const UNO3_REFERENCE< UNO3_XINTERFACE >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // impl but public methods to register service!
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ static const UNO3_OUSTRING impl_getStaticImplementationName();
+
+//______________________________________________________________________________________________________________
+// protected methods
+//______________________________________________________________________________________________________________
+
+protected:
+ using OPropertySetHelper::getFastPropertyValue;
+ //__________________________________________________________________________________________________________
+ // OPropertySetHelper
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual sal_Bool SAL_CALL convertFastPropertyValue( UNO3_ANY& rConvertedValue ,
+ UNO3_ANY& rOldValue ,
+ sal_Int32 nHandle ,
+ const UNO3_ANY& rValue ) throw( UNO3_ILLEGALARGUMENTEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle ,
+ const UNO3_ANY& rValue ) throw ( ::com::sun::star::uno::Exception );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL getFastPropertyValue( UNO3_ANY& rValue ,
+ sal_Int32 nHandle ) const ;
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_IPROPERTYARRAYHELPER& SAL_CALL getInfoHelper();
+
+ //__________________________________________________________________________________________________________
+ // XPropertySet
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ UNO3_REFERENCE< UNO3_XPROPERTYSETINFO > SAL_CALL getPropertySetInfo() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // BaseControl
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
+
+//______________________________________________________________________________________________________________
+// private methods
+//______________________________________________________________________________________________________________
+
+private:
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_createFrame( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xPeer ,
+ const UNO3_OUSTRING& sURL ,
+ const UNO3_SEQUENCE< UNO3_PROPERTYVALUE >& seqArguments );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_deleteFrame();
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ static const UNO3_SEQUENCE< UNO3_PROPERTY > impl_getStaticPropertyDescriptor();
+
+
+//______________________________________________________________________________________________________________
+// private variables
+//______________________________________________________________________________________________________________
+
+private:
+
+ UNO3_REFERENCE< UNO3_XFRAME > m_xFrame ;
+ UNO3_OUSTRING m_sComponentURL ;
+ UNO3_SEQUENCE< UNO3_PROPERTYVALUE > m_seqLoaderArguments ;
+ UNO3_OMULTITYPEINTERFACECONTAINERHELPER m_aInterfaceContainer ;
+ UNO3_OCONNECTIONPOINTCONTAINERHELPER m_aConnectionPointContainer ;
+
+}; // class FrameControl
+
+} // namespace unocontrols
+
+#endif // #ifndef _UNOCONTROLS_FRAMECONTROL_CTRL_HXX
diff --git a/UnoControls/source/inc/progressbar.hxx b/UnoControls/source/inc/progressbar.hxx
new file mode 100644
index 000000000000..743d0568f879
--- /dev/null
+++ b/UnoControls/source/inc/progressbar.hxx
@@ -0,0 +1,445 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
+#define _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/lang/XServiceName.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+#include "basecontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// namespaces
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XPROGRESSBAR ::com::sun::star::awt::XProgressBar
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_SIZE ::com::sun::star::awt::Size
+
+//____________________________________________________________________________________________________________
+// defines
+//____________________________________________________________________________________________________________
+
+#define SERVICENAME_PROGRESSBAR "com.sun.star.awt.XProgressBar"
+#define IMPLEMENTATIONNAME_PROGRESSBAR "stardiv.UnoControls.ProgressBar"
+#define FREESPACE 4
+#define DEFAULT_HORIZONTAL sal_True
+#define DEFAULT_BLOCKDIMENSION Size(1,1)
+#define DEFAULT_BACKGROUNDCOLOR TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 ) // lightgray
+#define DEFAULT_FOREGROUNDCOLOR TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x80 ) // blue
+#define DEFAULT_MINRANGE INT_MIN
+#define DEFAULT_MAXRANGE INT_MAX
+#define DEFAULT_BLOCKVALUE 1
+#define DEFAULT_VALUE DEFAULT_MINRANGE
+#define LINECOLOR_BRIGHT TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF ) // white
+#define LINECOLOR_SHADOW TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 ) // black
+
+//____________________________________________________________________________________________________________
+// classes
+//____________________________________________________________________________________________________________
+
+class ProgressBar : public UNO3_XCONTROLMODEL
+ , public UNO3_XPROGRESSBAR
+ , public BaseControl
+{
+
+//____________________________________________________________________________________________________________
+// public methods
+//____________________________________________________________________________________________________________
+
+public:
+
+ //________________________________________________________________________________________________________
+ // construct/destruct
+ //________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ ProgressBar( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~ProgressBar();
+
+ //__________________________________________________________________________________________________________
+ // XInterface
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //__________________________________________________________________________________________________________
+ // XTypeProvider
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XAggregation
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XProgressBar
+ //________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setForegroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setBackgroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setValue( sal_Int32 nValue ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setRange( sal_Int32 nMin ,
+ sal_Int32 nMax ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual sal_Int32 SAL_CALL getValue() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XWindow
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void SAL_CALL setPosSize( sal_Int32 nX ,
+ sal_Int32 nY ,
+ sal_Int32 nWidth ,
+ sal_Int32 nHeight ,
+ sal_Int16 nFlags ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // XControl
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //__________________________________________________________________________________________________________
+ // BaseControl
+ //__________________________________________________________________________________________________________
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ static const UNO3_OUSTRING impl_getStaticImplementationName();
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual void impl_paint( sal_Int32 nX ,
+ sal_Int32 nY ,
+ const UNO3_REFERENCE< UNO3_XGRAPHICS >& xGraphics );
+
+ /**_________________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ void impl_recalcRange();
+
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ sal_Bool m_bHorizontal ; // orientation for steps [true=horizontal/false=vertikal]
+ UNO3_SIZE m_aBlockSize ; // width and height of a block [>=0,0]
+ sal_Int32 m_nForegroundColor ; // (alpha,r,g,b)
+ sal_Int32 m_nBackgroundColor ; // (alpha,r,g,b)
+ sal_Int32 m_nMinRange ; // lowest value = 0% [long, <_nMaxRange]
+ sal_Int32 m_nMaxRange ; // highest value = 100% [long, >_nMinRange]
+ double m_nBlockValue ; // value for one block [long, >0]
+ sal_Int32 m_nValue ; // value for progress [long]
+
+}; // class ProgressBar
+
+} // namespace unocontrols
+
+#endif // #ifndef _UNOCONTROLS_PROGRESSBAR_CTRL_HXX
diff --git a/UnoControls/source/inc/progressmonitor.hxx b/UnoControls/source/inc/progressmonitor.hxx
new file mode 100644
index 000000000000..dfb6a1ae9fb9
--- /dev/null
+++ b/UnoControls/source/inc/progressmonitor.hxx
@@ -0,0 +1,805 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_PROGRESSMONITOR_CTRL_HXX
+#define _UNOCONTROLS_PROGRESSMONITOR_CTRL_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XFileDialog.hpp>
+#include <com/sun/star/awt/XTextComponent.hpp>
+#include <com/sun/star/awt/XListBox.hpp>
+#include <com/sun/star/awt/XProgressMonitor.hpp>
+#include <com/sun/star/awt/TextAlign.hpp>
+#include <com/sun/star/awt/XScrollBar.hpp>
+#include <com/sun/star/awt/XVclContainerPeer.hpp>
+#include <com/sun/star/awt/XTabControllerModel.hpp>
+#include <com/sun/star/awt/XMessageBox.hpp>
+#include <com/sun/star/awt/XTextEditField.hpp>
+#include <com/sun/star/awt/Style.hpp>
+#include <com/sun/star/awt/XTimeField.hpp>
+#include <com/sun/star/awt/XVclWindowPeer.hpp>
+#include <com/sun/star/awt/XControlModel.hpp>
+#include <com/sun/star/awt/XSpinField.hpp>
+#include <com/sun/star/awt/XUnoControlContainer.hpp>
+#include <com/sun/star/awt/XTextLayoutConstrains.hpp>
+#include <com/sun/star/awt/XNumericField.hpp>
+#include <com/sun/star/awt/XButton.hpp>
+#include <com/sun/star/awt/XTextArea.hpp>
+#include <com/sun/star/awt/XImageButton.hpp>
+#include <com/sun/star/awt/XFixedText.hpp>
+#include <com/sun/star/awt/XControlContainer.hpp>
+#include <com/sun/star/awt/XDialog.hpp>
+#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+#include <com/sun/star/awt/XRadioButton.hpp>
+#include <com/sun/star/awt/XCurrencyField.hpp>
+#include <com/sun/star/awt/XPatternField.hpp>
+#include <com/sun/star/awt/VclWindowPeerAttribute.hpp>
+#include <com/sun/star/awt/XTabController.hpp>
+#include <com/sun/star/awt/XVclContainer.hpp>
+#include <com/sun/star/awt/XDateField.hpp>
+#include <com/sun/star/awt/XComboBox.hpp>
+#include <com/sun/star/awt/XControl.hpp>
+#include <com/sun/star/awt/XCheckBox.hpp>
+#include <com/sun/star/awt/MessageBoxCommand.hpp>
+#include <com/sun/star/awt/XLayoutConstrains.hpp>
+#include <com/sun/star/awt/XProgressBar.hpp>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+#include "basecontainercontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// namespace
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_RECTANGLE ::com::sun::star::awt::Rectangle
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_SIZE ::com::sun::star::awt::Size
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_XACTIONLISTENER ::com::sun::star::awt::XActionListener
+#define UNO3_XBUTTON ::com::sun::star::awt::XButton
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XFIXEDTEXT ::com::sun::star::awt::XFixedText
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_XLAYOUTCONSTRAINS ::com::sun::star::awt::XLayoutConstrains
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_XPROGRESSBAR ::com::sun::star::awt::XProgressBar
+#define UNO3_XPROGRESSMONITOR ::com::sun::star::awt::XProgressMonitor
+#define UNO3_XTOOLKIT ::com::sun::star::awt::XToolkit
+#define UNO3_XWINDOWPEER ::com::sun::star::awt::XWindowPeer
+
+//____________________________________________________________________________________________________________
+// defines
+//____________________________________________________________________________________________________________
+
+#define SERVICENAME_PROGRESSMONITOR "com.sun.star.awt.XProgressMonitor"
+#define IMPLEMENTATIONNAME_PROGRESSMONITOR "stardiv.UnoControls.ProgressMonitor"
+#define FREEBORDER 10 // border around and between the controls
+#define WIDTH_RELATION 4 // reserve 1/4 for button width and rest for progressbar width
+#define HEIGHT_RELATION 5 // reserve 1/5 for button and progressbar heigth and rest for text height
+#define FIXEDTEXT_SERVICENAME "com.sun.star.awt.UnoControlFixedText"
+#define BUTTON_SERVICENAME "com.sun.star.awt.UnoControlButton"
+#define FIXEDTEXT_MODELNAME "com.sun.star.awt.UnoControlFixedTextModel"
+#define BUTTON_MODELNAME "com.sun.star.awt.UnoControlButtonModel"
+#define CONTROLNAME_TEXT "Text" // identifier the control in container
+#define CONTROLNAME_BUTTON "Button" // -||-
+#define CONTROLNAME_PROGRESSBAR "ProgressBar" // -||-
+#define DEFAULT_BUTTONLABEL "Abbrechen"
+#define DEFAULT_TOPIC "\0"
+#define DEFAULT_TEXT "\0"
+#define BACKGROUNDCOLOR TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 ) // lighgray
+#define LINECOLOR_BRIGHT TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF ) // white
+#define LINECOLOR_SHADOW TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 ) // black
+#define HEIGHT_PROGRESSBAR 15
+// Overwrite defines from basecontrol.hxx!!!
+#undef DEFAULT_WIDTH
+#undef DEFAULT_HEIGHT
+#define DEFAULT_WIDTH 350
+#define DEFAULT_HEIGHT 100
+
+//____________________________________________________________________________________________________________
+// structs, types
+//____________________________________________________________________________________________________________
+
+/// Item of TextList
+struct IMPL_TextlistItem
+{
+ UNO3_OUSTRING sTopic ; /// Left site of textline in dialog
+ UNO3_OUSTRING sText ; /// Right site of textline in dialog
+};
+
+/// Define a list-class for struct IMPL_TextlistItem
+class IMPL_Textlist ;
+DECLARE_LIST( IMPL_Textlist, IMPL_TextlistItem* )
+
+//____________________________________________________________________________________________________________
+// class declaration
+//____________________________________________________________________________________________________________
+
+class ProgressMonitor : public UNO3_XLAYOUTCONSTRAINS
+ , public UNO3_XBUTTON
+ , public UNO3_XPROGRESSMONITOR
+ , public BaseContainerControl
+{
+
+//____________________________________________________________________________________________________________
+// public methods
+//____________________________________________________________________________________________________________
+
+public:
+
+ //________________________________________________________________________________________________________
+ // construct/destruct
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ ProgressMonitor( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~ProgressMonitor();
+
+ //________________________________________________________________________________________________________
+ // XInterface
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //________________________________________________________________________________________________________
+ // XTypeProvider
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short get information about supported interfaces
+ @descr -
+
+ @seealso XTypeProvider
+
+ @param -
+
+ @return Sequence of types of all supported interfaces
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XAggregation
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XProgressMonitor
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short add topic to dialog
+ @descr Add a topic with a text in right textlist (used for FixedText-member).<BR>
+ ( "beforeProgress" fix the right list ). The dialog metric is recalculated.
+
+ @seealso removeText(), updateText()
+
+ @param sTopic Name of topic<BR>
+ [sTopic != "" && sTopic != NULL]
+ @param sText Value of topic<BR>
+ [sText != "" && sText != NULL]
+ @param bbeforeProgress Position of topic<BR>
+ [True => before progressbar / False => below progressbar]
+
+ @return -
+
+ @onerror DEBUG = Assertion<BR>
+ RELEASE = nothing
+ */
+
+ virtual void SAL_CALL addText( const UNO3_OUSTRING& sTopic ,
+ const UNO3_OUSTRING& sText ,
+ sal_Bool bbeforeProgress ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeText( const UNO3_OUSTRING& sTopic ,
+ sal_Bool bbeforeProgress ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL updateText( const UNO3_OUSTRING& sTopic ,
+ const UNO3_OUSTRING& sText ,
+ sal_Bool bbeforeProgress ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XProgressBar
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setForegroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setBackgroundColor( sal_Int32 nColor ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setValue( sal_Int32 nValue ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setRange( sal_Int32 nMin ,
+ sal_Int32 nMax ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Int32 SAL_CALL getValue() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XButton
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addActionListener( const UNO3_REFERENCE< UNO3_XACTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeActionListener( const UNO3_REFERENCE< UNO3_XACTIONLISTENER >& xListener ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setLabel( const UNO3_OUSTRING& sLabel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setActionCommand( const UNO3_OUSTRING& sCommand ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XLayoutConstrains
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL getMinimumSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL getPreferredSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL calcAdjustedSize( const UNO3_SIZE& aNewSize ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XControl
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit ,
+ const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XComponent
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // XWindow
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setPosSize( sal_Int32 nX ,
+ sal_Int32 nY ,
+ sal_Int32 nWidth ,
+ sal_Int32 nHeight ,
+ sal_Int16 nFlags ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //________________________________________________________________________________________________________
+ // BaseControl
+ //________________________________________________________________________________________________________
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_OUSTRING impl_getStaticImplementationName();
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void impl_paint( sal_Int32 nX ,
+ sal_Int32 nY ,
+ const UNO3_REFERENCE< UNO3_XGRAPHICS >& xGraphics );
+
+//____________________________________________________________________________________________________________
+// private methods
+//____________________________________________________________________________________________________________
+
+private:
+ using BaseControl::impl_recalcLayout;
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_recalcLayout();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_rebuildFixedText();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void impl_cleanMemory();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ IMPL_TextlistItem* impl_searchTopic( const UNO3_OUSTRING& sTopic ,
+ sal_Bool bbeforeProgress );
+
+//____________________________________________________________________________________________________________
+// debug methods
+//____________________________________________________________________________________________________________
+
+private:
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ #ifdef DBG_UTIL
+
+ sal_Bool impl_debug_checkParameter( const UNO3_OUSTRING& sTopic, const UNO3_OUSTRING& sText, sal_Bool bbeforeProgress ); // addText, updateText
+ sal_Bool impl_debug_checkParameter( const UNO3_OUSTRING& rTopic, sal_Bool bbeforeProgress ); // removeText
+
+ #endif
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ IMPL_Textlist* m_pTextlist_Top ; // Elements before progress
+ UNO3_REFERENCE< UNO3_XFIXEDTEXT > m_xTopic_Top ; // (used, if parameter "beforeProgress"=sal_True in "addText, updateText, removeText")
+ UNO3_REFERENCE< UNO3_XFIXEDTEXT > m_xText_Top ;
+
+ IMPL_Textlist* m_pTextlist_Bottom ; // Elements below of progress
+ UNO3_REFERENCE< UNO3_XFIXEDTEXT > m_xTopic_Bottom ; // (used, if parameter "beforeProgress"=sal_False in "addText, updateText, removeText")
+ UNO3_REFERENCE< UNO3_XFIXEDTEXT > m_xText_Bottom ;
+
+ UNO3_REFERENCE< UNO3_XPROGRESSBAR > m_xProgressBar ;
+ UNO3_REFERENCE< UNO3_XBUTTON > m_xButton ;
+ UNO3_RECTANGLE m_a3DLine ;
+
+}; // class ProgressMonitor
+
+} // namespace unocontrols
+
+#endif // #ifndef _UNOCONTROLS_PROGRESSMONITOR_CTRL_HXX
diff --git a/UnoControls/source/inc/statusindicator.hxx b/UnoControls/source/inc/statusindicator.hxx
new file mode 100644
index 000000000000..3ea07a4e0d0b
--- /dev/null
+++ b/UnoControls/source/inc/statusindicator.hxx
@@ -0,0 +1,580 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _UNOCONTROLS_STATUSINDICATOR_CTRL_HXX
+#define _UNOCONTROLS_STATUSINDICATOR_CTRL_HXX
+
+//____________________________________________________________________________________________________________
+// includes of other projects
+//____________________________________________________________________________________________________________
+
+#include <com/sun/star/awt/XControlModel.hpp>
+#include <com/sun/star/awt/XFixedText.hpp>
+#include <com/sun/star/awt/XGraphics.hpp>
+#include <com/sun/star/awt/XLayoutConstrains.hpp>
+#include <com/sun/star/awt/XProgressBar.hpp>
+#include <com/sun/star/task/XStatusIndicator.hpp>
+#include <com/sun/star/awt/XToolkit.hpp>
+#include <com/sun/star/awt/XWindowPeer.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+
+//____________________________________________________________________________________________________________
+// includes of my own project
+//____________________________________________________________________________________________________________
+#include "basecontainercontrol.hxx"
+
+//____________________________________________________________________________________________________________
+// namespace
+//____________________________________________________________________________________________________________
+
+namespace unocontrols{
+
+#define UNO3_ANY ::com::sun::star::uno::Any
+#define UNO3_OUSTRING ::rtl::OUString
+#define UNO3_RECTANGLE ::com::sun::star::awt::Rectangle
+#define UNO3_REFERENCE ::com::sun::star::uno::Reference
+#define UNO3_RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNO3_SEQUENCE ::com::sun::star::uno::Sequence
+#define UNO3_SIZE ::com::sun::star::awt::Size
+#define UNO3_TYPE ::com::sun::star::uno::Type
+#define UNO3_XCONTROLMODEL ::com::sun::star::awt::XControlModel
+#define UNO3_XFIXEDTEXT ::com::sun::star::awt::XFixedText
+#define UNO3_XGRAPHICS ::com::sun::star::awt::XGraphics
+#define UNO3_XLAYOUTCONSTRAINS ::com::sun::star::awt::XLayoutConstrains
+#define UNO3_XMULTISERVICEFACTORY ::com::sun::star::lang::XMultiServiceFactory
+#define UNO3_XPROGRESSBAR ::com::sun::star::awt::XProgressBar
+#define UNO3_XSTATUSINDICATOR ::com::sun::star::task::XStatusIndicator
+#define UNO3_XTOOLKIT ::com::sun::star::awt::XToolkit
+#define UNO3_XWINDOWPEER ::com::sun::star::awt::XWindowPeer
+
+//____________________________________________________________________________________________________________
+// defines
+//____________________________________________________________________________________________________________
+
+#define SERVICENAME_STATUSINDICATOR "com.sun.star.task.XStatusIndicator"
+#define IMPLEMENTATIONNAME_STATUSINDICATOR "stardiv.UnoControls.StatusIndicator"
+#undef FREEBORDER
+#define FREEBORDER 5 // border around and between the controls
+#define FIXEDTEXT_SERVICENAME "com.sun.star.awt.UnoControlFixedText"
+#define FIXEDTEXT_MODELNAME "com.sun.star.awt.UnoControlFixedTextModel"
+#define CONTROLNAME_TEXT "Text" // identifier the control in container
+#define CONTROLNAME_PROGRESSBAR "ProgressBar" // -||-
+#define DEFAULT_TEXT "\0"
+#define BACKGROUNDCOLOR TRGB_COLORDATA( 0x00, 0xC0, 0xC0, 0xC0 ) // lighgray
+#define LINECOLOR_BRIGHT TRGB_COLORDATA( 0x00, 0xFF, 0xFF, 0xFF ) // white
+#define LINECOLOR_SHADOW TRGB_COLORDATA( 0x00, 0x00, 0x00, 0x00 ) // black
+// Overwrite defines from basecontrol.hxx!!!
+#undef DEFAULT_WIDTH
+#undef DEFAULT_HEIGHT
+#define DEFAULT_WIDTH 300
+#define DEFAULT_HEIGHT 25
+
+//____________________________________________________________________________________________________________
+// structs, types
+//____________________________________________________________________________________________________________
+
+//____________________________________________________________________________________________________________
+// class declaration
+//____________________________________________________________________________________________________________
+
+class StatusIndicator : public UNO3_XLAYOUTCONSTRAINS
+ , public UNO3_XSTATUSINDICATOR
+ , public BaseContainerControl
+{
+
+ //-------------------------------------------------------------------------------------------------------------
+ // public methods
+ //-------------------------------------------------------------------------------------------------------------
+
+ public:
+
+ //---------------------------------------------------------------------------------------------------------
+ // construct/destruct
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ StatusIndicator( const UNO3_REFERENCE< UNO3_XMULTISERVICEFACTORY >& xFactory );
+
+ /**_______________________________________________________________________________________________________
+ @short
+ @descr
+
+ @seealso
+
+ @param
+
+ @return
+
+ @onerror
+ */
+
+ virtual ~StatusIndicator();
+
+ //---------------------------------------------------------------------------------------------------------
+ // XInterface
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short give answer, if interface is supported
+ @descr The interfaces are searched by type.
+
+ @seealso XInterface
+
+ @param "rType" is the type of searched interface.
+
+ @return Any information about found interface
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_ANY SAL_CALL queryInterface( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short increment refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso release()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL acquire() throw();
+
+ /**_______________________________________________________________________________________________________
+ @short decrement refcount
+ @descr -
+
+ @seealso XInterface
+ @seealso acquire()
+
+ @param -
+
+ @return -
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual void SAL_CALL release() throw();
+
+ //---------------------------------------------------------------------------------------------------------
+ // XTypeProvider
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short get information about supported interfaces
+ @descr -
+
+ @seealso XTypeProvider
+
+ @param -
+
+ @return Sequence of types of all supported interfaces
+
+ @onerror A RuntimeException is thrown.
+ */
+
+ virtual UNO3_SEQUENCE< UNO3_TYPE > SAL_CALL getTypes() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XAggregation
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_ANY SAL_CALL queryAggregation( const UNO3_TYPE& aType ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XStatusIndicator
+ //---------------------------------------------------------------------------------------------------------
+
+ /*-****************************************************************************************************//**
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ *//*-*****************************************************************************************************/
+
+ virtual void SAL_CALL start( const UNO3_OUSTRING& sText ,
+ sal_Int32 nRange ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /*-****************************************************************************************************//**
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ *//*-*****************************************************************************************************/
+
+ virtual void SAL_CALL end() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /*-****************************************************************************************************//**
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ *//*-*****************************************************************************************************/
+
+ virtual void SAL_CALL reset() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /*-****************************************************************************************************//**
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ *//*-*****************************************************************************************************/
+
+ virtual void SAL_CALL setText( const UNO3_OUSTRING& sText ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /*-****************************************************************************************************//**
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ *//*-*****************************************************************************************************/
+
+ virtual void SAL_CALL setValue( sal_Int32 nValue ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XLayoutConstrains
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL getMinimumSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL getPreferredSize() throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_SIZE SAL_CALL calcAdjustedSize( const UNO3_SIZE& aNewSize ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XControl
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL createPeer( const UNO3_REFERENCE< UNO3_XTOOLKIT >& xToolkit ,
+ const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParent ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL setModel( const UNO3_REFERENCE< UNO3_XCONTROLMODEL >& xModel ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_REFERENCE< UNO3_XCONTROLMODEL > SAL_CALL getModel() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XComponent
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL dispose() throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // XWindow
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL setPosSize( sal_Int32 nX ,
+ sal_Int32 nY ,
+ sal_Int32 nWidth ,
+ sal_Int32 nHeight ,
+ sal_Int16 nFlags ) throw( UNO3_RUNTIMEEXCEPTION );
+
+ //---------------------------------------------------------------------------------------------------------
+ // BaseControl
+ //---------------------------------------------------------------------------------------------------------
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_SEQUENCE< UNO3_OUSTRING > impl_getStaticSupportedServiceNames();
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ static const UNO3_OUSTRING impl_getStaticImplementationName();
+
+//____________________________________________________________________________________________________________
+// protected methods
+//____________________________________________________________________________________________________________
+
+protected:
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual UNO3_WINDOWDESCRIPTOR* impl_getWindowDescriptor( const UNO3_REFERENCE< UNO3_XWINDOWPEER >& xParentPeer );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void impl_paint ( sal_Int32 nX, sal_Int32 nY, const UNO3_REFERENCE< UNO3_XGRAPHICS > & rGraphics );
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void impl_recalcLayout( const UNO3_WINDOWEVENT& aEvent );
+
+//____________________________________________________________________________________________________________
+// debug methods
+//____________________________________________________________________________________________________________
+
+private:
+
+ /**_______________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ #if OSL_DEBUG_LEVEL > 1
+
+ #endif
+
+//____________________________________________________________________________________________________________
+// private variables
+//____________________________________________________________________________________________________________
+
+private:
+
+ UNO3_REFERENCE< UNO3_XFIXEDTEXT > m_xText ;
+ UNO3_REFERENCE< UNO3_XPROGRESSBAR > m_xProgressBar ;
+
+}; // class StatusIndicator
+
+} // namespace unocontrols
+
+#endif // #ifndef _UNOCONTROLS_STATUSINDICATOR_CTRL_HXX
diff --git a/UnoControls/util/exports.map b/UnoControls/util/exports.map
new file mode 100644
index 000000000000..ba501f9ae076
--- /dev/null
+++ b/UnoControls/util/exports.map
@@ -0,0 +1,10 @@
+UDK_3_0_0 {
+ global:
+ GetVersionInfo;
+ component_getImplementationEnvironment;
+ component_getFactory;
+ component_writeInfo;
+
+ local:
+ *;
+};
diff --git a/UnoControls/util/makefile.mk b/UnoControls/util/makefile.mk
new file mode 100644
index 000000000000..5cd23262a481
--- /dev/null
+++ b/UnoControls/util/makefile.mk
@@ -0,0 +1,61 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..
+
+PRJNAME=UnoControls
+TARGET=ctl
+LIBTARGET=NO
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : $(PRJ)$/util$/makefile.pmk
+
+# --- Files --------------------------------------------------------
+
+LIB1TARGET= $(SLB)$/$(TARGET).lib
+LIB1FILES= $(SLB)$/base.lib \
+ $(SLB)$/controls.lib
+
+SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
+SHL1IMPLIB= i$(TARGET)
+
+SHL1VERSIONMAP=exports.map
+SHL1DEF=$(MISC)$/$(SHL1TARGET).def
+DEF1NAME=$(SHL1TARGET)
+
+SHL1STDLIBS= \
+ $(TOOLSLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(SALLIB)
+
+SHL1DEPN= makefile.mk
+SHL1LIBS= $(LIB1TARGET)
+
+# --- Targets ------------------------------------------------------
+.INCLUDE : target.mk
diff --git a/UnoControls/util/makefile.pmk b/UnoControls/util/makefile.pmk
new file mode 100644
index 000000000000..02a34a2434a1
--- /dev/null
+++ b/UnoControls/util/makefile.pmk
@@ -0,0 +1,27 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+.INCLUDE : settings.mk
diff --git a/UnoControls/util/target.pmk b/UnoControls/util/target.pmk
new file mode 100644
index 000000000000..c7c1de9c2563
--- /dev/null
+++ b/UnoControls/util/target.pmk
@@ -0,0 +1,35 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+ALLSLO: $(SLOFILES)
+
+SOSHL: $(SHL1TARGETN)
+
+WHOLEPRJ:
+ cd $(PRJ)$/prj
+ make debug linkinc prjpch compinc
+ @echo "READY"
+
diff --git a/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java b/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java
new file mode 100755
index 000000000000..454cd15154d4
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java
@@ -0,0 +1,250 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.accessibility;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XTopWindow;
+import com.sun.star.awt.XTopWindowListener;
+import com.sun.star.awt.XWindow;
+import com.sun.star.comp.loader.FactoryHelper;
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XInitialization;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XSingleServiceFactory;
+import com.sun.star.registry.*;
+import com.sun.star.uno.*;
+
+import org.openoffice.java.accessibility.*;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.accessibility.Accessible;
+
+
+public class AccessBridge {
+ //
+ protected static java.util.Hashtable topWindowMap = new java.util.Hashtable();
+
+ private static java.awt.Window getTopWindowImpl(XAccessible xAccessible) {
+ // Because it can not be garantied that
+ // WindowsAccessBridgeAdapter.registerTopWindow() is called
+ // before windowOpened(), we have to make this operation
+ // atomic.
+ synchronized (topWindowMap) {
+ String oid = UnoRuntime.generateOid(xAccessible);
+ java.awt.Window w = (java.awt.Window) topWindowMap.get(oid);
+
+ if (w == null) {
+ w = AccessibleObjectFactory.getTopWindow(xAccessible);
+
+ if (w != null) {
+ topWindowMap.put(oid, w);
+ }
+ }
+
+ return w;
+ }
+ }
+
+ protected static java.awt.Window getTopWindow(XAccessible xAccessible) {
+ if (xAccessible != null) {
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+
+ // Toolkit reports the VCL peer windows as toplevels. These have an
+ // accessible parent which represents the native frame window
+ switch(xAccessibleContext.getAccessibleRole()) {
+ case AccessibleRole.ROOT_PANE:
+ case AccessibleRole.POPUP_MENU:
+ return getTopWindow(xAccessibleContext.getAccessibleParent());
+
+ case AccessibleRole.WINDOW:
+ case AccessibleRole.FRAME:
+ case AccessibleRole.DIALOG:
+ case AccessibleRole.ALERT:
+ return getTopWindowImpl(xAccessible);
+
+ default:
+ break;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ protected static java.awt.Window removeTopWindow(XAccessible xAccessible) {
+ if (xAccessible != null) {
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+
+ // Toolkit reports the VCL peer windows as toplevels. These have an
+ // accessible parent which represents the native frame window
+ switch(xAccessibleContext.getAccessibleRole()) {
+ case AccessibleRole.ROOT_PANE:
+ case AccessibleRole.POPUP_MENU:
+ return removeTopWindow(xAccessibleContext.getAccessibleParent());
+
+ case AccessibleRole.WINDOW:
+ case AccessibleRole.FRAME:
+ case AccessibleRole.DIALOG:
+ return (java.awt.Window) topWindowMap.remove(UnoRuntime.generateOid(xAccessible));
+
+ default:
+ break;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ public static XSingleServiceFactory __getServiceFactory(String implName,
+ XMultiServiceFactory multiFactory, XRegistryKey regKey) {
+ XSingleServiceFactory xSingleServiceFactory = null;
+
+ if (implName.equals(AccessBridge.class.getName())) {
+ // Initialize toolkit to register at Java <-> Windows access bridge
+ java.awt.Toolkit tk = java.awt.Toolkit.getDefaultToolkit();
+
+ xSingleServiceFactory = FactoryHelper.getServiceFactory(_AccessBridge.class,
+ _AccessBridge._serviceName, multiFactory, regKey);
+ }
+
+ return xSingleServiceFactory;
+ }
+
+ public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
+ return FactoryHelper.writeRegistryServiceInfo(AccessBridge.class.getName(),
+ _AccessBridge._serviceName, regKey);
+ }
+
+ static public class _AccessBridge implements XTopWindowListener,
+ XInitialization, XComponent {
+ static final String _serviceName = "com.sun.star.accessibility.AccessBridge";
+ XComponentContext xComponentContext;
+
+ public _AccessBridge(XComponentContext xComponentContext) {
+ this.xComponentContext = xComponentContext;
+ }
+
+ /*
+ * XInitialization
+ */
+ public void initialize(java.lang.Object[] arguments) {
+ try {
+ // FIXME: Currently there is no way to determine if key event forwarding is needed or not,
+ // so we have to do it always ..
+ XExtendedToolkit unoToolkit = (XExtendedToolkit) AnyConverter.toObject(new Type(
+ XExtendedToolkit.class), arguments[0]);
+
+ if (unoToolkit != null) {
+ // FIXME this should be done in VCL
+ unoToolkit.addTopWindowListener(this);
+
+ String os = (String) System.getProperty("os.name");
+
+ // Try to initialize the WindowsAccessBridgeAdapter
+ if (os.startsWith("Windows")) {
+ WindowsAccessBridgeAdapter.attach(xComponentContext);
+ } else {
+ unoToolkit.addKeyHandler(new KeyHandler());
+ }
+ } else if (Build.DEBUG) {
+ System.err.println(
+ "argument 0 is not of type XExtendedToolkit.");
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ // FIXME: output
+ }
+ }
+
+ /*
+ * XTopWindowListener
+ */
+ public void windowOpened(com.sun.star.lang.EventObject event) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(XAccessible.class,
+ event.Source);
+ java.awt.Window w = getTopWindow(xAccessible);
+ }
+
+ public void windowActivated(com.sun.star.lang.EventObject event) {
+ }
+
+ public void windowDeactivated(com.sun.star.lang.EventObject event) {
+ }
+
+ public void windowMinimized(com.sun.star.lang.EventObject event) {
+ }
+
+ public void windowNormalized(com.sun.star.lang.EventObject event) {
+ }
+
+ public void windowClosing(com.sun.star.lang.EventObject event) {
+ }
+
+ public void windowClosed(com.sun.star.lang.EventObject event) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(XAccessible.class,
+ event.Source);
+
+ java.awt.Window w = removeTopWindow(xAccessible);
+
+ if (w != null) {
+ w.dispose();
+ }
+ }
+
+ public void disposing(com.sun.star.lang.EventObject event) {
+ }
+
+ /*
+ * XComponent
+ */
+
+ public void addEventListener(com.sun.star.lang.XEventListener listener) {
+ }
+
+ public void removeEventListener(com.sun.star.lang.XEventListener listener) {
+ }
+
+ public void dispose() {
+ try {
+ java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue().invokeAndWait(
+ new Runnable() {
+ public void run() {
+ }
+ } );
+ } catch (java.lang.InterruptedException e) {
+ } catch (java.lang.reflect.InvocationTargetException e) {
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/accessibility/KeyHandler.java b/accessibility/bridge/org/openoffice/accessibility/KeyHandler.java
new file mode 100755
index 000000000000..1e9f2f6520ae
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/KeyHandler.java
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+package org.openoffice.accessibility;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.awt.XKeyHandler;
+import org.openoffice.java.accessibility.AccessibleKeyBinding;
+import org.openoffice.java.accessibility.Build;
+
+import java.awt.*;
+import java.awt.event.KeyEvent;
+import javax.accessibility.*;
+
+public class KeyHandler extends Component implements XKeyHandler, java.awt.KeyEventDispatcher {
+ EventQueue eventQueue;
+
+ public class VCLKeyEvent extends KeyEvent implements Runnable {
+ boolean consumed = true;
+
+ public VCLKeyEvent(Component c, int id, int modifiers, int keyCode, char keyChar) {
+ super(c, id, System.currentTimeMillis(), modifiers, keyCode, keyChar);
+ }
+
+ public void run() {
+ // This is a no-op ..
+ }
+
+ public void setConsumed(boolean b) {
+ consumed = b;
+ }
+
+ public boolean isConsumed() {
+ return consumed;
+ }
+ }
+
+ public KeyHandler() {
+ eventQueue = Toolkit.getDefaultToolkit().getSystemEventQueue();
+ java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this);
+ }
+
+ /** This method is called by the current KeyboardFocusManager requesting that this KeyEventDispatcher
+ * dispatch the specified event on its behalf
+ */
+ public boolean dispatchKeyEvent(java.awt.event.KeyEvent e) {
+ if (e instanceof VCLKeyEvent) {
+ VCLKeyEvent event = (VCLKeyEvent) e;
+ event.setConsumed(false);
+ return true;
+ }
+ return false;
+ }
+
+ /** Handler for KeyPressed events */
+ public boolean keyPressed(com.sun.star.awt.KeyEvent event) {
+// try {
+ VCLKeyEvent vke = new VCLKeyEvent(this, KeyEvent.KEY_PRESSED,
+ AccessibleKeyBinding.convertModifiers(event.Modifiers),
+ AccessibleKeyBinding.convertKeyCode(event.KeyCode),
+ event.KeyChar != 0 ? event.KeyChar : KeyEvent.CHAR_UNDEFINED);
+
+ eventQueue.postEvent(vke);
+
+ // VCL events for TABs have empty KeyChar
+ if (event.KeyCode == com.sun.star.awt.Key.TAB ) {
+ event.KeyChar = '\t';
+ }
+
+ // Synthesize KEY_TYPED event to emulate Java behavior
+ if (event.KeyChar != 0) {
+ eventQueue.postEvent(new VCLKeyEvent(this,
+ KeyEvent.KEY_TYPED,
+ AccessibleKeyBinding.convertModifiers(event.Modifiers),
+ KeyEvent.VK_UNDEFINED,
+ event.KeyChar));
+ }
+
+ // Wait until the key event is processed
+ return false;
+// eventQueue.invokeAndWait(vke);
+// return vke.isConsumed();
+// } catch(java.lang.InterruptedException e) {
+// return false;
+// } catch(java.lang.reflect.InvocationTargetException e) {
+// return false;
+// }
+ }
+
+ /** Handler for KeyReleased events */
+ public boolean keyReleased(com.sun.star.awt.KeyEvent event) {
+// try {
+ VCLKeyEvent vke = new VCLKeyEvent(this, KeyEvent.KEY_RELEASED,
+ AccessibleKeyBinding.convertModifiers(event.Modifiers),
+ AccessibleKeyBinding.convertKeyCode(event.KeyCode),
+ event.KeyChar != 0 ? event.KeyChar : KeyEvent.CHAR_UNDEFINED);
+ eventQueue.postEvent(vke);
+
+ // Wait until the key event is processed
+ return false;
+// eventQueue.invokeAndWait(vke);
+// return vke.isConsumed();
+// } catch(java.lang.InterruptedException e) {
+// return false;
+// } catch(java.lang.reflect.InvocationTargetException e) {
+// return false;
+// }
+ }
+
+ public void disposing(com.sun.star.lang.EventObject event) {
+ java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(this);
+ }
+};
diff --git a/accessibility/bridge/org/openoffice/accessibility/PopupWindow.java b/accessibility/bridge/org/openoffice/accessibility/PopupWindow.java
new file mode 100644
index 000000000000..a63b0589b4fa
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/PopupWindow.java
@@ -0,0 +1,210 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.accessibility;
+
+import org.openoffice.java.accessibility.*;
+
+
+/**
+ *
+ */
+public class PopupWindow extends java.awt.Window {
+ javax.accessibility.AccessibleContext accessibleContext = null;
+ ContainerProxy layeredPane = new ContainerProxy(javax.accessibility.AccessibleRole.LAYERED_PANE);
+ ContainerProxy rootPane = new ContainerProxy(javax.accessibility.AccessibleRole.ROOT_PANE);
+ ContainerProxy popupLayer = new ContainerProxy(javax.accessibility.AccessibleRole.PANEL);
+ boolean opened = false;
+ boolean visible = false;
+
+ /** Creates a new instance of PopupWindow */
+ public PopupWindow(java.awt.Window owner) {
+ super(owner);
+ super.add(rootPane);
+ rootPane.add(layeredPane);
+
+ javax.accessibility.AccessibleContext ac = rootPane.getAccessibleContext();
+
+ if (ac != null) {
+ ac.setAccessibleParent(this);
+ }
+ }
+
+ static PopupWindow create(
+ com.sun.star.accessibility.XAccessible xAccessible) {
+ java.awt.Window parent = java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager()
+ .getActiveWindow();
+
+ if (parent != null) {
+ PopupWindow w = new PopupWindow(parent);
+ w.setVisible(true);
+ AccessibleObjectFactory.invokeAndWait();
+ AccessibleObjectFactory.addChild(w, xAccessible);
+
+ return w;
+ }
+
+ return null;
+ }
+
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+
+ return (parent == null) || parent.isShowing();
+ }
+
+ return false;
+ }
+
+ public void addNotify() {
+ }
+
+ public void removeNotify() {
+ }
+
+ public boolean isVisible() {
+ return visible;
+ }
+
+ public void setVisible(boolean b) {
+ if (visible != b) {
+ visible = b;
+
+ if (b) {
+ // If it is the first show, fire WINDOW_OPENED event
+ if (!opened) {
+ AccessibleObjectFactory.postWindowOpened(this);
+ opened = true;
+ }
+ }
+ }
+ }
+
+ public java.awt.Component add(java.awt.Component c) {
+ popupLayer.add(c);
+ layeredPane.add(popupLayer);
+
+ if (c instanceof javax.accessibility.Accessible) {
+ javax.accessibility.AccessibleContext ac = layeredPane.getAccessibleContext();
+
+ if (ac != null) {
+ ac.firePropertyChange(ac.ACCESSIBLE_CHILD_PROPERTY, null,
+ popupLayer.getAccessibleContext());
+ }
+ }
+
+ return c;
+ }
+
+ public void remove(java.awt.Component c) {
+ layeredPane.remove(popupLayer);
+
+ if (c instanceof javax.accessibility.Accessible) {
+ javax.accessibility.AccessibleContext ac = layeredPane.getAccessibleContext();
+
+ if (ac != null) {
+ ac.firePropertyChange(ac.ACCESSIBLE_CHILD_PROPERTY,
+ popupLayer.getAccessibleContext(), null);
+ }
+ }
+
+ popupLayer.remove(c);
+ }
+
+ public void dispose() {
+ setVisible(false);
+ AccessibleObjectFactory.postWindowClosed(this);
+ }
+
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessiblePopupWindow();
+ }
+
+ return accessibleContext;
+ }
+
+ protected class AccessiblePopupWindow
+ extends java.awt.Window.AccessibleAWTWindow {
+ AccessiblePopupWindow() {
+ }
+ }
+
+ protected class ContainerProxy extends java.awt.Container
+ implements javax.accessibility.Accessible {
+ javax.accessibility.AccessibleContext accessibleContext = null;
+ javax.accessibility.AccessibleRole role;
+
+ protected ContainerProxy(javax.accessibility.AccessibleRole role) {
+ this.role = role;
+ }
+
+ public java.awt.Component add(java.awt.Component c) {
+ if (c instanceof javax.accessibility.Accessible) {
+ javax.accessibility.Accessible a = (javax.accessibility.Accessible) c;
+ javax.accessibility.AccessibleContext ac = a.getAccessibleContext();
+
+ if (ac != null) {
+ ac.setAccessibleParent(this);
+ }
+ }
+
+ return super.add(c);
+ }
+
+ public void remove(java.awt.Component c) {
+ if (c instanceof javax.accessibility.Accessible) {
+ javax.accessibility.Accessible a = (javax.accessibility.Accessible) c;
+ javax.accessibility.AccessibleContext ac = a.getAccessibleContext();
+
+ if (ac != null) {
+ ac.setAccessibleParent(null);
+ }
+ }
+
+ super.remove(c);
+ }
+
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleContainerProxy();
+ }
+
+ return accessibleContext;
+ }
+
+ private class AccessibleContainerProxy
+ extends java.awt.Container.AccessibleAWTContainer {
+ AccessibleContainerProxy() {
+ }
+
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return ContainerProxy.this.role;
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/accessibility/WindowsAccessBridgeAdapter.java b/accessibility/bridge/org/openoffice/accessibility/WindowsAccessBridgeAdapter.java
new file mode 100644
index 000000000000..28e58940867d
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/WindowsAccessBridgeAdapter.java
@@ -0,0 +1,654 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.accessibility;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.java.XJavaVM;
+import com.sun.star.uno.*;
+
+import org.openoffice.java.accessibility.*;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import javax.accessibility.*;
+
+
+public class WindowsAccessBridgeAdapter {
+ private static Method registerVirtualFrame;
+ private static Method revokeVirtualFrame;
+ private static java.util.Hashtable frameMap;
+
+ protected static native byte[] getProcessID();
+
+ protected static native boolean createMapping(long jvmaccess);
+
+ // On Windows all native frames must be registered to the access bridge.
+ // Therefor the bridge exports two methods that we try to find here.
+ protected static void attach(XComponentContext xComponentContext) {
+ try {
+ Class bridge = Class.forName(
+ "com.sun.java.accessibility.AccessBridge");
+ Class[] parameterTypes = {
+ javax.accessibility.Accessible.class, Integer.class
+ };
+
+ if (bridge != null) {
+ registerVirtualFrame = bridge.getMethod("registerVirtualFrame",
+ parameterTypes);
+ revokeVirtualFrame = bridge.getMethod("revokeVirtualFrame",
+ parameterTypes);
+
+ // load the native dll
+ System.loadLibrary("java_uno_accessbridge");
+
+ Object any = xComponentContext.getValueByName(
+ "/singletons/com.sun.star.java.theJavaVirtualMachine");
+
+ if (AnyConverter.isObject(any)) {
+ XJavaVM xJavaVM = (XJavaVM) UnoRuntime.queryInterface(XJavaVM.class,
+ AnyConverter.toObject(new Type(XJavaVM.class), any));
+
+ if (xJavaVM != null) {
+ any = xJavaVM.getJavaVM(getProcessID());
+
+ if (AnyConverter.isLong(any)) {
+ createMapping(AnyConverter.toLong(any));
+ frameMap = new java.util.Hashtable();
+ }
+ }
+ }
+ }
+ } catch (NoSuchMethodException e) {
+ System.err.println("ERROR: incompatible AccessBridge found: " +
+ e.getMessage());
+
+ // Forward this exception to UNO to indicate that the service will
+ // not work correctly.
+ throw new com.sun.star.uno.RuntimeException(
+ "incompatible AccessBridge class: " + e.getMessage());
+ } catch (java.lang.SecurityException e) {
+ System.err.println("ERROR: no access to AccessBridge: " +
+ e.getMessage());
+
+ // Forward this exception to UNO to indicate that the service will not work correctly.
+ throw new com.sun.star.uno.RuntimeException(
+ "Security exception caught: " + e.getMessage());
+ } catch (ClassNotFoundException e) {
+ // Forward this exception to UNO to indicate that the service will not work correctly.
+ throw new com.sun.star.uno.RuntimeException(
+ "ClassNotFound exception caught: " + e.getMessage());
+ } catch (IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught: " +
+ e.getMessage());
+
+ // Forward this exception to UNO to indicate that the service will not work correctly.
+ throw new com.sun.star.uno.RuntimeException(
+ "IllegalArgumentException caught: " + e.getMessage());
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println("UNO IllegalArgumentException caught: " +
+ e.getMessage());
+
+ // Forward this exception to UNO to indicate that the service will not work correctly.
+ throw new com.sun.star.uno.RuntimeException(
+ "UNO IllegalArgumentException caught: " + e.getMessage());
+ }
+ }
+
+ protected static boolean isAttached() {
+ return frameMap != null;
+ }
+
+ protected static Accessible getAccessibleWrapper(XAccessible xAccessible) {
+ Accessible a = null;
+
+ try {
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+
+ if (xAccessibleContext != null) {
+ switch (xAccessibleContext.getAccessibleRole()) {
+ case AccessibleRole.LIST:
+ a = (Accessible) AccessibleObjectFactory.getAccessibleComponent(xAccessible);
+ if (a != null) {
+ a = new ListProxy(a.getAccessibleContext());
+ }
+ break;
+
+ case AccessibleRole.MENU:
+
+ Accessible tmp = (Accessible) AccessibleObjectFactory.getAccessibleComponent(xAccessible);
+ if (tmp != null) {
+ AccessibleContext ac = tmp.getAccessibleContext();
+
+ if (ac != null) {
+ a = new PopupMenuProxy(ac);
+ }
+ }
+
+ break;
+
+ case AccessibleRole.TOOL_TIP:
+ a = PopupWindow.create(xAccessible);
+ break;
+
+ default:
+ a = (Accessible) AccessBridge.getTopWindow(xAccessible);
+ break;
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return a;
+ }
+
+ /** Registers a native frame at the Java AccessBridge for Windows */
+ public static void registerTopWindow(int handle, XAccessible xAccessible) {
+ Integer hwnd = new Integer(handle);
+
+ if (!frameMap.contains(hwnd)) {
+ if (Build.DEBUG) {
+ System.err.println("Native frame " + hwnd + " of role " +
+ AccessibleRoleAdapter.getAccessibleRole(xAccessible) +
+ " has been opened");
+ }
+
+ Accessible a = getAccessibleWrapper(xAccessible);
+
+ if (a != null) {
+ Object[] args = { a, hwnd };
+
+ frameMap.put(hwnd, a);
+
+ if (Build.DEBUG) {
+ System.err.println("registering native frame " + hwnd);
+ }
+
+ try {
+ registerVirtualFrame.invoke(null, args);
+ } catch (IllegalAccessException e) {
+ System.err.println("IllegalAccessException caught: " +
+ e.getMessage());
+ } catch (IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught: " +
+ e.getMessage());
+ } catch (InvocationTargetException e) {
+ System.err.println("InvokationTargetException caught: " +
+ e.getMessage());
+ }
+ }
+ }
+ }
+
+ /** Revokes a native frame at the Java AccessBridge for Windows */
+ public static void revokeTopWindow(int handle, XAccessible xAccessible) {
+ Integer hwnd = new Integer(handle);
+
+ Accessible a = (Accessible) frameMap.remove(hwnd);
+
+ if (a != null) {
+ Object[] args = { a, hwnd };
+
+ if (Build.DEBUG) {
+ System.err.println("revoking native frame " + hwnd);
+ }
+
+ try {
+ revokeVirtualFrame.invoke(null, args);
+ } catch (IllegalAccessException e) {
+ System.err.println("IllegalAccessException caught: " +
+ e.getMessage());
+ } catch (IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught: " +
+ e.getMessage());
+ } catch (InvocationTargetException e) {
+ System.err.println("InvokationTargetException caught: " +
+ e.getMessage());
+ }
+ }
+
+ if (a instanceof PopupWindow) {
+ PopupWindow toolTipWindow = (PopupWindow) a;
+ toolTipWindow.removeAll();
+ toolTipWindow.dispose();
+ }
+ }
+
+ protected static class PopupMenuProxy extends AccessibleContext
+ implements Accessible, AccessibleComponent {
+ AccessibleContext menu;
+ AccessibleComponent menuComponent;
+ int x = 0; int y = 0; int width = 0; int height = 0;
+
+ PopupMenuProxy(AccessibleContext ac) {
+ menu = ac;
+ menuComponent = menu.getAccessibleComponent();
+
+ /** calculate the bounding rectangle by iterating over the
+ * the children.
+ */
+ int x2 = 0; int y2 = 0;
+ int count = ac.getAccessibleChildrenCount();
+ for (int i = 0; i < count; i++) {
+ Accessible a = menu.getAccessibleChild(i);
+
+ if (a != null) {
+ AccessibleContext childAC = a.getAccessibleContext();
+
+ if (childAC != null) {
+ AccessibleComponent comp = ac.getAccessibleComponent();
+
+ if (comp != null) {
+ java.awt.Point p = comp.getLocationOnScreen();
+ java.awt.Dimension d = comp.getSize();
+
+ if (p != null && d != null) {
+ if (p.x < x) {
+ x = p.x;
+ }
+ if (p.y < y) {
+ y = p.y;
+ }
+ if (p.x + d.width > x2) {
+ x2 = p.x + d.width;
+ }
+ if (p.y + d.height > y2) {
+ y2 = p.y + d.height;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ width = x2 - x;
+ height = y2 - y;
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ return this;
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleComponent getAccessibleComponent() {
+ return this;
+ }
+
+ /** Returns the AccessibleText associated with this object */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+ return menu.getAccessibleText();
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ return menu.getAccessibleStateSet();
+ }
+
+ public java.util.Locale getLocale() {
+ return menu.getLocale();
+ }
+
+ public int getAccessibleIndexInParent() {
+ return -1;
+ }
+
+ public int getAccessibleChildrenCount() {
+ return menu.getAccessibleChildrenCount();
+ }
+
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ return menu.getAccessibleChild(i);
+ }
+
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.POPUP_MENU;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+ public void addFocusListener(java.awt.event.FocusListener fl) {
+ menuComponent.addFocusListener(fl);
+ }
+
+ public void removeFocusListener(java.awt.event.FocusListener fl) {
+ menuComponent.removeFocusListener(fl);
+ }
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ return menuComponent.getBackground();
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ return menuComponent.getForeground();
+ }
+
+ public void setForeground(java.awt.Color c) {
+ menuComponent.setForeground(c);
+ }
+
+ public java.awt.Cursor getCursor() {
+ return menuComponent.getCursor();
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ menuComponent.setCursor(cursor);
+ }
+
+ public java.awt.Font getFont() {
+ return menuComponent.getFont();
+ }
+
+ public void setFont(java.awt.Font f) {
+ menuComponent.setFont(f);
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ return menuComponent.getFontMetrics(f);
+ }
+
+ public boolean isEnabled() {
+ return menuComponent.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ menuComponent.setEnabled(b);
+ }
+
+ public boolean isVisible() {
+ return menuComponent.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ menuComponent.setVisible(b);
+ }
+
+ public boolean isShowing() {
+ return menuComponent.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ java.awt.Dimension d = getSize();
+
+ if (Build.DEBUG) {
+ System.err.println("PopupMenuProxy.containsPoint(" + p.x + "," +
+ p.y + ") returns " +
+ (((d.width >= 0) && (p.x < d.width) && (d.height >= 0) &&
+ (p.y < d.height)) ? "true" : "false"));
+ }
+
+ if ((d.width >= 0) && (p.x < d.width) && (d.height >= 0) &&
+ (p.y < d.height)) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ return new java.awt.Point(x,y);
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ // This object represents a toplevel, so this is the same as getLocationOnScreen()
+ return getLocationOnScreen();
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ return new java.awt.Rectangle(x, y, width, height);
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ return new java.awt.Dimension(width, height);
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local
+ * coordinate Point
+ */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ java.awt.Point p2 = menuComponent.getLocationOnScreen();
+ return menuComponent.getAccessibleAt(
+ new java.awt.Point(p.x + x - p2.x, p.y + y - p2.y));
+ }
+
+ public boolean isFocusTraversable() {
+ return menuComponent.isFocusTraversable();
+ }
+
+ public void requestFocus() {
+ menuComponent.requestFocus();
+ }
+ }
+
+ protected static class ListProxy extends AccessibleContext
+ implements Accessible, AccessibleComponent {
+ AccessibleContext list;
+ AccessibleComponent listComponent;
+
+ ListProxy(AccessibleContext ac) {
+ list = ac;
+ listComponent = list.getAccessibleComponent();
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ return this;
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleComponent getAccessibleComponent() {
+ return this;
+ }
+
+ /** Returns the AccessibleSelection associated with this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ return list.getAccessibleSelection();
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ return list.getAccessibleStateSet();
+ }
+
+ public java.util.Locale getLocale() {
+ return list.getLocale();
+ }
+
+ public int getAccessibleIndexInParent() {
+ return -1;
+ }
+
+ public int getAccessibleChildrenCount() {
+ return list.getAccessibleChildrenCount();
+ }
+
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ return list.getAccessibleChild(i);
+ }
+
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.LIST;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+ public void addFocusListener(java.awt.event.FocusListener fl) {
+ listComponent.addFocusListener(fl);
+ }
+
+ public void removeFocusListener(java.awt.event.FocusListener fl) {
+ listComponent.removeFocusListener(fl);
+ }
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ return listComponent.getBackground();
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ return listComponent.getForeground();
+ }
+
+ public void setForeground(java.awt.Color c) {
+ listComponent.setForeground(c);
+ }
+
+ public java.awt.Cursor getCursor() {
+ return listComponent.getCursor();
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ listComponent.setCursor(cursor);
+ }
+
+ public java.awt.Font getFont() {
+ return listComponent.getFont();
+ }
+
+ public void setFont(java.awt.Font f) {
+ listComponent.setFont(f);
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ return listComponent.getFontMetrics(f);
+ }
+
+ public boolean isEnabled() {
+ return listComponent.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ listComponent.setEnabled(b);
+ }
+
+ public boolean isVisible() {
+ return listComponent.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ listComponent.setVisible(b);
+ }
+
+ public boolean isShowing() {
+ return listComponent.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ return listComponent.contains(p);
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ return listComponent.getLocationOnScreen();
+ }
+
+ /** Gets the location of this component in the form of a point specifying
+ * the component's top-left corner
+ */
+ public java.awt.Point getLocation() {
+ // This object represents a toplevel object, so getLocation() should
+ // return the same as getLocationOnScreen().
+ return getLocationOnScreen();
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ java.awt.Point p = getLocationOnScreen();
+ java.awt.Dimension d = getSize();
+ return new java.awt.Rectangle(p.x, p.y, d.width, d.height);
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ return listComponent.getSize();
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local
+ * coordinate Point
+ */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ return listComponent.getAccessibleAt(p);
+ }
+
+ public boolean isFocusTraversable() {
+ return listComponent.isFocusTraversable();
+ }
+
+ public void requestFocus() {
+ listComponent.requestFocus();
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/accessibility/makefile.mk b/accessibility/bridge/org/openoffice/accessibility/makefile.mk
new file mode 100755
index 000000000000..9510a3156a59
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/makefile.mk
@@ -0,0 +1,55 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = accessibility
+PRJ = ..$/..$/..$/..
+TARGET = java_uno_accessbridge
+PACKAGE = org$/openoffice$/accessibility
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ AccessBridge.java \
+ KeyHandler.java \
+ PopupWindow.java \
+ WindowsAccessBridgeAdapter.java
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+JARTARGET = $(TARGET).jar
+JARCOMPRESS = TRUE
+JARCLASSDIRS = $(PACKAGE) org/openoffice/java/accessibility
+CUSTOMMANIFESTFILE = manifest
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/bridge/org/openoffice/accessibility/manifest b/accessibility/bridge/org/openoffice/accessibility/manifest
new file mode 100755
index 000000000000..4b5ffd54d34b
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/manifest
@@ -0,0 +1,2 @@
+RegistrationClassName: org.openoffice.accessibility.AccessBridge
+UNO-Type-Path:
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AbstractButton.java b/accessibility/bridge/org/openoffice/java/accessibility/AbstractButton.java
new file mode 100644
index 000000000000..be7b72df8732
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AbstractButton.java
@@ -0,0 +1,176 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+/**
+ */
+public abstract class AbstractButton extends Component {
+
+ protected AbstractButton(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected abstract class AccessibleAbstractButton extends AccessibleUNOComponent
+ implements javax.accessibility.AccessibleAction {
+
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleAbstractButton() {
+ super();
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the AccessibleAction associated with this object that supports one or more actions */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ return this;
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class,unoAccessibleComponent);
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the relation set of this object */
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet = unoAccessibleContext.getAccessibleRelationSet();
+
+ if (unoAccessibleRelationSet == null) {
+ return null;
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ getAccessibleComponents(
+ unoAccessibleRelation.TargetSet)));
+ break;
+
+ case AccessibleRelationType.LABELED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ getAccessibleComponents(
+ unoAccessibleRelation.TargetSet)));
+ break;
+ default:
+ break;
+ }
+ }
+
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /*
+ * AccessibleAction
+ */
+
+ /** Performs the specified Action on the object */
+ public boolean doAccessibleAction(int param) {
+ if (param == 0) {
+ // HACK: this action might open a modal dialog and therefor block
+ // until the dialog is closed. In case of this thread being the
+ // AWT EventDispatcherThread this means, the opened dialog will
+ // not be accessible, so deligate this request to another thread.
+ if (java.awt.EventQueue.isDispatchThread()) {
+ Thread t = new Thread () {
+ public void run() {
+ AbstractButton.AccessibleAbstractButton.this.doAccessibleAction(0);
+ }
+ };
+ t.start();
+ return true;
+ } else {
+ // Actions of MenuItems may also be performed if the item is not
+ // visible, so just try ..
+ try {
+ XAccessibleContext xAccessibleContext = unoAccessibleContext;
+ if (xAccessibleContext != null) {
+ // Query for XAccessibleAction interface
+ XAccessibleAction xAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, xAccessibleContext);
+
+ if (xAccessibleAction != null) {
+ return xAccessibleAction.doAccessibleAction(0);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ }
+
+ return false;
+ }
+
+ /** Returns a description of the specified action of the object */
+ public java.lang.String getAccessibleActionDescription(int param) {
+ return javax.swing.UIManager.getString("AbstractButton.clickText");
+ }
+
+ /** Returns the number of accessible actions available in this object */
+ public int getAccessibleActionCount() {
+ return 1;
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl.java
new file mode 100644
index 000000000000..e4905752d833
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleActionImpl.java
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.XAccessibleAction;
+
+/** The AccessibleActionWrapper maps the calls to the java AccessibleAction interface
+ * to the corresponding methods of the UNO XAccessibleAction interface.
+ */
+public class AccessibleActionImpl implements javax.accessibility.AccessibleAction {
+
+ protected XAccessibleAction unoObject;
+
+ /** Creates new AccessibleActionWrapper */
+ public AccessibleActionImpl(XAccessibleAction xAccessibleAction) {
+ unoObject = xAccessibleAction;
+ }
+
+ public boolean doAccessibleAction(int param) {
+ try {
+ return unoObject.doAccessibleAction(param);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ public java.lang.String getAccessibleActionDescription(int param) {
+ try {
+ return unoObject.getAccessibleActionDescription(param);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public int getAccessibleActionCount() {
+ try {
+ return unoObject.getAccessibleActionCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleComponentImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleComponentImpl.java
new file mode 100644
index 000000000000..5bac982756a2
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleComponentImpl.java
@@ -0,0 +1,233 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleComponent;
+// import com.sun.star.accessibility.XAccessibleExtendedComponent;
+import com.sun.star.uno.UnoRuntime;
+
+public class AccessibleComponentImpl implements javax.accessibility.AccessibleComponent {
+
+ protected XAccessibleComponent unoObject;
+// protected XAccessibleExtendedComponent unoAccessibleExtendedComponent = null;
+
+ /** Creates new AccessibleComponentImpl */
+ public AccessibleComponentImpl(XAccessibleComponent xAccessibleComponent) {
+ unoObject = xAccessibleComponent;
+ }
+
+ protected boolean hasState(short state) {
+ try {
+ XAccessibleContext unoAccessibleContext = (XAccessibleContext)
+ UnoRuntime.queryInterface(XAccessibleContext.class, unoObject);
+ // All UNO accessibility implementations must support XAccessibleContext
+ // and return a valid XAccessibleStateSet ..
+ return unoAccessibleContext.getAccessibleStateSet().contains(state);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ } catch (java.lang.NullPointerException e) {
+ System.err.println("XAccessibleContext unsupported or no XAccessibleStateSet returned.");
+ return false;
+ }
+ }
+
+ /*
+ * XAccessibleComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoObject.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoObject.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return hasState(AccessibleStateType.ENABLED);
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return hasState(AccessibleStateType.VISIBLE);
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return hasState(AccessibleStateType.SHOWING);
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoObject.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoObject.getLocationOnScreen();
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoObject.getLocation();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoObject.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoObject.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ // Not supported by this implementation
+ return null;
+ }
+
+ public boolean isFocusTraversable() {
+ return hasState(AccessibleStateType.FOCUSABLE);
+ }
+
+ public void requestFocus() {
+ unoObject.grabFocus();
+ }
+
+ /**
+ * Adds the specified focus listener to receive focus events from
+ * this component when this component gains input focus.
+ * If listener <code>l</code> is <code>null</code>,
+ * no exception is thrown and no action is performed.
+ */
+
+ public void addFocusListener(java.awt.event.FocusListener l) {
+ // Not supported by this implementation
+ }
+
+ /**
+ * Removes the specified focus listener so that it no longer
+ * receives focus events from this component. This method performs
+ * no function, nor does it throw an exception, if the listener
+ * specified by the argument was not previously added to this component.
+ * If listener <code>l</code> is <code>null</code>,
+ * no exception is thrown and no action is performed.
+ */
+
+ public void removeFocusListener(java.awt.event.FocusListener l) {
+ // Not supported by this implementation
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleEditableTextImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleEditableTextImpl.java
new file mode 100644
index 000000000000..4863b560ef71
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleEditableTextImpl.java
@@ -0,0 +1,367 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.awt.*;
+import com.sun.star.style.*;
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.AccessibleTextType;
+import com.sun.star.accessibility.XAccessibleEditableText;
+
+import javax.accessibility.AccessibleText;
+import javax.swing.text.StyleConstants;
+
+/** The GenericAccessibleEditableText mapps the calls to the java AccessibleEditableText
+ * interface to the corresponding methods of the UNO XAccessibleEditableText interface.
+ */
+public class AccessibleEditableTextImpl extends AccessibleTextImpl implements javax.accessibility.AccessibleEditableText {
+ final static double toPointFactor = 1 / (7/10 + 34.5);
+
+ /** Creates new GenericAccessibleEditableText object */
+ public AccessibleEditableTextImpl(XAccessibleEditableText xAccessibleEditableText) {
+ super(xAccessibleEditableText);
+ }
+
+ /** Cuts the text between two indices into the system clipboard */
+ public void cut(int startIndex, int endIndex) {
+ try {
+ ((XAccessibleEditableText) unoObject).cutText(startIndex, endIndex);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Deletes the text between two indices */
+ public void delete(int startIndex, int endIndex) {
+ try {
+ ((XAccessibleEditableText) unoObject).deleteText(startIndex, endIndex);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the text range between two indices */
+ public String getTextRange(int startIndex, int endIndex) {
+ try {
+ return unoObject.getTextRange(startIndex, endIndex);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+
+ /** Inserts the specified string at the given index */
+ public void insertTextAtIndex(int index, String s){
+ try {
+ ((XAccessibleEditableText) unoObject).insertText(s, index);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Pastes the text form the system clipboard into the text starting at the specified index */
+ public void paste(int startIndex) {
+ try {
+ ((XAccessibleEditableText) unoObject).pasteText(startIndex);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Replaces the text between two indices with the specified string */
+ public void replaceText(int startIndex, int endIndex, String s) {
+ try {
+ ((XAccessibleEditableText) unoObject).replaceText(startIndex, endIndex, s);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Selects the text between two indices */
+ public void selectText(int startIndex, int endIndex) {
+ try {
+ unoObject.setSelection(startIndex, endIndex);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Sets the attributes for the text between two indices */
+ public void setAttributes(int startIndex, int endIndex, javax.swing.text.AttributeSet as) {
+ java.util.Vector propertyValues = new java.util.Vector();
+
+ // Convert Alignment attribute
+ Object attribute = as.getAttribute(StyleConstants.Alignment);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaAdjust";
+
+ switch (StyleConstants.getAlignment(as)) {
+ case StyleConstants.ALIGN_RIGHT:
+ propertyValue.Value = ParagraphAdjust.RIGHT;
+ break;
+ case StyleConstants.ALIGN_CENTER:
+ propertyValue.Value = ParagraphAdjust.CENTER;
+ break;
+ case StyleConstants.ALIGN_JUSTIFIED:
+ propertyValue.Value = ParagraphAdjust.BLOCK;
+ break;
+ default:
+ propertyValue.Value = ParagraphAdjust.LEFT;
+ break;
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // Convert Background attribute
+ attribute = as.getAttribute(StyleConstants.Background);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharBackColor";
+ propertyValue.Value = new Integer(StyleConstants.getBackground(as).getRGB());
+ propertyValues.add(propertyValue);
+ }
+
+ // FIXME: BidiLevel
+
+ // Set Bold attribute
+ attribute = as.getAttribute(StyleConstants.Bold);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharWeight";
+ if (StyleConstants.isBold(as)) {
+ propertyValue.Value = new Float(150);
+ } else {
+ propertyValue.Value = new Float(100);
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // FIXME: Java 1.4 ComponentAttribute, ComponentElementName, ComposedTextAttribute
+
+ // Set FirstLineIndent attribute
+ attribute = as.getAttribute(StyleConstants.FirstLineIndent);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaFirstLineIndent";
+ propertyValue.Value = new Double(StyleConstants.getFirstLineIndent(as) / toPointFactor);
+ propertyValues.add(propertyValue);
+ }
+
+ // Set font family attribute
+ attribute = as.getAttribute(StyleConstants.FontFamily);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharFontPitch";
+
+ if (StyleConstants.getFontFamily(as).equals( "Proportional" )) {
+ propertyValue.Value = new Short("2");
+ } else {
+ propertyValue.Value = new Short("1");
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // Set font size attribute
+ attribute = as.getAttribute(StyleConstants.FontSize);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharHeight";
+ propertyValue.Value = new Integer(StyleConstants.getFontSize(as));
+ propertyValues.add(propertyValue);
+ }
+
+ // Map foreground color
+ attribute = as.getAttribute(StyleConstants.Foreground);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharColor";
+ propertyValue.Value = new Integer (StyleConstants.getForeground(as).getRGB());
+ propertyValues.add(propertyValue);
+ }
+
+ // FIXME: IconAttribute, IconElementName
+
+ // Set italic attribute
+ attribute = as.getAttribute(StyleConstants.Italic);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharPosture";
+
+ if (StyleConstants.isItalic(as)) {
+ propertyValue.Value = FontSlant.ITALIC;
+ } else {
+ propertyValue.Value = FontSlant.DONTKNOW;
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // Set left indent attribute
+ attribute = as.getAttribute(StyleConstants.LeftIndent);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaFirstLeftMargin";
+ propertyValue.Value = new Integer(new Double(StyleConstants.getLeftIndent(as) / toPointFactor).intValue());
+ propertyValues.add(propertyValue);
+ }
+
+ // Set right indent attribute
+ attribute = as.getAttribute(StyleConstants.RightIndent);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaFirstRightMargin";
+ propertyValue.Value = new Integer(new Double(StyleConstants.getRightIndent(as) / toPointFactor).intValue());
+ propertyValues.add(propertyValue);
+ }
+
+ // Set line spacing attribute
+ attribute = as.getAttribute(StyleConstants.LineSpacing);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaLineSpacing";
+ propertyValue.Value = new Integer(new Double(StyleConstants.getLineSpacing(as) / toPointFactor).intValue());
+ propertyValues.add(propertyValue);
+ }
+
+ // FIXME: Java 1.4 NameAttribute, Orientation, ResolveAttribute
+
+ // Set space above attribute
+ attribute = as.getAttribute(StyleConstants.SpaceAbove);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaTopMargin";
+ propertyValue.Value = new Integer(new Double( StyleConstants.getSpaceAbove(as) / toPointFactor).intValue());
+ propertyValues.add(propertyValue);
+ }
+
+ // Set space below attribute
+ attribute = as.getAttribute(StyleConstants.SpaceBelow);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaBottomMargin";
+ propertyValue.Value = new Integer(new Double(StyleConstants.getSpaceBelow(as) / toPointFactor).intValue());
+ propertyValues.add(propertyValue);
+ }
+
+ // Set strike through attribute
+ attribute = as.getAttribute(StyleConstants.StrikeThrough);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharPosture";
+ if (StyleConstants.isStrikeThrough(as)) {
+ propertyValue.Value = new Short(FontStrikeout.SINGLE);
+ } else {
+ propertyValue.Value = new Short(FontStrikeout.NONE);
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // Set sub-/superscript attribute
+ attribute = as.getAttribute(StyleConstants.Superscript);
+ if (null == attribute) {
+ attribute = as.getAttribute(StyleConstants.Subscript);
+ }
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharEscapement";
+
+ if (StyleConstants.isSuperscript(as)) {
+ propertyValue.Value = new Short( "1" );
+ } else if (StyleConstants.isSubscript(as)) {
+ propertyValue.Value = new Short( "-1" );
+ } else {
+ propertyValue.Value = new Short( "0" );
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ // Set tabset attribute
+ attribute = as.getAttribute(StyleConstants.TabSet);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "ParaTabStops";
+
+ javax.swing.text.TabSet tabSet = StyleConstants.getTabSet(as);
+ java.util.ArrayList tabStops = new java.util.ArrayList(tabSet.getTabCount());
+
+ for (int i = 0, max = tabSet.getTabCount(); i < max; i++) {
+ javax.swing.text.TabStop tab = tabSet.getTab(i);
+ com.sun.star.style.TabStop unoTab = new com.sun.star.style.TabStop();
+
+ unoTab.Position = new Double(tab.getPosition() / toPointFactor).intValue();
+
+ switch (tab.getAlignment()) {
+ case javax.swing.text.TabStop.ALIGN_CENTER:
+ unoTab.Alignment = TabAlign.CENTER;
+ break;
+ case javax.swing.text.TabStop.ALIGN_RIGHT:
+ unoTab.Alignment = TabAlign.RIGHT;
+ break;
+ case javax.swing.text.TabStop.ALIGN_DECIMAL:
+ unoTab.Alignment = TabAlign.DECIMAL;
+ break;
+ default:
+ unoTab.Alignment = TabAlign.LEFT;
+ break;
+ }
+
+ tabStops.add(unoTab);
+ }
+ propertyValue.Value = (com.sun.star.style.TabStop[]) tabStops.toArray();
+ propertyValues.add(propertyValue);
+ }
+
+ // Set underline attribute
+ attribute = as.getAttribute(StyleConstants.Underline);
+ if (null != attribute) {
+ com.sun.star.beans.PropertyValue propertyValue = new com.sun.star.beans.PropertyValue();
+ propertyValue.Name = "CharUnderline";
+
+ if (StyleConstants.isUnderline(as)) {
+ propertyValue.Value = new Short(FontUnderline.SINGLE);
+ } else {
+ propertyValue.Value = new Short(FontUnderline.NONE);
+ }
+ propertyValues.add(propertyValue);
+ }
+
+ try {
+ ((XAccessibleEditableText) unoObject).setAttributes(startIndex, endIndex, (com.sun.star.beans.PropertyValue[]) propertyValues.toArray());
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Sets the text contents to the specified string */
+ public void setTextContents(String s) {
+ try {
+ ((XAccessibleEditableText) unoObject).setText(s);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleExtendedState.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleExtendedState.java
new file mode 100644
index 000000000000..3d4500d322df
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleExtendedState.java
@@ -0,0 +1,53 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+
+public class AccessibleExtendedState extends AccessibleState {
+ public static final AccessibleState DEFUNCT;
+ public static final AccessibleState INDETERMINATE;
+ public static final AccessibleState MANAGES_DESCENDANTS;
+ public static final AccessibleState SENSITIVE;
+ public static final AccessibleState STALE;
+
+ static {
+ DEFUNCT = new AccessibleExtendedState("defunct");
+
+ // JAVA 1.5: will come with manages_descendants and indeterminate
+ INDETERMINATE = new AccessibleExtendedState("indeterminate");
+ MANAGES_DESCENDANTS = new AccessibleExtendedState("managesDescendants");
+
+ SENSITIVE = new AccessibleExtendedState("sensitive");
+ STALE = new AccessibleExtendedState("stale");
+ }
+
+ protected AccessibleExtendedState(String key) {
+ super(key);
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleHypertextImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleHypertextImpl.java
new file mode 100644
index 000000000000..1bb3bc5961ad
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleHypertextImpl.java
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import org.openoffice.java.accessibility.logging.*;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+/** The AccessibleHypertextImpl mapps all calls to the java AccessibleHypertext
+ * interface to the corresponding methods of the UNO XAccessibleHypertext
+ * interface.
+ */
+public class AccessibleHypertextImpl extends AccessibleTextImpl
+ implements javax.accessibility.AccessibleHypertext {
+
+ protected class Hyperlink extends javax.accessibility.AccessibleHyperlink {
+ protected XAccessibleHyperlink unoObject;
+
+ public Hyperlink(XAccessibleHyperlink xHyperlink) {
+ unoObject = xHyperlink;
+ }
+
+ public int getStartIndex() {
+ try {
+ System.err.println("StartIndex: " + unoObject.getStartIndex());
+ return unoObject.getStartIndex();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ public Object getAccessibleActionObject(int param) {
+ System.err.println("getActionObject");
+ try {
+ Object any = unoObject.getAccessibleActionObject(param);
+ if (AnyConverter.isString(any)) {
+ String url = AnyConverter.toString(any);
+ if (null != url) {
+ return new java.net.URL(url);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (java.net.MalformedURLException exception) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return null;
+ }
+
+ public int getEndIndex() {
+ try {
+ System.err.println("StartIndex: " + unoObject.getEndIndex());
+ return unoObject.getEndIndex();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ public Object getAccessibleActionAnchor(int param) {
+ System.err.println("getActionAnchor");
+ try {
+ Object any = unoObject.getAccessibleActionObject(param);
+ if (AnyConverter.isString(any)) {
+ System.err.println("Anchor: " + AnyConverter.toString(any));
+ return AnyConverter.toString(any);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+
+ public boolean isValid() {
+ return unoObject.isValid();
+ }
+
+ public boolean doAccessibleAction(int param) {
+ try {
+ return unoObject.doAccessibleAction(param);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ public String getAccessibleActionDescription(int param) {
+ try {
+ return unoObject.getAccessibleActionDescription(param);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+ public int getAccessibleActionCount() {
+ try {
+ return unoObject.getAccessibleActionCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+ }
+
+ /** Creates new AccessibleHypertextImpl */
+ public AccessibleHypertextImpl(XAccessibleHypertext xAccessibleHypertext) {
+ if (Build.PRODUCT) {
+ unoObject = xAccessibleHypertext;
+ } else {
+ String property = System.getProperty("AccessBridgeLogging");
+ if ((property != null) && (property.indexOf("text") != -1)) {
+ unoObject = new XAccessibleHypertextLog(xAccessibleHypertext);
+ } else {
+ unoObject = xAccessibleHypertext;
+ }
+ }
+ }
+
+ public static javax.accessibility.AccessibleText get(com.sun.star.uno.XInterface unoObject) {
+ try {
+ XAccessibleHypertext unoAccessibleHypertext = (XAccessibleHypertext)
+ UnoRuntime.queryInterface(XAccessibleHypertext.class, unoObject);
+ if (unoAccessibleHypertext != null) {
+ return new AccessibleHypertextImpl(unoAccessibleHypertext);
+ }
+
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class, unoObject);
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+
+ public javax.accessibility.AccessibleHyperlink getLink(int param) {
+ try {
+ return new Hyperlink(((XAccessibleHypertext) unoObject).getHyperLink(param));
+ }
+
+ catch(com.sun.star.lang.IndexOutOfBoundsException exception) {
+ throw new IndexOutOfBoundsException(exception.getMessage());
+ }
+ }
+
+ public int getLinkCount() {
+ try {
+ return ((XAccessibleHypertext) unoObject).getHyperLinkCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ public int getLinkIndex(int param) {
+ try {
+ return ((XAccessibleHypertext) unoObject).getHyperLinkIndex(param);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleIconImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleIconImpl.java
new file mode 100644
index 000000000000..ba41534f245b
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleIconImpl.java
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.XAccessibleImage;
+
+/**
+ */
+public class AccessibleIconImpl implements javax.accessibility.AccessibleIcon {
+
+ XAccessibleImage unoAccessibleImage;
+
+ public AccessibleIconImpl(XAccessibleImage xImage) {
+ unoAccessibleImage = xImage;
+ }
+
+ /** Gets the description of the icon */
+ public String getAccessibleIconDescription() {
+ try {
+ return unoAccessibleImage.getAccessibleImageDescription();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the height of the icon */
+ public int getAccessibleIconHeight() {
+ try {
+ return unoAccessibleImage.getAccessibleImageHeight();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Gets the width of the icon */
+ public int getAccessibleIconWidth() {
+ try {
+ return unoAccessibleImage.getAccessibleImageWidth();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Sets the description of the icon */
+ public void setAccessibleIconDescription(String s) {
+ // Not supported
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleKeyBinding.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleKeyBinding.java
new file mode 100644
index 000000000000..1eb3201c5d68
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleKeyBinding.java
@@ -0,0 +1,386 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.awt.KeyStroke;
+
+/**
+ *
+ */
+public class AccessibleKeyBinding extends Object implements javax.accessibility.AccessibleKeyBinding {
+
+ XAccessibleKeyBinding unoAccessibleKeybinding;
+
+ public AccessibleKeyBinding(XAccessibleKeyBinding unoKB) {
+ unoAccessibleKeybinding = unoKB;
+ }
+
+ public static int convertModifiers(short s) {
+ int modifiers = 0;
+ if ((s & com.sun.star.awt.KeyModifier.SHIFT) != 0) {
+ modifiers = modifiers | java.awt.event.KeyEvent.SHIFT_DOWN_MASK;
+ }
+
+ if ((s & com.sun.star.awt.KeyModifier.MOD1) != 0) {
+ modifiers = modifiers | java.awt.event.KeyEvent.CTRL_DOWN_MASK;
+ }
+
+ if ((s & com.sun.star.awt.KeyModifier.MOD2) != 0) {
+ modifiers = modifiers | java.awt.event.KeyEvent.ALT_DOWN_MASK;
+ }
+
+ if ((s & com.sun.star.awt.KeyModifier.MOD3) != 0) {
+ modifiers = modifiers | java.awt.event.KeyEvent.META_DOWN_MASK;
+ }
+
+ return modifiers;
+ }
+
+ public static int convertKeyCode(short s) {
+ int keycode = java.awt.event.KeyEvent.VK_UNDEFINED;
+
+ switch(s) {
+ case com.sun.star.awt.Key.NUM0:
+ keycode = java.awt.event.KeyEvent.VK_0;
+ break;
+ case com.sun.star.awt.Key.NUM1:
+ keycode = java.awt.event.KeyEvent.VK_1;
+ break;
+ case com.sun.star.awt.Key.NUM2:
+ keycode = java.awt.event.KeyEvent.VK_2;
+ break;
+ case com.sun.star.awt.Key.NUM3:
+ keycode = java.awt.event.KeyEvent.VK_3;
+ break;
+ case com.sun.star.awt.Key.NUM4:
+ keycode = java.awt.event.KeyEvent.VK_4;
+ break;
+ case com.sun.star.awt.Key.NUM5:
+ keycode = java.awt.event.KeyEvent.VK_5;
+ break;
+ case com.sun.star.awt.Key.NUM6:
+ keycode = java.awt.event.KeyEvent.VK_6;
+ break;
+ case com.sun.star.awt.Key.NUM7:
+ keycode = java.awt.event.KeyEvent.VK_7;
+ break;
+ case com.sun.star.awt.Key.NUM8:
+ keycode = java.awt.event.KeyEvent.VK_8;
+ break;
+ case com.sun.star.awt.Key.NUM9:
+ keycode = java.awt.event.KeyEvent.VK_9;
+ break;
+ case com.sun.star.awt.Key.A:
+ keycode = java.awt.event.KeyEvent.VK_A;
+ break;
+ case com.sun.star.awt.Key.B:
+ keycode = java.awt.event.KeyEvent.VK_B;
+ break;
+ case com.sun.star.awt.Key.C:
+ keycode = java.awt.event.KeyEvent.VK_C;
+ break;
+ case com.sun.star.awt.Key.D:
+ keycode = java.awt.event.KeyEvent.VK_D;
+ break;
+ case com.sun.star.awt.Key.E:
+ keycode = java.awt.event.KeyEvent.VK_E;
+ break;
+ case com.sun.star.awt.Key.F:
+ keycode = java.awt.event.KeyEvent.VK_F;
+ break;
+ case com.sun.star.awt.Key.G:
+ keycode = java.awt.event.KeyEvent.VK_G;
+ break;
+ case com.sun.star.awt.Key.H:
+ keycode = java.awt.event.KeyEvent.VK_H;
+ break;
+ case com.sun.star.awt.Key.I:
+ keycode = java.awt.event.KeyEvent.VK_I;
+ break;
+ case com.sun.star.awt.Key.J:
+ keycode = java.awt.event.KeyEvent.VK_J;
+ break;
+ case com.sun.star.awt.Key.K:
+ keycode = java.awt.event.KeyEvent.VK_K;
+ break;
+ case com.sun.star.awt.Key.L:
+ keycode = java.awt.event.KeyEvent.VK_L;
+ break;
+ case com.sun.star.awt.Key.M:
+ keycode = java.awt.event.KeyEvent.VK_M;
+ break;
+ case com.sun.star.awt.Key.N:
+ keycode = java.awt.event.KeyEvent.VK_N;
+ break;
+ case com.sun.star.awt.Key.O:
+ keycode = java.awt.event.KeyEvent.VK_O;
+ break;
+ case com.sun.star.awt.Key.P:
+ keycode = java.awt.event.KeyEvent.VK_P;
+ break;
+ case com.sun.star.awt.Key.Q:
+ keycode = java.awt.event.KeyEvent.VK_Q;
+ break;
+ case com.sun.star.awt.Key.R:
+ keycode = java.awt.event.KeyEvent.VK_R;
+ break;
+ case com.sun.star.awt.Key.S:
+ keycode = java.awt.event.KeyEvent.VK_S;
+ break;
+ case com.sun.star.awt.Key.T:
+ keycode = java.awt.event.KeyEvent.VK_T;
+ break;
+ case com.sun.star.awt.Key.U:
+ keycode = java.awt.event.KeyEvent.VK_U;
+ break;
+ case com.sun.star.awt.Key.V:
+ keycode = java.awt.event.KeyEvent.VK_V;
+ break;
+ case com.sun.star.awt.Key.W:
+ keycode = java.awt.event.KeyEvent.VK_W;
+ break;
+ case com.sun.star.awt.Key.X:
+ keycode = java.awt.event.KeyEvent.VK_X;
+ break;
+ case com.sun.star.awt.Key.Y:
+ keycode = java.awt.event.KeyEvent.VK_Y;
+ break;
+ case com.sun.star.awt.Key.Z:
+ keycode = java.awt.event.KeyEvent.VK_Z;
+ break;
+ case com.sun.star.awt.Key.F1:
+ keycode = java.awt.event.KeyEvent.VK_F1;
+ break;
+ case com.sun.star.awt.Key.F2:
+ keycode = java.awt.event.KeyEvent.VK_F2;
+ break;
+ case com.sun.star.awt.Key.F3:
+ keycode = java.awt.event.KeyEvent.VK_F3;
+ break;
+ case com.sun.star.awt.Key.F4:
+ keycode = java.awt.event.KeyEvent.VK_F4;
+ break;
+ case com.sun.star.awt.Key.F5:
+ keycode = java.awt.event.KeyEvent.VK_F5;
+ break;
+ case com.sun.star.awt.Key.F6:
+ keycode = java.awt.event.KeyEvent.VK_F6;
+ break;
+ case com.sun.star.awt.Key.F7:
+ keycode = java.awt.event.KeyEvent.VK_F7;
+ break;
+ case com.sun.star.awt.Key.F8:
+ keycode = java.awt.event.KeyEvent.VK_F8;
+ break;
+ case com.sun.star.awt.Key.F9:
+ keycode = java.awt.event.KeyEvent.VK_F9;
+ break;
+ case com.sun.star.awt.Key.F10:
+ keycode = java.awt.event.KeyEvent.VK_F10;
+ break;
+ case com.sun.star.awt.Key.F11:
+ keycode = java.awt.event.KeyEvent.VK_F11;
+ break;
+ case com.sun.star.awt.Key.F12:
+ keycode = java.awt.event.KeyEvent.VK_F12;
+ break;
+ case com.sun.star.awt.Key.F13:
+ keycode = java.awt.event.KeyEvent.VK_F13;
+ break;
+ case com.sun.star.awt.Key.F14:
+ keycode = java.awt.event.KeyEvent.VK_F14;
+ break;
+ case com.sun.star.awt.Key.F15:
+ keycode = java.awt.event.KeyEvent.VK_F15;
+ break;
+ case com.sun.star.awt.Key.F16:
+ keycode = java.awt.event.KeyEvent.VK_F16;
+ break;
+ case com.sun.star.awt.Key.F17:
+ keycode = java.awt.event.KeyEvent.VK_F17;
+ break;
+ case com.sun.star.awt.Key.F18:
+ keycode = java.awt.event.KeyEvent.VK_F18;
+ break;
+ case com.sun.star.awt.Key.F19:
+ keycode = java.awt.event.KeyEvent.VK_F19;
+ break;
+ case com.sun.star.awt.Key.F20:
+ keycode = java.awt.event.KeyEvent.VK_F20;
+ break;
+ case com.sun.star.awt.Key.F21:
+ keycode = java.awt.event.KeyEvent.VK_F21;
+ break;
+ case com.sun.star.awt.Key.F22:
+ keycode = java.awt.event.KeyEvent.VK_F22;
+ break;
+ case com.sun.star.awt.Key.F23:
+ keycode = java.awt.event.KeyEvent.VK_F23;
+ break;
+ case com.sun.star.awt.Key.F24:
+ keycode = java.awt.event.KeyEvent.VK_F24;
+ break;
+ case com.sun.star.awt.Key.DOWN:
+ keycode = java.awt.event.KeyEvent.VK_DOWN;
+ break;
+ case com.sun.star.awt.Key.UP:
+ keycode = java.awt.event.KeyEvent.VK_UP;
+ break;
+ case com.sun.star.awt.Key.LEFT:
+ keycode = java.awt.event.KeyEvent.VK_LEFT;
+ break;
+ case com.sun.star.awt.Key.RIGHT:
+ keycode = java.awt.event.KeyEvent.VK_RIGHT;
+ break;
+ case com.sun.star.awt.Key.HOME:
+ keycode = java.awt.event.KeyEvent.VK_HOME;
+ break;
+ case com.sun.star.awt.Key.END:
+ keycode = java.awt.event.KeyEvent.VK_END;
+ break;
+ case com.sun.star.awt.Key.PAGEUP:
+ keycode = java.awt.event.KeyEvent.VK_PAGE_UP;
+ break;
+ case com.sun.star.awt.Key.PAGEDOWN:
+ keycode = java.awt.event.KeyEvent.VK_PAGE_DOWN;
+ break;
+ case com.sun.star.awt.Key.RETURN:
+ keycode = java.awt.event.KeyEvent.VK_ENTER;
+ break;
+ case com.sun.star.awt.Key.ESCAPE:
+ keycode = java.awt.event.KeyEvent.VK_ESCAPE;
+ break;
+ case com.sun.star.awt.Key.TAB:
+ keycode = java.awt.event.KeyEvent.VK_TAB;
+ break;
+ case com.sun.star.awt.Key.BACKSPACE:
+ keycode = java.awt.event.KeyEvent.VK_BACK_SPACE;
+ break;
+ case com.sun.star.awt.Key.SPACE:
+ keycode = java.awt.event.KeyEvent.VK_SPACE;
+ break;
+ case com.sun.star.awt.Key.INSERT:
+ keycode = java.awt.event.KeyEvent.VK_INSERT;
+ break;
+ case com.sun.star.awt.Key.DELETE:
+ keycode = java.awt.event.KeyEvent.VK_DELETE;
+ break;
+ case com.sun.star.awt.Key.ADD:
+ keycode = java.awt.event.KeyEvent.VK_ADD;
+ break;
+ case com.sun.star.awt.Key.SUBTRACT:
+ keycode = java.awt.event.KeyEvent.VK_SUBTRACT;
+ break;
+ case com.sun.star.awt.Key.MULTIPLY:
+ keycode = java.awt.event.KeyEvent.VK_MULTIPLY;
+ break;
+ case com.sun.star.awt.Key.DIVIDE:
+ keycode = java.awt.event.KeyEvent.VK_DIVIDE;
+ break;
+ case com.sun.star.awt.Key.POINT:
+ keycode = java.awt.event.KeyEvent.VK_PERIOD;
+ break;
+ case com.sun.star.awt.Key.COMMA:
+ keycode = java.awt.event.KeyEvent.VK_COMMA;
+ break;
+ case com.sun.star.awt.Key.LESS:
+ keycode = java.awt.event.KeyEvent.VK_LESS;
+ break;
+ case com.sun.star.awt.Key.GREATER:
+ keycode = java.awt.event.KeyEvent.VK_GREATER;
+ break;
+ case com.sun.star.awt.Key.EQUAL:
+ keycode = java.awt.event.KeyEvent.VK_EQUALS;
+ break;
+ case com.sun.star.awt.Key.CUT:
+ keycode = java.awt.event.KeyEvent.VK_CUT;
+ break;
+ case com.sun.star.awt.Key.COPY:
+ keycode = java.awt.event.KeyEvent.VK_COPY;
+ break;
+ case com.sun.star.awt.Key.PASTE:
+ keycode = java.awt.event.KeyEvent.VK_PASTE;
+ break;
+ case com.sun.star.awt.Key.UNDO:
+ keycode = java.awt.event.KeyEvent.VK_UNDO;
+ break;
+ case com.sun.star.awt.Key.FIND:
+ keycode = java.awt.event.KeyEvent.VK_FIND;
+ break;
+ case com.sun.star.awt.Key.PROPERTIES:
+ keycode = java.awt.event.KeyEvent.VK_PROPS;
+ break;
+ case com.sun.star.awt.Key.HELP:
+ keycode = java.awt.event.KeyEvent.VK_HELP;
+ break;
+ default:
+ ;
+ }
+ return keycode;
+ }
+
+ /*
+ * AccessibleKeyBinding
+ */
+
+ /** Returns a key binding for this object */
+ public Object getAccessibleKeyBinding(int i) {
+ try {
+ KeyStroke[] keys = unoAccessibleKeybinding.getAccessibleKeyBinding(i);
+ javax.swing.KeyStroke[] data = new javax.swing.KeyStroke[keys.length];
+ for (int j=0; j < keys.length; j++) {
+ int keyCode = convertKeyCode(keys[j].KeyCode);
+ if (keyCode != java.awt.event.KeyEvent.VK_UNDEFINED) {
+ data[j] = javax.swing.KeyStroke.getKeyStroke(keyCode, convertModifiers(keys[j].Modifiers));
+ } else {
+ data[j] = null;
+ }
+ }
+
+ if (keys.length == 1) {
+ return data[0];
+ } else {
+ return data;
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the number of key bindings for this object */
+ public int getAccessibleKeyBindingCount() {
+ try {
+ return unoAccessibleKeybinding.getAccessibleKeyBindingCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleObjectFactory.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleObjectFactory.java
new file mode 100644
index 000000000000..129a3b820993
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleObjectFactory.java
@@ -0,0 +1,545 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import java.lang.ref.WeakReference;
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleStateSet;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+import org.openoffice.java.accessibility.logging.XAccessibleEventLog;
+
+/**
+*/
+public class AccessibleObjectFactory {
+ // This type is needed for conversions from/to uno Any
+ public static final Type XAccessibleType = new Type(XAccessible.class);
+
+ private static java.util.Hashtable objectList = new java.util.Hashtable();
+ private static java.awt.FocusTraversalPolicy focusTraversalPolicy = new FocusTraversalPolicy();
+
+ private static java.awt.EventQueue theEventQueue = java.awt.Toolkit.getDefaultToolkit().
+ getSystemEventQueue();
+
+ public static java.awt.EventQueue getEventQueue() {
+ return theEventQueue;
+ }
+
+ public static void postFocusGained(java.awt.Component c) {
+ getEventQueue().postEvent(new java.awt.event.FocusEvent(c, java.awt.event.FocusEvent.FOCUS_GAINED));
+ }
+
+ public static void postWindowGainedFocus(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_GAINED_FOCUS);
+ }
+
+ public static void postWindowLostFocus(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_LOST_FOCUS);
+ }
+
+ public static void postWindowActivated(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_ACTIVATED);
+ }
+
+ public static void postWindowDeactivated(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_DEACTIVATED);
+ }
+
+ public static void postWindowOpened(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_OPENED);
+ }
+
+ public static void postWindowClosed(java.awt.Window w) {
+ postWindowEvent(w, java.awt.event.WindowEvent.WINDOW_CLOSED);
+ }
+
+ public static void invokeAndWait() {
+ try {
+ theEventQueue.invokeAndWait( new java.lang.Runnable () {
+ public void run() {
+ }
+ });
+ } catch (java.lang.reflect.InvocationTargetException e) {
+ } catch (java.lang.InterruptedException e) {
+ }
+ }
+
+ private static void postWindowEvent(java.awt.Window w, int i) {
+ theEventQueue.postEvent(new java.awt.event.WindowEvent(w, i));
+ }
+
+ public static java.awt.Component getAccessibleComponent(XAccessible xAccessible) {
+ java.awt.Component c = null;
+ if (xAccessible != null) {
+ // Retrieve unique id for the original UNO object to be used as a hash key
+ String oid = UnoRuntime.generateOid(xAccessible);
+
+ // Check if we already have a wrapper object for this context
+ synchronized (objectList) {
+ WeakReference r = (WeakReference) objectList.get(oid);
+ if(r != null) {
+ c = (java.awt.Component) r.get();
+ }
+ }
+ }
+ return c;
+ }
+
+ public static void addChild(java.awt.Container parent, Object any) {
+ try {
+ addChild(parent, (XAccessible) AnyConverter.toObject(XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ }
+ }
+
+ public static void addChild(java.awt.Container parent, XAccessible child) {
+ try {
+ if (child != null) {
+ XAccessibleContext childAC = child.getAccessibleContext();
+ if (childAC != null) {
+ XAccessibleStateSet stateSet = childAC.getAccessibleStateSet();
+ if (stateSet != null) {
+ java.awt.Component c = getAccessibleComponent(child);
+
+ // Re-use existing wrapper if possible, create a new one otherwise
+ if (c != null) {
+ // Seems to be already in child list
+ if (parent.equals(c.getParent()))
+ return;
+ // Update general component states
+ c.setEnabled(stateSet.contains(AccessibleStateType.ENABLED));
+ c.setVisible(stateSet.contains(AccessibleStateType.VISIBLE));
+ } else {
+ c = createAccessibleComponentImpl(child, childAC, stateSet);
+ }
+
+ if (c != null) {
+ if (c instanceof java.awt.Container) {
+ populateContainer((java.awt.Container) c, childAC);
+ }
+ parent.add(c);
+ // Simulate focus gained event for new child
+ if (stateSet.contains(AccessibleStateType.FOCUSED)) {
+ postFocusGained(c);
+ }
+ }
+ }
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+
+ protected static void removeChild(java.awt.Container parent, Object any) {
+ try {
+ XAccessible xAccessible = (XAccessible) AnyConverter.toObject(XAccessibleType, any);
+ java.awt.Component c = getAccessibleComponent(xAccessible);
+
+ if (c != null) {
+ parent.remove(c);
+
+ if (c instanceof java.awt.Container) {
+ clearContainer((java.awt.Container) c);
+ }
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ }
+ }
+
+
+ /**
+ * Removes all children from the container parent
+ */
+
+ protected static void clearContainer(java.awt.Container parent) {
+ // Purge all children from this container
+ int count = parent.getComponentCount();
+ for (int i = 0; i < count; i++) {
+ java.awt.Component c = parent.getComponent(i);
+ if (c instanceof java.awt.Container) {
+ clearContainer((java.awt.Container) c);
+ }
+ }
+ parent.removeAll();
+ }
+
+
+ /**
+ * Populates the given Container parent with wrapper objects for all children of parentAC. This method is
+ * intended to be called when a container is added using a CHILDREN_CHANGED event.
+ */
+
+ protected static void populateContainer(java.awt.Container parent, XAccessibleContext parentAC) {
+ if (parentAC != null) {
+ try {
+ int childCount = parentAC.getAccessibleChildCount();
+ for (int i=0; i<childCount; i++) {
+ addChild(parent, parentAC.getAccessibleChild(i));
+ }
+ } catch (java.lang.Exception e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * Populates the given Container parent with wrapper objects for all children of parentAC. This method is
+ * intended to be called when a new window has been opened.
+ */
+ protected static void populateContainer(java.awt.Container parent, XAccessibleContext parentAC, java.awt.Window frame) {
+ if (parentAC != null) {
+ try {
+ int childCount = parentAC.getAccessibleChildCount();
+ for (int i=0; i<childCount; i++) {
+ XAccessible child = parentAC.getAccessibleChild(i);
+ if (child != null) {
+ XAccessibleContext childAC = child.getAccessibleContext();
+ java.awt.Component c = createAccessibleComponent(child, childAC, frame);
+ if (c != null) {
+ if (c instanceof java.awt.Container) {
+ populateContainer((java.awt.Container) c, childAC, frame);
+ }
+ parent.add(c);
+ }
+ } else if (Build.DEBUG) {
+ System.err.println("ignoring not accessible child " + i);
+ }
+ }
+ }
+
+ catch (java.lang.Exception e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ }
+
+ protected static java.awt.Component createAccessibleComponent(XAccessible xAccessible) {
+ try {
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+ return createAccessibleComponentImpl(xAccessible, xAccessibleContext, xAccessibleContext.getAccessibleStateSet());
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ protected static java.awt.Component createAccessibleComponent(XAccessible xAccessible, XAccessibleContext xAccessibleContext,
+ java.awt.Window frame) {
+ if (xAccessibleContext != null) {
+ try {
+ XAccessibleStateSet xAccessibleStateSet = xAccessibleContext.getAccessibleStateSet();
+ java.awt.Component c = createAccessibleComponentImpl(xAccessible, xAccessibleContext, xAccessibleStateSet);
+ if (c != null) {
+ // Set this component as initial component
+ if (xAccessibleStateSet.contains(AccessibleStateType.FOCUSED)) {
+ if (frame instanceof NativeFrame) {
+ ((NativeFrame) frame).setInitialComponent(c);
+ }
+ }
+ return c;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ System.err.println(e.getClass().getName() + " caught: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+ protected static java.awt.Component createAccessibleComponentImpl(XAccessible xAccessible, XAccessibleContext xAccessibleContext,
+ XAccessibleStateSet xAccessibleStateSet) {
+ java.awt.Component c = null;
+ short role = xAccessibleContext.getAccessibleRole();
+ switch (role) {
+ case AccessibleRole.CANVAS:
+ c = new Container(javax.accessibility.AccessibleRole.CANVAS,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.CHECK_BOX:
+ c = new CheckBox(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.COMBO_BOX:
+ c = new ComboBox(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.DOCUMENT:
+ c = new Container(javax.accessibility.AccessibleRole.CANVAS,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.EMBEDDED_OBJECT:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.END_NOTE:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.FILLER:
+ c = new Container(javax.accessibility.AccessibleRole.FILLER,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.FOOTNOTE:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.FOOTER:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.GRAPHIC:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.HEADER:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.ICON:
+ c = new Icon(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.LABEL:
+ c = new Label(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.LAYERED_PANE:
+ c = new Container(javax.accessibility.AccessibleRole.LAYERED_PANE,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.LIST:
+ if (xAccessibleStateSet.contains(AccessibleStateType.MANAGES_DESCENDANTS)) {
+ c = new List(xAccessible, xAccessibleContext);
+ } else {
+ c = new Container(javax.accessibility.AccessibleRole.LIST,
+ xAccessible, xAccessibleContext);
+ }
+ break;
+ case AccessibleRole.MENU:
+ c = new Menu(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.MENU_BAR:
+ c = new MenuContainer(javax.accessibility.AccessibleRole.MENU_BAR, xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.MENU_ITEM:
+ c = new MenuItem(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.POPUP_MENU:
+ c = new MenuContainer(javax.accessibility.AccessibleRole.POPUP_MENU, xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.OPTION_PANE:
+ c = new Container(javax.accessibility.AccessibleRole.OPTION_PANE,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.PAGE_TAB:
+ c = new Container(javax.accessibility.AccessibleRole.PAGE_TAB, xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.PAGE_TAB_LIST:
+ c = new Container(javax.accessibility.AccessibleRole.PAGE_TAB_LIST, xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.PARAGRAPH:
+ case AccessibleRole.HEADING:
+ c = new Paragraph(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.PANEL:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.PUSH_BUTTON:
+ c = new Button(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.RADIO_BUTTON:
+ c = new RadioButton(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.ROOT_PANE:
+ c = new Container(javax.accessibility.AccessibleRole.ROOT_PANE,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.SCROLL_BAR:
+ c = new ScrollBar(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.SCROLL_PANE:
+ c = new Container(javax.accessibility.AccessibleRole.SCROLL_PANE,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.SEPARATOR:
+ c = new Separator(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.SHAPE:
+ c = new Container(javax.accessibility.AccessibleRole.CANVAS,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.SPLIT_PANE:
+ c = new Container(javax.accessibility.AccessibleRole.SPLIT_PANE,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.STATUS_BAR:
+ c = new Container(javax.accessibility.AccessibleRole.STATUS_BAR,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.COLUMN_HEADER:
+ case AccessibleRole.TABLE:
+ if (xAccessibleStateSet.contains(AccessibleStateType.MANAGES_DESCENDANTS)) {
+ c = new Table(xAccessible, xAccessibleContext,
+ xAccessibleStateSet.contains(AccessibleStateType.MULTI_SELECTABLE));
+ } else {
+ c = new Container(javax.accessibility.AccessibleRole.TABLE,
+ xAccessible, xAccessibleContext);
+ }
+ break;
+ case AccessibleRole.TABLE_CELL:
+ if( xAccessibleContext.getAccessibleChildCount() > 0 )
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ else
+ c = new Label(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TEXT:
+ c = new TextComponent(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TEXT_FRAME:
+ c = new Container(javax.accessibility.AccessibleRole.PANEL,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TOGGLE_BUTTON:
+ c = new ToggleButton(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TOOL_BAR:
+ c = new Container(javax.accessibility.AccessibleRole.TOOL_BAR,
+ xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TOOL_TIP:
+ c = new ToolTip(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.TREE:
+ c = new Tree(xAccessible, xAccessibleContext);
+ break;
+ case AccessibleRole.VIEW_PORT:
+ c = new Container(javax.accessibility.AccessibleRole.VIEWPORT,
+ xAccessible, xAccessibleContext);
+ break;
+ default:
+ System.err.println("Unmapped accessible object " + role);
+ System.err.println("usually mapped to " + AccessibleRoleAdapter.getAccessibleRole(role));
+ c = new Container(AccessibleRoleAdapter.getAccessibleRole(role),
+ xAccessible, xAccessibleContext);
+ break;
+ }
+ if (c != null) {
+ // Add the newly created object to the cache list
+ synchronized (objectList) {
+ objectList.put(c.toString(), new WeakReference(c));
+ if (Build.DEBUG) {
+// System.out.println("Object cache now contains " + objectList.size() + " objects.");
+ }
+ }
+
+ AccessibleStateAdapter.setComponentState(c, xAccessibleStateSet);
+
+ if (! Build.PRODUCT) {
+ String property = System.getProperty("AccessBridgeLogging");
+ if ((property != null) && (property.indexOf("event") != -1)) {
+ XAccessibleEventLog.addEventListener(xAccessibleContext, c);
+ }
+ }
+ }
+
+ return c;
+ }
+
+ protected static void disposing(java.awt.Component c) {
+ if (c != null) {
+ synchronized (objectList) {
+ objectList.remove(c.toString());
+ }
+ }
+ }
+
+ public static java.awt.Window getTopWindow(XAccessible xAccessible) {
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+
+ if (xAccessibleContext != null) {
+ short role = xAccessibleContext.getAccessibleRole();
+ XAccessibleStateSet xAccessibleStateSet = xAccessibleContext.getAccessibleStateSet();
+ XAccessibleComponent xAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class, xAccessibleContext);
+
+ java.awt.Window w;
+ if (role == AccessibleRole.DIALOG) {
+ w = new Dialog(new Application(),
+ xAccessibleContext.getAccessibleName(),
+ xAccessibleStateSet.contains(AccessibleStateType.MODAL),
+ xAccessibleComponent);
+ } else if (role == AccessibleRole.ALERT) {
+ w = new Alert(new Application(),
+ xAccessibleContext.getAccessibleName(),
+ xAccessibleStateSet.contains(AccessibleStateType.MODAL),
+ xAccessibleComponent);
+ } else if (role == AccessibleRole.FRAME) {
+ w = new Frame(xAccessibleContext.getAccessibleName(),
+ xAccessibleComponent);
+ } else if (role == AccessibleRole.WINDOW) {
+ java.awt.Window activeWindow =
+ java.awt.KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
+ if (activeWindow != null) {
+ w = new Window(activeWindow, xAccessibleComponent);
+ } else {
+ if (Build.DEBUG) {
+ System.err.println("no active frame found for Window: " + role);
+ }
+ return null;
+ }
+ } else {
+ if (Build.DEBUG) {
+ System.err.println("invalid role for toplevel window: " + role);
+ }
+ return null;
+ }
+ populateContainer(w, xAccessibleContext, w);
+ w.setFocusTraversalPolicy(focusTraversalPolicy);
+ w.setVisible(true);
+
+ // Make the new window the focused one if it has an initialy focused object set.
+ java.awt.Component c = ((NativeFrame) w).getInitialComponent();
+ if (c != null) {
+ postWindowGainedFocus(w);
+ }
+ return w;
+ }
+
+ return null;
+ }
+}
+
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRelationAdapter.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRelationAdapter.java
new file mode 100644
index 000000000000..2f1709acac45
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRelationAdapter.java
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.Accessible;
+import com.sun.star.accessibility.AccessibleRelation;
+import com.sun.star.accessibility.XAccessible;
+
+/**
+ */
+public abstract class AccessibleRelationTypeMap {
+
+ final static String[] data = {
+ null,
+ javax.accessibility.AccessibleRelation.CONTROLLED_BY,
+ javax.accessibility.AccessibleRelation.CONTROLLED_BY,
+ javax.accessibility.AccessibleRelation.CONTROLLER_FOR,
+ javax.accessibility.AccessibleRelation.CONTROLLER_FOR,
+ javax.accessibility.AccessibleRelation.LABEL_FOR,
+ javax.accessibility.AccessibleRelation.LABEL_FOR,
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ javax.accessibility.AccessibleRelation.MEMBER_OF
+ };
+
+ public static void fillAccessibleRelationSet(javax.accessibility.AccessibleRelationSet s, AccessibleRelation[] relations) {
+ AccessibleObjectFactory factory = AccessibleObjectFactory.getDefault();
+ for(int i=0; i<relations.length; i++) {
+ if( relations[i].RelationType < data.length && data[relations[i].RelationType] != null ) {
+ javax.accessibility.AccessibleRelation r =
+ new javax.accessibility.AccessibleRelation(data[relations[i].RelationType]);
+
+ r.setTarget(factory.getAccessibleObjectSet(relations[i].TargetSet));
+ s.add(r);
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRoleAdapter.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRoleAdapter.java
new file mode 100644
index 000000000000..c7f630fdd3ab
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleRoleAdapter.java
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/** This class maps the AccessibleRole(s) of the UNO accessibility API
+ * to the corresponding javax.accessibility objects.
+ */
+public abstract class AccessibleRoleAdapter {
+
+ /* This array is used as a mapping between the UNO AccessibleRole
+ * and the AccessibleRole objects of the Java accessibility API.
+ */
+ public static final javax.accessibility.AccessibleRole[] data = {
+ javax.accessibility.AccessibleRole.UNKNOWN,
+ javax.accessibility.AccessibleRole.ALERT,
+ javax.accessibility.AccessibleRole.COLUMN_HEADER,
+ javax.accessibility.AccessibleRole.CANVAS,
+ javax.accessibility.AccessibleRole.CHECK_BOX,
+ javax.accessibility.AccessibleRole.CHECK_BOX, // CHECK_MENU_ITEM
+ javax.accessibility.AccessibleRole.COLOR_CHOOSER,
+ javax.accessibility.AccessibleRole.COMBO_BOX,
+ javax.accessibility.AccessibleRole.DATE_EDITOR,
+ javax.accessibility.AccessibleRole.DESKTOP_ICON,
+ javax.accessibility.AccessibleRole.DESKTOP_PANE,
+ javax.accessibility.AccessibleRole.DIRECTORY_PANE,
+ javax.accessibility.AccessibleRole.DIALOG,
+ javax.accessibility.AccessibleRole.CANVAS, // DOCUMENT
+ javax.accessibility.AccessibleRole.PANEL, // EMBEDDED_OBJECT
+ javax.accessibility.AccessibleRole.PANEL, // ENDNOTE
+ javax.accessibility.AccessibleRole.FILE_CHOOSER,
+ javax.accessibility.AccessibleRole.FILLER,
+ javax.accessibility.AccessibleRole.FONT_CHOOSER,
+ javax.accessibility.AccessibleRole.FOOTER,
+ javax.accessibility.AccessibleRole.PANEL, // FOOTNOTE
+ javax.accessibility.AccessibleRole.FRAME,
+ javax.accessibility.AccessibleRole.GLASS_PANE,
+ javax.accessibility.AccessibleRole.PANEL, // GRAPHIC
+ javax.accessibility.AccessibleRole.GROUP_BOX,
+ javax.accessibility.AccessibleRole.HEADER,
+ javax.accessibility.AccessibleRole.TEXT, // HEADING
+ javax.accessibility.AccessibleRole.HYPERLINK,
+ javax.accessibility.AccessibleRole.ICON,
+ javax.accessibility.AccessibleRole.INTERNAL_FRAME,
+ javax.accessibility.AccessibleRole.LABEL,
+ javax.accessibility.AccessibleRole.LAYERED_PANE,
+ javax.accessibility.AccessibleRole.LIST,
+ javax.accessibility.AccessibleRole.LABEL, // LIST_ITEM - required by Zoomtext
+ javax.accessibility.AccessibleRole.MENU,
+ javax.accessibility.AccessibleRole.MENU_BAR,
+ javax.accessibility.AccessibleRole.MENU_ITEM,
+ javax.accessibility.AccessibleRole.OPTION_PANE,
+ javax.accessibility.AccessibleRole.PAGE_TAB,
+ javax.accessibility.AccessibleRole.PAGE_TAB_LIST,
+ javax.accessibility.AccessibleRole.PANEL,
+ javax.accessibility.AccessibleRole.PARAGRAPH,
+ javax.accessibility.AccessibleRole.PASSWORD_TEXT,
+ javax.accessibility.AccessibleRole.POPUP_MENU,
+ javax.accessibility.AccessibleRole.PUSH_BUTTON,
+ javax.accessibility.AccessibleRole.PROGRESS_BAR,
+ javax.accessibility.AccessibleRole.RADIO_BUTTON,
+ javax.accessibility.AccessibleRole.RADIO_BUTTON, // RADIO_MENU_ITEM
+ javax.accessibility.AccessibleRole.ROW_HEADER,
+ javax.accessibility.AccessibleRole.ROOT_PANE,
+ javax.accessibility.AccessibleRole.SCROLL_BAR,
+ javax.accessibility.AccessibleRole.SCROLL_PANE,
+ javax.accessibility.AccessibleRole.CANVAS, // SHAPE
+ javax.accessibility.AccessibleRole.SEPARATOR,
+ javax.accessibility.AccessibleRole.SLIDER,
+ javax.accessibility.AccessibleRole.SPIN_BOX,
+ javax.accessibility.AccessibleRole.SPLIT_PANE,
+ javax.accessibility.AccessibleRole.STATUS_BAR,
+ javax.accessibility.AccessibleRole.TABLE,
+ javax.accessibility.AccessibleRole.LABEL, // TABLE_CELL - required by ZoomText
+ javax.accessibility.AccessibleRole.TEXT,
+ javax.accessibility.AccessibleRole.PANEL, // TEXT_FRAME
+ javax.accessibility.AccessibleRole.TOGGLE_BUTTON,
+ javax.accessibility.AccessibleRole.TOOL_BAR,
+ javax.accessibility.AccessibleRole.TOOL_TIP,
+ javax.accessibility.AccessibleRole.TREE,
+ javax.accessibility.AccessibleRole.VIEWPORT,
+ javax.accessibility.AccessibleRole.WINDOW,
+ javax.accessibility.AccessibleRole.RADIO_BUTTON, // BUTTON_DROPDOWN
+ javax.accessibility.AccessibleRole.RADIO_BUTTON, // BUTTON_MENU
+ javax.accessibility.AccessibleRole.PANEL, // CAPTION
+ javax.accessibility.AccessibleRole.PANEL, // CHART
+ javax.accessibility.AccessibleRole.EDITBAR,
+ javax.accessibility.AccessibleRole.PANEL, // FORM
+ javax.accessibility.AccessibleRole.PANEL, // IMAGE_MAP
+ javax.accessibility.AccessibleRole.PANEL, // NOTE
+ javax.accessibility.AccessibleRole.PANEL, // PAGE
+ javax.accessibility.AccessibleRole.RULER,
+ javax.accessibility.AccessibleRole.PANEL, // SECTION
+ javax.accessibility.AccessibleRole.LABEL, // TREE_ITEM
+ javax.accessibility.AccessibleRole.TABLE // TREE_TABLE
+ };
+
+ public static javax.accessibility.AccessibleRole getAccessibleRole(short role) {
+ if(role < data.length) {
+ if(data[role] == null) {
+ System.err.println("Unmapped role: " + role);
+ }
+ return data[role];
+ }
+ // FIXME: remove debug out
+ System.err.println("Unmappable role: " + role);
+ return null;
+ }
+
+ public static javax.accessibility.AccessibleRole getAccessibleRole(XAccessible unoAccessible) {
+ try {
+ XAccessibleContext unoAccessibleContext = unoAccessible.getAccessibleContext();
+ if (unoAccessibleContext != null) {
+ return getAccessibleRole(unoAccessibleContext.getAccessibleRole());
+ }
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return javax.accessibility.AccessibleRole.UNKNOWN;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleSelectionImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleSelectionImpl.java
new file mode 100644
index 000000000000..6e40c1e7a78d
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleSelectionImpl.java
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+
+class AccessibleSelectionImpl implements javax.accessibility.AccessibleSelection {
+ XAccessibleSelection unoAccessibleSelection;
+
+ AccessibleSelectionImpl(XAccessibleSelection xAccessibleSelection) {
+ unoAccessibleSelection = xAccessibleSelection;
+ }
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ try {
+ return (javax.accessibility.Accessible) AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleSelection.getSelectedAccessibleChild(i));
+ } catch (com.sun.star.uno.Exception e) {
+ return null;
+ }
+ }
+
+ /** Adds the specified Accessible child of the object to the object's selection */
+ public void addAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.selectAccessibleChild(i);
+ } catch (com.sun.star.uno.Exception e) {
+ }
+ }
+
+ /** Clears the selection in the object, so that no children in the object are selected */
+ public void clearAccessibleSelection() {
+ try {
+ unoAccessibleSelection.clearAccessibleSelection();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the number of Accessible children currently selected */
+ public int getAccessibleSelectionCount() {
+ try {
+ return unoAccessibleSelection.getSelectedAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Determines if the current child of this object is selected */
+ public boolean isAccessibleChildSelected(int i) {
+ try {
+ return unoAccessibleSelection.isAccessibleChildSelected(i);
+ } catch (com.sun.star.uno.Exception e) {
+ return false;
+ }
+ }
+
+ /** Removes the specified child of the object from the object's selection */
+ public void removeAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.deselectAccessibleChild(i);
+ } catch (com.sun.star.uno.Exception e) {
+ }
+ }
+
+ /** Causes every child of the object to be selected if the object supports multiple selection */
+ public void selectAllAccessibleSelection() {
+ try {
+ unoAccessibleSelection.selectAllAccessibleChildren();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleStateAdapter.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleStateAdapter.java
new file mode 100644
index 000000000000..ea1979a545ed
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleStateAdapter.java
@@ -0,0 +1,214 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.XAccessibleStateSet;
+
+public class AccessibleStateAdapter {
+
+ private static final AccessibleState[] stateTypeMap = {
+ null,
+ AccessibleState.ACTIVE,
+ AccessibleState.ARMED,
+ AccessibleState.BUSY,
+ AccessibleState.CHECKED,
+ AccessibleExtendedState.DEFUNCT,
+ AccessibleState.EDITABLE,
+ AccessibleState.ENABLED,
+ AccessibleState.EXPANDABLE,
+ AccessibleState.EXPANDED,
+ AccessibleState.FOCUSABLE,
+ AccessibleState.FOCUSED,
+ AccessibleState.HORIZONTAL,
+ AccessibleState.ICONIFIED,
+ AccessibleExtendedState.INDETERMINATE,
+ AccessibleExtendedState.MANAGES_DESCENDANTS,
+ AccessibleState.MODAL,
+ AccessibleState.MULTI_LINE,
+ AccessibleState.MULTISELECTABLE,
+ AccessibleState.OPAQUE,
+ AccessibleState.PRESSED,
+ AccessibleState.RESIZABLE,
+ AccessibleState.SELECTABLE,
+ AccessibleState.SELECTED,
+ AccessibleExtendedState.SENSITIVE,
+ AccessibleState.SHOWING,
+ AccessibleState.SINGLE_LINE,
+ AccessibleExtendedState.STALE,
+ AccessibleState.TRANSIENT,
+ AccessibleState.VERTICAL,
+ AccessibleState.VISIBLE
+ };
+
+ private static void printToplevelStateMessage(AccessibleState s, java.awt.Component c) {
+ System.err.println("*** ERROR *** " + s + " state is a toplevel window state " + c);
+ }
+
+ private static String getDisplayName(java.awt.Component c) {
+ javax.accessibility.Accessible a = (javax.accessibility.Accessible) c;
+ if( a != null) {
+ javax.accessibility.AccessibleContext ac = a.getAccessibleContext();
+ return "[" + ac.getAccessibleRole() + "] " + ac.getAccessibleName();
+ } else {
+ return c.toString();
+ }
+ }
+
+ private static void printOutOfSyncMessage(AccessibleState s, java.awt.Component c, boolean enabled) {
+ System.err.println("*** ERROR *** " + s + " state out of sync (UNO state set: " + !enabled + ", Java component state: " + enabled + ") for " + getDisplayName(c));
+ }
+
+ public static AccessibleState getAccessibleState(Object any) {
+ try {
+ if (AnyConverter.isShort(any)) {
+ return getAccessibleState(AnyConverter.toShort(any));
+ }
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ }
+
+ public static AccessibleState getAccessibleState(short unoStateType) {
+ if (unoStateType > 0 && unoStateType < stateTypeMap.length) {
+ return stateTypeMap[unoStateType];
+ }
+ return null;
+ }
+
+ public static AccessibleStateSet getDefunctStateSet() {
+ AccessibleStateSet ass = new AccessibleStateSet();
+ ass.add(AccessibleExtendedState.DEFUNCT);
+ return ass;
+ }
+
+ public static void setComponentState(java.awt.Component c,
+ XAccessibleStateSet xAccessibleStateSet) {
+
+ try {
+ if (xAccessibleStateSet != null) {
+ // Set the boundings of the component if it is visible ..
+ if (!xAccessibleStateSet.contains(AccessibleStateType.VISIBLE)) {
+ c.setVisible(false);
+ }
+ // Set the components' enabled state ..
+ if (!xAccessibleStateSet.contains(AccessibleStateType.ENABLED)) {
+ c.setEnabled(false);
+ }
+ // Set the components' focusable state ..
+ if (!xAccessibleStateSet.contains(AccessibleStateType.FOCUSABLE)) {
+ c.setFocusable(false);
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ public static AccessibleStateSet getAccessibleStateSet(java.awt.Component c,
+ XAccessibleStateSet xAccessibleStateSet) {
+
+ try {
+ if (xAccessibleStateSet != null) {
+ AccessibleStateSet as = new AccessibleStateSet();
+ short[] unoStateTypes = xAccessibleStateSet.getStates();
+ for (int i=0; i<unoStateTypes.length; i++) {
+ if (unoStateTypes[i] > 0 &&
+ unoStateTypes[i] < stateTypeMap.length) {
+ as.add(stateTypeMap[unoStateTypes[i]]);
+ }
+ }
+
+ // Note: COLLAPSED does not exists in the UAA.
+ if (as.contains(AccessibleState.EXPANDABLE) &&
+ ! as.contains(AccessibleState.EXPANDED)) {
+ as.add(AccessibleState.COLLAPSED);
+ }
+
+ // Sync office and Java FOCUSED state
+ boolean isFocusInSync;
+ if (c.isFocusOwner()) {
+ isFocusInSync = !as.add(AccessibleState.FOCUSED);
+ } else {
+ isFocusInSync = !as.remove(AccessibleState.FOCUSED);
+ }
+
+ // Sync office and Java ACTIVE state
+ boolean isActiveInSync;
+ if (c instanceof java.awt.Window && ((java.awt.Window) c).isActive()) {
+ isActiveInSync = !as.add(AccessibleState.ACTIVE);
+ } else {
+ isActiveInSync = !as.remove(AccessibleState.ACTIVE);
+ }
+
+ // Report out-of-sync messages
+ if (!Build.PRODUCT) {
+ if (!isFocusInSync) {
+ printOutOfSyncMessage(AccessibleState.FOCUSED, c, c.isFocusOwner());
+ }
+ if (!isActiveInSync) {
+ printOutOfSyncMessage(AccessibleState.ACTIVE, c, ((java.awt.Window) c).isActive());
+ }
+ if (as.contains(AccessibleState.ENABLED) != c.isEnabled()) {
+ printOutOfSyncMessage(AccessibleState.ENABLED, c, c.isEnabled());
+ }
+ if (as.contains(AccessibleState.FOCUSABLE) != c.isFocusable()) {
+ printOutOfSyncMessage(AccessibleState.FOCUSABLE, c, c.isFocusable());
+ }
+ if (as.contains(AccessibleState.SHOWING) != c.isShowing()) {
+ printOutOfSyncMessage(AccessibleState.SHOWING, c, c.isShowing());
+ }
+ if (as.contains(AccessibleState.VISIBLE) != c.isVisible()) {
+ printOutOfSyncMessage(AccessibleState.VISIBLE, c, c.isVisible());
+ }
+
+ // The following states are for toplevel windows only
+ if (! (c instanceof java.awt.Window)) {
+ if (as.contains(AccessibleState.ACTIVE)) {
+ printToplevelStateMessage(AccessibleState.ACTIVE, c);
+ }
+ if (as.contains(AccessibleState.ICONIFIED)) {
+ printToplevelStateMessage(AccessibleState.ICONIFIED, c);
+ }
+ if (as.contains(AccessibleState.MODAL)) {
+ printToplevelStateMessage(AccessibleState.MODAL, c);
+ }
+ }
+ }
+ return as;
+ }
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return getDefunctStateSet();
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java
new file mode 100644
index 000000000000..c3bcbde2a71a
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleTextImpl.java
@@ -0,0 +1,678 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.awt.*;
+import com.sun.star.style.*;
+import com.sun.star.uno.*;
+
+import org.openoffice.java.accessibility.logging.*;
+
+import java.text.BreakIterator;
+import java.util.Locale;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleText;
+
+import javax.swing.text.StyleConstants;
+
+/** The GenericAccessibleEditableText mapps the calls to the java AccessibleEditableText
+ * interface to the corresponding methods of the UNO XAccessibleEditableText interface.
+ */
+public class AccessibleTextImpl implements javax.accessibility.AccessibleText {
+ final static double toPointFactor = 1 / ((7 / 10) + 34.5);
+ final static String[] attributeList = {
+ "ParaAdjust", "CharBackColor", "CharWeight", "ParaFirstLineIndent",
+ "CharFontPitch", "CharHeight", "CharColor", "CharPosture",
+ "ParaLeftMargin", "ParaLineSpacing", "ParaTopMargin", "ParaBottomMargin",
+ "CharStrikeout", "CharEscapement", "ParaTabStops", "CharUnderline"
+ };
+
+ final static String[] localeAttributeList = {
+ "CharLocale", "CharLocaleAsian", "CharLocaleComplex"
+ };
+
+ XAccessibleText unoObject;
+ private javax.swing.text.TabSet tabSet = null;
+ private javax.swing.text.TabStop[] tabStops = null;
+ private static Type TextSegmentType = new Type(TextSegment.class);
+ private static Type UnoLocaleType = new Type(com.sun.star.lang.Locale.class);
+
+ /** Creates new GenericAccessibleEditableText object */
+ public AccessibleTextImpl(XAccessibleText xAccessibleText) {
+
+ if (Build.PRODUCT) {
+ unoObject = xAccessibleText;
+ } else {
+ String property = System.getProperty("AccessBridgeLogging");
+ if ((property != null) && (property.indexOf("text") != -1)) {
+ unoObject = new XAccessibleTextLog(xAccessibleText);
+ } else {
+ unoObject = xAccessibleText;
+ }
+ }
+ }
+
+ public AccessibleTextImpl() {
+ }
+
+ public static javax.accessibility.AccessibleText get(com.sun.star.uno.XInterface unoObject) {
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class, unoObject);
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+
+ protected static Object convertTextSegment(Object any) {
+ try {
+ if (AnyConverter.isObject(any)) {
+ TextSegment ts = (TextSegment)
+ AnyConverter.toObject(TextSegmentType, any);
+ if (ts != null) {
+ // Since there is nothing like a "range" object in the JAA yet,
+ // the Object[3] is a private negotiation with the JABG
+ Object[] array = { new Integer(ts.SegmentStart),
+ new Integer(ts.SegmentEnd), ts.SegmentText };
+ return array;
+ }
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+
+ return null;
+ }
+
+ /** Returns the locale object.
+ *
+ * Since switching the UI language only takes effect on the next
+ * office start, UI elements can return a cached value here - given
+ * that Java UNO initializes the default locale correctly, this is
+ * the perfect place to grab this cached values.
+ *
+ * However, since there are more sophisticated components with
+ * potentially more than one locale, we first check for the
+ * CharLocale[Asian|Complex] property.
+ */
+
+ protected java.util.Locale getLocale(int index) {
+ try {
+ com.sun.star.beans.PropertyValue[] propertyValues =
+ unoObject.getCharacterAttributes(index, localeAttributeList);
+
+ if (null != propertyValues) {
+ for (int i = 0; i < propertyValues.length; i++) {
+ com.sun.star.lang.Locale unoLocale = (com.sun.star.lang.Locale)
+ AnyConverter.toObject(UnoLocaleType, propertyValues[i]);
+ if (unoLocale != null) {
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ }
+ }
+ }
+
+ return java.util.Locale.getDefault();
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return java.util.Locale.getDefault();
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return java.util.Locale.getDefault();
+ }
+ }
+
+
+ /** Returns the string after a given index
+ *
+ * The Java word iterator has a different understanding of what
+ * a word is than the word iterator used by OOo, so we use the
+ * Java iterators to ensure maximal compatibility with Java.
+ */
+ public String getAfterIndex(int part, int index) {
+ switch (part) {
+ case AccessibleText.CHARACTER:
+ try {
+ String s = unoObject.getText();
+ return s.substring(index+1, index+2);
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.WORD:
+ try {
+ String s = unoObject.getText();
+ BreakIterator words = BreakIterator.getWordInstance(getLocale(index));
+ words.setText(s);
+ int start = words.following(index);
+ if (start == BreakIterator.DONE || start >= s.length()) {
+ return null;
+ }
+ int end = words.following(start);
+ if (end == BreakIterator.DONE || end >= s.length()) {
+ return null;
+ }
+ return s.substring(start, end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.SENTENCE:
+ try {
+ String s = unoObject.getText();
+ BreakIterator sentence =
+ BreakIterator.getSentenceInstance(getLocale(index));
+ sentence.setText(s);
+ int start = sentence.following(index);
+ if (start == BreakIterator.DONE || start >= s.length()) {
+ return null;
+ }
+ int end = sentence.following(start);
+ if (end == BreakIterator.DONE || end >= s.length()) {
+ return null;
+ }
+ return s.substring(start, end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case 4:
+ try {
+ TextSegment ts = unoObject.getTextBehindIndex(index, AccessibleTextType.LINE);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ // Workaround for #104847#
+ if (index > 0 && getCharCount() == index) {
+ return getAfterIndex(part, index - 1);
+ }
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ case 5:
+ try {
+ TextSegment ts = unoObject.getTextBehindIndex(index, AccessibleTextType.ATTRIBUTE_RUN);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ default:
+ return null;
+ }
+ }
+
+ /** Returns the zero-based offset of the caret */
+ public int getCaretPosition() {
+ try {
+ return unoObject.getCaretPosition();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the start offset within the selected text */
+ public int getSelectionStart() {
+ try {
+ int index = unoObject.getSelectionStart();
+
+ if (index == -1) {
+ index = getCaretPosition();
+ }
+
+ return index;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ protected void setAttribute(javax.swing.text.MutableAttributeSet as,
+ com.sun.star.beans.PropertyValue property) {
+ try {
+ // Map alignment attribute
+ if (property.Name.equals("ParaAdjust")) {
+ ParagraphAdjust adjust = null;
+
+ if (property.Value instanceof ParagraphAdjust) {
+ adjust = (ParagraphAdjust) property.Value;
+ } else if (property.Value instanceof Any) {
+ adjust = (ParagraphAdjust) AnyConverter.toObject(new Type(
+ ParagraphAdjust.class), property.Value);
+ } else {
+ adjust = ParagraphAdjust.fromInt(AnyConverter.toInt(
+ property.Value));
+ }
+
+ if (adjust != null) {
+ if (adjust.equals(ParagraphAdjust.LEFT)) {
+ StyleConstants.setAlignment(as,
+ StyleConstants.ALIGN_LEFT);
+ } else if (adjust.equals(ParagraphAdjust.RIGHT)) {
+ StyleConstants.setAlignment(as,
+ StyleConstants.ALIGN_RIGHT);
+ } else if (adjust.equals(ParagraphAdjust.CENTER)) {
+ StyleConstants.setAlignment(as,
+ StyleConstants.ALIGN_CENTER);
+ } else if (adjust.equals(ParagraphAdjust.BLOCK) ||
+ adjust.equals(ParagraphAdjust.STRETCH)) {
+ StyleConstants.setAlignment(as,
+ StyleConstants.ALIGN_JUSTIFIED);
+ }
+ } else if (Build.DEBUG) {
+ System.err.println(
+ "Invalid property value for key ParaAdjust: " +
+ property.Value.getClass().getName());
+ }
+
+ // Map background color
+ } else if (property.Name.equals("CharBackColor")) {
+ StyleConstants.setBackground(as,
+ new java.awt.Color(AnyConverter.toInt(property.Value)));
+
+ // FIXME: BidiLevel
+ // Set bold attribute
+ } else if (property.Name.equals("CharWeight")) {
+ boolean isBold = AnyConverter.toFloat(property.Value) > 125;
+ StyleConstants.setBold(as, isBold);
+
+ // FIXME: Java 1.4 ComponentAttribute, ComponentElementName, ComposedTextAttribute
+ // Set FirstLineIndent attribute
+ } else if (property.Name.equals("ParaFirstLineIndent")) {
+ StyleConstants.setFirstLineIndent(as,
+ (float) (toPointFactor * AnyConverter.toInt(property.Value)));
+
+ // Set font family attribute
+ } else if (property.Name.equals("CharFontPitch")) {
+ if (AnyConverter.toShort(property.Value) == 2) {
+ StyleConstants.setFontFamily(as, "Proportional");
+ }
+
+ // Set font size attribute
+ } else if (property.Name.equals("CharHeight")) {
+ StyleConstants.setFontSize(as,
+ (int) AnyConverter.toFloat(property.Value));
+
+ // Map foreground color
+ } else if (property.Name.equals("CharColor")) {
+ StyleConstants.setForeground(as,
+ new java.awt.Color(AnyConverter.toInt(property.Value)));
+
+ // FIXME: IconAttribute, IconElementName
+ // Set italic attribute
+ } else if (property.Name.equals("CharPosture")) {
+ FontSlant fs = null;
+
+ if (property.Value instanceof FontSlant) {
+ fs = (FontSlant) property.Value;
+ } else if (property.Value instanceof Any) {
+ fs = (FontSlant) AnyConverter.toObject(new Type(
+ FontSlant.class), property.Value);
+ }
+
+ if (fs != null) {
+ StyleConstants.setItalic(as, FontSlant.ITALIC.equals(fs));
+ }
+
+ // Set left indent attribute
+ } else if (property.Name.equals("ParaLeftMargin")) {
+ StyleConstants.setLeftIndent(as,
+ (float) (toPointFactor * AnyConverter.toInt(property.Value)));
+
+ // Set right indent attribute
+ } else if (property.Name.equals("ParaRightMargin")) {
+ StyleConstants.setRightIndent(as,
+ (float) (toPointFactor * AnyConverter.toInt(property.Value)));
+ }
+ // Set line spacing attribute
+ else if (property.Name.equals("ParaLineSpacing")) {
+ LineSpacing ls = null;
+
+ if (property.Value instanceof LineSpacing) {
+ ls = (LineSpacing) property.Value;
+ } else if (property.Value instanceof Any) {
+ ls = (LineSpacing) AnyConverter.toObject(new Type(
+ LineSpacing.class), property.Value);
+ }
+
+ if (ls != null) {
+ StyleConstants.setLineSpacing(as,
+ (float) (toPointFactor * ls.Height));
+ }
+ }
+ // FIXME: Java 1.4 NameAttribute, Orientation, ResolveAttribute
+ // Set space above attribute
+ else if (property.Name.equals("ParaTopMargin")) {
+ StyleConstants.setSpaceAbove(as,
+ (float) (toPointFactor * AnyConverter.toInt(property.Value)));
+ }
+ // Set space below attribute
+ else if (property.Name.equals("ParaBottomMargin")) {
+ StyleConstants.setSpaceBelow(as,
+ (float) (toPointFactor * AnyConverter.toInt(property.Value)));
+
+ // Set strike through attribute
+ } else if (property.Name.equals("CharStrikeout")) {
+ boolean isStrikeThrough = (FontStrikeout.NONE != AnyConverter.toShort(property.Value));
+ StyleConstants.setStrikeThrough(as, isStrikeThrough);
+
+ // Set sub-/superscript attribute
+ } else if (property.Name.equals("CharEscapement")) {
+ short value = AnyConverter.toShort(property.Value);
+
+ if (value > 0) {
+ StyleConstants.setSuperscript(as, true);
+ } else if (value < 0) {
+ StyleConstants.setSubscript(as, true);
+ }
+
+ // Set tabset attribute
+ } else if (property.Name.equals("ParaTabStops")) {
+ TabStop[] unoTabStops = (TabStop[]) AnyConverter.toArray(property.Value);
+ javax.swing.text.TabStop[] tabStops = new javax.swing.text.TabStop[unoTabStops.length];
+
+ for (int index2 = 0; index2 < unoTabStops.length; index2++) {
+ float pos = (float) (toPointFactor * unoTabStops[index2].Position);
+
+ if (unoTabStops[index2].Alignment.equals(TabAlign.LEFT)) {
+ tabStops[index2] = new javax.swing.text.TabStop(pos,
+ javax.swing.text.TabStop.ALIGN_LEFT,
+ javax.swing.text.TabStop.LEAD_NONE);
+ } else if (unoTabStops[index2].Alignment.equals(
+ TabAlign.CENTER)) {
+ tabStops[index2] = new javax.swing.text.TabStop(pos,
+ javax.swing.text.TabStop.ALIGN_CENTER,
+ javax.swing.text.TabStop.LEAD_NONE);
+ } else if (unoTabStops[index2].Alignment.equals(
+ TabAlign.RIGHT)) {
+ tabStops[index2] = new javax.swing.text.TabStop(pos,
+ javax.swing.text.TabStop.ALIGN_RIGHT,
+ javax.swing.text.TabStop.LEAD_NONE);
+ } else if (unoTabStops[index2].Alignment.equals(
+ TabAlign.DECIMAL)) {
+ tabStops[index2] = new javax.swing.text.TabStop(pos,
+ javax.swing.text.TabStop.ALIGN_DECIMAL,
+ javax.swing.text.TabStop.LEAD_NONE);
+ } else {
+ tabStops[index2] = new javax.swing.text.TabStop(pos);
+ }
+ }
+
+ // Re-use tabSet object if possible to make AttributeSet.equals work
+ if ((this.tabSet == null) ||
+ !java.util.Arrays.equals(tabStops, this.tabStops)) {
+ this.tabStops = tabStops;
+ this.tabSet = new javax.swing.text.TabSet(tabStops);
+ }
+
+ StyleConstants.setTabSet(as, this.tabSet);
+
+ // Set underline attribute
+ } else if (property.Name.equals("CharUnderline")) {
+ boolean isUnderline = (FontUnderline.NONE != AnyConverter.toShort(property.Value));
+ StyleConstants.setUnderline(as, isUnderline);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ if (Build.DEBUG) {
+ System.err.println("*** ERROR *** " + e.getClass().getName() +
+ " caught for property " + property.Name + ": " +
+ e.getMessage());
+ System.err.println(" value is of type " +
+ property.Value.getClass().getName());
+ }
+ }
+ }
+
+ /** Returns the AttributSet for a given character at a given index */
+ public javax.swing.text.AttributeSet getCharacterAttribute(int index) {
+ try {
+ com.sun.star.beans.PropertyValue[] propertyValues = unoObject.getCharacterAttributes(index,
+ attributeList);
+ javax.swing.text.SimpleAttributeSet attributeSet = new javax.swing.text.SimpleAttributeSet();
+
+ if (null != propertyValues) {
+ for (int i = 0; i < propertyValues.length; i++) {
+ setAttribute(attributeSet, propertyValues[i]);
+ }
+ }
+
+ return attributeSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ if ((index > 0) && (getCharCount() == index)) {
+ return getCharacterAttribute(index - 1);
+ }
+ return null;
+ }
+ }
+
+ /** Given a point in local coordinates, return the zero-based index of the character under that point */
+ public int getIndexAtPoint(java.awt.Point point) {
+ try {
+ return unoObject.getIndexAtPoint(new Point(point.x, point.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the end offset within the selected text */
+ public int getSelectionEnd() {
+ try {
+ int index = unoObject.getSelectionEnd();
+
+ if (index == -1) {
+ index = getCaretPosition();
+ }
+
+ return index;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the string before a given index
+ *
+ * The Java word iterator has a different understanding of what
+ * a word is than the word iterator used by OOo, so we use the
+ * Java iterators to ensure maximal compatibility with Java.
+ */
+ public java.lang.String getBeforeIndex(int part, int index) {
+ switch (part) {
+ case AccessibleText.CHARACTER:
+ try {
+ String s = unoObject.getText();
+ return s.substring(index-1, index);
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.WORD:
+ try {
+ String s = unoObject.getText();
+ BreakIterator words = BreakIterator.getWordInstance(getLocale(index));
+ words.setText(s);
+ int end = words.following(index);
+ end = words.previous();
+ int start = words.previous();
+ if (start == BreakIterator.DONE) {
+ return null;
+ }
+ return s.substring(start, end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.SENTENCE:
+ try {
+ String s = unoObject.getText();
+ BreakIterator sentence =
+ BreakIterator.getSentenceInstance(getLocale(index));
+ sentence.setText(s);
+ int end = sentence.following(index);
+ end = sentence.previous();
+ int start = sentence.previous();
+ if (start == BreakIterator.DONE) {
+ return null;
+ }
+ return s.substring(start, end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case 4:
+ try {
+ TextSegment ts = unoObject.getTextBeforeIndex(index, AccessibleTextType.LINE);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ // Workaround for #104847#
+ if (index > 0 && getCharCount() == index) {
+ return getBeforeIndex(part, index - 1);
+ }
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ case 5:
+ try {
+ TextSegment ts = unoObject.getTextBeforeIndex(index, AccessibleTextType.ATTRIBUTE_RUN);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ default:
+ return null;
+ }
+ }
+
+
+ /** Returns the string at a given index
+ *
+ * The Java word iterator has a different understanding of what
+ * a word is than the word iterator used by OOo, so we use the
+ * Java iterators to ensure maximal compatibility with Java.
+ */
+ public java.lang.String getAtIndex(int part, int index) {
+ switch (part) {
+ case AccessibleText.CHARACTER:
+ try {
+ String s = unoObject.getText();
+ return s.substring(index, index + 1);
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.WORD:
+ try {
+ String s = unoObject.getText();
+ BreakIterator words = BreakIterator.getWordInstance(getLocale(index));
+ words.setText(s);
+ int end = words.following(index);
+ return s.substring(words.previous(), end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case AccessibleText.SENTENCE:
+ try {
+ String s = unoObject.getText();
+ BreakIterator sentence =
+ BreakIterator.getSentenceInstance(getLocale(index));
+ sentence.setText(s);
+ int end = sentence.following(index);
+ return s.substring(sentence.previous(), end);
+ } catch (IllegalArgumentException e) {
+ return null;
+ } catch (IndexOutOfBoundsException e) {
+ return null;
+ }
+ case 4:
+ try {
+ TextSegment ts = unoObject.getTextAtIndex(index, AccessibleTextType.LINE);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ // Workaround for #104847#
+ if (index > 0 && getCharCount() == index) {
+ return getAtIndex(part, index - 1);
+ }
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+ case 5:
+ try {
+ TextSegment ts = unoObject.getTextAtIndex(index, AccessibleTextType.ATTRIBUTE_RUN);
+ return ts.SegmentText;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ return null;
+ }
+
+ default:
+ return null;
+ }
+ }
+
+ /** Returns the number of characters (valid indicies) */
+ public int getCharCount() {
+ try {
+ return unoObject.getCharacterCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return 0;
+ }
+
+ /** Returns the portion of the text that is selected */
+ public java.lang.String getSelectedText() {
+ try {
+ return unoObject.getSelectedText();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return null;
+ }
+
+ /** Determines the bounding box of the character at the given index into the string */
+ public java.awt.Rectangle getCharacterBounds(int index) {
+ try {
+ Rectangle unoRect = unoObject.getCharacterBounds(index);
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ if ((index > 0) && (getCharCount() == index)) {
+ return getCharacterBounds(index - 1);
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return new java.awt.Rectangle();
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/AccessibleValueImpl.java b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleValueImpl.java
new file mode 100644
index 000000000000..cabbf3f5d323
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/AccessibleValueImpl.java
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.XAccessibleValue;
+import com.sun.star.uno.AnyConverter;
+
+/** The AccessibleValueImpl mappes the calls to the java AccessibleValue
+ * interface to the corresponding methods of the UNO XAccessibleValue interface
+ */
+public class AccessibleValueImpl implements javax.accessibility.AccessibleValue {
+ protected XAccessibleValue unoObject;
+
+ /** Creates new AccessibleValueImpl */
+ public AccessibleValueImpl(XAccessibleValue xAccessibleValue) {
+ unoObject = xAccessibleValue;
+ }
+
+ public static java.lang.Number toNumber(java.lang.Object any) {
+ try {
+ if(AnyConverter.isByte(any)) {
+ return new Byte(AnyConverter.toByte(any));
+ } else if (AnyConverter.isShort(any)) {
+ return new Short(AnyConverter.toShort(any));
+ } else if (AnyConverter.isInt(any)) {
+ return new Integer(AnyConverter.toInt(any));
+ } else if (AnyConverter.isLong(any)) {
+ return new Long(AnyConverter.toLong(any));
+ } else if (AnyConverter.isFloat(any)) {
+ return new Float(AnyConverter.toFloat(any));
+ } else if (AnyConverter.isDouble(any)) {
+ return new Double(AnyConverter.toDouble(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+
+ return null;
+ }
+
+ public java.lang.Number getMinimumAccessibleValue() {
+ try {
+ return toNumber(unoObject.getMinimumValue());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public java.lang.Number getCurrentAccessibleValue() {
+ try {
+ return toNumber(unoObject.getCurrentValue());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public java.lang.Number getMaximumAccessibleValue() {
+ try {
+ return toNumber(unoObject.getMaximumValue());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public boolean setCurrentAccessibleValue(java.lang.Number number) {
+ try {
+ return unoObject.setCurrentValue(number);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Alert.java b/accessibility/bridge/org/openoffice/java/accessibility/Alert.java
new file mode 100644
index 000000000000..e853fabecba0
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Alert.java
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleRole;
+import com.sun.star.accessibility.*;
+
+public class Alert extends Dialog {
+
+ protected Alert(java.awt.Frame owner, XAccessibleComponent xAccessibleComponent) {
+ super(owner, xAccessibleComponent);
+ }
+
+ protected Alert(java.awt.Frame owner, String name, XAccessibleComponent xAccessibleComponent) {
+ super(owner, name, xAccessibleComponent);
+ }
+
+ protected Alert(java.awt.Frame owner, String name, boolean modal, XAccessibleComponent xAccessibleComponent) {
+ super(owner, name, modal, xAccessibleComponent);
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleAlert();
+ accessibleContext.setAccessibleName(getTitle());
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleAlert extends AccessibleDialog {
+
+ protected AccessibleAlert() {
+ super();
+ }
+
+ public AccessibleRole getAccessibleRole() {
+ return AccessibleRole.ALERT;
+ }
+ };
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Application.java b/accessibility/bridge/org/openoffice/java/accessibility/Application.java
new file mode 100644
index 000000000000..c67da714f4df
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Application.java
@@ -0,0 +1,45 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.Accessible;
+import javax.accessibility.AccessibleContext;
+
+public class Application extends java.awt.Frame implements Accessible {
+
+ protected AccessibleContext accessibleContext = null;
+
+ protected Application() {
+ super();
+ }
+
+ public boolean isShowing() {
+ return true;
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Button.java b/accessibility/bridge/org/openoffice/java/accessibility/Button.java
new file mode 100644
index 000000000000..44bccc30ffc1
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Button.java
@@ -0,0 +1,157 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+class Button extends AbstractButton implements javax.accessibility.Accessible {
+
+ public Button(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleButtonListener();
+ }
+
+ protected class AccessibleButtonListener
+ extends AccessibleUNOComponentListener {
+ protected AccessibleButtonListener() {
+ super();
+ }
+
+ protected javax.accessibility.AccessibleContext getContext( Object any ) {
+ try {
+ XAccessible xAccessible = (XAccessible)
+ AnyConverter.toObject( AccessibleObjectFactory.XAccessibleType, any );
+
+ javax.accessibility.Accessible accessible =
+ (javax.accessibility.Accessible) Button.this.getComponent( xAccessible );
+
+ return accessible.getAccessibleContext();
+ } catch( com.sun.star.uno.Exception e ) {
+ return null;
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.CHILD:
+ java.awt.Component c = getComponent(unoAccessible);
+
+ Object values[] = { null, null };
+
+ if (AnyConverter.isObject(event.OldValue)) {
+ values[0] = getContext( event.OldValue );
+ }
+
+ if (AnyConverter.isObject(event.NewValue)) {
+ values[1] = getContext( event.NewValue);
+ }
+
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ values[0], values[1]);
+ break;
+
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleButton();
+ }
+
+ protected java.awt.Component getComponent(XAccessible unoAccessible) {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(unoAccessible);
+
+ if (c == null) {
+ c = AccessibleObjectFactory.createAccessibleComponent(unoAccessible);
+
+ if (c instanceof javax.accessibility.Accessible) {
+ ((javax.accessibility.Accessible) c).getAccessibleContext()
+ .setAccessibleParent(this);
+ }
+
+ if( c instanceof java.awt.Container ) {
+ AccessibleObjectFactory.populateContainer((java.awt.Container) c, unoAccessible.getAccessibleContext() );
+ }
+ }
+
+ return c;
+ }
+
+ protected class AccessibleButton extends AccessibleAbstractButton {
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.PUSH_BUTTON;
+ }
+
+ /** Returns the number of accessible children of the object */
+ public int getAccessibleChildrenCount() {
+ try {
+ return unoAccessibleContext.getAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the specified Accessible child of the object */
+ public synchronized javax.accessibility.Accessible getAccessibleChild( int i) {
+ try {
+ return (javax.accessibility.Accessible) getComponent( unoAccessibleContext.getAccessibleChild(i) );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ return null;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = getComponent(unoAccessibleComponent.getAccessibleAtPoint(
+ new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/CheckBox.java b/accessibility/bridge/org/openoffice/java/accessibility/CheckBox.java
new file mode 100644
index 000000000000..624dfd048c89
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/CheckBox.java
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+class CheckBox extends ToggleButton {
+
+ public CheckBox(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleCheckBox();
+ }
+
+ protected class AccessibleCheckBox extends AccessibleToggleButton {
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.CHECK_BOX;
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/ComboBox.java b/accessibility/bridge/org/openoffice/java/accessibility/ComboBox.java
new file mode 100644
index 000000000000..5f5cf4a34374
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/ComboBox.java
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+import javax.swing.SwingConstants;
+
+
+/**
+ */
+public class ComboBox extends Container {
+ private XAccessibleAction unoAccessibleAction = null;
+
+ public ComboBox(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(javax.accessibility.AccessibleRole.COMBO_BOX, xAccessible,
+ xAccessibleContext);
+ }
+
+ /** Appends the specified component to the end of this container */
+ public java.awt.Component add(java.awt.Component c) {
+ // List should be always the first child
+ if (c instanceof List) {
+ return super.add(c, 0);
+ } else {
+ return super.add(c);
+ }
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleComboBox();
+ }
+
+ protected class AccessibleComboBox extends AccessibleContainer
+ implements javax.accessibility.AccessibleAction {
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleComboBox() {
+ super();
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the AccessibleAction associated with this object that supports one or more actions */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ if (unoAccessibleAction == null) {
+ unoAccessibleAction = (XAccessibleAction) UnoRuntime.queryInterface(XAccessibleAction.class,
+ unoAccessibleContext);
+
+ if (unoAccessibleAction == null) {
+ return null;
+ }
+ }
+
+ return this;
+ }
+
+ /*
+ * AccessibleAction
+ */
+
+ /** Performs the specified Action on the object */
+ public boolean doAccessibleAction(int param) {
+ if (param == 0) {
+ try {
+ return unoAccessibleAction.doAccessibleAction(0);
+ } catch (com.sun.star.uno.Exception e) {
+ }
+ }
+
+ return false;
+ }
+
+ /** Returns a description of the specified action of the object */
+ public java.lang.String getAccessibleActionDescription(int param) {
+ return javax.swing.UIManager.getString("ComboBox.togglePopupText");
+ }
+
+ /** Returns the number of accessible actions available in this object */
+ public int getAccessibleActionCount() {
+ return 1;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Component.java b/accessibility/bridge/org/openoffice/java/accessibility/Component.java
new file mode 100644
index 000000000000..21043e1f5098
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Component.java
@@ -0,0 +1,740 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+public abstract class Component extends java.awt.Component {
+ public static final Type RectangleType = new Type(com.sun.star.awt.Rectangle.class);
+ public static final Type SelectionType = new Type(com.sun.star.awt.Selection.class);
+
+ protected XAccessible unoAccessible;
+ protected XAccessibleContext unoAccessibleContext;
+ protected XAccessibleComponent unoAccessibleComponent;
+
+ protected boolean disposed = false;
+
+ protected Component(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super();
+ unoAccessible = xAccessible;
+ unoAccessibleContext = xAccessibleContext;
+ unoAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class, xAccessibleContext);
+ // Add the event listener right away, because the global focus notification doesn't
+ // work yet ..
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class,
+ unoAccessibleComponent);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(createEventListener());
+ }
+ }
+
+ /**
+ * Determines whether this <code>Component</code> is showing on screen.
+ * This means that the component must be visible, and it must be in a
+ * <code>container</code> that is visible and showing.
+ * @see #addNotify
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+ return (parent == null) || parent.isShowing();
+ }
+ return false;
+ }
+
+ /**
+ * Makes this <code>Component</code> displayable by connecting it to a
+ * native screen resource.
+ * This method is called internally by the toolkit and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public void addNotify() {
+ }
+
+ /**
+ * Makes this <code>Component</code> undisplayable by destroying it native
+ * screen resource.
+ * This method is called by the toolkit internally and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #addNotify
+ * @since JDK1.0
+ */
+ public void removeNotify() {
+ }
+
+ /*
+ * Fake the java focus handling. This is necessary to keep OOo focus
+ * in sync with the java focus. See java.awt.DefaultKeyboardFocusManager
+ * for implementation details.
+ **/
+
+ /** Requests focus for this object */
+ public void requestFocus() {
+ }
+
+ /** Requests focus for this object */
+ public boolean requestFocus(boolean temporary) {
+ // Must be a no-op to make focus handling work
+ return true;
+ }
+
+ /** Requests the focus for this object in the containing window */
+ public boolean requestFocusInWindow() {
+ return requestFocusInWindow(false);
+ }
+
+ /** Requests the focus for this object in the containing window */
+ protected boolean requestFocusInWindow(boolean temporary) {
+ if (isFocusable() && isVisible()) {
+ getEventQueue().postEvent(new java.awt.event.FocusEvent(this, java.awt.event.FocusEvent.FOCUS_GAINED, temporary));
+ return true;
+ }
+ return false;
+ }
+
+ public Object[] getAccessibleComponents(Object[] targetSet) {
+ try {
+ java.util.ArrayList list = new java.util.ArrayList(targetSet.length);
+ for (int i=0; i < targetSet.length; i++) {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ (XAccessible) UnoRuntime.queryInterface(XAccessible.class, targetSet[i]));
+ if (c != null) {
+ list.add(c);
+ }
+ }
+ list.trimToSize();
+ return list.toArray();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ protected java.awt.EventQueue getEventQueue() {
+ return java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ }
+
+ protected class PropertyChangeBroadcaster implements Runnable {
+ String propertyName;
+ Object oldValue;
+ Object newValue;
+
+ public PropertyChangeBroadcaster(String name, Object param1, Object param2) {
+ propertyName = name;
+ oldValue = param1;
+ newValue = param2;
+ }
+
+ public void run() {
+ // Because this code is executed in the DispatchThread, it is better to catch every
+ // exception that might occur
+ try {
+ AccessibleContext ac = accessibleContext;
+ if (ac != null) {
+ ac.firePropertyChange(propertyName, oldValue, newValue);
+ }
+ } catch (java.lang.Exception e) {
+ if (Build.DEBUG) {
+ System.err.println(e.getClass().getName() + " caught propagating " + propertyName + " event: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ protected void firePropertyChange(String property, Object oldValue, Object newValue) {
+ getEventQueue().invokeLater(new PropertyChangeBroadcaster(property, oldValue, newValue));
+ }
+
+ protected void fireStatePropertyChange(AccessibleState state, boolean set) {
+ PropertyChangeBroadcaster broadcaster;
+
+// if (Build.DEBUG) {
+// System.err.println("[" + AccessibleRoleAdapter.getAccessibleRole(unoAccessibleContext.getAccessibleRole()) + "] " +
+// unoAccessibleContext.getAccessibleName() + " is " + (set ? "now " : "no longer ") + state);
+// }
+
+ if (set) {
+ broadcaster = new PropertyChangeBroadcaster(
+ accessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, state);
+ } else {
+ broadcaster = new PropertyChangeBroadcaster(
+ accessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ state, null);
+ }
+ getEventQueue().invokeLater(broadcaster);
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleUNOComponentListener implements XAccessibleEventListener {
+
+ protected AccessibleUNOComponentListener() {
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.ACTIVE:
+ // Only frames should be active
+ break;
+ case AccessibleStateType.ARMED:
+ fireStatePropertyChange(AccessibleState.ARMED, enable);
+ break;
+ case AccessibleStateType.CHECKED:
+ fireStatePropertyChange(AccessibleState.CHECKED, enable);
+ break;
+ case AccessibleStateType.ENABLED:
+ setEnabled(enable);
+ // Since we can't access awt.Componet.accessibleContext, we need to fire
+ // this event manually ..
+ fireStatePropertyChange(AccessibleState.ENABLED, enable);
+ break;
+ case AccessibleStateType.FOCUSED:
+ getEventQueue().postEvent(new java.awt.event.FocusEvent(
+ Component.this, enable ?
+ java.awt.event.FocusEvent.FOCUS_GAINED :
+ java.awt.event.FocusEvent.FOCUS_LOST));
+ break;
+ case AccessibleStateType.PRESSED:
+ fireStatePropertyChange(AccessibleState.PRESSED, enable);
+ break;
+ case AccessibleStateType.SELECTED:
+ fireStatePropertyChange(AccessibleState.SELECTED, enable);
+ break;
+ case AccessibleStateType.SENSITIVE:
+ // This state equals ENABLED in OOo (but not in Gtk+) and does not exist in Java 1.5
+ break;
+ case AccessibleStateType.SHOWING:
+// fireStatePropertyChange(AccessibleState.SHOWING, enable);
+ break;
+ case AccessibleStateType.VISIBLE:
+ Component.this.setVisible(enable);
+ break;
+ default:
+ if (Build.DEBUG) {
+ System.err.println("[component]: " + getName() + "unexpected state change " + state);
+ }
+ break;
+ }
+ }
+
+ /** Updates the accessible name and fires the appropriate PropertyChangedEvent */
+ protected void handleNameChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ if (accessibleContext != null) {
+ accessibleContext.setAccessibleName(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the accessible description and fires the appropriate PropertyChangedEvent */
+ protected void handleDescriptionChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ if (accessibleContext != null) {
+ accessibleContext.setAccessibleDescription(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the internal states and fires the appropriate PropertyChangedEvent */
+ protected void handleStateChangedEvent(Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ setComponentState(AnyConverter.toShort(any1), false);
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ setComponentState(AnyConverter.toShort(any2), true);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+
+ if ( !disposed ) {
+
+ switch (event.EventId) {
+ case AccessibleEventId.ACTION_CHANGED:
+ firePropertyChange(accessibleContext.ACCESSIBLE_ACTION_PROPERTY,
+ toNumber(event.OldValue), toNumber(event.NewValue));
+ break;
+ case AccessibleEventId.NAME_CHANGED:
+ // Set the accessible name for the corresponding context, which will fire a property
+ // change event itself
+ handleNameChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.DESCRIPTION_CHANGED:
+ // Set the accessible description for the corresponding context, which will fire a property
+ // change event itself - so do not set propertyName !
+ handleDescriptionChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (Build.DEBUG) {
+ System.out.println("Unexpected child event for object of role " + getAccessibleContext().getAccessibleRole());
+ }
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ // Update the internal state set and fire the appropriate PropertyChangedEvent
+ handleStateChangedEvent(event.OldValue, event.NewValue);
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY, null, null);
+ break;
+ case AccessibleEventId.TEXT_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_TEXT_PROPERTY,
+ AccessibleTextImpl.convertTextSegment(event.OldValue),
+ AccessibleTextImpl.convertTextSegment(event.NewValue));
+ break;
+ /*
+ * the Java AccessBridge for GNOME maps SELECTION_PROPERTY change events
+ * for objects of role TEXT to object:text-selection-changed
+ */
+ case AccessibleEventId.TEXT_SELECTION_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_SELECTION_PROPERTY, null, null);
+ break;
+ case AccessibleEventId.CARET_CHANGED:
+ firePropertyChange(accessibleContext.ACCESSIBLE_CARET_PROPERTY, toNumber(event.OldValue), toNumber(event.NewValue));
+ break;
+ case AccessibleEventId.VALUE_CHANGED:
+ firePropertyChange(accessibleContext.ACCESSIBLE_VALUE_PROPERTY, toNumber(event.OldValue), toNumber(event.NewValue));
+ default:
+ // Warn about unhandled events
+ if(Build.DEBUG) {
+ System.out.println(this + ": unhandled accessibility event id=" + event.EventId);
+ }
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify that the UNO component is disposing */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ disposed = true;
+ AccessibleObjectFactory.disposing(Component.this);
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleUNOComponentListener();
+ }
+
+ protected javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** This method actually creates the AccessibleContext object returned by
+ * getAccessibleContext().
+ */
+ protected javax.accessibility.AccessibleContext createAccessibleContext() {
+ return null;
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public final javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ try {
+ AccessibleContext ac = createAccessibleContext();
+ if (ac != null) {
+ // Set accessible name and description here to avoid
+ // unnecessary property change events later ..
+ ac.setAccessibleName(unoAccessibleContext.getAccessibleName());
+ ac.setAccessibleDescription(unoAccessibleContext.getAccessibleDescription());
+ accessibleContext = ac;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return accessibleContext;
+ }
+
+ protected abstract class AccessibleUNOComponent extends java.awt.Component.AccessibleAWTComponent
+ implements javax.accessibility.AccessibleExtendedComponent {
+
+ protected java.awt.event.ComponentListener accessibleComponentHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when shown/hidden..
+ */
+ protected class AccessibleComponentHandler implements java.awt.event.ComponentListener {
+ public void componentHidden(java.awt.event.ComponentEvent e) {
+ AccessibleUNOComponent.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.VISIBLE, null);
+ }
+
+ public void componentShown(java.awt.event.ComponentEvent e) {
+ AccessibleUNOComponent.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, AccessibleState.VISIBLE);
+ }
+
+ public void componentMoved(java.awt.event.ComponentEvent e) {
+ }
+
+ public void componentResized(java.awt.event.ComponentEvent e) {
+ }
+ } // inner class AccessibleComponentHandler
+
+ protected java.awt.event.FocusListener accessibleFocusHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when focus events happen
+ */
+ protected class AccessibleFocusHandler implements java.awt.event.FocusListener {
+ public void focusGained(java.awt.event.FocusEvent event) {
+ AccessibleUNOComponent.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, AccessibleState.FOCUSED);
+ if (Build.DEBUG) {
+ System.err.println("[" + getAccessibleRole() + "] " + getAccessibleName() + " is now focused");
+ }
+ }
+ public void focusLost(java.awt.event.FocusEvent event) {
+ AccessibleUNOComponent.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.FOCUSED, null);
+ if (Build.DEBUG) {
+ System.err.println("[" + getAccessibleRole() + "] " + getAccessibleName() + " is no longer focused");
+ }
+ }
+ } // inner class AccessibleFocusHandler
+
+ protected int propertyChangeListenerCount = 0;
+
+ /**
+ * Add a PropertyChangeListener to the listener list.
+ *
+ * @param listener The PropertyChangeListener to be added
+ */
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (propertyChangeListenerCount++ == 0) {
+ accessibleComponentHandler = new AccessibleComponentHandler();
+ Component.this.addComponentListener(accessibleComponentHandler);
+
+ accessibleFocusHandler = new AccessibleFocusHandler();
+ Component.this.addFocusListener(accessibleFocusHandler);
+ }
+ super.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Remove a PropertyChangeListener from the listener list.
+ * This removes a PropertyChangeListener that was registered
+ * for all properties.
+ *
+ * @param listener The PropertyChangeListener to be removed
+ */
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (--propertyChangeListenerCount == 0) {
+ Component.this.removeComponentListener(accessibleComponentHandler);
+ accessibleComponentHandler = null;
+
+ Component.this.removeFocusListener(accessibleFocusHandler);
+ accessibleFocusHandler = null;
+ }
+ super.removePropertyChangeListener(listener);
+ }
+
+ /**
+ * Gets the current state set of this object.
+ *
+ * @return an instance of <code>AccessibleStateSet</code>
+ * containing the current state set of the object
+ * @see AccessibleState
+ */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ if (disposed)
+ return AccessibleStateAdapter.getDefunctStateSet();
+
+ try {
+ return AccessibleStateAdapter.getAccessibleStateSet(Component.this,
+ unoAccessibleContext.getAccessibleStateSet());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return AccessibleStateAdapter.getDefunctStateSet();
+ }
+ }
+
+ /** Gets the locale of the component */
+ public java.util.Locale getLocale() throws java.awt.IllegalComponentStateException {
+ try {
+ com.sun.star.lang.Locale unoLocale = unoAccessible.getAccessibleContext().getLocale();
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ throw new java.awt.IllegalComponentStateException(e.getMessage());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return java.util.Locale.getDefault();
+ }
+ }
+
+ /*
+ * AccessibleExtendedComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return Component.this.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return Component.this.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return Component.this.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoAccessibleComponent.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+// if (Build.DEBUG) {
+// System.err.println("Returning location on screen( " + unoPoint.X + ", " + unoPoint.Y + " )" );
+// }
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocation();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoAccessibleComponent.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoAccessibleComponent.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ // Not supported by this implementation
+ return null;
+ }
+
+ public boolean isFocusTraversable() {
+ return Component.this.isFocusable();
+ }
+
+ public void requestFocus() {
+ unoAccessibleComponent.grabFocus();
+ }
+
+ public String getToolTipText() {
+ try {
+ XAccessibleExtendedComponent unoAccessibleExtendedComponent = (XAccessibleExtendedComponent)
+ UnoRuntime.queryInterface(XAccessibleExtendedComponent.class, unoAccessibleComponent);
+ if (unoAccessibleExtendedComponent != null) {
+ return unoAccessibleExtendedComponent.getToolTipText();
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ return null;
+ }
+
+ public String getTitledBorderText() {
+ try {
+ XAccessibleExtendedComponent unoAccessibleExtendedComponent = (XAccessibleExtendedComponent)
+ UnoRuntime.queryInterface(XAccessibleExtendedComponent.class, unoAccessibleComponent);
+ if (unoAccessibleExtendedComponent != null) {
+ return unoAccessibleExtendedComponent.getTitledBorderText();
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ return null;
+ }
+
+ public javax.accessibility.AccessibleKeyBinding getAccessibleKeyBinding() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleComponent);
+ if (unoAccessibleAction != null) {
+ XAccessibleKeyBinding unoAccessibleKeyBinding = unoAccessibleAction.getAccessibleActionKeyBinding(0);
+ if (unoAccessibleKeyBinding != null) {
+ return new AccessibleKeyBinding(unoAccessibleKeyBinding);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ return null;
+ }
+ }
+
+ // Extract a number from a UNO any
+ public static java.lang.Number toNumber(java.lang.Object any) {
+ try {
+ if (AnyConverter.isByte(any)) {
+ return new Byte(AnyConverter.toByte(any));
+ } else if (AnyConverter.isShort(any)) {
+ return new Short(AnyConverter.toShort(any));
+ } else if (AnyConverter.isInt(any)) {
+ return new Integer(AnyConverter.toInt(any));
+ } else if (AnyConverter.isLong(any)) {
+ return new Long(AnyConverter.toLong(any));
+ } else if (AnyConverter.isFloat(any)) {
+ return new Float(AnyConverter.toFloat(any));
+ } else if (AnyConverter.isDouble(any)) {
+ return new Double(AnyConverter.toDouble(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ return null;
+ }
+
+ public String toString() {
+ return UnoRuntime.generateOid(unoAccessible);
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Container.java b/accessibility/bridge/org/openoffice/java/accessibility/Container.java
new file mode 100644
index 000000000000..257cdab8b757
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Container.java
@@ -0,0 +1,763 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+public class Container extends java.awt.Container implements javax.accessibility.Accessible {
+
+ protected XAccessible unoAccessible;
+ protected XAccessibleContext unoAccessibleContext;
+ protected XAccessibleComponent unoAccessibleComponent = null;
+
+ protected javax.accessibility.AccessibleRole accessibleRole;
+ protected javax.accessibility.AccessibleText accessibleText;
+ protected boolean disposed = false;
+
+ protected Container(javax.accessibility.AccessibleRole role,
+ XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ accessibleRole = role;
+ unoAccessible = xAccessible;
+ unoAccessibleContext = xAccessibleContext;
+ unoAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class,
+ xAccessibleContext);
+
+ // Add the event listener right away, because the global focus notification doesn't
+ // work yet ..
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class,
+ unoAccessibleContext);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(createEventListener());
+ }
+ }
+
+ /**
+ * Determines whether this <code>Container</code> is showing on screen.
+ * This means that the component must be visible, and it must be in a
+ * <code>container</code> that is visible and showing.
+ * @see #addNotify
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+ return (parent == null) || parent.isShowing();
+ }
+ return false;
+ }
+
+ /**
+ * Makes this <code>Container</code> displayable by connecting it to a
+ * native screen resource.
+ * This method is called internally by the toolkit and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public void addNotify() {
+ }
+
+ /**
+ * Makes this <code>Container</code> undisplayable by destroying it native
+ * screen resource.
+ * This method is called by the toolkit internally and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #addNotify
+ * @since JDK1.0
+ */
+ public void removeNotify() {
+ }
+
+ /*
+ * Fake the java focus handling. This is necessary to keep OOo focus
+ * in sync with the java focus. See java.awt.DefaultKeyboardFocusManager
+ * for implementation details.
+ **/
+
+ /** Requests focus for this object */
+ public void requestFocus() {
+ }
+
+ /** Requests focus for this object */
+ public boolean requestFocus(boolean temporary) {
+ // Must be a no-op to make focus handling work
+ return true;
+ }
+
+ /** Requests the focus for this object in the containing window */
+ public boolean requestFocusInWindow() {
+ return requestFocusInWindow(false);
+ }
+
+ /** Requests the focus for this object in the containing window */
+ protected boolean requestFocusInWindow(boolean temporary) {
+ if (isFocusable() && isVisible()) {
+ getEventQueue().postEvent(new java.awt.event.FocusEvent(this, java.awt.event.FocusEvent.FOCUS_GAINED, temporary));
+ return true;
+ }
+ return false;
+ }
+
+ public Object[] getAccessibleComponents(Object[] targetSet) {
+ try {
+ java.util.ArrayList list = new java.util.ArrayList(targetSet.length);
+ for (int i=0; i < targetSet.length; i++) {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ (XAccessible) UnoRuntime.queryInterface(XAccessible.class, targetSet[i]));
+ if (c != null) {
+ list.add(c);
+ }
+ }
+ list.trimToSize();
+ return list.toArray();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ protected java.awt.EventQueue getEventQueue() {
+ return java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ }
+
+ protected class PropertyChangeBroadcaster implements Runnable {
+ String propertyName;
+ Object oldValue;
+ Object newValue;
+
+ public PropertyChangeBroadcaster(String name, Object param1, Object param2) {
+ propertyName = name;
+ oldValue = param1;
+ newValue = param2;
+ }
+
+ public void run() {
+ // Because this code is executed in the DispatchThread, it is better tocatch every
+ // exception that might occur
+ try {
+ AccessibleContext ac = Container.this.accessibleContext;
+ if (ac != null) {
+ ac.firePropertyChange(propertyName, oldValue, newValue);
+ }
+ } catch (java.lang.Exception e) {
+ if (Build.DEBUG) {
+ System.err.println(e.getClass().getName() + " caught propagating " + propertyName + " event: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ protected void firePropertyChange(String property, Object oldValue, Object newValue) {
+ getEventQueue().invokeLater(new PropertyChangeBroadcaster(property, oldValue, newValue));
+ }
+
+ protected void fireStatePropertyChange(AccessibleState state, boolean set) {
+ PropertyChangeBroadcaster broadcaster;
+ if (set) {
+ broadcaster = new PropertyChangeBroadcaster(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, state);
+ } else {
+ broadcaster = new PropertyChangeBroadcaster(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ state, null);
+ }
+ getEventQueue().invokeLater(broadcaster);
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleContainerListener implements XAccessibleEventListener {
+
+ protected AccessibleContainerListener() {
+ }
+
+ protected java.awt.EventQueue getEventQueue() {
+ return java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.ACTIVE:
+ // Only frames should be active
+ break;
+ case AccessibleStateType.ENABLED:
+ setEnabled(enable);
+ // Since we can't access awt.Componet.accessibleContext, we need to fire
+ // this event manually ..
+ fireStatePropertyChange(AccessibleState.ENABLED, enable);
+ break;
+ case AccessibleStateType.FOCUSED:
+ getEventQueue().postEvent(new java.awt.event.FocusEvent(
+ Container.this, enable ?
+ java.awt.event.FocusEvent.FOCUS_GAINED :
+ java.awt.event.FocusEvent.FOCUS_LOST));
+ break;
+ case AccessibleStateType.SELECTED:
+ fireStatePropertyChange(AccessibleState.SELECTED, enable);
+ break;
+ case AccessibleStateType.SENSITIVE:
+ // This state equals ENABLED in OOo (but not in Gtk+) and does not exist in Java 1.5
+ break;
+ case AccessibleStateType.SHOWING:
+ case AccessibleStateType.VISIBLE:
+ setVisible(enable);
+ break;
+ default:
+ if (Build.DEBUG) {
+ System.err.println(Container.this + "unexpected state change " + state);
+ }
+ break;
+ }
+ }
+ /** Updates the accessible name and fires the appropriate PropertyChangedEvent */
+ protected void handleNameChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ if (accessibleContext != null) {
+ accessibleContext.setAccessibleName(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the accessible description and fires the appropriate PropertyChangedEvent */
+ protected void handleDescriptionChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ if (accessibleContext != null) {
+ accessibleContext.setAccessibleDescription(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the internal states and fires the appropriate PropertyChangedEvent */
+ protected void handleStateChangedEvent(Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ setComponentState(AnyConverter.toShort(any1), false);
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ setComponentState(AnyConverter.toShort(any2), true);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /* This event is only necessary because some objects in the office don't know their parent
+ * and are therefor unable to revoke and re-insert themselves.
+ */
+ protected void handleAllChildrenChangedEvent() {
+ javax.accessibility.Accessible parent = (javax.accessibility.Accessible) getParent();
+ if (parent != null) {
+ javax.accessibility.AccessibleContext parentAC = parent.getAccessibleContext();
+ if (parentAC != null) {
+
+ parentAC.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ Container.this,
+ null);
+
+ AccessibleObjectFactory.clearContainer(Container.this);
+ AccessibleObjectFactory.populateContainer(Container.this, unoAccessibleContext);
+
+ parentAC.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null,
+ Container.this);
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+
+ if ( !disposed ) {
+
+ switch (event.EventId) {
+ case AccessibleEventId.NAME_CHANGED:
+ // Set the accessible name for the corresponding context, which will fire a property
+ // change event itself
+ handleNameChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.DESCRIPTION_CHANGED:
+ // Set the accessible description for the corresponding context, which will fire a property
+ // change event itself - so do not set propertyName !
+ handleDescriptionChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ // Update the internal state set and fire the appropriate PropertyChangedEvent
+ handleStateChangedEvent(event.OldValue, event.NewValue);
+ break;
+ case AccessibleEventId.TEXT_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_TEXT_PROPERTY,
+ AccessibleTextImpl.convertTextSegment(event.OldValue),
+ AccessibleTextImpl.convertTextSegment(event.NewValue));
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ AccessibleObjectFactory.removeChild(Container.this, event.OldValue);
+ } else if (AnyConverter.isObject(event.NewValue)) {
+ AccessibleObjectFactory.addChild(Container.this, event.NewValue);
+ }
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY, null, null);
+ break;
+ /*
+ * the Java AccessBridge for GNOME maps SELECTION_PROPERTY change events
+ * for objects of role TEXT to object:text-selection-changed
+ */
+ case AccessibleEventId.TEXT_SELECTION_CHANGED:
+ case AccessibleEventId.SELECTION_CHANGED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_SELECTION_PROPERTY, null, null);
+ break;
+ case AccessibleEventId.INVALIDATE_ALL_CHILDREN:
+ handleAllChildrenChangedEvent();
+ break;
+ default:
+ // Warn about unhandled events
+ if(Build.DEBUG) {
+ System.out.println(this + ": unhandled accessibility event id=" + event.EventId);
+ }
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify that the UNO component is disposing */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ disposed = true;
+ AccessibleObjectFactory.disposing(Container.this);
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleContainerListener();
+ }
+
+ protected javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** This method actually creates the AccessibleContext object returned by
+ * getAccessibleContext().
+ */
+ protected javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleContainer();
+ }
+
+ /** Returns the AccessibleContext associated with this object */
+ public final javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ try {
+ AccessibleContext ac = createAccessibleContext();
+ if (ac != null) {
+ // Set accessible name and description here to avoid
+ // unnecessary property change events later ..
+ ac.setAccessibleName(unoAccessibleContext.getAccessibleName());
+ ac.setAccessibleDescription(unoAccessibleContext.getAccessibleDescription());
+ accessibleContext = ac;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleContainer extends java.awt.Container.AccessibleAWTContainer {
+
+ protected AccessibleContainer() {
+ /* Since getAccessibleText() is heavily used by the java access
+ * bridge for gnome and the gnome at-tools, we do a query interface
+ * here and remember the result.
+ */
+ accessibleText = AccessibleTextImpl.get(unoAccessibleContext);
+ }
+
+ protected AccessibleContainer(boolean query) {
+ /* This constructor is explicitly for subclasses that implement
+ * AccessibleHypertext and therefor the default constructor would
+ * bring unnecessary overhead.
+ */
+ }
+
+ protected java.awt.event.ComponentListener accessibleComponentHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when shown/hidden..
+ */
+ protected class AccessibleComponentHandler implements java.awt.event.ComponentListener {
+ public void componentHidden(java.awt.event.ComponentEvent e) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.VISIBLE, null);
+ }
+
+ public void componentShown(java.awt.event.ComponentEvent e) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, AccessibleState.VISIBLE);
+ }
+
+ public void componentMoved(java.awt.event.ComponentEvent e) {
+ }
+
+ public void componentResized(java.awt.event.ComponentEvent e) {
+ }
+ } // inner class AccessibleContainerHandler
+
+ protected java.awt.event.FocusListener accessibleFocusHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when focus events happen
+ */
+ protected class AccessibleFocusHandler implements java.awt.event.FocusListener {
+ public void focusGained(java.awt.event.FocusEvent event) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, AccessibleState.FOCUSED);
+ if (Build.DEBUG) {
+ System.err.println("[" + getAccessibleRole() + "] " + getAccessibleName() + " is now focused");
+ }
+ }
+ public void focusLost(java.awt.event.FocusEvent event) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.FOCUSED, null);
+ if (Build.DEBUG) {
+ System.err.println("[" + getAccessibleRole() + "] " + getAccessibleName() + " is no longer focused");
+ }
+ }
+ } // inner class AccessibleFocusHandler
+
+ protected java.awt.event.ContainerListener accessibleContainerHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when children added/removed.
+ */
+
+ protected class AccessibleContainerHandler implements java.awt.event.ContainerListener {
+ public void componentAdded(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, ((javax.accessibility.Accessible) c).getAccessibleContext());
+ }
+ }
+ public void componentRemoved(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleContainer.this.firePropertyChange(
+ AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ ((javax.accessibility.Accessible) c).getAccessibleContext(), null);
+ }
+ }
+ }
+
+ protected int propertyChangeListenerCount = 0;
+
+ /**
+ * Add a PropertyChangeListener to the listener list.
+ *
+ * @param listener The PropertyChangeListener to be added
+ */
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (propertyChangeListenerCount++ == 0) {
+ accessibleFocusHandler = new AccessibleFocusHandler();
+ Container.this.addFocusListener(accessibleFocusHandler);
+
+ accessibleContainerHandler = new AccessibleContainerHandler();
+ Container.this.addContainerListener(accessibleContainerHandler);
+
+ accessibleComponentHandler = new AccessibleComponentHandler();
+ Container.this.addComponentListener(accessibleComponentHandler);
+ }
+ super.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Remove a PropertyChangeListener from the listener list.
+ * This removes a PropertyChangeListener that was registered
+ * for all properties.
+ *
+ * @param listener The PropertyChangeListener to be removed
+ */
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (--propertyChangeListenerCount == 0) {
+ Container.this.removeComponentListener(accessibleComponentHandler);
+ accessibleComponentHandler = null;
+
+ Container.this.removeContainerListener(accessibleContainerHandler);
+ accessibleContainerHandler = null;
+
+ Container.this.removeFocusListener(accessibleFocusHandler);
+ accessibleFocusHandler = null;
+ }
+ super.removePropertyChangeListener(listener);
+ }
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return accessibleRole;
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ return accessibleText;
+ }
+
+ /**
+ * Gets the current state set of this object.
+ *
+ * @return an instance of <code>AccessibleStateSet</code>
+ * containing the current state set of the object
+ * @see AccessibleState
+ */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ if (disposed)
+ return AccessibleStateAdapter.getDefunctStateSet();
+
+ try {
+ return AccessibleStateAdapter.getAccessibleStateSet(Container.this,
+ unoAccessibleContext.getAccessibleStateSet());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return AccessibleStateAdapter.getDefunctStateSet();
+ }
+ }
+
+ /** Returns the AccessibleSelection interface for this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ try {
+ XAccessibleSelection unoAccessibleSelection = (XAccessibleSelection)
+ UnoRuntime.queryInterface(XAccessibleSelection.class, unoAccessibleContext);
+ if (unoAccessibleSelection != null) {
+ return new AccessibleSelectionImpl(unoAccessibleSelection);
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return null;
+ }
+
+ /** Gets the locale of the component */
+ public java.util.Locale getLocale() throws java.awt.IllegalComponentStateException {
+ try {
+ com.sun.star.lang.Locale unoLocale = unoAccessible.getAccessibleContext().getLocale();
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ throw new java.awt.IllegalComponentStateException(e.getMessage());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return super.getLocale();
+ }
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return Container.this.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return Container.this.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return Container.this.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoAccessibleComponent.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocation();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoAccessibleComponent.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoAccessibleComponent.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleComponent.getAccessibleAtPoint(new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public boolean isFocusTraversable() {
+ return Container.this.isFocusable();
+ }
+
+ public void requestFocus() {
+ unoAccessibleComponent.grabFocus();
+ }
+ }
+
+ public String toString() {
+ return UnoRuntime.generateOid(unoAccessible);
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java b/accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java
new file mode 100644
index 000000000000..5b8c45b716b4
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/DescendantManager.java
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+
+import javax.accessibility.AccessibleState;
+
+
+public abstract class DescendantManager extends Component {
+ protected XAccessibleSelection unoAccessibleSelection = null;
+ protected javax.accessibility.Accessible activeDescendant = null;
+ protected boolean multiselectable = false;
+
+ protected DescendantManager(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected DescendantManager(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext, boolean multiselectable) {
+ super(xAccessible, xAccessibleContext);
+ this.multiselectable = multiselectable;
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleDescendantManagerListener
+ extends AccessibleUNOComponentListener {
+ protected AccessibleDescendantManagerListener() {
+ unoAccessibleSelection = (XAccessibleSelection) UnoRuntime.queryInterface(XAccessibleSelection.class,
+ unoAccessibleContext);
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.SELECTION_CHANGED:
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_SELECTION_PROPERTY,
+ null, null);
+
+ break;
+
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected abstract class AccessibleDescendantManager
+ extends AccessibleUNOComponent
+ implements javax.accessibility.AccessibleSelection {
+ protected AccessibleDescendantManager() {
+ unoAccessibleSelection = (XAccessibleSelection) UnoRuntime.queryInterface(XAccessibleSelection.class,
+ unoAccessibleContext);
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Returns the number of accessible children of the object */
+ public int getAccessibleChildrenCount() {
+ try {
+ return unoAccessibleContext.getAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the AccessibleSelection interface for this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ return (unoAccessibleSelection != null) ? this : null;
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Adds the specified Accessible child of the object to the object's selection */
+ public void addAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.selectAccessibleChild(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Clears the selection in the object, so that no children in the object are selected */
+ public void clearAccessibleSelection() {
+ try {
+ unoAccessibleSelection.clearAccessibleSelection();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the number of Accessible children currently selected */
+ public int getAccessibleSelectionCount() {
+ try {
+ return unoAccessibleSelection.getSelectedAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Determines if the current child of this object is selected */
+ public boolean isAccessibleChildSelected(int i) {
+ try {
+ return unoAccessibleSelection.isAccessibleChildSelected(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Removes the specified child of the object from the object's selection */
+ public void removeAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.deselectAccessibleChild(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Causes every child of the object to be selected if the object supports multiple selection */
+ public void selectAllAccessibleSelection() {
+ try {
+ unoAccessibleSelection.selectAllAccessibleChildren();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Dialog.java b/accessibility/bridge/org/openoffice/java/accessibility/Dialog.java
new file mode 100644
index 000000000000..dcb067368996
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Dialog.java
@@ -0,0 +1,633 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+public class Dialog extends java.awt.Dialog implements javax.accessibility.Accessible, NativeFrame {
+ protected XAccessibleComponent unoAccessibleComponent;
+
+ boolean opened = false;
+ boolean visible = false;
+ boolean active = false;
+
+ java.awt.EventQueue eventQueue = null;
+
+ protected Dialog(java.awt.Frame owner, XAccessibleComponent xAccessibleComponent) {
+ super(owner);
+ initialize(xAccessibleComponent);
+ }
+
+ protected Dialog(java.awt.Frame owner, String name, XAccessibleComponent xAccessibleComponent) {
+ super(owner, name);
+ initialize(xAccessibleComponent);
+ }
+
+ protected Dialog(java.awt.Frame owner, String name, boolean modal, XAccessibleComponent xAccessibleComponent) {
+ super(owner, name, modal);
+ initialize(xAccessibleComponent);
+ }
+
+ private void initialize(XAccessibleComponent xAccessibleComponent) {
+ unoAccessibleComponent = xAccessibleComponent;
+ eventQueue = java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class,
+ xAccessibleComponent);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(new AccessibleDialogListener());
+ }
+ }
+
+ java.awt.Component initialComponent = null;
+
+ public java.awt.Component getInitialComponent() {
+ return initialComponent;
+ }
+
+ public void setInitialComponent(java.awt.Component c) {
+ initialComponent = c;
+ }
+
+ public Integer getHWND() {
+ return null;
+ }
+
+ /**
+ * Determines whether this <code>Component</code> is showing on screen.
+ * This means that the component must be visible, and it must be in a
+ * <code>container</code> that is visible and showing.
+ * @see #addNotify
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+ return (parent == null) || parent.isShowing();
+ }
+ return false;
+ }
+
+ /**
+ * Makes this <code>Component</code> displayable by connecting it to a
+ * native screen resource.
+ * This method is called internally by the toolkit and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public void addNotify() {
+// createHierarchyEvents(0, null, null, 0, false);
+ }
+
+ /**
+ * Makes this <code>Component</code> undisplayable by destroying it native
+ * screen resource.
+ * This method is called by the toolkit internally and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #addNotify
+ * @since JDK1.0
+ */
+ public void removeNotify() {
+ }
+
+ /**
+ * Determines if the object is visible. Note: this means that the
+ * object intends to be visible; however, it may not in fact be
+ * showing on the screen because one of the objects that this object
+ * is contained by is not visible. To determine if an object is
+ * showing on the screen, use <code>isShowing</code>.
+ *
+ * @return true if object is visible; otherwise, false
+ */
+ public boolean isVisible(){
+ return visible;
+ }
+
+ /**
+ * Shows or hides this component depending on the value of parameter
+ * <code>b</code>.
+ * @param b if <code>true</code>, shows this component;
+ * otherwise, hides this component
+ * @see #isVisible
+ * @since JDK1.1
+ */
+ public void setVisible(boolean b) {
+ if (visible != b){
+ visible = b;
+ if (b) {
+ // If it is the first show, fire WINDOW_OPENED event
+ if (!opened) {
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_OPENED);
+ opened = true;
+ }
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_SHOWN);
+ } else {
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_HIDDEN);
+ }
+ }
+ }
+
+ public void dispose() {
+ setVisible(false);
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_CLOSED);
+ }
+
+ protected void postWindowEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.WindowEvent(this, i));
+ }
+
+ protected void postComponentEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.ComponentEvent(this, i));
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleDialogListener implements XAccessibleEventListener {
+
+ protected AccessibleDialogListener() {
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.ACTIVE:
+ active = enable;
+ if (enable) {
+ AccessibleObjectFactory.postWindowActivated(Dialog.this);
+ } else {
+ AccessibleObjectFactory.postWindowLostFocus(Dialog.this);
+ }
+ break;
+ case AccessibleStateType.ICONIFIED:
+ postWindowEvent(enable ?
+ java.awt.event.WindowEvent.WINDOW_ICONIFIED :
+ java.awt.event.WindowEvent.WINDOW_DEICONIFIED);
+ break;
+ case AccessibleStateType.VISIBLE:
+ Dialog.this.setVisible(enable);
+ break;
+ default:
+ if (Build.DEBUG) {
+ System.err.println("[dialog]: " + getTitle() + "unexpected state change " + state);
+ }
+ break;
+ }
+ }
+
+ /** Updates the accessible name and fires the appropriate PropertyChangedEvent */
+ protected void handleNameChangedEvent(Object any) {
+ try {
+ String title = AnyConverter.toString(any);
+ setTitle(title);
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac!= null) {
+ ac.setAccessibleName(title);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the accessible description and fires the appropriate PropertyChangedEvent */
+ protected void handleDescriptionChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac!= null) {
+ ac.setAccessibleDescription(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the internal states and fires the appropriate PropertyChangedEvent */
+ protected void handleStateChangedEvent(Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ setComponentState(AnyConverter.toShort(any1), false);
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ setComponentState(AnyConverter.toShort(any2), true);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Fires a visible data property change event */
+ protected void handleVisibleDataEvent() {
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac != null) {
+ ac.firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY, null, null);
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.NAME_CHANGED:
+ // Set the accessible name for the corresponding context, which will fire a property
+ // change event itself
+ handleNameChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.DESCRIPTION_CHANGED:
+ // Set the accessible description for the corresponding context, which will fire a property
+ // change event itself - so do not set propertyName !
+ handleDescriptionChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ // Update the internal state set and fire the appropriate PropertyChangedEvent
+ handleStateChangedEvent(event.OldValue, event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ AccessibleObjectFactory.removeChild(Dialog.this, event.OldValue);
+ } else if (AnyConverter.isObject(event.NewValue)) {
+ AccessibleObjectFactory.addChild(Dialog.this, event.NewValue);
+ }
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ handleVisibleDataEvent();
+ break;
+ default:
+ // Warn about unhandled events
+ if(Build.DEBUG) {
+ System.out.println(this + ": unhandled accessibility event id=" + event.EventId);
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify that the UNO component is disposing */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+ }
+
+ javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleDialog();
+ accessibleContext.setAccessibleName(getTitle());
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleDialog extends java.awt.Dialog.AccessibleAWTDialog {
+ protected AccessibleDialog() {
+ super();
+ }
+
+ protected java.awt.event.ComponentListener accessibleComponentHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when shown/hidden..
+ */
+ protected class AccessibleComponentHandler implements java.awt.event.ComponentListener {
+ public void componentHidden(java.awt.event.ComponentEvent e) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ javax.accessibility.AccessibleState.VISIBLE, null);
+ }
+
+ public void componentShown(java.awt.event.ComponentEvent e) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, javax.accessibility.AccessibleState.VISIBLE);
+ }
+
+ public void componentMoved(java.awt.event.ComponentEvent e) {
+ }
+
+ public void componentResized(java.awt.event.ComponentEvent e) {
+ }
+ } // inner class AccessibleComponentHandler
+
+ protected java.awt.event.WindowListener accessibleWindowHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when window events happen
+ */
+ protected class AccessibleWindowHandler implements java.awt.event.WindowListener {
+ /** Invoked when the Window is set to be the active Window. */
+ public void windowActivated(java.awt.event.WindowEvent e) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, javax.accessibility.AccessibleState.ACTIVE);
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " is now active");
+ }
+ }
+
+ /** Invoked when a window has been closed as the result of calling dispose on the window. */
+ public void windowClosed(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " has been closed");
+ }
+ }
+
+ /** Invoked when the user attempts to close the window from the window's system menu. */
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " is closing");
+ }
+ }
+
+ /** Invoked when a Window is no longer the active Window. */
+ public void windowDeactivated(java.awt.event.WindowEvent e) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ javax.accessibility.AccessibleState.ACTIVE, null);
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " is no longer active");
+ }
+ }
+
+ /** Invoked when a window is changed from a minimized to a normal state. */
+ public void windowDeiconified(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " has been deiconified");
+ }
+ }
+
+ /** Invoked when a window is changed from a normal to a minimized state. */
+ public void windowIconified(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " has been iconified");
+ }
+ }
+
+ /** Invoked the first time a window is made visible. */
+ public void windowOpened(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[Dialog] " + getTitle() + " has been opened");
+ }
+ }
+
+ } // inner class AccessibleWindowHandler
+
+ protected java.awt.event.ContainerListener accessibleContainerHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when children added/removed.
+ */
+
+ protected class AccessibleContainerHandler implements java.awt.event.ContainerListener {
+ public void componentAdded(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, ((javax.accessibility.Accessible) c).getAccessibleContext());
+ }
+ }
+ public void componentRemoved(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleDialog.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ ((javax.accessibility.Accessible) c).getAccessibleContext(), null);
+ }
+ }
+ }
+
+ protected int propertyChangeListenerCount = 0;
+
+ /**
+ * Add a PropertyChangeListener to the listener list.
+ *
+ * @param listener The PropertyChangeListener to be added
+ */
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (propertyChangeListenerCount++ == 0) {
+ accessibleWindowHandler = new AccessibleWindowHandler();
+ Dialog.this.addWindowListener(accessibleWindowHandler);
+
+ accessibleContainerHandler = new AccessibleContainerHandler();
+ Dialog.this.addContainerListener(accessibleContainerHandler);
+
+ accessibleComponentHandler = new AccessibleComponentHandler();
+ Dialog.this.addComponentListener(accessibleComponentHandler);
+ }
+ super.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Remove a PropertyChangeListener from the listener list.
+ * This removes a PropertyChangeListener that was registered
+ * for all properties.
+ *
+ * @param listener The PropertyChangeListener to be removed
+ */
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (--propertyChangeListenerCount == 0) {
+ Dialog.this.removeComponentListener(accessibleComponentHandler);
+ accessibleComponentHandler = null;
+
+ Dialog.this.removeContainerListener(accessibleContainerHandler);
+ accessibleContainerHandler = null;
+
+ Dialog.this.removeWindowListener(accessibleWindowHandler);
+ accessibleWindowHandler = null;
+ }
+ super.removePropertyChangeListener(listener);
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return Dialog.this.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return Dialog.this.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return Dialog.this.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoAccessibleComponent.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocation();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoAccessibleComponent.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoAccessibleComponent.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleComponent.getAccessibleAtPoint(new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public boolean isFocusTraversable() {
+ return Dialog.this.isFocusable();
+ }
+
+ public void requestFocus() {
+ unoAccessibleComponent.grabFocus();
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/FocusTraversalPolicy.java b/accessibility/bridge/org/openoffice/java/accessibility/FocusTraversalPolicy.java
new file mode 100644
index 000000000000..75f6c91354f4
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/FocusTraversalPolicy.java
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+
+public class FocusTraversalPolicy extends java.awt.FocusTraversalPolicy {
+
+ protected javax.accessibility.Accessible getSelectedAccessibleChild(javax.accessibility.Accessible a) {
+ javax.accessibility.AccessibleContext ac = a.getAccessibleContext();
+ if (ac != null) {
+ javax.accessibility.AccessibleSelection as = ac.getAccessibleSelection();
+ if (as != null) {
+ return as.getAccessibleSelection(0);
+ }
+ }
+ return null;
+ }
+
+ /** Returns the Component that should receive the focus after aComponent */
+ public java.awt.Component getComponentAfter(java.awt.Container focusCycleRoot,
+ java.awt.Component aComponent) {
+ return null;
+ }
+
+ /** Returns the Component that should receive the focus before aComponent */
+ public java.awt.Component getComponentBefore(java.awt.Container focusCycleRoot,
+ java.awt.Component aComponent) {
+ return null;
+ }
+
+ /** Returns the default Component to focus */
+ public java.awt.Component getDefaultComponent(java.awt.Container focusCycleRoot) {
+ // getDefaultComponent must not return null for Windows to make them focusable.
+ if (focusCycleRoot instanceof NativeFrame) {
+ java.awt.Component c = ((NativeFrame) focusCycleRoot).getInitialComponent();
+ if (c != null) {
+ return c;
+ }
+ }
+
+ if (focusCycleRoot instanceof javax.accessibility.Accessible) {
+ return (java.awt.Component) getSelectedAccessibleChild((javax.accessibility.Accessible) focusCycleRoot);
+ }
+ return null;
+ }
+
+ /** Returns the first Component in the traversal cycle */
+ public java.awt.Component getFirstComponent(java.awt.Container focusCycleRoot) {
+ return null;
+ }
+
+ /** Returns the Component that should receive the focus when a Window is made visible for the first time */
+ public java.awt.Component getInitialComponent(java.awt.Window window) {
+ if (window instanceof NativeFrame) {
+ return ((NativeFrame) window).getInitialComponent();
+ }
+ return null;
+ }
+
+ /** Returns the last Component in the traversal cycle */
+ public java.awt.Component getLastComponent(java.awt.Container focusCycleRoot) {
+ return null;
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Frame.java b/accessibility/bridge/org/openoffice/java/accessibility/Frame.java
new file mode 100644
index 000000000000..b7f37b2d6b18
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Frame.java
@@ -0,0 +1,646 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+public class Frame extends java.awt.Frame implements javax.accessibility.Accessible, NativeFrame {
+ protected XAccessibleComponent unoAccessibleComponent;
+
+ boolean opened = false;
+ boolean visible = false;
+ boolean active = false;
+
+ java.awt.EventQueue eventQueue = null;
+
+ protected Frame(XAccessibleComponent xAccessibleComponent) {
+ initialize(xAccessibleComponent);
+ }
+
+ protected Frame(String name, XAccessibleComponent xAccessibleComponent) {
+ super(name);
+ initialize(xAccessibleComponent);
+ }
+
+ private void initialize(XAccessibleComponent xAccessibleComponent) {
+ unoAccessibleComponent = xAccessibleComponent;
+ eventQueue = java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class,
+ unoAccessibleComponent);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(new AccessibleFrameListener());
+ }
+ }
+
+ java.awt.Component initialComponent = null;
+
+ public java.awt.Component getInitialComponent() {
+ return initialComponent;
+ }
+
+ public void setInitialComponent(java.awt.Component c) {
+ initialComponent = c;
+ }
+
+ public Integer getHWND() {
+ return null;
+ }
+
+ /**
+ * Determines whether this <code>Component</code> is showing on screen.
+ * This means that the component must be visible, and it must be in a
+ * <code>container</code> that is visible and showing.
+ * @see #addNotify
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+ return (parent == null) || parent.isShowing();
+ }
+ return false;
+ }
+
+ /**
+ * Makes this <code>Component</code> displayable by connecting it to a
+ * native screen resource.
+ * This method is called internally by the toolkit and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public void addNotify() {
+// createHierarchyEvents(0, null, null, 0, false);
+ }
+
+ /**
+ * Makes this <code>Component</code> undisplayable by destroying it native
+ * screen resource.
+ * This method is called by the toolkit internally and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #addNotify
+ * @since JDK1.0
+ */
+ public void removeNotify() {
+ }
+
+ /**
+ * Determines if the object is visible. Note: this means that the
+ * object intends to be visible; however, it may not in fact be
+ * showing on the screen because one of the objects that this object
+ * is contained by is not visible. To determine if an object is
+ * showing on the screen, use <code>isShowing</code>.
+ *
+ * @return true if object is visible; otherwise, false
+ */
+ public boolean isVisible(){
+ return visible;
+ }
+
+ /**
+ * Shows or hides this component depending on the value of parameter
+ * <code>b</code>.
+ * @param b if <code>true</code>, shows this component;
+ * otherwise, hides this component
+ * @see #isVisible
+ * @since JDK1.1
+ */
+ public void setVisible(boolean b) {
+ if (visible != b){
+ visible = b;
+ if (b) {
+ // If it is the first show, fire WINDOW_OPENED event
+ if (!opened) {
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_OPENED);
+ opened = true;
+ }
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_SHOWN);
+ } else {
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_HIDDEN);
+ }
+ }
+ }
+
+ public void dispose() {
+ setVisible(false);
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_CLOSED);
+ }
+
+ protected void postWindowEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.WindowEvent(this, i));
+ }
+
+ protected void postComponentEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.ComponentEvent(this, i));
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleFrameListener implements XAccessibleEventListener {
+
+ protected AccessibleFrameListener() {
+ }
+
+ // The only expected state changes are ACTIVE and VISIBLE
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.ACTIVE:
+ active = enable;
+ if (enable) {
+ AccessibleObjectFactory.postWindowActivated(Frame.this);
+ } else {
+ AccessibleObjectFactory.postWindowLostFocus(Frame.this);
+ }
+ break;
+ case AccessibleStateType.ICONIFIED:
+ if (Build.DEBUG) {
+ System.err.println("[frame]" + getTitle() + (enable ? " is now " : " is no longer ") + "iconified");
+ }
+ postWindowEvent(enable ?
+ java.awt.event.WindowEvent.WINDOW_ICONIFIED :
+ java.awt.event.WindowEvent.WINDOW_DEICONIFIED);
+ break;
+ case AccessibleStateType.VISIBLE:
+ Frame.this.setVisible(enable);
+ break;
+ default:
+ if (Build.DEBUG) {
+ System.err.println("[frame]: " + getTitle() + "unexpected state change " + state);
+ }
+ break;
+ }
+ }
+
+ /** Updates the accessible name and fires the appropriate PropertyChangedEvent */
+ protected void handleNameChangedEvent(Object any) {
+ try {
+ String title = AnyConverter.toString(any);
+ setTitle(title);
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac!= null) {
+ ac.setAccessibleName(title);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the accessible description and fires the appropriate PropertyChangedEvent */
+ protected void handleDescriptionChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac!= null) {
+ ac.setAccessibleDescription(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the internal states and fires the appropriate PropertyChangedEvent */
+ protected void handleStateChangedEvent(Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ setComponentState(AnyConverter.toShort(any1), false);
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ setComponentState(AnyConverter.toShort(any2), true);
+ }
+ }
+
+ catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Fires a visible data property change event */
+ protected void handleVisibleDataEvent() {
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac != null) {
+ ac.firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY, null, null);
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.NAME_CHANGED:
+ // Set the accessible name for the corresponding context, which will fire a property
+ // change event itself
+ handleNameChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.DESCRIPTION_CHANGED:
+ // Set the accessible description for the corresponding context, which will fire a property
+ // change event itself - so do not set propertyName !
+ handleDescriptionChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ // Update the internal state set and fire the appropriate PropertyChangedEvent
+ handleStateChangedEvent(event.OldValue, event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ AccessibleObjectFactory.removeChild(Frame.this, event.OldValue);
+ } else if (AnyConverter.isObject(event.NewValue)) {
+ AccessibleObjectFactory.addChild(Frame.this, event.NewValue);
+ }
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ handleVisibleDataEvent();
+ break;
+ default:
+ // Warn about unhandled events
+ if(Build.DEBUG) {
+ System.out.println(this + ": unhandled accessibility event id=" + event.EventId);
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify that the UNO component is disposing */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+ }
+
+ protected javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleFrame();
+ accessibleContext.setAccessibleName(getTitle());
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleFrame extends java.awt.Frame.AccessibleAWTFrame {
+ protected AccessibleFrame() {
+ super();
+ }
+
+ protected java.awt.event.ComponentListener accessibleComponentHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when shown/hidden..
+ */
+ protected class AccessibleComponentHandler implements java.awt.event.ComponentListener {
+ public void componentHidden(java.awt.event.ComponentEvent e) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ javax.accessibility.AccessibleState.VISIBLE, null);
+ }
+
+ public void componentShown(java.awt.event.ComponentEvent e) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, javax.accessibility.AccessibleState.VISIBLE);
+ }
+
+ public void componentMoved(java.awt.event.ComponentEvent e) {
+ }
+
+ public void componentResized(java.awt.event.ComponentEvent e) {
+ }
+ } // inner class AccessibleComponentHandler
+
+ protected java.awt.event.WindowListener accessibleWindowHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when window events happen
+ */
+ protected class AccessibleWindowHandler implements java.awt.event.WindowListener {
+ /** Invoked when the Window is set to be the active Window. */
+ public void windowActivated(java.awt.event.WindowEvent e) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, javax.accessibility.AccessibleState.ACTIVE);
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " is now active");
+ }
+ }
+
+ /** Invoked when a window has been closed as the result of calling dispose on the window. */
+ public void windowClosed(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " has been closed");
+ }
+ }
+
+ /** Invoked when the user attempts to close the window from the window's system menu. */
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " is closing");
+ }
+ }
+
+ /** Invoked when a Window is no longer the active Window. */
+ public void windowDeactivated(java.awt.event.WindowEvent e) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ javax.accessibility.AccessibleState.ACTIVE, null);
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " is no longer active");
+ }
+ }
+
+ /** Invoked when a window is changed from a minimized to a normal state. */
+ public void windowDeiconified(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " is no longer iconified");
+ }
+ }
+
+ /** Invoked when a window is changed from a normal to a minimized state. */
+ public void windowIconified(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " has been iconified");
+ }
+ }
+
+ /** Invoked the first time a window is made visible. */
+ public void windowOpened(java.awt.event.WindowEvent e) {
+ if (Build.DEBUG) {
+ System.err.println("[frame] " + getTitle() + " has been opened");
+ }
+ }
+
+ } // inner class AccessibleWindowHandler
+
+ protected java.awt.event.ContainerListener accessibleContainerHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when children added/removed.
+ */
+
+ protected class AccessibleContainerHandler implements java.awt.event.ContainerListener {
+ public void componentAdded(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, ((javax.accessibility.Accessible) c).getAccessibleContext());
+ }
+ }
+ public void componentRemoved(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleFrame.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ ((javax.accessibility.Accessible) c).getAccessibleContext(), null);
+ }
+ }
+ }
+
+ protected int propertyChangeListenerCount = 0;
+
+ /**
+ * Add a PropertyChangeListener to the listener list.
+ *
+ * @param listener The PropertyChangeListener to be added
+ */
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (propertyChangeListenerCount++ == 0) {
+ accessibleWindowHandler = new AccessibleWindowHandler();
+ Frame.this.addWindowListener(accessibleWindowHandler);
+
+ accessibleContainerHandler = new AccessibleContainerHandler();
+ Frame.this.addContainerListener(accessibleContainerHandler);
+
+ accessibleComponentHandler = new AccessibleComponentHandler();
+ Frame.this.addComponentListener(accessibleComponentHandler);
+ }
+ super.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Remove a PropertyChangeListener from the listener list.
+ * This removes a PropertyChangeListener that was registered
+ * for all properties.
+ *
+ * @param listener The PropertyChangeListener to be removed
+ */
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (--propertyChangeListenerCount == 0) {
+ Frame.this.removeComponentListener(accessibleComponentHandler);
+ accessibleComponentHandler = null;
+
+ Frame.this.removeContainerListener(accessibleContainerHandler);
+ accessibleContainerHandler = null;
+
+ Frame.this.removeWindowListener(accessibleWindowHandler);
+ accessibleWindowHandler = null;
+ }
+ super.removePropertyChangeListener(listener);
+ }
+
+ /**
+ * Get the state set of this object.
+ *
+ * @return an instance of AccessibleState containing the current state
+ * of the object
+ * @see AccessibleState
+ */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ javax.accessibility.AccessibleStateSet states = super.getAccessibleStateSet();
+ if ((getExtendedState() & java.awt.Frame.ICONIFIED) > 0) {
+ states.add(javax.accessibility.AccessibleState.ICONIFIED);
+ }
+ return states;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return Frame.this.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return Frame.this.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return Frame.this.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoAccessibleComponent.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocation();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoAccessibleComponent.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoAccessibleComponent.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleComponent.getAccessibleAtPoint(new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public boolean isFocusTraversable() {
+ return Frame.this.isFocusable();
+ }
+
+ public void requestFocus() {
+ unoAccessibleComponent.grabFocus();
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Icon.java b/accessibility/bridge/org/openoffice/java/accessibility/Icon.java
new file mode 100644
index 000000000000..8ccc97def4d8
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Icon.java
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+
+/**
+ */
+public class Icon extends Component implements javax.accessibility.Accessible {
+ protected Icon(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleIcon();
+ }
+
+ protected class AccessibleIcon extends AccessibleUNOComponent {
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleIcon() {
+ super();
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleIcon[] getAccessibleIcon() {
+ try {
+ XAccessibleImage unoAccessibleImage = (XAccessibleImage) UnoRuntime.queryInterface(XAccessibleImage.class,
+ unoAccessibleComponent);
+
+ if (unoAccessibleImage != null) {
+ javax.accessibility.AccessibleIcon[] icons = {
+ new AccessibleIconImpl(unoAccessibleImage)
+ };
+
+ return icons;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+
+ return null;
+ }
+
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Label.java b/accessibility/bridge/org/openoffice/java/accessibility/Label.java
new file mode 100644
index 000000000000..9afaa0a1ae37
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Label.java
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+
+/**
+ */
+public class Label extends Component implements javax.accessibility.Accessible {
+ protected Label(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleLabel();
+ }
+
+ protected class AccessibleLabel extends AccessibleUNOComponent {
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleLabel() {
+ super();
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.LABEL;
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class,
+ unoAccessibleContext);
+
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the relation set of this object */
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet = unoAccessibleContext.getAccessibleRelationSet();
+
+ if (unoAccessibleRelationSet == null) {
+ return null;
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.LABEL_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABEL_FOR,
+ getAccessibleComponents(
+ unoAccessibleRelation.TargetSet)));
+
+ break;
+
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ getAccessibleComponents(
+ unoAccessibleRelation.TargetSet)));
+
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/List.java b/accessibility/bridge/org/openoffice/java/accessibility/List.java
new file mode 100644
index 000000000000..c0583bf9b692
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/List.java
@@ -0,0 +1,452 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.accessibility.*;
+
+public class List extends DescendantManager implements javax.accessibility.Accessible {
+
+ protected List(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected void setActiveDescendant(javax.accessibility.Accessible descendant) {
+ javax.accessibility.Accessible oldAD = activeDescendant;
+ activeDescendant = descendant;
+ firePropertyChange(AccessibleContext.ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY,
+ oldAD, descendant);
+ }
+
+ protected void setActiveDescendant(Object any) {
+ javax.accessibility.Accessible descendant = null;
+ try {
+ if (AnyConverter.isObject(any)) {
+ XAccessible unoAccessible = (XAccessible) AnyConverter.toObject(
+ AccessibleObjectFactory.XAccessibleType, any);
+ if (unoAccessible != null) {
+ // FIXME: have to handle non transient objects here ..
+ descendant = new ListItem(unoAccessible);
+ if (Build.DEBUG) {
+ try {
+ if (Build.DEBUG) {
+ System.err.println("[List] retrieved active descendant event: new descendant is " +
+ unoAccessible.getAccessibleContext().getAccessibleName());
+ }
+ } catch (java.lang.NullPointerException e) {
+ System.err.println("*** ERROR *** new active descendant not accessible");
+ }
+ }
+ }
+ }
+ setActiveDescendant(descendant);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void add(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ ListItem item = new ListItem(unoAccessible);
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ firePropertyChange(AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, item.getAccessibleContext());
+ }
+ }
+
+ protected void remove(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ ListItem item = new ListItem(unoAccessible);
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ firePropertyChange(AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ item.getAccessibleContext(), null);
+ }
+ }
+
+ protected void add(Object any) {
+ try {
+ add((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void remove(Object any) {
+ try {
+ remove((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleListListener extends AccessibleDescendantManagerListener {
+
+ protected AccessibleListListener() {
+ super();
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.ACTIVE_DESCENDANT_CHANGED:
+ setActiveDescendant(event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ remove(event.OldValue);
+ }
+ if (AnyConverter.isObject(event.NewValue)) {
+ add(event.NewValue);
+ }
+ break;
+ case AccessibleEventId.INVALIDATE_ALL_CHILDREN:
+ // Since List items a transient a child events are mostly used
+ // to attach/detach listeners, it is save to ignore it here
+ break;
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleListListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleList();
+ }
+
+ protected class AccessibleList extends AccessibleDescendantManager {
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.LIST;
+ }
+
+ /** Returns the specified Accessible child of the object */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = List.this.activeDescendant;
+ if ((activeDescendant instanceof ListItem) && xAccessible.equals(((ListItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new ListItem(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleComponent.getAccessibleAtPoint(new com.sun.star.awt.Point(p.x, p.y));
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = List.this.activeDescendant;
+ if ((activeDescendant instanceof ListItem) && xAccessible.equals(((ListItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new ListItem(xAccessible);
+ }
+ }
+ return child;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleSelection.getSelectedAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = List.this.activeDescendant;
+ if ((activeDescendant instanceof ListItem) && xAccessible.equals(((ListItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new ListItem(xAccessible);
+ }
+ } else if (Build.DEBUG) {
+ System.out.println(i + "th selected child is not accessible");
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ if (Build.DEBUG) {
+ System.err.println("IndexOutOfBoundsException caught for AccessibleList.getAccessibleSelection(" + i + ")");
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+ }
+
+ class ListItem extends java.awt.Component implements javax.accessibility.Accessible {
+
+ protected XAccessible unoAccessible;
+
+ public ListItem(XAccessible xAccessible) {
+ unoAccessible = xAccessible;
+ }
+
+ public Object[] create(Object[] targetSet) {
+ try {
+ java.util.ArrayList list = new java.util.ArrayList(targetSet.length);
+ for (int i=0; i < targetSet.length; i++) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, targetSet[i]);
+ if (xAccessible != null) {
+ list.add(new ListItem(xAccessible));
+ }
+ }
+ list.trimToSize();
+ return list.toArray();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ try {
+ XAccessibleContext xAccessibleContext = unoAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+ javax.accessibility.AccessibleContext ac = new AccessibleListItem(xAccessibleContext);
+ if (ac != null) {
+ ac.setAccessibleParent(List.this);
+ accessibleContext = ac;
+ }
+ AccessibleStateAdapter.setComponentState(this, xAccessibleContext.getAccessibleStateSet());
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleListItem extends javax.accessibility.AccessibleContext {
+
+ XAccessibleContext unoAccessibleContext;
+
+ public AccessibleListItem(XAccessibleContext xAccessibleContext) {
+ unoAccessibleContext = xAccessibleContext;
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleName() {
+ try {
+ return unoAccessibleContext.getAccessibleName();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleName(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleDescription() {
+ try {
+ return unoAccessibleContext.getAccessibleDescription();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleDescription(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ try {
+ javax.accessibility.AccessibleRole role = AccessibleRoleAdapter.getAccessibleRole(
+ unoAccessibleContext.getAccessibleRole());
+ return (role != null) ? role : javax.accessibility.AccessibleRole.LABEL;
+ } catch(com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the locale of the component */
+ public java.util.Locale getLocale() throws java.awt.IllegalComponentStateException {
+ try {
+ com.sun.star.lang.Locale unoLocale = unoAccessibleContext.getLocale();
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ throw new java.awt.IllegalComponentStateException(e.getMessage());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return List.this.getLocale();
+ }
+ }
+
+ /** Gets the 0-based index of this object in its accessible parent */
+ public int getAccessibleIndexInParent() {
+ try {
+ return unoAccessibleContext.getAccessibleIndexInParent();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the number of accessible children of the object. */
+ public int getAccessibleChildrenCount() {
+ try {
+ return unoAccessibleContext.getAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the specified Accessible child of the object. */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = List.this.activeDescendant;
+ if ((activeDescendant instanceof ListItem) && ((ListItem) activeDescendant).unoAccessible.equals(xAccessible)) {
+ child = activeDescendant;
+ } else if (xAccessible != null) {
+ child = new ListItem(xAccessible);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Returns the state set of this object */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ try {
+ return AccessibleStateAdapter.getAccessibleStateSet(ListItem.this,
+ unoAccessibleContext.getAccessibleStateSet());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return AccessibleStateAdapter.getDefunctStateSet();
+ }
+ }
+
+ /** Gets the AccessibleComponent associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleComponent getAccessibleComponent() {
+ try {
+ XAccessibleComponent unoAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class, unoAccessibleContext);
+ return (unoAccessibleComponent != null) ?
+ new AccessibleComponentImpl(unoAccessibleComponent) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleAction associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleContext);
+ return (unoAccessibleAction != null) ?
+ new AccessibleActionImpl(unoAccessibleAction) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class, unoAccessibleContext);
+ return (unoAccessibleText != null) ?
+ new AccessibleTextImpl(unoAccessibleText) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleValue associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleValue getAccessibleValue() {
+ try {
+ XAccessibleValue unoAccessibleValue = (XAccessibleValue)
+ UnoRuntime.queryInterface(XAccessibleValue.class, unoAccessibleContext);
+ return (unoAccessibleValue != null) ?
+ new AccessibleValueImpl(unoAccessibleValue) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleIcon[] getAccessibleIcon() {
+ try {
+ XAccessibleImage unoAccessibleImage = (XAccessibleImage)
+ UnoRuntime.queryInterface(XAccessibleImage.class, unoAccessibleContext);
+ if (unoAccessibleImage != null) {
+ javax.accessibility.AccessibleIcon[] icons = { new AccessibleIconImpl(unoAccessibleImage) };
+ return icons;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Menu.java b/accessibility/bridge/org/openoffice/java/accessibility/Menu.java
new file mode 100644
index 000000000000..346baca749b3
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Menu.java
@@ -0,0 +1,328 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+
+
+public class Menu extends AbstractButton
+ implements javax.accessibility.Accessible {
+ private java.util.Vector children;
+ protected XAccessibleSelection unoAccessibleSelection = null;
+
+ protected Menu(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+
+ try {
+ // Create a vector with the correct initial capacity
+ int count = unoAccessibleContext.getAccessibleChildCount();
+ children = new java.util.Vector(count);
+
+ // Fill the vector with objects
+ for (int i = 0; i < count; i++) {
+ java.awt.Component c = getComponent(unoAccessibleContext.getAccessibleChild(i));
+
+ if (c != null) {
+ children.add(c);
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ if (Build.DEBUG) {
+ System.err.println(
+ "RuntimeException caught during menu initialization: " +
+ e.getMessage());
+ }
+
+ if (children == null) {
+ children = new java.util.Vector(0);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+
+ protected synchronized void add(XAccessible unoAccessible) {
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ java.awt.Component c = getComponent(unoAccessible);
+
+ if (c != null) {
+ try {
+ children.add(unoAccessible.getAccessibleContext()
+ .getAccessibleIndexInParent(), c);
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null,
+ ((javax.accessibility.Accessible) c).getAccessibleContext());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ }
+
+ protected synchronized void remove(XAccessible unoAccessible) {
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ java.awt.Component c = getComponent(unoAccessible);
+
+ if (c != null) {
+ try {
+ children.remove(c);
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ ((javax.accessibility.Accessible) c).getAccessibleContext(),
+ null);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ }
+
+ protected void add(Object any) {
+ try {
+ add((XAccessible) AnyConverter.toObject(
+ AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void remove(Object any) {
+ try {
+ remove((XAccessible) AnyConverter.toObject(
+ AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected synchronized int indexOf(Object child) {
+ return children.indexOf(child);
+ }
+
+ protected java.awt.Component getComponent(XAccessible unoAccessible) {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(unoAccessible);
+
+ if (c == null) {
+ c = AccessibleObjectFactory.createAccessibleComponent(unoAccessible);
+
+ if (c instanceof javax.accessibility.Accessible) {
+ ((javax.accessibility.Accessible) c).getAccessibleContext()
+ .setAccessibleParent(this);
+ }
+ }
+
+ return c;
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleMenuListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleMenu();
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleMenuListener
+ extends AccessibleUNOComponentListener {
+ protected AccessibleMenuListener() {
+ super();
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.CHILD:
+
+ if (AnyConverter.isObject(event.OldValue)) {
+ remove(event.OldValue);
+ }
+
+ if (AnyConverter.isObject(event.NewValue)) {
+ add(event.NewValue);
+ }
+
+ break;
+
+ // #i56539# Java 1.5 does not fire ACCESSIBLE_SELECTION_PROPERTY for menus
+ case AccessibleEventId.SELECTION_CHANGED:
+ break;
+
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected class AccessibleMenu extends AccessibleAbstractButton
+ implements javax.accessibility.AccessibleSelection {
+ protected AccessibleMenu() {
+ unoAccessibleSelection = (XAccessibleSelection) UnoRuntime.queryInterface(XAccessibleSelection.class,
+ unoAccessibleContext);
+ }
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.MENU;
+ }
+
+ /** Gets the 0-based index of this object in its accessible parent */
+ public int getAccessibleIndexInParent() {
+ if (getAccessibleParent() instanceof Menu) {
+ return ((Menu) getAccessibleParent()).indexOf(Menu.this);
+ } else {
+ return super.getAccessibleIndexInParent();
+ }
+ }
+
+ /** Returns the number of accessible children of the object */
+ public synchronized int getAccessibleChildrenCount() {
+ return children.size();
+ }
+
+ /** Returns the specified Accessible child of the object */
+ public synchronized javax.accessibility.Accessible getAccessibleChild(
+ int i) {
+ try {
+ if (i < children.size()) {
+ return (javax.accessibility.Accessible) children.get(i);
+ } else {
+ return null;
+ }
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+
+ /** Returns the AccessibleSelection interface for this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ // This method is called to determine the SELECTABLE state of every
+ // child, so don't do the query interface here.
+ return this;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(unoAccessibleComponent.getAccessibleAtPoint(
+ new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ try {
+ return (javax.accessibility.Accessible) getComponent(unoAccessibleSelection.getSelectedAccessibleChild(
+ i));
+ } catch (java.lang.Exception e) {
+ /*
+ * Possible exceptions are:
+ * java.lang.NullPointerException
+ * com.sun.star.uno.RuntimeException
+ * com.sun.star.lang.IndexOutOfBoundsException
+ */
+ return null;
+ }
+ }
+
+ /** Adds the specified Accessible child of the object to the object's selection */
+ public void addAccessibleSelection(int i) {
+ try {
+ javax.accessibility.Accessible a = getAccessibleChild(i);
+
+ // selecting menu items invokes the click action in Java 1.5
+ if( a instanceof MenuItem )
+ a.getAccessibleContext().getAccessibleAction().doAccessibleAction(0);
+ else
+ unoAccessibleSelection.selectAccessibleChild(i);
+ } catch (java.lang.Exception e) {
+ /*
+ * Possible exceptions are:
+ * java.lang.NullPointerException
+ * com.sun.star.uno.RuntimeException
+ * com.sun.star.lang.IndexOutOfBoundsException
+ */
+ }
+ }
+
+ /** Clears the selection in the object, so that no children in the object are selected */
+ public void clearAccessibleSelection() {
+ try {
+ unoAccessibleSelection.clearAccessibleSelection();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the number of Accessible children currently selected */
+ public int getAccessibleSelectionCount() {
+ try {
+ return unoAccessibleSelection.getSelectedAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Determines if the current child of this object is selected */
+ public boolean isAccessibleChildSelected(int i) {
+ try {
+ return unoAccessibleSelection.isAccessibleChildSelected(i);
+ } catch (java.lang.Exception e) {
+ /*
+ * Possible exceptions are:
+ * java.lang.NullPointerException
+ * com.sun.star.uno.RuntimeException
+ * com.sun.star.lang.IndexOutOfBoundsException
+ */
+ return false;
+ }
+ }
+
+ /** Removes the specified child of the object from the object's selection */
+ public void removeAccessibleSelection(int i) {
+ if (isAccessibleChildSelected(i)) {
+ clearAccessibleSelection();
+ }
+ }
+
+ /** Causes every child of the object to be selected if the object supports multiple selection */
+ public void selectAllAccessibleSelection() {
+ // not supported
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/MenuContainer.java b/accessibility/bridge/org/openoffice/java/accessibility/MenuContainer.java
new file mode 100644
index 000000000000..ccae0ccadd04
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/MenuContainer.java
@@ -0,0 +1,167 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+/**
+ * Specialized container for MenuBar and Popup-Menu(s)
+ * FIXME: join with Menu ?
+ */
+public class MenuContainer extends Container implements javax.accessibility.Accessible {
+
+ protected XAccessibleSelection unoAccessibleSelection = null;
+
+ protected MenuContainer(javax.accessibility.AccessibleRole role, XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(role, xAccessible, xAccessibleContext);
+ }
+
+ protected class AccessibleMenuContainerListener extends AccessibleContainerListener {
+
+ protected AccessibleMenuContainerListener() {
+ super();
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+
+ // #i56539# Java 1.5 does not fire ACCESSIBLE_SELECTION_PROPERTY for menus
+ case AccessibleEventId.SELECTION_CHANGED:
+ break;
+
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleMenuContainerListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleMenuContainer();
+ }
+
+ protected class AccessibleMenuContainer extends AccessibleContainer implements javax.accessibility.AccessibleSelection {
+
+ protected AccessibleMenuContainer() {
+ unoAccessibleSelection = (XAccessibleSelection) UnoRuntime.queryInterface(XAccessibleSelection.class,
+ unoAccessibleContext);
+ }
+
+ /** Returns the AccessibleSelection interface for this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ return this;
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ try {
+ return (javax.accessibility.Accessible) AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleSelection.getSelectedAccessibleChild(i));
+ } catch (com.sun.star.uno.Exception e) {
+ return null;
+ }
+ }
+
+ /** Adds the specified Accessible child of the object to the object's selection */
+ public void addAccessibleSelection(int i) {
+ try {
+ javax.accessibility.Accessible a = getAccessibleChild(i);
+
+ // selecting menu items invokes the click action in Java 1.5
+ if( a instanceof MenuItem )
+ a.getAccessibleContext().getAccessibleAction().doAccessibleAction(0);
+ else
+ unoAccessibleSelection.selectAccessibleChild(i);
+ } catch (java.lang.Exception e) {
+ /*
+ * Possible exceptions are:
+ * java.lang.NullPointerException
+ * com.sun.star.uno.RuntimeException
+ * com.sun.star.lang.IndexOutOfBoundsException
+ */
+ }
+ }
+
+ /** Clears the selection in the object, so that no children in the object are selected */
+ public void clearAccessibleSelection() {
+ try {
+ unoAccessibleSelection.clearAccessibleSelection();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the number of Accessible children currently selected */
+ public int getAccessibleSelectionCount() {
+ try {
+ return unoAccessibleSelection.getSelectedAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Determines if the current child of this object is selected */
+ public boolean isAccessibleChildSelected(int i) {
+ try {
+ return unoAccessibleSelection.isAccessibleChildSelected(i);
+ } catch (java.lang.Exception e) {
+ /*
+ * Possible exceptions are:
+ * java.lang.NullPointerException
+ * com.sun.star.uno.RuntimeException
+ * com.sun.star.lang.IndexOutOfBoundsException
+ */
+ return false;
+ }
+ }
+
+ /** Removes the specified child of the object from the object's selection */
+ public void removeAccessibleSelection(int i) {
+ if (isAccessibleChildSelected(i)) {
+ clearAccessibleSelection();
+ }
+ }
+
+ /** Causes every child of the object to be selected if the object supports multiple selection */
+ public void selectAllAccessibleSelection() {
+ // not supported
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/MenuItem.java b/accessibility/bridge/org/openoffice/java/accessibility/MenuItem.java
new file mode 100644
index 000000000000..39aa1b73ce30
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/MenuItem.java
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEventListener;
+
+
+class MenuItem extends ToggleButton {
+ public MenuItem(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected class AccessibleMenuItemListener extends AccessibleUNOComponentListener {
+
+ protected AccessibleMenuItemListener() {
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+
+ // #i56538# menu items in Java 1.5 are ARMED, not SELECTED
+ if( state == com.sun.star.accessibility.AccessibleStateType.SELECTED )
+ fireStatePropertyChange(javax.accessibility.AccessibleState.ARMED, enable);
+ else
+ super.setComponentState(state, enable);
+ }
+ };
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleMenuItemListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleMenuItem();
+ }
+
+ protected class AccessibleMenuItem extends AccessibleToggleButton {
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.MENU_ITEM;
+ }
+
+ /** Gets the 0-based index of this object in its accessible parent */
+ public int getAccessibleIndexInParent() {
+ if (getAccessibleParent() instanceof Menu) {
+ return ((Menu) getAccessibleParent()).indexOf(MenuItem.this);
+ } else {
+ return super.getAccessibleIndexInParent();
+ }
+ }
+
+ /**
+ * Gets the current state set of this object.
+ *
+ * @return an instance of <code>AccessibleStateSet</code>
+ * containing the current state set of the object
+ * @see AccessibleState
+ */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ javax.accessibility.AccessibleStateSet stateSet = super.getAccessibleStateSet();
+
+ // #i56538# menu items in Java do not have SELECTABLE ..
+ stateSet.remove(javax.accessibility.AccessibleState.SELECTABLE);
+
+ // .. and also ARMED insted of SELECTED
+ if( stateSet.remove(javax.accessibility.AccessibleState.SELECTED) )
+ stateSet.add(javax.accessibility.AccessibleState.ARMED);
+
+ return stateSet;
+ }
+
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/NativeFrame.java b/accessibility/bridge/org/openoffice/java/accessibility/NativeFrame.java
new file mode 100644
index 000000000000..bcc4c0dddebc
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/NativeFrame.java
@@ -0,0 +1,35 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+public interface NativeFrame {
+ public java.awt.Component getInitialComponent();
+ public void setInitialComponent(java.awt.Component c);
+// public Integer getHWND();
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Paragraph.java b/accessibility/bridge/org/openoffice/java/accessibility/Paragraph.java
new file mode 100644
index 000000000000..6088bf48eabe
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Paragraph.java
@@ -0,0 +1,222 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleText;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+/**
+ */
+public class Paragraph extends Container implements javax.accessibility.Accessible {
+
+ protected Paragraph(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(javax.accessibility.AccessibleRole.TEXT, xAccessible, xAccessibleContext);
+ }
+
+ protected class AccessibleParagraphListener extends AccessibleContainerListener {
+
+ protected AccessibleParagraphListener() {
+ super();
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.EDITABLE:
+ fireStatePropertyChange(javax.accessibility.AccessibleState.EDITABLE, enable);
+ break;
+ case AccessibleStateType.MULTI_LINE:
+ fireStatePropertyChange(javax.accessibility.AccessibleState.MULTI_LINE, enable);
+ break;
+ case AccessibleStateType.SINGLE_LINE:
+ break;
+ default:
+ super.setComponentState(state, enable);
+ break;
+ }
+ }
+
+
+ protected void handleVisibleDataChanged() {
+ if (Paragraph.this.isFocusOwner()) {
+ AccessibleContext ac = accessibleContext;
+ if (ac != null) {
+ AccessibleText at = ac.getAccessibleText();
+ if (at != null) {
+ int pos = at.getCaretPosition();
+ // Simulating a caret event here should help at tools
+ // that re not aware of the paragraph approach of OOo.
+ firePropertyChange(ac.ACCESSIBLE_CARET_PROPERTY,
+ new Integer(-1), new Integer(pos));
+ }
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.CARET_CHANGED:
+ firePropertyChange(accessibleContext.ACCESSIBLE_CARET_PROPERTY,
+ Component.toNumber(event.OldValue),
+ Component.toNumber(event.NewValue));
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ // Whenever a paragraph gets inserted above the currently
+ // focused one, this is the only event that will occur for.
+ handleVisibleDataChanged();
+ default:
+ super.notifyEvent(event);
+ break;
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleParagraphListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleParagraph();
+ }
+
+ protected class AccessibleParagraph extends AccessibleContainer {
+
+ protected AccessibleParagraph() {
+ // Don't do the queryInterface on XAccessibleText already ..
+ super(false);
+ /* Since getAccessibleText() is heavily used by the java access
+ * bridge for gnome and the gnome at-tools, we do a query interface
+ * here and remember the result.
+ */
+ accessibleText = AccessibleHypertextImpl.get(unoAccessibleContext);
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TEXT;
+ }
+
+ /** Gets the AccessibleEditableText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleEditableText getAccessibleEditableText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleEditableText unoAccessibleText = (XAccessibleEditableText)
+ UnoRuntime.queryInterface(XAccessibleEditableText.class,
+ unoAccessibleComponent);
+ if (unoAccessibleText != null) {
+ return new AccessibleEditableTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleAction associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleComponent);
+ return (unoAccessibleAction != null) ?
+ new AccessibleActionImpl(unoAccessibleAction) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the relation set of this object */
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet =
+ unoAccessible.getAccessibleContext().getAccessibleRelationSet();
+ if (unoAccessibleRelationSet == null) {
+ return super.getAccessibleRelationSet();
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.CONTROLLED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLED_BY,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTROLLER_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLER_FOR,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.LABELED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTENT_FLOWS_TO:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ "flowsTo",
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTENT_FLOWS_FROM:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ "flowsFrom",
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ default:
+ break;
+ }
+ }
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return super.getAccessibleRelationSet();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return super.getAccessibleRelationSet();
+ }
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/RadioButton.java b/accessibility/bridge/org/openoffice/java/accessibility/RadioButton.java
new file mode 100644
index 000000000000..3daeee6cd8de
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/RadioButton.java
@@ -0,0 +1,50 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+
+class RadioButton extends ToggleButton {
+ public RadioButton(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleRadioButton();
+ }
+
+ protected class AccessibleRadioButton extends AccessibleToggleButton {
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.RADIO_BUTTON;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/ScrollBar.java b/accessibility/bridge/org/openoffice/java/accessibility/ScrollBar.java
new file mode 100644
index 000000000000..83b17d698201
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/ScrollBar.java
@@ -0,0 +1,126 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+import javax.swing.SwingConstants;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+/**
+ */
+public class ScrollBar extends Component implements SwingConstants, javax.accessibility.Accessible {
+
+ public ScrollBar(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleScrollBar();
+ }
+
+ protected class AccessibleScrollBar extends AccessibleUNOComponent implements
+ javax.accessibility.AccessibleAction {
+
+ protected XAccessibleAction unoAccessibleAction;
+ protected int actionCount = 0;
+
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleScrollBar() {
+ super();
+ unoAccessibleAction = (XAccessibleAction) UnoRuntime.queryInterface(
+ XAccessibleAction.class, unoAccessibleContext);
+ if (unoAccessibleAction != null) {
+ actionCount = unoAccessibleAction.getAccessibleActionCount();
+ }
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.SCROLL_BAR;
+ }
+
+ /** Gets the AccessibleValue associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleValue getAccessibleValue() {
+ try {
+ XAccessibleValue unoAccessibleValue = (XAccessibleValue)
+ UnoRuntime.queryInterface(XAccessibleValue.class, unoAccessibleContext);
+ return (unoAccessibleValue != null) ?
+ new AccessibleValueImpl(unoAccessibleValue) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleAction associated with this object that supports one or more actions */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ return this;
+ }
+
+ /*
+ * AccessibleAction
+ */
+
+ /** Performs the specified Action on the object */
+ public boolean doAccessibleAction(int param) {
+ if (param < actionCount) {
+ try {
+ return unoAccessibleAction.doAccessibleAction(param);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ return false;
+ }
+
+ /** Returns a description of the specified action of the object */
+ public java.lang.String getAccessibleActionDescription(int param) {
+ if(param < actionCount) {
+ try {
+ return unoAccessibleAction.getAccessibleActionDescription(param);
+ } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+ }
+ }
+ return null;
+ }
+
+ /** Returns the number of accessible actions available in this object */
+ public int getAccessibleActionCount() {
+ return actionCount;
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Separator.java b/accessibility/bridge/org/openoffice/java/accessibility/Separator.java
new file mode 100644
index 000000000000..892768e07cbb
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Separator.java
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+import javax.swing.SwingConstants;
+
+
+/**
+ */
+public class Separator extends Component implements SwingConstants,
+ javax.accessibility.Accessible {
+
+ public Separator(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ setFocusable(false);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleSeparator();
+ }
+
+ protected class AccessibleSeparator extends AccessibleUNOComponent {
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleSeparator() {
+ super();
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.SEPARATOR;
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Table.java b/accessibility/bridge/org/openoffice/java/accessibility/Table.java
new file mode 100644
index 000000000000..24ea912d4217
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Table.java
@@ -0,0 +1,727 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.accessibility.*;
+
+public class Table extends DescendantManager implements javax.accessibility.Accessible {
+
+ protected Table(XAccessible xAccessible, XAccessibleContext xAccessibleContext, boolean multiselectable) {
+ super(xAccessible, xAccessibleContext, multiselectable);
+ }
+
+ protected void setActiveDescendant(javax.accessibility.Accessible descendant) {
+ javax.accessibility.Accessible oldAD = activeDescendant;
+ activeDescendant = descendant;
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY,
+ oldAD, descendant);
+ }
+
+ protected void setActiveDescendant(Object any) {
+ javax.accessibility.Accessible descendant = null;
+ try {
+ if (AnyConverter.isObject(any)) {
+ XAccessible unoAccessible = (XAccessible) AnyConverter.toObject(
+ AccessibleObjectFactory.XAccessibleType, any);
+ if (unoAccessible != null) {
+ // FIXME: have to handle non transient objects here ..
+ descendant = new TableCell(unoAccessible);
+ }
+ }
+ setActiveDescendant(descendant);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void add(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ TableCell cell = new TableCell(unoAccessible);
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, cell.getAccessibleContext());
+ }
+ }
+
+ protected void remove(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ TableCell cell = new TableCell(unoAccessible);
+ // The AccessBridge for Windows expects an instance of AccessibleContext
+ // as parameters
+ firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ cell.getAccessibleContext(), null);
+ }
+ }
+
+ protected void add(Object any) {
+ try {
+ add((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void remove(Object any) {
+ try {
+ remove((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleTableListener extends AccessibleDescendantManagerListener {
+
+ protected AccessibleTableListener() {
+ super();
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.ACTIVE_DESCENDANT_CHANGED:
+ setActiveDescendant(event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ remove(event.OldValue);
+ }
+ if (AnyConverter.isObject(event.NewValue)) {
+ add(event.NewValue);
+ }
+ break;
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleTableListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleTable();
+ }
+
+ protected class AccessibleTable extends AccessibleDescendantManager implements javax.accessibility.AccessibleExtendedTable {
+
+ protected XAccessibleTable unoAccessibleTable;
+
+ public AccessibleTable() {
+ unoAccessibleTable = (XAccessibleTable) UnoRuntime.queryInterface(XAccessibleTable.class, unoAccessibleContext);
+ }
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TABLE;
+ }
+
+ /** Returns the AccessibleTable interface of this object */
+ public javax.accessibility.AccessibleTable getAccessibleTable() {
+ return this;
+ }
+
+ /** Returns the specified Accessible child of the object */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Table.this.activeDescendant;
+ if ((activeDescendant instanceof TableCell) && xAccessible.equals(((TableCell) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TableCell(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleComponent.getAccessibleAtPoint(
+ new com.sun.star.awt.Point(p.x, p.y));
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Table.this.activeDescendant;
+ if ((activeDescendant instanceof TableCell) && xAccessible.equals(((TableCell) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TableCell(xAccessible);
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleSelection.getSelectedAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Table.this.activeDescendant;
+ if ((activeDescendant instanceof TableCell) && xAccessible.equals(((TableCell) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TableCell(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleTable
+ */
+
+ /** Returns the Accessible at a specified row and column in the table. */
+ public javax.accessibility.Accessible getAccessibleAt(int r, int c) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleTable.getAccessibleCellAt(r,c);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Table.this.activeDescendant;
+ if ((activeDescendant instanceof TableCell) && xAccessible.equals(((TableCell) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TableCell(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Returns the caption for the table. */
+ public javax.accessibility.Accessible getAccessibleCaption() {
+ // Not yet supported.
+ return null;
+ }
+
+ /** Returns the number of columns in the table. */
+ public int getAccessibleColumnCount() {
+ try {
+ return unoAccessibleTable.getAccessibleColumnCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the description text of the specified column in the table. */
+ public javax.accessibility.Accessible getAccessibleColumnDescription(int c) {
+ try {
+ return new javax.swing.JLabel(
+ unoAccessibleTable.getAccessibleColumnDescription(c));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the number of columns occupied by the Accessible
+ * at a specified row and column in the table.
+ */
+ public int getAccessibleColumnExtentAt(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleColumnExtentAt(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return 0;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the column headers as an AccessibleTable. */
+ public javax.accessibility.AccessibleTable getAccessibleColumnHeader() {
+ // Not yet supported
+ return null;
+ }
+
+ /** Returns the number of rows in the table. */
+ public int getAccessibleRowCount() {
+ try {
+ return unoAccessibleTable.getAccessibleRowCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the description of the specified row in the table. */
+ public javax.accessibility.Accessible getAccessibleRowDescription(int r) {
+ try {
+ return new javax.swing.JLabel(
+ unoAccessibleTable.getAccessibleRowDescription(r));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the number of rows occupied by the Accessible
+ * at a specified row and column in the table.
+ */
+ public int getAccessibleRowExtentAt(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleRowExtentAt(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return 0;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the row headers as an AccessibleTable. */
+ public javax.accessibility.AccessibleTable getAccessibleRowHeader() {
+ // Not yet supported
+ return null;
+ }
+
+ /** Returns the summary description of the table. */
+ public javax.accessibility.Accessible getAccessibleSummary() {
+ // Not yet supported.
+ return null;
+ }
+
+ /** Returns the selected columns in a table. */
+ public int[] getSelectedAccessibleColumns() {
+ try {
+ return unoAccessibleTable.getSelectedAccessibleColumns();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the selected rows in a table. */
+ public int[] getSelectedAccessibleRows() {
+ try {
+ return unoAccessibleTable.getSelectedAccessibleRows();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns a boolean value indicating whether the specified column is selected. */
+ public boolean isAccessibleColumnSelected(int c) {
+ try {
+ return unoAccessibleTable.isAccessibleColumnSelected(c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns a boolean value indicating whether the specified row is selected. */
+ public boolean isAccessibleRowSelected(int r) {
+ try {
+ return unoAccessibleTable.isAccessibleRowSelected(r);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /**
+ * Returns a boolean value indicating whether the accessible
+ * at a specified row and column is selected.
+ */
+ public boolean isAccessibleSelected(int r, int c) {
+ try {
+ return unoAccessibleTable.isAccessibleSelected(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Sets the caption for the table. */
+ public void setAccessibleCaption(javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the description text of the specified column in the table. */
+ public void setAccessibleColumnDescription(int param, javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the column headers. */
+ public void setAccessibleColumnHeader(javax.accessibility.AccessibleTable accessibleTable) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the description text of the specified row of the table. */
+ public void setAccessibleRowDescription(int param, javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the row headers. */
+ public void setAccessibleRowHeader(javax.accessibility.AccessibleTable accessibleTable) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the summary description of the table */
+ public void setAccessibleSummary(javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Returns the column number of an index in the table */
+ public int getAccessibleColumn(int index) {
+ try {
+ return unoAccessibleTable.getAccessibleColumn(index);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the index of a specified row and column in the table. */
+ public int getAccessibleIndex(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleIndex(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the row number of an index in the table */
+ public int getAccessibleRow(int index) {
+ try {
+ return unoAccessibleTable.getAccessibleRow(index);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+ }
+
+ class TableCell extends java.awt.Component implements javax.accessibility.Accessible {
+
+ protected XAccessible unoAccessible;
+
+ public TableCell(XAccessible xAccessible) {
+ unoAccessible = xAccessible;
+ }
+
+ public Object[] create(Object[] targetSet) {
+ try {
+ java.util.ArrayList list = new java.util.ArrayList(targetSet.length);
+ for (int i=0; i < targetSet.length; i++) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, targetSet[i]);
+ if (xAccessible != null) {
+ list.add(new TableCell(xAccessible));
+ }
+ }
+ list.trimToSize();
+ return list.toArray();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ try {
+ XAccessibleContext xAccessibleContext = unoAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+ javax.accessibility.AccessibleContext ac = new AccessibleTableCell(xAccessibleContext);
+ if (ac != null) {
+ ac.setAccessibleParent(Table.this);
+ accessibleContext = ac;
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleTableCell extends javax.accessibility.AccessibleContext {
+
+ XAccessibleContext unoAccessibleContext;
+
+ public AccessibleTableCell(XAccessibleContext xAccessibleContext) {
+ unoAccessibleContext = xAccessibleContext;
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleName() {
+ try {
+ return unoAccessibleContext.getAccessibleName();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleName(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleDescription() {
+ try {
+ return unoAccessibleContext.getAccessibleDescription();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleDescription(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ try {
+ javax.accessibility.AccessibleRole role = AccessibleRoleAdapter.getAccessibleRole(
+ unoAccessibleContext.getAccessibleRole());
+ return (role != null) ? role : javax.accessibility.AccessibleRole.LABEL;
+ } catch(com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the locale of the component */
+ public java.util.Locale getLocale() throws java.awt.IllegalComponentStateException {
+ try {
+ com.sun.star.lang.Locale unoLocale = unoAccessibleContext.getLocale();
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ throw new java.awt.IllegalComponentStateException(e.getMessage());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return Table.this.getLocale();
+ }
+ }
+
+ /** Gets the 0-based index of this object in its accessible parent */
+ public int getAccessibleIndexInParent() {
+ try {
+ return unoAccessibleContext.getAccessibleIndexInParent();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the number of accessible children of the object. */
+ public int getAccessibleChildrenCount() {
+ try {
+ return unoAccessibleContext.getAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the specified Accessible child of the object. */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Table.this.activeDescendant;
+ if ((activeDescendant instanceof TableCell) && ((TableCell) activeDescendant).unoAccessible.equals(xAccessible)) {
+ child = activeDescendant;
+ } else if (xAccessible != null) {
+ child = new TableCell(xAccessible);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Returns the state set of this object */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ try {
+ return AccessibleStateAdapter.getAccessibleStateSet(TableCell.this,
+ unoAccessibleContext.getAccessibleStateSet());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return AccessibleStateAdapter.getDefunctStateSet();
+ }
+ }
+
+ /** Returns the relation set of this object */
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet = unoAccessibleContext.getAccessibleRelationSet();
+ if (unoAccessibleRelationSet == null) {
+ return null;
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.CONTROLLED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLED_BY,
+ create(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTROLLER_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLER_FOR,
+ create(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.LABELED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ create(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.LABEL_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABEL_FOR,
+ create(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ create(unoAccessibleRelation.TargetSet)));
+ break;
+ default:
+ break;
+ }
+ }
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleComponent associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleComponent getAccessibleComponent() {
+ try {
+ XAccessibleComponent unoAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class, unoAccessibleContext);
+ return (unoAccessibleComponent != null) ?
+ new AccessibleComponentImpl(unoAccessibleComponent) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleAction associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleContext);
+ return (unoAccessibleAction != null) ?
+ new AccessibleActionImpl(unoAccessibleAction) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class, unoAccessibleContext);
+ return (unoAccessibleText != null) ?
+ new AccessibleTextImpl(unoAccessibleText) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleValue associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleValue getAccessibleValue() {
+ try {
+ XAccessibleValue unoAccessibleValue = (XAccessibleValue)
+ UnoRuntime.queryInterface(XAccessibleValue.class, unoAccessibleContext);
+ return (unoAccessibleValue != null) ?
+ new AccessibleValueImpl(unoAccessibleValue) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleIcon[] getAccessibleIcon() {
+ try {
+ XAccessibleImage unoAccessibleImage = (XAccessibleImage)
+ UnoRuntime.queryInterface(XAccessibleImage.class, unoAccessibleContext);
+ if (unoAccessibleImage != null) {
+ javax.accessibility.AccessibleIcon[] icons = { new AccessibleIconImpl(unoAccessibleImage) };
+ return icons;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/TextComponent.java b/accessibility/bridge/org/openoffice/java/accessibility/TextComponent.java
new file mode 100644
index 000000000000..a142297c4c12
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/TextComponent.java
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.accessibility.*;
+
+/**
+ */
+public class TextComponent extends Component implements javax.accessibility.Accessible {
+
+ protected TextComponent(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected class AccessibleTextComponentListener extends AccessibleUNOComponentListener {
+
+ protected AccessibleTextComponentListener() {
+ super();
+ }
+
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.EDITABLE:
+ fireStatePropertyChange(javax.accessibility.AccessibleState.EDITABLE, enable);
+ break;
+ case AccessibleStateType.MULTI_LINE:
+ fireStatePropertyChange(javax.accessibility.AccessibleState.MULTI_LINE, enable);
+ break;
+ case AccessibleStateType.SINGLE_LINE:
+ break;
+ default:
+ super.setComponentState(state, enable);
+ break;
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleTextComponentListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleTextComponent();
+ }
+
+ protected class AccessibleTextComponent extends AccessibleUNOComponent {
+
+ /**
+ * Though the class is abstract, this should be called by all sub-classes
+ */
+ protected AccessibleTextComponent() {
+ super();
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TEXT;
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class,unoAccessibleComponent);
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleEditableText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleEditableText getAccessibleEditableText() {
+ try {
+ XAccessibleEditableText unoAccessibleText = (XAccessibleEditableText)
+ UnoRuntime.queryInterface(XAccessibleEditableText.class,unoAccessibleComponent);
+ if (unoAccessibleText != null) {
+ return new AccessibleEditableTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleAction associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleComponent);
+ return (unoAccessibleAction != null) ?
+ new AccessibleActionImpl(unoAccessibleAction) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the relation set of this object */
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet =
+ unoAccessible.getAccessibleContext().getAccessibleRelationSet();
+ if (unoAccessibleRelationSet == null) {
+ return super.getAccessibleRelationSet();
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.CONTROLLED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLED_BY,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTROLLER_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.CONTROLLER_FOR,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.LABELED_BY:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABELED_BY,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTENT_FLOWS_TO:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ "flowsTo",
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.CONTENT_FLOWS_FROM:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ "flowsFrom",
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ default:
+ break;
+ }
+ }
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return super.getAccessibleRelationSet();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return super.getAccessibleRelationSet();
+ }
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/ToggleButton.java b/accessibility/bridge/org/openoffice/java/accessibility/ToggleButton.java
new file mode 100644
index 000000000000..bac8035a2ece
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/ToggleButton.java
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+
+class ToggleButton extends AbstractButton implements javax.accessibility.Accessible {
+ public ToggleButton(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleToggleButton();
+ }
+
+ protected class AccessibleToggleButton extends AccessibleAbstractButton {
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TOGGLE_BUTTON;
+ }
+
+ /** Gets the AccessibleValue associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleValue getAccessibleValue() {
+ try {
+ XAccessibleValue unoAccessibleValue = (XAccessibleValue) UnoRuntime.queryInterface(XAccessibleValue.class,
+ unoAccessibleContext);
+
+ return (unoAccessibleValue != null)
+ ? new AccessibleValueImpl(unoAccessibleValue) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/ToolTip.java b/accessibility/bridge/org/openoffice/java/accessibility/ToolTip.java
new file mode 100644
index 000000000000..071a6a37fd98
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/ToolTip.java
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+import javax.accessibility.AccessibleState;
+import javax.accessibility.AccessibleStateSet;
+
+
+/**
+ */
+public class ToolTip extends Component implements javax.accessibility.Accessible {
+ protected ToolTip(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleToolTip();
+ }
+
+ protected class AccessibleToolTip extends AccessibleUNOComponent {
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TOOL_TIP;
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText) UnoRuntime.queryInterface(XAccessibleText.class,
+ unoAccessibleComponent);
+
+ if (unoAccessibleText != null) {
+ return new AccessibleTextImpl(unoAccessibleText);
+ } else {
+ return null;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the relation set of this object */
+
+ /*
+ public javax.accessibility.AccessibleRelationSet getAccessibleRelationSet() {
+ try {
+ XAccessibleRelationSet unoAccessibleRelationSet = unoAccessibleContext.getAccessibleRelationSet();
+ if (unoAccessibleRelationSet == null) {
+ return null;
+ }
+
+ javax.accessibility.AccessibleRelationSet relationSet = new javax.accessibility.AccessibleRelationSet();
+ int count = unoAccessibleRelationSet.getRelationCount();
+ for (int i = 0; i < count; i++) {
+ AccessibleRelation unoAccessibleRelation = unoAccessibleRelationSet.getRelation(i);
+ switch (unoAccessibleRelation.RelationType) {
+ case AccessibleRelationType.LABEL_FOR:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.LABEL_FOR,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ case AccessibleRelationType.MEMBER_OF:
+ relationSet.add(new javax.accessibility.AccessibleRelation(
+ javax.accessibility.AccessibleRelation.MEMBER_OF,
+ getAccessibleComponents(unoAccessibleRelation.TargetSet)));
+ break;
+ default:
+ break;
+ }
+ }
+ return relationSet;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+ */
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Tree.java b/accessibility/bridge/org/openoffice/java/accessibility/Tree.java
new file mode 100644
index 000000000000..5fdd5a196397
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Tree.java
@@ -0,0 +1,768 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleState;
+
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.accessibility.*;
+
+public class Tree extends DescendantManager implements javax.accessibility.Accessible {
+
+ protected Tree(XAccessible xAccessible, XAccessibleContext xAccessibleContext) {
+ super(xAccessible, xAccessibleContext);
+ }
+
+ protected void setActiveDescendant(javax.accessibility.Accessible descendant) {
+ javax.accessibility.Accessible oldAD = activeDescendant;
+ activeDescendant = descendant;
+ firePropertyChange(AccessibleContext.ACCESSIBLE_ACTIVE_DESCENDANT_PROPERTY,
+ oldAD, descendant);
+ }
+
+ protected void setActiveDescendant(Object any) {
+ javax.accessibility.Accessible descendant = null;
+ try {
+ if (AnyConverter.isObject(any)) {
+ XAccessible unoAccessible = (XAccessible) AnyConverter.toObject(
+ AccessibleObjectFactory.XAccessibleType, any);
+ if (unoAccessible != null) {
+ // FIXME: have to handle non transient objects here ..
+ descendant = new TreeItem(unoAccessible);
+ }
+ }
+ setActiveDescendant(descendant);
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void add(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ firePropertyChange(AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, new TreeItem(unoAccessible));
+ }
+ }
+
+ protected void remove(XAccessible unoAccessible) {
+ if (unoAccessible != null) {
+ firePropertyChange(AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ new TreeItem(unoAccessible), null);
+ }
+ }
+
+ protected void add(Object any) {
+ try {
+ add((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ protected void remove(Object any) {
+ try {
+ remove((XAccessible) AnyConverter.toObject(AccessibleObjectFactory.XAccessibleType, any));
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleTreeListener extends AccessibleDescendantManagerListener {
+
+ protected AccessibleTreeListener() {
+ super();
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.ACTIVE_DESCENDANT_CHANGED:
+ setActiveDescendant(event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ remove(event.OldValue);
+ }
+ if (AnyConverter.isObject(event.NewValue)) {
+ add(event.NewValue);
+ }
+ break;
+
+ case AccessibleEventId.LISTBOX_ENTRY_EXPANDED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.COLLAPSED, AccessibleState.EXPANDED);
+ break;
+
+ case AccessibleEventId.LISTBOX_ENTRY_COLLAPSED:
+ firePropertyChange(AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ AccessibleState.EXPANDED, AccessibleState.COLLAPSED);
+ break;
+
+ default:
+ super.notifyEvent(event);
+ }
+ }
+ }
+
+ protected XAccessibleEventListener createEventListener() {
+ return new AccessibleTreeListener();
+ }
+
+ /** Creates the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext createAccessibleContext() {
+ return new AccessibleTree();
+ }
+
+ protected class AccessibleTree extends AccessibleDescendantManager implements javax.accessibility.AccessibleExtendedTable {
+
+ protected XAccessibleTable unoAccessibleTable;
+
+ public AccessibleTree() {
+ unoAccessibleTable = (XAccessibleTable) UnoRuntime.queryInterface(XAccessibleTable.class, unoAccessibleContext);
+ }
+
+ /*
+ * AccessibleContext
+ */
+
+ /** Gets the role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ return javax.accessibility.AccessibleRole.TREE;
+ }
+
+ /** Returns the AccessibleTable interface of this object */
+ public javax.accessibility.AccessibleTable getAccessibleTable() {
+ return ( unoAccessibleTable != null ) ? this : null;
+ }
+
+ /** Returns the specified Accessible child of the object */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Tree.this.activeDescendant;
+ if ((activeDescendant instanceof TreeItem) && xAccessible.equals(((TreeItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TreeItem(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleComponent.getAccessibleAtPoint(
+ new com.sun.star.awt.Point(p.x, p.y));
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Tree.this.activeDescendant;
+ if ((activeDescendant instanceof TreeItem) && xAccessible.equals(((TreeItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TreeItem(xAccessible);
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Tree.this.activeDescendant;
+ if ((activeDescendant instanceof TreeItem) && xAccessible.equals(((TreeItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TreeItem(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /*
+ * AccessibleTable
+ */
+
+ /** Returns the Accessible at a specified row and column in the table. */
+ public javax.accessibility.Accessible getAccessibleAt(int r, int c) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleTable.getAccessibleCellAt(r,c);
+ if (xAccessible != null) {
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Tree.this.activeDescendant;
+ if ((activeDescendant instanceof TreeItem) && xAccessible.equals(((TreeItem) activeDescendant).unoAccessible)) {
+ child = activeDescendant;
+ } else {
+ child = new TreeItem(xAccessible);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Returns the caption for the table. */
+ public javax.accessibility.Accessible getAccessibleCaption() {
+ // Not yet supported.
+ return null;
+ }
+
+ /** Returns the number of columns in the table. */
+ public int getAccessibleColumnCount() {
+ try {
+ return unoAccessibleTable.getAccessibleColumnCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the description text of the specified column in the table. */
+ public javax.accessibility.Accessible getAccessibleColumnDescription(int c) {
+ try {
+ return new javax.swing.JLabel(
+ unoAccessibleTable.getAccessibleColumnDescription(c));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the number of columns occupied by the Accessible
+ * at a specified row and column in the table.
+ */
+ public int getAccessibleColumnExtentAt(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleColumnExtentAt(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return 0;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the column headers as an AccessibleTable. */
+ public javax.accessibility.AccessibleTable getAccessibleColumnHeader() {
+ // Not yet supported
+ return null;
+ }
+
+ /** Returns the number of rows in the table. */
+ public int getAccessibleRowCount() {
+ try {
+ return unoAccessibleTable.getAccessibleRowCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the description of the specified row in the table. */
+ public javax.accessibility.Accessible getAccessibleRowDescription(int r) {
+ try {
+ return new javax.swing.JLabel(
+ unoAccessibleTable.getAccessibleRowDescription(r));
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns the number of rows occupied by the Accessible
+ * at a specified row and column in the table.
+ */
+ public int getAccessibleRowExtentAt(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleRowExtentAt(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return 0;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the row headers as an AccessibleTable. */
+ public javax.accessibility.AccessibleTable getAccessibleRowHeader() {
+ // Not yet supported
+ return null;
+ }
+
+ /** Returns the summary description of the table. */
+ public javax.accessibility.Accessible getAccessibleSummary() {
+ // Not yet supported.
+ return null;
+ }
+
+ /** Returns the selected columns in a table. */
+ public int[] getSelectedAccessibleColumns() {
+ try {
+ return unoAccessibleTable.getSelectedAccessibleColumns();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the selected rows in a table. */
+ public int[] getSelectedAccessibleRows() {
+ try {
+ return unoAccessibleTable.getSelectedAccessibleRows();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns a boolean value indicating whether the specified column is selected. */
+ public boolean isAccessibleColumnSelected(int c) {
+ try {
+ return unoAccessibleTable.isAccessibleColumnSelected(c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns a boolean value indicating whether the specified row is selected. */
+ public boolean isAccessibleRowSelected(int r) {
+ try {
+ return unoAccessibleTable.isAccessibleRowSelected(r);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /**
+ * Returns a boolean value indicating whether the accessible
+ * at a specified row and column is selected.
+ */
+ public boolean isAccessibleSelected(int r, int c) {
+ try {
+ return unoAccessibleTable.isAccessibleSelected(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Sets the caption for the table. */
+ public void setAccessibleCaption(javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the description text of the specified column in the table. */
+ public void setAccessibleColumnDescription(int param, javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the column headers. */
+ public void setAccessibleColumnHeader(javax.accessibility.AccessibleTable accessibleTable) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the description text of the specified row of the table. */
+ public void setAccessibleRowDescription(int param, javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the row headers. */
+ public void setAccessibleRowHeader(javax.accessibility.AccessibleTable accessibleTable) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Sets the summary description of the table */
+ public void setAccessibleSummary(javax.accessibility.Accessible accessible) {
+ // Not supported by the UNO Accessibility API
+ }
+
+ /** Returns the column number of an index in the table */
+ public int getAccessibleColumn(int index) {
+ try {
+ return unoAccessibleTable.getAccessibleColumn(index);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the index of a specified row and column in the table. */
+ public int getAccessibleIndex(int r, int c) {
+ try {
+ return unoAccessibleTable.getAccessibleIndex(r,c);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the row number of an index in the table */
+ public int getAccessibleRow(int index) {
+ try {
+ return unoAccessibleTable.getAccessibleRow(index);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return -1;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+ }
+
+ class TreeItem extends java.awt.Component implements javax.accessibility.Accessible {
+
+ protected XAccessible unoAccessible;
+
+ public TreeItem(XAccessible xAccessible) {
+ unoAccessible = xAccessible;
+ }
+
+ public Object[] create(Object[] targetSet) {
+ try {
+ java.util.ArrayList list = new java.util.ArrayList(targetSet.length);
+ for (int i=0; i < targetSet.length; i++) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, targetSet[i]);
+ if (xAccessible != null) {
+ list.add(new TreeItem(xAccessible));
+ }
+ }
+ list.trimToSize();
+ return list.toArray();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ try {
+ XAccessibleContext xAccessibleContext = unoAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+ javax.accessibility.AccessibleContext ac = new AccessibleTreeItem(xAccessibleContext);
+ if (ac != null) {
+ ac.setAccessibleParent(Tree.this);
+ accessibleContext = ac;
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleTreeItem extends javax.accessibility.AccessibleContext
+ implements javax.accessibility.AccessibleSelection {
+
+ XAccessibleContext unoAccessibleContext;
+ XAccessibleSelection unoAccessibleSelection;
+
+ public AccessibleTreeItem(XAccessibleContext xAccessibleContext) {
+ unoAccessibleContext = xAccessibleContext;
+ unoAccessibleSelection = (XAccessibleSelection)
+ UnoRuntime.queryInterface(XAccessibleSelection.class, xAccessibleContext);
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleName() {
+ try {
+ return unoAccessibleContext.getAccessibleName();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleName(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible name of this object */
+ public String getAccessibleDescription() {
+ try {
+ return unoAccessibleContext.getAccessibleDescription();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Sets the accessible name of this object */
+ public void setAccessibleDescription(String name) {
+ // Not supported
+ }
+
+ /** Returns the accessible role of this object */
+ public javax.accessibility.AccessibleRole getAccessibleRole() {
+ try {
+ javax.accessibility.AccessibleRole role = AccessibleRoleAdapter.getAccessibleRole(
+ unoAccessibleContext.getAccessibleRole());
+ return (role != null) ? role : javax.accessibility.AccessibleRole.LABEL;
+ } catch(com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the locale of the component */
+ public java.util.Locale getLocale() throws java.awt.IllegalComponentStateException {
+ try {
+ com.sun.star.lang.Locale unoLocale = unoAccessibleContext.getLocale();
+ return new java.util.Locale(unoLocale.Language, unoLocale.Country);
+ } catch (IllegalAccessibleComponentStateException e) {
+ throw new java.awt.IllegalComponentStateException(e.getMessage());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return Tree.this.getLocale();
+ }
+ }
+
+ /** Gets the 0-based index of this object in its accessible parent */
+ public int getAccessibleIndexInParent() {
+ try {
+ return unoAccessibleContext.getAccessibleIndexInParent();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return -1;
+ }
+ }
+
+ /** Returns the number of accessible children of the object. */
+ public int getAccessibleChildrenCount() {
+ try {
+ return unoAccessibleContext.getAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Returns the specified Accessible child of the object. */
+ public javax.accessibility.Accessible getAccessibleChild(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ // Re-use the active descandant wrapper if possible
+ javax.accessibility.Accessible activeDescendant = Tree.this.activeDescendant;
+ if ((activeDescendant instanceof TreeItem) && ((TreeItem) activeDescendant).unoAccessible.equals(xAccessible)) {
+ child = activeDescendant;
+ } else if (xAccessible != null) {
+ child = new TreeItem(xAccessible);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Returns the state set of this object */
+ public javax.accessibility.AccessibleStateSet getAccessibleStateSet() {
+ try {
+ return AccessibleStateAdapter.getAccessibleStateSet(TreeItem.this,
+ unoAccessibleContext.getAccessibleStateSet());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return AccessibleStateAdapter.getDefunctStateSet();
+ }
+ }
+
+ /** Gets the AccessibleComponent associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleComponent getAccessibleComponent() {
+ try {
+ XAccessibleComponent unoAccessibleComponent = (XAccessibleComponent)
+ UnoRuntime.queryInterface(XAccessibleComponent.class, unoAccessibleContext);
+ return (unoAccessibleComponent != null) ?
+ new AccessibleComponentImpl(unoAccessibleComponent) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Returns the AccessibleSelection interface for this object */
+ public javax.accessibility.AccessibleSelection getAccessibleSelection() {
+ return (unoAccessibleSelection != null) ? this : null;
+ }
+
+ /** Gets the AccessibleAction associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleAction getAccessibleAction() {
+ try {
+ XAccessibleAction unoAccessibleAction = (XAccessibleAction)
+ UnoRuntime.queryInterface(XAccessibleAction.class, unoAccessibleContext);
+ return (unoAccessibleAction != null) ?
+ new AccessibleActionImpl(unoAccessibleAction) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleText getAccessibleText() {
+
+ if (disposed)
+ return null;
+
+ try {
+ XAccessibleText unoAccessibleText = (XAccessibleText)
+ UnoRuntime.queryInterface(XAccessibleText.class, unoAccessibleContext);
+ return (unoAccessibleText != null) ?
+ new AccessibleTextImpl(unoAccessibleText) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleValue associated with this object that has a graphical representation */
+ public javax.accessibility.AccessibleValue getAccessibleValue() {
+ try {
+ XAccessibleValue unoAccessibleValue = (XAccessibleValue)
+ UnoRuntime.queryInterface(XAccessibleValue.class, unoAccessibleContext);
+ return (unoAccessibleValue != null) ?
+ new AccessibleValueImpl(unoAccessibleValue) : null;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the AccessibleText associated with this object presenting text on the display */
+ public javax.accessibility.AccessibleIcon[] getAccessibleIcon() {
+ try {
+ XAccessibleImage unoAccessibleImage = (XAccessibleImage)
+ UnoRuntime.queryInterface(XAccessibleImage.class, unoAccessibleContext);
+ if (unoAccessibleImage != null) {
+ javax.accessibility.AccessibleIcon[] icons = { new AccessibleIconImpl(unoAccessibleImage) };
+ return icons;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return null;
+ }
+
+ /*
+ * AccessibleSelection
+ */
+
+ /** Returns an Accessible representing the specified selected child of the object */
+ public javax.accessibility.Accessible getAccessibleSelection(int i) {
+ javax.accessibility.Accessible child = null;
+ try {
+ XAccessible xAccessible = unoAccessibleContext.getAccessibleChild(i);
+ if (xAccessible != null) {
+ child = new TreeItem(xAccessible);
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ return child;
+ }
+
+ /** Adds the specified Accessible child of the object to the object's selection */
+ public void addAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.selectAccessibleChild(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Clears the selection in the object, so that no children in the object are selected */
+ public void clearAccessibleSelection() {
+ try {
+ unoAccessibleSelection.clearAccessibleSelection();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Returns the number of Accessible children currently selected */
+ public int getAccessibleSelectionCount() {
+ try {
+ return unoAccessibleSelection.getSelectedAccessibleChildCount();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return 0;
+ }
+ }
+
+ /** Determines if the current child of this object is selected */
+ public boolean isAccessibleChildSelected(int i) {
+ try {
+ return unoAccessibleSelection.isAccessibleChildSelected(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ return false;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Removes the specified child of the object from the object's selection */
+ public void removeAccessibleSelection(int i) {
+ try {
+ unoAccessibleSelection.deselectAccessibleChild(i);
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ /** Causes every child of the object to be selected if the object supports multiple selection */
+ public void selectAllAccessibleSelection() {
+ try {
+ unoAccessibleSelection.selectAllAccessibleChildren();
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/Window.java b/accessibility/bridge/org/openoffice/java/accessibility/Window.java
new file mode 100644
index 000000000000..ef44c3380a48
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/Window.java
@@ -0,0 +1,551 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility;
+
+import com.sun.star.uno.*;
+import com.sun.star.accessibility.*;
+
+public class Window extends java.awt.Window implements javax.accessibility.Accessible, NativeFrame {
+ protected XAccessibleComponent unoAccessibleComponent;
+
+ boolean opened = false;
+ boolean visible = false;
+
+ java.awt.EventQueue eventQueue = null;
+
+ public Window(java.awt.Window owner, XAccessibleComponent xAccessibleComponent) {
+ super(owner);
+ initialize(xAccessibleComponent);
+ }
+
+ private void initialize(XAccessibleComponent xAccessibleComponent) {
+ unoAccessibleComponent = xAccessibleComponent;
+ eventQueue = java.awt.Toolkit.getDefaultToolkit().getSystemEventQueue();
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class,
+ unoAccessibleComponent);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(new AccessibleWindowListener());
+ }
+ }
+
+ java.awt.Component initialComponent = null;
+
+ public java.awt.Component getInitialComponent() {
+ if (Build.DEBUG) {
+ System.err.println("returning initial component object of class: " + initialComponent.getClass().getName());
+ }
+ return initialComponent;
+ }
+
+ public void setInitialComponent(java.awt.Component c) {
+ initialComponent = c;
+ }
+
+ public Integer getHWND() {
+ return null;
+ }
+
+ /**
+ * Determines whether this <code>Component</code> is showing on screen.
+ * This means that the component must be visible, and it must be in a
+ * <code>container</code> that is visible and showing.
+ * @see #addNotify
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public boolean isShowing() {
+ if (isVisible()) {
+ java.awt.Container parent = getParent();
+ return (parent == null) || parent.isShowing();
+ }
+ return false;
+ }
+
+ /**
+ * Makes this <code>Component</code> displayable by connecting it to a
+ * native screen resource.
+ * This method is called internally by the toolkit and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #removeNotify
+ * @since JDK1.0
+ */
+ public void addNotify() {
+// createHierarchyEvents(0, null, null, 0, false);
+ }
+
+ /**
+ * Makes this <code>Component</code> undisplayable by destroying it native
+ * screen resource.
+ * This method is called by the toolkit internally and should
+ * not be called directly by programs.
+ * @see #isDisplayable
+ * @see #addNotify
+ * @since JDK1.0
+ */
+ public void removeNotify() {
+ }
+
+ /**
+ * Determines if the object is visible. Note: this means that the
+ * object intends to be visible; however, it may not in fact be
+ * showing on the screen because one of the objects that this object
+ * is contained by is not visible. To determine if an object is
+ * showing on the screen, use <code>isShowing</code>.
+ *
+ * @return true if object is visible; otherwise, false
+ */
+ public boolean isVisible(){
+ return visible;
+ }
+
+ /**
+ * Shows or hides this component depending on the value of parameter
+ * <code>b</code>.
+ * @param b if <code>true</code>, shows this component;
+ * otherwise, hides this component
+ * @see #isVisible
+ * @since JDK1.1
+ */
+ public void setVisible(boolean b) {
+ if (visible != b){
+ visible = b;
+ if (b) {
+ // If it is the first show, fire WINDOW_OPENED event
+ if (!opened) {
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_OPENED);
+ opened = true;
+ }
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_SHOWN);
+ } else {
+ postComponentEvent(java.awt.event.ComponentEvent.COMPONENT_HIDDEN);
+ }
+ }
+ }
+
+ public void dispose() {
+ setVisible(false);
+ postWindowEvent(java.awt.event.WindowEvent.WINDOW_CLOSED);
+
+ // Transfer window focus back to the owner window if it is still the active frame
+ if ((getOwner() instanceof Frame && ((Frame) getOwner()).active) ||
+ (getOwner() instanceof Dialog && ((Dialog) getOwner()).active)) {
+ eventQueue.postEvent(new java.awt.event.WindowEvent(getOwner(),
+ java.awt.event.WindowEvent.WINDOW_GAINED_FOCUS));
+ }
+ }
+
+ protected void postWindowEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.WindowEvent(this, i));
+ }
+
+ protected void postComponentEvent(int i) {
+ eventQueue.postEvent(new java.awt.event.ComponentEvent(this, i));
+ }
+
+ /**
+ * Update the proxy objects appropriatly on property change events
+ */
+ protected class AccessibleWindowListener implements XAccessibleEventListener {
+
+ protected AccessibleWindowListener() {
+ }
+
+ // The only expected state changes are ACTIVE and VISIBLE
+ protected void setComponentState(short state, boolean enable) {
+ switch (state) {
+ case AccessibleStateType.ICONIFIED:
+ postWindowEvent(enable ?
+ java.awt.event.WindowEvent.WINDOW_ICONIFIED :
+ java.awt.event.WindowEvent.WINDOW_DEICONIFIED);
+ break;
+ case AccessibleStateType.SHOWING:
+ case AccessibleStateType.VISIBLE:
+ setVisible(enable);
+ break;
+ default:
+ if (Build.DEBUG) {
+// System.err.println("[frame]: " + getTitle() + "unexpected state change " + state);
+ }
+ break;
+ }
+ }
+
+ /** Updates the accessible name and fires the appropriate PropertyChangedEvent */
+ protected void handleNameChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac!= null) {
+ ac.setAccessibleName(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the accessible description and fires the appropriate PropertyChangedEvent */
+ protected void handleDescriptionChangedEvent(Object any) {
+ try {
+ // This causes the property change event to be fired in the VCL thread
+ // context. If this causes problems, it has to be deligated to the java
+ // dispatch thread ..
+ if (accessibleContext != null) {
+ accessibleContext.setAccessibleDescription(AnyConverter.toString(any));
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Updates the internal states and fires the appropriate PropertyChangedEvent */
+ protected void handleStateChangedEvent(Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ setComponentState(AnyConverter.toShort(any1), false);
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ setComponentState(AnyConverter.toShort(any2), true);
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ /** Fires a visible data property change event */
+ protected void handleVisibleDataEvent() {
+ javax.accessibility.AccessibleContext ac = accessibleContext;
+ if (ac != null) {
+ ac.firePropertyChange(javax.accessibility.AccessibleContext.ACCESSIBLE_VISIBLE_DATA_PROPERTY, null, null);
+ }
+ }
+
+ /** Called by OpenOffice process to notify property changes */
+ public void notifyEvent(AccessibleEventObject event) {
+ switch (event.EventId) {
+ case AccessibleEventId.NAME_CHANGED:
+ // Set the accessible name for the corresponding context, which will fire a property
+ // change event itself
+ handleNameChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.DESCRIPTION_CHANGED:
+ // Set the accessible description for the corresponding context, which will fire a property
+ // change event itself - so do not set propertyName !
+ handleDescriptionChangedEvent(event.NewValue);
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ // Update the internal state set and fire the appropriate PropertyChangedEvent
+ handleStateChangedEvent(event.OldValue, event.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ if (AnyConverter.isObject(event.OldValue)) {
+ AccessibleObjectFactory.removeChild(Window.this, event.OldValue);
+ } else if (AnyConverter.isObject(event.NewValue)) {
+ AccessibleObjectFactory.addChild(Window.this, event.NewValue);
+ }
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ handleVisibleDataEvent();
+ break;
+ default:
+ // Warn about unhandled events
+ if(Build.DEBUG) {
+ System.out.println(this + ": unhandled accessibility event id=" + event.EventId);
+ }
+ }
+ }
+
+ /** Called by OpenOffice process to notify that the UNO component is disposing */
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+ }
+
+ protected javax.accessibility.AccessibleContext accessibleContext = null;
+
+ /** Returns the AccessibleContext associated with this object */
+ public javax.accessibility.AccessibleContext getAccessibleContext() {
+ if (accessibleContext == null) {
+ accessibleContext = new AccessibleWindow();
+// accessibleContext.setAccessibleName(getTitle());
+ }
+ return accessibleContext;
+ }
+
+ protected class AccessibleWindow extends java.awt.Window.AccessibleAWTWindow {
+ protected AccessibleWindow() {
+ super();
+ }
+
+ protected java.awt.event.ComponentListener accessibleComponentHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when shown/hidden..
+ */
+ protected class AccessibleComponentHandler implements java.awt.event.ComponentListener {
+ public void componentHidden(java.awt.event.ComponentEvent e) {
+ AccessibleWindow.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ javax.accessibility.AccessibleState.VISIBLE, null);
+ }
+
+ public void componentShown(java.awt.event.ComponentEvent e) {
+ AccessibleWindow.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_STATE_PROPERTY,
+ null, javax.accessibility.AccessibleState.VISIBLE);
+ }
+
+ public void componentMoved(java.awt.event.ComponentEvent e) {
+ }
+
+ public void componentResized(java.awt.event.ComponentEvent e) {
+ }
+ } // inner class AccessibleComponentHandler
+
+ protected java.awt.event.ContainerListener accessibleContainerHandler = null;
+
+ /**
+ * Fire PropertyChange listener, if one is registered,
+ * when children added/removed.
+ */
+
+ protected class AccessibleContainerHandler implements java.awt.event.ContainerListener {
+ public void componentAdded(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleWindow.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ null, ((javax.accessibility.Accessible) c).getAccessibleContext());
+ }
+ }
+ public void componentRemoved(java.awt.event.ContainerEvent e) {
+ java.awt.Component c = e.getChild();
+ if (c != null && c instanceof javax.accessibility.Accessible) {
+ AccessibleWindow.this.firePropertyChange(
+ javax.accessibility.AccessibleContext.ACCESSIBLE_CHILD_PROPERTY,
+ ((javax.accessibility.Accessible) c).getAccessibleContext(), null);
+ }
+ }
+ }
+
+ protected int propertyChangeListenerCount = 0;
+
+ /**
+ * Add a PropertyChangeListener to the listener list.
+ *
+ * @param listener The PropertyChangeListener to be added
+ */
+ public void addPropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (propertyChangeListenerCount++ == 0) {
+ accessibleContainerHandler = new AccessibleContainerHandler();
+ Window.this.addContainerListener(accessibleContainerHandler);
+
+ accessibleComponentHandler = new AccessibleComponentHandler();
+ Window.this.addComponentListener(accessibleComponentHandler);
+ }
+ super.addPropertyChangeListener(listener);
+ }
+
+ /**
+ * Remove a PropertyChangeListener from the listener list.
+ * This removes a PropertyChangeListener that was registered
+ * for all properties.
+ *
+ * @param listener The PropertyChangeListener to be removed
+ */
+ public void removePropertyChangeListener(java.beans.PropertyChangeListener listener) {
+ if (--propertyChangeListenerCount == 0) {
+ Window.this.removeComponentListener(accessibleComponentHandler);
+ accessibleComponentHandler = null;
+
+ Window.this.removeContainerListener(accessibleContainerHandler);
+ accessibleContainerHandler = null;
+ }
+ super.removePropertyChangeListener(listener);
+ }
+
+ /*
+ * AccessibleComponent
+ */
+
+ /** Returns the background color of the object */
+ public java.awt.Color getBackground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getBackground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setBackground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the foreground color of the object */
+ public java.awt.Color getForeground() {
+ try {
+ return new java.awt.Color(unoAccessibleComponent.getForeground());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public void setForeground(java.awt.Color c) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Cursor getCursor() {
+ // Not supported by UNO accessibility API
+ return null;
+ }
+
+ public void setCursor(java.awt.Cursor cursor) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.Font getFont() {
+ // FIXME
+ return null;
+ }
+
+ public void setFont(java.awt.Font f) {
+ // Not supported by UNO accessibility API
+ }
+
+ public java.awt.FontMetrics getFontMetrics(java.awt.Font f) {
+ // FIXME
+ return null;
+ }
+
+ public boolean isEnabled() {
+ return Window.this.isEnabled();
+ }
+
+ public void setEnabled(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isVisible() {
+ return Window.this.isVisible();
+ }
+
+ public void setVisible(boolean b) {
+ // Not supported by UNO accessibility API
+ }
+
+ public boolean isShowing() {
+ return Window.this.isShowing();
+ }
+
+ public boolean contains(java.awt.Point p) {
+ try {
+ return unoAccessibleComponent.containsPoint(new com.sun.star.awt.Point(p.x, p.y));
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return false;
+ }
+ }
+
+ /** Returns the location of the object on the screen. */
+ public java.awt.Point getLocationOnScreen() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+ return new java.awt.Point(unoPoint.X, unoPoint.Y);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Gets the location of this component in the form of a point specifying the component's top-left corner */
+ public java.awt.Point getLocation() {
+ try {
+ com.sun.star.awt.Point unoPoint = unoAccessibleComponent.getLocationOnScreen();
+ return new java.awt.Point( unoPoint.X, unoPoint.Y );
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves this component to a new location */
+ public void setLocation(java.awt.Point p) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Gets the bounds of this component in the form of a Rectangle object */
+ public java.awt.Rectangle getBounds() {
+ try {
+ com.sun.star.awt.Rectangle unoRect = unoAccessibleComponent.getBounds();
+ return new java.awt.Rectangle(unoRect.X, unoRect.Y, unoRect.Width, unoRect.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Moves and resizes this component to conform to the new bounding rectangle r */
+ public void setBounds(java.awt.Rectangle r) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the size of this component in the form of a Dimension object */
+ public java.awt.Dimension getSize() {
+ try {
+ com.sun.star.awt.Size unoSize = unoAccessibleComponent.getSize();
+ return new java.awt.Dimension(unoSize.Width, unoSize.Height);
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ /** Resizes this component so that it has width d.width and height d.height */
+ public void setSize(java.awt.Dimension d) {
+ // Not supported by UNO accessibility API
+ }
+
+ /** Returns the Accessible child, if one exists, contained at the local coordinate Point */
+ public javax.accessibility.Accessible getAccessibleAt(java.awt.Point p) {
+ try {
+ java.awt.Component c = AccessibleObjectFactory.getAccessibleComponent(
+ unoAccessibleComponent.getAccessibleAtPoint(new com.sun.star.awt.Point(p.x, p.y)));
+
+ return (javax.accessibility.Accessible) c;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return null;
+ }
+ }
+
+ public boolean isFocusTraversable() {
+ return Window.this.isFocusable();
+ }
+
+ public void requestFocus() {
+ unoAccessibleComponent.grabFocus();
+ }
+ }
+}
+
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleEventLog.java b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleEventLog.java
new file mode 100644
index 000000000000..36bec1cab8fb
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleEventLog.java
@@ -0,0 +1,186 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility.logging;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+/**
+ *
+ */
+public class XAccessibleEventLog implements XAccessibleEventListener {
+
+ private static XAccessibleEventLog theEventListener = null;
+
+ private static java.util.Hashtable proxyList = new java.util.Hashtable();
+
+ /** Creates a new instance of UNOAccessibleEventListener */
+ public XAccessibleEventLog() {
+ }
+
+ private static XAccessibleEventListener get() {
+ if (theEventListener == null) {
+ theEventListener = new XAccessibleEventLog();
+ }
+ return theEventListener;
+ }
+
+ public static void addEventListener(XAccessibleContext xac, java.awt.Component c) {
+ XAccessibleEventBroadcaster broadcaster = (XAccessibleEventBroadcaster)
+ UnoRuntime.queryInterface(XAccessibleEventBroadcaster.class, xac);
+ if (broadcaster != null) {
+ broadcaster.addEventListener(XAccessibleEventLog.get());
+
+ // remember the proxy objects
+ synchronized (proxyList) {
+// proxyList.put(UnoRuntime.generateOid(xac), new WeakReference(c));
+ proxyList.put(UnoRuntime.generateOid(xac), c);
+ }
+ }
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void notifyEvent(com.sun.star.accessibility.AccessibleEventObject accessibleEventObject) {
+ switch (accessibleEventObject.EventId) {
+ case AccessibleEventId.ACTIVE_DESCENDANT_CHANGED:
+ logMessage(accessibleEventObject.Source, "Retrieved active descendant event.");
+ break;
+ case AccessibleEventId.STATE_CHANGED:
+ logStateChange(accessibleEventObject.Source,
+ accessibleEventObject.OldValue,
+ accessibleEventObject.NewValue);
+ break;
+ case AccessibleEventId.CHILD:
+ logMessage(accessibleEventObject.Source, "Retrieved children event.");
+ break;
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ logMessage(accessibleEventObject.Source, "Retrieved boundrect changed event.");
+ break;
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ logMessage(accessibleEventObject.Source, "Retrieved visible data changed event.");
+ break;
+ case AccessibleEventId.INVALIDATE_ALL_CHILDREN:
+ logMessage(accessibleEventObject.Source, "Retrieved invalidate children event.");
+ break;
+ default:
+ break;
+ }
+ }
+
+ public void logStateChange(Object o, Object any1, Object any2) {
+ try {
+ if (AnyConverter.isShort(any1)) {
+ logStateChange(o, AnyConverter.toShort(any1), " is no longer ");
+ }
+
+ if (AnyConverter.isShort(any2)) {
+ logStateChange(o, AnyConverter.toShort(any2), " is now ");
+ }
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ }
+ }
+
+ public void logStateChange(Object o, short n, String s) {
+ switch(n) {
+ case AccessibleStateType.ACTIVE:
+ logMessage(o, s + javax.accessibility.AccessibleState.ACTIVE);
+ break;
+ case AccessibleStateType.ARMED:
+ logMessage(o, s + javax.accessibility.AccessibleState.ARMED);
+ break;
+ case AccessibleStateType.CHECKED:
+ logMessage(o, s + javax.accessibility.AccessibleState.CHECKED);
+ break;
+ case AccessibleStateType.ENABLED:
+ logMessage(o, s + javax.accessibility.AccessibleState.ENABLED);
+ break;
+ case AccessibleStateType.FOCUSED:
+ logMessage(o, s + javax.accessibility.AccessibleState.FOCUSED);
+ break;
+ case AccessibleStateType.PRESSED:
+ logMessage(o, s + javax.accessibility.AccessibleState.PRESSED);
+ break;
+ case AccessibleStateType.SELECTED:
+ logMessage(o, s + javax.accessibility.AccessibleState.SELECTED);
+ break;
+ case AccessibleStateType.SENSITIVE:
+ logMessage(o, s + "sensitive");
+ break;
+ case AccessibleStateType.SHOWING:
+ logMessage(o, s + javax.accessibility.AccessibleState.SHOWING);
+ break;
+ case AccessibleStateType.VISIBLE:
+ logMessage(o, s + javax.accessibility.AccessibleState.VISIBLE);
+ break;
+ default:
+ logMessage(o, s + "??? (FIXME)");
+ break;
+ }
+ }
+
+ protected static void logMessage(Object o, String s) {
+ XAccessibleContext xac = (XAccessibleContext) UnoRuntime.queryInterface(XAccessibleContext.class, o);
+ if( xac != null ) {
+ String oid = UnoRuntime.generateOid(xac);
+ synchronized (proxyList) {
+ logMessage( (javax.accessibility.Accessible) proxyList.get( oid ), s );
+// WeakReference r = (WeakReference) proxyList.get( oid );
+// if(r != null) {
+// System.err.println( "*** Warning *** event is " + r.get() );
+// logMessage( (javax.accessibility.Accessible) r.get(), s );
+// } else {
+// System.err.println( "*** Warning *** event source not found in broadcaster list" );
+// }
+ }
+ } else
+ System.err.println( "*** Warning *** event source does not implement XAccessibleContext" );
+ }
+
+ protected static void logMessage(javax.accessibility.Accessible a, String s) {
+ if (a != null) {
+ logMessage(a.getAccessibleContext(), s);
+ } else {
+ logMessage(s);
+ }
+ }
+
+ protected static void logMessage(javax.accessibility.AccessibleContext ac, String s) {
+ if (ac != null) {
+ logMessage("[" + ac.getAccessibleRole() + "] "
+ + ac.getAccessibleName() + ": " + s);
+ } else {
+ logMessage(s);
+ }
+ }
+
+ protected static void logMessage(String s) {
+ System.err.println(s);
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleHypertextLog.java b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleHypertextLog.java
new file mode 100644
index 000000000000..f14da6d8280b
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleHypertextLog.java
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.java.accessibility.logging;
+
+import com.sun.star.accessibility.*;
+import com.sun.star.uno.*;
+
+/** The AccessibleHypertextImpl mapps all calls to the java AccessibleHypertext
+ * interface to the corresponding methods of the UNO XAccessibleHypertext
+ * interface.
+ */
+public class XAccessibleHypertextLog extends XAccessibleTextLog
+ implements com.sun.star.accessibility.XAccessibleHypertext {
+
+ private com.sun.star.accessibility.XAccessibleHypertext unoObject;
+
+ /** Creates a new instance of XAccessibleTextLog */
+ public XAccessibleHypertextLog(XAccessibleHypertext xAccessibleHypertext) {
+ super(xAccessibleHypertext);
+ unoObject = xAccessibleHypertext;
+ }
+
+ public XAccessibleHyperlink getHyperLink(int param)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.getHyperLink(param);
+ }
+
+ public int getHyperLinkCount() {
+ return unoObject.getHyperLinkCount();
+ }
+
+ public int getHyperLinkIndex(int param)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.getHyperLinkIndex(param);
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog.java b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog.java
new file mode 100644
index 000000000000..4b415ee60c74
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/logging/XAccessibleTextLog.java
@@ -0,0 +1,270 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package org.openoffice.java.accessibility.logging;
+
+import org.openoffice.java.accessibility.*;
+
+
+/**
+ *
+ */
+public class XAccessibleTextLog
+ implements com.sun.star.accessibility.XAccessibleText {
+ private com.sun.star.accessibility.XAccessibleText unoObject;
+ private String name = "[Unknown] NoName";
+
+ /** Creates a new instance of XAccessibleTextLog */
+ public XAccessibleTextLog(
+ com.sun.star.accessibility.XAccessibleText xAccessibleText) {
+ unoObject = xAccessibleText;
+ setName(xAccessibleText);
+ }
+
+ private void setName(
+ com.sun.star.accessibility.XAccessibleText xAccessibleText) {
+ try {
+ com.sun.star.accessibility.XAccessibleContext unoAccessibleContext = (com.sun.star.accessibility.XAccessibleContext) com.sun.star.uno.UnoRuntime.queryInterface(com.sun.star.accessibility.XAccessibleContext.class,
+ xAccessibleText);
+
+ if (unoAccessibleContext != null) {
+ name = "[" +
+ AccessibleRoleAdapter.getAccessibleRole(unoAccessibleContext.getAccessibleRole()) +
+ "] " + unoAccessibleContext.getAccessibleName() + ": ";
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+
+ private String getPartString(short s) {
+ String part = "INVALID";
+
+ switch (s) {
+ case com.sun.star.accessibility.AccessibleTextType.CHARACTER:
+ part = "CHARACTER";
+
+ break;
+
+ case com.sun.star.accessibility.AccessibleTextType.WORD:
+ part = "WORD";
+
+ break;
+
+ case com.sun.star.accessibility.AccessibleTextType.SENTENCE:
+ part = "SENTENCE";
+
+ break;
+
+ case com.sun.star.accessibility.AccessibleTextType.LINE:
+ part = "LINE";
+
+ break;
+
+ case com.sun.star.accessibility.AccessibleTextType.ATTRIBUTE_RUN:
+ part = "ATTRIBUTE_RUN";
+
+ break;
+
+ default:
+ break;
+ }
+
+ return part;
+ }
+
+ private String dumpTextSegment(com.sun.star.accessibility.TextSegment ts) {
+ if (ts != null) {
+ return "(" + ts.SegmentStart + "," + ts.SegmentEnd + "," +
+ ts.SegmentText + ")";
+ }
+
+ return "NULL";
+ }
+
+ public boolean copyText(int param, int param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.copyText(param, param1);
+ }
+
+ public int getCaretPosition() {
+ int pos = unoObject.getCaretPosition();
+ System.err.println(name + "getCaretPosition() returns " + pos);
+
+ return pos;
+ }
+
+ public char getCharacter(int param)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.getCharacter(param);
+ }
+
+ public com.sun.star.beans.PropertyValue[] getCharacterAttributes(
+ int param, String[] str)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.getCharacterAttributes(param, str);
+ }
+
+ public com.sun.star.awt.Rectangle getCharacterBounds(int param)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ try {
+ com.sun.star.awt.Rectangle r = unoObject.getCharacterBounds(param);
+ System.err.println(name + "getCharacterBounds(" + param +
+ ") returns (" + r.X + "," + r.Y + "," + r.Width + "," +
+ r.Height + ")");
+
+ return r;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.err.println("IndexOutOufBoundsException caught for " + name +
+ "getCharacterBounds(" + param + ")");
+ throw e;
+ }
+ }
+
+ public int getCharacterCount() {
+ return unoObject.getCharacterCount();
+ }
+
+ public int getIndexAtPoint(com.sun.star.awt.Point point) {
+ try {
+ int index = unoObject.getIndexAtPoint(point);
+ System.err.println(name + "getIndexAtPoint(" + point.X + ", " +
+ point.Y + ") returns " + index);
+
+ return index;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ System.err.println(name +
+ "RuntimeException caught for getIndexAtPoint(" + point.X +
+ ", " + point.Y + ")");
+ System.err.println(e.getMessage());
+ throw e;
+ }
+ }
+
+ public String getSelectedText() {
+ return unoObject.getSelectedText();
+ }
+
+ public int getSelectionEnd() {
+ return unoObject.getSelectionEnd();
+ }
+
+ public int getSelectionStart() {
+ return unoObject.getSelectionStart();
+ }
+
+ public String getText() {
+ return unoObject.getText();
+ }
+
+ public com.sun.star.accessibility.TextSegment getTextAtIndex(int param,
+ short param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException,
+ com.sun.star.lang.IllegalArgumentException {
+ try {
+ com.sun.star.accessibility.TextSegment ts = unoObject.getTextAtIndex(param,
+ param1);
+ System.err.println(name + "getTextAtIndex(" +
+ getPartString(param1) + "," + param + ") returns " +
+ dumpTextSegment(ts));
+
+ return ts;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.err.println("IndexOutOufBoundsException caught for " + name +
+ " getTextAtIndex(" + getPartString(param1) + "," + param1 +
+ ")");
+ throw e;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught for " + name +
+ " getTextAtIndex(" + getPartString(param1) + "," + param + ")");
+ throw e;
+ }
+ }
+
+ public com.sun.star.accessibility.TextSegment getTextBeforeIndex(
+ int param, short param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException,
+ com.sun.star.lang.IllegalArgumentException {
+ try {
+ com.sun.star.accessibility.TextSegment ts = unoObject.getTextBeforeIndex(param,
+ param1);
+ System.err.println(name + " getTextBeforeIndex(" +
+ getPartString(param1) + "," + param + ") returns " +
+ dumpTextSegment(ts));
+
+ return ts;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.err.println("IndexOutOufBoundsException caught for " + name +
+ " getTextBeforeIndex(" + getPartString(param1) + "," + param1 +
+ ")");
+ throw e;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught for " + name +
+ " getTextBeforeIndex(" + getPartString(param1) + "," + param +
+ ")");
+ throw e;
+ }
+ }
+
+ public com.sun.star.accessibility.TextSegment getTextBehindIndex(
+ int param, short param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException,
+ com.sun.star.lang.IllegalArgumentException {
+ try {
+ com.sun.star.accessibility.TextSegment ts = unoObject.getTextBehindIndex(param,
+ param1);
+ System.err.println(name + " getTextBehindIndex(" +
+ getPartString(param1) + "," + param + ") returns " +
+ dumpTextSegment(ts));
+
+ return ts;
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ System.err.println("IndexOutOufBoundsException caught for " + name +
+ " getTextBehindIndex(" + getPartString(param1) + "," + param1 +
+ ")");
+ throw e;
+ } catch (com.sun.star.lang.IllegalArgumentException e) {
+ System.err.println("IllegalArgumentException caught for " + name +
+ " getTextBehindIndex(" + getPartString(param1) + "," + param +
+ ")");
+ throw e;
+ }
+ }
+
+ public String getTextRange(int param, int param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.getTextRange(param, param1);
+ }
+
+ public boolean setCaretPosition(int param)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.setCaretPosition(param);
+ }
+
+ public boolean setSelection(int param, int param1)
+ throws com.sun.star.lang.IndexOutOfBoundsException {
+ return unoObject.setSelection(param, param1);
+ }
+}
diff --git a/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk
new file mode 100755
index 000000000000..f99b19cd6590
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/java/accessibility/makefile.mk
@@ -0,0 +1,126 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = accessibility
+PRJ = ..$/..$/..$/..$/..
+TARGET = java_accessibility
+PACKAGE = org$/openoffice$/java$/accessibility
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+JAVADIR = $(OUT)$/misc$/java
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ logging$/XAccessibleEventLog.java \
+ logging$/XAccessibleHypertextLog.java \
+ logging$/XAccessibleTextLog.java \
+ AbstractButton.java \
+ AccessibleActionImpl.java \
+ AccessibleComponentImpl.java \
+ AccessibleEditableTextImpl.java \
+ AccessibleExtendedState.java \
+ AccessibleHypertextImpl.java \
+ AccessibleIconImpl.java \
+ AccessibleKeyBinding.java \
+ AccessibleObjectFactory.java \
+ AccessibleRoleAdapter.java \
+ AccessibleSelectionImpl.java \
+ AccessibleStateAdapter.java \
+ AccessibleTextImpl.java \
+ AccessibleValueImpl.java \
+ Alert.java \
+ Application.java \
+ Button.java \
+ CheckBox.java \
+ ComboBox.java \
+ Component.java \
+ Container.java \
+ DescendantManager.java \
+ Dialog.java \
+ FocusTraversalPolicy.java \
+ Frame.java \
+ Icon.java \
+ Label.java \
+ List.java \
+ Menu.java \
+ MenuItem.java \
+ MenuContainer.java \
+ NativeFrame.java \
+ Paragraph.java \
+ RadioButton.java \
+ ScrollBar.java \
+ Separator.java \
+ Table.java \
+ TextComponent.java \
+ ToggleButton.java \
+ ToolTip.java \
+ Tree.java \
+ Window.java
+
+JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:s/.java//).class) $(CLASSDIR)$/$(PACKAGE)$/Build.class
+
+JARTARGET = $(TARGET).jar
+JARCOMPRESS = TRUE
+JARCLASSDIRS = $(PACKAGE)
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+# Enable logging in non-product only
+.IF "$(PRODUCT)"!=""
+DEBUGSWITCH = false
+PRODUCTSWITCH = true
+.ELSE
+PRODUCTSWITCH = false
+DEBUGSWITCH = true
+.ENDIF
+
+.IF "$(GUI)"=="UNX" || "$(USE_SHELL)" != "4nt"
+$(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk
+ @@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE)
+ @-echo package org.openoffice.java.accessibility\; > $@
+ @-echo public class Build { >> $@
+ @-echo public static final boolean DEBUG = $(DEBUGSWITCH)\; >> $@
+ @-echo public static final boolean PRODUCT = $(PRODUCTSWITCH)\; >> $@
+ @-echo } >> $@
+.ELSE
+$(JAVADIR)$/$(PACKAGE)$/%.java: makefile.mk
+ @@-$(MKDIRHIER) $(JAVADIR)$/$(PACKAGE)
+ @-echo package org.openoffice.java.accessibility; > $@
+ @-echo public class Build { >> $@
+ @-echo public static final boolean DEBUG = $(DEBUGSWITCH); >> $@
+ @-echo public static final boolean PRODUCT = $(PRODUCTSWITCH); >> $@
+ @-echo } >> $@
+.ENDIF
+
+
+$(CLASSDIR)$/$(PACKAGE)$/Build.class : $(JAVADIR)$/$(PACKAGE)$/Build.java
+ -$(JAVAC) -d $(CLASSDIR) $(JAVADIR)$/$(PACKAGE)$/Build.java
+
diff --git a/accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx b/accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx
new file mode 100644
index 000000000000..a281b3aa51a1
--- /dev/null
+++ b/accessibility/bridge/source/java/WindowsAccessBridgeAdapter.cxx
@@ -0,0 +1,317 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+//------------------------------------------------------------------------
+// includes
+//------------------------------------------------------------------------
+
+#include <WindowsAccessBridgeAdapter.h>
+
+#include <tools/prewin.h>
+#include <wtypes.h>
+#include <tools/postwin.h>
+#include <rtl/process.h>
+#include <tools/link.hxx>
+
+#ifndef _SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#include <vcl/window.hxx>
+#include <vcl/sysdata.hxx>
+#include <uno/current_context.hxx>
+#include <uno/environment.h>
+#include <uno/mapping.hxx>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+
+#ifndef _JVMACCESS_UNOVIRTUALMACHINE_HXX_
+#include "jvmaccess/unovirtualmachine.hxx"
+#endif
+
+#ifndef _JVMACCESS_VIRTUALMACHINE_HXX_
+#include "jvmaccess/virtualmachine.hxx"
+#endif
+
+#include <osl/diagnose.h>
+
+using ::rtl::OUString;
+using ::com::sun::star::uno::Mapping;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::RuntimeException;
+using namespace ::com::sun::star::accessibility;
+
+long VCLEventListenerLinkFunc(void * pInst, void * pData);
+
+//------------------------------------------------------------------------
+// global vatiables
+//------------------------------------------------------------------------
+
+Link g_aEventListenerLink(NULL, VCLEventListenerLinkFunc);
+
+rtl::Reference< jvmaccess::UnoVirtualMachine > g_xUnoVirtualMachine;
+typelib_InterfaceTypeDescription * g_pTypeDescription = NULL;
+Mapping g_unoMapping;
+
+jclass g_jcWindowsAccessBridgeAdapter = NULL;
+jmethodID g_jmRegisterTopWindow = 0;
+jmethodID g_jmRevokeTopWindow = 0;
+
+//------------------------------------------------------------------------
+// functions
+//------------------------------------------------------------------------
+
+JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *, void *)
+{
+ return JNI_VERSION_1_2;
+}
+
+JNIEXPORT jbyteArray JNICALL
+Java_org_openoffice_accessibility_WindowsAccessBridgeAdapter_getProcessID(JNIEnv *pJNIEnv, jclass clazz)
+{
+ // Initialize global class and method references
+ g_jcWindowsAccessBridgeAdapter =
+ static_cast< jclass > (pJNIEnv->NewGlobalRef(clazz));
+ if (NULL == g_jcWindowsAccessBridgeAdapter) {
+ return 0; /* jni error occured */
+ }
+ g_jmRegisterTopWindow =
+ pJNIEnv->GetStaticMethodID(clazz, "registerTopWindow", "(ILcom/sun/star/accessibility/XAccessible;)V");
+ if (0 == g_jmRegisterTopWindow) {
+ return 0; /* jni error occured */
+ }
+ g_jmRevokeTopWindow =
+ pJNIEnv->GetStaticMethodID(clazz, "revokeTopWindow", "(ILcom/sun/star/accessibility/XAccessible;)V");
+ if (0 == g_jmRevokeTopWindow) {
+ return 0; /* jni error occured */
+ }
+
+ // Use the special protocol of XJavaVM.getJavaVM: If the passed in
+ // process ID has an extra 17th byte of value one, the returned any
+ // contains a pointer to a jvmaccess::UnoVirtualMachine, instead of
+ // the underlying JavaVM pointer:
+ jbyte processID[17];
+ rtl_getGlobalProcessId(reinterpret_cast<sal_uInt8 *> (processID));
+ // #i51265# we need a jvmaccess::UnoVirtualMachine pointer for the
+ // uno_getEnvironment() call later.
+ processID[16] = 1;
+
+ // Copy the result into a java byte[] and return.
+ jbyteArray jbaProcessID = pJNIEnv->NewByteArray(17);
+ pJNIEnv->SetByteArrayRegion(jbaProcessID, 0, 17, processID);
+ return jbaProcessID;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_org_openoffice_accessibility_WindowsAccessBridgeAdapter_createMapping(JNIEnv *, jclass, jlong pointer)
+{
+ uno_Environment * pJava_environment = NULL;
+ uno_Environment * pUno_environment = NULL;
+
+ try {
+ // We get a non-refcounted pointer to a jvmaccess::VirtualMachine
+ // from the XJavaVM service (the pointer is guaranteed to be valid
+ // as long as our reference to the XJavaVM service lasts), and
+ // convert the non-refcounted pointer into a refcounted one
+ // immediately:
+ g_xUnoVirtualMachine = reinterpret_cast< jvmaccess::UnoVirtualMachine * >(pointer);
+
+ if ( g_xUnoVirtualMachine.is() )
+ {
+ OUString sJava(RTL_CONSTASCII_USTRINGPARAM("java"));
+ uno_getEnvironment(&pJava_environment, sJava.pData, g_xUnoVirtualMachine.get());
+
+ OUString sCppu_current_lb_name(RTL_CONSTASCII_USTRINGPARAM(CPPU_CURRENT_LANGUAGE_BINDING_NAME));
+ uno_getEnvironment(&pUno_environment, sCppu_current_lb_name.pData, NULL);
+
+ if ( pJava_environment && pUno_environment )
+ {
+ g_unoMapping = Mapping(pUno_environment, pJava_environment);
+ getCppuType((::com::sun::star::uno::Reference< XAccessible > *) 0).getDescription((typelib_TypeDescription **) & g_pTypeDescription);
+ }
+
+ if ( pJava_environment )
+ {
+ // release java environment
+ pJava_environment->release(pJava_environment);
+ pJava_environment = NULL;
+ }
+
+ if ( pUno_environment )
+ {
+ // release uno environment
+ pUno_environment->release(pUno_environment);
+ pUno_environment = NULL;
+ }
+ }
+ }
+
+ catch ( RuntimeException e)
+ {
+ OSL_TRACE("RuntimeException caught while initializing the mapping");
+ }
+
+ if ( (0 != g_jmRegisterTopWindow) && (0 != g_jmRevokeTopWindow) )
+ {
+ ::Application::AddEventListener(g_aEventListenerLink);
+ }
+ return JNI_TRUE;
+}
+
+JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *jvm, void *)
+{
+ ::Application::RemoveEventListener(g_aEventListenerLink);
+
+ if ( NULL != g_jcWindowsAccessBridgeAdapter )
+ {
+ JNIEnv * pJNIEnv;
+ if ( ! jvm->GetEnv((void **) &pJNIEnv, JNI_VERSION_1_2) )
+ {
+ pJNIEnv->DeleteGlobalRef(g_jcWindowsAccessBridgeAdapter);
+ g_jcWindowsAccessBridgeAdapter = NULL;
+ }
+ }
+
+ if ( NULL != g_pTypeDescription )
+ {
+ typelib_typedescription_release( reinterpret_cast< typelib_TypeDescription * > (g_pTypeDescription) );
+ g_pTypeDescription = NULL;
+ }
+
+ g_unoMapping.clear();
+ g_xUnoVirtualMachine.clear();
+}
+
+HWND GetHWND(Window * pWindow)
+{
+ const SystemEnvData * pEnvData = pWindow->GetSystemData();
+ if (pEnvData != NULL)
+ {
+ return pEnvData->hWnd;
+ }
+ return (HWND) -1;
+}
+
+void handleWindowEvent(Window * pWindow, bool bShow)
+{
+ if ( pWindow && pWindow->IsTopWindow() )
+ {
+ ::com::sun::star::uno::Reference< XAccessible > xAccessible;
+
+ // Test for combo box - drop down floating windows first
+ Window * pParentWindow = pWindow->GetParent();
+
+ if ( pParentWindow )
+ {
+ try
+ {
+ // The parent window of a combo box floating window should have the role COMBO_BOX
+ ::com::sun::star::uno::Reference< XAccessible > xParentAccessible(pParentWindow->GetAccessible());
+ if ( xParentAccessible.is() )
+ {
+ ::com::sun::star::uno::Reference< XAccessibleContext > xParentAC(xParentAccessible->getAccessibleContext());
+ if ( xParentAC.is() && (AccessibleRole::COMBO_BOX == xParentAC->getAccessibleRole()) )
+ {
+ // O.k. - this is a combo box floating window corresponding to the child of role LIST of the parent.
+ // Let's not rely on a specific child order, just search for the child with the role LIST
+ sal_Int32 nCount = xParentAC->getAccessibleChildCount();
+ for ( sal_Int32 n = 0; (n < nCount) && !xAccessible.is(); n++)
+ {
+ ::com::sun::star::uno::Reference< XAccessible > xChild = xParentAC->getAccessibleChild(n);
+ if ( xChild.is() )
+ {
+ ::com::sun::star::uno::Reference< XAccessibleContext > xChildAC = xChild->getAccessibleContext();
+ if ( xChildAC.is() && (AccessibleRole::LIST == xChildAC->getAccessibleRole()) )
+ {
+ xAccessible = xChild;
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (::com::sun::star::uno::RuntimeException e)
+ {
+ // Ignore show events that throw DisposedExceptions in getAccessibleContext(),
+ // but keep revoking these windows in hide(s).
+ if (bShow)
+ return;
+ }
+ }
+
+ // We have to rely on the fact that Window::GetAccessible()->getAccessibleContext() returns a valid XAccessibleContext
+ // also for other menus than menubar or toplevel popup window. Otherwise we had to traverse the hierarchy to find the
+ // context object to this menu floater. This makes the call to Window->IsMenuFloatingWindow() obsolete.
+ if ( ! xAccessible.is() )
+ xAccessible = pWindow->GetAccessible();
+
+ if ( xAccessible.is() && g_unoMapping.is() )
+ {
+ jobject * joXAccessible = reinterpret_cast < jobject * > (g_unoMapping.mapInterface(
+ xAccessible.get(), g_pTypeDescription));
+
+ if ( NULL != joXAccessible )
+ {
+ jvmaccess::VirtualMachine::AttachGuard aGuard(g_xUnoVirtualMachine->getVirtualMachine());
+ JNIEnv * pJNIEnv = aGuard.getEnvironment();
+
+ if ( NULL != pJNIEnv )
+ {
+ // g_jmRegisterTopWindow and g_jmRevokeTopWindow are ensured to be != 0 - otherwise
+ // the event listener would not have been attached.
+ pJNIEnv->CallStaticVoidMethod(g_jcWindowsAccessBridgeAdapter,
+ (bShow) ? g_jmRegisterTopWindow : g_jmRevokeTopWindow,
+ (jint) GetHWND(pWindow), joXAccessible );
+
+ // Clear any exception that might have been occured.
+ if (pJNIEnv->ExceptionCheck()) {
+ pJNIEnv->ExceptionClear();
+ }
+ }
+ }
+ }
+ }
+}
+
+long VCLEventListenerLinkFunc(void *, void * pData)
+{
+ ::VclSimpleEvent const * pEvent = (::VclSimpleEvent const *) pData;
+
+ switch (pEvent->GetId())
+ {
+ case VCLEVENT_WINDOW_SHOW:
+ handleWindowEvent(((::VclWindowEvent const *) pEvent)->GetWindow(), true);
+ break;
+ case VCLEVENT_WINDOW_HIDE:
+ handleWindowEvent(((::VclWindowEvent const *) pEvent)->GetWindow(), false);
+ break;
+ }
+
+ return 0;
+}
diff --git a/accessibility/bridge/source/java/exports.dxp b/accessibility/bridge/source/java/exports.dxp
new file mode 100644
index 000000000000..c97dba7d0047
--- /dev/null
+++ b/accessibility/bridge/source/java/exports.dxp
@@ -0,0 +1,4 @@
+JNI_OnLoad
+JNI_OnUnload
+Java_org_openoffice_accessibility_WindowsAccessBridgeAdapter_getProcessID
+Java_org_openoffice_accessibility_WindowsAccessBridgeAdapter_createMapping
diff --git a/accessibility/bridge/source/java/makefile.mk b/accessibility/bridge/source/java/makefile.mk
new file mode 100644
index 000000000000..6bb380725ac0
--- /dev/null
+++ b/accessibility/bridge/source/java/makefile.mk
@@ -0,0 +1,70 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+PRJNAME=accessibility
+TARGET=accessbridge
+LIBTARGET=NO
+USE_DEFFILE=TRUE
+ENABLE_EXCEPTIONS=TRUE
+VERSIONOBJ=
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+.IF "$(GUI)"=="WNT"
+
+SLOFILES= $(SLO)$/WindowsAccessBridgeAdapter.obj
+
+SHL1TARGET=java_uno_accessbridge
+SHL1IMPLIB=i$(SHL1TARGET)
+SHL1STDLIBS=$(VCLLIB) $(TOOLSLIB) $(JVMACCESSLIB) $(CPPULIB) $(SALLIB)
+SHL1OBJS=$(SLOFILES)
+SHL1VERSIONOBJ=
+
+DEF1NAME=$(SHL1TARGET)
+DEF1EXPORTFILE=exports.dxp
+
+SHL1HEADER=$(OUT)$/inc$/WindowsAccessBridgeAdapter.h
+
+.ENDIF # "$(GUI)"=="WNT"
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(GUI)"=="WNT"
+
+$(SLO)$/WindowsAccessBridgeAdapter.obj : $(SHL1HEADER)
+
+$(SHL1HEADER) :
+ javah -classpath $(OUT)$/class -o $(SHL1HEADER) org.openoffice.accessibility.WindowsAccessBridgeAdapter
+
+.ENDIF # "$(GUI)"=="WNT"
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBox.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBox.hxx
new file mode 100644
index 000000000000..fd86653ca5ed
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBox.hxx
@@ -0,0 +1,311 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOX_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOX_HXX
+
+#include <accessibility/extended/AccessibleBrowseBoxBase.hxx>
+#include <cppuhelper/weakref.hxx>
+#include <svtools/accessibletableprovider.hxx>
+
+
+#include <memory>
+
+// ============================================================================
+
+namespace accessibility {
+
+ class AccessibleBrowseBoxImpl;
+ class AccessibleBrowseBoxTable;
+
+// ============================================================================
+
+/** This class represents the complete accessible BrowseBox object. */
+class AccessibleBrowseBox : public AccessibleBrowseBoxBase
+{
+ friend class AccessibleBrowseBoxAccess;
+
+protected:
+ AccessibleBrowseBox(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxCreator,
+ ::svt::IAccessibleTableProvider& _rBrowseBox
+ );
+
+ virtual ~AccessibleBrowseBox();
+
+ /** sets the XAccessible which created the context
+
+ <p>To be called only once, and only if in the ctor NULL was passed.</p>
+ */
+ void setCreator(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxCreator
+ );
+
+ /** Cleans up members. */
+ using AccessibleBrowseBoxBase::disposing;
+ virtual void SAL_CALL disposing();
+
+protected:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The role of this object (a table). */
+// virtual sal_Int16 SAL_CALL getAccessibleRole()
+// throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return
+ The accessible child rendered under the given point.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to the BrowseBox. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+public:
+ // helper functions
+ /** commitHeaderBarEvent commit the event at all listeners of the column/row header bar
+ @param nEventId
+ the event id
+ @param rNewValue
+ the new value
+ @param rOldValue
+ the old value
+ */
+ void commitHeaderBarEvent(sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue,
+ const ::com::sun::star::uno::Any& rOldValue,sal_Bool _bColumnHeaderBar = sal_True);
+
+ // helper functions
+ /** commitTableEvent commit the event at all listeners of the table
+ @param nEventId
+ the event id
+ @param rNewValue
+ the new value
+ @param rOldValue
+ the old value
+ */
+ void commitTableEvent(sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue,
+ const ::com::sun::star::uno::Any& rOldValue);
+
+ /** returns the accessible object for the row or the column header bar
+ */
+ inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ getHeaderBar( ::svt::AccessibleBrowseBoxObjType _eObjType )
+ {
+ return implGetHeaderBar(_eObjType);
+ }
+
+ /** returns the accessible object for the table representation
+ */
+ inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ getTable( )
+ {
+ return implGetTable();
+ }
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ // internal helper methods ------------------------------------------------
+
+ /** This method creates (once) and returns the accessible data table child.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the data table. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > implGetTable();
+
+ /** This method creates (once) and returns the specified header bar.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the header bar. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetHeaderBar( ::svt::AccessibleBrowseBoxObjType eObjType );
+
+ /** This method returns one of the children that are always present:
+ Data table, row and column header bar or corner control.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the specified child. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetFixedChild( sal_Int32 nChildIndex );
+
+ /** This method creates and returns an accessible table.
+ @return An AccessibleBrowseBoxTable. */
+ virtual AccessibleBrowseBoxTable* createAccessibleTable();
+
+private:
+ // members ----------------------------------------------------------------
+ ::std::auto_ptr< AccessibleBrowseBoxImpl > m_pImpl;
+};
+
+// ============================================================================
+/** the XAccessible which creates/returns an AccessibleBrowseBox
+
+ <p>The instance holds it's XAccessibleContext with a hard reference, while
+ the contxt holds this instance weak.</p>
+*/
+typedef ::cppu::WeakImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > AccessibleBrowseBoxAccess_Base;
+
+class AccessibleBrowseBoxAccess :public AccessibleBrowseBoxAccess_Base
+ ,public ::svt::IAccessibleBrowseBox
+{
+private:
+ ::osl::Mutex m_aMutex;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ m_xParent;
+ ::svt::IAccessibleTableProvider& m_rBrowseBox;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ m_xContext;
+ AccessibleBrowseBox* m_pContext;
+ // note that this pointer is valid as long as m_xContext is valid!
+
+public:
+ AccessibleBrowseBoxAccess(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::IAccessibleTableProvider& _rBrowseBox
+ );
+
+ /// checks whether the accessible context is still alive
+ bool isContextAlive() const;
+
+ /// returns the AccessibleContext belonging to this Accessible
+ inline AccessibleBrowseBox* getContext() { return m_pContext; }
+ inline const AccessibleBrowseBox* getContext() const { return m_pContext; }
+
+protected:
+ virtual ~AccessibleBrowseBoxAccess();
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ SAL_CALL getAccessibleContext() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // IAccessibleBrowseBox
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getMyself()
+ {
+ return this;
+ }
+ void dispose();
+ virtual sal_Bool isAlive() const
+ {
+ return isContextAlive();
+ }
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getHeaderBar( ::svt::AccessibleBrowseBoxObjType _eObjType )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAccessible;
+ AccessibleBrowseBox* pContext( getContext() );
+ if ( pContext )
+ xAccessible = pContext->getHeaderBar( _eObjType );
+ return xAccessible;
+ }
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getTable()
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAccessible;
+ AccessibleBrowseBox* pContext( getContext() );
+ if ( pContext )
+ xAccessible = pContext->getTable();
+ return xAccessible;
+ }
+ virtual void commitHeaderBarEvent( sal_Int16 nEventId, const ::com::sun::star::uno::Any& rNewValue,
+ const ::com::sun::star::uno::Any& rOldValue, sal_Bool _bColumnHeaderBar )
+ {
+ AccessibleBrowseBox* pContext( getContext() );
+ if ( pContext )
+ pContext->commitHeaderBarEvent( nEventId, rNewValue, rOldValue, _bColumnHeaderBar );
+ }
+ virtual void commitTableEvent( sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue, const ::com::sun::star::uno::Any& rOldValue )
+ {
+ AccessibleBrowseBox* pContext( getContext() );
+ if ( pContext )
+ pContext->commitTableEvent( nEventId, rNewValue, rOldValue );
+ }
+ virtual void commitEvent( sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue, const ::com::sun::star::uno::Any& rOldValue )
+ {
+ AccessibleBrowseBox* pContext( getContext() );
+ if ( pContext )
+ pContext->commitEvent( nEventId, rNewValue, rOldValue );
+ }
+
+private:
+ AccessibleBrowseBoxAccess(); // never implemented
+ AccessibleBrowseBoxAccess( const AccessibleBrowseBoxAccess& ); // never implemented
+ AccessibleBrowseBoxAccess& operator=( const AccessibleBrowseBoxAccess& ); // never implemented
+};
+
+// ============================================================================
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
new file mode 100644
index 000000000000..dc43e500dadd
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxBase.hxx
@@ -0,0 +1,527 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXBASE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXBASE_HXX
+
+#include <svtools/AccessibleBrowseBoxObjType.hxx>
+#include <tools/debug.hxx>
+#include <rtl/ustring.hxx>
+#include <tools/gen.hxx>
+#include <vcl/svapp.hxx>
+#include <cppuhelper/compbase5.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <comphelper/accessibleeventnotifier.hxx>
+#include <comphelper/uno3.hxx>
+
+// ============================================================================
+
+class Window;
+
+namespace utl {
+ class AccessibleStateSetHelper;
+}
+
+namespace svt {
+ class IAccessibleTableProvider;
+}
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+/** Aquire the solar mutex. */
+class BBSolarGuard : public ::vos::OGuard
+{
+public:
+ inline BBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+};
+
+// ============================================================================
+
+typedef ::cppu::WeakAggComponentImplHelper5<
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::awt::XFocusListener,
+ ::com::sun::star::lang::XServiceInfo >
+ AccessibleBrowseBoxImplHelper;
+
+/** The BrowseBox accessible objects inherit from this base class. It
+ implements basic functionality for various Accessibility interfaces and
+ the event broadcaster and contains the ::osl::Mutex. */
+class AccessibleBrowseBoxBase :
+ public ::comphelper::OBaseMutex,
+ public AccessibleBrowseBoxImplHelper
+{
+public:
+ /** Constructor sets specified name and description. If the constant of a
+ text is BBTEXT_NONE, the derived class has to set the text via
+ implSetName() and implSetDescription() (in Ctor) or later via
+ setAccessibleName() and setAccessibleDescription() (these methods
+ notify the listeners about the change).
+ @param rxParent XAccessible interface of the parent object.
+ @param rBrowseBox The BrowseBox control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text. */
+ AccessibleBrowseBoxBase(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::AccessibleBrowseBoxObjType eObjType );
+
+ /** Constructor sets specified name and description.
+ @param rxParent XAccessible interface of the parent object.
+ @param rBrowseBox The BrowseBox control.
+ @param rName The name of this object.
+ @param rDescription The description text of this object. */
+ AccessibleBrowseBoxBase(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::AccessibleBrowseBoxObjType eObjType,
+ const ::rtl::OUString& rName,
+ const ::rtl::OUString& rDescription );
+
+protected:
+ virtual ~AccessibleBrowseBoxBase();
+
+ /** Commits DeFunc event to listeners and cleans up members. */
+ virtual void SAL_CALL disposing();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return A reference to the parent accessible object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The description of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The name of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL getAccessibleName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The relation set (the BrowseBox does not have one).
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL
+ getAccessibleRelationSet()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The set of current states. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL
+ getAccessibleStateSet()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The parent's locale. */
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale()
+ throw ( ::com::sun::star::accessibility::IllegalAccessibleComponentStateException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The role of this object. Panel, ROWHEADER, COLUMNHEADER, TABLE, TABLE_CELL are supported.
+ */
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleChildCount,
+ - getAccessibleChild,
+ - getAccessibleRole.
+ Derived classes may overwrite getAccessibleIndexInParent to increase
+ performance. */
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return
+ <TRUE/>, if the point lies within the bounding box of this object. */
+ virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The bounding box of this object. */
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The upper left corner of the bounding box relative to the parent. */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The upper left corner of the bounding box in screen coordinates. */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The size of the bounding box. */
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object is showing. */
+ virtual sal_Bool SAL_CALL isShowing()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object is visible. */
+ virtual sal_Bool SAL_CALL isVisible()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object can accept the focus. */
+ virtual sal_Bool SAL_CALL isFocusTraversable()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XFocusListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw (::com::sun::star::uno::RuntimeException);
+
+ /* Derived classes have to implement:
+ - getAccessibleAt,
+ - grabFocus,
+ - getAccessibleKeyBinding. */
+
+ /** @return
+ No key bindings supported by default.
+ */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+ /** @return
+ The accessible child rendered under the given point.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleEventBroadcaster --------------------------------------------
+
+ /** Adds a new event listener */
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ virtual void SAL_CALL addEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Removes an event listener. */
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL removeEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XTypeProvider ----------------------------------------------------------
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return Whether the specified service is supported by this class. */
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return A list of all supported services. */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getImplementationName. */
+
+ // helper methods ---------------------------------------------------------
+
+ /** @return The BrowseBox object type. */
+ inline ::svt::AccessibleBrowseBoxObjType getType() const;
+
+ /** Changes the name of the object and notifies listeners. */
+ void setAccessibleName( const ::rtl::OUString& rName );
+ /** Changes the description of the object and notifies listeners. */
+ void setAccessibleDescription( const ::rtl::OUString& rDescription );
+
+ /** Commits an event to all listeners. */
+ void commitEvent(
+ sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue,
+
+ const ::com::sun::star::uno::Any& rOldValue );
+ /** @return <TRUE/>, if the object is not disposed or disposing. */
+ sal_Bool isAlive() const;
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** Determines whether the BrowseBox control is really showing inside of
+ its parent accessible window. Derived classes may implement different
+ behaviour.
+ @attention This method requires locked mutex's and a living object.
+ @return <TRUE/>, if the object is really showing. */
+ virtual sal_Bool implIsShowing();
+
+ /** Derived classes return the bounding box relative to the parent window.
+ @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox() = 0;
+ /** Derived classes return the bounding box in screen coordinates.
+ @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen() = 0;
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object. This method calls FillStateSet at the BrowseBox which
+ fills it with more states depending on the object type. Derived classes
+ may overwrite this method and add more states.
+ @attention This method requires locked mutex's.
+ @return A filled AccessibleStateSetHelper. */
+ virtual ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ // internal helper methods ------------------------------------------------
+
+ /** @throws <type>DisposedException</type> If the object is not alive. */
+ void ensureIsAlive() const
+ throw ( ::com::sun::star::lang::DisposedException );
+
+ /** @return The ::osl::Mutex member provided by the class OBaseMutex. */
+ inline ::osl::Mutex& getOslMutex();
+ /** @return Pointer to the global ::osl::Mutex. */
+ static inline ::osl::Mutex* getOslGlobalMutex();
+
+ /** Changes the name of the object (flat assignment, no notify).
+ @attention This method requires a locked mutex. */
+ inline void implSetName( const ::rtl::OUString& rName );
+ /** Changes the description of the object (flat assignment, no notify).
+ @attention This method requires a locked mutex. */
+ inline void implSetDescription( const ::rtl::OUString& rDescription );
+
+ /** Locks all mutex's and calculates the bounding box relative to the
+ parent window.
+ @return The bounding box (VCL rect.) relative to the parent object. */
+ Rectangle getBoundingBox()
+ throw ( ::com::sun::star::lang::DisposedException );
+ /** Locks all mutex's and calculates the bounding box in screen
+ coordinates.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ Rectangle getBoundingBoxOnScreen()
+ throw ( ::com::sun::star::lang::DisposedException );
+
+ /** Creates a new UUID, if rId is empty.
+ @attention This method requires locked global mutex to prevent double
+ creation of an UUID. */
+ static void implCreateUuid( ::com::sun::star::uno::Sequence< sal_Int8 >& rId );
+
+ ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
+ void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
+
+public:
+ // public versions of internal helper methods, with access control
+ struct AccessControl { friend class SolarMethodGuard; private: AccessControl() { } };
+
+ inline ::osl::Mutex& getMutex( const AccessControl& ) { return getOslMutex(); }
+ inline void ensureIsAlive( const AccessControl& ) { ensureIsAlive(); }
+
+protected:
+ // members ----------------------------------------------------------------
+
+ /** The parent accessible object. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > mxParent;
+ /** The VCL BrowseBox control. */
+ ::svt::IAccessibleTableProvider* mpBrowseBox;
+
+ /** This is the window which get all the nice focus events
+ */
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > m_xFocusWindow;
+
+private:
+ /** Localized name. */
+ ::rtl::OUString maName;
+ /** Localized description text. */
+ ::rtl::OUString maDescription;
+
+ /** The type of this object (for names, descriptions, state sets, ...). */
+ ::svt::AccessibleBrowseBoxObjType meObjType;
+
+ ::comphelper::AccessibleEventNotifier::TClientId m_aClientId;
+};
+
+// ============================================================================
+// a version of AccessibleBrowseBoxBase which implements not only the XAccessibleContext,
+// but also the XAccessible
+
+typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > BrowseBoxAccessibleElement_Base;
+
+class BrowseBoxAccessibleElement
+ :public AccessibleBrowseBoxBase
+ ,public BrowseBoxAccessibleElement_Base
+{
+protected:
+ /** Constructor sets specified name and description. If the constant of a
+ text is BBTEXT_NONE, the derived class has to set the text via
+ implSetName() and implSetDescription() (in Ctor) or later via
+ setAccessibleName() and setAccessibleDescription() (these methods
+ notify the listeners about the change).
+
+ @param rxParent XAccessible interface of the parent object.
+ @param rBrowseBox The BrowseBox control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text.
+ */
+ BrowseBoxAccessibleElement(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::AccessibleBrowseBoxObjType eObjType );
+
+ /** Constructor sets specified name and description.
+
+ @param rxParent XAccessible interface of the parent object.
+ @param rBrowseBox The BrowseBox control.
+ @param rName The name of this object.
+ @param rDescription The description text of this object.
+ */
+ BrowseBoxAccessibleElement(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::AccessibleBrowseBoxObjType eObjType,
+ const ::rtl::OUString& rName,
+ const ::rtl::OUString& rDescription );
+
+public:
+ // XInterface
+ DECLARE_XINTERFACE( )
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+protected:
+ virtual ~BrowseBoxAccessibleElement();
+
+protected:
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+private:
+ BrowseBoxAccessibleElement(); // never implemented
+ BrowseBoxAccessibleElement( const BrowseBoxAccessibleElement& ); // never implemented
+ BrowseBoxAccessibleElement& operator=( const BrowseBoxAccessibleElement& ); // never implemented
+};
+
+// ============================================================================
+// a helper class for protecting methods which need to lock the solar mutex in addition to the own mutex
+
+typedef ::osl::MutexGuard OslMutexGuard;
+
+class SolarMethodGuard : public BBSolarGuard, public OslMutexGuard
+{
+public:
+ inline SolarMethodGuard( AccessibleBrowseBoxBase& _rOwner, bool _bEnsureAlive = true )
+ :BBSolarGuard( )
+ ,OslMutexGuard( _rOwner.getMutex( AccessibleBrowseBoxBase::AccessControl() ) )
+ {
+ if ( _bEnsureAlive )
+ _rOwner.ensureIsAlive( AccessibleBrowseBoxBase::AccessControl() );
+ }
+};
+
+// inlines --------------------------------------------------------------------
+
+inline ::svt::AccessibleBrowseBoxObjType AccessibleBrowseBoxBase::getType() const
+{
+ return meObjType;
+}
+
+inline ::osl::Mutex& AccessibleBrowseBoxBase::getOslMutex()
+{
+ return m_aMutex;
+}
+
+inline ::osl::Mutex* AccessibleBrowseBoxBase::getOslGlobalMutex()
+{
+ return ::osl::Mutex::getGlobalMutex();
+}
+
+inline void AccessibleBrowseBoxBase::implSetName(
+ const ::rtl::OUString& rName )
+{
+ maName = rName;
+}
+
+inline void AccessibleBrowseBoxBase::implSetDescription(
+ const ::rtl::OUString& rDescription )
+{
+ maDescription = rDescription;
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx
new file mode 100644
index 000000000000..5ab160535aa0
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXCHECKBOXCELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXCHECKBOXCELL_HXX
+
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#ifndef ACCESSIBILITY_EXT_BROWSE_BOX_CELL_HXX
+#include "accessibility/extended/accessiblebrowseboxcell.hxx"
+#endif
+#include <cppuhelper/implbase2.hxx>
+#include <vcl/wintypes.hxx>
+// ============================================================================
+namespace accessibility
+{
+// ============================================================================
+ typedef ::cppu::ImplHelper2 < ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleValue
+ > AccessibleCheckBoxCell_BASE;
+
+ class AccessibleCheckBoxCell : public AccessibleBrowseBoxCell
+ ,public AccessibleCheckBoxCell_BASE
+ {
+ private:
+ TriState m_eState;
+ BOOL m_bEnabled;
+ BOOL m_bIsTriState;
+
+ protected:
+ virtual ~AccessibleCheckBoxCell() {}
+
+ virtual ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ public:
+ AccessibleCheckBoxCell(const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ const TriState& _eState,
+ sal_Bool _bEnabled,
+ sal_Bool _bIsTriState = sal_True);
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw ( ::com::sun::star::uno::RuntimeException );
+ virtual ::sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // internal
+ void SetChecked( sal_Bool _bChecked );
+ };
+}
+#endif // ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXCHECKBOXCELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx
new file mode 100644
index 000000000000..ac0b2761eb1f
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx
@@ -0,0 +1,281 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXHEADERBAR_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXHEADERBAR_HXX
+
+#include "accessibility/extended/AccessibleBrowseBoxTableBase.hxx"
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessibleSelection >
+ AccessibleBrowseBoxHeaderBarImplHelper;
+
+/** This class represents the accessible object of a header bar of a BrowseBox
+ control (row or column header bar). This object supports the
+ XAccessibleSelection interface. Selecting a child of this object selects
+ complete rows or columns of the data table. */
+class AccessibleBrowseBoxHeaderBar :
+ public AccessibleBrowseBoxTableBase,
+ public AccessibleBrowseBoxHeaderBarImplHelper
+{
+public:
+ /** @param eObjType One of the two allowed types BBTYPE_ROWHEADERBAR or
+ BBTYPE_COLUMNHEADERBAR. */
+ AccessibleBrowseBoxHeaderBar(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ ::svt::AccessibleBrowseBoxObjType eObjType );
+
+protected:
+ virtual ~AccessibleBrowseBoxHeaderBar();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return
+ The XAccessible interface of the specified child.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return The accessible child rendered under the given point. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to (the current cell of) the data table. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The description text of the specified row. */
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The description text of the specified column. */
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the row header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleRowHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the column header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleColumnHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected rows. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleRows()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected columns. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleColumns()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified row is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified column is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the cell object at the specified
+ cell position. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified cell is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleSelection ---------------------------------------------------
+
+ /** Selects the specified child (row or column of the table). */
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified child (row/column) is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Clears the complete selection. */
+ virtual void SAL_CALL clearAccessibleSelection()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Selects all children or first, if multiselection is not supported. */
+ virtual void SAL_CALL selectAllAccessibleChildren()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The number of selected rows/columns. */
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The specified selected row/column. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Removes the specified row/column from the selection. */
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return The name of this class. */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of used rows. */
+ virtual sal_Int32 implGetRowCount() const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of used columns. */
+ virtual sal_Int32 implGetColumnCount() const;
+
+ // internal helper methods ------------------------------------------------
+
+ /** @return <TRUE/>, if the objects is a header bar for rows. */
+ inline sal_Bool isRowBar() const;
+ /** @return <TRUE/>, if the objects is a header bar for columns. */
+ inline sal_Bool isColumnBar() const;
+
+ /** Returns the specified row or column. Uses one of the parameters,
+ depending on object type.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the specified column/row. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetChild( sal_Int32 nRow, sal_uInt16 nColumnPos );
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The absolute child index from the index of selected children.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified index is invalid. */
+ sal_Int32 implGetChildIndexFromSelectedIndex( sal_Int32 nSelectedChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified row/column index (depending on type) is invalid. */
+ void ensureIsValidHeaderIndex( sal_Int32 nIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+// inlines --------------------------------------------------------------------
+
+inline sal_Bool AccessibleBrowseBoxHeaderBar::isRowBar() const
+{
+ return getType() == ::svt::BBTYPE_ROWHEADERBAR;
+}
+
+inline sal_Bool AccessibleBrowseBoxHeaderBar::isColumnBar() const
+{
+ return getType() == ::svt::BBTYPE_COLUMNHEADERBAR;
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx
new file mode 100644
index 000000000000..68d4405ff25b
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXHEADERCELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXHEADERCELL_HXX
+
+#include "accessibility/extended/AccessibleBrowseBoxBase.hxx"
+
+namespace accessibility
+{
+ class AccessibleBrowseBoxHeaderCell : public BrowseBoxAccessibleElement
+ {
+ sal_Int32 m_nColumnRowId;
+ public:
+ AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnRowId,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::AccessibleBrowseBoxObjType _eObjType);
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to the BrowseBox. */
+ virtual void SAL_CALL grabFocus() throw ( ::com::sun::star::uno::RuntimeException );
+
+ inline sal_Bool isRowBarCell() const
+ {
+ return getType() == ::svt::BBTYPE_ROWHEADERCELL;
+ }
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ protected:
+ virtual Rectangle implGetBoundingBox();
+
+ virtual Rectangle implGetBoundingBoxOnScreen();
+ };
+}
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXHEADERCELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTable.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTable.hxx
new file mode 100644
index 000000000000..afb345487239
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTable.hxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXTABLE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXTABLE_HXX
+
+#include "accessibility/extended/AccessibleBrowseBoxTableBase.hxx"
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+/** This class represents the accessible object of the data table of a
+ BrowseBox control. */
+class AccessibleBrowseBoxTable : public AccessibleBrowseBoxTableBase
+{
+ friend class AccessibleBrowseBox; // to create header bars
+
+public:
+ AccessibleBrowseBoxTable(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox );
+
+protected:
+ virtual ~AccessibleBrowseBoxTable();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return The accessible child rendered under the given point. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to (the current cell of) the data table. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The description text of the specified row. */
+ virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The description text of the specified column. */
+ virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the row header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleRowHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the column header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleColumnHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected rows. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleRows()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected columns. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleColumns()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified row is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified column is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the cell object at the specified
+ cell position. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified cell is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return The name of this class. */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ // internal helper methods ------------------------------------------------
+
+ /** @attention This method requires a locked mutex.
+ @return The XAccessibleTable interface of the specified header bar. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable >
+ implGetHeaderBar( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::uno::RuntimeException );
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableBase.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableBase.hxx
new file mode 100644
index 000000000000..fa6ce94cfc7f
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableBase.hxx
@@ -0,0 +1,280 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXTABLEBASE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEBROWSEBOXTABLEBASE_HXX
+
+#include "accessibility/extended/AccessibleBrowseBoxBase.hxx"
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleTable.hpp>
+
+// ============================================================================
+
+namespace accessibility {
+
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessibleTable >
+ AccessibleBrowseBoxTableImplHelper;
+
+/** The BrowseBox accessible table objects inherit from this base class. It
+ implements basic functionality for the XAccessibleTable interface.
+ BrowseBox table objects are: the data table, the column header bar and the
+ row header bar. */
+class AccessibleBrowseBoxTableBase :
+ public BrowseBoxAccessibleElement,
+ public AccessibleBrowseBoxTableImplHelper
+{
+public:
+ /** Constructor sets specified name and description. If the constant of a
+ text is BBTEXT_NONE, the derived class has to set the text via
+ implSetName() and implSetDescription() (in Ctor) or later via
+ setAccessibleName() and setAccessibleDescription() (these methods
+ notify the listeners about the change).
+ @param rxParent XAccessible interface of the parent object.
+ @param rBrowseBox The BrowseBox control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text. */
+ AccessibleBrowseBoxTableBase(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::IAccessibleTableProvider& rBrowseBox,
+ ::svt::AccessibleBrowseBoxObjType eObjType );
+
+protected:
+ virtual ~AccessibleBrowseBoxTableBase();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The role of this object (a table). */
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleChild,
+ - getAccessibleIndexInParent. */
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /* Derived classes have to implement:
+ - getAccessibleAt,
+ - grabFocus,
+ - getAccessibleKeyBinding. */
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The number of used rows in the table (0 = empty table). */
+ virtual sal_Int32 SAL_CALL getAccessibleRowCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The number of used columns in the table (0 = empty table). */
+ virtual sal_Int32 SAL_CALL getAccessibleColumnCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The row extent of the specified cell (always 1). */
+ virtual sal_Int32 SAL_CALL
+ getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The column extent of the specified cell (always 1). */
+ virtual sal_Int32 SAL_CALL
+ getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The caption cell of the table (not supported). */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCaption()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The summary object of the table (not supported). */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleSummary()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The child index of the specified cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The row index of the specified child cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The column index of the specified child cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleRowDescription,
+ - getAccessibleColumnDescription,
+ - getAccessibleRowHeaders,
+ - getAccessibleColumnHeaders,
+ - getSelectedAccessibleRows,
+ - getSelectedAccessibleColumns,
+ - isAccessibleRowSelected,
+ - isAccessibleColumnSelected,
+ - getAccessibleCellAt,
+ - isAccessibleSelected. */
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+
+ // XTypeProvider ----------------------------------------------------------
+
+ /** @return A sequence of possible types (received from base classes). */
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /* Derived classes have to implement:
+ - getImplementationName */
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of data rows without header bar. */
+ virtual sal_Int32 implGetRowCount() const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of data columns without "handle column". */
+ virtual sal_Int32 implGetColumnCount() const;
+
+ // internal helper methods ------------------------------------------------
+
+ /** @return <TRUE/>, if first BrowseBox column is the "handle column". */
+ sal_Bool implHasHandleColumn() const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @param nColumn
+ the position of the column in the Accessible world
+ @return
+ the position of the column in VCL the Accessible world
+ */
+ sal_uInt16 implToVCLColumnPos( sal_Int32 nColumn ) const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The number of cells of the table. */
+ sal_Int32 implGetChildCount() const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The row index of the specified cell index. */
+ sal_Int32 implGetRow( sal_Int32 nChildIndex ) const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The column index of the specified cell index. */
+ sal_Int32 implGetColumn( sal_Int32 nChildIndex ) const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The child index of the specified cell address. */
+ sal_Int32 implGetChildIndex( sal_Int32 nRow, sal_Int32 nColumn ) const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return <TRUE/>, if the specified row is selected. */
+ sal_Bool implIsRowSelected( sal_Int32 nRow ) const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return <TRUE/>, if the specified column is selected. */
+ sal_Bool implIsColumnSelected( sal_Int32 nColumn ) const;
+
+ /** Selects/deselects a row (tries to expand selection).
+ @attention This method requires locked mutex's and a living object.
+ @param bSelect <TRUE/> = select, <FALSE/> = deselect */
+ void implSelectRow( sal_Int32 nRow, sal_Bool bSelect );
+ /** Selects/deselects a column (tries to expand selection).
+ @attention This method requires locked mutex's and a living object.
+ @param bSelect <TRUE/> = select, <FALSE/> = deselect */
+ void implSelectColumn( sal_Int32 nColumnPos, sal_Bool bSelect );
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of selected rows. */
+ sal_Int32 implGetSelectedRowCount() const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of selected columns. */
+ sal_Int32 implGetSelectedColumnCount() const;
+
+ /** Fills a sequence with sorted indexes of completely selected rows.
+ @attention This method requires locked mutex's and a living object.
+ @param rSeq Out-parameter that takes the sorted row index list. */
+ void implGetSelectedRows( ::com::sun::star::uno::Sequence< sal_Int32 >& rSeq );
+ /** Fills a sequence with sorted indexes of completely selected columns.
+ @attention This method requires locked mutex's and a living object.
+ @param rSeq Out-parameter that takes the sorted column index list. */
+ void implGetSelectedColumns( ::com::sun::star::uno::Sequence< sal_Int32 >& rSeq );
+
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified row index is invalid. */
+ void ensureIsValidRow( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified column index is invalid. */
+ void ensureIsValidColumn( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified cell address is invalid. */
+ void ensureIsValidAddress( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified child index is invalid. */
+ void ensureIsValidIndex( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableCell.hxx b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableCell.hxx
new file mode 100644
index 000000000000..ec12e40dc179
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleBrowseBoxTableCell.hxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBILEBROWSEBOXTABLECELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBILEBROWSEBOXTABLECELL_HXX
+
+#include "accessibility/extended/accessiblebrowseboxcell.hxx"
+#include <comphelper/accessibletexthelper.hxx>
+#include <cppuhelper/implbase2.hxx>
+
+namespace accessibility
+{
+ typedef ::cppu::ImplHelper2 < ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::accessibility::XAccessible
+ > AccessibleTextHelper_BASE;
+
+ // implementation of a table cell of BrowseBox
+ class AccessibleBrowseBoxTableCell :public AccessibleBrowseBoxCell
+ ,public AccessibleTextHelper_BASE
+ ,public ::comphelper::OCommonAccessibleText
+ {
+ private:
+ sal_Int32 m_nOffset;
+
+ protected:
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ public:
+ AccessibleBrowseBoxTableCell( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowId,
+ sal_uInt16 _nColId,
+ sal_Int32 _nOffset );
+
+ void nameChanged( const ::rtl::OUString& rNewName, const ::rtl::OUString& rOldName );
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+
+ // XEventListener
+ using AccessibleBrowseBoxBase::disposing;
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source )
+ throw(::com::sun::star::uno::RuntimeException);
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The count of visible children.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The XAccessible interface of the specified child.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+}
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEBROWSEBOXTABLECELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
new file mode 100644
index 000000000000..957b0a508bd8
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControl.hxx
@@ -0,0 +1,266 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROL_HXX
+
+#include <accessibility/extended/AccessibleGridControlBase.hxx>
+#include <accessibility/extended/AccessibleGridControlTable.hxx>
+#include <cppuhelper/weakref.hxx>
+#include <svtools/accessibletable.hxx>
+
+
+#include <memory>
+
+using namespace ::svt::table;
+
+// ============================================================================
+
+namespace accessibility {
+
+ class AccessibleGridControl_Impl;
+
+// ============================================================================
+
+/** This class represents the complete accessible Grid Control object. */
+class AccessibleGridControl : public AccessibleGridControlBase
+{
+ friend class AccessibleGridControlAccess;
+
+protected:
+ AccessibleGridControl(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxCreator,
+ ::svt::table::IAccessibleTable& _rTable
+ );
+
+ virtual ~AccessibleGridControl();
+
+ /** Cleans up members. */
+ using AccessibleGridControlBase::disposing;
+ virtual void SAL_CALL disposing();
+
+protected:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The role of this object (a table). */
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return
+ The accessible child rendered under the given point.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to the Grid Control. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+public:
+ // helper functions
+ /** returns the accessible object for the row or the column header bar
+ */
+ inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ getHeaderBar( ::svt::table::AccessibleTableControlObjType _eObjType )
+ {
+ return implGetHeaderBar(_eObjType);
+ }
+
+ /** returns the accessible object for the table representation
+ */
+ inline ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ getTable( )
+ {
+ return implGetTable();
+ }
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ // internal helper methods ------------------------------------------------
+
+ /** This method creates (once) and returns the accessible data table child.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the data table. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > implGetTable();
+
+ /** This method creates (once) and returns the specified header bar.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the header bar. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetHeaderBar( ::svt::table::AccessibleTableControlObjType eObjType );
+
+ /** This method returns one of the children that are always present:
+ Data table, row and column header bar or corner control.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the specified child. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetFixedChild( sal_Int32 nChildIndex );
+
+ /** This method creates and returns an accessible table.
+ @return An AccessibleGridControlTable. */
+ virtual AccessibleGridControlTable* createAccessibleTable();
+
+private:
+ // members ----------------------------------------------------------------
+ ::std::auto_ptr< AccessibleGridControl_Impl > m_pImpl;
+};
+
+// ============================================================================
+/** the XAccessible which creates/returns an AccessibleGridControl
+
+ <p>The instance holds it's XAccessibleContext with a hard reference, while
+ the contxt holds this instance weak.</p>
+*/
+typedef ::cppu::WeakImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > AccessibleGridControlAccess_Base;
+
+class AccessibleGridControlAccess :public AccessibleGridControlAccess_Base
+ ,public ::svt::table::IAccessibleTableControl
+{
+private:
+ ::osl::Mutex m_aMutex;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ m_xParent;
+ ::svt::table::IAccessibleTable& m_rTable;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ m_xContext;
+ AccessibleGridControl* m_pContext;
+ // note that this pointer is valid as long as m_xContext is valid!
+
+public:
+ AccessibleGridControlAccess(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::table::IAccessibleTable& _rTable
+ );
+
+ /// checks whether the accessible context is still alive
+ bool isContextAlive() const;
+
+ /// returns the AccessibleContext belonging to this Accessible
+ inline AccessibleGridControl* getContext() { return m_pContext; }
+ inline const AccessibleGridControl* getContext() const { return m_pContext; }
+
+protected:
+ virtual ~AccessibleGridControlAccess();
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ SAL_CALL getAccessibleContext() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // IAccessibleTable
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getMyself()
+ {
+ return this;
+ }
+ void dispose();
+ virtual sal_Bool isAlive() const
+ {
+ return isContextAlive();
+ }
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getTableHeader( ::svt::table::AccessibleTableControlObjType _eObjType )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAccessible;
+ AccessibleGridControl* pContext( getContext() );
+ if ( pContext )
+ xAccessible = pContext->getHeaderBar( _eObjType );
+ return xAccessible;
+ }
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getTable()
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > xAccessible;
+ AccessibleGridControl* pContext( getContext() );
+ if ( pContext )
+ xAccessible = pContext->getTable();
+ return xAccessible;
+ }
+ virtual void commitEvent( sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue, const ::com::sun::star::uno::Any& rOldValue )
+ {
+ AccessibleGridControl* pContext( getContext() );
+ if ( pContext )
+ pContext->commitEvent( nEventId, rNewValue, rOldValue );
+ }
+
+private:
+ AccessibleGridControlAccess(); // never implemented
+ AccessibleGridControlAccess( const AccessibleGridControlAccess& ); // never implemented
+ AccessibleGridControlAccess& operator=( const AccessibleGridControlAccess& ); // never implemented
+};
+
+// ============================================================================
+} // namespace accessibility
+
+// ============================================================================
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
new file mode 100644
index 000000000000..3bdd5abe8912
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlBase.hxx
@@ -0,0 +1,467 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLBASE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLBASE_HXX
+
+#include <svtools/accessibletable.hxx>
+#include <tools/debug.hxx>
+#include <rtl/ustring.hxx>
+#include <tools/gen.hxx>
+#include <vcl/svapp.hxx>
+#include <cppuhelper/compbase4.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/awt/XWindow.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/awt/XFocusListener.hpp>
+#include <comphelper/accessibleeventnotifier.hxx>
+#include <comphelper/uno3.hxx>
+
+// ============================================================================
+
+class Window;
+
+namespace utl {
+ class AccessibleStateSetHelper;
+}
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+/** Aquire the solar mutex. */
+class TCSolarGuard : public ::vos::OGuard
+{
+public:
+ inline TCSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+};
+
+// ============================================================================
+
+typedef ::cppu::WeakAggComponentImplHelper4<
+ ::com::sun::star::accessibility::XAccessibleContext,
+ ::com::sun::star::accessibility::XAccessibleComponent,
+ ::com::sun::star::accessibility::XAccessibleEventBroadcaster,
+ ::com::sun::star::lang::XServiceInfo >
+ AccessibleGridControlImplHelper;
+
+/** The GridControl accessible objects inherit from this base class. It
+ implements basic functionality for various Accessibility interfaces and
+ the event broadcaster and contains the ::osl::Mutex. */
+class AccessibleGridControlBase :
+ public ::comphelper::OBaseMutex,
+ public AccessibleGridControlImplHelper
+{
+public:
+ /** Constructor sets specified name and description.
+ @param rxParent XAccessible interface of the parent object.
+ @param rTable The Table control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text. */
+ AccessibleGridControlBase(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType eObjType );
+
+protected:
+ virtual ~AccessibleGridControlBase();
+
+ /** Commits DeFunc event to listeners and cleans up members. */
+ virtual void SAL_CALL disposing();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return A reference to the parent accessible object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The description of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The name of this object.
+ */
+ virtual ::rtl::OUString SAL_CALL getAccessibleName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The relation set (the GridControl does not have one).
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL
+ getAccessibleRelationSet()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The set of current states. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL
+ getAccessibleStateSet()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The parent's locale. */
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale()
+ throw ( ::com::sun::star::accessibility::IllegalAccessibleComponentStateException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The role of this object. Panel, ROWHEADER, COLUMNHEADER, TABLE, TABLE_CELL are supported.
+ */
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleChildCount,
+ - getAccessibleChild,
+ - getAccessibleRole.
+ Derived classes may overwrite getAccessibleIndexInParent to increase
+ performance. */
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return
+ <TRUE/>, if the point lies within the bounding box of this object. */
+ virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The bounding box of this object. */
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The upper left corner of the bounding box relative to the parent. */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The upper left corner of the bounding box in screen coordinates. */
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The size of the bounding box. */
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object is showing. */
+ virtual sal_Bool SAL_CALL isShowing()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object is visible. */
+ virtual sal_Bool SAL_CALL isVisible()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the object can accept the focus. */
+ virtual sal_Bool SAL_CALL isFocusTraversable()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+
+ /* Derived classes have to implement:
+ - getAccessibleAt,
+ - grabFocus,
+ - getAccessibleKeyBinding. */
+
+ /** @return
+ No key bindings supported by default.
+ */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+ /** @return
+ The accessible child rendered under the given point.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleEventBroadcaster --------------------------------------------
+
+ /** Adds a new event listener */
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ virtual void SAL_CALL addEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Removes an event listener. */
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL removeEventListener(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleEventListener>& rxListener )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XTypeProvider ----------------------------------------------------------
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return Whether the specified service is supported by this class. */
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return A list of all supported services. */
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getImplementationName. */
+
+ // helper methods ---------------------------------------------------------
+
+ /** @return The GridControl object type. */
+ inline ::svt::table::AccessibleTableControlObjType getType() const;
+
+ /** Commits an event to all listeners. */
+ void commitEvent(
+ sal_Int16 nEventId,
+ const ::com::sun::star::uno::Any& rNewValue,
+
+ const ::com::sun::star::uno::Any& rOldValue );
+ /** @return <TRUE/>, if the object is not disposed or disposing. */
+ sal_Bool isAlive() const;
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** Determines whether the Grid control is really showing inside of
+ its parent accessible window. Derived classes may implement different
+ behaviour.
+ @attention This method requires locked mutex's and a living object.
+ @return <TRUE/>, if the object is really showing. */
+ virtual sal_Bool implIsShowing();
+
+ /** Derived classes return the bounding box relative to the parent window.
+ @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox() = 0;
+ ///** Derived classes return the bounding box in screen coordinates.
+ // @attention This method requires locked mutex's and a living object.
+ // @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen() = 0;
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object. This method calls FillStateSet at the GridControl which
+ fills it with more states depending on the object type. Derived classes
+ may overwrite this method and add more states.
+ @attention This method requires locked mutex's.
+ @return A filled AccessibleStateSetHelper. */
+ virtual ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ // internal helper methods ------------------------------------------------
+
+ /** @throws <type>DisposedException</type> If the object is not alive. */
+ void ensureIsAlive() const
+ throw ( ::com::sun::star::lang::DisposedException );
+
+ /** @return The ::osl::Mutex member provided by the class OBaseMutex. */
+ inline ::osl::Mutex& getOslMutex();
+ /** @return Pointer to the global ::osl::Mutex. */
+ static inline ::osl::Mutex* getOslGlobalMutex();
+
+ /** Changes the name of the object (flat assignment, no notify).
+ @attention This method requires a locked mutex. */
+ inline void implSetName( const ::rtl::OUString& rName );
+ /** Changes the description of the object (flat assignment, no notify).
+ @attention This method requires a locked mutex. */
+ inline void implSetDescription( const ::rtl::OUString& rDescription );
+
+ /** Locks all mutex's and calculates the bounding box relative to the
+ parent window.
+ @return The bounding box (VCL rect.) relative to the parent object. */
+ Rectangle getBoundingBox()
+ throw ( ::com::sun::star::lang::DisposedException );
+ ///** Locks all mutex's and calculates the bounding box in screen
+ // coordinates.
+ // @return The bounding box (VCL rect.) in screen coordinates. */
+ Rectangle getBoundingBoxOnScreen()
+ throw ( ::com::sun::star::lang::DisposedException );
+
+ /** Creates a new UUID, if rId is empty.
+ @attention This method requires locked global mutex to prevent double
+ creation of an UUID. */
+ static void implCreateUuid( ::com::sun::star::uno::Sequence< sal_Int8 >& rId );
+
+ ::comphelper::AccessibleEventNotifier::TClientId getClientId() const { return m_aClientId; }
+ void setClientId(::comphelper::AccessibleEventNotifier::TClientId _aNewClientId) { m_aClientId = _aNewClientId; }
+
+public:
+ // public versions of internal helper methods, with access control
+ struct TC_AccessControl { friend class TC_SolarMethodGuard; private: TC_AccessControl() { } };
+
+ inline ::osl::Mutex& getMutex( const TC_AccessControl& ) { return getOslMutex(); }
+ inline void ensureIsAlive( const TC_AccessControl& ) { ensureIsAlive(); }
+
+protected:
+ // members ----------------------------------------------------------------
+
+ /** The parent accessible object. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xParent;
+ /** The SVT Table control. */
+ ::svt::table::IAccessibleTable& m_aTable;
+ /** The type of this object (for names, descriptions, state sets, ...). */
+ ::svt::table::AccessibleTableControlObjType m_eObjType;
+
+private:
+ /** Localized name. */
+ ::rtl::OUString m_aName;
+ /** Localized description text. */
+ ::rtl::OUString m_aDescription;
+ ::comphelper::AccessibleEventNotifier::TClientId m_aClientId;
+};
+
+// ============================================================================
+// a version of AccessibleGridControlBase which implements not only the XAccessibleContext,
+// but also the XAccessible
+
+typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > GridControlAccessibleElement_Base;
+
+class GridControlAccessibleElement
+ :public AccessibleGridControlBase
+ ,public GridControlAccessibleElement_Base
+{
+protected:
+ /** Constructor sets specified name and description.
+
+ @param rxParent XAccessible interface of the parent object.
+ @param rTable The Table control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text.
+ */
+ GridControlAccessibleElement(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType eObjType );
+
+public:
+ // XInterface
+ DECLARE_XINTERFACE( )
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+protected:
+ virtual ~GridControlAccessibleElement();
+
+protected:
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+private:
+ GridControlAccessibleElement(); // never implemented
+ GridControlAccessibleElement( const GridControlAccessibleElement& ); // never implemented
+ GridControlAccessibleElement& operator=( const GridControlAccessibleElement& ); // never implemented
+};
+
+// ============================================================================
+// a helper class for protecting methods which need to lock the solar mutex in addition to the own mutex
+
+typedef ::osl::MutexGuard OslMutexGuard;
+
+class TC_SolarMethodGuard : public TCSolarGuard, public OslMutexGuard
+{
+public:
+ inline TC_SolarMethodGuard( AccessibleGridControlBase& _rOwner, bool _bEnsureAlive = true )
+ :TCSolarGuard( )
+ ,OslMutexGuard( _rOwner.getMutex( AccessibleGridControlBase::TC_AccessControl() ) )
+ {
+ if ( _bEnsureAlive )
+ _rOwner.ensureIsAlive( AccessibleGridControlBase::TC_AccessControl() );
+ }
+};
+
+// inlines --------------------------------------------------------------------
+
+inline ::svt::table::AccessibleTableControlObjType AccessibleGridControlBase::getType() const
+{
+ return m_eObjType;
+}
+
+inline ::osl::Mutex& AccessibleGridControlBase::getOslMutex()
+{
+ return m_aMutex;
+}
+
+inline ::osl::Mutex* AccessibleGridControlBase::getOslGlobalMutex()
+{
+ return ::osl::Mutex::getGlobalMutex();
+}
+
+inline void AccessibleGridControlBase::implSetName(
+ const ::rtl::OUString& rName )
+{
+ m_aName = rName;
+}
+
+inline void AccessibleGridControlBase::implSetDescription(
+ const ::rtl::OUString& rDescription )
+{
+ m_aDescription = rDescription;
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLBASE_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlHeader.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlHeader.hxx
new file mode 100644
index 000000000000..b45ad5bdae5a
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlHeader.hxx
@@ -0,0 +1,218 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLHEADER_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLHEADER_HXX
+
+
+#include "accessibility/extended/AccessibleGridControlHeaderCell.hxx"
+#include "accessibility/extended/AccessibleGridControlTableBase.hxx"
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+/** This class represents the accessible object of a header bar of a Grid Control
+ (row or column header bar). This object supports the
+ XAccessibleSelection interface. Selecting a child of this object selects
+ complete rows or columns of the data table. */
+class AccessibleGridControlHeader : public AccessibleGridControlTableBase
+{
+public:
+ /** @param eObjType One of the two allowed types TCTYPE_ROWHEADERBAR or
+ TCTYPE_COLUMNHEADERBAR. */
+ AccessibleGridControlHeader(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType eObjType );
+
+protected:
+ virtual ~AccessibleGridControlHeader();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return
+ The XAccessible interface of the specified child.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return The accessible child rendered under the given point. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to (the current cell of) the data table. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The description text of the specified row. */
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The description text of the specified column. */
+ virtual ::rtl::OUString SAL_CALL
+ getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the row header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleRowHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the column header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleColumnHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected rows. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleRows()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected columns. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleColumns()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified row is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified column is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the cell object at the specified
+ cell position. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified cell is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return The name of this class. */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+protected:
+ // internal virtual methods -----------------------------------------------
+ /** @attention This method requires locked mutex's and a living object.
+ @return The absolute child index from the index of selected children.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified index is invalid. */
+ //sal_Int32 implGetChildIndexFromSelectedIndex( sal_Int32 nSelectedChildIndex )
+ // throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+
+ /** Returns the specified row or column. Uses one of the parameters,
+ depending on object type.
+ @attention This method requires locked mutex's and a living object.
+ @return The XAccessible interface of the specified column/row. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >
+ implGetChild( sal_Int32 nRow, sal_uInt32 nColumnPos );
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of used rows. */
+ virtual sal_Int32 implGetRowCount() const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The count of used columns. */
+ virtual sal_Int32 implGetColumnCount() const;
+
+ // internal helper methods ------------------------------------------------
+
+ /** @return <TRUE/>, if the objects is a header bar for rows. */
+ inline sal_Bool isRowBar() const;
+ /** @return <TRUE/>, if the objects is a header bar for columns. */
+ inline sal_Bool isColumnBar() const;
+};
+
+// inlines --------------------------------------------------------------------
+
+inline sal_Bool AccessibleGridControlHeader::isRowBar() const
+{
+ return getType() == ::svt::table::TCTYPE_ROWHEADERBAR;
+}
+
+inline sal_Bool AccessibleGridControlHeader::isColumnBar() const
+{
+ return getType() == ::svt::table::TCTYPE_COLUMNHEADERBAR;
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLHEADER_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlHeaderCell.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlHeaderCell.hxx
new file mode 100644
index 000000000000..648614a9e214
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlHeaderCell.hxx
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLHEADERCELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLHEADERCELL_HXX
+
+#include "accessibility/extended/AccessibleGridControlTableCell.hxx"
+
+namespace accessibility
+{
+ class AccessibleGridControlHeaderCell : public AccessibleGridControlCell, public ::com::sun::star::accessibility::XAccessible
+ {
+ sal_Int32 m_nColumnRowId;
+ public:
+ AccessibleGridControlHeaderCell(sal_Int32 _nColumnRowId,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& _rTable,
+ ::svt::table::AccessibleTableControlObjType _eObjType);
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to the GridControl. */
+ virtual void SAL_CALL grabFocus() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+ //-------------------------------------------------------------------------
+ inline sal_Bool isRowBarCell() const
+ {
+ return getType() == ::svt::table::TCTYPE_ROWHEADERCELL;
+ }
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ protected:
+ virtual Rectangle implGetBoundingBox();
+
+ virtual Rectangle implGetBoundingBoxOnScreen();
+ private:
+ ::rtl::OUString m_sHeaderName;
+ };
+}
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLHEADERCELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlTable.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlTable.hxx
new file mode 100644
index 000000000000..8058594d2938
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlTable.hxx
@@ -0,0 +1,226 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLTABLE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLTABLE_HXX
+
+#include "accessibility/extended/AccessibleGridControlTableBase.hxx"
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessibleSelection >
+ AccessibleGridControlTableImplHelper1;
+/** This class represents the accessible object of the data table of a
+ Grid control. */
+class AccessibleGridControlTable : public AccessibleGridControlTableBase,
+ public AccessibleGridControlTableImplHelper1
+{
+public:
+ AccessibleGridControlTable(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType _eType);
+
+protected:
+ virtual ~AccessibleGridControlTable();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /** @return The accessible child rendered under the given point. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint( const ::com::sun::star::awt::Point& rPoint )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Grabs the focus to (the current cell of) the data table. */
+ virtual void SAL_CALL grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The key bindings associated with this object. */
+ virtual ::com::sun::star::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The description text of the specified row. */
+ virtual ::rtl::OUString SAL_CALL getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The description text of the specified column. */
+ virtual ::rtl::OUString SAL_CALL getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the row header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleRowHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessibleTable interface of the column header bar. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable > SAL_CALL
+ getAccessibleColumnHeaders()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected rows. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleRows()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An index list of completely selected columns. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL
+ getSelectedAccessibleColumns()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified row is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified column is completely selected. */
+ virtual sal_Bool SAL_CALL isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the cell object at the specified
+ cell position. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCellAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified cell is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleSelected( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleSelection ---------------------------------------------------
+
+ /** Selects the specified child (row or column of the table). */
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return <TRUE/>, if the specified child (row/column) is selected. */
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Clears the complete selection. */
+ virtual void SAL_CALL clearAccessibleSelection()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Selects all children or first, if multiselection is not supported. */
+ virtual void SAL_CALL selectAllAccessibleChildren()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The number of selected rows/columns. */
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The specified selected row/column. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Removes the specified row/column from the selection. */
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+ // XServiceInfo -----------------------------------------------------------
+
+ /** @return The name of this class. */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+protected:
+ // internal virtual methods -----------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The bounding box (VCL rect.) relative to the parent window. */
+ virtual Rectangle implGetBoundingBox();
+ ///** @attention This method requires locked mutex's and a living object.
+ // @return The bounding box (VCL rect.) in screen coordinates. */
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+
+ //// internal helper methods ------------------------------------------------
+ ///** @attention This method requires a locked mutex.
+ // @return The XAccessibleTable interface of the specified header bar. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleTable >
+ implGetHeaderBar( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::uno::RuntimeException );
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLTABLE_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlTableBase.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlTableBase.hxx
new file mode 100644
index 000000000000..35b7a69f5aa6
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlTableBase.hxx
@@ -0,0 +1,236 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLTABLEBASE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLEGRIDCONTROLTABLEBASE_HXX
+
+#include "accessibility/extended/AccessibleGridControlBase.hxx"
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleTable.hpp>
+
+// ============================================================================
+
+namespace accessibility {
+
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessibleTable >
+ AccessibleGridControlTableImplHelper;
+
+/** The Grid Control accessible table objects inherit from this base class. It
+ implements basic functionality for the XAccessibleTable interface.
+ Grid COntrol table objects are: the data table, the column header bar and the
+ row header bar. */
+class AccessibleGridControlTableBase :
+ public GridControlAccessibleElement,
+ public AccessibleGridControlTableImplHelper
+{
+public:
+ /** Constructor sets specified name and description.
+ @param rxParent XAccessible interface of the parent object.
+ @param rTable The Table control.
+ @param eNameText The constant for the name text.
+ @param eDescrText The constant for the description text. */
+ AccessibleGridControlTableBase(
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType eObjType );
+
+protected:
+ virtual ~AccessibleGridControlTableBase();
+
+public:
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The role of this object (a table). */
+ virtual sal_Int16 SAL_CALL getAccessibleRole()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleChild,
+ - getAccessibleIndexInParent. */
+
+ // XAccessibleComponent ---------------------------------------------------
+
+ /* Derived classes have to implement:
+ - getAccessibleAt,
+ - grabFocus,
+ - getAccessibleKeyBinding. */
+
+ // XAccessibleTable -------------------------------------------------------
+
+ /** @return The number of used rows in the table (0 = empty table). */
+ virtual sal_Int32 SAL_CALL getAccessibleRowCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The number of used columns in the table (0 = empty table). */
+ virtual sal_Int32 SAL_CALL getAccessibleColumnCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The row extent of the specified cell (always 1). */
+ virtual sal_Int32 SAL_CALL
+ getAccessibleRowExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The column extent of the specified cell (always 1). */
+ virtual sal_Int32 SAL_CALL
+ getAccessibleColumnExtentAt( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The caption cell of the table (not supported). */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleCaption()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The summary object of the table (not supported). */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleSummary()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The child index of the specified cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndex( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The row index of the specified child cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleRow( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** @return The column index of the specified child cell. */
+ virtual sal_Int32 SAL_CALL getAccessibleColumn( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /* Derived classes have to implement:
+ - getAccessibleRowDescription,
+ - getAccessibleColumnDescription,
+ - getAccessibleRowHeaders,
+ - getAccessibleColumnHeaders,
+ - getSelectedAccessibleRows,
+ - getSelectedAccessibleColumns,
+ - isAccessibleRowSelected,
+ - isAccessibleColumnSelected,
+ - getAccessibleCellAt,
+ - isAccessibleSelected. */
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+
+ // XTypeProvider ----------------------------------------------------------
+
+ /** @return A sequence of possible types (received from base classes). */
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return An unique implementation ID. */
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+protected:
+ // internal helper methods ------------------------------------------------
+
+ /** @attention This method requires locked mutex's and a living object.
+ @param nColumn
+ the position of the column in the Accessible world
+ @return
+ the position of the column in VCL the Accessible world
+ */
+ sal_uInt16 implToVCLColumnPos( sal_Int32 nColumn ) const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The number of cells of the table. */
+ sal_Int32 implGetChildCount() const;
+
+ /** @attention This method requires locked mutex's and a living object.
+ @return The row index of the specified cell index. */
+ sal_Int32 implGetRow( sal_Int32 nChildIndex ) const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The column index of the specified cell index. */
+ sal_Int32 implGetColumn( sal_Int32 nChildIndex ) const;
+ /** @attention This method requires locked mutex's and a living object.
+ @return The child index of the specified cell address. */
+ sal_Int32 implGetChildIndex( sal_Int32 nRow, sal_Int32 nColumn ) const;
+
+ /** Fills a sequence with sorted indexes of completely selected rows.
+ @attention This method requires locked mutex's and a living object.
+ @param rSeq Out-parameter that takes the sorted row index list. */
+ void implGetSelectedRows( ::com::sun::star::uno::Sequence< sal_Int32 >& rSeq );
+ /** Fills a sequence with sorted indexes of completely selected columns.
+ @attention This method requires locked mutex's and a living object.
+ @param rSeq Out-parameter that takes the sorted column index list. */
+ //void implGetSelectedColumns( ::com::sun::star::uno::Sequence< sal_Int32 >& rSeq );
+
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified row index is invalid. */
+ void ensureIsValidRow( sal_Int32 nRow )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified column index is invalid. */
+ void ensureIsValidColumn( sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified cell address is invalid. */
+ void ensureIsValidAddress( sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+ /** @attention This method requires locked mutex's and a living object.
+ @throws <type>IndexOutOfBoundsException</type>
+ If the specified child index is invalid. */
+ void ensureIsValidIndex( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException );
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLTABLEBASE_HXX
+
diff --git a/accessibility/inc/accessibility/extended/AccessibleGridControlTableCell.hxx b/accessibility/inc/accessibility/extended/AccessibleGridControlTableCell.hxx
new file mode 100644
index 000000000000..dd44927d7fc1
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/AccessibleGridControlTableCell.hxx
@@ -0,0 +1,168 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLTABLECELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLTABLECELL_HXX
+
+#include <comphelper/accessibletexthelper.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include "accessibility/extended/AccessibleGridControlBase.hxx"
+#include <svtools/accessibletable.hxx>
+
+namespace accessibility
+{
+ class AccessibleGridControlCell : public AccessibleGridControlBase
+ {
+ private:
+ sal_Int32 m_nRowPos; // the row number of the table cell
+ sal_Int32 m_nColPos; // the column id of the table cell
+
+ protected:
+ // attribute access
+ inline sal_Int32 getRowPos( ) const { return m_nRowPos; }
+ inline sal_Int32 getColumnPos( ) const { return m_nColPos; }
+
+ // XAccessibleComponent
+ virtual void SAL_CALL grabFocus() throw ( ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ AccessibleGridControlCell(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::table::IAccessibleTable& _rTable,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ ::svt::table::AccessibleTableControlObjType _eType
+ );
+
+ virtual ~AccessibleGridControlCell();
+
+ private:
+ AccessibleGridControlCell(); // never implemented
+ AccessibleGridControlCell( const AccessibleGridControlCell& ); // never implemented
+ AccessibleGridControlCell& operator=( const AccessibleGridControlCell& ); // never implemented
+ };
+
+ typedef ::cppu::ImplHelper2 < ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::accessibility::XAccessible
+ > AccessibleTextHelper_BASE;
+ // implementation of a table cell of GridControl
+ class AccessibleGridControlTableCell :public AccessibleGridControlCell
+ ,public AccessibleTextHelper_BASE
+ ,public ::comphelper::OCommonAccessibleText
+ {
+ private:
+ sal_Int32 m_nOffset;
+
+ protected:
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+ virtual Rectangle implGetBoundingBox();
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ public:
+ AccessibleGridControlTableCell( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::table::IAccessibleTable& _rTable,
+ sal_Int32 _nRowId,
+ sal_uInt16 _nColId,
+ svt::table::AccessibleTableControlObjType eObjType);
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** Aquires the object (calls acquire() on base class). */
+ virtual void SAL_CALL acquire() throw ();
+
+ /** Releases the object (calls release() on base class). */
+ virtual void SAL_CALL release() throw ();
+
+ /** @return The index of this object among the parent's children. */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The name of this class.
+ */
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The count of visible children.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return
+ The XAccessible interface of the specified child.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* implCreateStateSetHelper();
+
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+}
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEGRIDCONTROLTABLECELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/accessiblebrowseboxcell.hxx b/accessibility/inc/accessibility/extended/accessiblebrowseboxcell.hxx
new file mode 100644
index 000000000000..a7b78c092213
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessiblebrowseboxcell.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_ACCESSIBLE_BROWSE_BOX_CELL_HXX
+#define ACCESSIBILITY_ACCESSIBLE_BROWSE_BOX_CELL_HXX
+
+#include "accessibility/extended/AccessibleBrowseBoxBase.hxx"
+#include <svtools/AccessibleBrowseBoxObjType.hxx>
+
+// .................................................................................
+namespace accessibility
+{
+// .................................................................................
+
+ // =============================================================================
+ // = AccessibleBrowseBoxCell
+ // =============================================================================
+ /** common accessibility-functionality for browse box elements which occupy a cell
+ */
+ class AccessibleBrowseBoxCell : public AccessibleBrowseBoxBase
+ {
+ private:
+ sal_Int32 m_nRowPos; // the row number of the table cell
+ sal_uInt16 m_nColPos; // the column id of the table cell
+
+ protected:
+ // attribute access
+ inline sal_Int32 getRowPos( ) const { return m_nRowPos; }
+ inline sal_Int32 getColumnPos( ) const { return m_nColPos; }
+
+ protected:
+ // AccessibleBrowseBoxBase overridables
+ virtual Rectangle implGetBoundingBox();
+ virtual Rectangle implGetBoundingBoxOnScreen();
+
+ // XAccessibleComponent
+ virtual void SAL_CALL grabFocus() throw ( ::com::sun::star::uno::RuntimeException );
+
+ protected:
+ AccessibleBrowseBoxCell(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ ::svt::AccessibleBrowseBoxObjType _eType = ::svt::BBTYPE_TABLECELL
+ );
+
+ virtual ~AccessibleBrowseBoxCell();
+
+ private:
+ AccessibleBrowseBoxCell(); // never implemented
+ AccessibleBrowseBoxCell( const AccessibleBrowseBoxCell& ); // never implemented
+ AccessibleBrowseBoxCell& operator=( const AccessibleBrowseBoxCell& ); // never implemented
+ };
+
+// .................................................................................
+} // namespace accessibility
+// .................................................................................
+
+
+#endif // ACCESSIBILITY_ACCESSIBLE_BROWSE_BOX_CELL_HXX
diff --git a/accessibility/inc/accessibility/extended/accessibleeditbrowseboxcell.hxx b/accessibility/inc/accessibility/extended/accessibleeditbrowseboxcell.hxx
new file mode 100644
index 000000000000..a38877d5aeae
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibleeditbrowseboxcell.hxx
@@ -0,0 +1,156 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_EXT_ACCESSIBILEEDITBROWSEBOXTABLECELL_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBILEEDITBROWSEBOXTABLECELL_HXX
+
+#ifndef ACCESSIBILITY_EXT_BROWSE_BOX_CELL_HXX
+#include "accessiblebrowseboxcell.hxx"
+#endif
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventListener.hpp>
+#include <com/sun/star/accessibility/XAccessibleRelationSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#include <cppuhelper/implbase1.hxx>
+#include <cppuhelper/compbase1.hxx>
+#include <comphelper/accessiblewrapper.hxx>
+
+namespace accessibility
+{
+ // =============================================================================
+ // = EditBrowseBoxTableCell
+ // =============================================================================
+ class EditBrowseBoxTableCell :public AccessibleBrowseBoxCell
+ ,public ::comphelper::OAccessibleContextWrapperHelper
+ {
+ public:
+ EditBrowseBoxTableCell(
+ const com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ const com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxOwningAccessible,
+ const com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >& _xControlChild,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos
+ );
+
+ protected:
+ virtual ~EditBrowseBoxTableCell();
+
+ protected:
+ // XAccessibleComponent
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException) ;
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException) ;
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XAccessibleContext
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+
+ sal_Int16 SAL_CALL getAccessibleRole() throw ( ::com::sun::star::uno::RuntimeException );
+
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+ protected:
+ // OComponentHelper
+ virtual void SAL_CALL disposing();
+
+ // XComponent/OComponentProxyAggregationHelper (needs to be disambiguated)
+ virtual void SAL_CALL dispose() throw( ::com::sun::star::uno::RuntimeException );
+
+ // OAccessibleContextWrapperHelper();
+ void notifyTranslatedEvent( const ::com::sun::star::accessibility::AccessibleEventObject& _rEvent ) throw (::com::sun::star::uno::RuntimeException);
+
+ private:
+ EditBrowseBoxTableCell(); // never implemented
+ EditBrowseBoxTableCell( const EditBrowseBoxTableCell& ); // never implemented
+ EditBrowseBoxTableCell& operator=( const EditBrowseBoxTableCell& ); // never implemented
+ };
+
+ // =============================================================================
+ // = EditBrowseBoxTableCell
+ // =============================================================================
+ typedef ::cppu::WeakComponentImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > EditBrowseBoxTableCellAccess_Base;
+ // XAccessible providing an EditBrowseBoxTableCell
+ class EditBrowseBoxTableCellAccess
+ :public ::comphelper::OBaseMutex
+ ,public EditBrowseBoxTableCellAccess_Base
+ {
+ protected:
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::accessibility::XAccessibleContext >
+ m_aContext;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ m_xParent;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ m_xControlAccessible;
+ ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >
+ m_xFocusWindow;
+ ::svt::IAccessibleTableProvider* m_pBrowseBox;
+ sal_Int32 m_nRowPos;
+ sal_uInt16 m_nColPos;
+
+ public:
+ EditBrowseBoxTableCellAccess(
+ const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxParent,
+ const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible > _xControlAccessible,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ ::svt::IAccessibleTableProvider& _rBrowseBox,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos
+ );
+
+ protected:
+ virtual ~EditBrowseBoxTableCellAccess();
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent/OComponentHelper
+ virtual void SAL_CALL disposing();
+
+ private:
+ EditBrowseBoxTableCellAccess(); // never implemented
+ EditBrowseBoxTableCellAccess( const EditBrowseBoxTableCellAccess& ); // never implemented
+ EditBrowseBoxTableCellAccess& operator=( const EditBrowseBoxTableCellAccess& ); // never implemented
+ };
+}
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBILEEDITBROWSEBOXTABLECELL_HXX
+
diff --git a/accessibility/inc/accessibility/extended/accessibleiconchoicectrl.hxx b/accessibility/inc/accessibility/extended/accessibleiconchoicectrl.hxx
new file mode 100644
index 000000000000..05dc41313fdd
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibleiconchoicectrl.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEICONCHOICECTRL_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLEICONCHOICECTRL_HXX_
+
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <cppuhelper/implbase2.hxx>
+#include <vcl/vclevent.hxx>
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+// class AccessibleListBox -----------------------------------------------
+
+class SvtIconChoiceCtrl;
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ typedef ::cppu::ImplHelper2< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleSelection> AccessibleIconChoiceCtrl_BASE;
+
+ /** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
+ */
+ class AccessibleIconChoiceCtrl :public AccessibleIconChoiceCtrl_BASE
+ ,public VCLXAccessibleComponent
+ {
+ protected:
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xParent;
+
+ protected:
+ virtual ~AccessibleIconChoiceCtrl();
+
+ /** this function is called upon disposing the component */
+ virtual void SAL_CALL disposing();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ SvtIconChoiceCtrl* getCtrl();
+ public:
+ /** OAccessibleBase needs a valid view
+ @param _rIconCtrl
+ is the box for which we implement an accessible object
+ @param _xParent
+ is our parent accessible object
+ */
+ AccessibleIconChoiceCtrl( SvtIconChoiceCtrl& _rIconCtrl,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent );
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo - static methods
+ static com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void) throw(com::sun::star::uno::RuntimeException);
+ static ::rtl::OUString getImplementationName_Static(void) throw(com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLEICONCHOICECTRL_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx b/accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx
new file mode 100644
index 000000000000..245645dfebf0
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibleiconchoicectrlentry.hxx
@@ -0,0 +1,213 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLEICONCHOICECTRLENTRY_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLEICONCHOICECTRLENTRY_HXX_
+
+#include <deque>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/compbase8.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+#include <tools/gen.hxx>
+
+// forward ---------------------------------------------------------------
+
+class SvxIconChoiceCtrlEntry;
+class SvtIconChoiceCtrl;
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+// class AccessibleIconChoiceCtrlEntry ------------------------------------------
+
+ typedef ::cppu::WeakAggComponentImplHelper8< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleContext
+ , ::com::sun::star::accessibility::XAccessibleComponent
+ , ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ , ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::accessibility::XAccessibleAction
+ , ::com::sun::star::lang::XServiceInfo
+ , ::com::sun::star::lang::XEventListener > AccessibleIconChoiceCtrlEntry_BASE;
+
+ /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */
+ class AccessibleIconChoiceCtrlEntry : public ::comphelper::OBaseMutex,
+ public AccessibleIconChoiceCtrlEntry_BASE,
+ public ::comphelper::OCommonAccessibleText
+ {
+ private:
+ /** The treelistbox control */
+ SvtIconChoiceCtrl* m_pIconCtrl;
+ sal_Int32 m_nIndex;
+
+ protected:
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 m_nClientId;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xParent;
+
+ private:
+ #ifdef ACCESSIBLE_EVENT_NOTIFICATION_ENABLED
+ // (the following method is unused currently. If you need it, simply remove the #ifdef thing here and
+ // in the cxx)
+ /** notifies all listeners that this object has changed
+ @param _nEventId
+ is the event id
+ @param _aOldValue
+ is the old value
+ @param _aNewValue
+ is the new value
+ */
+ void NotifyAccessibleEvent( sal_Int16 _nEventId,
+ const ::com::sun::star::uno::Any& _aOldValue,
+ const ::com::sun::star::uno::Any& _aNewValue );
+ #endif
+
+ Rectangle GetBoundingBox_Impl() const;
+ Rectangle GetBoundingBoxOnScreen_Impl() const;
+ sal_Bool IsAlive_Impl() const;
+ sal_Bool IsShowing_Impl() const;
+
+ Rectangle GetBoundingBox() throw ( ::com::sun::star::lang::DisposedException );
+ Rectangle GetBoundingBoxOnScreen() throw ( ::com::sun::star::lang::DisposedException );
+ void EnsureIsAlive() const throw ( ::com::sun::star::lang::DisposedException );
+
+ protected:
+ virtual ~AccessibleIconChoiceCtrlEntry();
+ /** this function is called upon disposing the component
+ */
+ virtual void SAL_CALL disposing();
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ public:
+ /** Ctor()
+ @param _rListBox
+ the view control
+ @param _pEntry
+ the entry
+ @param _xParent
+ is our parent accessible object
+ */
+ AccessibleIconChoiceCtrlEntry( SvtIconChoiceCtrl& _rIconCtrl,
+ ULONG _nPos,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent );
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo - static methods
+ static com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void) throw(com::sun::star::uno::RuntimeException);
+ static ::rtl::OUString getImplementationName_Static(void) throw(com::sun::star::uno::RuntimeException);
+
+ // XEventListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleEventBroadcaster
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLELISTBOXENTRY_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessiblelistbox.hxx b/accessibility/inc/accessibility/extended/accessiblelistbox.hxx
new file mode 100644
index 000000000000..a92ac6356fa2
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessiblelistbox.hxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLELISTBOX_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLELISTBOX_HXX_
+
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <cppuhelper/implbase2.hxx>
+#include <vcl/vclevent.hxx>
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+
+// class AccessibleListBox -----------------------------------------------
+
+class SvTreeListBox;
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ typedef ::cppu::ImplHelper2< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleSelection> AccessibleListBox_BASE;
+
+ /** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
+ */
+ class AccessibleListBox :public AccessibleListBox_BASE
+ ,public VCLXAccessibleComponent
+ {
+ protected:
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xParent;
+
+ protected:
+ virtual ~AccessibleListBox();
+
+ // OComponentHelper overridables
+ /** this function is called upon disposing the component */
+ virtual void SAL_CALL disposing();
+
+ // VCLXAccessibleComponent
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ SvTreeListBox* getListBox() const;
+
+ public:
+ /** OAccessibleBase needs a valid view
+ @param _rListBox
+ is the box for which we implement an accessible object
+ @param _xParent
+ is our parent accessible object
+ */
+ AccessibleListBox( SvTreeListBox& _rListBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent );
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo - static methods
+ static com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void) throw(com::sun::star::uno::RuntimeException);
+ static ::rtl::OUString getImplementationName_Static(void) throw(com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLELISTBOX_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx b/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx
new file mode 100644
index 000000000000..ce0fa5ad0ac0
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessiblelistboxentry.hxx
@@ -0,0 +1,223 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLELISTBOXENTRY_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLELISTBOXENTRY_HXX_
+
+#include <deque>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/lang/DisposedException.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/compbase8.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+#include <tools/gen.hxx>
+#include "accessibility/extended/listboxaccessible.hxx"
+
+// forward ---------------------------------------------------------------
+
+namespace com { namespace sun { namespace star { namespace awt {
+ struct Point;
+ struct Rectangle;
+ struct Size;
+ class XFocusListener;
+} } } }
+
+class SvTreeListBox;
+class SvLBoxEntry;
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+// class AccessibleListBoxEntry ------------------------------------------
+
+ typedef ::cppu::WeakAggComponentImplHelper8< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleContext
+ , ::com::sun::star::accessibility::XAccessibleComponent
+ , ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ , ::com::sun::star::accessibility::XAccessibleAction
+ , ::com::sun::star::accessibility::XAccessibleSelection
+ , ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::lang::XServiceInfo > AccessibleListBoxEntry_BASE;
+
+ /** the class AccessibleListBoxEntry represents the class for an accessible object of a listbox entry */
+ class AccessibleListBoxEntry:public ::comphelper::OBaseMutex
+ ,public AccessibleListBoxEntry_BASE
+ ,public ::comphelper::OCommonAccessibleText
+ ,public ListBoxAccessibleBase
+ {
+ friend class AccessibleListBox;
+
+ private:
+ /** The treelistbox control */
+ SvTreeListBox* m_pListBox;
+ ::std::deque< sal_Int32 > m_aEntryPath;
+
+ protected:
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 m_nClientId;
+
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::accessibility::XAccessible >
+ m_aParent;
+
+ private:
+ Rectangle GetBoundingBox_Impl() const;
+ Rectangle GetBoundingBoxOnScreen_Impl() const;
+ sal_Bool IsAlive_Impl() const;
+ sal_Bool IsShowing_Impl() const;
+
+ Rectangle GetBoundingBox() throw ( ::com::sun::star::lang::DisposedException );
+ Rectangle GetBoundingBoxOnScreen() throw ( ::com::sun::star::lang::DisposedException );
+ void EnsureIsAlive() const throw ( ::com::sun::star::lang::DisposedException );
+
+ protected:
+ virtual ~AccessibleListBoxEntry();
+
+ /** this function is called upon disposing the component
+ */
+ virtual void SAL_CALL disposing();
+
+ // ListBoxAccessible/XComponent
+ virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ public:
+ /** Ctor()
+ @param _rListBox
+ the view control
+ @param _pEntry
+ the entry
+ @param _xParent
+ is our parent accessible object
+ */
+ AccessibleListBoxEntry( SvTreeListBox& _rListBox, SvLBoxEntry* _pEntry,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& _xParent );
+
+ protected:
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo - static methods
+ static com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void) throw(com::sun::star::uno::RuntimeException);
+ static ::rtl::OUString getImplementationName_Static(void) throw(com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleEventBroadcaster
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ private:
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > implGetParentAccessible( ) const;
+ };
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLELISTBOXENTRY_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessibletabbar.hxx b/accessibility/inc/accessibility/extended/accessibletabbar.hxx
new file mode 100644
index 000000000000..df30cc1dc647
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletabbar.hxx
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/implbase2.hxx>
+#include "accessibility/extended/accessibletabbarbase.hxx"
+
+#include <vector>
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ // ----------------------------------------------------
+ // class AccessibleTabBar
+ // ----------------------------------------------------
+
+ typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::lang::XServiceInfo > AccessibleTabBar_BASE;
+
+ class AccessibleTabBar : public AccessibleTabBarBase,
+ public AccessibleTabBar_BASE
+ {
+ private:
+ typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+
+ protected:
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+ public:
+ AccessibleTabBar( TabBar* pTabBar );
+ ~AccessibleTabBar();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+ };
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLETABBAR_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessibletabbarbase.hxx b/accessibility/inc/accessibility/extended/accessibletabbarbase.hxx
new file mode 100644
index 000000000000..eac79b152b75
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletabbarbase.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBARBASE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLETABBARBASE_HXX
+
+#include <comphelper/accessiblecomponenthelper.hxx>
+#include <tools/link.hxx>
+
+class TabBar;
+class VCLExternalSolarLock;
+class VclSimpleEvent;
+class VclWindowEvent;
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+// ============================================================================
+
+typedef ::comphelper::OAccessibleExtendedComponentHelper AccessibleExtendedComponentHelper_BASE;
+
+class AccessibleTabBarBase : public AccessibleExtendedComponentHelper_BASE
+{
+public:
+ explicit AccessibleTabBarBase( TabBar* pTabBar );
+ virtual ~AccessibleTabBarBase();
+
+protected:
+ DECL_LINK( WindowEventListener, VclSimpleEvent* );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+private:
+ void SetTabBarPointer( TabBar* pTabBar );
+ void ClearTabBarPointer();
+
+protected:
+ VCLExternalSolarLock* m_pExternalLock;
+ TabBar* m_pTabBar;
+};
+
+// ============================================================================
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
+
+#endif
+
diff --git a/accessibility/inc/accessibility/extended/accessibletabbarpage.hxx b/accessibility/inc/accessibility/extended/accessibletabbarpage.hxx
new file mode 100644
index 000000000000..9ddf20b6cc65
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletabbarpage.hxx
@@ -0,0 +1,137 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGE_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGE_HXX_
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/implbase2.hxx>
+#include "accessibility/extended/accessibletabbarbase.hxx"
+
+#include <vector>
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ // ----------------------------------------------------
+ // class AccessibleTabBarPage
+ // ----------------------------------------------------
+
+ typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::lang::XServiceInfo > AccessibleTabBarPage_BASE;
+
+ class AccessibleTabBarPage : public AccessibleTabBarBase,
+ public AccessibleTabBarPage_BASE
+ {
+ friend class AccessibleTabBarPageList;
+
+ private:
+ sal_uInt16 m_nPageId;
+ sal_Bool m_bEnabled;
+ sal_Bool m_bShowing;
+ sal_Bool m_bSelected;
+ ::rtl::OUString m_sPageText;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xParent;
+
+ protected:
+ sal_Bool IsEnabled();
+ sal_Bool IsShowing();
+ sal_Bool IsSelected();
+
+ void SetEnabled( sal_Bool bEnabled );
+ void SetShowing( sal_Bool bShowing );
+ void SetSelected( sal_Bool bSelected );
+ void SetPageText( const ::rtl::OUString& sPageText );
+
+ sal_uInt16 GetPageId() const { return m_nPageId; }
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+ public:
+ AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent );
+ virtual ~AccessibleTabBarPage();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+ };
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGE_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessibletabbarpagelist.hxx b/accessibility/inc/accessibility/extended/accessibletabbarpagelist.hxx
new file mode 100644
index 000000000000..d834e3ef86c7
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletabbarpagelist.hxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGELIST_HXX_
+#define ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGELIST_HXX_
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/implbase3.hxx>
+#include "accessibility/extended/accessibletabbarbase.hxx"
+
+#include <vector>
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ // ----------------------------------------------------
+ // class AccessibleTabBarPageList
+ // ----------------------------------------------------
+
+ typedef ::cppu::ImplHelper3<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleSelection,
+ ::com::sun::star::lang::XServiceInfo > AccessibleTabBarPageList_BASE;
+
+ class AccessibleTabBarPageList : public AccessibleTabBarBase,
+ public AccessibleTabBarPageList_BASE
+ {
+ private:
+ typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ sal_Int32 m_nIndexInParent;
+
+ protected:
+ void UpdateEnabled( sal_Int32 i, sal_Bool bEnabled );
+ void UpdateShowing( sal_Bool bShowing );
+ void UpdateSelected( sal_Int32 i, sal_Bool bSelected );
+ void UpdatePageText( sal_Int32 i );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+ void MoveChild( sal_Int32 i, sal_Int32 j );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+ public:
+ AccessibleTabBarPageList( TabBar* pTabBar, sal_Int32 nIndexInParent );
+ virtual ~AccessibleTabBarPageList();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ };
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGELIST_HXX_
+
diff --git a/accessibility/inc/accessibility/extended/accessibletablistbox.hxx b/accessibility/inc/accessibility/extended/accessibletablistbox.hxx
new file mode 100644
index 000000000000..b488e9c6068b
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletablistbox.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOX_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOX_HXX
+
+#include "AccessibleBrowseBox.hxx"
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#include <svtools/accessibletableprovider.hxx>
+
+class SvHeaderTabListBox;
+
+// ============================================================================
+
+namespace accessibility {
+
+class AccessibleBrowseBoxTable;
+
+typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible
+ > AccessibleTabListBox_Base;
+
+/** !!! */
+class AccessibleTabListBox
+ :public AccessibleBrowseBox
+ ,public AccessibleTabListBox_Base
+ ,public ::svt::IAccessibleTabListBox
+{
+private:
+ SvHeaderTabListBox* m_pTabListBox;
+
+public:
+ /** ctor()
+ @param rxParent XAccessible interface of the parent object.
+ @param rBox The HeaderTabListBox control. */
+ AccessibleTabListBox(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ SvHeaderTabListBox& rBox );
+
+public:
+ // XInterface
+ DECLARE_XINTERFACE( )
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XAccessibleContext -----------------------------------------------------
+
+ /** @return The count of visible children. */
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException );
+
+ /** @return The XAccessible interface of the specified child. */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException );
+
+ // XAccessibleContext
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext() throw ( ::com::sun::star::uno::RuntimeException );
+
+ // IAccessibleTabListBox
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getMyself()
+ {
+ return this;
+ }
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ getHeaderBar( ::svt::AccessibleBrowseBoxObjType _eObjType )
+ {
+ return AccessibleBrowseBox::getHeaderBar( _eObjType );
+ }
+
+protected:
+ /** dtor() */
+ virtual ~AccessibleTabListBox();
+
+ /** This method creates and returns an accessible table.
+ @return An AccessibleBrowseBoxTable. */
+ virtual AccessibleBrowseBoxTable* createAccessibleTable();
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOX_HXX
+
diff --git a/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx b/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx
new file mode 100644
index 000000000000..7365a17e6138
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/accessibletablistboxtable.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOXTABLE_HXX
+#define ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOXTABLE_HXX
+
+#include "AccessibleBrowseBoxTable.hxx"
+#include <comphelper/uno3.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+class SvHeaderTabListBox;
+
+// ============================================================================
+
+namespace accessibility {
+
+typedef ::cppu::ImplHelper1< ::com::sun::star::accessibility::XAccessibleSelection >
+ AccessibleTabListBoxTableImplHelper;
+
+class AccessibleTabListBoxTable : public AccessibleBrowseBoxTable, public AccessibleTabListBoxTableImplHelper
+{
+private:
+ SvHeaderTabListBox* m_pTabListBox;
+
+ void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ DECL_LINK( WindowEventListener, VclSimpleEvent* );
+
+ // helpers ----------------------------------------------------------------
+
+ /** Throws an exception, if nIndex is not a valid child index. */
+ void ensureValidIndex( sal_Int32 _nIndex ) const
+ SAL_THROW( ( ::com::sun::star::lang::IndexOutOfBoundsException ) );
+
+ /** Returns true, if the specified row is selected. */
+ sal_Bool implIsRowSelected( sal_Int32 _nRow ) const;
+ /** Selects the specified row. */
+ void implSelectRow( sal_Int32 _nRow, sal_Bool _bSelect );
+
+ /** Returns the count of rows in the table. */
+ sal_Int32 implGetRowCount() const;
+ /** Returns the total column count in the table. */
+ sal_Int32 implGetColumnCount() const;
+ /** Returns the count of selected rows in the table. */
+ sal_Int32 implGetSelRowCount() const;
+ /** Returns the total cell count in the table (including header). */
+ inline sal_Int32 implGetCellCount() const { return implGetRowCount() * implGetColumnCount(); }
+
+ /** Returns the row index from cell index. */
+ inline sal_Int32 implGetRow( sal_Int32 _nIndex ) const { return _nIndex / implGetColumnCount(); }
+ /** Returns the column index from cell index. */
+ inline sal_Int32 implGetColumn( sal_Int32 _nIndex ) const { return _nIndex % implGetColumnCount(); }
+ /** Returns the absolute row index of the nSelRow-th selected row. */
+ sal_Int32 implGetSelRow( sal_Int32 _nSelRow ) const;
+ /** Returns the child index from cell position. */
+ inline sal_Int32 implGetIndex( sal_Int32 _nRow, sal_Int32 _nColumn ) const { return _nRow * implGetColumnCount() + _nColumn; }
+
+public:
+ /** ctor()
+ @param rxParent XAccessible interface of the parent object.
+ @param rBox The HeaderTabListBox control. */
+ AccessibleTabListBoxTable(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ SvHeaderTabListBox& rBox );
+
+protected:
+ /** dtor() */
+ virtual ~AccessibleTabListBoxTable();
+
+public:
+ // XInterface
+ DECLARE_XINTERFACE( )
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
+#endif // ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOX_HXX
+
diff --git a/accessibility/inc/accessibility/extended/listboxaccessible.hxx b/accessibility/inc/accessibility/extended/listboxaccessible.hxx
new file mode 100644
index 000000000000..f05926f3abda
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/listboxaccessible.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_EXT_LISTBOX_ACCESSIBLE
+#define ACCESSIBILITY_EXT_LISTBOX_ACCESSIBLE
+
+#include <com/sun/star/uno/RuntimeException.hpp>
+#include <tools/link.hxx>
+
+class SvTreeListBox;
+class VclSimpleEvent;
+class VclWindowEvent;
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ //====================================================================
+ //= ListBoxAccessibleBase
+ //====================================================================
+ /** helper class which couples it's life time to the life time of an
+ SvTreeListBox
+ */
+ class ListBoxAccessibleBase
+ {
+ private:
+ SvTreeListBox* m_pWindow;
+
+ protected:
+ inline SvTreeListBox* getListBox() const
+ {
+ return const_cast< ListBoxAccessibleBase* >( this )->m_pWindow;
+ }
+
+ inline bool isAlive() const { return NULL != m_pWindow; }
+
+ public:
+ ListBoxAccessibleBase( SvTreeListBox& _rWindow );
+
+ protected:
+ virtual ~ListBoxAccessibleBase( );
+
+ // own overridables
+ /// will be called for any VclWindowEvent events broadcasted by our VCL window
+ virtual void ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent );
+
+ /** will be called when our window broadcasts the VCLEVENT_OBJECT_DYING event
+
+ <p>Usually, you derive your class from both ListBoxAccessibleBase and XComponent,
+ and call XComponent::dispose here.</p>
+ */
+ virtual void SAL_CALL dispose() throw ( ::com::sun::star::uno::RuntimeException ) = 0;
+
+ /// to be called in the dispose method of your derived class
+ void disposing();
+
+ private:
+ DECL_LINK( WindowEventListener, VclSimpleEvent* );
+
+ private:
+ ListBoxAccessibleBase( ); // never implemented
+ ListBoxAccessibleBase( const ListBoxAccessibleBase& ); // never implemented
+ ListBoxAccessibleBase& operator=( const ListBoxAccessibleBase& ); // never implemented
+ };
+
+//........................................................................
+} // namespace accessibility
+//........................................................................
+
+#endif // ACCESSIBILITY_EXT_LISTBOX_ACCESSIBLE
diff --git a/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx b/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx
new file mode 100644
index 000000000000..d4b3be6c5bf3
--- /dev/null
+++ b/accessibility/inc/accessibility/extended/textwindowaccessibility.hxx
@@ -0,0 +1,711 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#if !defined INCLUDED_ACCESSIBILITY_TEXTWINDOWACCESSIBILITY_HXX
+#define INCLUDED_ACCESSIBILITY_TEXTWINDOWACCESSIBILITY_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <svl/lstner.hxx>
+#include <svtools/textdata.hxx>
+#include <svtools/texteng.hxx>
+#include <svtools/textview.hxx>
+#include <svtools/txtattr.hxx>
+#include <com/sun/star/awt/FontWeight.hpp>
+#include <com/sun/star/lang/EventObject.hpp>
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/util/Color.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleTextType.hpp>
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
+#include <com/sun/star/accessibility/XAccessibleMultiLineText.hpp>
+#include <com/sun/star/accessibility/XAccessibleTextAttributes.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <cppuhelper/compbase7.hxx>
+#include <comphelper/accessiblecontexthelper.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+#include <rtl/ref.hxx>
+
+#include <memory>
+#include <queue>
+#include <hash_map>
+
+class TextEngine;
+class TextView;
+
+namespace css = ::com::sun::star;
+
+namespace accessibility
+{
+
+class Paragraph;
+class Document;
+
+class SfxListenerGuard
+{
+public:
+ inline SfxListenerGuard(::SfxListener & rListener):
+ m_rListener(rListener), m_pNotifier(0) {}
+
+ inline ~SfxListenerGuard() { endListening(); }
+
+ // Not thread safe:
+ void startListening(::SfxBroadcaster & rNotifier);
+
+ // Not thread safe:
+ void endListening();
+
+private:
+ ::SfxListener & m_rListener;
+ ::SfxBroadcaster * m_pNotifier;
+};
+
+class WindowListenerGuard
+{
+public:
+ inline WindowListenerGuard(::Link const & rListener):
+ m_aListener(rListener), m_pNotifier(0) {}
+
+ inline ~WindowListenerGuard() { endListening(); }
+
+ // Not thread safe:
+ void startListening(::Window & rNotifier);
+
+ // Not thread safe:
+ void endListening();
+
+private:
+ ::Link m_aListener;
+ ::Window * m_pNotifier;
+};
+
+class ParagraphInfo
+{
+public:
+ inline ParagraphInfo(::sal_Int32 nHeight): m_nHeight(nHeight) {}
+
+ inline
+ ::css::uno::WeakReference< ::css::accessibility::XAccessible > const &
+ getParagraph() const { return m_xParagraph; }
+
+ inline ::sal_Int32 getHeight() const { return m_nHeight; }
+
+ inline void setParagraph(
+ ::css::uno::Reference< ::css::accessibility::XAccessible > const &
+ rParagraph) { m_xParagraph = rParagraph; }
+
+ inline void changeHeight(::sal_Int32 nHeight) { m_nHeight = nHeight; }
+
+private:
+ ::css::uno::WeakReference< ::css::accessibility::XAccessible >
+ m_xParagraph;
+ ::sal_Int32 m_nHeight;
+};
+
+typedef ::std::vector< ParagraphInfo > Paragraphs;
+
+typedef ::cppu::WeakAggComponentImplHelper7<
+ ::css::accessibility::XAccessible,
+ ::css::accessibility::XAccessibleContext,
+ ::css::accessibility::XAccessibleComponent,
+ ::css::accessibility::XAccessibleEditableText,
+ ::css::accessibility::XAccessibleMultiLineText,
+ ::css::accessibility::XAccessibleTextAttributes,
+ ::css::accessibility::XAccessibleEventBroadcaster > ParagraphBase;
+
+// The Paragraph's number is the absolute position within the text engine (from
+// 0 to N - 1), whereas the Paragraph's index is the position within the text
+// view/accessible parent (from 0 to M - 1). Paragraphs outside the currently
+// visible range have an index of -1.
+class ParagraphImpl:
+ public ParagraphBase, private ::comphelper::OCommonAccessibleText
+{
+public:
+ ParagraphImpl(::rtl::Reference< Document > const & rDocument,
+ Paragraphs::size_type nNumber, ::osl::Mutex & rMutex);
+
+ // Not thread-safe.
+ inline Paragraphs::size_type getNumber() const { return m_nNumber; }
+
+ // Not thread-safe.
+ void numberChanged(bool bIncremented);
+
+ // Not thread-safe.
+ void textChanged();
+
+ // Thread-safe.
+ void notifyEvent(::sal_Int16 nEventId, ::css::uno::Any const & rOldValue,
+ ::css::uno::Any const & rNewValue);
+
+protected:
+ // OCommonAccessibleText
+ virtual void implGetParagraphBoundary( ::css::i18n::Boundary& rBoundary,
+ ::sal_Int32 nIndex );
+ virtual void implGetLineBoundary( ::css::i18n::Boundary& rBoundary,
+ ::sal_Int32 nIndex );
+
+private:
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessibleContext >
+ SAL_CALL getAccessibleContext() throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ getAccessibleChild(::sal_Int32 i)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent() throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getAccessibleIndexInParent()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int16 SAL_CALL getAccessibleRole()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getAccessibleName()
+ throw (::css::uno::RuntimeException);
+
+ virtual
+ ::css::uno::Reference< ::css::accessibility::XAccessibleRelationSet >
+ SAL_CALL getAccessibleRelationSet() throw (::css::uno::RuntimeException);
+
+ virtual
+ ::css::uno::Reference< ::css::accessibility::XAccessibleStateSet > SAL_CALL
+ getAccessibleStateSet() throw (::css::uno::RuntimeException);
+
+ virtual ::css::lang::Locale SAL_CALL getLocale()
+ throw (::css::accessibility::IllegalAccessibleComponentStateException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL containsPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ getAccessibleAtPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::awt::Rectangle SAL_CALL getBounds()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::awt::Point SAL_CALL getLocation()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::awt::Point SAL_CALL getLocationOnScreen()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::awt::Size SAL_CALL getSize()
+ throw (::css::uno::RuntimeException);
+
+ virtual void SAL_CALL grabFocus() throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Any SAL_CALL getAccessibleKeyBinding()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::util::Color SAL_CALL getForeground()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::util::Color SAL_CALL getBackground()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getCaretPosition()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL setCaretPosition(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Unicode SAL_CALL getCharacter(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ getCharacterAttributes(::sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes )
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::css::awt::Rectangle SAL_CALL
+ getCharacterBounds(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getCharacterCount()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL
+ getIndexAtPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getSelectedText()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getSelectionStart()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getSelectionEnd()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL setSelection(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getText()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL getTextRange(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL copyText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL cutText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL pasteText(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL deleteText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL insertText(::rtl::OUString const & rText,
+ ::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL replaceText(
+ ::sal_Int32 nStartIndex, ::sal_Int32 nEndIndex,
+ ::rtl::OUString const & rReplacement)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL setAttributes(
+ ::sal_Int32 nStartIndex, ::sal_Int32 nEndIndex,
+ ::css::uno::Sequence< ::css::beans::PropertyValue > const &
+ rAttributeSet)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Bool SAL_CALL setText(::rtl::OUString const & rText)
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ getDefaultAttributes(const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ getRunAttributes(::sal_Int32 Index, const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getLineNumberAtIndex( ::sal_Int32 nIndex )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineNumber( ::sal_Int32 nLineNo )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtLineWithCaret( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ virtual ::sal_Int32 SAL_CALL getNumberOfLineWithCaret( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ virtual void SAL_CALL addEventListener(
+ ::css::uno::Reference<
+ ::css::accessibility::XAccessibleEventListener > const & rListener)
+ throw (::css::uno::RuntimeException);
+
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL removeEventListener(
+ ::css::uno::Reference<
+ ::css::accessibility::XAccessibleEventListener > const & rListener)
+ throw (::css::uno::RuntimeException);
+
+ virtual void SAL_CALL disposing();
+
+ virtual ::rtl::OUString implGetText();
+
+ virtual ::css::lang::Locale implGetLocale();
+
+ virtual void implGetSelection(::sal_Int32 & rStartIndex,
+ ::sal_Int32 & rEndIndex);
+
+ // Throws ::css::lang::DisposedException:
+ void checkDisposed();
+
+ ::rtl::Reference< Document > m_xDocument;
+ Paragraphs::size_type m_nNumber;
+
+// ::cppu::OInterfaceContainerHelper m_aListeners;
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 m_nClientId;
+
+ ::rtl::OUString m_aParagraphText;
+};
+
+
+typedef ::std::hash_map< ::rtl::OUString,
+ ::css::beans::PropertyValue,
+ ::rtl::OUStringHash,
+ ::std::equal_to< ::rtl::OUString > > tPropValMap;
+
+class Document: public ::VCLXAccessibleComponent, public ::SfxListener
+{
+public:
+ Document(::VCLXWindow * pVclXWindow, ::TextEngine & rEngine,
+ ::TextView & rView, bool bCompoundControlChild);
+
+ inline ::css::uno::Reference< ::css::accessibility::XAccessible >
+ getAccessible() { return m_xAccessible; }
+
+ // Must be called only after init has been called.
+ ::css::lang::Locale retrieveLocale();
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const *" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::sal_Int32 retrieveParagraphIndex(ParagraphImpl const * pParagraph);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const *" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::sal_Int64 retrieveParagraphState(ParagraphImpl const * pParagraph);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::css::awt::Rectangle
+ retrieveParagraphBounds(ParagraphImpl const * pParagraph, bool bAbsolute);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::rtl::OUString retrieveParagraphText(ParagraphImpl const * pParagraph);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ void retrieveParagraphSelection(ParagraphImpl const * pParagraph,
+ ::sal_Int32 * pBegin, ::sal_Int32 * pEnd);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const *" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::sal_Int32 retrieveParagraphCaretPosition(ParagraphImpl const * pParagraph);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ ::css::awt::Rectangle
+ retrieveCharacterBounds(ParagraphImpl const * pParagraph,
+ ::sal_Int32 nIndex);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::sal_Int32 retrieveCharacterIndex(ParagraphImpl const * pParagraph,
+ ::css::awt::Point const & rPoint);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ ::css::uno::Sequence< ::css::beans::PropertyValue > retrieveCharacterAttributes(
+ ParagraphImpl const * pParagraph, ::sal_Int32 nIndex,
+ const ::css::uno::Sequence< ::rtl::OUString >& aRequestedAttributes);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ ::css::uno::Sequence< ::css::beans::PropertyValue > retrieveDefaultAttributes(
+ ParagraphImpl const * pParagraph,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ ::css::uno::Sequence< ::css::beans::PropertyValue > retrieveRunAttributes(
+ ParagraphImpl const * pParagraph, ::sal_Int32 Index,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ void changeParagraphText(ParagraphImpl * pParagraph,
+ ::rtl::OUString const & rText);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ void changeParagraphText(ParagraphImpl * pParagraph, ::sal_Int32 nBegin,
+ ::sal_Int32 nEnd, bool bCut, bool bPaste,
+ ::rtl::OUString const & rText);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ void copyParagraphText(ParagraphImpl const * pParagraph,
+ ::sal_Int32 nBegin, ::sal_Int32 nEnd);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ void changeParagraphAttributes(
+ ParagraphImpl * pParagraph, ::sal_Int32 nBegin, ::sal_Int32 nEnd,
+ ::css::uno::Sequence< ::css::beans::PropertyValue > const &
+ rAttributeSet);
+
+ // Must be called only after init has been called.
+ // To make it possible for this method to be (indirectly) called from
+ // within Paragraph's constructor (i.e., when the Paragraph's ref count is
+ // still zero), pass a "ParagraphImpl const &" instead of a
+ // "::rtl::Reference< ParagraphImpl > const &".
+ // Throws ::css::lang::IndexOutOfBoundsException.
+ void changeParagraphSelection(ParagraphImpl * pParagraph,
+ ::sal_Int32 nBegin, ::sal_Int32 nEnd);
+
+ ::css::i18n::Boundary
+ retrieveParagraphLineBoundary( ParagraphImpl const * pParagraph,
+ ::sal_Int32 nIndex, ::sal_Int32 *pLineNo = NULL);
+
+ ::css::i18n::Boundary
+ retrieveParagraphBoundaryOfLine( ParagraphImpl const * pParagraph,
+ ::sal_Int32 nIndex );
+
+ sal_Int32 retrieveParagraphLineWithCursor( ParagraphImpl const * pParagraph );
+
+ ::css::uno::Reference< ::css::accessibility::XAccessibleRelationSet >
+ retrieveParagraphRelationSet( ParagraphImpl const * pParagraph );
+
+protected:
+ // window event listener from base class
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+private:
+ virtual ::sal_Int32 SAL_CALL getAccessibleChildCount()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessible >
+ SAL_CALL getAccessibleChild(::sal_Int32 i)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException);
+
+ virtual ::sal_Int16 SAL_CALL getAccessibleRole()
+ throw (::css::uno::RuntimeException);
+
+ virtual ::css::uno::Reference< ::css::accessibility::XAccessible >
+ SAL_CALL getAccessibleAtPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException);
+
+ // ??? Will be called with both the external (Solar) and internal mutex
+ // locked:
+ virtual void SAL_CALL disposing();
+
+ // ??? Will be called with the external (Solar) mutex locked.
+ // init will already have been called.
+ virtual void Notify(::SfxBroadcaster & rBC, ::SfxHint const & rHint);
+
+ // Assuming that this will only be called with the external (Solar) mutex
+ // locked.
+ // init will already have been called.
+ DECL_LINK(WindowEventHandler, VclSimpleEvent *);
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked.
+ void init();
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked, and after init has been called:
+ ::rtl::Reference< ParagraphImpl >
+ getParagraph(Paragraphs::iterator const & rIt);
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked, and after init has been called.
+ // Throws ::css::uno::RuntimeException.
+ ::css::uno::Reference< ::css::accessibility::XAccessible >
+ getAccessibleChild(Paragraphs::iterator const & rIt);
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked, and after init has been called:
+ void determineVisibleRange();
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked, and after init has been called:
+ void notifyVisibleRangeChanges(
+ Paragraphs::iterator const & rOldVisibleBegin,
+ Paragraphs::iterator const & rOldVisibleEnd,
+ Paragraphs::iterator const & rInserted);
+
+ // Must be called with both the external (Solar) and internal mutex
+ // locked, and after init has been called:
+ void changeParagraphText(::ULONG nNumber, ::USHORT nBegin, ::USHORT nEnd,
+ bool bCut, bool bPaste,
+ ::rtl::OUString const & rText);
+
+ void
+ handleParagraphNotifications();
+
+ void handleSelectionChangeNotification();
+
+ void notifySelectionChange( sal_Int32 nFirst, sal_Int32 nLast );
+
+ void justifySelection( TextPaM& rTextStart, TextPaM& rTextEnd );
+
+ void disposeParagraphs();
+
+ static ::css::uno::Any mapFontColor(::Color const & rColor);
+
+ static ::Color mapFontColor(::css::uno::Any const & rColor);
+
+ static ::css::uno::Any mapFontWeight(::FontWeight nWeight);
+
+ static ::FontWeight mapFontWeight(::css::uno::Any const & rWeight);
+
+ void retrieveDefaultAttributesImpl(
+ ParagraphImpl const * pParagraph,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes,
+ tPropValMap& rDefAttrSeq);
+
+ void retrieveRunAttributesImpl(
+ ParagraphImpl const * pParagraph, ::sal_Int32 Index,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes,
+ tPropValMap& rRunAttrSeq);
+
+ static ::css::uno::Sequence< ::css::beans::PropertyValue >
+ convertHashMapToSequence(tPropValMap& rAttrSeq);
+
+ ::css::uno::Reference< ::css::accessibility::XAccessible > m_xAccessible;
+ ::TextEngine & m_rEngine;
+ ::TextView & m_rView;
+
+ SfxListenerGuard m_aEngineListener;
+ WindowListenerGuard m_aViewListener;
+
+ // All the following members have valid values only after calling init:
+
+ ::std::auto_ptr< Paragraphs > m_xParagraphs;
+
+ // m_nViewOffset is from the start of the document (0) to the start of the
+ // current view, and m_nViewHeight is the height of the view:
+ ::sal_Int32 m_nViewOffset;
+ ::sal_Int32 m_nViewHeight;
+
+ // m_aVisibleBegin points to the first Paragraph that is (partially)
+ // contained in the view, and m_aVisibleEnd points past the last Paragraph
+ // that is (partially) contained. If no Paragraphs are (partially) in the
+ // view, both m_aVisibleBegin and m_aVisibleEnd are set to
+ // m_xParagraphs->end(). These values are only changed by
+ // determineVisibleRange.
+ Paragraphs::iterator m_aVisibleBegin;
+ Paragraphs::iterator m_aVisibleEnd;
+
+ // m_nVisibleBeginOffset is from m_nViewOffset back to the start of the
+ // Paragraph pointed to by m_aVisibleBegin (and always has a non-negative
+ // value). If m_aVisibleBegin == m_xParagraphs->end(),
+ // m_nVisibleBeginOffset is set to 0. These values are only changed by
+ // determineVisibleRange.
+ ::sal_Int32 m_nVisibleBeginOffset;
+
+ // If no selection has yet been set, all the following four variables are
+ // set to -1. m_nSelectionLastPara/Pos is also the cursor position.
+ ::sal_Int32 m_nSelectionFirstPara;
+ ::sal_Int32 m_nSelectionFirstPos;
+ ::sal_Int32 m_nSelectionLastPara;
+ ::sal_Int32 m_nSelectionLastPos;
+
+ Paragraphs::iterator m_aFocused;
+
+ ::std::queue< ::TextHint > m_aParagraphNotifications;
+ bool m_bSelectionChangedNotification;
+ bool m_bCompoundControlChild;
+};
+
+}
+
+#endif // INCLUDED_ACCESSIBILITY_TEXTWINDOWACCESSIBILITY_HXX
diff --git a/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx b/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx
new file mode 100644
index 000000000000..847896a14588
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/IComboListBoxHelper.hxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_HELPER_COMBOLISTBOXHELPER_HXX
+#define ACCESSIBILITY_HELPER_COMBOLISTBOXHELPER_HXX
+
+#include <tools/gen.hxx>
+#include <tools/string.hxx>
+#include <vcl/wintypes.hxx>
+#include <tools/gen.hxx>
+
+namespace com { namespace sun { namespace star { namespace datatransfer { namespace clipboard {
+ class XClipboard;
+} } } } }
+
+class Window;
+namespace accessibility
+{
+ class SAL_NO_VTABLE IComboListBoxHelper
+ {
+ public:
+ virtual String GetEntry( USHORT nPos ) const = 0;
+ virtual Rectangle GetDropDownPosSizePixel( ) const = 0;
+ virtual Rectangle GetBoundingRectangle( USHORT nItem ) const = 0;
+ virtual Rectangle GetWindowExtentsRelative( Window* pRelativeWindow ) = 0;
+ virtual BOOL IsActive() const = 0;
+ virtual BOOL IsEntryVisible( USHORT nPos ) const = 0;
+ virtual USHORT GetDisplayLineCount() const = 0;
+ virtual void GetMaxVisColumnsAndLines( USHORT& rnCols, USHORT& rnLines ) const = 0;
+ virtual WinBits GetStyle() const = 0;
+ virtual BOOL IsMultiSelectionEnabled() const = 0;
+ virtual USHORT GetTopEntry() const = 0;
+ virtual BOOL IsEntryPosSelected( USHORT nPos ) const = 0;
+ virtual USHORT GetEntryCount() const = 0;
+ virtual void Select() = 0;
+ virtual void SelectEntryPos( USHORT nPos, BOOL bSelect = TRUE ) = 0;
+ virtual USHORT GetSelectEntryCount() const = 0;
+ virtual void SetNoSelection() = 0;
+ virtual USHORT GetSelectEntryPos( USHORT nSelIndex = 0 ) const = 0;
+ virtual BOOL IsInDropDown() const = 0;
+ virtual Rectangle GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const = 0;
+ virtual long GetIndexForPoint( const Point& rPoint, USHORT& nPos ) const = 0;
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >
+ GetClipboard() = 0;
+ };
+}
+#endif // ACCESSIBILITY_HELPER_COMBOLISTBOXHELPER_HXX
diff --git a/accessibility/inc/accessibility/helper/acc_factory.hxx b/accessibility/inc/accessibility/helper/acc_factory.hxx
new file mode 100644
index 000000000000..21c5ce47e5c7
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/acc_factory.hxx
@@ -0,0 +1,50 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_FACTORY_HXX
+#define ACCESSIBILITY_HELPER_FACTORY_HXX
+
+#include <toolkit/helper/accessiblefactory.hxx>
+#include <svtools/accessiblefactory.hxx>
+
+/** this is the entry point to retrieve a factory for the toolkit-level Accessible/Contexts supplied
+ by this library
+
+ This function implements the factory function needed in toolkit
+ (of type GetStandardAccComponentFactory).
+*/
+extern "C" void* SAL_CALL getStandardAccessibleFactory();
+
+/** this is the entry point to retrieve a factory for the svtools-level Accessible/Contexts supplied
+ by this library
+
+ This function implements the factory function needed in svtools
+ (of type GetSvtAccessibilityComponentFactory).
+*/
+extern "C" void* SAL_CALL getSvtAccessibilityComponentFactory();
+
+#endif // ACCESSIBILITY_HELPER_FACTORY_HXX
diff --git a/accessibility/inc/accessibility/helper/accessiblestrings.hrc b/accessibility/inc/accessibility/helper/accessiblestrings.hrc
new file mode 100644
index 000000000000..859da828beb1
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/accessiblestrings.hrc
@@ -0,0 +1,52 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_ACCESSIBLESTRINGS_HRC_
+#define ACCESSIBILITY_HELPER_ACCESSIBLESTRINGS_HRC_
+
+
+//------------------------------------------------------------------------------
+
+#define RID_TK_ACC_START 1000
+
+
+// Accessible Action Id's ------------------------------------------------------
+
+#define RID_STR_ACC_ACTION_CLICK ( RID_TK_ACC_START + 0 )
+#define RID_STR_ACC_ACTION_TOGGLEPOPUP ( RID_TK_ACC_START + 1 )
+#define RID_STR_ACC_ACTION_SELECT ( RID_TK_ACC_START + 2 )
+#define RID_STR_ACC_ACTION_INCLINE ( RID_TK_ACC_START + 3 )
+#define RID_STR_ACC_ACTION_DECLINE ( RID_TK_ACC_START + 4 )
+#define RID_STR_ACC_ACTION_INCBLOCK ( RID_TK_ACC_START + 5 )
+#define RID_STR_ACC_ACTION_DECBLOCK ( RID_TK_ACC_START + 6 )
+
+
+#define RID_STR_ACC_NAME_BROWSEBUTTON ( RID_TK_ACC_START + 1000 )
+
+// -----------------------------------------------------------------------------
+
+#endif // ACCESSIBILITY_HELPER_ACCESSIBLESTRINGS_HRC_
diff --git a/accessibility/inc/accessibility/helper/accresmgr.hxx b/accessibility/inc/accessibility/helper/accresmgr.hxx
new file mode 100644
index 000000000000..add0aaced7e3
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/accresmgr.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_TKARESMGR_HXX
+#define ACCESSIBILITY_HELPER_TKARESMGR_HXX
+
+#ifndef _RTL_USTRING_HXX
+#include <rtl/ustring.hxx>
+#endif
+
+class SimpleResMgr;
+
+#define TK_RES_STRING(id) TkResMgr::loadString(id)
+
+// -----------------------------------------------------------------------------
+// TkResMgr
+// -----------------------------------------------------------------------------
+
+class TkResMgr
+{
+ static SimpleResMgr* m_pImpl;
+
+private:
+ // no instantiation allowed
+ TkResMgr() { }
+ ~TkResMgr() { }
+
+ // we'll instantiate one static member of the following class,
+ // which in it's dtor ensures that m_pImpl will be deleted
+ class EnsureDelete
+ {
+ public:
+ EnsureDelete() { }
+ ~EnsureDelete();
+ };
+ friend class EnsureDelete;
+
+protected:
+ static void ensureImplExists();
+
+public:
+ // loads the string with the specified resource id
+ static ::rtl::OUString loadString( sal_uInt16 nResId );
+};
+
+
+#endif // ACCESSIBILITY_HELPER_TKARESMGR_HXX
+
diff --git a/accessibility/inc/accessibility/helper/characterattributeshelper.hxx b/accessibility/inc/accessibility/helper/characterattributeshelper.hxx
new file mode 100644
index 000000000000..25fb3ac121b3
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/characterattributeshelper.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_CHARACTERATTRIBUTESHELPER_HXX
+#define ACCESSIBILITY_HELPER_CHARACTERATTRIBUTESHELPER_HXX
+
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <vcl/font.hxx>
+
+#include <map>
+
+// -----------------------------------------------------------------------------
+// class CharacterAttributesHelper
+// -----------------------------------------------------------------------------
+
+class CharacterAttributesHelper
+{
+private:
+
+ typedef ::std::map< ::rtl::OUString, ::com::sun::star::uno::Any, ::std::less< ::rtl::OUString > > AttributeMap;
+
+ AttributeMap m_aAttributeMap;
+
+public:
+
+ CharacterAttributesHelper( const Font& rFont, sal_Int32 nBackColor, sal_Int32 nColor );
+ ~CharacterAttributesHelper();
+
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetCharacterAttributes();
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > GetCharacterAttributes( const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes );
+};
+
+#endif // ACCESSIBILITY_HELPER_CHARACTERATTRIBUTESHELPER_HXX
diff --git a/accessibility/inc/accessibility/helper/listboxhelper.hxx b/accessibility/inc/accessibility/helper/listboxhelper.hxx
new file mode 100644
index 000000000000..e0a1fed7f8e8
--- /dev/null
+++ b/accessibility/inc/accessibility/helper/listboxhelper.hxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_LISTBOXHELPER_HXX
+#define ACCESSIBILITY_HELPER_LISTBOXHELPER_HXX
+
+#include <accessibility/helper/IComboListBoxHelper.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/combobox.hxx>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+
+// -----------------------------------------------------------------------------
+// globals
+// -----------------------------------------------------------------------------
+
+const sal_Int32 DEFAULT_INDEX_IN_PARENT = -1;
+
+// -----------------------------------------------------------------------------
+// class VCLListBoxHelper
+// -----------------------------------------------------------------------------
+
+template< class T > class VCLListBoxHelper : public ::accessibility::IComboListBoxHelper
+{
+private:
+ T& m_aComboListBox;
+
+public:
+ inline
+ VCLListBoxHelper( T& _pListBox ) :
+ m_aComboListBox( _pListBox ){}
+
+ // -----------------------------------------------------------------------------
+ virtual String GetEntry( USHORT nPos ) const
+ {
+ return m_aComboListBox.GetEntry( nPos );
+ }
+ // -----------------------------------------------------------------------------
+ virtual Rectangle GetDropDownPosSizePixel() const
+ {
+ Rectangle aTemp = m_aComboListBox.GetWindowExtentsRelative(NULL);
+ Rectangle aRet = m_aComboListBox.GetDropDownPosSizePixel();
+ aRet.Move(aTemp.TopLeft().X(),aTemp.TopLeft().Y());
+ return aRet;
+ }
+ // -----------------------------------------------------------------------------
+ virtual Rectangle GetBoundingRectangle( USHORT nItem ) const
+ {
+ Rectangle aRect;
+ if ( m_aComboListBox.IsInDropDown() && IsEntryVisible( nItem ) )
+ {
+ Rectangle aTemp = m_aComboListBox.GetDropDownPosSizePixel();
+ Size aSize = aTemp.GetSize();
+ aSize.Height() /= m_aComboListBox.GetDisplayLineCount();
+ Point aTopLeft = aTemp.TopLeft();
+ aTopLeft.Y() += aSize.Height() * ( nItem - m_aComboListBox.GetTopEntry() );
+ aRect = Rectangle( aTopLeft, aSize );
+ }
+ else
+ aRect = m_aComboListBox.GetBoundingRectangle( nItem );
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ virtual Rectangle GetWindowExtentsRelative( Window* pRelativeWindow )
+ {
+ return m_aComboListBox.GetWindowExtentsRelative( pRelativeWindow );
+ }
+ // -----------------------------------------------------------------------------
+ virtual BOOL IsActive() const
+ {
+ return m_aComboListBox.IsActive();
+ }
+ // -----------------------------------------------------------------------------
+ virtual BOOL IsEntryVisible( USHORT nPos ) const
+ {
+ USHORT nTopEntry = m_aComboListBox.GetTopEntry();
+ USHORT nLines = m_aComboListBox.GetDisplayLineCount();
+ return ( nPos >= nTopEntry && nPos < ( nTopEntry + nLines ) );
+ }
+ // -----------------------------------------------------------------------------
+ virtual USHORT GetDisplayLineCount() const
+ {
+ return m_aComboListBox.GetDisplayLineCount();
+ }
+ // -----------------------------------------------------------------------------
+ virtual void GetMaxVisColumnsAndLines( USHORT& rnCols, USHORT& rnLines ) const
+ {
+ m_aComboListBox.GetMaxVisColumnsAndLines(rnCols,rnLines);
+ }
+ // -----------------------------------------------------------------------------
+ virtual WinBits GetStyle() const
+ {
+ return m_aComboListBox.GetStyle();
+ }
+ // -----------------------------------------------------------------------------
+ virtual BOOL IsMultiSelectionEnabled() const
+ {
+ return m_aComboListBox.IsMultiSelectionEnabled();
+ }
+ // -----------------------------------------------------------------------------
+ virtual USHORT GetTopEntry() const
+ {
+ return m_aComboListBox.GetTopEntry();
+ }
+ // -----------------------------------------------------------------------------
+ virtual BOOL IsEntryPosSelected( USHORT nPos ) const
+ {
+ return m_aComboListBox.IsEntryPosSelected(nPos);
+ }
+ // -----------------------------------------------------------------------------
+ virtual USHORT GetEntryCount() const
+ {
+ return m_aComboListBox.GetEntryCount();
+ }
+ // -----------------------------------------------------------------------------
+ virtual void Select()
+ {
+ m_aComboListBox.Select();
+ }
+ // -----------------------------------------------------------------------------
+ virtual void SelectEntryPos( USHORT nPos, BOOL bSelect = TRUE )
+ {
+ m_aComboListBox.SelectEntryPos(nPos,bSelect);
+ }
+ // -----------------------------------------------------------------------------
+ virtual USHORT GetSelectEntryCount() const
+ {
+ return m_aComboListBox.GetSelectEntryCount();
+ }
+ // -----------------------------------------------------------------------------
+ virtual void SetNoSelection()
+ {
+ m_aComboListBox.SetNoSelection();
+ }
+ // -----------------------------------------------------------------------------
+ virtual USHORT GetSelectEntryPos( USHORT nSelIndex = 0 ) const
+ {
+ return m_aComboListBox.GetSelectEntryPos(nSelIndex);
+ }
+ // -----------------------------------------------------------------------------
+ virtual BOOL IsInDropDown() const
+ {
+ return m_aComboListBox.IsInDropDown();
+ }
+ // -----------------------------------------------------------------------------
+ virtual Rectangle GetEntryCharacterBounds( const sal_Int32 _nEntryPos, const sal_Int32 _nCharacterIndex ) const
+ {
+ Rectangle aRect;
+
+ Pair aEntryCharacterRange = m_aComboListBox.GetLineStartEnd( _nEntryPos );
+ if ( aEntryCharacterRange.A() + _nCharacterIndex <= aEntryCharacterRange.B() )
+ {
+ long nIndex = aEntryCharacterRange.A() + _nCharacterIndex;
+ aRect = m_aComboListBox.GetCharacterBounds( nIndex );
+ }
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ long GetIndexForPoint( const Point& rPoint, USHORT& nPos ) const
+ {
+ return m_aComboListBox.GetIndexForPoint( rPoint, nPos );
+ }
+ // -----------------------------------------------------------------------------
+ ::com::sun::star::uno::Reference< ::com::sun::star::datatransfer::clipboard::XClipboard >
+ GetClipboard()
+ {
+ return m_aComboListBox.GetClipboard();
+ }
+ // -----------------------------------------------------------------------------
+};
+
+#endif // ACCESSIBILITY_HELPER_LISTBOXHELPER_HXX
+
diff --git a/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx b/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx
new file mode 100644
index 000000000000..4555c91ebf75
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/accessiblemenubasecomponent.hxx
@@ -0,0 +1,157 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+#define ACCESSIBILITY_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/awt/Point.hpp>
+#include <comphelper/accessiblecomponenthelper.hxx>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+#include <tools/link.hxx>
+
+#include <vector>
+
+class Menu;
+class VclSimpleEvent;
+class VclMenuEvent;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+// ----------------------------------------------------
+// class OAccessibleMenuBaseComponent
+// ----------------------------------------------------
+
+typedef ::comphelper::OAccessibleExtendedComponentHelper AccessibleExtendedComponentHelper_BASE;
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::lang::XServiceInfo > OAccessibleMenuBaseComponent_BASE;
+
+class OAccessibleMenuBaseComponent : public AccessibleExtendedComponentHelper_BASE,
+ public OAccessibleMenuBaseComponent_BASE
+{
+ friend class OAccessibleMenuItemComponent;
+ friend class VCLXAccessibleMenuItem;
+ friend class VCLXAccessibleMenu;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+
+protected:
+ typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ Menu* m_pMenu;
+
+ sal_Bool m_bEnabled;
+ sal_Bool m_bFocused;
+ sal_Bool m_bVisible;
+ sal_Bool m_bSelected;
+ sal_Bool m_bChecked;
+
+ Menu* GetMenu() { return m_pMenu; }
+
+ virtual sal_Bool IsEnabled();
+ virtual sal_Bool IsFocused();
+ virtual sal_Bool IsVisible();
+ virtual sal_Bool IsSelected();
+ virtual sal_Bool IsChecked();
+
+ void SetEnabled( sal_Bool bEnabled );
+ void SetFocused( sal_Bool bFocused );
+ void SetVisible( sal_Bool bVisible );
+ void SetSelected( sal_Bool bSelected );
+ void SetChecked( sal_Bool bChecked );
+
+ void UpdateEnabled( sal_Int32 i, sal_Bool bEnabled );
+ void UpdateFocused( sal_Int32 i, sal_Bool bFocused );
+ void UpdateVisible();
+ void UpdateSelected( sal_Int32 i, sal_Bool bSelected );
+ void UpdateChecked( sal_Int32 i, sal_Bool bChecked );
+ void UpdateAccessibleName( sal_Int32 i );
+ void UpdateItemText( sal_Int32 i );
+
+ sal_Int32 GetChildCount();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetChild( sal_Int32 i );
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetChildAt( const ::com::sun::star::awt::Point& rPoint );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual sal_Bool IsHighlighted();
+ sal_Bool IsChildHighlighted();
+
+ void SelectChild( sal_Int32 i );
+ void DeSelectAll();
+ sal_Bool IsChildSelected( sal_Int32 i );
+
+ virtual void Select();
+ virtual void DeSelect();
+ virtual void Click();
+ virtual sal_Bool IsPopupMenuOpen();
+
+ DECL_LINK( MenuEventListener, VclSimpleEvent* );
+
+ virtual void ProcessMenuEvent( const VclMenuEvent& rVclMenuEvent );
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet ) = 0;
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ OAccessibleMenuBaseComponent( Menu* pMenu );
+ virtual ~OAccessibleMenuBaseComponent();
+
+ void SetStates();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_ACCESSIBLEMENUBASECOMPONENT_HXX
+
diff --git a/accessibility/inc/accessibility/standard/accessiblemenucomponent.hxx b/accessibility/inc/accessibility/standard/accessiblemenucomponent.hxx
new file mode 100644
index 000000000000..8450be8f3a49
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/accessiblemenucomponent.hxx
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+#define ACCESSIBILITY_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+
+#include <accessibility/standard/accessiblemenubasecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class OAccessibleMenuComponent
+// ----------------------------------------------------
+
+typedef ::comphelper::OAccessibleExtendedComponentHelper AccessibleExtendedComponentHelper_BASE;
+
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessibleSelection > OAccessibleMenuComponent_BASE;
+
+class OAccessibleMenuComponent : public OAccessibleMenuBaseComponent,
+ public OAccessibleMenuComponent_BASE
+{
+protected:
+ virtual sal_Bool IsEnabled();
+ virtual sal_Bool IsVisible();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+public:
+ OAccessibleMenuComponent( Menu* pMenu );
+ virtual ~OAccessibleMenuComponent();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_ACCESSIBLEMENUCOMPONENT_HXX
+
diff --git a/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx b/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx
new file mode 100644
index 000000000000..d5e513e555ea
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/accessiblemenuitemcomponent.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
+#define ACCESSIBILITY_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
+
+#include <accessibility/standard/accessiblemenubasecomponent.hxx>
+
+
+// ----------------------------------------------------
+// class OAccessibleMenuItemComponent
+// ----------------------------------------------------
+
+class OAccessibleMenuItemComponent : public OAccessibleMenuBaseComponent
+{
+ friend class OAccessibleMenuBaseComponent;
+
+protected:
+ Menu* m_pParent;
+ sal_uInt16 m_nItemPos;
+ ::rtl::OUString m_sAccessibleName;
+ ::rtl::OUString m_sItemText;
+
+ virtual sal_Bool IsEnabled();
+ virtual sal_Bool IsVisible();
+ virtual void Select();
+ virtual void DeSelect();
+ virtual void Click();
+
+ void SetItemPos( sal_uInt16 nItemPos );
+ void SetAccessibleName( const ::rtl::OUString& sAccessibleName );
+ ::rtl::OUString GetAccessibleName();
+ void SetItemText( const ::rtl::OUString& sItemText );
+ ::rtl::OUString GetItemText();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ OAccessibleMenuItemComponent( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu );
+ virtual ~OAccessibleMenuItemComponent();
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_ACCESSIBLEMENUITEMCOMPONENT_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
new file mode 100644
index 000000000000..123016f070bd
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblebox.hxx
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEBOX_HXX
+
+#include <map>
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_STANDARD_ACCESSIBLEROLE_HPP_
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleKeyBinding.hpp>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleAction
+ > VCLXAccessibleBox_BASE;
+
+
+/** Base class for list- and combo boxes. This class manages the box'
+ children. The classed derived from this one have only to implement the
+ <member>IsValid</member> method and return the corrent implementation name.
+*/
+class VCLXAccessibleBox
+ : public VCLXAccessibleComponent,
+ public VCLXAccessibleBox_BASE
+{
+public:
+ enum BoxType {COMBOBOX, LISTBOX};
+
+ /** The constructor is initialized with the box type whitch may be
+ either <const>COMBOBOX</const> or <const>LISTBOX</const> and a flag
+ indicating whether the box is a drop down box.
+ */
+ VCLXAccessibleBox (VCLXWindow* pVCLXindow, BoxType aType, bool bIsDropDownBox);
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+
+
+ // XAccessible
+
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL
+ getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+
+ /** Each object has one or two children: an optional text field and the
+ actual list. The text field is not provided for non drop down list
+ boxes.
+ */
+ sal_Int32 SAL_CALL getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ /** For drop down list boxes the text field is a not editable
+ <type>VCLXAccessibleTextField</type>, for combo boxes it is an
+ editable <type>VLCAccessibleEdit</type>.
+ */
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ /** The role is always <const
+ scope="com::sun::star::accessibility">AccessibleRole::COMBO_BOX</const>.
+ */
+ sal_Int16 SAL_CALL getAccessibleRole (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ sal_Int32 SAL_CALL getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+
+ /** There is one action for drop down boxes and none for others.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ /** The action for drop down boxes lets the user toggle the visibility of the
+ popup menu.
+ */
+ virtual sal_Bool SAL_CALL doAccessibleAction (sal_Int32 nIndex)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+ /** The returned string is assoicated with resource
+ <const>RID_STR_ACC_ACTION_TOGGLEPOPUP</const>.
+ */
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription (sal_Int32 nIndex)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+ /** No keybinding returned so far.
+ */
+ virtual ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL
+ getAccessibleActionKeyBinding( sal_Int32 nIndex )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+
+ /** This method is called from the implementation helper during an
+ XComponent::dispose() call.
+ */
+ virtual void SAL_CALL disposing (void);
+
+
+protected:
+ /** Specifies whether the box is a combo box or a list box. List boxes
+ have multi selection.
+ */
+ BoxType m_aBoxType;
+
+ /// Specifies whether the box is a drop down box and thus has an action.
+ bool m_bIsDropDownBox;
+
+ /// The child that represents the text field if there is one.
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>
+ m_xText;
+
+ /// The child that contains the items of this box.
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible>
+ m_xList;
+
+ /** This flag specifies whether an object has a text field as child
+ regardless of whether that child being currently instantiated or
+ not.
+ */
+ bool m_bHasTextChild;
+
+ /** This flag specifies whether an object has a list as child regardless
+ of whether that child being currently instantiated or not. This
+ flag is always true in the current implementation because the list
+ child is just another wrapper arround this object and thus has the
+ same life time.
+ */
+ bool m_bHasListChild;
+
+ virtual ~VCLXAccessibleBox (void);
+
+ /** Returns </true> when the object is valid.
+ */
+ virtual bool IsValid (void) const = 0;
+
+ virtual void ProcessWindowChildEvent (const VclWindowEvent& rVclWindowEvent);
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+
+
+private:
+ /// Index in parent. This is settable from the outside.
+ sal_Int32 m_nIndexInParent;
+};
+
+#endif
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblebutton.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblebutton.hxx
new file mode 100644
index 000000000000..76e8b3da9343
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblebutton.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleButton
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue > VCLXAccessibleButton_BASE;
+
+class VCLXAccessibleButton : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleButton_BASE
+{
+protected:
+ virtual ~VCLXAccessibleButton();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+public:
+ VCLXAccessibleButton( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEBUTTON_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblecheckbox.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblecheckbox.hxx
new file mode 100644
index 000000000000..a876a236455c
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblecheckbox.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleCheckBox
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue > VCLXAccessibleCheckBox_BASE;
+
+class VCLXAccessibleCheckBox : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleCheckBox_BASE
+{
+private:
+ bool m_bChecked;
+ bool m_bIndeterminate;
+
+protected:
+ virtual ~VCLXAccessibleCheckBox();
+
+ bool IsChecked();
+ bool IsIndeterminate();
+
+ void SetChecked( bool bChecked );
+ void SetIndeterminate( bool bIndeterminate );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+public:
+ VCLXAccessibleCheckBox( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblecombobox.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblecombobox.hxx
new file mode 100644
index 000000000000..ce62ea845b5c
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblecombobox.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLECOMBOBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLECOMBOBOX_HXX
+
+#include <map>
+#include <accessibility/standard/vclxaccessiblebox.hxx>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_STANDARD_ACCESSIBLEROLE_HPP_
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+
+/** The accessible combobox has two children. The first is the text field
+ represented by an object of the <type>VCLXAccessibleEdit</type> class.
+ The second is the list containing all items and is represented by an
+ object of the <type>VCLXAccessibleList</type> class which does not
+ support selection at the moment.
+*/
+class VCLXAccessibleComboBox
+ : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleComboBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return combo box specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ virtual ~VCLXAccessibleComboBox (void);
+
+ virtual bool IsValid (void) const;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLECHECKBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibledropdowncombobox.hxx b/accessibility/inc/accessibility/standard/vclxaccessibledropdowncombobox.hxx
new file mode 100644
index 000000000000..6f54ede32d21
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibledropdowncombobox.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+
+#include <accessibility/standard/vclxaccessiblebox.hxx>
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTEDIT_HXX
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+#endif
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+#ifndef _CPPUHELPER_WEAKREF_HXX
+#include <cppuhelper/weakref.hxx>
+#endif
+
+
+/** The accessible drop down combobox has two children. The first is the
+ text field represented by an object of the
+ <type>VCLXAccessibleEdit</type> class. The second is the list
+ containing all items and is represented by an object of the
+ <type>VCLXAccessibleList</type> class which does not support selection
+ at the moment.
+*/
+class VCLXAccessibleDropDownComboBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleDropDownComboBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return drop down combo box specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ virtual ~VCLXAccessibleDropDownComboBox (void);
+
+ virtual bool IsValid (void) const;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNCOMBOBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibledropdownlistbox.hxx b/accessibility/inc/accessibility/standard/vclxaccessibledropdownlistbox.hxx
new file mode 100644
index 000000000000..72289f210aa2
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibledropdownlistbox.hxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+
+#include <accessibility/standard/vclxaccessiblebox.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+#ifndef _CPPUHELPER_WEAKREF_HXX
+#include <cppuhelper/weakref.hxx>
+#endif
+
+
+/** The accessible drop down combobox has two children. The first is the
+ text field represented by an object of the
+ <type>VCLXAccessibleTextField</type> class which can not be edited. The
+ second is the list containing all items and is represented by an object
+ of the <type>VCLXAccessibleListBoxList</type> class which does support
+ selection.
+*/
+class VCLXAccessibleDropDownListBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleDropDownListBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return drop down list box specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ virtual ~VCLXAccessibleDropDownListBox (void);
+
+ virtual bool IsValid (void) const;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWNLISTBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx b/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx
new file mode 100644
index 000000000000..fe4bd8389d09
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibleedit.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEEDIT_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEEDIT_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleEditableText.hpp>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleEdit
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleEditableText > VCLXAccessibleEdit_BASE;
+
+class VCLXAccessibleEdit : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleEdit_BASE
+{
+ friend class VCLXAccessibleBox;
+
+private:
+ sal_Int32 m_nCaretPosition;
+
+protected:
+ virtual ~VCLXAccessibleEdit();
+
+ void UpdateCaretPosition();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+public:
+ VCLXAccessibleEdit( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleEditableText
+ virtual sal_Bool SAL_CALL cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL pasteText( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& aAttributeSet ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setText( const ::rtl::OUString& sText ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEEDIT_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblefixedhyperlink.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblefixedhyperlink.hxx
new file mode 100644
index 000000000000..250d5f7551f5
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblefixedhyperlink.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+// ----------------------------------------------------
+// class VCLXAccessibleFixedHyperlink
+// ----------------------------------------------------
+
+class VCLXAccessibleFixedHyperlink : public VCLXAccessibleTextComponent
+{
+protected:
+ virtual ~VCLXAccessibleFixedHyperlink();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ virtual void implGetLineBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
+
+public:
+ VCLXAccessibleFixedHyperlink( VCLXWindow* pVCLXindow );
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDHYPERLINK_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblefixedtext.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblefixedtext.hxx
new file mode 100644
index 000000000000..e013fdc8d475
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblefixedtext.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+// ----------------------------------------------------
+// class VCLXAccessibleFixedText
+// ----------------------------------------------------
+
+class VCLXAccessibleFixedText : public VCLXAccessibleTextComponent
+{
+protected:
+ virtual ~VCLXAccessibleFixedText();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ virtual void implGetLineBoundary( ::com::sun::star::i18n::Boundary& rBoundary, sal_Int32 nIndex );
+
+public:
+ VCLXAccessibleFixedText( VCLXWindow* pVCLXindow );
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEFIXEDTEXT_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx
new file mode 100644
index 000000000000..dfebec17b4e9
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelist.hxx
@@ -0,0 +1,228 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLELIST_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLELIST_HXX
+
+#include <vector>
+#include <functional>
+#include "accessibility/standard/vclxaccessiblelistitem.hxx"
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_STANDARD_ACCESSIBLEROLE_HPP_
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleSelection
+ > VCLXAccessibleList_BASE;
+
+typedef std::vector< ::com::sun::star::uno::WeakReference< ::com::sun::star::accessibility::XAccessible > >
+ ListItems;
+
+namespace accessibility
+{
+ class IComboListBoxHelper;
+}
+
+
+/** Base class for the list contained in list- and combo boxes. This class
+ does not support selection because lists of combo boxes give no direct
+ access to their underlying list implementation. Look into derived
+ classes for selection.
+*/
+class VCLXAccessibleList
+ : public VCLXAccessibleComponent,
+ public VCLXAccessibleList_BASE
+{
+public:
+ enum BoxType {COMBOBOX, LISTBOX};
+
+ VCLXAccessibleList (VCLXWindow* pVCLXindow, BoxType aBoxType,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& _xParent);
+
+ /** The index that is passed to this method is returned on following
+ calls to <member>getAccessibleIndexInParent</member>.
+ */
+ void SetIndexInParent (sal_Int32 nIndex);
+
+ /** Process some of the events and delegate the rest to the base classes.
+ */
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+
+ /** Called on reception of selection events this method checks all known
+ list items for a possible change in their selection state and
+ updates that accordingly. No accessibility events are send because
+ the XAccessibleSelection interface is not supported and the items
+ are transient.
+ @param sTextOfSelectedItem
+ This string contains the text of the the currently selected
+ item. It is used to retrieve the index of that item.
+ */
+ void UpdateSelection (::rtl::OUString sTextOfSelectedItem);
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL
+ getAccessibleContext (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ /** The index returned as index in parent is always the one set with the
+ <member>SetIndexInParent()</member> method.
+ */
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual sal_Bool SAL_CALL contains (const ::com::sun::star::awt::Point& aPoint)
+ throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleAt (const ::com::sun::star::awt::Point& aPoint)
+ throw (::com::sun::star::uno::RuntimeException);
+
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return list specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ BoxType m_aBoxType;
+ ::accessibility::IComboListBoxHelper* m_pListBoxHelper;
+ ListItems m_aAccessibleChildren;
+ sal_Int32 m_nVisibleLineCount;
+ /// Index in parent. This is settable from the outside.
+ sal_Int32 m_nIndexInParent;
+ sal_Int32 m_nLastTopEntry;
+ USHORT m_nLastSelectedPos;
+ bool m_bDisableProcessEvent;
+ bool m_bVisible;
+
+
+
+ /// The currently selected item.
+ ::com::sun::star::uno::WeakReference< ::com::sun::star::accessibility::XAccessible>
+ m_xSelectedItem;
+
+ virtual ~VCLXAccessibleList (void);
+
+ /** This function is called from the implementation helper during a
+ XComponent::dispose call. Free the list of items and the items themselves.
+ */
+ virtual void SAL_CALL disposing (void);
+
+ /** This method adds the states
+ <const>AccessibleStateType::FOCUSABLE</const> and possibly
+ <const>AccessibleStateType::MULTI_SELECTABLE</const> to the state set
+ of the base classes.
+ */
+ virtual void FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet);
+
+ /** Create the specified child and insert it into the list of children.
+ Sets the child's states.
+ */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ CreateChild (sal_Int32 i);
+
+ /** Call this method when the item list has been changed, i.e. items
+ have been deleted or inserted.
+ @param bItemInserted
+ Indicate whether items have been inserted (<TRUE/>) or removed
+ (<FALSE/>).
+ @param nIndex
+ Index of the new or removed item. A value of -1 indicates that
+ the whole list has been cleared.
+ */
+ virtual void HandleChangedItemList (bool bItemInserted, sal_Int32 nIndex);
+
+ // VCLXAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+private:
+ /** We need to save the accessible parent to return it in <type>getAccessibleParent()</type>,
+ because this method of the base class returns the wrong parent.
+ */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xParent;
+
+
+ /** dispose all items aand clears the container
+ */
+ void clearItems();
+
+ void adjustEntriesIndexInParent(ListItems::iterator& _aBegin,::std::mem_fun_t<bool,VCLXAccessibleListItem>& _rMemFun);
+ void UpdateEntryRange_Impl (void);
+protected:
+ void UpdateSelection_Impl (USHORT nPos = 0);
+ BOOL checkEntrySelected(USHORT _nPos,
+ ::com::sun::star::uno::Any& _rNewValue,
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxNewAcc);
+private:
+ void notifyVisibleStates(sal_Bool _bSetNew );
+ void UpdateVisibleLineCount();
+};
+
+#endif
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelistbox.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelistbox.hxx
new file mode 100644
index 000000000000..c814cb83d84a
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelistbox.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+
+#include <accessibility/standard/vclxaccessiblebox.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+
+/** The accessible drop down combobox has one children. It is the list
+ containing all items and is represented by an object of the
+ <type>VCLXAccessibleListBoxList</type> class which does support
+ selection.
+*/
+class VCLXAccessibleListBox : public VCLXAccessibleBox
+{
+public:
+ VCLXAccessibleListBox (VCLXWindow* pVCLXindow);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return list box specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ virtual ~VCLXAccessibleListBox (void);
+
+ virtual bool IsValid (void) const;
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelistboxlist.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelistboxlist.hxx
new file mode 100644
index 000000000000..9a266d78bb05
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelistboxlist.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOXLIST_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOXLIST_HXX
+
+#include <accessibility/standard/vclxaccessiblelist.hxx>
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#ifndef _COMPHELPER_BROADCASTHELPER_HXX
+#include <comphelper/broadcasthelper.hxx>
+#endif
+#ifndef _COMPHELPER_UNO3_HXX
+#include <comphelper/uno3.hxx>
+#endif
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessibleSelection
+ > VCLXAccessibleListBoxList_BASE;
+
+
+class ListBox;
+/** This class extends the list of the <type>VCLXAccessibleList</type> class
+ about selection.
+*/
+class VCLXAccessibleListBoxList :
+ public VCLXAccessibleList,
+ public VCLXAccessibleListBoxList_BASE
+{
+public:
+ VCLXAccessibleListBoxList (VCLXWindow* pVCLXindow, BoxType aBoxType,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& _xParent);
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return list box list specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ void SAL_CALL deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ /** Create the specified child and insert it into the list of children.
+ Sets the child's states.
+ */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ CreateChild (sal_Int32 i);
+
+
+protected:
+ virtual ~VCLXAccessibleListBoxList (void);
+
+ virtual void ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent);
+
+private:
+ sal_Int32 m_nLastTopEntry;
+ USHORT m_nLastSelectedPos;
+ bool m_bDisableProcessEvent;
+
+ void UpdateEntryRange_Impl (void);
+ using VCLXAccessibleList::UpdateSelection_Impl;
+ void UpdateSelection_Impl (void);
+ using VCLXAccessibleList::checkEntrySelected;
+ BOOL checkEntrySelected(ListBox* _pListBox,
+ USHORT _nPos,
+ ::com::sun::star::uno::Any& _rNewValue,
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxNewAcc);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx
new file mode 100644
index 000000000000..ec07745bb0d4
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblelistitem.hxx
@@ -0,0 +1,200 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTITEM_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLELISTITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#ifndef _CPPUHELPER_COMPBASE6_HXX
+#include <cppuhelper/compbase6.hxx>
+#endif
+#ifndef _COMPHELPER_BROADCASTHELPER_HXX
+#include <comphelper/broadcasthelper.hxx>
+#endif
+#include <comphelper/accessibletexthelper.hxx>
+
+// forward ---------------------------------------------------------------
+
+namespace com { namespace sun { namespace star { namespace awt {
+ struct Point;
+ struct Rectangle;
+ struct Size;
+ class XFocusListener;
+} } } }
+
+namespace accessibility
+{
+ class IComboListBoxHelper;
+}
+
+// class VCLXAccessibleListItem ------------------------------------------
+
+typedef ::cppu::WeakAggComponentImplHelper6< ::com::sun::star::accessibility::XAccessible
+ , ::com::sun::star::accessibility::XAccessibleContext
+ , ::com::sun::star::accessibility::XAccessibleComponent
+ , ::com::sun::star::accessibility::XAccessibleEventBroadcaster
+ , ::com::sun::star::accessibility::XAccessibleText
+ , ::com::sun::star::lang::XServiceInfo > VCLXAccessibleListItem_BASE;
+
+/** the class OAccessibleListBoxEntry represents the base class for an accessible object of a listbox entry
+*/
+class VCLXAccessibleListItem : public ::comphelper::OBaseMutex,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleListItem_BASE
+{
+private:
+ ::rtl::OUString m_sEntryText;
+ sal_Int32 m_nIndexInParent;
+ sal_Bool m_bSelected;
+ sal_Bool m_bVisible;
+
+protected:
+ /// client id in the AccessibleEventNotifier queue
+ sal_uInt32 m_nClientId;
+ ::accessibility::IComboListBoxHelper* m_pListBoxHelper;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xParent;
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > m_xParentContext;
+
+private:
+ /** notifies all listeners that this object has changed
+ @param _nEventId
+ is the event id
+ @param _aOldValue
+ is the old value
+ @param _aNewValue
+ is the new value
+ */
+ void NotifyAccessibleEvent( sal_Int16 _nEventId,
+ const ::com::sun::star::uno::Any& _aOldValue,
+ const ::com::sun::star::uno::Any& _aNewValue );
+
+protected:
+ virtual ~VCLXAccessibleListItem();
+ /** this function is called upon disposing the component
+ */
+ virtual void SAL_CALL disposing();
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+public:
+ /** OAccessibleBase needs a valid view
+ @param _pListBoxHelper
+ is the list- or combobox for which we implement an accessible object
+ @param _nIndexInParent
+ is the position of the entry inside the listbox
+ @param _xParent
+ is our parent accessible object
+ */
+ VCLXAccessibleListItem( ::accessibility::IComboListBoxHelper* _pListBoxHelper,
+ sal_Int32 _nIndexInParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent );
+
+
+ inline sal_Bool IsSelected() const { return m_bSelected; }
+ void SetSelected( sal_Bool _bSelected );
+ void SetVisible( sal_Bool _bVisible );
+ inline bool DecrementIndexInParent() { OSL_ENSURE(m_nIndexInParent != 0,"Invalid call!");--m_nIndexInParent; return true;}
+ inline bool IncrementIndexInParent() { ++m_nIndexInParent; return true;}
+
+ // XInterface
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw(::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire( ) throw();
+ virtual void SAL_CALL release( ) throw();
+
+ // XTypeProvider
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual sal_Bool SAL_CALL containsPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getBounds( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocation( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Point SAL_CALL getLocationOnScreen( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Size SAL_CALL getSize( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground (void) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground (void) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleEventBroadcaster
+ using cppu::WeakAggComponentImplHelperBase::addEventListener;
+ using cppu::WeakAggComponentImplHelperBase::removeEventListener;
+ virtual void SAL_CALL addEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeEventListener( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleEventListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_ACCESSIBLELISTBOXENTRY_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx
new file mode 100644
index 000000000000..35851788853b
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblemenu.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENU_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENU_HXX
+
+#include <accessibility/standard/vclxaccessiblemenuitem.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleMenu
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper1 <
+ ::com::sun::star::accessibility::XAccessibleSelection > VCLXAccessibleMenu_BASE;
+
+class VCLXAccessibleMenu : public VCLXAccessibleMenuItem,
+ public VCLXAccessibleMenu_BASE
+{
+protected:
+ virtual sal_Bool IsFocused();
+ virtual sal_Bool IsPopupMenuOpen();
+
+public:
+ VCLXAccessibleMenu( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu );
+ virtual ~VCLXAccessibleMenu();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENU_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx
new file mode 100644
index 000000000000..d9899b52dc2f
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblemenubar.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
+
+#include <accessibility/standard/accessiblemenucomponent.hxx>
+
+class VclSimpleEvent;
+class VclWindowEvent;
+class Window;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleMenuBar
+// ----------------------------------------------------
+
+class VCLXAccessibleMenuBar : public OAccessibleMenuComponent
+{
+protected:
+ Window* m_pWindow;
+
+ virtual sal_Bool IsFocused();
+
+ DECL_LINK( WindowEventListener, VclSimpleEvent* );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleMenuBar( Menu* pMenu );
+ virtual ~VCLXAccessibleMenuBar();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUBAR_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblemenuitem.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblemenuitem.hxx
new file mode 100644
index 000000000000..e2e430d9300b
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblemenuitem.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+
+#include <accessibility/standard/accessiblemenuitemcomponent.hxx>
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE3_HXX
+#include <cppuhelper/implbase3.hxx>
+#endif
+#include <comphelper/accessibletexthelper.hxx>
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleMenuItem
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper3<
+ ::com::sun::star::accessibility::XAccessibleText,
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue > VCLXAccessibleMenuItem_BASE;
+
+class VCLXAccessibleMenuItem : public OAccessibleMenuItemComponent,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleMenuItem_BASE
+{
+protected:
+ virtual sal_Bool IsFocused();
+ virtual sal_Bool IsSelected();
+ virtual sal_Bool IsChecked();
+
+ virtual sal_Bool IsHighlighted();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+public:
+ VCLXAccessibleMenuItem( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = 0 );
+ virtual ~VCLXAccessibleMenuItem();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUITEM_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblemenuseparator.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblemenuseparator.hxx
new file mode 100644
index 000000000000..30ae2e764cdb
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblemenuseparator.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+
+#include <accessibility/standard/accessiblemenuitemcomponent.hxx>
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleMenuSeparator
+// ----------------------------------------------------
+
+class VCLXAccessibleMenuSeparator : public OAccessibleMenuItemComponent
+{
+public:
+ VCLXAccessibleMenuSeparator( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu = 0 );
+ virtual ~VCLXAccessibleMenuSeparator();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEMENUSEPARATOR_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblepopupmenu.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblepopupmenu.hxx
new file mode 100644
index 000000000000..d4ccd5f09ff5
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblepopupmenu.hxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
+
+#include <accessibility/standard/accessiblemenucomponent.hxx>
+
+
+// ----------------------------------------------------
+// class VCLXAccessiblePopupMenu
+// ----------------------------------------------------
+
+class VCLXAccessiblePopupMenu : public OAccessibleMenuComponent
+{
+protected:
+ virtual sal_Bool IsFocused();
+
+public:
+ VCLXAccessiblePopupMenu( Menu* pMenu );
+ virtual ~VCLXAccessiblePopupMenu();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLEPOPUPMENU_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx b/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx
new file mode 100644
index 000000000000..615ed08ca2da
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibleradiobutton.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleRadioButton
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue > VCLXAccessibleRadioButton_BASE;
+
+class VCLXAccessibleRadioButton : public VCLXAccessibleTextComponent,
+ public VCLXAccessibleRadioButton_BASE
+{
+protected:
+ virtual ~VCLXAccessibleRadioButton();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+public:
+ VCLXAccessibleRadioButton( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLERADIOBUTTON_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx
new file mode 100644
index 000000000000..063204214a19
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblescrollbar.hxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleScrollBar
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue > VCLXAccessibleScrollBar_BASE;
+
+class VCLXAccessibleScrollBar : public VCLXAccessibleComponent,
+ public VCLXAccessibleScrollBar_BASE
+{
+protected:
+ virtual ~VCLXAccessibleScrollBar();
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+public:
+ VCLXAccessibleScrollBar( VCLXWindow* pVCLXindow );
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLESCROLLBAR_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx
new file mode 100644
index 000000000000..5243229b4902
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblestatusbar.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+#include <vector>
+
+class StatusBar;
+
+// ----------------------------------------------------
+// class VCLXAccessibleStatusBar
+// ----------------------------------------------------
+
+class VCLXAccessibleStatusBar : public VCLXAccessibleComponent
+{
+private:
+ typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ StatusBar* m_pStatusBar;
+
+protected:
+ void UpdateShowing( sal_Int32 i, sal_Bool bShowing );
+ void UpdateItemName( sal_Int32 i );
+ void UpdateItemText( sal_Int32 i );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow );
+ ~VCLXAccessibleStatusBar();
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBAR_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx b/accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx
new file mode 100644
index 000000000000..442645c6d88f
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessiblestatusbaritem.hxx
@@ -0,0 +1,144 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <comphelper/accessibletexthelper.hxx>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+class StatusBar;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleStatusBarItem
+// ----------------------------------------------------
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::lang::XServiceInfo > VCLXAccessibleStatusBarItem_BASE;
+
+class VCLXAccessibleStatusBarItem : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleStatusBarItem_BASE
+{
+ friend class VCLXAccessibleStatusBar;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+ StatusBar* m_pStatusBar;
+ sal_uInt16 m_nItemId;
+ ::rtl::OUString m_sItemName;
+ ::rtl::OUString m_sItemText;
+ sal_Bool m_bShowing;
+
+protected:
+ sal_Bool IsShowing();
+ void SetShowing( sal_Bool bShowing );
+ void SetItemName( const ::rtl::OUString& sItemName );
+ ::rtl::OUString GetItemName();
+ void SetItemText( const ::rtl::OUString& sItemText );
+ ::rtl::OUString GetItemText();
+ sal_uInt16 GetItemId() const { return m_nItemId; }
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleStatusBarItem( StatusBar* pStatusBar, sal_uInt16 nItemId );
+ virtual ~VCLXAccessibleStatusBarItem();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLESTATUSBARITEM_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx
new file mode 100644
index 000000000000..f663ca3475fc
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletabcontrol.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+#include <vector>
+
+class TabControl;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTabControl
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper1 <
+ ::com::sun::star::accessibility::XAccessibleSelection > VCLXAccessibleTabControl_BASE;
+
+class VCLXAccessibleTabControl : public VCLXAccessibleComponent,
+ public VCLXAccessibleTabControl_BASE
+{
+private:
+ typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > AccessibleChildren;
+
+ AccessibleChildren m_aAccessibleChildren;
+ TabControl* m_pTabControl;
+
+protected:
+ void UpdateFocused();
+ void UpdateSelected( sal_Int32 i, bool bSelected );
+ void UpdatePageText( sal_Int32 i );
+ void UpdateTabPage( sal_Int32 i, bool bNew );
+
+ void InsertChild( sal_Int32 i );
+ void RemoveChild( sal_Int32 i );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow );
+ ~VCLXAccessibleTabControl();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABCONTROL_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx
new file mode 100644
index 000000000000..ed47ce9f0e94
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletabpage.hxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <comphelper/accessibletexthelper.hxx>
+#ifndef _CPPUHELPER_IMPLBASE2_HXX
+#include <cppuhelper/implbase2.hxx>
+#endif
+
+
+class TabControl;
+class VCLExternalSolarLock;
+
+namespace utl {
+class AccessibleStateSetHelper;
+}
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTabPage
+// ----------------------------------------------------
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+
+typedef ::cppu::ImplHelper2<
+ ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::lang::XServiceInfo > VCLXAccessibleTabPage_BASE;
+
+class VCLXAccessibleTabPage : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleTabPage_BASE
+{
+ friend class VCLXAccessibleTabControl;
+
+private:
+ VCLExternalSolarLock* m_pExternalLock;
+ TabControl* m_pTabControl;
+ sal_uInt16 m_nPageId;
+ bool m_bFocused;
+ bool m_bSelected;
+ ::rtl::OUString m_sPageText;
+
+protected:
+ bool IsFocused();
+ bool IsSelected();
+
+ void SetFocused( bool bFocused );
+ void SetSelected( bool bSelected );
+ void SetPageText( const ::rtl::OUString& sPageText );
+ ::rtl::OUString GetPageText();
+
+ void Update( bool bNew );
+
+ sal_uInt16 GetPageId() const { return m_nPageId; }
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleTabPage( TabControl* pTabControl, sal_uInt16 nPageId );
+ virtual ~VCLXAccessibleTabPage();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::lang::Locale SAL_CALL getLocale( ) throw (::com::sun::star::accessibility::IllegalAccessibleComponentStateException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGE_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx
new file mode 100644
index 000000000000..5ba980cc8c4f
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletabpagewindow.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+
+
+class TabControl;
+class TabPage;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTabPageWindow
+// ----------------------------------------------------
+
+class VCLXAccessibleTabPageWindow : public VCLXAccessibleComponent
+{
+private:
+ TabControl* m_pTabControl;
+ TabPage* m_pTabPage;
+ sal_uInt16 m_nPageId;
+
+protected:
+ // OCommonAccessibleComponent
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleTabPageWindow( VCLXWindow* pVCLXWindow );
+ ~VCLXAccessibleTabPageWindow();
+
+ // XAccessibleContext
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETABPAGEWINDOW_HXX
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletextcomponent.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletextcomponent.hxx
new file mode 100644
index 000000000000..47e7189cd95a
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletextcomponent.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTextComponent
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper1 <
+ ::com::sun::star::accessibility::XAccessibleText > VCLXAccessibleTextComponent_BASE;
+
+class VCLXAccessibleTextComponent : public VCLXAccessibleComponent,
+ public ::comphelper::OCommonAccessibleText,
+ public VCLXAccessibleTextComponent_BASE
+{
+protected:
+ ::rtl::OUString m_sText;
+
+ void SetText( const ::rtl::OUString& sText );
+
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow );
+ ~VCLXAccessibleTextComponent();
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Unicode SAL_CALL getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getCharacterCount() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getSelectedText() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionStart() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectionEnd() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getText() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::accessibility::TextSegment SAL_CALL getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+};
+
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTCOMPONENT_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletextfield.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletextfield.hxx
new file mode 100644
index 000000000000..70d35acb305a
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletextfield.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTFIELD_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETEXTFIELD_HXX
+
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+
+#ifndef _CPPUHELPER_IMPLBASE1_HXX
+#include <cppuhelper/implbase1.hxx>
+#endif
+
+typedef ::cppu::ImplHelper1<
+ ::com::sun::star::accessibility::XAccessible
+ > VCLXAccessible_BASE;
+
+
+/** This class represents non editable text fields. The object passed to
+ the constructor is expected to be a list (a <type>ListBox</type> to be
+ more specific). From this allways the selected item is token to be made
+ accessible by this class. When the selected item changes then also the
+ exported text changes.
+*/
+class VCLXAccessibleTextField :
+ public VCLXAccessibleTextComponent,
+ public VCLXAccessible_BASE
+{
+public:
+ VCLXAccessibleTextField (VCLXWindow* pVCLXindow,
+ const ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible >& _xParent);
+
+ // XInterface
+ DECLARE_XINTERFACE()
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER()
+
+ // XAccessible
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext> SAL_CALL
+ getAccessibleContext (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ sal_Int32 SAL_CALL getAccessibleChildCount (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible> SAL_CALL
+ getAccessibleChild (sal_Int32 i)
+ throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ sal_Int16 SAL_CALL getAccessibleRole (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ getAccessibleParent( )
+ throw (::com::sun::star::uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName (void)
+ throw (::com::sun::star::uno::RuntimeException);
+ // Return text field specific services.
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
+ getSupportedServiceNames (void)
+ throw (::com::sun::star::uno::RuntimeException);
+
+protected:
+ virtual ~VCLXAccessibleTextField (void);
+
+ /** With this method the text of the currently selected item is made
+ available to the <type>VCLXAccessibleTextComponent</type> base class.
+ */
+ ::rtl::OUString implGetText (void);
+
+private:
+ /** We need to save the accessible parent to return it in <type>getAccessibleParent()</type>,
+ because this method of the base class returns the wrong parent.
+ */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xParent;
+};
+
+#endif
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx
new file mode 100644
index 000000000000..168938d50a6c
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletoolbox.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+
+#include <map>
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+// ----------------------------------------------------
+// class VCLXAccessibleToolBox
+// ----------------------------------------------------
+
+typedef ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessibleSelection > VCLXAccessibleToolBox_BASE;
+
+typedef std::map< sal_Int32, com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > > ToolBoxItemsMap;
+
+class VCLXAccessibleToolBoxItem;
+class ToolBox;
+
+class VCLXAccessibleToolBox : public VCLXAccessibleComponent, public VCLXAccessibleToolBox_BASE
+{
+private:
+ ToolBoxItemsMap m_aAccessibleChildren;
+
+ VCLXAccessibleToolBoxItem* GetItem_Impl( sal_Int32 _nPos, bool _bMustHaveFocus );
+
+ void UpdateFocus_Impl();
+ void ReleaseFocus_Impl( sal_Int32 _nPos );
+ void UpdateChecked_Impl( sal_Int32 _nPos );
+ void UpdateIndeterminate_Impl( sal_Int32 _nPos );
+ void UpdateItem_Impl( sal_Int32 _nPos, sal_Bool _bItemAdded );
+ void UpdateAllItems_Impl();
+ void UpdateItemName_Impl( sal_Int32 _nPos );
+ void UpdateItemEnabled_Impl( sal_Int32 _nPos );
+ void HandleSubToolBarEvent( const VclWindowEvent& rVclWindowEvent, bool _bShow );
+ void ReleaseSubToolBox( ToolBox* _pSubToolBox );
+
+protected:
+ virtual ~VCLXAccessibleToolBox();
+
+ virtual void FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet );
+ virtual void ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent );
+ virtual void ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent );
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetChildAccessible( const VclWindowEvent& rVclWindowEvent );
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > GetItemWindowAccessible( const VclWindowEvent& rVclWindowEvent );
+
+ // XComponent
+ virtual void SAL_CALL disposing();
+
+public:
+ VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow );
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+
+ // XTypeProvider
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleSelection
+ virtual void SAL_CALL selectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL clearAccessibleSelection( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL selectAllAccessibleChildren( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getSelectedAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL deselectAccessibleChild( sal_Int32 nChildIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+private:
+ void implReleaseToolboxItem(
+ ToolBoxItemsMap::iterator& _rMapPos,
+ bool _bNotifyRemoval,
+ bool _bDispose
+ );
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOX_HXX
+
diff --git a/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx b/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx
new file mode 100644
index 000000000000..4e2073a47a89
--- /dev/null
+++ b/accessibility/inc/accessibility/standard/vclxaccessibletoolboxitem.hxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+#define ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+
+#include <com/sun/star/accessibility/XAccessible.hpp>
+#ifndef _COM_SUN_STAR_ACCESSIBILITY_XACCESSIBLE_ACTION_HPP_
+#include <com/sun/star/accessibility/XAccessibleAction.hpp>
+#endif
+#include <com/sun/star/accessibility/XAccessibleComponent.hpp>
+#include <com/sun/star/accessibility/XAccessibleContext.hpp>
+#include <com/sun/star/accessibility/XAccessibleStateSet.hpp>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp>
+#include <com/sun/star/accessibility/XAccessibleValue.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#ifndef _CPPUHELPER_IMPLBASE4_HXX
+#include <cppuhelper/implbase4.hxx>
+#endif
+#include <comphelper/accessibletexthelper.hxx>
+#include <tools/solar.h>
+
+// class VCLXAccessibleToolBoxItem ---------------------------------------------
+
+class ToolBox;
+
+typedef ::comphelper::OAccessibleTextHelper AccessibleTextHelper_BASE;
+typedef ::cppu::ImplHelper4 < ::com::sun::star::accessibility::XAccessible,
+ ::com::sun::star::accessibility::XAccessibleAction,
+ ::com::sun::star::accessibility::XAccessibleValue,
+ ::com::sun::star::lang::XServiceInfo > VCLXAccessibleToolBoxItem_BASE;
+
+class VCLExternalSolarLock;
+
+class VCLXAccessibleToolBoxItem : public AccessibleTextHelper_BASE,
+ public VCLXAccessibleToolBoxItem_BASE
+{
+private:
+ ::rtl::OUString m_sOldName;
+ ToolBox* m_pToolBox;
+ VCLExternalSolarLock* m_pExternalLock;
+ sal_Int32 m_nIndexInParent;
+ sal_Int16 m_nRole;
+ USHORT m_nItemId;
+ sal_Bool m_bHasFocus;
+ sal_Bool m_bIsChecked;
+ bool m_bIndeterminate;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > m_xChild;
+
+public:
+ inline sal_Int32 getIndexInParent() const { return m_nIndexInParent; }
+ inline void setIndexInParent( sal_Int32 _nNewIndex ) { m_nIndexInParent = _nNewIndex; }
+
+protected:
+ virtual ~VCLXAccessibleToolBoxItem();
+
+ virtual void SAL_CALL disposing();
+
+ /// implements the calculation of the bounding rectangle
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL implGetBounds( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // OCommonAccessibleText
+ virtual ::rtl::OUString implGetText();
+ virtual ::com::sun::star::lang::Locale implGetLocale();
+ virtual void implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex );
+
+ ::rtl::OUString GetText( bool _bAsName );
+
+public:
+ VCLXAccessibleToolBoxItem( ToolBox* _pToolBox, sal_Int32 _nPos );
+
+ void SetFocus( sal_Bool _bFocus );
+ inline sal_Bool HasFocus() const { return m_bHasFocus; }
+ void SetChecked( sal_Bool _bCheck );
+ inline sal_Bool IsChecked() const { return m_bIsChecked; }
+ void SetIndeterminate( bool _bIndeterminate );
+ inline bool IsIndeterminate() const { return m_bIndeterminate; }
+ inline void ReleaseToolBox() { m_pToolBox = NULL; }
+ void NameChanged();
+ void SetChild( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xChild );
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ GetChild() const { return m_xChild; }
+ void NotifyChildEvent( const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xChild, bool _bShow );
+
+ void ToggleEnableState();
+
+ // XInterface
+ DECLARE_XINTERFACE( )
+ DECLARE_XTYPEPROVIDER( )
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& rServiceName ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessible
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleContext
+ virtual sal_Int32 SAL_CALL getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int16 SAL_CALL getAccessibleRole( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleDescription( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleName( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleText
+ virtual sal_Int32 SAL_CALL getCaretPosition() throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCaretPosition( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL getCharacterBounds( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getIndexAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const ::com::sun::star::awt::Point& aPoint ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL grabFocus( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getForeground( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL getBackground( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleExtendedComponent
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont > SAL_CALL getFont( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::FontDescriptor SAL_CALL getFontMetrics( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XFont >& xFont ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getTitledBorderText( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getToolTipText( ) throw (::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleAction
+ virtual sal_Int32 SAL_CALL getAccessibleActionCount( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL doAccessibleAction ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getAccessibleActionDescription ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleKeyBinding > SAL_CALL getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException);
+
+ // XAccessibleValue
+ virtual ::com::sun::star::uno::Any SAL_CALL getCurrentValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual sal_Bool SAL_CALL setCurrentValue( const ::com::sun::star::uno::Any& aNumber ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMaximumValue( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Any SAL_CALL getMinimumValue( ) throw (::com::sun::star::uno::RuntimeException);
+};
+
+#endif // ACCESSIBILITY_STANDARD_VCLXACCESSIBLETOOLBOXITEM_HXX
+
diff --git a/accessibility/inc/makefile.mk b/accessibility/inc/makefile.mk
new file mode 100644
index 000000000000..3afcad166928
--- /dev/null
+++ b/accessibility/inc/makefile.mk
@@ -0,0 +1,47 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..
+
+PRJNAME=accessibility
+TARGET=inc
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+# --- Targets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(ENABLE_PCH)"!=""
+ALLTAR : \
+ $(SLO)$/precompiled.pch \
+ $(SLO)$/precompiled_ex.pch
+
+.ENDIF # "$(ENABLE_PCH)"!=""
+
diff --git a/accessibility/inc/pch/precompiled_accessibility.cxx b/accessibility/inc/pch/precompiled_accessibility.cxx
new file mode 100644
index 000000000000..de6282ce69cb
--- /dev/null
+++ b/accessibility/inc/pch/precompiled_accessibility.cxx
@@ -0,0 +1,29 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_accessibility.hxx"
+
diff --git a/accessibility/inc/pch/precompiled_accessibility.hxx b/accessibility/inc/pch/precompiled_accessibility.hxx
new file mode 100644
index 000000000000..4d3020b4e289
--- /dev/null
+++ b/accessibility/inc/pch/precompiled_accessibility.hxx
@@ -0,0 +1,37 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): Generated on 2006-09-01 17:49:28.952369
+
+#ifdef PRECOMPILED_HEADERS
+
+//---MARKER---
+
+#include "com/sun/star/accessibility/AccessibleRelationType.hpp"
+#include "unotools/accessiblerelationsethelper.hxx"
+#include "vcl/window.hxx"
+#endif
diff --git a/accessibility/prj/build.lst b/accessibility/prj/build.lst
new file mode 100755
index 000000000000..f410ece56d9b
--- /dev/null
+++ b/accessibility/prj/build.lst
@@ -0,0 +1,18 @@
+ac accessibility : l10n tools jurt offuh unoil vcl javaunohelper jvmaccess cppu sal toolkit svtools NULL
+ac accessibility usr1 - all ac_mkout NULL
+ac accessibility\inc nmake - all ac_inc NULL
+ac accessibility\bridge\org\openoffice\java\accessibility nmake - w ac_ooja ac_inc NULL
+ac accessibility\bridge\org\openoffice\accessibility nmake - w ac_ooa ac_ooja.w ac_inc NULL
+ac accessibility\bridge\source\java nmake - w ac_ooan ac_ooa.w ac_inc NULL
+ac accessibility\inc get - all ac_inc NULL
+ac accessibility\source\helper nmake - all ac_helper ac_inc NULL
+ac accessibility\source\standard nmake - all ac_standard ac_helper ac_inc NULL
+ac accessibility\source\extended nmake - all ac_extended ac_inc NULL
+ac accessibility\util nmake - all ac_util ac_helper ac_standard ac_extended NULL
+ac accessibility\workben\org\openoffice\accessibility\awb nmake - all ac_awb_main ac_awb_misc ac_awb_canvas ac_awb_view ac_awb_tree NULL
+ac accessibility\workben\org\openoffice\accessibility\misc nmake - all ac_awb_misc NULL
+ac accessibility\workben\org\openoffice\accessibility\awb\canvas nmake - all ac_awb_canvas ac_awb_tree NULL
+ac accessibility\workben\org\openoffice\accessibility\awb\tree nmake - all ac_awb_tree ac_awb_misc NULL
+ac accessibility\workben\org\openoffice\accessibility\awb\view nmake - all ac_awb_view ac_awb_view_text NULL
+# dependency on ac_awb_misc to avoid concurrent creation of java_ver.mk
+ac accessibility\workben\org\openoffice\accessibility\awb\view\text nmake - all ac_awb_view_text ac_awb_misc NULL
diff --git a/accessibility/prj/d.lst b/accessibility/prj/d.lst
new file mode 100644
index 000000000000..f61319551e41
--- /dev/null
+++ b/accessibility/prj/d.lst
@@ -0,0 +1,8 @@
+..\%__SRC%\class\java_uno_accessbridge.jar %_DEST%\bin%_EXT%\java_uno_accessbridge.jar
+..\%__SRC%\class\java_accessibility.jar %_DEST%\bin%_EXT%\java_accessibility.jar
+
+..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
+..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+
diff --git a/accessibility/prj/l10n b/accessibility/prj/l10n
new file mode 100644
index 000000000000..69f0d9e5e24e
--- /dev/null
+++ b/accessibility/prj/l10n
@@ -0,0 +1 @@
+#i49922# In this module en-US and de are used as source language
diff --git a/accessibility/source/extended/AccessibleBrowseBox.cxx b/accessibility/source/extended/AccessibleBrowseBox.cxx
new file mode 100644
index 000000000000..677c15513d7a
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBox.cxx
@@ -0,0 +1,401 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/AccessibleBrowseBox.hxx"
+#include "accessibility/extended/AccessibleBrowseBoxTable.hxx"
+#include "accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx"
+#include <svtools/accessibletableprovider.hxx>
+#include <comphelper/types.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+
+// ============================================================================
+
+namespace accessibility
+{
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+
+// ============================================================================
+class AccessibleBrowseBoxImpl
+{
+public:
+ /// the XAccessible which created the AccessibleBrowseBox
+ WeakReference< XAccessible > m_aCreator;
+
+ /** The data table child. */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > mxTable;
+ AccessibleBrowseBoxTable* m_pTable;
+
+ /** The header bar for rows ("handle column"). */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > mxRowHeaderBar;
+ AccessibleBrowseBoxHeaderBar* m_pRowHeaderBar;
+
+ /** The header bar for columns (first row of the table). */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > mxColumnHeaderBar;
+ AccessibleBrowseBoxHeaderBar* m_pColumnHeaderBar;
+};
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleBrowseBox )
+
+AccessibleBrowseBox::AccessibleBrowseBox(
+ const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxCreator,
+ IAccessibleTableProvider& _rBrowseBox )
+ : AccessibleBrowseBoxBase( _rxParent, _rBrowseBox,NULL, BBTYPE_BROWSEBOX )
+{
+ DBG_CTOR( AccessibleBrowseBox, NULL );
+ m_pImpl.reset( new AccessibleBrowseBoxImpl() );
+ m_pImpl->m_aCreator = _rxCreator;
+
+ m_xFocusWindow = VCLUnoHelper::GetInterface(mpBrowseBox->GetWindowInstance());
+}
+// -----------------------------------------------------------------------------
+void AccessibleBrowseBox::setCreator( const Reference< XAccessible >& _rxCreator )
+{
+#if OSL_DEBUG_LEVEL > 0
+ Reference< XAccessible > xCreator = (Reference< XAccessible >)m_pImpl->m_aCreator;
+ DBG_ASSERT( !xCreator.is(), "accessibility/extended/AccessibleBrowseBox::setCreator: creator already set!" );
+#endif
+ m_pImpl->m_aCreator = _rxCreator;
+}
+
+// -----------------------------------------------------------------------------
+AccessibleBrowseBox::~AccessibleBrowseBox()
+{
+ DBG_DTOR( AccessibleBrowseBox, NULL );
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL AccessibleBrowseBox::disposing()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ m_pImpl->m_pTable = NULL;
+ m_pImpl->m_pColumnHeaderBar = NULL;
+ m_pImpl->m_pRowHeaderBar = NULL;
+ m_pImpl->m_aCreator = Reference< XAccessible >();
+
+ Reference< XAccessible > xTable = m_pImpl->mxTable;
+
+ Reference< XComponent > xComp( m_pImpl->mxTable, UNO_QUERY );
+ if ( xComp.is() )
+ {
+ xComp->dispose();
+
+ }
+//! ::comphelper::disposeComponent(m_pImpl->mxTable);
+ ::comphelper::disposeComponent(m_pImpl->mxRowHeaderBar);
+ ::comphelper::disposeComponent(m_pImpl->mxColumnHeaderBar);
+
+ AccessibleBrowseBoxBase::disposing();
+}
+// -----------------------------------------------------------------------------
+
+// XAccessibleContext ---------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleBrowseBox::getAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return BBINDEX_FIRSTCONTROL + mpBrowseBox->GetAccessibleControlCount();
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBox::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Reference< XAccessible > xRet;
+ if( nChildIndex >= 0 )
+ {
+ if( nChildIndex < BBINDEX_FIRSTCONTROL )
+ xRet = implGetFixedChild( nChildIndex );
+ else
+ {
+ // additional controls
+ nChildIndex -= BBINDEX_FIRSTCONTROL;
+ if( nChildIndex < mpBrowseBox->GetAccessibleControlCount() )
+ xRet = mpBrowseBox->CreateAccessibleControl( nChildIndex );
+ }
+ }
+
+ if( !xRet.is() )
+ throw lang::IndexOutOfBoundsException();
+ return xRet;
+}
+// -----------------------------------------------------------------------------
+
+//sal_Int16 SAL_CALL AccessibleBrowseBox::getAccessibleRole()
+// throw ( uno::RuntimeException )
+//{
+// ensureIsAlive();
+// return AccessibleRole::PANEL;
+//}
+// -----------------------------------------------------------------------------
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBox::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 nIndex = 0;
+ if( mpBrowseBox->ConvertPointToControlIndex( nIndex, VCLPoint( rPoint ) ) )
+ xChild = mpBrowseBox->CreateAccessibleControl( nIndex );
+ else
+ {
+ // try whether point is in one of the fixed children
+ // (table, header bars, corner control)
+ Point aPoint( VCLPoint( rPoint ) );
+ for( nIndex = 0; (nIndex < BBINDEX_FIRSTCONTROL) && !xChild.is(); ++nIndex )
+ {
+ Reference< XAccessible > xCurrChild( implGetFixedChild( nIndex ) );
+ Reference< XAccessibleComponent >
+ xCurrChildComp( xCurrChild, uno::UNO_QUERY );
+
+ if( xCurrChildComp.is() &&
+ VCLRectangle( xCurrChildComp->getBounds() ).IsInside( aPoint ) )
+ xChild = xCurrChild;
+ }
+ }
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL AccessibleBrowseBox::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ mpBrowseBox->GrabFocus();
+}
+// -----------------------------------------------------------------------------
+
+Any SAL_CALL AccessibleBrowseBox::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any();
+}
+// -----------------------------------------------------------------------------
+
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleBrowseBox::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.AccessibleBrowseBox" ) );
+}
+// -----------------------------------------------------------------------------
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleBrowseBox::implGetBoundingBox()
+{
+ Window* pParent = mpBrowseBox->GetAccessibleParentWindow();
+ DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
+ return mpBrowseBox->GetWindowExtentsRelative( pParent );
+}
+// -----------------------------------------------------------------------------
+
+Rectangle AccessibleBrowseBox::implGetBoundingBoxOnScreen()
+{
+ return mpBrowseBox->GetWindowExtentsRelative( NULL );
+}
+// -----------------------------------------------------------------------------
+
+// internal helper methods ----------------------------------------------------
+
+Reference< XAccessible > AccessibleBrowseBox::implGetTable()
+{
+ if( !m_pImpl->mxTable.is() )
+ {
+ m_pImpl->m_pTable = createAccessibleTable();
+ m_pImpl->mxTable = m_pImpl->m_pTable;
+
+ }
+ return m_pImpl->mxTable;
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible >
+AccessibleBrowseBox::implGetHeaderBar( AccessibleBrowseBoxObjType eObjType )
+{
+ Reference< XAccessible > xRet;
+ Reference< XAccessible >* pxMember = NULL;
+
+ if( eObjType == BBTYPE_ROWHEADERBAR )
+ pxMember = &m_pImpl->mxRowHeaderBar;
+ else if( eObjType == BBTYPE_COLUMNHEADERBAR )
+ pxMember = &m_pImpl->mxColumnHeaderBar;
+
+ if( pxMember )
+ {
+ if( !pxMember->is() )
+ {
+ AccessibleBrowseBoxHeaderBar* pHeaderBar = new AccessibleBrowseBoxHeaderBar(
+ (Reference< XAccessible >)m_pImpl->m_aCreator, *mpBrowseBox, eObjType );
+
+ if ( BBTYPE_COLUMNHEADERBAR == eObjType)
+ m_pImpl->m_pColumnHeaderBar = pHeaderBar;
+ else
+ m_pImpl->m_pRowHeaderBar = pHeaderBar;
+
+ *pxMember = pHeaderBar;
+ }
+ xRet = *pxMember;
+ }
+ return xRet;
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible >
+AccessibleBrowseBox::implGetFixedChild( sal_Int32 nChildIndex )
+{
+ Reference< XAccessible > xRet;
+ switch( nChildIndex )
+ {
+ case BBINDEX_COLUMNHEADERBAR:
+ xRet = implGetHeaderBar( BBTYPE_COLUMNHEADERBAR );
+ break;
+ case BBINDEX_ROWHEADERBAR:
+ xRet = implGetHeaderBar( BBTYPE_ROWHEADERBAR );
+ break;
+ case BBINDEX_TABLE:
+ xRet = implGetTable();
+ break;
+ }
+ return xRet;
+}
+// -----------------------------------------------------------------------------
+AccessibleBrowseBoxTable* AccessibleBrowseBox::createAccessibleTable()
+{
+ Reference< XAccessible > xCreator = (Reference< XAccessible >)m_pImpl->m_aCreator;
+ DBG_ASSERT( xCreator.is(), "accessibility/extended/AccessibleBrowseBox::createAccessibleTable: my creator died - how this?" );
+ return new AccessibleBrowseBoxTable( xCreator, *mpBrowseBox );
+}
+// -----------------------------------------------------------------------------
+void AccessibleBrowseBox::commitTableEvent(sal_Int16 _nEventId,const Any& _rNewValue,const Any& _rOldValue)
+{
+ if ( m_pImpl->mxTable.is() )
+ {
+ m_pImpl->m_pTable->commitEvent(_nEventId,_rNewValue,_rOldValue);
+ }
+}
+// -----------------------------------------------------------------------------
+void AccessibleBrowseBox::commitHeaderBarEvent( sal_Int16 _nEventId,
+ const Any& _rNewValue,
+ const Any& _rOldValue,sal_Bool _bColumnHeaderBar)
+{
+ Reference< XAccessible > xHeaderBar = _bColumnHeaderBar ? m_pImpl->mxColumnHeaderBar : m_pImpl->mxRowHeaderBar;
+ AccessibleBrowseBoxHeaderBar* pHeaderBar = _bColumnHeaderBar ? m_pImpl->m_pColumnHeaderBar : m_pImpl->m_pRowHeaderBar;
+ if ( xHeaderBar.is() )
+ pHeaderBar->commitEvent(_nEventId,_rNewValue,_rOldValue);
+}
+
+// ============================================================================
+// = AccessibleBrowseBoxAccess
+// ============================================================================
+DBG_NAME( AccessibleBrowseBoxAccess )
+// -----------------------------------------------------------------------------
+AccessibleBrowseBoxAccess::AccessibleBrowseBoxAccess( const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox )
+ :m_xParent( _rxParent )
+ ,m_rBrowseBox( _rBrowseBox )
+ ,m_pContext( NULL )
+{
+ DBG_CTOR( AccessibleBrowseBoxAccess, NULL );
+}
+
+// -----------------------------------------------------------------------------
+AccessibleBrowseBoxAccess::~AccessibleBrowseBoxAccess()
+{
+ DBG_DTOR( AccessibleBrowseBoxAccess, NULL );
+}
+
+// -----------------------------------------------------------------------------
+void AccessibleBrowseBoxAccess::dispose()
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ m_pContext = NULL;
+ ::comphelper::disposeComponent( m_xContext );
+}
+
+// -----------------------------------------------------------------------------
+Reference< XAccessibleContext > SAL_CALL AccessibleBrowseBoxAccess::getAccessibleContext() throw ( RuntimeException )
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ DBG_ASSERT( ( m_pContext && m_xContext.is() ) || ( !m_pContext && !m_xContext.is() ),
+ "accessibility/extended/AccessibleBrowseBoxAccess::getAccessibleContext: inconsistency!" );
+
+ // if the context died meanwhile (we're no listener, so it won't tell us explicitily when this happens),
+ // then reset an re-create.
+ if ( m_pContext && !m_pContext->isAlive() )
+ m_xContext = m_pContext = NULL;
+
+ if ( !m_xContext.is() )
+ m_xContext = m_pContext = new AccessibleBrowseBox( m_xParent, this, m_rBrowseBox );
+
+ return m_xContext;
+}
+
+// -----------------------------------------------------------------------------
+bool AccessibleBrowseBoxAccess::isContextAlive() const
+{
+ return ( NULL != m_pContext ) && m_pContext->isAlive();
+}
+
+// ============================================================================
+
+} // namespace accessibility
diff --git a/accessibility/source/extended/AccessibleBrowseBoxBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
new file mode 100644
index 000000000000..f8b43ecdced2
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxBase.cxx
@@ -0,0 +1,658 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/AccessibleBrowseBoxBase.hxx"
+#include <svtools/accessibletableprovider.hxx>
+#include <rtl/uuid.h>
+//
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblerelationsethelper.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+using namespace ::svt;
+
+
+// ============================================================================
+
+namespace accessibility {
+
+using namespace com::sun::star::accessibility::AccessibleStateType;
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleBrowseBoxBase )
+
+AccessibleBrowseBoxBase::AccessibleBrowseBoxBase(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ AccessibleBrowseBoxObjType eObjType ) :
+ AccessibleBrowseBoxImplHelper( m_aMutex ),
+ mxParent( rxParent ),
+ mpBrowseBox( &rBrowseBox ),
+ m_xFocusWindow(_xFocusWindow),
+ maName( rBrowseBox.GetAccessibleObjectName( eObjType ) ),
+ maDescription( rBrowseBox.GetAccessibleObjectDescription( eObjType ) ),
+ meObjType( eObjType ),
+ m_aClientId(0)
+{
+ DBG_CTOR( AccessibleBrowseBoxBase, NULL );
+ if ( m_xFocusWindow.is() )
+ m_xFocusWindow->addFocusListener( this );
+}
+
+AccessibleBrowseBoxBase::AccessibleBrowseBoxBase(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ AccessibleBrowseBoxObjType eObjType,
+ const ::rtl::OUString& rName,
+ const ::rtl::OUString& rDescription ) :
+ AccessibleBrowseBoxImplHelper( m_aMutex ),
+ mxParent( rxParent ),
+ mpBrowseBox( &rBrowseBox ),
+ m_xFocusWindow(_xFocusWindow),
+ maName( rName ),
+ maDescription( rDescription ),
+ meObjType( eObjType ),
+ m_aClientId(0)
+{
+ DBG_CTOR( AccessibleBrowseBoxBase, NULL );
+ if ( m_xFocusWindow.is() )
+ m_xFocusWindow->addFocusListener( this );
+}
+
+AccessibleBrowseBoxBase::~AccessibleBrowseBoxBase()
+{
+ DBG_DTOR( AccessibleBrowseBoxBase, NULL );
+
+ if( isAlive() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+}
+
+void SAL_CALL AccessibleBrowseBoxBase::disposing()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ if ( m_xFocusWindow.is() )
+ {
+ BBSolarGuard aSolarGuard;
+ m_xFocusWindow->removeFocusListener( this );
+ }
+
+ if ( getClientId( ) )
+ {
+ AccessibleEventNotifier::TClientId nId( getClientId( ) );
+ setClientId( 0 );
+ AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+ }
+
+ mxParent = NULL;
+ mpBrowseBox = NULL;
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL AccessibleBrowseBoxBase::getAccessibleParent()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return mxParent;
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ // -1 for child not found/no parent (according to specification)
+ sal_Int32 nRet = -1;
+
+ Reference< uno::XInterface > xMeMyselfAndI( static_cast< XAccessibleContext* >( this ), uno::UNO_QUERY );
+
+ // iterate over parent's children and search for this object
+ if( mxParent.is() )
+ {
+ Reference< XAccessibleContext >
+ xParentContext( mxParent->getAccessibleContext() );
+ if( xParentContext.is() )
+ {
+ Reference< uno::XInterface > xChild;
+
+ sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
+ for( sal_Int32 nChild = 0; nChild < nChildCount; ++nChild )
+ {
+ xChild = xChild.query( xParentContext->getAccessibleChild( nChild ) );
+
+ if ( xMeMyselfAndI.get() == xChild.get() )
+ {
+ nRet = nChild;
+ break;
+ }
+ }
+ }
+ }
+ return nRet;
+}
+
+OUString SAL_CALL AccessibleBrowseBoxBase::getAccessibleDescription()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return maDescription;
+}
+
+OUString SAL_CALL AccessibleBrowseBoxBase::getAccessibleName()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return maName;
+}
+
+Reference< XAccessibleRelationSet > SAL_CALL
+AccessibleBrowseBoxBase::getAccessibleRelationSet()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ // BrowseBox does not have relations.
+ return new utl::AccessibleRelationSetHelper;
+}
+
+Reference< XAccessibleStateSet > SAL_CALL
+AccessibleBrowseBoxBase::getAccessibleStateSet()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ // don't check whether alive -> StateSet may contain DEFUNC
+ return implCreateStateSetHelper();
+}
+
+lang::Locale SAL_CALL AccessibleBrowseBoxBase::getLocale()
+ throw ( IllegalAccessibleComponentStateException, uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ if( mxParent.is() )
+ {
+ Reference< XAccessibleContext >
+ xParentContext( mxParent->getAccessibleContext() );
+ if( xParentContext.is() )
+ return xParentContext->getLocale();
+ }
+ throw IllegalAccessibleComponentStateException();
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+sal_Bool SAL_CALL AccessibleBrowseBoxBase::containsPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ return Rectangle( Point(), getBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
+}
+
+awt::Rectangle SAL_CALL AccessibleBrowseBoxBase::getBounds()
+ throw ( uno::RuntimeException )
+{
+ return AWTRectangle( getBoundingBox() );
+}
+
+awt::Point SAL_CALL AccessibleBrowseBoxBase::getLocation()
+ throw ( uno::RuntimeException )
+{
+ return AWTPoint( getBoundingBox().TopLeft() );
+}
+
+awt::Point SAL_CALL AccessibleBrowseBoxBase::getLocationOnScreen()
+ throw ( uno::RuntimeException )
+{
+ return AWTPoint( getBoundingBoxOnScreen().TopLeft() );
+}
+
+awt::Size SAL_CALL AccessibleBrowseBoxBase::getSize()
+ throw ( uno::RuntimeException )
+{
+ return AWTSize( getBoundingBox().GetSize() );
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxBase::isShowing()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implIsShowing();
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxBase::isVisible()
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessibleStateSet > xStateSet = getAccessibleStateSet();
+ return xStateSet.is() ?
+ xStateSet->contains( AccessibleStateType::VISIBLE ) : sal_False;
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxBase::isFocusTraversable()
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessibleStateSet > xStateSet = getAccessibleStateSet();
+ return xStateSet.is() ?
+ xStateSet->contains( AccessibleStateType::FOCUSABLE ) : sal_False;
+}
+
+void SAL_CALL AccessibleBrowseBoxBase::focusGained( const ::com::sun::star::awt::FocusEvent& ) throw (::com::sun::star::uno::RuntimeException)
+{
+ com::sun::star::uno::Any aFocused;
+ com::sun::star::uno::Any aEmpty;
+ aFocused <<= FOCUSED;
+
+ commitEvent(AccessibleEventId::STATE_CHANGED,aFocused,aEmpty);
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL AccessibleBrowseBoxBase::focusLost( const ::com::sun::star::awt::FocusEvent& ) throw (::com::sun::star::uno::RuntimeException)
+{
+ com::sun::star::uno::Any aFocused;
+ com::sun::star::uno::Any aEmpty;
+ aFocused <<= FOCUSED;
+
+ commitEvent(AccessibleEventId::STATE_CHANGED,aEmpty,aFocused);
+}
+// XAccessibleEventBroadcaster ------------------------------------------------
+
+void SAL_CALL AccessibleBrowseBoxBase::addEventListener(
+ const Reference< XAccessibleEventListener>& _rxListener )
+ throw ( uno::RuntimeException )
+{
+ if ( _rxListener.is() )
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ if ( !getClientId( ) )
+ setClientId( AccessibleEventNotifier::registerClient( ) );
+
+ AccessibleEventNotifier::addEventListener( getClientId( ), _rxListener );
+ }
+}
+
+void SAL_CALL AccessibleBrowseBoxBase::removeEventListener(
+ const Reference< XAccessibleEventListener>& _rxListener )
+ throw ( uno::RuntimeException )
+{
+ if( _rxListener.is() && getClientId( ) )
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( getClientId( ), _rxListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+
+ AccessibleEventNotifier::TClientId nId( getClientId( ) );
+ setClientId( 0 );
+ AccessibleEventNotifier::revokeClient( nId );
+ }
+ }
+}
+
+// XTypeProvider --------------------------------------------------------------
+
+Sequence< sal_Int8 > SAL_CALL AccessibleBrowseBoxBase::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// XServiceInfo ---------------------------------------------------------------
+
+sal_Bool SAL_CALL AccessibleBrowseBoxBase::supportsService(
+ const OUString& rServiceName )
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ Sequence< OUString > aSupportedServices( getSupportedServiceNames() );
+ const OUString* pArrBegin = aSupportedServices.getConstArray();
+ const OUString* pArrEnd = pArrBegin + aSupportedServices.getLength();
+ const OUString* pString = pArrBegin;
+
+ for( ; ( pString != pArrEnd ) && ( rServiceName != *pString ); ++pString )
+ ;
+
+ return pString != pArrEnd;
+}
+
+Sequence< OUString > SAL_CALL AccessibleBrowseBoxBase::getSupportedServiceNames()
+ throw ( uno::RuntimeException )
+{
+ const OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleContext" ) );
+ return Sequence< OUString >( &aServiceName, 1 );
+}
+
+// other public methods -------------------------------------------------------
+
+void AccessibleBrowseBoxBase::setAccessibleName( const OUString& rName )
+{
+ ::osl::ClearableMutexGuard aGuard( getOslMutex() );
+ Any aOld;
+ aOld <<= maName;
+ maName = rName;
+
+ aGuard.clear();
+
+ commitEvent(
+ AccessibleEventId::NAME_CHANGED,
+ uno::makeAny( maName ),
+ aOld );
+}
+
+void AccessibleBrowseBoxBase::setAccessibleDescription( const OUString& rDescription )
+{
+ ::osl::ClearableMutexGuard aGuard( getOslMutex() );
+ Any aOld;
+ aOld <<= maDescription;
+ maDescription = rDescription;
+
+ aGuard.clear();
+
+ commitEvent(
+ AccessibleEventId::DESCRIPTION_CHANGED,
+ uno::makeAny( maDescription ),
+ aOld );
+}
+
+// internal virtual methods ---------------------------------------------------
+
+sal_Bool AccessibleBrowseBoxBase::implIsShowing()
+{
+ sal_Bool bShowing = sal_False;
+ if( mxParent.is() )
+ {
+ Reference< XAccessibleComponent >
+ xParentComp( mxParent->getAccessibleContext(), uno::UNO_QUERY );
+ if( xParentComp.is() )
+ bShowing = implGetBoundingBox().IsOver(
+ VCLRectangle( xParentComp->getBounds() ) );
+ }
+ return bShowing;
+}
+
+::utl::AccessibleStateSetHelper* AccessibleBrowseBoxBase::implCreateStateSetHelper()
+{
+ ::utl::AccessibleStateSetHelper*
+ pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with mxParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ // BrowseBox fills StateSet with states depending on object type
+ mpBrowseBox->FillAccessibleStateSet( *pStateSetHelper, getType() );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+}
+
+// internal helper methods ----------------------------------------------------
+
+sal_Bool AccessibleBrowseBoxBase::isAlive() const
+{
+ return !rBHelper.bDisposed && !rBHelper.bInDispose && mpBrowseBox;
+}
+
+void AccessibleBrowseBoxBase::ensureIsAlive() const
+ throw ( lang::DisposedException )
+{
+ if( !isAlive() )
+ throw lang::DisposedException();
+}
+
+Rectangle AccessibleBrowseBoxBase::getBoundingBox()
+ throw ( lang::DisposedException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ Rectangle aRect = implGetBoundingBox();
+ if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
+ {
+ DBG_ERRORFILE( "shit" );
+ }
+ return aRect;
+}
+
+Rectangle AccessibleBrowseBoxBase::getBoundingBoxOnScreen()
+ throw ( lang::DisposedException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ Rectangle aRect = implGetBoundingBoxOnScreen();
+ if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
+ {
+ DBG_ERRORFILE( "shit" );
+ }
+ return aRect;
+}
+
+void AccessibleBrowseBoxBase::commitEvent(
+ sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
+{
+ ::osl::ClearableMutexGuard aGuard( getOslMutex() );
+ if ( !getClientId( ) )
+ // if we don't have a client id for the notifier, then we don't have listeners, then
+ // we don't need to notify anything
+ return;
+
+ // build an event object
+ AccessibleEventObject aEvent;
+ aEvent.Source = *this;
+ aEvent.EventId = _nEventId;
+ aEvent.OldValue = _rOldValue;
+ aEvent.NewValue = _rNewValue;
+
+ // let the notifier handle this event
+
+ AccessibleEventNotifier::addEvent( getClientId( ), aEvent );
+}
+// -----------------------------------------------------------------------------
+
+void AccessibleBrowseBoxBase::implCreateUuid( Sequence< sal_Int8 >& rId )
+{
+ if( !rId.hasElements() )
+ {
+ rId.realloc( 16 );
+ rtl_createUuid( reinterpret_cast< sal_uInt8* >( rId.getArray() ), 0, sal_True );
+ }
+}
+// -----------------------------------------------------------------------------
+sal_Int16 SAL_CALL AccessibleBrowseBoxBase::getAccessibleRole()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ sal_Int16 nRole = AccessibleRole::UNKNOWN;
+ switch ( meObjType )
+ {
+ case BBTYPE_ROWHEADERCELL:
+ nRole = AccessibleRole::ROW_HEADER;
+ break;
+ case BBTYPE_COLUMNHEADERCELL:
+ nRole = AccessibleRole::COLUMN_HEADER;
+ break;
+ case BBTYPE_COLUMNHEADERBAR:
+ case BBTYPE_ROWHEADERBAR:
+ case BBTYPE_TABLE:
+ nRole = AccessibleRole::TABLE;
+ break;
+ case BBTYPE_TABLECELL:
+ nRole = AccessibleRole::TABLE_CELL;
+ break;
+ case BBTYPE_BROWSEBOX:
+ nRole = AccessibleRole::PANEL;
+ break;
+ case BBTYPE_CHECKBOXCELL:
+ nRole = AccessibleRole::CHECK_BOX;
+ break;
+ }
+ return nRole;
+}
+// -----------------------------------------------------------------------------
+Any SAL_CALL AccessibleBrowseBoxBase::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ return Any();
+}
+// -----------------------------------------------------------------------------
+Reference<XAccessible > SAL_CALL AccessibleBrowseBoxBase::getAccessibleAtPoint( const ::com::sun::star::awt::Point& )
+ throw ( uno::RuntimeException )
+{
+ return NULL;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL AccessibleBrowseBoxBase::disposing( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException)
+{
+ m_xFocusWindow = NULL;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getForeground( ) throw (::com::sun::star::uno::RuntimeException)
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ sal_Int32 nColor = 0;
+ Window* pInst = mpBrowseBox->GetWindowInstance();
+ if ( pInst )
+ {
+ if ( pInst->IsControlForeground() )
+ nColor = pInst->GetControlForeground().GetColor();
+ else
+ {
+ Font aFont;
+ if ( pInst->IsControlFont() )
+ aFont = pInst->GetControlFont();
+ else
+ aFont = pInst->GetFont();
+ nColor = aFont.GetColor().GetColor();
+ }
+ }
+
+ return nColor;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleBrowseBoxBase::getBackground( ) throw (::com::sun::star::uno::RuntimeException)
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ sal_Int32 nColor = 0;
+ Window* pInst = mpBrowseBox->GetWindowInstance();
+ if ( pInst )
+ {
+ if ( pInst->IsControlBackground() )
+ nColor = pInst->GetControlBackground().GetColor();
+ else
+ nColor = pInst->GetBackground().GetColor().GetColor();
+ }
+
+ return nColor;
+}
+
+// ============================================================================
+DBG_NAME( BrowseBoxAccessibleElement )
+
+// XInterface -----------------------------------------------------------------
+IMPLEMENT_FORWARD_XINTERFACE2( BrowseBoxAccessibleElement, AccessibleBrowseBoxBase, BrowseBoxAccessibleElement_Base )
+
+// XTypeProvider --------------------------------------------------------------
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( BrowseBoxAccessibleElement, AccessibleBrowseBoxBase, BrowseBoxAccessibleElement_Base )
+
+// XAccessible ----------------------------------------------------------------
+
+Reference< XAccessibleContext > SAL_CALL BrowseBoxAccessibleElement::getAccessibleContext() throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return this;
+}
+
+// ----------------------------------------------------------------------------
+BrowseBoxAccessibleElement::BrowseBoxAccessibleElement( const Reference< XAccessible >& rxParent, IAccessibleTableProvider& rBrowseBox,
+ const Reference< awt::XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType eObjType )
+ :AccessibleBrowseBoxBase( rxParent, rBrowseBox, _xFocusWindow, eObjType )
+{
+ DBG_CTOR( BrowseBoxAccessibleElement, NULL );
+}
+
+// ----------------------------------------------------------------------------
+BrowseBoxAccessibleElement::BrowseBoxAccessibleElement( const Reference< XAccessible >& rxParent, IAccessibleTableProvider& rBrowseBox,
+ const Reference< awt::XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType eObjType,
+ const ::rtl::OUString& rName, const ::rtl::OUString& rDescription )
+ :AccessibleBrowseBoxBase( rxParent, rBrowseBox, _xFocusWindow, eObjType, rName, rDescription )
+{
+ DBG_CTOR( BrowseBoxAccessibleElement, NULL );
+}
+
+// ----------------------------------------------------------------------------
+BrowseBoxAccessibleElement::~BrowseBoxAccessibleElement( )
+{
+ DBG_DTOR( BrowseBoxAccessibleElement, NULL );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
new file mode 100644
index 000000000000..560878b544f3
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxCheckBoxCell.cxx
@@ -0,0 +1,172 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <svtools/accessibletableprovider.hxx>
+
+namespace accessibility
+{
+ using namespace com::sun::star::accessibility;
+ using namespace com::sun::star::uno;
+ using namespace com::sun::star::accessibility::AccessibleEventId;
+ using namespace ::svt;
+
+ AccessibleCheckBoxCell::AccessibleCheckBoxCell(const Reference<XAccessible >& _rxParent,
+ IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos
+ ,const TriState& _eState,
+ sal_Bool _bEnabled,
+ sal_Bool _bIsTriState)
+ :AccessibleBrowseBoxCell(_rxParent, _rBrowseBox, _xFocusWindow, _nRowPos, _nColPos, BBTYPE_CHECKBOXCELL)
+ ,m_eState(_eState)
+ ,m_bEnabled(_bEnabled)
+ ,m_bIsTriState(_bIsTriState)
+ {
+ }
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2( AccessibleCheckBoxCell, AccessibleBrowseBoxCell, AccessibleCheckBoxCell_BASE )
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleCheckBoxCell, AccessibleBrowseBoxCell, AccessibleCheckBoxCell_BASE )
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleCheckBoxCell::getAccessibleContext( ) throw (RuntimeException)
+ {
+ ensureIsAlive();
+ return this;
+ }
+ // -----------------------------------------------------------------------------
+ ::utl::AccessibleStateSetHelper* AccessibleCheckBoxCell::implCreateStateSetHelper()
+ {
+ ::utl::AccessibleStateSetHelper* pStateSetHelper =
+ AccessibleBrowseBoxCell::implCreateStateSetHelper();
+ if( isAlive() )
+ {
+ mpBrowseBox->FillAccessibleStateSetForCell(
+ *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ if ( m_eState == STATE_CHECK )
+ pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ }
+ return pStateSetHelper;
+ }
+ // -----------------------------------------------------------------------------
+ // -----------------------------------------------------------------------------
+ // XAccessibleValue
+ // -----------------------------------------------------------------------------
+
+ Any SAL_CALL AccessibleCheckBoxCell::getCurrentValue( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ sal_Int32 nValue = 0;
+ switch( m_eState )
+ {
+ case STATE_NOCHECK:
+ nValue = 0;
+ break;
+ case STATE_CHECK:
+ nValue = 1;
+ break;
+ case STATE_DONTKNOW:
+ nValue = 2;
+ break;
+ }
+ return makeAny(nValue);
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool SAL_CALL AccessibleCheckBoxCell::setCurrentValue( const Any& ) throw (RuntimeException)
+ {
+ return sal_False;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Any SAL_CALL AccessibleCheckBoxCell::getMaximumValue( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ Any aValue;
+
+ if ( m_bIsTriState )
+ aValue <<= (sal_Int32) 2;
+ else
+ aValue <<= (sal_Int32) 1;
+
+ return aValue;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Any SAL_CALL AccessibleCheckBoxCell::getMinimumValue( ) throw (RuntimeException)
+ {
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ sal_Int32 SAL_CALL AccessibleCheckBoxCell::getAccessibleChildCount( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ return 0;
+ }
+ // -----------------------------------------------------------------------------
+ ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > SAL_CALL AccessibleCheckBoxCell::getAccessibleChild( sal_Int32 ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleCheckBoxCell::getImplementationName() throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.TableCheckBoxCell" ) );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleCheckBoxCell::getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ return ( getRowPos() * mpBrowseBox->GetColumnCount() ) + getColumnPos();
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleCheckBoxCell::SetChecked( sal_Bool _bChecked )
+ {
+ m_eState = _bChecked ? STATE_CHECK : STATE_NOCHECK;
+ Any aOldValue, aNewValue;
+ if ( _bChecked )
+ aNewValue <<= AccessibleStateType::CHECKED;
+ else
+ aOldValue <<= AccessibleStateType::CHECKED;
+ commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ }
+}
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
new file mode 100644
index 000000000000..e801a6cf2c20
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderBar.cxx
@@ -0,0 +1,419 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx"
+#include <svtools/accessibletableprovider.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleBrowseBoxHeaderBar )
+
+AccessibleBrowseBoxHeaderBar::AccessibleBrowseBoxHeaderBar(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox,
+ AccessibleBrowseBoxObjType eObjType ) :
+ AccessibleBrowseBoxTableBase( rxParent, rBrowseBox,eObjType )
+{
+ DBG_CTOR( AccessibleBrowseBoxHeaderBar, NULL );
+
+ DBG_ASSERT( isRowBar() || isColumnBar(),
+ "accessibility/extended/AccessibleBrowseBoxHeaderBar - invalid object type" );
+}
+
+AccessibleBrowseBoxHeaderBar::~AccessibleBrowseBoxHeaderBar()
+{
+ DBG_DTOR( AccessibleBrowseBoxHeaderBar, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBoxHeaderBar::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidHeaderIndex( nChildIndex );
+ return implGetChild( nChildIndex, implToVCLColumnPos( nChildIndex ) );
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ return isRowBar() ? BBINDEX_ROWHEADERBAR : BBINDEX_COLUMNHEADERBAR;
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBoxHeaderBar::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ sal_Int32 nRow = 0;
+ sal_uInt16 nColumnPos = 0;
+ sal_Bool bConverted = isRowBar() ?
+ mpBrowseBox->ConvertPointToRowHeader( nRow, VCLPoint( rPoint ) ) :
+ mpBrowseBox->ConvertPointToColumnHeader( nColumnPos, VCLPoint( rPoint ) );
+
+ return bConverted ? implGetChild( nRow, nColumnPos ) : Reference< XAccessible >();
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ // focus on header not supported
+}
+
+Any SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any(); // no special key bindings for header
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return OUString(); // no headers in headers
+}
+
+OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return OUString(); // no headers in headers
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleRowHeaders()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // no headers in headers
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleColumnHeaders()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // no headers in headers
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleRows()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ // row of column header bar not selectable
+ if( isRowBar() )
+ implGetSelectedRows( aSelSeq );
+ return aSelSeq;
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleColumns()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ // column of row header bar ("handle column") not selectable
+ if( isColumnBar() )
+ implGetSelectedColumns( aSelSeq );
+ return aSelSeq;
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return isRowBar() ? implIsRowSelected( nRow ) : sal_False;
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return isColumnBar() ? implIsColumnSelected( nColumn ) : sal_False;
+}
+
+Reference< XAccessible > SAL_CALL AccessibleBrowseBoxHeaderBar::getAccessibleCellAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implGetChild( nRow, implToVCLColumnPos( nColumn ) );
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleSelected(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return isRowBar() ? implIsRowSelected( nRow ) : implIsColumnSelected( nColumn );
+}
+
+// XAccessibleSelection -------------------------------------------------------
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidHeaderIndex( nChildIndex );
+ if( isRowBar() )
+ implSelectRow( nChildIndex, sal_True );
+ else
+ implSelectColumn( implToVCLColumnPos( nChildIndex ), sal_True );
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxHeaderBar::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ // using interface methods - no mutex
+ return isRowBar() ?
+ isAccessibleRowSelected( nChildIndex ) :
+ isAccessibleColumnSelected( nChildIndex );
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::clearAccessibleSelection()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ mpBrowseBox->SetNoSelection();
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::selectAllAccessibleChildren()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ // no multiselection of columns possible
+ if( isRowBar() )
+ mpBrowseBox->SelectAll();
+ else
+ implSelectColumn( implToVCLColumnPos( 0 ), sal_True );
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return isRowBar() ? implGetSelectedRowCount() : implGetSelectedColumnCount();
+}
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBoxHeaderBar::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ // method may throw lang::IndexOutOfBoundsException
+ sal_Int32 nIndex = implGetChildIndexFromSelectedIndex( nSelectedChildIndex );
+ return implGetChild( nIndex, implToVCLColumnPos( nIndex ) );
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::deselectAccessibleChild(
+ sal_Int32 nSelectedChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ // method may throw lang::IndexOutOfBoundsException
+ if ( isAccessibleChildSelected(nSelectedChildIndex) )
+ {
+ if( isRowBar() )
+ implSelectRow( nSelectedChildIndex, sal_False );
+ else
+ implSelectColumn( implToVCLColumnPos( nSelectedChildIndex ), sal_False );
+ }
+}
+
+// XInterface -----------------------------------------------------------------
+
+Any SAL_CALL AccessibleBrowseBoxHeaderBar::queryInterface( const uno::Type& rType )
+ throw ( uno::RuntimeException )
+{
+ Any aAny( AccessibleBrowseBoxTableBase::queryInterface( rType ) );
+ return aAny.hasValue() ?
+ aAny : AccessibleBrowseBoxHeaderBarImplHelper::queryInterface( rType );
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::acquire() throw ()
+{
+ AccessibleBrowseBoxTableBase::acquire();
+}
+
+void SAL_CALL AccessibleBrowseBoxHeaderBar::release() throw ()
+{
+ AccessibleBrowseBoxTableBase::release();
+}
+
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleBrowseBoxHeaderBar::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderBar" ) );
+}
+
+Sequence< sal_Int8 > SAL_CALL AccessibleBrowseBoxHeaderBar::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleBrowseBoxHeaderBar::implGetBoundingBox()
+{
+ return mpBrowseBox->calcHeaderRect(isColumnBar(),FALSE);
+}
+
+Rectangle AccessibleBrowseBoxHeaderBar::implGetBoundingBoxOnScreen()
+{
+ return mpBrowseBox->calcHeaderRect(isColumnBar(),TRUE);
+}
+
+sal_Int32 AccessibleBrowseBoxHeaderBar::implGetRowCount() const
+{
+ // column header bar: only 1 row
+ return isRowBar() ? AccessibleBrowseBoxTableBase::implGetRowCount() : 1;
+}
+
+sal_Int32 AccessibleBrowseBoxHeaderBar::implGetColumnCount() const
+{
+ // row header bar ("handle column"): only 1 column
+ return isColumnBar() ? AccessibleBrowseBoxTableBase::implGetColumnCount() : 1;
+}
+
+// internal helper methods ----------------------------------------------------
+
+Reference< XAccessible > AccessibleBrowseBoxHeaderBar::implGetChild(
+ sal_Int32 nRow, sal_uInt16 nColumnPos )
+{
+ return isRowBar() ?
+ mpBrowseBox->CreateAccessibleRowHeader( nRow ) :
+ mpBrowseBox->CreateAccessibleColumnHeader( nColumnPos );
+}
+
+sal_Int32 AccessibleBrowseBoxHeaderBar::implGetChildIndexFromSelectedIndex(
+ sal_Int32 nSelectedChildIndex )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ Sequence< sal_Int32 > aSelSeq;
+ if( isRowBar() )
+ implGetSelectedRows( aSelSeq );
+ else
+ implGetSelectedColumns( aSelSeq );
+
+ if( (nSelectedChildIndex < 0) || (nSelectedChildIndex >= aSelSeq.getLength()) )
+ throw lang::IndexOutOfBoundsException();
+
+ return aSelSeq[ nSelectedChildIndex ];
+}
+
+void AccessibleBrowseBoxHeaderBar::ensureIsValidHeaderIndex( sal_Int32 nIndex )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( isRowBar() )
+ ensureIsValidRow( nIndex );
+ else
+ ensureIsValidColumn( nIndex );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
new file mode 100644
index 000000000000..9e9f63ec72c8
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxHeaderCell.cxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include "accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx"
+#include <svtools/accessibletableprovider.hxx>
+#include "accessibility/extended/AccessibleBrowseBox.hxx"
+
+namespace accessibility
+{
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::uno;
+ using namespace ::svt;
+
+AccessibleBrowseBoxHeaderCell::AccessibleBrowseBoxHeaderCell(sal_Int32 _nColumnRowId,
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ AccessibleBrowseBoxObjType eObjType)
+: BrowseBoxAccessibleElement(rxParent,
+ rBrowseBox,
+ _xFocusWindow,
+ eObjType,
+ rBrowseBox.GetAccessibleObjectName( eObjType ,_nColumnRowId),
+ rBrowseBox.GetAccessibleObjectDescription( eObjType ,_nColumnRowId))
+, m_nColumnRowId(_nColumnRowId)
+{
+}
+/** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+*/
+::utl::AccessibleStateSetHelper* AccessibleBrowseBoxHeaderCell::implCreateStateSetHelper()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ::utl::AccessibleStateSetHelper*
+ pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with mxParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+
+ BBSolarGuard aSolarGuard;
+ pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+
+ sal_Bool bSelected = isRowBarCell() ? mpBrowseBox->IsRowSelected(m_nColumnRowId) : mpBrowseBox->IsColumnSelected(m_nColumnRowId);
+ if ( bSelected )
+ pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+}
+// -----------------------------------------------------------------------------
+/** @return
+ The count of visible children.
+*/
+sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChildCount()
+ throw ( RuntimeException )
+{
+ return 0;
+}
+// -----------------------------------------------------------------------------
+
+/** @return
+ The XAccessible interface of the specified child.
+*/
+Reference<XAccessible > SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleChild( sal_Int32 )
+ throw ( IndexOutOfBoundsException,RuntimeException )
+{
+ throw IndexOutOfBoundsException();
+}
+// -----------------------------------------------------------------------------
+
+/** Grabs the focus to the column header. */
+void SAL_CALL AccessibleBrowseBoxHeaderCell::grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ if ( isRowBarCell() )
+ mpBrowseBox->SelectRow(m_nColumnRowId);
+ else
+ mpBrowseBox->SelectColumn(static_cast<sal_uInt16>(m_nColumnRowId)); //!!!
+}
+// -----------------------------------------------------------------------------
+/** @return
+ The name of this class.
+*/
+::rtl::OUString SAL_CALL AccessibleBrowseBoxHeaderCell::getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException )
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.AccessibleBrowseBoxHeaderCell" ) );
+}
+// -----------------------------------------------------------------------------
+namespace
+{
+ Rectangle getRectangle(IAccessibleTableProvider* _pBrowseBox,sal_Int32 _nRowColIndex, BOOL _bOnScreen,BOOL _bRowBar)
+ {
+ sal_Int32 nRow = 0;
+ sal_uInt16 nCol = (sal_uInt16)_nRowColIndex;
+ if ( _bRowBar )
+ {
+ nRow = _nRowColIndex + 1;
+ nCol = 0;
+ }
+
+ Rectangle aRet(_pBrowseBox->GetFieldRectPixelAbs( nRow , nCol, TRUE, _bOnScreen));
+ return Rectangle(aRet.TopLeft() - Point(0,aRet.GetHeight()),aRet.GetSize());
+ }
+}
+
+Rectangle AccessibleBrowseBoxHeaderCell::implGetBoundingBox()
+{
+ return getRectangle(mpBrowseBox,m_nColumnRowId,FALSE,isRowBarCell());
+}
+// -----------------------------------------------------------------------------
+
+Rectangle AccessibleBrowseBoxHeaderCell::implGetBoundingBoxOnScreen()
+{
+ return getRectangle(mpBrowseBox,m_nColumnRowId,TRUE,isRowBarCell());
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleBrowseBoxHeaderCell::getAccessibleIndexInParent()
+ throw ( RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ sal_Int32 nIndex = m_nColumnRowId;
+ if ( mpBrowseBox->HasRowHeader() )
+ --nIndex;
+ return nIndex;
+}
+// -----------------------------------------------------------------------------
+} // namespace accessibility
+// -----------------------------------------------------------------------------
+
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTable.cxx b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
new file mode 100644
index 000000000000..00a095a104d7
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxTable.cxx
@@ -0,0 +1,278 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleBrowseBoxTable.hxx"
+#include <svtools/accessibletableprovider.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleBrowseBoxTable )
+
+AccessibleBrowseBoxTable::AccessibleBrowseBoxTable(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox ) :
+ AccessibleBrowseBoxTableBase( rxParent, rBrowseBox, BBTYPE_TABLE )
+{
+ DBG_CTOR( AccessibleBrowseBoxTable, NULL );
+}
+
+AccessibleBrowseBoxTable::~AccessibleBrowseBoxTable()
+{
+ DBG_DTOR( AccessibleBrowseBoxTable, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBoxTable::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return mpBrowseBox->CreateAccessibleCell(
+ implGetRow( nChildIndex ), (sal_Int16)implGetColumn( nChildIndex ) );
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTable::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return BBINDEX_TABLE;
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleBrowseBoxTable::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 nRow = 0;
+ sal_uInt16 nColumnPos = 0;
+ if( mpBrowseBox->ConvertPointToCellAddress( nRow, nColumnPos, VCLPoint( rPoint ) ) )
+ xChild = mpBrowseBox->CreateAccessibleCell( nRow, nColumnPos );
+
+ return xChild;
+}
+
+void SAL_CALL AccessibleBrowseBoxTable::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ mpBrowseBox->GrabTableFocus();
+}
+
+Any SAL_CALL AccessibleBrowseBoxTable::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any(); // no special key bindings for data table
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+OUString SAL_CALL AccessibleBrowseBoxTable::getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return mpBrowseBox->GetRowDescription( nRow );
+}
+
+OUString SAL_CALL AccessibleBrowseBoxTable::getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return mpBrowseBox->GetColumnDescription( (sal_uInt16)nColumn );
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxTable::getAccessibleRowHeaders()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetHeaderBar( BBINDEX_ROWHEADERBAR );
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleBrowseBoxTable::getAccessibleColumnHeaders()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetHeaderBar( BBINDEX_COLUMNHEADERBAR );
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleRows()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ implGetSelectedRows( aSelSeq );
+ return aSelSeq;
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleBrowseBoxTable::getSelectedAccessibleColumns()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ implGetSelectedColumns( aSelSeq );
+ return aSelSeq;
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return implIsRowSelected( nRow );
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return implIsColumnSelected( nColumn );
+}
+
+Reference< XAccessible > SAL_CALL AccessibleBrowseBoxTable::getAccessibleCellAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return mpBrowseBox->CreateAccessibleCell( nRow, (sal_Int16)nColumn );
+}
+
+sal_Bool SAL_CALL AccessibleBrowseBoxTable::isAccessibleSelected(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implIsRowSelected( nRow ) || implIsColumnSelected( nColumn );
+}
+
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleBrowseBoxTable::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.AccessibleBrowseBoxTable" ) );
+}
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleBrowseBoxTable::implGetBoundingBox()
+{
+ return mpBrowseBox->calcTableRect(FALSE);
+}
+
+Rectangle AccessibleBrowseBoxTable::implGetBoundingBoxOnScreen()
+{
+ return mpBrowseBox->calcTableRect();
+}
+
+// internal helper methods ----------------------------------------------------
+
+Reference< XAccessibleTable > AccessibleBrowseBoxTable::implGetHeaderBar(
+ sal_Int32 nChildIndex )
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessible > xRet;
+ Reference< XAccessibleContext > xContext( mxParent, uno::UNO_QUERY );
+ if( xContext.is() )
+ {
+ try
+ {
+ xRet = xContext->getAccessibleChild( nChildIndex );
+ }
+ catch( lang::IndexOutOfBoundsException& )
+ {
+ DBG_ERROR( "implGetHeaderBar - wrong child index" );
+ }
+ // RuntimeException goes to caller
+ }
+ return Reference< XAccessibleTable >( xRet, uno::UNO_QUERY );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
new file mode 100644
index 000000000000..7a7aed644f5c
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableBase.cxx
@@ -0,0 +1,355 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleBrowseBoxTableBase.hxx"
+#include <svtools/accessibletableprovider.hxx>
+#include <tools/multisel.hxx>
+#include <comphelper/sequence.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleBrowseBoxTableBase )
+
+AccessibleBrowseBoxTableBase::AccessibleBrowseBoxTableBase(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTableProvider& rBrowseBox,
+ AccessibleBrowseBoxObjType eObjType ) :
+ BrowseBoxAccessibleElement( rxParent, rBrowseBox,NULL, eObjType )
+{
+ DBG_CTOR( AccessibleBrowseBoxTableBase, NULL );
+}
+
+AccessibleBrowseBoxTableBase::~AccessibleBrowseBoxTableBase()
+{
+ DBG_DTOR( AccessibleBrowseBoxTableBase, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetChildCount();
+}
+
+sal_Int16 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRole()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return AccessibleRole::TABLE;
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRowCount()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetRowCount();
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumnCount()
+ throw ( uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetColumnCount();
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRowExtentAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return 1; // merged cells not supported
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumnExtentAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return 1; // merged cells not supported
+}
+
+Reference< XAccessible > SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleCaption()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // not supported
+}
+
+Reference< XAccessible > SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleSummary()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // not supported
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleIndex(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implGetChildIndex( nRow, nColumn );
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleRow( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return implGetRow( nChildIndex );
+}
+
+sal_Int32 SAL_CALL AccessibleBrowseBoxTableBase::getAccessibleColumn( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return implGetColumn( nChildIndex );
+}
+
+// XInterface -----------------------------------------------------------------
+
+Any SAL_CALL AccessibleBrowseBoxTableBase::queryInterface( const uno::Type& rType )
+ throw ( uno::RuntimeException )
+{
+ Any aAny( BrowseBoxAccessibleElement::queryInterface( rType ) );
+ return aAny.hasValue() ?
+ aAny : AccessibleBrowseBoxTableImplHelper::queryInterface( rType );
+}
+
+void SAL_CALL AccessibleBrowseBoxTableBase::acquire() throw ()
+{
+ BrowseBoxAccessibleElement::acquire();
+}
+
+void SAL_CALL AccessibleBrowseBoxTableBase::release() throw ()
+{
+ BrowseBoxAccessibleElement::release();
+}
+
+// XTypeProvider --------------------------------------------------------------
+
+Sequence< uno::Type > SAL_CALL AccessibleBrowseBoxTableBase::getTypes()
+ throw ( uno::RuntimeException )
+{
+ return ::comphelper::concatSequences(
+ BrowseBoxAccessibleElement::getTypes(),
+ AccessibleBrowseBoxTableImplHelper::getTypes() );
+}
+
+Sequence< sal_Int8 > SAL_CALL AccessibleBrowseBoxTableBase::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// internal virtual methods ---------------------------------------------------
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetRowCount() const
+{
+ return mpBrowseBox->GetRowCount();
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetColumnCount() const
+{
+ sal_uInt16 nColumns = mpBrowseBox->GetColumnCount();
+ // do not count the "handle column"
+ if( nColumns && implHasHandleColumn() )
+ --nColumns;
+ return nColumns;
+}
+
+// internal helper methods ----------------------------------------------------
+
+sal_Bool AccessibleBrowseBoxTableBase::implHasHandleColumn() const
+{
+ return mpBrowseBox->HasRowHeader();
+}
+
+sal_uInt16 AccessibleBrowseBoxTableBase::implToVCLColumnPos( sal_Int32 nColumn ) const
+{
+ sal_uInt16 nVCLPos = 0;
+ if( (0 <= nColumn) && (nColumn < implGetColumnCount()) )
+ {
+ // regard "handle column"
+ if( implHasHandleColumn() )
+ ++nColumn;
+ nVCLPos = static_cast< sal_uInt16 >( nColumn );
+ }
+ return nVCLPos;
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetChildCount() const
+{
+ return implGetRowCount() * implGetColumnCount();
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetRow( sal_Int32 nChildIndex ) const
+{
+ sal_Int32 nColumns = implGetColumnCount();
+ return nColumns ? (nChildIndex / nColumns) : 0;
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetColumn( sal_Int32 nChildIndex ) const
+{
+ sal_Int32 nColumns = implGetColumnCount();
+ return nColumns ? (nChildIndex % nColumns) : 0;
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetChildIndex(
+ sal_Int32 nRow, sal_Int32 nColumn ) const
+{
+ return nRow * implGetColumnCount() + nColumn;
+}
+
+sal_Bool AccessibleBrowseBoxTableBase::implIsRowSelected( sal_Int32 nRow ) const
+{
+ return mpBrowseBox->IsRowSelected( nRow );
+}
+
+sal_Bool AccessibleBrowseBoxTableBase::implIsColumnSelected( sal_Int32 nColumn ) const
+{
+ if( implHasHandleColumn() )
+ --nColumn;
+ return mpBrowseBox->IsColumnSelected( nColumn );
+}
+
+void AccessibleBrowseBoxTableBase::implSelectRow( sal_Int32 nRow, sal_Bool bSelect )
+{
+ mpBrowseBox->SelectRow( nRow, bSelect, sal_True );
+}
+
+void AccessibleBrowseBoxTableBase::implSelectColumn( sal_Int32 nColumnPos, sal_Bool bSelect )
+{
+ mpBrowseBox->SelectColumn( (sal_uInt16)nColumnPos, bSelect );
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetSelectedRowCount() const
+{
+ return mpBrowseBox->GetSelectedRowCount();
+}
+
+sal_Int32 AccessibleBrowseBoxTableBase::implGetSelectedColumnCount() const
+{
+ return mpBrowseBox->GetSelectedColumnCount();
+}
+
+void AccessibleBrowseBoxTableBase::implGetSelectedRows( Sequence< sal_Int32 >& rSeq )
+{
+ mpBrowseBox->GetAllSelectedRows( rSeq );
+}
+
+void AccessibleBrowseBoxTableBase::implGetSelectedColumns( Sequence< sal_Int32 >& rSeq )
+{
+ mpBrowseBox->GetAllSelectedColumns( rSeq );
+}
+
+void AccessibleBrowseBoxTableBase::ensureIsValidRow( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nRow >= implGetRowCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "row index is invalid" ) ), *this );
+}
+
+void AccessibleBrowseBoxTableBase::ensureIsValidColumn( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nColumn >= implGetColumnCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("column index is invalid") ), *this );
+}
+
+void AccessibleBrowseBoxTableBase::ensureIsValidAddress(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ ensureIsValidRow( nRow );
+ ensureIsValidColumn( nColumn );
+}
+
+void AccessibleBrowseBoxTableBase::ensureIsValidIndex( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nChildIndex >= implGetChildCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("child index is invalid") ), *this );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
new file mode 100644
index 000000000000..fe79593e5613
--- /dev/null
+++ b/accessibility/source/extended/AccessibleBrowseBoxTableCell.cxx
@@ -0,0 +1,354 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include "accessibility/extended/AccessibleBrowseBoxTableCell.hxx"
+#include <svtools/accessibletableprovider.hxx>
+#include "accessibility/extended/AccessibleBrowseBox.hxx"
+#include <tools/gen.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+
+namespace accessibility
+{
+ namespace
+ {
+ void checkIndex_Impl( sal_Int32 _nIndex, const ::rtl::OUString& _sText ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ if ( _nIndex >= _sText.getLength() )
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+
+ sal_Int32 getIndex_Impl( sal_Int32 _nRow, sal_uInt16 _nColumn, sal_uInt16 _nColumnCount )
+ {
+ return _nRow * _nColumnCount + _nColumn;
+ }
+ }
+ using namespace ::com::sun::star::lang;
+ using namespace utl;
+ using namespace comphelper;
+ using ::rtl::OUString;
+ using ::accessibility::AccessibleBrowseBox;
+ using namespace ::com::sun::star::uno;
+ using ::com::sun::star::accessibility::XAccessible;
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::svt;
+
+
+ // implementation of a table cell
+ ::rtl::OUString AccessibleBrowseBoxTableCell::implGetText()
+ {
+ ensureIsAlive();
+ return mpBrowseBox->GetAccessibleCellText( getRowPos(), static_cast< USHORT >( getColumnPos() ) );
+ }
+
+ ::com::sun::star::lang::Locale AccessibleBrowseBoxTableCell::implGetLocale()
+ {
+ ensureIsAlive();
+ return mpBrowseBox->GetAccessible()->getAccessibleContext()->getLocale();
+ }
+
+ void AccessibleBrowseBoxTableCell::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+ {
+ nStartIndex = 0;
+ nEndIndex = 0;
+ }
+
+ AccessibleBrowseBoxTableCell::AccessibleBrowseBoxTableCell(const Reference<XAccessible >& _rxParent,
+ IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ sal_Int32 _nOffset )
+ :AccessibleBrowseBoxCell( _rxParent, _rBrowseBox, _xFocusWindow, _nRowPos, _nColPos )
+ {
+ m_nOffset = ( OFFSET_DEFAULT == _nOffset ) ? (sal_Int32)BBINDEX_FIRSTCONTROL : _nOffset;
+ sal_Int32 nIndex = getIndex_Impl( _nRowPos, _nColPos, _rBrowseBox.GetColumnCount() );
+ setAccessibleName( _rBrowseBox.GetAccessibleObjectName( BBTYPE_TABLECELL, nIndex ) );
+ setAccessibleDescription( _rBrowseBox.GetAccessibleObjectDescription( BBTYPE_TABLECELL, nIndex ) );
+ // Need to register as event listener
+ Reference< XComponent > xComponent(_rxParent, UNO_QUERY);
+ if( xComponent.is() )
+ xComponent->addEventListener(static_cast< XEventListener *> (this));
+ }
+
+ void AccessibleBrowseBoxTableCell::nameChanged( const ::rtl::OUString& rNewName, const ::rtl::OUString& rOldName )
+ {
+ implSetName( rNewName );
+ Any aOldValue, aNewValue;
+ aOldValue <<= rOldName;
+ aNewValue <<= rNewName;
+ commitEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL AccessibleBrowseBoxTableCell::queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ Any aRet = AccessibleBrowseBoxCell::queryInterface(rType);
+ if ( !aRet.hasValue() )
+ aRet = AccessibleTextHelper_BASE::queryInterface(rType);
+ return aRet;
+ }
+
+ /** Aquires the object (calls acquire() on base class). */
+ void SAL_CALL AccessibleBrowseBoxTableCell::acquire() throw ()
+ {
+ AccessibleBrowseBoxCell::acquire();
+ }
+
+ /** Releases the object (calls release() on base class). */
+ void SAL_CALL AccessibleBrowseBoxTableCell::release() throw ()
+ {
+ AccessibleBrowseBoxCell::release();
+ }
+
+ ::com::sun::star::awt::Rectangle SAL_CALL AccessibleBrowseBoxTableCell::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ ::com::sun::star::awt::Rectangle aRect;
+
+ if ( mpBrowseBox )
+ {
+ aRect = AWTRectangle( mpBrowseBox->GetFieldCharacterBounds( getRowPos(), getColumnPos(), nIndex ) );
+ }
+
+ return aRect;
+ }
+
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getIndexAtPoint( const ::com::sun::star::awt::Point& _aPoint ) throw (RuntimeException)
+ {
+ //! TODO CTL bidi
+ // DBG_ASSERT(0,"Need to be done by base class!");
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ return mpBrowseBox->GetFieldIndexAtPoint( getRowPos(), getColumnPos(), VCLPoint( _aPoint ) );
+ }
+
+ /** @return
+ The name of this class.
+ */
+ ::rtl::OUString SAL_CALL AccessibleBrowseBoxTableCell::getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.AccessibleBrowseBoxTableCell" ) );
+ }
+
+ /** @return The count of visible children. */
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return 0;
+ }
+
+ /** @return The XAccessible interface of the specified child. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ AccessibleBrowseBoxTableCell::getAccessibleChild( sal_Int32 )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException )
+ {
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* AccessibleBrowseBoxTableCell::implCreateStateSetHelper()
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ::utl::AccessibleStateSetHelper* pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with mxParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+
+ mpBrowseBox->FillAccessibleStateSetForCell( *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+ }
+
+
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ Reference< XAccessibleContext > SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleContext() throw ( RuntimeException )
+ {
+ ensureIsAlive();
+ return this;
+ }
+
+ // XAccessibleContext -----------------------------------------------------
+
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ return /*BBINDEX_FIRSTCONTROL*/ m_nOffset + ( getRowPos() * mpBrowseBox->GetColumnCount() ) + getColumnPos();
+ }
+
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ return -1;
+ }
+ sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ sal_Unicode SAL_CALL AccessibleBrowseBoxTableCell::getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getCharacter( nIndex );
+ }
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleBrowseBoxTableCell::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >();
+ }
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getCharacterCount( );
+ }
+
+ ::rtl::OUString SAL_CALL AccessibleBrowseBoxTableCell::getSelectedText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectedText( );
+ }
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectionStart( );
+ }
+ sal_Int32 SAL_CALL AccessibleBrowseBoxTableCell::getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectionEnd( );
+ }
+ sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ ::rtl::OUString SAL_CALL AccessibleBrowseBoxTableCell::getText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getText( );
+ }
+ ::rtl::OUString SAL_CALL AccessibleBrowseBoxTableCell::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleBrowseBoxTableCell::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
+ }
+ sal_Bool SAL_CALL AccessibleBrowseBoxTableCell::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ BBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ::rtl::OUString sText = implGetText();
+ checkIndex_Impl( nStartIndex, sText );
+ checkIndex_Impl( nEndIndex, sText );
+
+ //!!! don't know how to put a string into the clipboard
+ return sal_False;
+ }
+ void AccessibleBrowseBoxTableCell::disposing( const EventObject& _rSource ) throw (RuntimeException)
+ {
+ if ( _rSource.Source == mxParent )
+ {
+ dispose();
+ }
+ }
+
+}
diff --git a/accessibility/source/extended/AccessibleGridControl.cxx b/accessibility/source/extended/AccessibleGridControl.cxx
new file mode 100644
index 000000000000..e8111657d7d0
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControl.cxx
@@ -0,0 +1,379 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/AccessibleGridControl.hxx"
+#include "accessibility/extended/AccessibleGridControlTable.hxx"
+#include "accessibility/extended/AccessibleGridControlHeader.hxx"
+#include <svtools/accessibletable.hxx>
+#include <comphelper/types.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+//#include "svtools/table/tablecontrol.hxx"
+
+// ============================================================================
+
+namespace accessibility
+{
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+using namespace ::svt::table;
+
+// ============================================================================
+class AccessibleGridControl_Impl
+{
+public:
+ /// the XAccessible which created the AccessibleGridControl
+ WeakReference< XAccessible > m_aCreator;
+
+ /** The data table child. */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xTable;
+ AccessibleGridControlTable* m_pTable;
+
+ /** The header bar for rows. */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xRowHeaderBar;
+ AccessibleGridControlHeader* m_pRowHeaderBar;
+
+ /** The header bar for columns (first row of the table). */
+ Reference<
+ ::com::sun::star::accessibility::XAccessible > m_xColumnHeaderBar;
+ AccessibleGridControlHeader* m_pColumnHeaderBar;
+};
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleGridControl )
+
+AccessibleGridControl::AccessibleGridControl(
+ const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxCreator,
+ IAccessibleTable& _rTable )
+ : AccessibleGridControlBase( _rxParent, _rTable, TCTYPE_GRIDCONTROL )
+{
+// DBG_CTOR( AccessibleTableControl, NULL );
+ m_pImpl.reset( new AccessibleGridControl_Impl() );
+ m_pImpl->m_aCreator = _rxCreator;
+}
+
+// -----------------------------------------------------------------------------
+AccessibleGridControl::~AccessibleGridControl()
+{
+ DBG_DTOR( AccessibleGridControl, NULL );
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL AccessibleGridControl::disposing()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ m_pImpl->m_pTable = NULL;
+ m_pImpl->m_pColumnHeaderBar = NULL;
+ m_pImpl->m_pRowHeaderBar = NULL;
+ m_pImpl->m_aCreator = Reference< XAccessible >();
+
+ Reference< XAccessible > xTable = m_pImpl->m_xTable;
+
+ Reference< XComponent > xComp( m_pImpl->m_xTable, UNO_QUERY );
+ if ( xComp.is() )
+ {
+ xComp->dispose();
+ }
+
+ AccessibleGridControlBase::disposing();
+}
+// -----------------------------------------------------------------------------
+
+// XAccessibleContext ---------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleGridControl::getAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_aTable.GetAccessibleControlCount();
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControl::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ if (isAlive())
+ {
+ if(nChildIndex == 0 && m_aTable.HasColHeader())
+ {
+ if(!m_pImpl->m_xColumnHeaderBar.is()){
+ AccessibleGridControlHeader* pColHeaderBar = new AccessibleGridControlHeader(m_pImpl->m_aCreator, m_aTable, svt::table::TCTYPE_COLUMNHEADERBAR);
+ m_pImpl->m_xColumnHeaderBar = pColHeaderBar;
+ }
+ xChild = m_pImpl->m_xColumnHeaderBar;
+ }
+ else if(m_aTable.HasRowHeader() && (nChildIndex == 1 || nChildIndex == 0))
+ {
+ if(!m_pImpl->m_xRowHeaderBar.is()){
+ AccessibleGridControlHeader* pRowHeaderBar = new AccessibleGridControlHeader(m_pImpl->m_aCreator, m_aTable, svt::table::TCTYPE_ROWHEADERBAR);
+ m_pImpl->m_xRowHeaderBar = pRowHeaderBar;
+ }
+ xChild = m_pImpl->m_xRowHeaderBar;
+ }
+ else
+ {
+ AccessibleGridControlTable* pTable = new AccessibleGridControlTable(m_pImpl->m_aCreator, m_aTable, svt::table::TCTYPE_TABLE);
+ m_pImpl->m_xTable = pTable;
+ xChild = m_pImpl->m_xTable;
+ }
+ }
+
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+sal_Int16 SAL_CALL AccessibleGridControl::getAccessibleRole()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return AccessibleRole::PANEL;
+}
+// -----------------------------------------------------------------------------
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControl::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 nIndex = 0;
+ if( m_aTable.ConvertPointToControlIndex( nIndex, VCLPoint( rPoint ) ) )
+ xChild = m_aTable.CreateAccessibleControl( nIndex );
+ else
+ {
+ // try whether point is in one of the fixed children
+ // (table, header bars, corner control)
+ Point aPoint( VCLPoint( rPoint ) );
+ for( nIndex = 0; (nIndex < 3) && !xChild.is(); ++nIndex )
+ {
+ Reference< XAccessible > xCurrChild( implGetFixedChild( nIndex ) );
+ Reference< XAccessibleComponent >
+ xCurrChildComp( xCurrChild, uno::UNO_QUERY );
+
+ if( xCurrChildComp.is() &&
+ VCLRectangle( xCurrChildComp->getBounds() ).IsInside( aPoint ) )
+ xChild = xCurrChild;
+ }
+ }
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL AccessibleGridControl::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ m_aTable.GrabFocus();
+}
+// -----------------------------------------------------------------------------
+
+Any SAL_CALL AccessibleGridControl::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any();
+}
+// -----------------------------------------------------------------------------
+
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleGridControl::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleGridControl" ) );
+}
+// -----------------------------------------------------------------------------
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleGridControl::implGetBoundingBox()
+{
+ Window* pParent = m_aTable.GetAccessibleParentWindow();
+ DBG_ASSERT( pParent, "implGetBoundingBox - missing parent window" );
+ return m_aTable.GetWindowExtentsRelative( pParent );
+}
+// -----------------------------------------------------------------------------
+
+Rectangle AccessibleGridControl::implGetBoundingBoxOnScreen()
+{
+ return m_aTable.GetWindowExtentsRelative( NULL );
+}
+// internal helper methods ----------------------------------------------------
+
+Reference< XAccessible > AccessibleGridControl::implGetTable()
+{
+ if( !m_pImpl->m_xTable.is() )
+ {
+ m_pImpl->m_pTable = createAccessibleTable();
+ m_pImpl->m_xTable = m_pImpl->m_pTable;
+
+ }
+ return m_pImpl->m_xTable;
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible >
+AccessibleGridControl::implGetHeaderBar( AccessibleTableControlObjType eObjType )
+{
+ Reference< XAccessible > xRet;
+ Reference< XAccessible >* pxMember = NULL;
+
+ if( eObjType == TCTYPE_ROWHEADERBAR )
+ pxMember = &m_pImpl->m_xRowHeaderBar;
+ else if( eObjType == TCTYPE_COLUMNHEADERBAR )
+ pxMember = &m_pImpl->m_xColumnHeaderBar;
+
+ if( pxMember )
+ {
+ if( !pxMember->is() )
+ {
+ AccessibleGridControlHeader* pHeaderBar = new AccessibleGridControlHeader(
+ (Reference< XAccessible >)m_pImpl->m_aCreator, m_aTable, eObjType );
+
+ if ( TCTYPE_COLUMNHEADERBAR == eObjType)
+ m_pImpl->m_pColumnHeaderBar = pHeaderBar;
+ else
+ m_pImpl->m_pRowHeaderBar = pHeaderBar;
+
+ *pxMember = pHeaderBar;
+ }
+ xRet = *pxMember;
+ }
+ return xRet;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible >
+AccessibleGridControl::implGetFixedChild( sal_Int32 nChildIndex )
+{
+ Reference< XAccessible > xRet;
+ switch( nChildIndex )
+ {
+ case TCINDEX_COLUMNHEADERBAR:
+ xRet = implGetHeaderBar( TCTYPE_COLUMNHEADERBAR );
+ break;
+ case TCINDEX_ROWHEADERBAR:
+ xRet = implGetHeaderBar( TCTYPE_ROWHEADERBAR );
+ break;
+ case TCINDEX_TABLE:
+ xRet = implGetTable();
+ break;
+ }
+ return xRet;
+}
+// -----------------------------------------------------------------------------
+AccessibleGridControlTable* AccessibleGridControl::createAccessibleTable()
+{
+ Reference< XAccessible > xCreator = (Reference< XAccessible >)m_pImpl->m_aCreator;
+ DBG_ASSERT( xCreator.is(), "accessibility/extended/AccessibleGirdControl::createAccessibleTable: my creator died - how this?" );
+ return new AccessibleGridControlTable( xCreator, m_aTable, TCTYPE_TABLE );
+}
+// ============================================================================
+// = AccessibleGridControlAccess
+// ============================================================================
+DBG_NAME( AccessibleGridControlAccess )
+// -----------------------------------------------------------------------------
+AccessibleGridControlAccess::AccessibleGridControlAccess( const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable )
+ :m_xParent( _rxParent )
+ ,m_rTable( _rTable )
+ ,m_pContext( NULL )
+{
+ DBG_CTOR( AccessibleGridControlAccess, NULL );
+}
+
+// -----------------------------------------------------------------------------
+AccessibleGridControlAccess::~AccessibleGridControlAccess()
+{
+ DBG_DTOR( AccessibleGridControlAccess, NULL );
+}
+
+// -----------------------------------------------------------------------------
+void AccessibleGridControlAccess::dispose()
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ m_pContext = NULL;
+ ::comphelper::disposeComponent( m_xContext );
+}
+
+// -----------------------------------------------------------------------------
+Reference< XAccessibleContext > SAL_CALL AccessibleGridControlAccess::getAccessibleContext() throw ( RuntimeException )
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ DBG_ASSERT( ( m_pContext && m_xContext.is() ) || ( !m_pContext && !m_xContext.is() ),
+ "accessibility/extended/AccessibleGridControlAccess::getAccessibleContext: inconsistency!" );
+
+ // if the context died meanwhile (we're no listener, so it won't tell us explicitily when this happens),
+ // then reset an re-create.
+ if ( m_pContext && !m_pContext->isAlive() )
+ m_xContext = m_pContext = NULL;
+
+ if ( !m_xContext.is() )
+ m_xContext = m_pContext = new AccessibleGridControl( m_xParent, this, m_rTable );
+
+ return m_xContext;
+}
+
+// -----------------------------------------------------------------------------
+bool AccessibleGridControlAccess::isContextAlive() const
+{
+ return ( NULL != m_pContext ) && m_pContext->isAlive();
+}
+
+// ============================================================================
+
+} // namespace accessibility
diff --git a/accessibility/source/extended/AccessibleGridControlBase.cxx b/accessibility/source/extended/AccessibleGridControlBase.cxx
new file mode 100644
index 000000000000..12d4a7d141a4
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlBase.cxx
@@ -0,0 +1,548 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/AccessibleGridControlBase.hxx"
+#include <svtools/accessibletable.hxx>
+#include <rtl/uuid.h>
+//
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblerelationsethelper.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+using namespace ::svt;
+using namespace ::svt::table;
+
+
+// ============================================================================
+
+namespace accessibility {
+
+using namespace com::sun::star::accessibility::AccessibleStateType;
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleGridControlBase )
+
+AccessibleGridControlBase::AccessibleGridControlBase(
+ const Reference< XAccessible >& rxParent,
+ svt::table::IAccessibleTable& rTable,
+ AccessibleTableControlObjType eObjType ) :
+ AccessibleGridControlImplHelper( m_aMutex ),
+ m_xParent( rxParent ),
+ m_aTable( rTable),
+ m_eObjType( eObjType ),
+ m_aName( rTable.GetAccessibleObjectName( eObjType, 0, 0 ) ),
+ m_aDescription( rTable.GetAccessibleObjectDescription( eObjType ) ),
+ m_aClientId(0)
+{
+ DBG_CTOR( AccessibleGridControlBase, NULL );
+}
+
+AccessibleGridControlBase::~AccessibleGridControlBase()
+{
+// DBG_DTOR( AccessibleGridControlBase, NULL );
+
+ if( isAlive() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+}
+
+void SAL_CALL AccessibleGridControlBase::disposing()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ m_xParent = NULL;
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleParent()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_xParent;
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlBase::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ // -1 for child not found/no parent (according to specification)
+ sal_Int32 nRet = -1;
+
+ Reference< uno::XInterface > xMeMyselfAndI( static_cast< XAccessibleContext* >( this ), uno::UNO_QUERY );
+
+ // iterate over parent's children and search for this object
+ if( m_xParent.is() )
+ {
+ Reference< XAccessibleContext >
+ xParentContext( m_xParent->getAccessibleContext() );
+ if( xParentContext.is() )
+ {
+ Reference< uno::XInterface > xChild;
+
+ sal_Int32 nChildCount = xParentContext->getAccessibleChildCount();
+ for( sal_Int32 nChild = 0; nChild < nChildCount; ++nChild )
+ {
+ xChild = xChild.query( xParentContext->getAccessibleChild( nChild ) );
+
+ if ( xMeMyselfAndI.get() == xChild.get() )
+ {
+ nRet = nChild;
+ break;
+ }
+ }
+ }
+ }
+ return nRet;
+}
+
+OUString SAL_CALL AccessibleGridControlBase::getAccessibleDescription()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_aDescription;
+}
+
+OUString SAL_CALL AccessibleGridControlBase::getAccessibleName()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_aName;
+}
+
+Reference< XAccessibleRelationSet > SAL_CALL
+AccessibleGridControlBase::getAccessibleRelationSet()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ // GridControl does not have relations.
+ return new utl::AccessibleRelationSetHelper;
+}
+
+Reference< XAccessibleStateSet > SAL_CALL
+AccessibleGridControlBase::getAccessibleStateSet()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ // don't check whether alive -> StateSet may contain DEFUNC
+ return implCreateStateSetHelper();
+}
+
+lang::Locale SAL_CALL AccessibleGridControlBase::getLocale()
+ throw ( IllegalAccessibleComponentStateException, uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ if( m_xParent.is() )
+ {
+ Reference< XAccessibleContext >
+ xParentContext( m_xParent->getAccessibleContext() );
+ if( xParentContext.is() )
+ return xParentContext->getLocale();
+ }
+ throw IllegalAccessibleComponentStateException();
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+sal_Bool SAL_CALL AccessibleGridControlBase::containsPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ return Rectangle( Point(), getBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
+}
+
+awt::Rectangle SAL_CALL AccessibleGridControlBase::getBounds()
+ throw ( uno::RuntimeException )
+{
+ return AWTRectangle( getBoundingBox() );
+}
+
+awt::Point SAL_CALL AccessibleGridControlBase::getLocation()
+ throw ( uno::RuntimeException )
+{
+ return AWTPoint( getBoundingBox().TopLeft() );
+}
+
+awt::Point SAL_CALL AccessibleGridControlBase::getLocationOnScreen()
+ throw ( uno::RuntimeException )
+{
+ return AWTPoint( getBoundingBoxOnScreen().TopLeft() );
+}
+
+awt::Size SAL_CALL AccessibleGridControlBase::getSize()
+ throw ( uno::RuntimeException )
+{
+ return AWTSize( getBoundingBox().GetSize() );
+}
+
+sal_Bool SAL_CALL AccessibleGridControlBase::isShowing()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implIsShowing();
+}
+
+sal_Bool SAL_CALL AccessibleGridControlBase::isVisible()
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessibleStateSet > xStateSet = getAccessibleStateSet();
+ return xStateSet.is() ?
+ xStateSet->contains( AccessibleStateType::VISIBLE ) : sal_False;
+}
+
+sal_Bool SAL_CALL AccessibleGridControlBase::isFocusTraversable()
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessibleStateSet > xStateSet = getAccessibleStateSet();
+ return xStateSet.is() ?
+ xStateSet->contains( AccessibleStateType::FOCUSABLE ) : sal_False;
+}
+// XAccessibleEventBroadcaster ------------------------------------------------
+
+void SAL_CALL AccessibleGridControlBase::addEventListener(
+ const Reference< XAccessibleEventListener>& _rxListener )
+ throw ( uno::RuntimeException )
+{
+ if ( _rxListener.is() )
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ if ( !getClientId( ) )
+ setClientId( AccessibleEventNotifier::registerClient( ) );
+
+ AccessibleEventNotifier::addEventListener( getClientId( ), _rxListener );
+ }
+}
+
+void SAL_CALL AccessibleGridControlBase::removeEventListener(
+ const Reference< XAccessibleEventListener>& _rxListener )
+ throw ( uno::RuntimeException )
+{
+ if( _rxListener.is() && getClientId( ) )
+ {
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ sal_Int32 nListenerCount = AccessibleEventNotifier::removeEventListener( getClientId( ), _rxListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+
+ AccessibleEventNotifier::TClientId nId( getClientId( ) );
+ setClientId( 0 );
+ AccessibleEventNotifier::revokeClient( nId );
+ }
+ }
+}
+
+// XTypeProvider --------------------------------------------------------------
+
+Sequence< sal_Int8 > SAL_CALL AccessibleGridControlBase::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// XServiceInfo ---------------------------------------------------------------
+
+sal_Bool SAL_CALL AccessibleGridControlBase::supportsService(
+ const OUString& rServiceName )
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ Sequence< OUString > aSupportedServices( getSupportedServiceNames() );
+ const OUString* pArrBegin = aSupportedServices.getConstArray();
+ const OUString* pArrEnd = pArrBegin + aSupportedServices.getLength();
+ const OUString* pString = pArrBegin;
+
+ for( ; ( pString != pArrEnd ) && ( rServiceName != *pString ); ++pString )
+ ;
+
+ return pString != pArrEnd;
+}
+
+Sequence< OUString > SAL_CALL AccessibleGridControlBase::getSupportedServiceNames()
+ throw ( uno::RuntimeException )
+{
+ const OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleContext" ) );
+ return Sequence< OUString >( &aServiceName, 1 );
+}
+// internal virtual methods ---------------------------------------------------
+
+sal_Bool AccessibleGridControlBase::implIsShowing()
+{
+ sal_Bool bShowing = sal_False;
+ if( m_xParent.is() )
+ {
+ Reference< XAccessibleComponent >
+ xParentComp( m_xParent->getAccessibleContext(), uno::UNO_QUERY );
+ if( xParentComp.is() )
+ bShowing = implGetBoundingBox().IsOver(
+ VCLRectangle( xParentComp->getBounds() ) );
+ }
+ return bShowing;
+}
+
+::utl::AccessibleStateSetHelper* AccessibleGridControlBase::implCreateStateSetHelper()
+{
+ ::utl::AccessibleStateSetHelper*
+ pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with m_xParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ // GridControl fills StateSet with states depending on object type
+ m_aTable.FillAccessibleStateSet( *pStateSetHelper, getType() );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+}
+
+// internal helper methods ----------------------------------------------------
+
+sal_Bool AccessibleGridControlBase::isAlive() const
+{
+ return !rBHelper.bDisposed && !rBHelper.bInDispose && &m_aTable;
+}
+
+void AccessibleGridControlBase::ensureIsAlive() const
+ throw ( lang::DisposedException )
+{
+ if( !isAlive() )
+ throw lang::DisposedException();
+}
+
+Rectangle AccessibleGridControlBase::getBoundingBox()
+ throw ( lang::DisposedException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ Rectangle aRect = implGetBoundingBox();
+ if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
+ {
+ DBG_ERRORFILE( "rectangle doesn't exist" );
+ }
+ return aRect;
+}
+//
+Rectangle AccessibleGridControlBase::getBoundingBoxOnScreen()
+ throw ( lang::DisposedException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ Rectangle aRect = implGetBoundingBoxOnScreen();
+ if ( 0 == aRect.Left() && 0 == aRect.Top() && 0 == aRect.Right() && 0 == aRect.Bottom() )
+ {
+ DBG_ERRORFILE( "rectangle doesn't exist" );
+ }
+ return aRect;
+}
+
+void AccessibleGridControlBase::commitEvent(
+ sal_Int16 _nEventId, const Any& _rNewValue, const Any& _rOldValue )
+{
+ ::osl::ClearableMutexGuard aGuard( getOslMutex() );
+ if ( !getClientId( ) )
+ // if we don't have a client id for the notifier, then we don't have listeners, then
+ // we don't need to notify anything
+ return;
+
+ // build an event object
+ AccessibleEventObject aEvent;
+ aEvent.Source = *this;
+ aEvent.EventId = _nEventId;
+ aEvent.OldValue = _rOldValue;
+ aEvent.NewValue = _rNewValue;
+
+ // let the notifier handle this event
+
+ AccessibleEventNotifier::addEvent( getClientId( ), aEvent );
+}
+// -----------------------------------------------------------------------------
+
+void AccessibleGridControlBase::implCreateUuid( Sequence< sal_Int8 >& rId )
+{
+ if( !rId.hasElements() )
+ {
+ rId.realloc( 16 );
+ rtl_createUuid( reinterpret_cast< sal_uInt8* >( rId.getArray() ), 0, sal_True );
+ }
+}
+// -----------------------------------------------------------------------------
+sal_Int16 SAL_CALL AccessibleGridControlBase::getAccessibleRole()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ sal_Int16 nRole = AccessibleRole::UNKNOWN;
+ switch ( m_eObjType )
+ {
+ case TCTYPE_ROWHEADERCELL:
+ nRole = AccessibleRole::ROW_HEADER;
+ break;
+ case TCTYPE_COLUMNHEADERCELL:
+ nRole = AccessibleRole::COLUMN_HEADER;
+ break;
+ case TCTYPE_COLUMNHEADERBAR:
+ case TCTYPE_ROWHEADERBAR:
+ case TCTYPE_TABLE:
+ nRole = AccessibleRole::TABLE;
+ break;
+ case TCTYPE_TABLECELL:
+ nRole = AccessibleRole::TABLE_CELL;
+ break;
+ case TCTYPE_GRIDCONTROL:
+ nRole = AccessibleRole::PANEL;
+ break;
+ }
+ return nRole;
+}
+// -----------------------------------------------------------------------------
+Any SAL_CALL AccessibleGridControlBase::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ return Any();
+}
+// -----------------------------------------------------------------------------
+Reference<XAccessible > SAL_CALL AccessibleGridControlBase::getAccessibleAtPoint( const ::com::sun::star::awt::Point& )
+ throw ( uno::RuntimeException )
+{
+ return NULL;
+}
+//// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleGridControlBase::getForeground( ) throw (::com::sun::star::uno::RuntimeException)
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ sal_Int32 nColor = 0;
+ Window* pInst = m_aTable.GetWindowInstance();
+ if ( pInst )
+ {
+ if ( pInst->IsControlForeground() )
+ nColor = pInst->GetControlForeground().GetColor();
+ else
+ {
+ Font aFont;
+ if ( pInst->IsControlFont() )
+ aFont = pInst->GetControlFont();
+ else
+ aFont = pInst->GetFont();
+ nColor = aFont.GetColor().GetColor();
+ }
+ }
+
+ return nColor;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleGridControlBase::getBackground( ) throw (::com::sun::star::uno::RuntimeException)
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ sal_Int32 nColor = 0;
+ Window* pInst = m_aTable.GetWindowInstance();
+ if ( pInst )
+ {
+ if ( pInst->IsControlBackground() )
+ nColor = pInst->GetControlBackground().GetColor();
+ else
+ nColor = pInst->GetBackground().GetColor().GetColor();
+ }
+
+ return nColor;
+}
+
+//// ============================================================================
+GridControlAccessibleElement::GridControlAccessibleElement( const Reference< XAccessible >& rxParent,
+ IAccessibleTable& rTable,
+ AccessibleTableControlObjType eObjType )
+ :AccessibleGridControlBase( rxParent, rTable, eObjType )
+{
+// DBG_CTOR( GridControlAccessibleElement, NULL );
+}
+
+// XInterface -----------------------------------------------------------------
+IMPLEMENT_FORWARD_XINTERFACE2( GridControlAccessibleElement, AccessibleGridControlBase, GridControlAccessibleElement_Base)
+
+// XTypeProvider --------------------------------------------------------------
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( GridControlAccessibleElement, AccessibleGridControlBase, GridControlAccessibleElement_Base )
+
+// XAccessible ----------------------------------------------------------------
+
+Reference< XAccessibleContext > SAL_CALL GridControlAccessibleElement::getAccessibleContext() throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return this;
+}
+// ----------------------------------------------------------------------------
+GridControlAccessibleElement::~GridControlAccessibleElement( )
+{
+// DBG_DTOR( GridControlAccessibleElement, NULL );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleGridControlHeader.cxx b/accessibility/source/extended/AccessibleGridControlHeader.cxx
new file mode 100644
index 000000000000..c7622c18981e
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlHeader.cxx
@@ -0,0 +1,309 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleGridControlHeader.hxx"
+#include "accessibility/extended/AccessibleGridControlHeaderCell.hxx"
+#include "accessibility/extended/AccessibleGridControlTableCell.hxx"
+#include <svtools/accessibletable.hxx>
+
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+using namespace ::svt::table;
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleGridControlHeader )
+
+AccessibleGridControlHeader::AccessibleGridControlHeader(
+ const Reference< XAccessible >& rxParent,
+ ::svt::table::IAccessibleTable& rTable,
+ ::svt::table::AccessibleTableControlObjType eObjType):
+ AccessibleGridControlTableBase( rxParent, rTable, eObjType )
+{
+// DBG_CTOR( AccessibleGridControlHeaderBar, NULL );
+
+ DBG_ASSERT( isRowBar() || isColumnBar(),
+ "accessibility/extended/AccessibleGridControlHeaderBar - invalid object type" );
+}
+
+AccessibleGridControlHeader::~AccessibleGridControlHeader()
+{
+// DBG_DTOR( AccessibleGridControlHeader, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControlHeader::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ if (nChildIndex<0 || nChildIndex>=getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+ ensureIsAlive();
+ Reference< XAccessible > xChild;
+ if(m_eObjType == svt::table::TCTYPE_COLUMNHEADERBAR)
+ {
+ AccessibleGridControlHeaderCell* pColHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, svt::table::TCTYPE_COLUMNHEADERCELL);
+ xChild = pColHeaderCell;
+ }
+ else if(m_eObjType == svt::table::TCTYPE_ROWHEADERBAR)
+ {
+ AccessibleGridControlHeaderCell* pRowHeaderCell = new AccessibleGridControlHeaderCell(nChildIndex, this, m_aTable, svt::table::TCTYPE_ROWHEADERCELL);
+ xChild = pRowHeaderCell;
+ }
+ return xChild;
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlHeader::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ if(m_eObjType == svt::table::TCTYPE_ROWHEADERBAR && m_aTable.HasColHeader())
+ return 1;
+ else
+ return 0;
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControlHeader::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ sal_Int32 nRow = 0;
+ sal_Int32 nColumnPos = 0;
+ sal_Bool bConverted = isRowBar() ?
+ m_aTable.ConvertPointToCellAddress( nRow, nColumnPos, VCLPoint( rPoint ) ) :
+ m_aTable.ConvertPointToCellAddress( nRow, nColumnPos, VCLPoint( rPoint ) );
+
+ return bConverted ? implGetChild( nRow, nColumnPos ) : Reference< XAccessible >();
+}
+
+void SAL_CALL AccessibleGridControlHeader::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ // focus on header not supported
+}
+
+Any SAL_CALL AccessibleGridControlHeader::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any(); // no special key bindings for header
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+OUString SAL_CALL AccessibleGridControlHeader::getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return OUString(); // no headers in headers
+}
+
+OUString SAL_CALL AccessibleGridControlHeader::getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return OUString(); // no headers in headers
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibleRowHeaders()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // no headers in headers
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleGridControlHeader::getAccessibleColumnHeaders()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // no headers in headers
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleGridControlHeader::getSelectedAccessibleRows()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ // row of column header bar not selectable
+ if( isRowBar() )
+ implGetSelectedRows( aSelSeq );
+ return aSelSeq;
+}
+//columns aren't selectable
+Sequence< sal_Int32 > SAL_CALL AccessibleGridControlHeader::getSelectedAccessibleColumns()
+ throw ( uno::RuntimeException )
+{
+ return NULL;
+}
+//To Do - not yet implemented
+sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ //return isRowBar() ? implIsRowSelected( nRow ) : sal_False;
+ return sal_False;
+}
+//columns aren't selectable
+sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ (void)nColumn;
+ return sal_False;
+}
+
+Reference< XAccessible > SAL_CALL AccessibleGridControlHeader::getAccessibleCellAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implGetChild( nRow, implToVCLColumnPos( nColumn ) );
+}
+// TO DO - not implemented yet
+sal_Bool SAL_CALL AccessibleGridControlHeader::isAccessibleSelected(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return FALSE;
+ // return isRowBar() ? implIsRowSelected( nRow ) : implIsColumnSelected( nColumn );
+}
+
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleGridControlHeader::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleGridControlHeader" ) );
+}
+
+Sequence< sal_Int8 > SAL_CALL AccessibleGridControlHeader::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleGridControlHeader::implGetBoundingBox()
+{
+ return m_aTable.calcHeaderRect(isColumnBar());
+}
+
+Rectangle AccessibleGridControlHeader::implGetBoundingBoxOnScreen()
+{
+ return m_aTable.calcHeaderRect(isColumnBar());
+}
+
+sal_Int32 AccessibleGridControlHeader::implGetRowCount() const
+{
+ return 1;
+}
+
+sal_Int32 AccessibleGridControlHeader::implGetColumnCount() const
+{
+ return 1;
+}
+
+// internal helper methods ----------------------------------------------------
+
+Reference< XAccessible > AccessibleGridControlHeader::implGetChild(
+ sal_Int32 nRow, sal_uInt32 nColumnPos )
+{
+ Reference< XAccessible > xChild;
+ if(m_eObjType == svt::table::TCTYPE_COLUMNHEADERBAR)
+ {
+ AccessibleGridControlHeaderCell* pColHeaderCell = new AccessibleGridControlHeaderCell(nColumnPos, this, m_aTable, svt::table::TCTYPE_COLUMNHEADERCELL);
+ xChild = pColHeaderCell;
+ }
+ else if(m_eObjType == svt::table::TCTYPE_ROWHEADERBAR)
+ {
+ AccessibleGridControlHeaderCell* pRowHeaderCell = new AccessibleGridControlHeaderCell(nRow, this, m_aTable, svt::table::TCTYPE_ROWHEADERCELL);
+ xChild = pRowHeaderCell;
+ }
+ return xChild;
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
new file mode 100644
index 000000000000..485c57c40ae1
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlHeaderCell.cxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include "accessibility/extended/AccessibleGridControlHeaderCell.hxx"
+#include <svtools/accessibletable.hxx>
+#include "accessibility/extended/AccessibleGridControl.hxx"
+
+namespace accessibility
+{
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::uno;
+ using namespace ::svt;
+ using namespace ::svt::table;
+
+AccessibleGridControlHeaderCell::AccessibleGridControlHeaderCell(sal_Int32 _nColumnRowId,
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTable& rTable,
+ AccessibleTableControlObjType eObjType)
+: AccessibleGridControlCell( rxParent, rTable, _nColumnRowId, 0, eObjType)
+, m_nColumnRowId(_nColumnRowId)
+{
+}
+/** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+*/
+::utl::AccessibleStateSetHelper* AccessibleGridControlHeaderCell::implCreateStateSetHelper()
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ::utl::AccessibleStateSetHelper*
+ pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with mxParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+
+ TCSolarGuard aSolarGuard;
+ pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+
+ if ( m_aTable.IsRowSelected(m_nColumnRowId) )
+ pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+}
+// -----------------------------------------------------------------------------
+/** @return
+ The count of visible children.
+*/
+sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChildCount()
+ throw ( RuntimeException )
+{
+ return 0;
+}
+// -----------------------------------------------------------------------------
+
+/** @return
+ The XAccessible interface of the specified child.
+*/
+Reference<XAccessible > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleChild( sal_Int32 )
+ throw ( IndexOutOfBoundsException,RuntimeException )
+{
+ throw IndexOutOfBoundsException();
+}
+// XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL AccessibleGridControlHeaderCell::queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ Any aRet = AccessibleGridControlCell::queryInterface(rType);
+ return aRet;
+ }
+
+ /** Aquires the object (calls acquire() on base class). */
+ void SAL_CALL AccessibleGridControlHeaderCell::acquire() throw ()
+ {
+ AccessibleGridControlCell::acquire();
+ }
+
+ /** Releases the object (calls release() on base class). */
+ void SAL_CALL AccessibleGridControlHeaderCell::release() throw ()
+ {
+ AccessibleGridControlCell::release();
+ }
+ /** @return The XAccessibleContext interface of this object. */
+ Reference< com::sun::star::accessibility::XAccessibleContext > SAL_CALL AccessibleGridControlHeaderCell::getAccessibleContext() throw ( RuntimeException )
+ {
+ ensureIsAlive();
+ return this;
+ }
+
+// -----------------------------------------------------------------------------
+
+/** Grabs the focus to the column header. */
+void SAL_CALL AccessibleGridControlHeaderCell::grabFocus()
+ throw ( ::com::sun::star::uno::RuntimeException )
+{
+}
+// -----------------------------------------------------------------------------
+/** @return
+ The name of this class.
+*/
+::rtl::OUString SAL_CALL AccessibleGridControlHeaderCell::getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException )
+{
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleGridControlHeaderCell" ) );
+}
+// -----------------------------------------------------------------------------
+Rectangle AccessibleGridControlHeaderCell::implGetBoundingBox()
+{
+ return Rectangle(Point(0,0),Point(0,0));//To Do - return headercell rectangle
+}
+// -----------------------------------------------------------------------------
+
+Rectangle AccessibleGridControlHeaderCell::implGetBoundingBoxOnScreen()
+{
+ return Rectangle(Point(0,0),Point(0,0));//To Do - return headercell rectangle
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL AccessibleGridControlHeaderCell::getAccessibleIndexInParent()
+ throw ( RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ sal_Int32 nIndex = m_nColumnRowId;
+ return nIndex;
+}
+// -----------------------------------------------------------------------------
+} // namespace accessibility
+// -----------------------------------------------------------------------------
+
+
diff --git a/accessibility/source/extended/AccessibleGridControlTable.cxx b/accessibility/source/extended/AccessibleGridControlTable.cxx
new file mode 100644
index 000000000000..efd78fc8634a
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlTable.cxx
@@ -0,0 +1,401 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleGridControlTable.hxx"
+#include "accessibility/extended/AccessibleGridControlTableCell.hxx"
+#include <svtools/accessibletable.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+using namespace ::svt::table;
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleGridControlTable )
+
+AccessibleGridControlTable::AccessibleGridControlTable(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTable& rTable,
+ AccessibleTableControlObjType _eType) :
+ AccessibleGridControlTableBase( rxParent, rTable, _eType )
+{
+ DBG_CTOR( AccessibleGridControlTable, NULL );
+}
+
+AccessibleGridControlTable::~AccessibleGridControlTable()
+{
+ DBG_DTOR( AccessibleGridControlTable, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControlTable::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return new AccessibleGridControlTableCell(this, m_aTable, nChildIndex/m_aTable.GetColumnCount(), nChildIndex%m_aTable.GetColumnCount(), TCTYPE_TABLECELL);
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTable::getAccessibleIndexInParent()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ if(m_aTable.HasRowHeader() && m_aTable.HasColHeader())
+ return 0;
+ else if((!m_aTable.HasRowHeader() && m_aTable.HasColHeader()) || (m_aTable.HasRowHeader() && !m_aTable.HasColHeader()) )
+ return 1;
+ else
+ return 2;
+
+}
+
+// XAccessibleComponent -------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL
+AccessibleGridControlTable::getAccessibleAtPoint( const awt::Point& rPoint )
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 nRow = 0;
+ sal_Int32 nColumnPos = 0;
+ if( m_aTable.ConvertPointToCellAddress( nRow, nColumnPos, VCLPoint( rPoint ) ) )
+ xChild = new AccessibleGridControlTableCell(this, m_aTable, nRow, nColumnPos, TCTYPE_TABLECELL);
+
+ return xChild;
+}
+
+void SAL_CALL AccessibleGridControlTable::grabFocus()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ m_aTable.GrabFocus();
+}
+
+Any SAL_CALL AccessibleGridControlTable::getAccessibleKeyBinding()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return Any(); // no special key bindings for data table
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+OUString SAL_CALL AccessibleGridControlTable::getAccessibleRowDescription( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidRow( nRow );
+ return m_aTable.GetRowDescription( nRow );
+}
+
+OUString SAL_CALL AccessibleGridControlTable::getAccessibleColumnDescription( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return m_aTable.GetColumnDescription( (sal_uInt16)nColumn );
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessibleRowHeaders()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ if(m_aTable.HasColHeader())
+ return implGetHeaderBar( 1 );
+ else
+ return implGetHeaderBar( 0 );
+}
+
+Reference< XAccessibleTable > SAL_CALL AccessibleGridControlTable::getAccessibleColumnHeaders()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return implGetHeaderBar( 0 );
+}
+
+Sequence< sal_Int32 > SAL_CALL AccessibleGridControlTable::getSelectedAccessibleRows()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ Sequence< sal_Int32 > aSelSeq;
+ implGetSelectedRows( aSelSeq );
+ return aSelSeq;
+}
+
+//columns aren't selectable
+Sequence< sal_Int32 > SAL_CALL AccessibleGridControlTable::getSelectedAccessibleColumns()
+ throw ( uno::RuntimeException )
+{
+// TCSolarGuard aSolarGuard;
+// ::osl::MutexGuard aGuard( getOslMutex() );
+// ensureIsAlive();
+//
+// Sequence< sal_Int32 > aSelSeq;
+// implGetSelectedColumns( aSelSeq );
+// return aSelSeq;
+ return NULL;
+}
+
+//To Do: not implemented yet
+sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleRowSelected( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ //TCSolarGuard aSolarGuard;
+ //::osl::MutexGuard aGuard( getOslMutex() );
+ //ensureIsAlive();
+ //ensureIsValidRow( nRow );
+ //return implIsRowSelected( nRow );
+ (void) nRow;
+ return sal_False;
+}
+
+//columns aren't selectable
+sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleColumnSelected( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ /*TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidColumn( nColumn );
+ return implIsColumnSelected( nColumn );*/
+ (void) nColumn;
+ return sal_False;
+}
+
+Reference< XAccessible > SAL_CALL AccessibleGridControlTable::getAccessibleCellAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return new AccessibleGridControlTableCell(this, m_aTable, nRow, nColumn, TCTYPE_TABLECELL);
+}
+
+sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleSelected(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ /*TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implIsRowSelected( nRow ) || implIsColumnSelected( nColumn );*/
+ (void) nRow;
+ (void) nColumn;
+ return sal_False;
+}
+//To Do: not implemented yet
+void SAL_CALL AccessibleGridControlTable::selectAccessibleChild( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ //if( isRowBar() )
+ // implSelectRow( nChildIndex, sal_True );
+ //else
+ // implSelectColumn( implToVCLColumnPos( nChildIndex ), sal_True );
+}
+//To Do - not implemented yet
+sal_Bool SAL_CALL AccessibleGridControlTable::isAccessibleChildSelected( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ // using interface methods - no mutex
+ /*return isRowBar() ?
+ isAccessibleRowSelected( nChildIndex ) :
+ isAccessibleColumnSelected( nChildIndex );*/
+ (void)nChildIndex;
+ return FALSE;
+}
+//To Do - not implemented yet
+void SAL_CALL AccessibleGridControlTable::clearAccessibleSelection()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+}
+//To Do - not implemented yet
+void SAL_CALL AccessibleGridControlTable::selectAllAccessibleChildren()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+}
+//To Do - not implemented yet
+sal_Int32 SAL_CALL AccessibleGridControlTable::getSelectedAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return 0;
+}
+//To Do - not implemented yet
+Reference< XAccessible > SAL_CALL
+AccessibleGridControlTable::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ (void)nSelectedChildIndex;
+ return NULL;
+}
+//To Do - not implemented yet
+void SAL_CALL AccessibleGridControlTable::deselectAccessibleChild(
+ sal_Int32 nSelectedChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ (void)nSelectedChildIndex;
+ // method may throw lang::IndexOutOfBoundsException
+ //if ( isAccessibleChildSelected(nSelectedChildIndex) )
+ //{
+ // if( isRowBar() )
+ // implSelectRow( nSelectedChildIndex, sal_False );
+ // else
+ // implSelectColumn( implToVCLColumnPos( nSelectedChildIndex ), sal_False );
+ //}
+}
+// XInterface -----------------------------------------------------------------
+
+Any SAL_CALL AccessibleGridControlTable::queryInterface( const uno::Type& rType )
+ throw ( uno::RuntimeException )
+{
+ Any aAny( AccessibleGridControlTableBase::queryInterface( rType ) );
+ return aAny.hasValue() ?
+ aAny : AccessibleGridControlTableImplHelper1::queryInterface( rType );
+}
+
+void SAL_CALL AccessibleGridControlTable::acquire() throw ()
+{
+ AccessibleGridControlTableBase::acquire();
+}
+
+void SAL_CALL AccessibleGridControlTable::release() throw ()
+{
+ AccessibleGridControlTableBase::release();
+}
+// XServiceInfo ---------------------------------------------------------------
+
+OUString SAL_CALL AccessibleGridControlTable::getImplementationName()
+ throw ( uno::RuntimeException )
+{
+ return OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleGridControlTable" ) );
+}
+
+// internal virtual methods ---------------------------------------------------
+
+Rectangle AccessibleGridControlTable::implGetBoundingBox()
+{
+ return m_aTable.calcTableRect();
+}
+
+Rectangle AccessibleGridControlTable::implGetBoundingBoxOnScreen()
+{
+ return m_aTable.calcTableRect();
+}
+// internal helper methods ----------------------------------------------------
+//To Do - not implemented yet
+//sal_Int32 AccessibleGridControlTable::implGetChildIndexFromSelectedIndex(
+// sal_Int32 nSelectedChildIndex )
+// throw ( lang::IndexOutOfBoundsException )
+//{
+// (void)nSelectedChildIndex;
+// return 0;
+//}
+Reference< XAccessibleTable > AccessibleGridControlTable::implGetHeaderBar(
+ sal_Int32 nChildIndex )
+ throw ( uno::RuntimeException )
+{
+ Reference< XAccessible > xRet;
+ Reference< XAccessibleContext > xContext( m_xParent, uno::UNO_QUERY );
+ if( xContext.is() )
+ {
+ try
+ {
+ xRet = xContext->getAccessibleChild( nChildIndex );
+ }
+ catch( lang::IndexOutOfBoundsException& )
+ {
+ DBG_ERROR( "implGetHeaderBar - wrong child index" );
+ }
+ // RuntimeException goes to caller
+ }
+ return Reference< XAccessibleTable >( xRet, uno::UNO_QUERY );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleGridControlTableBase.cxx b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
new file mode 100644
index 000000000000..8a7e3102bdf7
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlTableBase.cxx
@@ -0,0 +1,305 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+
+#include "accessibility/extended/AccessibleGridControlTableBase.hxx"
+#include <svtools/accessibletable.hxx>
+#include <tools/multisel.hxx>
+#include <comphelper/sequence.hxx>
+
+// ============================================================================
+
+using ::rtl::OUString;
+
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Any;
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::accessibility;
+using namespace ::svt;
+using namespace ::svt::table;
+
+// ============================================================================
+
+namespace accessibility {
+
+// ============================================================================
+
+// Ctor/Dtor/disposing --------------------------------------------------------
+
+DBG_NAME( AccessibleGridControlTableBase )
+
+AccessibleGridControlTableBase::AccessibleGridControlTableBase(
+ const Reference< XAccessible >& rxParent,
+ IAccessibleTable& rTable,
+ AccessibleTableControlObjType eObjType ) :
+ GridControlAccessibleElement( rxParent, rTable, eObjType )
+{
+ DBG_CTOR( AccessibleGridControlTableBase, NULL );
+}
+
+AccessibleGridControlTableBase::~AccessibleGridControlTableBase()
+{
+ DBG_DTOR( AccessibleGridControlTableBase, NULL );
+}
+
+// XAccessibleContext ---------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleChildCount()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ sal_Int32 nChildren = 0;
+ if(m_eObjType == TCTYPE_ROWHEADERBAR)
+ nChildren = m_aTable.GetRowCount();
+ else if(m_eObjType == TCTYPE_TABLE)
+ nChildren = m_aTable.GetRowCount()*m_aTable.GetColumnCount();
+ else if(m_eObjType == TCTYPE_COLUMNHEADERBAR)
+ nChildren = m_aTable.GetColumnCount();
+ return nChildren;
+}
+
+sal_Int16 SAL_CALL AccessibleGridControlTableBase::getAccessibleRole()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return AccessibleRole::TABLE;
+}
+
+// XAccessibleTable -----------------------------------------------------------
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowCount()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_aTable.GetRowCount();
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnCount()
+ throw ( uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ return m_aTable.GetColumnCount();
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRowExtentAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return 1; // merged cells not supported
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumnExtentAt(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return 1; // merged cells not supported
+}
+
+Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleCaption()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // not supported
+}
+
+Reference< XAccessible > SAL_CALL AccessibleGridControlTableBase::getAccessibleSummary()
+ throw ( uno::RuntimeException )
+{
+ ensureIsAlive();
+ return NULL; // not supported
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleIndex(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidAddress( nRow, nColumn );
+ return implGetChildIndex( nRow, nColumn );
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleRow( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return implGetRow( nChildIndex );
+}
+
+sal_Int32 SAL_CALL AccessibleGridControlTableBase::getAccessibleColumn( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException, uno::RuntimeException )
+{
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+ ensureIsValidIndex( nChildIndex );
+ return implGetColumn( nChildIndex );
+}
+
+// XInterface -----------------------------------------------------------------
+
+Any SAL_CALL AccessibleGridControlTableBase::queryInterface( const uno::Type& rType )
+ throw ( uno::RuntimeException )
+{
+ Any aAny( GridControlAccessibleElement::queryInterface( rType ) );
+ return aAny.hasValue() ?
+ aAny : AccessibleGridControlTableImplHelper::queryInterface( rType );
+}
+
+void SAL_CALL AccessibleGridControlTableBase::acquire() throw ()
+{
+ GridControlAccessibleElement::acquire();
+}
+
+void SAL_CALL AccessibleGridControlTableBase::release() throw ()
+{
+ GridControlAccessibleElement::release();
+}
+
+// XTypeProvider --------------------------------------------------------------
+
+Sequence< uno::Type > SAL_CALL AccessibleGridControlTableBase::getTypes()
+ throw ( uno::RuntimeException )
+{
+ return ::comphelper::concatSequences(
+ GridControlAccessibleElement::getTypes(),
+ AccessibleGridControlTableImplHelper::getTypes() );
+}
+
+Sequence< sal_Int8 > SAL_CALL AccessibleGridControlTableBase::getImplementationId()
+ throw ( uno::RuntimeException )
+{
+ ::osl::MutexGuard aGuard( getOslGlobalMutex() );
+ static Sequence< sal_Int8 > aId;
+ implCreateUuid( aId );
+ return aId;
+}
+
+// internal helper methods ----------------------------------------------------
+
+sal_uInt16 AccessibleGridControlTableBase::implToVCLColumnPos( sal_Int32 nColumn ) const
+{
+ sal_uInt16 nVCLPos = 0;
+ if( (0 <= nColumn) && (nColumn < m_aTable.GetColumnCount()) )
+ {
+ // regard "handle column"
+ if( m_aTable.HasRowHeader() )
+ ++nColumn;
+ nVCLPos = static_cast< sal_uInt16 >( nColumn );
+ }
+ return nVCLPos;
+}
+
+sal_Int32 AccessibleGridControlTableBase::implGetChildCount() const
+{
+ return m_aTable.GetRowCount()*m_aTable.GetColumnCount();
+}
+
+sal_Int32 AccessibleGridControlTableBase::implGetRow( sal_Int32 nChildIndex ) const
+{
+ sal_Int32 nColumns = m_aTable.GetColumnCount();
+ return nColumns ? (nChildIndex / nColumns) : 0;
+}
+
+sal_Int32 AccessibleGridControlTableBase::implGetColumn( sal_Int32 nChildIndex ) const
+{
+ sal_Int32 nColumns = m_aTable.GetColumnCount();
+ return nColumns ? (nChildIndex % nColumns) : 0;
+}
+
+sal_Int32 AccessibleGridControlTableBase::implGetChildIndex(
+ sal_Int32 nRow, sal_Int32 nColumn ) const
+{
+ return nRow * m_aTable.GetColumnCount() + nColumn;
+}
+
+void AccessibleGridControlTableBase::implGetSelectedRows( Sequence< sal_Int32 >& rSeq )
+{
+ rSeq = comphelper::containerToSequence(m_aTable.GetSelectedRows());
+}
+
+void AccessibleGridControlTableBase::ensureIsValidRow( sal_Int32 nRow )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nRow >= m_aTable.GetRowCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM( "row index is invalid" ) ), *this );
+}
+
+void AccessibleGridControlTableBase::ensureIsValidColumn( sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nColumn >= m_aTable.GetColumnCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("column index is invalid") ), *this );
+}
+
+void AccessibleGridControlTableBase::ensureIsValidAddress(
+ sal_Int32 nRow, sal_Int32 nColumn )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ ensureIsValidRow( nRow );
+ ensureIsValidColumn( nColumn );
+}
+
+void AccessibleGridControlTableBase::ensureIsValidIndex( sal_Int32 nChildIndex )
+ throw ( lang::IndexOutOfBoundsException )
+{
+ if( nChildIndex >= implGetChildCount() )
+ throw lang::IndexOutOfBoundsException(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("child index is invalid") ), *this );
+}
+
+// ============================================================================
+
+} // namespace accessibility
+
+// ============================================================================
+
diff --git a/accessibility/source/extended/AccessibleGridControlTableCell.cxx b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
new file mode 100644
index 000000000000..f511eb43cbf8
--- /dev/null
+++ b/accessibility/source/extended/AccessibleGridControlTableCell.cxx
@@ -0,0 +1,376 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include "accessibility/extended/AccessibleGridControlTableCell.hxx"
+#include <svtools/accessibletable.hxx>
+#include "accessibility/extended/AccessibleGridControl.hxx"
+#include <tools/gen.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+
+namespace accessibility
+{
+ namespace
+ {
+ void checkIndex_Impl( sal_Int32 _nIndex, const ::rtl::OUString& _sText ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ if ( _nIndex >= _sText.getLength() )
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+
+ sal_Int32 getIndex_Impl( sal_Int32 _nRow, sal_uInt16 _nColumn, sal_uInt16 _nColumnCount )
+ {
+ return _nRow * _nColumnCount + _nColumn;
+ }
+ }
+ using namespace ::com::sun::star::lang;
+ using namespace utl;
+ using namespace comphelper;
+ using ::rtl::OUString;
+ using ::accessibility::AccessibleGridControl;
+ using namespace ::com::sun::star::uno;
+ using ::com::sun::star::accessibility::XAccessible;
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::svt;
+ using namespace ::svt::table;
+
+
+ // =============================================================================
+ // = AccessibleGridControlCell
+ // =============================================================================
+ //DBG_NAME( svt_AccessibleGridControlCell )
+ // -----------------------------------------------------------------------------
+ AccessibleGridControlCell::AccessibleGridControlCell(
+ const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable,
+ sal_Int32 _nRowPos, sal_uInt16 _nColPos, AccessibleTableControlObjType _eType )
+ :AccessibleGridControlBase( _rxParent, _rTable, _eType )
+ ,m_nRowPos( _nRowPos )
+ ,m_nColPos( _nColPos )
+ {
+// DBG_CTOR( svt_AccessibleGridControlCell, NULL );
+ // set accessible name here, because for that we need the position of the cell
+ // and so the base class isn't capable of doing this
+ ::rtl::OUString aAccName;
+ if(_eType == TCTYPE_TABLECELL)
+ aAccName = _rTable.GetAccessibleObjectName( TCTYPE_TABLECELL, _nRowPos, _nColPos );
+ else if(_eType == TCTYPE_ROWHEADERCELL)
+ aAccName = _rTable.GetAccessibleObjectName( TCTYPE_ROWHEADERCELL, _nRowPos, 0 );
+ else if(_eType == TCTYPE_COLUMNHEADERCELL)
+ aAccName = _rTable.GetAccessibleObjectName( TCTYPE_COLUMNHEADERCELL, 0, _nRowPos );
+ implSetName( aAccName );
+ }
+
+ // -----------------------------------------------------------------------------
+ AccessibleGridControlCell::~AccessibleGridControlCell()
+ {
+ }
+
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleGridControlCell::grabFocus() throw ( RuntimeException )
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ m_aTable.GoToCell( m_nColPos, m_nRowPos );
+ }
+ //// -----------------------------------------------------------------------------
+ // implementation of a table cell
+ ::rtl::OUString AccessibleGridControlTableCell::implGetText()
+ {
+ ensureIsAlive();
+ //return mpTable->GetAccessibleCellText( getRowPos(), static_cast< USHORT >( getColumnPos() ) );
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "test" ));
+ }
+
+ ::com::sun::star::lang::Locale AccessibleGridControlTableCell::implGetLocale()
+ {
+ ensureIsAlive();
+ return m_aTable.GetAccessible()->getAccessibleContext()->getLocale();
+ }
+
+ void AccessibleGridControlTableCell::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+ {
+ nStartIndex = 0;
+ nEndIndex = 0;
+ }
+
+ AccessibleGridControlTableCell::AccessibleGridControlTableCell(const Reference<XAccessible >& _rxParent,
+ IAccessibleTable& _rTable,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ AccessibleTableControlObjType eObjType)
+ :AccessibleGridControlCell( _rxParent, _rTable, _nRowPos, _nColPos, eObjType )
+ {
+ }
+
+ // XInterface -------------------------------------------------------------
+
+ /** Queries for a new interface. */
+ ::com::sun::star::uno::Any SAL_CALL AccessibleGridControlTableCell::queryInterface(
+ const ::com::sun::star::uno::Type& rType )
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ Any aRet = AccessibleGridControlCell::queryInterface(rType);
+ if ( !aRet.hasValue() )
+ aRet = AccessibleTextHelper_BASE::queryInterface(rType);
+ return aRet;
+ }
+
+ /** Aquires the object (calls acquire() on base class). */
+ void SAL_CALL AccessibleGridControlTableCell::acquire() throw ()
+ {
+ AccessibleGridControlCell::acquire();
+ }
+
+ /** Releases the object (calls release() on base class). */
+ void SAL_CALL AccessibleGridControlTableCell::release() throw ()
+ {
+ AccessibleGridControlCell::release();
+ }
+
+ ::com::sun::star::awt::Rectangle SAL_CALL AccessibleGridControlTableCell::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ ::com::sun::star::awt::Rectangle aRect;
+
+ if ( &m_aTable )
+ {
+ aRect = AWTRectangle( m_aTable.GetFieldCharacterBounds( getRowPos(), getColumnPos(), nIndex ) );
+ }
+
+ return aRect;
+ }
+
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getIndexAtPoint( const ::com::sun::star::awt::Point& _aPoint ) throw (RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ return m_aTable.GetFieldIndexAtPoint( getRowPos(), getColumnPos(), VCLPoint( _aPoint ) );
+ }
+
+ /** @return
+ The name of this class.
+ */
+ ::rtl::OUString SAL_CALL AccessibleGridControlTableCell::getImplementationName()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.accessibility.AccessibleGridControlTableCell" ) );
+ }
+
+ /** @return The count of visible children. */
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getAccessibleChildCount()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return 0;
+ }
+
+ /** @return The XAccessible interface of the specified child. */
+ ::com::sun::star::uno::Reference<
+ ::com::sun::star::accessibility::XAccessible > SAL_CALL
+ AccessibleGridControlTableCell::getAccessibleChild( sal_Int32 )
+ throw ( ::com::sun::star::lang::IndexOutOfBoundsException,
+ ::com::sun::star::uno::RuntimeException )
+ {
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+
+ /** Creates a new AccessibleStateSetHelper and fills it with states of the
+ current object.
+ @return
+ A filled AccessibleStateSetHelper.
+ */
+ ::utl::AccessibleStateSetHelper* AccessibleGridControlTableCell::implCreateStateSetHelper()
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ::utl::AccessibleStateSetHelper* pStateSetHelper = new ::utl::AccessibleStateSetHelper;
+
+ if( isAlive() )
+ {
+ // SHOWING done with mxParent
+ if( implIsShowing() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+
+ m_aTable.FillAccessibleStateSetForCell( *pStateSetHelper, getRowPos(), static_cast< sal_uInt16 >( getColumnPos() ) );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return pStateSetHelper;
+ }
+
+
+ // XAccessible ------------------------------------------------------------
+
+ /** @return The XAccessibleContext interface of this object. */
+ Reference< XAccessibleContext > SAL_CALL AccessibleGridControlTableCell::getAccessibleContext() throw ( RuntimeException )
+ {
+ ensureIsAlive();
+ return this;
+ }
+
+ // XAccessibleContext -----------------------------------------------------
+
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getAccessibleIndexInParent()
+ throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ return ( getRowPos() * m_aTable.GetColumnCount() ) + getColumnPos();
+ }
+
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ return -1;
+ }
+ sal_Bool SAL_CALL AccessibleGridControlTableCell::setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ sal_Unicode SAL_CALL AccessibleGridControlTableCell::getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getCharacter( nIndex );
+ }
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleGridControlTableCell::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >();
+ }
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getCharacterCount( );
+ }
+
+ ::rtl::OUString SAL_CALL AccessibleGridControlTableCell::getSelectedText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectedText( );
+ }
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectionStart( );
+ }
+ sal_Int32 SAL_CALL AccessibleGridControlTableCell::getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getSelectionEnd( );
+ }
+ sal_Bool SAL_CALL AccessibleGridControlTableCell::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ ::rtl::OUString SAL_CALL AccessibleGridControlTableCell::getText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getText( );
+ }
+ ::rtl::OUString SAL_CALL AccessibleGridControlTableCell::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleGridControlTableCell::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
+ }
+ sal_Bool SAL_CALL AccessibleGridControlTableCell::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ TCSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ::rtl::OUString sText = implGetText();
+ checkIndex_Impl( nStartIndex, sText );
+ checkIndex_Impl( nEndIndex, sText );
+
+ //!!! don't know how to put a string into the clipboard
+ return sal_False;
+ }
+ Rectangle AccessibleGridControlTableCell::implGetBoundingBox()
+ {
+ return Rectangle(Point(0,0),Point(0,0));//To Do - return headercell rectangle
+ }
+ // -----------------------------------------------------------------------------
+
+ Rectangle AccessibleGridControlTableCell::implGetBoundingBoxOnScreen()
+ {
+ return Rectangle(Point(0,0),Point(0,0));//To Do - return headercell rectangle
+ }
+}
diff --git a/accessibility/source/extended/accessiblebrowseboxcell.cxx b/accessibility/source/extended/accessiblebrowseboxcell.cxx
new file mode 100644
index 000000000000..1c7aca77e603
--- /dev/null
+++ b/accessibility/source/extended/accessiblebrowseboxcell.cxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/accessiblebrowseboxcell.hxx"
+#include <svtools/accessibletableprovider.hxx>
+
+// .................................................................................
+namespace accessibility
+{
+// .................................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::svt;
+
+ // =============================================================================
+ // = AccessibleBrowseBoxCell
+ // =============================================================================
+ DBG_NAME( svt_AccessibleBrowseBoxCell )
+ // -----------------------------------------------------------------------------
+ AccessibleBrowseBoxCell::AccessibleBrowseBoxCell(
+ const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
+ const Reference< XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos, sal_uInt16 _nColPos, AccessibleBrowseBoxObjType _eType )
+ :AccessibleBrowseBoxBase( _rxParent, _rBrowseBox, _xFocusWindow, _eType )
+ ,m_nRowPos( _nRowPos )
+ ,m_nColPos( _nColPos )
+ {
+ DBG_CTOR( svt_AccessibleBrowseBoxCell, NULL );
+ // set accessible name here, because for that we need the position of the cell
+ // and so the base class isn't capable of doing this
+ sal_Int32 nPos = _nRowPos * _rBrowseBox.GetColumnCount() + _nColPos;
+ ::rtl::OUString aAccName = _rBrowseBox.GetAccessibleObjectName( BBTYPE_TABLECELL, nPos );
+ implSetName( aAccName );
+ }
+
+ // -----------------------------------------------------------------------------
+ AccessibleBrowseBoxCell::~AccessibleBrowseBoxCell()
+ {
+ DBG_DTOR( svt_AccessibleBrowseBoxCell, NULL );
+ }
+
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleBrowseBoxCell::grabFocus() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+ mpBrowseBox->GoToCell( m_nRowPos, m_nColPos );
+ }
+ // -----------------------------------------------------------------------------
+ ::Rectangle AccessibleBrowseBoxCell::implGetBoundingBox()
+ {
+ return mpBrowseBox->GetFieldRectPixelAbs( m_nRowPos, m_nColPos, FALSE, FALSE );
+ }
+
+ // -----------------------------------------------------------------------------
+ ::Rectangle AccessibleBrowseBoxCell::implGetBoundingBoxOnScreen()
+ {
+ return mpBrowseBox->GetFieldRectPixelAbs( m_nRowPos, m_nColPos, FALSE );
+ }
+
+// .................................................................................
+} // namespace accessibility
+// .................................................................................
+
+
diff --git a/accessibility/source/extended/accessibleeditbrowseboxcell.cxx b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
new file mode 100644
index 000000000000..5f5472d04050
--- /dev/null
+++ b/accessibility/source/extended/accessibleeditbrowseboxcell.cxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
+#include <svtools/editbrowsebox.hxx>
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/accessibility/XAccessibleText.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+
+
+// .................................................................................
+namespace accessibility
+{
+// .................................................................................
+
+ using namespace com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::awt;
+ using namespace ::comphelper;
+ using namespace ::svt;
+
+ DBG_NAME( acc_EditBrowseBoxTableCell )
+ // -----------------------------------------------------------------------------
+ EditBrowseBoxTableCell::EditBrowseBoxTableCell(
+ const com::sun::star::uno::Reference< XAccessible >& _rxParent,
+ const com::sun::star::uno::Reference< XAccessible >& _rxOwningAccessible,
+ const com::sun::star::uno::Reference< XAccessibleContext >& _xControlChild,
+ IAccessibleTableProvider& _rBrowseBox,
+ const Reference< XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos)
+ :AccessibleBrowseBoxCell( _rxParent, _rBrowseBox, _xFocusWindow, _nRowPos, _nColPos )
+ ,OAccessibleContextWrapperHelper( ::comphelper::getProcessServiceFactory(), rBHelper, _xControlChild, _rxOwningAccessible, _rxParent )
+ {
+ DBG_CTOR( acc_EditBrowseBoxTableCell, NULL );
+
+ aggregateProxy( m_refCount, *this );
+ }
+
+ // -----------------------------------------------------------------------------
+ EditBrowseBoxTableCell::~EditBrowseBoxTableCell()
+ {
+ if ( !rBHelper.bDisposed )
+ {
+ acquire(); // to prevent duplicate dtor calls
+ dispose();
+ }
+
+ DBG_DTOR( acc_EditBrowseBoxTableCell, NULL );
+ }
+
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL EditBrowseBoxTableCell::getImplementationName() throw ( ::com::sun::star::uno::RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.comp.svtools.TableCellProxy" ) );
+ }
+
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2( EditBrowseBoxTableCell, AccessibleBrowseBoxCell, OAccessibleContextWrapperHelper )
+
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( EditBrowseBoxTableCell, AccessibleBrowseBoxCell, OAccessibleContextWrapperHelper )
+
+ // -----------------------------------------------------------------------------
+ void EditBrowseBoxTableCell::notifyTranslatedEvent( const AccessibleEventObject& _rEvent ) throw (RuntimeException)
+ {
+ commitEvent( _rEvent.EventId, _rEvent.NewValue, _rEvent.OldValue );
+ }
+
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL EditBrowseBoxTableCell::getForeground( ) throw (RuntimeException)
+ {
+ SolarMethodGuard aGuard( *this );
+ Reference< XAccessibleComponent > xAccComp( m_xInnerContext, UNO_QUERY );
+ if ( xAccComp.is() )
+ return xAccComp->getForeground();
+ return 0;
+ }
+
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL EditBrowseBoxTableCell::getBackground( ) throw (RuntimeException)
+ {
+ SolarMethodGuard aGuard( *this );
+ Reference< XAccessibleComponent > xAccComp( m_xInnerContext, UNO_QUERY );
+ if ( xAccComp.is() )
+ return xAccComp->getBackground();
+ return 0;
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL EditBrowseBoxTableCell::getAccessibleParent( ) throw (RuntimeException)
+ {
+ return m_xParentAccessible;
+ }
+
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL EditBrowseBoxTableCell::getAccessibleDescription() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+ return m_xInnerContext->getAccessibleDescription();
+ }
+
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL EditBrowseBoxTableCell::getAccessibleName() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+
+ // TODO: localize this!
+ String sName = mpBrowseBox->GetColumnDescription( ::sal::static_int_cast< sal_uInt16 >( getColumnPos() ) );
+ if ( 0 == sName.Len() )
+ {
+ sName = String::CreateFromAscii( "Column " );
+ sName += String::CreateFromInt32( getColumnPos( ) );
+ }
+
+ sName += String::CreateFromAscii( ", Row " );
+ sName += String::CreateFromInt32( getRowPos( ) );
+
+ return ::rtl::OUString( sName );
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleRelationSet > SAL_CALL EditBrowseBoxTableCell::getAccessibleRelationSet() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+ return OAccessibleContextWrapperHelper::getAccessibleRelationSet( );
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference<XAccessibleStateSet > SAL_CALL EditBrowseBoxTableCell::getAccessibleStateSet() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+ return m_xInnerContext->getAccessibleStateSet();
+ // TODO: shouldn't we add an ACTIVE here? Isn't the EditBrowseBoxTableCell always ACTIVE?
+ }
+
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL EditBrowseBoxTableCell::getAccessibleChildCount( ) throw (RuntimeException)
+ {
+ SolarMethodGuard aGuard( *this );
+ return OAccessibleContextWrapperHelper::getAccessibleChildCount();
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL EditBrowseBoxTableCell::getAccessibleChild( sal_Int32 i ) throw (::com::sun::star::lang::IndexOutOfBoundsException, RuntimeException)
+ {
+ SolarMethodGuard aGuard( *this );
+ return OAccessibleContextWrapperHelper::getAccessibleChild( i );
+ }
+
+ // -----------------------------------------------------------------------------
+ sal_Int16 SAL_CALL EditBrowseBoxTableCell::getAccessibleRole() throw ( RuntimeException )
+ {
+ SolarMethodGuard aGuard( *this );
+ return m_xInnerContext->getAccessibleRole( );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL EditBrowseBoxTableCell::dispose() throw( RuntimeException )
+ {
+ // simply disambiguate. Note that the OComponentHelper base in AccessibleBrowseBoxCell
+ // will call our "disposing()", which will call "dispose()" on the OAccessibleContextWrapperHelper
+ // so there is no need to do this here.
+ AccessibleBrowseBoxCell::dispose();
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL EditBrowseBoxTableCell::disposing( const EventObject& _rSource ) throw (RuntimeException)
+ {
+ AccessibleBrowseBoxCell::disposing( _rSource );
+ OAccessibleContextWrapperHelper::disposing( _rSource );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL EditBrowseBoxTableCell::disposing()
+ {
+ SolarMethodGuard aGuard( *this, false );
+ OAccessibleContextWrapperHelper::dispose();
+ // TODO: do we need to dispose our inner object? The base class does this, but is it a good idea?
+ AccessibleBrowseBoxCell::disposing();
+ }
+ // =============================================================================
+ // = EditBrowseBoxTableCell
+ // =============================================================================
+ DBG_NAME( EditBrowseBoxTableCellAccess )
+ // -----------------------------------------------------------------------------
+ EditBrowseBoxTableCellAccess::EditBrowseBoxTableCellAccess(
+ const Reference< XAccessible >& _rxParent, const Reference< XAccessible > _rxControlAccessible,
+ const Reference< XWindow >& _rxFocusWindow,
+ IAccessibleTableProvider& _rBrowseBox, sal_Int32 _nRowPos, sal_uInt16 _nColPos )
+ :EditBrowseBoxTableCellAccess_Base( m_aMutex )
+ ,m_xParent( _rxParent )
+ ,m_xControlAccessible( _rxControlAccessible )
+ ,m_xFocusWindow( _rxFocusWindow )
+ ,m_pBrowseBox( &_rBrowseBox )
+ ,m_nRowPos( _nRowPos )
+ ,m_nColPos( _nColPos )
+ {
+ DBG_CTOR( EditBrowseBoxTableCellAccess, NULL );
+ }
+ // -----------------------------------------------------------------------------
+ EditBrowseBoxTableCellAccess::~EditBrowseBoxTableCellAccess( )
+ {
+ DBG_DTOR( EditBrowseBoxTableCellAccess, NULL );
+ }
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL EditBrowseBoxTableCellAccess::getAccessibleContext( ) throw (RuntimeException)
+ {
+ if ( !m_pBrowseBox || !m_xControlAccessible.is() )
+ throw DisposedException();
+ Reference< XAccessibleContext > xMyContext( m_aContext );
+ if ( !xMyContext.is() )
+ {
+ Reference< XAccessibleContext > xInnerContext = m_xControlAccessible->getAccessibleContext();
+ Reference< XAccessible > xMe( this );
+
+ xMyContext = new EditBrowseBoxTableCell( m_xParent, xMe, xInnerContext, *m_pBrowseBox, m_xFocusWindow, m_nRowPos, m_nColPos );
+ m_aContext = xMyContext;
+ }
+ return xMyContext;
+ }
+ //--------------------------------------------------------------------
+ void SAL_CALL EditBrowseBoxTableCellAccess::disposing()
+ {
+ // dispose our context, if it still alive
+ Reference< XComponent > xMyContext( (Reference< XAccessibleContext >)m_aContext, UNO_QUERY );
+ if ( xMyContext.is() )
+ {
+ try
+ {
+ xMyContext->dispose();
+ }
+ catch( const Exception& e )
+ {
+ (void)e;
+ OSL_ENSURE( false, "EditBrowseBoxTableCellAccess::disposing: caught an exception while disposing the context!" );
+ }
+ }
+
+ m_pBrowseBox = NULL;
+ m_xControlAccessible.clear();
+ m_aContext = Reference< XAccessibleContext >( );
+ // NO dispose of the inner object there: it is the XAccessible of an window, and disposing
+ // it would delete the respective VCL window
+ }
+// .................................................................................
+} // namespace accessibility
+// .................................................................................
diff --git a/accessibility/source/extended/accessibleiconchoicectrl.cxx b/accessibility/source/extended/accessibleiconchoicectrl.cxx
new file mode 100644
index 000000000000..397161fd6ac0
--- /dev/null
+++ b/accessibility/source/extended/accessibleiconchoicectrl.cxx
@@ -0,0 +1,372 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/accessibleiconchoicectrl.hxx"
+#include "accessibility/extended/accessibleiconchoicectrlentry.hxx"
+#include <svtools/ivctrl.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <cppuhelper/typeprovider.hxx>
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ // class AccessibleIconChoiceCtrl ----------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleIconChoiceCtrl)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleIconChoiceCtrl::AccessibleIconChoiceCtrl( SvtIconChoiceCtrl& _rIconCtrl, const Reference< XAccessible >& _xParent ) :
+
+ VCLXAccessibleComponent( _rIconCtrl.GetWindowPeer() ),
+ m_xParent ( _xParent )
+ {
+ DBG_CTOR( AccessibleIconChoiceCtrl, NULL );
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleIconChoiceCtrl::~AccessibleIconChoiceCtrl()
+ {
+ DBG_DTOR( AccessibleIconChoiceCtrl, NULL );
+ }
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2(AccessibleIconChoiceCtrl, VCLXAccessibleComponent, AccessibleIconChoiceCtrl_BASE)
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2(AccessibleIconChoiceCtrl, VCLXAccessibleComponent, AccessibleIconChoiceCtrl_BASE)
+ // -----------------------------------------------------------------------------
+ void AccessibleIconChoiceCtrl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ if ( isAlive() )
+ {
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_LISTBOX_SELECT :
+ {
+ // First send an event that tells the listeners of a
+ // modified selection. The active descendant event is
+ // send after that so that the receiving AT has time to
+ // read the text or name of the active child.
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ if ( pCtrl && pCtrl->HasFocus() )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = static_cast< SvxIconChoiceCtrlEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ ULONG nPos = pCtrl->GetEntryListPos( pEntry );
+ Reference< XAccessible > xChild = new AccessibleIconChoiceCtrlEntry( *pCtrl, nPos, this );
+ uno::Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ }
+ }
+ break;
+ }
+ default:
+ VCLXAccessibleComponent::ProcessWindowChildEvent (rVclWindowEvent);
+ }
+ }
+ }
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrl::disposing()
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ m_xParent = NULL;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrl::getImplementationName() throw (RuntimeException)
+ {
+ return getImplementationName_Static();
+ }
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL AccessibleIconChoiceCtrl::getSupportedServiceNames() throw (RuntimeException)
+ {
+ return getSupportedServiceNames_Static();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrl::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported( getSupportedServiceNames() );
+ const ::rtl::OUString* pSupported = aSupported.getConstArray();
+ const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+ for ( ; pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported )
+ ;
+
+ return pSupported != pEnd;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo - static methods
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > AccessibleIconChoiceCtrl::getSupportedServiceNames_Static(void) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported(3);
+ aSupported[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleContext") );
+ aSupported[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleComponent") );
+ aSupported[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.AccessibleIconChoiceControl") );
+ return aSupported;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleIconChoiceCtrl::getImplementationName_Static(void) throw (RuntimeException)
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.svtools.AccessibleIconChoiceControl") );
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleIconChoiceCtrl::getAccessibleContext( ) throw (RuntimeException)
+ {
+ ensureAlive();
+ return this;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ return getCtrl()->GetEntryCount();
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getAccessibleChild( sal_Int32 i ) throw (RuntimeException, IndexOutOfBoundsException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry(i);
+ if ( !pEntry )
+ throw RuntimeException();
+
+ return new AccessibleIconChoiceCtrlEntry( *pCtrl, i, this );
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getAccessibleParent( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ ensureAlive();
+ return m_xParent;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int16 SAL_CALL AccessibleIconChoiceCtrl::getAccessibleRole( ) throw (RuntimeException)
+ {
+ return AccessibleRole::TREE;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrl::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ return getCtrl()->GetAccessibleDescription();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrl::getAccessibleName( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ ::rtl::OUString sName = getCtrl()->GetAccessibleName();
+ if ( sName.getLength() == 0 )
+ sName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "IconChoiceControl" ) );
+ return sName;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleSelection
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrl::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ pCtrl->SetCursor( pEntry );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrl::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ return ( pCtrl->GetCursor() == pEntry );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrl::clearAccessibleSelection( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ getCtrl()->SetNoSelection();
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrl::selectAllAccessibleChildren( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 i, nCount = 0;
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ nCount = pCtrl->GetEntryCount();
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( i );
+ if ( pCtrl->GetCursor() != pEntry )
+ pCtrl->SetCursor( pEntry );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ nCount = pCtrl->GetEntryCount();
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( i );
+ if ( pCtrl->GetCursor() == pEntry )
+ ++nSelCount;
+ }
+
+ return nSelCount;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrl::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ nCount = pCtrl->GetEntryCount();
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( i );
+ if ( pCtrl->GetCursor() == pEntry )
+ ++nSelCount;
+
+ if ( nSelCount == ( nSelectedChildIndex + 1 ) )
+ {
+ xChild = new AccessibleIconChoiceCtrlEntry( *pCtrl, i, this );
+ break;
+ }
+ }
+
+ return xChild;
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrl::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+ SvtIconChoiceCtrl* pCtrl = getCtrl();
+ nCount = pCtrl->GetEntryCount();
+ bool bFound = false;
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvxIconChoiceCtrlEntry* pEntry = pCtrl->GetEntry( i );
+ if ( pEntry->IsSelected() )
+ {
+ ++nSelCount;
+ if ( i == nSelectedChildIndex )
+ bFound = true;
+ }
+ }
+
+ // if only one entry is selected and its index is choosen to deselect -> no selection anymore
+ if ( 1 == nSelCount && bFound )
+ pCtrl->SetNoSelection();
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleIconChoiceCtrl::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ {
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+ if ( isAlive() )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
+ rStateSet.AddState( AccessibleStateType::SELECTABLE );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ SvtIconChoiceCtrl* AccessibleIconChoiceCtrl::getCtrl()
+ {
+ return static_cast<SvtIconChoiceCtrl*>(GetWindow());
+ }
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/accessibleiconchoicectrlentry.cxx b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
new file mode 100644
index 000000000000..19e809bcc6ea
--- /dev/null
+++ b/accessibility/source/extended/accessibleiconchoicectrlentry.cxx
@@ -0,0 +1,756 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessibleiconchoicectrlentry.hxx>
+#include <svtools/ivctrl.hxx>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Size.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/controllayout.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <svtools/stringtransfer.hxx>
+#include <comphelper/accessibleeventnotifier.hxx>
+
+#define ACCESSIBLE_ACTION_COUNT 1
+#define AID_EXPAND 0
+#define AID_COLLAPSE 1
+
+namespace
+{
+ void checkActionIndex_Impl( sal_Int32 _nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ if ( _nIndex < 0 || _nIndex >= ACCESSIBLE_ACTION_COUNT )
+ // only three actions
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+}
+
+//........................................................................
+namespace accessibility
+{
+ //........................................................................
+ // class ALBSolarGuard ---------------------------------------------------------
+
+ /** Aquire the solar mutex. */
+ class ALBSolarGuard : public ::vos::OGuard
+ {
+ public:
+ inline ALBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+ };
+
+ // class AccessibleIconChoiceCtrlEntry -----------------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleIconChoiceCtrlEntry)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleIconChoiceCtrlEntry::AccessibleIconChoiceCtrlEntry( SvtIconChoiceCtrl& _rIconCtrl,
+ ULONG _nPos,
+ const Reference< XAccessible >& _xParent ) :
+
+ AccessibleIconChoiceCtrlEntry_BASE ( m_aMutex ),
+
+ m_pIconCtrl ( &_rIconCtrl ),
+ m_nIndex ( _nPos ),
+ m_nClientId ( 0 ),
+ m_xParent ( _xParent )
+
+ {
+ osl_incrementInterlockedCount( &m_refCount );
+ {
+ Reference< XComponent > xComp( m_xParent, UNO_QUERY );
+ if ( xComp.is() )
+ xComp->addEventListener( this );
+ }
+ osl_decrementInterlockedCount( &m_refCount );
+
+ DBG_CTOR( AccessibleIconChoiceCtrlEntry, NULL );
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleIconChoiceCtrlEntry::disposing( const EventObject& _rSource )
+throw(RuntimeException)
+ {
+ if ( _rSource.Source == m_xParent )
+ {
+ dispose();
+ DBG_ASSERT( !m_xParent.is() && ( NULL == m_pIconCtrl ), "" );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleIconChoiceCtrlEntry::~AccessibleIconChoiceCtrlEntry()
+ {
+ DBG_DTOR( AccessibleIconChoiceCtrlEntry, NULL );
+
+ if ( IsAlive_Impl() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+ }
+ #ifdef ACCESSIBLE_EVENT_NOTIFICATION_ENABLED
+ // (the following method is unused currently. If you need it, simply remove the #ifdef thing here and
+ // in the hxx)
+ // -----------------------------------------------------------------------------
+ void AccessibleIconChoiceCtrlEntry::NotifyAccessibleEvent( sal_Int16 _nEventId,
+ const ::com::sun::star::uno::Any& _aOldValue,
+ const ::com::sun::star::uno::Any& _aNewValue )
+ {
+ Reference< uno::XInterface > xSource( *this );
+ AccessibleEventObject aEventObj( xSource, _nEventId, _aNewValue, _aOldValue );
+
+ if (m_nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEventObj );
+ }
+ #endif
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBox_Impl() const
+ {
+ Rectangle aRect;
+ SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
+ if ( pEntry )
+ aRect = m_pIconCtrl->GetBoundingBox( pEntry );
+
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen_Impl() const
+ {
+ Rectangle aRect;
+ SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
+ if ( pEntry )
+ {
+ aRect = m_pIconCtrl->GetBoundingBox( pEntry );
+ Point aTopLeft = aRect.TopLeft();
+ aTopLeft += m_pIconCtrl->GetWindowExtentsRelative( NULL ).TopLeft();
+ aRect = Rectangle( aTopLeft, aRect.GetSize() );
+ }
+
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool AccessibleIconChoiceCtrlEntry::IsAlive_Impl() const
+ {
+ return ( !rBHelper.bDisposed && !rBHelper.bInDispose && m_pIconCtrl );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool AccessibleIconChoiceCtrlEntry::IsShowing_Impl() const
+ {
+ sal_Bool bShowing = sal_False;
+ Reference< XAccessibleContext > m_xParentContext =
+ m_xParent.is() ? m_xParent->getAccessibleContext() : Reference< XAccessibleContext >();
+ if( m_xParentContext.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( m_xParentContext, uno::UNO_QUERY );
+ if( xParentComp.is() )
+ bShowing = GetBoundingBox_Impl().IsOver( VCLRectangle( xParentComp->getBounds() ) );
+ }
+
+ return bShowing;
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBox() throw ( lang::DisposedException )
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return GetBoundingBox_Impl();
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleIconChoiceCtrlEntry::GetBoundingBoxOnScreen() throw ( lang::DisposedException )
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return GetBoundingBoxOnScreen_Impl();
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleIconChoiceCtrlEntry::EnsureIsAlive() const throw ( lang::DisposedException )
+ {
+ if ( !IsAlive_Impl() )
+ throw lang::DisposedException();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleIconChoiceCtrlEntry::implGetText()
+ {
+ ::rtl::OUString sRet;
+ SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
+ if ( pEntry )
+ sRet = pEntry->GetDisplayText();
+ return sRet;
+ }
+ // -----------------------------------------------------------------------------
+ Locale AccessibleIconChoiceCtrlEntry::implGetLocale()
+ {
+ Locale aLocale;
+ aLocale = Application::GetSettings().GetUILocale();
+
+ return aLocale;
+ }
+ void AccessibleIconChoiceCtrlEntry::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+ {
+ nStartIndex = 0;
+ nEndIndex = 0;
+ }
+ // -----------------------------------------------------------------------------
+ // XTypeProvider
+ // -----------------------------------------------------------------------------
+ // -----------------------------------------------------------------------------
+ Sequence< sal_Int8 > AccessibleIconChoiceCtrlEntry::getImplementationId() throw (RuntimeException)
+ {
+ static ::cppu::OImplementationId* pId = NULL;
+
+ if ( !pId )
+ {
+ ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+
+ if ( !pId )
+ {
+ static ::cppu::OImplementationId aId;
+ pId = &aId;
+ }
+ }
+ return pId->getImplementationId();
+ }
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrlEntry::disposing()
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // Send a disposing to all listeners.
+ if ( m_nClientId )
+ {
+ sal_uInt32 nId = m_nClientId;
+ m_nClientId = 0;
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+ }
+
+ Reference< XComponent > xComp( m_xParent, UNO_QUERY );
+ if ( xComp.is() )
+ xComp->removeEventListener( this );
+
+ m_pIconCtrl = NULL;
+ m_xParent = NULL;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getImplementationName() throw(RuntimeException)
+ {
+ return getImplementationName_Static();
+ }
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL AccessibleIconChoiceCtrlEntry::getSupportedServiceNames() throw(RuntimeException)
+ {
+ return getSupportedServiceNames_Static();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported( getSupportedServiceNames() );
+ const ::rtl::OUString* pSupported = aSupported.getConstArray();
+ const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+ for ( ; pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported )
+ ;
+
+ return pSupported != pEnd;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo - static methods
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > AccessibleIconChoiceCtrlEntry::getSupportedServiceNames_Static(void) throw( RuntimeException )
+ {
+ Sequence< ::rtl::OUString > aSupported(3);
+ aSupported[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleContext") );
+ aSupported[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleComponent") );
+ aSupported[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.AccessibleIconChoiceControlEntry") );
+ return aSupported;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleIconChoiceCtrlEntry::getImplementationName_Static(void) throw( RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.svtools.AccessibleIconChoiceControlEntry") );
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleContext( ) throw (RuntimeException)
+ {
+ EnsureIsAlive();
+ return this;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChildCount( ) throw (RuntimeException)
+ {
+ return 0; // no children
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleChild( sal_Int32 ) throw (IndexOutOfBoundsException,RuntimeException)
+ {
+ throw IndexOutOfBoundsException();
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleParent( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return m_xParent;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleIndexInParent( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return m_nIndex;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int16 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleRole( ) throw (RuntimeException)
+ {
+ return AccessibleRole::LABEL;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ // no description for every item
+ return ::rtl::OUString();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleName( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return implGetText();
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleRelationSet > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleRelationSet( ) throw (RuntimeException)
+ {
+ return new utl::AccessibleRelationSetHelper;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleStateSet > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleStateSet( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xStateSet = pStateSetHelper;
+
+ if ( IsAlive_Impl() )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ if ( IsShowing_Impl() )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ }
+
+ if ( m_pIconCtrl && m_pIconCtrl->GetCursor() == m_pIconCtrl->GetEntry( m_nIndex ) )
+ pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return xStateSet;
+ }
+ // -----------------------------------------------------------------------------
+ Locale SAL_CALL AccessibleIconChoiceCtrlEntry::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return implGetLocale();
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::containsPoint( const awt::Point& rPoint ) throw (RuntimeException)
+ {
+ return Rectangle( Point(), GetBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+ {
+ return Reference< XAccessible >();
+ }
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL AccessibleIconChoiceCtrlEntry::getBounds( ) throw (RuntimeException)
+ {
+ return AWTRectangle( GetBoundingBox() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL AccessibleIconChoiceCtrlEntry::getLocation( ) throw (RuntimeException)
+ {
+ return AWTPoint( GetBoundingBox().TopLeft() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL AccessibleIconChoiceCtrlEntry::getLocationOnScreen( ) throw (RuntimeException)
+ {
+ return AWTPoint( GetBoundingBoxOnScreen().TopLeft() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Size SAL_CALL AccessibleIconChoiceCtrlEntry::getSize( ) throw (RuntimeException)
+ {
+ return AWTSize( GetBoundingBox().GetSize() );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrlEntry::grabFocus( ) throw (RuntimeException)
+ {
+ // do nothing, because no focus for each item
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 AccessibleIconChoiceCtrlEntry::getForeground( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 AccessibleIconChoiceCtrlEntry::getBackground( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleText
+ // -----------------------------------------------------------------------------
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL AccessibleIconChoiceCtrlEntry::getCharacterBounds( sal_Int32 _nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ if ( ( 0 > _nIndex ) || ( getCharacterCount() <= _nIndex ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pIconCtrl )
+ {
+ Rectangle aItemRect = GetBoundingBox_Impl();
+ Rectangle aCharRect = m_pIconCtrl->GetEntryCharacterBounds( m_nIndex, _nIndex );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pIconCtrl )
+ {
+ ::vcl::ControlLayoutData aLayoutData;
+ Rectangle aItemRect = GetBoundingBox_Impl();
+ m_pIconCtrl->RecordLayoutData( &aLayoutData, aItemRect );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ nIndex = aLayoutData.GetIndexForPoint( aPnt );
+
+ long nLen = aLayoutData.m_aUnicodeBoundRects.size();
+ for ( long i = 0; i < nLen; ++i )
+ {
+ Rectangle aRect = aLayoutData.GetCharacterBounds(i);
+ BOOL bInside = aRect.IsInside( aPnt );
+
+ if ( bInside )
+ break;
+ }
+ }
+
+ return nIndex;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ String sText = getText();
+ if ( ( 0 > nStartIndex ) || ( sText.Len() <= nStartIndex )
+ || ( 0 > nEndIndex ) || ( sText.Len() <= nEndIndex ) )
+ throw IndexOutOfBoundsException();
+
+ sal_Int32 nLen = nEndIndex - nStartIndex + 1;
+ ::svt::OStringTransfer::CopyString( sText.Copy( (USHORT)nStartIndex, (USHORT)nLen ), m_pIconCtrl );
+
+ return sal_True;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleEventBroadcaster
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrlEntry::addEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+ {
+ if (xListener.is())
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ if (!m_nClientId)
+ m_nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleIconChoiceCtrlEntry::removeEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+ {
+ if (xListener.is())
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+ sal_Int32 nId = m_nClientId;
+ m_nClientId = 0;
+ comphelper::AccessibleEventNotifier::revokeClient( nId );
+ }
+ }
+ }
+
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ return -1;
+ }
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ sal_Unicode SAL_CALL AccessibleIconChoiceCtrlEntry::getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getCharacter( nIndex );
+ }
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleIconChoiceCtrlEntry::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >();
+ }
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getCharacterCount( );
+ }
+
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getSelectedText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectedText( );
+ }
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectionStart( );
+ }
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectionEnd( );
+ }
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getText( );
+ }
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleIconChoiceCtrlEntry::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleIconChoiceCtrlEntry::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleIconChoiceCtrlEntry::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleAction
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleActionCount( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // three actions supported
+ return ACCESSIBLE_ACTION_COUNT;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleIconChoiceCtrlEntry::doAccessibleAction( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Bool bRet = sal_False;
+ checkActionIndex_Impl( nIndex );
+ EnsureIsAlive();
+
+ SvxIconChoiceCtrlEntry* pEntry = m_pIconCtrl->GetEntry( m_nIndex );
+ if ( pEntry && !pEntry->IsSelected() )
+ {
+ m_pIconCtrl->SetNoSelection();
+ m_pIconCtrl->SetCursor( pEntry );
+ bRet = sal_True;
+ }
+
+ return bRet;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleIconChoiceCtrlEntry::getAccessibleActionDescription( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ checkActionIndex_Impl( nIndex );
+ EnsureIsAlive();
+
+ static const ::rtl::OUString sActionDesc( RTL_CONSTASCII_USTRINGPARAM( "Select" ) );
+ return sActionDesc;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleKeyBinding > AccessibleIconChoiceCtrlEntry::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Reference< XAccessibleKeyBinding > xRet;
+ checkActionIndex_Impl( nIndex );
+ // ... which key?
+ return xRet;
+ }
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/accessiblelistbox.cxx b/accessibility/source/extended/accessiblelistbox.cxx
new file mode 100644
index 000000000000..a352ed51a78c
--- /dev/null
+++ b/accessibility/source/extended/accessiblelistbox.cxx
@@ -0,0 +1,432 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessiblelistbox.hxx>
+#include <accessibility/extended/accessiblelistboxentry.hxx>
+#include <svtools/svtreebx.hxx>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Size.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ // class AccessibleListBox -----------------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleListBox)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleListBox::AccessibleListBox( SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) :
+
+ VCLXAccessibleComponent( _rListBox.GetWindowPeer() ),
+ m_xParent( _xParent )
+ {
+ DBG_CTOR( AccessibleListBox, NULL );
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleListBox::~AccessibleListBox()
+ {
+ DBG_DTOR( AccessibleListBox, NULL );
+ if ( isAlive() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+ }
+ IMPLEMENT_FORWARD_XINTERFACE2(AccessibleListBox, VCLXAccessibleComponent, AccessibleListBox_BASE)
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2(AccessibleListBox, VCLXAccessibleComponent, AccessibleListBox_BASE)
+ // -----------------------------------------------------------------------------
+ SvTreeListBox* AccessibleListBox::getListBox() const
+ {
+ return static_cast< SvTreeListBox* >( const_cast<AccessibleListBox*>(this)->GetWindow() );
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleListBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ if ( isAlive() )
+ {
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_CHECKBOX_TOGGLE :
+ {
+ if ( getListBox() && getListBox()->HasFocus() )
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( !pEntry )
+ pEntry = getListBox()->GetCurEntry();
+
+ if ( pEntry )
+ {
+ Reference< XAccessible > xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ uno::Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ }
+ }
+ break;
+ }
+
+ case VCLEVENT_LISTBOX_SELECT :
+ {
+ // First send an event that tells the listeners of a
+ // modified selection. The active descendant event is
+ // send after that so that the receiving AT has time to
+ // read the text or name of the active child.
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ if ( getListBox() && getListBox()->HasFocus() )
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ Reference< XAccessible > xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ uno::Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aOldValue, aNewValue );
+ }
+ }
+ break;
+
+ // --> OD 2009-04-01 #i92103#
+ case VCLEVENT_LISTBOX_ENTRY_EXPANDED :
+ case VCLEVENT_LISTBOX_ENTRY_COLLAPSED :
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ AccessibleListBoxEntry* pAccListBoxEntry =
+ new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ Reference< XAccessible > xChild = pAccListBoxEntry;
+ const short nAccEvent =
+ ( rVclWindowEvent.GetId() == VCLEVENT_LISTBOX_ENTRY_EXPANDED )
+ ? AccessibleEventId::LISTBOX_ENTRY_EXPANDED
+ : AccessibleEventId::LISTBOX_ENTRY_COLLAPSED;
+ uno::Any aListBoxEntry;
+ aListBoxEntry <<= xChild;
+ NotifyAccessibleEvent( nAccEvent, Any(), aListBoxEntry );
+ if ( getListBox() && getListBox()->HasFocus() )
+ {
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, Any(), aListBoxEntry );
+ }
+ }
+ break;
+ }
+ // <--
+ }
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+ }
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleListBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_SHOW:
+ case VCLEVENT_WINDOW_HIDE:
+ {
+ }
+ break;
+ default:
+ {
+ VCLXAccessibleComponent::ProcessWindowChildEvent( rVclWindowEvent );
+ }
+ break;
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBox::disposing()
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ VCLXAccessibleComponent::disposing();
+ m_xParent = NULL;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBox::getImplementationName() throw(RuntimeException)
+ {
+ return getImplementationName_Static();
+ }
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL AccessibleListBox::getSupportedServiceNames() throw(RuntimeException)
+ {
+ return getSupportedServiceNames_Static();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBox::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported( getSupportedServiceNames() );
+ const ::rtl::OUString* pSupported = aSupported.getConstArray();
+ const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+ for ( ; pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported )
+ ;
+
+ return pSupported != pEnd;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo - static methods
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > AccessibleListBox::getSupportedServiceNames_Static(void) throw( RuntimeException )
+ {
+ Sequence< ::rtl::OUString > aSupported(3);
+ aSupported[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleContext") );
+ aSupported[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleComponent") );
+ aSupported[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.AccessibleTreeListBox") );
+ return aSupported;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleListBox::getImplementationName_Static(void) throw( RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.svtools.AccessibleTreeListBox") );
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleListBox::getAccessibleContext( ) throw (RuntimeException)
+ {
+ ensureAlive();
+ return this;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBox::getAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 nCount = 0;
+ SvTreeListBox* pSvTreeListBox = getListBox();
+ if ( pSvTreeListBox )
+ nCount = pSvTreeListBox->GetLevelChildCount( NULL );
+
+ return nCount;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBox::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException,RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ SvLBoxEntry* pEntry = getListBox()->GetEntry(i);
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ return new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBox::getAccessibleParent( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ ensureAlive();
+ return m_xParent;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int16 SAL_CALL AccessibleListBox::getAccessibleRole( ) throw (RuntimeException)
+ {
+ return AccessibleRole::TREE;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBox::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ return getListBox()->GetAccessibleDescription();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBox::getAccessibleName( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+ return getListBox()->GetAccessibleName();
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleSelection
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBox::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ getListBox()->Select( pEntry, TRUE );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBox::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ return getListBox()->IsSelected( pEntry );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBox::clearAccessibleSelection( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 i, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( NULL );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ getListBox()->Select( pEntry, FALSE );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBox::selectAllAccessibleChildren( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 i, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( NULL );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
+ if ( !getListBox()->IsSelected( pEntry ) )
+ getListBox()->Select( pEntry, TRUE );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBox::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( NULL );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ ++nSelCount;
+ }
+
+ return nSelCount;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBox::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( NULL );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ ++nSelCount;
+
+ if ( nSelCount == ( nSelectedChildIndex + 1 ) )
+ {
+ xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ break;
+ }
+ }
+
+ return xChild;
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBox::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::comphelper::OExternalLockGuard aGuard( this );
+
+ ensureAlive();
+
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( nSelectedChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ getListBox()->Select( pEntry, FALSE );
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleListBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ {
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+ if ( getListBox() && isAlive() )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet.AddState( AccessibleStateType::MANAGES_DESCENDANTS );
+ if ( getListBox()->GetSelectionMode() == MULTIPLE_SELECTION )
+ rStateSet.AddState( AccessibleStateType::MULTI_SELECTABLE );
+ }
+ }
+
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/accessiblelistboxentry.cxx b/accessibility/source/extended/accessiblelistboxentry.cxx
new file mode 100644
index 000000000000..5ce10cbc81b3
--- /dev/null
+++ b/accessibility/source/extended/accessiblelistboxentry.cxx
@@ -0,0 +1,970 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/accessiblelistboxentry.hxx"
+#include <svtools/svtreebx.hxx>
+#include <svtools/stringtransfer.hxx>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Size.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/controllayout.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <comphelper/accessibleeventnotifier.hxx>
+#include <toolkit/helper/vclunohelper.hxx>
+
+#define ACCESSIBLE_ACTION_COUNT 1
+
+namespace
+{
+ void checkActionIndex_Impl( sal_Int32 _nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ if ( _nIndex < 0 || _nIndex >= ACCESSIBLE_ACTION_COUNT )
+ // only three actions
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+}
+
+//........................................................................
+namespace accessibility
+{
+ //........................................................................
+ // class ALBSolarGuard ---------------------------------------------------------
+
+ /** Aquire the solar mutex. */
+ class ALBSolarGuard : public ::vos::OGuard
+ {
+ public:
+ inline ALBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+ };
+
+ // class AccessibleListBoxEntry -----------------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleListBoxEntry)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleListBoxEntry::AccessibleListBoxEntry( SvTreeListBox& _rListBox,
+ SvLBoxEntry* _pEntry,
+ const Reference< XAccessible >& _xParent ) :
+
+ AccessibleListBoxEntry_BASE ( m_aMutex ),
+ ListBoxAccessibleBase( _rListBox ),
+
+ m_nClientId ( 0 ),
+ m_aParent ( _xParent )
+
+ {
+ DBG_CTOR( AccessibleListBoxEntry, NULL );
+
+ _rListBox.FillEntryPath( _pEntry, m_aEntryPath );
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleListBoxEntry::~AccessibleListBoxEntry()
+ {
+ DBG_DTOR( AccessibleListBoxEntry, NULL );
+
+ if ( IsAlive_Impl() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleListBoxEntry::GetBoundingBox_Impl() const
+ {
+ Rectangle aRect;
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ aRect = getListBox()->GetBoundingRect( pEntry );
+ SvLBoxEntry* pParent = getListBox()->GetParent( pEntry );
+ if ( pParent )
+ {
+ // position relative to parent entry
+ Point aTopLeft = aRect.TopLeft();
+ aTopLeft -= getListBox()->GetBoundingRect( pParent ).TopLeft();
+ aRect = Rectangle( aTopLeft, aRect.GetSize() );
+ }
+ }
+
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen_Impl() const
+ {
+ Rectangle aRect;
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ aRect = getListBox()->GetBoundingRect( pEntry );
+ Point aTopLeft = aRect.TopLeft();
+ aTopLeft += getListBox()->GetWindowExtentsRelative( NULL ).TopLeft();
+ aRect = Rectangle( aTopLeft, aRect.GetSize() );
+ }
+
+ return aRect;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool AccessibleListBoxEntry::IsAlive_Impl() const
+ {
+ return ( !rBHelper.bDisposed && !rBHelper.bInDispose && isAlive() );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool AccessibleListBoxEntry::IsShowing_Impl() const
+ {
+ Reference< XAccessible > xParent = implGetParentAccessible( );
+
+ sal_Bool bShowing = sal_False;
+ Reference< XAccessibleContext > m_xParentContext =
+ xParent.is() ? xParent->getAccessibleContext() : Reference< XAccessibleContext >();
+ if( m_xParentContext.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( m_xParentContext, uno::UNO_QUERY );
+ if( xParentComp.is() )
+ bShowing = GetBoundingBox_Impl().IsOver( VCLRectangle( xParentComp->getBounds() ) );
+ }
+
+ return bShowing;
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleListBoxEntry::GetBoundingBox() throw ( lang::DisposedException )
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return GetBoundingBox_Impl();
+ }
+ // -----------------------------------------------------------------------------
+ Rectangle AccessibleListBoxEntry::GetBoundingBoxOnScreen() throw ( lang::DisposedException )
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return GetBoundingBoxOnScreen_Impl();
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleListBoxEntry::EnsureIsAlive() const throw ( lang::DisposedException )
+ {
+ if ( !IsAlive_Impl() )
+ throw lang::DisposedException();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleListBoxEntry::implGetText()
+ {
+ ::rtl::OUString sRet;
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ sRet = getListBox()->SearchEntryText( pEntry );
+ return sRet;
+ }
+ // -----------------------------------------------------------------------------
+ Locale AccessibleListBoxEntry::implGetLocale()
+ {
+ Locale aLocale;
+ aLocale = Application::GetSettings().GetUILocale();
+
+ return aLocale;
+ }
+ void AccessibleListBoxEntry::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+ {
+ nStartIndex = 0;
+ nEndIndex = 0;
+ }
+ // -----------------------------------------------------------------------------
+ // XTypeProvider
+ // -----------------------------------------------------------------------------
+ // -----------------------------------------------------------------------------
+ Sequence< sal_Int8 > AccessibleListBoxEntry::getImplementationId() throw (RuntimeException)
+ {
+ static ::cppu::OImplementationId* pId = NULL;
+
+ if ( !pId )
+ {
+ ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+
+ if ( !pId )
+ {
+ static ::cppu::OImplementationId aId;
+ pId = &aId;
+ }
+ }
+ return pId->getImplementationId();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XComponent/ListBoxAccessibleBase
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::dispose() throw ( uno::RuntimeException )
+ {
+ AccessibleListBoxEntry_BASE::dispose();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::disposing()
+ {
+ ALBSolarGuard();
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Reference< XAccessible > xKeepAlive( this );
+
+ // Send a disposing to all listeners.
+ if ( m_nClientId )
+ {
+ ::comphelper::AccessibleEventNotifier::TClientId nId = m_nClientId;
+ m_nClientId = 0;
+ ::comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+ }
+
+ // clean up
+ {
+
+ ListBoxAccessibleBase::disposing();
+ }
+ m_aParent = WeakReference< XAccessible >();
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getImplementationName() throw(RuntimeException)
+ {
+ return getImplementationName_Static();
+ }
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > SAL_CALL AccessibleListBoxEntry::getSupportedServiceNames() throw(RuntimeException)
+ {
+ return getSupportedServiceNames_Static();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBoxEntry::supportsService( const ::rtl::OUString& _rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aSupported( getSupportedServiceNames() );
+ const ::rtl::OUString* pSupported = aSupported.getConstArray();
+ const ::rtl::OUString* pEnd = pSupported + aSupported.getLength();
+ for ( ; pSupported != pEnd && !pSupported->equals(_rServiceName); ++pSupported )
+ ;
+
+ return pSupported != pEnd;
+ }
+ // -----------------------------------------------------------------------------
+ // XServiceInfo - static methods
+ // -----------------------------------------------------------------------------
+ Sequence< ::rtl::OUString > AccessibleListBoxEntry::getSupportedServiceNames_Static(void) throw( RuntimeException )
+ {
+ Sequence< ::rtl::OUString > aSupported(3);
+ aSupported[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleContext") );
+ aSupported[1] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleComponent") );
+ aSupported[2] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.awt.AccessibleTreeListBoxEntry") );
+ return aSupported;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleListBoxEntry::getImplementationName_Static(void) throw( RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.svtools.AccessibleTreeListBoxEntry") );
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleListBoxEntry::getAccessibleContext( ) throw (RuntimeException)
+ {
+ EnsureIsAlive();
+ return this;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ sal_Int32 nCount = 0;
+ if ( pEntry )
+ nCount = getListBox()->GetLevelChildCount( pEntry );
+
+ return nCount;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException,RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvLBoxEntry* pEntry = pParent ? getListBox()->GetEntry( pParent, i ) : NULL;
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ return new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > AccessibleListBoxEntry::implGetParentAccessible( ) const
+ {
+ Reference< XAccessible > xParent = (Reference< XAccessible >)m_aParent;
+ if ( !xParent.is() )
+ {
+ DBG_ASSERT( m_aEntryPath.size(), "AccessibleListBoxEntry::getAccessibleParent: invalid path!" );
+ if ( 1 == m_aEntryPath.size() )
+ { // we're a top level entry
+ // -> our parent is the tree listbox itself
+ if ( getListBox() )
+ xParent = getListBox()->GetAccessible( );
+ }
+ else
+ { // we have a entry as parent -> get it's accessible
+
+ // shorten our access path by one
+ ::std::deque< sal_Int32 > aParentPath( m_aEntryPath );
+ aParentPath.pop_back();
+
+ // get the entry for this shortened access path
+ SvLBoxEntry* pParentEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ DBG_ASSERT( pParentEntry, "AccessibleListBoxEntry::implGetParentAccessible: could not obtain a parent entry!" );
+
+ if ( pParentEntry )
+ xParent = new AccessibleListBoxEntry( *getListBox(), pParentEntry, NULL );
+ // note that we pass NULL here as parent-accessible:
+ // this is allowed, as the AccessibleListBoxEntry class will create it's parent
+ // when needed
+ }
+ }
+
+ return xParent;
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleParent( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ return implGetParentAccessible( );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleIndexInParent( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ DBG_ASSERT( !m_aEntryPath.empty(), "empty path" );
+ return m_aEntryPath.empty() ? -1 : m_aEntryPath.back();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int16 SAL_CALL AccessibleListBoxEntry::getAccessibleRole( ) throw (RuntimeException)
+ {
+ return AccessibleRole::LABEL;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ // no description for every item
+ return ::rtl::OUString();
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getAccessibleName( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ return implGetText();
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleRelationSet > SAL_CALL AccessibleListBoxEntry::getAccessibleRelationSet( ) throw (RuntimeException)
+ {
+ Reference< XAccessibleRelationSet > xRelSet;
+ Reference< XAccessible > xParent;
+ if ( m_aEntryPath.size() > 1 ) // not a root entry
+ xParent = implGetParentAccessible();
+ if ( xParent.is() )
+ {
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Sequence< Reference< XInterface > > aSequence(1);
+ aSequence[0] = xParent;
+ pRelationSetHelper->AddRelation(
+ AccessibleRelation( AccessibleRelationType::NODE_CHILD_OF, aSequence ) );
+ xRelSet = pRelationSetHelper;
+ }
+ return xRelSet;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleStateSet > SAL_CALL AccessibleListBoxEntry::getAccessibleStateSet( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xStateSet = pStateSetHelper;
+
+ if ( IsAlive_Impl() )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ if ( getListBox()->IsInplaceEditingEnabled() )
+ pStateSetHelper->AddState( AccessibleStateType::EDITABLE );
+ if ( IsShowing_Impl() )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ getListBox()->FillAccessibleEntryStateSet(
+ getListBox()->GetEntryFromPath( m_aEntryPath ), *pStateSetHelper );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return xStateSet;
+ }
+ // -----------------------------------------------------------------------------
+ Locale SAL_CALL AccessibleListBoxEntry::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return implGetLocale();
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBoxEntry::containsPoint( const awt::Point& rPoint ) throw (RuntimeException)
+ {
+ return Rectangle( Point(), GetBoundingBox().GetSize() ).IsInside( VCLPoint( rPoint ) );
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getAccessibleAtPoint( const awt::Point& _aPoint ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( VCLPoint( _aPoint ) );
+ if ( !pEntry )
+ throw RuntimeException();
+
+ Reference< XAccessible > xAcc;
+ AccessibleListBoxEntry* pAccEntry = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ Rectangle aRect = pAccEntry->GetBoundingBox_Impl();
+ if ( aRect.IsInside( VCLPoint( _aPoint ) ) )
+ xAcc = pAccEntry;
+ return xAcc;
+ }
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL AccessibleListBoxEntry::getBounds( ) throw (RuntimeException)
+ {
+ return AWTRectangle( GetBoundingBox() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL AccessibleListBoxEntry::getLocation( ) throw (RuntimeException)
+ {
+ return AWTPoint( GetBoundingBox().TopLeft() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Point SAL_CALL AccessibleListBoxEntry::getLocationOnScreen( ) throw (RuntimeException)
+ {
+ return AWTPoint( GetBoundingBoxOnScreen().TopLeft() );
+ }
+ // -----------------------------------------------------------------------------
+ awt::Size SAL_CALL AccessibleListBoxEntry::getSize( ) throw (RuntimeException)
+ {
+ return AWTSize( GetBoundingBox().GetSize() );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::grabFocus( ) throw (RuntimeException)
+ {
+ // do nothing, because no focus for each item
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 AccessibleListBoxEntry::getForeground( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 AccessibleListBoxEntry::getBackground( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleText
+ // -----------------------------------------------------------------------------
+ // -----------------------------------------------------------------------------
+ awt::Rectangle SAL_CALL AccessibleListBoxEntry::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ ::vcl::ControlLayoutData aLayoutData;
+ Rectangle aItemRect = GetBoundingBox();
+ getListBox()->RecordLayoutData( &aLayoutData, aItemRect );
+ Rectangle aCharRect = aLayoutData.GetCharacterBounds( nIndex );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ sal_Int32 nIndex = -1;
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ ::vcl::ControlLayoutData aLayoutData;
+ Rectangle aItemRect = GetBoundingBox();
+ getListBox()->RecordLayoutData( &aLayoutData, aItemRect );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ nIndex = aLayoutData.GetIndexForPoint( aPnt );
+ }
+
+ return nIndex;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBoxEntry::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ String sText = getText();
+ if ( ( 0 > nStartIndex ) || ( sText.Len() <= nStartIndex )
+ || ( 0 > nEndIndex ) || ( sText.Len() <= nEndIndex ) )
+ throw IndexOutOfBoundsException();
+
+ sal_Int32 nLen = nEndIndex - nStartIndex + 1;
+ ::svt::OStringTransfer::CopyString( sText.Copy( (USHORT)nStartIndex, (USHORT)nLen ), getListBox() );
+
+ return sal_True;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleEventBroadcaster
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::addEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+ {
+ if (xListener.is())
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ if (!m_nClientId)
+ m_nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::removeEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+ {
+ if (xListener.is())
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+ sal_Int32 nId = m_nClientId;
+ m_nClientId = 0;
+ comphelper::AccessibleEventNotifier::revokeClient( nId );
+
+ }
+ }
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleAction
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getAccessibleActionCount( ) throw (RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // three actions supported
+ return ACCESSIBLE_ACTION_COUNT;
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBoxEntry::doAccessibleAction( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Bool bRet = sal_False;
+ checkActionIndex_Impl( nIndex );
+ EnsureIsAlive();
+
+ SvLBoxEntry* pEntry = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( pEntry )
+ {
+ if ( getListBox()->IsExpanded( pEntry ) )
+ getListBox()->Collapse( pEntry );
+ else
+ getListBox()->Expand( pEntry );
+ bRet = sal_True;
+ }
+
+ return bRet;
+ }
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getAccessibleActionDescription( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ checkActionIndex_Impl( nIndex );
+ EnsureIsAlive();
+
+ static const ::rtl::OUString sActionDesc( RTL_CONSTASCII_USTRINGPARAM( "toggleExpand" ) );
+ return sActionDesc;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleKeyBinding > AccessibleListBoxEntry::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Reference< XAccessibleKeyBinding > xRet;
+ checkActionIndex_Impl( nIndex );
+ // ... which key?
+ return xRet;
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleSelection
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ getListBox()->Select( pEntry, TRUE );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleListBoxEntry::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, nChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ return getListBox()->IsSelected( pEntry );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::clearAccessibleSelection( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( !pParent )
+ throw RuntimeException();
+ sal_Int32 i, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( pParent );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ getListBox()->Select( pEntry, FALSE );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::selectAllAccessibleChildren( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( !pParent )
+ throw RuntimeException();
+ sal_Int32 i, nCount = 0;
+ nCount = getListBox()->GetLevelChildCount( pParent );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, i );
+ if ( !getListBox()->IsSelected( pEntry ) )
+ getListBox()->Select( pEntry, TRUE );
+ }
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( !pParent )
+ throw RuntimeException();
+ nCount = getListBox()->GetLevelChildCount( pParent );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ ++nSelCount;
+ }
+
+ return nSelCount;
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleListBoxEntry::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ sal_Int32 i, nSelCount = 0, nCount = 0;
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ if ( !pParent )
+ throw RuntimeException();
+ nCount = getListBox()->GetLevelChildCount( pParent );
+ for ( i = 0; i < nCount; ++i )
+ {
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, i );
+ if ( getListBox()->IsSelected( pEntry ) )
+ ++nSelCount;
+
+ if ( nSelCount == ( nSelectedChildIndex + 1 ) )
+ {
+ xChild = new AccessibleListBoxEntry( *getListBox(), pEntry, this );
+ break;
+ }
+ }
+
+ return xChild;
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleListBoxEntry::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ EnsureIsAlive();
+
+ SvLBoxEntry* pParent = getListBox()->GetEntryFromPath( m_aEntryPath );
+ SvLBoxEntry* pEntry = getListBox()->GetEntry( pParent, nSelectedChildIndex );
+ if ( !pEntry )
+ throw IndexOutOfBoundsException();
+
+ getListBox()->Select( pEntry, FALSE );
+ }
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getCaretPosition( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ return -1;
+ }
+ sal_Bool SAL_CALL AccessibleListBoxEntry::setCaretPosition ( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ sal_Unicode SAL_CALL AccessibleListBoxEntry::getCharacter( sal_Int32 nIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getCharacter( nIndex );
+ }
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL AccessibleListBoxEntry::getCharacterAttributes( sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >();
+ }
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getCharacterCount( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getCharacterCount( );
+ }
+
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getSelectedText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectedText( );
+ }
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getSelectionStart( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectionStart( );
+ }
+ sal_Int32 SAL_CALL AccessibleListBoxEntry::getSelectionEnd( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getSelectionEnd( );
+ }
+ sal_Bool SAL_CALL AccessibleListBoxEntry::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+ }
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getText( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getText( );
+ }
+ ::rtl::OUString SAL_CALL AccessibleListBoxEntry::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleListBoxEntry::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextAtIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleListBoxEntry::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex ,aTextType);
+ }
+ ::com::sun::star::accessibility::TextSegment SAL_CALL AccessibleListBoxEntry::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+ {
+ ALBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( m_aMutex );
+ EnsureIsAlive();
+
+ return OCommonAccessibleText::getTextBehindIndex( nIndex ,aTextType);
+ }
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/accessibletabbar.cxx b/accessibility/source/extended/accessibletabbar.cxx
new file mode 100644
index 000000000000..fc1fb578bd21
--- /dev/null
+++ b/accessibility/source/extended/accessibletabbar.cxx
@@ -0,0 +1,554 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessibletabbar.hxx>
+#include <svtools/tabbar.hxx>
+#include <accessibility/extended/accessibletabbarpagelist.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/awt/vclxfont.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <vector>
+
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ using namespace ::com::sun::star;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::comphelper;
+
+ DBG_NAME( AccessibleTabBar )
+
+ // ----------------------------------------------------
+ // class AccessibleTabBar
+ // ----------------------------------------------------
+
+ AccessibleTabBar::AccessibleTabBar( TabBar* pTabBar )
+ :AccessibleTabBarBase( pTabBar )
+ {
+ DBG_CTOR( AccessibleTabBar, NULL );
+
+ if ( m_pTabBar )
+ m_aAccessibleChildren.assign( m_pTabBar->GetAccessibleChildWindowCount() + 1, Reference< XAccessible >() );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ AccessibleTabBar::~AccessibleTabBar()
+ {
+ DBG_DTOR( AccessibleTabBar, NULL );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBar::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ Any aOldValue, aNewValue;
+
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_ENABLED:
+ {
+ aNewValue <<= AccessibleStateType::SENSITIVE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ aNewValue <<= AccessibleStateType::ENABLED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_DISABLED:
+ {
+ aOldValue <<= AccessibleStateType::ENABLED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ aOldValue <<= AccessibleStateType::SENSITIVE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_GETFOCUS:
+ {
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_LOSEFOCUS:
+ {
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_SHOW:
+ {
+ aNewValue <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_HIDE:
+ {
+ aOldValue <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ default:
+ {
+ AccessibleTabBarBase::ProcessWindowEvent( rVclWindowEvent );
+ }
+ break;
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBar::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ {
+ if ( m_pTabBar )
+ {
+ if ( m_pTabBar->IsEnabled() )
+ {
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ }
+
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( m_pTabBar->HasFocus() )
+ rStateSet.AddState( AccessibleStateType::FOCUSED );
+
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ if ( m_pTabBar->IsVisible() )
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+
+ if ( m_pTabBar->GetStyle() & WB_SIZEABLE )
+ rStateSet.AddState( AccessibleStateType::RESIZABLE );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+ // OCommonAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ awt::Rectangle AccessibleTabBar::implGetBounds() throw (RuntimeException)
+ {
+ awt::Rectangle aBounds;
+ if ( m_pTabBar )
+ aBounds = AWTRectangle( Rectangle( m_pTabBar->GetPosPixel(), m_pTabBar->GetSizePixel() ) );
+
+ return aBounds;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XInterface
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBar, AccessibleExtendedComponentHelper_BASE, AccessibleTabBar_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XTypeProvider
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBar, AccessibleExtendedComponentHelper_BASE, AccessibleTabBar_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBar::disposing()
+ {
+ AccessibleTabBarBase::disposing();
+
+ // dispose all children
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBar::getImplementationName() throw (RuntimeException)
+ {
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.svtools.AccessibleTabBar" );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBar::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Sequence< ::rtl::OUString > AccessibleTabBar::getSupportedServiceNames() throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabBar" );
+ return aNames;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleContext > AccessibleTabBar::getAccessibleContext( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return this;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBar::getAccessibleChildCount() throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_aAccessibleChildren.size();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBar::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ {
+ if ( m_pTabBar )
+ {
+ sal_Int32 nCount = m_pTabBar->GetAccessibleChildWindowCount();
+
+ if ( i < nCount )
+ {
+ Window* pChild = m_pTabBar->GetAccessibleChildWindow( (USHORT)i );
+ if ( pChild )
+ xChild = pChild->GetAccessible();
+ }
+ else if ( i == nCount )
+ {
+ xChild = new AccessibleTabBarPageList( m_pTabBar, i );
+ }
+
+ // insert into child list
+ m_aAccessibleChildren[i] = xChild;
+ }
+ }
+
+ return xChild;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBar::getAccessibleParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+ if ( m_pTabBar )
+ {
+ Window* pParent = m_pTabBar->GetAccessibleParentWindow();
+ if ( pParent )
+ xParent = pParent->GetAccessible();
+ }
+
+ return xParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBar::getAccessibleIndexInParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndexInParent = -1;
+ if ( m_pTabBar )
+ {
+ Window* pParent = m_pTabBar->GetAccessibleParentWindow();
+ if ( pParent )
+ {
+ for ( USHORT i = 0, nCount = pParent->GetAccessibleChildWindowCount(); i < nCount; ++i )
+ {
+ Window* pChild = pParent->GetAccessibleChildWindow( i );
+ if ( pChild == static_cast< Window* >( m_pTabBar ) )
+ {
+ nIndexInParent = i;
+ break;
+ }
+ }
+ }
+ }
+
+ return nIndexInParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int16 AccessibleTabBar::getAccessibleRole( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::PANEL;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBar::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pTabBar )
+ sDescription = m_pTabBar->GetAccessibleDescription();
+
+ return sDescription;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBar::getAccessibleName( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sName;
+ if ( m_pTabBar )
+ sName = m_pTabBar->GetAccessibleName();
+
+ return sName;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleRelationSet > AccessibleTabBar::getAccessibleRelationSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleStateSet > AccessibleTabBar::getAccessibleStateSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Locale AccessibleTabBar::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBar::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xChild;
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xAcc = getAccessibleChild( i );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
+ if ( xComp.is() )
+ {
+ Rectangle aRect = VCLRectangle( xComp->getBounds() );
+ Point aPos = VCLPoint( rPoint );
+ if ( aRect.IsInside( aPos ) )
+ {
+ xChild = xAcc;
+ break;
+ }
+ }
+ }
+ }
+
+ return xChild;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBar::grabFocus( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( m_pTabBar )
+ m_pTabBar->GrabFocus();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBar::getForeground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ if ( m_pTabBar )
+ {
+ if ( m_pTabBar->IsControlForeground() )
+ nColor = m_pTabBar->GetControlForeground().GetColor();
+ else
+ {
+ Font aFont;
+ if ( m_pTabBar->IsControlFont() )
+ aFont = m_pTabBar->GetControlFont();
+ else
+ aFont = m_pTabBar->GetFont();
+ nColor = aFont.GetColor().GetColor();
+ }
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBar::getBackground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ if ( m_pTabBar )
+ {
+ if ( m_pTabBar->IsControlBackground() )
+ nColor = m_pTabBar->GetControlBackground().GetColor();
+ else
+ nColor = m_pTabBar->GetBackground().GetColor().GetColor();
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleExtendedComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< awt::XFont > AccessibleTabBar::getFont( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ if ( m_pTabBar )
+ {
+ Reference< awt::XDevice > xDev( m_pTabBar->GetComponentInterface(), UNO_QUERY );
+ if ( xDev.is() )
+ {
+ Font aFont;
+ if ( m_pTabBar->IsControlFont() )
+ aFont = m_pTabBar->GetControlFont();
+ else
+ aFont = m_pTabBar->GetFont();
+ VCLXFont* pVCLXFont = new VCLXFont;
+ pVCLXFont->Init( *xDev.get(), aFont );
+ xFont = pVCLXFont;
+ }
+ }
+
+ return xFont;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBar::getTitledBorderText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sText;
+ if ( m_pTabBar )
+ sText = m_pTabBar->GetText();
+
+ return sText;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBar::getToolTipText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sText;
+ if ( m_pTabBar )
+ sText = m_pTabBar->GetQuickHelpText();
+
+ return sText;
+ }
+
+ // -----------------------------------------------------------------------------
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
diff --git a/accessibility/source/extended/accessibletabbarbase.cxx b/accessibility/source/extended/accessibletabbarbase.cxx
new file mode 100644
index 000000000000..5f290178ea25
--- /dev/null
+++ b/accessibility/source/extended/accessibletabbarbase.cxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include "accessibility/extended/accessibletabbarbase.hxx"
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABBARPAGELIST
+#include "accessibility/extended/accessibletabbarpagelist.hxx"
+#endif
+#include <toolkit/helper/externallock.hxx>
+#include <svtools/tabbar.hxx>
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+AccessibleTabBarBase::AccessibleTabBarBase( TabBar* pTabBar ) :
+ AccessibleExtendedComponentHelper_BASE( new VCLExternalSolarLock() ),
+ m_pTabBar( 0 )
+{
+ m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock() );
+ SetTabBarPointer( pTabBar );
+}
+
+AccessibleTabBarBase::~AccessibleTabBarBase()
+{
+ ClearTabBarPointer();
+ DELETEZ( m_pExternalLock );
+}
+
+IMPL_LINK( AccessibleTabBarBase, WindowEventListener, VclSimpleEvent*, pEvent )
+{
+ VclWindowEvent* pWinEvent = dynamic_cast< VclWindowEvent* >( pEvent );
+ DBG_ASSERT( pWinEvent, "AccessibleTabBarBase::WindowEventListener - unknown window event" );
+ if( pWinEvent )
+ {
+ Window* pEventWindow = pWinEvent->GetWindow();
+ DBG_ASSERT( pEventWindow, "AccessibleTabBarBase::WindowEventListener: no window!" );
+
+ if( ( pWinEvent->GetId() == VCLEVENT_TABBAR_PAGEREMOVED ) &&
+ ( (sal_uInt16)(sal_IntPtr) pWinEvent->GetData() == TABBAR_PAGE_NOTFOUND ) &&
+ ( dynamic_cast< AccessibleTabBarPageList *> (this) != NULL ) )
+ {
+ return 0;
+ }
+
+ if ( !pEventWindow->IsAccessibilityEventsSuppressed() || (pWinEvent->GetId() == VCLEVENT_OBJECT_DYING) )
+ ProcessWindowEvent( *pWinEvent );
+ }
+ return 0;
+}
+
+void AccessibleTabBarBase::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ if( rVclWindowEvent.GetId() == VCLEVENT_OBJECT_DYING )
+ ClearTabBarPointer();
+}
+
+// XComponent
+
+void AccessibleTabBarBase::disposing()
+{
+ AccessibleExtendedComponentHelper_BASE::disposing();
+ ClearTabBarPointer();
+}
+
+// private
+
+void AccessibleTabBarBase::SetTabBarPointer( TabBar* pTabBar )
+{
+ DBG_ASSERT( !m_pTabBar, "AccessibleTabBarBase::SetTabBarPointer - multiple call" );
+ m_pTabBar = pTabBar;
+ if( m_pTabBar )
+ m_pTabBar->AddEventListener( LINK( this, AccessibleTabBarBase, WindowEventListener ) );
+}
+
+void AccessibleTabBarBase::ClearTabBarPointer()
+{
+ if( m_pTabBar )
+ {
+ m_pTabBar->RemoveEventListener( LINK( this, AccessibleTabBarBase, WindowEventListener ) );
+ m_pTabBar = 0;
+ }
+}
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
+
diff --git a/accessibility/source/extended/accessibletabbarpage.cxx b/accessibility/source/extended/accessibletabbarpage.cxx
new file mode 100644
index 000000000000..32dfb591a3ad
--- /dev/null
+++ b/accessibility/source/extended/accessibletabbarpage.cxx
@@ -0,0 +1,511 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessibletabbarpage.hxx>
+#include <svtools/tabbar.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/helper/convert.hxx>
+
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+ using namespace ::comphelper;
+
+ // -----------------------------------------------------------------------------
+ // class AccessibleTabBarPage
+ // -----------------------------------------------------------------------------
+
+ AccessibleTabBarPage::AccessibleTabBarPage( TabBar* pTabBar, sal_uInt16 nPageId, const Reference< XAccessible >& rxParent )
+ :AccessibleTabBarBase( pTabBar )
+ ,m_nPageId( nPageId )
+ ,m_xParent( rxParent )
+ {
+ m_bEnabled = IsEnabled();
+ m_bShowing = IsShowing();
+ m_bSelected = IsSelected();
+
+ if ( m_pTabBar )
+ m_sPageText = m_pTabBar->GetPageText( m_nPageId );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ AccessibleTabBarPage::~AccessibleTabBarPage()
+ {
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPage::IsEnabled()
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bEnabled = sal_False;
+ if ( m_pTabBar )
+ bEnabled = m_pTabBar->IsPageEnabled( m_nPageId );
+
+ return bEnabled;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPage::IsShowing()
+ {
+ sal_Bool bShowing = sal_False;
+
+ if ( m_pTabBar && m_pTabBar->IsVisible() )
+ bShowing = sal_True;
+
+ return bShowing;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPage::IsSelected()
+ {
+ sal_Bool bSelected = sal_False;
+
+ if ( m_pTabBar && m_pTabBar->GetCurPageId() == m_nPageId )
+ bSelected = sal_True;
+
+ return bSelected;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::SetEnabled( sal_Bool bEnabled )
+ {
+ if ( m_bEnabled != bEnabled )
+ {
+ Any aOldValue[2], aNewValue[2];
+ if ( m_bEnabled )
+ {
+ aOldValue[0] <<= AccessibleStateType::SENSITIVE;
+ aOldValue[1] <<= AccessibleStateType::ENABLED;
+ }
+ else
+ {
+
+ aNewValue[0] <<= AccessibleStateType::ENABLED;
+ aNewValue[1] <<= AccessibleStateType::SENSITIVE;
+ }
+ m_bEnabled = bEnabled;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] );
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::SetShowing( sal_Bool bShowing )
+ {
+ if ( m_bShowing != bShowing )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bShowing )
+ aOldValue <<= AccessibleStateType::SHOWING;
+ else
+ aNewValue <<= AccessibleStateType::SHOWING;
+ m_bShowing = bShowing;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::SetSelected( sal_Bool bSelected )
+ {
+ if ( m_bSelected != bSelected )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bSelected )
+ aOldValue <<= AccessibleStateType::SELECTED;
+ else
+ aNewValue <<= AccessibleStateType::SELECTED;
+ m_bSelected = bSelected;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::SetPageText( const ::rtl::OUString& sPageText )
+ {
+ if ( !m_sPageText.equals( sPageText ) )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= m_sPageText;
+ aNewValue <<= sPageText;
+ m_sPageText = sPageText;
+ NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ {
+ if ( IsEnabled() )
+ {
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ }
+
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ if ( IsShowing() )
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+
+ rStateSet.AddState( AccessibleStateType::SELECTABLE );
+
+ if ( IsSelected() )
+ rStateSet.AddState( AccessibleStateType::SELECTED );
+ }
+
+ // -----------------------------------------------------------------------------
+ // OCommonAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ awt::Rectangle AccessibleTabBarPage::implGetBounds() throw (RuntimeException)
+ {
+ awt::Rectangle aBounds;
+ if ( m_pTabBar )
+ {
+ // get bounding rectangle relative to the AccessibleTabBar
+ aBounds = AWTRectangle( m_pTabBar->GetPageRect( m_nPageId ) );
+
+ // get position of the AccessibleTabBarPageList relative to the AccessibleTabBar
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComponent( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComponent.is() )
+ {
+ awt::Point aParentLoc = xParentComponent->getLocation();
+
+ // calculate bounding rectangle relative to the AccessibleTabBarPageList
+ aBounds.X -= aParentLoc.X;
+ aBounds.Y -= aParentLoc.Y;
+ }
+ }
+ }
+
+ return aBounds;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XInterface
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBarPage, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPage_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XTypeProvider
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBarPage, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPage_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::disposing()
+ {
+ AccessibleTabBarBase::disposing();
+ m_sPageText = ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPage::getImplementationName() throw (RuntimeException)
+ {
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.svtools.AccessibleTabBarPage" );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPage::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Sequence< ::rtl::OUString > AccessibleTabBarPage::getSupportedServiceNames() throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabBarPage" );
+ return aNames;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleContext > AccessibleTabBarPage::getAccessibleContext( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return this;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPage::getAccessibleChildCount() throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPage::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessible >();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPage::getAccessibleParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_xParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPage::getAccessibleIndexInParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndexInParent = -1;
+ if ( m_pTabBar )
+ nIndexInParent = m_pTabBar->GetPagePos( m_nPageId );
+
+ return nIndexInParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int16 AccessibleTabBarPage::getAccessibleRole( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::PAGE_TAB;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPage::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pTabBar )
+ sDescription = m_pTabBar->GetHelpText( m_nPageId );
+
+ return sDescription;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPage::getAccessibleName( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_sPageText;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleRelationSet > AccessibleTabBarPage::getAccessibleRelationSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleStateSet > AccessibleTabBarPage::getAccessibleStateSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Locale AccessibleTabBarPage::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPage::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return Reference< XAccessible >();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPage::grabFocus( ) throw (RuntimeException)
+ {
+ // no focus
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPage::getForeground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPage::getBackground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleExtendedComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< awt::XFont > AccessibleTabBarPage::getFont( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ xFont = xParentComp->getFont();
+ }
+
+ return xFont;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPage::getTitledBorderText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_sPageText;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPage::getToolTipText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
diff --git a/accessibility/source/extended/accessibletabbarpagelist.cxx b/accessibility/source/extended/accessibletabbarpagelist.cxx
new file mode 100644
index 000000000000..e852e0ed54cc
--- /dev/null
+++ b/accessibility/source/extended/accessibletabbarpagelist.cxx
@@ -0,0 +1,805 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/accessibletabbarpagelist.hxx>
+#include <svtools/tabbar.hxx>
+#include <accessibility/extended/accessibletabbarpage.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <toolkit/helper/convert.hxx>
+
+
+//.........................................................................
+namespace accessibility
+{
+//.........................................................................
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+ using namespace ::comphelper;
+
+ DBG_NAME( AccessibleTabBarPageList )
+
+ // -----------------------------------------------------------------------------
+ // class AccessibleTabBarPageList
+ // -----------------------------------------------------------------------------
+
+ AccessibleTabBarPageList::AccessibleTabBarPageList( TabBar* pTabBar, sal_Int32 nIndexInParent )
+ :AccessibleTabBarBase( pTabBar )
+ ,m_nIndexInParent( nIndexInParent )
+ {
+ DBG_CTOR( AccessibleTabBarPageList, NULL );
+ if ( m_pTabBar )
+ m_aAccessibleChildren.assign( m_pTabBar->GetPageCount(), Reference< XAccessible >() );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ AccessibleTabBarPageList::~AccessibleTabBarPageList()
+ {
+ DBG_DTOR( AccessibleTabBarPageList, NULL );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::UpdateEnabled( sal_Int32 i, sal_Bool bEnabled )
+ {
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
+ if ( pAccessibleTabBarPage )
+ pAccessibleTabBarPage->SetEnabled( bEnabled );
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::UpdateShowing( sal_Bool bShowing )
+ {
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
+ if ( pAccessibleTabBarPage )
+ pAccessibleTabBarPage->SetShowing( bShowing );
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::UpdateSelected( sal_Int32 i, sal_Bool bSelected )
+ {
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
+ if ( pAccessibleTabBarPage )
+ pAccessibleTabBarPage->SetSelected( bSelected );
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::UpdatePageText( sal_Int32 i )
+ {
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
+ if ( pAccessibleTabBarPage )
+ {
+ if ( m_pTabBar )
+ {
+ ::rtl::OUString sPageText = m_pTabBar->GetPageText( m_pTabBar->GetPageId( (sal_uInt16)i ) );
+ pAccessibleTabBarPage->SetPageText( sPageText );
+ }
+ }
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::InsertChild( sal_Int32 i )
+ {
+ if ( i >= 0 && i <= (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // insert entry in child list
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+
+ // send accessible child event
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::RemoveChild( sal_Int32 i )
+ {
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // get the accessible of the removed page
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+ // remove entry in child list
+ m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+ // send accessible child event
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+ Reference< XComponent > xComponent( xChild, UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::MoveChild( sal_Int32 i, sal_Int32 j )
+ {
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() &&
+ j >= 0 && j <= (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ if ( i < j )
+ --j;
+
+ // get the accessible of the moved page
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+ // remove entry in child list at old position
+ m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+ // insert entry in child list at new position
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + j, xChild );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_ENABLED:
+ {
+ Any aNewValue;
+ aNewValue <<= AccessibleStateType::SENSITIVE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, Any(), aNewValue );
+ aNewValue <<= AccessibleStateType::ENABLED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, Any(), aNewValue );
+ }
+ break;
+ case VCLEVENT_WINDOW_DISABLED:
+ {
+ Any aOldValue;
+ aOldValue <<= AccessibleStateType::ENABLED;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, Any() );
+ aOldValue <<= AccessibleStateType::SENSITIVE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, Any() );
+ }
+ break;
+ case VCLEVENT_WINDOW_SHOW:
+ {
+ Any aOldValue, aNewValue;
+ aNewValue <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ UpdateShowing( sal_True );
+ }
+ break;
+ case VCLEVENT_WINDOW_HIDE:
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ UpdateShowing( sal_False );
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEENABLED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ UpdateEnabled( nPagePos, sal_True );
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEDISABLED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ UpdateEnabled( nPagePos, sal_False );
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGESELECTED:
+ {
+ // do nothing
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEACTIVATED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ UpdateSelected( nPagePos, sal_True );
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEDEACTIVATED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ UpdateSelected( nPagePos, sal_False );
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEINSERTED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ InsertChild( nPagePos );
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEREMOVED:
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+
+ if ( nPageId == TABBAR_PAGE_NOTFOUND )
+ {
+ for ( sal_Int32 i = m_aAccessibleChildren.size() - 1; i >= 0; --i )
+ RemoveChild( i );
+ }
+ else
+ {
+ for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ {
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ AccessibleTabBarPage* pAccessibleTabBarPage = static_cast< AccessibleTabBarPage* >( xChild.get() );
+ if ( pAccessibleTabBarPage && pAccessibleTabBarPage->GetPageId() == nPageId )
+ {
+ RemoveChild( i );
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGEMOVED:
+ {
+ Pair* pPair = (Pair*) rVclWindowEvent.GetData();
+ if ( pPair )
+ MoveChild( pPair->A(), pPair->B() );
+ }
+ break;
+ case VCLEVENT_TABBAR_PAGETEXTCHANGED:
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabBar->GetPagePos( nPageId );
+ UpdatePageText( nPagePos );
+ }
+ break;
+ default:
+ {
+ AccessibleTabBarBase::ProcessWindowEvent( rVclWindowEvent );
+ }
+ break;
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+ {
+ if ( m_pTabBar )
+ {
+ if ( m_pTabBar->IsEnabled() )
+ {
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ }
+
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ if ( m_pTabBar->IsVisible() )
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+ // OCommonAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ awt::Rectangle AccessibleTabBarPageList::implGetBounds() throw (RuntimeException)
+ {
+ awt::Rectangle aBounds;
+ if ( m_pTabBar )
+ aBounds = AWTRectangle( m_pTabBar->GetPageArea() );
+
+ return aBounds;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XInterface
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabBarPageList, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPageList_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XTypeProvider
+ // -----------------------------------------------------------------------------
+
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabBarPageList, AccessibleExtendedComponentHelper_BASE, AccessibleTabBarPageList_BASE )
+
+ // -----------------------------------------------------------------------------
+ // XComponent
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::disposing()
+ {
+ AccessibleTabBarBase::disposing();
+
+ // dispose all children
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPageList::getImplementationName() throw (RuntimeException)
+ {
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.svtools.AccessibleTabBarPageList" );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPageList::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Sequence< ::rtl::OUString > AccessibleTabBarPageList::getSupportedServiceNames() throw (RuntimeException)
+ {
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabBarPageList" );
+ return aNames;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessible
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleContext > AccessibleTabBarPageList::getAccessibleContext( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return this;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleContext
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPageList::getAccessibleChildCount() throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_aAccessibleChildren.size();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPageList::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ {
+ if ( m_pTabBar )
+ {
+ sal_uInt16 nPageId = m_pTabBar->GetPageId( (USHORT)i );
+
+ xChild = new AccessibleTabBarPage( m_pTabBar, nPageId, this );
+
+ // insert into child list
+ m_aAccessibleChildren[i] = xChild;
+ }
+ }
+
+ return xChild;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPageList::getAccessibleParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+ if ( m_pTabBar )
+ xParent = m_pTabBar->GetAccessible();
+
+ return xParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPageList::getAccessibleIndexInParent( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return m_nIndexInParent;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int16 AccessibleTabBarPageList::getAccessibleRole( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::PAGE_TAB_LIST;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPageList::getAccessibleDescription( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPageList::getAccessibleName( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleRelationSet > AccessibleTabBarPageList::getAccessibleRelationSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessibleStateSet > AccessibleTabBarPageList::getAccessibleStateSet( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Locale AccessibleTabBarPageList::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPageList::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xChild;
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xAcc = getAccessibleChild( i );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
+ if ( xComp.is() )
+ {
+ Rectangle aRect = VCLRectangle( xComp->getBounds() );
+ Point aPos = VCLPoint( rPoint );
+ if ( aRect.IsInside( aPos ) )
+ {
+ xChild = xAcc;
+ break;
+ }
+ }
+ }
+ }
+
+ return xChild;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::grabFocus( ) throw (RuntimeException)
+ {
+ // no focus
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPageList::getForeground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPageList::getBackground( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleExtendedComponent
+ // -----------------------------------------------------------------------------
+
+ Reference< awt::XFont > AccessibleTabBarPageList::getFont( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ xFont = xParentComp->getFont();
+ }
+
+ return xFont;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPageList::getTitledBorderText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+
+ ::rtl::OUString AccessibleTabBarPageList::getToolTipText( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+ }
+
+ // -----------------------------------------------------------------------------
+ // XAccessibleSelection
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ if ( m_pTabBar )
+ {
+ m_pTabBar->SetCurPageId( m_pTabBar->GetPageId( (USHORT)nChildIndex ) );
+ m_pTabBar->Update();
+ m_pTabBar->ActivatePage();
+ m_pTabBar->Select();
+ }
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Bool AccessibleTabBarPageList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ sal_Bool bSelected = sal_False;
+ if ( m_pTabBar && m_pTabBar->GetCurPageId() == m_pTabBar->GetPageId( (USHORT)nChildIndex ) )
+ bSelected = sal_True;
+
+ return bSelected;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::clearAccessibleSelection( ) throw (RuntimeException)
+ {
+ // This method makes no sense in a TabBar, and so does nothing.
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::selectAllAccessibleChildren( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ selectAccessibleChild( 0 );
+ }
+
+ // -----------------------------------------------------------------------------
+
+ sal_Int32 AccessibleTabBarPageList::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ Reference< XAccessible > AccessibleTabBarPageList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+
+ for ( sal_Int32 i = 0, j = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
+ {
+ if ( isAccessibleChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
+ {
+ xChild = getAccessibleChild( i );
+ break;
+ }
+ }
+
+ return xChild;
+ }
+
+ // -----------------------------------------------------------------------------
+
+ void AccessibleTabBarPageList::deselectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ // This method makes no sense in a TabBar, and so does nothing.
+ }
+
+ // -----------------------------------------------------------------------------
+
+//.........................................................................
+} // namespace accessibility
+//.........................................................................
diff --git a/accessibility/source/extended/accessibletablistbox.cxx b/accessibility/source/extended/accessibletablistbox.cxx
new file mode 100644
index 000000000000..aed68e55e482
--- /dev/null
+++ b/accessibility/source/extended/accessibletablistbox.cxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOX_HXX_
+#include "accessibility/extended/accessibletablistbox.hxx"
+#endif
+#include "accessibility/extended/accessibletablistboxtable.hxx"
+#include <svtools/svtabbx.hxx>
+#include <comphelper/sequence.hxx>
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ // class TLBSolarGuard ---------------------------------------------------------
+
+ /** Aquire the solar mutex. */
+ class TLBSolarGuard : public ::vos::OGuard
+ {
+ public:
+ inline TLBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+ };
+
+ // class AccessibleTabListBox -----------------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleTabListBox)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleTabListBox::AccessibleTabListBox( const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox )
+ :AccessibleBrowseBox( rxParent, NULL, rBox )
+ ,m_pTabListBox( &rBox )
+
+ {
+ DBG_CTOR( AccessibleTabListBox, NULL );
+
+ osl_incrementInterlockedCount( &m_refCount );
+ {
+ setCreator( this );
+ }
+ osl_decrementInterlockedCount( &m_refCount );
+ }
+
+ // -----------------------------------------------------------------------------
+ AccessibleTabListBox::~AccessibleTabListBox()
+ {
+ DBG_DTOR( AccessibleTabListBox, NULL );
+
+ if ( isAlive() )
+ {
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleBrowseBoxTable* AccessibleTabListBox::createAccessibleTable()
+ {
+ return new AccessibleTabListBoxTable( this, *m_pTabListBox );
+ }
+
+ // XInterface -----------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2( AccessibleTabListBox, AccessibleBrowseBox, AccessibleTabListBox_Base )
+
+ // XTypeProvider --------------------------------------------------------------
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( AccessibleTabListBox, AccessibleBrowseBox, AccessibleTabListBox_Base )
+
+ // XAccessibleContext ---------------------------------------------------------
+
+ sal_Int32 SAL_CALL AccessibleTabListBox::getAccessibleChildCount()
+ throw ( uno::RuntimeException )
+ {
+ return 2; // header and table
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessibleContext > SAL_CALL AccessibleTabListBox::getAccessibleContext() throw ( RuntimeException )
+ {
+ return this;
+ }
+
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL
+ AccessibleTabListBox::getAccessibleChild( sal_Int32 nChildIndex )
+ throw ( IndexOutOfBoundsException, RuntimeException )
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+ ensureIsAlive();
+
+ if ( nChildIndex < 0 || nChildIndex > 1 )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xRet;
+ if (nChildIndex == 0)
+ {
+ //! so far the actual implementation object only supports column headers
+ xRet = implGetFixedChild( ::svt::BBINDEX_COLUMNHEADERBAR );
+ }
+ else if (nChildIndex == 1)
+ xRet = implGetFixedChild( ::svt::BBINDEX_TABLE );
+
+ if ( !xRet.is() )
+ throw RuntimeException();
+
+ return xRet;
+ }
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/accessibletablistboxtable.cxx b/accessibility/source/extended/accessibletablistboxtable.cxx
new file mode 100644
index 000000000000..59408a31fe84
--- /dev/null
+++ b/accessibility/source/extended/accessibletablistboxtable.cxx
@@ -0,0 +1,383 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#ifndef ACCESSIBILITY_EXT_ACCESSIBLETABLISTBOXTABLE_HXX_
+#include "accessibility/extended/accessibletablistboxtable.hxx"
+#endif
+#include "accessibility/extended/AccessibleBrowseBoxTableCell.hxx"
+#include "accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx"
+#include <svtools/svtabbx.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ // class TLBSolarGuard ---------------------------------------------------------
+
+ /** Aquire the solar mutex. */
+ class TLBSolarGuard : public ::vos::OGuard
+ {
+ public:
+ inline TLBSolarGuard() : ::vos::OGuard( Application::GetSolarMutex() ) {}
+ };
+
+ // class AccessibleTabListBoxTable ---------------------------------------------
+
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::lang;
+ using namespace ::com::sun::star;
+
+ DBG_NAME(AccessibleTabListBoxTable)
+
+ // -----------------------------------------------------------------------------
+ // Ctor() and Dtor()
+ // -----------------------------------------------------------------------------
+ AccessibleTabListBoxTable::AccessibleTabListBoxTable( const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) :
+
+ AccessibleBrowseBoxTable( rxParent, rBox ),
+
+ m_pTabListBox ( &rBox )
+
+ {
+ DBG_CTOR( AccessibleTabListBoxTable, NULL );
+
+ m_pTabListBox->AddEventListener( LINK( this, AccessibleTabListBoxTable, WindowEventListener ) );
+ }
+ // -----------------------------------------------------------------------------
+ AccessibleTabListBoxTable::~AccessibleTabListBoxTable()
+ {
+ DBG_DTOR( AccessibleTabListBoxTable, NULL );
+
+ if ( isAlive() )
+ {
+ m_pTabListBox = NULL;
+
+ // increment ref count to prevent double call of Dtor
+ osl_incrementInterlockedCount( &m_refCount );
+ dispose();
+ }
+ }
+ // -----------------------------------------------------------------------------
+ void AccessibleTabListBoxTable::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+ {
+ if ( isAlive() )
+ {
+ ULONG nEventId = rVclWindowEvent.GetId();
+ switch ( nEventId )
+ {
+ case VCLEVENT_OBJECT_DYING :
+ {
+ m_pTabListBox->RemoveEventListener( LINK( this, AccessibleTabListBoxTable, WindowEventListener ) );
+ m_pTabListBox = NULL;
+ break;
+ }
+
+ case VCLEVENT_CONTROL_GETFOCUS :
+ case VCLEVENT_CONTROL_LOSEFOCUS :
+ {
+ uno::Any aOldValue, aNewValue;
+ if ( VCLEVENT_CONTROL_GETFOCUS == nEventId )
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ else
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ break;
+ }
+
+ case VCLEVENT_LISTBOX_SELECT :
+ {
+ // First send an event that tells the listeners of a
+ // modified selection. The active descendant event is
+ // send after that so that the receiving AT has time to
+ // read the text or name of the active child.
+ commitEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ if ( m_pTabListBox && m_pTabListBox->HasFocus() )
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ sal_Int32 nRow = m_pTabListBox->GetEntryPos( pEntry );
+ USHORT nCol = m_pTabListBox->GetCurrColumn();
+ Reference< XAccessible > xChild =
+ m_pTabListBox->CreateAccessibleCell( nRow, nCol );
+ uno::Any aOldValue, aNewValue;
+
+ if ( m_pTabListBox->IsTransientChildrenDisabled() )
+ {
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ TriState eState = STATE_DONTKNOW;
+ if ( m_pTabListBox->IsCellCheckBox( nRow, nCol, eState ) )
+ {
+ AccessibleCheckBoxCell* pCell =
+ static_cast< AccessibleCheckBoxCell* >( xChild.get() );
+ pCell->commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ }
+ else
+ {
+ AccessibleBrowseBoxTableCell* pCell =
+ static_cast< AccessibleBrowseBoxTableCell* >( xChild.get() );
+ pCell->commitEvent( AccessibleEventId::STATE_CHANGED, aNewValue, aOldValue );
+ }
+ }
+ else
+ {
+ aNewValue <<= xChild;
+ commitEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED, aNewValue, aOldValue );
+ }
+ }
+ }
+ break;
+ }
+
+ case VCLEVENT_CHECKBOX_TOGGLE :
+ {
+ if ( m_pTabListBox && m_pTabListBox->HasFocus() )
+ {
+ SvLBoxEntry* pEntry = static_cast< SvLBoxEntry* >( rVclWindowEvent.GetData() );
+ if ( pEntry )
+ {
+ sal_Int32 nRow = m_pTabListBox->GetEntryPos( pEntry );
+ USHORT nCol = m_pTabListBox->GetCurrColumn();
+ TriState eState = STATE_DONTKNOW;
+ if ( m_pTabListBox->IsCellCheckBox( nRow, nCol, eState ) )
+ {
+ Reference< XAccessible > xChild =
+ m_pTabListBox->CreateAccessibleCell( nRow, nCol );
+ AccessibleCheckBoxCell* pCell =
+ static_cast< AccessibleCheckBoxCell* >( xChild.get() );
+ pCell->SetChecked( m_pTabListBox->IsItemChecked( pEntry, nCol ) );
+ }
+ }
+ }
+ break;
+ }
+
+ case VCLEVENT_TABLECELL_NAMECHANGED :
+ {
+ if ( m_pTabListBox->IsTransientChildrenDisabled() )
+ {
+ commitEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+ TabListBoxEventData* pData = static_cast< TabListBoxEventData* >( rVclWindowEvent.GetData() );
+ SvLBoxEntry* pEntry = pData != NULL ? pData->m_pEntry : NULL;
+ if ( pEntry )
+ {
+ sal_Int32 nRow = m_pTabListBox->GetEntryPos( pEntry );
+ USHORT nCol = pData->m_nColumn;
+ Reference< XAccessible > xChild =
+ m_pTabListBox->CreateAccessibleCell( nRow, nCol );
+ uno::Any aOldValue, aNewValue;
+ aOldValue <<= ::rtl::OUString( pData->m_sOldText );
+ ::rtl::OUString sNewText( m_pTabListBox->GetCellText( nRow, nCol ) );
+ aNewValue <<= sNewText;
+ TriState eState = STATE_DONTKNOW;
+
+ if ( m_pTabListBox->IsCellCheckBox( nRow, nCol, eState ) )
+ {
+ AccessibleCheckBoxCell* pCell =
+ static_cast< AccessibleCheckBoxCell* >( xChild.get() );
+ pCell->commitEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+ else
+ {
+ AccessibleBrowseBoxTableCell* pCell =
+ static_cast< AccessibleBrowseBoxTableCell* >( xChild.get() );
+ pCell->nameChanged( sNewText, pData->m_sOldText );
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ }
+ // -----------------------------------------------------------------------------
+ IMPL_LINK( AccessibleTabListBoxTable, WindowEventListener, VclSimpleEvent*, pEvent )
+ {
+ DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "Unknown WindowEvent!" );
+ if ( pEvent && pEvent->ISA( VclWindowEvent ) )
+ {
+ DBG_ASSERT( ( (VclWindowEvent*)pEvent )->GetWindow() && m_pTabListBox, "no event window" );
+ ProcessWindowEvent( *(VclWindowEvent*)pEvent );
+ }
+ return 0;
+ }
+ // helpers --------------------------------------------------------------------
+
+ void AccessibleTabListBoxTable::ensureValidIndex( sal_Int32 _nIndex ) const
+ SAL_THROW( ( IndexOutOfBoundsException ) )
+ {
+ if ( ( _nIndex < 0 ) || ( _nIndex >= implGetCellCount() ) )
+ throw IndexOutOfBoundsException();
+ }
+
+ sal_Bool AccessibleTabListBoxTable::implIsRowSelected( sal_Int32 _nRow ) const
+ {
+ return m_pTabListBox ? m_pTabListBox->IsSelected( m_pTabListBox->GetEntry( _nRow ) ) : sal_False;
+ }
+
+ void AccessibleTabListBoxTable::implSelectRow( sal_Int32 _nRow, sal_Bool _bSelect )
+ {
+ if ( m_pTabListBox )
+ m_pTabListBox->Select( m_pTabListBox->GetEntry( _nRow ), _bSelect );
+ }
+
+ sal_Int32 AccessibleTabListBoxTable::implGetRowCount() const
+ {
+ return m_pTabListBox ? m_pTabListBox->GetEntryCount() : 0;
+ }
+
+ sal_Int32 AccessibleTabListBoxTable::implGetColumnCount() const
+ {
+ return m_pTabListBox ? m_pTabListBox->GetColumnCount() : 0;
+ }
+
+ sal_Int32 AccessibleTabListBoxTable::implGetSelRowCount() const
+ {
+ return m_pTabListBox ? m_pTabListBox->GetSelectionCount() : 0;
+ }
+
+ sal_Int32 AccessibleTabListBoxTable::implGetSelRow( sal_Int32 nSelRow ) const
+ {
+ if ( m_pTabListBox )
+ {
+ sal_Int32 nRow = 0;
+ SvLBoxEntry* pEntry = m_pTabListBox->FirstSelected();
+ while ( pEntry )
+ {
+ ++nRow;
+ if ( nRow == nSelRow )
+ return m_pTabListBox->GetEntryPos( pEntry );
+ pEntry = m_pTabListBox->NextSelected( pEntry );
+ }
+ }
+
+ return 0;
+ }
+ // -----------------------------------------------------------------------------
+ // XInterface & XTypeProvider
+ // -----------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2(AccessibleTabListBoxTable, AccessibleBrowseBoxTable, AccessibleTabListBoxTableImplHelper)
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2(AccessibleTabListBoxTable, AccessibleBrowseBoxTable, AccessibleTabListBoxTableImplHelper)
+ // -----------------------------------------------------------------------------
+ // XServiceInfo
+ // -----------------------------------------------------------------------------
+ ::rtl::OUString AccessibleTabListBoxTable::getImplementationName (void) throw (RuntimeException)
+ {
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.svtools.AccessibleTabListBoxTable");
+ }
+ // -----------------------------------------------------------------------------
+ // XAccessibleSelection
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleTabListBoxTable::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+ ensureValidIndex( nChildIndex );
+
+ implSelectRow( implGetRow( nChildIndex ), sal_True );
+ }
+ // -----------------------------------------------------------------------------
+ sal_Bool SAL_CALL AccessibleTabListBoxTable::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+ ensureValidIndex( nChildIndex );
+
+ return implIsRowSelected( implGetRow( nChildIndex ) );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleTabListBoxTable::clearAccessibleSelection( ) throw (RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+
+ m_pTabListBox->SetNoSelection();
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleTabListBoxTable::selectAllAccessibleChildren( ) throw (RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+
+ m_pTabListBox->SelectAll();
+ }
+ // -----------------------------------------------------------------------------
+ sal_Int32 SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+
+ return implGetColumnCount() * implGetSelRowCount();
+ }
+ // -----------------------------------------------------------------------------
+ Reference< XAccessible > SAL_CALL AccessibleTabListBoxTable::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+
+ sal_Int32 nRows = implGetSelRowCount();
+ if ( nRows == 0 )
+ throw IndexOutOfBoundsException();
+
+ sal_Int32 nRow = implGetSelRow( nSelectedChildIndex % nRows );
+ sal_Int32 nColumn = nSelectedChildIndex / nRows;
+ return getAccessibleCellAt( nRow, nColumn );
+ }
+ // -----------------------------------------------------------------------------
+ void SAL_CALL AccessibleTabListBoxTable::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+ {
+ TLBSolarGuard aSolarGuard;
+ ::osl::MutexGuard aGuard( getOslMutex() );
+
+ ensureIsAlive();
+ ensureValidIndex( nSelectedChildIndex );
+
+ implSelectRow( implGetRow( nSelectedChildIndex ), sal_False );
+ }
+
+//........................................................................
+}// namespace accessibility
+//........................................................................
+
diff --git a/accessibility/source/extended/listboxaccessible.cxx b/accessibility/source/extended/listboxaccessible.cxx
new file mode 100644
index 000000000000..8600003c2bff
--- /dev/null
+++ b/accessibility/source/extended/listboxaccessible.cxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/extended/listboxaccessible.hxx>
+#include <svtools/svtreebx.hxx>
+
+//........................................................................
+namespace accessibility
+{
+//........................................................................
+
+ //====================================================================
+ //= ListBoxAccessibleBase
+ //====================================================================
+ //--------------------------------------------------------------------
+ ListBoxAccessibleBase::ListBoxAccessibleBase( SvTreeListBox& _rWindow )
+ :m_pWindow( &_rWindow )
+ {
+ m_pWindow->AddEventListener( LINK( this, ListBoxAccessibleBase, WindowEventListener ) );
+ }
+
+ //--------------------------------------------------------------------
+ ListBoxAccessibleBase::~ListBoxAccessibleBase( )
+ {
+ if ( m_pWindow )
+ {
+ // cannot call "dispose" here, as it is abstract, so the VTABLE of the derived class
+ // is not intact anymore
+ // so we call our "disposing" only
+ disposing();
+ }
+ }
+
+ //--------------------------------------------------------------------
+ IMPL_LINK( ListBoxAccessibleBase, WindowEventListener, VclSimpleEvent*, pEvent )
+ {
+ DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "ListBoxAccessibleBase::WindowEventListener: unexpected WindowEvent!" );
+ if ( pEvent && pEvent->ISA( VclWindowEvent ) )
+ {
+ DBG_ASSERT( static_cast< VclWindowEvent* >( pEvent )->GetWindow() , "ListBoxAccessibleBase::WindowEventListener: no event window!" );
+ DBG_ASSERT( static_cast< VclWindowEvent* >( pEvent )->GetWindow() == m_pWindow, "ListBoxAccessibleBase::WindowEventListener: where did this come from?" );
+
+ ProcessWindowEvent( *static_cast< VclWindowEvent* >( pEvent ) );
+ }
+ return 0;
+ }
+
+ // -----------------------------------------------------------------------------
+ void ListBoxAccessibleBase::disposing()
+ {
+ if ( m_pWindow )
+ m_pWindow->RemoveEventListener( LINK( this, ListBoxAccessibleBase, WindowEventListener ) );
+ m_pWindow = NULL;
+ }
+
+ // -----------------------------------------------------------------------------
+ void ListBoxAccessibleBase::ProcessWindowEvent( const VclWindowEvent& _rVclWindowEvent )
+ {
+ if ( isAlive() )
+ {
+ switch ( _rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_OBJECT_DYING :
+ {
+ if ( m_pWindow )
+ m_pWindow->RemoveEventListener( LINK( this, ListBoxAccessibleBase, WindowEventListener ) );
+ m_pWindow = NULL;
+ dispose();
+ break;
+ }
+ }
+ }
+ }
+
+//........................................................................
+} // namespace accessibility
+//........................................................................
diff --git a/accessibility/source/extended/makefile.mk b/accessibility/source/extended/makefile.mk
new file mode 100644
index 000000000000..bafd2b40c334
--- /dev/null
+++ b/accessibility/source/extended/makefile.mk
@@ -0,0 +1,75 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=accessibility
+TARGET=extended
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES=\
+ $(SLO)$/AccessibleBrowseBoxCheckBoxCell.obj \
+ $(SLO)$/AccessibleBrowseBoxBase.obj \
+ $(SLO)$/AccessibleBrowseBox.obj \
+ $(SLO)$/AccessibleBrowseBoxTableCell.obj \
+ $(SLO)$/AccessibleBrowseBoxHeaderCell.obj \
+ $(SLO)$/AccessibleBrowseBoxTableBase.obj \
+ $(SLO)$/AccessibleBrowseBoxTable.obj \
+ $(SLO)$/AccessibleBrowseBoxHeaderBar.obj \
+ $(SLO)$/accessibleiconchoicectrl.obj \
+ $(SLO)$/accessibleiconchoicectrlentry.obj \
+ $(SLO)$/accessiblelistbox.obj \
+ $(SLO)$/accessiblelistboxentry.obj \
+ $(SLO)$/accessibletabbarbase.obj \
+ $(SLO)$/accessibletabbar.obj \
+ $(SLO)$/accessibletabbarpage.obj \
+ $(SLO)$/accessibletabbarpagelist.obj \
+ $(SLO)$/accessibletablistbox.obj \
+ $(SLO)$/accessibletablistboxtable.obj \
+ $(SLO)$/listboxaccessible.obj \
+ $(SLO)$/accessiblebrowseboxcell.obj \
+ $(SLO)$/accessibleeditbrowseboxcell.obj \
+ $(SLO)$/textwindowaccessibility.obj \
+ $(SLO)$/AccessibleGridControlBase.obj \
+ $(SLO)$/AccessibleGridControl.obj \
+ $(SLO)$/AccessibleGridControlTableBase.obj \
+ $(SLO)$/AccessibleGridControlHeader.obj \
+ $(SLO)$/AccessibleGridControlTableCell.obj \
+ $(SLO)$/AccessibleGridControlHeaderCell.obj \
+ $(SLO)$/AccessibleGridControlTable.obj
+
+# --- Targets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
new file mode 100644
index 000000000000..04b07215d372
--- /dev/null
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -0,0 +1,2250 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#ifndef _TOOLKIT_AWT_VCLXACCESSIBLECOMPONENT_HXX_
+#include <accessibility/extended/textwindowaccessibility.hxx>
+#endif
+#include "comphelper/accessibleeventnotifier.hxx"
+#include "unotools/accessiblerelationsethelper.hxx"
+#include <unotools/accessiblestatesethelper.hxx>
+#include <vcl/window.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <algorithm>
+#include <vector>
+#include <hash_map>
+
+namespace css = ::com::sun::star;
+
+namespace accessibility
+{
+
+// Both ::osl::Mutex and ParagraphBase implement acquire and release, and thus
+// ::rtl::Reference< Paragraph > does not work. So ParagraphImpl was factored
+// out and ::rtl::Reference< ParagraphImpl > is used instead.
+class Paragraph: private ::osl::Mutex, public ParagraphImpl
+{
+public:
+ inline Paragraph(::rtl::Reference< Document > const & rDocument,
+ Paragraphs::size_type nNumber):
+ ParagraphImpl(rDocument, nNumber, *this) {}
+};
+
+void SfxListenerGuard::startListening(::SfxBroadcaster & rNotifier)
+{
+ OSL_ENSURE(m_pNotifier == 0, "called more than once");
+ m_pNotifier = &rNotifier;
+ m_rListener.StartListening(*m_pNotifier, true);
+}
+
+void SfxListenerGuard::endListening()
+{
+ if (m_pNotifier != 0)
+ {
+ m_rListener.EndListening(*m_pNotifier);
+ m_pNotifier = 0;
+ }
+}
+
+void WindowListenerGuard::startListening(::Window & rNotifier)
+{
+ OSL_ENSURE(m_pNotifier == 0, "called more than once");
+ m_pNotifier = &rNotifier;
+ m_pNotifier->AddEventListener(m_aListener);
+}
+
+void WindowListenerGuard::endListening()
+{
+ if (m_pNotifier != 0)
+ {
+ m_pNotifier->RemoveEventListener(m_aListener);
+ m_pNotifier = 0;
+ }
+}
+
+ParagraphImpl::ParagraphImpl(::rtl::Reference< Document > const & rDocument,
+ Paragraphs::size_type nNumber,
+ ::osl::Mutex & rMutex):
+ ParagraphBase(rMutex),
+ m_xDocument(rDocument),
+ m_nNumber(nNumber),
+ m_nClientId(0)
+{
+ m_aParagraphText = m_xDocument->retrieveParagraphText(this);
+}
+
+void
+ParagraphImpl::numberChanged(bool bIncremented)
+{
+ if (bIncremented)
+ ++m_nNumber;
+ else
+ --m_nNumber;
+}
+
+void ParagraphImpl::textChanged()
+{
+ ::rtl::OUString aParagraphText = implGetText();
+ ::css::uno::Any aOldValue, aNewValue;
+ if ( implInitTextChangedEvent( m_aParagraphText, aParagraphText, aOldValue, aNewValue ) )
+ {
+ m_aParagraphText = aParagraphText;
+ notifyEvent(::css::accessibility::AccessibleEventId::
+ TEXT_CHANGED,
+ aOldValue, aNewValue);
+ }
+}
+
+void ParagraphImpl::notifyEvent(::sal_Int16 nEventId,
+ ::css::uno::Any const & rOldValue,
+ ::css::uno::Any const & rNewValue)
+{
+ if (m_nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( m_nClientId, ::css::accessibility::AccessibleEventObject(
+ static_cast< ::cppu::OWeakObject * >(this),
+ nEventId, rNewValue, rOldValue) );
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessibleContext > SAL_CALL
+ParagraphImpl::getAccessibleContext() throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return this;
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getAccessibleChildCount()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return 0;
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ParagraphImpl::getAccessibleChild(::sal_Int32)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " ParagraphImpl::getAccessibleChild")),
+ static_cast< ::css::uno::XWeak * >(this));
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ParagraphImpl::getAccessibleParent()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->getAccessible();
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getAccessibleIndexInParent()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveParagraphIndex(this);
+}
+
+// virtual
+::sal_Int16 SAL_CALL ParagraphImpl::getAccessibleRole()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return ::css::accessibility::AccessibleRole::PARAGRAPH;
+}
+
+// virtual
+::rtl::OUString SAL_CALL ParagraphImpl::getAccessibleDescription()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return ::rtl::OUString();
+}
+
+// virtual
+::rtl::OUString SAL_CALL ParagraphImpl::getAccessibleName()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return ::rtl::OUString();
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessibleRelationSet >
+SAL_CALL ParagraphImpl::getAccessibleRelationSet()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveParagraphRelationSet( this );
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessibleStateSet >
+SAL_CALL ParagraphImpl::getAccessibleStateSet()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+
+ // FIXME Notification of changes (STATE_CHANGED) missing when
+ // m_rView.IsReadOnly() changes:
+ return new ::utl::AccessibleStateSetHelper(
+ m_xDocument->retrieveParagraphState(this));
+}
+
+// virtual
+::css::lang::Locale SAL_CALL ParagraphImpl::getLocale()
+ throw (::css::accessibility::IllegalAccessibleComponentStateException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveLocale();
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::containsPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Rectangle aRect(m_xDocument->retrieveParagraphBounds(this,
+ false));
+ return rPoint.X >= 0 && rPoint.X < aRect.Width
+ && rPoint.Y >= 0 && rPoint.Y < aRect.Height;
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+ParagraphImpl::getAccessibleAtPoint(::css::awt::Point const &)
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return 0;
+}
+
+// virtual
+::css::awt::Rectangle SAL_CALL ParagraphImpl::getBounds()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveParagraphBounds(this, false);
+}
+
+// virtual
+::css::awt::Point SAL_CALL ParagraphImpl::getLocation()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Rectangle aRect(m_xDocument->retrieveParagraphBounds(this,
+ false));
+ return ::css::awt::Point(aRect.X, aRect.Y);
+}
+
+// virtual
+::css::awt::Point SAL_CALL ParagraphImpl::getLocationOnScreen()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Rectangle aRect(m_xDocument->retrieveParagraphBounds(this,
+ true));
+ return ::css::awt::Point(aRect.X, aRect.Y);
+}
+
+// virtual
+::css::awt::Size SAL_CALL ParagraphImpl::getSize()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Rectangle aRect(m_xDocument->retrieveParagraphBounds(this,
+ false));
+ return ::css::awt::Size(aRect.Width, aRect.Height);
+}
+
+// virtual
+void SAL_CALL ParagraphImpl::grabFocus() throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ Window* pWindow = m_xDocument->GetWindow();
+ if ( pWindow )
+ {
+ pWindow->GrabFocus();
+ }
+ try
+ {
+ m_xDocument->changeParagraphSelection(this, 0, 0);
+ }
+ catch (::css::lang::IndexOutOfBoundsException & rEx)
+ {
+ OSL_TRACE(
+ "textwindowaccessibility.cxx: ParagraphImpl::grabFocus:"
+ " caught unexpected %s\n",
+ ::rtl::OUStringToOString(rEx.Message, RTL_TEXTENCODING_UTF8).
+ getStr());
+ }
+}
+
+// virtual
+::css::uno::Any SAL_CALL ParagraphImpl::getAccessibleKeyBinding()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return ::css::uno::Any();
+}
+
+// virtual
+::css::util::Color SAL_CALL ParagraphImpl::getForeground()
+ throw (::css::uno::RuntimeException)
+{
+ return 0; // TODO
+}
+
+// virtual
+::css::util::Color SAL_CALL ParagraphImpl::getBackground()
+ throw (::css::uno::RuntimeException)
+{
+ return 0; // TODO
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getCaretPosition()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveParagraphCaretPosition(this);
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::setCaretPosition(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphSelection(this, nIndex, nIndex);
+ return true;
+}
+
+// virtual
+::sal_Unicode SAL_CALL ParagraphImpl::getCharacter(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getCharacter(nIndex);
+}
+
+// virtual
+::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ParagraphImpl::getCharacterAttributes(::sal_Int32 nIndex, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& aRequestedAttributes)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveCharacterAttributes( this, nIndex, aRequestedAttributes );
+}
+
+// virtual
+::css::awt::Rectangle SAL_CALL
+ParagraphImpl::getCharacterBounds(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Rectangle aBounds(m_xDocument->retrieveCharacterBounds(this, nIndex));
+ ::css::awt::Rectangle aParaBounds(m_xDocument->retrieveParagraphBounds(this, false));
+ aBounds.X -= aParaBounds.X;
+ aBounds.Y -= aParaBounds.Y;
+ return aBounds;
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getCharacterCount()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getCharacterCount();
+}
+
+// virtual
+::sal_Int32 SAL_CALL
+ParagraphImpl::getIndexAtPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ ::css::awt::Point aPoint(rPoint);
+ ::css::awt::Rectangle aParaBounds(m_xDocument->retrieveParagraphBounds(this, false));
+ aPoint.X += aParaBounds.X;
+ aPoint.Y += aParaBounds.Y;
+ return m_xDocument->retrieveCharacterIndex(this, aPoint);
+}
+
+// virtual
+::rtl::OUString SAL_CALL ParagraphImpl::getSelectedText()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+
+ return OCommonAccessibleText::getSelectedText();
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getSelectionStart()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getSelectionStart();
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getSelectionEnd()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getSelectionEnd();
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::setSelection(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphSelection(this, nStartIndex, nEndIndex);
+ return true;
+}
+
+// virtual
+::rtl::OUString SAL_CALL ParagraphImpl::getText()
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getText();
+}
+
+// virtual
+::rtl::OUString SAL_CALL ParagraphImpl::getTextRange(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getTextRange(nStartIndex, nEndIndex);
+}
+
+// virtual
+::com::sun::star::accessibility::TextSegment SAL_CALL ParagraphImpl::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getTextAtIndex(nIndex, aTextType);
+}
+
+// virtual
+::com::sun::star::accessibility::TextSegment SAL_CALL ParagraphImpl::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getTextBeforeIndex(nIndex, aTextType);
+}
+
+// virtual
+::com::sun::star::accessibility::TextSegment SAL_CALL ParagraphImpl::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ checkDisposed();
+ return OCommonAccessibleText::getTextBehindIndex(nIndex, aTextType);
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::copyText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->copyParagraphText(this, nStartIndex, nEndIndex);
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::cutText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, nStartIndex, nEndIndex, true, false,
+ ::rtl::OUString());
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::pasteText(::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, nIndex, nIndex, false, true,
+ ::rtl::OUString());
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::deleteText(::sal_Int32 nStartIndex,
+ ::sal_Int32 nEndIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, nStartIndex, nEndIndex, false, false,
+ ::rtl::OUString());
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::insertText(::rtl::OUString const & rText,
+ ::sal_Int32 nIndex)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, nIndex, nIndex, false, false, rText);
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL
+ParagraphImpl::replaceText(::sal_Int32 nStartIndex, ::sal_Int32 nEndIndex,
+ ::rtl::OUString const & rReplacement)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, nStartIndex, nEndIndex, false, false,
+ rReplacement);
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::setAttributes(
+ ::sal_Int32 nStartIndex, ::sal_Int32 nEndIndex,
+ ::css::uno::Sequence< ::css::beans::PropertyValue > const & rAttributeSet)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphAttributes(this, nStartIndex, nEndIndex,
+ rAttributeSet);
+ return true;
+}
+
+// virtual
+::sal_Bool SAL_CALL ParagraphImpl::setText(::rtl::OUString const & rText)
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ m_xDocument->changeParagraphText(this, rText);
+ return true;
+}
+
+// virtual
+::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ParagraphImpl::getDefaultAttributes(const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveDefaultAttributes( this, RequestedAttributes );
+}
+
+// virtual
+::css::uno::Sequence< ::css::beans::PropertyValue > SAL_CALL
+ParagraphImpl::getRunAttributes(::sal_Int32 Index, const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveRunAttributes( this, Index, RequestedAttributes );
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getLineNumberAtIndex( ::sal_Int32 nIndex )
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+
+ ::sal_Int32 nLineNo = -1;
+ ::css::i18n::Boundary aBoundary =
+ m_xDocument->retrieveParagraphLineBoundary( this, nIndex, &nLineNo );
+
+ return nLineNo;
+}
+
+// virtual
+::css::accessibility::TextSegment SAL_CALL ParagraphImpl::getTextAtLineNumber( ::sal_Int32 nLineNo )
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ checkDisposed();
+
+ ::css::i18n::Boundary aBoundary =
+ m_xDocument->retrieveParagraphBoundaryOfLine( this, nLineNo );
+
+ return ::css::accessibility::TextSegment( getTextRange(aBoundary.startPos, aBoundary.endPos),
+ aBoundary.startPos, aBoundary.endPos);
+}
+
+// virtual
+::css::accessibility::TextSegment SAL_CALL ParagraphImpl::getTextAtLineWithCaret( )
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+
+ sal_Int32 nLineNo = getNumberOfLineWithCaret();
+
+ try {
+ return ( nLineNo >= 0 ) ?
+ getTextAtLineNumber( nLineNo ) :
+ ::css::accessibility::TextSegment();
+ } catch (const ::css::lang::IndexOutOfBoundsException&) {
+ throw ::css::uno::RuntimeException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " ParagraphImpl::getTextAtLineWithCaret") ),
+ static_cast< ::css::uno::XWeak * >( this ) );
+ }
+}
+
+// virtual
+::sal_Int32 SAL_CALL ParagraphImpl::getNumberOfLineWithCaret( )
+ throw (::css::uno::RuntimeException)
+{
+ checkDisposed();
+ return m_xDocument->retrieveParagraphLineWithCursor(this);
+}
+
+
+// virtual
+void SAL_CALL ParagraphImpl::addEventListener(
+ ::css::uno::Reference<
+ ::css::accessibility::XAccessibleEventListener > const & rListener)
+ throw (::css::uno::RuntimeException)
+{
+ if (rListener.is())
+ {
+ ::osl::ClearableMutexGuard aGuard(rBHelper.rMutex);
+ if (rBHelper.bDisposed || rBHelper.bInDispose)
+ {
+ aGuard.clear();
+ rListener->disposing(::css::lang::EventObject(
+ static_cast< ::cppu::OWeakObject * >(this)));
+ }
+ else
+ {
+ if (!m_nClientId)
+ m_nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, rListener );
+ }
+ }
+}
+
+// virtual
+void SAL_CALL ParagraphImpl::removeEventListener(
+ ::css::uno::Reference<
+ ::css::accessibility::XAccessibleEventListener > const & rListener)
+ throw (::css::uno::RuntimeException)
+{
+ comphelper::AccessibleEventNotifier::TClientId nId = 0;
+ {
+ ::osl::ClearableMutexGuard aGuard(rBHelper.rMutex);
+ if (rListener.is() && m_nClientId != 0
+ && comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, rListener ) == 0)
+ {
+ nId = m_nClientId;
+ m_nClientId = 0;
+ }
+ }
+ if (nId != 0)
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+ comphelper::AccessibleEventNotifier::revokeClient(nId);
+ }
+}
+
+// virtual
+void SAL_CALL ParagraphImpl::disposing()
+{
+ comphelper::AccessibleEventNotifier::TClientId nId = 0;
+ {
+ ::osl::ClearableMutexGuard aGuard(rBHelper.rMutex);
+ nId = m_nClientId;
+ m_nClientId = 0;
+ }
+ if (nId != 0)
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing(nId, *this);
+}
+
+// virtual
+::rtl::OUString ParagraphImpl::implGetText()
+{
+ return m_xDocument->retrieveParagraphText(this);
+}
+
+// virtual
+::css::lang::Locale ParagraphImpl::implGetLocale()
+{
+ return m_xDocument->retrieveLocale();
+}
+
+// virtual
+void ParagraphImpl::implGetSelection(::sal_Int32 & rStartIndex,
+ ::sal_Int32 & rEndIndex)
+{
+ m_xDocument->retrieveParagraphSelection(this, &rStartIndex, &rEndIndex);
+}
+
+// virtual
+void ParagraphImpl::implGetParagraphBoundary( ::css::i18n::Boundary& rBoundary,
+ ::sal_Int32 nIndex )
+{
+ ::rtl::OUString sText( implGetText() );
+ ::sal_Int32 nLength = sText.getLength();
+
+ if ( implIsValidIndex( nIndex, nLength ) )
+ {
+ rBoundary.startPos = 0;
+ rBoundary.endPos = nLength;
+ }
+ else
+ {
+ rBoundary.startPos = nIndex;
+ rBoundary.endPos = nIndex;
+ }
+}
+
+// virtual
+void ParagraphImpl::implGetLineBoundary( ::css::i18n::Boundary& rBoundary,
+ ::sal_Int32 nIndex )
+{
+ ::rtl::OUString sText( implGetText() );
+ ::sal_Int32 nLength = sText.getLength();
+
+ if ( implIsValidIndex( nIndex, nLength ) || nIndex == nLength )
+ {
+ ::css::i18n::Boundary aBoundary =
+ m_xDocument->retrieveParagraphLineBoundary( this, nIndex );
+ rBoundary.startPos = aBoundary.startPos;
+ rBoundary.endPos = aBoundary.endPos;
+ }
+ else
+ {
+ rBoundary.startPos = nIndex;
+ rBoundary.endPos = nIndex;
+ }
+}
+
+
+void ParagraphImpl::checkDisposed()
+{
+ ::osl::MutexGuard aGuard(rBHelper.rMutex);
+ if (!(rBHelper.bDisposed || rBHelper.bInDispose))
+ return;
+ throw ::css::lang::DisposedException(
+ ::rtl::OUString(), static_cast< ::css::uno::XWeak * >(this));
+}
+
+Document::Document(::VCLXWindow * pVclXWindow, ::TextEngine & rEngine,
+ ::TextView & rView, bool bCompoundControlChild):
+ VCLXAccessibleComponent(pVclXWindow),
+ m_xAccessible(pVclXWindow),
+ m_rEngine(rEngine),
+ m_rView(rView),
+ m_aEngineListener(*this),
+ m_aViewListener(LINK(this, Document, WindowEventHandler)),
+ m_bCompoundControlChild(bCompoundControlChild)
+{}
+
+::css::lang::Locale Document::retrieveLocale()
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ return m_rEngine.GetLocale();
+}
+
+::sal_Int32 Document::retrieveParagraphIndex(ParagraphImpl const * pParagraph)
+{
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+
+ // If a client holds on to a Paragraph that is no longer visible, it can
+ // happen that this Paragraph lies outside the range from m_aVisibleBegin
+ // to m_aVisibleEnd. In that case, return -1 instead of a valid index:
+ Paragraphs::iterator aPara(m_xParagraphs->begin()
+ + pParagraph->getNumber());
+ return aPara < m_aVisibleBegin || aPara >= m_aVisibleEnd
+ ? -1 : static_cast< ::sal_Int32 >(aPara - m_aVisibleBegin);
+ // XXX numeric overflow
+}
+
+::sal_Int64 Document::retrieveParagraphState(ParagraphImpl const * pParagraph)
+{
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+
+ // If a client holds on to a Paragraph that is no longer visible, it can
+ // happen that this Paragraph lies outside the range from m_aVisibleBegin
+ // to m_aVisibleEnd. In that case, it is neither VISIBLE nor SHOWING:
+ ::sal_Int64 nState
+ = (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::ENABLED)
+ | (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::SENSITIVE)
+ | (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::FOCUSABLE)
+ | (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::MULTI_LINE);
+ if (!m_rView.IsReadOnly())
+ nState |= (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::EDITABLE);
+ Paragraphs::iterator aPara(m_xParagraphs->begin()
+ + pParagraph->getNumber());
+ if (aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd)
+ {
+ nState
+ |= (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::VISIBLE)
+ | (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::SHOWING);
+ if (aPara == m_aFocused)
+ nState |= (static_cast< ::sal_Int64 >(1)
+ << ::css::accessibility::AccessibleStateType::FOCUSED);
+ }
+ return nState;
+};
+
+::css::awt::Rectangle
+Document::retrieveParagraphBounds(ParagraphImpl const * pParagraph,
+ bool bAbsolute)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+
+ // If a client holds on to a Paragraph that is no longer visible (as it
+ // scrolled out the top of the view), it can happen that this Paragraph
+ // lies before m_aVisibleBegin. In that case, calculate the vertical
+ // position of the Paragraph starting at paragraph 0, otherwise optimize
+ // and start at m_aVisibleBegin:
+ Paragraphs::iterator aPara(m_xParagraphs->begin()
+ + pParagraph->getNumber());
+ ::sal_Int32 nPos;
+ Paragraphs::iterator aIt;
+ if (aPara < m_aVisibleBegin)
+ {
+ nPos = 0;
+ aIt = m_xParagraphs->begin();
+ }
+ else
+ {
+ nPos = m_nViewOffset - m_nVisibleBeginOffset;
+ aIt = m_aVisibleBegin;
+ }
+ for (; aIt != aPara; ++aIt)
+ nPos += aIt->getHeight();
+
+ Point aOrig(0, 0);
+ if (bAbsolute)
+ aOrig = m_rView.GetWindow()->OutputToAbsoluteScreenPixel(aOrig);
+
+ return ::css::awt::Rectangle(
+ static_cast< ::sal_Int32 >(aOrig.X()),
+ static_cast< ::sal_Int32 >(aOrig.Y()) + nPos - m_nViewOffset,
+ m_rView.GetWindow()->GetOutputSizePixel().Width(), aPara->getHeight());
+ // XXX numeric overflow (3x)
+}
+
+::rtl::OUString
+Document::retrieveParagraphText(ParagraphImpl const * pParagraph)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ return m_rEngine.GetText(static_cast< ::ULONG >(pParagraph->getNumber()));
+ // numeric overflow cannot happen here
+}
+
+void Document::retrieveParagraphSelection(ParagraphImpl const * pParagraph,
+ ::sal_Int32 * pBegin,
+ ::sal_Int32 * pEnd)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::TextSelection const & rSelection = m_rView.GetSelection();
+ Paragraphs::size_type nNumber = pParagraph->getNumber();
+ TextPaM aStartPaM( rSelection.GetStart() );
+ TextPaM aEndPaM( rSelection.GetEnd() );
+ TextPaM aMinPaM( ::std::min( aStartPaM, aEndPaM ) );
+ TextPaM aMaxPaM( ::std::max( aStartPaM, aEndPaM ) );
+
+ if ( nNumber >= aMinPaM.GetPara() && nNumber <= aMaxPaM.GetPara() )
+ {
+ *pBegin = nNumber > aMinPaM.GetPara()
+ ? 0
+ : static_cast< ::sal_Int32 >( aMinPaM.GetIndex() );
+ // XXX numeric overflow
+ *pEnd = nNumber < aMaxPaM.GetPara()
+ ? static_cast< ::sal_Int32 >( m_rEngine.GetText(static_cast< ::ULONG >(nNumber)).Len() )
+ : static_cast< ::sal_Int32 >( aMaxPaM.GetIndex() );
+ // XXX numeric overflow (3x)
+
+ if ( aStartPaM > aEndPaM )
+ ::std::swap( *pBegin, *pEnd );
+ }
+ else
+ {
+ *pBegin = 0;
+ *pEnd = 0;
+ }
+}
+
+::sal_Int32 Document::retrieveParagraphCaretPosition(ParagraphImpl const * pParagraph)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::TextSelection const & rSelection = m_rView.GetSelection();
+ Paragraphs::size_type nNumber = pParagraph->getNumber();
+ TextPaM aEndPaM( rSelection.GetEnd() );
+
+ return aEndPaM.GetPara() == nNumber
+ ? static_cast< ::sal_Int32 >(aEndPaM.GetIndex()) : -1;
+}
+
+::css::awt::Rectangle
+Document::retrieveCharacterBounds(ParagraphImpl const * pParagraph,
+ ::sal_Int32 nIndex)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ sal_Int32 nLength = m_rEngine.GetText(nNumber).Len();
+ // XXX numeric overflow
+ if (nIndex < 0 || nIndex > nLength)
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::retrieveCharacterAttributes")),
+ static_cast< ::css::uno::XWeak * >(this));
+ ::css::awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( nIndex == nLength )
+ {
+ aBounds = AWTRectangle(
+ m_rEngine.PaMtoEditCursor(::TextPaM(nNumber,
+ static_cast< ::USHORT >(nIndex))));
+ }
+ else
+ {
+ ::Rectangle aLeft(
+ m_rEngine.PaMtoEditCursor(::TextPaM(nNumber,
+ static_cast< ::USHORT >(nIndex))));
+ // XXX numeric overflow
+ ::Rectangle aRight(
+ m_rEngine.PaMtoEditCursor(::TextPaM(nNumber,
+ static_cast< ::USHORT >(nIndex)
+ + 1)));
+ // XXX numeric overflow (2x)
+ // FIXME If the vertical extends of the two cursors do not match, assume
+ // nIndex is the last character on the line; the bounding box will then
+ // extend to m_rEnginge.GetMaxTextWidth():
+ ::sal_Int32 nWidth = (aLeft.Top() == aRight.Top()
+ && aLeft.Bottom() == aRight.Bottom())
+ ? static_cast< ::sal_Int32 >(aRight.Left() - aLeft.Left())
+ : static_cast< ::sal_Int32 >(m_rEngine.GetMaxTextWidth()
+ - aLeft.Left());
+ // XXX numeric overflow (4x)
+ aBounds = ::css::awt::Rectangle(static_cast< ::sal_Int32 >(aLeft.Left()),
+ static_cast< ::sal_Int32 >(aLeft.Top() - m_nViewOffset),
+ nWidth,
+ static_cast< ::sal_Int32 >(aLeft.Bottom()
+ - aLeft.Top()));
+ // XXX numeric overflow (4x)
+ }
+ return aBounds;
+}
+
+::sal_Int32 Document::retrieveCharacterIndex(ParagraphImpl const * pParagraph,
+ ::css::awt::Point const & rPoint)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ ::TextPaM aPaM(m_rEngine.GetPaM(::Point(static_cast< long >(rPoint.X),
+ static_cast< long >(rPoint.Y))));
+ // XXX numeric overflow (2x)
+ return aPaM.GetPara() == nNumber
+ ? static_cast< ::sal_Int32 >(aPaM.GetIndex()) : -1;
+ // XXX numeric overflow
+}
+
+::css::uno::Sequence< ::css::beans::PropertyValue >
+Document::retrieveCharacterAttributes(
+ ParagraphImpl const * pParagraph, ::sal_Int32 nIndex,
+ const ::css::uno::Sequence< ::rtl::OUString >& aRequestedAttributes)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ if (nIndex < 0 || nIndex >= m_rEngine.GetText(nNumber).Len())
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::retrieveCharacterAttributes")),
+ static_cast< ::css::uno::XWeak * >(this));
+
+ // retrieve default attributes
+ tPropValMap aCharAttrSeq;
+ retrieveDefaultAttributesImpl( pParagraph, aRequestedAttributes, aCharAttrSeq );
+
+ // retrieve run attributes
+ tPropValMap aRunAttrSeq;
+ retrieveRunAttributesImpl( pParagraph, nIndex, aRequestedAttributes, aRunAttrSeq );
+
+ // merge default and run attributes
+ for ( tPropValMap::const_iterator aRunIter = aRunAttrSeq.begin();
+ aRunIter != aRunAttrSeq.end();
+ ++aRunIter )
+ {
+ aCharAttrSeq[ aRunIter->first ] = aRunIter->second;
+ }
+
+ return convertHashMapToSequence( aCharAttrSeq );
+}
+
+void Document::retrieveDefaultAttributesImpl(
+ ParagraphImpl const * pParagraph,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes,
+ tPropValMap& rDefAttrSeq)
+{
+ // default attributes are not supported by text engine
+ (void) pParagraph;
+ (void) RequestedAttributes;
+ (void) rDefAttrSeq;
+}
+
+::css::uno::Sequence< ::css::beans::PropertyValue >
+Document::retrieveDefaultAttributes(
+ ParagraphImpl const * pParagraph,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
+ ::osl::MutexGuard aInternalGuard( GetMutex() );
+
+ tPropValMap aDefAttrSeq;
+ retrieveDefaultAttributesImpl( pParagraph, RequestedAttributes, aDefAttrSeq );
+ return convertHashMapToSequence( aDefAttrSeq );
+}
+
+// static
+::css::uno::Sequence< ::css::beans::PropertyValue >
+Document::convertHashMapToSequence(tPropValMap& rAttrSeq)
+{
+ ::css::uno::Sequence< ::css::beans::PropertyValue > aValues( rAttrSeq.size() );
+ ::css::beans::PropertyValue* pValues = aValues.getArray();
+ ::sal_Int32 i = 0;
+ for ( tPropValMap::const_iterator aIter = rAttrSeq.begin();
+ aIter != rAttrSeq.end();
+ ++aIter )
+ {
+ pValues[i] = aIter->second;
+ ++i;
+ }
+ return aValues;
+}
+
+void Document::retrieveRunAttributesImpl(
+ ParagraphImpl const * pParagraph, ::sal_Int32 Index,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes,
+ tPropValMap& rRunAttrSeq)
+{
+ ::ULONG nNumber = static_cast< ::ULONG >( pParagraph->getNumber() );
+ ::TextPaM aPaM( nNumber, static_cast< ::USHORT >( Index ) );
+ // XXX numeric overflow
+ // FIXME TEXTATTR_HYPERLINK ignored:
+ ::TextAttribFontColor const * pColor
+ = static_cast< ::TextAttribFontColor const * >(
+ m_rEngine.FindAttrib( aPaM, TEXTATTR_FONTCOLOR ) );
+ ::TextAttribFontWeight const * pWeight
+ = static_cast< ::TextAttribFontWeight const * >(
+ m_rEngine.FindAttrib( aPaM, TEXTATTR_FONTWEIGHT ) );
+ tPropValMap aRunAttrSeq;
+ if ( pColor )
+ {
+ ::css::beans::PropertyValue aPropVal;
+ aPropVal.Name =
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharColor" ) );
+ aPropVal.Handle = -1;
+ aPropVal.Value = mapFontColor( pColor->GetColor() );
+ aPropVal.State = ::css::beans::PropertyState_DIRECT_VALUE;
+ aRunAttrSeq[ aPropVal.Name ] = aPropVal;
+ }
+ if ( pWeight )
+ {
+ ::css::beans::PropertyValue aPropVal;
+ aPropVal.Name =
+ ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "CharWeight" ) );
+ aPropVal.Handle = -1;
+ aPropVal.Value = mapFontWeight( pWeight->getFontWeight() );
+ aPropVal.State = ::css::beans::PropertyState_DIRECT_VALUE;
+ aRunAttrSeq[ aPropVal.Name ] = aPropVal;
+ }
+ if ( RequestedAttributes.getLength() == 0 )
+ {
+ rRunAttrSeq = aRunAttrSeq;
+ }
+ else
+ {
+ const ::rtl::OUString* pReqAttrs = RequestedAttributes.getConstArray();
+ const ::sal_Int32 nLength = RequestedAttributes.getLength();
+ for ( ::sal_Int32 i = 0; i < nLength; ++i )
+ {
+ tPropValMap::iterator aIter = aRunAttrSeq.find( pReqAttrs[i] );
+ if ( aIter != aRunAttrSeq.end() )
+ {
+ rRunAttrSeq[ (*aIter).first ] = (*aIter).second;
+ }
+ }
+ }
+}
+
+::css::uno::Sequence< ::css::beans::PropertyValue >
+Document::retrieveRunAttributes(
+ ParagraphImpl const * pParagraph, ::sal_Int32 Index,
+ const ::css::uno::Sequence< ::rtl::OUString >& RequestedAttributes)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
+ ::osl::MutexGuard aInternalGuard( GetMutex() );
+ ::ULONG nNumber = static_cast< ::ULONG >( pParagraph->getNumber() );
+ // XXX numeric overflow
+ if ( Index < 0 || Index >= m_rEngine.GetText(nNumber).Len() )
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::retrieveRunAttributes") ),
+ static_cast< ::css::uno::XWeak * >( this ) );
+
+ tPropValMap aRunAttrSeq;
+ retrieveRunAttributesImpl( pParagraph, Index, RequestedAttributes, aRunAttrSeq );
+ return convertHashMapToSequence( aRunAttrSeq );
+}
+
+void Document::changeParagraphText(ParagraphImpl * pParagraph,
+ ::rtl::OUString const & rText)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ changeParagraphText(nNumber, 0, m_rEngine.GetTextLen(nNumber), false,
+ false, rText);
+ }
+}
+
+void Document::changeParagraphText(ParagraphImpl * pParagraph,
+ ::sal_Int32 nBegin, ::sal_Int32 nEnd,
+ bool bCut, bool bPaste,
+ ::rtl::OUString const & rText)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ if (nBegin < 0 || nBegin > nEnd
+ || nEnd > m_rEngine.GetText(nNumber).Len())
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::changeParagraphText")),
+ static_cast< ::css::uno::XWeak * >(this));
+ changeParagraphText(nNumber, static_cast< ::USHORT >(nBegin),
+ static_cast< ::USHORT >(nEnd), bCut, bPaste, rText);
+ // XXX numeric overflow (2x)
+ }
+}
+
+void Document::copyParagraphText(ParagraphImpl const * pParagraph,
+ ::sal_Int32 nBegin, ::sal_Int32 nEnd)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ if (nBegin < 0 || nBegin > nEnd
+ || nEnd > m_rEngine.GetText(nNumber).Len())
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::copyParagraphText")),
+ static_cast< ::css::uno::XWeak * >(this));
+ m_rView.SetSelection(
+ ::TextSelection(::TextPaM(nNumber, static_cast< ::USHORT >(nBegin)),
+ ::TextPaM(nNumber, static_cast< ::USHORT >(nEnd))));
+ // XXX numeric overflow (2x)
+ m_rView.Copy();
+ }
+}
+
+void Document::changeParagraphAttributes(
+ ParagraphImpl * pParagraph, ::sal_Int32 nBegin, ::sal_Int32 nEnd,
+ ::css::uno::Sequence< ::css::beans::PropertyValue > const & rAttributeSet)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ if (nBegin < 0 || nBegin > nEnd
+ || nEnd > m_rEngine.GetText(nNumber).Len())
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::changeParagraphAttributes")),
+ static_cast< ::css::uno::XWeak * >(this));
+
+ // FIXME The new attributes are added to any attributes already set,
+ // they do not replace the old attributes as required by
+ // XAccessibleEditableText.setAttributes:
+ for (::sal_Int32 i = 0; i < rAttributeSet.getLength(); ++i)
+ if (rAttributeSet[i].Name.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("CharColor")))
+ m_rEngine.SetAttrib(::TextAttribFontColor(
+ mapFontColor(rAttributeSet[i].Value)),
+ nNumber, static_cast< ::USHORT >(nBegin),
+ static_cast< ::USHORT >(nEnd));
+ // XXX numeric overflow (2x)
+ else if (rAttributeSet[i].Name.equalsAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("CharWeight")))
+ m_rEngine.SetAttrib(::TextAttribFontWeight(
+ mapFontWeight(rAttributeSet[i].Value)),
+ nNumber, static_cast< ::USHORT >(nBegin),
+ static_cast< ::USHORT >(nEnd));
+ // XXX numeric overflow (2x)
+ }
+}
+
+void Document::changeParagraphSelection(ParagraphImpl * pParagraph,
+ ::sal_Int32 nBegin, ::sal_Int32 nEnd)
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::ULONG nNumber = static_cast< ::ULONG >(pParagraph->getNumber());
+ // XXX numeric overflow
+ if (nBegin < 0 || nBegin > nEnd
+ || nEnd > m_rEngine.GetText(nNumber).Len())
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::changeParagraphSelection")),
+ static_cast< ::css::uno::XWeak * >(this));
+ m_rView.SetSelection(
+ ::TextSelection(::TextPaM(nNumber, static_cast< ::USHORT >(nBegin)),
+ ::TextPaM(nNumber, static_cast< ::USHORT >(nEnd))));
+ // XXX numeric overflow (2x)
+ }
+}
+
+::css::i18n::Boundary
+Document::retrieveParagraphLineBoundary( ParagraphImpl const * pParagraph,
+ ::sal_Int32 nIndex, ::sal_Int32 *pLineNo )
+{
+ ::css::i18n::Boundary aBoundary;
+ aBoundary.startPos = nIndex;
+ aBoundary.endPos = nIndex;
+
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
+ {
+ ::osl::MutexGuard aInternalGuard( GetMutex() );
+ ::ULONG nNumber = static_cast< ::ULONG >( pParagraph->getNumber() );
+ if ( nIndex < 0 || nIndex > m_rEngine.GetText( nNumber ).Len() )
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::retrieveParagraphLineBoundary" ) ),
+ static_cast< ::css::uno::XWeak * >( this ) );
+ ::sal_Int32 nLineStart = 0;
+ ::sal_Int32 nLineEnd = 0;
+ ::USHORT nLineCount = m_rEngine.GetLineCount( nNumber );
+ for ( ::USHORT nLine = 0; nLine < nLineCount; ++nLine )
+ {
+ ::sal_Int32 nLineLength = static_cast< ::sal_Int32 >(
+ m_rEngine.GetLineLen( nNumber, nLine ) );
+ nLineStart = nLineEnd;
+ nLineEnd += nLineLength;
+ if ( nIndex >= nLineStart && ( ( nLine == nLineCount - 1 ) ? nIndex <= nLineEnd : nIndex < nLineEnd ) )
+ {
+ aBoundary.startPos = nLineStart;
+ aBoundary.endPos = nLineEnd;
+ if( pLineNo )
+ pLineNo[0] = nLine;
+ break;
+ }
+ }
+ }
+
+ return aBoundary;
+}
+
+::css::i18n::Boundary
+Document::retrieveParagraphBoundaryOfLine( ParagraphImpl const * pParagraph,
+ ::sal_Int32 nLineNo )
+{
+ ::css::i18n::Boundary aBoundary;
+ aBoundary.startPos = 0;
+ aBoundary.endPos = 0;
+
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard( getExternalLock() );
+ {
+ ::osl::MutexGuard aInternalGuard( GetMutex() );
+ ::ULONG nNumber = static_cast< ::ULONG >( pParagraph->getNumber() );
+ if ( nLineNo >= m_rEngine.GetLineCount( nNumber ) )
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::retrieveParagraphBoundaryOfLine" ) ),
+ static_cast< ::css::uno::XWeak * >( this ) );
+ ::sal_Int32 nLineStart = 0;
+ ::sal_Int32 nLineEnd = 0;
+ for ( ::USHORT nLine = 0; nLine <= nLineNo; ++nLine )
+ {
+ ::sal_Int32 nLineLength = static_cast< ::sal_Int32 >(
+ m_rEngine.GetLineLen( nNumber, nLine ) );
+ nLineStart = nLineEnd;
+ nLineEnd += nLineLength;
+ }
+
+ aBoundary.startPos = nLineStart;
+ aBoundary.endPos = nLineEnd;
+ }
+
+ return aBoundary;
+}
+
+sal_Int32 Document::retrieveParagraphLineWithCursor( ParagraphImpl const * pParagraph )
+{
+ ::osl::Guard< ::comphelper::IMutex > aExternalGuard(getExternalLock());
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ ::TextSelection const & rSelection = m_rView.GetSelection();
+ Paragraphs::size_type nNumber = pParagraph->getNumber();
+ TextPaM aEndPaM( rSelection.GetEnd() );
+
+ return aEndPaM.GetPara() == nNumber
+ ? m_rView.GetLineNumberOfCursorInSelection() : -1;
+}
+
+
+::css::uno::Reference< ::css::accessibility::XAccessibleRelationSet >
+Document::retrieveParagraphRelationSet( ParagraphImpl const * pParagraph )
+{
+ ::osl::MutexGuard aInternalGuard( GetMutex() );
+
+ ::utl::AccessibleRelationSetHelper* pRelationSetHelper = new ::utl::AccessibleRelationSetHelper();
+ ::css::uno::Reference< ::css::accessibility::XAccessibleRelationSet > xSet = pRelationSetHelper;
+
+ Paragraphs::iterator aPara( m_xParagraphs->begin() + pParagraph->getNumber() );
+
+ if ( aPara > m_aVisibleBegin && aPara < m_aVisibleEnd )
+ {
+ ::css::uno::Sequence< ::css::uno::Reference< ::css::uno::XInterface > > aSequence(1);
+ aSequence[0] = getAccessibleChild( aPara - 1 );
+ ::css::accessibility::AccessibleRelation aRelation( ::css::accessibility::AccessibleRelationType::CONTENT_FLOWS_FROM, aSequence );
+ pRelationSetHelper->AddRelation( aRelation );
+ }
+
+ if ( aPara >= m_aVisibleBegin && aPara < m_aVisibleEnd -1 )
+ {
+ ::css::uno::Sequence< ::css::uno::Reference< ::css::uno::XInterface > > aSequence(1);
+ aSequence[0] = getAccessibleChild( aPara + 1 );
+ ::css::accessibility::AccessibleRelation aRelation( ::css::accessibility::AccessibleRelationType::CONTENT_FLOWS_TO, aSequence );
+ pRelationSetHelper->AddRelation( aRelation );
+ }
+
+ return xSet;
+}
+
+void Document::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_GETFOCUS:
+ case VCLEVENT_WINDOW_LOSEFOCUS:
+ {
+ // #107179# if our parent is a compound control (e.g. MultiLineEdit),
+ // suppress the window focus events here
+ if ( !m_bCompoundControlChild )
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// virtual
+::sal_Int32 SAL_CALL Document::getAccessibleChildCount()
+ throw (::css::uno::RuntimeException)
+{
+ ::comphelper::OExternalLockGuard aGuard(this);
+ init();
+ return m_aVisibleEnd - m_aVisibleBegin;
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+Document::getAccessibleChild(::sal_Int32 i)
+ throw (::css::lang::IndexOutOfBoundsException,
+ ::css::uno::RuntimeException)
+{
+ ::comphelper::OExternalLockGuard aGuard(this);
+ init();
+ if (i < 0 || i >= m_aVisibleEnd - m_aVisibleBegin)
+ throw ::css::lang::IndexOutOfBoundsException(
+ ::rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "textwindowaccessibility.cxx:"
+ " Document::getAccessibleChild")),
+ static_cast< ::css::uno::XWeak * >(this));
+ return getAccessibleChild(m_aVisibleBegin
+ + static_cast< Paragraphs::size_type >(i));
+}
+
+// virtual
+::sal_Int16 SAL_CALL Document::getAccessibleRole()
+ throw (::css::uno::RuntimeException)
+{
+ return ::css::accessibility::AccessibleRole::TEXT_FRAME;
+}
+
+// virtual
+::css::uno::Reference< ::css::accessibility::XAccessible > SAL_CALL
+Document::getAccessibleAtPoint(::css::awt::Point const & rPoint)
+ throw (::css::uno::RuntimeException)
+{
+ ::comphelper::OExternalLockGuard aGuard(this);
+ init();
+ if (rPoint.X >= 0
+ && rPoint.X < m_rView.GetWindow()->GetOutputSizePixel().Width()
+ && rPoint.Y >= 0 && rPoint.Y < m_nViewHeight)
+ {
+ ::sal_Int32 nOffset = m_nViewOffset + rPoint.Y; // XXX numeric overflow
+ ::sal_Int32 nPos = m_nViewOffset - m_nVisibleBeginOffset;
+ for (Paragraphs::iterator aIt(m_aVisibleBegin); aIt != m_aVisibleEnd;
+ ++aIt)
+ {
+ nPos += aIt->getHeight(); // XXX numeric overflow
+ if (nOffset < nPos)
+ return getAccessibleChild(aIt);
+ }
+ }
+ return 0;
+}
+
+// virtual
+void SAL_CALL Document::disposing()
+{
+ m_aEngineListener.endListening();
+ m_aViewListener.endListening();
+ if (m_xParagraphs.get() != 0)
+ disposeParagraphs();
+ VCLXAccessibleComponent::disposing();
+}
+
+// virtual
+void Document::Notify(::SfxBroadcaster &, ::SfxHint const & rHint)
+{
+ if (rHint.ISA(::TextHint))
+ {
+ ::TextHint const & rTextHint
+ = static_cast< ::TextHint const & >(rHint);
+ switch (rTextHint.GetId())
+ {
+ case TEXT_HINT_PARAINSERTED:
+ case TEXT_HINT_PARAREMOVED:
+ // TEXT_HINT_PARAINSERTED and TEXT_HINT_PARAREMOVED are sent at
+ // "unsafe" times (when the text engine has not yet re-formatted its
+ // content), so that for example calling ::TextEngine::GetTextHeight
+ // from within the code that handles TEXT_HINT_PARAINSERTED causes
+ // trouble within the text engine. Therefore, these hints are just
+ // buffered until a following ::TextEngine::FormatDoc causes a
+ // TEXT_HINT_TEXTFORMATTED to come in:
+ case TEXT_HINT_FORMATPARA:
+ // ::TextEngine::FormatDoc sends a sequence of
+ // TEXT_HINT_FORMATPARAs, followed by an optional
+ // TEXT_HINT_TEXTHEIGHTCHANGED, followed in all cases by one
+ // TEXT_HINT_TEXTFORMATTED. Only the TEXT_HINT_FORMATPARAs contain
+ // the the numbers of the affected paragraphs, but they are sent
+ // before the changes are applied. Therefore, TEXT_HINT_FORMATPARAs
+ // are just buffered until another hint comes in:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+
+ m_aParagraphNotifications.push(rTextHint);
+ break;
+ }
+ case TEXT_HINT_TEXTFORMATTED:
+ case TEXT_HINT_TEXTHEIGHTCHANGED:
+ case TEXT_HINT_MODIFIED:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+ handleParagraphNotifications();
+ break;
+ }
+ case TEXT_HINT_VIEWSCROLLED:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+ handleParagraphNotifications();
+
+ ::sal_Int32 nOffset = static_cast< ::sal_Int32 >(
+ m_rView.GetStartDocPos().Y());
+ // XXX numeric overflow
+ if (nOffset != m_nViewOffset)
+ {
+ m_nViewOffset = nOffset;
+
+ Paragraphs::iterator aOldVisibleBegin(
+ m_aVisibleBegin);
+ Paragraphs::iterator aOldVisibleEnd(m_aVisibleEnd);
+
+ determineVisibleRange();
+
+ notifyVisibleRangeChanges(aOldVisibleBegin,
+ aOldVisibleEnd,
+ m_xParagraphs->end());
+ }
+ break;
+ }
+ case TEXT_HINT_VIEWSELECTIONCHANGED:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+
+ if (m_aParagraphNotifications.empty())
+ {
+ handleSelectionChangeNotification();
+ }
+ else
+ {
+ // TEXT_HINT_VIEWSELECTIONCHANGED is sometimes sent at
+ // "unsafe" times (when the text engine has not yet re-
+ // formatted its content), so that for example calling
+ // ::TextEngine::GetTextHeight from within the code that
+ // handles a previous TEXT_HINT_PARAINSERTED causes
+ // trouble within the text engine. Therefore, these
+ // hints are just buffered (along with
+ // TEXT_HINT_PARAINSERTED/REMOVED/FORMATPARA) until a
+ // following ::TextEngine::FormatDoc causes a
+ // TEXT_HINT_TEXTFORMATTED to come in:
+ m_bSelectionChangedNotification = true;
+ }
+ break;
+ }
+ }
+ }
+}
+
+IMPL_LINK(Document, WindowEventHandler, ::VclSimpleEvent *, pEvent)
+{
+ switch (pEvent->GetId())
+ {
+ case VCLEVENT_WINDOW_RESIZE:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+
+ ::sal_Int32 nHeight = static_cast< ::sal_Int32 >(
+ m_rView.GetWindow()->GetOutputSizePixel().Height());
+ // XXX numeric overflow
+ if (nHeight != m_nViewHeight)
+ {
+ m_nViewHeight = nHeight;
+
+ Paragraphs::iterator aOldVisibleBegin(m_aVisibleBegin);
+ Paragraphs::iterator aOldVisibleEnd(m_aVisibleEnd);
+
+ determineVisibleRange();
+
+ notifyVisibleRangeChanges(aOldVisibleBegin, aOldVisibleEnd,
+ m_xParagraphs->end());
+ }
+ break;
+ }
+ case VCLEVENT_WINDOW_GETFOCUS:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+
+ if (m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd)
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(
+ getParagraph(m_aFocused));
+ if (xParagraph.is())
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::Any(),
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::
+ FOCUSED));
+ }
+ break;
+ }
+ case VCLEVENT_WINDOW_LOSEFOCUS:
+ {
+ ::osl::MutexGuard aInternalGuard(GetMutex());
+ if (!isAlive())
+ break;
+
+ if (m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd)
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(
+ getParagraph(m_aFocused));
+ if (xParagraph.is())
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::
+ FOCUSED),
+ ::css::uno::Any());
+ }
+ break;
+ }
+ }
+ return 0;
+}
+
+void Document::init()
+{
+ if (m_xParagraphs.get() == 0)
+ {
+ ::ULONG nCount = m_rEngine.GetParagraphCount();
+ ::std::auto_ptr< Paragraphs > p(new Paragraphs);
+ p->reserve(static_cast< Paragraphs::size_type >(nCount));
+ // numeric overflow is harmless here
+ for (::ULONG i = 0; i < nCount; ++i)
+ p->push_back(ParagraphInfo(static_cast< ::sal_Int32 >(
+ m_rEngine.GetTextHeight(i))));
+ // XXX numeric overflow
+ m_nViewOffset = static_cast< ::sal_Int32 >(
+ m_rView.GetStartDocPos().Y()); // XXX numeric overflow
+ m_nViewHeight = static_cast< ::sal_Int32 >(
+ m_rView.GetWindow()->GetOutputSizePixel().Height());
+ // XXX numeric overflow
+ m_xParagraphs = p;
+ determineVisibleRange();
+ m_nSelectionFirstPara = -1;
+ m_nSelectionFirstPos = -1;
+ m_nSelectionLastPara = -1;
+ m_nSelectionLastPos = -1;
+ m_aFocused = m_xParagraphs->end();
+ m_bSelectionChangedNotification = false;
+ m_aEngineListener.startListening(m_rEngine);
+ m_aViewListener.startListening(*m_rView.GetWindow());
+ }
+}
+
+::rtl::Reference< ParagraphImpl >
+Document::getParagraph(Paragraphs::iterator const & rIt)
+{
+ return static_cast< ParagraphImpl * >(
+ ::css::uno::Reference< ::css::accessibility::XAccessible >(
+ rIt->getParagraph()).get());
+}
+
+::css::uno::Reference< ::css::accessibility::XAccessible >
+Document::getAccessibleChild(Paragraphs::iterator const & rIt)
+{
+ ::css::uno::Reference< ::css::accessibility::XAccessible > xParagraph(
+ rIt->getParagraph());
+ if (!xParagraph.is())
+ {
+ xParagraph = new Paragraph(this, rIt - m_xParagraphs->begin());
+ rIt->setParagraph(xParagraph);
+ }
+ return xParagraph;
+}
+
+void Document::determineVisibleRange()
+{
+ m_aVisibleBegin = m_xParagraphs->end();
+ m_aVisibleEnd = m_aVisibleBegin;
+ ::sal_Int32 nPos = 0;
+ for (Paragraphs::iterator aIt = m_xParagraphs->begin();;)
+ {
+ if (aIt == m_xParagraphs->end())
+ {
+ m_nVisibleBeginOffset = 0;
+ break;
+ }
+ ::sal_Int32 nOldPos = nPos;
+ nPos += aIt->getHeight(); // XXX numeric overflow
+ if (m_aVisibleBegin == m_xParagraphs->end() && nPos >= m_nViewOffset)
+ {
+ m_aVisibleBegin = aIt;
+ m_nVisibleBeginOffset = m_nViewOffset - nOldPos;
+ }
+ ++aIt;
+ if (m_aVisibleBegin != m_xParagraphs->end()
+ && (aIt == m_xParagraphs->end()
+ || nPos >= m_nViewOffset + m_nViewHeight))
+ // XXX numeric overflow
+ {
+ m_aVisibleEnd = aIt;
+ break;
+ }
+ }
+}
+
+void Document::notifyVisibleRangeChanges(
+ Paragraphs::iterator const & rOldVisibleBegin,
+ Paragraphs::iterator const & rOldVisibleEnd,
+ Paragraphs::iterator const & rInserted)
+{
+ // XXX Replace this code that determines which paragraphs have changed from
+ // invisible to visible or vice versa with a better algorithm.
+ {for (Paragraphs::iterator aIt(rOldVisibleBegin); aIt != rOldVisibleEnd;
+ ++aIt)
+ if (aIt != rInserted
+ && (aIt < m_aVisibleBegin || aIt >= m_aVisibleEnd))
+ NotifyAccessibleEvent(
+ ::css::accessibility::AccessibleEventId::
+ CHILD,
+ ::css::uno::makeAny(getAccessibleChild(aIt)),
+ ::css::uno::Any());
+ }
+ {for (Paragraphs::iterator aIt(m_aVisibleBegin); aIt != m_aVisibleEnd;
+ ++aIt)
+ if (aIt == rInserted
+ || aIt < rOldVisibleBegin || aIt >= rOldVisibleEnd)
+ NotifyAccessibleEvent(
+ ::css::accessibility::AccessibleEventId::
+ CHILD,
+ ::css::uno::Any(),
+ ::css::uno::makeAny(getAccessibleChild(aIt)));
+ }
+}
+
+void
+Document::changeParagraphText(::ULONG nNumber, ::USHORT nBegin, ::USHORT nEnd,
+ bool bCut, bool bPaste,
+ ::rtl::OUString const & rText)
+{
+ m_rView.SetSelection(::TextSelection(::TextPaM(nNumber, nBegin),
+ ::TextPaM(nNumber, nEnd)));
+ if (bCut)
+ m_rView.Cut();
+ else if (nBegin != nEnd)
+ m_rView.DeleteSelected();
+ if (bPaste)
+ m_rView.Paste();
+ else if (rText.getLength() != 0)
+ m_rView.InsertText(rText);
+}
+
+void Document::handleParagraphNotifications()
+{
+ while (!m_aParagraphNotifications.empty())
+ {
+ ::TextHint aHint(m_aParagraphNotifications.front());
+ m_aParagraphNotifications.pop();
+ switch (aHint.GetId())
+ {
+ case TEXT_HINT_PARAINSERTED:
+ {
+ ::ULONG n = aHint.GetValue();
+ OSL_ENSURE(n <= m_xParagraphs->size(),
+ "bad TEXT_HINT_PARAINSERTED event");
+
+ // Save the values of old iterators (the iterators themselves
+ // will get invalidated), and adjust the old values so that they
+ // reflect the insertion of the new paragraph:
+ Paragraphs::size_type nOldVisibleBegin
+ = m_aVisibleBegin - m_xParagraphs->begin();
+ Paragraphs::size_type nOldVisibleEnd
+ = m_aVisibleEnd - m_xParagraphs->begin();
+ Paragraphs::size_type nOldFocused
+ = m_aFocused - m_xParagraphs->begin();
+ if (n <= nOldVisibleBegin)
+ ++nOldVisibleBegin; // XXX numeric overflow
+ if (n <= nOldVisibleEnd)
+ ++nOldVisibleEnd; // XXX numeric overflow
+ if (n <= nOldFocused)
+ ++nOldFocused; // XXX numeric overflow
+ if (sal::static_int_cast<sal_Int32>(n) <= m_nSelectionFirstPara)
+ ++m_nSelectionFirstPara; // XXX numeric overflow
+ if (sal::static_int_cast<sal_Int32>(n) <= m_nSelectionLastPara)
+ ++m_nSelectionLastPara; // XXX numeric overflow
+
+ Paragraphs::iterator aIns(
+ m_xParagraphs->insert(
+ m_xParagraphs->begin() + n,
+ ParagraphInfo(static_cast< ::sal_Int32 >(
+ m_rEngine.GetTextHeight(n)))));
+ // XXX numeric overflow (2x)
+
+ determineVisibleRange();
+ m_aFocused = m_xParagraphs->begin() + nOldFocused;
+
+ for (Paragraphs::iterator aIt(aIns);;)
+ {
+ ++aIt;
+ if (aIt == m_xParagraphs->end())
+ break;
+ ::rtl::Reference< ParagraphImpl > xParagraph(
+ getParagraph(aIt));
+ if (xParagraph.is())
+ xParagraph->numberChanged(true);
+ }
+
+ notifyVisibleRangeChanges(
+ m_xParagraphs->begin() + nOldVisibleBegin,
+ m_xParagraphs->begin() + nOldVisibleEnd, aIns);
+ break;
+ }
+ case TEXT_HINT_PARAREMOVED:
+ {
+ ::ULONG n = aHint.GetValue();
+ if (n == TEXT_PARA_ALL)
+ {
+ {for (Paragraphs::iterator aIt(m_aVisibleBegin);
+ aIt != m_aVisibleEnd; ++aIt)
+ NotifyAccessibleEvent(
+ ::css::accessibility::AccessibleEventId::
+ CHILD,
+ ::css::uno::makeAny(getAccessibleChild(aIt)),
+ ::css::uno::Any());
+ }
+ disposeParagraphs();
+ m_xParagraphs->clear();
+ determineVisibleRange();
+ m_nSelectionFirstPara = -1;
+ m_nSelectionFirstPos = -1;
+ m_nSelectionLastPara = -1;
+ m_nSelectionLastPos = -1;
+ m_aFocused = m_xParagraphs->end();
+ }
+ else
+ {
+ OSL_ENSURE(n < m_xParagraphs->size(),
+ "Bad TEXT_HINT_PARAREMOVED event");
+
+ Paragraphs::iterator aIt(m_xParagraphs->begin() + n);
+ // numeric overflow cannot occur
+
+ // Save the values of old iterators (the iterators
+ // themselves will get invalidated), and adjust the old
+ // values so that they reflect the removal of the paragraph:
+ Paragraphs::size_type nOldVisibleBegin
+ = m_aVisibleBegin - m_xParagraphs->begin();
+ Paragraphs::size_type nOldVisibleEnd
+ = m_aVisibleEnd - m_xParagraphs->begin();
+ bool bWasVisible
+ = nOldVisibleBegin <= n && n < nOldVisibleEnd;
+ Paragraphs::size_type nOldFocused
+ = m_aFocused - m_xParagraphs->begin();
+ bool bWasFocused = aIt == m_aFocused;
+ if (n < nOldVisibleBegin)
+ --nOldVisibleBegin;
+ if (n < nOldVisibleEnd)
+ --nOldVisibleEnd;
+ if (n < nOldFocused)
+ --nOldFocused;
+ if (sal::static_int_cast<sal_Int32>(n) < m_nSelectionFirstPara)
+ --m_nSelectionFirstPara;
+ else if (sal::static_int_cast<sal_Int32>(n) == m_nSelectionFirstPara)
+ {
+ if (m_nSelectionFirstPara == m_nSelectionLastPara)
+ {
+ m_nSelectionFirstPara = -1;
+ m_nSelectionFirstPos = -1;
+ m_nSelectionLastPara = -1;
+ m_nSelectionLastPos = -1;
+ }
+ else
+ {
+ ++m_nSelectionFirstPara;
+ m_nSelectionFirstPos = 0;
+ }
+ }
+ if (sal::static_int_cast<sal_Int32>(n) < m_nSelectionLastPara)
+ --m_nSelectionLastPara;
+ else if (sal::static_int_cast<sal_Int32>(n) == m_nSelectionLastPara)
+ {
+ OSL_ENSURE(m_nSelectionFirstPara < m_nSelectionLastPara,
+ "logic error");
+ --m_nSelectionLastPara;
+ m_nSelectionLastPos = 0x7FFFFFFF;
+ }
+
+ ::css::uno::Reference< ::css::accessibility::XAccessible >
+ xStrong;
+ if (bWasVisible)
+ xStrong = getAccessibleChild(aIt);
+ ::css::uno::WeakReference<
+ ::css::accessibility::XAccessible > xWeak(
+ aIt->getParagraph());
+ aIt = m_xParagraphs->erase(aIt);
+
+ determineVisibleRange();
+ m_aFocused = bWasFocused ? m_xParagraphs->end()
+ : m_xParagraphs->begin() + nOldFocused;
+
+ for (; aIt != m_xParagraphs->end(); ++aIt)
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(
+ getParagraph(aIt));
+ if (xParagraph.is())
+ xParagraph->numberChanged(false);
+ }
+
+ if (bWasVisible)
+ NotifyAccessibleEvent(
+ ::css::accessibility::AccessibleEventId::
+ CHILD,
+ ::css::uno::makeAny(getAccessibleChild(aIt)),
+ ::css::uno::Any());
+
+ ::css::uno::Reference< ::css::lang::XComponent > xComponent(
+ xWeak.get(), ::css::uno::UNO_QUERY);
+ if (xComponent.is())
+ xComponent->dispose();
+
+ notifyVisibleRangeChanges(
+ m_xParagraphs->begin() + nOldVisibleBegin,
+ m_xParagraphs->begin() + nOldVisibleEnd,
+ m_xParagraphs->end());
+ }
+ break;
+ }
+ case TEXT_HINT_FORMATPARA:
+ {
+ ::ULONG n = aHint.GetValue();
+ OSL_ENSURE(n < m_xParagraphs->size(),
+ "Bad TEXT_HINT_FORMATPARA event");
+
+ (*m_xParagraphs)[static_cast< Paragraphs::size_type >(n)].
+ changeHeight(static_cast< ::sal_Int32 >(
+ m_rEngine.GetTextHeight(n)));
+ // XXX numeric overflow
+ Paragraphs::iterator aOldVisibleBegin(m_aVisibleBegin);
+ Paragraphs::iterator aOldVisibleEnd(m_aVisibleEnd);
+ determineVisibleRange();
+ notifyVisibleRangeChanges(aOldVisibleBegin, aOldVisibleEnd,
+ m_xParagraphs->end());
+ Paragraphs::iterator aIt(m_xParagraphs->begin() + n);
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
+ if (xParagraph.is())
+ xParagraph->textChanged();
+ break;
+ }
+ default:
+ OSL_ENSURE(false, "bad buffered hint");
+ break;
+ }
+ }
+ if (m_bSelectionChangedNotification)
+ {
+ m_bSelectionChangedNotification = false;
+ handleSelectionChangeNotification();
+ }
+}
+
+void Document::handleSelectionChangeNotification()
+{
+ ::TextSelection const & rSelection = m_rView.GetSelection();
+ OSL_ENSURE(rSelection.GetStart().GetPara() < m_xParagraphs->size()
+ && rSelection.GetEnd().GetPara() < m_xParagraphs->size(),
+ "bad TEXT_HINT_VIEWSELECTIONCHANGED event");
+ ::sal_Int32 nNewFirstPara
+ = static_cast< ::sal_Int32 >(rSelection.GetStart().GetPara());
+ ::sal_Int32 nNewFirstPos
+ = static_cast< ::sal_Int32 >(rSelection.GetStart().GetIndex());
+ // XXX numeric overflow
+ ::sal_Int32 nNewLastPara
+ = static_cast< ::sal_Int32 >(rSelection.GetEnd().GetPara());
+ ::sal_Int32 nNewLastPos
+ = static_cast< ::sal_Int32 >(rSelection.GetEnd().GetIndex());
+ // XXX numeric overflow
+
+ // Lose focus:
+ Paragraphs::iterator aIt(m_xParagraphs->begin() + nNewLastPara);
+ if (m_aFocused != m_xParagraphs->end() && m_aFocused != aIt
+ && m_aFocused >= m_aVisibleBegin && m_aFocused < m_aVisibleEnd)
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(m_aFocused));
+ if (xParagraph.is())
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::FOCUSED),
+ ::css::uno::Any());
+ }
+
+ // Gain focus and update cursor position:
+ if (aIt >= m_aVisibleBegin && aIt < m_aVisibleEnd
+ && (aIt != m_aFocused
+ || nNewLastPara != m_nSelectionLastPara
+ || nNewLastPos != m_nSelectionLastPos))
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph(getParagraph(aIt));
+ if (xParagraph.is())
+ {
+ if (aIt != m_aFocused)
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ STATE_CHANGED,
+ ::css::uno::Any(),
+ ::css::uno::makeAny(
+ ::css::accessibility::AccessibleStateType::FOCUSED));
+ if (nNewLastPara != m_nSelectionLastPara
+ || nNewLastPos != m_nSelectionLastPos)
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::
+ CARET_CHANGED,
+ ::css::uno::makeAny< ::sal_Int32 >(
+ nNewLastPara == m_nSelectionLastPara
+ ? m_nSelectionLastPos : 0),
+ ::css::uno::makeAny(nNewLastPos));
+ }
+ }
+ m_aFocused = aIt;
+
+ // Update both old and new selection. (Regardless of how the two selections
+ // look like, there will always be two ranges to the left and right of the
+ // overlap---the overlap and/or the range to the right of it possibly being
+ // empty. Only for these two ranges notifications have to be sent.)
+
+ TextPaM aOldTextStart( static_cast< ULONG >( m_nSelectionFirstPara ), static_cast< USHORT >( m_nSelectionFirstPos ) );
+ TextPaM aOldTextEnd( static_cast< ULONG >( m_nSelectionLastPara ), static_cast< USHORT >( m_nSelectionLastPos ) );
+ TextPaM aNewTextStart( static_cast< ULONG >( nNewFirstPara ), static_cast< USHORT >( nNewFirstPos ) );
+ TextPaM aNewTextEnd( static_cast< ULONG >( nNewLastPara ), static_cast< USHORT >( nNewLastPos ) );
+
+ // justify selections
+ justifySelection( aOldTextStart, aOldTextEnd );
+ justifySelection( aNewTextStart, aNewTextEnd );
+
+ sal_Int32 nFirst1;
+ sal_Int32 nLast1;
+ sal_Int32 nFirst2;
+ sal_Int32 nLast2;
+
+ if ( m_nSelectionFirstPara == -1 )
+ {
+ // old selection not initialized yet => notify events only for new selection (if not empty)
+ nFirst1 = aNewTextStart.GetPara();
+ nLast1 = aNewTextEnd.GetPara() + ( aNewTextStart != aNewTextEnd ? 1 : 0 );
+ nFirst2 = 0;
+ nLast2 = 0;
+ }
+ else if ( aOldTextStart == aOldTextEnd && aNewTextStart == aNewTextEnd )
+ {
+ // old an new selection empty => no events
+ nFirst1 = 0;
+ nLast1 = 0;
+ nFirst2 = 0;
+ nLast2 = 0;
+ }
+ else if ( aOldTextStart != aOldTextEnd && aNewTextStart == aNewTextEnd )
+ {
+ // old selection not empty + new selection empty => notify events only for old selection
+ nFirst1 = aOldTextStart.GetPara();
+ nLast1 = aOldTextEnd.GetPara() + 1;
+ nFirst2 = 0;
+ nLast2 = 0;
+ }
+ else if ( aOldTextStart == aOldTextEnd && aNewTextStart != aNewTextEnd )
+ {
+ // old selection empty + new selection not empty => notify events only for new selection
+ nFirst1 = aNewTextStart.GetPara();
+ nLast1 = aNewTextEnd.GetPara() + 1;
+ nFirst2 = 0;
+ nLast2 = 0;
+ }
+ else
+ {
+ // old and new selection not empty => notify events for the two ranges left and right of the overlap
+ ::std::vector< TextPaM > aTextPaMs(4);
+ aTextPaMs[0] = aOldTextStart;
+ aTextPaMs[1] = aOldTextEnd;
+ aTextPaMs[2] = aNewTextStart;
+ aTextPaMs[3] = aNewTextEnd;
+ ::std::sort( aTextPaMs.begin(), aTextPaMs.end() );
+
+ nFirst1 = aTextPaMs[0].GetPara();
+ nLast1 = aTextPaMs[1].GetPara() + ( aTextPaMs[0] != aTextPaMs[1] ? 1 : 0 );
+
+ nFirst2 = aTextPaMs[2].GetPara();
+ nLast2 = aTextPaMs[3].GetPara() + ( aTextPaMs[2] != aTextPaMs[3] ? 1 : 0 );
+
+ // adjust overlapping ranges
+ if ( nLast1 > nFirst2 )
+ nLast1 = nFirst2;
+ }
+
+ // notify selection changes
+ notifySelectionChange( nFirst1, nLast1 );
+ notifySelectionChange( nFirst2, nLast2 );
+
+ m_nSelectionFirstPara = nNewFirstPara;
+ m_nSelectionFirstPos = nNewFirstPos;
+ m_nSelectionLastPara = nNewLastPara;
+ m_nSelectionLastPos = nNewLastPos;
+}
+
+void Document::notifySelectionChange( sal_Int32 nFirst, sal_Int32 nLast )
+{
+ if ( nFirst < nLast )
+ {
+ Paragraphs::iterator aEnd( ::std::min( m_xParagraphs->begin() + nLast, m_aVisibleEnd ) );
+ for ( Paragraphs::iterator aIt = ::std::max( m_xParagraphs->begin() + nFirst, m_aVisibleBegin ); aIt < aEnd; ++aIt )
+ {
+ ::rtl::Reference< ParagraphImpl > xParagraph( getParagraph( aIt ) );
+ if ( xParagraph.is() )
+ {
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::SELECTION_CHANGED,
+ ::css::uno::Any(), ::css::uno::Any() );
+ xParagraph->notifyEvent(
+ ::css::accessibility::AccessibleEventId::TEXT_SELECTION_CHANGED,
+ ::css::uno::Any(), ::css::uno::Any() );
+ }
+ }
+ }
+}
+
+void Document::justifySelection( TextPaM& rTextStart, TextPaM& rTextEnd )
+{
+ if ( rTextStart > rTextEnd )
+ {
+ TextPaM aTextPaM( rTextStart );
+ rTextStart = rTextEnd;
+ rTextEnd = aTextPaM;
+ }
+}
+
+void Document::disposeParagraphs()
+{
+ for (Paragraphs::iterator aIt(m_xParagraphs->begin());
+ aIt != m_xParagraphs->end(); ++aIt)
+ {
+ ::css::uno::Reference< ::css::lang::XComponent > xComponent(
+ aIt->getParagraph().get(), ::css::uno::UNO_QUERY);
+ if (xComponent.is())
+ xComponent->dispose();
+ }
+}
+
+// static
+::css::uno::Any Document::mapFontColor(::Color const & rColor)
+{
+ return ::css::uno::makeAny(
+ static_cast< ::sal_Int32 >(COLORDATA_RGB(rColor.GetColor())));
+ // FIXME keep transparency?
+}
+
+// static
+::Color Document::mapFontColor(::css::uno::Any const & rColor)
+{
+ ::sal_Int32 nColor = 0;
+ rColor >>= nColor;
+ return ::Color(static_cast< ::ColorData >(nColor));
+}
+
+// static
+::css::uno::Any Document::mapFontWeight(::FontWeight nWeight)
+{
+ // Map from ::FontWeight to ::css:awt::FontWeight, depends on order of
+ // elements in ::FontWeight (vcl/vclenum.hxx):
+ static float const aWeight[]
+ = { ::css::awt::FontWeight::DONTKNOW, // WEIGHT_DONTKNOW
+ ::css::awt::FontWeight::THIN, // WEIGHT_THIN
+ ::css::awt::FontWeight::ULTRALIGHT, // WEIGHT_ULTRALIGHT
+ ::css::awt::FontWeight::LIGHT, // WEIGHT_LIGHT
+ ::css::awt::FontWeight::SEMILIGHT, // WEIGHT_SEMILIGHT
+ ::css::awt::FontWeight::NORMAL, // WEIGHT_NORMAL
+ ::css::awt::FontWeight::NORMAL, // WEIGHT_MEDIUM
+ ::css::awt::FontWeight::SEMIBOLD, // WEIGHT_SEMIBOLD
+ ::css::awt::FontWeight::BOLD, // WEIGHT_BOLD
+ ::css::awt::FontWeight::ULTRABOLD, // WEIGHT_ULTRABOLD
+ ::css::awt::FontWeight::BLACK }; // WEIGHT_BLACK
+ return ::css::uno::makeAny(aWeight[nWeight]);
+}
+
+// static
+::FontWeight Document::mapFontWeight(::css::uno::Any const & rWeight)
+{
+ float nWeight = ::css::awt::FontWeight::NORMAL;
+ rWeight >>= nWeight;
+ return nWeight <= ::css::awt::FontWeight::DONTKNOW ? WEIGHT_DONTKNOW
+ : nWeight <= ::css::awt::FontWeight::THIN ? WEIGHT_THIN
+ : nWeight <= ::css::awt::FontWeight::ULTRALIGHT ? WEIGHT_ULTRALIGHT
+ : nWeight <= ::css::awt::FontWeight::LIGHT ? WEIGHT_LIGHT
+ : nWeight <= ::css::awt::FontWeight::SEMILIGHT ? WEIGHT_SEMILIGHT
+ : nWeight <= ::css::awt::FontWeight::NORMAL ? WEIGHT_NORMAL
+ : nWeight <= ::css::awt::FontWeight::SEMIBOLD ? WEIGHT_SEMIBOLD
+ : nWeight <= ::css::awt::FontWeight::BOLD ? WEIGHT_BOLD
+ : nWeight <= ::css::awt::FontWeight::ULTRABOLD ? WEIGHT_ULTRABOLD
+ : WEIGHT_BLACK;
+}
+
+}
+
diff --git a/accessibility/source/helper/acc_factory.cxx b/accessibility/source/helper/acc_factory.cxx
new file mode 100644
index 000000000000..8fe463d00c05
--- /dev/null
+++ b/accessibility/source/helper/acc_factory.cxx
@@ -0,0 +1,528 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/helper/acc_factory.hxx>
+
+#ifndef _TOOLKIT_AWT_VCLXWINDOWS_HXX
+#include <toolkit/awt/vclxwindows.hxx>
+#endif
+#include <accessibility/standard/vclxaccessiblebutton.hxx>
+#include <accessibility/standard/vclxaccessiblecheckbox.hxx>
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWCOMBOBOX_HXX
+#include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
+#endif
+#include <accessibility/standard/vclxaccessiblecombobox.hxx>
+#ifndef ACCESSIBILITY_STANDARD_VCLXACCESSIBLEDROPDOWLISTBOX_HXX
+#include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
+#endif
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+#include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
+#include <accessibility/standard/vclxaccessiblefixedtext.hxx>
+#include <accessibility/standard/vclxaccessiblelistbox.hxx>
+#include <accessibility/standard/vclxaccessiblemenu.hxx>
+#include <accessibility/standard/vclxaccessibleradiobutton.hxx>
+#include <accessibility/standard/vclxaccessiblescrollbar.hxx>
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+#include <accessibility/standard/vclxaccessibletoolbox.hxx>
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#include <accessibility/standard/vclxaccessiblestatusbar.hxx>
+#include <accessibility/standard/vclxaccessibletabcontrol.hxx>
+#include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
+#include <accessibility/standard/vclxaccessiblemenubar.hxx>
+#include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
+#include <accessibility/extended/accessibletablistbox.hxx>
+#include <accessibility/extended/AccessibleBrowseBox.hxx>
+#include <accessibility/extended/accessibleiconchoicectrl.hxx>
+#include <accessibility/extended/accessibletabbar.hxx>
+#include <accessibility/extended/accessiblelistbox.hxx>
+#include <accessibility/extended/AccessibleBrowseBoxHeaderBar.hxx>
+#include <accessibility/extended/textwindowaccessibility.hxx>
+#include <accessibility/extended/AccessibleBrowseBoxTableCell.hxx>
+#include <accessibility/extended/AccessibleBrowseBoxHeaderCell.hxx>
+#include <accessibility/extended/AccessibleBrowseBoxCheckBoxCell.hxx>
+#include <accessibility/extended/accessibleeditbrowseboxcell.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/combobox.hxx>
+#include <accessibility/extended/AccessibleGridControl.hxx>
+#include <svtools/accessibletable.hxx>
+#include "vcl/popupmenuwindow.hxx"
+
+#include <floatingwindowaccessible.hxx>
+
+//........................................................................
+namespace accessibility
+{
+
+inline bool hasFloatingChild(Window *pWindow)
+{
+ Window * pChild = pWindow->GetAccessibleChildWindow(0);
+ if( pChild && WINDOW_FLOATINGWINDOW == pChild->GetType() )
+ return true;
+
+ return false;
+}
+
+//........................................................................
+
+ using namespace ::com::sun::star::uno;
+ using namespace ::com::sun::star::awt;
+ using namespace ::com::sun::star::accessibility;
+ using namespace ::svt;
+ using namespace ::svt::table;
+
+ //================================================================
+ //= IAccessibleFactory
+ //================================================================
+ class AccessibleFactory :public ::toolkit::IAccessibleFactory
+ ,public ::svt::IAccessibleFactory
+ {
+ private:
+ oslInterlockedCount m_refCount;
+
+ public:
+ AccessibleFactory();
+
+ // IReference
+ virtual oslInterlockedCount SAL_CALL acquire();
+ virtual oslInterlockedCount SAL_CALL release();
+
+ // ::toolkit::IAccessibleFactory
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXButton* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXCheckBox* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXRadioButton* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXListBox* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXFixedText* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXFixedHyperlink* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXScrollBar* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXEdit* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXComboBox* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXToolBox* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleContext( VCLXWindow* _pXWindow );
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar );
+
+ // ::svt::IAccessibleFactory
+ virtual IAccessibleTabListBox*
+ createAccessibleTabListBox(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ SvHeaderTabListBox& rBox
+ ) const;
+
+ virtual IAccessibleBrowseBox*
+ createAccessibleBrowseBox(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ IAccessibleTableProvider& _rBrowseBox
+ ) const;
+
+ virtual IAccessibleTableControl*
+ createAccessibleTableControl(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ IAccessibleTable& _rTable
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleIconChoiceCtrl(
+ SvtIconChoiceCtrl& _rIconCtrl,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleTabBar(
+ TabBar& _rTabBar
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >
+ createAccessibleTextWindowContext(
+ VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleTreeListBox(
+ SvTreeListBox& _rListBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _xParent
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleBrowseBoxHeaderBar(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ IAccessibleTableProvider& _rOwningTable,
+ AccessibleBrowseBoxObjType _eObjType
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleBrowseBoxTableCell(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowId,
+ sal_uInt16 _nColId,
+ sal_Int32 _nOffset
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleBrowseBoxHeaderCell(
+ sal_Int32 _nColumnRowId,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& rxParent,
+ IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ AccessibleBrowseBoxObjType _eObjType
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createAccessibleCheckBoxCell(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParent,
+ IAccessibleTableProvider& _rBrowseBox,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _xFocusWindow,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos,
+ const TriState& _eState,
+ sal_Bool _bEnabled,
+ sal_Bool _bIsTriState
+ ) const;
+
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >
+ createEditBrowseBoxTableCellAccess(
+ const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxParent,
+ const ::com::sun::star::uno::Reference< com::sun::star::accessibility::XAccessible >& _rxControlAccessible,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow >& _rxFocusWindow,
+ IAccessibleTableProvider& _rBrowseBox,
+ sal_Int32 _nRowPos,
+ sal_uInt16 _nColPos
+ ) const;
+
+ protected:
+ virtual ~AccessibleFactory();
+ };
+
+
+ //--------------------------------------------------------------------
+ AccessibleFactory::AccessibleFactory()
+ :m_refCount( 0 )
+ {
+ }
+
+ //--------------------------------------------------------------------
+ AccessibleFactory::~AccessibleFactory()
+ {
+ }
+
+ //--------------------------------------------------------------------
+ oslInterlockedCount SAL_CALL AccessibleFactory::acquire()
+ {
+ return osl_incrementInterlockedCount( &m_refCount );
+ }
+
+ //--------------------------------------------------------------------
+ oslInterlockedCount SAL_CALL AccessibleFactory::release()
+ {
+ if ( 0 == osl_decrementInterlockedCount( &m_refCount ) )
+ {
+ delete this;
+ return 0;
+ }
+ return m_refCount;
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessible( Menu* _pMenu, sal_Bool _bIsMenuBar )
+ {
+ OAccessibleMenuBaseComponent* pAccessible;
+ if ( _bIsMenuBar )
+ pAccessible = new VCLXAccessibleMenuBar( _pMenu );
+ else
+ pAccessible = new VCLXAccessiblePopupMenu( _pMenu );
+ pAccessible->SetStates();
+ return pAccessible;
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXButton* _pXWindow )
+ {
+ return new VCLXAccessibleButton( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXCheckBox* _pXWindow )
+ {
+ return new VCLXAccessibleCheckBox( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXRadioButton* _pXWindow )
+ {
+ return new VCLXAccessibleRadioButton( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXListBox* _pXWindow )
+ {
+ sal_Bool bIsDropDownBox = sal_False;
+ ListBox* pBox = static_cast< ListBox* >( _pXWindow->GetWindow() );
+ if ( pBox )
+ bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
+
+ if ( bIsDropDownBox )
+ return new VCLXAccessibleDropDownListBox( _pXWindow );
+ else
+ return new VCLXAccessibleListBox( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedText* _pXWindow )
+ {
+ return new VCLXAccessibleFixedText( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXFixedHyperlink* _pXWindow )
+ {
+ return new VCLXAccessibleFixedHyperlink( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXScrollBar* _pXWindow )
+ {
+ return new VCLXAccessibleScrollBar( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXEdit* _pXWindow )
+ {
+ return new VCLXAccessibleEdit( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXComboBox* _pXWindow )
+ {
+ sal_Bool bIsDropDownBox = sal_False;
+ ComboBox* pBox = static_cast< ComboBox* >( _pXWindow->GetWindow() );
+ if ( pBox )
+ bIsDropDownBox = ( ( pBox->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN );
+
+ if ( bIsDropDownBox )
+ return new VCLXAccessibleDropDownComboBox( _pXWindow );
+ else
+ return new VCLXAccessibleComboBox( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXWindow* _pXWindow )
+ {
+ Reference< XAccessibleContext > xContext;
+
+ Window* pWindow = _pXWindow->GetWindow();
+ if ( pWindow )
+ {
+ WindowType nType = pWindow->GetType();
+
+ if ( nType == WINDOW_MENUBARWINDOW || pWindow->IsMenuFloatingWindow() || pWindow->IsToolbarFloatingWindow() )
+ {
+ Reference< XAccessible > xAcc( pWindow->GetAccessible() );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleContext > xCont( xAcc->getAccessibleContext() );
+ if ( pWindow->GetType() == WINDOW_MENUBARWINDOW ||
+ ( xCont.is() && xCont->getAccessibleRole() == AccessibleRole::POPUP_MENU ) )
+ {
+ xContext = xCont;
+ }
+ }
+ }
+ else if ( nType == WINDOW_STATUSBAR )
+ {
+ xContext = (XAccessibleContext*) new VCLXAccessibleStatusBar( _pXWindow );
+ }
+ else if ( nType == WINDOW_TABCONTROL )
+ {
+ xContext = (XAccessibleContext*) new VCLXAccessibleTabControl( _pXWindow );
+ }
+ else if ( nType == WINDOW_TABPAGE && pWindow->GetAccessibleParentWindow() && pWindow->GetAccessibleParentWindow()->GetType() == WINDOW_TABCONTROL )
+ {
+ xContext = new VCLXAccessibleTabPageWindow( _pXWindow );
+ }
+ else if ( nType == WINDOW_FLOATINGWINDOW )
+ {
+ xContext = new FloatingWindowAccessible( _pXWindow );
+ }
+ else if ( nType == WINDOW_BORDERWINDOW && hasFloatingChild( pWindow ) )
+ {
+ PopupMenuFloatingWindow* pChild = dynamic_cast<PopupMenuFloatingWindow*>(
+ pWindow->GetAccessibleChildWindow(0));
+ if ( pChild && pChild->IsPopupMenu() )
+ {
+ // Get the accessible context from the child window.
+ Reference<XAccessible> xAccessible = pChild->CreateAccessible();
+ if (xAccessible.is())
+ xContext = xAccessible->getAccessibleContext();
+ }
+ else
+ xContext = new FloatingWindowAccessible( _pXWindow );
+ }
+ else if ( nType == WINDOW_HELPTEXTWINDOW )
+ {
+ xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleFixedText( _pXWindow );
+ }
+ else
+ {
+ xContext = (accessibility::XAccessibleContext*) new VCLXAccessibleComponent( _pXWindow );
+ }
+ }
+
+ return xContext;
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleContext( VCLXToolBox* _pXWindow )
+ {
+ return new VCLXAccessibleToolBox( _pXWindow );
+ }
+
+ //--------------------------------------------------------------------
+ IAccessibleTabListBox* AccessibleFactory::createAccessibleTabListBox(
+ const Reference< XAccessible >& rxParent, SvHeaderTabListBox& rBox ) const
+ {
+ return new AccessibleTabListBox( rxParent, rBox );
+ }
+
+ //--------------------------------------------------------------------
+ IAccessibleBrowseBox* AccessibleFactory::createAccessibleBrowseBox(
+ const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox ) const
+ {
+ return new AccessibleBrowseBoxAccess( _rxParent, _rBrowseBox );
+ }
+
+ //--------------------------------------------------------------------
+ IAccessibleTableControl* AccessibleFactory::createAccessibleTableControl(
+ const Reference< XAccessible >& _rxParent, IAccessibleTable& _rTable ) const
+ {
+ return new AccessibleGridControlAccess( _rxParent, _rTable );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleIconChoiceCtrl(
+ SvtIconChoiceCtrl& _rIconCtrl, const Reference< XAccessible >& _xParent ) const
+ {
+ return new AccessibleIconChoiceCtrl( _rIconCtrl, _xParent );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleTabBar( TabBar& _rTabBar ) const
+ {
+ return new AccessibleTabBar( &_rTabBar );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessibleContext > AccessibleFactory::createAccessibleTextWindowContext(
+ VCLXWindow* pVclXWindow, TextEngine& rEngine, TextView& rView, bool bCompoundControlChild ) const
+ {
+ return new Document( pVclXWindow, rEngine, rView, bCompoundControlChild );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleTreeListBox(
+ SvTreeListBox& _rListBox, const Reference< XAccessible >& _xParent ) const
+ {
+ return new AccessibleListBox( _rListBox, _xParent );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderBar(
+ const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rOwningTable,
+ AccessibleBrowseBoxObjType _eObjType ) const
+ {
+ return new AccessibleBrowseBoxHeaderBar( rxParent, _rOwningTable, _eObjType );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxTableCell(
+ const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
+ const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowId, sal_uInt16 _nColId, sal_Int32 _nOffset ) const
+ {
+ return new AccessibleBrowseBoxTableCell( _rxParent, _rBrowseBox, _xFocusWindow,
+ _nRowId, _nColId, _nOffset );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleBrowseBoxHeaderCell(
+ sal_Int32 _nColumnRowId, const Reference< XAccessible >& rxParent, IAccessibleTableProvider& _rBrowseBox,
+ const Reference< XWindow >& _xFocusWindow, AccessibleBrowseBoxObjType _eObjType ) const
+ {
+ return new AccessibleBrowseBoxHeaderCell( _nColumnRowId, rxParent, _rBrowseBox,
+ _xFocusWindow, _eObjType );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createAccessibleCheckBoxCell(
+ const Reference< XAccessible >& _rxParent, IAccessibleTableProvider& _rBrowseBox,
+ const Reference< XWindow >& _xFocusWindow, sal_Int32 _nRowPos, sal_uInt16 _nColPos,
+ const TriState& _eState, sal_Bool _bEnabled, sal_Bool _bIsTriState ) const
+ {
+ return new AccessibleCheckBoxCell( _rxParent, _rBrowseBox, _xFocusWindow,
+ _nRowPos, _nColPos, _eState, _bEnabled, _bIsTriState );
+ }
+
+ //--------------------------------------------------------------------
+ Reference< XAccessible > AccessibleFactory::createEditBrowseBoxTableCellAccess(
+ const Reference< XAccessible >& _rxParent, const Reference< XAccessible >& _rxControlAccessible,
+ const Reference< XWindow >& _rxFocusWindow, IAccessibleTableProvider& _rBrowseBox,
+ sal_Int32 _nRowPos, sal_uInt16 _nColPos ) const
+ {
+ return new EditBrowseBoxTableCellAccess( _rxParent, _rxControlAccessible,
+ _rxFocusWindow, _rBrowseBox, _nRowPos, _nColPos );
+ }
+
+//........................................................................
+} // namespace accessibility
+//........................................................................
+
+//========================================================================
+extern "C" void* SAL_CALL getStandardAccessibleFactory()
+{
+ ::toolkit::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
+ pFactory->acquire();
+ return pFactory;
+}
+
+extern "C" void* SAL_CALL getSvtAccessibilityComponentFactory()
+{
+ ::svt::IAccessibleFactory* pFactory = new ::accessibility::AccessibleFactory;
+ pFactory->acquire();
+ return pFactory;
+}
diff --git a/accessibility/source/helper/accessiblestrings.src b/accessibility/source/helper/accessiblestrings.src
new file mode 100644
index 000000000000..4df1391f3c1d
--- /dev/null
+++ b/accessibility/source/helper/accessiblestrings.src
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_HELPER_ACCESSIBLESTRINGS_HRC_
+#include <accessibility/helper/accessiblestrings.hrc>
+#endif
+
+
+String RID_STR_ACC_ACTION_CLICK
+{
+ Text = "click";
+};
+
+String RID_STR_ACC_ACTION_TOGGLEPOPUP
+{
+ Text = "togglePopup";
+};
+
+String RID_STR_ACC_ACTION_SELECT
+{
+ Text = "select";
+};
+
+String RID_STR_ACC_ACTION_INCLINE
+{
+ Text = "incrementLine";
+};
+
+String RID_STR_ACC_ACTION_DECLINE
+{
+ Text = "decrementLine";
+};
+
+String RID_STR_ACC_ACTION_INCBLOCK
+{
+ Text = "incrementBlock";
+};
+
+String RID_STR_ACC_ACTION_DECBLOCK
+{
+ Text = "decrementBlock";
+};
+
+String RID_STR_ACC_NAME_BROWSEBUTTON
+{
+ Text [ en-US ] = "Browse";
+};
+
diff --git a/accessibility/source/helper/accresmgr.cxx b/accessibility/source/helper/accresmgr.cxx
new file mode 100644
index 000000000000..41647837df4e
--- /dev/null
+++ b/accessibility/source/helper/accresmgr.cxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/helper/accresmgr.hxx>
+
+#ifndef _TOOLS_SIMPLERESMGR_HXX
+#include <tools/simplerm.hxx>
+#endif
+#include <vcl/svapp.hxx>
+
+
+// -----------------------------------------------------------------------------
+// TkResMgr
+// -----------------------------------------------------------------------------
+
+SimpleResMgr* TkResMgr::m_pImpl = NULL;
+
+// -----------------------------------------------------------------------------
+
+TkResMgr::EnsureDelete::~EnsureDelete()
+{
+ delete TkResMgr::m_pImpl;
+}
+
+// -----------------------------------------------------------------------------
+
+void TkResMgr::ensureImplExists()
+{
+ if (m_pImpl)
+ return;
+
+ ::com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILocale();
+
+ ByteString sResMgrName( "acc" );
+
+ m_pImpl = SimpleResMgr::Create( sResMgrName.GetBuffer(), aLocale );
+
+ if (m_pImpl)
+ {
+ // now that we have a impl class, make sure it's deleted on unloading the library
+ static TkResMgr::EnsureDelete s_aDeleteTheImplClass;
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString TkResMgr::loadString( sal_uInt16 nResId )
+{
+ ::rtl::OUString sReturn;
+
+ ensureImplExists();
+ if ( m_pImpl )
+ sReturn = m_pImpl->ReadString( nResId );
+
+ return sReturn;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/helper/characterattributeshelper.cxx b/accessibility/source/helper/characterattributeshelper.cxx
new file mode 100644
index 000000000000..6444925dfbac
--- /dev/null
+++ b/accessibility/source/helper/characterattributeshelper.cxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/helper/characterattributeshelper.hxx>
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+
+
+// -----------------------------------------------------------------------------
+// CharacterAttributesHelper
+// -----------------------------------------------------------------------------
+
+CharacterAttributesHelper::CharacterAttributesHelper( const Font& rFont, sal_Int32 nBackColor, sal_Int32 nColor )
+{
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharBackColor" ), makeAny( (sal_Int32) nBackColor ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharColor" ), makeAny( (sal_Int32) nColor ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontCharSet" ), makeAny( (sal_Int16) rFont.GetCharSet() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontFamily" ), makeAny( (sal_Int16) rFont.GetFamily() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontName" ), makeAny( (::rtl::OUString) rFont.GetName() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontPitch" ), makeAny( (sal_Int16) rFont.GetPitch() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharFontStyleName" ), makeAny( (::rtl::OUString) rFont.GetStyleName() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharHeight" ), makeAny( (sal_Int16) rFont.GetSize().Height() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharScaleWidth" ), makeAny( (sal_Int16) rFont.GetSize().Width() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharStrikeout" ), makeAny( (sal_Int16) rFont.GetStrikeout() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharUnderline" ), makeAny( (sal_Int16) rFont.GetUnderline() ) ) );
+ m_aAttributeMap.insert( AttributeMap::value_type( ::rtl::OUString::createFromAscii( "CharWeight" ), makeAny( (float) rFont.GetWeight() ) ) );
+}
+
+// -----------------------------------------------------------------------------
+
+CharacterAttributesHelper::~CharacterAttributesHelper()
+{
+ m_aAttributeMap.clear();
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > CharacterAttributesHelper::GetCharacterAttributes()
+{
+ Sequence< PropertyValue > aValues( m_aAttributeMap.size() );
+ PropertyValue* pValues = aValues.getArray();
+
+ for ( AttributeMap::iterator aIt = m_aAttributeMap.begin(); aIt != m_aAttributeMap.end(); ++aIt, ++pValues )
+ {
+ pValues->Name = aIt->first;
+ pValues->Handle = (sal_Int32) -1;
+ pValues->Value = aIt->second;
+ pValues->State = PropertyState_DIRECT_VALUE;
+ }
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > CharacterAttributesHelper::GetCharacterAttributes( const Sequence< ::rtl::OUString >& aRequestedAttributes )
+{
+ Sequence< PropertyValue > aValues;
+ sal_Int32 nLength = aRequestedAttributes.getLength();
+
+ if ( nLength != 0 )
+ {
+ const ::rtl::OUString* pNames = aRequestedAttributes.getConstArray();
+ AttributeMap aAttributeMap;
+
+ for ( sal_Int32 i = 0; i < nLength; ++i )
+ {
+ AttributeMap::iterator aFound = m_aAttributeMap.find( pNames[i] );
+ if ( aFound != m_aAttributeMap.end() )
+ aAttributeMap.insert( *aFound );
+ }
+
+ aValues.realloc( aAttributeMap.size() );
+ PropertyValue* pValues = aValues.getArray();
+
+ for ( AttributeMap::iterator aIt = aAttributeMap.begin(); aIt != aAttributeMap.end(); ++aIt, ++pValues )
+ {
+ pValues->Name = aIt->first;
+ pValues->Handle = (sal_Int32) -1;
+ pValues->Value = aIt->second;
+ pValues->State = PropertyState_DIRECT_VALUE;
+ }
+ }
+ else
+ {
+ aValues = GetCharacterAttributes();
+ }
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/helper/makefile.mk b/accessibility/source/helper/makefile.mk
new file mode 100644
index 000000000000..72284e38f3bc
--- /dev/null
+++ b/accessibility/source/helper/makefile.mk
@@ -0,0 +1,53 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=accessibility
+TARGET=helper
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/acc_factory.obj \
+ $(SLO)$/accresmgr.obj \
+ $(SLO)$/characterattributeshelper.obj \
+
+SRS1NAME=$(TARGET)
+SRC1FILES=\
+ accessiblestrings.src
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/source/inc/floatingwindowaccessible.hxx b/accessibility/source/inc/floatingwindowaccessible.hxx
new file mode 100644
index 000000000000..2d5e0e603f5a
--- /dev/null
+++ b/accessibility/source/inc/floatingwindowaccessible.hxx
@@ -0,0 +1,45 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ACCESSIBILITY_FLOATINGWINDOWACCESSIBLE_HXX
+#define ACCESSIBILITY_FLOATINGWINDOWACCESSIBLE_HXX
+
+#ifndef _TOOLKIT_AWT_VCLXACCESSIBLECOMPONENT_HXX_
+#include <toolkit/awt/vclxaccessiblecomponent.hxx>
+#endif
+
+class FloatingWindowAccessible : public VCLXAccessibleComponent
+{
+public:
+ FloatingWindowAccessible( VCLXWindow* pWindow );
+ virtual ~FloatingWindowAccessible();
+
+ virtual void FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet );
+};
+
+#endif // ACCESSIBILITY_FLOATINGWINDOWACCESSIBLE_HXX
+
diff --git a/accessibility/source/standard/accessiblemenubasecomponent.cxx b/accessibility/source/standard/accessiblemenubasecomponent.cxx
new file mode 100644
index 000000000000..cb1f425b08cf
--- /dev/null
+++ b/accessibility/source/standard/accessiblemenubasecomponent.cxx
@@ -0,0 +1,783 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/accessiblemenubasecomponent.hxx>
+#include <accessibility/standard/vclxaccessiblemenu.hxx>
+#include <accessibility/standard/vclxaccessiblemenuitem.hxx>
+#include <accessibility/standard/vclxaccessiblemenuseparator.hxx>
+#include <toolkit/helper/externallock.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/menu.hxx>
+#include <tools/debug.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// OAccessibleMenuBaseComponent
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuBaseComponent::OAccessibleMenuBaseComponent( Menu* pMenu )
+ :AccessibleExtendedComponentHelper_BASE( new VCLExternalSolarLock() )
+ ,m_pMenu( pMenu )
+ ,m_bEnabled( sal_False )
+ ,m_bFocused( sal_False )
+ ,m_bVisible( sal_False )
+ ,m_bSelected( sal_False )
+ ,m_bChecked( sal_False )
+{
+ m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock() );
+
+ if ( m_pMenu )
+ {
+ m_aAccessibleChildren.assign( m_pMenu->GetItemCount(), Reference< XAccessible >() );
+ m_pMenu->AddEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuBaseComponent::~OAccessibleMenuBaseComponent()
+{
+ if ( m_pMenu )
+ m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
+
+ delete m_pExternalLock;
+ m_pExternalLock = NULL;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsEnabled()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsFocused()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsVisible()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsSelected()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsChecked()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetStates()
+{
+ m_bEnabled = IsEnabled();
+ m_bFocused = IsFocused();
+ m_bVisible = IsVisible();
+ m_bSelected = IsSelected();
+ m_bChecked = IsChecked();
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetEnabled( sal_Bool bEnabled )
+{
+ if ( m_bEnabled != bEnabled )
+ {
+ Any aOldValue[2], aNewValue[2];
+ if ( m_bEnabled )
+ {
+ aOldValue[0] <<= AccessibleStateType::SENSITIVE;
+ aOldValue[1] <<= AccessibleStateType::ENABLED;
+ }
+ else
+ {
+ aNewValue[0] <<= AccessibleStateType::ENABLED;
+ aNewValue[1] <<= AccessibleStateType::SENSITIVE;
+ }
+ m_bEnabled = bEnabled;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] );
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetFocused( sal_Bool bFocused )
+{
+ if ( m_bFocused != bFocused )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bFocused )
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ else
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ m_bFocused = bFocused;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetVisible( sal_Bool bVisible )
+{
+ if ( m_bVisible != bVisible )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bVisible )
+ aOldValue <<= AccessibleStateType::VISIBLE;
+ else
+ aNewValue <<= AccessibleStateType::VISIBLE;
+ m_bVisible = bVisible;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetSelected( sal_Bool bSelected )
+{
+ if ( m_bSelected != bSelected )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bSelected )
+ aOldValue <<= AccessibleStateType::SELECTED;
+ else
+ aNewValue <<= AccessibleStateType::SELECTED;
+ m_bSelected = bSelected;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SetChecked( sal_Bool bChecked )
+{
+ if ( m_bChecked != bChecked )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bChecked )
+ aOldValue <<= AccessibleStateType::CHECKED;
+ else
+ aNewValue <<= AccessibleStateType::CHECKED;
+ m_bChecked = bChecked;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateEnabled( sal_Int32 i, sal_Bool bEnabled )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetEnabled( bEnabled );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateFocused( sal_Int32 i, sal_Bool bFocused )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetFocused( bFocused );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateVisible()
+{
+ SetVisible( IsVisible() );
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetVisible( pComp->IsVisible() );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateSelected( sal_Int32 i, sal_Bool bSelected )
+{
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetSelected( bSelected );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateChecked( sal_Int32 i, sal_Bool bChecked )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetChecked( bChecked );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateAccessibleName( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetAccessibleName( pComp->GetAccessibleName() );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::UpdateItemText( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xChild.get() );
+ if ( pComp )
+ pComp->SetItemText( pComp->GetItemText() );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuBaseComponent::GetChildCount()
+{
+ return m_aAccessibleChildren.size();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuBaseComponent::GetChild( sal_Int32 i )
+{
+ Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ {
+ if ( m_pMenu )
+ {
+ // create a new child
+ OAccessibleMenuBaseComponent* pChild;
+
+ if ( m_pMenu->GetItemType( (USHORT)i ) == MENUITEM_SEPARATOR )
+ {
+ pChild = new VCLXAccessibleMenuSeparator( m_pMenu, (sal_uInt16)i );
+ }
+ else
+ {
+ PopupMenu* pPopupMenu = m_pMenu->GetPopupMenu( m_pMenu->GetItemId( (USHORT)i ) );
+ if ( pPopupMenu )
+ {
+ pChild = new VCLXAccessibleMenu( m_pMenu, (sal_uInt16)i, pPopupMenu );
+ pPopupMenu->SetAccessible( pChild );
+ }
+ else
+ {
+ pChild = new VCLXAccessibleMenuItem( m_pMenu, (sal_uInt16)i );
+ }
+ }
+
+ // set states
+ pChild->SetStates();
+
+ xChild = pChild;
+
+ // insert into menu item list
+ m_aAccessibleChildren[i] = xChild;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuBaseComponent::GetChildAt( const awt::Point& rPoint )
+{
+ Reference< XAccessible > xChild;
+ for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ {
+ Reference< XAccessible > xAcc = getAccessibleChild( i );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
+ if ( xComp.is() )
+ {
+ Rectangle aRect = VCLRectangle( xComp->getBounds() );
+ Point aPos = VCLPoint( rPoint );
+ if ( aRect.IsInside( aPos ) )
+ {
+ xChild = xAcc;
+ break;
+ }
+ }
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::InsertChild( sal_Int32 i )
+{
+ if ( i > (sal_Int32)m_aAccessibleChildren.size() )
+ i = m_aAccessibleChildren.size();
+
+ if ( i >= 0 )
+ {
+ // insert entry in child list
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+
+ // update item position of accessible children
+ for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
+ {
+ Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+ if ( xAcc.is() )
+ {
+ OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
+ if ( pComp )
+ pComp->SetItemPos( (sal_uInt16)j );
+ }
+ }
+
+ // send accessible child event
+ Reference< XAccessible > xChild( GetChild( i ) );
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::RemoveChild( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // keep the accessible of the removed item
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+ // remove entry in child list
+ m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+ // update item position of accessible children
+ for ( sal_uInt32 j = i, nCount = m_aAccessibleChildren.size(); j < nCount; ++j )
+ {
+ Reference< XAccessible > xAcc( m_aAccessibleChildren[j] );
+ if ( xAcc.is() )
+ {
+ OAccessibleMenuItemComponent* pComp = static_cast< OAccessibleMenuItemComponent* >( xAcc.get() );
+ if ( pComp )
+ pComp->SetItemPos( (sal_uInt16)j );
+ }
+ }
+
+ // send accessible child event
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+ Reference< XComponent > xComponent( xChild, UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsHighlighted()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsChildHighlighted()
+{
+ sal_Bool bChildHighlighted = sal_False;
+
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xChild.get() );
+ if ( pComp && pComp->IsHighlighted() )
+ {
+ bChildHighlighted = sal_True;
+ break;
+ }
+ }
+ }
+
+ return bChildHighlighted;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::SelectChild( sal_Int32 i )
+{
+ // open the menu
+ if ( getAccessibleRole() == AccessibleRole::MENU && !IsPopupMenuOpen() )
+ Click();
+
+ // highlight the child
+ if ( m_pMenu )
+ m_pMenu->HighlightItem( (USHORT)i );
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::DeSelectAll()
+{
+ if ( m_pMenu )
+ m_pMenu->DeHighlight();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsChildSelected( sal_Int32 i )
+{
+ sal_Bool bSelected = sal_False;
+
+ if ( m_pMenu && m_pMenu->IsHighlighted( (USHORT)i ) )
+ bSelected = sal_True;
+
+ return bSelected;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::Select()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::DeSelect()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::Click()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::IsPopupMenuOpen()
+{
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( OAccessibleMenuBaseComponent, MenuEventListener, VclSimpleEvent*, pEvent )
+{
+ DBG_ASSERT( pEvent && pEvent->ISA( VclMenuEvent ), "OAccessibleMenuBaseComponent - Unknown MenuEvent!" );
+ if ( pEvent && pEvent->ISA( VclMenuEvent ) )
+ {
+ DBG_ASSERT( ((VclMenuEvent*)pEvent)->GetMenu(), "OAccessibleMenuBaseComponent - Menu?" );
+ ProcessMenuEvent( *(VclMenuEvent*)pEvent );
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::ProcessMenuEvent( const VclMenuEvent& rVclMenuEvent )
+{
+ sal_uInt16 nItemPos = rVclMenuEvent.GetItemPos();
+
+ switch ( rVclMenuEvent.GetId() )
+ {
+ case VCLEVENT_MENU_SHOW:
+ case VCLEVENT_MENU_HIDE:
+ {
+ UpdateVisible();
+ }
+ break;
+ case VCLEVENT_MENU_HIGHLIGHT:
+ {
+ SetFocused( sal_False );
+ UpdateFocused( nItemPos, sal_True );
+ UpdateSelected( nItemPos, sal_True );
+ }
+ break;
+ case VCLEVENT_MENU_DEHIGHLIGHT:
+ {
+ UpdateFocused( nItemPos, sal_False );
+ UpdateSelected( nItemPos, sal_False );
+ }
+ break;
+ case VCLEVENT_MENU_SUBMENUACTIVATE:
+ {
+ }
+ break;
+ case VCLEVENT_MENU_SUBMENUDEACTIVATE:
+ {
+ UpdateFocused( nItemPos, sal_True );
+ }
+ break;
+ case VCLEVENT_MENU_ENABLE:
+ {
+ UpdateEnabled( nItemPos, sal_True );
+ }
+ break;
+ case VCLEVENT_MENU_DISABLE:
+ {
+ UpdateEnabled( nItemPos, sal_False );
+ }
+ break;
+ case VCLEVENT_MENU_SUBMENUCHANGED:
+ {
+ RemoveChild( nItemPos );
+ InsertChild( nItemPos );
+ }
+ break;
+ case VCLEVENT_MENU_INSERTITEM:
+ {
+ InsertChild( nItemPos );
+ }
+ break;
+ case VCLEVENT_MENU_REMOVEITEM:
+ {
+ RemoveChild( nItemPos );
+ }
+ break;
+ case VCLEVENT_MENU_ACCESSIBLENAMECHANGED:
+ {
+ UpdateAccessibleName( nItemPos );
+ }
+ break;
+ case VCLEVENT_MENU_ITEMTEXTCHANGED:
+ {
+ UpdateAccessibleName( nItemPos );
+ UpdateItemText( nItemPos );
+ }
+ break;
+ case VCLEVENT_MENU_ITEMCHECKED:
+ {
+ UpdateChecked( nItemPos, sal_True );
+ }
+ break;
+ case VCLEVENT_MENU_ITEMUNCHECKED:
+ {
+ UpdateChecked( nItemPos, sal_False );
+ }
+ break;
+ case VCLEVENT_OBJECT_DYING:
+ {
+ if ( m_pMenu )
+ {
+ m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
+
+ m_pMenu = NULL;
+
+ // dispose all menu items
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+ }
+ break;
+ default:
+ {
+ }
+ break;
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleMenuBaseComponent, AccessibleExtendedComponentHelper_BASE, OAccessibleMenuBaseComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleMenuBaseComponent, AccessibleExtendedComponentHelper_BASE, OAccessibleMenuBaseComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuBaseComponent::disposing()
+{
+ AccessibleExtendedComponentHelper_BASE::disposing();
+
+ if ( m_pMenu )
+ {
+ m_pMenu->RemoveEventListener( LINK( this, OAccessibleMenuBaseComponent, MenuEventListener ) );
+
+ m_pMenu = NULL;
+
+ // dispose all menu items
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuBaseComponent::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessible
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleContext > OAccessibleMenuBaseComponent::getAccessibleContext( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return this;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleStateSet > OAccessibleMenuBaseComponent::getAccessibleStateSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/accessiblemenucomponent.cxx b/accessibility/source/standard/accessiblemenucomponent.cxx
new file mode 100644
index 000000000000..05ba722a9453
--- /dev/null
+++ b/accessibility/source/standard/accessiblemenucomponent.cxx
@@ -0,0 +1,471 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/accessiblemenucomponent.hxx>
+
+#include <toolkit/awt/vclxfont.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/unohelp2.hxx>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class OAccessibleMenuComponent
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuComponent::OAccessibleMenuComponent( Menu* pMenu )
+ :OAccessibleMenuBaseComponent( pMenu )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuComponent::~OAccessibleMenuComponent()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuComponent::IsEnabled()
+{
+ return sal_True;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuComponent::IsVisible()
+{
+ sal_Bool bVisible = sal_False;
+
+ if ( m_pMenu )
+ bVisible = m_pMenu->IsMenuVisible();
+
+ return bVisible;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ if ( IsEnabled() )
+ {
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ }
+
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( IsFocused() )
+ rStateSet.AddState( AccessibleStateType::FOCUSED );
+
+ if ( IsVisible() )
+ {
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+ }
+
+ rStateSet.AddState( AccessibleStateType::OPAQUE );
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleComponent
+// -----------------------------------------------------------------------------
+
+awt::Rectangle OAccessibleMenuComponent::implGetBounds() throw (RuntimeException)
+{
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ {
+ // get bounding rectangle of the window in screen coordinates
+ Rectangle aRect = pWindow->GetWindowExtentsRelative( NULL );
+ aBounds = AWTRectangle( aRect );
+
+ // get position of the accessible parent in screen coordinates
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComponent( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComponent.is() )
+ {
+ awt::Point aParentScreenLoc = xParentComponent->getLocationOnScreen();
+
+ // calculate position of the window relative to the accessible parent
+ aBounds.X -= aParentScreenLoc.X;
+ aBounds.Y -= aParentScreenLoc.Y;
+ }
+ }
+ }
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( OAccessibleMenuComponent, OAccessibleMenuBaseComponent, OAccessibleMenuComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( OAccessibleMenuComponent, OAccessibleMenuBaseComponent, OAccessibleMenuComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuComponent::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetChildCount();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuComponent::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return GetChild( i );
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuComponent::getAccessibleParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ {
+ Window* pParent = pWindow->GetAccessibleParentWindow();
+ if ( pParent )
+ xParent = pParent->GetAccessible();
+ }
+ }
+
+ return xParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 OAccessibleMenuComponent::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::UNKNOWN;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuComponent::getAccessibleDescription( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ sDescription = pWindow->GetAccessibleDescription();
+ }
+
+ return sDescription;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuComponent::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleRelationSet > OAccessibleMenuComponent::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Locale OAccessibleMenuComponent::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuComponent::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetChildAt( rPoint );
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Point OAccessibleMenuComponent::getLocationOnScreen( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ awt::Point aPos;
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ {
+ Rectangle aRect = pWindow->GetWindowExtentsRelative( NULL );
+ aPos = AWTPoint( aRect.TopLeft() );
+ }
+ }
+
+ return aPos;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::grabFocus( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ pWindow->GrabFocus();
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuComponent::getForeground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ sal_Int32 nColor = rStyleSettings.GetMenuTextColor().GetColor();
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuComponent::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+Reference< awt::XFont > OAccessibleMenuComponent::getFont( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ {
+ Reference< awt::XDevice > xDev( pWindow->GetComponentInterface(), UNO_QUERY );
+ if ( xDev.is() )
+ {
+ const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings();
+ VCLXFont* pVCLXFont = new VCLXFont;
+ pVCLXFont->Init( *xDev.get(), rStyleSettings.GetMenuFont() );
+ xFont = pVCLXFont;
+ }
+ }
+ }
+
+ return xFont;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuComponent::getTitledBorderText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuComponent::getToolTipText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ SelectChild( nChildIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuComponent::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return IsChildSelected( nChildIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ DeSelectAll();
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ // This method makes no sense in a menu, and so does nothing.
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuComponent::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nRet = 0;
+
+ for ( sal_Int32 i = 0, nCount = GetChildCount(); i < nCount; i++ )
+ {
+ if ( IsChildSelected( i ) )
+ ++nRet;
+ }
+
+ return nRet;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuComponent::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+
+ for ( sal_Int32 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
+ {
+ if ( IsChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
+ {
+ xChild = GetChild( i );
+ break;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuComponent::deselectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ DeSelectAll();
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/accessiblemenuitemcomponent.cxx b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
new file mode 100644
index 000000000000..6bc7f59b75d9
--- /dev/null
+++ b/accessibility/source/standard/accessiblemenuitemcomponent.cxx
@@ -0,0 +1,503 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/accessiblemenuitemcomponent.hxx>
+
+
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+#include <toolkit/awt/vclxwindows.hxx>
+#include <toolkit/helper/externallock.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <comphelper/accessibletexthelper.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/unohelp2.hxx>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class OAccessibleMenuItemComponent
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuItemComponent::OAccessibleMenuItemComponent( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu )
+ :OAccessibleMenuBaseComponent( pMenu )
+ ,m_pParent( pParent )
+ ,m_nItemPos( nItemPos )
+{
+ m_sAccessibleName = GetAccessibleName();
+ m_sItemText = GetItemText();
+}
+
+// -----------------------------------------------------------------------------
+
+OAccessibleMenuItemComponent::~OAccessibleMenuItemComponent()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuItemComponent::IsEnabled()
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bEnabled = sal_False;
+ if ( m_pParent )
+ bEnabled = m_pParent->IsItemEnabled( m_pParent->GetItemId( m_nItemPos ) );
+
+ return bEnabled;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool OAccessibleMenuItemComponent::IsVisible()
+{
+ sal_Bool bVisible = sal_False;
+
+ if ( m_pParent )
+ bVisible = m_pParent->IsItemPosVisible( m_nItemPos );
+
+ return bVisible;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::Select()
+{
+ // open the parent menu
+ Reference< XAccessible > xParent( getAccessibleParent() );
+ if ( xParent.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xParent.get() );
+ if ( pComp && pComp->getAccessibleRole() == AccessibleRole::MENU && !pComp->IsPopupMenuOpen() )
+ pComp->Click();
+ }
+
+ // highlight the menu item
+ if ( m_pParent )
+ m_pParent->HighlightItem( m_nItemPos );
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::DeSelect()
+{
+ if ( m_pParent && IsSelected() )
+ m_pParent->DeHighlight();
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::Click()
+{
+ // open the parent menu
+ Reference< XAccessible > xParent( getAccessibleParent() );
+ if ( xParent.is() )
+ {
+ OAccessibleMenuBaseComponent* pComp = static_cast< OAccessibleMenuBaseComponent* >( xParent.get() );
+ if ( pComp && pComp->getAccessibleRole() == AccessibleRole::MENU && !pComp->IsPopupMenuOpen() )
+ pComp->Click();
+ }
+
+ // click the menu item
+ if ( m_pParent )
+ {
+ Window* pWindow = m_pParent->GetWindow();
+ if ( pWindow )
+ {
+ // #102438# Menu items are not selectable
+ // Popup menus are executed asynchronously, triggered by a timer.
+ // As Menu::SelectItem only works, if the corresponding menu window is
+ // already created, we have to set the menu delay to 0, so
+ // that the popup menus are executed synchronously.
+ AllSettings aSettings = pWindow->GetSettings();
+ MouseSettings aMouseSettings = aSettings.GetMouseSettings();
+ ULONG nDelay = aMouseSettings.GetMenuDelay();
+ aMouseSettings.SetMenuDelay( 0 );
+ aSettings.SetMouseSettings( aMouseSettings );
+ pWindow->SetSettings( aSettings );
+
+ m_pParent->SelectItem( m_pParent->GetItemId( m_nItemPos ) );
+
+ // meanwhile the window pointer may be invalid
+ pWindow = m_pParent->GetWindow();
+ if ( pWindow )
+ {
+ // set the menu delay back to the old value
+ aSettings = pWindow->GetSettings();
+ aMouseSettings = aSettings.GetMouseSettings();
+ aMouseSettings.SetMenuDelay( nDelay );
+ aSettings.SetMouseSettings( aMouseSettings );
+ pWindow->SetSettings( aSettings );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::SetItemPos( sal_uInt16 nItemPos )
+{
+ m_nItemPos = nItemPos;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::SetAccessibleName( const ::rtl::OUString& sAccessibleName )
+{
+ if ( !m_sAccessibleName.equals( sAccessibleName ) )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= m_sAccessibleName;
+ aNewValue <<= sAccessibleName;
+ m_sAccessibleName = sAccessibleName;
+ NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::GetAccessibleName()
+{
+ ::rtl::OUString sName;
+ if ( m_pParent )
+ {
+ sal_uInt16 nItemId = m_pParent->GetItemId( m_nItemPos );
+ sName = m_pParent->GetAccessibleName( nItemId );
+ if ( sName.getLength() == 0 )
+ sName = m_pParent->GetItemText( nItemId );
+ sName = OutputDevice::GetNonMnemonicString( sName );
+ }
+
+ return sName;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::SetItemText( const ::rtl::OUString& sItemText )
+{
+ Any aOldValue, aNewValue;
+ if ( OCommonAccessibleText::implInitTextChangedEvent( m_sItemText, sItemText, aOldValue, aNewValue ) )
+ {
+ m_sItemText = sItemText;
+ NotifyAccessibleEvent( AccessibleEventId::TEXT_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::GetItemText()
+{
+ ::rtl::OUString sText;
+ if ( m_pParent )
+ sText = OutputDevice::GetNonMnemonicString( m_pParent->GetItemText( m_pParent->GetItemId( m_nItemPos ) ) );
+
+ return sText;
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ if ( IsEnabled() )
+ {
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+ }
+
+ if ( IsVisible() )
+ {
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+ }
+
+ rStateSet.AddState( AccessibleStateType::OPAQUE );
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleComponent
+// -----------------------------------------------------------------------------
+
+awt::Rectangle OAccessibleMenuItemComponent::implGetBounds() throw (RuntimeException)
+{
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+
+ if ( m_pParent )
+ {
+ // get bounding rectangle of the item relative to the containing window
+ aBounds = AWTRectangle( m_pParent->GetBoundingRectangle( m_nItemPos ) );
+
+ // get position of containing window in screen coordinates
+ Window* pWindow = m_pParent->GetWindow();
+ if ( pWindow )
+ {
+ Rectangle aRect = pWindow->GetWindowExtentsRelative( NULL );
+ awt::Point aWindowScreenLoc = AWTPoint( aRect.TopLeft() );
+
+ // get position of accessible parent in screen coordinates
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComponent( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComponent.is() )
+ {
+ awt::Point aParentScreenLoc = xParentComponent->getLocationOnScreen();
+
+ // calculate bounding rectangle of the item relative to the accessible parent
+ aBounds.X += aWindowScreenLoc.X - aParentScreenLoc.X;
+ aBounds.Y += aWindowScreenLoc.Y - aParentScreenLoc.Y;
+ }
+ }
+ }
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void SAL_CALL OAccessibleMenuItemComponent::disposing()
+{
+ OAccessibleMenuBaseComponent::disposing();
+
+ m_pParent = NULL;
+ m_sAccessibleName = ::rtl::OUString();
+ m_sItemText = ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuItemComponent::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessible >();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return m_pParent->GetAccessible();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuItemComponent::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return m_nItemPos;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 OAccessibleMenuItemComponent::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::UNKNOWN;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::getAccessibleDescription( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pParent )
+ sDescription = m_pParent->GetHelpText( m_pParent->GetItemId( m_nItemPos ) );
+
+ return sDescription;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return m_sAccessibleName;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleRelationSet > OAccessibleMenuItemComponent::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Locale OAccessibleMenuItemComponent::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > OAccessibleMenuItemComponent::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Reference< XAccessible >();
+}
+
+// -----------------------------------------------------------------------------
+
+void OAccessibleMenuItemComponent::grabFocus( ) throw (RuntimeException)
+{
+ // no focus for items
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuItemComponent::getForeground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 OAccessibleMenuItemComponent::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+Reference< awt::XFont > OAccessibleMenuItemComponent::getFont( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ xFont = xParentComp->getFont();
+ }
+
+ return xFont;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::getTitledBorderText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString OAccessibleMenuItemComponent::getToolTipText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sRet;
+ if ( m_pParent )
+ sRet = m_pParent->GetTipHelpText( m_pParent->GetItemId( m_nItemPos ) );
+
+ return sRet;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/floatingwindowaccessible.cxx b/accessibility/source/standard/floatingwindowaccessible.cxx
new file mode 100644
index 000000000000..5286bfd387ba
--- /dev/null
+++ b/accessibility/source/standard/floatingwindowaccessible.cxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include <floatingwindowaccessible.hxx>
+
+
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/window.hxx>
+
+namespace uno = ::com::sun::star::uno;
+
+using ::com::sun::star::accessibility::AccessibleRelation;
+namespace AccessibleRelationType = ::com::sun::star::accessibility::AccessibleRelationType;
+
+//-------------------------------------------------------------------
+
+FloatingWindowAccessible::FloatingWindowAccessible(VCLXWindow* pWindow) :
+ VCLXAccessibleComponent(pWindow)
+{
+}
+
+//-------------------------------------------------------------------
+
+FloatingWindowAccessible::~FloatingWindowAccessible()
+{
+}
+
+//-------------------------------------------------------------------
+
+void FloatingWindowAccessible::FillAccessibleRelationSet(utl::AccessibleRelationSetHelper& rRelationSet)
+{
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ {
+ Window* pParentWindow = pWindow->GetParent();
+ if( pParentWindow )
+ {
+ uno::Sequence< uno::Reference< uno::XInterface > > aSequence(1);
+ aSequence[0] = pParentWindow->GetAccessible();
+ rRelationSet.AddRelation( AccessibleRelation( AccessibleRelationType::SUB_WINDOW_OF, aSequence ) );
+ }
+ }
+}
diff --git a/accessibility/source/standard/makefile.mk b/accessibility/source/standard/makefile.mk
new file mode 100644
index 000000000000..b79d98f659e5
--- /dev/null
+++ b/accessibility/source/standard/makefile.mk
@@ -0,0 +1,78 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=accessibility
+TARGET=standard
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/accessiblemenubasecomponent.obj \
+ $(SLO)$/accessiblemenucomponent.obj \
+ $(SLO)$/accessiblemenuitemcomponent.obj \
+ $(SLO)$/floatingwindowaccessible.obj \
+ $(SLO)$/vclxaccessiblebox.obj \
+ $(SLO)$/vclxaccessiblebutton.obj \
+ $(SLO)$/vclxaccessiblecheckbox.obj \
+ $(SLO)$/vclxaccessiblecombobox.obj \
+ $(SLO)$/vclxaccessibledropdowncombobox.obj \
+ $(SLO)$/vclxaccessibledropdownlistbox.obj \
+ $(SLO)$/vclxaccessibleedit.obj \
+ $(SLO)$/vclxaccessiblefixedhyperlink.obj \
+ $(SLO)$/vclxaccessiblefixedtext.obj \
+ $(SLO)$/vclxaccessiblelist.obj \
+ $(SLO)$/vclxaccessiblelistbox.obj \
+ $(SLO)$/vclxaccessiblelistitem.obj \
+ $(SLO)$/vclxaccessiblemenu.obj \
+ $(SLO)$/vclxaccessiblemenubar.obj \
+ $(SLO)$/vclxaccessiblemenuitem.obj \
+ $(SLO)$/vclxaccessiblemenuseparator.obj \
+ $(SLO)$/vclxaccessiblepopupmenu.obj \
+ $(SLO)$/vclxaccessibleradiobutton.obj \
+ $(SLO)$/vclxaccessiblescrollbar.obj \
+ $(SLO)$/vclxaccessiblestatusbar.obj \
+ $(SLO)$/vclxaccessiblestatusbaritem.obj \
+ $(SLO)$/vclxaccessibletabcontrol.obj \
+ $(SLO)$/vclxaccessibletabpage.obj \
+ $(SLO)$/vclxaccessibletabpagewindow.obj \
+ $(SLO)$/vclxaccessibletextcomponent.obj \
+ $(SLO)$/vclxaccessibletextfield.obj \
+ $(SLO)$/vclxaccessibletoolbox.obj \
+ $(SLO)$/vclxaccessibletoolboxitem.obj
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/source/standard/vclxaccessiblebox.cxx b/accessibility/source/standard/vclxaccessiblebox.cxx
new file mode 100644
index 000000000000..784588938bb8
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblebox.cxx
@@ -0,0 +1,374 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblebox.hxx>
+#include <accessibility/standard/vclxaccessibletextfield.hxx>
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+#include <accessibility/standard/vclxaccessiblelist.hxx>
+#include <accessibility/standard/vclxaccessiblelistboxlist.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/svapp.hxx>
+#include <vcl/combobox.hxx>
+#include <vcl/lstbox.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+
+VCLXAccessibleBox::VCLXAccessibleBox (VCLXWindow* pVCLWindow, BoxType aType, bool bIsDropDownBox)
+ : VCLXAccessibleComponent (pVCLWindow),
+ m_aBoxType (aType),
+ m_bIsDropDownBox (bIsDropDownBox),
+ m_nIndexInParent (DEFAULT_INDEX_IN_PARENT)
+{
+ // Set up the flags that indicate which children this object has.
+ m_bHasListChild = true;
+
+ // A text field is not present for non drop down list boxes.
+ if ((m_aBoxType==LISTBOX) && ! m_bIsDropDownBox)
+ m_bHasTextChild = false;
+ else
+ m_bHasTextChild = true;
+}
+
+VCLXAccessibleBox::~VCLXAccessibleBox (void)
+{
+}
+
+void VCLXAccessibleBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ uno::Any aOldValue, aNewValue;
+ uno::Reference<XAccessible> xAcc;
+
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_SHOW:
+ case VCLEVENT_WINDOW_HIDE:
+ {
+ Window* pChildWindow = (Window *) rVclWindowEvent.GetData();
+ // Just compare to the combo box text field. All other children
+ // are identical to this object in which case this object will
+ // be removed in a short time.
+ if (m_aBoxType==COMBOBOX)
+ {
+ ComboBox* pComboBox = static_cast<ComboBox*>(GetWindow());
+ if ( ( pComboBox != NULL ) && ( pChildWindow != NULL ) )
+ if (pChildWindow == pComboBox->GetSubEdit())
+ {
+ if (rVclWindowEvent.GetId() == VCLEVENT_WINDOW_SHOW)
+ {
+ // Instantiate text field.
+ getAccessibleChild (0);
+ aNewValue <<= m_xText;
+ }
+ else
+ {
+ // Release text field.
+ aOldValue <<= m_xText;
+ m_xText = NULL;
+ }
+ // Tell the listeners about the new/removed child.
+ NotifyAccessibleEvent (
+ AccessibleEventId::CHILD,
+ aOldValue, aNewValue);
+ }
+
+ }
+ }
+ break;
+
+ default:
+ VCLXAccessibleComponent::ProcessWindowChildEvent (rVclWindowEvent);
+ }
+}
+
+void VCLXAccessibleBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_DROPDOWN_OPEN:
+ case VCLEVENT_DROPDOWN_CLOSE:
+ case VCLEVENT_LISTBOX_DOUBLECLICK:
+ case VCLEVENT_LISTBOX_SCROLLED:
+ case VCLEVENT_LISTBOX_SELECT:
+ case VCLEVENT_LISTBOX_ITEMADDED:
+ case VCLEVENT_LISTBOX_ITEMREMOVED:
+ case VCLEVENT_COMBOBOX_ITEMADDED:
+ case VCLEVENT_COMBOBOX_ITEMREMOVED:
+ case VCLEVENT_COMBOBOX_SCROLLED:
+ {
+ // Forward the call to the list child.
+ VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
+ if ( pList == NULL )
+ {
+ getAccessibleChild ( m_bHasTextChild ? 1 : 0 );
+ pList = static_cast<VCLXAccessibleList*>(m_xList.get());
+ }
+ if ( pList != NULL )
+ pList->ProcessWindowEvent (rVclWindowEvent);
+ break;
+ }
+
+ case VCLEVENT_COMBOBOX_SELECT:
+ case VCLEVENT_COMBOBOX_DESELECT:
+ {
+ // Selection is handled by VCLXAccessibleList which operates on
+ // the same VCL object as this box does. In case of the
+ // combobox, however, we have to help the list with providing
+ // the text of the currently selected item.
+ VCLXAccessibleList* pList = static_cast<VCLXAccessibleList*>(m_xList.get());
+ if (pList != NULL && m_xText.is())
+ {
+ Reference<XAccessibleText> xText (m_xText->getAccessibleContext(), UNO_QUERY);
+ if ( xText.is() )
+ {
+ ::rtl::OUString sText = xText->getSelectedText();
+ if ( !sText.getLength() )
+ sText = xText->getText();
+ pList->UpdateSelection (sText);
+ }
+ }
+ break;
+ }
+
+ case VCLEVENT_EDIT_MODIFY:
+ case VCLEVENT_EDIT_SELECTIONCHANGED:
+ // Modify/Selection events are handled by the combo box instead of
+ // directly by the edit field (Why?). Therefore, delegate this
+ // call to the edit field.
+ if (m_aBoxType==COMBOBOX)
+ {
+ if (m_xText.is())
+ {
+ Reference<XAccessibleContext> xContext = m_xText->getAccessibleContext();
+ VCLXAccessibleEdit* pEdit = static_cast<VCLXAccessibleEdit*>(xContext.get());
+ if (pEdit != NULL)
+ pEdit->ProcessWindowEvent (rVclWindowEvent);
+ }
+ }
+ break;
+
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleBox, VCLXAccessibleComponent, VCLXAccessibleBox_BASE)
+IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleBox, VCLXAccessibleComponent, VCLXAccessibleBox_BASE)
+
+//===== XAccessible =========================================================
+
+Reference< XAccessibleContext > SAL_CALL VCLXAccessibleBox::getAccessibleContext( )
+ throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ return this;
+}
+
+//===== XAccessibleContext ==================================================
+
+sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleChildCount (void)
+ throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ // Usually a box has a text field and a list of items as its children.
+ // Non drop down list boxes have no text field. Additionally check
+ // whether the object is valid.
+ sal_Int32 nCount = 0;
+ if (IsValid())
+ nCount += (m_bHasTextChild?1:0) + (m_bHasListChild?1:0);
+ else
+ {
+ // Object not valid anymore. Release references to children.
+ m_bHasTextChild = false;
+ m_xText = NULL;
+ m_bHasListChild = false;
+ m_xList = NULL;
+ }
+
+ return nCount;
+}
+
+Reference<XAccessible> SAL_CALL VCLXAccessibleBox::getAccessibleChild (sal_Int32 i)
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if (i<0 || i>=getAccessibleChildCount())
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ if (IsValid())
+ {
+ if (i==1 || ! m_bHasTextChild)
+ {
+ // List.
+ if ( ! m_xList.is())
+ {
+ VCLXAccessibleList* pList = new VCLXAccessibleList ( GetVCLXWindow(),
+ (m_aBoxType == LISTBOX ? VCLXAccessibleList::LISTBOX : VCLXAccessibleList::COMBOBOX),
+ this);
+ pList->SetIndexInParent (i);
+ m_xList = pList;
+ }
+ xChild = m_xList;
+ }
+ else
+ {
+ // Text Field.
+ if ( ! m_xText.is())
+ {
+ if (m_aBoxType==COMBOBOX)
+ {
+ ComboBox* pComboBox = static_cast<ComboBox*>(GetWindow());
+ if (pComboBox!=NULL && pComboBox->GetSubEdit()!=NULL)
+ m_xText = pComboBox->GetSubEdit()->GetAccessible();
+ }
+ else if (m_bIsDropDownBox)
+ m_xText = new VCLXAccessibleTextField (GetVCLXWindow(),this);
+ }
+ xChild = m_xText;
+ }
+ }
+
+ return xChild;
+}
+
+sal_Int16 SAL_CALL VCLXAccessibleBox::getAccessibleRole (void) throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ // Return the role <const>COMBO_BOX</const> for both VCL combo boxes and
+ // VCL list boxes in DropDown-Mode else <const>PANEL</const>.
+ // This way the Java bridge has not to handle both independently.
+ return m_bIsDropDownBox ? AccessibleRole::COMBO_BOX : AccessibleRole::PANEL;
+}
+
+sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ if (m_nIndexInParent != DEFAULT_INDEX_IN_PARENT)
+ return m_nIndexInParent;
+ else
+ return VCLXAccessibleComponent::getAccessibleIndexInParent();
+}
+
+//===== XAccessibleAction ===================================================
+
+sal_Int32 SAL_CALL VCLXAccessibleBox::getAccessibleActionCount (void)
+ throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex> aGuard (GetMutex());
+
+ // There is one action for drop down boxes (toggle popup) and none for
+ // the other boxes.
+ return m_bIsDropDownBox ? 1 : 0;
+}
+
+sal_Bool SAL_CALL VCLXAccessibleBox::doAccessibleAction (sal_Int32 nIndex)
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if (nIndex<0 || nIndex>=getAccessibleActionCount())
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+
+ if (m_aBoxType == COMBOBOX)
+ {
+ ComboBox* pComboBox = static_cast< ComboBox* >( GetWindow() );
+ if (pComboBox != NULL)
+ {
+ pComboBox->ToggleDropDown();
+ bNotify = sal_True;
+ }
+ }
+ else if (m_aBoxType == LISTBOX)
+ {
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if (pListBox != NULL)
+ {
+ pListBox->ToggleDropDown();
+ bNotify = sal_True;
+ }
+ }
+ }
+
+ if (bNotify)
+ NotifyAccessibleEvent (AccessibleEventId::ACTION_CHANGED, Any(), Any());
+
+ return bNotify;
+}
+
+::rtl::OUString SAL_CALL VCLXAccessibleBox::getAccessibleActionDescription (sal_Int32 nIndex)
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ if (nIndex<0 || nIndex>=getAccessibleActionCount())
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ return TK_RES_STRING( RID_STR_ACC_ACTION_TOGGLEPOPUP);
+}
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleBox::getAccessibleActionKeyBinding( sal_Int32 nIndex )
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ Reference< XAccessibleKeyBinding > xRet;
+
+ if (nIndex<0 || nIndex>=getAccessibleActionCount())
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+
+ // ... which key?
+ return xRet;
+}
+
+//===== XComponent ==========================================================
+
+void SAL_CALL VCLXAccessibleBox::disposing (void)
+{
+ VCLXAccessibleComponent::disposing();
+}
+
diff --git a/accessibility/source/standard/vclxaccessiblebutton.cxx b/accessibility/source/standard/vclxaccessiblebutton.cxx
new file mode 100644
index 000000000000..690babdf5c41
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblebutton.cxx
@@ -0,0 +1,326 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblebutton.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+
+#include <vcl/button.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleButton
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleButton::VCLXAccessibleButton( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleButton::~VCLXAccessibleButton()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleButton::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_PUSHBUTTON_TOGGLE:
+ {
+ Any aOldValue;
+ Any aNewValue;
+
+ PushButton* pButton = (PushButton*) GetWindow();
+ if ( pButton && pButton->GetState() == STATE_CHECK )
+ aNewValue <<= AccessibleStateType::CHECKED;
+ else
+ aOldValue <<= AccessibleStateType::CHECKED;
+
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ default:
+ VCLXAccessibleTextComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleButton::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+
+ PushButton* pButton = (PushButton*) GetWindow();
+ if ( pButton )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( pButton->GetState() == STATE_CHECK )
+ rStateSet.AddState( AccessibleStateType::CHECKED );
+
+ if ( pButton->IsPressed() )
+ rStateSet.AddState( AccessibleStateType::PRESSED );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleButton, VCLXAccessibleTextComponent, VCLXAccessibleButton_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleButton, VCLXAccessibleTextComponent, VCLXAccessibleButton_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleButton::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleButton" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleButton::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleButton" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleButton::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString aName( VCLXAccessibleTextComponent::getAccessibleName() );
+ sal_Int32 nLength = aName.getLength();
+
+ if ( nLength >= 3 && aName.matchAsciiL( RTL_CONSTASCII_STRINGPARAM("..."), nLength - 3 ) )
+ {
+ if ( nLength == 3 )
+ {
+ // it's a browse button
+ aName = ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_NAME_BROWSEBUTTON ) );
+ }
+ else
+ {
+ // remove the three trailing dots
+ aName = aName.copy( 0, nLength - 3 );
+ }
+ }
+ else if ( nLength >= 3 && aName.matchAsciiL( RTL_CONSTASCII_STRINGPARAM("<< "), 0 ) )
+ {
+ // remove the leading symbols
+ aName = aName.copy( 3, nLength - 3 );
+ }
+ else if ( nLength >= 3 && aName.matchAsciiL( RTL_CONSTASCII_STRINGPARAM(" >>"), nLength - 3 ) )
+ {
+ // remove the trailing symbols
+ aName = aName.copy( 0, nLength - 3 );
+ }
+
+ return aName;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleButton::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleButton::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ PushButton* pButton = (PushButton*) GetWindow();
+ if ( pButton )
+ pButton->Click();
+
+ return sal_True;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleButton::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleButton::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ OAccessibleKeyBindingHelper* pKeyBindingHelper = new OAccessibleKeyBindingHelper();
+ Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ {
+ KeyEvent aKeyEvent = pWindow->GetActivationKey();
+ KeyCode aKeyCode = aKeyEvent.GetKeyCode();
+ if ( aKeyCode.GetCode() != 0 )
+ {
+ awt::KeyStroke aKeyStroke;
+ aKeyStroke.Modifiers = 0;
+ if ( aKeyCode.IsShift() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::SHIFT;
+ if ( aKeyCode.IsMod1() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD1;
+ if ( aKeyCode.IsMod2() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD2;
+ if ( aKeyCode.IsMod3() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD3;
+ aKeyStroke.KeyCode = aKeyCode.GetCode();
+ aKeyStroke.KeyChar = aKeyEvent.GetCharCode();
+ aKeyStroke.KeyFunc = static_cast< sal_Int16 >( aKeyCode.GetFunction() );
+ pKeyBindingHelper->AddKeyBinding( aKeyStroke );
+ }
+ }
+
+ return xKeyBinding;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleButton::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ PushButton* pButton = (PushButton*) GetWindow();
+ if ( pButton )
+ aValue <<= (sal_Int32) pButton->IsPressed();
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleButton::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ PushButton* pButton = (PushButton*) GetWindow();
+ if ( pButton )
+ {
+ sal_Int32 nValue = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+
+ if ( nValue < 0 )
+ nValue = 0;
+ else if ( nValue > 1 )
+ nValue = 1;
+
+ pButton->SetPressed( (BOOL) nValue );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleButton::getMaximumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 1;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleButton::getMinimumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblecheckbox.cxx b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
new file mode 100644
index 000000000000..18a7be8bf810
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblecheckbox.cxx
@@ -0,0 +1,361 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblecheckbox.hxx>
+
+#include <toolkit/awt/vclxwindows.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+
+#include <vcl/button.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleCheckBox
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleCheckBox::VCLXAccessibleCheckBox( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+ m_bChecked = IsChecked();
+ m_bIndeterminate = IsIndeterminate();
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleCheckBox::~VCLXAccessibleCheckBox()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+bool VCLXAccessibleCheckBox::IsChecked()
+{
+ bool bChecked = false;
+
+ VCLXCheckBox* pVCLXCheckBox = static_cast< VCLXCheckBox* >( GetVCLXWindow() );
+ if ( pVCLXCheckBox && pVCLXCheckBox->getState() == (sal_Int16) 1 )
+ bChecked = true;
+
+ return bChecked;
+}
+
+// -----------------------------------------------------------------------------
+
+bool VCLXAccessibleCheckBox::IsIndeterminate()
+{
+ bool bIndeterminate = false;
+
+ VCLXCheckBox* pVCLXCheckBox = static_cast< VCLXCheckBox* >( GetVCLXWindow() );
+ if ( pVCLXCheckBox && pVCLXCheckBox->getState() == (sal_Int16) 2 )
+ bIndeterminate = true;
+
+ return bIndeterminate;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleCheckBox::SetChecked( bool bChecked )
+{
+ if ( m_bChecked != bChecked )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bChecked )
+ aOldValue <<= AccessibleStateType::CHECKED;
+ else
+ aNewValue <<= AccessibleStateType::CHECKED;
+ m_bChecked = bChecked;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleCheckBox::SetIndeterminate( bool bIndeterminate )
+{
+ if ( m_bIndeterminate != bIndeterminate )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bIndeterminate )
+ aOldValue <<= AccessibleStateType::INDETERMINATE;
+ else
+ aNewValue <<= AccessibleStateType::INDETERMINATE;
+ m_bIndeterminate = bIndeterminate;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleCheckBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_CHECKBOX_TOGGLE:
+ {
+ SetChecked( IsChecked() );
+ SetIndeterminate( IsIndeterminate() );
+ }
+ break;
+ default:
+ VCLXAccessibleTextComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleCheckBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( IsChecked() )
+ rStateSet.AddState( AccessibleStateType::CHECKED );
+
+ if ( IsIndeterminate() )
+ rStateSet.AddState( AccessibleStateType::INDETERMINATE );
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleCheckBox, VCLXAccessibleTextComponent, VCLXAccessibleCheckBox_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleCheckBox, VCLXAccessibleTextComponent, VCLXAccessibleCheckBox_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleCheckBox::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleCheckBox" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleCheckBox::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleCheckBox" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleCheckBox::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleCheckBox::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ CheckBox* pCheckBox = (CheckBox*) GetWindow();
+ VCLXCheckBox* pVCLXCheckBox = static_cast< VCLXCheckBox* >( GetVCLXWindow() );
+ if ( pCheckBox && pVCLXCheckBox )
+ {
+ sal_Int32 nValueMin = (sal_Int32) 0;
+ sal_Int32 nValueMax = (sal_Int32) 1;
+
+ if ( pCheckBox->IsTriStateEnabled() )
+ nValueMax = (sal_Int32) 2;
+
+ sal_Int32 nValue = (sal_Int32) pVCLXCheckBox->getState();
+
+ ++nValue;
+
+ if ( nValue > nValueMax )
+ nValue = nValueMin;
+
+ pVCLXCheckBox->setState( (sal_Int16) nValue );
+ }
+
+ return sal_True;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleCheckBox::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleCheckBox::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ OAccessibleKeyBindingHelper* pKeyBindingHelper = new OAccessibleKeyBindingHelper();
+ Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ {
+ KeyEvent aKeyEvent = pWindow->GetActivationKey();
+ KeyCode aKeyCode = aKeyEvent.GetKeyCode();
+ if ( aKeyCode.GetCode() != 0 )
+ {
+ awt::KeyStroke aKeyStroke;
+ aKeyStroke.Modifiers = 0;
+ if ( aKeyCode.IsShift() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::SHIFT;
+ if ( aKeyCode.IsMod1() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD1;
+ if ( aKeyCode.IsMod2() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD2;
+ if ( aKeyCode.IsMod3() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD3;
+ aKeyStroke.KeyCode = aKeyCode.GetCode();
+ aKeyStroke.KeyChar = aKeyEvent.GetCharCode();
+ aKeyStroke.KeyFunc = static_cast< sal_Int16 >( aKeyCode.GetFunction() );
+ pKeyBindingHelper->AddKeyBinding( aKeyStroke );
+ }
+ }
+
+ return xKeyBinding;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleCheckBox::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ VCLXCheckBox* pVCLXCheckBox = static_cast< VCLXCheckBox* >( GetVCLXWindow() );
+ if ( pVCLXCheckBox )
+ aValue <<= (sal_Int32) pVCLXCheckBox->getState();
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleCheckBox::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ VCLXCheckBox* pVCLXCheckBox = static_cast< VCLXCheckBox* >( GetVCLXWindow() );
+ if ( pVCLXCheckBox )
+ {
+ sal_Int32 nValue = 0, nValueMin = 0, nValueMax = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+ OSL_VERIFY( getMinimumValue() >>= nValueMin );
+ OSL_VERIFY( getMaximumValue() >>= nValueMax );
+
+ if ( nValue < nValueMin )
+ nValue = nValueMin;
+ else if ( nValue > nValueMax )
+ nValue = nValueMax;
+
+ pVCLXCheckBox->setState( (sal_Int16) nValue );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleCheckBox::getMaximumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ CheckBox* pCheckBox = (CheckBox*) GetWindow();
+ if ( pCheckBox && pCheckBox->IsTriStateEnabled() )
+ aValue <<= (sal_Int32) 2;
+ else
+ aValue <<= (sal_Int32) 1;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleCheckBox::getMinimumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblecombobox.cxx b/accessibility/source/standard/vclxaccessiblecombobox.cxx
new file mode 100644
index 000000000000..9ac9a13591e1
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblecombobox.cxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblecombobox.hxx>
+#include <accessibility/standard/vclxaccessiblelist.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <vcl/svapp.hxx>
+#include <vcl/combobox.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+
+
+VCLXAccessibleComboBox::VCLXAccessibleComboBox (VCLXWindow* pVCLWindow)
+ : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::COMBOBOX, false)
+{
+}
+
+
+
+
+VCLXAccessibleComboBox::~VCLXAccessibleComboBox (void)
+{
+}
+
+
+
+
+bool VCLXAccessibleComboBox::IsValid (void) const
+{
+ return static_cast<ComboBox*>(GetWindow()) != NULL;
+
+}
+
+
+
+
+void VCLXAccessibleComboBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ VCLXAccessibleBox::ProcessWindowEvent( rVclWindowEvent );
+}
+
+
+
+
+//===== XServiceInfo ========================================================
+
+::rtl::OUString VCLXAccessibleComboBox::getImplementationName (void)
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii ("com.sun.star.comp.toolkit.AccessibleComboBox");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleComboBox::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleBox::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleComboBox" );
+ return aNames;
+}
diff --git a/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
new file mode 100644
index 000000000000..f396ff422947
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibledropdowncombobox.cxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibledropdowncombobox.hxx>
+#include <accessibility/standard/vclxaccessiblecombobox.hxx>
+#include <accessibility/standard/vclxaccessibletextfield.hxx>
+#include <accessibility/standard/vclxaccessiblelist.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/combobox.hxx>
+#include <vcl/unohelp.hxx>
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <comphelper/sequence.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+
+
+VCLXAccessibleDropDownComboBox::VCLXAccessibleDropDownComboBox (VCLXWindow* pVCLWindow)
+ : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::COMBOBOX, true)
+{
+}
+
+
+
+
+VCLXAccessibleDropDownComboBox::~VCLXAccessibleDropDownComboBox (void)
+{
+}
+
+
+
+bool VCLXAccessibleDropDownComboBox::IsValid (void) const
+{
+ return static_cast<ComboBox*>(GetWindow()) != NULL;
+
+}
+
+
+
+
+void VCLXAccessibleDropDownComboBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_DROPDOWN_OPEN:
+ case VCLEVENT_DROPDOWN_CLOSE:
+ {
+ /* // child count changed
+ Any aOldValue, aNewValue;
+ // get the listbox child
+ Reference< XAccessible > xChild;
+ if ( !xChild.is() )
+ {
+ try
+ {
+ // the listbox is the second child
+ xChild = getAccessibleChild(1);
+ }
+ catch ( IndexOutOfBoundsException& ) {}
+ catch ( RuntimeException& ) {}
+ }
+ if ( rVclWindowEvent.GetId() == VCLEVENT_DROPDOWN_OPEN )
+ aNewValue <<= xChild;
+ else
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent(
+ AccessibleEventId::CHILD, aOldValue, aNewValue
+ );
+ */
+ break;
+ }
+
+ default:
+ VCLXAccessibleBox::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+
+
+
+//===== XServiceInfo ========================================================
+
+::rtl::OUString VCLXAccessibleDropDownComboBox::getImplementationName()
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.toolkit.AccessibleDropDownComboBox");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleDropDownComboBox::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleBox::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleDropDownComboBox" );
+ return aNames;
+}
diff --git a/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
new file mode 100644
index 000000000000..4d08d40245fb
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibledropdownlistbox.cxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+#include <accessibility/standard/vclxaccessibledropdownlistbox.hxx>
+#include <accessibility/standard/vclxaccessiblelistbox.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/unohelp.hxx>
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <comphelper/sequence.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+
+
+VCLXAccessibleDropDownListBox::VCLXAccessibleDropDownListBox (VCLXWindow* pVCLWindow)
+ : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::LISTBOX, true)
+{
+}
+
+
+
+
+VCLXAccessibleDropDownListBox::~VCLXAccessibleDropDownListBox()
+{
+}
+
+
+
+
+bool VCLXAccessibleDropDownListBox::IsValid (void) const
+{
+ return static_cast<ListBox*>(GetWindow()) != NULL;
+
+}
+
+
+
+
+void VCLXAccessibleDropDownListBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ VCLXAccessibleBox::ProcessWindowEvent (rVclWindowEvent);
+}
+
+
+
+
+//===== XServiceInfo ========================================================
+
+::rtl::OUString VCLXAccessibleDropDownListBox::getImplementationName()
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.toolkit.AccessibleDropDownListBox");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleDropDownListBox::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleBox::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleDropDownListBox" );
+ return aNames;
+}
diff --git a/accessibility/source/standard/vclxaccessibleedit.cxx b/accessibility/source/standard/vclxaccessibleedit.cxx
new file mode 100644
index 000000000000..0dd8376580ec
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibleedit.cxx
@@ -0,0 +1,630 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessibleedit.hxx>
+
+#include <toolkit/awt/vclxwindows.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/edit.hxx>
+#include <sot/exchange.hxx>
+#include <sot/formats.hxx>
+
+#include <algorithm>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleEdit
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleEdit::VCLXAccessibleEdit( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+ m_nCaretPosition = getCaretPosition();
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleEdit::~VCLXAccessibleEdit()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleEdit::UpdateCaretPosition()
+{
+ sal_Int32 nCaretPosition = getCaretPosition();
+
+ if ( m_nCaretPosition != nCaretPosition )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= (sal_Int32) m_nCaretPosition;
+ aNewValue <<= (sal_Int32) nCaretPosition;
+ m_nCaretPosition = nCaretPosition;
+ NotifyAccessibleEvent( AccessibleEventId::CARET_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleEdit::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_EDIT_MODIFY:
+ {
+ SetText( implGetText() );
+ }
+ break;
+ case VCLEVENT_EDIT_SELECTIONCHANGED:
+ {
+ Window* pWindow = GetWindow();
+ if ( pWindow && pWindow->HasChildPathFocus() )
+ {
+ NotifyAccessibleEvent( AccessibleEventId::TEXT_SELECTION_CHANGED, Any(), Any() );
+ UpdateCaretPosition();
+ }
+ }
+ break;
+ default:
+ VCLXAccessibleTextComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleEdit::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+
+ VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
+ if ( pVCLXEdit )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ rStateSet.AddState( AccessibleStateType::SINGLE_LINE );
+ if ( pVCLXEdit->isEditable() )
+ rStateSet.AddState( AccessibleStateType::EDITABLE );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::implGetText()
+{
+ ::rtl::OUString aText;
+
+ Edit* pEdit = static_cast< Edit* >( GetWindow() );
+ if ( pEdit )
+ {
+ aText = OutputDevice::GetNonMnemonicString( pEdit->GetText() );
+
+ if ( getAccessibleRole() == AccessibleRole::PASSWORD_TEXT )
+ {
+ xub_Unicode cEchoChar = pEdit->GetEchoChar();
+ if ( !cEchoChar )
+ cEchoChar = '*';
+ XubString sTmp;
+ aText = sTmp.Fill( (USHORT)aText.getLength(), cEchoChar );
+ }
+ }
+
+ return aText;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleEdit::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ awt::Selection aSelection;
+ VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
+ if ( pVCLXEdit )
+ aSelection = pVCLXEdit->getSelection();
+
+ nStartIndex = aSelection.Min;
+ nEndIndex = aSelection.Max;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleEdit, VCLXAccessibleTextComponent, VCLXAccessibleEdit_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleEdit, VCLXAccessibleTextComponent, VCLXAccessibleEdit_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleEdit" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleEdit::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleEdit" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleEdit::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessible >();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleEdit::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int16 nRole;
+ Edit* pEdit = static_cast< Edit* >( GetWindow() );
+ if ( pEdit && ( ( pEdit->GetStyle() & WB_PASSWORD ) || pEdit->GetEchoChar() ) )
+ nRole = AccessibleRole::PASSWORD_TEXT;
+ else
+ nRole = AccessibleRole::TEXT;
+
+ return nRole;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ // There is one action: activate
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ sal_Bool bDoAction = sal_False;
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ {
+ pWindow->GrabFocus();
+ bDoAction = sal_True;
+ }
+
+ return bDoAction;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ static const ::rtl::OUString sAction( RTL_CONSTASCII_USTRINGPARAM( "activate" ) );
+ return sAction;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleEdit::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessibleKeyBinding >();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getCaretPosition( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ awt::Selection aSelection;
+ VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
+ if ( pVCLXEdit )
+ aSelection = pVCLXEdit->getSelection();
+
+ return aSelection.Max;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return setSelection( nIndex, nIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Unicode VCLXAccessibleEdit::getCharacter( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getCharacter( nIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > VCLXAccessibleEdit::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getCharacterAttributes( nIndex, aRequestedAttributes );
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleEdit::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ sal_Int32 nLength = implGetText().getLength();
+
+ if ( !implIsValidRange( nIndex, nIndex, nLength ) )
+ throw IndexOutOfBoundsException();
+
+ Control* pControl = static_cast< Control* >( GetWindow() );
+ if ( pControl )
+ {
+ if ( nIndex == nLength )
+ {
+ // #108914# calculate virtual bounding rectangle
+ for ( sal_Int32 i = 0; i < nLength; ++i )
+ {
+ Rectangle aRect = pControl->GetCharacterBounds( i );
+ sal_Int32 nHeight = aRect.GetHeight();
+ if ( aBounds.Height < nHeight )
+ {
+ aBounds.Y = aRect.Top();
+ aBounds.Height = nHeight;
+ }
+ if ( i == nLength - 1 )
+ {
+ aBounds.X = aRect.Right() + 1;
+ aBounds.Width = 1;
+ }
+ }
+ }
+ else
+ {
+ aBounds = AWTRectangle( pControl->GetCharacterBounds( nIndex ) );
+ }
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getCharacterCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getCharacterCount();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getIndexAtPoint( aPoint );
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::getSelectedText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getSelectedText();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getSelectionStart( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getSelectionStart();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleEdit::getSelectionEnd( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getSelectionEnd();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
+ Edit* pEdit = static_cast< Edit* >( GetWindow() );
+ if ( pVCLXEdit && pEdit && pEdit->IsEnabled() )
+ {
+ pVCLXEdit->setSelection( awt::Selection( nStartIndex, nEndIndex ) );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::getText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getText();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleEdit::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getTextRange( nStartIndex, nEndIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleEdit::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getTextAtIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleEdit::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getTextBeforeIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleEdit::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::getTextBehindIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return VCLXAccessibleTextComponent::copyText( nStartIndex, nEndIndex );
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleEditableText
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::cutText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return copyText( nStartIndex, nEndIndex ) && deleteText( nStartIndex, nEndIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::pasteText( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( GetWindow() )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = GetWindow()->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ Reference< datatransfer::XTransferable > xDataObj = xClipboard->getContents();
+ Application::AcquireSolarMutex( nRef );
+ if ( xDataObj.is() )
+ {
+ datatransfer::DataFlavor aFlavor;
+ SotExchange::GetFormatDataFlavor( SOT_FORMAT_STRING, aFlavor );
+ if ( xDataObj->isDataFlavorSupported( aFlavor ) )
+ {
+ Any aData = xDataObj->getTransferData( aFlavor );
+ ::rtl::OUString sText;
+ aData >>= sText;
+ bReturn = replaceText( nIndex, nIndex, sText );
+ }
+ }
+ }
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::deleteText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return replaceText( nStartIndex, nEndIndex, ::rtl::OUString() );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::insertText( const ::rtl::OUString& sText, sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return replaceText( nIndex, nIndex, sText );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::replaceText( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const ::rtl::OUString& sReplacement ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ sal_Int32 nMinIndex = ::std::min( nStartIndex, nEndIndex );
+ sal_Int32 nMaxIndex = ::std::max( nStartIndex, nEndIndex );
+
+ VCLXEdit* pVCLXEdit = static_cast< VCLXEdit* >( GetVCLXWindow() );
+ if ( pVCLXEdit && pVCLXEdit->isEditable() )
+ {
+ pVCLXEdit->setText( sText.replaceAt( nMinIndex, nMaxIndex - nMinIndex, sReplacement ) );
+ sal_Int32 nIndex = nMinIndex + sReplacement.getLength();
+ setSelection( nIndex, nIndex );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::setAttributes( sal_Int32 nStartIndex, sal_Int32 nEndIndex, const Sequence<PropertyValue>& ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False; // attributes cannot be set for an edit
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleEdit::setText( const ::rtl::OUString& sText ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bSuccess = sal_False;
+ try
+ {
+ bSuccess = replaceText( 0, implGetText().getLength(), sText );
+ }
+ catch( const IndexOutOfBoundsException& )
+ {
+ OSL_ENSURE( sal_False, "VCLXAccessibleText::setText: caught an exception!" );
+ }
+ return bSuccess;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx b/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx
new file mode 100644
index 000000000000..90218e629669
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblefixedhyperlink.cxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblefixedhyperlink.hxx>
+
+using namespace ::com::sun::star;
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleFixedHyperlink
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleFixedHyperlink::VCLXAccessibleFixedHyperlink( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleFixedHyperlink::~VCLXAccessibleFixedHyperlink()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleFixedHyperlink::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleFixedHyperlink::implGetLineBoundary( i18n::Boundary& rBoundary, sal_Int32 nIndex )
+{
+ // TODO
+ OCommonAccessibleText::implGetLineBoundary( rBoundary, nIndex );
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleFixedHyperlink::getImplementationName() throw (uno::RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleFixedHyperlink" );
+}
+
+// -----------------------------------------------------------------------------
+
+uno::Sequence< ::rtl::OUString > VCLXAccessibleFixedHyperlink::getSupportedServiceNames() throw (uno::RuntimeException)
+{
+ uno::Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleFixedHyperlink" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+
diff --git a/accessibility/source/standard/vclxaccessiblefixedtext.cxx b/accessibility/source/standard/vclxaccessiblefixedtext.cxx
new file mode 100644
index 000000000000..ca89fa0417ab
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblefixedtext.cxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblefixedtext.hxx>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <vcl/fixed.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleFixedText
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleFixedText::VCLXAccessibleFixedText( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleFixedText::~VCLXAccessibleFixedText()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleFixedText::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+
+ if ( GetWindow() && GetWindow()->GetStyle() & WB_WORDBREAK )
+ rStateSet.AddState( AccessibleStateType::MULTI_LINE );
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleFixedText::implGetLineBoundary( i18n::Boundary& rBoundary, sal_Int32 nIndex )
+{
+ // TODO
+ OCommonAccessibleText::implGetLineBoundary( rBoundary, nIndex );
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleFixedText::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleFixedText" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleFixedText::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleFixedText" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblelist.cxx b/accessibility/source/standard/vclxaccessiblelist.cxx
new file mode 100644
index 000000000000..6d287a02f0e9
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblelist.cxx
@@ -0,0 +1,854 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblelist.hxx>
+#include <accessibility/standard/vclxaccessiblelistitem.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/svapp.hxx>
+#include <vcl/combobox.hxx>
+#include <vcl/lstbox.hxx>
+#include <toolkit/helper/convert.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::accessibility;
+
+namespace
+{
+ void checkSelection_Impl( sal_Int32 _nIndex, const IComboListBoxHelper& _rListBox, sal_Bool bSelected )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ sal_Int32 nCount = bSelected ? (sal_Int32)_rListBox.GetSelectEntryCount()
+ : (sal_Int32)_rListBox.GetEntryCount();
+ if ( _nIndex < 0 || _nIndex >= nCount )
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+}
+
+VCLXAccessibleList::VCLXAccessibleList (VCLXWindow* pVCLWindow, BoxType aBoxType,
+ const Reference< XAccessible >& _xParent)
+ : VCLXAccessibleComponent (pVCLWindow),
+ m_aBoxType (aBoxType),
+ m_nVisibleLineCount (0),
+ m_nIndexInParent (DEFAULT_INDEX_IN_PARENT),
+ m_nLastTopEntry ( 0 ),
+ m_nLastSelectedPos ( LISTBOX_ENTRY_NOTFOUND ),
+ m_bDisableProcessEvent ( false ),
+ m_bVisible ( true ),
+ m_xParent ( _xParent )
+{
+ // Because combo boxes and list boxes have the no common interface for
+ // methods with identical signature we have to write down twice the
+ // same code.
+ switch (m_aBoxType)
+ {
+ case COMBOBOX:
+ {
+ ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
+ if ( pBox != NULL )
+ m_pListBoxHelper = new VCLListBoxHelper<ComboBox> (*pBox);
+ break;
+ }
+
+ case LISTBOX:
+ {
+ ListBox* pBox = static_cast<ListBox*>(GetWindow());
+ if ( pBox != NULL )
+ m_pListBoxHelper = new VCLListBoxHelper<ListBox> (*pBox);
+ break;
+ }
+ }
+ UpdateVisibleLineCount();
+
+ USHORT nCount = static_cast<USHORT>(getAccessibleChildCount());
+ m_aAccessibleChildren.reserve(nCount);
+}
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleList::~VCLXAccessibleList (void)
+{
+ delete m_pListBoxHelper;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::SetIndexInParent (sal_Int32 nIndex)
+{
+ m_nIndexInParent = nIndex;
+}
+// -----------------------------------------------------------------------------
+
+void SAL_CALL VCLXAccessibleList::disposing (void)
+{
+ VCLXAccessibleComponent::disposing();
+
+ // Dispose all items in the list.
+ clearItems();
+
+ delete m_pListBoxHelper;
+ m_pListBoxHelper = NULL;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::clearItems()
+{
+// ListItems::iterator aEnd = m_aAccessibleChildren.end();
+// for (ListItems::iterator aIter = m_aAccessibleChildren.begin(); aIter != aEnd; ++aIter)
+// ::comphelper::disposeComponent(*aIter);
+
+ // Clear the list itself and delete all the rest.
+ ListItems().swap(m_aAccessibleChildren); // clear and minimize
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::FillAccessibleStateSet (utl::AccessibleStateSetHelper& rStateSet)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+ // check if our list should be visible
+ if ( m_pListBoxHelper
+ && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN
+ && !m_pListBoxHelper->IsInDropDown() )
+ {
+ rStateSet.RemoveState (AccessibleStateType::VISIBLE);
+ rStateSet.RemoveState (AccessibleStateType::SHOWING);
+ m_bVisible = false;
+ }
+
+ // Both the combo box and list box are handled identical in the
+ // following but for some reason they don't have a common interface for
+ // the methods used.
+ if ( m_pListBoxHelper )
+ {
+ if ( m_pListBoxHelper->IsMultiSelectionEnabled() )
+ rStateSet.AddState( AccessibleStateType::MULTI_SELECTABLE);
+ rStateSet.AddState (AccessibleStateType::FOCUSABLE);
+ // All children are transient.
+ rStateSet.AddState (AccessibleStateType::MANAGES_DESCENDANTS);
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::notifyVisibleStates(sal_Bool _bSetNew )
+{
+ m_bVisible = _bSetNew ? true : false;
+ Any aOldValue, aNewValue;
+ (_bSetNew ? aNewValue : aOldValue ) <<= AccessibleStateType::VISIBLE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ (_bSetNew ? aNewValue : aOldValue ) <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+
+ ListItems::iterator aIter = m_aAccessibleChildren.begin();
+ ListItems::iterator aEnd = m_aAccessibleChildren.end();
+ UpdateVisibleLineCount();
+ // adjust the index inside the VCLXAccessibleListItem
+ for (;aIter != aEnd ; ++aIter)
+ {
+ Reference< XAccessible > xHold = *aIter;
+ VCLXAccessibleListItem* pItem = static_cast<VCLXAccessibleListItem*>(xHold.get());
+ if ( pItem )
+ {
+ USHORT nTopEntry = 0;
+ if ( m_pListBoxHelper )
+ nTopEntry = m_pListBoxHelper->GetTopEntry();
+ USHORT nPos = (USHORT)(aIter - m_aAccessibleChildren.begin());
+ sal_Bool bVisible = ( nPos>=nTopEntry && nPos<( nTopEntry + m_nVisibleLineCount ) );
+ pItem->SetVisible( m_bVisible && bVisible );
+ }
+
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ // Create a reference to this object to prevent an early release of the
+ // listbox (VCLEVENT_OBJECT_DYING).
+ Reference< XAccessible > xTemp = this;
+
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_DROPDOWN_OPEN:
+ notifyVisibleStates(sal_True);
+ break;
+ case VCLEVENT_DROPDOWN_CLOSE:
+ notifyVisibleStates(sal_False);
+ break;
+ case VCLEVENT_LISTBOX_SCROLLED:
+ case VCLEVENT_COMBOBOX_SCROLLED:
+ UpdateEntryRange_Impl();
+ break;
+
+ case VCLEVENT_LISTBOX_SELECT:
+ if ( !m_bDisableProcessEvent )
+ UpdateSelection_Impl();
+ break;
+ // The selection events VCLEVENT_COMBOBOX_SELECT and
+ // VCLEVENT_COMBOBOX_DESELECT are not handled here because here we
+ // have no access to the edit field. Its text is necessary to
+ // identify the currently selected item.
+
+ case VCLEVENT_OBJECT_DYING:
+ {
+ dispose();
+
+ VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+ break;
+ }
+
+ case VCLEVENT_LISTBOX_ITEMREMOVED:
+ case VCLEVENT_COMBOBOX_ITEMREMOVED:
+ HandleChangedItemList (false, reinterpret_cast<sal_IntPtr>(
+ rVclWindowEvent.GetData()));
+ break;
+
+ case VCLEVENT_LISTBOX_ITEMADDED:
+ case VCLEVENT_COMBOBOX_ITEMADDED:
+ HandleChangedItemList (true, reinterpret_cast<sal_IntPtr>(
+ rVclWindowEvent.GetData()));
+ break;
+ case VCLEVENT_CONTROL_GETFOCUS:
+ VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+ if ( m_pListBoxHelper )
+ {
+ uno::Any aOldValue,
+ aNewValue;
+ USHORT nPos = m_pListBoxHelper->GetSelectEntryPos();
+ if ( nPos == LISTBOX_ENTRY_NOTFOUND )
+ nPos = m_pListBoxHelper->GetTopEntry();
+ if ( nPos != LISTBOX_ENTRY_NOTFOUND )
+ aNewValue <<= CreateChild(nPos);
+
+ NotifyAccessibleEvent( AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+ aOldValue,
+ aNewValue );
+ }
+ break;
+
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent (rVclWindowEvent);
+ }
+}
+// -----------------------------------------------------------------------------
+
+/** To find out which item is currently selected and to update the SELECTED
+ state of the associated accessibility objects accordingly we exploit the
+ fact that the
+*/
+void VCLXAccessibleList::UpdateSelection (::rtl::OUString sTextOfSelectedItem)
+{
+ if ( m_aBoxType == COMBOBOX )
+ {
+ ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
+ if ( pBox != NULL )
+ {
+ // Find the index of the selected item inside the VCL control...
+ USHORT nIndex = pBox->GetEntryPos (XubString(sTextOfSelectedItem));
+ // ...and then find the associated accessibility object.
+ if ( nIndex == LISTBOX_ENTRY_NOTFOUND )
+ nIndex = 0;
+ UpdateSelection_Impl(nIndex);
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::adjustEntriesIndexInParent(ListItems::iterator& _aBegin,::std::mem_fun_t<bool,VCLXAccessibleListItem>& _rMemFun)
+{
+ ListItems::iterator aIter = _aBegin;
+ ListItems::iterator aEnd = m_aAccessibleChildren.end();
+ // adjust the index inside the VCLXAccessibleListItem
+ for (;aIter != aEnd ; ++aIter)
+ {
+ Reference< XAccessible > xHold = *aIter;
+ VCLXAccessibleListItem* pItem = static_cast<VCLXAccessibleListItem*>(xHold.get());
+ if ( pItem )
+ _rMemFun(pItem);
+ }
+}
+// -----------------------------------------------------------------------------
+
+Reference<XAccessible> VCLXAccessibleList::CreateChild (sal_Int32 i)
+{
+ Reference<XAccessible> xChild;
+
+ USHORT nPos = static_cast<USHORT>(i);
+ if ( nPos >= m_aAccessibleChildren.size() )
+ {
+ m_aAccessibleChildren.resize(nPos + 1);
+
+ // insert into the container
+ xChild = new VCLXAccessibleListItem(m_pListBoxHelper, i, this);
+ m_aAccessibleChildren[nPos] = xChild;
+ }
+ else
+ {
+ xChild = m_aAccessibleChildren[nPos];
+ // check if position is empty and can be used else we have to adjust all entries behind this
+ if ( xChild.is() )
+ {
+ ListItems::iterator aIter = m_aAccessibleChildren.begin() + nPos;
+ ::std::mem_fun_t<bool, VCLXAccessibleListItem> aTemp(&VCLXAccessibleListItem::IncrementIndexInParent);
+ adjustEntriesIndexInParent( aIter, aTemp);
+ }
+ else
+ {
+ xChild = new VCLXAccessibleListItem(m_pListBoxHelper, i, this);
+ m_aAccessibleChildren[nPos] = xChild;
+ }
+ }
+
+ if ( xChild.is() )
+ {
+ // Just add the SELECTED state.
+ BOOL bNowSelected = FALSE;
+ if ( m_pListBoxHelper )
+ bNowSelected = m_pListBoxHelper->IsEntryPosSelected ((USHORT)i);
+ VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >(xChild.get());
+ pItem->SetSelected( bNowSelected );
+
+ // Set the child's VISIBLE state.
+ UpdateVisibleLineCount();
+ USHORT nTopEntry = 0;
+ if ( m_pListBoxHelper )
+ nTopEntry = m_pListBoxHelper->GetTopEntry();
+ sal_Bool bVisible = ( nPos>=nTopEntry && nPos<( nTopEntry + m_nVisibleLineCount ) );
+ pItem->SetVisible( m_bVisible && bVisible );
+ }
+
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::HandleChangedItemList (bool bItemInserted, sal_Int32 nIndex)
+{
+ if ( !bItemInserted )
+ {
+ if ( nIndex == -1 ) // special handling here
+ {
+ clearItems();
+ }
+ else
+ {
+ if ( nIndex >= 0 && static_cast<USHORT>(nIndex) < m_aAccessibleChildren.size() )
+ {
+ ListItems::iterator aIter = m_aAccessibleChildren.erase(m_aAccessibleChildren.begin()+nIndex);
+ ::std::mem_fun_t<bool, VCLXAccessibleListItem> aTemp(&VCLXAccessibleListItem::DecrementIndexInParent);
+ adjustEntriesIndexInParent( aIter, aTemp );
+ }
+ }
+ }
+ else
+ getAccessibleChild(nIndex);
+
+ NotifyAccessibleEvent (
+ AccessibleEventId::INVALIDATE_ALL_CHILDREN,
+ Any(), Any());
+}
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleList, VCLXAccessibleComponent, VCLXAccessibleList_BASE)
+IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleList, VCLXAccessibleComponent, VCLXAccessibleList_BASE)
+
+//===== XAccessible =========================================================
+
+Reference<XAccessibleContext> SAL_CALL
+ VCLXAccessibleList::getAccessibleContext (void)
+ throw (RuntimeException)
+{
+ return this;
+}
+// -----------------------------------------------------------------------------
+
+//===== XAccessibleContext ==================================================
+
+sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleChildCount (void)
+ throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Int32 nCount = 0;
+ if ( m_pListBoxHelper )
+ nCount = m_pListBoxHelper->GetEntryCount();
+
+ return nCount;
+}
+// -----------------------------------------------------------------------------
+
+Reference<XAccessible> SAL_CALL VCLXAccessibleList::getAccessibleChild (sal_Int32 i)
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ // search for the child
+ if ( static_cast<USHORT>(i) >= m_aAccessibleChildren.size() )
+ xChild = CreateChild (i);
+ else
+ {
+ xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ xChild = CreateChild (i);
+ }
+ OSL_ENSURE( xChild.is(), "VCLXAccessibleList::getAccessibleChild: returning empty child!" );
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL VCLXAccessibleList::getAccessibleParent( )
+ throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ return m_xParent;
+}
+// -----------------------------------------------------------------------------
+
+sal_Int32 SAL_CALL VCLXAccessibleList::getAccessibleIndexInParent (void)
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ if (m_nIndexInParent != DEFAULT_INDEX_IN_PARENT)
+ return m_nIndexInParent;
+ else
+ return VCLXAccessibleComponent::getAccessibleIndexInParent();
+}
+// -----------------------------------------------------------------------------
+
+sal_Int16 SAL_CALL VCLXAccessibleList::getAccessibleRole (void)
+ throw (RuntimeException)
+{
+ return AccessibleRole::LIST;
+}
+// -----------------------------------------------------------------------------
+
+//===== XAccessibleComponent ================================================
+
+sal_Bool SAL_CALL VCLXAccessibleList::contains( const awt::Point& rPoint ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Bool bInside = sal_False;
+
+ Window* pListBox = GetWindow();
+ if ( pListBox )
+ {
+ Rectangle aRect( Point(0,0), pListBox->GetSizePixel() );
+ bInside = aRect.IsInside( VCLPoint( rPoint ) );
+ }
+
+ return bInside;
+}
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > SAL_CALL VCLXAccessibleList::getAccessibleAt( const awt::Point& rPoint )
+ throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ Reference< XAccessible > xChild;
+ if ( m_pListBoxHelper )
+ {
+ UpdateVisibleLineCount();
+ if ( contains( rPoint ) && m_nVisibleLineCount > 0 )
+ {
+ Point aPos = VCLPoint( rPoint );
+ USHORT nEndPos = m_pListBoxHelper->GetTopEntry() + (USHORT)m_nVisibleLineCount;
+ for ( USHORT i = m_pListBoxHelper->GetTopEntry(); i < nEndPos; ++i )
+ {
+ if ( m_pListBoxHelper->GetBoundingRectangle(i).IsInside( aPos ) )
+ {
+ xChild = getAccessibleChild(i);
+ break;
+ }
+ }
+ }
+ }
+
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+
+//===== XServiceInfo ==========================================================
+
+::rtl::OUString VCLXAccessibleList::getImplementationName (void)
+ throw (RuntimeException)
+{
+ return ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.toolkit.AccessibleList"));
+}
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleList::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleComponent::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.accessibility.AccessibleList"));
+ return aNames;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::UpdateVisibleLineCount()
+{
+ if ( m_pListBoxHelper )
+ {
+ if ( (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN )
+ m_nVisibleLineCount = m_pListBoxHelper->GetDisplayLineCount();
+ else
+ {
+ USHORT nCols = 0,
+ nLines = 0;
+ m_pListBoxHelper->GetMaxVisColumnsAndLines (nCols, nLines);
+ m_nVisibleLineCount = nLines;
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+void VCLXAccessibleList::UpdateEntryRange_Impl()
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Int32 nTop = m_nLastTopEntry;
+
+ if ( m_pListBoxHelper )
+ nTop = m_pListBoxHelper->GetTopEntry();
+ if ( nTop != m_nLastTopEntry )
+ {
+ UpdateVisibleLineCount();
+ sal_Int32 nBegin = Min( m_nLastTopEntry, nTop );
+ sal_Int32 nEnd = Max( m_nLastTopEntry + m_nVisibleLineCount, nTop + m_nVisibleLineCount );
+ for (USHORT i = static_cast<USHORT>(nBegin); (i <= static_cast<USHORT>(nEnd)); ++i)
+ {
+ sal_Bool bVisible = ( i >= nTop && i < ( nTop + m_nVisibleLineCount ) );
+ Reference< XAccessible > xHold;
+ if ( i < m_aAccessibleChildren.size() )
+ xHold = m_aAccessibleChildren[i];
+ else if ( bVisible )
+ xHold = CreateChild(i);
+
+ if ( xHold.is() )
+ static_cast< VCLXAccessibleListItem* >( xHold.get() )->SetVisible( m_bVisible && bVisible );
+ }
+ }
+
+ m_nLastTopEntry = nTop;
+}
+// -----------------------------------------------------------------------------
+BOOL VCLXAccessibleList::checkEntrySelected(USHORT _nPos,Any& _rNewValue,Reference< XAccessible >& _rxNewAcc)
+{
+ OSL_ENSURE(m_pListBoxHelper,"Helper is not valid!");
+ BOOL bNowSelected = FALSE;
+ if ( m_pListBoxHelper )
+ {
+ bNowSelected = m_pListBoxHelper->IsEntryPosSelected (_nPos);
+ if ( bNowSelected )
+ {
+ _rxNewAcc = CreateChild(_nPos);
+ _rNewValue <<= _rxNewAcc;
+ }
+ }
+ return bNowSelected;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleList::UpdateSelection_Impl(USHORT)
+{
+ uno::Any aOldValue, aNewValue;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ Reference< XAccessible > xNewAcc;
+
+ if ( m_pListBoxHelper )
+ {
+ USHORT i=0;
+ for ( ListItems::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter,++i)
+ {
+ Reference< XAccessible > xHold = *aIter;
+ if ( xHold.is() )
+ {
+ VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( xHold.get() );
+ // Retrieve the item's index from the list entry.
+ BOOL bNowSelected = m_pListBoxHelper->IsEntryPosSelected (i);
+
+ if ( bNowSelected && !pItem->IsSelected() )
+ {
+ xNewAcc = *aIter;
+ aNewValue <<= xNewAcc;
+ }
+ else if ( pItem->IsSelected() )
+ m_nLastSelectedPos = i;
+
+ pItem->SetSelected( bNowSelected );
+ }
+ else
+ { // it could happen that a child was not created before
+ checkEntrySelected(i,aNewValue,xNewAcc);
+ }
+ }
+ USHORT nCount = m_pListBoxHelper->GetEntryCount();
+ if ( i < nCount ) // here we have to check the if any other listbox entry is selected
+ {
+ for (; i < nCount && !checkEntrySelected(i,aNewValue,xNewAcc) ;++i )
+ ;
+ }
+ if ( xNewAcc.is() && GetWindow()->HasFocus() )
+ {
+ if ( m_nLastSelectedPos != LISTBOX_ENTRY_NOTFOUND )
+ aOldValue <<= getAccessibleChild( (sal_Int32)m_nLastSelectedPos );
+ aNewValue <<= xNewAcc;
+ }
+ }
+ }
+
+ if ( aNewValue.hasValue() || aOldValue.hasValue() )
+ NotifyAccessibleEvent(
+ AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+ aOldValue,
+ aNewValue );
+
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleList::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( m_pListBoxHelper )
+ {
+ checkSelection_Impl(nChildIndex,*m_pListBoxHelper,sal_False);
+
+ m_pListBoxHelper->SelectEntryPos( (USHORT)nChildIndex, TRUE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ m_pListBoxHelper->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Bool bRet = sal_False;
+ if ( m_pListBoxHelper )
+ {
+ checkSelection_Impl(nChildIndex,*m_pListBoxHelper,sal_False);
+
+ bRet = m_pListBoxHelper->IsEntryPosSelected( (USHORT)nChildIndex );
+ }
+ return bRet;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleList::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( m_pListBoxHelper )
+ {
+ m_pListBoxHelper->SetNoSelection();
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleList::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( m_pListBoxHelper )
+ {
+ USHORT nCount = m_pListBoxHelper->GetEntryCount();
+ for ( USHORT i = 0; i < nCount; ++i )
+ m_pListBoxHelper->SelectEntryPos( i, TRUE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ m_pListBoxHelper->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleList::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Int32 nCount = 0;
+ if ( m_pListBoxHelper )
+ nCount = m_pListBoxHelper->GetSelectEntryCount();
+ return nCount;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( m_pListBoxHelper )
+ {
+ checkSelection_Impl(nSelectedChildIndex,*m_pListBoxHelper,sal_True);
+ return getAccessibleChild( (sal_Int32)m_pListBoxHelper->GetSelectEntryPos( (USHORT)nSelectedChildIndex ) );
+ }
+
+ return NULL;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleList::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ if ( m_pListBoxHelper )
+ {
+ checkSelection_Impl(nSelectedChildIndex,*m_pListBoxHelper,sal_False);
+
+ m_pListBoxHelper->SelectEntryPos( (USHORT)nSelectedChildIndex, FALSE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ m_pListBoxHelper->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+// accessibility::XAccessibleComponent
+awt::Rectangle VCLXAccessibleList::implGetBounds() throw (uno::RuntimeException)
+{
+ awt::Rectangle aBounds ( 0, 0, 0, 0 );
+ if ( m_pListBoxHelper
+ && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN )
+ {
+ if ( m_pListBoxHelper->IsInDropDown() )
+ aBounds = AWTRectangle(m_pListBoxHelper->GetDropDownPosSizePixel());
+ }
+ else
+ {
+ // a list has the same bounds as his parent but starts at (0,0)
+ aBounds = VCLXAccessibleComponent::implGetBounds();
+ aBounds.X = 0;
+ aBounds.Y = 0;
+ if ( m_aBoxType == COMBOBOX )
+ {
+ ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
+ if ( pBox )
+ {
+ Size aSize = pBox->GetSubEdit()->GetSizePixel();
+ aBounds.X += aSize.Height();
+ aBounds.Y += aSize.Width();
+ aBounds.Height -= aSize.Height();
+ aBounds.Width -= aSize.Width();
+ }
+ }
+ }
+ return aBounds;
+}
+// -----------------------------------------------------------------------------
+
+awt::Point VCLXAccessibleList::getLocationOnScreen( ) throw (uno::RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ awt::Point aPos;
+ if ( m_pListBoxHelper
+ && (m_pListBoxHelper->GetStyle() & WB_DROPDOWN ) == WB_DROPDOWN )
+ {
+ if ( m_pListBoxHelper->IsInDropDown() )
+ aPos = AWTPoint(m_pListBoxHelper->GetDropDownPosSizePixel().TopLeft());
+ }
+ else
+ {
+ aPos = VCLXAccessibleComponent::getLocationOnScreen();
+ if ( m_aBoxType == COMBOBOX )
+ {
+ ComboBox* pBox = static_cast<ComboBox*>(GetWindow());
+ if ( pBox )
+ {
+ aPos.X += pBox->GetSubEdit()->GetSizePixel().Height();
+ aPos.Y += pBox->GetSubEdit()->GetSizePixel().Width();
+ }
+ }
+ }
+ return aPos;
+}
+// -----------------------------------------------------------------------------
+
diff --git a/accessibility/source/standard/vclxaccessiblelistbox.cxx b/accessibility/source/standard/vclxaccessiblelistbox.cxx
new file mode 100644
index 000000000000..7645d2067c1a
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblelistbox.cxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblelistbox.hxx>
+#include <accessibility/standard/vclxaccessiblelistitem.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+
+#include <algorithm>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/unohelp.hxx>
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <comphelper/sequence.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+
+VCLXAccessibleListBox::VCLXAccessibleListBox (VCLXWindow* pVCLWindow)
+ : VCLXAccessibleBox (pVCLWindow, VCLXAccessibleBox::LISTBOX, false)
+{
+}
+
+
+
+
+VCLXAccessibleListBox::~VCLXAccessibleListBox (void)
+{
+}
+
+
+
+
+bool VCLXAccessibleListBox::IsValid (void) const
+{
+ return static_cast<ListBox*>(GetWindow()) != NULL;
+
+}
+
+
+
+
+void VCLXAccessibleListBox::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ VCLXAccessibleBox::ProcessWindowEvent( rVclWindowEvent );
+}
+
+
+
+
+//===== XServiceInfo ========================================================
+
+::rtl::OUString VCLXAccessibleListBox::getImplementationName (void)
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.toolkit.AccessibleListBox");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleListBox::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleBox::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleListBox" );
+ return aNames;
+}
diff --git a/accessibility/source/standard/vclxaccessiblelistboxlist.cxx b/accessibility/source/standard/vclxaccessiblelistboxlist.cxx
new file mode 100644
index 000000000000..df37c3239667
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblelistboxlist.cxx
@@ -0,0 +1,335 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblelistboxlist.hxx>
+#include <accessibility/standard/vclxaccessiblelistitem.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+
+#include <algorithm>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/unohelp.hxx>
+
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <comphelper/sequence.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+
+
+namespace
+{
+ void checkSelection_Impl( sal_Int32 _nIndex, const ListBox& _rListBox, sal_Bool bSelected )
+ throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ sal_Int32 nCount = bSelected ? (sal_Int32)_rListBox.GetSelectEntryCount()
+ : (sal_Int32)_rListBox.GetEntryCount();
+ if ( _nIndex < 0 || _nIndex >= nCount )
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+}
+
+
+VCLXAccessibleListBoxList::VCLXAccessibleListBoxList (VCLXWindow* pVCLWindow,
+ BoxType aBoxType,const Reference< XAccessible >& _xParent)
+ : VCLXAccessibleList (pVCLWindow, aBoxType, _xParent)
+{
+}
+
+
+
+
+VCLXAccessibleListBoxList::~VCLXAccessibleListBoxList (void)
+{
+}
+
+
+
+
+void VCLXAccessibleListBoxList::ProcessWindowEvent (const VclWindowEvent& rVclWindowEvent)
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_LISTBOX_SCROLLED:
+ UpdateEntryRange_Impl();
+ break;
+
+ case VCLEVENT_LISTBOX_SELECT:
+ if ( !m_bDisableProcessEvent )
+ UpdateSelection_Impl();
+ break;
+
+ default:
+ VCLXAccessibleList::ProcessWindowEvent (rVclWindowEvent);
+ }
+}
+
+IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleListBoxList, VCLXAccessibleList, VCLXAccessibleListBoxList_BASE)
+IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleListBoxList, VCLXAccessibleList, VCLXAccessibleListBoxList_BASE)
+
+
+
+//===== XServiceInfo ========================================================
+
+::rtl::OUString VCLXAccessibleListBoxList::getImplementationName (void)
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.toolkit.AccessibleListBoxList");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleListBoxList::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleList::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleListBoxList");
+ return aNames;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleListBoxList::UpdateSelection_Impl()
+{
+ uno::Any aOldValue, aNewValue;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+ Reference< XAccessible > xNewAcc;
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ USHORT nPos = 0;
+ ListItems::iterator aEnd = m_aAccessibleChildren.end();
+ for ( ListItems::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != aEnd; ++aIter,++nPos)
+ {
+ if ( aIter->is() )
+ {
+ VCLXAccessibleListItem* pItem = static_cast< VCLXAccessibleListItem* >( aIter->get() );
+ // Retrieve the item's index from the list entry.
+ BOOL bNowSelected = pListBox->IsEntryPosSelected (nPos);
+
+ if ( bNowSelected && !pItem->IsSelected() )
+ {
+ xNewAcc = *aIter;
+ aNewValue <<= xNewAcc;
+ m_nLastSelectedPos = nPos;
+ }
+
+ pItem->SetSelected( bNowSelected );
+ }
+ else
+ { // it could happen that a child was not created before
+ checkEntrySelected(pListBox,nPos,aNewValue,xNewAcc);
+ }
+ }
+
+ USHORT nCount = pListBox->GetEntryCount();
+ if ( nPos < nCount ) // here we have to check the if any other listbox entry is selected
+ {
+ for (; nPos < nCount && !checkEntrySelected(pListBox,nPos,aNewValue,xNewAcc) ;++nPos )
+ ;
+ }
+ }
+
+ if ( xNewAcc.is() && pListBox->HasFocus() )
+ {
+ if ( m_nLastSelectedPos != LISTBOX_ENTRY_NOTFOUND )
+ aOldValue <<= getAccessibleChild( (sal_Int32)m_nLastSelectedPos );
+ aNewValue <<= xNewAcc;
+ }
+ }
+
+ if ( aNewValue.hasValue() || aOldValue.hasValue() )
+ NotifyAccessibleEvent(
+ AccessibleEventId::ACTIVE_DESCENDANT_CHANGED,
+ aOldValue,
+ aNewValue );
+
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListBoxList::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ checkSelection_Impl( nChildIndex, *pListBox, sal_False );
+ pListBox->SelectEntryPos( (USHORT)nChildIndex, TRUE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ pListBox->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleListBoxList::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Bool bRet = sal_False;
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ checkSelection_Impl( nChildIndex, *pListBox, sal_False );
+ bRet = pListBox->IsEntryPosSelected( (USHORT)nChildIndex );
+ }
+ return bRet;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListBoxList::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ pListBox->SetNoSelection();
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListBoxList::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ USHORT nCount = pListBox->GetEntryCount();
+ for ( USHORT i = 0; i < nCount; ++i )
+ pListBox->SelectEntryPos( i, TRUE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ pListBox->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ sal_Int32 nCount = 0;
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ nCount = pListBox->GetSelectEntryCount();
+ return nCount;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleListBoxList::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ checkSelection_Impl( nSelectedChildIndex, *pListBox, sal_True );
+ return getAccessibleChild( (sal_Int32)pListBox->GetSelectEntryPos( (USHORT)nSelectedChildIndex ) );
+ }
+
+ return NULL;
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListBoxList::deselectAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ sal_Bool bNotify = sal_False;
+
+ {
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ ListBox* pListBox = static_cast< ListBox* >( GetWindow() );
+ if ( pListBox )
+ {
+ checkSelection_Impl( nSelectedChildIndex, *pListBox, sal_False );
+ pListBox->SelectEntryPos( (USHORT)nSelectedChildIndex, FALSE );
+ // call the select handler, don't handle events in this time
+ m_bDisableProcessEvent = true;
+ pListBox->Select();
+ m_bDisableProcessEvent = false;
+ bNotify = sal_True;
+ }
+ }
+
+ if ( bNotify )
+ UpdateSelection_Impl();
+}
+// -----------------------------------------------------------------------------
+
diff --git a/accessibility/source/standard/vclxaccessiblelistitem.cxx b/accessibility/source/standard/vclxaccessiblelistitem.cxx
new file mode 100644
index 000000000000..56bcf14f1980
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblelistitem.cxx
@@ -0,0 +1,674 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblelistitem.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Size.hpp>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/controllayout.hxx>
+#include <vcl/unohelp2.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <comphelper/accessibleeventnotifier.hxx>
+
+namespace
+{
+ void checkIndex_Impl( sal_Int32 _nIndex, const ::rtl::OUString& _sText ) throw (::com::sun::star::lang::IndexOutOfBoundsException)
+ {
+ if ( _nIndex < 0 || _nIndex > _sText.getLength() )
+ throw ::com::sun::star::lang::IndexOutOfBoundsException();
+ }
+}
+
+// class VCLXAccessibleListItem ------------------------------------------
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star;
+
+DBG_NAME(VCLXAccessibleListItem)
+
+// -----------------------------------------------------------------------------
+// Ctor() and Dtor()
+// -----------------------------------------------------------------------------
+VCLXAccessibleListItem::VCLXAccessibleListItem( ::accessibility::IComboListBoxHelper* _pListBoxHelper, sal_Int32 _nIndexInParent, const Reference< XAccessible >& _xParent ) :
+
+ VCLXAccessibleListItem_BASE ( m_aMutex ),
+
+ m_nIndexInParent( _nIndexInParent ),
+ m_bSelected ( sal_False ),
+ m_bVisible ( sal_False ),
+ m_nClientId ( 0 ),
+ m_pListBoxHelper( _pListBoxHelper ),
+ m_xParent ( _xParent )
+
+{
+ DBG_CTOR( VCLXAccessibleListItem, NULL );
+
+ if ( m_xParent.is() )
+ m_xParentContext = m_xParent->getAccessibleContext();
+
+ if ( m_pListBoxHelper )
+ m_sEntryText = m_pListBoxHelper->GetEntry( (USHORT)_nIndexInParent );
+}
+// -----------------------------------------------------------------------------
+VCLXAccessibleListItem::~VCLXAccessibleListItem()
+{
+ DBG_DTOR( VCLXAccessibleListItem, NULL );
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleListItem::SetSelected( sal_Bool _bSelected )
+{
+ if ( m_bSelected != _bSelected )
+ {
+ Any aOldValue;
+ Any aNewValue;
+ if ( m_bSelected )
+ aOldValue <<= AccessibleStateType::SELECTED;
+ else
+ aNewValue <<= AccessibleStateType::SELECTED;
+ m_bSelected = _bSelected;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleListItem::SetVisible( sal_Bool _bVisible )
+{
+ if ( m_bVisible != _bVisible )
+ {
+ Any aOldValue, aNewValue;
+ m_bVisible = _bVisible;
+ (_bVisible ? aNewValue : aOldValue ) <<= AccessibleStateType::VISIBLE;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ (_bVisible ? aNewValue : aOldValue ) <<= AccessibleStateType::SHOWING;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleListItem::NotifyAccessibleEvent( sal_Int16 _nEventId,
+ const ::com::sun::star::uno::Any& _aOldValue,
+ const ::com::sun::star::uno::Any& _aNewValue )
+{
+ AccessibleEventObject aEvt;
+ aEvt.Source = *this;
+ aEvt.EventId = _nEventId;
+ aEvt.OldValue = _aOldValue;
+ aEvt.NewValue = _aNewValue;
+
+ if (m_nClientId)
+ comphelper::AccessibleEventNotifier::addEvent( m_nClientId, aEvt );
+}
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleListItem::implGetText()
+{
+ return m_sEntryText;
+}
+// -----------------------------------------------------------------------------
+Locale VCLXAccessibleListItem::implGetLocale()
+{
+ return Application::GetSettings().GetLocale();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleListItem::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+Any SAL_CALL VCLXAccessibleListItem::queryInterface( Type const & rType ) throw (RuntimeException)
+{
+ return VCLXAccessibleListItem_BASE::queryInterface( rType );
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::acquire() throw ()
+{
+ VCLXAccessibleListItem_BASE::acquire();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::release() throw ()
+{
+ VCLXAccessibleListItem_BASE::release();
+}
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+Sequence< Type > SAL_CALL VCLXAccessibleListItem::getTypes( ) throw (RuntimeException)
+{
+ return VCLXAccessibleListItem_BASE::getTypes();
+}
+// -----------------------------------------------------------------------------
+Sequence< sal_Int8 > VCLXAccessibleListItem::getImplementationId() throw (RuntimeException)
+{
+ static ::cppu::OImplementationId* pId = NULL;
+
+ if ( !pId )
+ {
+ ::osl::Guard< ::osl::Mutex > aGuard( m_aMutex );
+
+ if ( !pId )
+ {
+ static ::cppu::OImplementationId aId;
+ pId = &aId;
+ }
+ }
+ return pId->getImplementationId();
+}
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::disposing()
+{
+ comphelper::AccessibleEventNotifier::TClientId nId( 0 );
+ Reference< XInterface > xEventSource;
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ VCLXAccessibleListItem_BASE::disposing();
+ m_sEntryText = ::rtl::OUString();
+ m_pListBoxHelper = NULL;
+ m_xParent = NULL;
+ m_xParentContext = NULL;
+
+ nId = m_nClientId;
+ m_nClientId = 0;
+ if ( nId )
+ xEventSource = *this;
+ }
+
+ // Send a disposing to all listeners.
+ if ( nId )
+ comphelper::AccessibleEventNotifier::revokeClientNotifyDisposing( nId, *this );
+}
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleListItem::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleListItem" );
+}
+// -----------------------------------------------------------------------------
+sal_Bool VCLXAccessibleListItem::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+}
+// -----------------------------------------------------------------------------
+Sequence< ::rtl::OUString > VCLXAccessibleListItem::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(3);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleContext" );
+ aNames[1] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleComponent" );
+ aNames[2] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleListItem" );
+ return aNames;
+}
+// -----------------------------------------------------------------------------
+// XAccessible
+// -----------------------------------------------------------------------------
+Reference< XAccessibleContext > SAL_CALL VCLXAccessibleListItem::getAccessibleContext( ) throw (RuntimeException)
+{
+ return this;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getAccessibleChildCount( ) throw (RuntimeException)
+{
+ return 0;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleChild( sal_Int32 ) throw (RuntimeException)
+{
+ return Reference< XAccessible >();
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleParent( ) throw (RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return m_xParent;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+ return m_nIndexInParent;
+}
+// -----------------------------------------------------------------------------
+sal_Int16 SAL_CALL VCLXAccessibleListItem::getAccessibleRole( ) throw (RuntimeException)
+{
+ return AccessibleRole::LIST_ITEM;
+ // return AccessibleRole::LABEL;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleListItem::getAccessibleDescription( ) throw (RuntimeException)
+{
+ // no description for every item
+ return ::rtl::OUString();
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleListItem::getAccessibleName( ) throw (RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // entry text == accessible name
+ return implGetText();
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleListItem::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessibleStateSet > SAL_CALL VCLXAccessibleListItem::getAccessibleStateSet( ) throw (RuntimeException)
+{
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xStateSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::TRANSIENT );
+ pStateSetHelper->AddState( AccessibleStateType::SELECTABLE );
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ if ( m_bSelected )
+ pStateSetHelper->AddState( AccessibleStateType::SELECTED );
+ if ( m_bVisible )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ }
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return xStateSet;
+}
+// -----------------------------------------------------------------------------
+Locale SAL_CALL VCLXAccessibleListItem::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return implGetLocale();
+}
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleListItem::containsPoint( const awt::Point& _aPoint ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Bool bInside = sal_False;
+ if ( m_pListBoxHelper )
+ {
+ Rectangle aRect( m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent ) );
+ aRect.Move(-aRect.TopLeft().X(),-aRect.TopLeft().Y());
+ bInside = aRect.IsInside( VCLPoint( _aPoint ) );
+ }
+ return bInside;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleListItem::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+{
+ return Reference< XAccessible >();
+}
+// -----------------------------------------------------------------------------
+awt::Rectangle SAL_CALL VCLXAccessibleListItem::getBounds( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ awt::Rectangle aRect;
+ if ( m_pListBoxHelper )
+ aRect = AWTRectangle( m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent ) );
+
+ return aRect;
+}
+// -----------------------------------------------------------------------------
+awt::Point SAL_CALL VCLXAccessibleListItem::getLocation( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Point aPoint(0,0);
+ if ( m_pListBoxHelper )
+ {
+ Rectangle aRect = m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent );
+ aPoint = aRect.TopLeft();
+ }
+ return AWTPoint( aPoint );
+}
+// -----------------------------------------------------------------------------
+awt::Point SAL_CALL VCLXAccessibleListItem::getLocationOnScreen( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Point aPoint(0,0);
+ if ( m_pListBoxHelper )
+ {
+ Rectangle aRect = m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent );
+ aPoint = aRect.TopLeft();
+ aPoint += m_pListBoxHelper->GetWindowExtentsRelative( NULL ).TopLeft();
+ }
+ return AWTPoint( aPoint );
+}
+// -----------------------------------------------------------------------------
+awt::Size SAL_CALL VCLXAccessibleListItem::getSize( ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ Size aSize;
+ if ( m_pListBoxHelper )
+ aSize = m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent ).GetSize();
+
+ return AWTSize( aSize );
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::grabFocus( ) throw (RuntimeException)
+{
+ // no focus for each item
+}
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getCaretPosition() throw (RuntimeException)
+{
+ return -1;
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleListItem::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+// -----------------------------------------------------------------------------
+sal_Unicode SAL_CALL VCLXAccessibleListItem::getCharacter( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getCharacter( nIndex );
+}
+// -----------------------------------------------------------------------------
+Sequence< PropertyValue > SAL_CALL VCLXAccessibleListItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ ::rtl::OUString sText( implGetText() );
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return Sequence< PropertyValue >();
+}
+// -----------------------------------------------------------------------------
+awt::Rectangle SAL_CALL VCLXAccessibleListItem::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ ::rtl::OUString sText( implGetText() );
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pListBoxHelper )
+ {
+ Rectangle aCharRect = m_pListBoxHelper->GetEntryCharacterBounds( m_nIndexInParent, nIndex );
+ Rectangle aItemRect = m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getCharacterCount() throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getCharacterCount();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pListBoxHelper )
+ {
+ USHORT nPos = LISTBOX_ENTRY_NOTFOUND;
+ Rectangle aItemRect = m_pListBoxHelper->GetBoundingRectangle( (USHORT)m_nIndexInParent );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ sal_Int32 nI = m_pListBoxHelper->GetIndexForPoint( aPnt, nPos );
+ if ( nI != -1 && (USHORT)m_nIndexInParent == nPos )
+ nIndex = nI;
+ }
+ return nIndex;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleListItem::getSelectedText() throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getSelectedText();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionStart() throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getSelectionStart();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getSelectionEnd() throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getSelectionEnd();
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleListItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleListItem::getText() throw (RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getText();
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleListItem::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+}
+// -----------------------------------------------------------------------------
+::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
+}
+// -----------------------------------------------------------------------------
+::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
+}
+// -----------------------------------------------------------------------------
+::com::sun::star::accessibility::TextSegment SAL_CALL VCLXAccessibleListItem::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ return OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleListItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ vos::OGuard aSolarGuard( Application::GetSolarMutex() );
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ checkIndex_Impl( nStartIndex, m_sEntryText );
+ checkIndex_Impl( nEndIndex, m_sEntryText );
+
+ sal_Bool bRet = sal_False;
+ if ( m_pListBoxHelper )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = m_pListBoxHelper->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+ Application::AcquireSolarMutex( nRef );
+
+ bRet = sal_True;
+ }
+ }
+
+ return bRet;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleEventBroadcaster
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::addEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+{
+ if (xListener.is())
+ {
+ if (!m_nClientId)
+ m_nClientId = comphelper::AccessibleEventNotifier::registerClient( );
+ comphelper::AccessibleEventNotifier::addEventListener( m_nClientId, xListener );
+ }
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleListItem::removeEventListener( const Reference< XAccessibleEventListener >& xListener ) throw (RuntimeException)
+{
+ if ( xListener.is() && m_nClientId )
+ {
+ sal_Int32 nListenerCount = comphelper::AccessibleEventNotifier::removeEventListener( m_nClientId, xListener );
+ if ( !nListenerCount )
+ {
+ // no listeners anymore
+ // -> revoke ourself. This may lead to the notifier thread dying (if we were the last client),
+ // and at least to us not firing any events anymore, in case somebody calls
+ // NotifyAccessibleEvent, again
+ if ( m_nClientId )
+ {
+ comphelper::AccessibleEventNotifier::TClientId nId( m_nClientId );
+ m_nClientId = 0;
+ comphelper::AccessibleEventNotifier::revokeClient( nId );
+ }
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+
+
+
+// AF (Oct. 29 2002): Return black as constant foreground color. This is an
+// initial implementation and has to be substituted by code that determines
+// the color that is actually used.
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getForeground (void)
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ return COL_BLACK;
+}
+
+// AF (Oct. 29 2002): Return white as constant background color. This is an
+// initial implementation and has to be substituted by code that determines
+// the color that is actually used.
+sal_Int32 SAL_CALL VCLXAccessibleListItem::getBackground (void)
+ throw (::com::sun::star::uno::RuntimeException)
+{
+ return COL_WHITE;
+}
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblemenu.cxx b/accessibility/source/standard/vclxaccessiblemenu.cxx
new file mode 100644
index 000000000000..f7e77f3fb8e2
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblemenu.cxx
@@ -0,0 +1,255 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblemenu.hxx>
+
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/menu.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleMenu
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenu::VCLXAccessibleMenu( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu )
+ :VCLXAccessibleMenuItem( pParent, nItemPos, pMenu )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenu::~VCLXAccessibleMenu()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenu::IsFocused()
+{
+ sal_Bool bFocused = sal_False;
+
+ if ( IsHighlighted() && !IsChildHighlighted() )
+ bFocused = sal_True;
+
+ return bFocused;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenu::IsPopupMenuOpen()
+{
+ sal_Bool bPopupMenuOpen = sal_False;
+
+ if ( m_pParent )
+ {
+ PopupMenu* pPopupMenu = m_pParent->GetPopupMenu( m_pParent->GetItemId( m_nItemPos ) );
+ if ( pPopupMenu && pPopupMenu->IsMenuVisible() )
+ bPopupMenuOpen = sal_True;
+ }
+
+ return bPopupMenuOpen;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleMenu, VCLXAccessibleMenuItem, VCLXAccessibleMenu_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleMenu, VCLXAccessibleMenuItem, VCLXAccessibleMenu_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenu::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleMenu" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleMenu::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleMenu" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenu::getAccessibleChildCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetChildCount();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleMenu::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return GetChild( i );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleMenu::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::MENU;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleMenu::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetChildAt( rPoint );
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenu::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ SelectChild( nChildIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenu::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return IsChildSelected( nChildIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenu::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ DeSelectAll();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenu::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ // This method makes no sense in a menu, and so does nothing.
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenu::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nRet = 0;
+
+ for ( sal_Int32 i = 0, nCount = GetChildCount(); i < nCount; i++ )
+ {
+ if ( IsChildSelected( i ) )
+ ++nRet;
+ }
+
+ return nRet;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleMenu::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+
+ for ( sal_Int32 i = 0, j = 0, nCount = GetChildCount(); i < nCount; i++ )
+ {
+ if ( IsChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
+ {
+ xChild = GetChild( i );
+ break;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenu::deselectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= GetChildCount() )
+ throw IndexOutOfBoundsException();
+
+ DeSelectAll();
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblemenubar.cxx b/accessibility/source/standard/vclxaccessiblemenubar.cxx
new file mode 100644
index 000000000000..825e5990e783
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblemenubar.cxx
@@ -0,0 +1,211 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblemenubar.hxx>
+
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/menu.hxx>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessibleMenuBar
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuBar::VCLXAccessibleMenuBar( Menu* pMenu )
+ :OAccessibleMenuComponent( pMenu )
+{
+ if ( pMenu )
+ {
+ m_pWindow = pMenu->GetWindow();
+
+ if ( m_pWindow )
+ m_pWindow->AddEventListener( LINK( this, VCLXAccessibleMenuBar, WindowEventListener ) );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuBar::~VCLXAccessibleMenuBar()
+{
+ if ( m_pWindow )
+ m_pWindow->RemoveEventListener( LINK( this, VCLXAccessibleMenuBar, WindowEventListener ) );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuBar::IsFocused()
+{
+ sal_Bool bFocused = sal_False;
+
+ if ( m_pWindow && m_pWindow->HasFocus() && !IsChildHighlighted() )
+ bFocused = sal_True;
+
+ return bFocused;
+}
+
+// -----------------------------------------------------------------------------
+
+IMPL_LINK( VCLXAccessibleMenuBar, WindowEventListener, VclSimpleEvent*, pEvent )
+{
+ DBG_ASSERT( pEvent && pEvent->ISA( VclWindowEvent ), "VCLXAccessibleMenuBar::WindowEventListener: unknown window event!" );
+ if ( pEvent && pEvent->ISA( VclWindowEvent ) )
+ {
+ DBG_ASSERT( ((VclWindowEvent*)pEvent)->GetWindow(), "VCLXAccessibleMenuBar::WindowEventListener: no window!" );
+ if ( !((VclWindowEvent*)pEvent)->GetWindow()->IsAccessibilityEventsSuppressed() || ( pEvent->GetId() == VCLEVENT_OBJECT_DYING ) )
+ {
+ ProcessWindowEvent( *(VclWindowEvent*)pEvent );
+ }
+ }
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenuBar::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_GETFOCUS:
+ case VCLEVENT_WINDOW_LOSEFOCUS:
+ {
+ SetFocused( rVclWindowEvent.GetId() == VCLEVENT_WINDOW_GETFOCUS );
+ }
+ break;
+ case VCLEVENT_OBJECT_DYING:
+ {
+ if ( m_pWindow )
+ {
+ m_pWindow->RemoveEventListener( LINK( this, VCLXAccessibleMenuBar, WindowEventListener ) );
+ m_pWindow = NULL;
+ }
+ }
+ break;
+ default:
+ {
+ }
+ break;
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenuBar::disposing()
+{
+ OAccessibleMenuComponent::disposing();
+
+ if ( m_pWindow )
+ {
+ m_pWindow->RemoveEventListener( LINK( this, VCLXAccessibleMenuBar, WindowEventListener ) );
+ m_pWindow = NULL;
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuBar::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleMenuBar" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleMenuBar::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleMenuBar" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuBar::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndexInParent = -1;
+
+ if ( m_pMenu )
+ {
+ Window* pWindow = m_pMenu->GetWindow();
+ if ( pWindow )
+ {
+ Window* pParent = pWindow->GetAccessibleParentWindow();
+ if ( pParent )
+ {
+ for ( USHORT n = pParent->GetAccessibleChildWindowCount(); n; )
+ {
+ Window* pChild = pParent->GetAccessibleChildWindow( --n );
+ if ( pChild == pWindow )
+ {
+ nIndexInParent = n;
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return nIndexInParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleMenuBar::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::MENU_BAR;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuBar::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetStyleSettings().GetMenuBarColor().GetColor();
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblemenuitem.cxx b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
new file mode 100644
index 000000000000..7332386e4303
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblemenuitem.cxx
@@ -0,0 +1,607 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblemenuitem.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/characterattributeshelper.hxx>
+#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <com/sun/star/awt/KeyModifier.hpp>
+
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/window.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/unohelp2.hxx>
+
+#include <memory>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessibleMenuItem
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuItem::VCLXAccessibleMenuItem( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu )
+ :OAccessibleMenuItemComponent( pParent, nItemPos, pMenu )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuItem::~VCLXAccessibleMenuItem()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::IsFocused()
+{
+ return IsHighlighted();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::IsSelected()
+{
+ return IsHighlighted();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::IsChecked()
+{
+ sal_Bool bChecked = sal_False;
+
+ if ( m_pParent )
+ {
+ sal_uInt16 nItemId = m_pParent->GetItemId( m_nItemPos );
+ if ( m_pParent->IsItemChecked( nItemId ) )
+ bChecked = sal_True;
+ }
+
+ return bChecked;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::IsHighlighted()
+{
+ sal_Bool bHighlighted = sal_False;
+
+ if ( m_pParent && m_pParent->IsHighlighted( m_nItemPos ) )
+ bHighlighted = sal_True;
+
+ return bHighlighted;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenuItem::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ OAccessibleMenuItemComponent::FillAccessibleStateSet( rStateSet );
+
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( IsFocused() )
+ rStateSet.AddState( AccessibleStateType::FOCUSED );
+
+ rStateSet.AddState( AccessibleStateType::SELECTABLE );
+
+ if ( IsSelected() )
+ rStateSet.AddState( AccessibleStateType::SELECTED );
+
+ if ( IsChecked() )
+ rStateSet.AddState( AccessibleStateType::CHECKED );
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::implGetText()
+{
+ return m_sItemText;
+}
+
+// -----------------------------------------------------------------------------
+
+Locale VCLXAccessibleMenuItem::implGetLocale()
+{
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleMenuItem::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleMenuItem, OAccessibleMenuItemComponent, VCLXAccessibleMenuItem_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleMenuItem, OAccessibleMenuItemComponent, VCLXAccessibleMenuItem_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleMenuItem" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleMenuItem::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleMenuItem" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleMenuItem::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::MENU_ITEM;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getCaretPosition() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return -1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Unicode VCLXAccessibleMenuItem::getCharacter( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getCharacter( nIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > VCLXAccessibleMenuItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Sequence< PropertyValue > aValues;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ Font aFont = Application::GetSettings().GetStyleSettings().GetMenuFont();
+ sal_Int32 nBackColor = getBackground();
+ sal_Int32 nColor = getForeground();
+ ::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+ aValues = pHelper->GetCharacterAttributes( aRequestedAttributes );
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleMenuItem::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pParent )
+ {
+ sal_uInt16 nItemId = m_pParent->GetItemId( m_nItemPos );
+ Rectangle aItemRect = m_pParent->GetBoundingRectangle( m_nItemPos );
+ Rectangle aCharRect = m_pParent->GetCharacterBounds( nItemId, nIndex );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getCharacterCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getCharacterCount();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pParent )
+ {
+ sal_uInt16 nItemId = 0;
+ Rectangle aItemRect = m_pParent->GetBoundingRectangle( m_nItemPos );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ sal_Int32 nI = m_pParent->GetIndexForPoint( aPnt, nItemId );
+ if ( nI != -1 && m_pParent->GetItemId( m_nItemPos ) == nItemId )
+ nIndex = nI;
+ }
+
+ return nIndex;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::getSelectedText() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectedText();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getSelectionStart() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectionStart();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getSelectionEnd() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectionEnd();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::getText() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getText();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleMenuItem::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleMenuItem::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleMenuItem::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( m_pParent )
+ {
+ Window* pWindow = m_pParent->GetWindow();
+ if ( pWindow )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = pWindow->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+
+ Application::AcquireSolarMutex( nRef );
+
+ bReturn = sal_True;
+ }
+ }
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleMenuItem::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ Click();
+
+ return sal_True;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuItem::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleMenuItem::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ OAccessibleKeyBindingHelper* pKeyBindingHelper = new OAccessibleKeyBindingHelper();
+ Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+
+ if ( m_pParent )
+ {
+ // create auto mnemonics
+ if ( Application::GetSettings().GetStyleSettings().GetAutoMnemonic() && !( m_pParent->GetMenuFlags() & MENU_FLAG_NOAUTOMNEMONICS ) )
+ m_pParent->CreateAutoMnemonics();
+
+ // activation key
+ KeyEvent aKeyEvent = m_pParent->GetActivationKey( m_pParent->GetItemId( m_nItemPos ) );
+ KeyCode aKeyCode = aKeyEvent.GetKeyCode();
+ Sequence< awt::KeyStroke > aSeq1(1);
+ aSeq1[0].Modifiers = 0;
+ Reference< XAccessible > xParent( getAccessibleParent() );
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
+ if ( xParentContext.is() && xParentContext->getAccessibleRole() == AccessibleRole::MENU_BAR )
+ aSeq1[0].Modifiers |= awt::KeyModifier::MOD2;
+ }
+ aSeq1[0].KeyCode = aKeyCode.GetCode();
+ aSeq1[0].KeyChar = aKeyEvent.GetCharCode();
+ aSeq1[0].KeyFunc = static_cast< sal_Int16 >( aKeyCode.GetFunction() );
+ pKeyBindingHelper->AddKeyBinding( aSeq1 );
+
+ // complete menu activation key sequence
+ Sequence< awt::KeyStroke > aSeq;
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleContext > xParentContext( xParent->getAccessibleContext() );
+ if ( xParentContext.is() && xParentContext->getAccessibleRole() == AccessibleRole::MENU )
+ {
+ Reference< XAccessibleAction > xAction( xParentContext, UNO_QUERY );
+ if ( xAction.is() && xAction->getAccessibleActionCount() > 0 )
+ {
+ Reference< XAccessibleKeyBinding > xKeyB( xAction->getAccessibleActionKeyBinding( 0 ) );
+ if ( xKeyB.is() && xKeyB->getAccessibleKeyBindingCount() > 1 )
+ aSeq = xKeyB->getAccessibleKeyBinding( 1 );
+ }
+ }
+ }
+ Sequence< awt::KeyStroke > aSeq2 = ::comphelper::concatSequences( aSeq, aSeq1 );
+ pKeyBindingHelper->AddKeyBinding( aSeq2 );
+
+ // accelerator key
+ KeyCode aAccelKeyCode = m_pParent->GetAccelKey( m_pParent->GetItemId( m_nItemPos ) );
+ if ( aAccelKeyCode.GetCode() != 0 )
+ {
+ Sequence< awt::KeyStroke > aSeq3(1);
+ aSeq3[0].Modifiers = 0;
+ if ( aAccelKeyCode.IsShift() )
+ aSeq3[0].Modifiers |= awt::KeyModifier::SHIFT;
+ if ( aAccelKeyCode.IsMod1() )
+ aSeq3[0].Modifiers |= awt::KeyModifier::MOD1;
+ if ( aAccelKeyCode.IsMod2() )
+ aSeq3[0].Modifiers |= awt::KeyModifier::MOD2;
+ if ( aAccelKeyCode.IsMod3() )
+ aSeq3[0].Modifiers |= awt::KeyModifier::MOD3;
+ aSeq3[0].KeyCode = aAccelKeyCode.GetCode();
+ aSeq3[0].KeyFunc = static_cast< sal_Int16 >( aAccelKeyCode.GetFunction() );
+ pKeyBindingHelper->AddKeyBinding( aSeq3 );
+ }
+ }
+
+ return xKeyBinding;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleMenuItem::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ if ( IsSelected() )
+ aValue <<= (sal_Int32) 1;
+ else
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleMenuItem::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+ sal_Int32 nValue = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+
+ if ( nValue <= 0 )
+ {
+ DeSelect();
+ bReturn = sal_True;
+ }
+ else if ( nValue >= 1 )
+ {
+ Select();
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleMenuItem::getMaximumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 1;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleMenuItem::getMinimumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblemenuseparator.cxx b/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
new file mode 100644
index 000000000000..07c8c0f2a3d4
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblemenuseparator.cxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblemenuseparator.hxx>
+
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessibleMenuSeparator
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuSeparator::VCLXAccessibleMenuSeparator( Menu* pParent, sal_uInt16 nItemPos, Menu* pMenu )
+ :OAccessibleMenuItemComponent( pParent, nItemPos, pMenu )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleMenuSeparator::~VCLXAccessibleMenuSeparator()
+{
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleMenuSeparator::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleMenuSeparator" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleMenuSeparator::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleMenuSeparator" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleMenuSeparator::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::SEPARATOR;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblepopupmenu.cxx b/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
new file mode 100644
index 000000000000..328e015c60e5
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblepopupmenu.cxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblepopupmenu.hxx>
+
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/svapp.hxx>
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessiblePopupMenu
+// -----------------------------------------------------------------------------
+
+VCLXAccessiblePopupMenu::VCLXAccessiblePopupMenu( Menu* pMenu )
+ :OAccessibleMenuComponent( pMenu )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessiblePopupMenu::~VCLXAccessiblePopupMenu()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessiblePopupMenu::IsFocused()
+{
+ return !IsChildHighlighted();
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessiblePopupMenu::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessiblePopupMenu" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessiblePopupMenu::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessiblePopupMenu" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessiblePopupMenu::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessiblePopupMenu::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::POPUP_MENU;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessiblePopupMenu::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetStyleSettings().GetMenuColor().GetColor();
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibleradiobutton.cxx b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
new file mode 100644
index 000000000000..76940967fcce
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibleradiobutton.cxx
@@ -0,0 +1,314 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessibleradiobutton.hxx>
+
+#include <toolkit/awt/vclxwindows.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <comphelper/accessiblekeybindinghelper.hxx>
+#include <com/sun/star/awt/KeyModifier.hpp>
+#include <com/sun/star/accessibility/AccessibleRelationType.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/window.hxx>
+#include <vcl/button.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleRadioButton
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleRadioButton::VCLXAccessibleRadioButton( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleTextComponent( pVCLWindow )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleRadioButton::~VCLXAccessibleRadioButton()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleRadioButton::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_RADIOBUTTON_TOGGLE:
+ {
+ Any aOldValue;
+ Any aNewValue;
+
+ VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
+ if ( pVCLXRadioButton && pVCLXRadioButton->getState() )
+ aNewValue <<= AccessibleStateType::CHECKED;
+ else
+ aOldValue <<= AccessibleStateType::CHECKED;
+
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+ break;
+ default:
+ VCLXAccessibleTextComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleRadioButton::FillAccessibleRelationSet( utl::AccessibleRelationSetHelper& rRelationSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleRelationSet( rRelationSet );
+
+ RadioButton* pRadioButton = dynamic_cast< RadioButton* >( GetWindow() );
+ if ( pRadioButton )
+ {
+ ::std::vector< RadioButton* > aGroup;
+ pRadioButton->GetRadioButtonGroup( aGroup, true );
+ if ( !aGroup.empty() )
+ {
+ sal_Int32 i = 0;
+ Sequence< Reference< XInterface > > aSequence( static_cast< sal_Int32 >( aGroup.size() ) );
+ ::std::vector< RadioButton* >::const_iterator aEndItr = aGroup.end();
+ for ( ::std::vector< RadioButton* >::const_iterator aItr = aGroup.begin(); aItr < aEndItr; ++aItr )
+ {
+ aSequence[i++] = (*aItr)->GetAccessible();
+ }
+ rRelationSet.AddRelation( AccessibleRelation( AccessibleRelationType::MEMBER_OF, aSequence ) );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleRadioButton::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleTextComponent::FillAccessibleStateSet( rStateSet );
+
+ VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
+ if ( pVCLXRadioButton )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ if ( pVCLXRadioButton->getState() )
+ rStateSet.AddState( AccessibleStateType::CHECKED );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleRadioButton, VCLXAccessibleTextComponent, VCLXAccessibleRadioButton_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleRadioButton, VCLXAccessibleTextComponent, VCLXAccessibleRadioButton_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleRadioButton::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleRadioButton" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleRadioButton::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleRadioButton" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleRadioButton::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleRadioButton::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
+ if ( pVCLXRadioButton && !pVCLXRadioButton->getState() )
+ pVCLXRadioButton->setState( sal_True );
+
+ return sal_True;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleRadioButton::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleRadioButton::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ OAccessibleKeyBindingHelper* pKeyBindingHelper = new OAccessibleKeyBindingHelper();
+ Reference< XAccessibleKeyBinding > xKeyBinding = pKeyBindingHelper;
+
+ Window* pWindow = GetWindow();
+ if ( pWindow )
+ {
+ KeyEvent aKeyEvent = pWindow->GetActivationKey();
+ KeyCode aKeyCode = aKeyEvent.GetKeyCode();
+ if ( aKeyCode.GetCode() != 0 )
+ {
+ awt::KeyStroke aKeyStroke;
+ aKeyStroke.Modifiers = 0;
+ if ( aKeyCode.IsShift() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::SHIFT;
+ if ( aKeyCode.IsMod1() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD1;
+ if ( aKeyCode.IsMod2() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD2;
+ if ( aKeyCode.IsMod3() )
+ aKeyStroke.Modifiers |= awt::KeyModifier::MOD3;
+ aKeyStroke.KeyCode = aKeyCode.GetCode();
+ aKeyStroke.KeyChar = aKeyEvent.GetCharCode();
+ aKeyStroke.KeyFunc = static_cast< sal_Int16 >( aKeyCode.GetFunction() );
+ pKeyBindingHelper->AddKeyBinding( aKeyStroke );
+ }
+ }
+
+ return xKeyBinding;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleRadioButton::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
+ if ( pVCLXRadioButton )
+ aValue <<= (sal_Int32) pVCLXRadioButton->getState();
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleRadioButton::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ VCLXRadioButton* pVCLXRadioButton = static_cast< VCLXRadioButton* >( GetVCLXWindow() );
+ if ( pVCLXRadioButton )
+ {
+ sal_Int32 nValue = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+
+ if ( nValue < 0 )
+ nValue = 0;
+ else if ( nValue > 1 )
+ nValue = 1;
+
+ pVCLXRadioButton->setState( (sal_Bool) nValue );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleRadioButton::getMaximumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 1;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleRadioButton::getMinimumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblescrollbar.cxx b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
new file mode 100644
index 000000000000..9bd9cf45f94b
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblescrollbar.cxx
@@ -0,0 +1,280 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessiblescrollbar.hxx>
+
+#include <toolkit/awt/vclxwindows.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/awt/ScrollBarOrientation.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/scrbar.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::awt;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleScrollBar
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleScrollBar::VCLXAccessibleScrollBar( VCLXWindow* pVCLWindow )
+ :VCLXAccessibleComponent( pVCLWindow )
+{
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleScrollBar::~VCLXAccessibleScrollBar()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleScrollBar::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_SCROLLBAR_SCROLL:
+ {
+ NotifyAccessibleEvent( AccessibleEventId::VALUE_CHANGED, Any(), Any() );
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleScrollBar::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+
+ VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
+ if ( pVCLXScrollBar )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::HORIZONTAL )
+ rStateSet.AddState( AccessibleStateType::HORIZONTAL );
+ else if ( pVCLXScrollBar->getOrientation() == ScrollBarOrientation::VERTICAL )
+ rStateSet.AddState( AccessibleStateType::VERTICAL );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleScrollBar, VCLXAccessibleComponent, VCLXAccessibleScrollBar_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleScrollBar, VCLXAccessibleComponent, VCLXAccessibleScrollBar_BASE )
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleScrollBar::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleScrollBar" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleScrollBar::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleScrollBar" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleScrollBar::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 4;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleScrollBar::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ sal_Bool bReturn = sal_False;
+ ScrollBar* pScrollBar = static_cast< ScrollBar* >( GetWindow() );
+ if ( pScrollBar )
+ {
+ ScrollType eScrollType;
+ switch ( nIndex )
+ {
+ case 0: eScrollType = SCROLL_LINEUP; break;
+ case 1: eScrollType = SCROLL_LINEDOWN; break;
+ case 2: eScrollType = SCROLL_PAGEUP; break;
+ case 3: eScrollType = SCROLL_PAGEDOWN; break;
+ default: eScrollType = SCROLL_DONTKNOW; break;
+ }
+ if ( pScrollBar->DoScrollAction( eScrollType ) )
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleScrollBar::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ ::rtl::OUString sDescription;
+
+ switch ( nIndex )
+ {
+ case 0: sDescription = ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_DECLINE ) ); break;
+ case 1: sDescription = ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_INCLINE ) ); break;
+ case 2: sDescription = ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_DECBLOCK ) ); break;
+ case 3: sDescription = ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_INCBLOCK ) ); break;
+ default: break;
+ }
+
+ return sDescription;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleKeyBinding > VCLXAccessibleScrollBar::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessibleKeyBinding >();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleScrollBar::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
+ if ( pVCLXScrollBar )
+ aValue <<= (sal_Int32) pVCLXScrollBar->getValue();
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleScrollBar::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
+ if ( pVCLXScrollBar )
+ {
+ sal_Int32 nValue = 0, nValueMin = 0, nValueMax = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+ OSL_VERIFY( getMinimumValue() >>= nValueMin );
+ OSL_VERIFY( getMaximumValue() >>= nValueMax );
+
+ if ( nValue < nValueMin )
+ nValue = nValueMin;
+ else if ( nValue > nValueMax )
+ nValue = nValueMax;
+
+ pVCLXScrollBar->setValue( nValue );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleScrollBar::getMaximumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+
+ VCLXScrollBar* pVCLXScrollBar = static_cast< VCLXScrollBar* >( GetVCLXWindow() );
+ if ( pVCLXScrollBar )
+ aValue <<= (sal_Int32) pVCLXScrollBar->getMaximum();
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
+
+Any VCLXAccessibleScrollBar::getMinimumValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ aValue <<= (sal_Int32) 0;
+
+ return aValue;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblestatusbar.cxx b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
new file mode 100644
index 000000000000..5dd35a699b27
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblestatusbar.cxx
@@ -0,0 +1,366 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblestatusbar.hxx>
+#include <accessibility/standard/vclxaccessiblestatusbaritem.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <vcl/status.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleStatusBar
+// ----------------------------------------------------
+
+VCLXAccessibleStatusBar::VCLXAccessibleStatusBar( VCLXWindow* pVCLXWindow )
+ :VCLXAccessibleComponent( pVCLXWindow )
+{
+ m_pStatusBar = static_cast< StatusBar* >( GetWindow() );
+
+ if ( m_pStatusBar )
+ m_aAccessibleChildren.assign( m_pStatusBar->GetItemCount(), Reference< XAccessible >() );
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleStatusBar::~VCLXAccessibleStatusBar()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::UpdateShowing( sal_Int32 i, sal_Bool bShowing )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
+ if ( pVCLXAccessibleStatusBarItem )
+ pVCLXAccessibleStatusBarItem->SetShowing( bShowing );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::UpdateItemName( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
+ if ( pVCLXAccessibleStatusBarItem )
+ {
+ ::rtl::OUString sItemName = pVCLXAccessibleStatusBarItem->GetItemName();
+ pVCLXAccessibleStatusBarItem->SetItemName( sItemName );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::UpdateItemText( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
+ if ( pVCLXAccessibleStatusBarItem )
+ {
+ ::rtl::OUString sItemText = pVCLXAccessibleStatusBarItem->GetItemText();
+ pVCLXAccessibleStatusBarItem->SetItemText( sItemText );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::InsertChild( sal_Int32 i )
+{
+ if ( i >= 0 && i <= (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // insert entry in child list
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+
+ // send accessible child event
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::RemoveChild( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // get the accessible of the removed page
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+ // remove entry in child list
+ m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+ // send accessible child event
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+ Reference< XComponent > xComponent( xChild, UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_STATUSBAR_ITEMADDED:
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nItemPos = m_pStatusBar->GetItemPos( nItemId );
+ InsertChild( nItemPos );
+ }
+ }
+ break;
+ case VCLEVENT_STATUSBAR_ITEMREMOVED:
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ {
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleStatusBarItem* pVCLXAccessibleStatusBarItem = static_cast< VCLXAccessibleStatusBarItem* >( xChild.get() );
+ if ( pVCLXAccessibleStatusBarItem && pVCLXAccessibleStatusBarItem->GetItemId() == nItemId )
+ {
+ RemoveChild( i );
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+ case VCLEVENT_STATUSBAR_ALLITEMSREMOVED:
+ {
+ for ( sal_Int32 i = m_aAccessibleChildren.size() - 1; i >= 0; --i )
+ RemoveChild( i );
+ }
+ break;
+ case VCLEVENT_STATUSBAR_SHOWITEM:
+ case VCLEVENT_STATUSBAR_HIDEITEM:
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nItemPos = m_pStatusBar->GetItemPos( nItemId );
+ UpdateShowing( nItemPos, rVclWindowEvent.GetId() == VCLEVENT_STATUSBAR_SHOWITEM );
+ }
+ }
+ break;
+ case VCLEVENT_STATUSBAR_SHOWALLITEMS:
+ case VCLEVENT_STATUSBAR_HIDEALLITEMS:
+ {
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ UpdateShowing( i, rVclWindowEvent.GetId() == VCLEVENT_STATUSBAR_SHOWALLITEMS );
+ }
+ break;
+ case VCLEVENT_STATUSBAR_NAMECHANGED:
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nItemPos = m_pStatusBar->GetItemPos( nItemId );
+ UpdateItemName( nItemPos );
+ }
+ }
+ break;
+ case VCLEVENT_STATUSBAR_DRAWITEM:
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nItemPos = m_pStatusBar->GetItemPos( nItemId );
+ UpdateItemText( nItemPos );
+ }
+ }
+ break;
+ case VCLEVENT_OBJECT_DYING:
+ {
+ if ( m_pStatusBar )
+ {
+ m_pStatusBar = NULL;
+
+ // dispose all children
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBar::disposing()
+{
+ VCLXAccessibleComponent::disposing();
+
+ if ( m_pStatusBar )
+ {
+ m_pStatusBar = NULL;
+
+ // dispose all children
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBar::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleStatusBar" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleStatusBar::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleStatusBar" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBar::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return m_aAccessibleChildren.size();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleStatusBar::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ {
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = m_pStatusBar->GetItemId( (USHORT)i );
+
+ xChild = new VCLXAccessibleStatusBarItem( m_pStatusBar, nItemId );
+
+ // insert into status bar item list
+ m_aAccessibleChildren[i] = xChild;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleStatusBar::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xChild;
+ if ( m_pStatusBar )
+ {
+ sal_uInt16 nItemId = m_pStatusBar->GetItemId( VCLPoint( rPoint ) );
+ sal_Int32 nItemPos = m_pStatusBar->GetItemPos( nItemId );
+ if ( nItemPos >= 0 && nItemPos < (sal_Int32)m_aAccessibleChildren.size() )
+ xChild = getAccessibleChild( nItemPos );
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
new file mode 100644
index 000000000000..c3badc50bdbf
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessiblestatusbaritem.cxx
@@ -0,0 +1,629 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessiblestatusbaritem.hxx>
+#include <toolkit/helper/externallock.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/characterattributeshelper.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/unohelp2.hxx>
+#include <vcl/status.hxx>
+#include <vcl/controllayout.hxx>
+
+#include <memory>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessibleStatusBarItem
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleStatusBarItem::VCLXAccessibleStatusBarItem( StatusBar* pStatusBar, sal_uInt16 nItemId )
+ :AccessibleTextHelper_BASE( new VCLExternalSolarLock() )
+ ,m_pStatusBar( pStatusBar )
+ ,m_nItemId( nItemId )
+{
+ m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock() );
+
+ m_sItemName = GetItemName();
+ m_sItemText = GetItemText();
+ m_bShowing = IsShowing();
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleStatusBarItem::~VCLXAccessibleStatusBarItem()
+{
+ delete m_pExternalLock;
+ m_pExternalLock = NULL;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleStatusBarItem::IsShowing()
+{
+ sal_Bool bShowing = sal_False;
+
+ if ( m_pStatusBar )
+ bShowing = m_pStatusBar->IsItemVisible( m_nItemId );
+
+ return bShowing;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::SetShowing( sal_Bool bShowing )
+{
+ if ( m_bShowing != bShowing )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bShowing )
+ aOldValue <<= AccessibleStateType::SHOWING;
+ else
+ aNewValue <<= AccessibleStateType::SHOWING;
+ m_bShowing = bShowing;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::SetItemName( const ::rtl::OUString& sItemName )
+{
+ if ( !m_sItemName.equals( sItemName ) )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= m_sItemName;
+ aNewValue <<= sItemName;
+ m_sItemName = sItemName;
+ NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::GetItemName()
+{
+ ::rtl::OUString sName;
+ if ( m_pStatusBar )
+ sName = m_pStatusBar->GetAccessibleName( m_nItemId );
+
+ return sName;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::SetItemText( const ::rtl::OUString& sItemText )
+{
+ Any aOldValue, aNewValue;
+ if ( implInitTextChangedEvent( m_sItemText, sItemText, aOldValue, aNewValue ) )
+ {
+ m_sItemText = sItemText;
+ NotifyAccessibleEvent( AccessibleEventId::TEXT_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::GetItemText()
+{
+ ::rtl::OUString sText;
+ ::vcl::ControlLayoutData aLayoutData;
+ if ( m_pStatusBar )
+ {
+ Rectangle aItemRect = m_pStatusBar->GetItemRect( m_nItemId );
+ m_pStatusBar->RecordLayoutData( &aLayoutData, aItemRect );
+ sText = aLayoutData.m_aDisplayText;
+ }
+
+ return sText;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ if ( IsShowing() )
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleComponent
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleStatusBarItem::implGetBounds() throw (RuntimeException)
+{
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+
+ if ( m_pStatusBar )
+ aBounds = AWTRectangle( m_pStatusBar->GetItemRect( m_nItemId ) );
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::implGetText()
+{
+ return GetItemText();
+}
+
+// -----------------------------------------------------------------------------
+
+lang::Locale VCLXAccessibleStatusBarItem::implGetLocale()
+{
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleStatusBarItem, AccessibleTextHelper_BASE, VCLXAccessibleStatusBarItem_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleStatusBarItem, AccessibleTextHelper_BASE, VCLXAccessibleStatusBarItem_BASE )
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::disposing()
+{
+ AccessibleTextHelper_BASE::disposing();
+
+ m_pStatusBar = NULL;
+ m_sItemName = ::rtl::OUString();
+ m_sItemText = ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleStatusBarItem" );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleStatusBarItem::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleStatusBarItem::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleStatusBarItem" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessible
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleContext > VCLXAccessibleStatusBarItem::getAccessibleContext( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return this;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessible >();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+ if ( m_pStatusBar )
+ xParent = m_pStatusBar->GetAccessible();
+
+ return xParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndexInParent = -1;
+ if ( m_pStatusBar )
+ nIndexInParent = m_pStatusBar->GetItemPos( m_nItemId );
+
+ return nIndexInParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleStatusBarItem::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::LABEL;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::getAccessibleDescription( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pStatusBar )
+ sDescription = m_pStatusBar->GetHelpText( m_nItemId );
+
+ return sDescription;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetItemName();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleRelationSet > VCLXAccessibleStatusBarItem::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleStateSet > VCLXAccessibleStatusBarItem::getAccessibleStateSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Locale VCLXAccessibleStatusBarItem::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleStatusBarItem::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Reference< XAccessible >();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleStatusBarItem::grabFocus( ) throw (RuntimeException)
+{
+ // no focus for status bar items
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getForeground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+Reference< awt::XFont > VCLXAccessibleStatusBarItem::getFont( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ xFont = xParentComp->getFont();
+ }
+
+ return xFont;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::getTitledBorderText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetItemText();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleStatusBarItem::getToolTipText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getCaretPosition() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return -1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleStatusBarItem::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > VCLXAccessibleStatusBarItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Sequence< PropertyValue > aValues;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ if ( m_pStatusBar )
+ {
+ Font aFont = m_pStatusBar->GetFont();
+ sal_Int32 nBackColor = getBackground();
+ sal_Int32 nColor = getForeground();
+ ::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+ aValues = pHelper->GetCharacterAttributes( aRequestedAttributes );
+ }
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleStatusBarItem::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pStatusBar )
+ {
+ ::vcl::ControlLayoutData aLayoutData;
+ Rectangle aItemRect = m_pStatusBar->GetItemRect( m_nItemId );
+ m_pStatusBar->RecordLayoutData( &aLayoutData, aItemRect );
+ Rectangle aCharRect = aLayoutData.GetCharacterBounds( nIndex );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleStatusBarItem::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pStatusBar )
+ {
+ ::vcl::ControlLayoutData aLayoutData;
+ Rectangle aItemRect = m_pStatusBar->GetItemRect( m_nItemId );
+ m_pStatusBar->RecordLayoutData( &aLayoutData, aItemRect );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ nIndex = aLayoutData.GetIndexForPoint( aPnt );
+ }
+
+ return nIndex;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleStatusBarItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleStatusBarItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( m_pStatusBar )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = m_pStatusBar->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+
+ Application::AcquireSolarMutex( nRef );
+
+ bReturn = sal_True;
+ }
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletabcontrol.cxx b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
new file mode 100644
index 000000000000..ac6aca77dda0
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletabcontrol.cxx
@@ -0,0 +1,515 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletabcontrol.hxx>
+#include <accessibility/standard/vclxaccessibletabpage.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+
+#include <vector>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTabControl
+// ----------------------------------------------------
+
+VCLXAccessibleTabControl::VCLXAccessibleTabControl( VCLXWindow* pVCLXWindow )
+ :VCLXAccessibleComponent( pVCLXWindow )
+{
+ m_pTabControl = static_cast< TabControl* >( GetWindow() );
+
+ if ( m_pTabControl )
+ m_aAccessibleChildren.assign( m_pTabControl->GetPageCount(), Reference< XAccessible >() );
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleTabControl::~VCLXAccessibleTabControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::UpdateFocused()
+{
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetFocused( pVCLXAccessibleTabPage->IsFocused() );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::UpdateSelected( sal_Int32 i, bool bSelected )
+{
+ NotifyAccessibleEvent( AccessibleEventId::SELECTION_CHANGED, Any(), Any() );
+
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetSelected( bSelected );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::UpdatePageText( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->SetPageText( pVCLXAccessibleTabPage->GetPageText() );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::UpdateTabPage( sal_Int32 i, bool bNew )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
+ if ( pVCLXAccessibleTabPage )
+ pVCLXAccessibleTabPage->Update( bNew );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::InsertChild( sal_Int32 i )
+{
+ if ( i >= 0 && i <= (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // insert entry in child list
+ m_aAccessibleChildren.insert( m_aAccessibleChildren.begin() + i, Reference< XAccessible >() );
+
+ // send accessible child event
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aNewValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::RemoveChild( sal_Int32 i )
+{
+ if ( i >= 0 && i < (sal_Int32)m_aAccessibleChildren.size() )
+ {
+ // get the accessible of the removed page
+ Reference< XAccessible > xChild( m_aAccessibleChildren[i] );
+
+ // remove entry in child list
+ m_aAccessibleChildren.erase( m_aAccessibleChildren.begin() + i );
+
+ // send accessible child event
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+
+ Reference< XComponent > xComponent( xChild, UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_TABPAGE_ACTIVATE:
+ case VCLEVENT_TABPAGE_DEACTIVATE:
+ {
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabControl->GetPagePos( nPageId );
+ UpdateFocused();
+ UpdateSelected( nPagePos, rVclWindowEvent.GetId() == VCLEVENT_TABPAGE_ACTIVATE );
+ }
+ }
+ break;
+ case VCLEVENT_TABPAGE_PAGETEXTCHANGED:
+ {
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabControl->GetPagePos( nPageId );
+ UpdatePageText( nPagePos );
+ }
+ }
+ break;
+ case VCLEVENT_TABPAGE_INSERTED:
+ {
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ sal_uInt16 nPagePos = m_pTabControl->GetPagePos( nPageId );
+ InsertChild( nPagePos );
+ }
+ }
+ break;
+ case VCLEVENT_TABPAGE_REMOVED:
+ {
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = (sal_uInt16)(sal_IntPtr) rVclWindowEvent.GetData();
+ for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ {
+ Reference< XAccessible > xChild( getAccessibleChild( i ) );
+ if ( xChild.is() )
+ {
+ VCLXAccessibleTabPage* pVCLXAccessibleTabPage = static_cast< VCLXAccessibleTabPage* >( xChild.get() );
+ if ( pVCLXAccessibleTabPage && pVCLXAccessibleTabPage->GetPageId() == nPageId )
+ {
+ RemoveChild( i );
+ break;
+ }
+ }
+ }
+ }
+ }
+ break;
+ case VCLEVENT_TABPAGE_REMOVEDALL:
+ {
+ for ( sal_Int32 i = m_aAccessibleChildren.size() - 1; i >= 0; --i )
+ RemoveChild( i );
+ }
+ break;
+ case VCLEVENT_WINDOW_GETFOCUS:
+ case VCLEVENT_WINDOW_LOSEFOCUS:
+ {
+ UpdateFocused();
+ }
+ break;
+ case VCLEVENT_OBJECT_DYING:
+ {
+ if ( m_pTabControl )
+ {
+ m_pTabControl = NULL;
+
+ // dispose all tab pages
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_SHOW:
+ case VCLEVENT_WINDOW_HIDE:
+ {
+ if ( m_pTabControl )
+ {
+ Window* pChild = static_cast< Window* >( rVclWindowEvent.GetData() );
+ if ( pChild && pChild->GetType() == WINDOW_TABPAGE )
+ {
+ for ( sal_Int32 i = 0, nCount = m_pTabControl->GetPageCount(); i < nCount; ++i )
+ {
+ sal_uInt16 nPageId = m_pTabControl->GetPageId( (USHORT)i );
+ TabPage* pTabPage = m_pTabControl->GetTabPage( nPageId );
+ if ( pTabPage == (TabPage*) pChild )
+ UpdateTabPage( i, rVclWindowEvent.GetId() == VCLEVENT_WINDOW_SHOW );
+ }
+ }
+ }
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowChildEvent( rVclWindowEvent );
+ }
+}
+
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+
+ if ( m_pTabControl )
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTabControl, VCLXAccessibleComponent, VCLXAccessibleTabControl_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTabControl, VCLXAccessibleComponent, VCLXAccessibleTabControl_BASE )
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::disposing()
+{
+ VCLXAccessibleComponent::disposing();
+
+ if ( m_pTabControl )
+ {
+ m_pTabControl = NULL;
+
+ // dispose all tab pages
+ for ( sal_uInt32 i = 0; i < m_aAccessibleChildren.size(); ++i )
+ {
+ Reference< XComponent > xComponent( m_aAccessibleChildren[i], UNO_QUERY );
+ if ( xComponent.is() )
+ xComponent->dispose();
+ }
+ m_aAccessibleChildren.clear();
+ }
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabControl::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleTabControl" );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleTabControl::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabControl" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabControl::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return m_aAccessibleChildren.size();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabControl::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild = m_aAccessibleChildren[i];
+ if ( !xChild.is() )
+ {
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = m_pTabControl->GetPageId( (USHORT)i );
+
+ xChild = new VCLXAccessibleTabPage( m_pTabControl, nPageId );
+
+ // insert into tab page list
+ m_aAccessibleChildren[i] = xChild;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleTabControl::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::PAGE_TAB_LIST;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabControl::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ if ( m_pTabControl )
+ m_pTabControl->SelectTabPage( m_pTabControl->GetPageId( (USHORT)nChildIndex ) );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTabControl::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ sal_Bool bSelected = sal_False;
+ if ( m_pTabControl && m_pTabControl->GetCurPageId() == m_pTabControl->GetPageId( (USHORT)nChildIndex ) )
+ bSelected = sal_True;
+
+ return bSelected;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ // This method makes no sense in a tab control, and so does nothing.
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ selectAccessibleChild( 0 );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabControl::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 1;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabControl::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+
+ for ( sal_Int32 i = 0, j = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
+ {
+ if ( isAccessibleChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
+ {
+ xChild = getAccessibleChild( i );
+ break;
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabControl::deselectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ // This method makes no sense in a tab control, and so does nothing.
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletabpage.cxx b/accessibility/source/standard/vclxaccessibletabpage.cxx
new file mode 100644
index 000000000000..6b871fced829
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletabpage.cxx
@@ -0,0 +1,702 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletabpage.hxx>
+#include <toolkit/helper/externallock.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/characterattributeshelper.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/unohelp2.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+
+#include <memory>
+
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+
+// -----------------------------------------------------------------------------
+// class VCLXAccessibleTabPage
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleTabPage::VCLXAccessibleTabPage( TabControl* pTabControl, sal_uInt16 nPageId )
+ :AccessibleTextHelper_BASE( new VCLExternalSolarLock() )
+ ,m_pTabControl( pTabControl )
+ ,m_nPageId( nPageId )
+{
+ m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock() );
+ m_bFocused = IsFocused();
+ m_bSelected = IsSelected();
+ m_sPageText = GetPageText();
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleTabPage::~VCLXAccessibleTabPage()
+{
+ delete m_pExternalLock;
+ m_pExternalLock = NULL;
+}
+
+// -----------------------------------------------------------------------------
+
+bool VCLXAccessibleTabPage::IsFocused()
+{
+ bool bFocused = false;
+
+ if ( m_pTabControl && m_pTabControl->HasFocus() && m_pTabControl->GetCurPageId() == m_nPageId )
+ bFocused = true;
+
+ return bFocused;
+}
+
+// -----------------------------------------------------------------------------
+
+bool VCLXAccessibleTabPage::IsSelected()
+{
+ bool bSelected = false;
+
+ if ( m_pTabControl && m_pTabControl->GetCurPageId() == m_nPageId )
+ bSelected = true;
+
+ return bSelected;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::SetFocused( bool bFocused )
+{
+ if ( m_bFocused != bFocused )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bFocused )
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ else
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ m_bFocused = bFocused;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::SetSelected( bool bSelected )
+{
+ if ( m_bSelected != bSelected )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bSelected )
+ aOldValue <<= AccessibleStateType::SELECTED;
+ else
+ aNewValue <<= AccessibleStateType::SELECTED;
+ m_bSelected = bSelected;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::SetPageText( const ::rtl::OUString& sPageText )
+{
+ Any aOldValue, aNewValue;
+ if ( OCommonAccessibleText::implInitTextChangedEvent( m_sPageText, sPageText, aOldValue, aNewValue ) )
+ {
+ Any aOldName, aNewName;
+ aOldName <<= m_sPageText;
+ aNewName <<= sPageText;
+ m_sPageText = sPageText;
+ NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldName, aNewName );
+ NotifyAccessibleEvent( AccessibleEventId::TEXT_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::GetPageText()
+{
+ ::rtl::OUString sText;
+ if ( m_pTabControl )
+ sText = OutputDevice::GetNonMnemonicString( m_pTabControl->GetPageText( m_nPageId ) );
+
+ return sText;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::Update( bool bNew )
+{
+ if ( m_pTabControl )
+ {
+ TabPage* pTabPage = m_pTabControl->GetTabPage( m_nPageId );
+ if ( pTabPage )
+ {
+ Reference< XAccessible > xChild( pTabPage->GetAccessible( bNew ) );
+ if ( xChild.is() )
+ {
+ Any aOldValue, aNewValue;
+ if ( bNew )
+ aNewValue <<= xChild;
+ else
+ aOldValue <<= xChild;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOldValue, aNewValue );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ rStateSet.AddState( AccessibleStateType::ENABLED );
+ rStateSet.AddState( AccessibleStateType::SENSITIVE );
+
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+
+ if ( IsFocused() )
+ rStateSet.AddState( AccessibleStateType::FOCUSED );
+
+ rStateSet.AddState( AccessibleStateType::VISIBLE );
+
+ rStateSet.AddState( AccessibleStateType::SHOWING );
+
+ rStateSet.AddState( AccessibleStateType::SELECTABLE );
+
+ if ( IsSelected() )
+ rStateSet.AddState( AccessibleStateType::SELECTED );
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleComponent
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleTabPage::implGetBounds() throw (RuntimeException)
+{
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+
+ if ( m_pTabControl )
+ aBounds = AWTRectangle( m_pTabControl->GetTabBounds( m_nPageId ) );
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::implGetText()
+{
+ return GetPageText();
+}
+
+// -----------------------------------------------------------------------------
+
+lang::Locale VCLXAccessibleTabPage::implGetLocale()
+{
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTabPage, AccessibleTextHelper_BASE, VCLXAccessibleTabPage_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTabPage, AccessibleTextHelper_BASE, VCLXAccessibleTabPage_BASE )
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::disposing()
+{
+ AccessibleTextHelper_BASE::disposing();
+
+ m_pTabControl = NULL;
+ m_sPageText = ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleTabPage" );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTabPage::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< ::rtl::OUString > VCLXAccessibleTabPage::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(1);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.awt.AccessibleTabPage" );
+ return aNames;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessible
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleContext > VCLXAccessibleTabPage::getAccessibleContext( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return this;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getAccessibleChildCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nCount = 0;
+ if ( m_pTabControl )
+ {
+ TabPage* pTabPage = m_pTabControl->GetTabPage( m_nPageId );
+ if ( pTabPage && pTabPage->IsVisible() )
+ nCount = 1;
+ }
+
+ return nCount;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ Reference< XAccessible > xChild;
+ if ( m_pTabControl )
+ {
+ TabPage* pTabPage = m_pTabControl->GetTabPage( m_nPageId );
+ if ( pTabPage && pTabPage->IsVisible() )
+ xChild = pTabPage->GetAccessible();
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+ if ( m_pTabControl )
+ xParent = m_pTabControl->GetAccessible();
+
+ return xParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndexInParent = -1;
+ if ( m_pTabControl )
+ nIndexInParent = m_pTabControl->GetPagePos( m_nPageId );
+
+ return nIndexInParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int16 VCLXAccessibleTabPage::getAccessibleRole( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return AccessibleRole::PAGE_TAB;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::getAccessibleDescription( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pTabControl )
+ sDescription = m_pTabControl->GetHelpText( m_nPageId );
+
+ return sDescription;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return GetPageText();
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleRelationSet > VCLXAccessibleTabPage::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Reference< XAccessibleStateSet > VCLXAccessibleTabPage::getAccessibleStateSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xSet = pStateSetHelper;
+
+ if ( !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ FillAccessibleStateSet( *pStateSetHelper );
+ }
+ else
+ {
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+ }
+
+ return xSet;
+}
+
+// -----------------------------------------------------------------------------
+
+Locale VCLXAccessibleTabPage::getLocale( ) throw (IllegalAccessibleComponentStateException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabPage::getAccessibleAtPoint( const awt::Point& rPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xChild;
+ for ( sal_uInt32 i = 0, nCount = getAccessibleChildCount(); i < nCount; ++i )
+ {
+ Reference< XAccessible > xAcc = getAccessibleChild( i );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleComponent > xComp( xAcc->getAccessibleContext(), UNO_QUERY );
+ if ( xComp.is() )
+ {
+ Rectangle aRect = VCLRectangle( xComp->getBounds() );
+ Point aPos = VCLPoint( rPoint );
+ if ( aRect.IsInside( aPos ) )
+ {
+ xChild = xAcc;
+ break;
+ }
+ }
+ }
+ }
+
+ return xChild;
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPage::grabFocus( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( m_pTabControl )
+ {
+ m_pTabControl->SelectTabPage( m_nPageId );
+ m_pTabControl->GrabFocus();
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getForeground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getForeground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ nColor = xParentComp->getBackground();
+ }
+
+ return nColor;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+
+Reference< awt::XFont > VCLXAccessibleTabPage::getFont( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< awt::XFont > xFont;
+ Reference< XAccessible > xParent = getAccessibleParent();
+ if ( xParent.is() )
+ {
+ Reference< XAccessibleExtendedComponent > xParentComp( xParent->getAccessibleContext(), UNO_QUERY );
+ if ( xParentComp.is() )
+ xFont = xParentComp->getFont();
+ }
+
+ return xFont;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::getTitledBorderText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTabPage::getToolTipText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getCaretPosition() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return -1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTabPage::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > VCLXAccessibleTabPage::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Sequence< PropertyValue > aValues;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ if ( m_pTabControl )
+ {
+ Font aFont = m_pTabControl->GetFont();
+ sal_Int32 nBackColor = getBackground();
+ sal_Int32 nColor = getForeground();
+ ::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+ aValues = pHelper->GetCharacterAttributes( aRequestedAttributes );
+ }
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleTabPage::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pTabControl )
+ {
+ Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
+ Rectangle aCharRect = m_pTabControl->GetCharacterBounds( m_nPageId, nIndex );
+ aCharRect.Move( -aPageRect.Left(), -aPageRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPage::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pTabControl )
+ {
+ sal_uInt16 nPageId = 0;
+ Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aPageRect.TopLeft();
+ sal_Int32 nI = m_pTabControl->GetIndexForPoint( aPnt, nPageId );
+ if ( nI != -1 && m_nPageId == nPageId )
+ nIndex = nI;
+ }
+
+ return nIndex;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTabPage::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTabPage::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( m_pTabControl )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = m_pTabControl->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+
+ Application::AcquireSolarMutex( nRef );
+
+ bReturn = sal_True;
+ }
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletabpagewindow.cxx b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
new file mode 100644
index 000000000000..93fc1b3da2ff
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletabpagewindow.cxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletabpagewindow.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTabPageWindow
+// ----------------------------------------------------
+
+VCLXAccessibleTabPageWindow::VCLXAccessibleTabPageWindow( VCLXWindow* pVCLXWindow )
+ :VCLXAccessibleComponent( pVCLXWindow )
+{
+ m_pTabPage = static_cast< TabPage* >( GetWindow() );
+ if ( m_pTabPage )
+ {
+ Window* pParent = m_pTabPage->GetAccessibleParentWindow();
+ if ( pParent && pParent->GetType() == WINDOW_TABCONTROL )
+ {
+ m_pTabControl = static_cast< TabControl* >( pParent );
+ if ( m_pTabControl )
+ {
+ for ( sal_uInt16 i = 0, nCount = m_pTabControl->GetPageCount(); i < nCount; ++i )
+ {
+ sal_uInt16 nPageId = m_pTabControl->GetPageId( i );
+ if ( m_pTabControl->GetTabPage( nPageId ) == m_pTabPage )
+ m_nPageId = nPageId;
+ }
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleTabPageWindow::~VCLXAccessibleTabPageWindow()
+{
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleComponent
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleTabPageWindow::implGetBounds() throw (RuntimeException)
+{
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+
+ if ( m_pTabControl )
+ {
+ Rectangle aPageRect = m_pTabControl->GetTabBounds( m_nPageId );
+ if ( m_pTabPage )
+ {
+ Rectangle aRect = Rectangle( m_pTabPage->GetPosPixel(), m_pTabPage->GetSizePixel() );
+ aRect.Move( -aPageRect.Left(), -aPageRect.Top() );
+ aBounds = AWTRectangle( aRect );
+ }
+ }
+
+ return aBounds;
+}
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTabPageWindow::disposing()
+{
+ VCLXAccessibleComponent::disposing();
+
+ m_pTabControl = NULL;
+ m_pTabPage = NULL;
+}
+
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+
+Reference< XAccessible > VCLXAccessibleTabPageWindow::getAccessibleParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xParent;
+ if ( m_pTabControl )
+ {
+ Reference< XAccessible > xAcc( m_pTabControl->GetAccessible() );
+ if ( xAcc.is() )
+ {
+ Reference< XAccessibleContext > xCont( xAcc->getAccessibleContext() );
+ if ( xCont.is() )
+ xParent = xCont->getAccessibleChild( m_pTabControl->GetPagePos( m_nPageId ) );
+ }
+ }
+
+ return xParent;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTabPageWindow::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return 0;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletextcomponent.cxx b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
new file mode 100644
index 000000000000..c6bbaddf6426
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletextcomponent.cxx
@@ -0,0 +1,362 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletextcomponent.hxx>
+#include <toolkit/helper/macros.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/characterattributeshelper.hxx>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+#include <vcl/window.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/unohelp2.hxx>
+#include <vcl/ctrl.hxx>
+
+#include <memory>
+#include <vector>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+using namespace ::comphelper;
+
+
+// ----------------------------------------------------
+// class VCLXAccessibleTextComponent
+// ----------------------------------------------------
+
+VCLXAccessibleTextComponent::VCLXAccessibleTextComponent( VCLXWindow* pVCLXWindow )
+ :VCLXAccessibleComponent( pVCLXWindow )
+{
+ if ( GetWindow() )
+ m_sText = OutputDevice::GetNonMnemonicString( GetWindow()->GetText() );
+}
+
+// -----------------------------------------------------------------------------
+
+VCLXAccessibleTextComponent::~VCLXAccessibleTextComponent()
+{
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTextComponent::SetText( const ::rtl::OUString& sText )
+{
+ Any aOldValue, aNewValue;
+ if ( implInitTextChangedEvent( m_sText, sText, aOldValue, aNewValue ) )
+ {
+ m_sText = sText;
+ NotifyAccessibleEvent( AccessibleEventId::TEXT_CHANGED, aOldValue, aNewValue );
+ }
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTextComponent::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_FRAMETITLECHANGED:
+ {
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ SetText( implGetText() );
+ }
+ break;
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+
+// -----------------------------------------------------------------------------
+// OCommonAccessibleText
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTextComponent::implGetText()
+{
+ ::rtl::OUString aText;
+ if ( GetWindow() )
+ aText = OutputDevice::GetNonMnemonicString( GetWindow()->GetText() );
+
+ return aText;
+}
+
+// -----------------------------------------------------------------------------
+
+lang::Locale VCLXAccessibleTextComponent::implGetLocale()
+{
+ return Application::GetSettings().GetLocale();
+}
+
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTextComponent::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleTextComponent::disposing()
+{
+ VCLXAccessibleComponent::disposing();
+
+ m_sText = ::rtl::OUString();
+}
+
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleTextComponent, VCLXAccessibleComponent, VCLXAccessibleTextComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleTextComponent, VCLXAccessibleComponent, VCLXAccessibleTextComponent_BASE )
+
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTextComponent::getCaretPosition() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return -1;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTextComponent::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return setSelection( nIndex, nIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Unicode VCLXAccessibleTextComponent::getCharacter( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getCharacter( nIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+Sequence< PropertyValue > VCLXAccessibleTextComponent::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& aRequestedAttributes ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Sequence< PropertyValue > aValues;
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ if ( GetWindow() )
+ {
+ Font aFont = GetWindow()->GetControlFont();
+ sal_Int32 nBackColor = GetWindow()->GetControlBackground().GetColor();
+ sal_Int32 nColor = GetWindow()->GetControlForeground().GetColor();
+ ::std::auto_ptr< CharacterAttributesHelper > pHelper( new CharacterAttributesHelper( aFont, nBackColor, nColor ) );
+ aValues = pHelper->GetCharacterAttributes( aRequestedAttributes );
+ }
+
+ return aValues;
+}
+
+// -----------------------------------------------------------------------------
+
+awt::Rectangle VCLXAccessibleTextComponent::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidIndex( nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aRect;
+ Control* pControl = static_cast< Control* >( GetWindow() );
+ if ( pControl )
+ aRect = AWTRectangle( pControl->GetCharacterBounds( nIndex ) );
+
+ return aRect;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTextComponent::getCharacterCount() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getCharacterCount();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTextComponent::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndex = -1;
+ Control* pControl = static_cast< Control* >( GetWindow() );
+ if ( pControl )
+ nIndex = pControl->GetIndexForPoint( VCLPoint( aPoint ) );
+
+ return nIndex;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTextComponent::getSelectedText() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectedText();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTextComponent::getSelectionStart() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectionStart();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int32 VCLXAccessibleTextComponent::getSelectionEnd() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getSelectionEnd();
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTextComponent::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTextComponent::getText() throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getText();
+}
+
+// -----------------------------------------------------------------------------
+
+::rtl::OUString VCLXAccessibleTextComponent::getTextRange( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextRange( nStartIndex, nEndIndex );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleTextComponent::getTextAtIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextAtIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleTextComponent::getTextBeforeIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextBeforeIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+::com::sun::star::accessibility::TextSegment VCLXAccessibleTextComponent::getTextBehindIndex( sal_Int32 nIndex, sal_Int16 aTextType ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ return OCommonAccessibleText::getTextBehindIndex( nIndex, aTextType );
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Bool VCLXAccessibleTextComponent::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( GetWindow() )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = GetWindow()->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+
+ Application::AcquireSolarMutex( nRef );
+
+ bReturn = sal_True;
+ }
+ }
+
+ return bReturn;
+}
+
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletextfield.cxx b/accessibility/source/standard/vclxaccessibletextfield.cxx
new file mode 100644
index 000000000000..e77d203d443a
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletextfield.cxx
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletextfield.hxx>
+#include <vcl/lstbox.hxx>
+#include <accessibility/helper/listboxhelper.hxx>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <vcl/svapp.hxx>
+#include <vcl/combobox.hxx>
+
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::accessibility;
+
+
+
+
+VCLXAccessibleTextField::VCLXAccessibleTextField (VCLXWindow* pVCLWindow, const Reference< XAccessible >& _xParent) :
+
+ VCLXAccessibleTextComponent (pVCLWindow),
+
+ m_xParent( _xParent )
+
+{
+}
+
+
+
+
+VCLXAccessibleTextField::~VCLXAccessibleTextField (void)
+{
+}
+
+
+
+
+::rtl::OUString VCLXAccessibleTextField::implGetText (void)
+{
+ ::rtl::OUString aText;
+ ListBox* pListBox = static_cast<ListBox*>(GetWindow());
+ if (pListBox!=NULL && !pListBox->IsInDropDown())
+ aText = pListBox->GetSelectEntry();
+
+ return aText;
+}
+
+
+
+
+IMPLEMENT_FORWARD_XINTERFACE2(VCLXAccessibleTextField, VCLXAccessibleTextComponent, VCLXAccessible_BASE)
+IMPLEMENT_FORWARD_XTYPEPROVIDER2(VCLXAccessibleTextField, VCLXAccessibleTextComponent, VCLXAccessible_BASE)
+
+
+//===== XAccessible =========================================================
+
+Reference<XAccessibleContext> SAL_CALL
+ VCLXAccessibleTextField::getAccessibleContext (void)
+ throw (RuntimeException)
+{
+ return this;
+}
+
+
+//===== XAccessibleContext ==================================================
+
+sal_Int32 SAL_CALL VCLXAccessibleTextField::getAccessibleChildCount (void)
+ throw (RuntimeException)
+{
+ return 0;
+}
+
+
+
+
+Reference<XAccessible> SAL_CALL VCLXAccessibleTextField::getAccessibleChild (sal_Int32)
+ throw (IndexOutOfBoundsException, RuntimeException)
+{
+ throw IndexOutOfBoundsException();
+}
+
+
+
+
+sal_Int16 SAL_CALL VCLXAccessibleTextField::getAccessibleRole (void)
+ throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ return AccessibleRole::TEXT;
+}
+
+Reference< XAccessible > SAL_CALL VCLXAccessibleTextField::getAccessibleParent( )
+ throw (RuntimeException)
+{
+ ::osl::Guard< ::osl::Mutex > aGuard( GetMutex() );
+
+ return m_xParent;
+}
+
+
+
+//===== XServiceInfo ==========================================================
+
+::rtl::OUString VCLXAccessibleTextField::getImplementationName (void)
+ throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii ("com.sun.star.comp.toolkit.AccessibleTextField");
+}
+
+
+
+
+Sequence< ::rtl::OUString > VCLXAccessibleTextField::getSupportedServiceNames (void)
+ throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleTextComponent::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii(
+ "com.sun.star.accessibility.AccessibleTextField");
+ return aNames;
+}
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx
new file mode 100644
index 000000000000..52b7a7f83cab
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx
@@ -0,0 +1,855 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+
+// includes --------------------------------------------------------------
+#include <accessibility/standard/vclxaccessibletoolbox.hxx>
+#include <accessibility/standard/vclxaccessibletoolboxitem.hxx>
+#include <toolkit/helper/convert.hxx>
+
+#include <unotools/accessiblestatesethelper.hxx>
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <tools/debug.hxx>
+#include <vcl/toolbox.hxx>
+#include <comphelper/accessiblewrapper.hxx>
+#include <comphelper/processfactory.hxx>
+
+using namespace ::comphelper;
+using namespace ::com::sun::star;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::accessibility;
+
+namespace
+{
+ // =========================================================================
+ // = OToolBoxWindowItemContext
+ // =========================================================================
+ /** XAccessibleContext implementation for a toolbox item which is represented by a VCL Window
+ */
+ class OToolBoxWindowItemContext : public OAccessibleContextWrapper
+ {
+ sal_Int32 m_nIndexInParent;
+ public:
+ OToolBoxWindowItemContext(sal_Int32 _nIndexInParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >& _rxInnerAccessibleContext,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxOwningAccessible,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParentAccessible
+ ) : OAccessibleContextWrapper(
+ _rxORB,
+ _rxInnerAccessibleContext,
+ _rxOwningAccessible,
+ _rxParentAccessible )
+ ,m_nIndexInParent(_nIndexInParent)
+ {
+ }
+ virtual sal_Int32 SAL_CALL getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException);
+ };
+
+ // -------------------------------------------------------------------------
+ sal_Int32 SAL_CALL OToolBoxWindowItemContext::getAccessibleIndexInParent( ) throw (::com::sun::star::uno::RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ return m_nIndexInParent;
+ }
+
+ // =========================================================================
+ // = OToolBoxWindowItem
+ // =========================================================================
+ typedef ::cppu::ImplHelper1 < XUnoTunnel
+ > OToolBoxWindowItem_Base;
+
+ /** XAccessible implementation for a toolbox item which is represented by a VCL Window
+ */
+ class OToolBoxWindowItem
+ :public OAccessibleWrapper
+ ,public OToolBoxWindowItem_Base
+ {
+ private:
+ sal_Int32 m_nIndexInParent;
+
+ public:
+ inline sal_Int32 getIndexInParent() const { return m_nIndexInParent; }
+ inline void setIndexInParent( sal_Int32 _nNewIndex ) { m_nIndexInParent = _nNewIndex; }
+
+ static sal_Bool isWindowItem( const Reference< XAccessible >& _rxAcc, OToolBoxWindowItem** /* [out] */ _ppImplementation = NULL );
+
+ public:
+ OToolBoxWindowItem(sal_Int32 _nIndexInParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxInnerAccessible,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible >& _rxParentAccessible
+ ) : OAccessibleWrapper(
+ _rxORB,
+ _rxInnerAccessible,
+ _rxParentAccessible)
+ ,m_nIndexInParent(_nIndexInParent)
+ {
+ }
+
+ protected:
+ // XInterface
+ DECLARE_XINTERFACE( )
+ DECLARE_XTYPEPROVIDER( )
+
+ // OAccessibleWrapper
+ virtual OAccessibleContextWrapper* createAccessibleContext(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessibleContext >& _rxInnerContext
+ );
+
+ // XUnoTunnel
+ virtual sal_Int64 SAL_CALL getSomething( const Sequence< sal_Int8 >& aIdentifier ) throw (RuntimeException);
+ static Sequence< sal_Int8 > getUnoTunnelImplementationId();
+ };
+
+ // -------------------------------------------------------------------------
+ IMPLEMENT_FORWARD_XINTERFACE2( OToolBoxWindowItem, OAccessibleWrapper, OToolBoxWindowItem_Base )
+ IMPLEMENT_FORWARD_XTYPEPROVIDER2( OToolBoxWindowItem, OAccessibleWrapper, OToolBoxWindowItem_Base )
+
+ // -------------------------------------------------------------------------
+ OAccessibleContextWrapper* OToolBoxWindowItem::createAccessibleContext(
+ const Reference< XAccessibleContext >& _rxInnerContext )
+ {
+ return new OToolBoxWindowItemContext( m_nIndexInParent,getORB(), _rxInnerContext, this, getParent() );
+ }
+
+ //--------------------------------------------------------------------
+ sal_Bool OToolBoxWindowItem::isWindowItem( const Reference< XAccessible >& _rxAcc, OToolBoxWindowItem** /* [out] */ _ppImplementation )
+ {
+ OToolBoxWindowItem* pImplementation = NULL;
+
+ Reference< XUnoTunnel > xTunnel( _rxAcc, UNO_QUERY );
+ if ( xTunnel.is() )
+ pImplementation = reinterpret_cast< OToolBoxWindowItem* >( xTunnel->getSomething( getUnoTunnelImplementationId() ) );
+
+ if ( _ppImplementation )
+ *_ppImplementation = pImplementation;
+
+ return NULL != pImplementation;
+ }
+
+ //--------------------------------------------------------------------
+ Sequence< sal_Int8 > OToolBoxWindowItem::getUnoTunnelImplementationId()
+ {
+ static ::cppu::OImplementationId * pId = 0;
+ if (! pId)
+ {
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+ if (! pId)
+ {
+ static ::cppu::OImplementationId aId;
+ pId = &aId;
+ }
+ }
+ return pId->getImplementationId();
+ }
+
+ //--------------------------------------------------------------------
+ sal_Int64 SAL_CALL OToolBoxWindowItem::getSomething( const Sequence< sal_Int8 >& _rId ) throw (RuntimeException)
+ {
+ if ( ( 16 == _rId.getLength() )
+ && ( 0 == rtl_compareMemory( getUnoTunnelImplementationId().getConstArray(), _rId.getConstArray(), 16 ) )
+ )
+ return reinterpret_cast< sal_Int64>( this );
+
+ return 0;
+ }
+}
+
+DBG_NAME(VCLXAccessibleToolBox)
+
+// -----------------------------------------------------------------------------
+// VCLXAccessibleToolBox
+// -----------------------------------------------------------------------------
+VCLXAccessibleToolBox::VCLXAccessibleToolBox( VCLXWindow* pVCLXWindow ) :
+
+ VCLXAccessibleComponent( pVCLXWindow )
+
+{
+ DBG_CTOR(VCLXAccessibleToolBox,NULL);
+}
+// -----------------------------------------------------------------------------
+VCLXAccessibleToolBox::~VCLXAccessibleToolBox()
+{
+ DBG_DTOR(VCLXAccessibleToolBox,NULL);
+}
+// -----------------------------------------------------------------------------
+VCLXAccessibleToolBoxItem* VCLXAccessibleToolBox::GetItem_Impl( sal_Int32 _nPos, bool _bMustHaveFocus )
+{
+ VCLXAccessibleToolBoxItem* pItem = NULL;
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox && ( !_bMustHaveFocus || pToolBox->HasFocus() ) )
+ {
+ ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find( _nPos );
+ // returns only toolbox buttons, not windows
+ if ( aIter != m_aAccessibleChildren.end() && !aIter->second.is())
+ pItem = static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ }
+
+ return pItem;
+}
+// -----------------------------------------------------------------------------
+
+void VCLXAccessibleToolBox::UpdateFocus_Impl()
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if( !pToolBox )
+ return;
+
+ // submit events only if toolbox has the focus to avoid sending events due to mouse move
+ BOOL bHasFocus = FALSE;
+ if ( pToolBox->HasFocus() )
+ bHasFocus = TRUE;
+ else
+ {
+ // check for subtoolbar, i.e. check if our parent is a toolbar
+ ToolBox* pToolBoxParent = dynamic_cast< ToolBox* >( pToolBox->GetParent() );
+ // subtoolbars never get the focus as key input is just forwarded, so check if the parent toolbar has it
+ if ( pToolBoxParent && pToolBoxParent->HasFocus() )
+ bHasFocus = TRUE;
+ }
+
+ if ( bHasFocus )
+ {
+ USHORT nHighlightItemId = pToolBox->GetHighlightItemId();
+ USHORT nFocusCount = 0;
+ for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter )
+ {
+ USHORT nItemId = pToolBox->GetItemId( (USHORT)aIter->first );
+
+ if ( aIter->second.is() )
+ {
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ if ( pItem->HasFocus() && nItemId != nHighlightItemId )
+ {
+ // reset the old focused item
+ pItem->SetFocus( sal_False );
+ nFocusCount++;
+ }
+ if ( nItemId == nHighlightItemId )
+ {
+ // set the new focused item
+ pItem->SetFocus( sal_True );
+ nFocusCount++;
+ }
+ }
+ // both items changed?
+ if ( nFocusCount > 1 )
+ break;
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::ReleaseFocus_Impl( sal_Int32 _nPos )
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox ) // #107124#, do not check for focus because this message is also handled in losefocus
+ {
+ ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find( _nPos );
+ if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() )
+ {
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ if ( pItem->HasFocus() )
+ pItem->SetFocus( sal_False );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateChecked_Impl( sal_Int32 )
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter )
+ {
+ USHORT nItemId = pToolBox->GetItemId( (USHORT)aIter->first );
+
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ pItem->SetChecked( pToolBox->IsItemChecked( nItemId ) );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateIndeterminate_Impl( sal_Int32 _nPos )
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ USHORT nItemId = pToolBox->GetItemId( (USHORT)_nPos );
+
+ ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find( _nPos );
+ if ( aIter != m_aAccessibleChildren.end() && aIter->second.is() )
+ {
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( aIter->second.get() );
+ if ( pItem )
+ pItem->SetIndeterminate( pToolBox->GetItemState( nItemId ) == STATE_DONTKNOW );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::implReleaseToolboxItem( ToolBoxItemsMap::iterator& _rMapPos,
+ bool _bNotifyRemoval, bool _bDispose )
+{
+ Reference< XAccessible > xItemAcc( _rMapPos->second );
+ if ( !xItemAcc.is() )
+ return;
+
+ if ( _bNotifyRemoval )
+ {
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, makeAny( xItemAcc ), Any() );
+ }
+
+ OToolBoxWindowItem* pWindowItem = NULL;
+ if ( !OToolBoxWindowItem::isWindowItem( xItemAcc, &pWindowItem ) )
+ {
+ static_cast< VCLXAccessibleToolBoxItem* >( xItemAcc.get() )->ReleaseToolBox();
+ if ( _bDispose )
+ ::comphelper::disposeComponent( xItemAcc );
+ }
+ else
+ {
+ if ( _bDispose )
+ {
+ if ( pWindowItem )
+ {
+ Reference< XAccessibleContext > xContext( pWindowItem->getContextNoCreate() );
+ ::comphelper::disposeComponent( xContext );
+ }
+ }
+ }
+}
+
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateItem_Impl( sal_Int32 _nPos, sal_Bool _bItemAdded )
+{
+ if ( _nPos < sal_Int32( m_aAccessibleChildren.size() ) )
+ {
+ UpdateAllItems_Impl();
+ return;
+ }
+
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ if ( !_bItemAdded )
+ { // the item was removed
+ // -> destroy the old item
+ ToolBoxItemsMap::iterator aItemPos = m_aAccessibleChildren.find( _nPos );
+ if ( m_aAccessibleChildren.end() != aItemPos )
+ {
+ implReleaseToolboxItem( aItemPos, true, true );
+ m_aAccessibleChildren.erase( aItemPos );
+ }
+ }
+
+ // adjust the "index-in-parent"s
+ ToolBoxItemsMap::iterator aIndexAdjust = m_aAccessibleChildren.upper_bound( _nPos );
+ while ( m_aAccessibleChildren.end() != aIndexAdjust )
+ {
+ Reference< XAccessible > xItemAcc( aIndexAdjust->second );
+
+ OToolBoxWindowItem* pWindowItem = NULL;
+ if ( !OToolBoxWindowItem::isWindowItem( xItemAcc, &pWindowItem ) )
+ {
+ VCLXAccessibleToolBoxItem* pItem = static_cast< VCLXAccessibleToolBoxItem* >( xItemAcc.get() );
+ if ( pItem )
+ {
+ sal_Int32 nIndex = pItem->getIndexInParent( );
+ nIndex += _bItemAdded ? +1 : -1;
+ pItem->setIndexInParent( nIndex );
+ }
+ }
+ else
+ {
+ if ( pWindowItem )
+ {
+ sal_Int32 nIndex = pWindowItem->getIndexInParent( );
+ nIndex += _bItemAdded ? +1 : -1;
+ pWindowItem->setIndexInParent( nIndex );
+ }
+ }
+
+ ++aIndexAdjust;
+ }
+
+ if ( _bItemAdded )
+ {
+ // TODO: we should make this dependent on the existence of event listeners
+ // with the current implementation, we always create accessible object
+ Any aNewChild = makeAny( getAccessibleChild( (sal_Int32)_nPos ) );
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewChild );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateAllItems_Impl()
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ // deregister the old items
+ for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter )
+ {
+ implReleaseToolboxItem( aIter, true, true );
+ }
+ m_aAccessibleChildren.clear();
+
+ // register the new items
+ USHORT i, nCount = pToolBox->GetItemCount();
+ for ( i = 0; i < nCount; ++i )
+ {
+ Any aNewValue;
+ aNewValue <<= getAccessibleChild( (sal_Int32)i );;
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewValue );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateItemName_Impl( sal_Int32 _nPos )
+{
+ VCLXAccessibleToolBoxItem* pItem = GetItem_Impl( _nPos, false );
+ if ( pItem )
+ pItem->NameChanged();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::UpdateItemEnabled_Impl( sal_Int32 _nPos )
+{
+ VCLXAccessibleToolBoxItem* pItem = GetItem_Impl( _nPos, false );
+ if ( pItem )
+ pItem->ToggleEnableState();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::HandleSubToolBarEvent( const VclWindowEvent& rVclWindowEvent, bool _bShow )
+{
+ Window* pChildWindow = (Window *) rVclWindowEvent.GetData();
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pChildWindow
+ && pToolBox
+ && pToolBox == pChildWindow->GetParent()
+ && pChildWindow->GetType() == WINDOW_TOOLBOX )
+ {
+ sal_Int32 nIndex = pToolBox->GetItemPos( pToolBox->GetCurItemId() );
+ Reference< XAccessible > xItem = getAccessibleChild( nIndex );
+ if ( xItem.is() )
+ {
+ Reference< XAccessible > xChild = pChildWindow->GetAccessible();
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( xItem.get() );
+ pItem->SetChild( xChild );
+ pItem->NotifyChildEvent( xChild, _bShow );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::ReleaseSubToolBox( ToolBox* _pSubToolBox )
+{
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ sal_Int32 nIndex = pToolBox->GetItemPos( pToolBox->GetCurItemId() );
+ Reference< XAccessible > xItem = getAccessibleChild( nIndex );
+ if ( xItem.is() )
+ {
+ Reference< XAccessible > xChild = _pSubToolBox->GetAccessible();
+ VCLXAccessibleToolBoxItem* pItem =
+ static_cast< VCLXAccessibleToolBoxItem* >( xItem.get() );
+ if ( pItem->GetChild() == xChild )
+ {
+ pItem->SetChild( Reference< XAccessible >() );
+ pItem->NotifyChildEvent( xChild, false );
+ }
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::FillAccessibleStateSet( utl::AccessibleStateSetHelper& rStateSet )
+{
+ VCLXAccessibleComponent::FillAccessibleStateSet( rStateSet );
+
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ rStateSet.AddState( AccessibleStateType::FOCUSABLE );
+ if ( pToolBox->IsHorizontal() )
+ rStateSet.AddState( AccessibleStateType::HORIZONTAL );
+ else
+ rStateSet.AddState( AccessibleStateType::VERTICAL );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::ProcessWindowEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ // to prevent an early release of the toolbox (VCLEVENT_OBJECT_DYING)
+ Reference< XAccessibleContext > xTemp = this;
+
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_TOOLBOX_CLICK:
+ {
+ if ( rVclWindowEvent.GetData() )
+ {
+ UpdateChecked_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
+ UpdateIndeterminate_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
+ }
+ break;
+ }
+ case VCLEVENT_TOOLBOX_DOUBLECLICK:
+ case VCLEVENT_TOOLBOX_ACTIVATE:
+ case VCLEVENT_TOOLBOX_DEACTIVATE:
+ case VCLEVENT_TOOLBOX_SELECT:
+ break;
+
+ case VCLEVENT_TOOLBOX_HIGHLIGHT:
+ UpdateFocus_Impl();
+ break;
+
+ case VCLEVENT_TOOLBOX_HIGHLIGHTOFF:
+ ReleaseFocus_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
+ break;
+
+ case VCLEVENT_TOOLBOX_ITEMADDED :
+// UpdateItem_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData(), VCLEVENT_TOOLBOX_ITEMADDED == rVclWindowEvent.GetId() );
+ UpdateItem_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData(), sal_True );
+ break;
+
+ case VCLEVENT_TOOLBOX_ITEMREMOVED :
+ case VCLEVENT_TOOLBOX_ALLITEMSCHANGED :
+ {
+ UpdateAllItems_Impl();
+ break;
+ }
+
+ case VCLEVENT_TOOLBOX_ITEMWINDOWCHANGED:
+ {
+ sal_Int32 nPos = (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData();
+ ToolBoxItemsMap::iterator aAccessiblePos( m_aAccessibleChildren.find( nPos ) );
+ if ( m_aAccessibleChildren.end() != aAccessiblePos )
+ {
+ implReleaseToolboxItem( aAccessiblePos, false, true );
+ m_aAccessibleChildren.erase (aAccessiblePos);
+ }
+
+ Any aNewValue;
+ aNewValue <<= getAccessibleChild(nPos);
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), aNewValue );
+ break;
+ }
+ case VCLEVENT_TOOLBOX_ITEMTEXTCHANGED :
+ UpdateItemName_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
+ break;
+
+ case VCLEVENT_TOOLBOX_ITEMENABLED :
+ case VCLEVENT_TOOLBOX_ITEMDISABLED :
+ {
+ UpdateItemEnabled_Impl( (sal_Int32)(sal_IntPtr)rVclWindowEvent.GetData() );
+ break;
+ }
+
+ case VCLEVENT_OBJECT_DYING :
+ {
+ // if this toolbox is a subtoolbox, we have to relese it from its parent
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox && pToolBox->GetParent() &&
+ pToolBox->GetParent()->GetType() == WINDOW_TOOLBOX )
+ {
+ VCLXAccessibleToolBox* pParent = static_cast< VCLXAccessibleToolBox* >(
+ pToolBox->GetParent()->GetAccessible()->getAccessibleContext().get() );
+ if ( pParent )
+ pParent->ReleaseSubToolBox( pToolBox );
+ }
+
+ // dispose all items
+ for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter )
+ {
+ implReleaseToolboxItem( aIter, false, true );
+ }
+ m_aAccessibleChildren.clear();
+
+ //!!! no break to call base class
+ }
+
+ default:
+ VCLXAccessibleComponent::ProcessWindowEvent( rVclWindowEvent );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::ProcessWindowChildEvent( const VclWindowEvent& rVclWindowEvent )
+{
+ switch ( rVclWindowEvent.GetId() )
+ {
+ case VCLEVENT_WINDOW_SHOW: // send create on show for direct accessible children
+ {
+ Reference< XAccessible > xReturn = GetItemWindowAccessible(rVclWindowEvent);
+ if ( xReturn.is() )
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, Any(), makeAny(xReturn) );
+ else
+ HandleSubToolBarEvent( rVclWindowEvent, true );
+ }
+ break;
+
+ default:
+ VCLXAccessibleComponent::ProcessWindowChildEvent( rVclWindowEvent );
+
+ }
+}
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+IMPLEMENT_FORWARD_XINTERFACE2( VCLXAccessibleToolBox, VCLXAccessibleComponent, VCLXAccessibleToolBox_BASE )
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleToolBox, VCLXAccessibleComponent, VCLXAccessibleToolBox_BASE )
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleToolBox::disposing()
+{
+ VCLXAccessibleComponent::disposing();
+
+ // release the items
+ for ( ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.begin();
+ aIter != m_aAccessibleChildren.end(); ++aIter )
+ {
+ implReleaseToolboxItem( aIter, false, true );
+ }
+ m_aAccessibleChildren.clear();
+}
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleToolBox::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleToolBox" );
+}
+// -----------------------------------------------------------------------------
+Sequence< ::rtl::OUString > VCLXAccessibleToolBox::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames = VCLXAccessibleComponent::getSupportedServiceNames();
+ sal_Int32 nLength = aNames.getLength();
+ aNames.realloc( nLength + 1 );
+ aNames[nLength] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleToolBox" );
+ return aNames;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBox::getAccessibleChildCount( ) throw (RuntimeException)
+{
+ comphelper::OExternalLockGuard aGuard( this );
+
+ sal_Int32 nCount = 0;
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ nCount = pToolBox->GetItemCount();
+
+ return nCount;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleChild( sal_Int32 i ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ if ( i < 0 || i >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+
+ comphelper::OExternalLockGuard aGuard( this );
+
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ Reference< XAccessible > xChild;
+ // search for the child
+ ToolBoxItemsMap::iterator aIter = m_aAccessibleChildren.find(i);
+ if ( m_aAccessibleChildren.end() == aIter )
+ {
+ USHORT nItemId = pToolBox->GetItemId( (USHORT)i );
+ USHORT nHighlightItemId = pToolBox->GetHighlightItemId();
+ Window* pItemWindow = pToolBox->GetItemWindow( nItemId );
+ // not found -> create a new child
+ VCLXAccessibleToolBoxItem* pChild = new VCLXAccessibleToolBoxItem( pToolBox, i );
+ Reference< XAccessible> xParent = pChild;
+ if ( pItemWindow )
+ {
+ xChild = new OToolBoxWindowItem(0,::comphelper::getProcessServiceFactory(),pItemWindow->GetAccessible(),xParent);
+ pItemWindow->SetAccessible(xChild);
+ pChild->SetChild( xChild );
+ }
+ xChild = pChild;
+ if ( nHighlightItemId > 0 && nItemId == nHighlightItemId )
+ pChild->SetFocus( sal_True );
+ if ( pToolBox->IsItemChecked( nItemId ) )
+ pChild->SetChecked( sal_True );
+ if ( pToolBox->GetItemState( nItemId ) == STATE_DONTKNOW )
+ pChild->SetIndeterminate( true );
+ m_aAccessibleChildren.insert( ToolBoxItemsMap::value_type( i, xChild ) );
+ }
+ else
+ {
+ // found it
+ xChild = aIter->second;
+ }
+ return xChild;
+ }
+
+ return NULL;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBox::getAccessibleAtPoint( const awt::Point& _rPoint ) throw (RuntimeException)
+{
+ comphelper::OExternalLockGuard aGuard( this );
+
+ Reference< XAccessible > xAccessible;
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pToolBox )
+ {
+ USHORT nItemPos = pToolBox->GetItemPos( VCLPoint( _rPoint ) );
+ if ( nItemPos != TOOLBOX_ITEM_NOTFOUND )
+ xAccessible = getAccessibleChild( nItemPos );
+ }
+
+ return xAccessible;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > VCLXAccessibleToolBox::GetItemWindowAccessible( const VclWindowEvent& rVclWindowEvent )
+{
+ Reference< XAccessible > xReturn;
+ Window* pChildWindow = (Window *) rVclWindowEvent.GetData();
+ ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
+ if ( pChildWindow && pToolBox )
+ {
+ USHORT nCount = pToolBox->GetItemCount();
+ for (USHORT i = 0 ; i < nCount && !xReturn.is() ; ++i)
+ {
+ USHORT nItemId = pToolBox->GetItemId( i );
+ Window* pItemWindow = pToolBox->GetItemWindow( nItemId );
+ if ( pItemWindow == pChildWindow )
+ xReturn = getAccessibleChild(i);
+ }
+ }
+ return xReturn;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > VCLXAccessibleToolBox::GetChildAccessible( const VclWindowEvent& rVclWindowEvent )
+{
+ Reference< XAccessible > xReturn = GetItemWindowAccessible(rVclWindowEvent);
+
+ if ( !xReturn.is() )
+ xReturn = VCLXAccessibleComponent::GetChildAccessible(rVclWindowEvent);
+ return xReturn;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleSelection
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+ ToolBox * pToolBox = static_cast < ToolBox * > ( GetWindow() );
+ USHORT nPos = static_cast < USHORT > (nChildIndex);
+ pToolBox->ChangeHighlight( nPos );
+}
+// -----------------------------------------------------------------------------
+sal_Bool VCLXAccessibleToolBox::isAccessibleChildSelected( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+ ToolBox * pToolBox = static_cast < ToolBox * > ( GetWindow() );
+ USHORT nPos = static_cast < USHORT > (nChildIndex);
+ if ( pToolBox != NULL && pToolBox->GetHighlightItemId() == pToolBox->GetItemId( nPos ) )
+ return sal_True;
+ else
+ return sal_False;
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::clearAccessibleSelection( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ ToolBox * pToolBox = static_cast < ToolBox * > ( GetWindow() );
+ pToolBox -> LoseFocus();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::selectAllAccessibleChildren( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ // intentionally empty. makes no sense for a toolbox
+}
+// -----------------------------------------------------------------------------
+sal_Int32 VCLXAccessibleToolBox::getSelectedAccessibleChildCount( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ sal_Int32 nRet = 0;
+ for ( sal_Int32 i = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
+ {
+ if ( isAccessibleChildSelected( i ) )
+ {
+ nRet = 1;
+ break; // a toolbox can only have (n)one selected child
+ }
+ }
+ return nRet;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > VCLXAccessibleToolBox::getSelectedAccessibleChild( sal_Int32 nSelectedChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ if ( nSelectedChildIndex < 0 || nSelectedChildIndex >= getSelectedAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+ Reference< XAccessible > xChild;
+ for ( sal_Int32 i = 0, j = 0, nCount = getAccessibleChildCount(); i < nCount; i++ )
+ {
+ if ( isAccessibleChildSelected( i ) && ( j++ == nSelectedChildIndex ) )
+ {
+ xChild = getAccessibleChild( i );
+ break;
+ }
+ }
+ return xChild;
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBox::deselectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+ if ( nChildIndex < 0 || nChildIndex >= getAccessibleChildCount() )
+ throw IndexOutOfBoundsException();
+ clearAccessibleSelection(); // a toolbox can only have (n)one selected child
+}
+// -----------------------------------------------------------------------------
diff --git a/accessibility/source/standard/vclxaccessibletoolboxitem.cxx b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
new file mode 100644
index 000000000000..7580d1a3ae2c
--- /dev/null
+++ b/accessibility/source/standard/vclxaccessibletoolboxitem.cxx
@@ -0,0 +1,718 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_accessibility.hxx"
+#include <accessibility/standard/vclxaccessibletoolboxitem.hxx>
+#include <toolkit/helper/convert.hxx>
+#include <accessibility/helper/accresmgr.hxx>
+#include <accessibility/helper/accessiblestrings.hrc>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Rectangle.hpp>
+#include <com/sun/star/awt/Size.hpp>
+
+#include <com/sun/star/accessibility/AccessibleEventId.hpp>
+#include <com/sun/star/accessibility/AccessibleRole.hpp>
+#include <com/sun/star/accessibility/AccessibleStateType.hpp>
+#include <com/sun/star/datatransfer/clipboard/XClipboard.hpp>
+#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/unohelp2.hxx>
+#include <vcl/help.hxx>
+#include <toolkit/awt/vclxwindow.hxx>
+#include <toolkit/helper/externallock.hxx>
+#include <unotools/accessiblestatesethelper.hxx>
+#include <unotools/accessiblerelationsethelper.hxx>
+#include <cppuhelper/typeprovider.hxx>
+#include <comphelper/sequence.hxx>
+
+#include <com/sun/star/accessibility/XAccessibleSelection.hpp>
+
+// class VCLXAccessibleToolBoxItem ------------------------------------------
+
+using namespace ::com::sun::star::accessibility;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star;
+using namespace ::comphelper;
+
+DBG_NAME(VCLXAccessibleToolBoxItem)
+
+// -----------------------------------------------------------------------------
+// Ctor() and Dtor()
+// -----------------------------------------------------------------------------
+VCLXAccessibleToolBoxItem::VCLXAccessibleToolBoxItem( ToolBox* _pToolBox, sal_Int32 _nPos ) :
+
+ AccessibleTextHelper_BASE( new VCLExternalSolarLock() ),
+
+ m_pToolBox ( _pToolBox ),
+ m_nIndexInParent( _nPos ),
+ m_nRole ( AccessibleRole::PUSH_BUTTON ),
+ m_nItemId ( 0 ),
+ m_bHasFocus ( sal_False ),
+ m_bIsChecked ( sal_False ),
+ m_bIndeterminate( false )
+
+{
+ DBG_CTOR( VCLXAccessibleToolBoxItem, NULL );
+
+ m_pExternalLock = static_cast< VCLExternalSolarLock* >( getExternalLock( ) );
+
+ DBG_ASSERT( m_pToolBox, "invalid toolbox" );
+ m_nItemId = m_pToolBox->GetItemId( (USHORT)m_nIndexInParent );
+ m_sOldName = GetText( true );
+ m_bIsChecked = m_pToolBox->IsItemChecked( m_nItemId );
+ m_bIndeterminate = ( m_pToolBox->GetItemState( m_nItemId ) == STATE_DONTKNOW );
+ ToolBoxItemType eType = m_pToolBox->GetItemType( (USHORT)m_nIndexInParent );
+ switch ( eType )
+ {
+ case TOOLBOXITEM_BUTTON :
+ {
+ ToolBoxItemBits nBits = m_pToolBox->GetItemBits( m_nItemId );
+ if (( nBits & TIB_DROPDOWN ) == TIB_DROPDOWN)
+ m_nRole = AccessibleRole::BUTTON_DROPDOWN;
+ else if (( ( nBits & TIB_CHECKABLE ) == TIB_CHECKABLE ) ||
+ ( ( nBits & TIB_AUTOCHECK ) == TIB_AUTOCHECK ) )
+ m_nRole = AccessibleRole::TOGGLE_BUTTON;
+ else if ( m_pToolBox->GetItemWindow( m_nItemId ) )
+ m_nRole = AccessibleRole::PANEL;
+ break;
+ }
+
+ case TOOLBOXITEM_SPACE :
+ m_nRole = AccessibleRole::FILLER;
+ break;
+
+ case TOOLBOXITEM_SEPARATOR :
+ case TOOLBOXITEM_BREAK :
+ m_nRole = AccessibleRole::SEPARATOR;
+ break;
+
+ default:
+ {
+ DBG_ERRORFILE( "unsupported toolbox itemtype" );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+VCLXAccessibleToolBoxItem::~VCLXAccessibleToolBoxItem()
+{
+ DBG_DTOR( VCLXAccessibleToolBoxItem, NULL );
+
+ delete m_pExternalLock;
+ m_pExternalLock = NULL;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleToolBoxItem::GetText( bool _bAsName )
+{
+ ::rtl::OUString sRet;
+ // no text for separators and spaces
+ if ( m_pToolBox && m_nItemId > 0 && ( _bAsName || m_pToolBox->GetButtonType() != BUTTON_SYMBOL ) )
+ {
+ sRet = m_pToolBox->GetItemText( m_nItemId );
+//OJ #108243# we only read the name of the toolboxitem
+//
+// Window* pItemWindow = m_pToolBox->GetItemWindow( m_nItemId );
+// if ( pItemWindow && pItemWindow->GetAccessible().is() &&
+// pItemWindow->GetAccessible()->getAccessibleContext().is() )
+// {
+// ::rtl::OUString sWinText = pItemWindow->GetAccessible()->getAccessibleContext()->getAccessibleName();
+// if ( ( sRet.getLength() > 0 ) && ( sWinText.getLength() > 0 ) )
+// sRet += String( RTL_CONSTASCII_USTRINGPARAM( " " ) );
+// sRet += sWinText;
+// }
+ }
+ return sRet;
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::SetFocus( sal_Bool _bFocus )
+{
+ if ( m_bHasFocus != _bFocus )
+ {
+ Any aOldValue;
+ Any aNewValue;
+ if ( m_bHasFocus )
+ aOldValue <<= AccessibleStateType::FOCUSED;
+ else
+ aNewValue <<= AccessibleStateType::FOCUSED;
+ m_bHasFocus = _bFocus;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::SetChecked( sal_Bool _bCheck )
+{
+ if ( m_bIsChecked != _bCheck )
+ {
+ Any aOldValue;
+ Any aNewValue;
+ if ( m_bIsChecked )
+ aOldValue <<= AccessibleStateType::CHECKED;
+ else
+ aNewValue <<= AccessibleStateType::CHECKED;
+ m_bIsChecked = _bCheck;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::SetIndeterminate( bool _bIndeterminate )
+{
+ if ( m_bIndeterminate != _bIndeterminate )
+ {
+ Any aOldValue, aNewValue;
+ if ( m_bIndeterminate )
+ aOldValue <<= AccessibleStateType::INDETERMINATE;
+ else
+ aNewValue <<= AccessibleStateType::INDETERMINATE;
+ m_bIndeterminate = _bIndeterminate;
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::NameChanged()
+{
+ ::rtl::OUString sNewName = implGetText();
+ if ( sNewName != m_sOldName )
+ {
+ Any aOldValue, aNewValue;
+ aOldValue <<= m_sOldName;
+ // save new name as old name for next change
+ m_sOldName = sNewName;
+ aNewValue <<= m_sOldName;
+ NotifyAccessibleEvent( AccessibleEventId::NAME_CHANGED, aOldValue, aNewValue );
+ }
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::SetChild( const Reference< XAccessible >& _xChild )
+{
+ m_xChild = _xChild;
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::NotifyChildEvent( const Reference< XAccessible >& _xChild, bool _bShow )
+{
+ Any aOld = _bShow ? Any() : makeAny( _xChild );
+ Any aNew = _bShow ? makeAny( _xChild ) : Any();
+ NotifyAccessibleEvent( AccessibleEventId::CHILD, aOld, aNew );
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::ToggleEnableState()
+{
+ Any aOldValue[2], aNewValue[2];
+ if ( m_pToolBox->IsItemEnabled( m_nItemId ) )
+ {
+ aNewValue[0] <<= AccessibleStateType::SENSITIVE;
+ aNewValue[1] <<= AccessibleStateType::ENABLED;
+ }
+ else
+ {
+ aOldValue[0] <<= AccessibleStateType::ENABLED;
+ aOldValue[1] <<= AccessibleStateType::SENSITIVE;
+ }
+
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[0], aNewValue[0] );
+ NotifyAccessibleEvent( AccessibleEventId::STATE_CHANGED, aOldValue[1], aNewValue[1] );
+}
+// -----------------------------------------------------------------------------
+awt::Rectangle SAL_CALL VCLXAccessibleToolBoxItem::implGetBounds( ) throw (RuntimeException)
+{
+ awt::Rectangle aRect;
+ if ( m_pToolBox )
+ aRect = AWTRectangle( m_pToolBox->GetItemPosRect( (USHORT)m_nIndexInParent ) );
+
+ return aRect;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleToolBoxItem::implGetText()
+{
+ return GetText (true);
+}
+// -----------------------------------------------------------------------------
+Locale VCLXAccessibleToolBoxItem::implGetLocale()
+{
+ return Application::GetSettings().GetUILocale();
+}
+// -----------------------------------------------------------------------------
+void VCLXAccessibleToolBoxItem::implGetSelection( sal_Int32& nStartIndex, sal_Int32& nEndIndex )
+{
+ nStartIndex = 0;
+ nEndIndex = 0;
+}
+// -----------------------------------------------------------------------------
+// XInterface
+// -----------------------------------------------------------------------------
+IMPLEMENT_FORWARD_REFCOUNT( VCLXAccessibleToolBoxItem, AccessibleTextHelper_BASE )
+Any SAL_CALL VCLXAccessibleToolBoxItem::queryInterface( const Type& _rType ) throw (RuntimeException)
+{
+ // --> PB 2004-09-03 #i33611# - toolbox buttons without text don't support XAccessibleText
+ if ( _rType == ::getCppuType( ( const Reference< XAccessibleText >* ) 0 )
+ && ( !m_pToolBox || m_pToolBox->GetButtonType() == BUTTON_SYMBOL ) )
+ return Any();
+ // <--
+
+ ::com::sun::star::uno::Any aReturn = AccessibleTextHelper_BASE::queryInterface( _rType );
+ if ( !aReturn.hasValue() )
+ aReturn = VCLXAccessibleToolBoxItem_BASE::queryInterface( _rType );
+ return aReturn;
+}
+// -----------------------------------------------------------------------------
+// XTypeProvider
+// -----------------------------------------------------------------------------
+IMPLEMENT_FORWARD_XTYPEPROVIDER2( VCLXAccessibleToolBoxItem, AccessibleTextHelper_BASE, VCLXAccessibleToolBoxItem_BASE )
+// -----------------------------------------------------------------------------
+// XComponent
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleToolBoxItem::disposing()
+{
+ AccessibleTextHelper_BASE::disposing();
+ m_pToolBox = NULL;
+}
+// -----------------------------------------------------------------------------
+// XServiceInfo
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleToolBoxItem::getImplementationName() throw (RuntimeException)
+{
+ return ::rtl::OUString::createFromAscii( "com.sun.star.comp.toolkit.AccessibleToolBoxItem" );
+}
+// -----------------------------------------------------------------------------
+sal_Bool VCLXAccessibleToolBoxItem::supportsService( const ::rtl::OUString& rServiceName ) throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames( getSupportedServiceNames() );
+ const ::rtl::OUString* pNames = aNames.getConstArray();
+ const ::rtl::OUString* pEnd = pNames + aNames.getLength();
+ for ( ; pNames != pEnd && !pNames->equals( rServiceName ); ++pNames )
+ ;
+
+ return pNames != pEnd;
+}
+// -----------------------------------------------------------------------------
+Sequence< ::rtl::OUString > VCLXAccessibleToolBoxItem::getSupportedServiceNames() throw (RuntimeException)
+{
+ Sequence< ::rtl::OUString > aNames(4);
+ aNames[0] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleContext" );
+ aNames[1] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleComponent" );
+ aNames[2] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleExtendedComponent" );
+ aNames[3] = ::rtl::OUString::createFromAscii( "com.sun.star.accessibility.AccessibleToolBoxItem" );
+ return aNames;
+}
+// -----------------------------------------------------------------------------
+// XAccessible
+// -----------------------------------------------------------------------------
+Reference< XAccessibleContext > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleContext( ) throw (RuntimeException)
+{
+ return this;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleContext
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChildCount( ) throw (RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ return m_xChild.is() ? 1 : 0;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleChild( sal_Int32 i ) throw (RuntimeException, com::sun::star::lang::IndexOutOfBoundsException)
+{
+ OContextEntryGuard aGuard( this );
+
+ // no child -> so index is out of bounds
+ if ( !m_xChild.is() || i != 0 )
+ throw IndexOutOfBoundsException();
+
+ return m_xChild;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleParent( ) throw (RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ return m_pToolBox->GetAccessible();
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleIndexInParent( ) throw (RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ return m_nIndexInParent;
+}
+// -----------------------------------------------------------------------------
+sal_Int16 SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleRole( ) throw (RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ return m_nRole;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleDescription( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sDescription;
+ if ( m_pToolBox )
+ sDescription = m_pToolBox->GetHelpText( m_nItemId );
+
+ return sDescription;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleName( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ // entry text == accessible name
+ return GetText( true );
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessibleRelationSet > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleRelationSet( ) throw (RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ utl::AccessibleRelationSetHelper* pRelationSetHelper = new utl::AccessibleRelationSetHelper;
+ Reference< XAccessibleRelationSet > xSet = pRelationSetHelper;
+ return xSet;
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessibleStateSet > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleStateSet( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ utl::AccessibleStateSetHelper* pStateSetHelper = new utl::AccessibleStateSetHelper;
+ Reference< XAccessibleStateSet > xStateSet = pStateSetHelper;
+
+ if ( m_pToolBox && !rBHelper.bDisposed && !rBHelper.bInDispose )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::FOCUSABLE );
+ if ( m_bIsChecked )
+ pStateSetHelper->AddState( AccessibleStateType::CHECKED );
+ if ( m_bIndeterminate )
+ pStateSetHelper->AddState( AccessibleStateType::INDETERMINATE );
+ if ( m_pToolBox->IsItemEnabled( m_nItemId ) )
+ {
+ pStateSetHelper->AddState( AccessibleStateType::ENABLED );
+ pStateSetHelper->AddState( AccessibleStateType::SENSITIVE );
+ }
+ if ( m_pToolBox->IsItemVisible( m_nItemId ) )
+ pStateSetHelper->AddState( AccessibleStateType::VISIBLE );
+ if ( m_pToolBox->IsItemReallyVisible( m_nItemId ) )
+ pStateSetHelper->AddState( AccessibleStateType::SHOWING );
+ if ( m_bHasFocus )
+ pStateSetHelper->AddState( AccessibleStateType::FOCUSED );
+ }
+ else
+ pStateSetHelper->AddState( AccessibleStateType::DEFUNC );
+
+ return xStateSet;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleText
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getCaretPosition() throw (RuntimeException)
+{
+ return -1;
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleToolBoxItem::setCaretPosition( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nIndex, nIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+// -----------------------------------------------------------------------------
+Sequence< PropertyValue > SAL_CALL VCLXAccessibleToolBoxItem::getCharacterAttributes( sal_Int32 nIndex, const Sequence< ::rtl::OUString >& ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return Sequence< PropertyValue >();
+}
+// -----------------------------------------------------------------------------
+awt::Rectangle SAL_CALL VCLXAccessibleToolBoxItem::getCharacterBounds( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sText( implGetText() );
+
+ if ( !implIsValidIndex( nIndex, sText.getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ awt::Rectangle aBounds( 0, 0, 0, 0 );
+ if ( m_pToolBox && m_pToolBox->GetButtonType() != BUTTON_SYMBOL ) // symbol buttons have no character bounds
+ {
+ Rectangle aCharRect = m_pToolBox->GetCharacterBounds( m_nItemId, nIndex );
+ Rectangle aItemRect = m_pToolBox->GetItemRect( m_nItemId );
+ aCharRect.Move( -aItemRect.Left(), -aItemRect.Top() );
+ aBounds = AWTRectangle( aCharRect );
+ }
+
+ return aBounds;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getIndexAtPoint( const awt::Point& aPoint ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nIndex = -1;
+ if ( m_pToolBox && m_pToolBox->GetButtonType() != BUTTON_SYMBOL ) // symbol buttons have no character bounds
+ {
+ sal_uInt16 nItemId = 0;
+ Rectangle aItemRect = m_pToolBox->GetItemRect( m_nItemId );
+ Point aPnt( VCLPoint( aPoint ) );
+ aPnt += aItemRect.TopLeft();
+ sal_Int32 nIdx = m_pToolBox->GetIndexForPoint( aPnt, nItemId );
+ if ( nIdx != -1 && nItemId == m_nItemId )
+ nIndex = nIdx;
+ }
+
+ return nIndex;
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleToolBoxItem::setSelection( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ return sal_False;
+}
+// -----------------------------------------------------------------------------
+sal_Bool SAL_CALL VCLXAccessibleToolBoxItem::copyText( sal_Int32 nStartIndex, sal_Int32 nEndIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( !implIsValidRange( nStartIndex, nEndIndex, implGetText().getLength() ) )
+ throw IndexOutOfBoundsException();
+
+ sal_Bool bReturn = sal_False;
+
+ if ( m_pToolBox )
+ {
+ Reference< datatransfer::clipboard::XClipboard > xClipboard = m_pToolBox->GetClipboard();
+ if ( xClipboard.is() )
+ {
+ ::rtl::OUString sText( getTextRange( nStartIndex, nEndIndex ) );
+
+ ::vcl::unohelper::TextDataObject* pDataObj = new ::vcl::unohelper::TextDataObject( sText );
+ const sal_uInt32 nRef = Application::ReleaseSolarMutex();
+ xClipboard->setContents( pDataObj, NULL );
+
+ Reference< datatransfer::clipboard::XFlushableClipboard > xFlushableClipboard( xClipboard, uno::UNO_QUERY );
+ if( xFlushableClipboard.is() )
+ xFlushableClipboard->flushClipboard();
+
+ Application::AcquireSolarMutex( nRef );
+
+ bReturn = sal_True;
+ }
+ }
+
+ return bReturn;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleComponent
+// -----------------------------------------------------------------------------
+Reference< XAccessible > SAL_CALL VCLXAccessibleToolBoxItem::getAccessibleAtPoint( const awt::Point& ) throw (RuntimeException)
+{
+ return Reference< XAccessible >();
+}
+// -----------------------------------------------------------------------------
+void SAL_CALL VCLXAccessibleToolBoxItem::grabFocus( ) throw (RuntimeException)
+{
+ Reference< XAccessible > xParent(getAccessibleParent());
+
+ if( xParent.is() )
+ {
+ Reference< XAccessibleSelection > rxAccessibleSelection(xParent->getAccessibleContext(), UNO_QUERY);
+
+ if ( rxAccessibleSelection.is() )
+ {
+ rxAccessibleSelection -> selectAccessibleChild ( getAccessibleIndexInParent() );
+ }
+ }
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getForeground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ if ( m_pToolBox )
+ nColor = m_pToolBox->GetControlForeground().GetColor();
+
+ return nColor;
+}
+// -----------------------------------------------------------------------------
+sal_Int32 SAL_CALL VCLXAccessibleToolBoxItem::getBackground( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Int32 nColor = 0;
+ if ( m_pToolBox )
+ nColor = m_pToolBox->GetControlBackground().GetColor();
+
+ return nColor;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleExtendedComponent
+// -----------------------------------------------------------------------------
+Reference< awt::XFont > SAL_CALL VCLXAccessibleToolBoxItem::getFont( ) throw (RuntimeException)
+{
+ return uno::Reference< awt::XFont >();
+}
+// -----------------------------------------------------------------------------
+awt::FontDescriptor SAL_CALL VCLXAccessibleToolBoxItem::getFontMetrics( const Reference< awt::XFont >& xFont ) throw (RuntimeException)
+{
+ return xFont->getFontDescriptor();
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleToolBoxItem::getTitledBorderText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sRet;
+ if ( m_pToolBox )
+ sRet = m_pToolBox->GetItemText( m_nItemId );
+
+ return sRet;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString SAL_CALL VCLXAccessibleToolBoxItem::getToolTipText( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ ::rtl::OUString sRet;
+ if ( m_pToolBox )
+ {
+ if ( Help::IsExtHelpEnabled() )
+ sRet = m_pToolBox->GetHelpText( m_nItemId );
+ else
+ sRet = m_pToolBox->GetQuickHelpText( m_nItemId );
+ if ( !sRet.getLength() )
+ // no help text set, so use item text
+ sRet = m_pToolBox->GetItemText( m_nItemId );
+ }
+ return sRet;
+}
+// -----------------------------------------------------------------------------
+// XAccessibleAction
+// -----------------------------------------------------------------------------
+sal_Int32 VCLXAccessibleToolBoxItem::getAccessibleActionCount( ) throw (RuntimeException)
+{
+ // only one action -> "Click"
+ return 1;
+}
+// -----------------------------------------------------------------------------
+sal_Bool VCLXAccessibleToolBoxItem::doAccessibleAction ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ if ( m_pToolBox )
+ m_pToolBox->TriggerItem( m_nItemId );
+
+ return sal_True;
+}
+// -----------------------------------------------------------------------------
+::rtl::OUString VCLXAccessibleToolBoxItem::getAccessibleActionDescription ( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return ::rtl::OUString( TK_RES_STRING( RID_STR_ACC_ACTION_CLICK ) );
+}
+// -----------------------------------------------------------------------------
+Reference< XAccessibleKeyBinding > VCLXAccessibleToolBoxItem::getAccessibleActionKeyBinding( sal_Int32 nIndex ) throw (IndexOutOfBoundsException, RuntimeException)
+{
+ OContextEntryGuard aGuard( this );
+
+ if ( nIndex < 0 || nIndex >= getAccessibleActionCount() )
+ throw IndexOutOfBoundsException();
+
+ return Reference< XAccessibleKeyBinding >();
+}
+// -----------------------------------------------------------------------------
+// XAccessibleValue
+// -----------------------------------------------------------------------------
+Any VCLXAccessibleToolBoxItem::getCurrentValue( ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ Any aValue;
+ if ( m_pToolBox )
+ aValue <<= (sal_Int32)m_pToolBox->IsItemChecked( m_nItemId );
+
+ return aValue;
+}
+// -----------------------------------------------------------------------------
+sal_Bool VCLXAccessibleToolBoxItem::setCurrentValue( const Any& aNumber ) throw (RuntimeException)
+{
+ OExternalLockGuard aGuard( this );
+
+ sal_Bool bReturn = sal_False;
+
+ if ( m_pToolBox )
+ {
+ sal_Int32 nValue = 0;
+ OSL_VERIFY( aNumber >>= nValue );
+
+ if ( nValue < 0 )
+ nValue = 0;
+ else if ( nValue > 1 )
+ nValue = 1;
+
+ m_pToolBox->CheckItem( m_nItemId, (BOOL) nValue );
+ bReturn = sal_True;
+ }
+
+ return bReturn;
+}
+// -----------------------------------------------------------------------------
+Any VCLXAccessibleToolBoxItem::getMaximumValue( ) throw (RuntimeException)
+{
+ return makeAny((sal_Int32)1);
+}
+// -----------------------------------------------------------------------------
+Any VCLXAccessibleToolBoxItem::getMinimumValue( ) throw (RuntimeException)
+{
+ return makeAny((sal_Int32)0);
+}
+// -----------------------------------------------------------------------------
+
+
diff --git a/accessibility/util/acc.map b/accessibility/util/acc.map
new file mode 100644
index 000000000000..5678c95e71fd
--- /dev/null
+++ b/accessibility/util/acc.map
@@ -0,0 +1,7 @@
+FORMS_1_0 {
+ global:
+ getStandardAccessibleFactory;
+ getSvtAccessibilityComponentFactory;
+ local:
+ *;
+};
diff --git a/accessibility/util/makefile.mk b/accessibility/util/makefile.mk
new file mode 100644
index 000000000000..42a6061fa2c9
--- /dev/null
+++ b/accessibility/util/makefile.mk
@@ -0,0 +1,86 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..
+PRJNAME=accessibility
+TARGET=acc
+USE_DEFFILE=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+#.INCLUDE : svpre.mk
+#.INCLUDE : settings.mk
+#.INCLUDE : sv.mk
+
+LDUMP=ldump2.exe
+
+# --- Library -----------------------------------
+# --- acc ---------------------------------------
+LIB1TARGET=$(SLB)$/$(PRJNAME).lib
+LIB1FILES=\
+ $(SLB)$/standard.lib \
+ $(SLB)$/extended.lib \
+ $(SLB)$/helper.lib
+
+SHL1TARGET=$(TARGET)$(DLLPOSTFIX)
+
+SHL1STDLIBS= \
+ $(VCLLIB) \
+ $(COMPHELPERLIB) \
+ $(SOTLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB) \
+ $(UNOTOOLSLIB) \
+ $(TKLIB) \
+ $(TOOLSLIB) \
+ $(SVTOOLLIB) \
+ $(SVLLIB) \
+ $(SALLIB)
+
+SHL1LIBS=$(LIB1TARGET)
+SHL1DEPN=$(LIB1TARGET) \
+ makefile.mk
+
+
+SHL1VERSIONMAP= $(TARGET).map
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+DEF1NAME= $(SHL1TARGET)
+
+# === .res file ==========================================================
+
+RES1FILELIST=\
+ $(SRS)$/helper.srs
+
+RESLIB1NAME=$(TARGET)
+RESLIB1SRSFILES=$(RES1FILELIST)
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/TODO b/accessibility/workben/TODO
new file mode 100644
index 000000000000..6fdfd5cb81aa
--- /dev/null
+++ b/accessibility/workben/TODO
@@ -0,0 +1,13 @@
+This is a unsorted list of TODO's and idea regarding the Accessibility Workbench
+
+* increase repaint performance
+* fix paint problems in ObjectViewContainer for e.g. File menu
+* change package structure to be flat (apps don't need deep package names)
+* add ant build script(s)
+* evaluate TreeTable as enhanced overview
+* add error panel and a bunch of consistency checks
+* add focus tracking mode
+* evaluate drawing transparent frames at screen coordinates of an object
+* enhance text view (colors)
+* add table view
+* more generic view loading (Class.forName())
diff --git a/accessibility/workben/makefile b/accessibility/workben/makefile
new file mode 100644
index 000000000000..4bd7c05e44dd
--- /dev/null
+++ b/accessibility/workben/makefile
@@ -0,0 +1,9 @@
+all:
+ cd source/org/openoffice/accessibility ; $(MAKE) all
+
+ROOT=source
+SUBDIRS=source/org/openoffice/accessibility
+include source/makefile.in
+
+run: all
+ $(JAVA) -classpath $(CLASSPATH) org.openoffice.accessibility.awb.AccessibilityWorkBench
diff --git a/accessibility/workben/makefile.in b/accessibility/workben/makefile.in
new file mode 100644
index 000000000000..d81df5fb7363
--- /dev/null
+++ b/accessibility/workben/makefile.in
@@ -0,0 +1,31 @@
+PRJ=$(ROOT)/..
+SETTINGS=$(OO_SDK_HOME)/settings
+include $(SETTINGS)/settings.mk
+include $(SETTINGS)/std.mk
+include $(SETTINGS)/dk.mk
+
+OUT_COMP_JAVA = $(OUT_CLASS)/$(patsubst .,/,$(PACKAGE))
+JAVAC=$(JAVA_HOME)/bin/javac
+JAVA=$(JAVA_HOME)/bin/java
+CLASS_FILES = $(patsubst %.java, %.class, $(JAVAFILES))
+CLASSPATH = $(subst $(EMPTYSTRING) $(PATH_SEPARATOR),$(PATH_SEPARATOR),$(OFFICE_CLASSES_DIR)/jurt.jar\
+ $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/unoil.jar\
+ $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/ridl.jar\
+ $(PATH_SEPARATOR)$(OFFICE_CLASSES_DIR)/juh.jar\
+ $(PATH_SEPARATOR)$(OUT_COMP_JAVA)\
+ $(PATH_SEPARATOR).\
+ $(PATH_SEPARATOR)$(ROOT)\
+ )
+
+subdirs:
+ $(foreach dir,$(SUBDIRS), cd $(dir);$(MAKE);cd ..;)
+
+clean:
+ -rm *.class *.jar
+ $(foreach dir,$(SUBDIRS), cd $(dir);$(MAKE) clean ; cd ..;)
+
+
+%.class : %.java
+ $(JAVAC) -classpath $(CLASSPATH) $<
+
+.PHONY: all package clean subdirs
diff --git a/accessibility/workben/makefile.mk b/accessibility/workben/makefile.mk
new file mode 100644
index 000000000000..7f19d8936757
--- /dev/null
+++ b/accessibility/workben/makefile.mk
@@ -0,0 +1,39 @@
+# copied from settings.mk
+SOLARBINDIR=$(SOLARVERSION)$/$(INPATH)$/bin$(UPDMINOREXT)
+
+# Please modify the following lines to match your environment:
+# If you use the run: target at the end of the file, then adapt pipe name
+PIPE_NAME = $(USER)
+
+# The following variables probably don't need to be changed.
+JAVA = java
+# The JAR_PATH points to the jar files of your local office installation.
+JAR_PATH = $(SOLARBINDIR)$/
+
+
+# The rest of this makefile should not need to be touched.
+
+JAR_FILES = \
+ unoil.jar \
+ ridl.jar \
+ jurt.jar \
+ juh.jar \
+ java_uno.jar
+
+
+JAVA_CLASSPATHS := \
+ ..$/$(INPATH)$/class \
+ $(foreach,i,$(JAR_FILES) $(JAR_PATH)$i) \
+ $(CLASSPATH)
+
+CLASSPATH !:=$(JAVA_CLASSPATHS:t$(PATH_SEPERATOR))
+
+all:
+ build
+
+# Example of how to run the work bench.
+run:
+ +$(JAVA) -classpath "$(CLASSPATH)" org/openoffice/accessibility/awb/AccessibilityWorkBench -p $(PIPE_NAME)
+
+runjar:
+ +$(JAVA) -classpath "$(CLASSPATH)" -jar AccessibilityWorkBench.jar -p $(PIPE_NAME)
diff --git a/accessibility/workben/org/openoffice/accessibility/Makefile b/accessibility/workben/org/openoffice/accessibility/Makefile
new file mode 100644
index 000000000000..a6db6a05ab4b
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/Makefile
@@ -0,0 +1,6 @@
+all : subdirs
+
+ROOT=../../../
+SUBDIRS=misc awb
+include $(ROOT)/makefile.in
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java b/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java
new file mode 100644
index 000000000000..02ec7fea2232
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/AccessibilityWorkBench.java
@@ -0,0 +1,690 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb;
+
+import java.awt.Cursor;
+import java.awt.GridBagConstraints;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JComponent;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JPanel;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.event.TreeSelectionListener;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.event.TreeExpansionListener;
+import javax.swing.event.TreeWillExpandListener;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XTerminateListener;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.misc.MessageArea;
+import org.openoffice.accessibility.misc.Options;
+import org.openoffice.accessibility.misc.OfficeConnection;
+import org.openoffice.accessibility.misc.SimpleOffice;
+import org.openoffice.accessibility.awb.canvas.Canvas;
+import org.openoffice.accessibility.awb.tree.AccessibilityTree;
+import org.openoffice.accessibility.awb.tree.AccessibilityModel;
+import org.openoffice.accessibility.awb.tree.DynamicAccessibilityModel;
+import org.openoffice.accessibility.awb.view.ObjectViewContainer;
+import org.openoffice.accessibility.awb.view.ObjectViewContainerWindow;
+
+
+
+/** This class manages the GUI of the work bench.
+ @see AccessibilityTreeModel
+ for the implementation of the tree view on the left side which also
+ manages the registration of accessibility listeners.
+ @see Canvas
+ for the graphical view of the accessible objects.
+*/
+public class AccessibilityWorkBench
+ extends JFrame
+ implements XTerminateListener,
+ ActionListener,
+ TreeSelectionListener
+{
+ public static final String msVersion = "v1.9";
+ public String msOptionsFileName = ".AWBrc";
+
+ public static void main (String args[])
+ {
+ String sPipeName = System.getenv( "USER" );
+
+ for (int i=0; i<args.length; i++)
+ {
+ if (args[i].equals ("-h") || args[i].equals ("--help") || args[i].equals ("-?"))
+ {
+ System.out.println ("usage: AccessibilityWorkBench <option>*");
+ System.out.println ("options:");
+ System.out.println (" -p <pipe-name> name of the pipe to use to connect to OpenOffice.org.");
+ System.out.println (" Defaults to $USER.");
+ System.exit (0);
+ }
+ else if (args[i].equals ("-p"))
+ {
+ sPipeName = args[++i];
+ }
+ }
+
+ saWorkBench = new AccessibilityWorkBench (sPipeName);
+ }
+
+
+
+
+ /** Return the one instance of the AccessibilityWorkBench
+ @return
+ Returns null when the AccessibilityWorkBench could not be
+ created successfully.
+ */
+ public static AccessibilityWorkBench Instance ()
+ {
+ return saWorkBench;
+ }
+
+
+
+ /** Create an accessibility work bench that listens at the specified
+ port to Office applications.
+ */
+ private AccessibilityWorkBench (String sPipeName)
+ {
+ mbInitialized = false;
+
+ OfficeConnection.SetPipeName (sPipeName);
+ Options.Instance().Load (msOptionsFileName);
+ Layout ();
+
+ MessageArea.println (System.getProperty ("os.name") + " / "
+ + System.getProperty ("os.arch") + " / "
+ + System.getProperty ("os.version"));
+ MessageArea.println ("Using pipe name " + sPipeName);
+
+ maTree.addTreeSelectionListener (this);
+
+ addWindowListener (new WindowAdapter ()
+ { public void windowClosing (WindowEvent e) {Quit();} }
+ );
+
+ OfficeConnection.Instance().AddConnectionListener (this);
+ Initialize ();
+ }
+
+
+
+
+ /** Create and arrange the widgets of the GUI.
+ */
+ public void Layout ()
+ {
+ setSize (new java.awt.Dimension (800,600));
+
+ JScrollPane aScrollPane;
+ GridBagConstraints constraints;
+
+ // Create new layout.
+ java.awt.GridBagLayout aLayout = new java.awt.GridBagLayout ();
+ getContentPane().setLayout (aLayout);
+
+ // Accessible Tree.
+ javax.swing.tree.TreeModel treeModel = new DynamicAccessibilityModel();
+ maTree = new AccessibilityTree(treeModel);
+ // Add the model as tree listeners to be able to populate/clear the
+ // child lists on demand.
+ maTree.addTreeExpansionListener((TreeExpansionListener) treeModel);
+ maTree.addTreeWillExpandListener((TreeWillExpandListener) treeModel);
+
+ JScrollPane aTreeScrollPane = new JScrollPane(
+ maTree,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+ aTreeScrollPane.setPreferredSize (new java.awt.Dimension (400,300));
+
+ // Object view shows details about the currently selected accessible
+ // object.
+ maObjectViewContainer = new ObjectViewContainer ();
+ JScrollPane aObjectViewContainerScrollPane = new JScrollPane(
+ maObjectViewContainer,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ aObjectViewContainerScrollPane.setPreferredSize (
+ new java.awt.Dimension (400,300));
+ JButton aCornerButton = new JButton ("CreateNewViewWindow");
+ aCornerButton.addActionListener (this);
+ aObjectViewContainerScrollPane.setCorner (
+ JScrollPane.LOWER_RIGHT_CORNER,
+ aCornerButton);
+
+ // Split pane for tree view and object view.
+ JSplitPane aLeftViewSplitPane = new JSplitPane (
+ JSplitPane.VERTICAL_SPLIT,
+ aTreeScrollPane,
+ aObjectViewContainerScrollPane
+ );
+ aLeftViewSplitPane.setDividerLocation (300);
+ aLeftViewSplitPane.setContinuousLayout (true);
+
+ // Canvas.
+ maCanvas = new Canvas ();
+ maCanvas.SetTree (maTree);
+ JScrollPane aScrolledCanvas = new JScrollPane(maCanvas,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ aScrolledCanvas.getViewport().setBackground (java.awt.Color.RED);
+ aScrolledCanvas.setPreferredSize (new java.awt.Dimension(600,400));
+
+ // Split pane for tree view and canvas.
+ JSplitPane aViewSplitPane = new JSplitPane (
+ JSplitPane.HORIZONTAL_SPLIT,
+ aLeftViewSplitPane,
+ aScrolledCanvas
+ );
+ aViewSplitPane.setOneTouchExpandable(true);
+ aViewSplitPane.setDividerLocation (400);
+ aViewSplitPane.setContinuousLayout (true);
+
+ // Split pane for the three views at the top and the message area.
+ MessageArea.Instance().setPreferredSize (new java.awt.Dimension(600,50));
+ JSplitPane aSplitPane = new JSplitPane (
+ JSplitPane.VERTICAL_SPLIT,
+ aViewSplitPane,
+ MessageArea.Instance());
+ aSplitPane.setOneTouchExpandable(true);
+ aSplitPane.setContinuousLayout (true);
+ addGridElement (aSplitPane, 0,0, 2,1, 3,3,
+ GridBagConstraints.CENTER, GridBagConstraints.BOTH);
+
+ // Button bar.
+ maButtonBar = new javax.swing.JPanel();
+ java.awt.GridBagLayout aButtonLayout = new java.awt.GridBagLayout ();
+ maButtonBar.setLayout (new java.awt.FlowLayout());
+ addGridElement (maButtonBar, 0,3, 2,1, 1,0,
+ GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL);
+
+ // Buttons.
+ // maConnectButton = createButton ("Connect", "connect");
+ // maUpdateButton = createButton ("Update", "update");
+ // maShapesButton = createButton ("Expand Shapes", "shapes");
+ maExpandButton = createButton ("Expand All", "expand");
+ maQuitButton = createButton ("Quit", "quit");
+ UpdateButtonStates ();
+
+ setJMenuBar (CreateMenuBar ());
+
+ setTitle("Accessibility Workbench " + msVersion);
+
+ setVisible (true);
+ pack ();
+ aSplitPane.setDividerLocation (1.0);
+ validate ();
+ repaint();
+ }
+
+
+
+
+ /** Shortcut method for adding an object to a GridBagLayout.
+ */
+ void addGridElement (JComponent object,
+ int x, int y,
+ int width, int height,
+ int weightx, int weighty,
+ int anchor, int fill)
+ {
+ GridBagConstraints constraints = new GridBagConstraints ();
+ constraints.gridx = x;
+ constraints.gridy = y;
+ constraints.gridwidth = width;
+ constraints.gridheight = height;
+ constraints.weightx = weightx;
+ constraints.weighty = weighty;
+ constraints.anchor = anchor;
+ constraints.fill = fill;
+ getContentPane().add (object, constraints);
+ }
+
+
+
+
+ /** Create a new button and place at the right most position into the
+ button bar.
+ */
+ public JButton createButton (String title, String command)
+ {
+ JButton aButton = new JButton (title);
+ aButton.setEnabled (false);
+ aButton.setActionCommand (command);
+ aButton.addActionListener (this);
+
+ maButtonBar.add (aButton);
+ return aButton;
+ }
+
+
+
+
+ /** Create a menu bar for the application.
+ @return
+ Returns the new menu bar. The returned reference is also
+ remembered in the data member <member>maMenuBar</member>.
+ */
+ javax.swing.JMenuBar CreateMenuBar()
+ {
+ // Menu bar.
+ maMenuBar = new JMenuBar ();
+
+ // File menu.
+ JMenu aFileMenu = new JMenu ("File");
+ maMenuBar.add (aFileMenu);
+ JMenuItem aItem;
+ aItem = new JMenuItem ("Quit");
+ aFileMenu.add (aItem);
+ aItem.addActionListener (this);
+
+ // View menu.
+ JMenu aViewMenu = new JMenu ("View");
+ maMenuBar.add (aViewMenu);
+ ButtonGroup aGroup = new ButtonGroup ();
+ int nZoomMode = Options.GetInteger ("ZoomMode", Canvas.WHOLE_SCREEN);
+ JRadioButtonMenuItem aRadioButton = new JRadioButtonMenuItem (
+ "Whole Screen", nZoomMode==Canvas.WHOLE_SCREEN);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+ aRadioButton = new JRadioButtonMenuItem ("200%", nZoomMode==200);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+ aRadioButton = new JRadioButtonMenuItem ("100%", nZoomMode==100);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+ aRadioButton = new JRadioButtonMenuItem ("50%", nZoomMode==50);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+ aRadioButton = new JRadioButtonMenuItem ("25%", nZoomMode==25);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+ aRadioButton = new JRadioButtonMenuItem ("10%", nZoomMode==10);
+ aGroup.add (aRadioButton);
+ aViewMenu.add (aRadioButton);
+ aRadioButton.addActionListener (this);
+
+ // Options menu.
+ JMenu aOptionsMenu = new JMenu ("Options");
+ maMenuBar.add (aOptionsMenu);
+ JCheckBoxMenuItem aCBItem;
+ aCBItem = new JCheckBoxMenuItem ("Show Descriptions",
+ Options.GetBoolean("ShowDescriptions"));
+ aOptionsMenu.add (aCBItem);
+ aCBItem.addActionListener (this);
+
+ aCBItem = new JCheckBoxMenuItem ("Show Names",
+ Options.GetBoolean ("ShowNames"));
+ aOptionsMenu.add (aCBItem);
+ aCBItem.addActionListener (this);
+
+ aCBItem = new JCheckBoxMenuItem ("Show Text",
+ Options.GetBoolean ("ShowText"));
+ aOptionsMenu.add (aCBItem);
+ aCBItem.addActionListener (this);
+
+ aCBItem = new JCheckBoxMenuItem ("Antialiased Rendering",
+ Options.GetBoolean ("Antialiasing"));
+ aOptionsMenu.add (aCBItem);
+ aCBItem.addActionListener (this);
+
+ // Help menu.
+ JMenu aHelpMenu = new JMenu ("Help");
+ maMenuBar.add (aHelpMenu);
+
+ aItem = new JMenuItem ("Help");
+ aHelpMenu.add (aItem);
+ aItem.addActionListener (this);
+
+ aItem = new JMenuItem ("News");
+ aHelpMenu.add (aItem);
+ aItem.addActionListener (this);
+
+ aItem = new JMenuItem ("About");
+ aHelpMenu.add (aItem);
+ aItem.addActionListener (this);
+
+ return maMenuBar;
+ }
+
+
+
+
+ /** Initialize the AWB. This includes clearing the canvas, add
+ listeners, creation of a new tree model for the tree list box and
+ the update of the button states.
+
+ This method may be called any number of times. Note that all
+ actions will be carried out every time. The main purpose of a
+ second call is that of a re-initialization after a reconnect.
+ */
+ protected void Initialize ()
+ {
+ maCanvas.SetTree (maTree);
+
+ SimpleOffice aOffice = SimpleOffice.Instance ();
+ if (aOffice != null)
+ {
+ // Add terminate listener.
+ if (aOffice.GetDesktop() != null)
+ aOffice.GetDesktop().addTerminateListener (this);
+
+ }
+
+ mbInitialized = true;
+ UpdateButtonStates ();
+ }
+
+
+
+
+ /** Update the states of the buttons according to the internal state of
+ the AWB.
+ */
+ protected void UpdateButtonStates ()
+ {
+ // maConnectButton.setEnabled (mbInitialized);
+ maQuitButton.setEnabled (true);
+ // maUpdateButton.setEnabled (mbInitialized);
+ maExpandButton.setEnabled (mbInitialized);
+ // maShapesButton.setEnabled (mbInitialized);
+ }
+
+
+
+ /** Callback for GUI actions from the buttons.
+ */
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ String sCommand = aEvent.getActionCommand();
+ if (sCommand.equals("connect"))
+ {
+ SimpleOffice.Clear();
+ Initialize ();
+ }
+ else if (sCommand.equals("quit"))
+ {
+ Quit ();
+ }
+ else if (sCommand.equals("update"))
+ {
+// maTree.Dispose();
+ Initialize ();
+ }
+ else if (sCommand.equals("shapes"))
+ {
+ Cursor aCursor = getCursor();
+ setCursor (new Cursor (Cursor.WAIT_CURSOR));
+ // maTree.expandShapes();
+ setCursor (aCursor);
+ }
+ else if (sCommand.equals("expand"))
+ {
+ Cursor aCursor = getCursor();
+ setCursor (new Cursor (Cursor.WAIT_CURSOR));
+
+ for (int i=0; i<maTree.getRowCount(); i++)
+ maTree.expandRow (i);
+ // maAccessibilityTree.expandAll();
+ setCursor (aCursor);
+ }
+ else if (sCommand.equals ("Quit"))
+ {
+ System.out.println ("exiting");
+ System.exit (0);
+ }
+ else if (sCommand.equals ("Show Descriptions"))
+ {
+ Options.SetBoolean ("ShowDescriptions",
+ ((JCheckBoxMenuItem)aEvent.getSource()).getState());
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("Show Names"))
+ {
+ Options.SetBoolean ("ShowNames",
+ ((JCheckBoxMenuItem)aEvent.getSource()).getState());
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("Show Text"))
+ {
+ Options.SetBoolean ("ShowText",
+ ((JCheckBoxMenuItem)aEvent.getSource()).getState());
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("Antialiased Rendering"))
+ {
+ Options.SetBoolean ("Antialiasing",
+ ((JCheckBoxMenuItem)aEvent.getSource()).getState());
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("Help"))
+ {
+ HelpWindow.Instance().loadFile ("help.html");
+ }
+ else if (sCommand.equals ("News"))
+ {
+ try{
+ HelpWindow.Instance().loadFile ("news.html");
+ } catch (Exception ex) {}
+ }
+ else if (sCommand.equals ("About"))
+ {
+ HelpWindow.Instance().loadFile ("about.html");
+ }
+ else if (sCommand.equals ("Whole Screen"))
+ {
+ Options.SetInteger ("ZoomMode", Canvas.WHOLE_SCREEN);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("200%"))
+ {
+ Options.SetInteger ("ZoomMode", 200);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("100%"))
+ {
+ Options.SetInteger ("ZoomMode", 100);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("50%"))
+ {
+ Options.SetInteger ("ZoomMode", 50);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("25%"))
+ {
+ Options.SetInteger ("ZoomMode", 25);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("10%"))
+ {
+ Options.SetInteger ("ZoomMode", 10);
+ maCanvas.repaint();
+ }
+ else if (sCommand.equals ("<connected>"))
+ {
+ Connected ();
+ }
+ else if (sCommand.equals ("CreateNewViewWindow"))
+ {
+ TreePath aSelectionPath = maTree.getSelectionPath();
+ if (aSelectionPath != null)
+ {
+ javax.swing.tree.TreeNode aSelectedNode =
+ (javax.swing.tree.TreeNode)aSelectionPath.getLastPathComponent();
+ if (aSelectedNode instanceof XAccessible) {
+ new ObjectViewContainerWindow (((XAccessible) aSelectedNode).getAccessibleContext());
+ }
+ }
+ }
+ else
+ {
+ System.err.println("unknown command " + sCommand);
+ }
+ }
+
+
+
+
+ /** TreeSelectionListener
+ Tell the object view and the canvas about the selected object.
+ */
+ public void valueChanged (TreeSelectionEvent aEvent) {
+
+ if (aEvent.isAddedPath()) {
+ Cursor aCursor = getCursor();
+ setCursor (new Cursor (Cursor.WAIT_CURSOR));
+
+ javax.swing.tree.TreePath aPath = aEvent.getPath();
+ maTree.scrollPathToVisible (aPath);
+ Object aObject = aPath.getLastPathComponent();
+ if (aObject instanceof XAccessible) {
+ XAccessible xAccessible = (XAccessible) aObject;
+ if (maObjectViewContainer != null) {
+ ((AccessibilityModel) maTree.getModel()).addEventListener((TreeNode) aObject, maObjectViewContainer);
+ maObjectViewContainer.SetObject (xAccessible.getAccessibleContext());
+ }
+ }
+ if (maCanvas != null)
+ maCanvas.SelectObject ((TreeNode) aObject);
+ setCursor (aCursor);
+ } else {
+ if (maObjectViewContainer != null) {
+ ((AccessibilityModel) maTree.getModel()).removeEventListener((TreeNode) aEvent.getPath().getLastPathComponent(), maObjectViewContainer);
+ maObjectViewContainer.SetObject (null);
+ }
+ if (maCanvas != null)
+ maCanvas.SelectObject (null);
+ }
+ }
+
+
+
+
+ // XEventListener
+ public void disposing (EventObject aSourceObj)
+ {
+ XFrame xFrame = (XFrame)UnoRuntime.queryInterface(
+ XFrame.class, aSourceObj.Source);
+
+ if( xFrame != null )
+ System.out.println("frame disposed");
+ else
+ System.out.println("controller disposed");
+ }
+
+
+
+
+ // XTerminateListener
+ public void queryTermination(final EventObject aEvent) throws com.sun.star.frame.TerminationVetoException
+ {
+ System.out.println ("Terminate Event : " + aEvent);
+ }
+
+
+
+
+ // XTerminateListener
+ public void notifyTermination(final EventObject aEvent)
+ {
+ System.out.println ("Notifiy Termination Event : " + aEvent);
+ }
+
+
+ /** Called after the AWB is connected to an Office application.
+ */
+ private void Connected ()
+ {
+ // Clear the tree and by expanding the root node initiate the
+ // scanning and insertion of nodes for the top-level windows.
+// maTree.Clear();
+// maTree.collapseRow (0);
+// maTree.expandRow (0);
+
+ // Register the top window listener.
+ XExtendedToolkit xToolkit =
+ SimpleOffice.Instance().GetExtendedToolkit();
+ if (xToolkit != null)
+ {
+ maTree.setToolkit(xToolkit);
+ }
+ }
+
+
+ /** Called when shutting down the AWB tool.
+ */
+ private void Quit ()
+ {
+// maTree.Dispose();
+ System.exit (0);
+ }
+
+ /// The Singleton Workbench object.
+ private static AccessibilityWorkBench
+ saWorkBench = null;
+
+ private JPanel maMainPanel;
+ private JPanel maButtonBar;
+ private Canvas maCanvas;
+ private AccessibilityTree maTree;
+ private ObjectViewContainer maObjectViewContainer;
+ private JButton
+ maConnectButton,
+ maQuitButton,
+ maUpdateButton,
+ maExpandButton,
+ maShapesButton;
+ private JMenuBar maMenuBar;
+ private boolean mbInitialized;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java b/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java
new file mode 100644
index 000000000000..2f9671d191e5
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/HelpWindow.java
@@ -0,0 +1,187 @@
+package org.openoffice.accessibility.awb;
+
+import javax.swing.JFrame;
+import javax.swing.JScrollPane;
+import javax.swing.JEditorPane;
+import javax.swing.JButton;
+import java.net.URL;
+import javax.swing.event.HyperlinkListener;
+import javax.swing.event.HyperlinkEvent;
+import java.net.MalformedURLException;
+import java.io.IOException;
+import java.io.File;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.awt.event.ActionListener;
+import java.util.LinkedList;
+
+public class HelpWindow
+ implements ActionListener
+{
+ public static synchronized HelpWindow Instance ()
+ {
+ if (maInstance == null)
+ maInstance = new HelpWindow();
+ return maInstance;
+ }
+
+ public void loadFile (String sFilename)
+ {
+ File aFile = new File (sFilename);
+ try
+ {
+ loadURL (aFile.toURL());
+ }
+ catch (MalformedURLException e)
+ {
+ e.printStackTrace (System.err);
+ }
+ }
+ public void loadURL (String sURL)
+ {
+ try
+ {
+ loadURL (new URL (sURL));
+ }
+ catch (MalformedURLException e)
+ {
+ e.printStackTrace (System.err);
+ }
+ }
+
+
+
+
+ public void loadURL (URL aURL)
+ {
+ maHistory.addLast (aURL);
+ selectHistoryPage (maHistory.size()-1);
+ maFrame.toFront ();
+ }
+
+
+
+
+ private HelpWindow ()
+ {
+ try
+ {
+ maCurrentHistoryEntry = -1;
+ maHistory = new LinkedList();
+
+ maFrame = new JFrame ();
+ maFrame.addWindowListener (new WindowAdapter ()
+ {
+ public void windowClosing (WindowEvent e)
+ {
+ maInstance = null;
+ }
+ });
+ maContent = createContentWidget();
+
+ maFrame.getContentPane().setLayout (new GridBagLayout());
+ GridBagConstraints aConstraints = new GridBagConstraints ();
+ aConstraints.gridx = 0;
+ aConstraints.gridy = 0;
+ aConstraints.gridwidth = 3;
+ aConstraints.weightx = 1;
+ aConstraints.weighty = 1;
+ aConstraints.fill = GridBagConstraints.BOTH;
+ maFrame.getContentPane().add (new JScrollPane (maContent), aConstraints);
+
+ aConstraints = new GridBagConstraints();
+ aConstraints.gridx = 0;
+ aConstraints.gridy = 1;
+ maPrevButton = new JButton ("Prev");
+ maFrame.getContentPane().add (maPrevButton, aConstraints);
+ maPrevButton.addActionListener (this);
+
+ aConstraints = new GridBagConstraints();
+ aConstraints.gridx = 1;
+ aConstraints.gridy = 1;
+ maNextButton = new JButton ("Next");
+ maFrame.getContentPane().add (maNextButton, aConstraints);
+ maNextButton.addActionListener (this);
+
+ aConstraints = new GridBagConstraints();
+ aConstraints.gridx = 2;
+ aConstraints.gridy = 1;
+ aConstraints.anchor = GridBagConstraints.EAST;
+ JButton aButton = new JButton ("Close");
+ maFrame.getContentPane().add (aButton, aConstraints);
+ aButton.addActionListener (this);
+
+ maFrame.setSize (600,400);
+ maFrame.setVisible (true);
+ }
+ catch (Exception e)
+ {}
+ }
+
+ public void actionPerformed (java.awt.event.ActionEvent e)
+ {
+ if (e.getActionCommand().equals("Prev"))
+ {
+ selectHistoryPage (maCurrentHistoryEntry - 1);
+ }
+ else if (e.getActionCommand().equals("Next"))
+ {
+ selectHistoryPage (maCurrentHistoryEntry + 1);
+ }
+ else if (e.getActionCommand().equals("Close"))
+ {
+ maFrame.dispose ();
+ maInstance = null;
+ }
+ }
+
+ private JEditorPane createContentWidget ()
+ {
+ JEditorPane aContent = new JEditorPane ();
+ aContent.setEditable (false);
+ aContent.addHyperlinkListener (new HyperlinkListener()
+ {
+ public void hyperlinkUpdate (HyperlinkEvent e)
+ {
+ if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
+ HelpWindow.Instance().loadURL (e.getURL());
+ }
+ });
+ return aContent;
+ }
+
+ private void selectHistoryPage (int i)
+ {
+ if (i < 0)
+ i = 0;
+ else if (i >= maHistory.size()-1)
+ i = maHistory.size()-1;
+ if (i != maCurrentHistoryEntry)
+ {
+ URL aURL = (URL)maHistory.get (i);
+ try
+ {
+ maContent.setPage (aURL);
+ }
+ catch (java.io.IOException ex)
+ {
+ ex.printStackTrace(System.err);
+ }
+
+ maCurrentHistoryEntry = i;
+ }
+
+ maPrevButton.setEnabled (maCurrentHistoryEntry > 0);
+ maNextButton.setEnabled (maCurrentHistoryEntry < maHistory.size()-1);
+ }
+
+ private static HelpWindow maInstance = null;
+ private JFrame maFrame;
+ private JEditorPane maContent;
+ private LinkedList maHistory;
+ private int maCurrentHistoryEntry;
+ private JButton maPrevButton;
+ private JButton maNextButton;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/Makefile
new file mode 100644
index 000000000000..d38799bed109
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/Makefile
@@ -0,0 +1,13 @@
+# $Id: Makefile,v 1.1 2003/06/13 16:30:18 af Exp $
+
+all : package
+
+ROOT=../../../..
+PACKAGE = org.openoffice.accessibility.awb
+SUBDIRS = canvas event tree view
+
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+package: subdirs $(CLASS_FILES)
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java
new file mode 100644
index 000000000000..86b642e8091c
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Canvas.java
@@ -0,0 +1,322 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.canvas;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.Toolkit;
+import java.awt.geom.Rectangle2D;
+import java.util.Iterator;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JViewport;
+import javax.swing.event.TreeSelectionEvent;
+import javax.swing.tree.TreePath;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleComponent;
+
+import org.openoffice.accessibility.misc.Options;
+
+/** This canvas displays accessible objects graphically. Each accessible
+ object with graphical representation is represented by an
+ CanvasShape object and has to be added by the
+ <member>addAccessible</member> member function.
+
+ <p>The canvas listens to selection events of the associated JTree and
+ highlights the first selected node of that tree.</p>
+*/
+public class Canvas
+ extends JPanel
+{
+ // This constant can be passed to SetZoomMode to always show the whole screen.
+ public static final int WHOLE_SCREEN = -1;
+
+ public Canvas ()
+ {
+ super (true);
+ maShapeList = new ShapeContainer (this);
+ maMouseObserver = new MouseObserver (this);
+ maTree = null;
+ mnHOffset = 0;
+ mnVOffset = 0;
+ mnScale = 1;
+ maLastWidgetSize = new Dimension (0,0);
+ }
+
+
+
+ /** Tell the canvas which tree to use to highlight accessible
+ objects and to observe for changes in the tree structure.
+ */
+ public void SetTree (javax.swing.JTree aTree)
+ {
+ if (aTree != maTree)
+ {
+ maTree = aTree;
+ maShapeList.SetTree (maTree);
+ maMouseObserver.SetTree (maTree);
+ }
+ }
+
+
+
+
+ private void Clear ()
+ {
+ maShapeList.Clear();
+ }
+
+
+
+
+ public Iterator GetShapeIterator ()
+ {
+ return maShapeList.GetIterator();
+ }
+
+
+
+
+ public void paintComponent (Graphics g)
+ {
+ synchronized (g)
+ {
+ super.paintComponent (g);
+
+ Graphics2D g2 = (Graphics2D)g;
+ if (Options.GetBoolean("Antialiasing"))
+ g2.setRenderingHint (RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ else
+ g2.setRenderingHint (RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_OFF);
+
+ setupTransformation ();
+ g2.translate (mnHOffset, mnVOffset);
+ g2.scale (mnScale, mnScale);
+
+ // Draw the screen representation to give a hint of the location of the
+ // accessible object on the screen.
+ Dimension aScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Rectangle2D.Double aScreen = new Rectangle2D.Double (
+ 0,
+ 0,
+ aScreenSize.getWidth(),
+ aScreenSize.getHeight());
+ // Fill the screen rectangle and draw a frame arround it to increase its visibility.
+ g2.setColor (new Color (250,240,230));
+ g2.fill (aScreen);
+ g2.setColor (Color.BLACK);
+ g2.draw (aScreen);
+
+ synchronized (maShapeList)
+ {
+ Iterator aShapeIterator = maShapeList.GetIterator();
+ boolean bShowDescriptions = Options.GetBoolean ("ShowDescriptions");
+ boolean bShowNames = Options.GetBoolean ("ShowNames");
+ boolean bShowText = Options.GetBoolean ("ShowText");
+ while (aShapeIterator.hasNext())
+ {
+ CanvasShape aCanvasShape =
+ (CanvasShape)aShapeIterator.next();
+ try
+ {
+ aCanvasShape.paint (
+ g2,
+ bShowDescriptions, bShowNames, bShowText);
+ }
+ catch (Exception aException)
+ {
+ System.err.println ("caught exception while painting a shape:"
+ + aException);
+ aException.printStackTrace (System.err);
+ }
+ }
+ }
+
+ // Paint highlighted frame around active object as the last thing.
+ if (maActiveObject != null)
+ maActiveObject.paint_highlight (g2);
+ }
+ }
+
+
+
+
+ /** Set up the transformation so that the graphical display can show a
+ centered representation of the whole screen.
+ */
+ private void setupTransformation ()
+ {
+ // Turn off scrollbars when showing the whole screen. Otherwise show them when needed.
+ JViewport aViewport = (JViewport)getParent();
+ JScrollPane aScrollPane = (JScrollPane)aViewport.getParent();
+ int nZoomMode = Options.GetInteger ("ZoomMode", WHOLE_SCREEN);
+ if (nZoomMode == WHOLE_SCREEN)
+ {
+ if (aScrollPane.getHorizontalScrollBarPolicy()
+ != JScrollPane.HORIZONTAL_SCROLLBAR_NEVER)
+ aScrollPane.setHorizontalScrollBarPolicy (
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ if (aScrollPane.getVerticalScrollBarPolicy()
+ != JScrollPane.VERTICAL_SCROLLBAR_NEVER)
+ aScrollPane.setVerticalScrollBarPolicy (
+ JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+ }
+ else
+ {
+ if (aScrollPane.getHorizontalScrollBarPolicy()
+ != JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED)
+ aScrollPane.setHorizontalScrollBarPolicy (
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+ if (aScrollPane.getVerticalScrollBarPolicy()
+ != JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED)
+ aScrollPane.setVerticalScrollBarPolicy (
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+ }
+
+ Dimension aScreenSize = Toolkit.getDefaultToolkit().getScreenSize();
+ Dimension aWidgetSize = aViewport.getSize();
+ {
+ if ((aScreenSize.getWidth() > 0) && (aScreenSize.getHeight() > 0))
+ {
+ if (nZoomMode == WHOLE_SCREEN)
+ {
+ // Calculate the scales that would map the screen onto the
+ // widget in both of the coordinate axes and select the
+ // smaller
+ // of the two: it maps the screen onto the widget in both
+ // axes at the same time.
+ double nHScale = (aWidgetSize.getWidth() - 10)
+ / aScreenSize.getWidth();
+ double nVScale = (aWidgetSize.getHeight() - 10)
+ / aScreenSize.getHeight();
+ if (nHScale < nVScale)
+ mnScale = nHScale;
+ else
+ mnScale = nVScale;
+ }
+ else
+ {
+ mnScale = nZoomMode / 100.0;
+ }
+
+ // Calculate offsets that center the scaled screen inside
+ // the widget.
+ mnHOffset = (aWidgetSize.getWidth()
+ - mnScale*aScreenSize.getWidth()) / 2.0;
+ mnVOffset = (aWidgetSize.getHeight()
+ - mnScale*aScreenSize.getHeight()) / 2.0;
+ if (mnHOffset < 0)
+ mnHOffset = 0;
+ if (mnVOffset < 0)
+ mnVOffset = 0;
+
+ setPreferredSize (new Dimension (
+ (int)(2*mnHOffset + mnScale * aScreenSize.getWidth()),
+ (int)(2*mnVOffset + mnScale * aScreenSize.getHeight())));
+ revalidate ();
+ }
+ else
+ {
+ // In case of a degenerate (not yet initialized?) screen size
+ // use some meaningless default values.
+ mnScale = 1;
+ mnHOffset = 0;
+ mnVOffset = 0;
+ }
+ }
+ maLastWidgetSize = aWidgetSize;
+ }
+
+
+
+ protected boolean HighlightObject (CanvasShape aNewActiveObject)
+ {
+ if (aNewActiveObject != maActiveObject)
+ {
+ if (maActiveObject != null)
+ maActiveObject.Highlight (false);
+
+ maActiveObject = aNewActiveObject;
+ if (maActiveObject != null)
+ {
+ /* if (maTree != null)
+ {
+ TreePath aPath = new TreePath (
+ maActiveObject.GetNode().GetPath());
+ maTree.scrollPathToVisible (aPath);
+ maTree.setSelectionPath (aPath);
+ maTree.repaint ();
+ }
+ */
+ maActiveObject.Highlight (true);
+ }
+ repaint ();
+ return true;
+ }
+ else
+ return false;
+ }
+
+
+
+
+ /** Called when the selection of the tree changes. Highlight the
+ corresponding graphical representation of the object.
+ */
+ public void SelectObject (javax.swing.tree.TreeNode aNode)
+ {
+ CanvasShape aCanvasShape = maShapeList.Get (aNode);
+ HighlightObject (aCanvasShape);
+ }
+
+
+
+
+ private int
+ mnXAnchor,
+ mnYAnchor,
+ maResizeFlag;
+ private double
+ mnHOffset,
+ mnVOffset,
+ mnScale;
+ private CanvasShape maActiveObject;
+ private javax.swing.JTree maTree;
+ // The size of the widget at the last call of setupTransformation()
+ private Dimension maLastWidgetSize;
+ private ShapeContainer maShapeList;
+ private MouseObserver maMouseObserver;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java
new file mode 100644
index 000000000000..f2595351a4f5
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/CanvasShape.java
@@ -0,0 +1,412 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.canvas;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Point;
+import java.awt.Rectangle;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.NoninvertibleTransformException;
+
+
+import com.sun.star.accessibility.*;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+
+class CanvasShape implements XAccessibleEventListener
+{
+ public final Color maHighlightColor = Color.red;
+ public final Color maSelectionColor = Color.green;
+ public final Color maFocusColor = Color.blue;
+
+ public CanvasShape (javax.swing.tree.TreeNode aNode, Canvas aCanvas)
+ {
+ maNode = aNode;
+ msName = "<no name>";
+ msDescription = "<no description>";
+ maShape = new Rectangle2D.Double (-10,-10,10,10);
+ maPosition = new Point (-10,-10);
+ maSize = new Dimension (10,10);
+ maFgColor = java.awt.Color.black;
+ maBgColor = Color.blue;
+ mnRole = -1;
+ mbHighlighted = false;
+ mbSelected = false;
+ mbFocused = false;
+ maCanvas = aCanvas;
+
+ Update ();
+ }
+
+
+
+
+ public javax.swing.tree.TreePath getNodePath (javax.swing.tree.TreeNode node)
+ {
+ javax.swing.tree.TreeNode parent = node.getParent();
+ return (parent != null) ?
+ getNodePath(parent).pathByAddingChild(node) :
+ new javax.swing.tree.TreePath(node);
+ }
+
+ public javax.swing.tree.TreePath getNodePath ()
+ {
+ return getNodePath(maNode);
+ }
+
+
+
+ /** Update the data obtained from the <type>AccessibilityNode</type>
+ object.
+ */
+ public void Update ()
+ {
+ if (maNode instanceof XAccessible) {
+ mxContext = ((XAccessible) maNode).getAccessibleContext();
+ mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface(
+ XAccessibleComponent.class, mxContext);
+ }
+
+ if (mxContext != null)
+ {
+ msName = mxContext.getAccessibleName();
+ msDescription = mxContext.getAccessibleDescription();
+ mnRole = mxContext.getAccessibleRole();
+
+ // Extract the selected and focused flag.
+ XAccessibleStateSet xStateSet = mxContext.getAccessibleStateSet ();
+ if (xStateSet != null)
+ {
+ mbSelected = xStateSet.contains (AccessibleStateType.SELECTED);
+ mbFocused = xStateSet.contains (AccessibleStateType.FOCUSED);
+ }
+ }
+
+ UpdateGeometry ();
+
+ if (mxComponent != null)
+ {
+ // Note: alpha values in office 0..255 have to be mapped to
+ // 255..0 in Java
+ Color aCol = new Color (mxComponent.getForeground(), true);
+ maFgColor = new Color (aCol.getRed (),
+ aCol.getGreen (),
+ aCol.getBlue (),
+ 0xff - aCol.getAlpha ());
+ aCol = new Color (mxComponent.getBackground(), true);
+ maBgColor = new Color (aCol.getRed (),
+ aCol.getGreen (),
+ aCol.getBlue (),
+ 0xff - aCol.getAlpha ());
+ }
+ }
+
+
+
+ public void UpdateGeometry ()
+ {
+ if (mxComponent != null)
+ {
+ com.sun.star.awt.Point aLocationOnScreen =
+ mxComponent.getLocationOnScreen();
+ com.sun.star.awt.Size aSizeOnScreen = mxComponent.getSize();
+ maPosition = new Point (
+ aLocationOnScreen.X,
+ aLocationOnScreen.Y);
+ maSize = new Dimension (
+ aSizeOnScreen.Width,
+ aSizeOnScreen.Height);
+ }
+ }
+
+
+
+ /** Paint the object into the specified canvas. It is transformed
+ according to the specified offset and scale.
+ */
+ public void paint (
+ Graphics2D g,
+ boolean bShowDescription,
+ boolean bShowName,
+ boolean bShowText)
+ {
+ try{
+ // Transform the object's position and size according to the
+ // specified offset and scale.
+ Point aLocation = new Point();
+ maShape = new Rectangle2D.Double (
+ maPosition.x,
+ maPosition.y,
+ maSize.width,
+ maSize.height);
+ maTransformation = g.getTransform();
+
+ // Fill the object's bounding box with its background color if it
+ // has no children.
+ if (mxContext.getAccessibleChildCount() == 0)
+ {
+ g.setColor (maBgColor);
+ g.fill (maShape);
+ }
+
+ // Remove alpha channel from color before drawing the frame.
+ Color color = maFgColor;
+ if (maFgColor.getAlpha()<128)
+ color = new Color (maFgColor.getRed(), maFgColor.getGreen(), maFgColor.getBlue());
+ g.setColor (color);
+ g.draw (maShape);
+
+ if (mbFocused)
+ {
+ g.setColor (maFocusColor);
+ for (int x=0; x<=2; x++)
+ for (int y=0; y<=2; y++)
+ g.fill (
+ new Rectangle2D.Double (
+ maShape.x + x/2.0 * maShape.width-3,
+ maShape.y + y/2.0 * maShape.height-3,
+ 6,
+ 6));
+ }
+ if (mbSelected)
+ {
+ g.setColor (maSelectionColor);
+ for (int x=0; x<=2; x++)
+ for (int y=0; y<=2; y++)
+ g.draw (
+ new Rectangle2D.Double (
+ maShape.x + x/2.0 * maShape.width-2,
+ maShape.y + y/2.0 * maShape.height-2,
+ 4,
+ 4));
+ }
+
+ // Write the object's text OR name and description.
+ g.setColor (maFgColor);
+ if (bShowName)
+ paintName (g);
+ if (bShowDescription)
+ paintDescription (g);
+ if (bShowText)
+ paintText (g);
+ }
+ catch (Exception e)
+ { // don't care
+ }
+ }
+
+
+ public void paint_highlight (Graphics2D g)
+ {
+ if (mbHighlighted)
+ g.setColor (maHighlightColor);
+ else
+ g.setColor (maFgColor);
+ g.draw (maShape);
+ }
+
+
+
+
+ private void paintName (Graphics2D g)
+ {
+ g.drawString ("Name: " + msName,
+ (float)maShape.x+5,
+ (float)maShape.y+15);
+ }
+
+
+
+ private void paintDescription (Graphics2D g)
+ {
+ g.drawString ("Description: " + msDescription,
+ (float)maShape.x+5,
+ (float)maShape.y+35);
+ }
+
+
+
+
+ private void paintText (Graphics2D g)
+ {
+ XAccessibleText xText = null;
+ // get XAccessibleText
+ xText = (XAccessibleText)UnoRuntime.queryInterface(
+ XAccessibleText.class, mxContext);
+
+ // Draw every character in the text string.
+ if (xText != null)
+ {
+ String sText = xText.getText();
+ try
+ {
+ for(int i = 0; i < sText.length(); i++)
+ {
+ com.sun.star.awt.Rectangle aRect =
+ xText.getCharacterBounds(i);
+
+ double x = maShape.x + aRect.X;
+ double y = maShape.y + aRect.Y + aRect.Height;
+
+ g.drawString (sText.substring(i, i+1), (float)x, (float)y);
+ }
+ }
+ catch (com.sun.star.lang.IndexOutOfBoundsException e)
+ {}
+ }
+ }
+
+
+ /** Compute whether the specified point lies inside the object's
+ bounding box.
+ */
+ public boolean Contains (int x, int y)
+ {
+ Point2D aPosition = new Point2D.Double (x,y);
+ try
+ {
+ maTransformation.inverseTransform (aPosition, aPosition);
+ // System.out.println ("transformed "+x+","+y+" to "+aPosition);
+ }
+ catch (NoninvertibleTransformException aException)
+ {
+ return false;
+ }
+ return (maShape.contains (aPosition));
+ }
+
+ public void Highlight (boolean bFlag)
+ {
+ mbHighlighted = bFlag;
+ }
+
+ public boolean IsHighlighted ()
+ {
+ return mbHighlighted;
+ }
+
+ public Rectangle GetBBox ()
+ {
+ return new Rectangle (maPosition, maSize);
+ }
+
+ public Point getOrigin ()
+ {
+ return maPosition;
+ }
+
+ public Dimension GetSize ()
+ {
+ return maSize;
+ }
+
+ public int getRole ()
+ {
+ return mnRole;
+ }
+
+ public XAccessibleContext getContext ()
+ {
+ return mxContext;
+ }
+
+ public XAccessibleComponent getComponent ()
+ {
+ return mxComponent;
+ }
+
+ public String toString ()
+ {
+ return ">"+msName+", "+msDescription+" +"+maPosition.x+"+"+maPosition.y
+ +"x"+maSize.width+"x"+maSize.height+"<";
+ }
+
+ /** */
+ public void notifyEvent(com.sun.star.accessibility.AccessibleEventObject aEvent) {
+ try {
+ switch (aEvent.EventId) {
+ case AccessibleEventId.BOUNDRECT_CHANGED:
+ case AccessibleEventId.VISIBLE_DATA_CHANGED:
+ UpdateGeometry ();
+ maCanvas.repaint();
+ break;
+ default:
+ break;
+ }
+ } catch (Exception aException) {
+ System.err.println ("caught exception while updating a shape:"
+ + aException);
+ aException.printStackTrace (System.err);
+ }
+ }
+
+ /** Callback for disposing events.
+ */
+ public void disposing (com.sun.star.lang.EventObject e)
+ {
+ System.out.println ("Disposing");
+ }
+
+
+
+
+ private Canvas
+ maCanvas;
+ private javax.swing.tree.TreeNode
+ maNode;
+ private XAccessibleContext
+ mxContext;
+ private XAccessibleComponent
+ mxComponent;
+ private String
+ msDescription,
+ msName;
+ private Rectangle2D.Double maShape;
+ private AffineTransform maTransformation;
+ private Point maPosition;
+ private Dimension
+ maTransformedSize,
+ maSize;
+ private Color
+ maFgColor,
+ maBgColor;
+ private boolean
+ // Highlighting objects is an internal concept. Corresponds to selection in the tree view.
+ mbHighlighted,
+ // Set when the accessible object is selected.
+ mbSelected,
+ // Set when the accessible object is focused.
+ mbFocused;
+ private int
+ mnRole;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile
new file mode 100644
index 000000000000..8d9688433ff9
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/Makefile
@@ -0,0 +1,15 @@
+# $Id: Makefile,v 1.1 2003/06/13 16:30:21 af Exp $
+
+all : package
+
+ROOT=../../../../..
+PACKAGE = org.openoffice.accessibility.awb.canvas
+SUBDIRS =
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+
+package : $(CLASS_FILES)
+
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java
new file mode 100644
index 000000000000..3e7e2807906d
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/MouseObserver.java
@@ -0,0 +1,104 @@
+package org.openoffice.accessibility.awb.canvas;
+
+import java.awt.Dimension;
+import java.awt.event.InputEvent;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.util.Iterator;
+import javax.swing.tree.TreePath;
+
+
+/** Observe the mouse and highlight shapes of the canvas when clicked.
+*/
+public class MouseObserver
+ implements MouseListener,
+ MouseMotionListener
+{
+ public MouseObserver (Canvas aCanvas)
+ {
+ maCanvas = aCanvas;
+ maCanvas.addMouseListener (this);
+ maCanvas.addMouseMotionListener (this);
+ }
+
+
+ public void SetTree (javax.swing.JTree aTree)
+ {
+ maTree = aTree;
+ }
+
+ public void mouseClicked (MouseEvent e)
+ {}
+
+ public void mousePressed (MouseEvent e)
+ {
+ CanvasShape aObjectUnderMouse = FindCanvasShapeUnderMouse (e);
+ maTree.clearSelection();
+ if (aObjectUnderMouse != null)
+ {
+ TreePath aPath = aObjectUnderMouse.getNodePath();
+ if ((e.getModifiers() & InputEvent.CTRL_MASK) != 0)
+ maTree.expandPath (aPath);
+ // Selecting the entry will eventually highlight the shape.
+ maTree.setSelectionPath (aPath);
+ maTree.makeVisible (aPath);
+ }
+ }
+
+ public void mouseReleased (MouseEvent e)
+ {}
+
+ public void mouseEntered (MouseEvent e)
+ {}
+
+ public void mouseExited (MouseEvent e)
+ {}
+
+ public void mouseDragged (MouseEvent e)
+ {
+ }
+
+ public void mouseMoved (MouseEvent e)
+ {
+ if ((e.getModifiers() & InputEvent.SHIFT_MASK) != 0)
+ maCanvas.HighlightObject (FindCanvasShapeUnderMouse (e));
+ }
+
+
+ /** Search for the smallest shape that contains the mouse position.
+ */
+ protected CanvasShape FindCanvasShapeUnderMouse (MouseEvent e)
+ {
+ Dimension aSmallestSize = null;
+ Iterator maShapeIterator = maCanvas.GetShapeIterator();
+ CanvasShape aShapeUnderMouse = null;
+ while (maShapeIterator.hasNext())
+ {
+ CanvasShape aShape = (CanvasShape)maShapeIterator.next();
+ if (aShape != null)
+ if (aShape.Contains (e.getX(),e.getY()))
+ {
+ if (aShapeUnderMouse == null)
+ {
+ aSmallestSize = aShape.GetSize();
+ aShapeUnderMouse = aShape;
+ }
+ else
+ {
+ Dimension aSize = aShape.GetSize();
+ if (aSize.getWidth()<aSmallestSize.getWidth()
+ || aSize.getHeight()<aSmallestSize.getHeight())
+ {
+ aSmallestSize = aSize;
+ aShapeUnderMouse = aShape;
+ }
+ }
+ }
+ }
+ return aShapeUnderMouse;
+ }
+
+ private Canvas maCanvas;
+ private javax.swing.JTree maTree;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java b/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java
new file mode 100644
index 000000000000..03ad4bf38c46
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/ShapeContainer.java
@@ -0,0 +1,237 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.canvas;
+
+import java.awt.Rectangle;
+import java.util.Iterator;
+import javax.swing.event.TreeModelListener;
+import javax.swing.event.TreeExpansionListener;
+import javax.swing.event.TreeWillExpandListener;
+import javax.swing.event.TreeExpansionEvent;
+import javax.swing.event.TreeModelEvent;
+import javax.swing.tree.TreeNode;
+
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+
+/** Each canvas has a shape container that is responsible for maintaining
+ a collection of shapes that are displayed by the canvas.
+*/
+public class ShapeContainer
+ implements TreeModelListener,
+ TreeExpansionListener,
+ TreeWillExpandListener
+{
+ public ShapeContainer (Canvas aCanvas)
+ {
+ maShapeList = new java.util.Hashtable();
+ maBoundingBox = new Rectangle (0,0,100,100);
+ maCanvas = aCanvas;
+ maTree = null;
+ }
+
+
+
+
+ public synchronized void SetTree (javax.swing.JTree aTree)
+ {
+ if (aTree != maTree)
+ {
+ if (maTree != null)
+ {
+ maTree.getModel().removeTreeModelListener (this);
+ maTree.removeTreeExpansionListener (this);
+ maTree.removeTreeWillExpandListener (this);
+ }
+
+ Clear();
+
+ maTree = aTree;
+
+ maTree.getModel().addTreeModelListener (this);
+ maTree.addTreeExpansionListener (this);
+ maTree.addTreeWillExpandListener (this);
+ }
+ }
+
+
+
+
+ public synchronized boolean AddNode (TreeNode aNode)
+ {
+ CanvasShape aShape = (CanvasShape)maShapeList.get (aNode);
+ if (aShape == null)
+ {
+ aShape = new CanvasShape (aNode, maCanvas);
+
+ if (aNode instanceof XAccessibleEventBroadcaster)
+ ((XAccessibleEventBroadcaster) aNode).addEventListener(aShape);
+
+ // Update bounding box that includes all objects.
+ if (maShapeList.size() == 0)
+ maBoundingBox = aShape.GetBBox();
+ else
+ maBoundingBox = maBoundingBox.union (aShape.GetBBox());
+
+ maShapeList.put (aNode, aShape);
+
+ maCanvas.repaint();
+
+ return true;
+ }
+ else
+ return false;
+ }
+
+
+ /**
+ */
+ public synchronized boolean RemoveNode (TreeNode aNode)
+ {
+ CanvasShape aShape = (CanvasShape)maShapeList.get (aNode);
+ if (aShape != null)
+ {
+ if (aNode instanceof XAccessibleEventBroadcaster)
+ ((XAccessibleEventBroadcaster) aNode).removeEventListener(aShape);
+
+ maShapeList.remove (aNode);
+ maCanvas.SelectObject (null);
+ maCanvas.repaint ();
+ return true;
+ }
+ else
+ return false;
+ }
+
+
+
+
+ public synchronized void Clear ()
+ {
+ maShapeList.clear ();
+ }
+
+
+
+
+ public Iterator GetIterator ()
+ {
+ return maShapeList.values().iterator ();
+ }
+
+
+
+
+ public CanvasShape Get (TreeNode aNode)
+ {
+ if (aNode != null) {
+ return (CanvasShape)maShapeList.get (aNode);
+ }
+ return null;
+ }
+
+
+ private void PrintMessage (String aMessage, java.util.EventObject aEvent)
+ {
+ // System.out.println ("ShapeContainer: " + aMessage + ": " + aEvent);
+ }
+
+ public void treeNodesChanged (TreeModelEvent aEvent)
+ {
+ PrintMessage ("treeNodesChanged", aEvent);
+ }
+ public void treeNodesInserted (TreeModelEvent aEvent)
+ {
+ PrintMessage ("treeNodesInserted", aEvent);
+ Object[] aNewNodes = aEvent.getChildren();
+ for (int i=0; i<aNewNodes.length; i++)
+ AddNode ((TreeNode)aNewNodes[i]);
+ }
+ public void treeNodesRemoved (TreeModelEvent aEvent)
+ {
+ PrintMessage ("treeNodesRemoved", aEvent);
+ Object[] aOldNodes = aEvent.getChildren();
+ for (int i=0; i<aOldNodes.length; i++)
+ RemoveNode ((TreeNode)aOldNodes[i]);
+ }
+ public void treeStructureChanged (TreeModelEvent aEvent)
+ {
+ PrintMessage ("treeStructureChanged", aEvent);
+ TreeNode aNode = (TreeNode)aEvent.getTreePath().getLastPathComponent();
+ RemoveAllChildren(aNode);
+ AddAllChildren(aNode);
+ }
+
+ public void treeWillExpand (TreeExpansionEvent aEvent)
+ {
+ PrintMessage ("treeWillExpand", aEvent);
+ }
+ public void treeWillCollapse (TreeExpansionEvent aEvent)
+ {
+ PrintMessage ("treeWillCollapse", aEvent);
+ TreeNode aNode = (TreeNode)aEvent.getPath().getLastPathComponent();
+ RemoveAllChildren (aNode);
+ }
+ public void treeExpanded (TreeExpansionEvent aEvent)
+ {
+ PrintMessage ("treeExpanded", aEvent);
+ TreeNode aNode = (TreeNode)aEvent.getPath().getLastPathComponent();
+ AddAllChildren (aNode);
+ }
+ public void treeCollapsed (TreeExpansionEvent aEvent)
+ {
+ PrintMessage ("treeCollapsed", aEvent);
+ }
+
+ private void AddAllChildren (TreeNode aNode) {
+ java.util.Enumeration aChildList = aNode.children();
+ while (aChildList.hasMoreElements()) {
+ TreeNode aChild = (TreeNode) aChildList.nextElement();
+ if (aChild != null) {
+ AddAllChildren (aChild);
+ AddNode (aChild);
+ }
+ }
+ }
+
+ private void RemoveAllChildren (TreeNode aNode) {
+ java.util.Enumeration aChildList = aNode.children();
+ while (aChildList.hasMoreElements()) {
+ TreeNode aChild = (TreeNode) aChildList.nextElement();
+ if (aChild != null) {
+ RemoveAllChildren (aChild);
+ RemoveNode (aChild);
+ }
+ }
+ }
+
+
+ private java.util.Hashtable maShapeList;
+ private Rectangle maBoundingBox;
+ private Canvas maCanvas;
+ private javax.swing.JTree maTree;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common
new file mode 100644
index 000000000000..df47f1bc8028
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.common
@@ -0,0 +1,34 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ CanvasShape.java \
+ Canvas.java \
+ MouseObserver.java \
+ ShapeContainer.java
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk
new file mode 100644
index 000000000000..1e56c10c98b4
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/canvas/makefile.mk
@@ -0,0 +1,55 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..$/..
+TARGET = awb_canvas
+PACKAGE = org$/openoffice$/accessibility$/awb$/canvas
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+#JARTARGET = $(TARGET).jar
+#JARCOMPRESS = TRUE
+JARCLASSDIRS = $(PACKAGE) org/openoffice/java/accessibility/awb
+#CUSTOMMANIFESTFILE = manifest
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/makefile.common
new file mode 100644
index 000000000000..0bf38a0fada2
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/makefile.common
@@ -0,0 +1,30 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JAVAFILES = \
+ AccessibilityWorkBench.java \
+ HelpWindow.java
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk
new file mode 100644
index 000000000000..a07d631d6f11
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/makefile.mk
@@ -0,0 +1,57 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..
+TARGET = java_awb
+PACKAGE = org$/openoffice$/accessibility$/awb
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+JARFILES = jurt.jar unoil.jar ridl.jar
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+JARTARGET = $(TARGET).jar
+JARCOMPRESS = TRUE
+JARCLASSDIRS = $(PACKAGE) \
+ org$/openoffice$/accessibility$/misc
+CUSTOMMANIFESTFILE = manifest
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/manifest b/accessibility/workben/org/openoffice/accessibility/awb/manifest
new file mode 100644
index 000000000000..36111c54081d
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/manifest
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: org.openoffice.accessibility.awb.AccessibilityWorkBench
+Class-Path: classes.jar ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar xt.jar jaxp.jar
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java
new file mode 100644
index 000000000000..159467778554
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityModel.java
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import javax.swing.SwingUtilities;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XTopWindow;
+import com.sun.star.awt.XTopWindowListener;
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+import com.sun.star.accessibility.XAccessibleEventListener;
+
+/**
+ *
+ */
+public abstract class AccessibilityModel extends javax.swing.tree.DefaultTreeModel {
+
+ protected java.util.Hashtable nodeList;
+ protected static DefaultMutableTreeNode disconnectedRootNode =
+ new DefaultMutableTreeNode("<not connected>");
+
+ /** Creates a new instance of AccessibilityModel */
+ public AccessibilityModel() {
+ super(disconnectedRootNode, false);
+ nodeList = new java.util.Hashtable();
+ }
+
+ /* Convenience method that creates a new Toolkit node from xToolkit
+ * and sets as the new root object of the tree.
+ */
+ public synchronized void setRoot(XExtendedToolkit xToolkit) {
+ if (xToolkit != null) {
+ try {
+ // remove old root node as topwindow listener
+ if (getRoot() instanceof ToolkitNode) {
+ ToolkitNode tn = (ToolkitNode) getRoot();
+ if (tn.xToolkit != null) {
+ tn.xToolkit.removeTopWindowListener(tn);
+ }
+ }
+ nodeList.clear();
+ setRoot(new ToolkitNode(xToolkit, this));
+ xToolkit.addTopWindowListener((ToolkitNode) getRoot());
+ } catch (com.sun.star.uno.RuntimeException e) {
+ // FIXME: error message !
+ }
+ }
+ }
+
+ /* Appends the new child to parent's child list */
+ public void addNodeInto(MutableTreeNode newChild, MutableTreeNode parent) {
+ int index = parent.getChildCount();
+ if (newChild != null && newChild.getParent() == parent) {
+ index -= 1;
+ }
+ insertNodeInto(newChild, parent, index);
+ }
+
+ /** Adds listener to the listener chain of node */
+ public static void addEventListener(TreeNode node, XAccessibleEventListener listener) {
+ if (node instanceof AccessibilityNode) {
+ ((AccessibilityNode) node).addEventListener(listener);
+ }
+ }
+
+ /** Removes listener from the listener chain of node */
+ public static void removeEventListener(TreeNode node, XAccessibleEventListener listener) {
+ if (node instanceof AccessibilityNode) {
+ ((AccessibilityNode) node).removeEventListener(listener);
+ }
+ }
+
+ protected abstract AccessibilityNode createWindowNode(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext);
+ protected abstract AccessibilityNode createNode(XAccessible xAccessible);
+
+ /** Adds xAccessible,node to the internal hashtable */
+ public AccessibilityNode putNode(XAccessible xAccessible, AccessibilityNode node) {
+ if (xAccessible != null) {
+ String oid = UnoRuntime.generateOid(xAccessible);
+ java.lang.ref.WeakReference ref = (java.lang.ref.WeakReference)
+ nodeList.put(oid, new java.lang.ref.WeakReference(node));
+ if (ref != null) {
+ return (AccessibilityNode) ref.get();
+ }
+ }
+ return null;
+ }
+
+ /** Returns the AccessibilityNode for xAccessible */
+ public AccessibilityNode findNode(XAccessible xAccessible) {
+ if (xAccessible != null) {
+ String oid = UnoRuntime.generateOid(xAccessible);
+ java.lang.ref.WeakReference ref =
+ (java.lang.ref.WeakReference) nodeList.get(oid);
+ if (ref != null) {
+ return (AccessibilityNode) ref.get();
+ }
+ }
+ return null;
+ }
+
+ /** Removes the AccessibilityNode for xAccessible from the internal hashtable */
+ public AccessibilityNode removeNode(XAccessible xAccessible) {
+ if (xAccessible != null) {
+ String oid = UnoRuntime.generateOid(xAccessible);
+ java.lang.ref.WeakReference ref =
+ (java.lang.ref.WeakReference) nodeList.remove(oid);
+ if (ref != null) {
+ return (AccessibilityNode) ref.get();
+ }
+ }
+ return null;
+ }
+
+ public AccessibilityNode removeNode(Object o) {
+ if (o instanceof XAccessible) {
+ return removeNode((XAccessible) o);
+ }
+ return null;
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java
new file mode 100644
index 000000000000..93823e9a1941
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityNode.java
@@ -0,0 +1,166 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import org.openoffice.accessibility.misc.AccessibleEventMulticaster;
+
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.SwingUtilities;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+import com.sun.star.accessibility.XAccessibleEventListener;
+
+import com.sun.star.uno.UnoRuntime;
+
+class AccessibilityNode extends DefaultMutableTreeNode implements XAccessible,
+ XAccessibleEventListener, XAccessibleEventBroadcaster {
+
+ protected AccessibilityModel treeModel;
+ protected XAccessibleContext unoAccessibleContext;
+
+ private XAccessibleEventListener listener;
+
+ public AccessibilityNode(AccessibilityModel treeModel) {
+ this.treeModel = treeModel;
+ }
+
+ protected void finalize() throws java.lang.Throwable {
+ if (userObject != null) {
+ treeModel.removeNode(userObject);
+ }
+ }
+
+ /** Sets the XAccessibleContext object of this node */
+ public void setAccessibleContext(XAccessibleContext xAccessibleContext) {
+ unoAccessibleContext = xAccessibleContext;
+ }
+
+ /** Returns the XAccessibleContext object of this node */
+ public XAccessibleContext getAccessibleContext() {
+ return unoAccessibleContext;
+ }
+
+ /** Attaches or Detaches the itself as listener to unoAccessibleContext */
+ protected void setAttached(boolean attach) {
+ XAccessibleContext xAccessibleContext = unoAccessibleContext;
+ if (xAccessibleContext != null) {
+ try {
+ XAccessibleEventBroadcaster xAccessibleEventBroadcaster =
+ (XAccessibleEventBroadcaster) UnoRuntime.queryInterface(
+ XAccessibleEventBroadcaster.class, xAccessibleContext);
+ if (xAccessibleEventBroadcaster != null) {
+ if (attach) {
+ xAccessibleEventBroadcaster.addEventListener(this);
+ } else {
+ xAccessibleEventBroadcaster.removeEventListener(this);
+ }
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ // FIXME: error message !
+ }
+ }
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ XAccessibleEventListener listener = this.listener;
+ if (listener != null) {
+ listener.disposing(eventObject);
+ }
+
+ treeModel.removeNode(userObject);
+ userObject = null;
+ unoAccessibleContext = null;
+ // FIXME: mark the object as being disposed in the tree view !
+ }
+
+ protected void handleChildRemoved(XAccessible xAccessible) {
+ final AccessibilityNode node = treeModel.findNode(xAccessible);
+ if (node != null) {
+ SwingUtilities.invokeLater(new java.lang.Runnable() {
+ public void run() {
+ treeModel.removeNodeFromParent(node);
+ }
+ });
+ }
+ }
+
+ protected void handleChildAdded(XAccessible xAccessible) {
+ final AccessibilityNode parent = this;
+ final AccessibilityNode node = treeModel.createNode(xAccessible);
+ if (node != null) {
+ SwingUtilities.invokeLater(new java.lang.Runnable() {
+ public void run() {
+ try {
+ XAccessibleContext xAC = node.getAccessibleContext();
+ if (xAC != null) {
+ treeModel.insertNodeInto(node, parent,
+ xAC.getAccessibleIndexInParent());
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ // FIXME: output
+ }
+ }
+ });
+ }
+ }
+
+ public void notifyEvent(AccessibleEventObject accessibleEventObject) {
+ if (accessibleEventObject.EventId == AccessibleEventId.CHILD) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, accessibleEventObject.OldValue);
+ if (xAccessible != null) {
+ handleChildRemoved(xAccessible);
+ }
+
+ xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, accessibleEventObject.NewValue);
+ if (xAccessible != null) {
+ handleChildAdded(xAccessible);
+ }
+ }
+
+ XAccessibleEventListener listener = this.listener;
+ if (listener != null) {
+ listener.notifyEvent(accessibleEventObject);
+ }
+ }
+
+ public synchronized void addEventListener(com.sun.star.accessibility.XAccessibleEventListener xAccessibleEventListener) {
+ listener = AccessibleEventMulticaster.add(listener, xAccessibleEventListener);
+ }
+
+ public synchronized void removeEventListener(com.sun.star.accessibility.XAccessibleEventListener xAccessibleEventListener) {
+ listener = AccessibleEventMulticaster.remove(listener, xAccessibleEventListener);
+ }
+}
+
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java
new file mode 100644
index 000000000000..e485c993706a
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTree.java
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.DefaultMutableTreeNode;
+
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/**
+ *
+ */
+public class AccessibilityTree extends javax.swing.JTree {
+
+ /** Creates a new instance of AccessibilityTree */
+ public AccessibilityTree(javax.swing.tree.TreeModel model) {
+ super(model);
+ // always show handles to indicate expandable / collapsable
+ showsRootHandles = true;
+ }
+
+ public void setToolkit(XExtendedToolkit xToolkit) {
+ AccessibilityModel model = (AccessibilityModel) getModel();
+ if (model != null) {
+ // hide the root node when connected
+ setRootVisible(xToolkit == null);
+ // update the root node
+ model.setRoot(xToolkit);
+ model.reload();
+ }
+ }
+
+ public String convertValueToText(Object value, boolean selected,
+ boolean expanded, boolean leaf, int row, boolean hasFocus) {
+
+ if (value instanceof DefaultMutableTreeNode) {
+ DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
+
+ Object userObject = node.getUserObject();
+ if (userObject != null && userObject instanceof XAccessible) {
+ XAccessible xAccessible = (XAccessible) userObject;
+ try {
+ XAccessibleContext xAC = xAccessible.getAccessibleContext();
+ if (xAC != null) {
+ String name = xAC.getAccessibleName();
+ if (name.length() == 0) {
+ name = new String ("<no name>");
+ }
+ value = name + " / " + NameProvider.getRoleName(xAC.getAccessibleRole());
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ value = "???";
+ }
+ }
+ }
+
+ return super.convertValueToText(value, selected, expanded, leaf, row, hasFocus);
+ }
+
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java
new file mode 100644
index 000000000000..6069c8f5f5ee
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/AccessibilityTreeModel.java
@@ -0,0 +1,217 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.lang.DisposedException;
+import com.sun.star.lang.IndexOutOfBoundsException;
+
+import org.openoffice.accessibility.misc.OfficeConnection;
+import org.openoffice.accessibility.awb.event.EventQueue;
+
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeNode;
+
+
+public class AccessibilityTreeModel
+ extends DefaultTreeModel
+{
+ public AccessibilityTreeModel ()
+ {
+ super (null);
+ setAsksAllowsChildren (false);
+
+ SetRootNode();
+ }
+
+
+
+ /** Release all resources.
+ */
+ synchronized public void Dispose ()
+ {
+ Clear ();
+ }
+
+
+
+ /** Calls to this method are dispatched to the given node but are
+ observed for exceptions.
+ */
+ synchronized public boolean isLeaf (Object aObject)
+ {
+ boolean bIsLeaf = true;
+
+ if (aObject != null)
+ {
+ AccessibilityNode aNode = (AccessibilityNode)aObject;
+ try
+ {
+ bIsLeaf = aNode.isLeaf();
+ }
+ catch (DisposedException aException)
+ {
+ System.out.println ("node is disposed. removing it");
+ /* TreeNode aParent = aNode.GetParent();
+ int nIndexInParent = aParent.getIndex (aNode);
+ aNode.removeFromParent ();
+ System.out.println ("" + aParent + " # " + aNode + " # "+ nIndexInParent);
+ nodesWereRemoved (
+ aParent, new int[]{nIndexInParent}, new
+ Object[]{aNode});
+ */
+ }
+ catch (Exception aException)
+ {
+ System.err.println ("caught exception in AccessibilityTreeModel.isLeaf():"
+ + aException);
+ aException.printStackTrace (System.err);
+ }
+ }
+
+ return bIsLeaf;
+ }
+
+
+
+
+ synchronized public int getChildCount (Object aObject)
+ {
+ AccessibilityNode aNode = (AccessibilityNode)aObject;
+ return aNode.getChildCount();
+ }
+
+
+
+
+ /** Return the requested child of aParent. If that child is not yet
+ known to the parent then try to create it.
+ */
+ synchronized public Object getChild (Object aParent, final int nIndex)
+ {
+ AccessibilityNode aChild = null;
+
+ final AccessibilityNode aParentNode = (AccessibilityNode)aParent;
+
+ // Try to get an existing child from the super class object.
+ aChild = aParentNode.GetChildNoCreate (nIndex);
+
+ // When the requested child does not yet exist and this node is not a
+ // special node then create a new node.
+ if (aChild == null)
+ {
+ aChild = aParentNode.CreateChild (nIndex);
+ aParentNode.SetChild ((AccessibilityNode)aChild, nIndex);
+ /* EventQueue.Instance().AddEvent (new Runnable() { public void run() {
+ AccessibilityTreeModel.this.nodeWasInserted (
+ aParentNode, nIndex);
+ }});
+ */ }
+
+ return aChild;
+ }
+
+
+ synchronized public void nodeWasInserted (AccessibilityNode aParent, int nIndex)
+ {
+ nodesWereInserted (aParent, new int[]{nIndex});
+ nodeStructureChanged (aParent);
+
+ }
+
+
+
+
+ /** Clear the tree so that afterwards it has only the root node.
+ */
+ public void Clear ()
+ {
+ AccessibilityNode aRoot = (AccessibilityNode)getRoot();
+ aRoot.RemoveAllChildren();
+ SetRootNode();
+ nodeStructureChanged (aRoot);
+ }
+
+
+
+
+ private void SetRootNode ()
+ {
+ OfficeConnection aConnection = OfficeConnection.Instance();
+ AccessibilityNode aRoot;
+ if (aConnection!=null && aConnection.IsValid())
+ aRoot = new AccessibilityNode ("<connected>");
+ else
+ aRoot = new AccessibilityNode ("<not connected>");
+ setRoot (aRoot);
+ }
+
+
+
+
+ /** Add a new child to the root node.
+ */
+ public synchronized void AddTopLevelNode (AccessibilityNode aNode)
+ {
+ if (aNode != null)
+ {
+ if ( ! OfficeConnection.Instance().IsValid())
+ {
+ setRoot (null);
+ }
+
+ AccessibilityNode aRoot = (AccessibilityNode)getRoot();
+ if (aRoot == null)
+ {
+ aRoot = new AccessibilityNode ("<connected>");
+ setRoot (aRoot);
+ }
+
+ aNode.SetParent (aRoot);
+ aRoot.Append (aNode);
+ nodesWereInserted (aRoot, new int[]{aRoot.getIndex (aNode)});
+ }
+ }
+
+
+
+
+ /** Remove a node that is a direct child of the root.
+ */
+ public synchronized void RemoveTopLevelNode (AccessibilityNode aNode)
+ {
+ AccessibilityNode aRoot = (AccessibilityNode)getRoot();
+ if (aRoot != null)
+ {
+ int nIndex = aRoot.getIndex (aNode);
+ aRoot.Remove (aNode);
+ nodesWereRemoved (aRoot, new int[]{nIndex}, new Object[]{aNode});
+ }
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java
new file mode 100644
index 000000000000..f2b4c6f0e97f
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityModel.java
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.event.TreeExpansionListener;
+import javax.swing.event.TreeWillExpandListener;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/**
+ *
+ */
+public class DynamicAccessibilityModel extends AccessibilityModel implements TreeExpansionListener, TreeWillExpandListener {
+
+ /* Creates a AccessibilityNode object for a window */
+ protected AccessibilityNode createWindowNode(XAccessible xAccessible,
+ XAccessibleContext xAccessibleContext) {
+ if (xAccessible != null) {
+ // Some objects inherit XAccessible, but should not appear in
+ // the hierarchy as toplevels (like sub-menus), so they don't
+ // return an accessible context.
+ if (xAccessibleContext != null) {
+ AccessibilityNode node = new AccessibilityNode(this);
+ node.setUserObject(xAccessible);
+ node.setAccessibleContext(xAccessibleContext);
+ putNode(xAccessible, node);
+ return node;
+ }
+ }
+ return null;
+ }
+
+ /* Creates a DynamicAccessibilityNode object */
+ protected AccessibilityNode createNode(XAccessible xAccessible) {
+ if (xAccessible != null) {
+ try {
+ // Some objects inherit XAccessible, but should not appear in
+ // the hierarchy as toplevels (like sub-menus), so they don't
+ // return an accessible context.
+ XAccessibleContext xAccessibleContext = xAccessible.getAccessibleContext();
+ if (xAccessibleContext != null) {
+ AccessibilityNode node = new DynamicAccessibilityNode(this);
+ node.setUserObject(xAccessible);
+ node.setAccessibleContext(xAccessibleContext);
+ putNode(xAccessible, node);
+ return node;
+ }
+ } catch (com.sun.star.uno.RuntimeException e) {
+ }
+ }
+ return null;
+ }
+
+ public void treeCollapsed(javax.swing.event.TreeExpansionEvent treeExpansionEvent) {
+ TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent();
+ if (node instanceof DynamicAccessibilityNode) {
+ DynamicAccessibilityNode dynode = (DynamicAccessibilityNode) node;
+ dynode.clear();
+ }
+ }
+
+ public void treeExpanded(javax.swing.event.TreeExpansionEvent treeExpansionEvent) {
+ TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent();
+ if (node instanceof AccessibilityNode) {
+ // Calling oneway methods from an UNO thread may cause
+ // deadlocks, so adding the listeners here.
+ for (java.util.Enumeration e = node.children(); e.hasMoreElements(); ) {
+ ((AccessibilityNode) e.nextElement()).setAttached(true);
+ }
+ }
+ }
+
+ public void treeWillCollapse(javax.swing.event.TreeExpansionEvent treeExpansionEvent)
+ throws javax.swing.tree.ExpandVetoException {
+ TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent();
+ if (node instanceof AccessibilityNode) {
+ // Calling oneway methods from an UNO thread may cause
+ // deadlocks, so adding the listeners here.
+ for (java.util.Enumeration e = node.children(); e.hasMoreElements(); ) {
+ ((AccessibilityNode) e.nextElement()).setAttached(false);
+ }
+ }
+ }
+
+ public void treeWillExpand(javax.swing.event.TreeExpansionEvent treeExpansionEvent)
+ throws javax.swing.tree.ExpandVetoException {
+ TreeNode node = (TreeNode) treeExpansionEvent.getPath().getLastPathComponent();
+ if (node instanceof DynamicAccessibilityNode) {
+ DynamicAccessibilityNode dynode = (DynamicAccessibilityNode) node;
+ dynode.populate();
+ }
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java
new file mode 100644
index 000000000000..a982ad71c4d5
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/DynamicAccessibilityNode.java
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/*
+ * This class is dynamic in the way that it does not contain any children
+ * until the node is going to be expanded. It also releases all children
+ * as soon as the node is collapsed again.
+ */
+class DynamicAccessibilityNode extends AccessibilityNode {
+
+ public DynamicAccessibilityNode(AccessibilityModel treeModel) {
+ super(treeModel);
+ }
+
+ // Populates the child list. Called by AccessibilityMode.treeWillExpand().
+ protected void populate() {
+ try {
+ XAccessibleContext xAC = getAccessibleContext();
+ if (xAC != null) {
+ int n = xAC.getAccessibleChildCount();
+ for (int i=0; i<n; i++) {
+ XAccessible xAccessible = xAC.getAccessibleChild(i);
+ AccessibilityNode node = treeModel.findNode(xAccessible);
+ if (node == null) {
+ node = treeModel.createNode(xAccessible);
+ }
+ if (node != null) {
+ // NOTE: do not send any tree notifications here !
+ add(node);
+ }
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ // This should never happen since we previously checked the child
+ // count.
+ // FIXME: error message
+ } catch (com.sun.star.uno.RuntimeException e) {
+ // FIXME: error message
+ }
+ }
+
+ // Clears the child list. Called by AccessibilityModel.treeCollapsed().
+ protected void clear() {
+ removeAllChildren();
+ }
+
+ /* This is called whenever the node is painted, no matter if collapsed
+ * or expanded. Making this a "life" value seems to be appropriate.
+ */
+ public boolean isLeaf() {
+ try {
+ XAccessibleContext xAC = getAccessibleContext();
+ if (xAC != null) {
+ return xAC.getAccessibleChildCount() == 0;
+ }
+ return true;
+ } catch (com.sun.star.uno.RuntimeException e) {
+ return true;
+ }
+ }
+
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile
new file mode 100644
index 000000000000..579b8822ce76
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/Makefile
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+all : package
+
+ROOT=../../../../..
+PACKAGE = org.openoffice.accessibility.awb.tree
+SUBDIRS =
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+
+package : $(CLASS_FILES)
+
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java b/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java
new file mode 100644
index 000000000000..8eaa9dab6c02
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/ToolkitNode.java
@@ -0,0 +1,215 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.tree;
+
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XTopWindow;
+
+import com.sun.star.uno.UnoRuntime;
+
+import javax.swing.SwingUtilities;
+import javax.swing.tree.DefaultMutableTreeNode;
+
+/**
+ *
+ */
+public class ToolkitNode extends DefaultMutableTreeNode
+ implements com.sun.star.awt.XTopWindowListener {
+
+ protected XExtendedToolkit xToolkit;
+
+ private AccessibilityModel treeModel;
+
+ /** Creates a new instance of TopWindowListener */
+ public ToolkitNode(XExtendedToolkit xToolkit, AccessibilityModel treeModel) {
+ super("<connected>");
+ this.xToolkit = xToolkit;
+ this.treeModel = treeModel;
+
+ // Initially fill the child list
+ try {
+ for (int i=0,j=xToolkit.getTopWindowCount(); i<j; i++) {
+ XTopWindow xTopWindow = xToolkit.getTopWindow(i);
+ if (xTopWindow != null) {
+ AccessibilityNode an = getTopWindowNode(xTopWindow);
+ if (an != null) {
+ add(an);
+ // Calling oneway methods from an UNO thread may cause
+ // deadlocks, so adding the listeners here.
+ an.setAttached(true);
+ }
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ // This should never happen since we properly check the count
+ // before - anyway returning what we got so far.
+ }
+ }
+
+ /** Returns an AccessibilityNode if xAccessible has a valid toplevel */
+ private AccessibilityNode getTopWindowNode(XAccessible xAccessible) {
+ XAccessibleContext xAC = xAccessible.getAccessibleContext();
+ if (xAC != null) {
+ short role = xAC.getAccessibleRole();
+ if ((role == AccessibleRole.FRAME) || (role == AccessibleRole.DIALOG) || (role == AccessibleRole.WINDOW)) {
+ return treeModel.createWindowNode(xAccessible, xAC);
+ }
+ }
+ return null;
+ }
+
+ /** Returns an AccessibilityNode if xAccessible has a valid toplevel */
+ private AccessibilityNode getTopWindowNode(XAccessible xAccessible, XAccessibleContext xAC) {
+ if (xAC != null) {
+ short role = xAC.getAccessibleRole();
+ if ((role == AccessibleRole.FRAME) || (role == AccessibleRole.DIALOG) || (role == AccessibleRole.WINDOW)) {
+ AccessibilityNode parent = treeModel.createWindowNode(xAccessible, xAC);
+ if (parent != null) {
+ try {
+ int n = xAC.getAccessibleChildCount();
+ for (int i=0; i<n; i++) {
+ AccessibilityNode child = treeModel.createNode(xAC.getAccessibleChild(i));
+ if (child != null) {
+ parent.add(child);
+ }
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+
+ }
+ }
+ return parent;
+ }
+ }
+ return null;
+ }
+
+ /** Returns the XAccessible interface corresponding to the toplevel window */
+ private AccessibilityNode getTopWindowNode(XTopWindow w) {
+ XAccessible xAccessible = (XAccessible)
+ UnoRuntime.queryInterface(XAccessible.class, w);
+ if (xAccessible != null) {
+ // XTopWindows usually have an accessible parent, which is the
+ // native container window ..
+ XAccessibleContext xAC = xAccessible.getAccessibleContext();
+ if (xAC != null) {
+ XAccessible xParent = xAC.getAccessibleParent();
+ if (xParent != null) {
+ AccessibilityNode parent = getTopWindowNode(xParent);
+ AccessibilityNode child = treeModel.createNode(xAccessible);
+ if (parent != null && child != null) {
+ parent.add(child);
+ }
+ return parent;
+ } else {
+ return getTopWindowNode(xAccessible, xAC);
+ }
+ }
+ }
+ return null;
+ }
+
+ public void disposing(com.sun.star.lang.EventObject eventObject) {
+ // FIXME : message
+ // prevent setRoot from removing this as event listener
+ xToolkit = null;
+ treeModel.setRoot(treeModel.disconnectedRootNode);
+ }
+
+ public void windowActivated(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void windowClosed(com.sun.star.lang.EventObject eventObject) {
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, eventObject.Source);
+ if (xAccessible != null) {
+ AccessibilityNode node = treeModel.findNode(xAccessible);
+
+ // The object implementing XTopWindow is often not the toplevel
+ // accessible object.
+ if (node != null && node.getParent() != this) {
+ node = (AccessibilityNode) node.getParent();
+ }
+
+ if (node != null) {
+ final AccessibilityNode an = node;
+ Runnable removeRun = new Runnable() {
+ public void run() {
+ try {
+ treeModel.removeNodeFromParent(an);
+ // Calling oneway methods from an UNO thread may cause
+ // deadlocks, so removing the listeners here.
+ an.setAttached(false);
+ } catch (IllegalArgumentException e) {
+ // for some toplevel we get more than one event -
+ // ignoring
+ }
+ }
+ };
+ SwingUtilities.invokeLater(removeRun);
+ }
+ }
+ }
+
+ public void windowClosing(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void windowDeactivated(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void windowMinimized(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void windowNormalized(com.sun.star.lang.EventObject eventObject) {
+ }
+
+ public void windowOpened(com.sun.star.lang.EventObject eventObject) {
+ final XTopWindow xTopWindow = (XTopWindow) UnoRuntime.queryInterface(
+ XTopWindow.class, eventObject.Source);
+ if (xTopWindow != null) {
+ final ToolkitNode tn = this;
+ Runnable addNodeRun = new Runnable() {
+ public void run() {
+ // Note: UNO does not allow to make synchronous callbacks
+ // to oneway calls, so we have to fetch the node here.
+ AccessibilityNode an = getTopWindowNode(xTopWindow);
+ if (an != null) {
+ treeModel.addNodeInto(an, tn);
+ // Calling oneway methods from an UNO thread may cause
+ // deadlocks, so adding the listeners here.
+ an.setAttached(true);
+ }
+ }
+ };
+ SwingUtilities.invokeLater(addNodeRun);
+ }
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common
new file mode 100644
index 000000000000..e44be51360e7
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.common
@@ -0,0 +1,35 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ AccessibilityModel.java \
+ AccessibilityNode.java \
+ AccessibilityTree.java \
+ DynamicAccessibilityModel.java \
+ DynamicAccessibilityNode.java \
+ ToolkitNode.java
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk
new file mode 100644
index 000000000000..0135ca9d6422
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/tree/makefile.mk
@@ -0,0 +1,51 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..$/..
+TARGET = java_tree
+PACKAGE = org$/openoffice$/accessibility$/awb$/tree
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java
new file mode 100644
index 000000000000..d4c0e102b7a9
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ComponentView.java
@@ -0,0 +1,195 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JLabel;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+/** The <type>ContextView</type> class displays information accessible over
+ the <type>XAccessibleContext</type> interface. This includes name,
+ description, and role.
+*/
+public class ComponentView
+ extends ObjectView
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xContext) != null)
+ return new ComponentView (aContainer);
+ else
+ return null;
+ }
+
+ public ComponentView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ ViewGridLayout aLayout = new ViewGridLayout (this);
+
+ maRelativeLocationLabel = aLayout.AddLabeledEntry ("Relative Location: ");
+ maAbsoluteLocationLabel = aLayout.AddLabeledEntry ("Location on Screen: ");
+ maSizeLabel = aLayout.AddLabeledEntry ("Size");
+ maBoundingBoxLabel = aLayout.AddLabeledEntry ("Bounding Box: ");
+ maConsistencyLabel = aLayout.AddLabeledEntry ("Consistent: ");
+ maForegroundColorLabel = aLayout.AddLabeledEntry ("Foreground Color: ");
+ maBackgroundColorLabel = aLayout.AddLabeledEntry ("Background Color: ");
+ }
+
+
+ public void SetObject (XAccessibleContext xContext)
+ {
+ mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xContext);
+ super.SetObject (xContext);
+ }
+
+ public void Update ()
+ {
+ if (mxContext == null)
+ {
+ maRelativeLocationLabel.setText ("<null object>");
+ maAbsoluteLocationLabel.setText ("<null object>");
+ maSizeLabel.setText ("<null object>");
+ maBoundingBoxLabel.setText ("<null object>");
+ maConsistencyLabel.setText ("<null object>");
+ maForegroundColorLabel.setText ("<null object>");
+ maBackgroundColorLabel.setText ("<null object>");
+ }
+ else
+ {
+ com.sun.star.awt.Point aLocation = mxComponent.getLocation();
+ maRelativeLocationLabel.setText (
+ aLocation.X + ", " + aLocation.Y);
+ com.sun.star.awt.Point aLocationOnScreen =
+ mxComponent.getLocationOnScreen();
+ maAbsoluteLocationLabel.setText (
+ aLocationOnScreen.X + ", " + aLocationOnScreen.Y);
+ com.sun.star.awt.Size aSize = mxComponent.getSize();
+ maSizeLabel.setText (
+ aSize.Width + ", " + aSize.Height);
+ com.sun.star.awt.Rectangle aBBox = mxComponent.getBounds();
+ maBoundingBoxLabel.setText (
+ aBBox.X + ", " + aBBox.Y + ","
+ + aBBox.Width + ", " + aBBox.Height);
+ int nColor = mxComponent.getForeground();
+ maForegroundColorLabel.setText (
+ "R"+ (nColor>>16&0xff)
+ + "G" + (nColor>>8&0xff)
+ + "B" + (nColor>>0&0xff)
+ + "A" + (nColor>>24&0xff));
+ nColor = mxComponent.getBackground();
+ maBackgroundColorLabel.setText (
+ "R"+ (nColor>>16&0xff)
+ + "G" + (nColor>>8&0xff)
+ + "B" + (nColor>>0&0xff)
+ + "A" + (nColor>>24&0xff));
+
+ // Check consistency of coordinates.
+ String sConsistency = new String ();
+ if (aBBox.X!=aLocation.X || aBBox.Y!=aLocation.Y)
+ sConsistency += (sConsistency.length()!=0?", ":"") +
+ "Bounding box conflicts with relative location";
+ if (aBBox.Width!=aSize.Width || aBBox.Height!=aSize.Height)
+ sConsistency += (sConsistency.length()!=0?", ":"") +
+ "Bounding box conflicts with size";
+ XAccessible xParent = mxContext.getAccessibleParent();
+ XAccessibleComponent xParentComponent =
+ (XAccessibleComponent)UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xParent);
+ if (xParentComponent == null)
+ {
+ if (aLocation.X != aLocationOnScreen.X
+ || aLocation.Y != aLocationOnScreen.Y)
+ sConsistency += (sConsistency.length()!=0?", ":"") +
+ "location on screen does not equal "
+ + "relative location without parent";
+ }
+ else
+ {
+ com.sun.star.awt.Point aParentLocationOnScreen =
+ xParentComponent.getLocationOnScreen();
+ if (aLocation.X+aParentLocationOnScreen.X
+ != aLocationOnScreen.X
+ || aLocation.Y+aParentLocationOnScreen.Y
+ != aLocationOnScreen.Y)
+ sConsistency += (sConsistency.length()!=0?", ":"") +
+ "location on screen does not match "
+ + "relative location";
+ }
+ if (sConsistency.length() == 0)
+ sConsistency += "yes";
+ else
+ maConsistencyLabel.setBackground (GetContainer().GetErrorColor());
+ maConsistencyLabel.setText (sConsistency);
+ }
+ }
+
+ public String GetTitle ()
+ {
+ return ("Component");
+ }
+
+ /** Listen for changes regarding displayed values.
+ */
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ switch (aEvent.EventId)
+ {
+ case AccessibleEventId.BOUNDRECT_CHANGED :
+ case AccessibleEventId.VISIBLE_DATA_CHANGED :
+ Update ();
+ }
+ }
+
+ private XAccessibleComponent mxComponent;
+ private JLabel
+ maRelativeLocationLabel,
+ maAbsoluteLocationLabel,
+ maSizeLabel,
+ maBoundingBoxLabel,
+ maConsistencyLabel,
+ maForegroundColorLabel,
+ maBackgroundColorLabel;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java
new file mode 100644
index 000000000000..a8588cd18ca6
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ContextView.java
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessibleContext;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+/** The <type>ContextView</type> class displays information accessible over
+ the <type>XAccessibleContext</type> interface. This includes name,
+ description, and role.
+*/
+public class ContextView
+ extends ObjectView
+ implements ActionListener
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (xContext != null)
+ return new ContextView (aContainer);
+ else
+ return null;
+ }
+
+ public ContextView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ ViewGridLayout aLayout = new ViewGridLayout (this);
+ maNameLabel = aLayout.AddLabeledString ("Name:");
+ maDescriptionLabel = aLayout.AddLabeledString ("Description:");
+ maRoleLabel = aLayout.AddLabeledEntry ("Role:");
+ }
+
+ public void Update ()
+ {
+ if (mxContext == null)
+ {
+ maNameLabel.setText ("<null object>");
+ maDescriptionLabel.setText ("<null object>");
+ maRoleLabel.setText ("<null object>");
+ }
+ else
+ {
+ maNameLabel.setText (mxContext.getAccessibleName());
+ maDescriptionLabel.setText (mxContext.getAccessibleDescription());
+ maRoleLabel.setText (NameProvider.getRoleName (mxContext.getAccessibleRole()));
+ }
+ }
+
+ public String GetTitle ()
+ {
+ return ("Context");
+ }
+
+ /** Listen for changes regarding displayed values.
+ */
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ switch (aEvent.EventId)
+ {
+ case AccessibleEventId.NAME_CHANGED :
+ case AccessibleEventId.DESCRIPTION_CHANGED :
+ Update ();
+ }
+ }
+
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ }
+
+
+ private JLabel
+ maNameLabel,
+ maDescriptionLabel,
+ maRoleLabel;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java
new file mode 100644
index 000000000000..2e39f117f62e
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/EditableTextView.java
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.JButton;
+
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.awb.view.text.TextDialogFactory;
+
+
+public class EditableTextView
+ extends ObjectView
+ implements ActionListener
+{
+ /** Create a EditableTextView when the given object supports the
+ XAccessibleEditableText interface.
+ */
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ XAccessibleEditableText xEditableText =
+ (XAccessibleEditableText)UnoRuntime.queryInterface(
+ XAccessibleEditableText.class, xContext);
+ if (xEditableText != null)
+ return new EditableTextView (aContainer);
+ else
+ return null;
+ }
+
+ public EditableTextView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ JButton aButton = new JButton ("cut...");
+ aButton.setFont (ViewGridLayout.GetFont());
+ aButton.addActionListener (this);
+ add (aButton);
+ aButton = new JButton ("paste...");
+ aButton.setFont (ViewGridLayout.GetFont());
+ aButton.addActionListener (this);
+ add (aButton);
+ aButton = new JButton ("edit...");
+ aButton.setFont (ViewGridLayout.GetFont());
+ aButton.addActionListener (this);
+ add (aButton);
+ aButton = new JButton ("format...");
+ aButton.setFont (ViewGridLayout.GetFont());
+ aButton.addActionListener (this);
+ add (aButton);
+ }
+
+
+ /** Additionally to the context store a reference to the
+ XAccessibleEditableText interface.
+ */
+ public void SetObject (XAccessibleContext xObject)
+ {
+ mxEditableText = (XAccessibleEditableText)UnoRuntime.queryInterface(
+ XAccessibleEditableText.class, xObject);
+ super.SetObject (xObject);
+ }
+
+ public String GetTitle ()
+ {
+ return ("Editable Text");
+ }
+
+ synchronized public void Destroy ()
+ {
+ mxEditableText = null;
+ super.Destroy();
+ }
+
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ String sCommand = aEvent.getActionCommand();
+ if (sCommand.equals ("cut..."))
+ TextDialogFactory.CreateCutDialog (mxContext);
+ else if (sCommand.equals ("past..."))
+ TextDialogFactory.CreatePasteDialog (mxContext);
+ else if (sCommand.equals ("edit..."))
+ TextDialogFactory.CreateEditDialog (mxContext);
+ else if (sCommand.equals ("format..."))
+ TextDialogFactory.CreateFormatDialog (mxContext);
+ }
+
+ private XAccessibleEditableText mxEditableText;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java
new file mode 100644
index 000000000000..5b4bdcdcc4e4
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/EventMonitorView.java
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.BorderLayout;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics;
+import javax.swing.JScrollBar;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessibleContext;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+
+/** A simple event monitor that shows all events sent to one accessible
+ object.
+*/
+class EventMonitorView
+ extends ObjectView
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (xContext != null)
+ return new EventMonitorView (aContainer);
+ else
+ return null;
+ }
+
+ public EventMonitorView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+ Layout();
+ }
+
+ public String GetTitle ()
+ {
+ return "Event Monitor";
+ }
+
+ /** Create and arrange the widgets for this view.
+ */
+ private void Layout ()
+ {
+ setLayout (new GridBagLayout ());
+
+ maText = new JTextArea();
+ maText.setBackground (new Color (255,250,240));
+ maText.setFont (new Font ("Helvetica", Font.PLAIN, 9));
+
+ maScrollPane = new JScrollPane (maText,
+ JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
+ JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+ maScrollPane.setPreferredSize (new Dimension (300,80));
+
+ GridBagConstraints aConstraints = new GridBagConstraints ();
+ aConstraints.weightx = 1;
+ aConstraints.fill = GridBagConstraints.HORIZONTAL;
+ add (maScrollPane, aConstraints);
+ }
+
+
+ public void Update ()
+ {
+ }
+
+
+ private void UpdateVerticalScrollBar ()
+ {
+ JScrollBar sb = maScrollPane.getVerticalScrollBar();
+ if (sb != null)
+ {
+ int nScrollBarValue = sb.getMaximum() - sb.getVisibleAmount() - 1;
+ sb.setValue (nScrollBarValue);
+ }
+ }
+
+
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ maText.append (NameProvider.getEventName (aEvent.EventId) + " : "
+ + aEvent.OldValue.toString()
+ + " -> "
+ + aEvent.NewValue.toString() + "\n");
+ UpdateVerticalScrollBar();
+ }
+
+ private JTextArea maText;
+ private JScrollPane maScrollPane;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java
new file mode 100644
index 000000000000..4dec27958d71
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/FocusView.java
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Font;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleStateSet;
+import com.sun.star.uno.UnoRuntime;
+
+public class FocusView
+ extends ObjectView
+ implements ActionListener
+{
+ /** Create a FocusView when the given object supports the
+ XAccessibleComponent interface.
+ */
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ XAccessibleComponent xComponent = (XAccessibleComponent)UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xContext);
+ if (xComponent != null)
+ return new FocusView (aContainer);
+ else
+ return null;
+ }
+
+ public FocusView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ setLayout (new GridBagLayout());
+ GridBagConstraints aConstraints = new GridBagConstraints ();
+
+ maFocused = new JLabel ();
+ maFocused.setFont (GetContainer().GetViewFont());
+ aConstraints.gridy = 0;
+ aConstraints.weightx = 1;
+ aConstraints.fill = GridBagConstraints.HORIZONTAL;
+ add (maFocused, aConstraints);
+
+ maGrabFocus = new JButton ("grabFocus");
+ maGrabFocus.setFont (GetContainer().GetViewFont());
+ aConstraints.gridy = 1;
+ aConstraints.fill = GridBagConstraints.NONE;
+ aConstraints.anchor = GridBagConstraints.WEST;
+ add (maGrabFocus, aConstraints);
+
+ maGrabFocus.addActionListener (this);
+ }
+
+ /** Additionally to the context store a reference to the
+ XAccessibleComponent interface.
+ */
+ public void SetObject (XAccessibleContext xObject)
+ {
+ mxComponent = (XAccessibleComponent)UnoRuntime.queryInterface(
+ XAccessibleComponent.class, xObject);
+ super.SetObject (xObject);
+ }
+
+ synchronized public void Destroy ()
+ {
+ super.Destroy();
+ maGrabFocus.removeActionListener (this);
+ }
+
+ synchronized public void Update ()
+ {
+ if (mxContext == null)
+ {
+ maFocused.setText ("<null object>");
+ maGrabFocus.setEnabled (false);
+ }
+ else
+ {
+ XAccessibleStateSet aStateSet = mxContext.getAccessibleStateSet();
+ if (aStateSet.contains(AccessibleStateType.FOCUSED))
+ maFocused.setText ("focused");
+ else
+ maFocused.setText ("not focused");
+ if (maGrabFocus != null)
+ maGrabFocus.setEnabled (true);
+ }
+ }
+
+ public String GetTitle ()
+ {
+ return ("Focus");
+ }
+
+ synchronized public void actionPerformed (ActionEvent aEvent)
+ {
+ if (aEvent.getActionCommand().equals("grabFocus"))
+ {
+ mxComponent.grabFocus();
+ }
+ }
+
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ System.out.println (aEvent);
+ if (aEvent.EventId == AccessibleEventId.STATE_CHANGED)
+ Update ();
+ }
+
+ private JLabel maFocused;
+ private JButton maGrabFocus;
+ private XAccessibleComponent mxComponent;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java b/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java
new file mode 100644
index 000000000000..728b3dc426d7
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/LayoutManager.java
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Component;
+import java.awt.Cursor;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.awt.Point;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseEvent;
+import javax.swing.JComponent;
+
+class LayoutManager
+ implements MouseListener,
+ MouseMotionListener
+{
+ public LayoutManager (JComponent aLayoutedComponent)
+ {
+ maLayoutedComponent = aLayoutedComponent;
+ maDraggedView = null;
+ mbInsertionPending = false;
+ }
+
+ public void mouseClicked (MouseEvent aEvent)
+ {
+ System.out.println (aEvent);
+ }
+ public void mousePressed (MouseEvent aEvent)
+ {
+ mnOldY = aEvent.getPoint().y;
+ }
+ public void mouseReleased (MouseEvent aEvent)
+ {
+ if (mbInsertionPending)
+ {
+ InsertView (maDraggedView, aEvent.getPoint().y);
+ mbInsertionPending = false;
+ maDraggedView = null;
+ }
+ }
+ public void mouseEntered (MouseEvent aEvent)
+ {
+ }
+ public void mouseExited (MouseEvent aEvent)
+ {
+ if (mbInsertionPending)
+ {
+ InsertView (maDraggedView, mnOldY);
+ mbInsertionPending = false;
+ maDraggedView = null;
+ }
+ }
+ public void mouseDragged (MouseEvent aEvent)
+ {
+ int dy = mnOldY - aEvent.getPoint().y;
+ GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout();
+ if ( ! mbInsertionPending && dy != 0)
+ {
+ maDraggedView = RemoveView (mnOldY);
+ if (maDraggedView != null)
+ mbInsertionPending = true;
+ }
+ }
+ public void mouseMoved (MouseEvent aEvent)
+ {
+ }
+
+
+
+
+ private ObjectView RemoveView (int y)
+ {
+ ObjectView aView = null;
+ GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout();
+
+ Point aGridLocation = aLayout.location (10,y);
+ Component[] aComponentList = maLayoutedComponent.getComponents();
+ System.out.println ("removing view at " + aGridLocation);
+ for (int i=0; i<aComponentList.length && aView==null; i++)
+ {
+ GridBagConstraints aConstraints = aLayout.getConstraints (
+ aComponentList[i]);
+ if (aConstraints.gridy == aGridLocation.y)
+ aView = (ObjectView)aComponentList[i];
+ }
+ maNormalCursor = maLayoutedComponent.getCursor();
+ if (aView != null)
+ {
+ System.out.println ("removing view at " + aGridLocation.y);
+ maLayoutedComponent.setCursor (new Cursor (Cursor.MOVE_CURSOR));
+ maLayoutedComponent.remove (aView);
+ maLayoutedComponent.validate();
+ maLayoutedComponent.repaint();
+ }
+
+ return aView;
+ }
+
+ private void InsertView (ObjectView aView, int y)
+ {
+ if (aView != null)
+ {
+ GridBagLayout aLayout = (GridBagLayout)maLayoutedComponent.getLayout();
+ Point aGridLocation = aLayout.location (0,y);
+ Component[] aComponentList = maLayoutedComponent.getComponents();
+ System.out.println ("new position is " + aGridLocation.y);
+ for (int i=0; i<aComponentList.length; i++)
+ {
+ GridBagConstraints aConstraints = aLayout.getConstraints (
+ aComponentList[i]);
+ if (aConstraints.gridy >= aGridLocation.y)
+ {
+ if (aConstraints.gridy == aGridLocation.y)
+ maLayoutedComponent.add (maDraggedView, aConstraints);
+ aConstraints.gridy += 1;
+ aLayout.setConstraints (aComponentList[i], aConstraints);
+ }
+ }
+ maLayoutedComponent.validate();
+ maLayoutedComponent.repaint();
+ }
+ maLayoutedComponent.setCursor (maNormalCursor);
+ }
+
+
+
+
+ private JComponent maLayoutedComponent;
+ private ObjectView maDraggedView;
+ private int mnOldY;
+ private boolean mbInsertionPending;
+ private Cursor maNormalCursor;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile
new file mode 100644
index 000000000000..2e4eb1566afd
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/Makefile
@@ -0,0 +1,13 @@
+# $Id: Makefile,v 1.1 2003/06/13 16:30:34 af Exp $
+
+all : package
+
+ROOT=../../../../..
+PACKAGE = org.openoffice.accessibility.awb.view
+SUBDIRS = text
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+
+package : $(CLASS_FILES)
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java
new file mode 100644
index 000000000000..3c1b8e90ff26
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectView.java
@@ -0,0 +1,90 @@
+package org.openoffice.accessibility.awb.view;
+
+import javax.swing.JPanel;
+
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessibleContext;
+
+/** This is the base class for all object views that can be placed inside an
+ object view container.
+
+ <p>When provided with a new accessible object the container will call
+ the Create method to create a new instance when certain conditions are
+ met. It then calls SetObject to pass the object to the instance.
+ Finally it calls Update.</p>
+
+ <p>The SetObject and Update methods may be called for a new object
+ without calling Create first. In this way an existing instance is
+ recycled.</p>
+*/
+abstract public class ObjectView
+ extends JPanel
+{
+ /** This factory method creates a new instance of the (derived) class
+ when the given accessible object supports all necessary features.
+ In the ususal case this will be the support of a specific
+ accessibility interface.
+ */
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ return null;
+ }
+
+ public ObjectView (ObjectViewContainer aContainer)
+ {
+ maContainer = aContainer;
+ mxContext = null;
+ }
+
+ /** Call this when you want the object to be destroyed. Release all
+ resources when called.
+ */
+ public void Destroy ()
+ {
+ }
+
+ /** Tell the view to display information for a new accessible object.
+ @param xObject
+ The given object may be null. A typical behaviour in this case
+ would be to display a blank area. But is also possible to show
+ information about the last object.
+ */
+ public void SetObject (XAccessibleContext xContext)
+ {
+ mxContext = xContext;
+ Update ();
+ }
+
+
+ /** This is a request of a repaint with the current state of the current
+ object. The current object may or may not be the same as the one
+ when Update() was called the last time.
+ */
+ public void Update ()
+ {
+ }
+
+
+ /** Return a string that is used as a title of an enclosing frame.
+ */
+ abstract public String GetTitle ();
+
+
+ public ObjectViewContainer GetContainer ()
+ {
+ return maContainer;
+ }
+
+
+ /** Implement this method if you are interested in accessible events.
+ */
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {}
+
+ /// Reference to the current object to display information about.
+ protected XAccessibleContext mxContext;
+
+ protected ObjectViewContainer maContainer;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java
new file mode 100644
index 000000000000..54855cbaf885
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainer.java
@@ -0,0 +1,310 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.awt.Insets;
+
+import java.util.Vector;
+
+import java.lang.reflect.Method;
+import java.lang.NoSuchMethodException;
+import java.lang.IllegalAccessException;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.swing.JPanel;
+import javax.swing.JTree;
+import javax.swing.BorderFactory;
+import javax.swing.border.Border;
+import javax.swing.border.BevelBorder;
+import javax.swing.SwingUtilities;
+
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+import com.sun.star.accessibility.XAccessibleEventListener;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.lang.EventObject;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.awb.view.ObjectView;
+
+
+
+/** This container of specialized object views displays information about
+ one accessible object.
+ In this it plays several roles:
+ 1. Object container.
+ 2. Accessibility event dispatcher.
+ 3. Object view class registration manager.
+ 4. Swing widget.
+*/
+public class ObjectViewContainer
+ extends JPanel
+ implements XAccessibleEventListener
+{
+ public ObjectViewContainer ()
+ {
+ maFont = new Font ("Dialog", Font.PLAIN, 11);
+ maViewTemplates = new Vector ();
+ maViewBorder = BorderFactory.createBevelBorder (BevelBorder.RAISED);
+ GridBagLayout aLayout = new GridBagLayout ();
+ setLayout (aLayout);
+ // maLayoutManager = new LayoutManager (this);
+ maLayoutManager = null;
+
+ RegisterView (ContextView.class);
+ RegisterView (ComponentView.class);
+ RegisterView (ParentView.class);
+ RegisterView (StateSetView.class);
+ RegisterView (FocusView.class);
+ RegisterView (TextView.class);
+ RegisterView (EditableTextView.class);
+ RegisterView (TableView.class);
+ RegisterView (SelectionView.class);
+ RegisterView (ServiceInterfaceView.class);
+ RegisterView (EventMonitorView.class);
+
+ mxContext = null;
+
+ // addMouseListener (maLayoutManager);
+ // addMouseMotionListener (maLayoutManager);
+ }
+
+
+
+ /** Remove all existing views and create new ones according to the
+ interfaces supported by the given object.
+ */
+ public synchronized void SetObject (XAccessibleContext xContext)
+ {
+ // Call Destroy at all views to give them a chance to release their
+ // resources.
+ int n = getComponentCount();
+ for (int i=0; i<n; i++)
+ ((ObjectView)getComponent(i)).Destroy();
+ // Remove existing views.
+ removeAll ();
+
+ mxContext = xContext;
+
+ // Add new views.
+ for (int i=0; i<maViewTemplates.size(); i++)
+ {
+ try
+ {
+ Class aViewClass = (Class)maViewTemplates.elementAt (i);
+ Method aCreateMethod = aViewClass.getDeclaredMethod (
+ "Create", new Class[] {
+ ObjectViewContainer.class,
+ XAccessibleContext.class});
+ if (aCreateMethod != null)
+ {
+ ObjectView aView = (ObjectView)
+ aCreateMethod.invoke (
+ null, new Object[] {this, xContext});
+ Add (aView);
+ }
+ }
+ catch (NoSuchMethodException e)
+ {System.err.println ("Caught exception while creating view "
+ + i + " : " + e);}
+ catch (IllegalAccessException e)
+ {System.err.println ("Caught exception while creating view "
+ + i + " : " + e);}
+ catch (InvocationTargetException e)
+ {System.err.println ("Caught exception while creating view "
+ + i + " : " + e);}
+ }
+
+ UpdateLayoutManager ();
+
+ // Now set the object at all views.
+ n = getComponentCount();
+ for (int i=0; i<n; i++)
+ ((ObjectView)getComponent(i)).SetObject (xContext);
+
+ setPreferredSize (getLayout().preferredLayoutSize (this));
+ ((GridBagLayout) getLayout()).invalidateLayout(this);
+ validate();
+ }
+
+
+
+
+ /** Add the given class to the list of classes which will be
+ instantiated the next time an accessible object is set.
+ */
+ public void RegisterView (Class aObjectViewClass)
+ {
+ maViewTemplates.addElement (aObjectViewClass);
+ }
+
+
+
+
+ /** Replace one view class with another.
+ */
+ public void ReplaceView (Class aObjectViewClass, Class aSubstitution)
+ {
+ int nIndex = maViewTemplates.indexOf (aObjectViewClass);
+ if (nIndex >= 0)
+ maViewTemplates.setElementAt (aSubstitution, nIndex);
+ }
+
+
+ /** Return a font that should be used for widgets in the views.
+ */
+ public Font GetViewFont ()
+ {
+ return maFont;
+ }
+
+ public Color GetErrorColor ()
+ {
+ return new Color (255,80,50);
+ }
+
+ /** Add an object view and place it below all previously added views.
+ @param aView
+ This argument may be null. In this case nothing happens.
+ */
+ private void Add (ObjectView aView)
+ {
+ if (aView != null)
+ {
+ GridBagConstraints constraints = new GridBagConstraints ();
+ constraints.gridx = 0;
+ constraints.gridy = getComponentCount();
+ constraints.gridwidth = 1;
+ constraints.gridheight = 1;
+ constraints.weightx = 1;
+ constraints.weighty = 0;
+ constraints.ipadx = 2;
+ constraints.ipady = 5;
+ constraints.insets = new Insets (5,5,5,5);
+ constraints.anchor = GridBagConstraints.NORTH;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+
+ aView.setBorder (
+ BorderFactory.createTitledBorder (
+ maViewBorder, aView.GetTitle()));
+
+ add (aView, constraints);
+ }
+ }
+
+ /** Update the layout manager by setting the vertical weight of the
+ bottom entry to 1 and so make it strech to over the available
+ space.
+
+ */
+ private void UpdateLayoutManager ()
+ {
+ // Adapt the layout manager.
+ if (getComponentCount() > 1000)
+ {
+ Component aComponent = getComponent (getComponentCount()-1);
+ GridBagLayout aLayout = (GridBagLayout)getLayout();
+ GridBagConstraints aConstraints = aLayout.getConstraints (aComponent);
+ aConstraints.weighty = 1;
+ aLayout.setConstraints (aComponent, aConstraints);
+ }
+ }
+
+
+
+
+ /** Put the event just received into the event queue which will deliver
+ it soon asynchronuously to the DispatchEvent method.
+ */
+ public void notifyEvent (final AccessibleEventObject aEvent)
+ {
+ SwingUtilities.invokeLater(
+ new Runnable()
+ {
+ public void run()
+ {
+ DispatchEvent (aEvent);
+ }
+ }
+ );
+ }
+
+
+
+
+ /** Forward accessibility events to all views without them being
+ registered as event listeners each on their own.
+ */
+ private void DispatchEvent (AccessibleEventObject aEvent)
+ {
+ int n = getComponentCount();
+ for (int i=0; i<n; i++)
+ ((ObjectView)getComponent(i)).notifyEvent (aEvent);
+ }
+
+
+
+ /** When the object is disposed that is displayed by the views of this
+ container then tell all views about this.
+ */
+ public void disposing (EventObject aEvent)
+ {
+ mxContext = null;
+ SwingUtilities.invokeLater(
+ new Runnable()
+ {
+ public void run()
+ {
+ SetObject (null);
+ }
+ }
+ );
+ }
+
+
+
+
+ /// The current accessible context display by the views.
+ private XAccessibleContext mxContext;
+
+ /// Observe this tree for selection changes and notify them to all
+ /// children.
+ private JTree maTree;
+ private Border maViewBorder;
+ /// List of view templates which are instantiated when new object is set.
+ private Vector maViewTemplates;
+ private Font maFont;
+ private LayoutManager maLayoutManager;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java
new file mode 100644
index 000000000000..8db9af4f46ca
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ObjectViewContainerWindow.java
@@ -0,0 +1,35 @@
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.BorderLayout;
+import javax.swing.JFrame;
+import com.sun.star.accessibility.XAccessibleContext;
+
+
+/** Top level window that creates a single object view container. This
+ container shows information about a specific accessible object and is
+ not affected by the selection of the accessbility tree widget.
+*/
+public class ObjectViewContainerWindow
+ extends JFrame
+{
+ public ObjectViewContainerWindow (XAccessibleContext xContext)
+ {
+ setSize (new java.awt.Dimension (300,600));
+
+ maContainer = new ObjectViewContainer ();
+ maContainer.SetObject (xContext);
+ getContentPane().add (maContainer, BorderLayout.CENTER);
+
+ pack ();
+ setVisible (true);
+ }
+
+ /** Set the object that is displayed in this window.
+ */
+ public void SetObject (XAccessibleContext xContext)
+ {
+ maContainer.SetObject (xContext);
+ }
+
+ private ObjectViewContainer maContainer;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java
new file mode 100644
index 000000000000..216bc3a82bfc
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ParentView.java
@@ -0,0 +1,147 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.lang.Integer;
+import javax.swing.JLabel;
+import javax.swing.JTextField;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.lang.IndexOutOfBoundsException;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+
+/** Show informations related to the parent/child relationship.
+*/
+public class ParentView
+ extends ObjectView
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (xContext != null)
+ return new ParentView (aContainer);
+ else
+ return null;
+ }
+
+ public ParentView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ ViewGridLayout aLayout = new ViewGridLayout (this);
+ maParentLabel = aLayout.AddLabeledEntry ("Has parent: ");
+ maIndexLabel = aLayout.AddLabeledEntry ("Index in parent: ");
+ maValidLabel = aLayout.AddLabeledEntry ("Parent/Child relationship valid: ");
+ maChildrenLabel = aLayout.AddLabeledEntry ("Child count: ");
+ }
+
+ public void Update ()
+ {
+ if (mxContext == null)
+ {
+ maParentLabel.setText ("<null object>");
+ maIndexLabel.setText ("<null object>");
+ maValidLabel.setText ("<null object>");
+ maChildrenLabel.setText ("<null object>");
+ }
+ else
+ {
+ XAccessible xParent = mxContext.getAccessibleParent();
+ int nIndex = mxContext.getAccessibleIndexInParent();
+ maIndexLabel.setText (Integer.toString(nIndex));
+ if (xParent != null)
+ {
+ maParentLabel.setText ("yes");
+ XAccessibleContext xParentContext =
+ xParent.getAccessibleContext();
+ if (xParentContext != null)
+ {
+ try
+ {
+ XAccessible xChild =
+ xParentContext.getAccessibleChild(nIndex);
+ if (xChild != mxContext)
+ maValidLabel.setText ("yes");
+ else
+ {
+ maValidLabel.setText ("no");
+ maValidLabel.setBackground (GetContainer().GetErrorColor());
+ }
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ maValidLabel.setText ("no: invalid index in parent");
+ maValidLabel.setBackground (GetContainer().GetErrorColor());
+ }
+ }
+ else
+ {
+ maValidLabel.setText ("no: parent has no context");
+ maValidLabel.setBackground (GetContainer().GetErrorColor());
+ }
+ }
+ else
+ maParentLabel.setText ("no");
+ maChildrenLabel.setText (Integer.toString(mxContext.getAccessibleChildCount()));
+ }
+ }
+
+ public String GetTitle ()
+ {
+ return ("Parent");
+ }
+
+
+ /** Listen for changes regarding displayed values.
+ */
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ switch (aEvent.EventId)
+ {
+ default:
+ Update ();
+ }
+ }
+
+
+ private JLabel
+ maParentLabel,
+ maIndexLabel,
+ maValidLabel,
+ maChildrenLabel;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java
new file mode 100644
index 000000000000..ad5a83467372
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/SelectionView.java
@@ -0,0 +1,267 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.util.Vector;
+
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+
+import javax.swing.BoxLayout;
+import javax.swing.ButtonGroup;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JLabel;
+import javax.swing.JList;
+import javax.swing.JPanel;
+import javax.swing.JOptionPane;
+import javax.swing.JRadioButton;
+import javax.swing.JScrollPane;
+import javax.swing.JToggleButton;
+import javax.swing.ListSelectionModel;
+
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleSelection;
+import com.sun.star.accessibility.XAccessibleStateSet;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.lang.IndexOutOfBoundsException;
+
+
+/** Display a list of children and select/deselect buttons
+*/
+class SelectionView
+ extends ObjectView
+ implements ActionListener
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ XAccessibleSelection xSelection = (XAccessibleSelection)UnoRuntime.queryInterface(
+ XAccessibleSelection.class, xContext);
+ if (xSelection != null)
+ return new SelectionView(aContainer);
+ else
+ return null;
+ }
+
+ public SelectionView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+ Layout();
+ }
+
+ public String GetTitle ()
+ {
+ return "Selection";
+ }
+
+ /** Create and arrange the widgets for this view.
+ */
+ private void Layout ()
+ {
+ setLayout (new GridBagLayout());
+
+ GridBagConstraints aConstraints = new GridBagConstraints();
+
+ // Label that shows whether the selection is multi selectable.
+ aConstraints.gridx = 0;
+ aConstraints.gridy = 0;
+ aConstraints.anchor = GridBagConstraints.WEST;
+ maTypeLabel = new JLabel ();
+ maTypeLabel.setFont (maContainer.GetViewFont());
+ add (maTypeLabel, aConstraints);
+
+ // the JListBox
+ maChildrenSelector = new JPanel ();
+ maChildrenSelector.setPreferredSize (new Dimension (100,100));
+ maChildrenSelector.setLayout (
+ new BoxLayout (maChildrenSelector, BoxLayout.Y_AXIS));
+
+ aConstraints.gridx = 0;
+ aConstraints.gridwidth = 4;
+ aConstraints.gridy = 1;
+ aConstraints.fill = GridBagConstraints.HORIZONTAL;
+ add (new JScrollPane (maChildrenSelector,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED),
+ aConstraints);
+
+ JButton aButton;
+ aButton = new JButton( "Select all" );
+ aButton.setFont (maContainer.GetViewFont());
+ aButton.setActionCommand( "Select all" );
+ aButton.addActionListener( this );
+ aConstraints.gridx = 0;
+ aConstraints.gridwidth = 1;
+ aConstraints.gridy = 2;
+ aConstraints.fill = GridBagConstraints.NONE;
+ aConstraints.anchor = GridBagConstraints.WEST;
+ add (aButton, aConstraints);
+
+ aButton = new JButton( "Clear Selection" );
+ aButton.setFont (maContainer.GetViewFont());
+ aButton.setActionCommand( "Clear Selection" );
+ aButton.addActionListener( this );
+ aConstraints.gridx = 1;
+ aConstraints.gridy = 2;
+ aConstraints.weightx = 1;
+ add (aButton, aConstraints);
+
+ setSize (getPreferredSize());
+ }
+
+
+ public void SetObject (XAccessibleContext xContext)
+ {
+ mxSelection = (XAccessibleSelection)UnoRuntime.queryInterface(
+ XAccessibleSelection.class, xContext);
+ super.SetObject (xContext);
+ }
+
+
+ public void Update ()
+ {
+ maChildrenSelector.removeAll ();
+
+ // Determine whether multi selection is possible.
+ XAccessibleStateSet aStateSet = mxContext.getAccessibleStateSet();
+ boolean bMultiSelectable = false;
+ if (aStateSet!=null && aStateSet.contains(
+ AccessibleStateType.MULTI_SELECTABLE))
+ {
+ bMultiSelectable = true;
+ maTypeLabel.setText ("multi selectable");
+ }
+ else
+ {
+ maTypeLabel.setText ("single selectable");
+ }
+
+ if (mxContext.getAccessibleRole() != AccessibleRole.TABLE)
+ {
+ int nCount = mxContext.getAccessibleChildCount();
+ for (int i=0; i<nCount; i++)
+ {
+ try
+ {
+ XAccessible xChild = mxContext.getAccessibleChild(i);
+ XAccessibleContext xChildContext = xChild.getAccessibleContext();
+
+ String sName = i + " " + xChildContext.getAccessibleName();
+ JToggleButton aChild;
+ aChild = new JCheckBox (sName);
+ aChild.setFont (maContainer.GetViewFont());
+
+ XAccessibleStateSet aChildStateSet =
+ mxContext.getAccessibleStateSet();
+ aChild.setSelected (aChildStateSet!=null
+ && aChildStateSet.contains(AccessibleStateType.SELECTED));
+
+ aChild.addActionListener (this);
+ maChildrenSelector.add (aChild);
+
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ }
+ }
+ }
+ }
+
+
+ void SelectAll()
+ {
+ mxSelection.selectAllAccessibleChildren();
+ }
+
+ void ClearSelection()
+ {
+ mxSelection.clearAccessibleSelection();
+ }
+
+
+
+ /** Call the function associated with the pressed button.
+ */
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ String sCommand = aEvent.getActionCommand();
+
+ if (sCommand.equals ("Clear Selection"))
+ ClearSelection();
+ else if (sCommand.equals ("Select all"))
+ SelectAll();
+ else
+ {
+ // Extract the child index from the widget text.
+ String[] aWords = sCommand.split (" ");
+ int nIndex = Integer.parseInt(aWords[0]);
+ try
+ {
+ if (((JToggleButton)aEvent.getSource()).isSelected())
+ mxSelection.selectAccessibleChild (nIndex);
+ else
+ mxSelection.deselectAccessibleChild (nIndex);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ System.err.println (
+ "caught exception while changing selection: " + e);
+ }
+ }
+ }
+
+
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ switch (aEvent.EventId)
+ {
+ case AccessibleEventId.SELECTION_CHANGED:
+ case AccessibleEventId.STATE_CHANGED:
+ case AccessibleEventId.CHILD:
+ Update ();
+ }
+ }
+
+ private JPanel maChildrenSelector;
+ private XAccessibleSelection mxSelection;
+ private JLabel maTypeLabel;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java
new file mode 100644
index 000000000000..7c41ff01c97e
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ServiceInterfaceView.java
@@ -0,0 +1,150 @@
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.GridLayout;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import java.lang.Integer;
+import javax.swing.JScrollPane;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XTypeProvider;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+
+/** Show all supported services and interfaces.
+*/
+public class ServiceInterfaceView
+ extends ObjectView
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (xContext != null)
+ return new ServiceInterfaceView (aContainer);
+ else
+ return null;
+ }
+
+
+
+
+ public ServiceInterfaceView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ maImplementationNameRoot = new DefaultMutableTreeNode ("Implementation Name");
+ maServiceRoot = new DefaultMutableTreeNode ("Supported Services");
+ maInterfaceRoot = new DefaultMutableTreeNode ("Supported Interfaces");
+ maTree = new JTree (new DefaultMutableTreeNode[]
+ {maServiceRoot,maInterfaceRoot});
+ JScrollPane aScrollPane = new JScrollPane (
+ maTree,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+
+ setMinimumSize (new Dimension(300,200));
+ setLayout (new GridLayout (1,1));
+ add (aScrollPane);
+ }
+
+
+
+
+ public void Update ()
+ {
+ DefaultTreeModel aModel = (DefaultTreeModel)maTree.getModel();
+
+ // Clear old tree.
+ DefaultMutableTreeNode aRoot =(DefaultMutableTreeNode)aModel.getRoot();
+ aRoot.removeAllChildren();
+
+ // Create the new tree.
+ CreateImplementationNameTree ();
+ CreateServiceTree ();
+ CreateInterfaceTree ();
+ aRoot.add (maImplementationNameRoot);
+ aRoot.add (maServiceRoot);
+ aRoot.add (maInterfaceRoot);
+ aModel.setRoot (aRoot);
+
+ // Expand whole tree.
+ for (int i=0; i<maTree.getRowCount(); i++)
+ maTree.expandRow (i);
+ }
+
+ private void CreateImplementationNameTree ()
+ {
+ XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface(
+ XServiceInfo.class, mxContext);
+ maImplementationNameRoot.removeAllChildren();
+ if (xServiceInfo != null)
+ {
+ maImplementationNameRoot.add (
+ new DefaultMutableTreeNode (
+ (xServiceInfo!=null
+ ? xServiceInfo.getImplementationName()
+ : "<XServiceInfo not supported>")));
+ }
+ }
+
+ private void CreateServiceTree ()
+ {
+ XServiceInfo xServiceInfo = (XServiceInfo)UnoRuntime.queryInterface(
+ XServiceInfo.class, mxContext);
+ maServiceRoot.removeAllChildren();
+ if (xServiceInfo != null)
+ {
+ String[] aServiceNames = xServiceInfo.getSupportedServiceNames();
+ int nCount = aServiceNames.length;
+ for (int i=0; i<nCount; i++)
+ maServiceRoot.add (
+ new DefaultMutableTreeNode (aServiceNames[i]));
+ }
+ else
+ maServiceRoot.add (
+ new DefaultMutableTreeNode("XServiceInfo not supported"));
+ }
+
+ private void CreateInterfaceTree ()
+ {
+ XTypeProvider xTypeProvider = (XTypeProvider)UnoRuntime.queryInterface(
+ XTypeProvider.class, mxContext);
+ maInterfaceRoot.removeAllChildren();
+ if (xTypeProvider != null)
+ {
+ Type[] aTypes = xTypeProvider.getTypes();
+ int nCount = aTypes.length;
+ for (int i=0; i<nCount; i++)
+ maInterfaceRoot.add (
+ new DefaultMutableTreeNode (aTypes[i].getTypeName()));
+ }
+ else
+ maInterfaceRoot.add (
+ new DefaultMutableTreeNode("XTypeProvider not supported"));
+ }
+
+ public String GetTitle ()
+ {
+ return ("Supported Services and Interfaces");
+ }
+
+
+ private JTree maTree;
+ private DefaultMutableTreeNode maImplementationNameRoot;
+ private DefaultMutableTreeNode maServiceRoot;
+ private DefaultMutableTreeNode maInterfaceRoot;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java
new file mode 100644
index 000000000000..44638b099edc
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/StateSetView.java
@@ -0,0 +1,199 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Insets;
+import java.awt.Rectangle;
+import java.awt.RenderingHints;
+import java.awt.geom.AffineTransform;
+
+
+
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleStateSet;
+
+import org.openoffice.accessibility.misc.NameProvider;
+
+public class StateSetView
+ extends ObjectView
+{
+ /** Create a FocusView when the given object supports the
+ XAccessibleComponent interface.
+ */
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ ObjectView aView = null;
+ if (xContext != null)
+ aView = new StateSetView (aContainer);
+
+ return aView;
+ }
+
+ public StateSetView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+ setPreferredSize (new Dimension(300,110));
+ setMinimumSize (new Dimension(200,80));
+ }
+
+ public String GetTitle ()
+ {
+ return ("StateSet");
+ }
+
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ if (aEvent.EventId == AccessibleEventId.STATE_CHANGED)
+ Update();
+ }
+
+
+ public void Update ()
+ {
+ repaint ();
+ }
+
+ public void paintChildren (Graphics g)
+ {
+ if (g != null)
+ synchronized (g)
+ {
+ super.paintChildren (g);
+
+ // Calculcate the are inside the border.
+ Insets aInsets = getInsets ();
+ Dimension aSize = getSize();
+ Rectangle aWidgetArea = new Rectangle (
+ aInsets.left,
+ aInsets.top,
+ aSize.width-aInsets.left-aInsets.right,
+ aSize.height-aInsets.top-aInsets.bottom);
+
+ PaintAllStates ((Graphics2D)g, aWidgetArea);
+ }
+ }
+
+ private void PaintAllStates (Graphics2D g, Rectangle aWidgetArea)
+ {
+ Color aTextColor = g.getColor();
+
+ g.setRenderingHint (
+ RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+
+ XAccessibleStateSet xStateSet = ( mxContext != null ) ? mxContext.getAccessibleStateSet() : null;
+ if (xStateSet != null)
+ {
+ short aStates[] = xStateSet.getStates ();
+ final int nMaxStateIndex = AccessibleStateType.VISIBLE;//MANAGES_DESCENDANTS;
+ int nStateWidth = (aWidgetArea.width-12) / (nMaxStateIndex+1);
+ AffineTransform aTransform = g.getTransform ();
+ g.setColor (aTextColor);
+ int y = aWidgetArea.y+aWidgetArea.height - 25;
+ double nTextRotation = -0.9;//-java.lang.Math.PI/2;
+ double nScale = 0.6;
+
+ // Create a shape for the boxes.
+ int nBoxWidth = 8;
+ Rectangle aCheckBox = new Rectangle (-nBoxWidth/2,0,nBoxWidth,nBoxWidth);
+
+ // For each state draw a box, fill it appropriately, and draw
+ // thre states name.
+ for (short i=0; i<=nMaxStateIndex; i++)
+ {
+ int x = nStateWidth + i * nStateWidth;
+ String sStateName = NameProvider.getStateName (i);
+ if (sStateName == null)
+ sStateName = new String ("<unknown state " + i + ">");
+ boolean bStateSet = xStateSet.contains (i);
+ g.setTransform (aTransform);
+ g.translate (x,y);
+ if (bStateSet)
+ {
+ switch (i)
+ {
+ case AccessibleStateType.INVALID:
+ case AccessibleStateType.DEFUNC:
+ g.setColor (saInvalidColor);
+ break;
+ case AccessibleStateType.FOCUSED:
+ g.setColor (saFocusColor);
+ break;
+ case AccessibleStateType.SELECTED:
+ g.setColor (saSelectionColor);
+ break;
+ case AccessibleStateType.EDITABLE:
+ g.setColor (saEditColor);
+ break;
+ default:
+ g.setColor (saDefaultColor);
+ break;
+ }
+ g.fill (aCheckBox);
+ g.setColor (aTextColor);
+ }
+ g.draw (aCheckBox);
+ g.rotate (nTextRotation);
+ g.scale (nScale, nScale);
+ g.translate (2,-2);
+ g.drawString (sStateName, 0,0);
+ }
+
+ // Draw string of set states.
+ String sStates = new String ();
+ for (int i=0; i<aStates.length; i++)
+ {
+ if (i > 0)
+ sStates = sStates + ", ";
+ sStates = sStates + NameProvider.getStateName(aStates[i]);
+ }
+ g.setTransform (aTransform);
+ g.translate (10,aWidgetArea.y+aWidgetArea.height-3);
+ g.scale (0.9,0.9);
+ g.drawString (sStates,0,0);
+ }
+ }
+
+ static private Color
+ saInvalidColor = new Color (255,0,255),
+ saFocusColor = new Color (100,100,255),
+ saSelectionColor = Color.GREEN,
+ saDefaultColor = new Color (90,90,90),
+ saEditColor = new Color (240,240,0);
+}
+
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java
new file mode 100644
index 000000000000..07b5d2bb9b78
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/TableView.java
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.lang.Integer;
+import java.lang.StringBuffer;
+
+import javax.swing.JLabel;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleTable;
+import com.sun.star.uno.UnoRuntime;
+
+
+
+/** The <type>ContextView</type> class displays information accessible over
+ the <type>XAccessibleContext</type> interface. This includes name,
+ description, and role.
+*/
+public class TableView
+ extends ObjectView
+{
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ if (UnoRuntime.queryInterface(
+ XAccessibleTable.class, xContext) != null)
+ return new TableView (aContainer);
+ else
+ return null;
+ }
+
+ public TableView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ ViewGridLayout aLayout = new ViewGridLayout (this);
+
+ maRowCountLabel = aLayout.AddLabeledEntry ("Row Count: ");
+ maColumnCountLabel = aLayout.AddLabeledEntry ("Column Count: ");
+ maCellCountLabel = aLayout.AddLabeledEntry ("Cell Count: ");
+ maSelectedRowsLabel = aLayout.AddLabeledEntry ("Selected Rows: ");
+ maSelectedColumnsLabel = aLayout.AddLabeledEntry ("Selected Columns: ");
+ }
+
+
+ public void SetObject (XAccessibleContext xContext)
+ {
+ mxTable = (XAccessibleTable)UnoRuntime.queryInterface(
+ XAccessibleTable.class, xContext);
+ super.SetObject (xContext);
+ }
+
+
+ public void Update ()
+ {
+ if (mxTable == null)
+ {
+ maRowCountLabel.setText ("<null object>");
+ maColumnCountLabel.setText ("<null object>");
+ maCellCountLabel.setText ("<null object>");
+ maSelectedRowsLabel.setText ("<null object>");
+ maSelectedColumnsLabel.setText ("<null object>");
+ }
+ else
+ {
+ int nRowCount = mxTable.getAccessibleRowCount();
+ int nColumnCount = mxTable.getAccessibleColumnCount();
+ maRowCountLabel.setText (Integer.toString (nRowCount));
+ maColumnCountLabel.setText (Integer.toString (nColumnCount));
+ maCellCountLabel.setText (Integer.toString (nRowCount*nColumnCount));
+
+ StringBuffer sList = new StringBuffer();
+ int[] aSelected = mxTable.getSelectedAccessibleRows();
+ boolean bFirst = true;
+ for (int i=0; i<aSelected.length; i++)
+ {
+ if ( ! bFirst)
+ {
+ sList.append (", ");
+ bFirst = false;
+ }
+ sList.append (Integer.toString(aSelected[i]));
+ }
+ maSelectedRowsLabel.setText (sList.toString());
+ sList = new StringBuffer();
+ aSelected = mxTable.getSelectedAccessibleColumns();
+ bFirst = true;
+ for (int i=0; i<aSelected.length; i++)
+ {
+ if ( ! bFirst)
+ {
+ sList.append (", ");
+ bFirst = false;
+ }
+ sList.append (Integer.toString(aSelected[i]));
+ }
+ maSelectedColumnsLabel.setText (sList.toString());
+ }
+ }
+
+
+
+
+ public String GetTitle ()
+ {
+ return ("Table");
+ }
+
+
+
+
+ /** Listen for changes regarding displayed values.
+ */
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ switch (aEvent.EventId)
+ {
+ case AccessibleEventId.TABLE_MODEL_CHANGED :
+ case AccessibleEventId.SELECTION_CHANGED:
+ Update ();
+ }
+ }
+
+ private XAccessibleTable mxTable;
+ private JLabel
+ maRowCountLabel,
+ maColumnCountLabel,
+ maCellCountLabel,
+ maSelectedRowsLabel,
+ maSelectedColumnsLabel;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java b/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java
new file mode 100644
index 000000000000..4a838aa85884
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/TextView.java
@@ -0,0 +1,467 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JSpinner;
+import javax.swing.JTree;
+import javax.swing.tree.TreeNode;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.MutableTreeNode;
+
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.AccessibleTextType;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.TextSegment;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleMultiLineText;
+import com.sun.star.accessibility.XAccessibleStateSet;
+import com.sun.star.awt.Point;
+import com.sun.star.awt.Rectangle;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.lang.IllegalArgumentException;
+import com.sun.star.uno.UnoRuntime;
+
+import org.openoffice.accessibility.awb.view.text.CaretSpinnerModel;
+import org.openoffice.accessibility.awb.view.text.TextDialogFactory;
+
+
+public class TextView
+ extends ObjectView
+ implements ActionListener
+{
+
+ /** Create a TextView when the given object supports the
+ XAccessibleText interface.
+ */
+ static public ObjectView Create (
+ ObjectViewContainer aContainer,
+ XAccessibleContext xContext)
+ {
+ XAccessibleText xText = (XAccessibleText)UnoRuntime.queryInterface(
+ XAccessibleText.class, xContext);
+ if (xText != null)
+ return new TextView (aContainer);
+ else
+ return null;
+ }
+
+
+ public TextView (ObjectViewContainer aContainer)
+ {
+ super (aContainer);
+
+ ViewGridLayout aLayout = new ViewGridLayout (this);
+
+ maTextLabel = aLayout.AddLabeledString ("Text: ");
+ maCharacterArrayLabel = aLayout.AddLabeledEntry ("Characters: ");
+ maCharacterCountLabel = aLayout.AddLabeledEntry ("Character Count: ");
+ maSelectionLabel = aLayout.AddLabeledEntry ("Selection: ");
+ maBoundsLabel = aLayout.AddLabeledEntry ("Bounds Test: ");
+ maCaretPositionSpinner = (JSpinner)aLayout.AddLabeledComponent (
+ "Caret position:", new JSpinner());
+ Dimension aSize = maCaretPositionSpinner.getSize();
+ maCaretPositionSpinner.setPreferredSize (new Dimension (100,20));
+ maCaretLineNoLabel = aLayout.AddLabeledEntry ("Line number at caret: ");
+ maCaretLineTextLabel = aLayout.AddLabeledEntry ("Text of line at caret: ");
+ maLineNoFromCaretPosLabel = aLayout.AddLabeledEntry ("Line number at index of caret: ");
+ maLineTextFromCaretPosLabel = aLayout.AddLabeledEntry ("Text of line at index of caret: ");
+
+ JPanel aButtonPanel = new JPanel ();
+ aLayout.AddComponent (aButtonPanel);
+
+ JButton aButton = new JButton ("select...");
+ aButton.setFont (aLayout.GetFont());
+ aButton.addActionListener (this);
+ aButtonPanel.add (aButton);
+
+ aButton = new JButton ("copy...");
+ aButton.setFont (aLayout.GetFont());
+ aButton.addActionListener (this);
+ aButtonPanel.add (aButton);
+
+ // A tree that holds the text broken down into various segments.
+ maTree = new JTree ();
+ aLayout.AddComponent (new JScrollPane (
+ maTree,
+ JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+ JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
+ }
+
+
+ /** Additionally to the context store a reference to the
+ XAccessibleText interface.
+ */
+ public void SetObject (XAccessibleContext xObject)
+ {
+ mxText = (XAccessibleText)UnoRuntime.queryInterface(
+ XAccessibleText.class, xObject);
+ maCaretSpinnerModel = new CaretSpinnerModel(mxText);
+ maCaretPositionSpinner.setModel (maCaretSpinnerModel);
+ super.SetObject (xObject);
+ }
+
+ synchronized public void Destroy ()
+ {
+ mxText = null;
+ super.Destroy();
+ }
+
+ synchronized public void Update ()
+ {
+ maCaretPositionSpinner.setEnabled (mxText != null);
+ DefaultMutableTreeNode aRoot = new DefaultMutableTreeNode ("Text Segments");
+ if (mxText == null)
+ {
+ maTextLabel.setText ("<null object>");
+ maCharacterArrayLabel.setText ("<null object>");
+ maCharacterCountLabel.setText ("<null object>");
+ maSelectionLabel.setText ("<null object>");
+ maBoundsLabel.setText ("<null object>");
+ maCaretLineNoLabel.setText ("<null object>");
+ maCaretLineTextLabel.setText ("<null object>");
+ maLineNoFromCaretPosLabel.setText ("<null object>");
+ maLineTextFromCaretPosLabel.setText ("<null object>");
+ }
+ else
+ {
+ maTextLabel.setText (mxText.getText());
+ maCharacterArrayLabel.setText (GetCharacterArray());
+ maCharacterCountLabel.setText (
+ Integer.toString(mxText.getCharacterCount()));
+ // Selection.
+ maSelectionLabel.setText (
+ "[" + mxText.getSelectionStart()
+ + "," + mxText.getSelectionEnd()
+ + "] \"" + mxText.getSelectedText() + "\"");
+
+ // Character bounds.
+ maBoundsLabel.setText (GetTextBoundsString());
+
+ // Caret position.
+ maCaretPositionSpinner.setValue (new Integer (mxText.getCaretPosition()));
+
+ // Multi line methods.
+ XAccessibleMultiLineText xMultiText = (XAccessibleMultiLineText)
+ UnoRuntime.queryInterface( XAccessibleMultiLineText.class, mxText );
+
+ if( null != xMultiText ) {
+ try {
+ maCaretLineNoLabel.setText ( Integer.toString( xMultiText.getNumberOfLineWithCaret() ) );
+ TextSegment ts = xMultiText.getTextAtLineWithCaret();
+ maCaretLineTextLabel.setText ( "[" + ts.SegmentStart
+ + "," + ts.SegmentEnd
+ + "] \"" + ts.SegmentText + "\"");
+ maLineNoFromCaretPosLabel.setText ( Integer.toString( xMultiText.getLineNumberAtIndex( mxText.getCaretPosition() ) ) );
+ ts = xMultiText.getTextAtLineNumber(xMultiText.getLineNumberAtIndex( mxText.getCaretPosition() ) );
+ maLineTextFromCaretPosLabel.setText ( "[" + ts.SegmentStart
+ + "," + ts.SegmentEnd
+ + "] \"" + ts.SegmentText + "\"");
+ } catch( IndexOutOfBoundsException e) {
+ }
+ }
+
+ // Text segments.
+ aRoot.add (CreateNode ("Character", AccessibleTextType.CHARACTER));
+ aRoot.add (CreateNode ("Word", AccessibleTextType.WORD));
+ aRoot.add (CreateNode ("Sentence", AccessibleTextType.SENTENCE));
+ aRoot.add (CreateNode ("Paragraph", AccessibleTextType.PARAGRAPH));
+ aRoot.add (CreateNode ("Line", AccessibleTextType.LINE));
+ aRoot.add (CreateNode ("Attribute", AccessibleTextType.ATTRIBUTE_RUN));
+ aRoot.add (CreateNode ("Glyph", AccessibleTextType.GLYPH));
+ }
+ ((DefaultTreeModel)maTree.getModel()).setRoot (aRoot);
+ }
+
+ public String GetTitle ()
+ {
+ return ("Text");
+ }
+
+ public void notifyEvent (AccessibleEventObject aEvent)
+ {
+ System.out.println (aEvent);
+ switch (aEvent.EventId)
+ {
+ case AccessibleEventId.CARET_CHANGED :
+ maCaretSpinnerModel.Update();
+ Update ();
+ break;
+
+ case AccessibleEventId.TEXT_CHANGED :
+ case AccessibleEventId.TEXT_SELECTION_CHANGED:
+ Update ();
+ break;
+ }
+ }
+
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ String sCommand = aEvent.getActionCommand();
+ if (sCommand.equals ("select..."))
+ TextDialogFactory.CreateSelectionDialog (mxContext);
+ else if (sCommand.equals ("copy..."))
+ TextDialogFactory.CreateCopyDialog (mxContext);
+ }
+
+
+
+ /** Create a string that is a list of all characters returned by the
+ getCharacter() method.
+ */
+ private String GetCharacterArray ()
+ {
+ // Do not show more than 30 characters.
+ int nCharacterCount = mxText.getCharacterCount();
+ int nMaxDisplayCount = 30;
+
+ // build up string
+ StringBuffer aCharacterArray = new StringBuffer();
+ int nIndex = 0;
+ try
+ {
+ while (nIndex<nCharacterCount && nIndex<nMaxDisplayCount)
+ {
+ aCharacterArray.append (mxText.getCharacter (nIndex));
+ if (nIndex < nCharacterCount-1)
+ aCharacterArray.append (",");
+ nIndex ++;
+ }
+ if (nMaxDisplayCount < nCharacterCount)
+ aCharacterArray.append (", ...");
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ aCharacterArray.append ("; Index Out Of Bounds at index " + nIndex);
+ }
+
+ return aCharacterArray.toString();
+ }
+
+
+
+ /** Iterate over all characters and translate their positions
+ back and forth.
+ */
+ private String GetTextBoundsString ()
+ {
+ StringBuffer aBuffer = new StringBuffer ();
+ try
+ {
+ // Iterate over all characters in the text.
+ int nCount = mxText.getCharacterCount();
+ for (int i=0; i<nCount; i++)
+ {
+ // Get bounds for this character.
+ Rectangle aBBox = mxText.getCharacterBounds (i);
+
+ // get the character by 'clicking' into the middle of
+ // the bounds
+ Point aMiddle = new Point();
+ aMiddle.X = aBBox.X + (aBBox.Width / 2) - 1;
+ aMiddle.Y = aBBox.Y + (aBBox.Height / 2) - 1;
+ int nIndex = mxText.getIndexAtPoint (aMiddle);
+
+ // get the character, or a '#' for an illegal index
+ if ((nIndex >= 0) && (nIndex < mxText.getCharacter(i)))
+ aBuffer.append (mxText.getCharacter(nIndex));
+ else
+ aBuffer.append ('#');
+ }
+ }
+ catch (IndexOutOfBoundsException aEvent)
+ {
+ // Ignore errors.
+ }
+
+ return aBuffer.toString();
+ }
+
+
+
+
+ private final static int BEFORE = -1;
+ private final static int AT = 0;
+ private final static int BEHIND = +1;
+
+ private MutableTreeNode CreateNode (String sTitle, short nTextType)
+ {
+ DefaultMutableTreeNode aNode = new DefaultMutableTreeNode (sTitle);
+
+ aNode.add (CreateSegmentNode ("Before", nTextType, BEFORE));
+ aNode.add (CreateSegmentNode ("At", nTextType, AT));
+ aNode.add (CreateSegmentNode ("Behind", nTextType, BEHIND));
+
+ return aNode;
+ }
+
+ private MutableTreeNode CreateSegmentNode (String sTitle, short nTextType, int nWhere)
+ {
+ TextSegment aSegment;
+ int nTextLength = mxText.getCharacterCount();
+ DefaultMutableTreeNode aNode = new DefaultMutableTreeNode (sTitle);
+ for (int nIndex=0; nIndex<=nTextLength; /* empty */)
+ {
+ aSegment = GetTextSegment (nIndex, nTextType, nWhere);
+ DefaultMutableTreeNode aSegmentNode = new DefaultMutableTreeNode (
+ new StringBuffer (
+ Integer.toString (nIndex) + " -> "
+ + Integer.toString (aSegment.SegmentStart) + " - "
+ + Integer.toString (aSegment.SegmentEnd) + " : "
+ + aSegment.SegmentText.toString()));
+ aNode.add (aSegmentNode);
+ if (nTextType == AccessibleTextType.ATTRIBUTE_RUN)
+ AddAttributeNodes (aSegmentNode, aSegment);
+ if (aSegment.SegmentEnd > nIndex)
+ nIndex = aSegment.SegmentEnd;
+ else
+ nIndex ++;
+ }
+
+ return aNode;
+ }
+
+
+ private TextSegment GetTextSegment (int nIndex, short nTextType, int nWhere)
+ {
+ TextSegment aSegment;
+
+ try
+ {
+ switch (nWhere)
+ {
+ case BEFORE:
+ aSegment = mxText.getTextBeforeIndex (nIndex, nTextType);
+ break;
+
+ case AT:
+ aSegment = mxText.getTextAtIndex (nIndex, nTextType);
+ break;
+
+ case BEHIND:
+ aSegment = mxText.getTextBehindIndex (nIndex, nTextType);
+ break;
+
+ default:
+ aSegment = new TextSegment();
+ aSegment.SegmentText = new String ("unknown position " + nWhere);
+ aSegment.SegmentStart = nIndex;
+ aSegment.SegmentStart = nIndex+1;
+ break;
+ }
+ }
+ catch (IndexOutOfBoundsException aException)
+ {
+ aSegment = new TextSegment ();
+ aSegment.SegmentText = new String ("Invalid index at ") + nIndex + " : "
+ + aException.toString();
+ aSegment.SegmentStart = nIndex;
+ aSegment.SegmentEnd = nIndex+1;
+ }
+ catch (IllegalArgumentException aException)
+ {
+ aSegment = new TextSegment ();
+ aSegment.SegmentText = new String ("Illegal argument at ") + nIndex + " : "
+ + aException.toString();
+ aSegment.SegmentStart = nIndex;
+ aSegment.SegmentEnd = nIndex+1;
+ }
+
+ return aSegment;
+ }
+
+
+ /** Add to the given node one node for every attribute of the given segment.
+ */
+ private void AddAttributeNodes (
+ DefaultMutableTreeNode aNode,
+ TextSegment aSegment)
+ {
+ try
+ {
+ PropertyValue[] aValues = mxText.getCharacterAttributes (
+ aSegment.SegmentStart, aAttributeList);
+ for (int i=0; i<aValues.length; i++)
+ aNode.add (new DefaultMutableTreeNode (
+ aValues[i].Name + ": " + aValues[i].Value));
+ }
+ catch (IndexOutOfBoundsException aException)
+ {
+ aNode.add (new DefaultMutableTreeNode (
+ "caught IndexOutOfBoundsException while retrieveing attributes"));
+ }
+ }
+
+ private XAccessibleText mxText;
+ private JLabel
+ maTextLabel,
+ maCharacterArrayLabel,
+ maCharacterCountLabel,
+ maSelectionLabel,
+ maBoundsLabel,
+ maCaretLineNoLabel,
+ maCaretLineTextLabel,
+ maLineNoFromCaretPosLabel,
+ maLineTextFromCaretPosLabel;
+
+ private JSpinner maCaretPositionSpinner;
+ private JTree maTree;
+ private CaretSpinnerModel maCaretSpinnerModel;
+
+ private static String[] aAttributeList = new String[] {
+ "CharBackColor",
+ "CharColor",
+ "CharEscapement",
+ "CharHeight",
+ "CharPosture",
+ "CharStrikeout",
+ "CharUnderline",
+ "CharWeight",
+ "ParaAdjust",
+ "ParaBottomMargin",
+ "ParaFirstLineIndent",
+ "ParaLeftMargin",
+ "ParaLineSpacing",
+ "ParaRightMargin",
+ "ParaTabStops"};
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java b/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java
new file mode 100644
index 000000000000..bc598dcaf2fa
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/ViewGridLayout.java
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.GridBagLayout;
+import java.awt.GridBagConstraints;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+
+
+/** This class is a convenience class for views to use the GridBagLayout.
+*/
+class ViewGridLayout
+{
+ public ViewGridLayout (JComponent aComponent)
+ {
+ maComponent = aComponent;
+ maComponent.setLayout (new GridBagLayout());
+ maComponent.setMinimumSize (new Dimension (300,30));
+ maComponent.setMaximumSize (new Dimension (300,1000));
+ mnCurrentLine = 0;
+ }
+
+ public JLabel AddLabeledEntry (String sTitle)
+ {
+ return (JLabel)AddLabeledComponent (sTitle, new JLabel (""));
+ }
+
+ public JLabel AddLabeledString (String sTitle)
+ {
+ JLabel aLabel = AddLabeledEntry (sTitle);
+ aLabel.setBackground (new Color(220,220,220));
+ aLabel.setOpaque (true);
+ return aLabel;
+ }
+
+ public JComponent AddLabeledComponent (String sTitle, JComponent aComponent)
+ {
+ GridBagConstraints constraints = new GridBagConstraints ();
+ constraints.gridx = 0;
+ constraints.anchor = GridBagConstraints.WEST;
+ constraints.fill = GridBagConstraints.NONE;
+ constraints.gridy = mnCurrentLine;
+
+ JLabel aLabel = new JLabel(sTitle);
+ aLabel.setFont (saFont);
+ maComponent.add (aLabel, constraints);
+ constraints.gridx = 1;
+ constraints.weightx = 1;
+ constraints.fill = GridBagConstraints.NONE;
+ aComponent.setFont (saFont);
+ maComponent.add (aComponent, constraints);
+
+ mnCurrentLine += 1;
+
+ return aComponent;
+ }
+
+ public JComponent AddComponent (JComponent aComponent)
+ {
+ GridBagConstraints constraints = new GridBagConstraints ();
+ constraints.gridx = 0;
+ constraints.gridwidth = 2;
+ constraints.weightx = 1;
+ constraints.anchor = GridBagConstraints.WEST;
+ constraints.fill = GridBagConstraints.HORIZONTAL;
+ constraints.gridy = mnCurrentLine;
+
+ maComponent.add (aComponent, constraints);
+
+ mnCurrentLine += 1;
+
+ return aComponent;
+ }
+
+ static public Font GetFont ()
+ {
+ return saFont;
+ }
+
+ static private Font saFont;
+ private int mnCurrentLine;
+ private JComponent maComponent;
+
+ static
+ {
+ saFont = new Font ("Dialog", Font.PLAIN, 11);
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common
new file mode 100644
index 000000000000..38033b3ab658
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.common
@@ -0,0 +1,45 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ ComponentView.java \
+ ContextView.java \
+ EditableTextView.java \
+ EventMonitorView.java \
+ FocusView.java \
+ LayoutManager.java \
+ ObjectView.java \
+ ObjectViewContainer.java \
+ ObjectViewContainerWindow.java \
+ ParentView.java \
+ SelectionView.java \
+ ServiceInterfaceView.java \
+ StateSetView.java \
+ TableView.java \
+ TextView.java \
+ ViewGridLayout.java
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk
new file mode 100644
index 000000000000..0bfa48537ea2
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/makefile.mk
@@ -0,0 +1,51 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..$/..
+TARGET = awb_view
+PACKAGE = org$/openoffice$/accessibility$/awb$/view
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java
new file mode 100644
index 000000000000..c210b0eff086
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/CaretSpinnerModel.java
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view.text;
+
+import java.lang.Integer;
+import java.util.Vector;
+import javax.swing.SpinnerModel;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.lang.IndexOutOfBoundsException;
+
+
+/** A simple model for JSpinner objects that clips the spinner values to valid
+ text indices.
+*/
+public class CaretSpinnerModel
+ implements SpinnerModel
+{
+ public CaretSpinnerModel (XAccessibleText xText)
+ {
+ mxText = xText;
+ maListeners = new Vector ();
+ }
+
+ public void addChangeListener (ChangeListener aListener)
+ {
+ if (aListener != null)
+ maListeners.add (aListener);
+ }
+
+ public void removeChangeListener (ChangeListener aListener)
+ {
+ maListeners.removeElement (aListener);
+ }
+
+ public Object getNextValue ()
+ {
+ if (mxText != null)
+ {
+ int nPosition = mxText.getCaretPosition();
+ if (nPosition+1 <= mxText.getCharacterCount())
+ return new Integer (nPosition+1);
+ }
+ return null;
+ }
+
+ public Object getPreviousValue ()
+ {
+ if (mxText != null)
+ {
+ int nPosition = mxText.getCaretPosition();
+ if (nPosition > 0)
+ return new Integer (nPosition-1);
+ }
+ return null;
+ }
+
+ public Object getValue ()
+ {
+ if (mxText != null)
+ return new Integer (mxText.getCaretPosition());
+ else
+ return null;
+ }
+
+ public void setValue (Object aValue)
+ {
+ if (mxText != null)
+ if (aValue instanceof Integer)
+ {
+ try
+ {
+ if( ((Integer)aValue).intValue() != mxText.getCaretPosition() )
+ mxText.setCaretPosition (((Integer)aValue).intValue());
+ }
+ catch (IndexOutOfBoundsException aException)
+ {
+ }
+ }
+ }
+
+ /** Call this method when the caret position has changes so that the model
+ can inform its listeners about it.
+ */
+ public void Update ()
+ {
+ ChangeEvent aEvent = new ChangeEvent (this);
+ for (int i=0; i<maListeners.size(); i++)
+ ((ChangeListener)maListeners.elementAt(i)).stateChanged (aEvent);
+ }
+
+ private XAccessibleText mxText;
+ private Integer maValue;
+ private Vector maListeners;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile b/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile
new file mode 100644
index 000000000000..c58899a09f6e
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/Makefile
@@ -0,0 +1,13 @@
+# $Id: Makefile,v 1.1 2003/06/13 16:30:41 af Exp $
+
+all : package
+
+ROOT=../../../../..
+PACKAGE = org.openoffice.accessibility.awb.view.text
+SUBDIRS =
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+
+package : $(CLASS_FILES)
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java
new file mode 100644
index 000000000000..f37969d5ee59
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextActionDialog.java
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view.text;
+
+import java.awt.BorderLayout;
+import java.awt.Container;
+import java.awt.FlowLayout;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JDialog;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextArea;
+import javax.swing.text.JTextComponent;
+
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.uno.UnoRuntime;
+
+
+/**
+ * Display a dialog with a text field and a pair of cancel/do-it buttons
+ */
+class TextActionDialog
+ extends JDialog
+ implements ActionListener
+{
+ public TextActionDialog (
+ XAccessibleContext xContext,
+ String sExplanation,
+ String sTitle)
+ {
+ super();// AccessibilityWorkBench.Instance() );
+
+ mxContext = xContext;
+ msTitle = sTitle;
+ msExplanation = sExplanation;
+ Layout ();
+ setSize (350, 225);
+
+ }
+
+
+ /** build dialog */
+ protected void Layout()
+ {
+ setTitle (msTitle);
+
+ // vertical stacking of the elements
+ Container aContent = getContentPane();
+ // aContent.setLayout( new BorderLayout() );
+
+ // Label with explanation.
+ if (msExplanation.length() > 0)
+ aContent.add (new JLabel (msExplanation), BorderLayout.NORTH);
+
+ // the text field
+ maText = new JTextArea();
+ maText.setLineWrap (true);
+ maText.setEditable (false);
+ aContent.add (maText, BorderLayout.CENTER);
+
+ XAccessibleText xText = (XAccessibleText)UnoRuntime.queryInterface(
+ XAccessibleText.class, mxContext);
+ String sText = xText.getText();
+ maText.setText (sText);
+ maText.setRows (sText.length() / 40 + 1);
+ maText.setColumns (Math.min (Math.max (40, sText.length()), 20));
+
+ JPanel aButtons = new JPanel();
+ aButtons.setLayout (new FlowLayout());
+ maIndexToggle = new JCheckBox ("reverse selection");
+ aButtons.add (maIndexToggle);
+
+ JButton aActionButton = new JButton (msTitle);
+ aActionButton.setActionCommand ("Action");
+ aActionButton.addActionListener (this);
+ aButtons.add (aActionButton);
+
+ JButton aCancelButton = new JButton ("cancel");
+ aCancelButton.setActionCommand ("Cancel");
+ aCancelButton.addActionListener (this);
+ aButtons.add (aCancelButton);
+
+ // add Panel with buttons
+ aContent.add (aButtons, BorderLayout.SOUTH);
+ }
+
+ protected void Cancel()
+ {
+ hide();
+ dispose();
+ }
+
+ public void actionPerformed(ActionEvent e)
+ {
+ String sCommand = e.getActionCommand();
+
+ if( "Cancel".equals( sCommand ) )
+ Cancel();
+ else if( "Action".equals( sCommand ) )
+ Action();
+ }
+
+
+ protected int GetSelectionStart()
+ {
+ return GetSelection(true);
+ }
+ protected int GetSelectionEnd()
+ {
+ return GetSelection(false);
+ }
+ private int GetSelection (boolean bStart)
+ {
+ if (bStart ^ maIndexToggle.isSelected())
+ return maText.getSelectionStart();
+ else
+ return maText.getSelectionEnd();
+ }
+
+
+
+ protected void Action ()
+ {
+ String sError = null;
+ boolean bSuccess = true;
+ try
+ {
+ XAccessibleText xText =
+ (XAccessibleText)UnoRuntime.queryInterface(
+ XAccessibleText.class, mxContext);
+ if (xText != null)
+ bSuccess = bSuccess && TextAction (xText);
+
+ XAccessibleEditableText xEditableText =
+ (XAccessibleEditableText)UnoRuntime.queryInterface(
+ XAccessibleEditableText.class, mxContext);
+ if (xEditableText != null)
+ bSuccess = bSuccess && EditableTextAction (xEditableText);
+
+ if ( ! bSuccess)
+ sError = "Can't execute";
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ sError = "Index out of bounds";
+ }
+
+ if (sError != null)
+ JOptionPane.showMessageDialog (
+ this,// AccessibilityWorkBench.Instance(),
+ sError,
+ msTitle,
+ JOptionPane.ERROR_MESSAGE);
+
+ Cancel();
+ }
+
+ /** override this for dialog-specific action */
+ boolean TextAction (XAccessibleText xText)
+ throws IndexOutOfBoundsException
+ {
+ return true;
+ }
+
+ boolean EditableTextAction (XAccessibleEditableText xText)
+ throws IndexOutOfBoundsException
+ {
+ return true;
+ }
+
+ private XAccessibleContext mxContext;
+ protected JTextArea maText;
+ private String msTitle;
+ private String msExplanation;
+ private JCheckBox maIndexToggle;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java
new file mode 100644
index 000000000000..dad548ca730e
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextAttributeDialog.java
@@ -0,0 +1,179 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view.text;
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.Graphics;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import javax.swing.BoxLayout;
+import javax.swing.Icon;
+import javax.swing.JButton;
+import javax.swing.JCheckBox;
+import javax.swing.JColorChooser;
+import javax.swing.JPanel;
+import javax.swing.text.JTextComponent;
+
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.uno.UnoRuntime;
+
+
+class TextAttributeDialog
+ extends TextActionDialog
+{
+ public TextAttributeDialog (XAccessibleContext xContext)
+ {
+ super (xContext,
+ "Choose attributes, select text, and press 'Set':",
+ "set");
+ }
+
+ protected void Layout ()
+ {
+ super.Layout ();
+
+ maForeground = Color.black;
+ maBackground = Color.white;
+
+ JPanel aPanel = new JPanel();
+ aPanel.setLayout (new BoxLayout (aPanel, BoxLayout.Y_AXIS));
+
+ maBoldCheckBox = new JCheckBox ("bold");
+ maUnderlineCheckBox = new JCheckBox ("underline");
+ maItalicsCheckBox = new JCheckBox ("italics");
+
+ JButton aForegroundButton = new JButton ("Foreground",
+ new TextAttributeDialog.ColorIcon(true));
+ aForegroundButton.addActionListener (new ActionListener()
+ {
+ public void actionPerformed (ActionEvent aEvent)
+ {
+ maForeground = JColorChooser.showDialog (
+ TextAttributeDialog.this,
+ "Select Foreground Color",
+ maForeground);
+ }
+ } );
+
+ JButton aBackgroundButton = new JButton("Background",
+ new TextAttributeDialog.ColorIcon(false));
+ aBackgroundButton.addActionListener (new ActionListener()
+ {
+ public void actionPerformed (ActionEvent eEvent)
+ {
+ maBackground = JColorChooser.showDialog(
+ TextAttributeDialog.this,
+ "Select Background Color",
+ maBackground);
+ }
+ } );
+
+ aPanel.add (maBoldCheckBox);
+ aPanel.add (maUnderlineCheckBox);
+ aPanel.add (maItalicsCheckBox);
+ aPanel.add (aForegroundButton);
+ aPanel.add (aBackgroundButton);
+
+ getContentPane().add (aPanel, BorderLayout.WEST);
+ }
+
+
+ /** edit the text */
+ boolean EditableTextAction (XAccessibleEditableText xText)
+ throws IndexOutOfBoundsException
+ {
+ PropertyValue[] aSequence = new PropertyValue[6];
+ aSequence[0] = new PropertyValue();
+ aSequence[0].Name = "CharWeight";
+ aSequence[0].Value = new Integer (maBoldCheckBox.isSelected() ? 150 : 100);
+ aSequence[1] = new PropertyValue();
+ aSequence[1].Name = "CharUnderline";
+ aSequence[1].Value = new Integer (maUnderlineCheckBox.isSelected() ? 1 : 0);
+ aSequence[2] = new PropertyValue();
+ aSequence[2].Name = "CharBackColor";
+ aSequence[2].Value = new Integer (maBackground.getRGB());
+ aSequence[3] = new PropertyValue();
+ aSequence[3].Name = "CharColor";
+ aSequence[3].Value = new Integer (maForeground.getRGB());
+ aSequence[4] = new PropertyValue();
+ aSequence[4].Name = "CharPosture";
+ aSequence[4].Value = new Integer (maItalicsCheckBox.isSelected() ? 1 : 0);
+ aSequence[5] = new PropertyValue();
+ aSequence[5].Name = "CharBackTransparent";
+ aSequence[5].Value = new Boolean (false);
+
+ return xText.setAttributes (
+ GetSelectionStart(),
+ GetSelectionEnd(),
+ aSequence);
+ }
+
+ class ColorIcon
+ implements Icon
+ {
+ public ColorIcon(boolean bWhich) { bForeground = bWhich; }
+ public int getIconHeight() { return nHeight; }
+ public int getIconWidth() { return nWidth; }
+ public void paintIcon (Component c, Graphics g, int x, int y)
+ {
+ g.setColor( getColor() );
+ g.fillRect( x, y, nHeight, nWidth );
+ g.setColor( c.getForeground() );
+ g.drawRect( x, y, nHeight, nWidth );
+ }
+ Color getColor()
+ {
+ if (bForeground)
+ return maForeground;
+ else
+ return maBackground;
+ }
+
+ private static final int nHeight = 16;
+ private static final int nWidth = 16;
+ private boolean bForeground;
+ }
+
+
+
+
+ private JCheckBox
+ maBoldCheckBox,
+ maUnderlineCheckBox,
+ maItalicsCheckBox;
+ private Color
+ maForeground,
+ maBackground;
+
+}
+
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java
new file mode 100644
index 000000000000..cdb3f26b5e55
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextDialogFactory.java
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view.text;
+
+import javax.swing.JDialog;
+import javax.swing.text.JTextComponent;
+
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.accessibility.XAccessibleText;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.uno.UnoRuntime;
+
+
+/** Factory for dialogs of the text views.
+*/
+public class TextDialogFactory
+{
+ static public JDialog CreateSelectionDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextActionDialog(
+ xContext,
+ "Select range:",
+ "select")
+ {
+ boolean TextAction (XAccessibleText xText)
+ throws IndexOutOfBoundsException
+ {
+ return xText.setSelection(
+ GetSelectionStart(),
+ GetSelectionEnd() );
+ }
+ };
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+
+ static public JDialog CreateCopyDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextActionDialog(
+ xContext,
+ "Select range and copy:",
+ "copy")
+ {
+ boolean TextAction (XAccessibleText xText)
+ throws IndexOutOfBoundsException
+ {
+ return xText.copyText(
+ GetSelectionStart(),
+ GetSelectionEnd());
+ }
+ };
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+ static public JDialog CreateCutDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextActionDialog(
+ xContext,
+ "Select range and cut:",
+ "cut")
+ {
+ boolean EditableTextAction (XAccessibleEditableText xText)
+ throws IndexOutOfBoundsException
+ {
+ return xText.cutText(
+ GetSelectionStart(),
+ GetSelectionEnd() );
+ }
+ };
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+ static public JDialog CreatePasteDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextActionDialog (
+ xContext,
+ "Place Caret and paste:",
+ "paste")
+ {
+ boolean EditableTextAction (XAccessibleEditableText xText)
+ throws IndexOutOfBoundsException
+ {
+ return xText.pasteText(maText.getCaretPosition());
+ }
+ };
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+ static public JDialog CreateEditDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextEditDialog (
+ xContext,
+ "Edit text:",
+ "edit");
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+ static public JDialog CreateFormatDialog (XAccessibleContext xContext)
+ {
+ JDialog aDialog = new TextAttributeDialog (xContext);
+ if (aDialog != null)
+ aDialog.show();
+ return aDialog;
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java
new file mode 100644
index 000000000000..a8710cbad7cc
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/TextEditDialog.java
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.awb.view.text;
+
+import javax.swing.text.JTextComponent;
+
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleEditableText;
+import com.sun.star.lang.IndexOutOfBoundsException;
+import com.sun.star.uno.UnoRuntime;
+
+
+class TextEditDialog
+ extends TextActionDialog
+{
+ public TextEditDialog (
+ XAccessibleContext xContext,
+ String sExplanation,
+ String sTitle )
+ {
+ super (xContext, sExplanation, sTitle);
+ }
+
+ protected void Layout()
+ {
+ super.Layout();
+ maText.setEditable (true);
+ }
+
+
+ /** edit the text */
+ boolean EditableTextAction (XAccessibleEditableText xText)
+ {
+ return UpdateText (xText, maText.getText());
+ }
+
+
+ /** update the text */
+ boolean UpdateText (XAccessibleEditableText xText, String sNew)
+ {
+ boolean bResult = false;
+
+ String sOld = xText.getText();
+
+ // false alarm? Early out if no change was done!
+ if ( ! sOld.equals (sNew))
+ {
+
+ // Get the minimum length of both strings.
+ int nMinLength = sOld.length();
+ if (sNew.length() < nMinLength)
+ nMinLength = sNew.length();
+
+ // Count equal characters from front and end.
+ int nFront = 0;
+ while ((nFront < nMinLength) &&
+ (sNew.charAt(nFront) == sOld.charAt(nFront)))
+ nFront++;
+ int nBack = 0;
+ while ((nBack < nMinLength) &&
+ (sNew.charAt(sNew.length()-nBack-1) ==
+ sOld.charAt(sOld.length()-nBack-1) ))
+ nBack++;
+ if (nFront + nBack > nMinLength)
+ nBack = nMinLength - nFront;
+
+ // so... the first nFront and the last nBack characters are the
+ // same. Change the others!
+ String sDel = sOld.substring (nFront, sOld.length() - nBack);
+ String sIns = sNew.substring (nFront, sNew.length() - nBack);
+
+ System.out.println ("edit text: " +
+ sOld.substring(0, nFront) +
+ " [ " + sDel + " -> " + sIns + " ] " +
+ sOld.substring(sOld.length() - nBack));
+
+ try
+ {
+ // edit the text, and use
+ // (set|insert|delete|replace)Text as needed
+ if( nFront+nBack == 0 )
+ bResult = xText.setText( sIns );
+ else if( sDel.length() == 0 )
+ bResult = xText.insertText( sIns, nFront );
+ else if( sIns.length() == 0 )
+ bResult = xText.deleteText( nFront, sOld.length()-nBack );
+ else
+ bResult = xText.replaceText(nFront, sOld.length()-nBack,sIns);
+ }
+ catch( IndexOutOfBoundsException aException)
+ {
+ }
+ }
+
+ return bResult;
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common
new file mode 100644
index 000000000000..7d9a5e8febfa
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.common
@@ -0,0 +1,34 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JARFILES = jurt.jar unoil.jar ridl.jar
+JAVAFILES = \
+ CaretSpinnerModel.java \
+ TextActionDialog.java \
+ TextEditDialog.java \
+ TextAttributeDialog.java \
+ TextDialogFactory.java
diff --git a/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk
new file mode 100644
index 000000000000..1ec7da26619b
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/awb/view/text/makefile.mk
@@ -0,0 +1,51 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..$/..$/..
+TARGET = awb_view_text
+PACKAGE = org$/openoffice$/accessibility$/awb$/view$/text
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java b/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java
new file mode 100644
index 000000000000..0f56117e1fdf
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/AccessibleEventMulticaster.java
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package org.openoffice.accessibility.misc;
+
+import com.sun.star.lang.EventObject;
+
+import com.sun.star.accessibility.AccessibleEventObject;
+import com.sun.star.accessibility.XAccessibleEventBroadcaster;
+import com.sun.star.accessibility.XAccessibleEventListener;
+
+/**
+ *
+ */
+public class AccessibleEventMulticaster implements XAccessibleEventListener {
+
+ private final XAccessibleEventListener a;
+ private final XAccessibleEventListener b;
+
+ /** Creates a new instance of AccessibleEventMulticaster */
+ protected AccessibleEventMulticaster(XAccessibleEventListener a,
+ XAccessibleEventListener b) {
+ this.a = a;
+ this.b = b;
+ }
+
+ protected XAccessibleEventListener remove(XAccessibleEventListener l) {
+ if (l == a)
+ return b;
+ if (l == b)
+ return a;
+ XAccessibleEventListener a2 = remove(a, l);
+ XAccessibleEventListener b2 = remove(b, l);
+ if (a2 == a && b2 == b) {
+ return this; // not found
+ }
+ return add(a2, b2);
+ }
+
+ public void notifyEvent(AccessibleEventObject accessibleEventObject) {
+ a.notifyEvent(accessibleEventObject);
+ b.notifyEvent(accessibleEventObject);
+ }
+
+ public void disposing(EventObject eventObject) {
+ a.disposing(eventObject);
+ b.disposing(eventObject);
+ }
+
+ public static XAccessibleEventListener add(XAccessibleEventListener a, XAccessibleEventListener b) {
+ if (a == null)
+ return b;
+ if (b == null)
+ return a;
+ return new AccessibleEventMulticaster(a,b);
+ }
+
+ public static XAccessibleEventListener remove(XAccessibleEventListener l, XAccessibleEventListener oldl) {
+ if (l == oldl || l == null) {
+ return null;
+ } else if (l instanceof AccessibleEventMulticaster) {
+ return ((AccessibleEventMulticaster) l).remove(oldl);
+ } else {
+ return l;
+ }
+ }
+
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Connector.java b/accessibility/workben/org/openoffice/accessibility/misc/Connector.java
new file mode 100644
index 000000000000..de188676e224
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/Connector.java
@@ -0,0 +1,50 @@
+package org.openoffice.accessibility.misc;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.Vector;
+
+
+/** Wait for an Office application and connect to it.
+*/
+public class Connector
+ extends TimerTask
+{
+ final public static long snDelay = 3000;
+
+ public Connector ()
+ {
+ maTimer = new Timer (true);
+ maListeners = new Vector();
+ run ();
+ }
+
+ public void AddConnectionListener (ActionListener aListener)
+ {
+ SimpleOffice aOffice = SimpleOffice.Instance();
+ if (aOffice!=null && aOffice.IsConnected())
+ aListener.actionPerformed (
+ new ActionEvent (aOffice,0,"<connected>"));
+ maListeners.add (aListener);
+ }
+
+ public void run ()
+ {
+ SimpleOffice aOffice = SimpleOffice.Instance();
+ if (aOffice!=null && !aOffice.IsConnected())
+ if ( ! aOffice.Connect())
+ maTimer.schedule (this, snDelay);
+ else
+ {
+ ActionEvent aEvent = new ActionEvent (aOffice,0,"<connected>");
+ for (int i=0; i<maListeners.size(); i++)
+ ((ActionListener)maListeners.elementAt(i)).actionPerformed(
+ aEvent);
+ }
+ }
+
+ Timer maTimer;
+ Vector maListeners;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java b/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java
new file mode 100644
index 000000000000..fbd1455cd295
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/InformationWriter.java
@@ -0,0 +1,421 @@
+package org.openoffice.accessibility.misc;
+
+import java.lang.Thread;
+import java.io.PrintStream;
+
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XWindow;
+
+import com.sun.star.beans.Property;
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.beans.XPropertySetInfo;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XChild;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.container.XEnumeration;
+
+import com.sun.star.frame.XComponentLoader;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XTasksSupplier;
+import com.sun.star.frame.XTask;
+
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XServiceName;
+import com.sun.star.lang.XTypeProvider;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+
+import com.sun.star.drawing.XDrawView;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeDescriptor;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleRelationSet;
+import com.sun.star.accessibility.XAccessibleStateSet;
+
+public class InformationWriter
+{
+ public InformationWriter (PrintStream aOut)
+ {
+ maOut = aOut;
+ }
+
+ public void drawPageTest (XInterface xPage)
+ {
+ try
+ {
+ printProperty (xPage, "BorderBottom ", "BorderBottom");
+ printProperty (xPage, "BorderLeft ", "BorderLeft");
+ printProperty (xPage, "BorderRight ", "BorderRight");
+ printProperty (xPage, "BorderTop ", "BorderTop");
+ printProperty (xPage, "Height ", "Height");
+ printProperty (xPage, "Width ", "Width");
+ printProperty (xPage, "Number ", "Number");
+ }
+ catch (Exception e)
+ {
+ System.out.println ("caught exception while testing draw page:" + e);
+ }
+ }
+
+ public void printProperty (XInterface xObject, String prefix, String name)
+ {
+ try
+ {
+ XPropertySet xPropertySet = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet.class, xObject);
+ maOut.println (prefix +
+ xPropertySet.getPropertyValue (name));
+ }
+ catch (Exception e)
+ {
+ maOut.println ("caught exception while getting property "
+ + name + " : " + e);
+ }
+ }
+
+
+
+ public void showShapes (XDrawPage xPage)
+ {
+ try
+ {
+ XIndexAccess xShapeList = (XIndexAccess) UnoRuntime.queryInterface(
+ XIndexAccess.class, xPage);
+
+ maOut.println ("There are " + xShapeList.getCount()
+ + " shapes");
+ for (int i=0; i<xShapeList.getCount(); i++)
+ {
+ XShape xShape = (XShape) UnoRuntime.queryInterface(
+ XShape.class, xShapeList.getByIndex (i));
+
+ XShapeDescriptor xShapeDescriptor =
+ (XShapeDescriptor) UnoRuntime.queryInterface(
+ XShapeDescriptor.class, xShape);
+ String sName = xShapeDescriptor.getShapeType ();
+ maOut.println (" shape " + i + " : " + sName);
+
+ XPropertySet xPropertySet =
+ (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet.class, xShape);
+ Integer nZOrder =
+ (Integer) xPropertySet.getPropertyValue ("ZOrder");
+ maOut.println (" zorder = " + nZOrder);
+ }
+ }
+ catch (Exception e)
+ {
+ maOut.println ("caught exception in showShapes: " + e);
+ }
+ }
+
+
+
+
+ /** @descr Print all available services of the given object to the
+ standard output.
+ */
+ public void showServices (XInterface xObject)
+ {
+ try
+ {
+ maOut.println ("Services:");
+ XMultiServiceFactory xMSF = (XMultiServiceFactory) UnoRuntime.queryInterface (
+ XMultiServiceFactory.class,
+ xObject
+ );
+ if (xMSF == null)
+ maOut.println (" object does not support interface XMultiServiceFactory");
+ else
+ {
+ String[] sServiceNames = xMSF.getAvailableServiceNames ();
+ maOut.println (" object can create "
+ + sServiceNames.length + " services");
+ for (int i=0; i<sServiceNames.length; i++)
+ maOut.println (" service " + i + " : " + sServiceNames[i]);
+ }
+ }
+ catch (Exception e)
+ {
+ maOut.println ("caught exception in showServices : " + e);
+ }
+ }
+
+ /** @descr Print the service and implementation name of the given
+ object.
+ */
+ public void showInfo (XInterface xObject)
+ {
+ try
+ {
+ System.out.println ("Info:");
+ // Use interface XServiceName to retrieve name of (main) service.
+ XServiceName xSN = (XServiceName) UnoRuntime.queryInterface (
+ XServiceName.class, xObject);
+ if (xSN == null)
+ maOut.println (" interface XServiceName not supported");
+ else
+ {
+ maOut.println (" Service name : " + xSN.getServiceName ());
+ }
+
+ // Use interface XServiceInfo to retrieve information about
+ // supported services.
+ XServiceInfo xSI = (XServiceInfo) UnoRuntime.queryInterface (
+ XServiceInfo.class, xObject);
+ if (xSI == null)
+ maOut.println (" interface XServiceInfo not supported");
+ else
+ {
+ maOut.println (" Implementation name : "
+ + xSI.getImplementationName ());
+ }
+ }
+ catch (Exception e)
+ {
+ maOut.println ("caught exception in showInfo : " + e);
+ }
+ }
+
+
+
+
+ /** @descr Print information about supported interfaces.
+ */
+ public void showInterfaces (XInterface xObject)
+ {
+ try
+ {
+ maOut.println ("Interfaces:");
+ // Use interface XTypeProvider to retrieve a list of supported
+ // interfaces.
+ XTypeProvider xTP = (XTypeProvider) UnoRuntime.queryInterface (
+ XTypeProvider.class, xObject);
+ if (xTP == null)
+ maOut.println (" interface XTypeProvider not supported");
+ else
+ {
+ Type[] aTypeList = xTP.getTypes ();
+ maOut.println (" object supports " + aTypeList.length
+ + " interfaces");
+ for (int i=0; i<aTypeList.length; i++)
+ maOut.println (" " + i + " : "
+ + aTypeList[i].getTypeName());
+ }
+ }
+ catch (Exception e)
+ {
+ maOut.println ("caught exception in showInterfaces : " + e);
+ }
+ }
+
+
+ /** @descr Print information concerning the accessibility of the given
+ object.
+ */
+ public boolean showAccessibility (XInterface xObject, int depth)
+ {
+ try
+ {
+ // Create indentation string.
+ String sIndent = "";
+ while (depth-- > 0)
+ sIndent += " ";
+
+ // Get XAccessibleContext object if given object does not
+ // already support this interface.
+ XAccessibleContext xContext
+ = (XAccessibleContext) UnoRuntime.queryInterface (
+ XAccessibleContext.class, xObject);
+ if (xContext == null)
+ {
+ XAccessible xAccessible
+ = (XAccessible) UnoRuntime.queryInterface (
+ XAccessible.class, xObject);
+ if (xAccessible == null)
+ {
+ maOut.println (sIndent + "given object " + xObject
+ + " is not accessible");
+ return false;
+ }
+ else
+ xContext = xAccessible.getAccessibleContext();
+ }
+
+ // Print information about the accessible context.
+ if (xContext != null)
+ {
+ maOut.println (sIndent + "Name : "
+ + xContext.getAccessibleName());
+ maOut.println (sIndent + "Description : "
+ + xContext.getAccessibleDescription());
+ maOut.println (sIndent + "Role : "
+ + xContext.getAccessibleRole());
+ String sHasParent;
+ if (xContext.getAccessibleParent() != null)
+ {
+ maOut.println (sIndent + "Has parent : yes");
+ maOut.println (sIndent + "Parent index : "
+ + xContext.getAccessibleIndexInParent());
+ }
+ else
+ maOut.println (sIndent + "Has parent : no");
+ maOut.println (sIndent + "Child count : "
+ + xContext.getAccessibleChildCount());
+ maOut.print (sIndent + "Relation set : ");
+ XAccessibleRelationSet xRelationSet
+ = xContext.getAccessibleRelationSet();
+ if (xRelationSet != null)
+ {
+ maOut.print (xRelationSet.getRelationCount() + " (");
+ for (int i=0; i<xRelationSet.getRelationCount(); i++)
+ {
+ if (i > 0)
+ maOut.print (", ");
+ maOut.print (xRelationSet.getRelation(i).toString());
+ }
+ maOut.println (")");
+ }
+ else
+ maOut.println ("no relation set");
+
+ maOut.print (sIndent + "State set : ");
+ XAccessibleStateSet xStateSet =
+ xContext.getAccessibleStateSet();
+ if (xStateSet != null)
+ {
+ XIndexAccess xStates =
+ (XIndexAccess) UnoRuntime.queryInterface (
+ XIndexAccess.class, xStateSet);
+ maOut.print (xStates.getCount() + " (");
+ for (int i=0; i<xStates.getCount(); i++)
+ {
+ if (i > 0)
+ maOut.print (", ");
+ maOut.print (xStates.getByIndex(i).toString());
+ }
+ maOut.println (")");
+ }
+ else
+ maOut.println ("no state set");
+
+ showAccessibleComponent (xContext, sIndent);
+ }
+ else
+ maOut.println ("object has no accessible context.");
+
+ // showInfo (xContext);
+ // showServices (xContext);
+ // showInterfaces (xContext);
+ }
+ catch (Exception e)
+ {
+ System.out.println ("caught exception in showAccessibility :" + e);
+ }
+ return true;
+ }
+
+
+
+
+ /** @descr Print information about the given accessible component.
+ */
+ public void showAccessibleComponent (XInterface xObject, String sIndent)
+ {
+ try
+ {
+ XAccessibleComponent xComponent =
+ (XAccessibleComponent) UnoRuntime.queryInterface (
+ XAccessibleComponent.class, xObject);
+
+ // Print information about the accessible context.
+ if (xComponent != null)
+ {
+ maOut.println (sIndent + "Position : "
+ + xComponent.getLocation().X+", "
+ + xComponent.getLocation().Y);
+ maOut.println (sIndent + "Screen position : "
+ + xComponent.getLocationOnScreen().X+", "
+ + xComponent.getLocationOnScreen().Y);
+ maOut.println (sIndent + "Size : "
+ + xComponent.getSize().Width+", "
+ + xComponent.getSize().Height);
+ }
+ }
+ catch (Exception e)
+ {
+ System.out.println (
+ "caught exception in showAccessibleComponent : " + e);
+ }
+ }
+
+
+ /** Show a textual representation of the accessibility subtree rooted in
+ xRoot.
+ */
+ public boolean showAccessibilityTree (XAccessible xRoot, int depth)
+ {
+ try
+ {
+ if ( ! showAccessibility (xRoot, depth))
+ return false;
+
+ String sIndent = "";
+ for (int i=0; i<depth; i++)
+ sIndent += " ";
+
+ // Iterate over children and show them.
+ XAccessibleContext xContext = xRoot.getAccessibleContext();
+ if (xContext != null)
+ {
+ int n = xContext.getAccessibleChildCount();
+ for (int i=0; i<n; i++)
+ {
+ maOut.println (sIndent + "child " + i + " :");
+ showAccessibilityTree (xContext.getAccessibleChild(i),depth+1);
+ }
+ }
+ else
+ maOut.println ("Accessible object has no context");
+ }
+ catch (Exception e)
+ {
+ System.out.println (
+ "caught exception in showAccessibleTree : " + e);
+ return false;
+ }
+
+ return true;
+ }
+
+ public void showProperties (XInterface xObject)
+ {
+ XPropertySet xSet = (XPropertySet) UnoRuntime.queryInterface (
+ XPropertySet.class, xObject);
+ if (xSet == null)
+ maOut.println ("object does not support XPropertySet");
+ else
+ {
+ XPropertySetInfo xInfo = xSet.getPropertySetInfo ();
+ Property[] aProperties = xInfo.getProperties ();
+ int n = aProperties.length;
+ for (int i=0; i<n; i++)
+ maOut.println (i + " : " + aProperties[i].Name +", " + aProperties[i].Type);
+ }
+ }
+
+ private PrintStream maOut;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Makefile b/accessibility/workben/org/openoffice/accessibility/misc/Makefile
new file mode 100644
index 000000000000..ce9091d5d735
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/Makefile
@@ -0,0 +1,38 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+all : package
+
+ROOT=../../../..
+PACKAGE = org.openoffice.accessibility.misc
+SUBDIRS =
+
+include makefile.common
+
+include $(ROOT)/makefile.in
+
+package: subdirs $(CLASS_FILES)
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java b/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java
new file mode 100644
index 000000000000..d990a517dfc1
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/MessageArea.java
@@ -0,0 +1,125 @@
+package org.openoffice.accessibility.misc;
+
+import java.awt.Font;
+import java.awt.Rectangle;
+import java.awt.Color;
+import java.awt.Graphics;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JScrollBar;
+
+
+
+/** A message area displays text in a scrollable text widget. It is a
+ singleton. Other objects can access it directly to display messages.
+*/
+public class MessageArea
+ extends JScrollPane
+{
+ public static synchronized MessageArea Instance ()
+ {
+ if (saInstance == null)
+ saInstance = new MessageArea ();
+ return saInstance;
+ }
+
+
+
+
+ /** Create a new message area. This method is private because the class is
+ a singleton and may therefore not be instanciated from the outside.
+ */
+ private MessageArea ()
+ {
+ maText = new JTextArea();
+ maText.setBackground (new Color (255,250,240));
+ maText.setFont (new Font ("Helvetica", Font.PLAIN, 9));
+ setViewportView (maText);
+ setVerticalScrollBarPolicy (JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
+ setHorizontalScrollBarPolicy (JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
+
+ printMessage (
+ "class path is " + System.getProperty ("java.class.path") + "\n");
+ }
+
+
+
+
+ /** Show the given string at the end of the message area and scroll to make
+ it visible.
+ */
+ public static synchronized void print (String aMessage)
+ {
+ print (0, aMessage);
+ }
+
+
+
+
+ /** Show the given string at the end of the message area and scroll to make
+ it visible. Indent the string as requested.
+ */
+ public static synchronized void print (int nIndentation, String aMessage)
+ {
+ while (nIndentation-- > 0)
+ aMessage = " " + aMessage;
+ Instance().printMessage(aMessage);
+ }
+
+
+
+
+ /** Show the given string at the end of the message area and scroll to make
+ it visible.
+ */
+ public static void println (String aMessage)
+ {
+ println (0, aMessage);
+ }
+
+
+
+
+ /** Show the given string at the end of the message area and scroll to make
+ it visible.
+ */
+ public static void println (int nIndentation, String aMessage)
+ {
+ print (nIndentation, aMessage+"\n");
+ }
+
+
+
+
+ public void paintComponent (Graphics g)
+ {
+ synchronized (g)
+ {
+ JScrollBar sb = getVerticalScrollBar();
+ if (sb != null)
+ {
+ int nScrollBarValue = sb.getMaximum() - sb.getVisibleAmount() - 1;
+ sb.setValue (nScrollBarValue);
+ }
+ super.paintComponent (g);
+ }
+ }
+
+
+
+
+ /** Append the given string to the end of the text and scroll so that it
+ becomes visible. This is an internal method. Use one of the static
+ and public ones.
+ */
+ private synchronized void printMessage (String aMessage)
+ {
+ maText.append (aMessage);
+ }
+
+
+
+
+ private static MessageArea saInstance = null;
+ private JTextArea maText;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java b/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java
new file mode 100644
index 000000000000..736bc2c7f17b
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/NameProvider.java
@@ -0,0 +1,263 @@
+package org.openoffice.accessibility.misc;
+
+import java.util.HashMap;
+import com.sun.star.accessibility.AccessibleStateType;
+import com.sun.star.accessibility.AccessibleEventId;
+import com.sun.star.accessibility.AccessibleRole;
+import com.sun.star.accessibility.AccessibleRelationType;
+
+
+/** Provide names for several accessibility constants groups.
+*/
+public class NameProvider
+{
+ /** Return the name of the specified state.
+ @param nStateId
+ Id of the state for which to return its name. This is one of
+ the ids listed in the <type>AccessibleStateType</const>
+ constants group.
+ @return
+ Returns the name of the specified state. When an invalid or
+ unknown state id is given then a special string is returned that
+ says that the state does not exist.
+ */
+ public static String getStateName (int nStateId)
+ {
+ String sStateName = (String)maStateMap.get (new Integer(nStateId));
+ if (sStateName == null)
+ sStateName = new String ("<unknown state " + nStateId + ">");
+ return sStateName;
+ }
+
+
+ /** Return the name of the specified event.
+ @param nEventId
+ Id of the event type for which to return its name. This is one
+ of the ids listed in the <type>AccessibleEventId</const>
+ constants group.
+ @return
+ Returns the name of the specified event type or an empty string
+ if an invalid / unknown event id was given.
+ */
+ public static String getEventName (int nEventId)
+ {
+ return (String)maEventMap.get (new Integer(nEventId));
+ }
+
+
+ /** Return the name of the specified role.
+ @param nRole
+ Id of the role for which to return its name. This is one of
+ the ids listed in the <type>AccessibleRole</const>
+ constants group.
+ @return
+ Returns the name of the specified role or an empty string if an
+ invalid / unknown role id was given.
+ */
+ public static String getRoleName (int nRole)
+ {
+ return (String)maRoleMap.get (new Integer(nRole));
+ }
+
+
+ /** Return the name of the specified relation.
+ @param nRelation
+ Id of the relation for which to return its name. This is one of
+ the ids listed in the <type>AccessibleRelationType</const>
+ constants group.
+ @return
+ Returns the name of the specified relation type or an empty
+ string if an invalid / unknown role id was given.
+ */
+ public static String getRelationName (int nRelation)
+ {
+ return (String)maRelationMap.get (new Integer(nRelation));
+ }
+
+
+ private static HashMap maStateMap = new HashMap();
+ private static HashMap maEventMap = new HashMap();
+ private static HashMap maRoleMap = new HashMap();
+ private static HashMap maRelationMap = new HashMap();
+
+ static {
+ maStateMap.put (new Integer (AccessibleStateType.INVALID), "INVALID");
+ maStateMap.put (new Integer (AccessibleStateType.ACTIVE), "ACTIVE");
+ maStateMap.put (new Integer (AccessibleStateType.ARMED), "ARMED");
+ maStateMap.put (new Integer (AccessibleStateType.BUSY), "BUSY");
+ maStateMap.put (new Integer (AccessibleStateType.CHECKED), "CHECKED");
+ // maStateMap.put (new Integer (AccessibleStateType.COLLAPSED), "COLLAPSED");
+ maStateMap.put (new Integer (AccessibleStateType.DEFUNC), "DEFUNC");
+ maStateMap.put (new Integer (AccessibleStateType.EDITABLE), "EDITABLE");
+ maStateMap.put (new Integer (AccessibleStateType.ENABLED), "ENABLED");
+ maStateMap.put (new Integer (AccessibleStateType.EXPANDABLE), "EXPANDABLE");
+ maStateMap.put (new Integer (AccessibleStateType.EXPANDED), "EXPANDED");
+ maStateMap.put (new Integer (AccessibleStateType.FOCUSABLE), "FOCUSABLE");
+ maStateMap.put (new Integer (AccessibleStateType.FOCUSED), "FOCUSED");
+ maStateMap.put (new Integer (AccessibleStateType.HORIZONTAL), "HORIZONTAL");
+ maStateMap.put (new Integer (AccessibleStateType.ICONIFIED), "ICONIFIED");
+ maStateMap.put (new Integer (AccessibleStateType.MODAL), "MODAL");
+ maStateMap.put (new Integer (AccessibleStateType.MULTI_LINE), "MULTI_LINE");
+ maStateMap.put (new Integer (AccessibleStateType.MULTI_SELECTABLE), "MULTI_SELECTABLE");
+ maStateMap.put (new Integer (AccessibleStateType.OPAQUE), "OPAQUE");
+ maStateMap.put (new Integer (AccessibleStateType.PRESSED), "PRESSED");
+ maStateMap.put (new Integer (AccessibleStateType.RESIZABLE), "RESIZABLE");
+ maStateMap.put (new Integer (AccessibleStateType.SELECTABLE), "SELECTABLE");
+ maStateMap.put (new Integer (AccessibleStateType.SELECTED), "SELECTED");
+ maStateMap.put (new Integer (AccessibleStateType.SENSITIVE), "SENSITIVE");
+ maStateMap.put (new Integer (AccessibleStateType.SHOWING), "SHOWING");
+ maStateMap.put (new Integer (AccessibleStateType.SINGLE_LINE), "SINGLE_LINE");
+ maStateMap.put (new Integer (AccessibleStateType.STALE), "STALE");
+ maStateMap.put (new Integer (AccessibleStateType.TRANSIENT), "TRANSIENT");
+ maStateMap.put (new Integer (AccessibleStateType.VERTICAL), "VERTICAL");
+ maStateMap.put (new Integer (AccessibleStateType.VISIBLE), "VISIBLE");
+ maStateMap.put (new Integer (AccessibleStateType.MANAGES_DESCENDANTS),
+ "MANAGES_DESCENDANTS");
+ //maStateMap.put (new Integer (AccessibleStateType.INCONSISTENT),"INCONSISTENT");
+
+
+ maEventMap.put (new Integer (0),
+ "[UNKNOWN]");
+ maEventMap.put (new Integer (AccessibleEventId.NAME_CHANGED),
+ "NAME_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.DESCRIPTION_CHANGED),
+ "DESCRIPTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.ACTION_CHANGED),
+ "ACTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.STATE_CHANGED),
+ "STATE_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.ACTIVE_DESCENDANT_CHANGED),
+ "ACTIVE_DESCENDANT_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.BOUNDRECT_CHANGED),
+ "BOUNDRECT_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CHILD),
+ "CHILD");
+ maEventMap.put (new Integer (AccessibleEventId.INVALIDATE_ALL_CHILDREN),
+ "INVALIDATE_ALL_CHILDREN");
+ maEventMap.put (new Integer (AccessibleEventId.SELECTION_CHANGED),
+ "SELECTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.VISIBLE_DATA_CHANGED),
+ "VISIBLE_DATA_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.VALUE_CHANGED),
+ "VALUE_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CONTENT_FLOWS_FROM_RELATION_CHANGED),
+ "CONTENT_FLOWS_FROM_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CONTENT_FLOWS_TO_RELATION_CHANGED),
+ "CONTENT_FLOWS_TO_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CONTROLLED_BY_RELATION_CHANGED),
+ "CONTROLLED_BY_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CONTROLLER_FOR_RELATION_CHANGED),
+ "CONTROLLER_FOR_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.LABEL_FOR_RELATION_CHANGED),
+ "LABEL_FOR_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.LABELED_BY_RELATION_CHANGED),
+ "LABELED_BY_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.MEMBER_OF_RELATION_CHANGED),
+ "MEMBER_OF_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.SUB_WINDOW_OF_RELATION_CHANGED),
+ "SUB_WINDOW_OF_RELATION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.CARET_CHANGED),
+ "CARET_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TEXT_SELECTION_CHANGED),
+ "TEXT_SELECTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TEXT_CHANGED),
+ "TEXT_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TEXT_ATTRIBUTE_CHANGED),
+ "TEXT_ATTRIBUTE_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.HYPERTEXT_CHANGED),
+ "HYPERTEXT_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_CAPTION_CHANGED),
+ "TABLE_CAPTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_COLUMN_DESCRIPTION_CHANGED),
+ "TABLE_COLUMN_DESCRIPTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_COLUMN_HEADER_CHANGED),
+ "TABLE_COLUMN_HEADER_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_MODEL_CHANGED),
+ "TABLE_MODEL_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_ROW_DESCRIPTION_CHANGED),
+ "TABLE_ROW_DESCRIPTION_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_ROW_HEADER_CHANGED),
+ "TABLE_ROW_HEADER_CHANGED");
+ maEventMap.put (new Integer (AccessibleEventId.TABLE_SUMMARY_CHANGED),
+ "TABLE_SUMMARY_CHANGED");
+
+ maRoleMap.put (new Integer(AccessibleRole.UNKNOWN), "UNKNOWN");
+ maRoleMap.put (new Integer (AccessibleRole.UNKNOWN), "UNKNOWN");
+ maRoleMap.put (new Integer (AccessibleRole.ALERT), "ALERT");
+ maRoleMap.put (new Integer (AccessibleRole.COLUMN_HEADER), "COLUMN_HEADER");
+ maRoleMap.put (new Integer (AccessibleRole.CANVAS), "CANVAS");
+ maRoleMap.put (new Integer (AccessibleRole.CHECK_BOX), "CHECK_BOX");
+ maRoleMap.put (new Integer (AccessibleRole.CHECK_MENU_ITEM), "CHECK_MENU_ITEM");
+ maRoleMap.put (new Integer (AccessibleRole.COLOR_CHOOSER), "COLOR_CHOOSER");
+ maRoleMap.put (new Integer (AccessibleRole.COMBO_BOX), "COMBO_BOX");
+ maRoleMap.put (new Integer (AccessibleRole.DESKTOP_ICON), "DESKTOP_ICON");
+ maRoleMap.put (new Integer (AccessibleRole.DESKTOP_PANE), "DESKTOP_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.DIRECTORY_PANE), "DIRECTORY_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.DIALOG), "DIALOG");
+ maRoleMap.put (new Integer (AccessibleRole.DOCUMENT), "DOCUMENT");
+ maRoleMap.put (new Integer (AccessibleRole.EMBEDDED_OBJECT), "EMBEDDED_OBJECT");
+ maRoleMap.put (new Integer (AccessibleRole.END_NOTE), "END_NOTE");
+ maRoleMap.put (new Integer (AccessibleRole.FILE_CHOOSER), "FILE_CHOOSER");
+ maRoleMap.put (new Integer (AccessibleRole.FILLER), "FILLER");
+ maRoleMap.put (new Integer (AccessibleRole.FONT_CHOOSER), "FONT_CHOOSER");
+ maRoleMap.put (new Integer (AccessibleRole.FOOTER), "FOOTER");
+ maRoleMap.put (new Integer (AccessibleRole.FOOTNOTE), "FOOTNOTE");
+ maRoleMap.put (new Integer (AccessibleRole.FRAME), "FRAME");
+ maRoleMap.put (new Integer (AccessibleRole.GLASS_PANE), "GLASS_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.GRAPHIC), "GRAPHIC");
+ maRoleMap.put (new Integer (AccessibleRole.GROUP_BOX), "GROUP_BOX");
+ maRoleMap.put (new Integer (AccessibleRole.HEADER), "HEADER");
+ maRoleMap.put (new Integer (AccessibleRole.HEADING), "HEADING");
+ maRoleMap.put (new Integer (AccessibleRole.HYPER_LINK), "HYPER_LINK");
+ maRoleMap.put (new Integer (AccessibleRole.ICON), "ICON");
+ maRoleMap.put (new Integer (AccessibleRole.INTERNAL_FRAME), "INTERNAL_FRAME");
+ maRoleMap.put (new Integer (AccessibleRole.LABEL), "LABEL");
+ maRoleMap.put (new Integer (AccessibleRole.LAYERED_PANE), "LAYERED_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.LIST), "LIST");
+ maRoleMap.put (new Integer (AccessibleRole.LIST_ITEM), "LIST_ITEM");
+ maRoleMap.put (new Integer (AccessibleRole.MENU), "MENU");
+ maRoleMap.put (new Integer (AccessibleRole.MENU_BAR), "MENU_BAR");
+ maRoleMap.put (new Integer (AccessibleRole.MENU_ITEM), "MENU_ITEM");
+ maRoleMap.put (new Integer (AccessibleRole.OPTION_PANE), "OPTION_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.PAGE_TAB), "PAGE_TAB");
+ maRoleMap.put (new Integer (AccessibleRole.PAGE_TAB_LIST), "PAGE_TAB_LIST");
+ maRoleMap.put (new Integer (AccessibleRole.PANEL), "PANEL");
+ maRoleMap.put (new Integer (AccessibleRole.PARAGRAPH), "PARAGRAPH");
+ maRoleMap.put (new Integer (AccessibleRole.PASSWORD_TEXT), "PASSWORD_TEXT");
+ maRoleMap.put (new Integer (AccessibleRole.POPUP_MENU), "POPUP_MENU");
+ maRoleMap.put (new Integer (AccessibleRole.PUSH_BUTTON), "PUSH_BUTTON");
+ maRoleMap.put (new Integer (AccessibleRole.PROGRESS_BAR), "PROGRESS_BAR");
+ maRoleMap.put (new Integer (AccessibleRole.RADIO_BUTTON), "RADIO_BUTTON");
+ maRoleMap.put (new Integer (AccessibleRole.RADIO_MENU_ITEM), "RADIO_MENU_ITEM");
+ maRoleMap.put (new Integer (AccessibleRole.ROW_HEADER), "ROW_HEADER");
+ maRoleMap.put (new Integer (AccessibleRole.ROOT_PANE), "ROOT_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.SCROLL_BAR), "SCROLL_BAR");
+ maRoleMap.put (new Integer (AccessibleRole.SCROLL_PANE), "SCROLL_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.SHAPE), "SHAPE");
+ maRoleMap.put (new Integer (AccessibleRole.SEPARATOR), "SEPARATOR");
+ maRoleMap.put (new Integer (AccessibleRole.SLIDER), "SLIDER");
+ maRoleMap.put (new Integer (AccessibleRole.SPIN_BOX), "SPIN_BOX");
+ maRoleMap.put (new Integer (AccessibleRole.SPLIT_PANE), "SPLIT_PANE");
+ maRoleMap.put (new Integer (AccessibleRole.STATUS_BAR), "STATUS_BAR");
+ maRoleMap.put (new Integer (AccessibleRole.TABLE), "TABLE");
+ maRoleMap.put (new Integer (AccessibleRole.TABLE_CELL), "TABLE_CELL");
+ maRoleMap.put (new Integer (AccessibleRole.TEXT), "TEXT");
+ maRoleMap.put (new Integer (AccessibleRole.TEXT_FRAME), "TEXT_FRAME");
+ maRoleMap.put (new Integer (AccessibleRole.TOGGLE_BUTTON), "TOGGLE_BUTTON");
+ maRoleMap.put (new Integer (AccessibleRole.TOOL_BAR), "TOOL_BAR");
+ maRoleMap.put (new Integer (AccessibleRole.TOOL_TIP), "TOOL_TIP");
+ maRoleMap.put (new Integer (AccessibleRole.TREE), "TREE");
+ maRoleMap.put (new Integer (AccessibleRole.VIEW_PORT), "VIEW_PORT");
+ maRoleMap.put (new Integer (AccessibleRole.WINDOW), "WINDOW");
+
+ maRelationMap.put (new Integer (AccessibleRelationType.INVALID), "INVALID");
+ maRelationMap.put (new Integer (AccessibleRelationType.CONTENT_FLOWS_FROM), "CONTENT_FLOWS_FROM");
+ maRelationMap.put (new Integer (AccessibleRelationType.CONTENT_FLOWS_TO), "CONTENT_FLOWS_TO");
+ maRelationMap.put (new Integer (AccessibleRelationType.CONTROLLED_BY), "CONTROLLED_BY");
+ maRelationMap.put (new Integer (AccessibleRelationType.CONTROLLER_FOR), "CONTROLLER_FOR");
+ maRelationMap.put (new Integer (AccessibleRelationType.LABEL_FOR), "LABEL_FOR");
+ maRelationMap.put (new Integer (AccessibleRelationType.LABELED_BY), "LABELED_BY");
+ maRelationMap.put (new Integer (AccessibleRelationType.MEMBER_OF), "MEMBER_OF");
+ maRelationMap.put (new Integer (AccessibleRelationType.SUB_WINDOW_OF), "SUB_WINDOW_OF");
+ }
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java b/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java
new file mode 100644
index 000000000000..d9f77d9e4e07
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/OfficeConnection.java
@@ -0,0 +1,169 @@
+package org.openoffice.accessibility.misc;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.PrintStream;
+import java.util.Timer;
+import java.util.TimerTask;
+import java.util.Vector;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.bridge.XUnoUrlResolver;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.comp.helper.Bootstrap;
+
+/** This class establishes a connection to a StarOffice application.
+ */
+public class OfficeConnection
+ extends TimerTask
+{
+ final public static long snDelay = 3000;
+
+ public static synchronized OfficeConnection Instance ()
+ {
+ if (saInstance == null)
+ saInstance = new OfficeConnection ();
+ return saInstance;
+ }
+
+
+
+
+ static public void SetPipeName (String sPipeName)
+ {
+ ssDefaultPipeName = sPipeName;
+ }
+
+
+
+
+ public void AddConnectionListener (ActionListener aListener)
+ {
+ SimpleOffice aOffice = SimpleOffice.Instance();
+ if (IsValid())
+ aListener.actionPerformed (
+ new ActionEvent (aOffice,0,"<connected>"));
+ maListeners.add (aListener);
+ }
+
+
+
+ /** @descr Return the service manager that represents the connected
+ StarOffice application
+ */
+ public XMultiServiceFactory GetServiceManager ()
+ {
+ return maServiceManager;
+ }
+
+
+
+
+ /** Return a flag that indicates if the constructor has been able to
+ establish a valid connection.
+ */
+ public boolean IsValid ()
+ {
+ return (maServiceManager != null);
+ }
+
+
+
+
+ /** Connect to a already running StarOffice application that has
+ been started with a command line argument like
+ "-accept=pipe,name=<username>;urp;"
+ */
+ private boolean Connect ()
+ {
+ mbInitialized = true;
+ // Set up connection string.
+ String sConnectString = "uno:pipe,name=" + msPipeName
+ + ";urp;StarOffice.ServiceManager";
+
+ // connect to a running office and get the ServiceManager
+ try
+ {
+ // Create a URL Resolver.
+ XMultiServiceFactory aLocalServiceManager =
+ Bootstrap.createSimpleServiceManager();
+ XUnoUrlResolver aURLResolver =
+ (XUnoUrlResolver) UnoRuntime.queryInterface (
+ XUnoUrlResolver.class,
+ aLocalServiceManager.createInstance (
+ "com.sun.star.bridge.UnoUrlResolver")
+ );
+
+ maServiceManager =
+ (XMultiServiceFactory) UnoRuntime.queryInterface (
+ XMultiServiceFactory.class,
+ aURLResolver.resolve (sConnectString)
+ );
+ }
+
+ catch (Exception e)
+ {
+ if (maOut != null)
+ {
+ maOut.println ("Could not connect with "
+ + sConnectString + " : " + e);
+ maOut.println ("Please start OpenOffice/StarOffice with "
+ + "\"-accept=pipe,name=" + msPipeName + ";urp;\"");
+ }
+ }
+
+ return maServiceManager != null;
+ }
+
+
+ public void run ()
+ {
+ if ( ! IsValid())
+ {
+ MessageArea.println ("trying to connect");
+ if (Connect())
+ {
+ // Stop the timer.
+ cancel ();
+
+ ActionEvent aEvent = new ActionEvent (this,0,"<connected>");
+ for (int i=0; i<maListeners.size(); i++)
+ ((ActionListener)maListeners.elementAt(i)).actionPerformed(aEvent);
+ }
+ }
+ }
+
+ private OfficeConnection ()
+ {
+ this (null);
+ }
+
+
+ private OfficeConnection (PrintStream aOut)
+ {
+ msPipeName = ssDefaultPipeName;
+ maOut = aOut;
+ maListeners = new Vector();
+ maServiceManager = null;
+
+ maTimer = new Timer (true);
+ maTimer.schedule (this, 0, snDelay);
+ }
+
+
+ private static OfficeConnection saInstance = null;
+ private static String ssDefaultPipeName = System.getenv( "USER" );
+
+ private XMultiServiceFactory maServiceManager;
+ String msPipeName;
+
+ /** A value of true just indicates that it has been tried to establish a connection,
+ not that that has been successfull.
+ */
+ private boolean mbInitialized = false;
+
+ /// Stream used to print messages.
+ private PrintStream maOut;
+ private Timer maTimer;
+ private Vector maListeners;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/Options.java b/accessibility/workben/org/openoffice/accessibility/misc/Options.java
new file mode 100644
index 000000000000..e3c358264a1d
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/Options.java
@@ -0,0 +1,106 @@
+package org.openoffice.accessibility.misc;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.util.Properties;
+
+
+/** Load from and save options into a file.
+*/
+public class Options
+ extends Properties
+{
+ static public Options Instance ()
+ {
+ if (saOptions == null)
+ saOptions = new Options ();
+ return saOptions;
+ }
+
+ static public void SetString (String sName, String sValue)
+ {
+ Instance().setProperty (sName, sValue);
+ Instance().Save ();
+ }
+
+ static public String GetString (String sName)
+ {
+ return Instance().getProperty (sName);
+ }
+
+ static public void SetBoolean (String sName, boolean bValue)
+ {
+ Instance().setProperty (sName, Boolean.toString(bValue));
+ Instance().Save ();
+ }
+
+ static public boolean GetBoolean (String sName)
+ {
+ return Boolean.valueOf(Instance().getProperty (sName)).booleanValue();
+ }
+
+ static public void SetInteger (String sName, int nValue)
+ {
+ Instance().setProperty (sName, Integer.toString(nValue));
+ Instance().Save ();
+ }
+
+ static public int GetInteger (String sName, int nDefault)
+ {
+ String sValue = Instance().getProperty (sName);
+ if (sValue == null)
+ return nDefault;
+ else
+ return Integer.parseInt (sValue);
+ }
+
+ public void Load (String sBaseName)
+ {
+ try
+ {
+ load (new FileInputStream (ProvideFile(sBaseName)));
+ }
+ catch (java.io.IOException e)
+ {
+ // Ignore a non-existing options file.
+ }
+ }
+
+ public void Save (String sBaseName)
+ {
+ ProvideFile(sBaseName);
+ Save ();
+ }
+
+ public void Save ()
+ {
+ if (maFile != null)
+ {
+ try
+ {
+ store (new FileOutputStream (maFile), null);
+ }
+ catch (java.io.IOException e)
+ {
+ }
+ }
+ }
+
+ private Options ()
+ {
+ maFile = null;
+ }
+
+ private File ProvideFile (String sBaseName)
+ {
+ maFile = new File (
+ System.getProperty ("user.home"),
+ sBaseName);
+ return maFile;
+ }
+
+ static private Options saOptions = null;
+ private File maFile;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java b/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java
new file mode 100644
index 000000000000..3a2dcdf21926
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/SimpleOffice.java
@@ -0,0 +1,413 @@
+package org.openoffice.accessibility.misc;
+
+import java.lang.Thread;
+
+import com.sun.star.awt.Rectangle;
+import com.sun.star.awt.XExtendedToolkit;
+import com.sun.star.awt.XWindow;
+
+import com.sun.star.beans.PropertyValue;
+import com.sun.star.beans.XPropertySet;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XChild;
+import com.sun.star.container.XEnumerationAccess;
+import com.sun.star.container.XEnumeration;
+
+import com.sun.star.frame.XComponentLoader;
+import com.sun.star.frame.XController;
+import com.sun.star.frame.XDesktop;
+import com.sun.star.frame.XFrame;
+import com.sun.star.frame.XModel;
+import com.sun.star.frame.XTasksSupplier;
+import com.sun.star.frame.XTask;
+
+import com.sun.star.lang.XComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.lang.XServiceInfo;
+import com.sun.star.lang.XServiceName;
+import com.sun.star.lang.XTypeProvider;
+
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import com.sun.star.uno.Type;
+
+import com.sun.star.drawing.XDrawView;
+import com.sun.star.drawing.XDrawPage;
+import com.sun.star.drawing.XShapes;
+import com.sun.star.drawing.XShape;
+import com.sun.star.drawing.XShapeDescriptor;
+
+import com.sun.star.accessibility.XAccessible;
+import com.sun.star.accessibility.XAccessibleContext;
+import com.sun.star.accessibility.XAccessibleComponent;
+import com.sun.star.accessibility.XAccessibleRelationSet;
+import com.sun.star.accessibility.XAccessibleStateSet;
+
+
+/** This singleton class tries to simplify some tasks like loading a document
+ or getting various objects.
+*/
+public class SimpleOffice
+{
+ synchronized static public SimpleOffice Instance ()
+ {
+ if (saInstance == null)
+ saInstance = new SimpleOffice ();
+
+ return saInstance;
+ }
+
+ synchronized static public void Clear ()
+ {
+ saInstance = null;
+ }
+
+
+ public XModel LoadDocument (String URL)
+ {
+ XModel xModel = null;
+ try
+ {
+ // Load the document from the specified URL.
+ XComponentLoader xLoader =
+ (XComponentLoader)UnoRuntime.queryInterface(
+ XComponentLoader.class, mxDesktop);
+
+ XComponent xComponent = xLoader.loadComponentFromURL (
+ URL,
+ "_blank",
+ 0,
+ new PropertyValue[0]
+ );
+
+ xModel = (XModel) UnoRuntime.queryInterface(
+ XModel.class, xComponent);
+ }
+ catch (java.lang.NullPointerException e)
+ {
+ MessageArea.println ("caught exception while loading "
+ + URL + " : " + e);
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while loading "
+ + URL + " : " + e);
+ }
+ return xModel;
+ }
+
+
+
+
+ public XModel GetModel (String name)
+ {
+ XModel xModel = null;
+ try
+ {
+ XTasksSupplier xTasksSupplier =
+ (XTasksSupplier) UnoRuntime.queryInterface(
+ XTasksSupplier.class, mxDesktop);
+ XEnumerationAccess xEA = xTasksSupplier.getTasks();
+ XEnumeration xE = xEA.createEnumeration();
+ while (xE.hasMoreElements())
+ {
+ XTask xTask = (XTask) UnoRuntime.queryInterface(
+ XTask.class, xE.nextElement());
+ MessageArea.print (xTask.getName());
+ }
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while getting Model " + name
+ + ": " + e);
+ }
+ return xModel;
+ }
+
+
+ public XModel GetModel (XDrawView xView)
+ {
+ XController xController = (XController) UnoRuntime.queryInterface(
+ XController.class, xView);
+ if (xController != null)
+ return xController.getModel();
+ else
+ {
+ MessageArea.println ("can't cast view to controller");
+ return null;
+ }
+ }
+
+
+
+
+ public XDesktop GetDesktop ()
+ {
+ if (mxDesktop != null)
+ return mxDesktop;
+ try
+ {
+ // Get the factory of the connected office.
+ XMultiServiceFactory xMSF =
+ OfficeConnection.Instance().GetServiceManager ();
+ if (xMSF == null)
+ {
+ MessageArea.println ("can't connect to office");
+ return null;
+ }
+ else
+ MessageArea.println ("Connected successfully.");
+
+ // Create a new desktop.
+ mxDesktop = (XDesktop) UnoRuntime.queryInterface(
+ XDesktop.class,
+ xMSF.createInstance ("com.sun.star.frame.Desktop")
+ );
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while creating desktop: "
+ + e);
+ }
+
+ return mxDesktop;
+ }
+
+
+ /** Return a reference to the extended toolkit which is a broadcaster of
+ top window, key, and focus events.
+ */
+ public XExtendedToolkit GetExtendedToolkit ()
+ {
+ XExtendedToolkit xToolkit = null;
+ if (this != null)
+ try
+ {
+ // Get the factory of the connected office.
+ XMultiServiceFactory xMSF =
+ OfficeConnection.Instance().GetServiceManager ();
+ if (xMSF != null)
+ {
+ xToolkit = (XExtendedToolkit) UnoRuntime.queryInterface(
+ XExtendedToolkit.class,
+ xMSF.createInstance ("stardiv.Toolkit.VCLXToolkit")
+ );
+ }
+ }
+ catch (Exception e)
+ {
+ MessageArea.println (
+ "caught exception while creating extended toolkit: " + e);
+ }
+
+ return xToolkit;
+ }
+
+
+
+ static public XAccessible GetAccessibleObject (XInterface xObject)
+ {
+ XAccessible xAccessible = null;
+ try
+ {
+ xAccessible = (XAccessible) UnoRuntime.queryInterface(
+ XAccessible.class, xObject);
+ }
+ catch (Exception e)
+ {
+ System.err.println (
+ "caught exception while getting accessible object" + e);
+ e.printStackTrace (System.err);
+ }
+ return xAccessible;
+ }
+
+ static public XAccessibleContext GetAccessibleContext (XInterface xObject)
+ {
+ XAccessible xAccessible = GetAccessibleObject (xObject);
+ if (xAccessible != null)
+ return xAccessible.getAccessibleContext();
+ else
+ return null;
+ }
+
+ /** Return the root object of the accessibility hierarchy.
+ */
+ public XAccessible GetAccessibleRoot (XAccessible xAccessible)
+ {
+ try
+ {
+ XAccessible xParent = null;
+ do
+ {
+ XAccessibleContext xContext = xAccessible.getAccessibleContext();
+ if (xContext != null)
+ xParent = xContext.getAccessibleParent();
+ if (xParent != null)
+ xAccessible = xParent;
+ }
+ while (xParent != null);
+ }
+ catch (Exception e)
+ {
+ MessageArea.println (
+ "caught exception while getting accessible root" + e);
+ e.printStackTrace();
+ }
+ return xAccessible;
+ }
+
+
+
+
+ /** @descr Return the current window associated with the given
+ model.
+ */
+ public XWindow GetCurrentWindow ()
+ {
+ return GetCurrentWindow ((XModel) UnoRuntime.queryInterface(
+ XModel.class, GetDesktop()));
+ }
+
+
+
+
+
+ public XWindow GetCurrentWindow (XModel xModel)
+ {
+ XWindow xWindow = null;
+ try
+ {
+ if (xModel == null)
+ MessageArea.println ("invalid model (==null)");
+ XController xController = xModel.getCurrentController();
+ if (xController == null)
+ MessageArea.println ("can't get controller from model");
+ XFrame xFrame = xController.getFrame();
+ if (xFrame == null)
+ MessageArea.println ("can't get frame from controller");
+ xWindow = xFrame.getComponentWindow ();
+ if (xWindow == null)
+ MessageArea.println ("can't get window from frame");
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while getting current window" + e);
+ }
+
+ return xWindow;
+ }
+
+
+ /** @descr Return the current draw page of the given desktop.
+ */
+ public XDrawPage GetCurrentDrawPage ()
+ {
+ return GetCurrentDrawPage (
+ (XDrawView) UnoRuntime.queryInterface(
+ XDrawView.class,
+ GetCurrentView()));
+ }
+
+
+
+
+ public XDrawPage GetCurrentDrawPage (XDrawView xView)
+ {
+ XDrawPage xPage = null;
+ try
+ {
+ if (xView == null)
+ MessageArea.println ("can't get current draw page from null view");
+ else
+ xPage = xView.getCurrentPage();
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while getting current draw page : " + e);
+ }
+
+ return xPage;
+ }
+
+
+
+
+ /** @descr Return the current view of the given desktop.
+ */
+ public XDrawView GetCurrentView ()
+ {
+ return GetCurrentView (GetDesktop());
+ }
+
+ public XDrawView GetCurrentView (XDesktop xDesktop)
+ {
+ if (xDesktop == null)
+ MessageArea.println ("can't get desktop to retrieve current view");
+
+ XDrawView xView = null;
+ try
+ {
+ XComponent xComponent = xDesktop.getCurrentComponent();
+ if (xComponent == null)
+ MessageArea.println ("can't get component to retrieve current view");
+
+ XFrame xFrame = xDesktop.getCurrentFrame();
+ if (xFrame == null)
+ MessageArea.println ("can't get frame to retrieve current view");
+
+ XController xController = xFrame.getController();
+ if (xController == null)
+ MessageArea.println ("can't get controller to retrieve current view");
+
+ xView = (XDrawView) UnoRuntime.queryInterface(
+ XDrawView.class, xController);
+ if (xView == null)
+ MessageArea.println ("could not cast controller into view");
+ }
+ catch (Exception e)
+ {
+ MessageArea.println ("caught exception while getting current view : " + e);
+ }
+
+ return xView;
+ }
+
+
+
+
+ // Return the accessible object of the document window.
+ public static XAccessible GetAccessibleDocumentWindow (XDrawPage xPage)
+ {
+ XIndexAccess xShapeList = (XIndexAccess) UnoRuntime.queryInterface(
+ XIndexAccess.class, xPage);
+ if (xShapeList.getCount() > 0)
+ {
+ // All shapes return as accessible object the document window's
+ // accessible object. This is, of course, a hack and will be
+ // removed as soon as the missing infrastructure for obtaining
+ // the object directly is implemented.
+ XShape xShape = null;
+ try{
+ xShape = (XShape) UnoRuntime.queryInterface(
+ XShape.class, xShapeList.getByIndex (0));
+ } catch (Exception e)
+ {}
+ XAccessible xAccessible = (XAccessible) UnoRuntime.queryInterface (
+ XAccessible.class, xShape);
+ return xAccessible;
+ }
+ else
+ return null;
+ }
+
+ private SimpleOffice ()
+ {
+ }
+
+
+
+ private XDesktop mxDesktop;
+ private static SimpleOffice saInstance = null;
+}
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/makefile.common b/accessibility/workben/org/openoffice/accessibility/misc/makefile.common
new file mode 100644
index 000000000000..0d7b0a3f51df
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/makefile.common
@@ -0,0 +1,36 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+JARFILES = jurt.jar unoil.jar ridl.jar juh.jar java_uno.jar
+JAVAFILES = \
+ AccessibleEventMulticaster.java \
+ InformationWriter.java \
+ MessageArea.java \
+ NameProvider.java \
+ OfficeConnection.java \
+ Options.java \
+ SimpleOffice.java
diff --git a/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk b/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk
new file mode 100644
index 000000000000..312410c1de48
--- /dev/null
+++ b/accessibility/workben/org/openoffice/accessibility/misc/makefile.mk
@@ -0,0 +1,55 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJNAME = awb
+PRJ = ..$/..$/..$/..$/..
+TARGET = java_misc
+PACKAGE = org$/openoffice$/accessibility$/misc
+
+USE_JAVAVER:=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+.IF "$(JAVAVER:s/.//)" >= "140"
+
+.INCLUDE : makefile.common
+
+JAVACLASSFILES= $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
+
+#JARTARGET = $(TARGET).jar
+#JARCOMPRESS = TRUE
+#JARCLASSDIRS = $(PACKAGE) org/openoffice/java/accessibility/awb
+#CUSTOMMANIFESTFILE = manifest
+.ENDIF
+
+# --- Targets ------------------------------------------------------
+
+
+.INCLUDE : target.mk
+
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 000000000000..71f01544d11b
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,138 @@
+dnl @synopsis AX_FUNC_WHICH_GETSPNAM_R
+dnl
+dnl Determines which historical variant of the getspnam_r() call
+dnl (taking four or five arguments) is available on the system
+dnl and sets NEW_SHADOW_API=YES if there are five arguments.
+dnl
+dnl Originally named "AX_FUNC_WHICH_GETHOSTBYNAME_R". Rewritten
+dnl for AX_FUNC_WHICH_GETSPNAM_R
+dnl
+dnl @author Caolan McNamara <caolan@skynet.ie>
+dnl @author Daniel Richard G. <skunk@iskunk.org>
+dnl @version 2006-05-01
+dnl @license LGPL
+
+AC_DEFUN([AX_FUNC_WHICH_GETSPNAM_R], [
+
+ AC_LANG_PUSH(C)
+ AC_MSG_CHECKING([how many arguments getspnam_r() takes])
+
+ AC_CACHE_VAL(ac_cv_func_which_getspnam_r, [
+
+################################################################
+
+ac_cv_func_which_getspnam_r=unknown
+
+#
+# ONE ARGUMENT (sanity check)
+#
+
+# This should fail, as there is no variant of getspnam_r() that takes
+# a single argument. If it actually compiles, then we can assume that
+# netdb.h is not declaring the function, and the compiler is thereby
+# assuming an implicit prototype. In which case, we're out of luck.
+#
+AC_COMPILE_IFELSE(
+ AC_LANG_PROGRAM(
+ [[
+ #include <sys/types.h>
+ #include <shadow.h>
+ ]],
+ [[
+ const char *name = "myname";
+ getspnam_r(name) /* ; */
+ ]]),
+ ac_cv_func_which_getspnam_r=no)
+
+#
+# FIVE ARGUMENTS
+#
+
+if test "$ac_cv_func_which_getspnam_r" = "unknown"; then
+
+AC_COMPILE_IFELSE(
+ AC_LANG_PROGRAM(
+ [[
+ #include <sys/types.h>
+ #include <shadow.h>
+ ]],
+ [[
+ char buffer[[]] = { '\0' };
+ struct spwd spwdStruct;
+ const char *name = "myname";
+ getspnam_r(name, &spwdStruct, buffer, sizeof buffer, 0) /* ; */
+ ]]),
+ ac_cv_func_which_getspnam_r=five)
+
+fi
+
+#
+# FOUR ARGUMENTS
+#
+
+if test "$ac_cv_func_which_getspnam_r" = "unknown"; then
+
+AC_COMPILE_IFELSE(
+ AC_LANG_PROGRAM(
+ [[
+ #include <sys/types.h>
+ #include <shadow.h>
+ ]],
+ [[
+ char buffer[[]] = { '\0' };
+ struct spwd spwdStruct;
+ const char *name = "myname";
+ getspnam_r(name, &spwdStruct, buffer, sizeof buffer) /* ; */
+ ]]),
+ ac_cv_func_which_getspnam_r=four)
+
+fi
+
+################################################################
+
+]) dnl end AC_CACHE_VAL
+
+case "$ac_cv_func_which_getspnam_r" in
+ five)
+ AC_MSG_RESULT([five])
+ NEW_SHADOW_API=YES
+ ;;
+
+ four)
+ AC_MSG_RESULT([four])
+ ;;
+
+ no)
+ AC_MSG_RESULT([cannot find function declaration in shadow.h])
+ ;;
+
+ unknown)
+ AC_MSG_RESULT([can't tell])
+ ;;
+
+ *)
+ AC_MSG_ERROR([internal error])
+ ;;
+esac
+
+AC_LANG_POP(C)
+
+]) dnl end AC_DEFUN
+
+dnl PKG_CHECK_MODULES_MACHACK is like PKG_CHECK_MODULES but sneaks in an extra
+dnl argument between the first and second, denoting a program to call instead of
+dnl pkg-config on Mac OS X (aka Darwin):
+AC_DEFUN([PKG_CHECK_MODULES_MACHACK],
+[if test "$_os" = "Darwin"; then
+ AC_MSG_CHECKING($1_CFLAGS)
+ $1_CFLAGS=`$2 --cflags`
+ AC_MSG_RESULT($$1_CFLAGS)
+ AC_MSG_CHECKING($1_LIBS)
+ $1_LIBS=`$2 --libs`
+ AC_MSG_RESULT($$1_LIBS)
+ AC_SUBST($1_CFLAGS)
+ AC_SUBST($1_LIBS)
+ else
+ PKG_CHECK_MODULES($1, $3, $4, $5, $6)
+ fi
+])
diff --git a/afms/delzip b/afms/delzip
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/afms/delzip
diff --git a/afms/makefile.mk b/afms/makefile.mk
new file mode 100644
index 000000000000..2d61ed2dfa12
--- /dev/null
+++ b/afms/makefile.mk
@@ -0,0 +1,59 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=.
+
+PRJNAME=afms
+TARGET=afms
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+.IF "$(L10N_framework)"==""
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=Adobe-Core35_AFMs-314
+TARFILE_ROOTDIR=Adobe-Core35_AFMs-314
+# TAR_EXCLUDES broken for solaris tar - #i77247#
+# TAR_EXCLUDES=*/*Helvetica-Narrow*
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+
+ZIP1DIR = $(MISC)$/build$/$(TARFILE_NAME)
+ZIP1TARGET = fontunxafm
+ZIP1LIST = *.afm -x "*Helvetica-Narrow*"
+
+.ENDIF # L10N_framework
+.INCLUDE : target.mk
+
+.INCLUDE : tg_ext.mk
+.IF "$(L10N_framework)"==""
+$(ZIP1TARGETN): $(PACKAGE_DIR)$/$(UNTAR_FLAG_FILE)
+
+.ENDIF # L10N_framework
diff --git a/afms/prj/build.lst b/afms/prj/build.lst
new file mode 100644
index 000000000000..ed3d01fd2909
--- /dev/null
+++ b/afms/prj/build.lst
@@ -0,0 +1,3 @@
+af afms : solenv NULL
+af afms usr1 - all af_mkout NULL
+af afms nmake - all af_fonts NULL
diff --git a/afms/prj/d.lst b/afms/prj/d.lst
new file mode 100644
index 000000000000..78396a65f9e4
--- /dev/null
+++ b/afms/prj/d.lst
@@ -0,0 +1,3 @@
+mkdir: %_DEST%\pck%_EXT%
+..\%__SRC%\bin\*.zip %_DEST%\pck%_EXT%\*.zip
+
diff --git a/agg/inc/agg_alpha_mask_u8.h b/agg/inc/agg_alpha_mask_u8.h
new file mode 100755
index 000000000000..b7e5c926092f
--- /dev/null
+++ b/agg/inc/agg_alpha_mask_u8.h
@@ -0,0 +1,499 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// scanline_u8 class
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_ALPHA_MASK_U8_INCLUDED
+#define AGG_ALPHA_MASK_U8_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+ //===================================================one_component_mask_u8
+ struct one_component_mask_u8
+ {
+ static unsigned calculate(const int8u* p) { return *p; }
+ };
+
+
+ //=====================================================rgb_to_gray_mask_u8
+ template<unsigned R, unsigned G, unsigned B>
+ struct rgb_to_gray_mask_u8
+ {
+ static unsigned calculate(const int8u* p)
+ {
+ return (p[R]*77 + p[G]*150 + p[B]*29) >> 8;
+ }
+ };
+
+ //==========================================================alpha_mask_u8
+ template<unsigned Step=1, unsigned Offset=0, class MaskF=one_component_mask_u8>
+ class alpha_mask_u8
+ {
+ public:
+ typedef int8u cover_type;
+ typedef alpha_mask_u8<Step, Offset, MaskF> self_type;
+ enum
+ {
+ cover_shift = 8,
+ cover_none = 0,
+ cover_full = 255
+ };
+
+ alpha_mask_u8() : m_rbuf(0) {}
+ alpha_mask_u8(rendering_buffer& rbuf) : m_rbuf(&rbuf) {}
+
+ void attach(rendering_buffer& rbuf) { m_rbuf = &rbuf; }
+
+ MaskF& mask_function() { return m_mask_function; }
+ const MaskF& mask_function() const { return m_mask_function; }
+
+
+ //--------------------------------------------------------------------
+ cover_type pixel(int x, int y) const
+ {
+ if(x >= 0 && y >= 0 &&
+ x < (int)m_rbuf->width() &&
+ y <= (int)m_rbuf->height())
+ {
+ return (cover_type)m_mask_function.calculate(
+ m_rbuf->row(y) + x * Step + Offset);
+ }
+ return 0;
+ }
+
+ //--------------------------------------------------------------------
+ cover_type combine_pixel(int x, int y, cover_type val) const
+ {
+ if(x >= 0 && y >= 0 &&
+ x < (int)m_rbuf->width() &&
+ y <= (int)m_rbuf->height())
+ {
+ return (cover_type)((val *
+ m_mask_function.calculate(
+ m_rbuf->row(y) + x * Step + Offset)) >>
+ cover_shift);
+ }
+ return 0;
+ }
+
+
+ //--------------------------------------------------------------------
+ void fill_hspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ int xmax = m_rbuf->width() - 1;
+ int ymax = m_rbuf->height() - 1;
+
+ int count = num_pix;
+ cover_type* covers = dst;
+
+ if(y < 0 || y > ymax)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+
+ if(x < 0)
+ {
+ count += x;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers, 0, -x * sizeof(cover_type));
+ covers -= x;
+ x = 0;
+ }
+
+ if(x + count > xmax)
+ {
+ int rest = x + count - xmax - 1;
+ count -= rest;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers + count, 0, rest * sizeof(cover_type));
+ }
+
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *covers++ = (cover_type)m_mask_function.calculate(mask);
+ mask += Step;
+ }
+ while(--count);
+ }
+
+
+ //--------------------------------------------------------------------
+ void combine_hspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ int xmax = m_rbuf->width() - 1;
+ int ymax = m_rbuf->height() - 1;
+
+ int count = num_pix;
+ cover_type* covers = dst;
+
+ if(y < 0 || y > ymax)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+
+ if(x < 0)
+ {
+ count += x;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers, 0, -x * sizeof(cover_type));
+ covers -= x;
+ x = 0;
+ }
+
+ if(x + count > xmax)
+ {
+ int rest = x + count - xmax - 1;
+ count -= rest;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers + count, 0, rest * sizeof(cover_type));
+ }
+
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *covers = (cover_type)(((*covers) *
+ m_mask_function.calculate(mask)) >>
+ cover_shift);
+ ++covers;
+ mask += Step;
+ }
+ while(--count);
+ }
+
+ //--------------------------------------------------------------------
+ void fill_vspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ int xmax = m_rbuf->width() - 1;
+ int ymax = m_rbuf->height() - 1;
+
+ int count = num_pix;
+ cover_type* covers = dst;
+
+ if(x < 0 || x > xmax)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+
+ if(y < 0)
+ {
+ count += y;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers, 0, -y * sizeof(cover_type));
+ covers -= y;
+ y = 0;
+ }
+
+ if(y + count > ymax)
+ {
+ int rest = y + count - ymax - 1;
+ count -= rest;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers + count, 0, rest * sizeof(cover_type));
+ }
+
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *covers++ = (cover_type)m_mask_function.calculate(mask);
+ mask += m_rbuf->stride();
+ }
+ while(--count);
+ }
+
+ //--------------------------------------------------------------------
+ void combine_vspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ int xmax = m_rbuf->width() - 1;
+ int ymax = m_rbuf->height() - 1;
+
+ int count = num_pix;
+ cover_type* covers = dst;
+
+ if(x < 0 || x > xmax)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+
+ if(y < 0)
+ {
+ count += y;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers, 0, -y * sizeof(cover_type));
+ covers -= y;
+ y = 0;
+ }
+
+ if(y + count > ymax)
+ {
+ int rest = y + count - ymax - 1;
+ count -= rest;
+ if(count <= 0)
+ {
+ memset(dst, 0, num_pix * sizeof(cover_type));
+ return;
+ }
+ memset(covers + count, 0, rest * sizeof(cover_type));
+ }
+
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *covers = (cover_type)(((*covers) *
+ m_mask_function.calculate(mask)) >>
+ cover_shift);
+ ++covers;
+ mask += m_rbuf->stride();
+ }
+ while(--count);
+ }
+
+
+ private:
+ alpha_mask_u8(const self_type&);
+ const self_type& operator = (const self_type&);
+
+ rendering_buffer* m_rbuf;
+ MaskF m_mask_function;
+ };
+
+
+ typedef alpha_mask_u8<1, 0> alpha_mask_gray8; //----alpha_mask_gray8
+
+ typedef alpha_mask_u8<3, 0> alpha_mask_rgb24r; //----alpha_mask_rgb24r
+ typedef alpha_mask_u8<3, 1> alpha_mask_rgb24g; //----alpha_mask_rgb24g
+ typedef alpha_mask_u8<3, 2> alpha_mask_rgb24b; //----alpha_mask_rgb24b
+
+ typedef alpha_mask_u8<3, 2> alpha_mask_bgr24r; //----alpha_mask_bgr24r
+ typedef alpha_mask_u8<3, 1> alpha_mask_bgr24g; //----alpha_mask_bgr24g
+ typedef alpha_mask_u8<3, 0> alpha_mask_bgr24b; //----alpha_mask_bgr24b
+
+ typedef alpha_mask_u8<4, 0> alpha_mask_rgba32r; //----alpha_mask_rgba32r
+ typedef alpha_mask_u8<4, 1> alpha_mask_rgba32g; //----alpha_mask_rgba32g
+ typedef alpha_mask_u8<4, 2> alpha_mask_rgba32b; //----alpha_mask_rgba32b
+ typedef alpha_mask_u8<4, 3> alpha_mask_rgba32a; //----alpha_mask_rgba32a
+
+ typedef alpha_mask_u8<4, 1> alpha_mask_argb32r; //----alpha_mask_argb32r
+ typedef alpha_mask_u8<4, 2> alpha_mask_argb32g; //----alpha_mask_argb32g
+ typedef alpha_mask_u8<4, 3> alpha_mask_argb32b; //----alpha_mask_argb32b
+ typedef alpha_mask_u8<4, 0> alpha_mask_argb32a; //----alpha_mask_argb32a
+
+ typedef alpha_mask_u8<4, 2> alpha_mask_bgra32r; //----alpha_mask_bgra32r
+ typedef alpha_mask_u8<4, 1> alpha_mask_bgra32g; //----alpha_mask_bgra32g
+ typedef alpha_mask_u8<4, 0> alpha_mask_bgra32b; //----alpha_mask_bgra32b
+ typedef alpha_mask_u8<4, 3> alpha_mask_bgra32a; //----alpha_mask_bgra32a
+
+ typedef alpha_mask_u8<4, 3> alpha_mask_abgr32r; //----alpha_mask_abgr32r
+ typedef alpha_mask_u8<4, 2> alpha_mask_abgr32g; //----alpha_mask_abgr32g
+ typedef alpha_mask_u8<4, 1> alpha_mask_abgr32b; //----alpha_mask_abgr32b
+ typedef alpha_mask_u8<4, 0> alpha_mask_abgr32a; //----alpha_mask_abgr32a
+
+ typedef alpha_mask_u8<3, 0, rgb_to_gray_mask_u8<0, 1, 2> > alpha_mask_rgb24gray; //----alpha_mask_rgb24gray
+ typedef alpha_mask_u8<3, 0, rgb_to_gray_mask_u8<2, 1, 0> > alpha_mask_bgr24gray; //----alpha_mask_bgr24gray
+ typedef alpha_mask_u8<4, 0, rgb_to_gray_mask_u8<0, 1, 2> > alpha_mask_rgba32gray; //----alpha_mask_rgba32gray
+ typedef alpha_mask_u8<4, 1, rgb_to_gray_mask_u8<0, 1, 2> > alpha_mask_argb32gray; //----alpha_mask_argb32gray
+ typedef alpha_mask_u8<4, 0, rgb_to_gray_mask_u8<2, 1, 0> > alpha_mask_bgra32gray; //----alpha_mask_bgra32gray
+ typedef alpha_mask_u8<4, 1, rgb_to_gray_mask_u8<2, 1, 0> > alpha_mask_abgr32gray; //----alpha_mask_abgr32gray
+
+
+
+ //==========================================================amask_no_clip_u8
+ template<unsigned Step=1, unsigned Offset=0, class MaskF=one_component_mask_u8>
+ class amask_no_clip_u8
+ {
+ public:
+ typedef int8u cover_type;
+ typedef amask_no_clip_u8<Step, Offset, MaskF> self_type;
+ enum
+ {
+ cover_shift = 8,
+ cover_none = 0,
+ cover_full = 255
+ };
+
+ amask_no_clip_u8() : m_rbuf(0) {}
+ amask_no_clip_u8(rendering_buffer& rbuf) : m_rbuf(&rbuf) {}
+
+ void attach(rendering_buffer& rbuf) { m_rbuf = &rbuf; }
+
+ MaskF& mask_function() { return m_mask_function; }
+ const MaskF& mask_function() const { return m_mask_function; }
+
+
+ //--------------------------------------------------------------------
+ cover_type pixel(int x, int y) const
+ {
+ return (cover_type)m_mask_function.calculate(
+ m_rbuf->row(y) + x * Step + Offset);
+ }
+
+
+ //--------------------------------------------------------------------
+ cover_type combine_pixel(int x, int y, cover_type val) const
+ {
+ return (cover_type)((val *
+ m_mask_function.calculate(
+ m_rbuf->row(y) + x * Step + Offset)) >>
+ cover_shift);
+ }
+
+
+ //--------------------------------------------------------------------
+ void fill_hspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *dst++ = (cover_type)m_mask_function.calculate(mask);
+ mask += Step;
+ }
+ while(--num_pix);
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void combine_hspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *dst = (cover_type)(((*dst) *
+ m_mask_function.calculate(mask)) >>
+ cover_shift);
+ ++dst;
+ mask += Step;
+ }
+ while(--num_pix);
+ }
+
+
+ //--------------------------------------------------------------------
+ void fill_vspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *dst++ = (cover_type)m_mask_function.calculate(mask);
+ mask += m_rbuf->stride();
+ }
+ while(--num_pix);
+ }
+
+
+ //--------------------------------------------------------------------
+ void combine_vspan(int x, int y, cover_type* dst, int num_pix) const
+ {
+ const int8u* mask = m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *dst = (cover_type)(((*dst) *
+ m_mask_function.calculate(mask)) >>
+ cover_shift);
+ ++dst;
+ mask += m_rbuf->stride();
+ }
+ while(--num_pix);
+ }
+
+ private:
+ amask_no_clip_u8(const self_type&);
+ const self_type& operator = (const self_type&);
+
+ rendering_buffer* m_rbuf;
+ MaskF m_mask_function;
+ };
+
+
+ typedef amask_no_clip_u8<1, 0> amask_no_clip_gray8; //----amask_no_clip_gray8
+
+ typedef amask_no_clip_u8<3, 0> amask_no_clip_rgb24r; //----amask_no_clip_rgb24r
+ typedef amask_no_clip_u8<3, 1> amask_no_clip_rgb24g; //----amask_no_clip_rgb24g
+ typedef amask_no_clip_u8<3, 2> amask_no_clip_rgb24b; //----amask_no_clip_rgb24b
+
+ typedef amask_no_clip_u8<3, 2> amask_no_clip_bgr24r; //----amask_no_clip_bgr24r
+ typedef amask_no_clip_u8<3, 1> amask_no_clip_bgr24g; //----amask_no_clip_bgr24g
+ typedef amask_no_clip_u8<3, 0> amask_no_clip_bgr24b; //----amask_no_clip_bgr24b
+
+ typedef amask_no_clip_u8<4, 0> amask_no_clip_rgba32r; //----amask_no_clip_rgba32r
+ typedef amask_no_clip_u8<4, 1> amask_no_clip_rgba32g; //----amask_no_clip_rgba32g
+ typedef amask_no_clip_u8<4, 2> amask_no_clip_rgba32b; //----amask_no_clip_rgba32b
+ typedef amask_no_clip_u8<4, 3> amask_no_clip_rgba32a; //----amask_no_clip_rgba32a
+
+ typedef amask_no_clip_u8<4, 1> amask_no_clip_argb32r; //----amask_no_clip_argb32r
+ typedef amask_no_clip_u8<4, 2> amask_no_clip_argb32g; //----amask_no_clip_argb32g
+ typedef amask_no_clip_u8<4, 3> amask_no_clip_argb32b; //----amask_no_clip_argb32b
+ typedef amask_no_clip_u8<4, 0> amask_no_clip_argb32a; //----amask_no_clip_argb32a
+
+ typedef amask_no_clip_u8<4, 2> amask_no_clip_bgra32r; //----amask_no_clip_bgra32r
+ typedef amask_no_clip_u8<4, 1> amask_no_clip_bgra32g; //----amask_no_clip_bgra32g
+ typedef amask_no_clip_u8<4, 0> amask_no_clip_bgra32b; //----amask_no_clip_bgra32b
+ typedef amask_no_clip_u8<4, 3> amask_no_clip_bgra32a; //----amask_no_clip_bgra32a
+
+ typedef amask_no_clip_u8<4, 3> amask_no_clip_abgr32r; //----amask_no_clip_abgr32r
+ typedef amask_no_clip_u8<4, 2> amask_no_clip_abgr32g; //----amask_no_clip_abgr32g
+ typedef amask_no_clip_u8<4, 1> amask_no_clip_abgr32b; //----amask_no_clip_abgr32b
+ typedef amask_no_clip_u8<4, 0> amask_no_clip_abgr32a; //----amask_no_clip_abgr32a
+
+ typedef amask_no_clip_u8<3, 0, rgb_to_gray_mask_u8<0, 1, 2> > amask_no_clip_rgb24gray; //----amask_no_clip_rgb24gray
+ typedef amask_no_clip_u8<3, 0, rgb_to_gray_mask_u8<2, 1, 0> > amask_no_clip_bgr24gray; //----amask_no_clip_bgr24gray
+ typedef amask_no_clip_u8<4, 0, rgb_to_gray_mask_u8<0, 1, 2> > amask_no_clip_rgba32gray; //----amask_no_clip_rgba32gray
+ typedef amask_no_clip_u8<4, 1, rgb_to_gray_mask_u8<0, 1, 2> > amask_no_clip_argb32gray; //----amask_no_clip_argb32gray
+ typedef amask_no_clip_u8<4, 0, rgb_to_gray_mask_u8<2, 1, 0> > amask_no_clip_bgra32gray; //----amask_no_clip_bgra32gray
+ typedef amask_no_clip_u8<4, 1, rgb_to_gray_mask_u8<2, 1, 0> > amask_no_clip_abgr32gray; //----amask_no_clip_abgr32gray
+
+
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_arc.h b/agg/inc/agg_arc.h
new file mode 100755
index 000000000000..80b148d910d0
--- /dev/null
+++ b/agg/inc/agg_arc.h
@@ -0,0 +1,74 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Arc vertex generator
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_ARC_INCLUDED
+#define AGG_ARC_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //=====================================================================arc
+ //
+ // See Implementation agg_arc.cpp
+ //
+ class arc
+ {
+ public:
+ arc() : m_scale(1.0), m_initialized(false) {}
+ arc(double x, double y,
+ double rx, double ry,
+ double a1, double a2,
+ bool ccw=true);
+
+ void init(double x, double y,
+ double rx, double ry,
+ double a1, double a2,
+ bool ccw=true);
+
+ void approximation_scale(double s);
+ double approximation_scale() const { return m_scale; }
+
+ void rewind(unsigned);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ void normalize(double a1, double a2, bool ccw);
+
+ double m_x;
+ double m_y;
+ double m_rx;
+ double m_ry;
+ double m_angle;
+ double m_start;
+ double m_end;
+ double m_scale;
+ double m_da;
+ bool m_ccw;
+ bool m_initialized;
+ unsigned m_path_cmd;
+ };
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_array.h b/agg/inc/agg_array.h
new file mode 100755
index 000000000000..2970181c4510
--- /dev/null
+++ b/agg/inc/agg_array.h
@@ -0,0 +1,887 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_ARRAY_INCLUDED
+#define AGG_ARRAY_INCLUDED
+
+#include <stddef.h>
+#include <string.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+
+
+ //-------------------------------------------------------pod_array_adaptor
+ template<class T> class pod_array_adaptor
+ {
+ public:
+ typedef T value_type;
+ pod_array_adaptor(T* array, unsigned _size) :
+ m_array(array), m_size(_size) {}
+
+ unsigned size() const { return m_size; }
+ const T& operator [] (unsigned idx) const { return m_array[idx]; }
+ T& operator [] (unsigned idx) { return m_array[idx]; }
+ private:
+ T* m_array;
+ unsigned m_size;
+ };
+
+
+
+ //---------------------------------------------------------pod_auto_array
+ template<class T, unsigned Size> class pod_auto_array
+ {
+ public:
+ typedef T value_type;
+ typedef pod_auto_array<T, Size> self_type;
+
+ pod_auto_array() {}
+ explicit pod_auto_array(const T* c)
+ {
+ memcpy(m_array, c, sizeof(T) * Size);
+ }
+
+ const self_type& operator = (const T* c)
+ {
+ memcpy(m_array, c, sizeof(T) * Size);
+ return *this;
+ }
+
+ static unsigned size() { return Size; }
+ const T& operator [] (unsigned i) const { return m_array[i]; }
+ T& operator [] (unsigned i) { return m_array[i]; }
+ private:
+ T m_array[Size];
+ };
+
+
+
+
+
+ //---------------------------------------------------------------pod_array
+ // A simple class template to store Plain Old Data, a vector
+ // of a fixed size. The data is continous in memory
+ //------------------------------------------------------------------------
+ template<class T> class pod_array
+ {
+ public:
+ typedef T value_type;
+
+ ~pod_array() { delete [] m_array; }
+ pod_array() : m_size(0), m_capacity(0), m_array(0) {}
+ pod_array(unsigned cap, unsigned extra_tail=0);
+
+ // Copying
+ pod_array(const pod_array<T>&);
+ const pod_array<T>& operator = (const pod_array<T>&);
+
+ unsigned capacity() const { return m_capacity; }
+ void capacity(unsigned cap, unsigned extra_tail=0);
+
+ void resize(unsigned new_size);
+
+ void add(const T& v) { m_array[m_size++] = v; }
+ void inc_size(unsigned _size) { m_size += _size; }
+ unsigned size() const { return m_size; }
+ unsigned byte_size() const { return m_size * sizeof(T); }
+ void serialize(int8u* ptr) const;
+ void deserialize(const int8u* data, unsigned byte_size);
+ const T& operator [] (unsigned idx) const { return m_array[idx]; }
+ T& operator [] (unsigned idx) { return m_array[idx]; }
+
+ void remove_all() { m_size = 0; }
+ void cut_at(unsigned num) { if(num < m_size) m_size = num; }
+
+ private:
+ unsigned m_size;
+ unsigned m_capacity;
+ T* m_array;
+ };
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void pod_array<T>::capacity(unsigned cap, unsigned extra_tail)
+ {
+ m_size = 0;
+ if(cap > m_capacity)
+ {
+ delete [] m_array;
+ m_capacity = cap + extra_tail;
+ m_array = m_capacity ? new T [m_capacity] : 0;
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void pod_array<T>::resize(unsigned new_size)
+ {
+ if(new_size > m_size)
+ {
+ if(new_size > m_capacity)
+ {
+ T* data = new T[new_size];
+ memcpy(data, m_array, m_size * sizeof(T));
+ delete [] m_array;
+ m_array = data;
+ }
+ }
+ else
+ {
+ m_size = new_size;
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<class T> pod_array<T>::pod_array(unsigned cap, unsigned extra_tail) :
+ m_size(cap), m_capacity(cap + extra_tail), m_array(new T[m_capacity]) {}
+
+ //------------------------------------------------------------------------
+ template<class T> pod_array<T>::pod_array(const pod_array<T>& v) :
+ m_size(v.m_size),
+ m_capacity(v.m_capacity),
+ m_array(v.m_capacity ? new T [v.m_capacity] : 0)
+ {
+ memcpy(m_array, v.m_array, sizeof(T) * v.m_size);
+ }
+
+ //------------------------------------------------------------------------
+ template<class T> const pod_array<T>&
+ pod_array<T>::operator = (const pod_array<T>&v)
+ {
+ capacity(v.m_capacity);
+ if(v.m_size) memcpy(m_array, v.m_array, sizeof(T) * v.m_size);
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ template<class T> void pod_array<T>::serialize(int8u* ptr) const
+ {
+ if(m_size) memcpy(ptr, m_array, m_size * sizeof(T));
+ }
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void pod_array<T>::deserialize(const int8u* data, unsigned _byte_size)
+ {
+ _byte_size /= sizeof(T);
+ capacity(_byte_size);
+ if(_byte_size) memcpy(m_array, data, _byte_size * sizeof(T));
+ }
+
+
+
+
+
+ //---------------------------------------------------------------pod_deque
+ // A simple class template to store Plain Old Data, similar to std::deque
+ // It doesn't reallocate memory but instead, uses blocks of data of size
+ // of (1 << S), that is, power of two. The data is NOT contiguous in memory,
+ // so the only valid access method is operator [] or curr(), prev(), next()
+ //
+ // There reallocs occure only when the pool of pointers to blocks needs
+ // to be extended (it happens very rarely). You can control the value
+ // of increment to reallocate the pointer buffer. See the second constructor.
+ // By default, the incremeent value equals (1 << S), i.e., the block size.
+ //------------------------------------------------------------------------
+ template<class T, unsigned S=6> class pod_deque
+ {
+ public:
+ enum
+ {
+ block_shift = S,
+ block_size = 1 << block_shift,
+ block_mask = block_size - 1
+ };
+
+ typedef T value_type;
+
+ ~pod_deque();
+ pod_deque();
+ pod_deque(unsigned block_ptr_inc);
+
+ // Copying
+ pod_deque(const pod_deque<T, S>& v);
+ const pod_deque<T, S>& operator = (const pod_deque<T, S>& v);
+
+ void remove_all() { m_size = 0; }
+ void free_all() { free_tail(0); }
+ void free_tail(unsigned size);
+ void add(const T& val);
+ void modify_last(const T& val);
+ void remove_last();
+
+ int allocate_continuous_block(unsigned num_elements);
+
+ void add_array(const T* ptr, unsigned num_elem)
+ {
+ while(num_elem--)
+ {
+ add(*ptr++);
+ }
+ }
+
+ template<class DataAccessor> void add_data(DataAccessor& data)
+ {
+ while(data.size())
+ {
+ add(*data);
+ ++data;
+ }
+ }
+
+ void cut_at(unsigned _size)
+ {
+ if(_size < m_size) m_size = _size;
+ }
+
+ unsigned size() const { return m_size; }
+
+ const T& operator [] (unsigned idx) const
+ {
+ return m_blocks[idx >> block_shift][idx & block_mask];
+ }
+
+ T& operator [] (unsigned idx)
+ {
+ return m_blocks[idx >> block_shift][idx & block_mask];
+ }
+
+ const T& curr(unsigned idx) const
+ {
+ return (*this)[idx];
+ }
+
+ T& curr(unsigned idx)
+ {
+ return (*this)[idx];
+ }
+
+ const T& prev(unsigned idx) const
+ {
+ return (*this)[(idx + m_size - 1) % m_size];
+ }
+
+ T& prev(unsigned idx)
+ {
+ return (*this)[(idx + m_size - 1) % m_size];
+ }
+
+ const T& next(unsigned idx) const
+ {
+ return (*this)[(idx + 1) % m_size];
+ }
+
+ T& next(unsigned idx)
+ {
+ return (*this)[(idx + 1) % m_size];
+ }
+
+ const T& last() const
+ {
+ return (*this)[m_size - 1];
+ }
+
+ T& last()
+ {
+ return (*this)[m_size - 1];
+ }
+
+ unsigned byte_size() const;
+ void serialize(int8u* ptr) const;
+ void deserialize(const int8u* data, unsigned byte_size);
+ void deserialize(unsigned start, const T& empty_val,
+ const int8u* data, unsigned byte_size);
+
+ template<class ByteAccessor>
+ void deserialize(ByteAccessor data)
+ {
+ remove_all();
+ unsigned elem_size = data.size() / sizeof(T);
+
+ for(unsigned i = 0; i < elem_size; ++i)
+ {
+ int8u* ptr = (int8u*)data_ptr();
+ for(unsigned j = 0; j < sizeof(T); ++j)
+ {
+ *ptr++ = *data;
+ ++data;
+ }
+ ++m_size;
+ }
+ }
+
+ template<class ByteAccessor>
+ void deserialize(unsigned start, const T& empty_val, ByteAccessor data)
+ {
+ while(m_size < start)
+ {
+ add(empty_val);
+ }
+
+ unsigned elem_size = data.size() / sizeof(T);
+ for(unsigned i = 0; i < elem_size; ++i)
+ {
+ int8u* ptr;
+ if(start + i < m_size)
+ {
+ ptr = (int8u*)(&((*this)[start + i]));
+ }
+ else
+ {
+ ptr = (int8u*)data_ptr();
+ ++m_size;
+ }
+ for(unsigned j = 0; j < sizeof(T); ++j)
+ {
+ *ptr++ = *data;
+ ++data;
+ }
+ }
+ }
+
+ const T* block(unsigned nb) const { return m_blocks[nb]; }
+
+ private:
+ void allocate_block(unsigned nb);
+ T* data_ptr();
+
+ unsigned m_size;
+ unsigned m_num_blocks;
+ unsigned m_max_blocks;
+ T** m_blocks;
+ unsigned m_block_ptr_inc;
+ };
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S> pod_deque<T, S>::~pod_deque()
+ {
+ if(m_num_blocks)
+ {
+ T** blk = m_blocks + m_num_blocks - 1;
+ while(m_num_blocks--)
+ {
+ delete [] *blk;
+ --blk;
+ }
+ delete [] m_blocks;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::free_tail(unsigned _size)
+ {
+ if(_size < m_size)
+ {
+ unsigned nb = (_size + block_mask) >> block_shift;
+ while(m_num_blocks > nb)
+ {
+ delete [] m_blocks[--m_num_blocks];
+ }
+ m_size = _size;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S> pod_deque<T, S>::pod_deque() :
+ m_size(0),
+ m_num_blocks(0),
+ m_max_blocks(0),
+ m_blocks(0),
+ m_block_ptr_inc(block_size)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ pod_deque<T, S>::pod_deque(unsigned block_ptr_inc) :
+ m_size(0),
+ m_num_blocks(0),
+ m_max_blocks(0),
+ m_blocks(0),
+ m_block_ptr_inc(block_ptr_inc)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ pod_deque<T, S>::pod_deque(const pod_deque<T, S>& v) :
+ m_size(v.m_size),
+ m_num_blocks(v.m_num_blocks),
+ m_max_blocks(v.m_max_blocks),
+ m_blocks(v.m_max_blocks ? new T* [v.m_max_blocks] : 0),
+ m_block_ptr_inc(v.m_block_ptr_inc)
+ {
+ unsigned i;
+ for(i = 0; i < v.m_num_blocks; ++i)
+ {
+ m_blocks[i] = new T [block_size];
+ memcpy(m_blocks[i], v.m_blocks[i], block_size * sizeof(T));
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ const pod_deque<T, S>& pod_deque<T, S>::operator = (const pod_deque<T, S>& v)
+ {
+ unsigned i;
+ for(i = m_num_blocks; i < v.m_num_blocks; ++i)
+ {
+ allocate_block(i);
+ }
+ for(i = 0; i < v.m_num_blocks; ++i)
+ {
+ memcpy(m_blocks[i], v.m_blocks[i], block_size * sizeof(T));
+ }
+ m_size = v.m_size;
+ return *this;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::allocate_block(unsigned nb)
+ {
+ if(nb >= m_max_blocks)
+ {
+ T** new_blocks = new T* [m_max_blocks + m_block_ptr_inc];
+
+ if(m_blocks)
+ {
+ memcpy(new_blocks,
+ m_blocks,
+ m_num_blocks * sizeof(T*));
+
+ delete [] m_blocks;
+ }
+ m_blocks = new_blocks;
+ m_max_blocks += m_block_ptr_inc;
+ }
+ m_blocks[nb] = new T [block_size];
+ m_num_blocks++;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ inline T* pod_deque<T, S>::data_ptr()
+ {
+ unsigned nb = m_size >> block_shift;
+ if(nb >= m_num_blocks)
+ {
+ allocate_block(nb);
+ }
+ return m_blocks[nb] + (m_size & block_mask);
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ inline void pod_deque<T, S>::add(const T& val)
+ {
+ *data_ptr() = val;
+ ++m_size;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ inline void pod_deque<T, S>::remove_last()
+ {
+ if(m_size) --m_size;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::modify_last(const T& val)
+ {
+ remove_last();
+ add(val);
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ int pod_deque<T, S>::allocate_continuous_block(unsigned num_elements)
+ {
+ if(num_elements < block_size)
+ {
+ data_ptr(); // Allocate initial block if necessary
+ unsigned rest = block_size - (m_size & block_mask);
+ unsigned index;
+ if(num_elements <= rest)
+ {
+ // The rest of the block is good, we can use it
+ //-----------------
+ index = m_size;
+ m_size += num_elements;
+ return index;
+ }
+
+ // New block
+ //---------------
+ m_size += rest;
+ data_ptr();
+ index = m_size;
+ m_size += num_elements;
+ return index;
+ }
+ return -1; // Impossible to allocate
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ unsigned pod_deque<T, S>::byte_size() const
+ {
+ return m_size * sizeof(T);
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::serialize(int8u* ptr) const
+ {
+ unsigned i;
+ for(i = 0; i < m_size; i++)
+ {
+ memcpy(ptr, &(*this)[i], sizeof(T));
+ ptr += sizeof(T);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::deserialize(const int8u* data, unsigned _byte_size)
+ {
+ remove_all();
+ _byte_size /= sizeof(T);
+ for(unsigned i = 0; i < _byte_size; ++i)
+ {
+ T* ptr = data_ptr();
+ memcpy(ptr, data, sizeof(T));
+ ++m_size;
+ data += sizeof(T);
+ }
+ }
+
+
+ // Replace or add a number of elements starting from "start" position
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void pod_deque<T, S>::deserialize(unsigned start, const T& empty_val,
+ const int8u* data, unsigned _byte_size)
+ {
+ while(m_size < start)
+ {
+ add(empty_val);
+ }
+
+ _byte_size /= sizeof(T);
+ for(unsigned i = 0; i < _byte_size; ++i)
+ {
+ if(start + i < m_size)
+ {
+ memcpy(&((*this)[start + i]), data, sizeof(T));
+ }
+ else
+ {
+ T* ptr = data_ptr();
+ memcpy(ptr, data, sizeof(T));
+ ++m_size;
+ }
+ data += sizeof(T);
+ }
+ }
+
+
+ //-----------------------------------------------------------pod_allocator
+ // Allocator for arbitrary POD data. Most usable in different cache
+ // systems for efficient memory allocations.
+ // Memory is allocated with blocks of fixed size ("block_size" in
+ // the constructor). If required size exceeds the block size the allocator
+ // creates a new block of the required size. However, the most efficient
+ // use is when the average reqired size is much less than the block size.
+ //------------------------------------------------------------------------
+ class pod_allocator
+ {
+ public:
+ void remove_all()
+ {
+ if(m_num_blocks)
+ {
+ int8u** blk = m_blocks + m_num_blocks - 1;
+ while(m_num_blocks--)
+ {
+ delete [] *blk;
+ --blk;
+ }
+ delete [] m_blocks;
+ }
+ m_num_blocks = 0;
+ m_max_blocks = 0;
+ m_blocks = 0;
+ m_buf_ptr = 0;
+ m_rest = 0;
+ }
+
+ ~pod_allocator()
+ {
+ remove_all();
+ }
+
+ pod_allocator(unsigned block_size, unsigned block_ptr_inc=256-8) :
+ m_block_size(block_size),
+ m_block_ptr_inc(block_ptr_inc),
+ m_num_blocks(0),
+ m_max_blocks(0),
+ m_blocks(0),
+ m_buf_ptr(0),
+ m_rest(0)
+ {
+ }
+
+
+ int8u* allocate(unsigned size, unsigned alignment=1)
+ {
+ if(size == 0) return 0;
+ if(size <= m_rest)
+ {
+ int8u* ptr = m_buf_ptr;
+ if(alignment > 1)
+ {
+ unsigned align = (alignment - unsigned((size_t)ptr) % alignment) % alignment;
+ size += align;
+ ptr += align;
+ if(size <= m_rest)
+ {
+ m_rest -= size;
+ m_buf_ptr += size;
+ return ptr;
+ }
+ allocate_block(size);
+ return allocate(size - align, alignment);
+ }
+ m_rest -= size;
+ m_buf_ptr += size;
+ return ptr;
+ }
+ allocate_block(size + alignment - 1);
+ return allocate(size, alignment);
+ }
+
+
+ private:
+ void allocate_block(unsigned size)
+ {
+ if(size < m_block_size) size = m_block_size;
+ if(m_num_blocks >= m_max_blocks)
+ {
+ int8u** new_blocks = new int8u* [m_max_blocks + m_block_ptr_inc];
+
+ if(m_blocks)
+ {
+ memcpy(new_blocks,
+ m_blocks,
+ m_num_blocks * sizeof(int8u*));
+
+ delete [] m_blocks;
+ }
+ m_blocks = new_blocks;
+ m_max_blocks += m_block_ptr_inc;
+ }
+ m_blocks[m_num_blocks] = m_buf_ptr = new int8u [size];
+ m_num_blocks++;
+ m_rest = size;
+ }
+
+ unsigned m_block_size;
+ unsigned m_block_ptr_inc;
+ unsigned m_num_blocks;
+ unsigned m_max_blocks;
+ int8u** m_blocks;
+ int8u* m_buf_ptr;
+ unsigned m_rest;
+ };
+
+
+
+
+
+
+
+
+ //------------------------------------------------------------------------
+ enum
+ {
+ quick_sort_threshold = 9
+ };
+
+
+ //-----------------------------------------------------------swap_elements
+ template<class T> inline void swap_elements(T& a, T& b)
+ {
+ T temp = a;
+ a = b;
+ b = temp;
+ }
+
+
+ //--------------------------------------------------------------quick_sort
+ template<class Array, class Less>
+ void quick_sort(Array& arr, Less less)
+ {
+ if(arr.size() < 2) return;
+
+ typename Array::value_type* e1;
+ typename Array::value_type* e2;
+
+ int stack[80];
+ int* top = stack;
+ int limit = arr.size();
+ int base = 0;
+
+ for(;;)
+ {
+ int len = limit - base;
+
+ int i;
+ int j;
+ int pivot;
+
+ if(len > quick_sort_threshold)
+ {
+ // we use base + len/2 as the pivot
+ pivot = base + len / 2;
+ swap_elements(arr[base], arr[pivot]);
+
+ i = base + 1;
+ j = limit - 1;
+
+ // now ensure that *i <= *base <= *j
+ e1 = &(arr[j]);
+ e2 = &(arr[i]);
+ if(less(*e1, *e2)) swap_elements(*e1, *e2);
+
+ e1 = &(arr[base]);
+ e2 = &(arr[i]);
+ if(less(*e1, *e2)) swap_elements(*e1, *e2);
+
+ e1 = &(arr[j]);
+ e2 = &(arr[base]);
+ if(less(*e1, *e2)) swap_elements(*e1, *e2);
+
+ for(;;)
+ {
+ do i++; while( less(arr[i], arr[base]) );
+ do j--; while( less(arr[base], arr[j]) );
+
+ if( i > j )
+ {
+ break;
+ }
+
+ swap_elements(arr[i], arr[j]);
+ }
+
+ swap_elements(arr[base], arr[j]);
+
+ // now, push the largest sub-array
+ if(j - base > limit - i)
+ {
+ top[0] = base;
+ top[1] = j;
+ base = i;
+ }
+ else
+ {
+ top[0] = i;
+ top[1] = limit;
+ limit = j;
+ }
+ top += 2;
+ }
+ else
+ {
+ // the sub-array is small, perform insertion sort
+ j = base;
+ i = j + 1;
+
+ for(; i < limit; j = i, i++)
+ {
+ for(; less(*(e1 = &(arr[j + 1])), *(e2 = &(arr[j]))); j--)
+ {
+ swap_elements(*e1, *e2);
+ if(j == base)
+ {
+ break;
+ }
+ }
+ }
+ if(top > stack)
+ {
+ top -= 2;
+ base = top[0];
+ limit = top[1];
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+ }
+
+
+
+
+ //------------------------------------------------------remove_duplicates
+ // Remove duplicates from a sorted array. It doesn't cut the the
+ // tail of the array, it just returns the number of remaining elements.
+ //-----------------------------------------------------------------------
+ template<class Array, class Equal>
+ unsigned remove_duplicates(Array& arr, Equal equal)
+ {
+ if(arr.size() < 2) return arr.size();
+
+ unsigned i, j;
+ for(i = 1, j = 1; i < arr.size(); i++)
+ {
+ typename Array::value_type& e = arr[i];
+ if(!equal(e, arr[i - 1]))
+ {
+ arr[j++] = e;
+ }
+ }
+ return j;
+ }
+
+
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_arrowhead.h b/agg/inc/agg_arrowhead.h
new file mode 100755
index 000000000000..aac99c5ae980
--- /dev/null
+++ b/agg/inc/agg_arrowhead.h
@@ -0,0 +1,82 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Simple arrowhead/arrowtail generator
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_ARROWHEAD_INCLUDED
+#define AGG_ARROWHEAD_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //===============================================================arrowhead
+ //
+ // See implementation agg_arrowhead.cpp
+ //
+ class arrowhead
+ {
+ public:
+ arrowhead();
+
+ void head(double d1, double d2, double d3, double d4)
+ {
+ m_head_d1 = d1;
+ m_head_d2 = d2;
+ m_head_d3 = d3;
+ m_head_d4 = d4;
+ m_head_flag = true;
+ }
+
+ void head() { m_head_flag = true; }
+ void no_head() { m_head_flag = false; }
+
+ void tail(double d1, double d2, double d3, double d4)
+ {
+ m_tail_d1 = d1;
+ m_tail_d2 = d2;
+ m_tail_d3 = d3;
+ m_tail_d4 = d4;
+ m_tail_flag = true;
+ }
+
+ void tail() { m_tail_flag = true; }
+ void no_tail() { m_tail_flag = false; }
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ double m_head_d1;
+ double m_head_d2;
+ double m_head_d3;
+ double m_head_d4;
+ double m_tail_d1;
+ double m_tail_d2;
+ double m_tail_d3;
+ double m_tail_d4;
+ bool m_head_flag;
+ bool m_tail_flag;
+ double m_coord[16];
+ unsigned m_cmd[8];
+ unsigned m_curr_id;
+ unsigned m_curr_coord;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_basics.h b/agg/inc/agg_basics.h
new file mode 100755
index 000000000000..d9ca881ab328
--- /dev/null
+++ b/agg/inc/agg_basics.h
@@ -0,0 +1,343 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_BASICS_INCLUDED
+#define AGG_BASICS_INCLUDED
+
+#include "agg_config.h"
+
+//-------------------------------------------------------- Default basic types
+//
+// If the compiler has different capacity of the basic types you can redefine
+// them via the compiler command line or by generating agg_config.h that is
+// empty by default.
+//
+#ifndef AGG_INT8
+#define AGG_INT8 signed char
+#endif
+
+#ifndef AGG_INT8U
+#define AGG_INT8U unsigned char
+#endif
+
+#ifndef AGG_INT16
+#define AGG_INT16 short
+#endif
+
+#ifndef AGG_INT16U
+#define AGG_INT16U unsigned short
+#endif
+
+#ifndef AGG_INT32
+#define AGG_INT32 int
+#endif
+
+#ifndef AGG_INT32U
+#define AGG_INT32U unsigned
+#endif
+
+#ifndef AGG_INT64
+#if defined(_MSC_VER)
+#define AGG_INT64 signed __int64
+#else
+#define AGG_INT64 signed long long
+#endif
+#endif
+
+#ifndef AGG_INT64U
+#if defined(_MSC_VER)
+#define AGG_INT64U unsigned __int64
+#else
+#define AGG_INT64U unsigned long long
+#endif
+#endif
+
+//------------------------------------------------ Some fixes for MS Visual C++
+#if defined(_MSC_VER)
+#pragma warning(disable:4786) // Identifier was truncated...
+#endif
+
+#if defined(_MSC_VER)
+#define AGG_INLINE __forceinline
+#else
+#define AGG_INLINE inline
+#endif
+
+namespace agg
+{
+ //-------------------------------------------------------------------------
+ typedef AGG_INT8 int8; //----int8
+ typedef AGG_INT8U int8u; //----int8u
+ typedef AGG_INT16 int16; //----int16
+ typedef AGG_INT16U int16u; //----int16u
+ typedef AGG_INT32 int32; //----int32
+ typedef AGG_INT32U int32u; //----int32u
+ typedef AGG_INT64 int64; //----int64
+ typedef AGG_INT64U int64u; //----int64u
+
+ //-------------------------------------------------------------------------
+ typedef unsigned char cover_type; //----cover_type
+ enum
+ {
+ cover_shift = 8, //----cover_shift
+ cover_size = 1 << cover_shift, //----cover_size
+ cover_mask = cover_size - 1, //----cover_mask
+ cover_none = 0, //----cover_none
+ cover_full = cover_mask //----cover_full
+ };
+
+
+ //-----------------------------------------------------------------------pi
+ const double pi = 3.14159265358979323846;
+
+ //------------------------------------------------------------------deg2rad
+ inline double deg2rad(double deg)
+ {
+ return deg * pi / 180.0;
+ }
+
+ //------------------------------------------------------------------rad2deg
+ inline double rad2deg(double rad)
+ {
+ return rad * 180.0 / pi;
+ }
+
+ //----------------------------------------------------------------rect_base
+ template<class T> struct rect_base
+ {
+ typedef rect_base<T> self_type;
+ T x1;
+ T y1;
+ T x2;
+ T y2;
+
+ rect_base() {}
+ rect_base(T x1_, T y1_, T x2_, T y2_) :
+ x1(x1_), y1(y1_), x2(x2_), y2(y2_) {}
+
+ const self_type& normalize()
+ {
+ T t;
+ if(x1 > x2) { t = x1; x1 = x2; x2 = t; }
+ if(y1 > y2) { t = y1; y1 = y2; y2 = t; }
+ return *this;
+ }
+
+ bool clip(const self_type& r)
+ {
+ if(x2 > r.x2) x2 = r.x2;
+ if(y2 > r.y2) y2 = r.y2;
+ if(x1 < r.x1) x1 = r.x1;
+ if(y1 < r.y1) y1 = r.y1;
+ return x1 <= x2 && y1 <= y2;
+ }
+
+ bool is_valid() const
+ {
+ return x1 <= x2 && y1 <= y2;
+ }
+ };
+
+ //-----------------------------------------------------intersect_rectangles
+ template<class Rect>
+ inline Rect intersect_rectangles(const Rect& r1, const Rect& r2)
+ {
+ Rect r = r1;
+
+ // First process x2,y2 because the other order
+ // results in Internal Compiler Error under
+ // Microsoft Visual C++ .NET 2003 69462-335-0000007-18038 in
+ // case of "Maximize Speed" optimization option.
+ //-----------------
+ if(r.x2 > r2.x2) r.x2 = r2.x2;
+ if(r.y2 > r2.y2) r.y2 = r2.y2;
+ if(r.x1 < r2.x1) r.x1 = r2.x1;
+ if(r.y1 < r2.y1) r.y1 = r2.y1;
+ return r;
+ }
+
+
+ //---------------------------------------------------------unite_rectangles
+ template<class Rect>
+ inline Rect unite_rectangles(const Rect& r1, const Rect& r2)
+ {
+ Rect r = r1;
+ if(r.x2 < r2.x2) r.x2 = r2.x2;
+ if(r.y2 < r2.y2) r.y2 = r2.y2;
+ if(r.x1 > r2.x1) r.x1 = r2.x1;
+ if(r.y1 > r2.y1) r.y1 = r2.y1;
+ return r;
+ }
+
+ typedef rect_base<int> rect; //----rect
+ typedef rect_base<double> rect_d; //----rect_d
+
+ //---------------------------------------------------------path_commands_e
+ enum path_commands_e
+ {
+ path_cmd_stop = 0, //----path_cmd_stop
+ path_cmd_move_to = 1, //----path_cmd_move_to
+ path_cmd_line_to = 2, //----path_cmd_line_to
+ path_cmd_curve3 = 3, //----path_cmd_curve3
+ path_cmd_curve4 = 4, //----path_cmd_curve4
+ path_cmd_end_poly = 6, //----path_cmd_end_poly
+ path_cmd_mask = 0x0F //----path_cmd_mask
+ };
+
+ //------------------------------------------------------------path_flags_e
+ enum path_flags_e
+ {
+ path_flags_none = 0, //----path_flags_none
+ path_flags_ccw = 0x10, //----path_flags_ccw
+ path_flags_cw = 0x20, //----path_flags_cw
+ path_flags_close = 0x40, //----path_flags_close
+ path_flags_mask = 0xF0 //----path_flags_mask
+ };
+
+ //---------------------------------------------------------------is_vertex
+ inline bool is_vertex(unsigned c)
+ {
+ return c >= path_cmd_move_to && c < path_cmd_end_poly;
+ }
+
+ //-----------------------------------------------------------------is_stop
+ inline bool is_stop(unsigned c)
+ {
+ return c == path_cmd_stop;
+ }
+
+ //--------------------------------------------------------------is_move_to
+ inline bool is_move_to(unsigned c)
+ {
+ return c == path_cmd_move_to;
+ }
+
+ //--------------------------------------------------------------is_line_to
+ inline bool is_line_to(unsigned c)
+ {
+ return c == path_cmd_line_to;
+ }
+
+ //----------------------------------------------------------------is_curve
+ inline bool is_curve(unsigned c)
+ {
+ return c == path_cmd_curve3 || c == path_cmd_curve4;
+ }
+
+ //---------------------------------------------------------------is_curve3
+ inline bool is_curve3(unsigned c)
+ {
+ return c == path_cmd_curve3;
+ }
+
+ //---------------------------------------------------------------is_curve4
+ inline bool is_curve4(unsigned c)
+ {
+ return c == path_cmd_curve4;
+ }
+
+ //-------------------------------------------------------------is_end_poly
+ inline bool is_end_poly(unsigned c)
+ {
+ return (c & path_cmd_mask) == path_cmd_end_poly;
+ }
+
+ //----------------------------------------------------------------is_close
+ inline bool is_close(unsigned c)
+ {
+ return (c & ~(path_flags_cw | path_flags_ccw)) ==
+ (((bool)path_cmd_end_poly) | ((bool)path_flags_close));
+ }
+
+ //------------------------------------------------------------is_next_poly
+ inline bool is_next_poly(unsigned c)
+ {
+ return is_stop(c) || is_move_to(c) || is_end_poly(c);
+ }
+
+ //-------------------------------------------------------------------is_cw
+ inline bool is_cw(unsigned c)
+ {
+ return (c & path_flags_cw) != 0;
+ }
+
+ //------------------------------------------------------------------is_ccw
+ inline bool is_ccw(unsigned c)
+ {
+ return (c & path_flags_ccw) != 0;
+ }
+
+ //-------------------------------------------------------------is_oriented
+ inline bool is_oriented(unsigned c)
+ {
+ return (c & (path_flags_cw | path_flags_ccw)) != 0;
+ }
+
+ //---------------------------------------------------------------is_closed
+ inline bool is_closed(unsigned c)
+ {
+ return (c & path_flags_close) != 0;
+ }
+
+ //----------------------------------------------------------get_close_flag
+ inline unsigned get_close_flag(unsigned c)
+ {
+ return c & path_flags_close;
+ }
+
+ //-------------------------------------------------------clear_orientation
+ inline unsigned clear_orientation(unsigned c)
+ {
+ return c & ~(path_flags_cw | path_flags_ccw);
+ }
+
+ //---------------------------------------------------------get_orientation
+ inline unsigned get_orientation(unsigned c)
+ {
+ return c & (path_flags_cw | path_flags_ccw);
+ }
+
+ //---------------------------------------------------------set_orientation
+ inline unsigned set_orientation(unsigned c, unsigned o)
+ {
+ return clear_orientation(c) | o;
+ }
+
+ //--------------------------------------------------------------point_type
+ struct point_type
+ {
+ double x, y;
+
+ point_type() {}
+ point_type(double x_, double y_) : x(x_), y(y_) {}
+ };
+
+ //-------------------------------------------------------------vertex_type
+ struct vertex_type
+ {
+ double x, y;
+ unsigned cmd;
+
+ vertex_type() {}
+ vertex_type(double x_, double y_, unsigned cmd_) :
+ x(x_), y(y_), cmd(cmd_) {}
+ };
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_bezier_arc.h b/agg/inc/agg_bezier_arc.h
new file mode 100755
index 000000000000..f437ab0a00bd
--- /dev/null
+++ b/agg/inc/agg_bezier_arc.h
@@ -0,0 +1,158 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Arc generator. Produces at most 4 consecutive cubic bezier curves, i.e.,
+// 4, 7, 10, or 13 vertices.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_BEZIER_ARC_INCLUDED
+#define AGG_BEZIER_ARC_INCLUDED
+
+#include "agg_conv_transform.h"
+
+namespace agg
+{
+
+ //-----------------------------------------------------------------------
+ void arc_to_bezier(double cx, double cy, double rx, double ry,
+ double start_angle, double sweep_angle,
+ double* curve);
+
+
+ //==============================================================bezier_arc
+ //
+ // See implemantaion agg_bezier_arc.cpp
+ //
+ class bezier_arc
+ {
+ public:
+ //--------------------------------------------------------------------
+ bezier_arc() : m_vertex(26) {}
+ bezier_arc(double x, double y,
+ double rx, double ry,
+ double start_angle,
+ double sweep_angle)
+ {
+ init(x, y, rx, ry, start_angle, sweep_angle);
+ }
+
+ //--------------------------------------------------------------------
+ void init(double x, double y,
+ double rx, double ry,
+ double start_angle,
+ double sweep_angle);
+
+ //--------------------------------------------------------------------
+ void rewind(unsigned)
+ {
+ m_vertex = 0;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned vertex(double* x, double* y)
+ {
+ if(m_vertex >= m_num_vertices) return path_cmd_stop;
+ *x = m_vertices[m_vertex];
+ *y = m_vertices[m_vertex + 1];
+ m_vertex += 2;
+ return (m_vertex == 2) ? path_cmd_move_to : path_cmd_curve4;
+ }
+
+ // Supplemantary functions. num_vertices() actually returns doubled
+ // number of vertices. That is, for 1 vertex it returns 2.
+ //--------------------------------------------------------------------
+ unsigned num_vertices() const { return m_num_vertices; }
+ const double* vertices() const { return m_vertices; }
+ double* vertices() { return m_vertices; }
+
+ private:
+ unsigned m_vertex;
+ unsigned m_num_vertices;
+ double m_vertices[26];
+ };
+
+
+
+ //==========================================================bezier_arc_svg
+ // Compute an SVG-style bezier arc.
+ //
+ // Computes an elliptical arc from (x1, y1) to (x2, y2). The size and
+ // orientation of the ellipse are defined by two radii (rx, ry)
+ // and an x-axis-rotation, which indicates how the ellipse as a whole
+ // is rotated relative to the current coordinate system. The center
+ // (cx, cy) of the ellipse is calculated automatically to satisfy the
+ // constraints imposed by the other parameters.
+ // large-arc-flag and sweep-flag contribute to the automatic calculations
+ // and help determine how the arc is drawn.
+ class bezier_arc_svg
+ {
+ public:
+ //--------------------------------------------------------------------
+ bezier_arc_svg() : m_arc(), m_radii_ok(false) {}
+
+ bezier_arc_svg(double x1, double y1,
+ double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double x2, double y2) :
+ m_arc(), m_radii_ok(false)
+ {
+ init(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2);
+ }
+
+ //--------------------------------------------------------------------
+ void init(double x1, double y1,
+ double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double x2, double y2);
+
+ //--------------------------------------------------------------------
+ bool radii_ok() const { return m_radii_ok; }
+
+ //--------------------------------------------------------------------
+ void rewind(unsigned)
+ {
+ m_arc.rewind(0);
+ }
+
+ //--------------------------------------------------------------------
+ unsigned vertex(double* x, double* y)
+ {
+ return m_arc.vertex(x, y);
+ }
+
+ // Supplemantary functions. num_vertices() actually returns doubled
+ // number of vertices. That is, for 1 vertex it returns 2.
+ //--------------------------------------------------------------------
+ unsigned num_vertices() const { return m_arc.num_vertices(); }
+ const double* vertices() const { return m_arc.vertices(); }
+ double* vertices() { return m_arc.vertices(); }
+
+ private:
+ bezier_arc m_arc;
+ bool m_radii_ok;
+ };
+
+
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_bitset_iterator.h b/agg/inc/agg_bitset_iterator.h
new file mode 100755
index 000000000000..543432b65d54
--- /dev/null
+++ b/agg/inc/agg_bitset_iterator.h
@@ -0,0 +1,54 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_BITSET_ITERATOR_INCLUDED
+#define AGG_BITSET_ITERATOR_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ class bitset_iterator
+ {
+ public:
+ bitset_iterator(const int8u* bits, unsigned offset = 0) :
+ m_bits(bits + (offset >> 3)),
+ m_mask(0x80 >> (offset & 7))
+ {}
+
+ void operator ++ ()
+ {
+ m_mask >>= 1;
+ if(m_mask == 0)
+ {
+ ++m_bits;
+ m_mask = 0x80;
+ }
+ }
+
+ unsigned bit() const
+ {
+ return (*m_bits) & m_mask;
+ }
+
+ private:
+ const int8u* m_bits;
+ int8u m_mask;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_bounding_rect.h b/agg/inc/agg_bounding_rect.h
new file mode 100755
index 000000000000..9a3c301069d7
--- /dev/null
+++ b/agg/inc/agg_bounding_rect.h
@@ -0,0 +1,116 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// bounding_rect function template
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_BOUNDING_RECT_INCLUDED
+#define AGG_BOUNDING_RECT_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //-----------------------------------------------------------bounding_rect
+ template<class VertexSource, class GetId, class CoordT>
+ bool bounding_rect(VertexSource& vs, GetId& gi,
+ unsigned start, unsigned num,
+ CoordT* x1, CoordT* y1, CoordT* x2, CoordT* y2)
+ {
+ unsigned i;
+ double x;
+ double y;
+ bool first = true;
+
+ *x1 = CoordT(1);
+ *y1 = CoordT(1);
+ *x2 = CoordT(0);
+ *y2 = CoordT(0);
+
+ for(i = 0; i < num; i++)
+ {
+ vs.rewind(gi[start + i]);
+ unsigned cmd;
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ if(is_vertex(cmd))
+ {
+ if(first)
+ {
+ *x1 = CoordT(x);
+ *y1 = CoordT(y);
+ *x2 = CoordT(x);
+ *y2 = CoordT(y);
+ first = false;
+ }
+ else
+ {
+ if(CoordT(x) < *x1) *x1 = CoordT(x);
+ if(CoordT(y) < *y1) *y1 = CoordT(y);
+ if(CoordT(x) > *x2) *x2 = CoordT(x);
+ if(CoordT(y) > *y2) *y2 = CoordT(y);
+ }
+ }
+ }
+ }
+ return *x1 <= *x2 && *y1 <= *y2;
+ }
+
+
+ //-----------------------------------------------------bounding_rect_single
+ template<class VertexSource, class CoordT>
+ bool bounding_rect_single(VertexSource& vs, unsigned path_id,
+ CoordT* x1, CoordT* y1, CoordT* x2, CoordT* y2)
+ {
+ double x;
+ double y;
+ bool first = true;
+
+ *x1 = CoordT(1);
+ *y1 = CoordT(1);
+ *x2 = CoordT(0);
+ *y2 = CoordT(0);
+
+ vs.rewind(path_id);
+ unsigned cmd;
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ if(is_vertex(cmd))
+ {
+ if(first)
+ {
+ *x1 = CoordT(x);
+ *y1 = CoordT(y);
+ *x2 = CoordT(x);
+ *y2 = CoordT(y);
+ first = false;
+ }
+ else
+ {
+ if(CoordT(x) < *x1) *x1 = CoordT(x);
+ if(CoordT(y) < *y1) *y1 = CoordT(y);
+ if(CoordT(x) > *x2) *x2 = CoordT(x);
+ if(CoordT(y) > *y2) *y2 = CoordT(y);
+ }
+ }
+ }
+ return *x1 <= *x2 && *y1 <= *y2;
+ }
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_bspline.h b/agg/inc/agg_bspline.h
new file mode 100755
index 000000000000..ca58fa839b44
--- /dev/null
+++ b/agg/inc/agg_bspline.h
@@ -0,0 +1,77 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class bspline
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_BSPLINE_INCLUDED
+#define AGG_BSPLINE_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //----------------------------------------------------------------bspline
+ // A very simple class of Bi-cubic Spline interpolation.
+ // First call init(num, x[], y[]) where num - number of source points,
+ // x, y - arrays of X and Y values respectively. Here Y must be a function
+ // of X. It means that all the X-coordinates must be arranged in the ascending
+ // order.
+ // Then call get(x) that calculates a value Y for the respective X.
+ // The class supports extrapolation, i.e. you can call get(x) where x is
+ // outside the given with init() X-range. Extrapolation is a simple linear
+ // function.
+ //
+ // See Implementation agg_bspline.cpp
+ //------------------------------------------------------------------------
+ class bspline
+ {
+ public:
+ ~bspline();
+ bspline();
+ bspline(int num);
+ bspline(int num, const double* x, const double* y);
+
+ void init(int num);
+ void add_point(double x, double y);
+ void prepare();
+
+ void init(int num, const double* x, const double* y);
+
+ double get(double x) const;
+ double get_stateful(double x) const;
+
+ private:
+ bspline(const bspline&);
+ const bspline& operator = (const bspline&);
+
+ static void bsearch(int n, const double *x, double x0, int *i);
+ double extrapolation_left(double x) const;
+ double extrapolation_right(double x) const;
+ double interpolation(double x, int i) const;
+
+ int m_max;
+ int m_num;
+ double* m_x;
+ double* m_y;
+ double* m_am;
+ mutable int m_last_idx;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_clip_liang_barsky.h b/agg/inc/agg_clip_liang_barsky.h
new file mode 100755
index 000000000000..e229d52bc6e9
--- /dev/null
+++ b/agg/inc/agg_clip_liang_barsky.h
@@ -0,0 +1,209 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Liang-Barsky clipping
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CLIP_LIANG_BARSKY_INCLUDED
+#define AGG_CLIP_LIANG_BARSKY_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //----------------------------------------------------------clipping_flags
+ // Determine the clipping code of the vertex according to the
+ // Cyrus-Beck line clipping algorithm
+ //
+ // | |
+ // 0110 | 0010 | 0011
+ // | |
+ // -------+--------+-------- clip_box.y2
+ // | |
+ // 0100 | 0000 | 0001
+ // | |
+ // -------+--------+-------- clip_box.y1
+ // | |
+ // 1100 | 1000 | 1001
+ // | |
+ // clip_box.x1 clip_box.x2
+ //
+ //
+ template<class T>
+ inline unsigned clipping_flags(T x, T y, const rect_base<T>& clip_box)
+ {
+ return (x > clip_box.x2) |
+ ((y > clip_box.y2) << 1) |
+ ((x < clip_box.x1) << 2) |
+ ((y < clip_box.y1) << 3);
+ }
+
+
+
+ //-------------------------------------------------------clip_liang_barsky
+ template<class T>
+ /*inline*/ unsigned clip_liang_barsky(T x1, T y1, T x2, T y2,
+ const rect_base<T>& clip_box,
+ T* x, T* y)
+ {
+ const double nearzero = 1e-30;
+
+ double deltax = x2 - x1;
+ double deltay = y2 - y1;
+ double xin;
+ double xout;
+ double yin;
+ double yout;
+ double tinx;
+ double tiny;
+ double toutx;
+ double touty;
+ double tin1;
+ double tin2;
+ double tout1;
+ unsigned np = 0;
+
+ if(deltax == 0.0)
+ {
+ // bump off of the vertical
+ deltax = (x1 > clip_box.x1) ? -nearzero : nearzero;
+ }
+
+ if(deltay == 0.0)
+ {
+ // bump off of the horizontal
+ deltay = (y1 > clip_box.y1) ? -nearzero : nearzero;
+ }
+
+ if(deltax > 0.0)
+ {
+ // points to right
+ xin = clip_box.x1;
+ xout = clip_box.x2;
+ }
+ else
+ {
+ xin = clip_box.x2;
+ xout = clip_box.x1;
+ }
+
+ if(deltay > 0.0)
+ {
+ // points up
+ yin = clip_box.y1;
+ yout = clip_box.y2;
+ }
+ else
+ {
+ yin = clip_box.y2;
+ yout = clip_box.y1;
+ }
+
+ tinx = (xin - x1) / deltax;
+ tiny = (yin - y1) / deltay;
+
+ if (tinx < tiny)
+ {
+ // hits x first
+ tin1 = tinx;
+ tin2 = tiny;
+ }
+ else
+ {
+ // hits y first
+ tin1 = tiny;
+ tin2 = tinx;
+ }
+
+ if(tin1 <= 1.0)
+ {
+ if(0.0 < tin1)
+ {
+ *x++ = (T)xin;
+ *y++ = (T)yin;
+ ++np;
+ }
+
+ if(tin2 <= 1.0)
+ {
+ toutx = (xout - x1) / deltax;
+ touty = (yout - y1) / deltay;
+
+ tout1 = (toutx < touty) ? toutx : touty;
+
+ if(tin2 > 0.0 || tout1 > 0.0)
+ {
+ if(tin2 <= tout1)
+ {
+ if(tin2 > 0.0)
+ {
+ if(tinx > tiny)
+ {
+ *x++ = (T)xin;
+ *y++ = (T)(y1 + tinx * deltay);
+ }
+ else
+ {
+ *x++ = (T)(x1 + tiny * deltax);
+ *y++ = (T)yin;
+ }
+ ++np;
+ }
+
+ if(tout1 < 1.0)
+ {
+ if(toutx < touty)
+ {
+ *x++ = (T)xout;
+ *y++ = (T)(y1 + toutx * deltay);
+ }
+ else
+ {
+ *x++ = (T)(x1 + touty * deltax);
+ *y++ = (T)yout;
+ }
+ }
+ else
+ {
+ *x++ = x2;
+ *y++ = y2;
+ }
+ ++np;
+ }
+ else
+ {
+ if(tinx > tiny)
+ {
+ *x++ = (T)xin;
+ *y++ = (T)yout;
+ }
+ else
+ {
+ *x++ = (T)xout;
+ *y++ = (T)yin;
+ }
+ ++np;
+ }
+ }
+ }
+ }
+ return np;
+ }
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_color_gray.h b/agg/inc/agg_color_gray.h
new file mode 100755
index 000000000000..1d0ffd8e773d
--- /dev/null
+++ b/agg/inc/agg_color_gray.h
@@ -0,0 +1,364 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+//
+// color types gray8, gray16
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_COLOR_GRAY_INCLUDED
+#define AGG_COLOR_GRAY_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+
+namespace agg
+{
+
+ //===================================================================gray8
+ struct gray8
+ {
+ typedef int8u value_type;
+ typedef int32u calc_type;
+ typedef int32 long_type;
+ enum
+ {
+ base_shift = 8,
+ base_size = 1 << base_shift,
+ base_mask = base_size - 1
+ };
+ typedef gray8 self_type;
+
+ value_type v;
+ value_type a;
+
+ //--------------------------------------------------------------------
+ gray8() {}
+
+ //--------------------------------------------------------------------
+ gray8(unsigned v_, unsigned a_=base_mask) :
+ v(int8u(v_)), a(int8u(a_)) {}
+
+ //--------------------------------------------------------------------
+ gray8(const self_type& c, unsigned a_) :
+ v(c.v), a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ gray8(const rgba& c) :
+ v(value_type((0.299*c.r + 0.587*c.g + 0.114*c.b) * double(base_mask) + 0.5)),
+ a(value_type(c.a * double(base_mask))) {}
+
+ //--------------------------------------------------------------------
+ gray8(const rgba& c, double a_) :
+ v(value_type((0.299*c.r + 0.587*c.g + 0.114*c.b) * double(base_mask) + 0.5)),
+ a(value_type(a_ * double(base_mask))) {}
+
+ //--------------------------------------------------------------------
+ gray8(const rgba8& c) :
+ v((c.r*77 + c.g*150 + c.b*29) >> 8),
+ a(c.a) {}
+
+ //--------------------------------------------------------------------
+ gray8(const rgba8& c, unsigned a_) :
+ v((c.r*77 + c.g*150 + c.b*29) >> 8),
+ a(a_) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ v = a = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& transparent()
+ {
+ a = 0;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ void opacity(double a_)
+ {
+ if(a_ < 0.0) a_ = 0.0;
+ if(a_ > 1.0) a_ = 1.0;
+ a = value_type(a_ * double(base_mask));
+ }
+
+ //--------------------------------------------------------------------
+ double opacity() const
+ {
+ return double(a) / double(base_mask);
+ }
+
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ v = 0;
+ return *this;
+ }
+ v = value_type((calc_type(v) * a) >> base_shift);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply(unsigned a_)
+ {
+ if(a == base_mask && a_ >= base_mask) return *this;
+ if(a == 0 || a_ == 0)
+ {
+ v = a = 0;
+ return *this;
+ }
+ calc_type v_ = (calc_type(v) * a_) / a;
+ v = value_type((v_ > a_) ? a_ : v_);
+ a = value_type(a_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& demultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ v = 0;
+ return *this;
+ }
+ calc_type v_ = (calc_type(v) * base_mask) / a;
+ v = value_type((v_ > base_mask) ? base_mask : v_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ self_type gradient(self_type c, double k) const
+ {
+ self_type ret;
+ calc_type ik = calc_type(k * base_size);
+ ret.v = value_type(calc_type(v) + (((calc_type(c.v) - v) * ik) >> base_shift));
+ ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+ return ret;
+ }
+
+ //--------------------------------------------------------------------
+ static self_type no_color() { return self_type(0,0); }
+ };
+
+
+ //-------------------------------------------------------------gray8_pre
+ inline gray8 gray8_pre(unsigned v, unsigned a = gray8::base_mask)
+ {
+ return gray8(v,a).premultiply();
+ }
+ inline gray8 gray8_pre(const gray8& c, unsigned a)
+ {
+ return gray8(c,a).premultiply();
+ }
+ inline gray8 gray8_pre(const rgba& c)
+ {
+ return gray8(c).premultiply();
+ }
+ inline gray8 gray8_pre(const rgba& c, double a)
+ {
+ return gray8(c,a).premultiply();
+ }
+ inline gray8 gray8_pre(const rgba8& c)
+ {
+ return gray8(c).premultiply();
+ }
+ inline gray8 gray8_pre(const rgba8& c, unsigned a)
+ {
+ return gray8(c,a).premultiply();
+ }
+
+
+
+
+ //==================================================================gray16
+ struct gray16
+ {
+ typedef int16u value_type;
+ typedef int32u calc_type;
+ typedef int64 long_type;
+ enum
+ {
+ base_shift = 16,
+ base_size = 1 << base_shift,
+ base_mask = base_size - 1
+ };
+ typedef gray16 self_type;
+
+ value_type v;
+ value_type a;
+
+ //--------------------------------------------------------------------
+ gray16() {}
+
+ //--------------------------------------------------------------------
+ gray16(unsigned v_, unsigned a_=base_mask) :
+ v(int16u(v_)), a(int16u(a_)) {}
+
+ //--------------------------------------------------------------------
+ gray16(const self_type& c, unsigned a_) :
+ v(c.v), a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ gray16(const rgba& c) :
+ v(value_type((0.299*c.r + 0.587*c.g + 0.114*c.b) * double(base_mask) + 0.5)),
+ a(value_type(c.a * double(base_mask))) {}
+
+ //--------------------------------------------------------------------
+ gray16(const rgba& c, double a_) :
+ v(value_type((0.299*c.r + 0.587*c.g + 0.114*c.b) * double(base_mask) + 0.5)),
+ a(value_type(a_ * double(base_mask))) {}
+
+ //--------------------------------------------------------------------
+ gray16(const rgba8& c) :
+ v(c.r*77 + c.g*150 + c.b*29),
+ a((value_type(c.a) << 8) | c.a) {}
+
+ //--------------------------------------------------------------------
+ gray16(const rgba8& c, unsigned a_) :
+ v(c.r*77 + c.g*150 + c.b*29),
+ a((value_type(a_) << 8) | c.a) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ v = a = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& transparent()
+ {
+ a = 0;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ void opacity(double a_)
+ {
+ if(a_ < 0.0) a_ = 0.0;
+ if(a_ > 1.0) a_ = 1.0;
+ a = value_type(a_ * double(base_mask));
+ }
+
+ //--------------------------------------------------------------------
+ double opacity() const
+ {
+ return double(a) / double(base_mask);
+ }
+
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ v = 0;
+ return *this;
+ }
+ v = value_type((calc_type(v) * a) >> base_shift);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply(unsigned a_)
+ {
+ if(a == base_mask && a_ >= base_mask) return *this;
+ if(a == 0 || a_ == 0)
+ {
+ v = a = 0;
+ return *this;
+ }
+ calc_type v_ = (calc_type(v) * a_) / a;
+ v = value_type((v_ > a_) ? a_ : v_);
+ a = value_type(a_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& demultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ v = 0;
+ return *this;
+ }
+ calc_type v_ = (calc_type(v) * base_mask) / a;
+ v = value_type((v_ > base_mask) ? base_mask : v_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ self_type gradient(self_type c, double k) const
+ {
+ self_type ret;
+ calc_type ik = calc_type(k * base_size);
+ ret.v = value_type(calc_type(v) + (((calc_type(c.v) - v) * ik) >> base_shift));
+ ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+ return ret;
+ }
+
+ //--------------------------------------------------------------------
+ static self_type no_color() { return self_type(0,0); }
+ };
+
+
+ //------------------------------------------------------------gray16_pre
+ inline gray16 gray16_pre(unsigned v, unsigned a = gray16::base_mask)
+ {
+ return gray16(v,a).premultiply();
+ }
+ inline gray16 gray16_pre(const gray16& c, unsigned a)
+ {
+ return gray16(c,a).premultiply();
+ }
+ inline gray16 gray16_pre(const rgba& c)
+ {
+ return gray16(c).premultiply();
+ }
+ inline gray16 gray16_pre(const rgba& c, double a)
+ {
+ return gray16(c,a).premultiply();
+ }
+ inline gray16 gray16_pre(const rgba8& c)
+ {
+ return gray16(c).premultiply();
+ }
+ inline gray16 gray16_pre(const rgba8& c, unsigned a)
+ {
+ return gray16(c,a).premultiply();
+ }
+
+
+}
+
+
+
+
+#endif
diff --git a/agg/inc/agg_color_rgba.h b/agg/inc/agg_color_rgba.h
new file mode 100755
index 000000000000..e1f77206cc66
--- /dev/null
+++ b/agg/inc/agg_color_rgba.h
@@ -0,0 +1,618 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_COLOR_RGBA_INCLUDED
+#define AGG_COLOR_RGBA_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+ // Supported byte orders for RGB and RGBA pixel formats
+ //=======================================================================
+ struct order_rgb { enum { R=0, G=1, B=2, rgb_tag }; }; //----order_rgb
+ struct order_bgr { enum { B=0, G=1, R=2, rgb_tag }; }; //----order_bgr
+ struct order_rgba { enum { R=0, G=1, B=2, A=3, rgba_tag }; }; //----order_rgba
+ struct order_argb { enum { A=0, R=1, G=2, B=3, rgba_tag }; }; //----order_argb
+ struct order_abgr { enum { A=0, B=1, G=2, R=3, rgba_tag }; }; //----order_abgr
+ struct order_bgra { enum { B=0, G=1, R=2, A=3, rgba_tag }; }; //----order_bgra
+
+ //====================================================================rgba
+ struct rgba
+ {
+ typedef double value_type;
+
+ double r;
+ double g;
+ double b;
+ double a;
+
+ //--------------------------------------------------------------------
+ rgba() {}
+
+ //--------------------------------------------------------------------
+ rgba(double r_, double g_, double b_, double a_=1.0) :
+ r(r_), g(g_), b(b_), a(a_) {}
+
+ //--------------------------------------------------------------------
+ rgba(const rgba& c, double a_) : r(c.r), g(c.g), b(c.b), a(a_) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ r = g = b = a = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const rgba& transparent()
+ {
+ a = 0.0;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const rgba& opacity(double a_)
+ {
+ if(a_ < 0.0) a_ = 0.0;
+ if(a_ > 1.0) a_ = 1.0;
+ a = a_;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ double opacity() const
+ {
+ return a;
+ }
+
+ //--------------------------------------------------------------------
+ const rgba& premultiply()
+ {
+ r *= a;
+ g *= a;
+ b *= a;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const rgba& premultiply(double a_)
+ {
+ if(a <= 0.0 || a_ <= 0.0)
+ {
+ r = g = b = a = 0.0;
+ return *this;
+ }
+ a_ /= a;
+ r *= a_;
+ g *= a_;
+ b *= a_;
+ a = a_;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const rgba& demultiply()
+ {
+ if(a == 0)
+ {
+ r = g = b = 0;
+ return *this;
+ }
+ double a_ = 1.0 / a;
+ r *= a_;
+ g *= a_;
+ b *= a_;
+ return *this;
+ }
+
+
+ //--------------------------------------------------------------------
+ rgba gradient(rgba c, double k) const
+ {
+ rgba ret;
+ ret.r = r + (c.r - r) * k;
+ ret.g = g + (c.g - g) * k;
+ ret.b = b + (c.b - b) * k;
+ ret.a = a + (c.a - a) * k;
+ return ret;
+ }
+
+ //--------------------------------------------------------------------
+ static rgba no_color() { return rgba(0,0,0,0); }
+
+ //--------------------------------------------------------------------
+ static rgba from_wavelength(double wl, double gamma = 1.0);
+
+ //--------------------------------------------------------------------
+ rgba(double wavelen, double gamma=1.0)
+ {
+ *this = from_wavelength(wavelen, gamma);
+ }
+
+ };
+
+ //----------------------------------------------------------------rgba_pre
+ inline rgba rgba_pre(double r, double g, double b, double a=1.0)
+ {
+ return rgba(r, g, b, a).premultiply();
+ }
+ inline rgba rgba_pre(const rgba& c)
+ {
+ return rgba(c).premultiply();
+ }
+ inline rgba rgba_pre(const rgba& c, double a)
+ {
+ return rgba(c, a).premultiply();
+ }
+
+ //------------------------------------------------------------------------
+ inline rgba rgba::from_wavelength(double wl, double gamma)
+ {
+ rgba t(0.0, 0.0, 0.0);
+
+ if(wl >= 380.0 && wl <= 440.0)
+ {
+ t.r = -1.0 * (wl - 440.0) / (440.0 - 380.0);
+ t.b = 1.0;
+ }
+ else
+ if(wl >= 440.0 && wl <= 490.0)
+ {
+ t.g = (wl - 440.0) / (490.0 - 440.0);
+ t.b = 1.0;
+ }
+ else
+ if(wl >= 490.0 && wl <= 510.0)
+ {
+ t.g = 1.0;
+ t.b = -1.0 * (wl - 510.0) / (510.0 - 490.0);
+ }
+ else
+ if(wl >= 510.0 && wl <= 580.0)
+ {
+ t.r = (wl - 510.0) / (580.0 - 510.0);
+ t.g = 1.0;
+ }
+ else
+ if(wl >= 580.0 && wl <= 645.0)
+ {
+ t.r = 1.0;
+ t.g = -1.0 * (wl - 645.0) / (645.0 - 580.0);
+ }
+ else
+ if(wl >= 645.0 && wl <= 780.0)
+ {
+ t.r = 1.0;
+ }
+
+ double s = 1.0;
+ if(wl > 700.0) s = 0.3 + 0.7 * (780.0 - wl) / (780.0 - 700.0);
+ else if(wl < 420.0) s = 0.3 + 0.7 * (wl - 380.0) / (420.0 - 380.0);
+
+ t.r = pow(t.r * s, gamma);
+ t.g = pow(t.g * s, gamma);
+ t.b = pow(t.b * s, gamma);
+ return t;
+ }
+
+
+
+
+ //===================================================================rgba8
+ struct rgba8
+ {
+ typedef int8u value_type;
+ typedef int32u calc_type;
+ typedef int32 long_type;
+ enum
+ {
+ base_shift = 8,
+ base_size = 1 << base_shift,
+ base_mask = base_size - 1
+ };
+ typedef rgba8 self_type;
+
+
+ value_type r;
+ value_type g;
+ value_type b;
+ value_type a;
+
+ //--------------------------------------------------------------------
+ rgba8() {}
+
+ //--------------------------------------------------------------------
+ rgba8(unsigned r_, unsigned g_, unsigned b_, unsigned a_=base_mask) :
+ r(value_type(r_)),
+ g(value_type(g_)),
+ b(value_type(b_)),
+ a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ rgba8(const rgba& c, double a_) :
+ r(value_type(c.r * double(base_mask) + 0.5)),
+ g(value_type(c.g * double(base_mask) + 0.5)),
+ b(value_type(c.b * double(base_mask) + 0.5)),
+ a(value_type(a_ * double(base_mask) + 0.5)) {}
+
+ //--------------------------------------------------------------------
+ rgba8(const self_type& c, unsigned a_) :
+ r(c.r), g(c.g), b(c.b), a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ rgba8(const rgba& c) :
+ r(value_type(c.r * double(base_mask) + 0.5)),
+ g(value_type(c.g * double(base_mask) + 0.5)),
+ b(value_type(c.b * double(base_mask) + 0.5)),
+ a(value_type(c.a * double(base_mask) + 0.5)) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ r = g = b = a = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& transparent()
+ {
+ a = 0;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& opacity(double a_)
+ {
+ if(a_ < 0.0) a_ = 0.0;
+ if(a_ > 1.0) a_ = 1.0;
+ a = value_type(a_ * double(base_mask) + 0.5);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ double opacity() const
+ {
+ return double(a) / double(base_mask);
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ r = g = b = 0;
+ return *this;
+ }
+ r = value_type((calc_type(r) * a) >> base_shift);
+ g = value_type((calc_type(g) * a) >> base_shift);
+ b = value_type((calc_type(b) * a) >> base_shift);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply(unsigned a_)
+ {
+ if(a == base_mask && a_ >= base_mask) return *this;
+ if(a == 0 || a_ == 0)
+ {
+ r = g = b = a = 0;
+ return *this;
+ }
+ calc_type r_ = (calc_type(r) * a_) / a;
+ calc_type g_ = (calc_type(g) * a_) / a;
+ calc_type b_ = (calc_type(b) * a_) / a;
+ r = value_type((r_ > a_) ? a_ : r_);
+ g = value_type((g_ > a_) ? a_ : g_);
+ b = value_type((b_ > a_) ? a_ : b_);
+ a = value_type(a_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& demultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ r = g = b = 0;
+ return *this;
+ }
+ calc_type r_ = (calc_type(r) * base_mask) / a;
+ calc_type g_ = (calc_type(g) * base_mask) / a;
+ calc_type b_ = (calc_type(b) * base_mask) / a;
+ r = value_type((r_ > base_mask) ? base_mask : r_);
+ g = value_type((g_ > base_mask) ? base_mask : g_);
+ b = value_type((b_ > base_mask) ? base_mask : b_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ self_type gradient(const self_type& c, double k) const
+ {
+ self_type ret;
+ calc_type ik = calc_type(k * base_size);
+ ret.r = value_type(calc_type(r) + (((calc_type(c.r) - r) * ik) >> base_shift));
+ ret.g = value_type(calc_type(g) + (((calc_type(c.g) - g) * ik) >> base_shift));
+ ret.b = value_type(calc_type(b) + (((calc_type(c.b) - b) * ik) >> base_shift));
+ ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+ return ret;
+ }
+
+ //--------------------------------------------------------------------
+ static self_type no_color() { return self_type(0,0,0,0); }
+
+ //--------------------------------------------------------------------
+ static self_type from_wavelength(double wl, double gamma = 1.0)
+ {
+ return self_type(rgba::from_wavelength(wl, gamma));
+ }
+ };
+
+
+ //-------------------------------------------------------------rgba8_pre
+ inline rgba8 rgba8_pre(unsigned r, unsigned g, unsigned b,
+ unsigned a = rgba8::base_mask)
+ {
+ return rgba8(r,g,b,a).premultiply();
+ }
+ inline rgba8 rgba8_pre(const rgba8& c)
+ {
+ return rgba8(c).premultiply();
+ }
+ inline rgba8 rgba8_pre(const rgba8& c, unsigned a)
+ {
+ return rgba8(c,a).premultiply();
+ }
+ inline rgba8 rgba8_pre(const rgba& c)
+ {
+ return rgba8(c).premultiply();
+ }
+ inline rgba8 rgba8_pre(const rgba& c, double a)
+ {
+ return rgba8(c,a).premultiply();
+ }
+
+
+ //-----------------------------------------------------------rgb8_packed
+ inline rgba8 rgb8_packed(unsigned v)
+ {
+ return rgba8((v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF);
+ }
+
+ //-----------------------------------------------------------bgr8_packed
+ inline rgba8 bgr8_packed(unsigned v)
+ {
+ return rgba8(v & 0xFF, (v >> 8) & 0xFF, (v >> 16) & 0xFF);
+ }
+
+ //----------------------------------------------------------argb8_packed
+ inline rgba8 argb8_packed(unsigned v)
+ {
+ return rgba8((v >> 16) & 0xFF, (v >> 8) & 0xFF, v & 0xFF, v >> 24);
+ }
+
+
+
+
+
+
+
+
+ //=================================================================rgba16
+ struct rgba16
+ {
+ typedef int16u value_type;
+ typedef int32u calc_type;
+ typedef int64 long_type;
+ enum
+ {
+ base_shift = 16,
+ base_size = 1 << base_shift,
+ base_mask = base_size - 1
+ };
+ typedef rgba16 self_type;
+
+ value_type r;
+ value_type g;
+ value_type b;
+ value_type a;
+
+ //--------------------------------------------------------------------
+ rgba16() {}
+
+ //--------------------------------------------------------------------
+ rgba16(unsigned r_, unsigned g_, unsigned b_, unsigned a_=base_mask) :
+ r(value_type(r_)),
+ g(value_type(g_)),
+ b(value_type(b_)),
+ a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ rgba16(const self_type& c, unsigned a_) :
+ r(c.r), g(c.g), b(c.b), a(value_type(a_)) {}
+
+ //--------------------------------------------------------------------
+ rgba16(const rgba& c) :
+ r(value_type(c.r * double(base_mask) + 0.5)),
+ g(value_type(c.g * double(base_mask) + 0.5)),
+ b(value_type(c.b * double(base_mask) + 0.5)),
+ a(value_type(c.a * double(base_mask) + 0.5)) {}
+
+ //--------------------------------------------------------------------
+ rgba16(const rgba& c, double a_) :
+ r(value_type(c.r * double(base_mask) + 0.5)),
+ g(value_type(c.g * double(base_mask) + 0.5)),
+ b(value_type(c.b * double(base_mask) + 0.5)),
+ a(value_type(a_ * double(base_mask) + 0.5)) {}
+
+ //--------------------------------------------------------------------
+ rgba16(const rgba8& c) :
+ r(value_type((value_type(c.r) << 8) | c.r)),
+ g(value_type((value_type(c.g) << 8) | c.g)),
+ b(value_type((value_type(c.b) << 8) | c.b)),
+ a(value_type((value_type(c.a) << 8) | c.a)) {}
+
+ //--------------------------------------------------------------------
+ rgba16(const rgba8& c, unsigned a_) :
+ r(value_type((value_type(c.r) << 8) | c.r)),
+ g(value_type((value_type(c.g) << 8) | c.g)),
+ b(value_type((value_type(c.b) << 8) | c.b)),
+ a(value_type(( a_ << 8) | c.a)) {}
+
+ //--------------------------------------------------------------------
+ void clear()
+ {
+ r = g = b = a = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& transparent()
+ {
+ a = 0;
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& opacity(double a_)
+ {
+ if(a_ < 0.0) a_ = 0.0;
+ if(a_ > 1.0) a_ = 1.0;
+ a = value_type(a_ * double(base_mask) + 0.5);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ double opacity() const
+ {
+ return double(a) / double(base_mask);
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ r = g = b = 0;
+ return *this;
+ }
+ r = value_type((calc_type(r) * a) >> base_shift);
+ g = value_type((calc_type(g) * a) >> base_shift);
+ b = value_type((calc_type(b) * a) >> base_shift);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& premultiply(unsigned a_)
+ {
+ if(a == base_mask && a_ >= base_mask) return *this;
+ if(a == 0 || a_ == 0)
+ {
+ r = g = b = a = 0;
+ return *this;
+ }
+ calc_type r_ = (calc_type(r) * a_) / a;
+ calc_type g_ = (calc_type(g) * a_) / a;
+ calc_type b_ = (calc_type(b) * a_) / a;
+ r = value_type((r_ > a_) ? a_ : r_);
+ g = value_type((g_ > a_) ? a_ : g_);
+ b = value_type((b_ > a_) ? a_ : b_);
+ a = value_type(a_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ const self_type& demultiply()
+ {
+ if(a == base_mask) return *this;
+ if(a == 0)
+ {
+ r = g = b = 0;
+ return *this;
+ }
+ calc_type r_ = (calc_type(r) * base_mask) / a;
+ calc_type g_ = (calc_type(g) * base_mask) / a;
+ calc_type b_ = (calc_type(b) * base_mask) / a;
+ r = value_type((r_ > base_mask) ? base_mask : r_);
+ g = value_type((g_ > base_mask) ? base_mask : g_);
+ b = value_type((b_ > base_mask) ? base_mask : b_);
+ return *this;
+ }
+
+ //--------------------------------------------------------------------
+ self_type gradient(const self_type& c, double k) const
+ {
+ self_type ret;
+ calc_type ik = calc_type(k * base_size);
+ ret.r = value_type(calc_type(r) + (((calc_type(c.r) - r) * ik) >> base_shift));
+ ret.g = value_type(calc_type(g) + (((calc_type(c.g) - g) * ik) >> base_shift));
+ ret.b = value_type(calc_type(b) + (((calc_type(c.b) - b) * ik) >> base_shift));
+ ret.a = value_type(calc_type(a) + (((calc_type(c.a) - a) * ik) >> base_shift));
+ return ret;
+ }
+
+ //--------------------------------------------------------------------
+ static self_type no_color() { return self_type(0,0,0,0); }
+
+ //--------------------------------------------------------------------
+ static self_type from_wavelength(double wl, double gamma = 1.0)
+ {
+ return self_type(rgba::from_wavelength(wl, gamma));
+ }
+ };
+
+
+
+ //--------------------------------------------------------------rgba16_pre
+ inline rgba16 rgba16_pre(unsigned r, unsigned g, unsigned b,
+ unsigned a = rgba16::base_mask)
+ {
+ return rgba16(r,g,b,a).premultiply();
+ }
+ inline rgba16 rgba16_pre(const rgba16& c, unsigned a)
+ {
+ return rgba16(c,a).premultiply();
+ }
+ inline rgba16 rgba16_pre(const rgba& c)
+ {
+ return rgba16(c).premultiply();
+ }
+ inline rgba16 rgba16_pre(const rgba& c, double a)
+ {
+ return rgba16(c,a).premultiply();
+ }
+ inline rgba16 rgba16_pre(const rgba8& c)
+ {
+ return rgba16(c).premultiply();
+ }
+ inline rgba16 rgba16_pre(const rgba8& c, unsigned a)
+ {
+ return rgba16(c,a).premultiply();
+ }
+
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_config.h b/agg/inc/agg_config.h
new file mode 100755
index 000000000000..b412a6dff178
--- /dev/null
+++ b/agg/inc/agg_config.h
@@ -0,0 +1,31 @@
+#ifndef AGG_CONFIG_INCLUDED
+#define AGG_CONFIG_INCLUDED
+
+// This file can be used to redefine the default basic types such as:
+//
+// AGG_INT8
+// AGG_INT8U
+// AGG_INT16
+// AGG_INT16U
+// AGG_INT32
+// AGG_INT32U
+// AGG_INT64
+// AGG_INT64U
+//
+// Just replace this file with new defines if necessary.
+// For example, if your compiler doesn't have a 64 bit integer type
+// you can still use AGG if you define the follows:
+//
+// #define AGG_INT64 int
+// #define AGG_INT64U unsigned
+//
+// It will result in overflow in 16 bit-per-component image/pattern resampling
+// but it won't result any crash and the rest of the library will remain
+// fully functional.
+
+// #i65318# Passing agg version on to clients
+#ifndef AGG_VERSION
+# define AGG_VERSION 2300
+#endif
+
+#endif
diff --git a/agg/inc/agg_conv_adaptor_vcgen.h b/agg/inc/agg_conv_adaptor_vcgen.h
new file mode 100755
index 000000000000..f8233a388357
--- /dev/null
+++ b/agg/inc/agg_conv_adaptor_vcgen.h
@@ -0,0 +1,169 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_ADAPTOR_VCGEN_INCLUDED
+#define AGG_CONV_ADAPTOR_VCGEN_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+ //------------------------------------------------------------null_markers
+ struct null_markers
+ {
+ void remove_all() {}
+ void add_vertex(double, double, unsigned) {}
+ void prepare_src() {}
+
+ void rewind(unsigned) {}
+ unsigned vertex(double*, double*) { return path_cmd_stop; }
+
+ typedef null_markers source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+ };
+
+
+ //------------------------------------------------------conv_adaptor_vcgen
+ template<class VertexSource,
+ class Generator,
+ class Markers=null_markers> class conv_adaptor_vcgen
+ {
+ enum status
+ {
+ initial,
+ accumulate,
+ generate
+ };
+
+ public:
+ conv_adaptor_vcgen(VertexSource& source) :
+ m_source(&source),
+ m_status(initial)
+ {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ Generator& generator() { return m_generator; }
+ const Generator& generator() const { return m_generator; }
+
+ Markers& markers() { return m_markers; }
+ const Markers& markers() const { return m_markers; }
+
+ void rewind(unsigned id)
+ {
+ m_source->rewind(id);
+ m_status = initial;
+ }
+
+ unsigned vertex(double* x, double* y);
+
+ typedef conv_adaptor_vcgen<VertexSource, Generator, Markers> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ // Prohibit copying
+ conv_adaptor_vcgen(const conv_adaptor_vcgen<VertexSource, Generator, Markers>&);
+ const conv_adaptor_vcgen<VertexSource, Generator, Markers>&
+ operator = (const conv_adaptor_vcgen<VertexSource, Generator, Markers>&);
+
+ VertexSource* m_source;
+ Generator m_generator;
+ Markers m_markers;
+ status m_status;
+ unsigned m_last_cmd;
+ double m_start_x;
+ double m_start_y;
+ };
+
+
+
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource, class Generator, class Markers>
+ unsigned conv_adaptor_vcgen<VertexSource, Generator, Markers>::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ bool done = false;
+ while(!done)
+ {
+ switch(m_status)
+ {
+ case initial:
+ m_markers.remove_all();
+ m_last_cmd = m_source->vertex(&m_start_x, &m_start_y);
+ m_status = accumulate;
+
+ case accumulate:
+ if(is_stop(m_last_cmd)) return path_cmd_stop;
+
+ m_generator.remove_all();
+ m_generator.add_vertex(m_start_x, m_start_y, path_cmd_move_to);
+ m_markers.add_vertex(m_start_x, m_start_y, path_cmd_move_to);
+
+ for(;;)
+ {
+ cmd = m_source->vertex(x, y);
+ if(is_vertex(cmd))
+ {
+ m_last_cmd = cmd;
+ if(is_move_to(cmd))
+ {
+ m_start_x = *x;
+ m_start_y = *y;
+ break;
+ }
+ m_generator.add_vertex(*x, *y, cmd);
+ m_markers.add_vertex(*x, *y, path_cmd_line_to);
+ }
+ else
+ {
+ if(is_stop(cmd))
+ {
+ m_last_cmd = path_cmd_stop;
+ break;
+ }
+ if(is_end_poly(cmd))
+ {
+ m_generator.add_vertex(*x, *y, cmd);
+ break;
+ }
+ }
+ }
+ m_generator.rewind(0);
+ m_status = generate;
+
+ case generate:
+ cmd = m_generator.vertex(x, y);
+ if(is_stop(cmd))
+ {
+ m_status = accumulate;
+ break;
+ }
+ done = true;
+ break;
+ }
+ }
+ return cmd;
+ }
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_adaptor_vpgen.h b/agg/inc/agg_conv_adaptor_vpgen.h
new file mode 100755
index 000000000000..f6afdb4d7f12
--- /dev/null
+++ b/agg/inc/agg_conv_adaptor_vpgen.h
@@ -0,0 +1,166 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_ADAPTOR_VPGEN_INCLUDED
+#define AGG_CONV_ADAPTOR_VPGEN_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //======================================================conv_adaptor_vpgen
+ template<class VertexSource, class VPGen> class conv_adaptor_vpgen
+ {
+ public:
+ conv_adaptor_vpgen(VertexSource& source) : m_source(&source) {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ VPGen& vpgen() { return m_vpgen; }
+ const VPGen& vpgen() const { return m_vpgen; }
+
+ void rewind(unsigned path_id);
+ unsigned vertex(double* x, double* y);
+
+ typedef conv_adaptor_vpgen<VertexSource, VPGen> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_adaptor_vpgen(const conv_adaptor_vpgen<VertexSource, VPGen>&);
+ const conv_adaptor_vpgen<VertexSource, VPGen>&
+ operator = (const conv_adaptor_vpgen<VertexSource, VPGen>&);
+
+ VertexSource* m_source;
+ VPGen m_vpgen;
+ double m_start_x;
+ double m_start_y;
+ unsigned m_poly_flags;
+ int m_vertices;
+ };
+
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource, class VPGen>
+ void conv_adaptor_vpgen<VertexSource, VPGen>::rewind(unsigned path_id)
+ {
+ m_source->rewind(path_id);
+ m_vpgen.reset();
+ m_start_x = 0;
+ m_start_y = 0;
+ m_poly_flags = 0;
+ m_vertices = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource, class VPGen>
+ unsigned conv_adaptor_vpgen<VertexSource, VPGen>::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ for(;;)
+ {
+ cmd = m_vpgen.vertex(x, y);
+ if(!is_stop(cmd)) break;
+
+ if(m_poly_flags && !m_vpgen.auto_unclose())
+ {
+ *x = 0.0;
+ *y = 0.0;
+ cmd = m_poly_flags;
+ m_poly_flags = 0;
+ break;
+ }
+
+ if(m_vertices < 0)
+ {
+ if(m_vertices < -1)
+ {
+ m_vertices = 0;
+ return path_cmd_stop;
+ }
+ m_vpgen.move_to(m_start_x, m_start_y);
+ m_vertices = 1;
+ continue;
+ }
+
+ double tx, ty;
+ cmd = m_source->vertex(&tx, &ty);
+ if(is_vertex(cmd))
+ {
+ if(is_move_to(cmd))
+ {
+ if(m_vpgen.auto_close() && m_vertices > 2)
+ {
+ m_vpgen.line_to(m_start_x, m_start_y);
+ m_poly_flags = path_cmd_end_poly | path_flags_close;
+ m_start_x = tx;
+ m_start_y = ty;
+ m_vertices = -1;
+ continue;
+ }
+ m_vpgen.move_to(tx, ty);
+ m_start_x = tx;
+ m_start_y = ty;
+ m_vertices = 1;
+ }
+ else
+ {
+ m_vpgen.line_to(tx, ty);
+ ++m_vertices;
+ }
+ }
+ else
+ {
+ if(is_end_poly(cmd))
+ {
+ m_poly_flags = cmd;
+ if(is_closed(cmd) || m_vpgen.auto_close())
+ {
+ if(m_vpgen.auto_close()) m_poly_flags |= path_flags_close;
+ if(m_vertices > 2)
+ {
+ m_vpgen.line_to(m_start_x, m_start_y);
+ }
+ m_vertices = 0;
+ }
+ }
+ else
+ {
+ // path_cmd_stop
+ if(m_vpgen.auto_close() && m_vertices > 2)
+ {
+ m_vpgen.line_to(m_start_x, m_start_y);
+ m_poly_flags = path_cmd_end_poly | path_flags_close;
+ m_vertices = -2;
+ continue;
+ }
+ break;
+ }
+ }
+ }
+ return cmd;
+ }
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_conv_bspline.h b/agg/inc/agg_conv_bspline.h
new file mode 100755
index 000000000000..9c504daff209
--- /dev/null
+++ b/agg/inc/agg_conv_bspline.h
@@ -0,0 +1,48 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_BSPLINE_INCLUDED
+#define AGG_CONV_BSPLINE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vcgen_bspline.h"
+#include "agg_conv_adaptor_vcgen.h"
+
+
+namespace agg
+{
+
+ //---------------------------------------------------------conv_bspline
+ template<class VertexSource>
+ struct conv_bspline : public conv_adaptor_vcgen<VertexSource, vcgen_bspline>
+ {
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_bspline> base_type;
+
+ conv_bspline(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_bspline>(vs) {}
+
+ void interpolation_step(double v) { base_type::generator().interpolation_step(v); }
+ double interpolation_step() const { return base_type::generator().interpolation_step(); }
+
+ private:
+ conv_bspline(const conv_bspline<VertexSource>&);
+ const conv_bspline<VertexSource>&
+ operator = (const conv_bspline<VertexSource>&);
+ };
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_conv_clip_polygon.h b/agg/inc/agg_conv_clip_polygon.h
new file mode 100755
index 000000000000..cbecc51fbdd5
--- /dev/null
+++ b/agg/inc/agg_conv_clip_polygon.h
@@ -0,0 +1,69 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Polygon clipping converter
+// There an optimized Liang-Basky algorithm is used.
+// The algorithm doesn't optimize the degenerate edges, i.e. it will never
+// break a closed polygon into two or more ones, instead, there will be
+// degenerate edges coinciding with the respective clipping boundaries.
+// This is a sub-optimal solution, because that optimization would require
+// extra, rather expensive math while the rasterizer tolerates it quite well,
+// without any considerable overhead.
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_CLIP_POLYGON_INCLUDED
+#define AGG_CONV_CLIP_POLYGON_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_adaptor_vpgen.h"
+#include "agg_vpgen_clip_polygon.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //=======================================================conv_clip_polygon
+ template<class VertexSource>
+ struct conv_clip_polygon : public conv_adaptor_vpgen<VertexSource, vpgen_clip_polygon>
+ {
+ typedef conv_adaptor_vpgen<VertexSource, vpgen_clip_polygon> base_type;
+
+ conv_clip_polygon(VertexSource& vs) :
+ conv_adaptor_vpgen<VertexSource, vpgen_clip_polygon>(vs) {}
+
+ void clip_box(double x1, double y1, double x2, double y2)
+ {
+ base_type::vpgen().clip_box(x1, y1, x2, y2);
+ }
+
+ double x1() const { return base_type::vpgen().x1(); }
+ double y1() const { return base_type::vpgen().y1(); }
+ double x2() const { return base_type::vpgen().x2(); }
+ double y2() const { return base_type::vpgen().y2(); }
+
+ typedef conv_clip_polygon<VertexSource> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_clip_polygon(const conv_clip_polygon<VertexSource>&);
+ const conv_clip_polygon<VertexSource>&
+ operator = (const conv_clip_polygon<VertexSource>&);
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_clip_polyline.h b/agg/inc/agg_conv_clip_polyline.h
new file mode 100755
index 000000000000..4ac66276891c
--- /dev/null
+++ b/agg/inc/agg_conv_clip_polyline.h
@@ -0,0 +1,69 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// polyline clipping converter
+// There an optimized Liang-Basky algorithm is used.
+// The algorithm doesn't optimize the degenerate edges, i.e. it will never
+// break a closed polyline into two or more ones, instead, there will be
+// degenerate edges coinciding with the respective clipping boundaries.
+// This is a sub-optimal solution, because that optimization would require
+// extra, rather expensive math while the rasterizer tolerates it quite well,
+// without any considerable overhead.
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_CLIP_polyline_INCLUDED
+#define AGG_CONV_CLIP_polyline_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_adaptor_vpgen.h"
+#include "agg_vpgen_clip_polyline.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //=======================================================conv_clip_polyline
+ template<class VertexSource>
+ struct conv_clip_polyline : public conv_adaptor_vpgen<VertexSource, vpgen_clip_polyline>
+ {
+ typedef conv_adaptor_vpgen<VertexSource, vpgen_clip_polyline> base_type;
+
+ conv_clip_polyline(VertexSource& vs) :
+ conv_adaptor_vpgen<VertexSource, vpgen_clip_polyline>(vs) {}
+
+ void clip_box(double x1, double y1, double x2, double y2)
+ {
+ base_type::vpgen().clip_box(x1, y1, x2, y2);
+ }
+
+ double x1() const { return base_type::vpgen().x1(); }
+ double y1() const { return base_type::vpgen().y1(); }
+ double x2() const { return base_type::vpgen().x2(); }
+ double y2() const { return base_type::vpgen().y2(); }
+
+ typedef conv_clip_polyline<VertexSource> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_clip_polyline(const conv_clip_polyline<VertexSource>&);
+ const conv_clip_polyline<VertexSource>&
+ operator = (const conv_clip_polyline<VertexSource>&);
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_close_polygon.h b/agg/inc/agg_conv_close_polygon.h
new file mode 100755
index 000000000000..60a756a7408a
--- /dev/null
+++ b/agg/inc/agg_conv_close_polygon.h
@@ -0,0 +1,132 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_CLOSE_POLYGON_INCLUDED
+#define AGG_CONV_CLOSE_POLYGON_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //======================================================conv_close_polygon
+ template<class VertexSource> class conv_close_polygon
+ {
+ public:
+ conv_close_polygon(VertexSource& vs) : m_source(&vs) {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ void rewind(unsigned path_id);
+ unsigned vertex(double* x, double* y);
+
+ typedef conv_close_polygon<VertexSource> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_close_polygon(const conv_close_polygon<VertexSource>&);
+ const conv_close_polygon<VertexSource>&
+ operator = (const conv_close_polygon<VertexSource>&);
+
+ VertexSource* m_source;
+ unsigned m_cmd[2];
+ double m_x[2];
+ double m_y[2];
+ unsigned m_vertex;
+ bool m_line_to;
+ };
+
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource>
+ void conv_close_polygon<VertexSource>::rewind(unsigned path_id)
+ {
+ m_source->rewind(path_id);
+ m_vertex = 2;
+ m_line_to = false;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource>
+ unsigned conv_close_polygon<VertexSource>::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ for(;;)
+ {
+ if(m_vertex < 2)
+ {
+ *x = m_x[m_vertex];
+ *y = m_y[m_vertex];
+ cmd = m_cmd[m_vertex];
+ ++m_vertex;
+ break;
+ }
+
+ cmd = m_source->vertex(x, y);
+
+ if(is_end_poly(cmd))
+ {
+ cmd |= path_flags_close;
+ break;
+ }
+
+ if(is_stop(cmd))
+ {
+ if(m_line_to)
+ {
+ m_cmd[0] = path_cmd_end_poly | path_flags_close;
+ m_cmd[1] = path_cmd_stop;
+ m_vertex = 0;
+ m_line_to = false;
+ continue;
+ }
+ break;
+ }
+
+ if(is_move_to(cmd))
+ {
+ if(m_line_to)
+ {
+ m_x[0] = 0.0;
+ m_y[0] = 0.0;
+ m_cmd[0] = path_cmd_end_poly | path_flags_close;
+ m_x[1] = *x;
+ m_y[1] = *y;
+ m_cmd[1] = cmd;
+ m_vertex = 0;
+ m_line_to = false;
+ continue;
+ }
+ break;
+ }
+
+ if(is_vertex(cmd))
+ {
+ m_line_to = true;
+ break;
+ }
+ }
+ return cmd;
+ }
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_concat.h b/agg/inc/agg_conv_concat.h
new file mode 100755
index 000000000000..2b9886a1be46
--- /dev/null
+++ b/agg/inc/agg_conv_concat.h
@@ -0,0 +1,80 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_CONCAT_INCLUDED
+#define AGG_CONV_CONCAT_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+ //=============================================================conv_concat
+ // Concatenation of two paths. Usually used to combine lines or curves
+ // with markers such as arrowheads
+ template<class VS1, class VS2> class conv_concat
+ {
+ public:
+ conv_concat(VS1& source1, VS2& source2) :
+ m_source1(&source1), m_source2(&source2), m_status(2) {}
+
+ void set_source1(VS1& source) { m_source1 = &source; }
+ void set_source2(VS2& source) { m_source2 = &source; }
+
+
+ void rewind(unsigned id)
+ {
+ m_source1->rewind(id);
+ m_source2->rewind(0);
+ m_status = 0;
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ unsigned cmd;
+ if(m_status == 0)
+ {
+ cmd = m_source1->vertex(x, y);
+ if(!is_stop(cmd)) return cmd;
+ m_status = 1;
+ }
+ if(m_status == 1)
+ {
+ cmd = m_source2->vertex(x, y);
+ if(!is_stop(cmd)) return cmd;
+ m_status = 2;
+ }
+ return path_cmd_stop;
+ }
+
+ typedef conv_concat<VS1, VS2> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_concat(const conv_concat<VS1, VS2>&);
+ const conv_concat<VS1, VS2>&
+ operator = (const conv_concat<VS1, VS2>&);
+
+ VS1* m_source1;
+ VS2* m_source2;
+ int m_status;
+
+ };
+}
+
+
+#endif
diff --git a/agg/inc/agg_conv_contour.h b/agg/inc/agg_conv_contour.h
new file mode 100755
index 000000000000..652a8e1fa4f3
--- /dev/null
+++ b/agg/inc/agg_conv_contour.h
@@ -0,0 +1,65 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// conv_stroke
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_CONTOUR_INCLUDED
+#define AGG_CONV_CONTOUR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vcgen_contour.h"
+#include "agg_conv_adaptor_vcgen.h"
+
+namespace agg
+{
+
+ //-----------------------------------------------------------conv_contour
+ template<class VertexSource>
+ struct conv_contour : public conv_adaptor_vcgen<VertexSource, vcgen_contour>
+ {
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_contour> base_type;
+
+ conv_contour(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_contour>(vs)
+ {
+ }
+
+ void line_join(line_join_e lj) { base_type::generator().line_join(lj); }
+ void inner_line_join(line_join_e lj) { base_type::generator().inner_line_join(lj); }
+ void width(double w) { base_type::generator().width(w); }
+ void miter_limit(double ml) { base_type::generator().miter_limit(ml); }
+ void miter_limit_theta(double t) { base_type::generator().miter_limit_theta(t); }
+ void inner_miter_limit(double ml) { base_type::generator().inner_miter_limit(ml); }
+ void approximation_scale(double as) { base_type::generator().approximation_scale(as); }
+ void auto_detect_orientation(bool v) { base_type::generator().auto_detect_orientation(v); }
+
+ line_join_e line_join() const { return base_type::generator().line_join(); }
+ line_join_e inner_line_join() const { return base_type::generator().inner_line_join(); }
+ double width() const { return base_type::generator().width(); }
+ double miter_limit() const { return base_type::generator().miter_limit(); }
+ double inner_miter_limit() const { return base_type::generator().inner_miter_limit(); }
+ double approximation_scale() const { return base_type::generator().approximation_scale(); }
+ bool auto_detect_orientation() const { return base_type::generator().auto_detect_orientation(); }
+
+ private:
+ conv_contour(const conv_contour<VertexSource>&);
+ const conv_contour<VertexSource>&
+ operator = (const conv_contour<VertexSource>&);
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_curve.h b/agg/inc/agg_conv_curve.h
new file mode 100755
index 000000000000..3b8e6cff2e2e
--- /dev/null
+++ b/agg/inc/agg_conv_curve.h
@@ -0,0 +1,174 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes conv_curve
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_CURVE_INCLUDED
+#define AGG_CONV_CURVE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_curves.h"
+
+namespace agg
+{
+
+
+ //---------------------------------------------------------------conv_curve
+ // Curve converter class. Any path storage can have Bezier curves defined
+ // by their control points. There're two types of curves supported: curve3
+ // and curve4. Curve3 is a conic Bezier curve with 2 endpoints and 1 control
+ // point. Curve4 has 2 control points (4 points in total) and can be used
+ // to interpolate more complicated curves. Curve4, unlike curve3 can be used
+ // to approximate arcs, both curcular and elliptical. Curves are approximated
+ // with straight lines and one of the approaches is just to store the whole
+ // sequence of vertices that approximate our curve. It takes additional
+ // memory, and at the same time the consecutive vertices can be calculated
+ // on demand.
+ //
+ // Initially, path storages are not suppose to keep all the vertices of the
+ // curves (although, nothig prevents us from doing so). Instead, path_storage
+ // keeps only vertices, needed to calculate a curve on demand. Those vertices
+ // are marked with special commands. So, if the path_storage contains curves
+ // (which are not real curves yet), and we render this storage directly,
+ // all we will see is only 2 or 3 straight line segments (for curve3 and
+ // curve4 respectively). If we need to see real curves drawn we need to
+ // include this class into the conversion pipeline.
+ //
+ // Class conv_curve recognizes commands path_cmd_curve3 and path_cmd_curve4
+ // and converts these vertices into a move_to/line_to sequence.
+ //-----------------------------------------------------------------------
+ template<class VertexSource> class conv_curve
+ {
+ public:
+ conv_curve(VertexSource& source) :
+ m_source(&source), m_last_x(0.0), m_last_y(0.0) {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ void approximation_scale(double s)
+ {
+ m_curve3.approximation_scale(s);
+ m_curve4.approximation_scale(s);
+ }
+
+ double approximation_scale() const
+ {
+ return m_curve3.approximation_scale();
+ }
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef conv_curve<VertexSource> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_curve(const conv_curve<VertexSource>&);
+ const conv_curve<VertexSource>&
+ operator = (const conv_curve<VertexSource>&);
+
+ VertexSource* m_source;
+ double m_last_x;
+ double m_last_y;
+ curve3 m_curve3;
+ curve4 m_curve4;
+ };
+
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource>
+ void conv_curve<VertexSource>::rewind(unsigned id)
+ {
+ m_source->rewind(id);
+ m_last_x = 0.0;
+ m_last_y = 0.0;
+ m_curve3.reset();
+ m_curve4.reset();
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource>
+ unsigned conv_curve<VertexSource>::vertex(double* x, double* y)
+ {
+ if(!is_stop(m_curve3.vertex(x, y)))
+ {
+ m_last_x = *x;
+ m_last_y = *y;
+ return path_cmd_line_to;
+ }
+
+ if(!is_stop(m_curve4.vertex(x, y)))
+ {
+ m_last_x = *x;
+ m_last_y = *y;
+ return path_cmd_line_to;
+ }
+
+ double ct2_x = 0;
+ double ct2_y = 0;
+ double end_x = 0;
+ double end_y = 0;
+
+ unsigned cmd = m_source->vertex(x, y);
+ switch(cmd)
+ {
+ case path_cmd_move_to:
+ case path_cmd_line_to:
+ m_last_x = *x;
+ m_last_y = *y;
+ default:
+ break;
+
+ case path_cmd_curve3:
+ m_source->vertex(&end_x, &end_y);
+
+ m_curve3.init(m_last_x, m_last_y,
+ *x, *y,
+ end_x, end_y);
+
+ m_curve3.vertex(x, y); // First call returns path_cmd_move_to
+ m_curve3.vertex(x, y); // This is the first vertex of the curve
+ cmd = path_cmd_line_to;
+ break;
+
+ case path_cmd_curve4:
+ m_source->vertex(&ct2_x, &ct2_y);
+ m_source->vertex(&end_x, &end_y);
+
+ m_curve4.init(m_last_x, m_last_y,
+ *x, *y,
+ ct2_x, ct2_y,
+ end_x, end_y);
+
+ m_curve4.vertex(x, y); // First call returns path_cmd_move_to
+ m_curve4.vertex(x, y); // This is the first vertex of the curve
+ cmd = path_cmd_line_to;
+ break;
+ }
+ return cmd;
+ }
+
+
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_conv_dash.h b/agg/inc/agg_conv_dash.h
new file mode 100755
index 000000000000..0520276bbb96
--- /dev/null
+++ b/agg/inc/agg_conv_dash.h
@@ -0,0 +1,68 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// conv_dash
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_DASH_INCLUDED
+#define AGG_CONV_DASH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vcgen_dash.h"
+#include "agg_conv_adaptor_vcgen.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------------conv_dash
+ template<class VertexSource, class Markers=null_markers>
+ struct conv_dash : public conv_adaptor_vcgen<VertexSource, vcgen_dash, Markers>
+ {
+ typedef Markers marker_type;
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_dash, Markers> base_type;
+
+ conv_dash(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_dash, Markers>(vs)
+ {
+ }
+
+ void remove_all_dashes()
+ {
+ base_type::generator().remove_all_dashes();
+ }
+
+ void add_dash(double dash_len, double gap_len)
+ {
+ base_type::generator().add_dash(dash_len, gap_len);
+ }
+
+ void dash_start(double ds)
+ {
+ base_type::generator().dash_start(ds);
+ }
+
+ void shorten(double s) { base_type::generator().shorten(s); }
+ double shorten() const { return base_type::generator().shorten(); }
+
+ private:
+ conv_dash(const conv_dash<VertexSource, Markers>&);
+ const conv_dash<VertexSource, Markers>&
+ operator = (const conv_dash<VertexSource, Markers>&);
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_gpc.h b/agg/inc/agg_conv_gpc.h
new file mode 100755
index 000000000000..1810309d208a
--- /dev/null
+++ b/agg/inc/agg_conv_gpc.h
@@ -0,0 +1,443 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// General Polygon Clipper based on the GPC library by Alan Murta
+// Union, Intersection, XOR, A-B, B-A
+// Contact the author if you intend to use it in commercial applications!
+// http://www.cs.man.ac.uk/aig/staff/alan/software/
+// Alan Murta (email: gpc@cs.man.ac.uk)
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_GPC_INCLUDED
+#define AGG_CONV_GPC_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+#include "agg_array.h"
+#include "agg_vertex_iterator.h"
+
+extern "C"
+{
+#include "gpc.h"
+}
+
+namespace agg
+{
+ enum gpc_op_e
+ {
+ gpc_or,
+ gpc_and,
+ gpc_xor,
+ gpc_a_minus_b,
+ gpc_b_minus_a
+ };
+
+
+ //================================================================conv_gpc
+ template<class VSA, class VSB> class conv_gpc
+ {
+ enum status
+ {
+ status_move_to,
+ status_line_to,
+ status_stop
+ };
+
+ struct contour_header_type
+ {
+ int num_vertices;
+ int hole_flag;
+ gpc_vertex* vertices;
+ };
+
+ typedef pod_deque<gpc_vertex, 8> vertex_array_type;
+ typedef pod_deque<contour_header_type, 6> contour_header_array_type;
+
+
+ public:
+ typedef VSA source_a_type;
+ typedef VSB source_b_type;
+ typedef conv_gpc<source_a_type, source_b_type> self_type;
+
+ ~conv_gpc()
+ {
+ free_gpc_data();
+ }
+
+ conv_gpc(source_a_type& a, source_b_type& b, gpc_op_e op = gpc_or) :
+ m_src_a(&a),
+ m_src_b(&b),
+ m_status(status_move_to),
+ m_vertex(-1),
+ m_contour(-1),
+ m_operation(op)
+ {
+ memset(&m_poly_a, 0, sizeof(m_poly_a));
+ memset(&m_poly_b, 0, sizeof(m_poly_b));
+ memset(&m_result, 0, sizeof(m_result));
+ }
+
+ void set_source1(VSA& source) { m_src_a = &source; }
+ void set_source2(VSB& source) { m_src_b = &source; }
+
+ void operation(gpc_op_e v) { m_operation = v; }
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ // Iterator
+ typedef vertex_iterator<self_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_gpc(const conv_gpc<VSA, VSB>&);
+ const conv_gpc<VSA, VSB>& operator = (const conv_gpc<VSA, VSB>&);
+
+ //--------------------------------------------------------------------
+ void free_polygon(gpc_polygon& p);
+ void free_result();
+ void free_gpc_data();
+ void start_contour();
+ void add_vertex(double x, double y);
+ void end_contour(unsigned orientation);
+ void make_polygon(gpc_polygon& p);
+ void start_extracting();
+ bool next_contour();
+ bool next_vertex(double* x, double* y);
+
+
+ //--------------------------------------------------------------------
+ template<class VS> void add(VS& src, gpc_polygon& p)
+ {
+ unsigned cmd;
+ double x, y;
+ double start_x = 0.0;
+ double start_y = 0.0;
+ bool line_to = false;
+ unsigned orientation = 0;
+
+ m_contour_accumulator.remove_all();
+
+ while(!is_stop(cmd = src.vertex(&x, &y)))
+ {
+ if(is_vertex(cmd))
+ {
+ if(is_move_to(cmd))
+ {
+ if(line_to)
+ {
+ end_contour(orientation);
+ orientation = 0;
+ }
+ start_contour();
+ start_x = x;
+ start_y = y;
+ }
+ add_vertex(x, y);
+ line_to = true;
+ }
+ else
+ {
+ if(is_end_poly(cmd))
+ {
+ orientation = get_orientation(cmd);
+ if(line_to && is_closed(cmd))
+ {
+ add_vertex(start_x, start_y);
+ }
+ }
+ }
+ }
+ if(line_to)
+ {
+ end_contour(orientation);
+ }
+ make_polygon(p);
+ }
+
+
+ private:
+ //--------------------------------------------------------------------
+ source_a_type* m_src_a;
+ source_b_type* m_src_b;
+ status m_status;
+ int m_vertex;
+ int m_contour;
+ gpc_op_e m_operation;
+ vertex_array_type m_vertex_accumulator;
+ contour_header_array_type m_contour_accumulator;
+ gpc_polygon m_poly_a;
+ gpc_polygon m_poly_b;
+ gpc_polygon m_result;
+ };
+
+
+
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::free_polygon(gpc_polygon& p)
+ {
+ int i;
+ for(i = 0; i < p.num_contours; i++)
+ {
+ delete [] p.contour[i].vertex;
+ }
+ delete [] p.hole;
+ delete [] p.contour;
+ memset(&p, 0, sizeof(gpc_polygon));
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::free_result()
+ {
+ if(m_result.contour)
+ {
+ gpc_free_polygon(&m_result);
+ }
+ memset(&m_result, 0, sizeof(m_result));
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::free_gpc_data()
+ {
+ free_polygon(m_poly_a);
+ free_polygon(m_poly_b);
+ free_result();
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::start_contour()
+ {
+ contour_header_type h;
+ memset(&h, 0, sizeof(h));
+ m_contour_accumulator.add(h);
+ m_vertex_accumulator.remove_all();
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ inline void conv_gpc<VSA, VSB>::add_vertex(double x, double y)
+ {
+ gpc_vertex v;
+ v.x = x;
+ v.y = y;
+ m_vertex_accumulator.add(v);
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::end_contour(unsigned orientation)
+ {
+ if(m_contour_accumulator.size())
+ {
+ if(m_vertex_accumulator.size() > 2)
+ {
+ contour_header_type& h =
+ m_contour_accumulator[m_contour_accumulator.size() - 1];
+
+ h.num_vertices = m_vertex_accumulator.size();
+ h.hole_flag = 0;
+
+ // TO DO: Clarify the "holes"
+ //if(is_cw(orientation)) h.hole_flag = 1;
+
+ h.vertices = new gpc_vertex [h.num_vertices];
+ gpc_vertex* d = h.vertices;
+ int i;
+ for(i = 0; i < h.num_vertices; i++)
+ {
+ const gpc_vertex& s = m_vertex_accumulator[i];
+ d->x = s.x;
+ d->y = s.y;
+ ++d;
+ }
+ }
+ else
+ {
+ m_vertex_accumulator.remove_last();
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::make_polygon(gpc_polygon& p)
+ {
+ free_polygon(p);
+ if(m_contour_accumulator.size())
+ {
+ p.num_contours = m_contour_accumulator.size();
+
+ // TO DO: Clarify the "holes"
+ //p.hole = new int[p.num_contours];
+ p.hole = 0;
+
+ p.contour = new gpc_vertex_list[p.num_contours];
+
+ int i;
+ //int* ph = p.hole;
+ gpc_vertex_list* pv = p.contour;
+ for(i = 0; i < p.num_contours; i++)
+ {
+ const contour_header_type& h = m_contour_accumulator[i];
+ // *ph++ = h.hole_flag;
+ pv->num_vertices = h.num_vertices;
+ pv->vertex = h.vertices;
+ ++pv;
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::start_extracting()
+ {
+ m_status = status_move_to;
+ m_contour = -1;
+ m_vertex = -1;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ bool conv_gpc<VSA, VSB>::next_contour()
+ {
+ if(++m_contour < m_result.num_contours)
+ {
+ m_vertex = -1;
+ return true;
+ }
+ return false;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ inline bool conv_gpc<VSA, VSB>::next_vertex(double* x, double* y)
+ {
+ const gpc_vertex_list& vlist = m_result.contour[m_contour];
+ if(++m_vertex < vlist.num_vertices)
+ {
+ const gpc_vertex& v = vlist.vertex[m_vertex];
+ *x = v.x;
+ *y = v.y;
+ return true;
+ }
+ return false;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ void conv_gpc<VSA, VSB>::rewind(unsigned id)
+ {
+ free_result();
+ m_src_a->rewind(id);
+ m_src_b->rewind(id);
+ add(*m_src_a, m_poly_a);
+ add(*m_src_b, m_poly_b);
+ switch(m_operation)
+ {
+ case gpc_or:
+ gpc_polygon_clip(GPC_UNION,
+ &m_poly_a,
+ &m_poly_b,
+ &m_result);
+ break;
+
+ case gpc_and:
+ gpc_polygon_clip(GPC_INT,
+ &m_poly_a,
+ &m_poly_b,
+ &m_result);
+ break;
+
+ case gpc_xor:
+ gpc_polygon_clip(GPC_XOR,
+ &m_poly_a,
+ &m_poly_b,
+ &m_result);
+ break;
+
+ case gpc_a_minus_b:
+ gpc_polygon_clip(GPC_DIFF,
+ &m_poly_a,
+ &m_poly_b,
+ &m_result);
+ break;
+
+ case gpc_b_minus_a:
+ gpc_polygon_clip(GPC_DIFF,
+ &m_poly_b,
+ &m_poly_a,
+ &m_result);
+ break;
+ }
+ start_extracting();
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VSA, class VSB>
+ unsigned conv_gpc<VSA, VSB>::vertex(double* x, double* y)
+ {
+ if(m_status == status_move_to)
+ {
+ if(next_contour())
+ {
+ if(next_vertex(x, y))
+ {
+ m_status = status_line_to;
+ return path_cmd_move_to;
+ }
+ m_status = status_stop;
+ return path_cmd_end_poly | path_flags_close;
+ }
+ }
+ else
+ {
+ if(next_vertex(x, y))
+ {
+ return path_cmd_line_to;
+ }
+ else
+ {
+ m_status = status_move_to;
+ }
+ return path_cmd_end_poly | path_flags_close;
+ }
+ return path_cmd_stop;
+ }
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_conv_marker.h b/agg/inc/agg_conv_marker.h
new file mode 100755
index 000000000000..1ae7fc92307b
--- /dev/null
+++ b/agg/inc/agg_conv_marker.h
@@ -0,0 +1,154 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// conv_marker
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_MARKER_INCLUDED
+#define AGG_CONV_MARKER_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_trans_affine.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+ //-------------------------------------------------------------conv_marker
+ template<class MarkerLocator, class MarkerShapes>
+ class conv_marker
+ {
+ public:
+ conv_marker(MarkerLocator& ml, MarkerShapes& ms);
+
+ trans_affine& transform() { return m_transform; }
+ const trans_affine& transform() const { return m_transform; }
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef conv_marker<MarkerLocator, MarkerShapes> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_marker(const conv_marker<MarkerLocator, MarkerShapes>&);
+ const conv_marker<MarkerLocator, MarkerShapes>&
+ operator = (const conv_marker<MarkerLocator, MarkerShapes>&);
+
+ enum status_e
+ {
+ initial,
+ markers,
+ polygon,
+ stop
+ };
+
+ MarkerLocator* m_marker_locator;
+ MarkerShapes* m_marker_shapes;
+ trans_affine m_transform;
+ trans_affine m_mtx;
+ status_e m_status;
+ unsigned m_marker;
+ unsigned m_num_markers;
+ };
+
+
+ //------------------------------------------------------------------------
+ template<class MarkerLocator, class MarkerShapes>
+ conv_marker<MarkerLocator, MarkerShapes>::conv_marker(MarkerLocator& ml, MarkerShapes& ms) :
+ m_marker_locator(&ml),
+ m_marker_shapes(&ms),
+ m_status(initial),
+ m_marker(0),
+ m_num_markers(1)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class MarkerLocator, class MarkerShapes>
+ void conv_marker<MarkerLocator, MarkerShapes>::rewind(unsigned)
+ {
+ m_status = initial;
+ m_marker = 0;
+ m_num_markers = 1;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class MarkerLocator, class MarkerShapes>
+ unsigned conv_marker<MarkerLocator, MarkerShapes>::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_move_to;
+ double x1, y1, x2, y2;
+
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ if(m_num_markers == 0)
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+ m_marker_locator->rewind(m_marker);
+ ++m_marker;
+ m_num_markers = 0;
+ m_status = markers;
+
+ case markers:
+ if(is_stop(m_marker_locator->vertex(&x1, &y1)))
+ {
+ m_status = initial;
+ break;
+ }
+ if(is_stop(m_marker_locator->vertex(&x2, &y2)))
+ {
+ m_status = initial;
+ break;
+ }
+ ++m_num_markers;
+ m_mtx = m_transform;
+ m_mtx *= trans_affine_rotation(atan2(y2 - y1, x2 - x1));
+ m_mtx *= trans_affine_translation(x1, y1);
+ m_marker_shapes->rewind(m_marker - 1);
+ m_status = polygon;
+
+ case polygon:
+ cmd = m_marker_shapes->vertex(x, y);
+ if(is_stop(cmd))
+ {
+ cmd = path_cmd_move_to;
+ m_status = markers;
+ break;
+ }
+ m_mtx.transform(x, y);
+ return cmd;
+
+ case stop:
+ cmd = path_cmd_stop;
+ break;
+ }
+ }
+ return cmd;
+ }
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_conv_marker_adaptor.h b/agg/inc/agg_conv_marker_adaptor.h
new file mode 100755
index 000000000000..282d26eb5afc
--- /dev/null
+++ b/agg/inc/agg_conv_marker_adaptor.h
@@ -0,0 +1,51 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_MARKER_ADAPTOR_INCLUDED
+#define AGG_CONV_MARKER_ADAPTOR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_adaptor_vcgen.h"
+#include "agg_vcgen_vertex_sequence.h"
+
+namespace agg
+{
+
+ //=====================================================conv_marker_adaptor
+ template<class VertexSource, class Markers=null_markers>
+ struct conv_marker_adaptor :
+ public conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence, Markers>
+ {
+ typedef Markers marker_type;
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence, Markers> base_type;
+
+ conv_marker_adaptor(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence, Markers>(vs)
+ {
+ }
+
+ void shorten(double s) { base_type::generator().shorten(s); }
+ double shorten() const { return base_type::generator().shorten(); }
+
+ private:
+ conv_marker_adaptor(const conv_marker_adaptor<VertexSource, Markers>&);
+ const conv_marker_adaptor<VertexSource, Markers>&
+ operator = (const conv_marker_adaptor<VertexSource, Markers>&);
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_segmentator.h b/agg/inc/agg_conv_segmentator.h
new file mode 100755
index 000000000000..df81fea9b276
--- /dev/null
+++ b/agg/inc/agg_conv_segmentator.h
@@ -0,0 +1,48 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_SEGMENTATOR_INCLUDED
+#define AGG_CONV_SEGMENTATOR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_adaptor_vpgen.h"
+#include "agg_vpgen_segmentator.h"
+
+namespace agg
+{
+
+ //========================================================conv_segmentator
+ template<class VertexSource>
+ struct conv_segmentator : public conv_adaptor_vpgen<VertexSource, vpgen_segmentator>
+ {
+ typedef conv_adaptor_vpgen<VertexSource, vpgen_segmentator> base_type;
+
+ conv_segmentator(VertexSource& vs) :
+ conv_adaptor_vpgen<VertexSource, vpgen_segmentator>(vs) {}
+
+ void approximation_scale(double s) { base_type::vpgen().approximation_scale(s); }
+ double approximation_scale() const { return base_type::vpgen().approximation_scale(); }
+
+ private:
+ conv_segmentator(const conv_segmentator<VertexSource>&);
+ const conv_segmentator<VertexSource>&
+ operator = (const conv_segmentator<VertexSource>&);
+ };
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_conv_shorten_path.h b/agg/inc/agg_conv_shorten_path.h
new file mode 100755
index 000000000000..07bc9357d6ca
--- /dev/null
+++ b/agg/inc/agg_conv_shorten_path.h
@@ -0,0 +1,50 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_SHORTEN_PATH_INCLUDED
+#define AGG_CONV_SHORTEN_PATH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_adaptor_vcgen.h"
+#include "agg_vcgen_vertex_sequence.h"
+
+namespace agg
+{
+
+ //=======================================================conv_shorten_path
+ template<class VertexSource> class conv_shorten_path :
+ public conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence>
+ {
+ public:
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence> base_type;
+
+ conv_shorten_path(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_vertex_sequence>(vs)
+ {
+ }
+
+ void shorten(double s) { base_type::generator().shorten(s); }
+ double shorten() const { return base_type::generator().shorten(); }
+
+ private:
+ conv_shorten_path(const conv_shorten_path<VertexSource>&);
+ const conv_shorten_path<VertexSource>&
+ operator = (const conv_shorten_path<VertexSource>&);
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_smooth_poly1.h b/agg/inc/agg_conv_smooth_poly1.h
new file mode 100755
index 000000000000..f50a48747f9a
--- /dev/null
+++ b/agg/inc/agg_conv_smooth_poly1.h
@@ -0,0 +1,80 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Smooth polygon generator
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_SMOOTH_POLY1_INCLUDED
+#define AGG_CONV_SMOOTH_POLY1_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vcgen_smooth_poly1.h"
+#include "agg_conv_adaptor_vcgen.h"
+#include "agg_conv_curve.h"
+
+
+namespace agg
+{
+
+ //-------------------------------------------------------conv_smooth_poly1
+ template<class VertexSource>
+ struct conv_smooth_poly1 :
+ public conv_adaptor_vcgen<VertexSource, vcgen_smooth_poly1>
+ {
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_smooth_poly1> base_type;
+
+ conv_smooth_poly1(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_smooth_poly1>(vs)
+ {
+ }
+
+ void smooth_value(double v) { base_type::generator().smooth_value(v); }
+ double smooth_value() const { return base_type::generator().smooth_value(); }
+
+ private:
+ conv_smooth_poly1(const conv_smooth_poly1<VertexSource>&);
+ const conv_smooth_poly1<VertexSource>&
+ operator = (const conv_smooth_poly1<VertexSource>&);
+ };
+
+
+
+ //-------------------------------------------------conv_smooth_poly1_curve
+ template<class VertexSource>
+ struct conv_smooth_poly1_curve :
+ public conv_curve<conv_smooth_poly1<VertexSource> >
+ {
+ conv_smooth_poly1_curve(VertexSource& vs) :
+ conv_curve<conv_smooth_poly1<VertexSource> >(m_smooth),
+ m_smooth(vs)
+ {
+ }
+
+ void smooth_value(double v) { m_smooth.generator().smooth_value(v); }
+ double smooth_value() const { return m_smooth.generator().smooth_value(); }
+
+ private:
+ conv_smooth_poly1_curve(const conv_smooth_poly1_curve<VertexSource>&);
+ const conv_smooth_poly1_curve<VertexSource>&
+ operator = (const conv_smooth_poly1_curve<VertexSource>&);
+
+ conv_smooth_poly1<VertexSource> m_smooth;
+ };
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_conv_stroke.h b/agg/inc/agg_conv_stroke.h
new file mode 100755
index 000000000000..cbdce446b7be
--- /dev/null
+++ b/agg/inc/agg_conv_stroke.h
@@ -0,0 +1,73 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// conv_stroke
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_STROKE_INCLUDED
+#define AGG_CONV_STROKE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vcgen_stroke.h"
+#include "agg_conv_adaptor_vcgen.h"
+
+namespace agg
+{
+
+ //-------------------------------------------------------------conv_stroke
+ template<class VertexSource, class Markers=null_markers>
+ struct conv_stroke :
+ public conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers>
+ {
+ typedef Markers marker_type;
+ typedef conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers> base_type;
+
+ conv_stroke(VertexSource& vs) :
+ conv_adaptor_vcgen<VertexSource, vcgen_stroke, Markers>(vs)
+ {
+ }
+
+ void line_cap(line_cap_e lc) { base_type::generator().line_cap(lc); }
+ void line_join(line_join_e lj) { base_type::generator().line_join(lj); }
+ void inner_line_join(line_join_e lj) { base_type::generator().inner_line_join(lj); }
+
+ line_cap_e line_cap() const { return base_type::generator().line_cap(); }
+ line_join_e line_join() const { return base_type::generator().line_join(); }
+ line_join_e inner_line_join() const { return base_type::generator().inner_line_join(); }
+
+ void width(double w) { base_type::generator().width(w); }
+ void miter_limit(double ml) { base_type::generator().miter_limit(ml); }
+ void miter_limit_theta(double t) { base_type::generator().miter_limit_theta(t); }
+ void inner_miter_limit(double ml) { base_type::generator().inner_miter_limit(ml); }
+ void approximation_scale(double as) { base_type::generator().approximation_scale(as); }
+
+ double width() const { return base_type::generator().width(); }
+ double miter_limit() const { return base_type::generator().miter_limit(); }
+ double inner_miter_limit() const { return base_type::generator().inner_miter_limit(); }
+ double approximation_scale() const { return base_type::generator().approximation_scale(); }
+
+ void shorten(double s) { base_type::generator().shorten(s); }
+ double shorten() const { return base_type::generator().shorten(); }
+
+ private:
+ conv_stroke(const conv_stroke<VertexSource, Markers>&);
+ const conv_stroke<VertexSource, Markers>&
+ operator = (const conv_stroke<VertexSource, Markers>&);
+
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_transform.h b/agg/inc/agg_conv_transform.h
new file mode 100755
index 000000000000..fb2dddcef617
--- /dev/null
+++ b/agg/inc/agg_conv_transform.h
@@ -0,0 +1,75 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class conv_transform
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_CONV_TRANSFORM_INCLUDED
+#define AGG_CONV_TRANSFORM_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_trans_affine.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //----------------------------------------------------------conv_transform
+ template<class VertexSource, class Transformer=trans_affine> class conv_transform
+ {
+ public:
+ conv_transform(VertexSource& source, const Transformer& tr) :
+ m_source(&source), m_trans(&tr) {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ void rewind(unsigned id)
+ {
+ m_source->rewind(id);
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ unsigned cmd = m_source->vertex(x, y);
+ if(is_vertex(cmd))
+ {
+ m_trans->transform(x, y);
+ }
+ return cmd;
+ }
+
+ void transformer(const Transformer& tr)
+ {
+ m_trans = &tr;
+ }
+
+ typedef conv_transform<VertexSource, Transformer> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_transform(const conv_transform<VertexSource>&);
+ const conv_transform<VertexSource>&
+ operator = (const conv_transform<VertexSource>&);
+
+ VertexSource* m_source;
+ const Transformer* m_trans;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_conv_unclose_polygon.h b/agg/inc/agg_conv_unclose_polygon.h
new file mode 100755
index 000000000000..a6ba30a1119e
--- /dev/null
+++ b/agg/inc/agg_conv_unclose_polygon.h
@@ -0,0 +1,59 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CONV_UNCLOSE_POLYGON_INCLUDED
+#define AGG_CONV_UNCLOSE_POLYGON_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+ //====================================================conv_unclose_polygon
+ template<class VertexSource> class conv_unclose_polygon
+ {
+ public:
+ conv_unclose_polygon(VertexSource& vs) : m_source(&vs) {}
+
+ void set_source(VertexSource& source) { m_source = &source; }
+
+ void rewind(unsigned path_id)
+ {
+ m_source->rewind(path_id);
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ unsigned cmd = m_source->vertex(x, y);
+ if(is_end_poly(cmd)) cmd &= ~path_flags_close;
+ return cmd;
+ }
+
+ typedef conv_unclose_polygon<VertexSource> source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ conv_unclose_polygon(const conv_unclose_polygon<VertexSource>&);
+ const conv_unclose_polygon<VertexSource>&
+ operator = (const conv_unclose_polygon<VertexSource>&);
+
+ VertexSource* m_source;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_curves.h b/agg/inc/agg_curves.h
new file mode 100755
index 000000000000..bfb02e91ab96
--- /dev/null
+++ b/agg/inc/agg_curves.h
@@ -0,0 +1,150 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes curve3 and curve4
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_CURVES_INCLUDED
+#define AGG_CURVES_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ // See Implemantation agg_curves.cpp
+
+
+ //------------------------------------------------------------------curve3
+ class curve3
+ {
+ public:
+ curve3() :
+ m_num_steps(0), m_step(0), m_scale(1.0) { }
+
+ curve3(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3) :
+ m_num_steps(0), m_step(0), m_scale(1.0)
+ {
+ init(x1, y1, x2, y2, x3, y3);
+ }
+
+ void reset() { m_num_steps = 0; m_step = -1; }
+ void init(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3);
+ void approximation_scale(double s) { m_scale = s; }
+ double approximation_scale() const { return m_scale; }
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef curve3 source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ int m_num_steps;
+ int m_step;
+ double m_scale;
+ double m_start_x;
+ double m_start_y;
+ double m_end_x;
+ double m_end_y;
+ double m_fx;
+ double m_fy;
+ double m_dfx;
+ double m_dfy;
+ double m_ddfx;
+ double m_ddfy;
+ double m_saved_fx;
+ double m_saved_fy;
+ double m_saved_dfx;
+ double m_saved_dfy;
+ };
+
+
+
+
+
+
+
+ //-----------------------------------------------------------------curve4
+ class curve4
+ {
+ public:
+ curve4() :
+ m_num_steps(0), m_step(0), m_scale(1.0) { }
+
+ curve4(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double x4, double y4) :
+ m_num_steps(0), m_step(0), m_scale(1.0)
+ {
+ init(x1, y1, x2, y2, x3, y3, x4, y4);
+ }
+
+ void reset() { m_num_steps = 0; m_step = -1; }
+ void init(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double x4, double y4);
+
+ void approximation_scale(double s) { m_scale = s; }
+ double approximation_scale() const { return m_scale; }
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef curve4 source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ int m_num_steps;
+ int m_step;
+ double m_scale;
+ double m_start_x;
+ double m_start_y;
+ double m_end_x;
+ double m_end_y;
+ double m_fx;
+ double m_fy;
+ double m_dfx;
+ double m_dfy;
+ double m_ddfx;
+ double m_ddfy;
+ double m_dddfx;
+ double m_dddfy;
+ double m_saved_fx;
+ double m_saved_fy;
+ double m_saved_dfx;
+ double m_saved_dfy;
+ double m_saved_ddfx;
+ double m_saved_ddfy;
+ };
+
+
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_dda_line.h b/agg/inc/agg_dda_line.h
new file mode 100755
index 000000000000..6e7335c6dfec
--- /dev/null
+++ b/agg/inc/agg_dda_line.h
@@ -0,0 +1,290 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes dda_line_interpolator, dda2_line_interpolator
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_DDA_LINE_INCLUDED
+#define AGG_DDA_LINE_INCLUDED
+
+#include <stdlib.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //===================================================dda_line_interpolator
+ template<int FractionShift, int YShift=0> class dda_line_interpolator
+ {
+ public:
+ //--------------------------------------------------------------------
+ dda_line_interpolator() {}
+
+ //--------------------------------------------------------------------
+ dda_line_interpolator(int y1, int y2, unsigned count) :
+ m_y(y1),
+ m_inc(((y2 - y1) << FractionShift) / int(count)),
+ m_dy(0)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void operator ++ ()
+ {
+ m_dy += m_inc;
+ }
+
+ //--------------------------------------------------------------------
+ void operator -- ()
+ {
+ m_dy -= m_inc;
+ }
+
+ //--------------------------------------------------------------------
+ void operator += (unsigned n)
+ {
+ m_dy += m_inc * n;
+ }
+
+ //--------------------------------------------------------------------
+ void operator -= (unsigned n)
+ {
+ m_dy -= m_inc * n;
+ }
+
+
+ //--------------------------------------------------------------------
+ int y() const { return m_y + (m_dy >> (FractionShift-YShift)); }
+ int dy() const { return m_dy; }
+
+
+ private:
+ int m_y;
+ int m_inc;
+ int m_dy;
+ };
+
+
+
+
+
+ //=================================================dda2_line_interpolator
+ class dda2_line_interpolator
+ {
+ public:
+ typedef int save_data_type;
+ enum { save_size = 2 };
+
+ //--------------------------------------------------------------------
+ dda2_line_interpolator() {}
+
+ //-------------------------------------------- Forward-adjusted line
+ dda2_line_interpolator(int y1, int y2, int count) :
+ m_cnt(count <= 0 ? 1 : count),
+ m_lft((y2 - y1) / m_cnt),
+ m_rem((y2 - y1) % m_cnt),
+ m_mod(m_rem),
+ m_y(y1)
+ {
+ if(m_mod <= 0)
+ {
+ m_mod += count;
+ m_rem += count;
+ m_lft--;
+ }
+ m_mod -= count;
+ }
+
+ //-------------------------------------------- Backward-adjusted line
+ dda2_line_interpolator(int y1, int y2, int count, int) :
+ m_cnt(count <= 0 ? 1 : count),
+ m_lft((y2 - y1) / m_cnt),
+ m_rem((y2 - y1) % m_cnt),
+ m_mod(m_rem),
+ m_y(y1)
+ {
+ if(m_mod <= 0)
+ {
+ m_mod += count;
+ m_rem += count;
+ m_lft--;
+ }
+ }
+
+ //-------------------------------------------- Backward-adjusted line
+ dda2_line_interpolator(int _y, int count) :
+ m_cnt(count <= 0 ? 1 : count),
+ m_lft(_y / m_cnt),
+ m_rem(_y % m_cnt),
+ m_mod(m_rem),
+ m_y(0)
+ {
+ if(m_mod <= 0)
+ {
+ m_mod += count;
+ m_rem += count;
+ m_lft--;
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void save(save_data_type* data) const
+ {
+ data[0] = m_mod;
+ data[1] = m_y;
+ }
+
+ //--------------------------------------------------------------------
+ void load(const save_data_type* data)
+ {
+ m_mod = data[0];
+ m_y = data[1];
+ }
+
+ //--------------------------------------------------------------------
+ void operator++()
+ {
+ m_mod += m_rem;
+ m_y += m_lft;
+ if(m_mod > 0)
+ {
+ m_mod -= m_cnt;
+ m_y++;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void operator--()
+ {
+ if(m_mod <= m_rem)
+ {
+ m_mod += m_cnt;
+ m_y--;
+ }
+ m_mod -= m_rem;
+ m_y -= m_lft;
+ }
+
+ //--------------------------------------------------------------------
+ void adjust_forward()
+ {
+ m_mod -= m_cnt;
+ }
+
+ //--------------------------------------------------------------------
+ void adjust_backward()
+ {
+ m_mod += m_cnt;
+ }
+
+ //--------------------------------------------------------------------
+ int mod() const { return m_mod; }
+ int rem() const { return m_rem; }
+ int lft() const { return m_lft; }
+
+ //--------------------------------------------------------------------
+ int y() const { return m_y; }
+
+ private:
+ int m_cnt;
+ int m_lft;
+ int m_rem;
+ int m_mod;
+ int m_y;
+ };
+
+
+
+
+
+
+
+ //---------------------------------------------line_bresenham_interpolator
+ class line_bresenham_interpolator
+ {
+ public:
+ enum
+ {
+ subpixel_shift = 8,
+ subpixel_size = 1 << subpixel_shift,
+ subpixel_mask = subpixel_size - 1
+ };
+
+ //--------------------------------------------------------------------
+ static int line_lr(int v) { return v >> subpixel_shift; }
+
+ //--------------------------------------------------------------------
+ line_bresenham_interpolator(int _x1, int _y1, int _x2, int _y2) :
+ m_x1_lr(line_lr(_x1)),
+ m_y1_lr(line_lr(_y1)),
+ m_x2_lr(line_lr(_x2)),
+ m_y2_lr(line_lr(_y2)),
+ m_ver(abs(m_x2_lr - m_x1_lr) < abs(m_y2_lr - m_y1_lr)),
+ m_len(m_ver ? abs(m_y2_lr - m_y1_lr) :
+ abs(m_x2_lr - m_x1_lr)),
+ m_inc(m_ver ? ((_y2 > _y1) ? 1 : -1) : ((_x2 > _x1) ? 1 : -1)),
+ m_interpolator(m_ver ? _x1 : _y1,
+ m_ver ? _x2 : _y2,
+ m_len)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ bool is_ver() const { return m_ver; }
+ unsigned len() const { return m_len; }
+ int inc() const { return m_inc; }
+
+ //--------------------------------------------------------------------
+ void hstep()
+ {
+ ++m_interpolator;
+ m_x1_lr += m_inc;
+ }
+
+ //--------------------------------------------------------------------
+ void vstep()
+ {
+ ++m_interpolator;
+ m_y1_lr += m_inc;
+ }
+
+ //--------------------------------------------------------------------
+ int x1() const { return m_x1_lr; }
+ int y1() const { return m_y1_lr; }
+ int x2() const { return line_lr(m_interpolator.y()); }
+ int y2() const { return line_lr(m_interpolator.y()); }
+ int x2_hr() const { return m_interpolator.y(); }
+ int y2_hr() const { return m_interpolator.y(); }
+
+ private:
+ int m_x1_lr;
+ int m_y1_lr;
+ int m_x2_lr;
+ int m_y2_lr;
+ bool m_ver;
+ unsigned m_len;
+ int m_inc;
+ dda2_line_interpolator m_interpolator;
+
+ };
+
+
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_ellipse.h b/agg/inc/agg_ellipse.h
new file mode 100755
index 000000000000..158ecf8b55ed
--- /dev/null
+++ b/agg/inc/agg_ellipse.h
@@ -0,0 +1,98 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class ellipse
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_ELLIPSE_INCLUDED
+#define AGG_ELLIPSE_INCLUDED
+
+#include "agg_basics.h"
+#include <math.h>
+
+namespace agg
+{
+
+ //----------------------------------------------------------------ellipse
+ class ellipse
+ {
+ public:
+ ellipse() : m_x(0.0), m_y(0.0), m_rx(1.0), m_ry(1.0), m_num(4), m_step(0) {}
+ ellipse(double x, double y, double rx, double ry, unsigned num_steps)
+ : m_x(x), m_y(y), m_rx(rx), m_ry(ry), m_num(num_steps), m_step(0) {}
+
+ void init(double x, double y, double rx, double ry, unsigned num_steps);
+ void approximation_scale(double scale);
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ double m_x;
+ double m_y;
+ double m_rx;
+ double m_ry;
+ unsigned m_num;
+ unsigned m_step;
+ };
+
+
+ //------------------------------------------------------------------------
+ inline void ellipse::init(double x, double y, double rx, double ry, unsigned num_steps)
+ {
+ m_x = x;
+ m_y = y;
+ m_rx = rx;
+ m_ry = ry;
+ m_num = num_steps;
+ m_step = 0;
+ }
+
+ //------------------------------------------------------------------------
+ inline void ellipse::approximation_scale(double scale)
+ {
+ m_num = unsigned((fabs(m_rx) + fabs(m_ry) + 6.0) * scale);
+ if(m_num < 6) m_num = 6;
+ }
+
+ //------------------------------------------------------------------------
+ inline void ellipse::rewind(unsigned)
+ {
+ m_step = 0;
+ }
+
+ //------------------------------------------------------------------------
+ inline unsigned ellipse::vertex(double* x, double* y)
+ {
+ if(m_step == m_num)
+ {
+ ++m_step;
+ return path_cmd_end_poly | path_flags_close | path_flags_ccw;
+ }
+ if(m_step > m_num) return path_cmd_stop;
+ double angle = double(m_step) / double(m_num) * 2.0 * pi;
+ *x = m_x + cos(angle) * m_rx;
+ *y = m_y + sin(angle) * m_ry;
+ m_step++;
+ return ((m_step == 1) ? path_cmd_move_to : path_cmd_line_to);
+ }
+
+}
+
+
+
+#endif
+
+
diff --git a/agg/inc/agg_ellipse_bresenham.h b/agg/inc/agg_ellipse_bresenham.h
new file mode 100755
index 000000000000..41133a473d9e
--- /dev/null
+++ b/agg/inc/agg_ellipse_bresenham.h
@@ -0,0 +1,113 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Simple Bresenham interpolator for ellipsees
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_ELLIPSE_BRESENHAM_INCLUDED
+#define AGG_ELLIPSE_BRESENHAM_INCLUDED
+
+
+#include "agg_basics.h"
+
+
+namespace agg
+{
+
+ //------------------------------------------ellipse_bresenham_interpolator
+ class ellipse_bresenham_interpolator
+ {
+ public:
+ ellipse_bresenham_interpolator(int rx, int ry) :
+ m_rx2(rx * rx),
+ m_ry2(ry * ry),
+ m_two_rx2(m_rx2 << 1),
+ m_two_ry2(m_ry2 << 1),
+ m_dx(0),
+ m_dy(0),
+ m_inc_x(0),
+ m_inc_y(-ry * m_two_rx2),
+ m_cur_f(0)
+ {}
+
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+
+ void operator++ ()
+ {
+ int mx, my, mxy, min_m;
+ int fx, fy, fxy;
+
+ mx = fx = m_cur_f + m_inc_x + m_ry2;
+ if(mx < 0) mx = -mx;
+
+ my = fy = m_cur_f + m_inc_y + m_rx2;
+ if(my < 0) my = -my;
+
+ mxy = fxy = m_cur_f + m_inc_x + m_ry2 + m_inc_y + m_rx2;
+ if(mxy < 0) mxy = -mxy;
+
+ min_m = mx;
+ bool flag = true;
+
+ if(min_m > my)
+ {
+ min_m = my;
+ flag = false;
+ }
+
+ m_dx = m_dy = 0;
+
+ if(min_m > mxy)
+ {
+ m_inc_x += m_two_ry2;
+ m_inc_y += m_two_rx2;
+ m_cur_f = fxy;
+ m_dx = 1;
+ m_dy = 1;
+ return;
+ }
+
+ if(flag)
+ {
+ m_inc_x += m_two_ry2;
+ m_cur_f = fx;
+ m_dx = 1;
+ return;
+ }
+
+ m_inc_y += m_two_rx2;
+ m_cur_f = fy;
+ m_dy = 1;
+ }
+
+ private:
+ int m_rx2;
+ int m_ry2;
+ int m_two_rx2;
+ int m_two_ry2;
+ int m_dx;
+ int m_dy;
+ int m_inc_x;
+ int m_inc_y;
+ int m_cur_f;
+
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_embedded_raster_fonts.h b/agg/inc/agg_embedded_raster_fonts.h
new file mode 100755
index 000000000000..f30fedfebe39
--- /dev/null
+++ b/agg/inc/agg_embedded_raster_fonts.h
@@ -0,0 +1,59 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_EMBEDDED_RASTER_FONTS_INCLUDED
+#define AGG_EMBEDDED_RASTER_FONTS_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ extern const int8u gse4x6[];
+ extern const int8u gse4x8[];
+ extern const int8u gse5x7[];
+ extern const int8u gse5x9[];
+ extern const int8u gse6x12[];
+ extern const int8u gse6x9[];
+ extern const int8u gse7x11[];
+ extern const int8u gse7x11_bold[];
+ extern const int8u gse7x15[];
+ extern const int8u gse7x15_bold[];
+ extern const int8u gse8x16[];
+ extern const int8u gse8x16_bold[];
+ extern const int8u mcs11_prop[];
+ extern const int8u mcs11_prop_condensed[];
+ extern const int8u mcs12_prop[];
+ extern const int8u mcs13_prop[];
+ extern const int8u mcs5x10_mono[];
+ extern const int8u mcs5x11_mono[];
+ extern const int8u mcs6x10_mono[];
+ extern const int8u mcs6x11_mono[];
+ extern const int8u mcs7x12_mono_high[];
+ extern const int8u mcs7x12_mono_low[];
+ extern const int8u verdana12[];
+ extern const int8u verdana12_bold[];
+ extern const int8u verdana13[];
+ extern const int8u verdana13_bold[];
+ extern const int8u verdana14[];
+ extern const int8u verdana14_bold[];
+ extern const int8u verdana16[];
+ extern const int8u verdana16_bold[];
+ extern const int8u verdana17[];
+ extern const int8u verdana17_bold[];
+ extern const int8u verdana18[];
+ extern const int8u verdana18_bold[];
+}
+
+#endif
diff --git a/agg/inc/agg_font_cache_manager.h b/agg/inc/agg_font_cache_manager.h
new file mode 100755
index 000000000000..55c4d39db75d
--- /dev/null
+++ b/agg/inc/agg_font_cache_manager.h
@@ -0,0 +1,397 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_FONT_CACHE_MANAGER_INCLUDED
+#define AGG_FONT_CACHE_MANAGER_INCLUDED
+
+#include <string.h>
+#include "agg_array.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------glyph_data_type
+ enum glyph_data_type
+ {
+ glyph_data_invalid = 0,
+ glyph_data_mono = 1,
+ glyph_data_gray8 = 2,
+ glyph_data_outline = 3
+ };
+
+
+ //-------------------------------------------------------------glyph_cache
+ struct glyph_cache
+ {
+ unsigned glyph_index;
+ int8u* data;
+ unsigned data_size;
+ glyph_data_type data_type;
+ rect bounds;
+ double advance_x;
+ double advance_y;
+ };
+
+
+ //--------------------------------------------------------------font_cache
+ class font_cache
+ {
+ public:
+ enum { block_size = 16384-16 };
+
+ //--------------------------------------------------------------------
+ font_cache(const char* font_signature) :
+ m_allocator(block_size),
+ m_font_signature(0)
+ {
+ m_font_signature = (char*)m_allocator.allocate(strlen(font_signature) + 1);
+ strcpy(m_font_signature, font_signature);
+ memset(m_glyphs, 0, sizeof(m_glyphs));
+ }
+
+ //--------------------------------------------------------------------
+ bool font_is(const char* font_signature) const
+ {
+ return strcmp(font_signature, m_font_signature) == 0;
+ }
+
+ //--------------------------------------------------------------------
+ const glyph_cache* find_glyph(unsigned glyph_code) const
+ {
+ unsigned msb = (glyph_code >> 8) & 0xFF;
+ if(m_glyphs[msb])
+ {
+ return m_glyphs[msb][glyph_code & 0xFF];
+ }
+ return 0;
+ }
+
+ //--------------------------------------------------------------------
+ glyph_cache* cache_glyph(unsigned glyph_code,
+ unsigned glyph_index,
+ unsigned data_size,
+ glyph_data_type data_type,
+ const rect& bounds,
+ double advance_x,
+ double advance_y)
+ {
+ unsigned msb = (glyph_code >> 8) & 0xFF;
+ if(m_glyphs[msb] == 0)
+ {
+ m_glyphs[msb] =
+ (glyph_cache**)m_allocator.allocate(sizeof(glyph_cache*) * 256,
+ sizeof(glyph_cache*));
+ memset(m_glyphs[msb], 0, sizeof(glyph_cache*) * 256);
+ }
+
+ unsigned lsb = glyph_code & 0xFF;
+ if(m_glyphs[msb][lsb]) return 0; // Already exists, do not overwrite
+
+ glyph_cache* glyph =
+ (glyph_cache*)m_allocator.allocate(sizeof(glyph_cache),
+ sizeof(double));
+
+ glyph->glyph_index = glyph_index;
+ glyph->data = m_allocator.allocate(data_size);
+ glyph->data_size = data_size;
+ glyph->data_type = data_type;
+ glyph->bounds = bounds;
+ glyph->advance_x = advance_x;
+ glyph->advance_y = advance_y;
+ return m_glyphs[msb][lsb] = glyph;
+ }
+
+ private:
+ pod_allocator m_allocator;
+ glyph_cache** m_glyphs[256];
+ char* m_font_signature;
+ };
+
+
+
+
+
+
+
+ //---------------------------------------------------------font_cache_pool
+ class font_cache_pool
+ {
+ public:
+ //--------------------------------------------------------------------
+ ~font_cache_pool()
+ {
+ unsigned i;
+ for(i = 0; i < m_num_fonts; ++i)
+ {
+ delete m_fonts[i];
+ }
+ delete [] m_fonts;
+ }
+
+ //--------------------------------------------------------------------
+ font_cache_pool(unsigned max_fonts=32) :
+ m_fonts(new font_cache* [max_fonts]),
+ m_max_fonts(max_fonts),
+ m_num_fonts(0),
+ m_cur_font(0)
+ {}
+
+
+ //--------------------------------------------------------------------
+ void font(const char* font_signature, bool reset_cache = false)
+ {
+ int idx = find_font(font_signature);
+ if(idx >= 0)
+ {
+ if(reset_cache)
+ {
+ delete m_fonts[idx];
+ m_fonts[idx] = new font_cache(font_signature);
+ }
+ m_cur_font = m_fonts[idx];
+ }
+ else
+ {
+ if(m_num_fonts >= m_max_fonts)
+ {
+ delete m_fonts[0];
+ memcpy(m_fonts,
+ m_fonts + 1,
+ (m_max_fonts - 1) * sizeof(font_cache*));
+ m_num_fonts = m_max_fonts - 1;
+ }
+ m_fonts[m_num_fonts] = new font_cache(font_signature);
+ m_cur_font = m_fonts[m_num_fonts];
+ ++m_num_fonts;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ const font_cache* font() const
+ {
+ return m_cur_font;
+ }
+
+ //--------------------------------------------------------------------
+ const glyph_cache* find_glyph(unsigned glyph_code) const
+ {
+ if(m_cur_font) return m_cur_font->find_glyph(glyph_code);
+ return 0;
+ }
+
+ //--------------------------------------------------------------------
+ glyph_cache* cache_glyph(unsigned glyph_code,
+ unsigned glyph_index,
+ unsigned data_size,
+ glyph_data_type data_type,
+ const rect& bounds,
+ double advance_x,
+ double advance_y)
+ {
+ if(m_cur_font)
+ {
+ return m_cur_font->cache_glyph(glyph_code,
+ glyph_index,
+ data_size,
+ data_type,
+ bounds,
+ advance_x,
+ advance_y);
+ }
+ return 0;
+ }
+
+
+ //--------------------------------------------------------------------
+ int find_font(const char* font_signature)
+ {
+ unsigned i;
+ for(i = 0; i < m_num_fonts; i++)
+ {
+ if(m_fonts[i]->font_is(font_signature)) return int(i);
+ }
+ return -1;
+ }
+
+ private:
+ font_cache** m_fonts;
+ unsigned m_max_fonts;
+ unsigned m_num_fonts;
+ font_cache* m_cur_font;
+ };
+
+
+
+
+ //------------------------------------------------------------------------
+ enum glyph_rendering
+ {
+ glyph_ren_native_mono,
+ glyph_ren_native_gray8,
+ glyph_ren_outline,
+ glyph_ren_agg_mono,
+ glyph_ren_agg_gray8
+ };
+
+
+
+
+ //------------------------------------------------------font_cache_manager
+ template<class FontEngine> class font_cache_manager
+ {
+ public:
+ typedef FontEngine font_engine_type;
+ typedef font_cache_manager<FontEngine> self_type;
+ typedef typename font_engine_type::path_adaptor_type path_adaptor_type;
+ typedef typename font_engine_type::gray8_adaptor_type gray8_adaptor_type;
+ typedef typename gray8_adaptor_type::embedded_scanline gray8_scanline_type;
+ typedef typename font_engine_type::mono_adaptor_type mono_adaptor_type;
+ typedef typename mono_adaptor_type::embedded_scanline mono_scanline_type;
+
+ //--------------------------------------------------------------------
+ font_cache_manager(font_engine_type& engine, unsigned max_fonts=32) :
+ m_fonts(max_fonts),
+ m_engine(engine),
+ m_change_stamp(-1),
+ m_prev_glyph(0),
+ m_last_glyph(0)
+ {}
+
+ //--------------------------------------------------------------------
+ const glyph_cache* glyph(unsigned glyph_code)
+ {
+ synchronize();
+ const glyph_cache* gl = m_fonts.find_glyph(glyph_code);
+ if(gl)
+ {
+ m_prev_glyph = m_last_glyph;
+ return m_last_glyph = gl;
+ }
+ else
+ {
+ if(m_engine.prepare_glyph(glyph_code))
+ {
+ m_prev_glyph = m_last_glyph;
+ m_last_glyph = m_fonts.cache_glyph(glyph_code,
+ m_engine.glyph_index(),
+ m_engine.data_size(),
+ m_engine.data_type(),
+ m_engine.bounds(),
+ m_engine.advance_x(),
+ m_engine.advance_y());
+ m_engine.write_glyph_to(m_last_glyph->data);
+ return m_last_glyph;
+ }
+ }
+ return 0;
+ }
+
+ //--------------------------------------------------------------------
+ void init_embedded_adaptors(const glyph_cache* gl,
+ double x, double y,
+ double scale=1.0)
+ {
+ if(gl)
+ {
+ switch(gl->data_type)
+ {
+ default: return;
+ case glyph_data_mono:
+ m_mono_adaptor.init(gl->data, gl->data_size, x, y);
+ break;
+
+ case glyph_data_gray8:
+ m_gray8_adaptor.init(gl->data, gl->data_size, x, y);
+ break;
+
+ case glyph_data_outline:
+ m_path_adaptor.init(gl->data, gl->data_size, x, y, scale);
+ break;
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ path_adaptor_type& path_adaptor() { return m_path_adaptor; }
+ gray8_adaptor_type& gray8_adaptor() { return m_gray8_adaptor; }
+ gray8_scanline_type& gray8_scanline() { return m_gray8_scanline; }
+ mono_adaptor_type& mono_adaptor() { return m_mono_adaptor; }
+ mono_scanline_type& mono_scanline() { return m_mono_scanline; }
+
+ //--------------------------------------------------------------------
+ const glyph_cache* perv_glyph() const { return m_prev_glyph; }
+ const glyph_cache* last_glyph() const { return m_last_glyph; }
+
+ //--------------------------------------------------------------------
+ bool add_kerning(double* x, double* y)
+ {
+ if(m_prev_glyph && m_last_glyph)
+ {
+ return m_engine.add_kerning(m_prev_glyph->glyph_index,
+ m_last_glyph->glyph_index,
+ x, y);
+ }
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ void precache(unsigned from, unsigned to)
+ {
+ for(; from <= to; ++from) glyph(from);
+ }
+
+ //--------------------------------------------------------------------
+ void reset_cache()
+ {
+ m_fonts.font(m_engine.font_signature(), true);
+ m_change_stamp = m_engine.change_stamp();
+ m_prev_glyph = m_last_glyph = 0;
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ font_cache_manager(const self_type&);
+ const self_type& operator = (const self_type&);
+
+ //--------------------------------------------------------------------
+ void synchronize()
+ {
+ if(m_change_stamp != m_engine.change_stamp())
+ {
+ m_fonts.font(m_engine.font_signature());
+ m_change_stamp = m_engine.change_stamp();
+ m_prev_glyph = m_last_glyph = 0;
+ }
+ }
+
+ font_cache_pool m_fonts;
+ font_engine_type& m_engine;
+ int m_change_stamp;
+ double m_dx;
+ double m_dy;
+ const glyph_cache* m_prev_glyph;
+ const glyph_cache* m_last_glyph;
+ path_adaptor_type m_path_adaptor;
+ gray8_adaptor_type m_gray8_adaptor;
+ gray8_scanline_type m_gray8_scanline;
+ mono_adaptor_type m_mono_adaptor;
+ mono_scanline_type m_mono_scanline;
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_gamma_functions.h b/agg/inc/agg_gamma_functions.h
new file mode 100755
index 000000000000..09a8305faedb
--- /dev/null
+++ b/agg/inc/agg_gamma_functions.h
@@ -0,0 +1,123 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_GAMMA_FUNCTIONS_INCLUDED
+#define AGG_GAMMA_FUNCTIONS_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+ //===============================================================gamma_none
+ struct gamma_none
+ {
+ double operator()(double x) const { return x; }
+ };
+
+
+ //==============================================================gamma_power
+ class gamma_power
+ {
+ public:
+ gamma_power() : m_gamma(1.0) {}
+ gamma_power(double g) : m_gamma(g) {}
+
+ void gamma(double g) { m_gamma = g; }
+ double gamma() const { return m_gamma; }
+
+ double operator() (double x) const
+ {
+ return pow(x, m_gamma);
+ }
+
+ private:
+ double m_gamma;
+ };
+
+
+ //==========================================================gamma_threshold
+ class gamma_threshold
+ {
+ public:
+ gamma_threshold() : m_threshold(0.5) {}
+ gamma_threshold(double t) : m_threshold(t) {}
+
+ void threshold(double t) { m_threshold = t; }
+ double threshold() const { return m_threshold; }
+
+ double operator() (double x) const
+ {
+ return (x < m_threshold) ? 0.0 : 1.0;
+ }
+
+ private:
+ double m_threshold;
+ };
+
+
+ //============================================================gamma_linear
+ class gamma_linear
+ {
+ public:
+ gamma_linear() : m_start(0.0), m_end(1.0) {}
+ gamma_linear(double s, double e) : m_start(s), m_end(e) {}
+
+ void set(double s, double e) { m_start = s; m_end = e; }
+ void start(double s) { m_start = s; }
+ void end(double e) { m_end = e; }
+ double start() const { return m_start; }
+ double end() const { return m_end; }
+
+ double operator() (double x) const
+ {
+ if(x < m_start) return 0.0;
+ if(x > m_end) return 1.0;
+ return (x - m_start) / (m_end - m_start);
+ }
+
+ private:
+ double m_start;
+ double m_end;
+ };
+
+
+ //==========================================================gamma_multiply
+ class gamma_multiply
+ {
+ public:
+ gamma_multiply() : m_mul(1.0) {}
+ gamma_multiply(double v) : m_mul(v) {}
+
+ void value(double v) { m_mul = v; }
+ double value() const { return m_mul; }
+
+ double operator() (double x) const
+ {
+ double y = x * m_mul;
+ if(y > 1.0) y = 1.0;
+ return y;
+ }
+
+ private:
+ double m_mul;
+ };
+
+}
+
+#endif
+
+
+
diff --git a/agg/inc/agg_gamma_lut.h b/agg/inc/agg_gamma_lut.h
new file mode 100755
index 000000000000..30e3b3c89d04
--- /dev/null
+++ b/agg/inc/agg_gamma_lut.h
@@ -0,0 +1,114 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_GAMMA_LUT_INCLUDED
+#define AGG_GAMMA_LUT_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+ template<class LoResT=int8u,
+ class HiResT=int8u,
+ unsigned GammaShift=8,
+ unsigned HiResShift=8> class gamma_lut
+ {
+ public:
+ enum
+ {
+ gamma_shift = GammaShift,
+ gamma_size = 1 << gamma_shift,
+ gamma_mask = gamma_size - 1
+ };
+
+ enum
+ {
+ hi_res_shift = HiResShift,
+ hi_res_size = 1 << hi_res_shift,
+ hi_res_mask = hi_res_size - 1
+ };
+
+ ~gamma_lut()
+ {
+ delete [] m_inv_gamma;
+ delete [] m_dir_gamma;
+ }
+
+ gamma_lut() :
+ m_gamma(1.0),
+ m_dir_gamma(new HiResT[gamma_size]),
+ m_inv_gamma(new LoResT[hi_res_size])
+ {
+ unsigned i;
+ for(i = 0; i < gamma_size; i++)
+ {
+ m_dir_gamma[i] = HiResT(i << (hi_res_shift - gamma_shift));
+ }
+
+ for(i = 0; i < hi_res_size; i++)
+ {
+ m_inv_gamma[i] = LoResT(i >> (hi_res_shift - gamma_shift));
+ }
+ }
+
+ gamma_lut(double g) :
+ m_gamma(1.0),
+ m_dir_gamma(new HiResT[gamma_size]),
+ m_inv_gamma(new LoResT[hi_res_size])
+ {
+ gamma(g);
+ }
+
+ void gamma(double g)
+ {
+ m_gamma = g;
+
+ unsigned i;
+ for(i = 0; i < gamma_size; i++)
+ {
+ m_dir_gamma[i] = (HiResT)(pow(double(i) / double(gamma_mask), m_gamma) * double(hi_res_mask) + 0.5);
+ }
+
+ double inv_g = 1.0 / g;
+ for(i = 0; i < hi_res_size; i++)
+ {
+ m_inv_gamma[i] = (LoResT)(pow(double(i) / double(hi_res_mask), inv_g) * double(gamma_mask) + 0.5);
+ }
+ }
+
+ double gamma() const
+ {
+ return m_gamma;
+ }
+
+ HiResT dir(LoResT v) const
+ {
+ return m_dir_gamma[unsigned(v)];
+ }
+
+ LoResT inv(HiResT v) const
+ {
+ return m_inv_gamma[unsigned(v)];
+ }
+
+ private:
+ double m_gamma;
+ HiResT* m_dir_gamma;
+ LoResT* m_inv_gamma;
+ };
+}
+
+#endif
diff --git a/agg/inc/agg_glyph_raster_bin.h b/agg/inc/agg_glyph_raster_bin.h
new file mode 100755
index 000000000000..851d9f94bd72
--- /dev/null
+++ b/agg/inc/agg_glyph_raster_bin.h
@@ -0,0 +1,155 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_GLYPH_RASTER_BIN_INCLUDED
+#define AGG_GLYPH_RASTER_BIN_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //========================================================glyph_raster_bin
+ template<class ColorT> class glyph_raster_bin
+ {
+ public:
+ typedef ColorT color_type;
+
+ //--------------------------------------------------------------------
+ struct glyph_rect
+ {
+ int x1,y1,x2,y2;
+ double dx, dy;
+ };
+
+ //--------------------------------------------------------------------
+ glyph_raster_bin(const int8u* font) :
+ m_font(font),
+ m_big_endian(false)
+ {
+ int t = 1;
+ if(*(char*)&t == 0) m_big_endian = true;
+ memset(m_span, 0, sizeof(m_span));
+ }
+
+ //--------------------------------------------------------------------
+ const int8u* font() const { return m_font; }
+ void font(const int8u* f) { m_font = f; }
+
+ //--------------------------------------------------------------------
+ double height() const { return m_font[0]; }
+ double base_line() const { return m_font[1]; }
+
+ //--------------------------------------------------------------------
+ template<class CharT>
+ double width(const CharT* str) const
+ {
+ unsigned start_char = m_font[2];
+ unsigned num_chars = m_font[3];
+
+ unsigned w = 0;
+ while(*str)
+ {
+ unsigned glyph = *str;
+ const int8u* bits = m_font + 4 + num_chars * 2 +
+ value(m_font + 4 + (glyph - start_char) * 2);
+ w += *bits;
+ ++str;
+ }
+ return w;
+ }
+
+ //--------------------------------------------------------------------
+ void prepare(glyph_rect* r, double x, double y, unsigned glyph, bool flip)
+ {
+ unsigned start_char = m_font[2];
+ unsigned num_chars = m_font[3];
+
+ m_bits = m_font + 4 + num_chars * 2 +
+ value(m_font + 4 + (glyph - start_char) * 2);
+
+ m_glyph_width = *m_bits++;
+ m_glyph_byte_width = (m_glyph_width + 7) >> 3;
+
+ r->x1 = int(x);
+ r->x2 = r->x1 + m_glyph_width - 1;
+ if(flip)
+ {
+ r->y1 = int(y) - m_font[0] + m_font[1];
+ r->y2 = r->y1 + m_font[0] - 1;
+ }
+ else
+ {
+ r->y1 = int(y) - m_font[1] + 1;
+ r->y2 = r->y1 + m_font[0] - 1;
+ }
+ r->dx = m_glyph_width;
+ r->dy = 0;
+ }
+
+ //--------------------------------------------------------------------
+ const cover_type* span(unsigned i)
+ {
+ i = m_font[0] - i - 1;
+ const int8u* bits = m_bits + i * m_glyph_byte_width;
+ unsigned j;
+ unsigned val = *bits;
+ unsigned nb = 0;
+ for(j = 0; j < m_glyph_width; ++j)
+ {
+ m_span[j] = (cover_type)((val & 0x80) ? cover_full : cover_none);
+ val <<= 1;
+ if(++nb >= 8)
+ {
+ val = *++bits;
+ nb = 0;
+ }
+ }
+ return m_span;
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ int16u value(const int8u* p) const
+ {
+ int16u v;
+ if(m_big_endian)
+ {
+ *(int8u*)&v = p[1];
+ *((int8u*)&v + 1) = p[0];
+ }
+ else
+ {
+ *(int8u*)&v = p[0];
+ *((int8u*)&v + 1) = p[1];
+ }
+ return v;
+ }
+
+
+ //--------------------------------------------------------------------
+ const int8u* m_font;
+ bool m_big_endian;
+ cover_type m_span[32];
+ const int8u* m_bits;
+ unsigned m_glyph_width;
+ unsigned m_glyph_byte_width;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_gsv_text.h b/agg/inc/agg_gsv_text.h
new file mode 100755
index 000000000000..5d8e1cf63bab
--- /dev/null
+++ b/agg/inc/agg_gsv_text.h
@@ -0,0 +1,154 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class gsv_text
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_GSV_TEXT_INCLUDED
+#define AGG_GSV_TEXT_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_conv_stroke.h"
+#include "agg_conv_transform.h"
+
+namespace agg
+{
+
+
+ //---------------------------------------------------------------gsv_text
+ //
+ // See Implementation agg_gsv_text.cpp
+ //
+ class gsv_text
+ {
+ enum status
+ {
+ initial,
+ next_char,
+ start_glyph,
+ glyph
+ };
+
+ public:
+ ~gsv_text();
+ gsv_text();
+
+ void font(const void* font);
+ void flip(bool flip_y) { m_flip = flip_y; }
+ void load_font(const char* file);
+ void size(double height, double width=0.0);
+ void space(double space);
+ void line_space(double line_space);
+ void start_point(double x, double y);
+ void text(const char* text);
+
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ // not supposed to be copied
+ gsv_text(const gsv_text&);
+ const gsv_text& operator = (const gsv_text&);
+
+ int16u value(const int8u* p) const
+ {
+ int16u v;
+ if(m_big_endian)
+ {
+ *(int8u*)&v = p[1];
+ *((int8u*)&v + 1) = p[0];
+ }
+ else
+ {
+ *(int8u*)&v = p[0];
+ *((int8u*)&v + 1) = p[1];
+ }
+ return v;
+ }
+
+ private:
+ double m_x;
+ double m_y;
+ double m_start_x;
+ double m_width;
+ double m_height;
+ double m_space;
+ double m_line_space;
+ char m_chr[2];
+ char* m_text;
+ char* m_text_buf;
+ unsigned m_buf_size;
+ char* m_cur_chr;
+ const void* m_font;
+ char* m_loaded_font;
+ status m_status;
+ bool m_big_endian;
+ bool m_flip;
+
+ int8u* m_indices;
+ int8* m_glyphs;
+ int8* m_bglyph;
+ int8* m_eglyph;
+ double m_w;
+ double m_h;
+ };
+
+
+
+
+ //--------------------------------------------------------gsv_text_outline
+ template<class Transformer = trans_affine> class gsv_text_outline
+ {
+ public:
+ gsv_text_outline(gsv_text& text, const Transformer& trans) :
+ m_polyline(text),
+ m_trans(m_polyline, trans)
+ {
+ }
+
+ void width(double w)
+ {
+ m_polyline.width(w);
+ }
+
+ void transformer(const Transformer* trans)
+ {
+ m_trans->transformer(trans);
+ }
+
+ void rewind(unsigned id)
+ {
+ m_trans.rewind(id);
+ m_polyline.line_join(round_join);
+ m_polyline.line_cap(round_cap);
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ return m_trans.vertex(x, y);
+ }
+
+ private:
+ conv_stroke<gsv_text> m_polyline;
+ conv_transform<conv_stroke<gsv_text>, Transformer> m_trans;
+ };
+
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_image_filters.h b/agg/inc/agg_image_filters.h
new file mode 100755
index 000000000000..a2037fe0eff1
--- /dev/null
+++ b/agg/inc/agg_image_filters.h
@@ -0,0 +1,449 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Image transformation filters,
+// Filtering classes (image_filter_lut, image_filter),
+// Basic filter shape classes
+//----------------------------------------------------------------------------
+#ifndef AGG_IMAGE_FILTERS_INCLUDED
+#define AGG_IMAGE_FILTERS_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ // See Implementation agg_image_filters.cpp
+
+ enum
+ {
+ image_filter_shift = 14, //----image_filter_shift
+ image_filter_size = 1 << image_filter_shift, //----image_filter_size
+ image_filter_mask = image_filter_size - 1, //----image_filter_mask
+
+ image_subpixel_shift = 8, //----image_subpixel_shift
+ image_subpixel_size = 1 << image_subpixel_shift, //----image_subpixel_size
+ image_subpixel_mask = image_subpixel_size - 1 //----image_subpixel_mask
+ };
+
+
+ //-----------------------------------------------------image_filter_lut
+ class image_filter_lut
+ {
+ public:
+ ~image_filter_lut();
+ image_filter_lut();
+
+ template<class FilterF> void calculate(const FilterF& filter,
+ bool normalization=true)
+ {
+ double r = filter.radius();
+ realloc(r);
+ unsigned i;
+ unsigned pivot = diameter() << (image_subpixel_shift - 1);
+ for(i = 0; i < pivot; i++)
+ {
+ double x = double(i) / double(image_subpixel_size);
+ double y = filter.calc_weight(x);
+ m_weight_array[pivot + i] =
+ m_weight_array[pivot - i] = int16(y * image_filter_size + 0.5);
+ }
+ unsigned end = (diameter() << image_subpixel_shift) - 1;
+ m_weight_array[0] = m_weight_array[end];
+ if(normalization)
+ {
+ normalize();
+ }
+ }
+
+ template<class FilterF> image_filter_lut(const FilterF& filter,
+ bool normalization=true) :
+ m_weight_array(0),
+ m_max_size(0)
+ {
+ calculate(filter, normalization);
+ }
+
+ double radius() const { return m_radius; }
+ unsigned diameter() const { return m_diameter; }
+ int start() const { return m_start; }
+ const int16* weight_array() const { return m_weight_array; }
+ void normalize();
+
+ private:
+ void realloc(double radius);
+ image_filter_lut(const image_filter_lut&);
+ const image_filter_lut& operator = (const image_filter_lut&);
+
+ double m_radius;
+ unsigned m_diameter;
+ int m_start;
+ int16* m_weight_array;
+ unsigned m_max_size;
+ };
+
+
+
+ //--------------------------------------------------------image_filter
+ template<class FilterF> class image_filter : public image_filter_lut
+ {
+ public:
+ image_filter()
+ {
+ calculate(m_filter_function);
+ }
+ private:
+ FilterF m_filter_function;
+ };
+
+
+ //-----------------------------------------------image_filter_bilinear
+ struct image_filter_bilinear
+ {
+ static double radius() { return 1.0; }
+ static double calc_weight(double x)
+ {
+ return 1.0 - x;
+ }
+ };
+
+
+ //-----------------------------------------------image_filter_hanning
+ struct image_filter_hanning
+ {
+ static double radius() { return 1.0; }
+ static double calc_weight(double x)
+ {
+ return 0.5 + 0.5 * cos(pi * x);
+ }
+ };
+
+
+ //-----------------------------------------------image_filter_hamming
+ struct image_filter_hamming
+ {
+ static double radius() { return 1.0; }
+ static double calc_weight(double x)
+ {
+ return 0.54 + 0.46 * cos(pi * x);
+ }
+ };
+
+ //-----------------------------------------------image_filter_hermite
+ struct image_filter_hermite
+ {
+ static double radius() { return 1.0; }
+ static double calc_weight(double x)
+ {
+ return (2.0 * x - 3.0) * x * x + 1.0;
+ }
+ };
+
+ //------------------------------------------------image_filter_quadric
+ struct image_filter_quadric
+ {
+ static double radius() { return 1.5; }
+ static double calc_weight(double x)
+ {
+ double t;
+ if(x < 0.5) return 0.75 - x * x;
+ if(x < 1.5) {t = x - 1.5; return 0.5 * t * t;}
+ return 0.0;
+ }
+ };
+
+ //------------------------------------------------image_filter_bicubic
+ class image_filter_bicubic
+ {
+ static double pow3(double x)
+ {
+ return (x <= 0.0) ? 0.0 : x * x * x;
+ }
+
+ public:
+ static double radius() { return 2.0; }
+ static double calc_weight(double x)
+ {
+ return
+ (1.0/6.0) *
+ (pow3(x + 2) - 4 * pow3(x + 1) + 6 * pow3(x) - 4 * pow3(x - 1));
+ }
+ };
+
+ //-------------------------------------------------image_filter_kaiser
+ class image_filter_kaiser
+ {
+ double a;
+ double i0a;
+ double epsilon;
+
+ public:
+ image_filter_kaiser(double b = 6.33) :
+ a(b), epsilon(1e-12)
+ {
+ i0a = 1.0 / bessel_i0(b);
+ }
+
+ static double radius() { return 1.0; }
+ double calc_weight(double x) const
+ {
+ return bessel_i0(a * sqrt(1. - x * x)) * i0a;
+ }
+
+ private:
+ double bessel_i0(double x) const
+ {
+ int i;
+ double sum, y, t;
+
+ sum = 1.;
+ y = x * x / 4.;
+ t = y;
+
+ for(i = 2; t > epsilon; i++)
+ {
+ sum += t;
+ t *= (double)y / (i * i);
+ }
+ return sum;
+ }
+ };
+
+ //----------------------------------------------image_filter_catrom
+ struct image_filter_catrom
+ {
+ static double radius() { return 2.0; }
+ static double calc_weight(double x)
+ {
+ if(x < 1.0) return 0.5 * (2.0 + x * x * (-5.0 + x * 3.0));
+ if(x < 2.0) return 0.5 * (4.0 + x * (-8.0 + x * (5.0 - x)));
+ return 0.;
+ }
+ };
+
+ //---------------------------------------------image_filter_mitchell
+ class image_filter_mitchell
+ {
+ double p0, p2, p3;
+ double q0, q1, q2, q3;
+
+ public:
+ image_filter_mitchell(double b = 1.0/3.0, double c = 1.0/3.0) :
+ p0((6.0 - 2.0 * b) / 6.0),
+ p2((-18.0 + 12.0 * b + 6.0 * c) / 6.0),
+ p3((12.0 - 9.0 * b - 6.0 * c) / 6.0),
+ q0((8.0 * b + 24.0 * c) / 6.0),
+ q1((-12.0 * b - 48.0 * c) / 6.0),
+ q2((6.0 * b + 30.0 * c) / 6.0),
+ q3((-b - 6.0 * c) / 6.0)
+ {}
+
+ static double radius() { return 2.0; }
+ double calc_weight(double x) const
+ {
+ if(x < 1.0) return p0 + x * x * (p2 + x * p3);
+ if(x < 2.0) return q0 + x * (q1 + x * (q2 + x * q3));
+ return 0.0;
+ }
+ };
+
+
+ //----------------------------------------------image_filter_spline16
+ struct image_filter_spline16
+ {
+ static double radius() { return 2.0; }
+ static double calc_weight(double x)
+ {
+ if(x < 1.0)
+ {
+ return ((x - 9.0/5.0 ) * x - 1.0/5.0 ) * x + 1.0;
+ }
+ return ((-1.0/3.0 * (x-1) + 4.0/5.0) * (x-1) - 7.0/15.0 ) * (x-1);
+ }
+ };
+
+
+ //---------------------------------------------image_filter_spline36
+ struct image_filter_spline36
+ {
+ static double radius() { return 3.0; }
+ static double calc_weight(double x)
+ {
+ if(x < 1.0)
+ {
+ return ((13.0/11.0 * x - 453.0/209.0) * x - 3.0/209.0) * x + 1.0;
+ }
+ if(x < 2.0)
+ {
+ return ((-6.0/11.0 * (x-1) + 270.0/209.0) * (x-1) - 156.0/ 209.0) * (x-1);
+ }
+ return ((1.0/11.0 * (x-2) - 45.0/209.0) * (x-2) + 26.0/209.0) * (x-2);
+ }
+ };
+
+
+ //----------------------------------------------image_filter_gaussian
+ struct image_filter_gaussian
+ {
+ static double radius() { return 2.0; }
+ static double calc_weight(double x)
+ {
+ return exp(-2.0 * x * x) * sqrt(2.0 / pi);
+ }
+ };
+
+
+ //------------------------------------------------image_filter_bessel
+ struct image_filter_bessel
+ {
+ static double radius() { return 3.2383; }
+ static double calc_weight(double x)
+ {
+ return (x == 0.0) ? pi / 4.0 : j1(pi * x) / (2.0 * x);
+ }
+ };
+
+
+ //-------------------------------------------------image_filter_sinc
+ class image_filter_sinc
+ {
+ public:
+ image_filter_sinc(double r) : m_radius(r < 2.0 ? 2.0 : r) {}
+ double radius() const { return m_radius; }
+ double calc_weight(double x) const
+ {
+ if(x == 0.0) return 1.0;
+ x *= pi;
+ return sin(x) / x;
+ }
+ private:
+ double m_radius;
+ };
+
+
+ //-----------------------------------------------image_filter_lanczos
+ class image_filter_lanczos
+ {
+ public:
+ image_filter_lanczos(double r) : m_radius(r < 2.0 ? 2.0 : r) {}
+ double radius() const { return m_radius; }
+ double calc_weight(double x) const
+ {
+ if(x == 0.0) return 1.0;
+ if(x > m_radius) return 0.0;
+ x *= pi;
+ double xr = x / m_radius;
+ return (sin(x) / x) * (sin(xr) / xr);
+ }
+ private:
+ double m_radius;
+ };
+
+
+ //----------------------------------------------image_filter_blackman
+ class image_filter_blackman
+ {
+ public:
+ image_filter_blackman(double r) : m_radius(r < 2.0 ? 2.0 : r) {}
+ double radius() const { return m_radius; }
+ double calc_weight(double x) const
+ {
+ if(x == 0.0) return 1.0;
+ if(x > m_radius) return 0.0;
+ x *= pi;
+ double xr = x / m_radius;
+ return (sin(x) / x) * (0.42 + 0.5*cos(xr) + 0.08*cos(2*xr));
+ }
+ private:
+ double m_radius;
+ };
+
+ //------------------------------------------------image_filter_sinc36
+ class image_filter_sinc36 : public image_filter_sinc
+ { public: image_filter_sinc36() : image_filter_sinc(3.0){} };
+
+ //------------------------------------------------image_filter_sinc64
+ class image_filter_sinc64 : public image_filter_sinc
+ { public: image_filter_sinc64() : image_filter_sinc(4.0){} };
+
+ //-----------------------------------------------image_filter_sinc100
+ class image_filter_sinc100 : public image_filter_sinc
+ { public: image_filter_sinc100() : image_filter_sinc(5.0){} };
+
+ //-----------------------------------------------image_filter_sinc144
+ class image_filter_sinc144 : public image_filter_sinc
+ { public: image_filter_sinc144() : image_filter_sinc(6.0){} };
+
+ //-----------------------------------------------image_filter_sinc196
+ class image_filter_sinc196 : public image_filter_sinc
+ { public: image_filter_sinc196() : image_filter_sinc(7.0){} };
+
+ //-----------------------------------------------image_filter_sinc256
+ class image_filter_sinc256 : public image_filter_sinc
+ { public: image_filter_sinc256() : image_filter_sinc(8.0){} };
+
+ //---------------------------------------------image_filter_lanczos36
+ class image_filter_lanczos36 : public image_filter_lanczos
+ { public: image_filter_lanczos36() : image_filter_lanczos(3.0){} };
+
+ //---------------------------------------------image_filter_lanczos64
+ class image_filter_lanczos64 : public image_filter_lanczos
+ { public: image_filter_lanczos64() : image_filter_lanczos(4.0){} };
+
+ //--------------------------------------------image_filter_lanczos100
+ class image_filter_lanczos100 : public image_filter_lanczos
+ { public: image_filter_lanczos100() : image_filter_lanczos(5.0){} };
+
+ //--------------------------------------------image_filter_lanczos144
+ class image_filter_lanczos144 : public image_filter_lanczos
+ { public: image_filter_lanczos144() : image_filter_lanczos(6.0){} };
+
+ //--------------------------------------------image_filter_lanczos196
+ class image_filter_lanczos196 : public image_filter_lanczos
+ { public: image_filter_lanczos196() : image_filter_lanczos(7.0){} };
+
+ //--------------------------------------------image_filter_lanczos256
+ class image_filter_lanczos256 : public image_filter_lanczos
+ { public: image_filter_lanczos256() : image_filter_lanczos(8.0){} };
+
+ //--------------------------------------------image_filter_blackman36
+ class image_filter_blackman36 : public image_filter_blackman
+ { public: image_filter_blackman36() : image_filter_blackman(3.0){} };
+
+ //--------------------------------------------image_filter_blackman64
+ class image_filter_blackman64 : public image_filter_blackman
+ { public: image_filter_blackman64() : image_filter_blackman(4.0){} };
+
+ //-------------------------------------------image_filter_blackman100
+ class image_filter_blackman100 : public image_filter_blackman
+ { public: image_filter_blackman100() : image_filter_blackman(5.0){} };
+
+ //-------------------------------------------image_filter_blackman144
+ class image_filter_blackman144 : public image_filter_blackman
+ { public: image_filter_blackman144() : image_filter_blackman(6.0){} };
+
+ //-------------------------------------------image_filter_blackman196
+ class image_filter_blackman196 : public image_filter_blackman
+ { public: image_filter_blackman196() : image_filter_blackman(7.0){} };
+
+ //-------------------------------------------image_filter_blackman256
+ class image_filter_blackman256 : public image_filter_blackman
+ { public: image_filter_blackman256() : image_filter_blackman(8.0){} };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_line_aa_basics.h b/agg/inc/agg_line_aa_basics.h
new file mode 100755
index 000000000000..ab8e94715019
--- /dev/null
+++ b/agg/inc/agg_line_aa_basics.h
@@ -0,0 +1,152 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_LINE_AA_BASICS_INCLUDED
+#define AGG_LINE_AA_BASICS_INCLUDED
+
+#include <stdlib.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ // See Implementation agg_line_aa_basics.cpp
+
+ //-------------------------------------------------------------------------
+ enum
+ {
+ line_subpixel_shift = 8, //----line_subpixel_shift
+ line_subpixel_size = 1 << line_subpixel_shift, //----line_subpixel_size
+ line_subpixel_mask = line_subpixel_size - 1 //----line_subpixel_mask
+ };
+
+ //-------------------------------------------------------------------------
+ enum
+ {
+ line_mr_subpixel_shift = 4, //----line_mr_subpixel_shift
+ line_mr_subpixel_size = 1 << line_mr_subpixel_shift, //----line_mr_subpixel_size
+ line_mr_subpixel_mask = line_mr_subpixel_size - 1 //----line_mr_subpixel_mask
+ };
+
+ //------------------------------------------------------------------line_mr
+ inline int line_mr(int x)
+ {
+ return x >> ((int)line_subpixel_shift - (int)line_mr_subpixel_shift);
+ }
+
+ //-------------------------------------------------------------------line_hr
+ inline int line_hr(int x)
+ {
+ return x << ((int)line_subpixel_shift - (int)line_mr_subpixel_shift);
+ }
+
+ //---------------------------------------------------------------line_dbl_hr
+ inline int line_dbl_hr(int x)
+ {
+ return x << line_subpixel_shift;
+ }
+
+ //---------------------------------------------------------------line_coord
+ inline int line_coord(double x)
+ {
+ return int(x * line_subpixel_size);
+ }
+
+ //==========================================================line_parameters
+ struct line_parameters
+ {
+ //---------------------------------------------------------------------
+ line_parameters() {}
+ line_parameters(int x1_, int y1_, int x2_, int y2_, int len_) :
+ x1(x1_), y1(y1_), x2(x2_), y2(y2_),
+ dx(abs(x2_ - x1_)),
+ dy(abs(y2_ - y1_)),
+ sx((x2_ > x1_) ? 1 : -1),
+ sy((y2_ > y1_) ? 1 : -1),
+ vertical(dy >= dx),
+ inc(vertical ? sy : sx),
+ len(len_),
+ octant((sy & 4) | (sx & 2) | int(vertical))
+ {
+ }
+
+ //---------------------------------------------------------------------
+ unsigned orthogonal_quadrant() const { return s_orthogonal_quadrant[octant]; }
+ unsigned diagonal_quadrant() const { return s_diagonal_quadrant[octant]; }
+
+ //---------------------------------------------------------------------
+ bool same_orthogonal_quadrant(const line_parameters& lp) const
+ {
+ return s_orthogonal_quadrant[octant] == s_orthogonal_quadrant[lp.octant];
+ }
+
+ //---------------------------------------------------------------------
+ bool same_diagonal_quadrant(const line_parameters& lp) const
+ {
+ return s_diagonal_quadrant[octant] == s_diagonal_quadrant[lp.octant];
+ }
+
+ //---------------------------------------------------------------------
+ int x1, y1, x2, y2, dx, dy, sx, sy;
+ bool vertical;
+ int inc;
+ int len;
+ int octant;
+
+ //---------------------------------------------------------------------
+ static int8u s_orthogonal_quadrant[8];
+ static int8u s_diagonal_quadrant[8];
+ };
+
+
+
+ // See Implementation agg_line_aa_basics.cpp
+
+ //----------------------------------------------------------------bisectrix
+ void bisectrix(const line_parameters& l1,
+ const line_parameters& l2,
+ int* x, int* y);
+
+
+ //-------------------------------------------fix_degenerate_bisectrix_start
+ void inline fix_degenerate_bisectrix_start(const line_parameters& lp,
+ int* x, int* y)
+ {
+ int d = int((double(*x - lp.x2) * double(lp.y2 - lp.y1) -
+ double(*y - lp.y2) * double(lp.x2 - lp.x1)) / lp.len);
+ if(d < line_subpixel_size)
+ {
+ *x = lp.x1 + (lp.y2 - lp.y1);
+ *y = lp.y1 - (lp.x2 - lp.x1);
+ }
+ }
+
+
+ //---------------------------------------------fix_degenerate_bisectrix_end
+ void inline fix_degenerate_bisectrix_end(const line_parameters& lp,
+ int* x, int* y)
+ {
+ int d = int((double(*x - lp.x2) * double(lp.y2 - lp.y1) -
+ double(*y - lp.y2) * double(lp.x2 - lp.x1)) / lp.len);
+ if(d < line_subpixel_size)
+ {
+ *x = lp.x2 + (lp.y2 - lp.y1);
+ *y = lp.y2 - (lp.x2 - lp.x1);
+ }
+ }
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_math.h b/agg/inc/agg_math.h
new file mode 100755
index 000000000000..4aef4df9638e
--- /dev/null
+++ b/agg/inc/agg_math.h
@@ -0,0 +1,247 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_MATH_INCLUDED
+#define AGG_MATH_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ const double intersection_epsilon = 1.0e-8;
+
+ //------------------------------------------------------calc_point_location
+ AGG_INLINE double calc_point_location(double x1, double y1,
+ double x2, double y2,
+ double x, double y)
+ {
+ return (x - x2) * (y2 - y1) - (y - y2) * (x2 - x1);
+ }
+
+
+ //--------------------------------------------------------point_in_triangle
+ AGG_INLINE bool point_in_triangle(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double x, double y)
+ {
+ bool cp1 = calc_point_location(x1, y1, x2, y2, x, y) < 0.0;
+ bool cp2 = calc_point_location(x2, y2, x3, y3, x, y) < 0.0;
+ bool cp3 = calc_point_location(x3, y3, x1, y1, x, y) < 0.0;
+ return cp1 == cp2 && cp2 == cp3 && cp3 == cp1;
+ }
+
+
+ //-----------------------------------------------------------calc_distance
+ AGG_INLINE double calc_distance(double x1, double y1, double x2, double y2)
+ {
+ double dx = x2-x1;
+ double dy = y2-y1;
+ return sqrt(dx * dx + dy * dy);
+ }
+
+
+ //------------------------------------------------calc_point_line_distance
+ AGG_INLINE double calc_point_line_distance(double x1, double y1,
+ double x2, double y2,
+ double x, double y)
+ {
+ double dx = x2-x1;
+ double dy = y2-y1;
+ return ((x - x2) * dy - (y - y2) * dx) / sqrt(dx * dx + dy * dy);
+ }
+
+
+ //-------------------------------------------------------calc_intersection
+ AGG_INLINE bool calc_intersection(double ax, double ay, double bx, double by,
+ double cx, double cy, double dx, double dy,
+ double* x, double* y)
+ {
+ double num = (ay-cy) * (dx-cx) - (ax-cx) * (dy-cy);
+ double den = (bx-ax) * (dy-cy) - (by-ay) * (dx-cx);
+ if(fabs(den) < intersection_epsilon) return false;
+ double r = num / den;
+ *x = ax + r * (bx-ax);
+ *y = ay + r * (by-ay);
+ return true;
+ }
+
+
+ //--------------------------------------------------------calc_orthogonal
+ AGG_INLINE void calc_orthogonal(double thickness,
+ double x1, double y1,
+ double x2, double y2,
+ double* x, double* y)
+ {
+ double dx = x2 - x1;
+ double dy = y2 - y1;
+ double d = sqrt(dx*dx + dy*dy);
+ *x = thickness * dy / d;
+ *y = thickness * dx / d;
+ }
+
+
+ //--------------------------------------------------------dilate_triangle
+ AGG_INLINE void dilate_triangle(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double *x, double* y,
+ double d)
+ {
+ double dx1=0.0;
+ double dy1=0.0;
+ double dx2=0.0;
+ double dy2=0.0;
+ double dx3=0.0;
+ double dy3=0.0;
+ double loc = calc_point_location(x1, y1, x2, y2, x3, y3);
+ if(fabs(loc) > intersection_epsilon)
+ {
+ if(calc_point_location(x1, y1, x2, y2, x3, y3) > 0.0)
+ {
+ d = -d;
+ }
+ calc_orthogonal(d, x1, y1, x2, y2, &dx1, &dy1);
+ calc_orthogonal(d, x2, y2, x3, y3, &dx2, &dy2);
+ calc_orthogonal(d, x3, y3, x1, y1, &dx3, &dy3);
+ }
+ *x++ = x1 + dx1; *y++ = y1 - dy1;
+ *x++ = x2 + dx1; *y++ = y2 - dy1;
+ *x++ = x2 + dx2; *y++ = y2 - dy2;
+ *x++ = x3 + dx2; *y++ = y3 - dy2;
+ *x++ = x3 + dx3; *y++ = y3 - dy3;
+ *x++ = x1 + dx3; *y++ = y1 - dy3;
+ }
+
+ //-------------------------------------------------------calc_polygon_area
+ template<class Storage> double calc_polygon_area(const Storage& st)
+ {
+ unsigned i;
+ double sum = 0.0;
+ double x = st[0].x;
+ double y = st[0].y;
+ double xs = x;
+ double ys = y;
+
+ for(i = 1; i < st.size(); i++)
+ {
+ const typename Storage::value_type& v = st[i];
+ sum += x * v.y - y * v.x;
+ x = v.x;
+ y = v.y;
+ }
+ return (sum + x * ys - y * xs) * 0.5;
+ }
+
+ //------------------------------------------------------------------------
+ // Tables for fast sqrt
+ extern int16u g_sqrt_table[1024];
+ extern int8 g_elder_bit_table[256];
+
+
+ //---------------------------------------------------------------fast_sqrt
+ //Fast integer Sqrt - really fast: no cycles, divisions or multiplications
+ #if defined(_MSC_VER)
+ #pragma warning(push)
+ #pragma warning(disable : 4035) //Disable warning "no return value"
+ #endif
+ AGG_INLINE unsigned fast_sqrt(unsigned val)
+ {
+ #if defined(_M_IX86) && defined(_MSC_VER) && !defined(AGG_NO_ASM)
+ //For Ix86 family processors this assembler code is used.
+ //The key command here is bsr - determination the number of the most
+ //significant bit of the value. For other processors
+ //(and maybe compilers) the pure C "#else" section is used.
+ __asm
+ {
+ mov ebx, val
+ mov edx, 11
+ bsr ecx, ebx
+ sub ecx, 9
+ jle less_than_9_bits
+ shr ecx, 1
+ adc ecx, 0
+ sub edx, ecx
+ shl ecx, 1
+ shr ebx, cl
+ less_than_9_bits:
+ xor eax, eax
+ mov ax, g_sqrt_table[ebx*2]
+ mov ecx, edx
+ shr eax, cl
+ }
+ #else
+
+ //This code is actually pure C and portable to most
+ //arcitectures including 64bit ones.
+ unsigned t = val;
+ int bit=0;
+ unsigned shift = 11;
+
+ //The following piece of code is just an emulation of the
+ //Ix86 assembler command "bsr" (see above). However on old
+ //Intels (like Intel MMX 233MHz) this code is about twice
+ //faster (sic!) then just one "bsr". On PIII and PIV the
+ //bsr is optimized quite well.
+ bit = t >> 24;
+ if(bit)
+ {
+ bit = g_elder_bit_table[bit] + 24;
+ }
+ else
+ {
+ bit = (t >> 16) & 0xFF;
+ if(bit)
+ {
+ bit = g_elder_bit_table[bit] + 16;
+ }
+ else
+ {
+ bit = (t >> 8) & 0xFF;
+ if(bit)
+ {
+ bit = g_elder_bit_table[bit] + 8;
+ }
+ else
+ {
+ bit = g_elder_bit_table[t];
+ }
+ }
+ }
+
+ //This is calculation sqrt itself.
+ bit -= 9;
+ if(bit > 0)
+ {
+ bit = (bit >> 1) + (bit & 1);
+ shift -= bit;
+ val >>= (bit << 1);
+ }
+ return g_sqrt_table[val] >> shift;
+ #endif
+ }
+ #if defined(_MSC_VER)
+ #pragma warning(pop)
+ #endif
+
+
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_math_stroke.h b/agg/inc/agg_math_stroke.h
new file mode 100755
index 000000000000..84d83738a9cd
--- /dev/null
+++ b/agg/inc/agg_math_stroke.h
@@ -0,0 +1,340 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Stroke math
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_STROKE_MATH_INCLUDED
+#define AGG_STROKE_MATH_INCLUDED
+
+#include "agg_math.h"
+#include "agg_vertex_sequence.h"
+
+namespace agg
+{
+ //-------------------------------------------------------------line_cap_e
+ enum line_cap_e
+ {
+ butt_cap,
+ square_cap,
+ round_cap
+ };
+
+ //------------------------------------------------------------line_join_e
+ enum line_join_e
+ {
+ miter_join,
+ miter_join_revert,
+ round_join,
+ bevel_join
+ };
+
+ // Minimal angle to calculate round joins, less than 0.1 degree.
+ const double stroke_theta = 0.001; //----stroke_theta
+
+
+ //--------------------------------------------------------stroke_calc_arc
+ template<class VertexConsumer>
+ void stroke_calc_arc(VertexConsumer& out_vertices,
+ double x, double y,
+ double dx1, double dy1,
+ double dx2, double dy2,
+ double width,
+ double approximation_scale)
+ {
+ typedef typename VertexConsumer::value_type coord_type;
+
+ //// Check if we actually need the arc (this optimization works bad)
+ ////-----------------
+ //double dd = calc_distance(dx1, dy1, dx2, dy2);
+ //if(dd < 1.0/approximation_scale)
+ //{
+ // out_vertices.add(coord_type(x + dx1, y + dy1));
+ // if(dd > 0.25/approximation_scale)
+ // {
+ // out_vertices.add(coord_type(x + dx2, y + dy2));
+ // }
+ // return;
+ //}
+
+ double a1 = atan2(dy1, dx1);
+ double a2 = atan2(dy2, dx2);
+ double da = a1 - a2;
+
+ if(fabs(da) < stroke_theta)
+ {
+ out_vertices.add(coord_type((x + x + dx1 + dx2) * 0.5,
+ (y + y + dy1 + dy2) * 0.5));
+ return;
+ }
+
+ bool ccw = da > 0.0 && da < pi;
+
+ if(width < 0) width = -width;
+ da = fabs(1.0 / (width * approximation_scale));
+ if(!ccw)
+ {
+ if(a1 > a2) a2 += 2 * pi;
+ while(a1 < a2)
+ {
+ out_vertices.add(coord_type(x + cos(a1) * width, y + sin(a1) * width));
+ a1 += da;
+ }
+ }
+ else
+ {
+ if(a1 < a2) a2 -= 2 * pi;
+ while(a1 > a2)
+ {
+ out_vertices.add(coord_type(x + cos(a1) * width, y + sin(a1) * width));
+ a1 -= da;
+ }
+ }
+ out_vertices.add(coord_type(x + dx2, y + dy2));
+ }
+
+
+
+ //-------------------------------------------------------stroke_calc_miter
+ template<class VertexConsumer>
+ void stroke_calc_miter(VertexConsumer& out_vertices,
+ const vertex_dist& v0,
+ const vertex_dist& v1,
+ const vertex_dist& v2,
+ double dx1, double dy1,
+ double dx2, double dy2,
+ double width,
+ bool revert_flag,
+ double miter_limit)
+ {
+ typedef typename VertexConsumer::value_type coord_type;
+
+ double xi = v1.x;
+ double yi = v1.y;
+
+ if(!calc_intersection(v0.x + dx1, v0.y - dy1,
+ v1.x + dx1, v1.y - dy1,
+ v1.x + dx2, v1.y - dy2,
+ v2.x + dx2, v2.y - dy2,
+ &xi, &yi))
+ {
+ // The calculation didn't succeed, most probaly
+ // the three points lie one straight line
+ //----------------
+ if(calc_distance(dx1, -dy1, dx2, -dy2) < width * 0.025)
+ {
+ // This case means that the next segment continues
+ // the previous one (straight line)
+ //-----------------
+ out_vertices.add(coord_type(v1.x + dx1, v1.y - dy1));
+ }
+ else
+ {
+ // This case means that the next segment goes back
+ //-----------------
+ if(revert_flag)
+ {
+ out_vertices.add(coord_type(v1.x + dx1, v1.y - dy1));
+ out_vertices.add(coord_type(v1.x + dx2, v1.y - dy2));
+ }
+ else
+ {
+ // If no miter-revert, calcuate new dx1, dy1, dx2, dy2
+ out_vertices.add(coord_type(v1.x + dx1 + dy1 * miter_limit,
+ v1.y - dy1 + dx1 * miter_limit));
+ out_vertices.add(coord_type(v1.x + dx2 - dy2 * miter_limit,
+ v1.y - dy2 - dx2 * miter_limit));
+ }
+ }
+ }
+ else
+ {
+ double d1 = calc_distance(v1.x, v1.y, xi, yi);
+ double lim = width * miter_limit;
+ if(d1 > lim)
+ {
+ // Miter limit exceeded
+ //------------------------
+ if(revert_flag)
+ {
+ // For the compatibility with SVG, PDF, etc,
+ // we use a simple bevel join instead of
+ // "smart" bevel
+ //-------------------
+ out_vertices.add(coord_type(v1.x + dx1, v1.y - dy1));
+ out_vertices.add(coord_type(v1.x + dx2, v1.y - dy2));
+ }
+ else
+ {
+ // Smart bevel that cuts the miter at the limit point
+ //-------------------
+ d1 = lim / d1;
+ double x1 = v1.x + dx1;
+ double y1 = v1.y - dy1;
+ double x2 = v1.x + dx2;
+ double y2 = v1.y - dy2;
+
+ x1 += (xi - x1) * d1;
+ y1 += (yi - y1) * d1;
+ x2 += (xi - x2) * d1;
+ y2 += (yi - y2) * d1;
+ out_vertices.add(coord_type(x1, y1));
+ out_vertices.add(coord_type(x2, y2));
+ }
+ }
+ else
+ {
+ // Inside the miter limit
+ //---------------------
+ out_vertices.add(coord_type(xi, yi));
+ }
+ }
+ }
+
+
+
+
+
+
+ //--------------------------------------------------------stroke_calc_cap
+ template<class VertexConsumer>
+ void stroke_calc_cap(VertexConsumer& out_vertices,
+ const vertex_dist& v0,
+ const vertex_dist& v1,
+ double len,
+ line_cap_e line_cap,
+ double width,
+ double approximation_scale)
+ {
+ typedef typename VertexConsumer::value_type coord_type;
+
+ out_vertices.remove_all();
+
+ double dx1 = width * (v1.y - v0.y) / len;
+ double dy1 = width * (v1.x - v0.x) / len;
+ double dx2 = 0;
+ double dy2 = 0;
+
+ if(line_cap == square_cap)
+ {
+ dx2 = dy1;
+ dy2 = dx1;
+ }
+
+ if(line_cap == round_cap)
+ {
+ double a1 = atan2(dy1, -dx1);
+ double a2 = a1 + pi;
+ double da = fabs(1.0 / (width * approximation_scale));
+ while(a1 < a2)
+ {
+ out_vertices.add(coord_type(v0.x + cos(a1) * width,
+ v0.y + sin(a1) * width));
+ a1 += da;
+ }
+ out_vertices.add(coord_type(v0.x + dx1, v0.y - dy1));
+ }
+ else
+ {
+ out_vertices.add(coord_type(v0.x - dx1 - dx2, v0.y + dy1 - dy2));
+ out_vertices.add(coord_type(v0.x + dx1 - dx2, v0.y - dy1 - dy2));
+ }
+ }
+
+
+
+ //-------------------------------------------------------stroke_calc_join
+ template<class VertexConsumer>
+ void stroke_calc_join(VertexConsumer& out_vertices,
+ const vertex_dist& v0,
+ const vertex_dist& v1,
+ const vertex_dist& v2,
+ double len1,
+ double len2,
+ double width,
+ line_join_e line_join,
+ line_join_e inner_line_join,
+ double miter_limit,
+ double inner_miter_limit,
+ double approximation_scale)
+ {
+ typedef typename VertexConsumer::value_type coord_type;
+
+ double dx1, dy1, dx2, dy2;
+
+ dx1 = width * (v1.y - v0.y) / len1;
+ dy1 = width * (v1.x - v0.x) / len1;
+
+ dx2 = width * (v2.y - v1.y) / len2;
+ dy2 = width * (v2.x - v1.x) / len2;
+
+ out_vertices.remove_all();
+
+ if(calc_point_location(v0.x, v0.y, v1.x, v1.y, v2.x, v2.y) > 0.0)
+ {
+ // Inner join
+ //---------------
+ stroke_calc_miter(out_vertices,
+ v0, v1, v2, dx1, dy1, dx2, dy2,
+ width,
+ inner_line_join == miter_join_revert,
+ inner_miter_limit);
+ }
+ else
+ {
+ // Outer join
+ //---------------
+ switch(line_join)
+ {
+ case miter_join:
+ stroke_calc_miter(out_vertices,
+ v0, v1, v2, dx1, dy1, dx2, dy2,
+ width,
+ false,
+ miter_limit);
+ break;
+
+ case miter_join_revert:
+ stroke_calc_miter(out_vertices,
+ v0, v1, v2, dx1, dy1, dx2, dy2,
+ width,
+ true,
+ miter_limit);
+ break;
+
+ case round_join:
+ stroke_calc_arc(out_vertices,
+ v1.x, v1.y, dx1, -dy1, dx2, -dy2,
+ width, approximation_scale);
+ break;
+
+ default: // Bevel join
+ out_vertices.add(coord_type(v1.x + dx1, v1.y - dy1));
+ if(calc_distance(dx1, dy1, dx2, dy2) > approximation_scale * 0.25)
+ {
+ out_vertices.add(coord_type(v1.x + dx2, v1.y - dy2));
+ }
+ break;
+ }
+ }
+ }
+
+
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_path_storage.h b/agg/inc/agg_path_storage.h
new file mode 100755
index 000000000000..8cdb9b9bbeb6
--- /dev/null
+++ b/agg/inc/agg_path_storage.h
@@ -0,0 +1,364 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PATH_STORAGE_INCLUDED
+#define AGG_PATH_STORAGE_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------path_storage
+ // A container to store vertices with their flags.
+ // A path consists of a number of contours separated with "move_to"
+ // commands. The path storage can keep and maintain more than one
+ // path.
+ // To navigate to the beginning of a particular path, use rewind(path_id);
+ // Where path_id is what start_new_path() returns. So, when you call
+ // start_new_path() you need to store its return value somewhere else
+ // to navigate to the path afterwards.
+ //
+ // See Implementation: agg_path_storage.cpp
+ // See also: vertex_source concept
+ //------------------------------------------------------------------------
+ class path_storage
+ {
+ // Allocation parameters
+ enum
+ {
+ block_shift = 8,
+ block_size = 1 << block_shift,
+ block_mask = block_size - 1,
+ block_pool = 256
+ };
+
+ public:
+
+ //--------------------------------------------------------------------
+ class const_iterator
+ {
+ void vertex()
+ {
+ if(m_vertex_idx < m_path->total_vertices())
+ {
+ m_vertex.cmd = m_path->vertex(m_vertex_idx, &m_vertex.x, &m_vertex.y);
+ }
+ else
+ {
+ m_vertex.cmd = path_cmd_stop;
+ m_vertex.x = m_vertex.y = 0.0;
+ }
+ }
+
+ public:
+ const_iterator() {}
+ const_iterator(unsigned cmd) { m_vertex.cmd = cmd; }
+ const_iterator(const const_iterator& i) :
+ m_path(i.m_path),
+ m_vertex_idx(i.m_vertex_idx),
+ m_vertex(i.m_vertex)
+ {
+ }
+
+ const_iterator(const path_storage& p, unsigned id) :
+ m_path(&p),
+ m_vertex_idx(id)
+ {
+ vertex();
+ }
+
+ const_iterator& operator++()
+ {
+ ++m_vertex_idx;
+ vertex();
+ return *this;
+ }
+
+ const vertex_type& operator*() const { return m_vertex; }
+ const vertex_type* operator->() const { return &m_vertex; }
+
+ bool operator != (const const_iterator& i)
+ {
+ return m_vertex.cmd != i.m_vertex.cmd;
+ }
+
+ private:
+ const path_storage* m_path;
+ unsigned m_vertex_idx;
+ vertex_type m_vertex;
+ };
+
+ ~path_storage();
+ path_storage();
+ path_storage(const path_storage& ps);
+
+ void remove_all();
+
+ unsigned last_vertex(double* x, double* y) const;
+ unsigned prev_vertex(double* x, double* y) const;
+
+ void rel_to_abs(double* x, double* y) const;
+
+ void move_to(double x, double y);
+ void move_rel(double dx, double dy);
+
+ void line_to(double x, double y);
+ void line_rel(double dx, double dy);
+
+ void arc_to(double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double x, double y);
+
+ void arc_rel(double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double dx, double dy);
+
+ void curve3(double x_ctrl, double y_ctrl,
+ double x_to, double y_to);
+
+ void curve3_rel(double dx_ctrl, double dy_ctrl,
+ double dx_to, double dy_to);
+
+ void curve3(double x_to, double y_to);
+
+ void curve3_rel(double dx_to, double dy_to);
+
+ void curve4(double x_ctrl1, double y_ctrl1,
+ double x_ctrl2, double y_ctrl2,
+ double x_to, double y_to);
+
+ void curve4_rel(double dx_ctrl1, double dy_ctrl1,
+ double dx_ctrl2, double dy_ctrl2,
+ double dx_to, double dy_to);
+
+ void curve4(double x_ctrl2, double y_ctrl2,
+ double x_to, double y_to);
+
+ void curve4_rel(double x_ctrl2, double y_ctrl2,
+ double x_to, double y_to);
+
+
+ void end_poly(unsigned flags = path_flags_close);
+
+ void close_polygon(unsigned flags = path_flags_none)
+ {
+ end_poly(path_flags_close | flags);
+ }
+
+ void add_poly(const double* vertices, unsigned num,
+ bool solid_path = false,
+ unsigned end_flags = path_flags_none);
+
+ template<class VertexSource>
+ void add_path(VertexSource& vs,
+ unsigned path_id = 0,
+ bool solid_path = true)
+ {
+ double x, y;
+ unsigned cmd;
+ vs.rewind(path_id);
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ if(is_move_to(cmd) && solid_path && m_total_vertices)
+ {
+ cmd = path_cmd_line_to;
+ }
+ add_vertex(x, y, cmd);
+ }
+ }
+
+ unsigned start_new_path();
+
+ void copy_from(const path_storage& ps);
+ const path_storage& operator = (const path_storage& ps)
+ {
+ copy_from(ps);
+ return *this;
+ }
+
+
+ unsigned total_vertices() const { return m_total_vertices; }
+ unsigned vertex(unsigned idx, double* x, double* y) const
+ {
+ unsigned nb = idx >> block_shift;
+ const double* pv = m_coord_blocks[nb] + ((idx & block_mask) << 1);
+ *x = *pv++;
+ *y = *pv;
+ return m_cmd_blocks[nb][idx & block_mask];
+ }
+ unsigned command(unsigned idx) const
+ {
+ return m_cmd_blocks[idx >> block_shift][idx & block_mask];
+ }
+
+ void rewind(unsigned path_id);
+ unsigned vertex(double* x, double* y);
+
+ const_iterator begin(unsigned id) const { return const_iterator(*this, id); }
+ const_iterator begin() const { return const_iterator(*this, 0); }
+ const_iterator end() const { return const_iterator(path_cmd_stop); }
+
+ // Arrange the orientation of all the polygons. After calling this
+ // method all the polygons will have the same orientation
+ // determined by the new_orientation flag, i.e.,
+ // path_flags_cw or path_flags_ccw
+ unsigned arrange_orientations(unsigned path_id, path_flags_e new_orientation);
+ void arrange_orientations_all_paths(path_flags_e new_orientation);
+
+ // Flip all the vertices horizontally or vertically
+ void flip_x(double x1, double x2);
+ void flip_y(double y1, double y2);
+
+ // This function adds a vertex with its flags directly. Since there's no
+ // checking for errors, keeping proper path integrity is the responsibility
+ // of the caller. It can be said the function is "not very public".
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Allows you to modify vertex coordinates. The caller must know
+ // the index of the vertex.
+ void modify_vertex(unsigned idx, double x, double y)
+ {
+ double* pv = m_coord_blocks[idx >> block_shift] + ((idx & block_mask) << 1);
+ *pv++ = x;
+ *pv = y;
+ }
+
+ // Allows you to modify vertex command. The caller must know
+ // the index of the vertex.
+ void modify_command(unsigned idx, unsigned cmd)
+ {
+ m_cmd_blocks[idx >> block_shift][idx & block_mask] = (unsigned char)cmd;
+ }
+
+
+ private:
+ void allocate_block(unsigned nb);
+ unsigned char* storage_ptrs(double** xy_ptr);
+ unsigned perceive_polygon_orientation(unsigned idx,
+ double xs, double ys,
+ unsigned* orientation);
+ void reverse_polygon(unsigned start, unsigned end);
+
+ private:
+ unsigned m_total_vertices;
+ unsigned m_total_blocks;
+ unsigned m_max_blocks;
+ double** m_coord_blocks;
+ unsigned char** m_cmd_blocks;
+ unsigned m_iterator;
+ };
+
+
+ //------------------------------------------------------------------------
+ inline unsigned path_storage::vertex(double* x, double* y)
+ {
+ if(m_iterator >= m_total_vertices) return path_cmd_stop;
+ return vertex(m_iterator++, x, y);
+ }
+
+ //------------------------------------------------------------------------
+ inline unsigned path_storage::prev_vertex(double* x, double* y) const
+ {
+ if(m_total_vertices > 1)
+ {
+ return vertex(m_total_vertices - 2, x, y);
+ }
+ return path_cmd_stop;
+ }
+
+ //------------------------------------------------------------------------
+ inline unsigned path_storage::last_vertex(double* x, double* y) const
+ {
+ if(m_total_vertices)
+ {
+ return vertex(m_total_vertices - 1, x, y);
+ }
+ return path_cmd_stop;
+ }
+
+ //------------------------------------------------------------------------
+ inline void path_storage::rel_to_abs(double* x, double* y) const
+ {
+ if(m_total_vertices)
+ {
+ double x2;
+ double y2;
+ if(is_vertex(vertex(m_total_vertices - 1, &x2, &y2)))
+ {
+ *x += x2;
+ *y += y2;
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------
+ inline unsigned char* path_storage::storage_ptrs(double** xy_ptr)
+ {
+ unsigned nb = m_total_vertices >> block_shift;
+ if(nb >= m_total_blocks)
+ {
+ allocate_block(nb);
+ }
+ *xy_ptr = m_coord_blocks[nb] + ((m_total_vertices & block_mask) << 1);
+ return m_cmd_blocks[nb] + (m_total_vertices & block_mask);
+ }
+
+
+ //------------------------------------------------------------------------
+ inline void path_storage::add_vertex(double x, double y, unsigned cmd)
+ {
+ double* coord_ptr = 0;
+ unsigned char* cmd_ptr = storage_ptrs(&coord_ptr);
+ *cmd_ptr = (unsigned char)cmd;
+ *coord_ptr++ = x;
+ *coord_ptr = y;
+ m_total_vertices++;
+ }
+
+ //------------------------------------------------------------------------
+ inline void path_storage::move_to(double x, double y)
+ {
+ add_vertex(x, y, path_cmd_move_to);
+ }
+
+ //------------------------------------------------------------------------
+ inline void path_storage::move_rel(double dx, double dy)
+ {
+ rel_to_abs(&dx, &dy);
+ add_vertex(dx, dy, path_cmd_move_to);
+ }
+
+ //------------------------------------------------------------------------
+ inline void path_storage::line_to(double x, double y)
+ {
+ add_vertex(x, y, path_cmd_line_to);
+ }
+
+ //------------------------------------------------------------------------
+ inline void path_storage::line_rel(double dx, double dy)
+ {
+ rel_to_abs(&dx, &dy);
+ add_vertex(dx, dy, path_cmd_line_to);
+ }
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_path_storage_integer.h b/agg/inc/agg_path_storage_integer.h
new file mode 100755
index 000000000000..841bd10aa27a
--- /dev/null
+++ b/agg/inc/agg_path_storage_integer.h
@@ -0,0 +1,300 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PATH_STORAGE_INTEGER_INCLUDED
+#define AGG_PATH_STORAGE_INTEGER_INCLUDED
+
+#include <string.h>
+#include "agg_array.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------vertex_integer
+ template<class T, unsigned CoordShift=6> struct vertex_integer
+ {
+ enum path_cmd
+ {
+ cmd_move_to = 0,
+ cmd_line_to = 1,
+ cmd_curve3 = 2,
+ cmd_curve4 = 3
+ };
+
+ enum
+ {
+ coord_shift = CoordShift,
+ coord_mult = 1 << coord_shift
+ };
+
+ T x,y;
+ vertex_integer() {}
+ vertex_integer(T x_, T y_, unsigned flag) :
+ x(((x_ << 1) & ~1) | (flag & 1)),
+ y(((y_ << 1) & ~1) | (flag >> 1)) {}
+
+ unsigned vertex(double* x_, double* y_,
+ double dx=0, double dy=0,
+ double scale=1.0) const
+ {
+ *x_ = dx + (double(x >> 1) / coord_mult) * scale;
+ *y_ = dy + (double(y >> 1) / coord_mult) * scale;
+ switch(((y & 1) << 1) | (x & 1))
+ {
+ case cmd_move_to: return path_cmd_move_to;
+ case cmd_line_to: return path_cmd_line_to;
+ case cmd_curve3: return path_cmd_curve3;
+ case cmd_curve4: return path_cmd_curve4;
+ }
+ return path_cmd_stop;
+ }
+ };
+
+
+ //---------------------------------------------------path_storage_integer
+ template<class T, unsigned CoordShift=6> class path_storage_integer
+ {
+ public:
+ typedef vertex_integer<T, CoordShift> vertex_integer_type;
+
+ //--------------------------------------------------------------------
+ path_storage_integer() : m_storage(), m_vertex_idx(0), m_closed(true) {}
+
+ //--------------------------------------------------------------------
+ void remove_all() { m_storage.remove_all(); }
+
+ //--------------------------------------------------------------------
+ void move_to(T x, T y)
+ {
+ m_storage.add(vertex_integer_type(x, y, vertex_integer_type::cmd_move_to));
+ }
+
+ //--------------------------------------------------------------------
+ void line_to(T x, T y)
+ {
+ m_storage.add(vertex_integer_type(x, y, vertex_integer_type::cmd_line_to));
+ }
+
+ //--------------------------------------------------------------------
+ void curve3(T x_ctrl, T y_ctrl,
+ T x_to, T y_to)
+ {
+ m_storage.add(vertex_integer_type(x_ctrl, y_ctrl, vertex_integer_type::cmd_curve3));
+ m_storage.add(vertex_integer_type(x_to, y_to, vertex_integer_type::cmd_curve3));
+ }
+
+ //--------------------------------------------------------------------
+ void curve4(T x_ctrl1, T y_ctrl1,
+ T x_ctrl2, T y_ctrl2,
+ T x_to, T y_to)
+ {
+ m_storage.add(vertex_integer_type(x_ctrl1, y_ctrl1, vertex_integer_type::cmd_curve4));
+ m_storage.add(vertex_integer_type(x_ctrl2, y_ctrl2, vertex_integer_type::cmd_curve4));
+ m_storage.add(vertex_integer_type(x_to, y_to, vertex_integer_type::cmd_curve4));
+ }
+
+ //--------------------------------------------------------------------
+ void close_polygon() {}
+
+ //--------------------------------------------------------------------
+ unsigned size() const { return m_storage.size(); }
+ unsigned vertex(unsigned idx, T* x, T* y) const
+ {
+ const vertex_integer_type& v = m_storage[idx];
+ *x = v.x >> 1;
+ *y = v.y >> 1;
+ return ((v.y & 1) << 1) | (v.x & 1);
+ }
+
+ //--------------------------------------------------------------------
+ unsigned byte_size() const { return m_storage.size() * sizeof(vertex_integer_type); }
+ void serialize(int8u* ptr) const
+ {
+ unsigned i;
+ for(i = 0; i < m_storage.size(); i++)
+ {
+ memcpy(ptr, &m_storage[i], sizeof(vertex_integer_type));
+ ptr += sizeof(vertex_integer_type);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void rewind(unsigned)
+ {
+ m_vertex_idx = 0;
+ m_closed = true;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned vertex(double* x, double* y)
+ {
+ if(m_storage.size() < 2 || m_vertex_idx > m_storage.size())
+ {
+ *x = 0;
+ *y = 0;
+ return path_cmd_stop;
+ }
+ if(m_vertex_idx == m_storage.size())
+ {
+ *x = 0;
+ *y = 0;
+ ++m_vertex_idx;
+ return path_cmd_end_poly | path_flags_close;
+ }
+ unsigned cmd = m_storage[m_vertex_idx].vertex(x, y);
+ if(is_move_to(cmd) && !m_closed)
+ {
+ *x = 0;
+ *y = 0;
+ m_closed = true;
+ return path_cmd_end_poly | path_flags_close;
+ }
+ m_closed = false;
+ ++m_vertex_idx;
+ return cmd;
+ }
+
+ //--------------------------------------------------------------------
+ rect_d bounding_rect() const
+ {
+ rect_d bounds(1e100, 1e100, -1e100, -1e100);
+ if(m_storage.size() == 0)
+ {
+ bounds.x1 = bounds.y1 = bounds.x2 = bounds.y2 = 0.0;
+ }
+ else
+ {
+ unsigned i;
+ for(i = 0; i < m_storage.size(); i++)
+ {
+ double x, y;
+ m_storage[i].vertex(&x, &y);
+ if(x < bounds.x1) bounds.x1 = x;
+ if(y < bounds.y1) bounds.y1 = y;
+ if(x > bounds.x2) bounds.x2 = x;
+ if(y > bounds.y2) bounds.y2 = y;
+ }
+ }
+ return bounds;
+ }
+
+
+ private:
+ pod_deque<vertex_integer_type, 6> m_storage;
+ unsigned m_vertex_idx;
+ bool m_closed;
+ };
+
+
+
+
+ //-----------------------------------------serialized_integer_path_adaptor
+ template<class T, unsigned CoordShift=6> class serialized_integer_path_adaptor
+ {
+ public:
+ typedef vertex_integer<T, CoordShift> vertex_integer_type;
+
+ //--------------------------------------------------------------------
+ serialized_integer_path_adaptor() :
+ m_data(0),
+ m_end(0),
+ m_ptr(0),
+ m_dx(0.0),
+ m_dy(0.0),
+ m_scale(1.0),
+ m_vertices(0)
+ {}
+
+ //--------------------------------------------------------------------
+ serialized_integer_path_adaptor(const int8u* data, unsigned size,
+ double dx, double dy) :
+ m_data(data),
+ m_end(data + size),
+ m_ptr(data),
+ m_dx(dx),
+ m_dy(dy),
+ m_vertices(0)
+ {}
+
+ //--------------------------------------------------------------------
+ void init(const int8u* data, unsigned size,
+ double dx, double dy, double scale=1.0)
+ {
+ m_data = data;
+ m_end = data + size;
+ m_ptr = data;
+ m_dx = dx;
+ m_dy = dy;
+ m_scale = scale;
+ m_vertices = 0;
+ }
+
+
+ //--------------------------------------------------------------------
+ void rewind(unsigned)
+ {
+ m_ptr = m_data;
+ m_vertices = 0;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned vertex(double* x, double* y)
+ {
+ if(m_data == 0 || m_ptr > m_end)
+ {
+ *x = 0;
+ *y = 0;
+ return path_cmd_stop;
+ }
+
+ if(m_ptr == m_end)
+ {
+ *x = 0;
+ *y = 0;
+ m_ptr += sizeof(vertex_integer_type);
+ return path_cmd_end_poly | path_flags_close;
+ }
+
+ vertex_integer_type v;
+ memcpy(&v, m_ptr, sizeof(vertex_integer_type));
+ unsigned cmd = v.vertex(x, y, m_dx, m_dy, m_scale);
+ if(is_move_to(cmd) && m_vertices > 2)
+ {
+ *x = 0;
+ *y = 0;
+ m_vertices = 0;
+ return path_cmd_end_poly | path_flags_close;
+ }
+ ++m_vertices;
+ m_ptr += sizeof(vertex_integer_type);
+ return cmd;
+ }
+
+ private:
+ const int8u* m_data;
+ const int8u* m_end;
+ const int8u* m_ptr;
+ double m_dx;
+ double m_dy;
+ double m_scale;
+ unsigned m_vertices;
+ };
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_pattern_filters_rgba.h b/agg/inc/agg_pattern_filters_rgba.h
new file mode 100755
index 000000000000..5d194b2e39ba
--- /dev/null
+++ b/agg/inc/agg_pattern_filters_rgba.h
@@ -0,0 +1,122 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_PATTERN_FILTERS_RGBA8_INCLUDED
+#define AGG_PATTERN_FILTERS_RGBA8_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_line_aa_basics.h"
+#include "agg_color_rgba.h"
+
+
+namespace agg
+{
+
+ //=======================================================pattern_filter_nn
+ template<class ColorT> struct pattern_filter_nn
+ {
+ typedef ColorT color_type;
+ static unsigned dilation() { return 0; }
+
+ static void AGG_INLINE pixel_low_res(color_type const* const* buf,
+ color_type* p, int x, int y)
+ {
+ *p = buf[y][x];
+ }
+
+ static void AGG_INLINE pixel_high_res(color_type const* const* buf,
+ color_type* p, int x, int y)
+ {
+ *p = buf[y >> line_subpixel_shift]
+ [x >> line_subpixel_shift];
+ }
+ };
+
+ typedef pattern_filter_nn<rgba8> pattern_filter_nn_rgba8;
+ typedef pattern_filter_nn<rgba16> pattern_filter_nn_rgba16;
+
+
+ //===========================================pattern_filter_bilinear_rgba
+ template<class ColorT> struct pattern_filter_bilinear_rgba
+ {
+ typedef ColorT color_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+
+
+ static unsigned dilation() { return 1; }
+
+ static AGG_INLINE void pixel_low_res(color_type const* const* buf,
+ color_type* p, int x, int y)
+ {
+ *p = buf[y][x];
+ }
+
+ static AGG_INLINE void pixel_high_res(color_type const* const* buf,
+ color_type* p, int x, int y)
+ {
+ calc_type r, g, b, a;
+ r = g = b = a = line_subpixel_size * line_subpixel_size / 2;
+
+ calc_type weight;
+ int x_lr = x >> line_subpixel_shift;
+ int y_lr = y >> line_subpixel_shift;
+
+ x &= line_subpixel_mask;
+ y &= line_subpixel_mask;
+ const color_type* ptr = buf[y_lr] + x_lr;
+
+ weight = (line_subpixel_size - x) *
+ (line_subpixel_size - y);
+ r += weight * ptr->r;
+ g += weight * ptr->g;
+ b += weight * ptr->b;
+ a += weight * ptr->a;
+
+ ++ptr;
+
+ weight = x * (line_subpixel_size - y);
+ r += weight * ptr->r;
+ g += weight * ptr->g;
+ b += weight * ptr->b;
+ a += weight * ptr->a;
+
+ ptr = buf[y_lr + 1] + x_lr;
+
+ weight = (line_subpixel_size - x) * y;
+ r += weight * ptr->r;
+ g += weight * ptr->g;
+ b += weight * ptr->b;
+ a += weight * ptr->a;
+
+ ++ptr;
+
+ weight = x * y;
+ r += weight * ptr->r;
+ g += weight * ptr->g;
+ b += weight * ptr->b;
+ a += weight * ptr->a;
+
+ p->r = (value_type)(r >> line_subpixel_shift * 2);
+ p->g = (value_type)(g >> line_subpixel_shift * 2);
+ p->b = (value_type)(b >> line_subpixel_shift * 2);
+ p->a = (value_type)(a >> line_subpixel_shift * 2);
+ }
+ };
+
+ typedef pattern_filter_bilinear_rgba<rgba8> pattern_filter_bilinear_rgba8;
+ typedef pattern_filter_bilinear_rgba<rgba16> pattern_filter_bilinear_rgba16;
+}
+
+#endif
diff --git a/agg/inc/agg_pixfmt_amask_adaptor.h b/agg/inc/agg_pixfmt_amask_adaptor.h
new file mode 100755
index 000000000000..7f3d5899b1c6
--- /dev/null
+++ b/agg/inc/agg_pixfmt_amask_adaptor.h
@@ -0,0 +1,265 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PIXFMT_AMASK_ADAPTOR_INCLUDED
+#define AGG_PIXFMT_AMASK_ADAPTOR_INCLUDED
+
+
+#include <string.h>
+#include "agg_rendering_buffer.h"
+
+
+namespace agg
+{
+ //==================================================pixfmt_amask_adaptor
+ template<class PixFmt, class AlphaMask> class pixfmt_amask_adaptor
+ {
+ public:
+ typedef PixFmt pixfmt_type;
+ typedef typename pixfmt_type::color_type color_type;
+ typedef AlphaMask amask_type;
+ typedef typename amask_type::cover_type cover_type;
+
+ private:
+ enum { span_extra_tail = 256 };
+
+ void realloc_span(unsigned len)
+ {
+ if(len > m_max_len)
+ {
+ delete [] m_span;
+ m_span = new cover_type[m_max_len = len + span_extra_tail];
+ }
+ }
+
+ void init_span(unsigned len)
+ {
+ realloc_span(len);
+
+ // ATTN! May work incorrectly if cover_type is more that one byte
+ memset(m_span, amask_type::cover_full, len * sizeof(cover_type));
+ }
+
+ void init_span(unsigned len, const cover_type* covers)
+ {
+ realloc_span(len);
+ memcpy(m_span, covers, len * sizeof(cover_type));
+ }
+
+
+ public:
+ ~pixfmt_amask_adaptor() { delete [] m_span; }
+
+ pixfmt_amask_adaptor(pixfmt_type& pixf, const amask_type& mask) :
+ m_pixf(&pixf), m_mask(&mask), m_span(0), m_max_len(0)
+ {}
+
+ void attach_pixfmt(pixfmt_type& pixf) { m_pixf = &pixf; }
+ void attach_alpha_mask(const amask_type& mask) { m_mask = &mask; }
+
+ //--------------------------------------------------------------------
+ unsigned width() const { return m_pixf->width(); }
+ unsigned height() const { return m_pixf->height(); }
+
+ //--------------------------------------------------------------------
+ color_type pixel(int x, int y)
+ {
+ return m_pixf->pixel(x, y);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_pixel(int x, int y, const color_type& c)
+ {
+ m_pixf->blend_pixel(x, y, c, m_mask->pixel(x, y));
+ }
+
+ //--------------------------------------------------------------------
+ void blend_pixel(int x, int y, const color_type& c, cover_type cover)
+ {
+ m_pixf->blend_pixel(x, y, c, m_mask->combine_pixel(x, y, cover));
+ }
+
+ //--------------------------------------------------------------------
+ void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ realloc_span(len);
+ m_mask->fill_hspan(x, y, m_span, len);
+ m_pixf->blend_solid_hspan(x, y, len, c, m_span);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ cover_type cover)
+ {
+ init_span(len);
+ m_mask->combine_hspan(x, y, m_span, len);
+ m_pixf->blend_solid_hspan(x, y, len, c, m_span);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ realloc_span(len);
+ m_mask->fill_vspan(x, y, m_span, len);
+ m_pixf->blend_solid_vspan(x, y, len, c, m_span);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ cover_type cover)
+ {
+ init_span(len);
+ m_mask->combine_vspan(x, y, m_span, len);
+ m_pixf->blend_solid_vspan(x, y, len, c, m_span);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ m_pixf->copy_from(from, xdst, ydst, xsrc, ysrc, len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const cover_type* covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_hspan(x, y, m_span, len);
+ m_pixf->blend_solid_hspan(x, y, len, c, m_span);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const cover_type* covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_vspan(x, y, m_span, len);
+ m_pixf->blend_solid_vspan(x, y, len, c, m_span);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_hspan(x, y, m_span, len);
+ }
+ else
+ {
+ realloc_span(len);
+ m_mask->fill_hspan(x, y, m_span, len);
+ }
+ m_pixf->blend_color_hspan(x, y, len, colors, m_span, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_vspan(x, y, m_span, len);
+ }
+ else
+ {
+ realloc_span(len);
+ m_mask->fill_vspan(x, y, m_span, len);
+ }
+ m_pixf->blend_color_vspan(x, y, len, colors, m_span, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_hspan(x, y, m_span, len);
+ }
+ else
+ {
+ realloc_span(len);
+ m_mask->fill_hspan(x, y, m_span, len);
+ }
+ m_pixf->blend_opaque_color_hspan(x, y, len, colors, m_span, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(covers)
+ {
+ init_span(len, covers);
+ m_mask->combine_vspan(x, y, m_span, len);
+ }
+ else
+ {
+ realloc_span(len);
+ m_mask->fill_vspan(x, y, m_span, len);
+ }
+ m_pixf->blend_opaque_color_vspan(x, y, len, colors, m_span, cover);
+ }
+
+
+ private:
+ pixfmt_type* m_pixf;
+ const amask_type* m_mask;
+
+ cover_type* m_span;
+ unsigned m_max_len;
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_pixfmt_gray.h b/agg/inc/agg_pixfmt_gray.h
new file mode 100755
index 000000000000..48f47d1de32e
--- /dev/null
+++ b/agg/inc/agg_pixfmt_gray.h
@@ -0,0 +1,703 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PIXFMT_GRAY_INCLUDED
+#define AGG_PIXFMT_GRAY_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_color_gray.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+
+ //============================================================blender_gray
+ template<class ColorT> struct blender_gray
+ {
+ typedef ColorT color_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ static AGG_INLINE void blend_pix(value_type* p, unsigned cv,
+ unsigned alpha, unsigned)
+ {
+ *p = (value_type)((((cv - calc_type(*p)) * alpha) + (calc_type(*p) << base_shift)) >> base_shift);
+ }
+ };
+
+
+ //======================================================blender_gray_pre
+ template<class ColorT> struct blender_gray_pre
+ {
+ typedef ColorT color_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ static AGG_INLINE void blend_pix(value_type* p, unsigned cv,
+ unsigned alpha, unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (base_shift - 8);
+ *p = (value_type)((*p * alpha + cv * cover) >> base_shift);
+ }
+ };
+
+
+
+ //=====================================================apply_gamma_dir_gray
+ template<class ColorT, class GammaLut> class apply_gamma_dir_gray
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_dir_gray(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ *p = m_gamma.dir(*p);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+
+ //=====================================================apply_gamma_inv_gray
+ template<class ColorT, class GammaLut> class apply_gamma_inv_gray
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_inv_gray(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ *p = m_gamma.inv(*p);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+
+ //======================================================pixel_formats_gray
+ template<class Blender, unsigned Step=1, unsigned Offset=0>
+ class pixel_formats_gray
+ {
+ public:
+ typedef rendering_buffer::row_data row_data;
+ typedef typename Blender::color_type color_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ private:
+ //--------------------------------------------------------------------
+ static AGG_INLINE void copy_or_blend_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if (c.a)
+ {
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ *p = c.v;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.v, alpha, cover);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void copy_or_blend_opaque_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if(cover == 255)
+ {
+ *p = c.v;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.v, (cover + 1) << (base_shift - 8), cover);
+ }
+ }
+
+ public:
+ //--------------------------------------------------------------------
+ pixel_formats_gray(rendering_buffer& rb) :
+ m_rbuf(&rb)
+ {}
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned width() const { return m_rbuf->width(); }
+ AGG_INLINE unsigned height() const { return m_rbuf->height(); }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE color_type pixel(int x, int y) const
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ return color_type(*p);
+ }
+
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ return row_data(x,
+ width() - 1,
+ m_rbuf->row(y) +
+ x * Step * sizeof(value_type) +
+ Offset * sizeof(value_type));
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_pixel(int x, int y, const color_type& c)
+ {
+ *((value_type*)m_rbuf->row(y) + x * Step + Offset) = c.v;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pixel(int x, int y, const color_type& c, int8u cover)
+ {
+ copy_or_blend_pix((value_type*)m_rbuf->row(y) + x * Step + Offset, c, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *p = c.v;
+ p += Step;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ *p = c.v;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ do
+ {
+ *p = c.v;
+ p += Step;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ Blender::blend_pix(p, c.v, alpha, cover);
+ p += Step;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ do
+ {
+ *p = c.v;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ Blender::blend_pix(p, c.v, alpha, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ *p = c.v;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.v, alpha, *covers);
+ }
+ p += Step;
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ *p = c.v;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.v, alpha, *covers);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, *covers++);
+ p += Step;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ *p = colors->v;
+ }
+ else
+ {
+ copy_or_blend_pix(p, *colors, 255);
+ }
+ p += Step;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, cover);
+ p += Step;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ *p = colors->v;
+ }
+ else
+ {
+ copy_or_blend_pix(p, *colors, 255);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p += Step;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ *p = colors->v;
+ p += Step;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, cover);
+ p += Step;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x * Step + Offset;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ *p = colors->v;
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class Function> void for_each_pixel(Function f)
+ {
+ unsigned y;
+ for(y = 0; y < height(); ++y)
+ {
+ unsigned len = width();
+ value_type* p = (value_type*)m_rbuf->row(y) + Offset;
+ do
+ {
+ f(p);
+ p += Step;
+ }
+ while(--len);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_dir(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_dir_gray<color_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_inv(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_inv_gray<color_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ memmove((value_type*)m_rbuf->row(ydst) + xdst,
+ (value_type*)from.row(ysrc) + xsrc,
+ sizeof(value_type) * len);
+ }
+
+ private:
+ rendering_buffer* m_rbuf;
+ };
+
+ typedef blender_gray<gray8> blender_gray8;
+ typedef blender_gray_pre<gray8> blender_gray8_pre;
+ typedef blender_gray<gray16> blender_gray16;
+ typedef blender_gray_pre<gray16> blender_gray16_pre;
+
+ typedef pixel_formats_gray<blender_gray8, 1, 0> pixfmt_gray8; //----pixfmt_gray8
+
+ typedef pixel_formats_gray<blender_gray8, 3, 0> pixfmt_gray8_rgb24r; //----pixfmt_gray8_rgb24r
+ typedef pixel_formats_gray<blender_gray8, 3, 1> pixfmt_gray8_rgb24g; //----pixfmt_gray8_rgb24g
+ typedef pixel_formats_gray<blender_gray8, 3, 2> pixfmt_gray8_rgb24b; //----pixfmt_gray8_rgb24b
+
+ typedef pixel_formats_gray<blender_gray8, 3, 2> pixfmt_gray8_bgr24r; //----pixfmt_gray8_bgr24r
+ typedef pixel_formats_gray<blender_gray8, 3, 1> pixfmt_gray8_bgr24g; //----pixfmt_gray8_bgr24g
+ typedef pixel_formats_gray<blender_gray8, 3, 0> pixfmt_gray8_bgr24b; //----pixfmt_gray8_bgr24b
+
+ typedef pixel_formats_gray<blender_gray8, 4, 0> pixfmt_gray8_rgba32r; //----pixfmt_gray8_rgba32r
+ typedef pixel_formats_gray<blender_gray8, 4, 1> pixfmt_gray8_rgba32g; //----pixfmt_gray8_rgba32g
+ typedef pixel_formats_gray<blender_gray8, 4, 2> pixfmt_gray8_rgba32b; //----pixfmt_gray8_rgba32b
+ typedef pixel_formats_gray<blender_gray8, 4, 3> pixfmt_gray8_rgba32a; //----pixfmt_gray8_rgba32a
+
+ typedef pixel_formats_gray<blender_gray8, 4, 1> pixfmt_gray8_argb32r; //----pixfmt_gray8_argb32r
+ typedef pixel_formats_gray<blender_gray8, 4, 2> pixfmt_gray8_argb32g; //----pixfmt_gray8_argb32g
+ typedef pixel_formats_gray<blender_gray8, 4, 3> pixfmt_gray8_argb32b; //----pixfmt_gray8_argb32b
+ typedef pixel_formats_gray<blender_gray8, 4, 0> pixfmt_gray8_argb32a; //----pixfmt_gray8_argb32a
+
+ typedef pixel_formats_gray<blender_gray8, 4, 2> pixfmt_gray8_bgra32r; //----pixfmt_gray8_bgra32r
+ typedef pixel_formats_gray<blender_gray8, 4, 1> pixfmt_gray8_bgra32g; //----pixfmt_gray8_bgra32g
+ typedef pixel_formats_gray<blender_gray8, 4, 0> pixfmt_gray8_bgra32b; //----pixfmt_gray8_bgra32b
+ typedef pixel_formats_gray<blender_gray8, 4, 3> pixfmt_gray8_bgra32a; //----pixfmt_gray8_bgra32a
+
+ typedef pixel_formats_gray<blender_gray8, 4, 3> pixfmt_gray8_abgr32r; //----pixfmt_gray8_abgr32r
+ typedef pixel_formats_gray<blender_gray8, 4, 2> pixfmt_gray8_abgr32g; //----pixfmt_gray8_abgr32g
+ typedef pixel_formats_gray<blender_gray8, 4, 1> pixfmt_gray8_abgr32b; //----pixfmt_gray8_abgr32b
+ typedef pixel_formats_gray<blender_gray8, 4, 0> pixfmt_gray8_abgr32a; //----pixfmt_gray8_abgr32a
+
+ typedef pixel_formats_gray<blender_gray8_pre, 1, 0> pixfmt_gray8_pre; //----pixfmt_gray8_pre
+
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 0> pixfmt_gray8_pre_rgb24r; //----pixfmt_gray8_pre_rgb24r
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 1> pixfmt_gray8_pre_rgb24g; //----pixfmt_gray8_pre_rgb24g
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 2> pixfmt_gray8_pre_rgb24b; //----pixfmt_gray8_pre_rgb24b
+
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 2> pixfmt_gray8_pre_bgr24r; //----pixfmt_gray8_pre_bgr24r
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 1> pixfmt_gray8_pre_bgr24g; //----pixfmt_gray8_pre_bgr24g
+ typedef pixel_formats_gray<blender_gray8_pre, 3, 0> pixfmt_gray8_pre_bgr24b; //----pixfmt_gray8_pre_bgr24b
+
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 0> pixfmt_gray8_pre_rgba32r; //----pixfmt_gray8_pre_rgba32r
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 1> pixfmt_gray8_pre_rgba32g; //----pixfmt_gray8_pre_rgba32g
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 2> pixfmt_gray8_pre_rgba32b; //----pixfmt_gray8_pre_rgba32b
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 3> pixfmt_gray8_pre_rgba32a; //----pixfmt_gray8_pre_rgba32a
+
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 1> pixfmt_gray8_pre_argb32r; //----pixfmt_gray8_pre_argb32r
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 2> pixfmt_gray8_pre_argb32g; //----pixfmt_gray8_pre_argb32g
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 3> pixfmt_gray8_pre_argb32b; //----pixfmt_gray8_pre_argb32b
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 0> pixfmt_gray8_pre_argb32a; //----pixfmt_gray8_pre_argb32a
+
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 2> pixfmt_gray8_pre_bgra32r; //----pixfmt_gray8_pre_bgra32r
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 1> pixfmt_gray8_pre_bgra32g; //----pixfmt_gray8_pre_bgra32g
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 0> pixfmt_gray8_pre_bgra32b; //----pixfmt_gray8_pre_bgra32b
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 3> pixfmt_gray8_pre_bgra32a; //----pixfmt_gray8_pre_bgra32a
+
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 3> pixfmt_gray8_pre_abgr32r; //----pixfmt_gray8_pre_abgr32r
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 2> pixfmt_gray8_pre_abgr32g; //----pixfmt_gray8_pre_abgr32g
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 1> pixfmt_gray8_pre_abgr32b; //----pixfmt_gray8_pre_abgr32b
+ typedef pixel_formats_gray<blender_gray8_pre, 4, 0> pixfmt_gray8_pre_abgr32a; //----pixfmt_gray8_pre_abgr32a
+
+ typedef pixel_formats_gray<blender_gray16, 1, 0> pixfmt_gray16; //----pixfmt_gray16
+
+ typedef pixel_formats_gray<blender_gray16, 3, 0> pixfmt_gray16_rgb48r; //----pixfmt_gray16_rgb48r
+ typedef pixel_formats_gray<blender_gray16, 3, 1> pixfmt_gray16_rgb48g; //----pixfmt_gray16_rgb48g
+ typedef pixel_formats_gray<blender_gray16, 3, 2> pixfmt_gray16_rgb48b; //----pixfmt_gray16_rgb48b
+
+ typedef pixel_formats_gray<blender_gray16, 3, 2> pixfmt_gray16_bgr48r; //----pixfmt_gray16_bgr48r
+ typedef pixel_formats_gray<blender_gray16, 3, 1> pixfmt_gray16_bgr48g; //----pixfmt_gray16_bgr48g
+ typedef pixel_formats_gray<blender_gray16, 3, 0> pixfmt_gray16_bgr48b; //----pixfmt_gray16_bgr48b
+
+ typedef pixel_formats_gray<blender_gray16, 4, 0> pixfmt_gray16_rgba64r; //----pixfmt_gray16_rgba64r
+ typedef pixel_formats_gray<blender_gray16, 4, 1> pixfmt_gray16_rgba64g; //----pixfmt_gray16_rgba64g
+ typedef pixel_formats_gray<blender_gray16, 4, 2> pixfmt_gray16_rgba64b; //----pixfmt_gray16_rgba64b
+ typedef pixel_formats_gray<blender_gray16, 4, 3> pixfmt_gray16_rgba64a; //----pixfmt_gray16_rgba64a
+
+ typedef pixel_formats_gray<blender_gray16, 4, 1> pixfmt_gray16_argb64r; //----pixfmt_gray16_argb64r
+ typedef pixel_formats_gray<blender_gray16, 4, 2> pixfmt_gray16_argb64g; //----pixfmt_gray16_argb64g
+ typedef pixel_formats_gray<blender_gray16, 4, 3> pixfmt_gray16_argb64b; //----pixfmt_gray16_argb64b
+ typedef pixel_formats_gray<blender_gray16, 4, 0> pixfmt_gray16_argb64a; //----pixfmt_gray16_argb64a
+
+ typedef pixel_formats_gray<blender_gray16, 4, 2> pixfmt_gray16_bgra64r; //----pixfmt_gray16_bgra64r
+ typedef pixel_formats_gray<blender_gray16, 4, 1> pixfmt_gray16_bgra64g; //----pixfmt_gray16_bgra64g
+ typedef pixel_formats_gray<blender_gray16, 4, 0> pixfmt_gray16_bgra64b; //----pixfmt_gray16_bgra64b
+ typedef pixel_formats_gray<blender_gray16, 4, 3> pixfmt_gray16_bgra64a; //----pixfmt_gray16_bgra64a
+
+ typedef pixel_formats_gray<blender_gray16, 4, 3> pixfmt_gray16_abgr64r; //----pixfmt_gray16_abgr64r
+ typedef pixel_formats_gray<blender_gray16, 4, 2> pixfmt_gray16_abgr64g; //----pixfmt_gray16_abgr64g
+ typedef pixel_formats_gray<blender_gray16, 4, 1> pixfmt_gray16_abgr64b; //----pixfmt_gray16_abgr64b
+ typedef pixel_formats_gray<blender_gray16, 4, 0> pixfmt_gray16_abgr64a; //----pixfmt_gray16_abgr64a
+
+ typedef pixel_formats_gray<blender_gray16_pre, 1, 0> pixfmt_gray16_pre; //----pixfmt_gray16_pre
+
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 0> pixfmt_gray16_pre_rgb48r; //----pixfmt_gray16_pre_rgb48r
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 1> pixfmt_gray16_pre_rgb48g; //----pixfmt_gray16_pre_rgb48g
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 2> pixfmt_gray16_pre_rgb48b; //----pixfmt_gray16_pre_rgb48b
+
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 2> pixfmt_gray16_pre_bgr48r; //----pixfmt_gray16_pre_bgr48r
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 1> pixfmt_gray16_pre_bgr48g; //----pixfmt_gray16_pre_bgr48g
+ typedef pixel_formats_gray<blender_gray16_pre, 3, 0> pixfmt_gray16_pre_bgr48b; //----pixfmt_gray16_pre_bgr48b
+
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 0> pixfmt_gray16_pre_rgba64r; //----pixfmt_gray16_pre_rgba64r
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 1> pixfmt_gray16_pre_rgba64g; //----pixfmt_gray16_pre_rgba64g
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 2> pixfmt_gray16_pre_rgba64b; //----pixfmt_gray16_pre_rgba64b
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 3> pixfmt_gray16_pre_rgba64a; //----pixfmt_gray16_pre_rgba64a
+
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 1> pixfmt_gray16_pre_argb64r; //----pixfmt_gray16_pre_argb64r
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 2> pixfmt_gray16_pre_argb64g; //----pixfmt_gray16_pre_argb64g
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 3> pixfmt_gray16_pre_argb64b; //----pixfmt_gray16_pre_argb64b
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 0> pixfmt_gray16_pre_argb64a; //----pixfmt_gray16_pre_argb64a
+
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 2> pixfmt_gray16_pre_bgra64r; //----pixfmt_gray16_pre_bgra64r
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 1> pixfmt_gray16_pre_bgra64g; //----pixfmt_gray16_pre_bgra64g
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 0> pixfmt_gray16_pre_bgra64b; //----pixfmt_gray16_pre_bgra64b
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 3> pixfmt_gray16_pre_bgra64a; //----pixfmt_gray16_pre_bgra64a
+
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 3> pixfmt_gray16_pre_abgr64r; //----pixfmt_gray16_pre_abgr64r
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 2> pixfmt_gray16_pre_abgr64g; //----pixfmt_gray16_pre_abgr64g
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 1> pixfmt_gray16_pre_abgr64b; //----pixfmt_gray16_pre_abgr64b
+ typedef pixel_formats_gray<blender_gray16_pre, 4, 0> pixfmt_gray16_pre_abgr64a; //----pixfmt_gray16_pre_abgr64a
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_pixfmt_rgb.h b/agg/inc/agg_pixfmt_rgb.h
new file mode 100755
index 000000000000..436dfa4b284f
--- /dev/null
+++ b/agg/inc/agg_pixfmt_rgb.h
@@ -0,0 +1,760 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PIXFMT_RGB_INCLUDED
+#define AGG_PIXFMT_RGB_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+
+ //=====================================================apply_gamma_dir_rgb
+ template<class ColorT, class Order, class GammaLut> class apply_gamma_dir_rgb
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_dir_rgb(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ p[Order::R] = m_gamma.dir(p[Order::R]);
+ p[Order::G] = m_gamma.dir(p[Order::G]);
+ p[Order::B] = m_gamma.dir(p[Order::B]);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+
+ //=====================================================apply_gamma_inv_rgb
+ template<class ColorT, class Order, class GammaLut> class apply_gamma_inv_rgb
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_inv_rgb(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ p[Order::R] = m_gamma.inv(p[Order::R]);
+ p[Order::G] = m_gamma.inv(p[Order::G]);
+ p[Order::B] = m_gamma.inv(p[Order::B]);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+ //=========================================================blender_rgb
+ template<class ColorT, class Order> struct blender_rgb
+ {
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ p[Order::R] += (value_type)(((cr - p[Order::R]) * alpha) >> base_shift);
+ p[Order::G] += (value_type)(((cg - p[Order::G]) * alpha) >> base_shift);
+ p[Order::B] += (value_type)(((cb - p[Order::B]) * alpha) >> base_shift);
+ }
+ };
+
+
+ //======================================================blender_rgb_pre
+ template<class ColorT, class Order> struct blender_rgb_pre
+ {
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (base_shift - 8);
+ p[Order::R] = (value_type)((p[Order::R] * alpha + cr * cover) >> base_shift);
+ p[Order::G] = (value_type)((p[Order::G] * alpha + cg * cover) >> base_shift);
+ p[Order::B] = (value_type)((p[Order::B] * alpha + cb * cover) >> base_shift);
+ }
+ };
+
+
+
+ //===================================================blender_rgb_gamma
+ template<class ColorT, class Order, class Gamma> class blender_rgb_gamma
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Gamma gamma_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ //--------------------------------------------------------------------
+ blender_rgb_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ calc_type r = m_gamma->dir(p[Order::R]);
+ calc_type g = m_gamma->dir(p[Order::G]);
+ calc_type b = m_gamma->dir(p[Order::B]);
+ p[Order::R] = m_gamma->inv((((m_gamma->dir(cr) - r) * alpha) >> base_shift) + r);
+ p[Order::G] = m_gamma->inv((((m_gamma->dir(cg) - g) * alpha) >> base_shift) + g);
+ p[Order::B] = m_gamma->inv((((m_gamma->dir(cb) - b) * alpha) >> base_shift) + b);
+ }
+
+ private:
+ const gamma_type* m_gamma;
+ };
+
+
+
+
+ //==================================================pixel_formats_rgb
+ template<class Blender> class pixel_formats_rgb
+ {
+ public:
+ typedef rendering_buffer::row_data row_data;
+ typedef typename Blender::color_type color_type;
+ typedef typename Blender::order_type order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ private:
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_or_blend_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if (c.a)
+ {
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_or_blend_opaque_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if(cover == 255)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, (cover + 1) << (base_shift - 8), cover);
+ }
+ }
+
+
+ public:
+ //--------------------------------------------------------------------
+ pixel_formats_rgb(rendering_buffer& rb) :
+ m_rbuf(&rb)
+ {}
+
+ //--------------------------------------------------------------------
+ Blender& blender() { return m_blender; }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned width() const { return m_rbuf->width(); }
+ AGG_INLINE unsigned height() const { return m_rbuf->height(); }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE color_type pixel(int x, int y) const
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ return color_type(p[order_type::R],
+ p[order_type::G],
+ p[order_type::B]);
+ }
+
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ return row_data(x,
+ width() - 1,
+ m_rbuf->row(y) + x * 3 * sizeof(value_type));
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_pixel(int x, int y, const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pixel(int x, int y, const color_type& c, int8u cover)
+ {
+ copy_or_blend_pix((value_type*)m_rbuf->row(y) + x + x + x, c, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ do
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p += 3;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ do
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ calc_type alpha = (calc_type(c.a) * (calc_type(cover) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ do
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p += 3;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p += 3;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ do
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+ }
+ p += 3;
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, *covers++);
+ p += 3;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ }
+ else
+ {
+ copy_or_blend_pix(p, *colors, 255);
+ }
+ p += 3;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, cover);
+ p += 3;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ }
+ else
+ {
+ copy_or_blend_pix(p, *colors, 255);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p += 3;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p += 3;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, cover);
+ p += 3;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + x + x + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class Function> void for_each_pixel(Function f)
+ {
+ unsigned y;
+ for(y = 0; y < height(); ++y)
+ {
+ unsigned len = width();
+ value_type* p = (value_type*)m_rbuf->row(y);
+ do
+ {
+ f(p);
+ p += 3;
+ }
+ while(--len);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_dir(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_dir_rgb<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_inv(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_inv_rgb<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ memmove((value_type*)m_rbuf->row(ydst) + xdst * 3,
+ (const value_type*)from.row(ysrc) + xsrc * 3,
+ sizeof(value_type) * 3 * len);
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class SrcPixelFormatRenderer>
+ void blend_from(const SrcPixelFormatRenderer& from,
+ const int8u* psrc_,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ typedef typename SrcPixelFormatRenderer::order_type src_order;
+
+ const value_type* psrc = (const value_type*)psrc_;
+ value_type* pdst = (value_type*)m_rbuf->row(ydst) + xdst * 3;
+ do
+ {
+ value_type alpha = psrc[src_order::A];
+ if(alpha)
+ {
+ if(alpha == base_mask)
+ {
+ pdst[order_type::R] = psrc[src_order::R];
+ pdst[order_type::G] = psrc[src_order::G];
+ pdst[order_type::B] = psrc[src_order::B];
+ }
+ else
+ {
+ m_blender.blend_pix(pdst,
+ psrc[src_order::R],
+ psrc[src_order::G],
+ psrc[src_order::B],
+ alpha,
+ 255);
+ }
+ }
+ psrc += 4;
+ pdst += 3;
+ }
+ while(--len);
+ }
+
+ private:
+ rendering_buffer* m_rbuf;
+ Blender m_blender;
+ };
+
+ typedef pixel_formats_rgb<blender_rgb<rgba8, order_rgb> > pixfmt_rgb24; //----pixfmt_rgb24
+ typedef pixel_formats_rgb<blender_rgb<rgba8, order_bgr> > pixfmt_bgr24; //----pixfmt_bgr24
+ typedef pixel_formats_rgb<blender_rgb<rgba16, order_rgb> > pixfmt_rgb48; //----pixfmt_rgb48
+ typedef pixel_formats_rgb<blender_rgb<rgba16, order_bgr> > pixfmt_bgr48; //----pixfmt_bgr48
+
+ typedef pixel_formats_rgb<blender_rgb_pre<rgba8, order_rgb> > pixfmt_rgb24_pre; //----pixfmt_rgb24_pre
+ typedef pixel_formats_rgb<blender_rgb_pre<rgba8, order_bgr> > pixfmt_bgr24_pre; //----pixfmt_bgr24_pre
+ typedef pixel_formats_rgb<blender_rgb_pre<rgba16, order_rgb> > pixfmt_rgb48_pre; //----pixfmt_rgb48_pre
+ typedef pixel_formats_rgb<blender_rgb_pre<rgba16, order_bgr> > pixfmt_bgr48_pre; //----pixfmt_bgr48_pre
+
+ //-----------------------------------------------------pixfmt_rgb24_gamma
+ template<class Gamma> class pixfmt_rgb24_gamma :
+ public pixel_formats_rgb<blender_rgb_gamma<rgba8, order_rgb, Gamma> >
+ {
+ public:
+ pixfmt_rgb24_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb<blender_rgb_gamma<rgba8, order_rgb, Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+ //-----------------------------------------------------pixfmt_bgr24_gamma
+ template<class Gamma> class pixfmt_bgr24_gamma :
+ public pixel_formats_rgb<blender_rgb_gamma<rgba8, order_bgr, Gamma> >
+ {
+ public:
+ pixfmt_bgr24_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb<blender_rgb_gamma<rgba8, order_bgr, Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+ //-----------------------------------------------------pixfmt_rgb48_gamma
+ template<class Gamma> class pixfmt_rgb48_gamma :
+ public pixel_formats_rgb<blender_rgb_gamma<rgba16, order_rgb, Gamma> >
+ {
+ public:
+ pixfmt_rgb48_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb<blender_rgb_gamma<rgba16, order_rgb, Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+ //-----------------------------------------------------pixfmt_bgr48_gamma
+ template<class Gamma> class pixfmt_bgr48_gamma :
+ public pixel_formats_rgb<blender_rgb_gamma<rgba16, order_bgr, Gamma> >
+ {
+ public:
+ pixfmt_bgr48_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb<blender_rgb_gamma<rgba16, order_bgr, Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_pixfmt_rgb_packed.h b/agg/inc/agg_pixfmt_rgb_packed.h
new file mode 100755
index 000000000000..4f582ed59847
--- /dev/null
+++ b/agg/inc/agg_pixfmt_rgb_packed.h
@@ -0,0 +1,1277 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PIXFMT_RGB_PACKED_INCLUDED
+#define AGG_PIXFMT_RGB_PACKED_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+ //=========================================================blender_rgb555
+ struct blender_rgb555
+ {
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 7) & 0xF8;
+ calc_type g = (rgb >> 2) & 0xF8;
+ calc_type b = (rgb << 3) & 0xF8;
+ *p = (pixel_type)
+ (((((cr - r) * alpha + (r << 8)) >> 1) & 0x7C00) |
+ ((((cg - g) * alpha + (g << 8)) >> 6) & 0x03E0) |
+ (((cb - b) * alpha + (b << 8)) >> 11) | 0x8000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 7) |
+ ((g & 0xF8) << 2) |
+ (b >> 3) | 0x8000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 7) & 0xF8,
+ (p >> 2) & 0xF8,
+ (p << 3) & 0xF8);
+ }
+ };
+
+
+ //=====================================================blender_rgb555_pre
+ struct blender_rgb555_pre
+ {
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 7) & 0xF8;
+ calc_type g = (rgb >> 2) & 0xF8;
+ calc_type b = (rgb << 3) & 0xF8;
+ *p = (pixel_type)
+ ((((r * alpha + cr * cover) >> 1) & 0x7C00) |
+ (((g * alpha + cg * cover) >> 6) & 0x03E0) |
+ ((b * alpha + cb * cover) >> 11) | 0x8000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 7) |
+ ((g & 0xF8) << 2) |
+ (b >> 3) | 0x8000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 7) & 0xF8,
+ (p >> 2) & 0xF8,
+ (p << 3) & 0xF8);
+ }
+ };
+
+
+
+
+ //=====================================================blender_rgb555_gamma
+ template<class Gamma> class blender_rgb555_gamma
+ {
+ public:
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_rgb555_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = m_gamma->dir((rgb >> 7) & 0xF8);
+ calc_type g = m_gamma->dir((rgb >> 2) & 0xF8);
+ calc_type b = m_gamma->dir((rgb << 3) & 0xF8);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 8)) >> 8) << 7) & 0x7C00) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 8)) >> 8) << 2) & 0x03E0) |
+ (m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 8)) >> 8) >> 3) | 0x8000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 7) |
+ ((g & 0xF8) << 2) |
+ (b >> 3) | 0x8000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 7) & 0xF8,
+ (p >> 2) & 0xF8,
+ (p << 3) & 0xF8);
+ }
+
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+
+
+
+ //=========================================================blender_rgb565
+ struct blender_rgb565
+ {
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 8) & 0xF8;
+ calc_type g = (rgb >> 3) & 0xFC;
+ calc_type b = (rgb << 3) & 0xF8;
+ *p = (pixel_type)
+ (((((cr - r) * alpha + (r << 8)) ) & 0xF800) |
+ ((((cg - g) * alpha + (g << 8)) >> 5) & 0x07E0) |
+ (((cb - b) * alpha + (b << 8)) >> 11));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 8) & 0xF8,
+ (p >> 3) & 0xFC,
+ (p << 3) & 0xF8);
+ }
+ };
+
+
+
+ //=====================================================blender_rgb565_pre
+ struct blender_rgb565_pre
+ {
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 8) & 0xF8;
+ calc_type g = (rgb >> 3) & 0xFC;
+ calc_type b = (rgb << 3) & 0xF8;
+ *p = (pixel_type)
+ ((((r * alpha + cr * cover) ) & 0xF800) |
+ (((g * alpha + cg * cover) >> 5 ) & 0x07E0) |
+ ((b * alpha + cb * cover) >> 11));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 8) & 0xF8,
+ (p >> 3) & 0xFC,
+ (p << 3) & 0xF8);
+ }
+ };
+
+
+
+ //=====================================================blender_rgb565_gamma
+ template<class Gamma> class blender_rgb565_gamma
+ {
+ public:
+ typedef rgba8 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int16u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_rgb565_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = m_gamma->dir((rgb >> 8) & 0xF8);
+ calc_type g = m_gamma->dir((rgb >> 3) & 0xFC);
+ calc_type b = m_gamma->dir((rgb << 3) & 0xF8);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 8)) >> 8) << 8) & 0xF800) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 8)) >> 8) << 3) & 0x07E0) |
+ (m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 8)) >> 8) >> 3));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xF8) << 8) | ((g & 0xFC) << 3) | (b >> 3));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 8) & 0xF8,
+ (p >> 3) & 0xFC,
+ (p << 3) & 0xF8);
+ }
+
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+
+ //=====================================================blender_rgbAAA
+ struct blender_rgbAAA
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 14) & 0xFFC0;
+ calc_type g = (rgb >> 4) & 0xFFC0;
+ calc_type b = (rgb << 6) & 0xFFC0;
+ *p = (pixel_type)
+ (((((cr - r) * alpha + (r << 16)) >> 2) & 0x3FF00000) |
+ ((((cg - g) * alpha + (g << 16)) >> 12) & 0x000FFC00) |
+ (((cb - b) * alpha + (b << 16)) >> 22) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (b >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 14) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p << 6) & 0xFFC0);
+ }
+ };
+
+
+
+ //==================================================blender_rgbAAA_pre
+ struct blender_rgbAAA_pre
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (color_type::base_shift - 8);
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 14) & 0xFFC0;
+ calc_type g = (rgb >> 4) & 0xFFC0;
+ calc_type b = (rgb << 6) & 0xFFC0;
+ *p = (pixel_type)
+ ((((r * alpha + cr * cover) >> 2) & 0x3FF00000) |
+ (((g * alpha + cg * cover) >> 12) & 0x000FFC00) |
+ ((b * alpha + cb * cover) >> 22) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (b >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 14) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p << 6) & 0xFFC0);
+ }
+ };
+
+
+
+ //=================================================blender_rgbAAA_gamma
+ template<class Gamma> class blender_rgbAAA_gamma
+ {
+ public:
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_rgbAAA_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = m_gamma->dir((rgb >> 14) & 0xFFC0);
+ calc_type g = m_gamma->dir((rgb >> 4) & 0xFFC0);
+ calc_type b = m_gamma->dir((rgb << 6) & 0xFFC0);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 16)) >> 16) << 14) & 0x3FF00000) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 16)) >> 16) << 4 ) & 0x000FFC00) |
+ (m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 16)) >> 16) >> 6 ) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (b >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 14) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p << 6) & 0xFFC0);
+ }
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+ //=====================================================blender_bgrAAA
+ struct blender_bgrAAA
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type bgr = *p;
+ calc_type b = (bgr >> 14) & 0xFFC0;
+ calc_type g = (bgr >> 4) & 0xFFC0;
+ calc_type r = (bgr << 6) & 0xFFC0;
+ *p = (pixel_type)
+ (((((cb - b) * alpha + (b << 16)) >> 2) & 0x3FF00000) |
+ ((((cg - g) * alpha + (g << 16)) >> 12) & 0x000FFC00) |
+ (((cr - r) * alpha + (r << 16)) >> 22) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (r >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 6) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p >> 14) & 0xFFC0);
+ }
+ };
+
+
+
+ //=================================================blender_bgrAAA_pre
+ struct blender_bgrAAA_pre
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (color_type::base_shift - 8);
+ pixel_type bgr = *p;
+ calc_type b = (bgr >> 14) & 0xFFC0;
+ calc_type g = (bgr >> 4) & 0xFFC0;
+ calc_type r = (bgr << 6) & 0xFFC0;
+ *p = (pixel_type)
+ ((((b * alpha + cb * cover) >> 2) & 0x3FF00000) |
+ (((g * alpha + cg * cover) >> 12) & 0x000FFC00) |
+ ((r * alpha + cr * cover) >> 22) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (r >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 6) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p >> 14) & 0xFFC0);
+ }
+ };
+
+
+
+ //=================================================blender_bgrAAA_gamma
+ template<class Gamma> class blender_bgrAAA_gamma
+ {
+ public:
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_bgrAAA_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type bgr = *p;
+ calc_type b = m_gamma->dir((bgr >> 14) & 0xFFC0);
+ calc_type g = m_gamma->dir((bgr >> 4) & 0xFFC0);
+ calc_type r = m_gamma->dir((bgr << 6) & 0xFFC0);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 16)) >> 16) << 14) & 0x3FF00000) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 16)) >> 16) << 4 ) & 0x000FFC00) |
+ (m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 16)) >> 16) >> 6 ) | 0xC0000000);
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 14) |
+ ((g & 0xFFC0) << 4) |
+ (r >> 6) | 0xC0000000);
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 6) & 0xFFC0,
+ (p >> 4) & 0xFFC0,
+ (p >> 14) & 0xFFC0);
+ }
+
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+
+ //=====================================================blender_rgbBBA
+ struct blender_rgbBBA
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 16) & 0xFFE0;
+ calc_type g = (rgb >> 5) & 0xFFE0;
+ calc_type b = (rgb << 6) & 0xFFC0;
+ *p = (pixel_type)
+ (((((cr - r) * alpha + (r << 16)) ) & 0xFFE00000) |
+ ((((cg - g) * alpha + (g << 16)) >> 11) & 0x001FFC00) |
+ (((cb - b) * alpha + (b << 16)) >> 22));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFE0) << 16) | ((g & 0xFFE0) << 5) | (b >> 6));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 16) & 0xFFE0,
+ (p >> 5) & 0xFFE0,
+ (p << 6) & 0xFFC0);
+ }
+ };
+
+
+ //=================================================blender_rgbBBA_pre
+ struct blender_rgbBBA_pre
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (color_type::base_shift - 8);
+ pixel_type rgb = *p;
+ calc_type r = (rgb >> 16) & 0xFFE0;
+ calc_type g = (rgb >> 5) & 0xFFE0;
+ calc_type b = (rgb << 6) & 0xFFC0;
+ *p = (pixel_type)
+ ((((r * alpha + cr * cover) ) & 0xFFE00000) |
+ (((g * alpha + cg * cover) >> 11) & 0x001FFC00) |
+ ((b * alpha + cb * cover) >> 22));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFE0) << 16) | ((g & 0xFFE0) << 5) | (b >> 6));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 16) & 0xFFE0,
+ (p >> 5) & 0xFFE0,
+ (p << 6) & 0xFFC0);
+ }
+ };
+
+
+
+ //=================================================blender_rgbBBA_gamma
+ template<class Gamma> class blender_rgbBBA_gamma
+ {
+ public:
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_rgbBBA_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type rgb = *p;
+ calc_type r = m_gamma->dir((rgb >> 16) & 0xFFE0);
+ calc_type g = m_gamma->dir((rgb >> 5) & 0xFFE0);
+ calc_type b = m_gamma->dir((rgb << 6) & 0xFFC0);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 16)) >> 16) << 16) & 0xFFE00000) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 16)) >> 16) << 5 ) & 0x001FFC00) |
+ (m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 16)) >> 16) >> 6 ));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((r & 0xFFE0) << 16) | ((g & 0xFFE0) << 5) | (b >> 6));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p >> 16) & 0xFFE0,
+ (p >> 5) & 0xFFE0,
+ (p << 6) & 0xFFC0);
+ }
+
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+ //=====================================================blender_bgrABB
+ struct blender_bgrABB
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type bgr = *p;
+ calc_type b = (bgr >> 16) & 0xFFC0;
+ calc_type g = (bgr >> 6) & 0xFFE0;
+ calc_type r = (bgr << 5) & 0xFFE0;
+ *p = (pixel_type)
+ (((((cb - b) * alpha + (b << 16)) ) & 0xFFC00000) |
+ ((((cg - g) * alpha + (g << 16)) >> 10) & 0x003FF800) |
+ (((cr - r) * alpha + (r << 16)) >> 21));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 16) | ((g & 0xFFE0) << 6) | (r >> 5));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 5) & 0xFFE0,
+ (p >> 6) & 0xFFE0,
+ (p >> 16) & 0xFFC0);
+ }
+ };
+
+
+ //=================================================blender_bgrABB_pre
+ struct blender_bgrABB_pre
+ {
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+
+ static AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (color_type::base_shift - 8);
+ pixel_type bgr = *p;
+ calc_type b = (bgr >> 16) & 0xFFC0;
+ calc_type g = (bgr >> 6) & 0xFFE0;
+ calc_type r = (bgr << 5) & 0xFFE0;
+ *p = (pixel_type)
+ ((((b * alpha + cb * cover) ) & 0xFFC00000) |
+ (((g * alpha + cg * cover) >> 10) & 0x003FF800) |
+ ((r * alpha + cr * cover) >> 21));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 16) | ((g & 0xFFE0) << 6) | (r >> 5));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 5) & 0xFFE0,
+ (p >> 6) & 0xFFE0,
+ (p >> 16) & 0xFFC0);
+ }
+ };
+
+
+
+ //=================================================blender_bgrABB_gamma
+ template<class Gamma> class blender_bgrABB_gamma
+ {
+ public:
+ typedef rgba16 color_type;
+ typedef color_type::value_type value_type;
+ typedef color_type::calc_type calc_type;
+ typedef int32u pixel_type;
+ typedef Gamma gamma_type;
+
+ blender_bgrABB_gamma() : m_gamma(0) {}
+ void gamma(const gamma_type& g) { m_gamma = &g; }
+
+ AGG_INLINE void blend_pix(pixel_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ pixel_type bgr = *p;
+ calc_type b = m_gamma->dir((bgr >> 16) & 0xFFC0);
+ calc_type g = m_gamma->dir((bgr >> 6) & 0xFFE0);
+ calc_type r = m_gamma->dir((bgr << 5) & 0xFFE0);
+ *p = (pixel_type)
+ (((m_gamma->inv(((m_gamma->dir(cb) - b) * alpha + (b << 16)) >> 16) << 16) & 0xFFC00000) |
+ ((m_gamma->inv(((m_gamma->dir(cg) - g) * alpha + (g << 16)) >> 16) << 6 ) & 0x003FF800) |
+ (m_gamma->inv(((m_gamma->dir(cr) - r) * alpha + (r << 16)) >> 16) >> 5 ));
+ }
+
+ static AGG_INLINE pixel_type make_pix(unsigned r, unsigned g, unsigned b)
+ {
+ return (pixel_type)(((b & 0xFFC0) << 16) | ((g & 0xFFE0) << 6) | (r >> 5));
+ }
+
+ static AGG_INLINE color_type make_color(pixel_type p)
+ {
+ return color_type((p << 5) & 0xFFE0,
+ (p >> 6) & 0xFFE0,
+ (p >> 16) & 0xFFC0);
+ }
+
+ private:
+ const Gamma* m_gamma;
+ };
+
+
+
+ //===============================================pixel_formats_rgb_packed
+ template<class Blender> class pixel_formats_rgb_packed
+ {
+ public:
+ typedef rendering_buffer::row_data row_data;
+ typedef typename Blender::color_type color_type;
+ typedef typename Blender::pixel_type pixel_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ private:
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_or_blend_pix(pixel_type* p, const color_type& c, unsigned cover)
+ {
+ if (c.a)
+ {
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ *p = m_blender.make_pix(c.r, c.g, c.b);
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_or_blend_opaque_pix(pixel_type* p, const color_type& c, unsigned cover)
+ {
+ if(cover == 255)
+ {
+ *p = m_blender.make_pix(c.r, c.g, c.b);
+ }
+ else
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, (cover + 1) << (base_shift - 8), cover);
+ }
+ }
+
+
+ public:
+ //--------------------------------------------------------------------
+ pixel_formats_rgb_packed(rendering_buffer& rb) :
+ m_rbuf(&rb)
+ {}
+
+ //--------------------------------------------------------------------
+ Blender& blender() { return m_blender; }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned width() const { return m_rbuf->width(); }
+ AGG_INLINE unsigned height() const { return m_rbuf->height(); }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE color_type pixel(int x, int y) const
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ return m_blender.make_color(((pixel_type*)m_rbuf->row(y))[x]);
+ }
+
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ return row_data(x,
+ width() - 1,
+ m_rbuf->row(y) + x * sizeof(pixel_type));
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_pixel(int x, int y, const color_type& c)
+ {
+ ((pixel_type*)m_rbuf->row(y))[x] = m_blender.make_pix(c.r, c.g, c.b);
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pixel(int x, int y, const color_type& c, int8u cover)
+ {
+ copy_or_blend_pix((pixel_type*)m_rbuf->row(y) + x, c, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ pixel_type v = m_blender.make_pix(c.r, c.g, c.b);
+ do
+ {
+ *p++ = v;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ pixel_type v = m_blender.make_pix(c.r, c.g, c.b);
+ do
+ {
+ *p = v;
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v = m_blender.make_pix(c.r, c.g, c.b);
+ do
+ {
+ *p++ = v;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ ++p;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v = m_blender.make_pix(c.r, c.g, c.b);
+ do
+ {
+ *p = v;
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ m_blender.blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ do
+ {
+ copy_or_blend_pix(p, c, *covers++);
+ ++p;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ do
+ {
+ copy_or_blend_pix(p, c, *covers++);
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ do
+ {
+ copy_or_blend_pix(p++, *colors++, covers ? *covers++ : cover);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ do
+ {
+ copy_or_blend_pix(p, *colors++, covers ? *covers++ : cover);
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p++, *colors++, *covers++);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ *p++ = m_blender.make_pix(colors->r, colors->g, colors->b);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p++, *colors++, cover);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ pixel_type* p = (pixel_type*)m_rbuf->row(y) + x;
+ if(covers)
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p = (pixel_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ *p = m_blender.make_pix(colors->r, colors->g, colors->b);
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ copy_or_blend_opaque_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ memmove((pixel_type*)m_rbuf->row(ydst) + xdst,
+ (pixel_type*)from.row(ysrc) + xsrc,
+ sizeof(pixel_type) * len);
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class SrcPixelFormatRenderer>
+ void blend_from(const SrcPixelFormatRenderer& from,
+ const int8u* psrc_,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ typedef typename SrcPixelFormatRenderer::order_type src_order;
+
+ const value_type* psrc = (const value_type*)psrc_;
+ pixel_type* pdst = (pixel_type*)m_rbuf->row(ydst) + xdst;
+ do
+ {
+ value_type alpha = psrc[src_order::A];
+ if(alpha)
+ {
+ if(alpha == base_mask)
+ {
+ *pdst = m_blender.make_pix(psrc[src_order::R],
+ psrc[src_order::G],
+ psrc[src_order::B]);
+ }
+ else
+ {
+ m_blender.blend_pix(pdst,
+ psrc[src_order::R],
+ psrc[src_order::G],
+ psrc[src_order::B],
+ alpha,
+ 255);
+ }
+ }
+ psrc += 4;
+ ++pdst;
+ }
+ while(--len);
+ }
+
+
+ private:
+ rendering_buffer* m_rbuf;
+ Blender m_blender;
+ };
+
+ typedef pixel_formats_rgb_packed<blender_rgb555> pixfmt_rgb555; //----pixfmt_rgb555
+ typedef pixel_formats_rgb_packed<blender_rgb565> pixfmt_rgb565; //----pixfmt_rgb565
+
+ typedef pixel_formats_rgb_packed<blender_rgb555_pre> pixfmt_rgb555_pre; //----pixfmt_rgb555_pre
+ typedef pixel_formats_rgb_packed<blender_rgb565_pre> pixfmt_rgb565_pre; //----pixfmt_rgb565_pre
+
+ typedef pixel_formats_rgb_packed<blender_rgbAAA> pixfmt_rgbAAA; //----pixfmt_rgbAAA
+ typedef pixel_formats_rgb_packed<blender_bgrAAA> pixfmt_bgrAAA; //----pixfmt_bgrAAA
+ typedef pixel_formats_rgb_packed<blender_rgbBBA> pixfmt_rgbBBA; //----pixfmt_rgbBBA
+ typedef pixel_formats_rgb_packed<blender_bgrABB> pixfmt_bgrABB; //----pixfmt_bgrABB
+
+ typedef pixel_formats_rgb_packed<blender_rgbAAA_pre> pixfmt_rgbAAA_pre; //----pixfmt_rgbAAA_pre
+ typedef pixel_formats_rgb_packed<blender_bgrAAA_pre> pixfmt_bgrAAA_pre; //----pixfmt_bgrAAA_pre
+ typedef pixel_formats_rgb_packed<blender_rgbBBA_pre> pixfmt_rgbBBA_pre; //----pixfmt_rgbBBA_pre
+ typedef pixel_formats_rgb_packed<blender_bgrABB_pre> pixfmt_bgrABB_pre; //----pixfmt_bgrABB_pre
+
+
+ //-----------------------------------------------------pixfmt_rgb555_gamma
+ template<class Gamma> class pixfmt_rgb555_gamma :
+ public pixel_formats_rgb_packed<blender_rgb555_gamma<Gamma> >
+ {
+ public:
+ pixfmt_rgb555_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_rgb555_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+ //-----------------------------------------------------pixfmt_rgb565_gamma
+ template<class Gamma> class pixfmt_rgb565_gamma :
+ public pixel_formats_rgb_packed<blender_rgb565_gamma<Gamma> >
+ {
+ public:
+ pixfmt_rgb565_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_rgb565_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+ //-----------------------------------------------------pixfmt_rgbAAA_gamma
+ template<class Gamma> class pixfmt_rgbAAA_gamma :
+ public pixel_formats_rgb_packed<blender_rgbAAA_gamma<Gamma> >
+ {
+ public:
+ pixfmt_rgbAAA_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_rgbAAA_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+ //-----------------------------------------------------pixfmt_bgrAAA_gamma
+ template<class Gamma> class pixfmt_bgrAAA_gamma :
+ public pixel_formats_rgb_packed<blender_bgrAAA_gamma<Gamma> >
+ {
+ public:
+ pixfmt_bgrAAA_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_bgrAAA_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+ //-----------------------------------------------------pixfmt_rgbBBA_gamma
+ template<class Gamma> class pixfmt_rgbBBA_gamma :
+ public pixel_formats_rgb_packed<blender_rgbBBA_gamma<Gamma> >
+ {
+ public:
+ pixfmt_rgbBBA_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_rgbBBA_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+ //-----------------------------------------------------pixfmt_bgrABB_gamma
+ template<class Gamma> class pixfmt_bgrABB_gamma :
+ public pixel_formats_rgb_packed<blender_bgrABB_gamma<Gamma> >
+ {
+ public:
+ pixfmt_bgrABB_gamma(rendering_buffer& rb, const Gamma& g) :
+ pixel_formats_rgb_packed<blender_bgrABB_gamma<Gamma> >(rb)
+ {
+ this->blender().gamma(g);
+ }
+ };
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_pixfmt_rgba.h b/agg/inc/agg_pixfmt_rgba.h
new file mode 100755
index 000000000000..3716877e04f7
--- /dev/null
+++ b/agg/inc/agg_pixfmt_rgba.h
@@ -0,0 +1,1312 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_PIXFMT_RGBA_INCLUDED
+#define AGG_PIXFMT_RGBA_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+
+ //=========================================================multiplier_rgba
+ template<class ColorT, class Order> struct multiplier_rgba
+ {
+ typedef typename ColorT::value_type value_type;
+ typedef typename ColorT::calc_type calc_type;
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void premultiply(value_type* p)
+ {
+ calc_type a = p[Order::A];
+ if(a < ColorT::base_mask)
+ {
+ if(a == 0)
+ {
+ p[Order::R] = p[Order::G] = p[Order::B] = 0;
+ return;
+ }
+ p[Order::R] = value_type((p[Order::R] * a) >> ColorT::base_shift);
+ p[Order::G] = value_type((p[Order::G] * a) >> ColorT::base_shift);
+ p[Order::B] = value_type((p[Order::B] * a) >> ColorT::base_shift);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void demultiply(value_type* p)
+ {
+ calc_type a = p[Order::A];
+ if(a < ColorT::base_mask)
+ {
+ if(a == 0)
+ {
+ p[Order::R] = p[Order::G] = p[Order::B] = 0;
+ return;
+ }
+ calc_type r = (calc_type(p[Order::R]) * ColorT::base_mask) / a;
+ calc_type g = (calc_type(p[Order::G]) * ColorT::base_mask) / a;
+ calc_type b = (calc_type(p[Order::B]) * ColorT::base_mask) / a;
+ p[Order::R] = value_type((r > ColorT::base_mask) ? ColorT::base_mask : r);
+ p[Order::G] = value_type((g > ColorT::base_mask) ? ColorT::base_mask : g);
+ p[Order::B] = value_type((b > ColorT::base_mask) ? ColorT::base_mask : b);
+ }
+ }
+ };
+
+
+ //=====================================================apply_gamma_dir_rgba
+ template<class ColorT, class Order, class GammaLut> class apply_gamma_dir_rgba
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_dir_rgba(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ p[Order::R] = m_gamma.dir(p[Order::R]);
+ p[Order::G] = m_gamma.dir(p[Order::G]);
+ p[Order::B] = m_gamma.dir(p[Order::B]);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+
+ //=====================================================apply_gamma_inv_rgba
+ template<class ColorT, class Order, class GammaLut> class apply_gamma_inv_rgba
+ {
+ public:
+ typedef typename ColorT::value_type value_type;
+
+ apply_gamma_inv_rgba(const GammaLut& gamma) : m_gamma(gamma) {}
+
+ AGG_INLINE void operator () (value_type* p)
+ {
+ p[Order::R] = m_gamma.inv(p[Order::R]);
+ p[Order::G] = m_gamma.inv(p[Order::G]);
+ p[Order::B] = m_gamma.inv(p[Order::B]);
+ }
+
+ private:
+ const GammaLut& m_gamma;
+ };
+
+
+
+ //=============================================================blender_rgba
+ template<class ColorT, class Order, class PixelT> struct blender_rgba
+ {
+ typedef ColorT color_type;
+ typedef PixelT pixel_type;
+ typedef Order order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ calc_type r = p[Order::R];
+ calc_type g = p[Order::G];
+ calc_type b = p[Order::B];
+ calc_type a = p[Order::A];
+ p[Order::R] = (value_type)(((cr - r) * alpha + (r << base_shift)) >> base_shift);
+ p[Order::G] = (value_type)(((cg - g) * alpha + (g << base_shift)) >> base_shift);
+ p[Order::B] = (value_type)(((cb - b) * alpha + (b << base_shift)) >> base_shift);
+ p[Order::A] = (value_type)((alpha + a) - ((alpha * a + base_mask) >> base_shift));
+ }
+ };
+
+
+ //=========================================================blender_rgba_pre
+ template<class ColorT, class Order, class PixelT> struct blender_rgba_pre
+ {
+ typedef ColorT color_type;
+ typedef PixelT pixel_type;
+ typedef Order order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ alpha = color_type::base_mask - alpha;
+ cover = (cover + 1) << (base_shift - 8);
+ p[Order::R] = (value_type)((p[Order::R] * alpha + cr * cover) >> base_shift);
+ p[Order::G] = (value_type)((p[Order::G] * alpha + cg * cover) >> base_shift);
+ p[Order::B] = (value_type)((p[Order::B] * alpha + cb * cover) >> base_shift);
+ p[Order::A] = (value_type)(base_mask - ((alpha * (base_mask - p[Order::A])) >> base_shift));
+ }
+ };
+
+
+
+ //======================================================blender_rgba_plain
+ template<class ColorT, class Order, class PixelT> struct blender_rgba_plain
+ {
+ typedef ColorT color_type;
+ typedef PixelT pixel_type;
+ typedef Order order_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum { base_shift = color_type::base_shift };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned)
+ {
+ if(alpha == 0) return;
+ calc_type a = p[Order::A];
+ calc_type r = p[Order::R] * a;
+ calc_type g = p[Order::G] * a;
+ calc_type b = p[Order::B] * a;
+ a = ((alpha + a) << base_shift) - alpha * a;
+ p[Order::A] = (value_type)(a >> base_shift);
+ p[Order::R] = (value_type)((((cr << base_shift) - r) * alpha + (r << base_shift)) / a);
+ p[Order::G] = (value_type)((((cg << base_shift) - g) * alpha + (g << base_shift)) / a);
+ p[Order::B] = (value_type)((((cb << base_shift) - b) * alpha + (b << base_shift)) / a);
+ }
+ };
+
+
+ //====================================================blender_rgba_wrapper
+ template<class Blender> struct blender_rgba_wrapper
+ {
+ typedef typename Blender::color_type color_type;
+ typedef typename Blender::order_type order_type;
+ typedef typename Blender::pixel_type pixel_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void blend_pix(value_type* p,
+ unsigned cr, unsigned cg, unsigned cb,
+ unsigned alpha,
+ unsigned cover)
+ {
+ Blender::blend_pix(p, cr, cg, cb, alpha, cover);
+ }
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void copy_or_blend_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if (c.a)
+ {
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = c.a;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ static AGG_INLINE void copy_or_blend_opaque_pix(value_type* p,
+ const color_type& c,
+ unsigned cover)
+ {
+ if(cover == 255)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = base_mask;
+ }
+ else
+ {
+ Blender::blend_pix(p, c.r, c.g, c.b, (cover + 1) << (base_shift - 8), cover);
+ }
+ }
+ };
+
+
+
+
+ //=======================================================pixel_formats_rgba
+ template<class Blender> class pixel_formats_rgba
+ {
+ public:
+ typedef rendering_buffer::row_data row_data;
+ typedef typename Blender::color_type color_type;
+ typedef typename Blender::order_type order_type;
+ typedef typename Blender::pixel_type pixel_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ typedef blender_rgba_wrapper<Blender> blender_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ pixel_formats_rgba(rendering_buffer& rb) :
+ m_rbuf(&rb)
+ {}
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned width() const { return m_rbuf->width(); }
+ AGG_INLINE unsigned height() const { return m_rbuf->height(); }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE color_type pixel(int x, int y) const
+ {
+ const value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ return color_type(p[order_type::R],
+ p[order_type::G],
+ p[order_type::B],
+ p[order_type::A]);
+ }
+
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ return row_data(x,
+ width() - 1,
+ m_rbuf->row(y) + x * 4 * sizeof(value_type));
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_pixel(int x, int y, const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = c.a;
+ }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void blend_pixel(int x, int y, const color_type& c, int8u cover)
+ {
+ blender_type::copy_or_blend_pix((value_type*)m_rbuf->row(y) + (x << 2), c, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_hline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p += 4;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ AGG_INLINE void copy_vline(int x, int y,
+ unsigned len,
+ const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p += 4;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y,
+ unsigned len,
+ const color_type& c,
+ int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = base_mask;
+ }
+ else
+ {
+ blender_type::blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+ }
+ p += 4;
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y,
+ unsigned len,
+ const color_type& c,
+ const int8u* covers)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ do
+ {
+ calc_type alpha = (calc_type(c.a) * (calc_type(*covers) + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = base_mask;
+ }
+ else
+ {
+ blender_type::blend_pix(p, c.r, c.g, c.b, alpha, *covers);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++covers;
+ }
+ while(--len);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix(p, *colors++, *covers++);
+ p += 4;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ }
+ else
+ {
+ blender_type::copy_or_blend_pix(p, *colors, 255);
+ }
+ p += 4;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix(p, *colors++, cover);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ if(colors->a == base_mask)
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ }
+ else
+ {
+ blender_type::copy_or_blend_pix(p, *colors, 255);
+ }
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p += 4;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ p += 4;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, cover);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->row(y) + (x << 2);
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ p = (value_type*)m_rbuf->next_row(p);
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, cover);
+ p = (value_type*)m_rbuf->next_row(p);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class Function> void for_each_pixel(Function f)
+ {
+ unsigned y;
+ for(y = 0; y < height(); ++y)
+ {
+ unsigned len = width();
+ value_type* p = (value_type*)m_rbuf->row(y);
+ do
+ {
+ f(p);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void premultiply()
+ {
+ for_each_pixel(multiplier_rgba<color_type, order_type>::premultiply);
+ }
+
+ //--------------------------------------------------------------------
+ void demultiply()
+ {
+ for_each_pixel(multiplier_rgba<color_type, order_type>::demultiply);
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_dir(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_dir_rgba<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_inv(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_inv_rgba<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ memmove((value_type*)m_rbuf->row(ydst) + xdst * 4,
+ (value_type*)from.row(ysrc) + xsrc * 4,
+ sizeof(value_type) * 4 * len);
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class SrcPixelFormatRenderer>
+ void blend_from(const SrcPixelFormatRenderer& from,
+ const int8u* psrc_,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ typedef typename SrcPixelFormatRenderer::order_type src_order;
+
+ const value_type* psrc = (const value_type*)psrc_;
+ value_type* pdst = (value_type*)m_rbuf->row(ydst) + (xdst << 2);
+ int incp = 4;
+ if(xdst > xsrc)
+ {
+ psrc += (len-1) << 2;
+ pdst += (len-1) << 2;
+ incp = -4;
+ }
+ do
+ {
+ value_type alpha = psrc[src_order::A];
+
+ if(alpha)
+ {
+ if(alpha == base_mask)
+ {
+ pdst[order_type::R] = psrc[src_order::R];
+ pdst[order_type::G] = psrc[src_order::G];
+ pdst[order_type::B] = psrc[src_order::B];
+ pdst[order_type::A] = psrc[src_order::A];
+ }
+ else
+ {
+ blender_type::blend_pix(pdst,
+ psrc[src_order::R],
+ psrc[src_order::G],
+ psrc[src_order::B],
+ alpha,
+ 255);
+ }
+ }
+ psrc += incp;
+ pdst += incp;
+ }
+ while(--len);
+ }
+
+ private:
+ rendering_buffer* m_rbuf;
+ };
+
+
+
+
+ //================================================pixfmt_custom_rbuf_rgba
+ template<class Blender, class RenBuf> class pixfmt_custom_rbuf_rgba
+ {
+ public:
+ typedef typename Blender::color_type color_type;
+ typedef typename Blender::order_type order_type;
+ typedef typename Blender::pixel_type pixel_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ typedef blender_rgba_wrapper<Blender> blender_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_size = color_type::base_size,
+ base_mask = color_type::base_mask
+ };
+
+ typedef RenBuf rbuf_type;
+ typedef typename rbuf_type::row_data row_data;
+
+ //--------------------------------------------------------------------
+ pixfmt_custom_rbuf_rgba(rbuf_type& rb) : m_rbuf(&rb) {}
+
+ //--------------------------------------------------------------------
+ unsigned width() const { return m_rbuf->width(); }
+ unsigned height() const { return m_rbuf->height(); }
+
+ //--------------------------------------------------------------------
+ color_type pixel(int x, int y) const
+ {
+ const value_type* p = m_rbuf->span_ptr(x, y, 1);
+ return p ? color_type(p[order_type::R],
+ p[order_type::G],
+ p[order_type::B],
+ p[order_type::A]) :
+ color_type::no_color();
+ }
+
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ return m_rbuf->span(x, y);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_pixel(int x, int y, const color_type& c)
+ {
+ int8u* p = m_rbuf->span_ptr(x, y, 1);
+ p[order_type::R] = c.r;
+ p[order_type::G] = c.g;
+ p[order_type::B] = c.b;
+ p[order_type::A] = c.b;
+ }
+
+ //--------------------------------------------------------------------
+ void blend_pixel(int x, int y, const color_type& c, int8u cover)
+ {
+ blender_type::copy_or_blend_pix((value_type*)m_rbuf->span_ptr(x, y, 1), c, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_hline(int x, int y, unsigned len, const color_type& c)
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p += 4;
+ }
+ while(--len);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_vline(int x, int y, unsigned len, const color_type& c)
+ {
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)(m_rbuf->span_ptr(x, y++, 1)) = v;
+ }
+ while(--len);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x, int y, unsigned len,
+ const color_type& c, int8u cover)
+ {
+ if (c.a)
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)p = v;
+ p += 4;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::blend_pix(p, c.r, c.g, c.b, alpha, cover);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y, unsigned len,
+ const color_type& c, int8u cover)
+ {
+ if (c.a)
+ {
+ calc_type alpha = (calc_type(c.a) * (cover + 1)) >> 8;
+ if(alpha == base_mask)
+ {
+ pixel_type v;
+ ((value_type*)&v)[order_type::R] = c.r;
+ ((value_type*)&v)[order_type::G] = c.g;
+ ((value_type*)&v)[order_type::B] = c.b;
+ ((value_type*)&v)[order_type::A] = c.a;
+ do
+ {
+ *(pixel_type*)(m_rbuf->span_ptr(x, y++, 1)) = v;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::blend_pix(*(pixel_type*)m_rbuf->span_ptr(x, y++, 1),
+ c.r, c.g, c.b, alpha, cover);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y, unsigned len,
+ const color_type& c, const int8u* covers)
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+ do
+ {
+ blender_type::copy_or_blend_pix(p, c, *covers++);
+ p += 4;
+ }
+ while(--len);
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y, unsigned len,
+ const color_type& c, const int8u* covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix((value_type*)m_rbuf->span_ptr(x, y++, 1),
+ c,
+ *covers++);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y, unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+ do
+ {
+ blender_type::copy_or_blend_pix(p, *colors++, covers ? *covers++ : cover);
+ p += 4;
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y, unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ do
+ {
+ blender_type::copy_or_blend_pix((value_type*)m_rbuf->span_ptr(x, y++, 1),
+ *colors++, covers ? *covers++ : cover);
+ }
+ while(--len);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y, len);
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, *covers++);
+ p += 4;
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ p += 4;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix(p, *colors++, cover);
+ p += 4;
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y,
+ unsigned len,
+ const color_type* colors,
+ const int8u* covers,
+ int8u cover)
+ {
+ if(covers)
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix((value_type*)m_rbuf->span_ptr(x, y++, 1),
+ *colors++, *covers++);
+ }
+ while(--len);
+ }
+ else
+ {
+ if(cover == 255)
+ {
+ do
+ {
+ value_type* p = (value_type*)m_rbuf->span_ptr(x, y++, 1);
+ p[order_type::R] = colors->r;
+ p[order_type::G] = colors->g;
+ p[order_type::B] = colors->b;
+ p[order_type::A] = base_mask;
+ ++colors;
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ blender_type::copy_or_blend_opaque_pix((value_type*)m_rbuf->span_ptr(x, y++, 1),
+ *colors++, cover);
+ }
+ while(--len);
+ }
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ template<class Function> void for_each_pixel(Function f)
+ {
+ unsigned y;
+ for(y = 0; y < height(); ++y)
+ {
+ row_data sp = span(0, y);
+ if(sp.ptr)
+ {
+ value_type* p = (value_type*)sp.ptr;
+ while(sp.x1 <= sp.x2)
+ {
+ f(p);
+ p += 4;
+ ++sp.x1;
+ }
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void premultiply()
+ {
+ for_each_pixel(multiplier_rgba<color_type, order_type>::premultiply);
+ }
+
+ //--------------------------------------------------------------------
+ void demultiply()
+ {
+ for_each_pixel(multiplier_rgba<color_type, order_type>::demultiply);
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_dir(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_dir_rgba<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaLut> void apply_gamma_inv(const GammaLut& g)
+ {
+ for_each_pixel(apply_gamma_inv_rgba<color_type, order_type, GammaLut>(g));
+ }
+
+ //--------------------------------------------------------------------
+ template<class RenBuf2> void copy_from(const RenBuf2& from,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ const int8u* p = from.row(ysrc);
+ if(p)
+ {
+ p += xsrc * 4 * sizeof(value_type);
+ memmove(m_rbuf->span_ptr(xdst, ydst, len),
+ p,
+ len * 4 * sizeof(value_type));
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ template<class SrcPixelFormatRenderer>
+ void blend_from(const SrcPixelFormatRenderer& from,
+ const int8u* psrc_,
+ int xdst, int ydst,
+ int xsrc, int ysrc,
+ unsigned len)
+ {
+ typedef typename SrcPixelFormatRenderer::order_type src_order;
+ const value_type* psrc = (const value_type*)psrc_;
+ value_type* pdst = (value_type*)m_rbuf->span_ptr(xdst, ydst, len);
+
+ int incp = 4;
+ if(xdst > xsrc)
+ {
+ psrc += (len-1) << 2;
+ pdst += (len-1) << 2;
+ incp = -4;
+ }
+ do
+ {
+ value_type alpha = psrc[src_order::A];
+
+ if(alpha)
+ {
+ if(alpha == base_mask)
+ {
+ pdst[order_type::R] = psrc[src_order::R];
+ pdst[order_type::G] = psrc[src_order::G];
+ pdst[order_type::B] = psrc[src_order::B];
+ pdst[order_type::A] = psrc[src_order::A];
+ }
+ else
+ {
+ blender_type::blend_pix(pdst,
+ psrc[src_order::R],
+ psrc[src_order::G],
+ psrc[src_order::B],
+ alpha,
+ 255);
+ }
+ }
+ psrc += incp;
+ pdst += incp;
+ }
+ while(--len);
+ }
+
+
+ private:
+ rbuf_type* m_rbuf;
+ };
+
+
+
+
+
+
+
+ //-----------------------------------------------------------------------
+ typedef blender_rgba<rgba8, order_rgba, int32u> blender_rgba32; //----blender_rgba32
+ typedef blender_rgba<rgba8, order_argb, int32u> blender_argb32; //----blender_argb32
+ typedef blender_rgba<rgba8, order_abgr, int32u> blender_abgr32; //----blender_abgr32
+ typedef blender_rgba<rgba8, order_bgra, int32u> blender_bgra32; //----blender_bgra32
+
+ typedef blender_rgba_pre<rgba8, order_rgba, int32u> blender_rgba32_pre; //----blender_rgba32_pre
+ typedef blender_rgba_pre<rgba8, order_argb, int32u> blender_argb32_pre; //----blender_argb32_pre
+ typedef blender_rgba_pre<rgba8, order_abgr, int32u> blender_abgr32_pre; //----blender_abgr32_pre
+ typedef blender_rgba_pre<rgba8, order_bgra, int32u> blender_bgra32_pre; //----blender_bgra32_pre
+
+ typedef blender_rgba_plain<rgba8, order_rgba, int32u> blender_rgba32_plain; //----blender_rgba32_plain
+ typedef blender_rgba_plain<rgba8, order_argb, int32u> blender_argb32_plain; //----blender_argb32_plain
+ typedef blender_rgba_plain<rgba8, order_abgr, int32u> blender_abgr32_plain; //----blender_abgr32_plain
+ typedef blender_rgba_plain<rgba8, order_bgra, int32u> blender_bgra32_plain; //----blender_bgra32_plain
+
+ struct pixel64_type { int16u c[4]; };
+ typedef blender_rgba<rgba16, order_rgba, pixel64_type> blender_rgba64; //----blender_rgba64
+ typedef blender_rgba<rgba16, order_argb, pixel64_type> blender_argb64; //----blender_argb64
+ typedef blender_rgba<rgba16, order_abgr, pixel64_type> blender_abgr64; //----blender_abgr64
+ typedef blender_rgba<rgba16, order_bgra, pixel64_type> blender_bgra64; //----blender_bgra64
+
+ typedef blender_rgba_pre<rgba16, order_rgba, pixel64_type> blender_rgba64_pre; //----blender_rgba64_pre
+ typedef blender_rgba_pre<rgba16, order_argb, pixel64_type> blender_argb64_pre; //----blender_argb64_pre
+ typedef blender_rgba_pre<rgba16, order_abgr, pixel64_type> blender_abgr64_pre; //----blender_abgr64_pre
+ typedef blender_rgba_pre<rgba16, order_bgra, pixel64_type> blender_bgra64_pre; //----blender_bgra64_pre
+
+
+ //-----------------------------------------------------------------------
+ typedef pixel_formats_rgba<blender_rgba32> pixfmt_rgba32; //----pixfmt_rgba32
+ typedef pixel_formats_rgba<blender_argb32> pixfmt_argb32; //----pixfmt_argb32
+ typedef pixel_formats_rgba<blender_abgr32> pixfmt_abgr32; //----pixfmt_abgr32
+ typedef pixel_formats_rgba<blender_bgra32> pixfmt_bgra32; //----pixfmt_bgra32
+
+ typedef pixel_formats_rgba<blender_rgba32_pre> pixfmt_rgba32_pre; //----pixfmt_rgba32_pre
+ typedef pixel_formats_rgba<blender_argb32_pre> pixfmt_argb32_pre; //----pixfmt_argb32_pre
+ typedef pixel_formats_rgba<blender_abgr32_pre> pixfmt_abgr32_pre; //----pixfmt_abgr32_pre
+ typedef pixel_formats_rgba<blender_bgra32_pre> pixfmt_bgra32_pre; //----pixfmt_bgra32_pre
+
+ typedef pixel_formats_rgba<blender_rgba32_plain> pixfmt_rgba32_plain; //----pixfmt_rgba32_plain
+ typedef pixel_formats_rgba<blender_argb32_plain> pixfmt_argb32_plain; //----pixfmt_argb32_plain
+ typedef pixel_formats_rgba<blender_abgr32_plain> pixfmt_abgr32_plain; //----pixfmt_abgr32_plain
+ typedef pixel_formats_rgba<blender_bgra32_plain> pixfmt_bgra32_plain; //----pixfmt_bgra32_plain
+
+ typedef pixel_formats_rgba<blender_rgba64> pixfmt_rgba64; //----pixfmt_rgba64
+ typedef pixel_formats_rgba<blender_argb64> pixfmt_argb64; //----pixfmt_argb64
+ typedef pixel_formats_rgba<blender_abgr64> pixfmt_abgr64; //----pixfmt_abgr64
+ typedef pixel_formats_rgba<blender_bgra64> pixfmt_bgra64; //----pixfmt_bgra64
+
+ typedef pixel_formats_rgba<blender_rgba64_pre> pixfmt_rgba64_pre; //----pixfmt_rgba64_pre
+ typedef pixel_formats_rgba<blender_argb64_pre> pixfmt_argb64_pre; //----pixfmt_argb64_pre
+ typedef pixel_formats_rgba<blender_abgr64_pre> pixfmt_abgr64_pre; //----pixfmt_abgr64_pre
+ typedef pixel_formats_rgba<blender_bgra64_pre> pixfmt_bgra64_pre; //----pixfmt_bgra64_pre
+}
+
+#endif
+
diff --git a/agg/inc/agg_rasterizer_outline.h b/agg/inc/agg_rasterizer_outline.h
new file mode 100755
index 000000000000..18512e76a1ad
--- /dev/null
+++ b/agg/inc/agg_rasterizer_outline.h
@@ -0,0 +1,146 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_RASTERIZER_OUTLINE_INCLUDED
+#define AGG_RASTERIZER_OUTLINE_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //======================================================rasterizer_outline
+ template<class Renderer> class rasterizer_outline
+ {
+ public:
+ rasterizer_outline(Renderer& ren) :
+ m_ren(&ren),
+ m_start_x(0),
+ m_start_y(0),
+ m_vertices(0)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void move_to(int x, int y)
+ {
+ m_vertices = 1;
+ m_ren->move_to(m_start_x = x, m_start_y = y);
+ }
+
+ //--------------------------------------------------------------------
+ void line_to(int x, int y)
+ {
+ ++m_vertices;
+ m_ren->line_to(x, y);
+ }
+
+ //--------------------------------------------------------------------
+ void move_to_d(double x, double y)
+ {
+ move_to(m_ren->coord(x), m_ren->coord(y));
+ }
+
+ //--------------------------------------------------------------------
+ void line_to_d(double x, double y)
+ {
+ line_to(m_ren->coord(x), m_ren->coord(y));
+ }
+
+ //--------------------------------------------------------------------
+ void close()
+ {
+ if(m_vertices > 2)
+ {
+ line_to(m_start_x, m_start_y);
+ }
+ m_vertices = 0;
+ }
+
+ //--------------------------------------------------------------------
+ void add_vertex(double x, double y, unsigned cmd)
+ {
+ if(is_move_to(cmd))
+ {
+ move_to_d(x, y);
+ }
+ else
+ {
+ if(is_end_poly(cmd))
+ {
+ if(is_closed(cmd)) close();
+ }
+ else
+ {
+ line_to_d(x, y);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class VertexSource>
+ void add_path(VertexSource& vs, unsigned id=0)
+ {
+ double x;
+ double y;
+
+ unsigned cmd;
+ vs.rewind(id);
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ add_vertex(x, y, cmd);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class VertexSource, class ColorStorage, class PathId>
+ void render_all_paths(VertexSource& vs,
+ const ColorStorage& colors,
+ const PathId& id,
+ unsigned num_paths)
+ {
+ for(unsigned i = 0; i < num_paths; i++)
+ {
+ m_ren->line_color(colors[i]);
+ add_path(vs, id[i]);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class Ctrl> void render_ctrl(Ctrl& c)
+ {
+ unsigned i;
+ for(i = 0; i < c.num_paths(); i++)
+ {
+ m_ren->line_color(c.color(i));
+ add_path(c, i);
+ }
+ }
+
+
+ private:
+ Renderer* m_ren;
+ int m_start_x;
+ int m_start_y;
+ unsigned m_vertices;
+ };
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_rasterizer_outline_aa.h b/agg/inc/agg_rasterizer_outline_aa.h
new file mode 100755
index 000000000000..3f4d6395fafa
--- /dev/null
+++ b/agg/inc/agg_rasterizer_outline_aa.h
@@ -0,0 +1,516 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_RASTERIZER_OUTLINE_AA_INCLUDED
+#define AGG_RASTERIZER_OUTLINE_AA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_line_aa_basics.h"
+#include "agg_vertex_sequence.h"
+
+namespace agg
+{
+
+ //-------------------------------------------------------------------------
+ inline bool cmp_dist_start(int d) { return d > 0; }
+ inline bool cmp_dist_end(int d) { return d <= 0; }
+
+
+
+ //-----------------------------------------------------------line_aa_vertex
+ // Vertex (x, y) with the distance to the next one. The last vertex has
+ // the distance between the last and the first points
+ struct line_aa_vertex
+ {
+ int x;
+ int y;
+ int len;
+
+ line_aa_vertex() {}
+ line_aa_vertex(int x_, int y_) :
+ x(x_),
+ y(y_),
+ len(0)
+ {
+ }
+
+ bool operator () (const line_aa_vertex& val)
+ {
+ double dx = val.x - x;
+ double dy = val.y - y;
+ return (len = int(sqrt(dx * dx + dy * dy))) >
+ (line_subpixel_size + line_subpixel_size / 2);
+ }
+ };
+
+
+
+
+ //=======================================================rasterizer_outline_aa
+ template<class Renderer> class rasterizer_outline_aa
+ {
+ private:
+ //------------------------------------------------------------------------
+ struct draw_vars
+ {
+ unsigned idx;
+ int x1, y1, x2, y2;
+ line_parameters curr, next;
+ int lcurr, lnext;
+ int xb1, yb1, xb2, yb2;
+ unsigned flags;
+ };
+
+ void draw(draw_vars& dv, unsigned start, unsigned end);
+
+ public:
+ typedef line_aa_vertex vertex_type;
+ typedef vertex_sequence<vertex_type, 6> vertex_storage_type;
+
+ rasterizer_outline_aa(Renderer& ren) :
+ m_ren(ren),
+ m_accurate_join(m_ren.accurate_join_only()),
+ m_round_cap(false),
+ m_start_x(0),
+ m_start_y(0)
+ {
+ }
+
+ //------------------------------------------------------------------------
+ void accurate_join(bool v)
+ {
+ m_accurate_join = m_ren.accurate_join_only() ? true : v;
+ }
+ bool accurate_join() const { return m_accurate_join; }
+
+ //------------------------------------------------------------------------
+ void round_cap(bool v) { m_round_cap = v; }
+ bool round_cap() const { return m_round_cap; }
+
+ //------------------------------------------------------------------------
+ void move_to(int x, int y)
+ {
+ m_src_vertices.modify_last(vertex_type(m_start_x = x, m_start_y = y));
+ }
+
+ //------------------------------------------------------------------------
+ void line_to(int x, int y)
+ {
+ m_src_vertices.add(vertex_type(x, y));
+ }
+
+ //------------------------------------------------------------------------
+ void move_to_d(double x, double y)
+ {
+ move_to(line_coord(x), line_coord(y));
+ }
+
+ //------------------------------------------------------------------------
+ void line_to_d(double x, double y)
+ {
+ line_to(line_coord(x), line_coord(y));
+ }
+
+ //------------------------------------------------------------------------
+ void render(bool close_polygon);
+
+ //------------------------------------------------------------------------
+ void add_vertex(double x, double y, unsigned cmd)
+ {
+ if(is_move_to(cmd))
+ {
+ render(false);
+ move_to_d(x, y);
+ }
+ else
+ {
+ if(is_end_poly(cmd))
+ {
+ render(is_closed(cmd));
+ if(is_closed(cmd))
+ {
+ move_to(m_start_x, m_start_y);
+ }
+ }
+ else
+ {
+ line_to_d(x, y);
+ }
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<class VertexSource>
+ void add_path(VertexSource& vs, unsigned id=0)
+ {
+ double x;
+ double y;
+
+ unsigned cmd;
+ vs.rewind(id);
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ add_vertex(x, y, cmd);
+ }
+ render(false);
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class VertexSource, class ColorStorage, class PathId>
+ void render_all_paths(VertexSource& vs,
+ const ColorStorage& colors,
+ const PathId& id,
+ unsigned num_paths)
+ {
+ for(unsigned i = 0; i < num_paths; i++)
+ {
+ m_ren.color(colors[i]);
+ add_path(vs, id[i]);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class Ctrl> void render_ctrl(Ctrl& c)
+ {
+ unsigned i;
+ for(i = 0; i < c.num_paths(); i++)
+ {
+ m_ren.color(c.color(i));
+ add_path(c, i);
+ }
+ }
+
+ private:
+ rasterizer_outline_aa(const rasterizer_outline_aa<Renderer>&);
+ const rasterizer_outline_aa<Renderer>& operator =
+ (const rasterizer_outline_aa<Renderer>&);
+
+ Renderer& m_ren;
+ vertex_storage_type m_src_vertices;
+ bool m_accurate_join;
+ bool m_round_cap;
+ int m_start_x;
+ int m_start_y;
+ };
+
+
+
+
+
+
+
+
+ //----------------------------------------------------------------------------
+ template<class Renderer>
+ void rasterizer_outline_aa<Renderer>::draw(draw_vars& dv, unsigned start, unsigned end)
+ {
+ unsigned i;
+ const vertex_storage_type::value_type* v;
+
+ for(i = start; i < end; i++)
+ {
+ switch(dv.flags)
+ {
+ case 0: m_ren.line3(dv.curr, dv.xb1, dv.yb1, dv.xb2, dv.yb2); break;
+ case 1: m_ren.line2(dv.curr, dv.xb2, dv.yb2); break;
+ case 2: m_ren.line1(dv.curr, dv.xb1, dv.yb1); break;
+ case 3: m_ren.line0(dv.curr); break;
+ }
+
+ dv.x1 = dv.x2;
+ dv.y1 = dv.y2;
+ dv.lcurr = dv.lnext;
+ dv.lnext = m_src_vertices[dv.idx].len;
+
+ ++dv.idx;
+ if(dv.idx >= m_src_vertices.size()) dv.idx = 0;
+
+ v = &m_src_vertices[dv.idx];
+ dv.x2 = v->x;
+ dv.y2 = v->y;
+
+ dv.curr = dv.next;
+ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
+ dv.xb1 = dv.xb2;
+ dv.yb1 = dv.yb2;
+
+ if(m_accurate_join)
+ {
+ dv.flags = 0;
+ }
+ else
+ {
+ dv.flags >>= 1;
+ dv.flags |= ((dv.curr.diagonal_quadrant() ==
+ dv.next.diagonal_quadrant()) << 1);
+ }
+
+ if((dv.flags & 2) == 0)
+ {
+ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2);
+ }
+ }
+ }
+
+
+
+
+ //----------------------------------------------------------------------------
+ template<class Renderer>
+ void rasterizer_outline_aa<Renderer>::render(bool close_polygon)
+ {
+ m_src_vertices.close(close_polygon);
+ draw_vars dv;
+ const vertex_storage_type::value_type* v;
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+ int lprev;
+
+ if(close_polygon)
+ {
+ if(m_src_vertices.size() >= 3)
+ {
+ dv.idx = 2;
+
+ v = &m_src_vertices[m_src_vertices.size() - 1];
+ x1 = v->x;
+ y1 = v->y;
+ lprev = v->len;
+
+ v = &m_src_vertices[0];
+ x2 = v->x;
+ y2 = v->y;
+ dv.lcurr = v->len;
+ line_parameters prev(x1, y1, x2, y2, lprev);
+
+ v = &m_src_vertices[1];
+ dv.x1 = v->x;
+ dv.y1 = v->y;
+ dv.lnext = v->len;
+ dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr);
+
+ v = &m_src_vertices[dv.idx];
+ dv.x2 = v->x;
+ dv.y2 = v->y;
+ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
+
+ dv.xb1 = 0;
+ dv.yb1 = 0;
+ dv.xb2 = 0;
+ dv.yb2 = 0;
+
+ if(m_accurate_join)
+ {
+ dv.flags = 0;
+ }
+ else
+ {
+ dv.flags =
+ (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) |
+ ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1);
+ }
+
+ if((dv.flags & 1) == 0)
+ {
+ bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1);
+ }
+
+ if((dv.flags & 2) == 0)
+ {
+ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2);
+ }
+ draw(dv, 0, m_src_vertices.size());
+ }
+ }
+ else
+ {
+ switch(m_src_vertices.size())
+ {
+ case 0:
+ case 1:
+ break;
+
+ case 2:
+ {
+ v = &m_src_vertices[0];
+ x1 = v->x;
+ y1 = v->y;
+ lprev = v->len;
+ v = &m_src_vertices[1];
+ x2 = v->x;
+ y2 = v->y;
+ line_parameters lp(x1, y1, x2, y2, lprev);
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_start, x1, y1, x1 + (y2 - y1), y1 - (x2 - x1));
+ }
+ m_ren.line3(lp,
+ x1 + (y2 - y1),
+ y1 - (x2 - x1),
+ x2 + (y2 - y1),
+ y2 - (x2 - x1));
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_end, x2, y2, x2 + (y2 - y1), y2 - (x2 - x1));
+ }
+ }
+ break;
+
+ case 3:
+ {
+ int x3, y3;
+ int lnext;
+ v = &m_src_vertices[0];
+ x1 = v->x;
+ y1 = v->y;
+ lprev = v->len;
+ v = &m_src_vertices[1];
+ x2 = v->x;
+ y2 = v->y;
+ lnext = v->len;
+ v = &m_src_vertices[2];
+ x3 = v->x;
+ y3 = v->y;
+ line_parameters lp1(x1, y1, x2, y2, lprev);
+ line_parameters lp2(x2, y2, x3, y3, lnext);
+ bisectrix(lp1, lp2, &dv.xb1, &dv.yb1);
+
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_start, x1, y1, x1 + (y2 - y1), y1 - (x2 - x1));
+ }
+ m_ren.line3(lp1,
+ x1 + (y2 - y1),
+ y1 - (x2 - x1),
+ dv.xb1,
+ dv.yb1);
+
+ m_ren.line3(lp2,
+ dv.xb1,
+ dv.yb1,
+ x3 + (y3 - y2),
+ y3 - (x3 - x2));
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_end, x3, y3, x3 + (y3 - y2), y3 - (x3 - x2));
+ }
+ }
+ break;
+
+ default:
+ {
+ dv.idx = 3;
+
+ v = &m_src_vertices[0];
+ x1 = v->x;
+ y1 = v->y;
+ lprev = v->len;
+
+ v = &m_src_vertices[1];
+ x2 = v->x;
+ y2 = v->y;
+ dv.lcurr = v->len;
+ line_parameters prev(x1, y1, x2, y2, lprev);
+
+ v = &m_src_vertices[2];
+ dv.x1 = v->x;
+ dv.y1 = v->y;
+ dv.lnext = v->len;
+ dv.curr = line_parameters(x2, y2, dv.x1, dv.y1, dv.lcurr);
+
+ v = &m_src_vertices[dv.idx];
+ dv.x2 = v->x;
+ dv.y2 = v->y;
+ dv.next = line_parameters(dv.x1, dv.y1, dv.x2, dv.y2, dv.lnext);
+
+ dv.xb1 = 0;
+ dv.yb1 = 0;
+ dv.xb2 = 0;
+ dv.yb2 = 0;
+
+ if(m_accurate_join)
+ {
+ dv.flags = 0;
+ }
+ else
+ {
+ dv.flags =
+ (prev.diagonal_quadrant() == dv.curr.diagonal_quadrant()) |
+ ((dv.curr.diagonal_quadrant() == dv.next.diagonal_quadrant()) << 1);
+ }
+
+ if((dv.flags & 1) == 0)
+ {
+ bisectrix(prev, dv.curr, &dv.xb1, &dv.yb1);
+ m_ren.line3(prev,
+ x1 + (y2 - y1),
+ y1 - (x2 - x1),
+ dv.xb1,
+ dv.yb1);
+ }
+ else
+ {
+ m_ren.line1(prev,
+ x1 + (y2 - y1),
+ y1 - (x2 - x1));
+ }
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_start, x1, y1, x1 + (y2 - y1), y1 - (x2 - x1));
+ }
+ if((dv.flags & 2) == 0)
+ {
+ bisectrix(dv.curr, dv.next, &dv.xb2, &dv.yb2);
+ }
+
+ draw(dv, 1, m_src_vertices.size() - 2);
+
+ if((dv.flags & 1) == 0)
+ {
+ m_ren.line3(dv.curr,
+ dv.xb1,
+ dv.yb1,
+ dv.curr.x2 + (dv.curr.y2 - dv.curr.y1),
+ dv.curr.y2 - (dv.curr.x2 - dv.curr.x1));
+ }
+ else
+ {
+ m_ren.line2(dv.curr,
+ dv.curr.x2 + (dv.curr.y2 - dv.curr.y1),
+ dv.curr.y2 - (dv.curr.x2 - dv.curr.x1));
+ }
+ if(m_round_cap)
+ {
+ m_ren.semidot(cmp_dist_end, dv.curr.x2, dv.curr.y2,
+ dv.curr.x2 + (dv.curr.y2 - dv.curr.y1),
+ dv.curr.y2 - (dv.curr.x2 - dv.curr.x1));
+ }
+
+ }
+ break;
+ }
+ }
+ m_src_vertices.remove_all();
+ }
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_rasterizer_scanline_aa.h b/agg/inc/agg_rasterizer_scanline_aa.h
new file mode 100755
index 000000000000..03be55dcc62a
--- /dev/null
+++ b/agg/inc/agg_rasterizer_scanline_aa.h
@@ -0,0 +1,743 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+// The author gratefully acknowleges the support of David Turner,
+// Robert Wilhelm, and Werner Lemberg - the authors of the FreeType
+// libray - in producing this work. See http://www.freetype.org for details.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class rasterizer_scanline_aa
+//
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_RASTERIZER_SCANLINE_AA_INCLUDED
+#define AGG_RASTERIZER_SCANLINE_AA_INCLUDED
+
+#include <string.h>
+#include <math.h>
+#include "agg_basics.h"
+#include "agg_math.h"
+#include "agg_gamma_functions.h"
+#include "agg_clip_liang_barsky.h"
+#include "agg_render_scanlines.h"
+
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ // These constants determine the subpixel accuracy, to be more precise,
+ // the number of bits of the fractional part of the coordinates.
+ // The possible coordinate capacity in bits can be calculated by formula:
+ // sizeof(int) * 8 - poly_base_shift * 2, i.e, for 32-bit integers and
+ // 8-bits fractional part the capacity is 16 bits or [-32768...32767].
+ enum
+ {
+ poly_base_shift = 8, //----poly_base_shift
+ poly_base_size = 1 << poly_base_shift, //----poly_base_size
+ poly_base_mask = poly_base_size - 1 //----poly_base_mask
+ };
+
+ //--------------------------------------------------------------poly_coord
+ inline int poly_coord(double c)
+ {
+ return int(c * poly_base_size);
+ }
+
+ //-----------------------------------------------------------------cell_aa
+ // A pixel cell. There're no constructors defined and it was done
+ // intentionally in order to avoid extra overhead when allocating an
+ // array of cells.
+ struct cell_aa
+ {
+ int16 x;
+ int16 y;
+ int packed_coord;
+ int cover;
+ int area;
+
+ void set(int x, int y, int c, int a);
+ void set_coord(int x, int y);
+ void set_cover(int c, int a);
+ void add_cover(int c, int a);
+ };
+
+
+ //--------------------------------------------------------------outline_aa
+ // An internal class that implements the main rasterization algorithm.
+ // Used in the rasterizer. Should not be used direcly.
+ class outline_aa
+ {
+ enum
+ {
+ cell_block_shift = 12,
+ cell_block_size = 1 << cell_block_shift,
+ cell_block_mask = cell_block_size - 1,
+ cell_block_pool = 256,
+ cell_block_limit = 1024
+ };
+
+ public:
+
+ ~outline_aa();
+ outline_aa();
+
+ void reset();
+
+ void move_to(int x, int y);
+ void line_to(int x, int y);
+
+ int min_x() const { return m_min_x; }
+ int min_y() const { return m_min_y; }
+ int max_x() const { return m_max_x; }
+ int max_y() const { return m_max_y; }
+
+ const cell_aa* const* cells();
+ unsigned num_cells() { cells(); return m_num_cells; }
+ bool sorted() const { return m_sorted; }
+
+ private:
+ outline_aa(const outline_aa&);
+ const outline_aa& operator = (const outline_aa&);
+
+ void set_cur_cell(int x, int y);
+ void add_cur_cell();
+ void sort_cells();
+ void render_hline(int ey, int x1, int y1, int x2, int y2);
+ void render_line(int x1, int y1, int x2, int y2);
+ void allocate_block();
+
+ static void qsort_cells(cell_aa** start, unsigned num);
+
+ private:
+ unsigned m_num_blocks;
+ unsigned m_max_blocks;
+ unsigned m_cur_block;
+ unsigned m_num_cells;
+ cell_aa** m_cells;
+ cell_aa* m_cur_cell_ptr;
+ cell_aa** m_sorted_cells;
+ unsigned m_sorted_size;
+ cell_aa m_cur_cell;
+ int m_cur_x;
+ int m_cur_y;
+ int m_min_x;
+ int m_min_y;
+ int m_max_x;
+ int m_max_y;
+ bool m_sorted;
+ };
+
+
+ //----------------------------------------------------------filling_rule_e
+ enum filling_rule_e
+ {
+ fill_non_zero,
+ fill_even_odd
+ };
+
+
+ //==================================================rasterizer_scanline_aa
+ // Polygon rasterizer that is used to render filled polygons with
+ // high-quality Anti-Aliasing. Internally, by default, the class uses
+ // integer coordinates in format 24.8, i.e. 24 bits for integer part
+ // and 8 bits for fractional - see poly_base_shift. This class can be
+ // used in the following way:
+ //
+ // 1. filling_rule(filling_rule_e ft) - optional.
+ //
+ // 2. gamma() - optional.
+ //
+ // 3. reset()
+ //
+ // 4. move_to(x, y) / line_to(x, y) - make the polygon. One can create
+ // more than one contour, but each contour must consist of at least 3
+ // vertices, i.e. move_to(x1, y1); line_to(x2, y2); line_to(x3, y3);
+ // is the absolute minimum of vertices that define a triangle.
+ // The algorithm does not check either the number of vertices nor
+ // coincidence of their coordinates, but in the worst case it just
+ // won't draw anything.
+ // The orger of the vertices (clockwise or counterclockwise)
+ // is important when using the non-zero filling rule (fill_non_zero).
+ // In this case the vertex order of all the contours must be the same
+ // if you want your intersecting polygons to be without "holes".
+ // You actually can use different vertices order. If the contours do not
+ // intersect each other the order is not important anyway. If they do,
+ // contours with the same vertex order will be rendered without "holes"
+ // while the intersecting contours with different orders will have "holes".
+ //
+ // filling_rule() and gamma() can be called anytime before "sweeping".
+ //------------------------------------------------------------------------
+ template<unsigned XScale=1, unsigned AA_Shift=8> class rasterizer_scanline_aa
+ {
+ enum status
+ {
+ status_initial,
+ status_line_to,
+ status_closed
+ };
+
+ struct iterator
+ {
+ const cell_aa* const* cells;
+ int cover;
+ int last_y;
+ };
+
+ public:
+ enum
+ {
+ aa_shift = AA_Shift,
+ aa_num = 1 << aa_shift,
+ aa_mask = aa_num - 1,
+ aa_2num = aa_num * 2,
+ aa_2mask = aa_2num - 1
+ };
+
+ //--------------------------------------------------------------------
+ rasterizer_scanline_aa() :
+ m_filling_rule(fill_non_zero),
+ m_clipped_start_x(0),
+ m_clipped_start_y(0),
+ m_start_x(0),
+ m_start_y(0),
+ m_prev_x(0),
+ m_prev_y(0),
+ m_prev_flags(0),
+ m_status(status_initial),
+ m_clipping(false)
+ {
+ int i;
+ for(i = 0; i < aa_num; i++) m_gamma[i] = i;
+ }
+
+ //--------------------------------------------------------------------
+ template<class GammaF>
+ rasterizer_scanline_aa(const GammaF& gamma_function) :
+ m_filling_rule(fill_non_zero),
+ m_clipped_start_x(0),
+ m_clipped_start_y(0),
+ m_start_x(0),
+ m_start_y(0),
+ m_prev_x(0),
+ m_prev_y(0),
+ m_prev_flags(0),
+ m_status(status_initial),
+ m_clipping(false)
+ {
+ gamma(gamma_function);
+ }
+
+ //--------------------------------------------------------------------
+ void reset();
+ void filling_rule(filling_rule_e filling_rule);
+ void clip_box(double x1, double y1, double x2, double y2);
+ void reset_clipping();
+
+ //--------------------------------------------------------------------
+ template<class GammaF> void gamma(const GammaF& gamma_function)
+ {
+ int i;
+ for(i = 0; i < aa_num; i++)
+ {
+ m_gamma[i] = int(floor(gamma_function(double(i) / aa_mask) * aa_mask + 0.5));
+ }
+ }
+
+ //--------------------------------------------------------------------
+ unsigned apply_gamma(unsigned cover) const
+ {
+ return m_gamma[cover];
+ }
+
+ //--------------------------------------------------------------------
+ void add_vertex(double x, double y, unsigned cmd);
+ void move_to(int x, int y);
+ void line_to(int x, int y);
+ void close_polygon();
+ void move_to_d(double x, double y);
+ void line_to_d(double x, double y);
+
+ //--------------------------------------------------------------------
+ int min_x() const { return m_outline.min_x(); }
+ int min_y() const { return m_outline.min_y(); }
+ int max_x() const { return m_outline.max_x(); }
+ int max_y() const { return m_outline.max_y(); }
+
+ //--------------------------------------------------------------------
+ AGG_INLINE unsigned calculate_alpha(int area) const
+ {
+ int cover = area >> (poly_base_shift*2 + 1 - aa_shift);
+
+ if(cover < 0) cover = -cover;
+ if(m_filling_rule == fill_even_odd)
+ {
+ cover &= aa_2mask;
+ if(cover > aa_num)
+ {
+ cover = aa_2num - cover;
+ }
+ }
+ if(cover > aa_mask) cover = aa_mask;
+ return m_gamma[cover];
+ }
+
+ //--------------------------------------------------------------------
+ void sort()
+ {
+ m_outline.cells();
+ }
+
+
+ //--------------------------------------------------------------------
+ bool rewind_scanlines()
+ {
+ close_polygon();
+ m_iterator.cells = m_outline.cells();
+ if(m_outline.num_cells() == 0)
+ {
+ return false;
+ }
+ m_iterator.cover = 0;
+ m_iterator.last_y = (*m_iterator.cells)->y;
+ return true;
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class Scanline> bool sweep_scanline(Scanline& sl)
+ {
+ sl.reset_spans();
+ for(;;)
+ {
+ const cell_aa* cur_cell = *m_iterator.cells;
+ if(cur_cell == 0) return false;
+ ++m_iterator.cells;
+ m_iterator.last_y = cur_cell->y;
+
+ for(;;)
+ {
+ int coord = cur_cell->packed_coord;
+ int area = cur_cell->area;
+ int last_x = cur_cell->x;
+
+ m_iterator.cover += cur_cell->cover;
+
+ //accumulate all cells with the same coordinates
+ for(; (cur_cell = *m_iterator.cells) != 0; ++m_iterator.cells)
+ {
+ if(cur_cell->packed_coord != coord) break;
+ area += cur_cell->area;
+ m_iterator.cover += cur_cell->cover;
+ }
+
+ int alpha;
+ if(cur_cell == 0 || cur_cell->y != m_iterator.last_y)
+ {
+
+ if(area)
+ {
+ alpha = calculate_alpha((m_iterator.cover << (poly_base_shift + 1)) - area);
+ if(alpha)
+ {
+ sl.add_cell(last_x, alpha);
+ }
+ ++last_x;
+ }
+ break;
+ }
+
+ ++m_iterator.cells;
+
+ if(area)
+ {
+ alpha = calculate_alpha((m_iterator.cover << (poly_base_shift + 1)) - area);
+ if(alpha)
+ {
+ sl.add_cell(last_x, alpha);
+ }
+ ++last_x;
+ }
+
+ if(cur_cell->x > last_x)
+ {
+ alpha = calculate_alpha(m_iterator.cover << (poly_base_shift + 1));
+ if(alpha)
+ {
+ sl.add_span(last_x, cur_cell->x - last_x, alpha);
+ }
+ }
+ }
+ if(sl.num_spans())
+ {
+ sl.finalize(m_iterator.last_y);
+ break;
+ }
+ }
+ return true;
+ }
+
+
+ //--------------------------------------------------------------------
+ bool hit_test(int tx, int ty);
+
+
+ //--------------------------------------------------------------------
+ void add_xy(const double* x, const double* y, unsigned n)
+ {
+ if(n > 2)
+ {
+ move_to_d(*x++, *y++);
+ --n;
+ do
+ {
+ line_to_d(*x++, *y++);
+ }
+ while(--n);
+ }
+ }
+
+ //-------------------------------------------------------------------
+ template<class VertexSource>
+ void add_path(VertexSource& vs, unsigned id=0)
+ {
+ double x;
+ double y;
+
+ unsigned cmd;
+ vs.rewind(id);
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ add_vertex(x, y, cmd);
+ }
+ }
+
+
+ private:
+ //--------------------------------------------------------------------
+ // Disable copying
+ rasterizer_scanline_aa(const rasterizer_scanline_aa<XScale, AA_Shift>&);
+ const rasterizer_scanline_aa<XScale, AA_Shift>&
+ operator = (const rasterizer_scanline_aa<XScale, AA_Shift>&);
+
+ //--------------------------------------------------------------------
+ void move_to_no_clip(int x, int y);
+ void line_to_no_clip(int x, int y);
+ void close_polygon_no_clip();
+ void clip_segment(int x, int y);
+
+ private:
+ outline_aa m_outline;
+ int m_gamma[aa_num];
+ filling_rule_e m_filling_rule;
+ int m_clipped_start_x;
+ int m_clipped_start_y;
+ int m_start_x;
+ int m_start_y;
+ int m_prev_x;
+ int m_prev_y;
+ unsigned m_prev_flags;
+ unsigned m_status;
+ rect m_clip_box;
+ bool m_clipping;
+ iterator m_iterator;
+ };
+
+
+
+
+
+
+
+
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::reset()
+ {
+ m_outline.reset();
+ m_status = status_initial;
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::filling_rule(filling_rule_e _filling_rule)
+ {
+ m_filling_rule = _filling_rule;
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::clip_box(double x1, double y1, double x2, double y2)
+ {
+ reset();
+ m_clip_box = rect(poly_coord(x1), poly_coord(y1),
+ poly_coord(x2), poly_coord(y2));
+ m_clip_box.normalize();
+ m_clipping = true;
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::reset_clipping()
+ {
+ reset();
+ m_clipping = false;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::move_to_no_clip(int x, int y)
+ {
+ if(m_status == status_line_to)
+ {
+ close_polygon_no_clip();
+ }
+ m_outline.move_to(x * XScale, y);
+ m_clipped_start_x = x;
+ m_clipped_start_y = y;
+ m_status = status_line_to;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::line_to_no_clip(int x, int y)
+ {
+ if(m_status != status_initial)
+ {
+ m_outline.line_to(x * XScale, y);
+ m_status = status_line_to;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::close_polygon_no_clip()
+ {
+ if(m_status == status_line_to)
+ {
+ m_outline.line_to(m_clipped_start_x * XScale, m_clipped_start_y);
+ m_status = status_closed;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::clip_segment(int x, int y)
+ {
+ unsigned flags = clipping_flags(x, y, m_clip_box);
+ if(m_prev_flags == flags)
+ {
+ if(flags == 0)
+ {
+ if(m_status == status_initial)
+ {
+ move_to_no_clip(x, y);
+ }
+ else
+ {
+ line_to_no_clip(x, y);
+ }
+ }
+ }
+ else
+ {
+ int cx[4];
+ int cy[4];
+ unsigned n = clip_liang_barsky(m_prev_x, m_prev_y,
+ x, y,
+ m_clip_box,
+ cx, cy);
+ const int* px = cx;
+ const int* py = cy;
+ while(n--)
+ {
+ if(m_status == status_initial)
+ {
+ move_to_no_clip(*px++, *py++);
+ }
+ else
+ {
+ line_to_no_clip(*px++, *py++);
+ }
+ }
+ }
+ m_prev_flags = flags;
+ m_prev_x = x;
+ m_prev_y = y;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::add_vertex(double x, double y, unsigned cmd)
+ {
+ if(is_close(cmd))
+ {
+ close_polygon();
+ }
+ else
+ {
+ if(is_move_to(cmd))
+ {
+ move_to(poly_coord(x), poly_coord(y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ line_to(poly_coord(x), poly_coord(y));
+ }
+ }
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::move_to(int x, int y)
+ {
+ if(m_clipping)
+ {
+ if(m_outline.sorted())
+ {
+ reset();
+ }
+ if(m_status == status_line_to)
+ {
+ close_polygon();
+ }
+ m_prev_x = m_start_x = x;
+ m_prev_y = m_start_y = y;
+ m_status = status_initial;
+ m_prev_flags = clipping_flags(x, y, m_clip_box);
+ if(m_prev_flags == 0)
+ {
+ move_to_no_clip(x, y);
+ }
+ }
+ else
+ {
+ move_to_no_clip(x, y);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::line_to(int x, int y)
+ {
+ if(m_clipping)
+ {
+ clip_segment(x, y);
+ }
+ else
+ {
+ line_to_no_clip(x, y);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::close_polygon()
+ {
+ if(m_clipping)
+ {
+ clip_segment(m_start_x, m_start_y);
+ }
+ close_polygon_no_clip();
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::move_to_d(double x, double y)
+ {
+ move_to(poly_coord(x), poly_coord(y));
+ }
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ void rasterizer_scanline_aa<XScale, AA_Shift>::line_to_d(double x, double y)
+ {
+ line_to(poly_coord(x), poly_coord(y));
+ }
+
+
+ //------------------------------------------------------------------------
+ template<unsigned XScale, unsigned AA_Shift>
+ bool rasterizer_scanline_aa<XScale, AA_Shift>::hit_test(int tx, int ty)
+ {
+ close_polygon();
+ const cell_aa* const* cells = m_outline.cells();
+ if(m_outline.num_cells() == 0) return false;
+
+ int cover = 0;
+
+ const cell_aa* cur_cell = *cells++;
+ for(;;)
+ {
+ int alpha;
+ int coord = cur_cell->packed_coord;
+ int x = cur_cell->x;
+ int y = cur_cell->y;
+
+ if(y > ty) return false;
+
+ int area = cur_cell->area;
+ cover += cur_cell->cover;
+
+ while((cur_cell = *cells++) != 0)
+ {
+ if(cur_cell->packed_coord != coord) break;
+ area += cur_cell->area;
+ cover += cur_cell->cover;
+ }
+
+ if(area)
+ {
+ alpha = calculate_alpha((cover << (poly_base_shift + 1)) - area);
+ if(alpha)
+ {
+ if(tx == x && ty == y) return true;
+ }
+ x++;
+ }
+
+ if(!cur_cell) break;
+
+ if(cur_cell->x > x)
+ {
+ alpha = calculate_alpha(cover << (poly_base_shift + 1));
+ if(alpha)
+ {
+ if(ty == y && tx >= x && tx <= cur_cell->x) return true;
+ }
+ }
+ }
+ return false;
+ }
+
+}
+
+
+
+#endif
+
diff --git a/agg/inc/agg_render_scanlines.h b/agg/inc/agg_render_scanlines.h
new file mode 100755
index 000000000000..60ddecf5c2d6
--- /dev/null
+++ b/agg/inc/agg_render_scanlines.h
@@ -0,0 +1,66 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDER_SCANLINES_INCLUDED
+#define AGG_RENDER_SCANLINES_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //========================================================render_scanlines
+ template<class Rasterizer, class Scanline, class Renderer>
+ void render_scanlines(Rasterizer& ras, Scanline& sl, Renderer& ren)
+ {
+ if(ras.rewind_scanlines())
+ {
+ sl.reset(ras.min_x(), ras.max_x());
+ ren.prepare(unsigned(ras.max_x() - ras.min_x() + 2));
+
+ while(ras.sweep_scanline(sl))
+ {
+ ren.render(sl);
+ }
+ }
+ }
+
+
+ //========================================================render_all_paths
+ template<class Rasterizer, class Scanline, class Renderer,
+ class VertexSource, class ColorStorage, class PathId>
+ void render_all_paths(Rasterizer& ras,
+ Scanline& sl,
+ Renderer& r,
+ VertexSource& vs,
+ const ColorStorage& as,
+ const PathId& id,
+ unsigned num_paths)
+ {
+ for(unsigned i = 0; i < num_paths; i++)
+ {
+ ras.reset();
+ ras.add_path(vs, id[i]);
+ r.color(as[i]);
+ render_scanlines(ras, sl, r);
+ }
+ }
+
+
+}
+
+#endif
+
+
+
diff --git a/agg/inc/agg_renderer_base.h b/agg/inc/agg_renderer_base.h
new file mode 100755
index 000000000000..1ef44fecc6d2
--- /dev/null
+++ b/agg/inc/agg_renderer_base.h
@@ -0,0 +1,618 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class renderer_base
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_BASE_INCLUDED
+#define AGG_RENDERER_BASE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_rendering_buffer.h"
+
+namespace agg
+{
+
+ //-----------------------------------------------------------renderer_base
+ template<class PixelFormat> class renderer_base
+ {
+ public:
+ typedef PixelFormat pixfmt_type;
+ typedef typename pixfmt_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ renderer_base(pixfmt_type& _ren) :
+ m_ren(&_ren),
+ m_clip_box(0, 0, _ren.width() - 1, _ren.height() - 1)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ const pixfmt_type& ren() const { return *m_ren; }
+ pixfmt_type& ren() { return *m_ren; }
+
+ //--------------------------------------------------------------------
+ unsigned width() const { return m_ren->width(); }
+ unsigned height() const { return m_ren->height(); }
+
+ //--------------------------------------------------------------------
+ bool clip_box(int x1, int y1, int x2, int y2)
+ {
+ rect cb(x1, y1, x2, y2);
+ cb.normalize();
+ if(cb.clip(rect(0, 0, width() - 1, height() - 1)))
+ {
+ m_clip_box = cb;
+ return true;
+ }
+ m_clip_box.x1 = 1;
+ m_clip_box.y1 = 1;
+ m_clip_box.x2 = 0;
+ m_clip_box.y2 = 0;
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ void reset_clipping(bool visibility)
+ {
+ if(visibility)
+ {
+ m_clip_box.x1 = 0;
+ m_clip_box.y1 = 0;
+ m_clip_box.x2 = width() - 1;
+ m_clip_box.y2 = height() - 1;
+ }
+ else
+ {
+ m_clip_box.x1 = 1;
+ m_clip_box.y1 = 1;
+ m_clip_box.x2 = 0;
+ m_clip_box.y2 = 0;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void clip_box_naked(int x1, int y1, int x2, int y2)
+ {
+ m_clip_box.x1 = x1;
+ m_clip_box.y1 = y1;
+ m_clip_box.x2 = x2;
+ m_clip_box.y2 = y2;
+ }
+
+ //--------------------------------------------------------------------
+ bool inbox(int x, int y) const
+ {
+ return x >= m_clip_box.x1 && y >= m_clip_box.y1 &&
+ x <= m_clip_box.x2 && y <= m_clip_box.y2;
+ }
+
+ //--------------------------------------------------------------------
+ void first_clip_box() {}
+ bool next_clip_box() { return false; }
+
+ //--------------------------------------------------------------------
+ const rect& clip_box() const { return m_clip_box; }
+ int xmin() const { return m_clip_box.x1; }
+ int ymin() const { return m_clip_box.y1; }
+ int xmax() const { return m_clip_box.x2; }
+ int ymax() const { return m_clip_box.y2; }
+
+ //--------------------------------------------------------------------
+ const rect& bounding_clip_box() const { return m_clip_box; }
+ int bounding_xmin() const { return m_clip_box.x1; }
+ int bounding_ymin() const { return m_clip_box.y1; }
+ int bounding_xmax() const { return m_clip_box.x2; }
+ int bounding_ymax() const { return m_clip_box.y2; }
+
+ //--------------------------------------------------------------------
+ void clear(const color_type& c)
+ {
+ unsigned y;
+ if(width())
+ {
+ for(y = 0; y < height(); y++)
+ {
+ m_ren->copy_hline(0, y, width(), c);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void copy_pixel(int x, int y, const color_type& c)
+ {
+ if(inbox(x, y))
+ {
+ m_ren->copy_pixel(x, y, c);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void blend_pixel(int x, int y, const color_type& c, cover_type cover)
+ {
+ if(inbox(x, y))
+ {
+ m_ren->blend_pixel(x, y, c, cover);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ color_type pixel(int x, int y) const
+ {
+ return inbox(x, y) ?
+ m_ren->pixel(x, y) :
+ color_type::no_color();
+ }
+
+ //--------------------------------------------------------------------
+ void copy_hline(int x1, int y, int x2, const color_type& c)
+ {
+ if(x1 > x2) { int t = x2; x2 = x1; x1 = t; }
+ if(y > ymax()) return;
+ if(y < ymin()) return;
+ if(x1 > xmax()) return;
+ if(x2 < xmin()) return;
+
+ if(x1 < xmin()) x1 = xmin();
+ if(x2 > xmax()) x2 = xmax();
+
+ m_ren->copy_hline(x1, y, x2 - x1 + 1, c);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_vline(int x, int y1, int y2, const color_type& c)
+ {
+ if(y1 > y2) { int t = y2; y2 = y1; y1 = t; }
+ if(x > xmax()) return;
+ if(x < xmin()) return;
+ if(y1 > ymax()) return;
+ if(y2 < ymin()) return;
+
+ if(y1 < ymin()) y1 = ymin();
+ if(y2 > ymax()) y2 = ymax();
+
+ m_ren->copy_vline(x, y1, y2 - y1 + 1, c);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x1, int y, int x2,
+ const color_type& c, cover_type cover)
+ {
+ if(x1 > x2) { int t = x2; x2 = x1; x1 = t; }
+ if(y > ymax()) return;
+ if(y < ymin()) return;
+ if(x1 > xmax()) return;
+ if(x2 < xmin()) return;
+
+ if(x1 < xmin()) x1 = xmin();
+ if(x2 > xmax()) x2 = xmax();
+
+ m_ren->blend_hline(x1, y, x2 - x1 + 1, c, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y1, int y2,
+ const color_type& c, cover_type cover)
+ {
+ if(y1 > y2) { int t = y2; y2 = y1; y1 = t; }
+ if(x > xmax()) return;
+ if(x < xmin()) return;
+ if(y1 > ymax()) return;
+ if(y2 < ymin()) return;
+
+ if(y1 < ymin()) y1 = ymin();
+ if(y2 > ymax()) y2 = ymax();
+
+ m_ren->blend_vline(x, y1, y2 - y1 + 1, c, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void copy_bar(int x1, int y1, int x2, int y2, const color_type& c)
+ {
+ rect rc(x1, y1, x2, y2);
+ rc.normalize();
+ if(rc.clip(clip_box()))
+ {
+ int y;
+ for(y = rc.y1; y <= rc.y2; y++)
+ {
+ m_ren->copy_hline(rc.x1, y, unsigned(rc.x2 - rc.x1 + 1), c);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void blend_bar(int x1, int y1, int x2, int y2,
+ const color_type& c, cover_type cover)
+ {
+ rect rc(x1, y1, x2, y2);
+ rc.normalize();
+ if(rc.clip(clip_box()))
+ {
+ int y;
+ for(y = rc.y1; y <= rc.y2; y++)
+ {
+ m_ren->blend_hline(rc.x1,
+ y,
+ unsigned(rc.x2 - rc.x1 + 1),
+ c,
+ cover);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y, int len,
+ const color_type& c,
+ const cover_type* covers)
+ {
+ if(y > ymax()) return;
+ if(y < ymin()) return;
+
+ if(x < xmin())
+ {
+ len -= xmin() - x;
+ if(len <= 0) return;
+ covers += xmin() - x;
+ x = xmin();
+ }
+ if(x + len > xmax())
+ {
+ len = xmax() - x + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_solid_hspan(x, y, len, c, covers);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y, int len,
+ const color_type& c,
+ const cover_type* covers)
+ {
+ if(x > xmax()) return;
+ if(x < xmin()) return;
+
+ if(y < ymin())
+ {
+ len -= ymin() - y;
+ if(len <= 0) return;
+ covers += ymin() - y;
+ y = ymin();
+ }
+ if(y + len > ymax())
+ {
+ len = ymax() - y + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_solid_vspan(x, y, len, c, covers);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(y > ymax()) return;
+ if(y < ymin()) return;
+
+ if(x < xmin())
+ {
+ int d = xmin() - x;
+ len -= d;
+ if(len <= 0) return;
+ if(covers) covers += d;
+ colors += d;
+ x = xmin();
+ }
+ if(x + len > xmax())
+ {
+ len = xmax() - x + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_color_hspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(x > xmax()) return;
+ if(x < xmin()) return;
+
+ if(y < ymin())
+ {
+ int d = ymin() - y;
+ len -= d;
+ if(len <= 0) return;
+ if(covers) covers += d;
+ colors += d;
+ y = ymin();
+ }
+ if(y + len > ymax())
+ {
+ len = ymax() - y + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_color_vspan(x, y, len, colors, covers, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(y > ymax()) return;
+ if(y < ymin()) return;
+
+ if(x < xmin())
+ {
+ int d = xmin() - x;
+ len -= d;
+ if(len <= 0) return;
+ if(covers) covers += d;
+ colors += d;
+ x = xmin();
+ }
+ if(x + len > xmax())
+ {
+ len = xmax() - x + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_opaque_color_hspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ if(x > xmax()) return;
+ if(x < xmin()) return;
+
+ if(y < ymin())
+ {
+ int d = ymin() - y;
+ len -= d;
+ if(len <= 0) return;
+ if(covers) covers += d;
+ colors += d;
+ y = ymin();
+ }
+ if(y + len > ymax())
+ {
+ len = ymax() - y + 1;
+ if(len <= 0) return;
+ }
+ m_ren->blend_opaque_color_vspan(x, y, len, colors, covers, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren->blend_color_hspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren->blend_color_vspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren->blend_opaque_color_hspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren->blend_opaque_color_vspan(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ rect clip_rect_area(rect& dst, rect& src, int wsrc, int hsrc) const
+ {
+ rect rc(0,0,0,0);
+ rect cb = clip_box();
+ ++cb.x2;
+ ++cb.y2;
+
+ if(src.x1 < 0)
+ {
+ dst.x1 -= src.x1;
+ src.x1 = 0;
+ }
+ if(src.y1 < 0)
+ {
+ dst.y1 -= src.y1;
+ src.y1 = 0;
+ }
+
+ if(src.x2 > wsrc) src.x2 = wsrc;
+ if(src.y2 > hsrc) src.y2 = hsrc;
+
+ if(dst.x1 < cb.x1)
+ {
+ src.x1 += cb.x1 - dst.x1;
+ dst.x1 = cb.x1;
+ }
+ if(dst.y1 < cb.y1)
+ {
+ src.y1 += cb.y1 - dst.y1;
+ dst.y1 = cb.y1;
+ }
+
+ if(dst.x2 > cb.x2) dst.x2 = cb.x2;
+ if(dst.y2 > cb.y2) dst.y2 = cb.y2;
+
+ rc.x2 = dst.x2 - dst.x1;
+ rc.y2 = dst.y2 - dst.y1;
+
+ if(rc.x2 > src.x2 - src.x1) rc.x2 = src.x2 - src.x1;
+ if(rc.y2 > src.y2 - src.y1) rc.y2 = src.y2 - src.y1;
+ return rc;
+ }
+
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& src,
+ const rect* rect_src_ptr = 0,
+ int dx = 0,
+ int dy = 0)
+ {
+ rect rsrc(0, 0, src.width(), src.height());
+ if(rect_src_ptr)
+ {
+ rsrc.x1 = rect_src_ptr->x1;
+ rsrc.y1 = rect_src_ptr->y1;
+ rsrc.x2 = rect_src_ptr->x2 + 1;
+ rsrc.y2 = rect_src_ptr->y2 + 1;
+ }
+
+ // Version with xdst, ydst (absolute positioning)
+ //rect rdst(xdst, ydst, xdst + rsrc.x2 - rsrc.x1, ydst + rsrc.y2 - rsrc.y1);
+
+ // Version with dx, dy (relative positioning)
+ rect rdst(rsrc.x1 + dx, rsrc.y1 + dy, rsrc.x2 + dx, rsrc.y2 + dy);
+
+ rect rc = clip_rect_area(rdst, rsrc, src.width(), src.height());
+
+ if(rc.x2 > 0)
+ {
+ int incy = 1;
+ if(rdst.y1 > rsrc.y1)
+ {
+ rsrc.y1 += rc.y2 - 1;
+ rdst.y1 += rc.y2 - 1;
+ incy = -1;
+ }
+ while(rc.y2 > 0)
+ {
+ m_ren->copy_from(src,
+ rdst.x1, rdst.y1,
+ rsrc.x1, rsrc.y1,
+ rc.x2);
+ rdst.y1 += incy;
+ rsrc.y1 += incy;
+ --rc.y2;
+ }
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ template<class SrcPixelFormatRenderer>
+ void blend_from(const SrcPixelFormatRenderer& src,
+ const rect* rect_src_ptr = 0,
+ int dx = 0,
+ int dy = 0)
+ {
+ rect rsrc(0, 0, src.width(), src.height());
+ if(rect_src_ptr)
+ {
+ rsrc.x1 = rect_src_ptr->x1;
+ rsrc.y1 = rect_src_ptr->y1;
+ rsrc.x2 = rect_src_ptr->x2 + 1;
+ rsrc.y2 = rect_src_ptr->y2 + 1;
+ }
+
+ // Version with xdst, ydst (absolute positioning)
+ //rect rdst(xdst, ydst, xdst + rsrc.x2 - rsrc.x1, ydst + rsrc.y2 - rsrc.y1);
+
+ // Version with dx, dy (relative positioning)
+ rect rdst(rsrc.x1 + dx, rsrc.y1 + dy, rsrc.x2 + dx, rsrc.y2 + dy);
+
+ rect rc = clip_rect_area(rdst, rsrc, src.width(), src.height());
+
+ if(rc.x2 > 0)
+ {
+ int incy = 1;
+ if(rdst.y1 > rsrc.y1)
+ {
+ rsrc.y1 += rc.y2 - 1;
+ rdst.y1 += rc.y2 - 1;
+ incy = -1;
+ }
+ while(rc.y2 > 0)
+ {
+ typename SrcPixelFormatRenderer::row_data span = src.span(rsrc.x1, rsrc.y1);
+ if(span.ptr)
+ {
+ int x1src = rsrc.x1;
+ int x1dst = rdst.x1;
+ int len = rc.x2;
+ if(span.x1 > x1src)
+ {
+ x1dst += span.x1 - x1src;
+ len -= span.x1 - x1src;
+ x1src = span.x1;
+ }
+ if(len > 0)
+ {
+ if(x1src + len-1 > span.x2)
+ {
+ len -= x1src + len - span.x2 - 1;
+ }
+ if(len > 0)
+ {
+ m_ren->blend_from(src, span.ptr,
+ x1dst, rdst.y1,
+ x1src, rsrc.y1,
+ len);
+ }
+ }
+ }
+ rdst.y1 += incy;
+ rsrc.y1 += incy;
+ --rc.y2;
+ }
+ }
+ }
+
+
+
+ private:
+ pixfmt_type* m_ren;
+ rect m_clip_box;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_renderer_markers.h b/agg/inc/agg_renderer_markers.h
new file mode 100755
index 000000000000..ff47995554d9
--- /dev/null
+++ b/agg/inc/agg_renderer_markers.h
@@ -0,0 +1,707 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class renderer_markers
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_MARKERS_INCLUDED
+#define AGG_RENDERER_MARKERS_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_renderer_primitives.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------------marker_e
+ enum marker_e
+ {
+ marker_square,
+ marker_diamond,
+ marker_circle,
+ marker_crossed_circle,
+ marker_semiellipse_left,
+ marker_semiellipse_right,
+ marker_semiellipse_up,
+ marker_semiellipse_down,
+ marker_triangle_left,
+ marker_triangle_right,
+ marker_triangle_up,
+ marker_triangle_down,
+ marker_four_rays,
+ marker_cross,
+ marker_x,
+ marker_dash,
+ marker_dot,
+ marker_pixel,
+
+ end_of_markers
+ };
+
+
+
+ //--------------------------------------------------------renderer_markers
+ template<class BaseRenderer> class renderer_markers :
+ public renderer_primitives<BaseRenderer>
+ {
+ public:
+ typedef renderer_primitives<BaseRenderer> base_type;
+ typedef BaseRenderer base_ren_type;
+ typedef typename base_ren_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ renderer_markers(base_ren_type& rbuf) :
+ base_type(rbuf)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ bool visible(int x, int y, int r) const
+ {
+ rect rc(x-r, y-r, x+y, y+r);
+ return rc.clip(base_type::ren().bounding_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void square(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r) base_type::outlined_rectangle(x-r, y-r, x+r, y+r);
+ else base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void diamond(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ do
+ {
+ base_type::ren().blend_pixel(x - dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dx, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y - dy, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y+dy, x+dx-1, base_type::fill_color(), cover_full);
+ base_type::ren().blend_hline(x-dx+1, y-dy, x+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ ++dx;
+ }
+ while(dy <= 0);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void circle(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r) base_type::outlined_ellipse(x, y, r, r);
+ else base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ void crossed_circle(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ base_type::outlined_ellipse(x, y, r, r);
+ int r6 = r + (r >> 1);
+ if(r <= 2) r6++;
+ r >>= 1;
+ base_type::ren().blend_hline(x-r6, y, x-r, base_type::line_color(), cover_full);
+ base_type::ren().blend_hline(x+r, y, x+r6, base_type::line_color(), cover_full);
+ base_type::ren().blend_vline(x, y-r6, y-r, base_type::line_color(), cover_full);
+ base_type::ren().blend_vline(x, y+r, y+r6, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void semiellipse_left(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int r8 = r * 4 / 5;
+ int dy = -r;
+ int dx = 0;
+ ellipse_bresenham_interpolator ei(r * 3 / 5, r+r8);
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ base_type::ren().blend_pixel(x + dy, y + dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dy, y - dx, base_type::line_color(), cover_full);
+
+ if(ei.dy() && dx)
+ {
+ base_type::ren().blend_vline(x+dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++ei;
+ }
+ while(dy < r8);
+ base_type::ren().blend_vline(x+dy, y-dx, y+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void semiellipse_right(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int r8 = r * 4 / 5;
+ int dy = -r;
+ int dx = 0;
+ ellipse_bresenham_interpolator ei(r * 3 / 5, r+r8);
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ base_type::ren().blend_pixel(x - dy, y + dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y - dx, base_type::line_color(), cover_full);
+
+ if(ei.dy() && dx)
+ {
+ base_type::ren().blend_vline(x-dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++ei;
+ }
+ while(dy < r8);
+ base_type::ren().blend_vline(x-dy, y-dx, y+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void semiellipse_up(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int r8 = r * 4 / 5;
+ int dy = -r;
+ int dx = 0;
+ ellipse_bresenham_interpolator ei(r * 3 / 5, r+r8);
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ base_type::ren().blend_pixel(x + dx, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dx, y - dy, base_type::line_color(), cover_full);
+
+ if(ei.dy() && dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y-dy, x+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++ei;
+ }
+ while(dy < r8);
+ base_type::ren().blend_hline(x-dx, y-dy-1, x+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void semiellipse_down(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int r8 = r * 4 / 5;
+ int dy = -r;
+ int dx = 0;
+ ellipse_bresenham_interpolator ei(r * 3 / 5, r+r8);
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ base_type::ren().blend_pixel(x + dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dx, y + dy, base_type::line_color(), cover_full);
+
+ if(ei.dy() && dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y+dy, x+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++ei;
+ }
+ while(dy < r8);
+ base_type::ren().blend_hline(x-dx, y+dy+1, x+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void triangle_left(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ int flip = 0;
+ int r6 = r * 3 / 5;
+ do
+ {
+ base_type::ren().blend_pixel(x + dy, y - dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dy, y + dx, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_vline(x+dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ dx += flip;
+ flip ^= 1;
+ }
+ while(dy < r6);
+ base_type::ren().blend_vline(x+dy, y-dx, y+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void triangle_right(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ int flip = 0;
+ int r6 = r * 3 / 5;
+ do
+ {
+ base_type::ren().blend_pixel(x - dy, y - dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y + dx, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_vline(x-dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ dx += flip;
+ flip ^= 1;
+ }
+ while(dy < r6);
+ base_type::ren().blend_vline(x-dy, y-dx, y+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void triangle_up(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ int flip = 0;
+ int r6 = r * 3 / 5;
+ do
+ {
+ base_type::ren().blend_pixel(x - dx, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y - dy, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y-dy, x+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ dx += flip;
+ flip ^= 1;
+ }
+ while(dy < r6);
+ base_type::ren().blend_hline(x-dx, y-dy, x+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void triangle_down(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ int flip = 0;
+ int r6 = r * 3 / 5;
+ do
+ {
+ base_type::ren().blend_pixel(x - dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y + dy, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y+dy, x+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ dx += flip;
+ flip ^= 1;
+ }
+ while(dy < r6);
+ base_type::ren().blend_hline(x-dx, y+dy, x+dx, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void four_rays(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r;
+ int dx = 0;
+ int flip = 0;
+ int r3 = -(r / 3);
+ do
+ {
+ base_type::ren().blend_pixel(x - dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dx, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dx, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dy, y - dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dy, y + dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y - dx, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y + dx, base_type::line_color(), cover_full);
+
+ if(dx)
+ {
+ base_type::ren().blend_hline(x-dx+1, y+dy, x+dx-1, base_type::fill_color(), cover_full);
+ base_type::ren().blend_hline(x-dx+1, y-dy, x+dx-1, base_type::fill_color(), cover_full);
+ base_type::ren().blend_vline(x+dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ base_type::ren().blend_vline(x-dy, y-dx+1, y+dx-1, base_type::fill_color(), cover_full);
+ }
+ ++dy;
+ dx += flip;
+ flip ^= 1;
+ }
+ while(dy <= r3);
+ base_type::solid_rectangle(x+r3+1, y+r3+1, x-r3-1, y-r3-1);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void cross(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ base_type::ren().blend_vline(x, y-r, y+r, base_type::line_color(), cover_full);
+ base_type::ren().blend_hline(x-r, y, x+r, base_type::line_color(), cover_full);
+ }
+ else
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void xing(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r)
+ {
+ int dy = -r * 7 / 10;
+ do
+ {
+ base_type::ren().blend_pixel(x + dy, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y + dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x + dy, y - dy, base_type::line_color(), cover_full);
+ base_type::ren().blend_pixel(x - dy, y - dy, base_type::line_color(), cover_full);
+ ++dy;
+ }
+ while(dy < 0);
+ }
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void dash(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r) base_type::ren().blend_hline(x-r, y, x+r, base_type::line_color(), cover_full);
+ else base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ void dot(int x, int y, int r)
+ {
+ if(visible(x, y, r))
+ {
+ if(r) base_type::solid_ellipse(x, y, r, r);
+ else base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void pixel(int x, int y, int)
+ {
+ base_type::ren().blend_pixel(x, y, base_type::fill_color(), cover_full);
+ }
+
+ //--------------------------------------------------------------------
+ void marker(int x, int y, int r, marker_e type)
+ {
+ switch(type)
+ {
+ case marker_square: square(x, y, r); break;
+ case marker_diamond: diamond(x, y, r); break;
+ case marker_circle: circle(x, y, r); break;
+ case marker_crossed_circle: crossed_circle(x, y, r); break;
+ case marker_semiellipse_left: semiellipse_left(x, y, r); break;
+ case marker_semiellipse_right: semiellipse_right(x, y, r); break;
+ case marker_semiellipse_up: semiellipse_up(x, y, r); break;
+ case marker_semiellipse_down: semiellipse_down(x, y, r); break;
+ case marker_triangle_left: triangle_left(x, y, r); break;
+ case marker_triangle_right: triangle_right(x, y, r); break;
+ case marker_triangle_up: triangle_up(x, y, r); break;
+ case marker_triangle_down: triangle_down(x, y, r); break;
+ case marker_four_rays: four_rays(x, y, r); break;
+ case marker_cross: cross(x, y, r); break;
+ case marker_x: xing(x, y, r); break;
+ case marker_dash: dash(x, y, r); break;
+ case marker_dot: dot(x, y, r); break;
+ case marker_pixel: pixel(x, y, r); break;
+ }
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class T>
+ void markers(int n, const T* x, const T* y, T r, marker_e type)
+ {
+ if(n <= 0) return;
+ if(r == 0)
+ {
+ do
+ {
+ base_type::ren().blend_pixel(int(*x), int(*y), base_type::fill_color(), cover_full);
+ ++x;
+ ++y;
+ }
+ while(--n);
+ return;
+ }
+
+ switch(type)
+ {
+ case marker_square: do { square (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_diamond: do { diamond (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_circle: do { circle (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_crossed_circle: do { crossed_circle (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_semiellipse_left: do { semiellipse_left (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_semiellipse_right: do { semiellipse_right(int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_semiellipse_up: do { semiellipse_up (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_semiellipse_down: do { semiellipse_down (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_triangle_left: do { triangle_left (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_triangle_right: do { triangle_right (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_triangle_up: do { triangle_up (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_triangle_down: do { triangle_down (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_four_rays: do { four_rays (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_cross: do { cross (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_x: do { xing (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_dash: do { dash (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_dot: do { dot (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ case marker_pixel: do { pixel (int(*x), int(*y), int(r)); ++x; ++y; } while(--n); break;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class T>
+ void markers(int n, const T* x, const T* y, const T* r, marker_e type)
+ {
+ if(n <= 0) return;
+ switch(type)
+ {
+ case marker_square: do { square (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_diamond: do { diamond (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_circle: do { circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_crossed_circle: do { crossed_circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_semiellipse_left: do { semiellipse_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_semiellipse_right: do { semiellipse_right(int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_semiellipse_up: do { semiellipse_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_semiellipse_down: do { semiellipse_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_triangle_left: do { triangle_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_triangle_right: do { triangle_right (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_triangle_up: do { triangle_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_triangle_down: do { triangle_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_four_rays: do { four_rays (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_cross: do { cross (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_x: do { xing (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_dash: do { dash (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_dot: do { dot (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ case marker_pixel: do { pixel (int(*x), int(*y), int(*r)); ++x; ++y; ++r; } while(--n); break;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class T>
+ void markers(int n, const T* x, const T* y, const T* r, const color_type* fc, marker_e type)
+ {
+ if(n <= 0) return;
+ switch(type)
+ {
+ case marker_square: do { base_type::fill_color(*fc); square (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_diamond: do { base_type::fill_color(*fc); diamond (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_circle: do { base_type::fill_color(*fc); circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_crossed_circle: do { base_type::fill_color(*fc); crossed_circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_semiellipse_left: do { base_type::fill_color(*fc); semiellipse_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_semiellipse_right: do { base_type::fill_color(*fc); semiellipse_right(int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_semiellipse_up: do { base_type::fill_color(*fc); semiellipse_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_semiellipse_down: do { base_type::fill_color(*fc); semiellipse_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_triangle_left: do { base_type::fill_color(*fc); triangle_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_triangle_right: do { base_type::fill_color(*fc); triangle_right (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_triangle_up: do { base_type::fill_color(*fc); triangle_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_triangle_down: do { base_type::fill_color(*fc); triangle_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_four_rays: do { base_type::fill_color(*fc); four_rays (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_cross: do { base_type::fill_color(*fc); cross (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_x: do { base_type::fill_color(*fc); xing (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_dash: do { base_type::fill_color(*fc); dash (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_dot: do { base_type::fill_color(*fc); dot (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ case marker_pixel: do { base_type::fill_color(*fc); pixel (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; } while(--n); break;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ template<class T>
+ void markers(int n, const T* x, const T* y, const T* r, const color_type* fc, const color_type* lc, marker_e type)
+ {
+ if(n <= 0) return;
+ switch(type)
+ {
+ case marker_square: do { base_type::fill_color(*fc); base_type::line_color(*lc); square (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_diamond: do { base_type::fill_color(*fc); base_type::line_color(*lc); diamond (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_circle: do { base_type::fill_color(*fc); base_type::line_color(*lc); circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_crossed_circle: do { base_type::fill_color(*fc); base_type::line_color(*lc); crossed_circle (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_semiellipse_left: do { base_type::fill_color(*fc); base_type::line_color(*lc); semiellipse_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_semiellipse_right: do { base_type::fill_color(*fc); base_type::line_color(*lc); semiellipse_right(int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_semiellipse_up: do { base_type::fill_color(*fc); base_type::line_color(*lc); semiellipse_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_semiellipse_down: do { base_type::fill_color(*fc); base_type::line_color(*lc); semiellipse_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_triangle_left: do { base_type::fill_color(*fc); base_type::line_color(*lc); triangle_left (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_triangle_right: do { base_type::fill_color(*fc); base_type::line_color(*lc); triangle_right (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_triangle_up: do { base_type::fill_color(*fc); base_type::line_color(*lc); triangle_up (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_triangle_down: do { base_type::fill_color(*fc); base_type::line_color(*lc); triangle_down (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_four_rays: do { base_type::fill_color(*fc); base_type::line_color(*lc); four_rays (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_cross: do { base_type::fill_color(*fc); base_type::line_color(*lc); cross (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_x: do { base_type::fill_color(*fc); base_type::line_color(*lc); xing (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_dash: do { base_type::fill_color(*fc); base_type::line_color(*lc); dash (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_dot: do { base_type::fill_color(*fc); base_type::line_color(*lc); dot (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ case marker_pixel: do { base_type::fill_color(*fc); base_type::line_color(*lc); pixel (int(*x), int(*y), int(*r)); ++x; ++y; ++r; ++fc; ++lc; } while(--n); break;
+ }
+ }
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_renderer_mclip.h b/agg/inc/agg_renderer_mclip.h
new file mode 100755
index 000000000000..dc758b9ea72d
--- /dev/null
+++ b/agg/inc/agg_renderer_mclip.h
@@ -0,0 +1,383 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class renderer_mclip
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_MCLIP_INCLUDED
+#define AGG_RENDERER_MCLIP_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_array.h"
+#include "agg_renderer_base.h"
+
+namespace agg
+{
+
+ //----------------------------------------------------------renderer_mclip
+ template<class PixelFormat> class renderer_mclip
+ {
+ public:
+ typedef PixelFormat pixfmt_type;
+ typedef typename pixfmt_type::color_type color_type;
+ typedef renderer_base<pixfmt_type> base_ren_type;
+
+ //--------------------------------------------------------------------
+ renderer_mclip(pixfmt_type& ren) :
+ m_ren(ren),
+ m_curr_cb(0),
+ m_bounds(m_ren.xmin(), m_ren.ymin(), m_ren.xmax(), m_ren.ymax())
+ {
+ }
+
+ //--------------------------------------------------------------------
+ const pixfmt_type& ren() const { return m_ren.ren(); }
+ pixfmt_type& ren() { return m_ren.ren(); }
+
+ //--------------------------------------------------------------------
+ unsigned width() const { return m_ren.width(); }
+ unsigned height() const { return m_ren.height(); }
+
+ //--------------------------------------------------------------------
+ const rect& clip_box() const { return m_ren.clip_box(); }
+ int xmin() const { return m_ren.xmin(); }
+ int ymin() const { return m_ren.ymin(); }
+ int xmax() const { return m_ren.xmax(); }
+ int ymax() const { return m_ren.ymax(); }
+
+ //--------------------------------------------------------------------
+ const rect& bounding_clip_box() const { return m_bounds; }
+ int bounding_xmin() const { return m_bounds.x1; }
+ int bounding_ymin() const { return m_bounds.y1; }
+ int bounding_xmax() const { return m_bounds.x2; }
+ int bounding_ymax() const { return m_bounds.y2; }
+
+ //--------------------------------------------------------------------
+ void first_clip_box()
+ {
+ m_curr_cb = 0;
+ if(m_clip.size())
+ {
+ const rect& cb = m_clip[0];
+ m_ren.clip_box_naked(cb.x1, cb.y1, cb.x2, cb.y2);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ bool next_clip_box()
+ {
+ if(++m_curr_cb < m_clip.size())
+ {
+ const rect& cb = m_clip[m_curr_cb];
+ m_ren.clip_box_naked(cb.x1, cb.y1, cb.x2, cb.y2);
+ return true;
+ }
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ void reset_clipping(bool visibility)
+ {
+ m_ren.reset_clipping(visibility);
+ m_clip.remove_all();
+ m_curr_cb = 0;
+ m_bounds = m_ren.clip_box();
+ }
+
+ //--------------------------------------------------------------------
+ void add_clip_box(int x1, int y1, int x2, int y2)
+ {
+ rect cb(x1, y1, x2, y2);
+ cb.normalize();
+ if(cb.clip(rect(0, 0, width() - 1, height() - 1)))
+ {
+ m_clip.add(cb);
+ if(cb.x1 < m_bounds.x1) m_bounds.x1 = cb.x1;
+ if(cb.y1 < m_bounds.y1) m_bounds.y1 = cb.y1;
+ if(cb.x2 > m_bounds.x2) m_bounds.x2 = cb.x2;
+ if(cb.y2 > m_bounds.y2) m_bounds.y2 = cb.y2;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void clear(const color_type& c)
+ {
+ m_ren.clear(c);
+ }
+
+ //--------------------------------------------------------------------
+ void copy_pixel(int x, int y, const color_type& c)
+ {
+ first_clip_box();
+ do
+ {
+ if(m_ren.inbox(x, y))
+ {
+ m_ren.ren().copy_pixel(x, y, c);
+ break;
+ }
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_pixel(int x, int y, const color_type& c, cover_type cover)
+ {
+ first_clip_box();
+ do
+ {
+ if(m_ren.inbox(x, y))
+ {
+ m_ren.ren().blend_pixel(x, y, c, cover);
+ break;
+ }
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ color_type pixel(int x, int y) const
+ {
+ first_clip_box();
+ do
+ {
+ if(m_ren.inbox(x, y))
+ {
+ return m_ren.ren().pixel(x, y);
+ }
+ }
+ while(next_clip_box());
+ return color_type::no_color();
+ }
+
+ //--------------------------------------------------------------------
+ void copy_hline(int x1, int y, int x2, const color_type& c)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.copy_hline(x1, y, x2, c);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void copy_vline(int x, int y1, int y2, const color_type& c)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.copy_vline(x, y1, y2, c);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_hline(int x1, int y, int x2,
+ const color_type& c, cover_type cover)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_hline(x1, y, x2, c, cover);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_vline(int x, int y1, int y2,
+ const color_type& c, cover_type cover)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_vline(x, y1, y2, c, cover);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void copy_bar(int x1, int y1, int x2, int y2, const color_type& c)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.copy_bar(x1, y1, x2, y2, c);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_bar(int x1, int y1, int x2, int y2,
+ const color_type& c, cover_type cover)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_bar(x1, y1, x2, y2, c, cover);
+ }
+ while(next_clip_box());
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y, int len,
+ const color_type& c, const cover_type* covers)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_solid_hspan(x, y, len, c, covers);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y, int len,
+ const color_type& c, const cover_type* covers)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_solid_vspan(x, y, len, c, covers);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_color_hspan(x, y, len, colors, covers, cover);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_color_hspan(x, y, len, colors, covers, cover);
+ }
+ while(next_clip_box());
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_qpaque_color_hspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_opaque_color_hspan(x, y, len, colors, covers, cover);
+ }
+ while(next_clip_box());
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.blend_opaque_color_hspan(x, y, len, colors, covers, cover);
+ }
+ while(next_clip_box());
+ }
+
+
+ //--------------------------------------------------------------------
+ void blend_color_hspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren.blend_color_hspan_no_clip(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_color_vspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren.blend_color_vspan_no_clip(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_hspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren.blend_opaque_color_hspan_no_clip(x, y, len, colors, covers, cover);
+ }
+
+ //--------------------------------------------------------------------
+ void blend_opaque_color_vspan_no_clip(int x, int y, int len,
+ const color_type* colors,
+ const cover_type* covers,
+ cover_type cover = cover_full)
+ {
+ m_ren.blend_opaque_color_vspan_no_clip(x, y, len, colors, covers, cover);
+ }
+
+
+ //--------------------------------------------------------------------
+ void copy_from(const rendering_buffer& from,
+ const rect* rc=0,
+ int x_to=0,
+ int y_to=0)
+ {
+ first_clip_box();
+ do
+ {
+ m_ren.copy_from(from, rc, x_to, y_to);
+ }
+ while(next_clip_box());
+ }
+
+ private:
+ renderer_mclip(const renderer_mclip<PixelFormat>&);
+ const renderer_mclip<PixelFormat>&
+ operator = (const renderer_mclip<PixelFormat>&);
+
+ base_ren_type m_ren;
+ pod_deque<rect, 4> m_clip;
+ unsigned m_curr_cb;
+ rect m_bounds;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_renderer_outline_aa.h b/agg/inc/agg_renderer_outline_aa.h
new file mode 100755
index 000000000000..d2f9484c5a1d
--- /dev/null
+++ b/agg/inc/agg_renderer_outline_aa.h
@@ -0,0 +1,1545 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_RENDERER_OUTLINE_AA_INCLUDED
+#define AGG_RENDERER_OUTLINE_AA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_math.h"
+#include "agg_line_aa_basics.h"
+#include "agg_dda_line.h"
+#include "agg_ellipse_bresenham.h"
+#include "agg_renderer_base.h"
+#include "agg_gamma_functions.h"
+
+namespace agg
+{
+
+ //===================================================distance_interpolator0
+ class distance_interpolator0
+ {
+ public:
+ //---------------------------------------------------------------------
+ distance_interpolator0() {}
+ distance_interpolator0(int x1, int y1, int x2, int y2, int x, int y) :
+ m_dx(line_mr(x2) - line_mr(x1)),
+ m_dy(line_mr(y2) - line_mr(y1)),
+ m_dist((line_mr(x + line_subpixel_size/2) - line_mr(x2)) * m_dy -
+ (line_mr(y + line_subpixel_size/2) - line_mr(y2)) * m_dx)
+ {
+ m_dx <<= line_mr_subpixel_shift;
+ m_dy <<= line_mr_subpixel_shift;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_x() { m_dist += m_dy; }
+ void dec_x() { m_dist -= m_dy; }
+ void inc_y() { m_dist -= m_dx; }
+ void dec_y() { m_dist += m_dx; }
+
+ //---------------------------------------------------------------------
+ void inc_x(int _dy)
+ {
+ m_dist += m_dy;
+ if(_dy > 0) m_dist -= m_dx;
+ if(_dy < 0) m_dist += m_dx;
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x(int _dy)
+ {
+ m_dist -= m_dy;
+ if(_dy > 0) m_dist -= m_dx;
+ if(_dy < 0) m_dist += m_dx;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y(int _dx)
+ {
+ m_dist -= m_dx;
+ if(_dx > 0) m_dist += m_dy;
+ if(_dx < 0) m_dist -= m_dy;
+ }
+
+ void dec_y(int _dx)
+ //---------------------------------------------------------------------
+ {
+ m_dist += m_dx;
+ if(_dx > 0) m_dist += m_dy;
+ if(_dx < 0) m_dist -= m_dy;
+ }
+
+ //---------------------------------------------------------------------
+ int dist() const { return m_dist; }
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+
+ private:
+ //---------------------------------------------------------------------
+ int m_dx;
+ int m_dy;
+ int m_dist;
+ };
+
+
+
+ //===================================================distance_interpolator1
+ class distance_interpolator1
+ {
+ public:
+ //---------------------------------------------------------------------
+ distance_interpolator1() {}
+ distance_interpolator1(int x1, int y1, int x2, int y2, int x, int y) :
+ m_dx(x2 - x1),
+ m_dy(y2 - y1),
+ m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) -
+ double(y + line_subpixel_size/2 - y2) * double(m_dx)))
+ {
+ m_dx <<= line_subpixel_shift;
+ m_dy <<= line_subpixel_shift;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_x() { m_dist += m_dy; }
+ void dec_x() { m_dist -= m_dy; }
+ void inc_y() { m_dist -= m_dx; }
+ void dec_y() { m_dist += m_dx; }
+
+ //---------------------------------------------------------------------
+ void inc_x(int _dy)
+ {
+ m_dist += m_dy;
+ if(_dy > 0) m_dist -= m_dx;
+ if(_dy < 0) m_dist += m_dx;
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x(int _dy)
+ {
+ m_dist -= m_dy;
+ if(_dy > 0) m_dist -= m_dx;
+ if(_dy < 0) m_dist += m_dx;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y(int _dx)
+ {
+ m_dist -= m_dx;
+ if(_dx > 0) m_dist += m_dy;
+ if(_dx < 0) m_dist -= m_dy;
+ }
+
+ void dec_y(int _dx)
+ //---------------------------------------------------------------------
+ {
+ m_dist += m_dx;
+ if(_dx > 0) m_dist += m_dy;
+ if(_dx < 0) m_dist -= m_dy;
+ }
+
+ //---------------------------------------------------------------------
+ int dist() const { return m_dist; }
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+
+ private:
+ //---------------------------------------------------------------------
+ int m_dx;
+ int m_dy;
+ int m_dist;
+ };
+
+
+
+
+
+ //===================================================distance_interpolator2
+ class distance_interpolator2
+ {
+ public:
+ //---------------------------------------------------------------------
+ distance_interpolator2() {}
+ distance_interpolator2(int x1, int y1, int x2, int y2,
+ int sx, int sy, int x, int y) :
+ m_dx(x2 - x1),
+ m_dy(y2 - y1),
+ m_dx_start(line_mr(sx) - line_mr(x1)),
+ m_dy_start(line_mr(sy) - line_mr(y1)),
+
+ m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) -
+ double(y + line_subpixel_size/2 - y2) * double(m_dx))),
+
+ m_dist_start((line_mr(x + line_subpixel_size/2) - line_mr(sx)) * m_dy_start -
+ (line_mr(y + line_subpixel_size/2) - line_mr(sy)) * m_dx_start)
+ {
+ m_dx <<= line_subpixel_shift;
+ m_dy <<= line_subpixel_shift;
+ m_dx_start <<= line_mr_subpixel_shift;
+ m_dy_start <<= line_mr_subpixel_shift;
+ }
+
+ distance_interpolator2(int x1, int y1, int x2, int y2,
+ int ex, int ey, int x, int y, int) :
+ m_dx(x2 - x1),
+ m_dy(y2 - y1),
+ m_dx_start(line_mr(ex) - line_mr(x2)),
+ m_dy_start(line_mr(ey) - line_mr(y2)),
+
+ m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) -
+ double(y + line_subpixel_size/2 - y2) * double(m_dx))),
+
+ m_dist_start((line_mr(x + line_subpixel_size/2) - line_mr(ex)) * m_dy_start -
+ (line_mr(y + line_subpixel_size/2) - line_mr(ey)) * m_dx_start)
+ {
+ m_dx <<= line_subpixel_shift;
+ m_dy <<= line_subpixel_shift;
+ m_dx_start <<= line_mr_subpixel_shift;
+ m_dy_start <<= line_mr_subpixel_shift;
+ }
+
+
+ //---------------------------------------------------------------------
+ void inc_x() { m_dist += m_dy; m_dist_start += m_dy_start; }
+ void dec_x() { m_dist -= m_dy; m_dist_start -= m_dy_start; }
+ void inc_y() { m_dist -= m_dx; m_dist_start -= m_dx_start; }
+ void dec_y() { m_dist += m_dx; m_dist_start += m_dx_start; }
+
+ //---------------------------------------------------------------------
+ void inc_x(int _dy)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ if(_dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ }
+ if(_dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x(int _dy)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ if(_dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ }
+ if(_dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y(int _dx)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ if(_dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ }
+ if(_dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_y(int _dx)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ if(_dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ }
+ if(_dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ int dist() const { return m_dist; }
+ int dist_start() const { return m_dist_start; }
+ int dist_end() const { return m_dist_start; }
+
+ //---------------------------------------------------------------------
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+ int dx_start() const { return m_dx_start; }
+ int dy_start() const { return m_dy_start; }
+ int dx_end() const { return m_dx_start; }
+ int dy_end() const { return m_dy_start; }
+
+ private:
+ //---------------------------------------------------------------------
+ int m_dx;
+ int m_dy;
+ int m_dx_start;
+ int m_dy_start;
+
+ int m_dist;
+ int m_dist_start;
+ };
+
+
+
+
+
+ //===================================================distance_interpolator3
+ class distance_interpolator3
+ {
+ public:
+ //---------------------------------------------------------------------
+ distance_interpolator3() {}
+ distance_interpolator3(int x1, int y1, int x2, int y2,
+ int sx, int sy, int ex, int ey,
+ int x, int y) :
+ m_dx(x2 - x1),
+ m_dy(y2 - y1),
+ m_dx_start(line_mr(sx) - line_mr(x1)),
+ m_dy_start(line_mr(sy) - line_mr(y1)),
+ m_dx_end(line_mr(ex) - line_mr(x2)),
+ m_dy_end(line_mr(ey) - line_mr(y2)),
+
+ m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) -
+ double(y + line_subpixel_size/2 - y2) * double(m_dx))),
+
+ m_dist_start((line_mr(x + line_subpixel_size/2) - line_mr(sx)) * m_dy_start -
+ (line_mr(y + line_subpixel_size/2) - line_mr(sy)) * m_dx_start),
+
+ m_dist_end((line_mr(x + line_subpixel_size/2) - line_mr(ex)) * m_dy_end -
+ (line_mr(y + line_subpixel_size/2) - line_mr(ey)) * m_dx_end)
+ {
+ m_dx <<= line_subpixel_shift;
+ m_dy <<= line_subpixel_shift;
+ m_dx_start <<= line_mr_subpixel_shift;
+ m_dy_start <<= line_mr_subpixel_shift;
+ m_dx_end <<= line_mr_subpixel_shift;
+ m_dy_end <<= line_mr_subpixel_shift;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_x() { m_dist += m_dy; m_dist_start += m_dy_start; m_dist_end += m_dy_end; }
+ void dec_x() { m_dist -= m_dy; m_dist_start -= m_dy_start; m_dist_end -= m_dy_end; }
+ void inc_y() { m_dist -= m_dx; m_dist_start -= m_dx_start; m_dist_end -= m_dx_end; }
+ void dec_y() { m_dist += m_dx; m_dist_start += m_dx_start; m_dist_end += m_dx_end; }
+
+ //---------------------------------------------------------------------
+ void inc_x(int _dy)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_end += m_dy_end;
+ if(_dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_end -= m_dx_end;
+ }
+ if(_dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_end += m_dx_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x(int _dy)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_end -= m_dy_end;
+ if(_dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_end -= m_dx_end;
+ }
+ if(_dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_end += m_dx_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y(int _dx)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_end -= m_dx_end;
+ if(_dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_end += m_dy_end;
+ }
+ if(_dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_end -= m_dy_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_y(int _dx)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_end += m_dx_end;
+ if(_dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_end += m_dy_end;
+ }
+ if(_dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_end -= m_dy_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ int dist() const { return m_dist; }
+ int dist_start() const { return m_dist_start; }
+ int dist_end() const { return m_dist_end; }
+
+ //---------------------------------------------------------------------
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+ int dx_start() const { return m_dx_start; }
+ int dy_start() const { return m_dy_start; }
+ int dx_end() const { return m_dx_end; }
+ int dy_end() const { return m_dy_end; }
+
+ private:
+ //---------------------------------------------------------------------
+ int m_dx;
+ int m_dy;
+ int m_dx_start;
+ int m_dy_start;
+ int m_dx_end;
+ int m_dy_end;
+
+ int m_dist;
+ int m_dist_start;
+ int m_dist_end;
+ };
+
+
+
+
+
+ //================================================line_interpolator_aa_base
+ template<class Renderer> class line_interpolator_aa_base
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+
+ //---------------------------------------------------------------------
+ enum
+ {
+ max_half_width = 64
+ };
+
+ //---------------------------------------------------------------------
+ line_interpolator_aa_base(renderer_type& ren, const line_parameters& lp) :
+ m_lp(&lp),
+ m_li(lp.vertical ? line_dbl_hr(lp.x2 - lp.x1) :
+ line_dbl_hr(lp.y2 - lp.y1),
+ lp.vertical ? abs(lp.y2 - lp.y1) :
+ abs(lp.x2 - lp.x1) + 1),
+ m_ren(ren),
+ m_len((lp.vertical == (lp.inc > 0)) ? -lp.len : lp.len),
+ m_x(lp.x1 >> line_subpixel_shift),
+ m_y(lp.y1 >> line_subpixel_shift),
+ m_old_x(m_x),
+ m_old_y(m_y),
+ m_count((lp.vertical ? abs((lp.y2 >> line_subpixel_shift) - m_y) :
+ abs((lp.x2 >> line_subpixel_shift) - m_x))),
+ m_width(ren.subpixel_width()),
+ m_max_extent(m_width >> (line_subpixel_shift - 2)),
+ m_step(0)
+ {
+ agg::dda2_line_interpolator li(0, lp.vertical ?
+ (lp.dy << agg::line_subpixel_shift) :
+ (lp.dx << agg::line_subpixel_shift),
+ lp.len);
+
+ unsigned i;
+ int stop = m_width + line_subpixel_size * 2;
+ for(i = 0; i < max_half_width; ++i)
+ {
+ m_dist[i] = li.y();
+ if(m_dist[i] >= stop) break;
+ ++li;
+ }
+ m_dist[i++] = 0x7FFF0000;
+ }
+
+ //---------------------------------------------------------------------
+ template<class DI> int step_hor_base(DI& di)
+ {
+ ++m_li;
+ m_x += m_lp->inc;
+ m_y = (m_lp->y1 + m_li.y()) >> line_subpixel_shift;
+
+ if(m_lp->inc > 0) di.inc_x(m_y - m_old_y);
+ else di.dec_x(m_y - m_old_y);
+
+ m_old_y = m_y;
+
+ return di.dist() / m_len;
+ }
+
+ //---------------------------------------------------------------------
+ template<class DI> int step_ver_base(DI& di)
+ {
+ ++m_li;
+ m_y += m_lp->inc;
+ m_x = (m_lp->x1 + m_li.y()) >> line_subpixel_shift;
+
+ if(m_lp->inc > 0) di.inc_y(m_x - m_old_x);
+ else di.dec_y(m_x - m_old_x);
+
+ m_old_x = m_x;
+
+ return di.dist() / m_len;
+ }
+
+ //---------------------------------------------------------------------
+ bool vertical() const { return m_lp->vertical; }
+ int width() const { return m_width; }
+ int count() const { return m_count; }
+
+ private:
+ line_interpolator_aa_base(const line_interpolator_aa_base<Renderer>&);
+ const line_interpolator_aa_base<Renderer>&
+ operator = (const line_interpolator_aa_base<Renderer>&);
+
+ protected:
+ const line_parameters* m_lp;
+ dda2_line_interpolator m_li;
+ renderer_type& m_ren;
+ int m_len;
+ int m_x;
+ int m_y;
+ int m_old_x;
+ int m_old_y;
+ int m_count;
+ int m_width;
+ int m_max_extent;
+ int m_step;
+ int m_dist[max_half_width + 1];
+ cover_type m_covers[max_half_width * 2 + 4];
+ };
+
+
+
+
+
+
+
+ //====================================================line_interpolator_aa0
+ template<class Renderer> class line_interpolator_aa0 :
+ public line_interpolator_aa_base<Renderer>
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+ typedef line_interpolator_aa_base<Renderer> base_type;
+
+ //---------------------------------------------------------------------
+ line_interpolator_aa0(renderer_type& ren, const line_parameters& lp) :
+ line_interpolator_aa_base<Renderer>(ren, lp),
+ m_di(lp.x1, lp.y1, lp.x2, lp.y2,
+ lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask)
+ {
+ base_type::m_li.adjust_forward();
+ }
+
+ //---------------------------------------------------------------------
+ bool step_hor()
+ {
+ int dist;
+ int dy;
+ int s1 = base_type::step_hor_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ *p1++ = (cover_type)base_type::m_ren.cover(s1);
+
+ dy = 1;
+ while((dist = base_type::m_dist[dy] - s1) <= base_type::m_width)
+ {
+ *p1++ = (cover_type)base_type::m_ren.cover(dist);
+ ++dy;
+ }
+
+ dy = 1;
+ while((dist = base_type::m_dist[dy] + s1) <= base_type::m_width)
+ {
+ *--p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++dy;
+ }
+ base_type::m_ren.blend_solid_vspan(base_type::m_x,
+ base_type::m_y - dy + 1,
+ unsigned(p1 - p0),
+ p0);
+ return ++base_type::m_step < base_type::m_count;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_ver()
+ {
+ int dist;
+ int dx;
+ int s1 = base_type::step_ver_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ *p1++ = (cover_type)base_type::m_ren.cover(s1);
+
+ dx = 1;
+ while((dist = base_type::m_dist[dx] - s1) <= base_type::m_width)
+ {
+ *p1++ = (cover_type)base_type::m_ren.cover(dist);
+ ++dx;
+ }
+
+ dx = 1;
+ while((dist = base_type::m_dist[dx] + s1) <= base_type::m_width)
+ {
+ *--p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++dx;
+ }
+ base_type::m_ren.blend_solid_hspan(base_type::m_x - dx + 1,
+ base_type::m_y,
+ unsigned(p1 - p0),
+ p0);
+ return ++base_type::m_step < base_type::m_count;
+ }
+
+ private:
+ line_interpolator_aa0(const line_interpolator_aa0<Renderer>&);
+ const line_interpolator_aa0<Renderer>&
+ operator = (const line_interpolator_aa0<Renderer>&);
+
+ //---------------------------------------------------------------------
+ distance_interpolator1 m_di;
+ };
+
+
+
+
+
+
+ //====================================================line_interpolator_aa1
+ template<class Renderer> class line_interpolator_aa1 :
+ public line_interpolator_aa_base<Renderer>
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+ typedef line_interpolator_aa_base<Renderer> base_type;
+
+ //---------------------------------------------------------------------
+ line_interpolator_aa1(renderer_type& ren, const line_parameters& lp,
+ int sx, int sy) :
+ line_interpolator_aa_base<Renderer>(ren, lp),
+ m_di(lp.x1, lp.y1, lp.x2, lp.y2, sx, sy,
+ lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask)
+ {
+ int dist1_start;
+ int dist2_start;
+
+ int npix = 1;
+
+ if(lp.vertical)
+ {
+ do
+ {
+ --base_type::m_li;
+ base_type::m_y -= lp.inc;
+ base_type::m_x = (base_type::m_lp->x1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_y(base_type::m_x - base_type::m_old_x);
+ else m_di.inc_y(base_type::m_x - base_type::m_old_x);
+
+ base_type::m_old_x = base_type::m_x;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dx = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start += m_di.dy_start();
+ dist2_start -= m_di.dy_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dx;
+ }
+ while(base_type::m_dist[dx] <= base_type::m_width);
+ --base_type::m_step;
+ if(npix == 0) break;
+ npix = 0;
+ }
+ while(base_type::m_step >= -base_type::m_max_extent);
+ }
+ else
+ {
+ do
+ {
+ --base_type::m_li;
+ base_type::m_x -= lp.inc;
+ base_type::m_y = (base_type::m_lp->y1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_x(base_type::m_y - base_type::m_old_y);
+ else m_di.inc_x(base_type::m_y - base_type::m_old_y);
+
+ base_type::m_old_y = base_type::m_y;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dy = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start -= m_di.dx_start();
+ dist2_start += m_di.dx_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dy;
+ }
+ while(base_type::m_dist[dy] <= base_type::m_width);
+ --base_type::m_step;
+ if(npix == 0) break;
+ npix = 0;
+ }
+ while(base_type::m_step >= -base_type::m_max_extent);
+ }
+ base_type::m_li.adjust_forward();
+ }
+
+ //---------------------------------------------------------------------
+ bool step_hor()
+ {
+ int dist_start;
+ int dist;
+ int dy;
+ int s1 = base_type::step_hor_base(m_di);
+
+ dist_start = m_di.dist_start();
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ *p1 = 0;
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ }
+ ++p1;
+
+ dy = 1;
+ while((dist = base_type::m_dist[dy] - s1) <= base_type::m_width)
+ {
+ dist_start -= m_di.dx_start();
+ *p1 = 0;
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ }
+ ++p1;
+ ++dy;
+ }
+
+ dy = 1;
+ dist_start = m_di.dist_start();
+ while((dist = base_type::m_dist[dy] + s1) <= base_type::m_width)
+ {
+ dist_start += m_di.dx_start();
+ *--p0 = 0;
+ if(dist_start <= 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ }
+ ++dy;
+ }
+
+ base_type::m_ren.blend_solid_vspan(base_type::m_x,
+ base_type::m_y - dy + 1,
+ unsigned(p1 - p0),
+ p0);
+ return ++base_type::m_step < base_type::m_count;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_ver()
+ {
+ int dist_start;
+ int dist;
+ int dx;
+ int s1 = base_type::step_ver_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ dist_start = m_di.dist_start();
+
+ *p1 = 0;
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ }
+ ++p1;
+
+ dx = 1;
+ while((dist = base_type::m_dist[dx] - s1) <= base_type::m_width)
+ {
+ dist_start += m_di.dy_start();
+ *p1 = 0;
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ }
+ ++p1;
+ ++dx;
+ }
+
+ dx = 1;
+ dist_start = m_di.dist_start();
+ while((dist = base_type::m_dist[dx] + s1) <= base_type::m_width)
+ {
+ dist_start -= m_di.dy_start();
+ *--p0 = 0;
+ if(dist_start <= 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ }
+ ++dx;
+ }
+ base_type::m_ren.blend_solid_hspan(base_type::m_x - dx + 1,
+ base_type::m_y,
+ unsigned(p1 - p0),
+ p0);
+ return ++base_type::m_step < base_type::m_count;
+ }
+
+ private:
+ line_interpolator_aa1(const line_interpolator_aa1<Renderer>&);
+ const line_interpolator_aa1<Renderer>&
+ operator = (const line_interpolator_aa1<Renderer>&);
+
+ //---------------------------------------------------------------------
+ distance_interpolator2 m_di;
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+ //====================================================line_interpolator_aa2
+ template<class Renderer> class line_interpolator_aa2 :
+ public line_interpolator_aa_base<Renderer>
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+ typedef line_interpolator_aa_base<Renderer> base_type;
+
+ //---------------------------------------------------------------------
+ line_interpolator_aa2(renderer_type& ren, const line_parameters& lp,
+ int ex, int ey) :
+ line_interpolator_aa_base<Renderer>(ren, lp),
+ m_di(lp.x1, lp.y1, lp.x2, lp.y2, ex, ey,
+ lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask,
+ 0)
+ {
+ base_type::m_li.adjust_forward();
+ base_type::m_step -= base_type::m_max_extent;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_hor()
+ {
+ int dist_end;
+ int dist;
+ int dy;
+ int s1 = base_type::step_hor_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ dist_end = m_di.dist_end();
+
+ int npix = 0;
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ ++npix;
+ }
+ ++p1;
+
+ dy = 1;
+ while((dist = base_type::m_dist[dy] - s1) <= base_type::m_width)
+ {
+ dist_end -= m_di.dx_end();
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++p1;
+ ++dy;
+ }
+
+ dy = 1;
+ dist_end = m_di.dist_end();
+ while((dist = base_type::m_dist[dy] + s1) <= base_type::m_width)
+ {
+ dist_end += m_di.dx_end();
+ *--p0 = 0;
+ if(dist_end > 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++dy;
+ }
+ base_type::m_ren.blend_solid_vspan(base_type::m_x,
+ base_type::m_y - dy + 1,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++base_type::m_step < base_type::m_count;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_ver()
+ {
+ int dist_end;
+ int dist;
+ int dx;
+ int s1 = base_type::step_ver_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ dist_end = m_di.dist_end();
+
+ int npix = 0;
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ ++npix;
+ }
+ ++p1;
+
+ dx = 1;
+ while((dist = base_type::m_dist[dx] - s1) <= base_type::m_width)
+ {
+ dist_end += m_di.dy_end();
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++p1;
+ ++dx;
+ }
+
+ dx = 1;
+ dist_end = m_di.dist_end();
+ while((dist = base_type::m_dist[dx] + s1) <= base_type::m_width)
+ {
+ dist_end -= m_di.dy_end();
+ *--p0 = 0;
+ if(dist_end > 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++dx;
+ }
+ base_type::m_ren.blend_solid_hspan(base_type::m_x - dx + 1,
+ base_type::m_y,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++base_type::m_step < base_type::m_count;
+ }
+
+ private:
+ line_interpolator_aa2(const line_interpolator_aa2<Renderer>&);
+ const line_interpolator_aa2<Renderer>&
+ operator = (const line_interpolator_aa2<Renderer>&);
+
+ //---------------------------------------------------------------------
+ distance_interpolator2 m_di;
+ };
+
+
+
+
+
+
+
+
+
+
+ //====================================================line_interpolator_aa3
+ template<class Renderer> class line_interpolator_aa3 :
+ public line_interpolator_aa_base<Renderer>
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+ typedef line_interpolator_aa_base<Renderer> base_type;
+
+ //---------------------------------------------------------------------
+ line_interpolator_aa3(renderer_type& ren, const line_parameters& lp,
+ int sx, int sy, int ex, int ey) :
+ line_interpolator_aa_base<Renderer>(ren, lp),
+ m_di(lp.x1, lp.y1, lp.x2, lp.y2, sx, sy, ex, ey,
+ lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask)
+ {
+ int dist1_start;
+ int dist2_start;
+ int npix = 1;
+ if(lp.vertical)
+ {
+ do
+ {
+ --base_type::m_li;
+ base_type::m_y -= lp.inc;
+ base_type::m_x = (base_type::m_lp->x1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_y(base_type::m_x - base_type::m_old_x);
+ else m_di.inc_y(base_type::m_x - base_type::m_old_x);
+
+ base_type::m_old_x = base_type::m_x;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dx = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start += m_di.dy_start();
+ dist2_start -= m_di.dy_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dx;
+ }
+ while(base_type::m_dist[dx] <= base_type::m_width);
+ if(npix == 0) break;
+ npix = 0;
+ }
+ while(--base_type::m_step >= -base_type::m_max_extent);
+ }
+ else
+ {
+ do
+ {
+ --base_type::m_li;
+ base_type::m_x -= lp.inc;
+ base_type::m_y = (base_type::m_lp->y1 + base_type::m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_x(base_type::m_y - base_type::m_old_y);
+ else m_di.inc_x(base_type::m_y - base_type::m_old_y);
+
+ base_type::m_old_y = base_type::m_y;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dy = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start -= m_di.dx_start();
+ dist2_start += m_di.dx_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dy;
+ }
+ while(base_type::m_dist[dy] <= base_type::m_width);
+ if(npix == 0) break;
+ npix = 0;
+ }
+ while(--base_type::m_step >= -base_type::m_max_extent);
+ }
+ base_type::m_li.adjust_forward();
+ base_type::m_step -= base_type::m_max_extent;
+ }
+
+
+ //---------------------------------------------------------------------
+ bool step_hor()
+ {
+ int dist_start;
+ int dist_end;
+ int dist;
+ int dy;
+ int s1 = base_type::step_hor_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ dist_start = m_di.dist_start();
+ dist_end = m_di.dist_end();
+
+ int npix = 0;
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ }
+ ++npix;
+ }
+ ++p1;
+
+ dy = 1;
+ while((dist = base_type::m_dist[dy] - s1) <= base_type::m_width)
+ {
+ dist_start -= m_di.dx_start();
+ dist_end -= m_di.dx_end();
+ *p1 = 0;
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++p1;
+ ++dy;
+ }
+
+ dy = 1;
+ dist_start = m_di.dist_start();
+ dist_end = m_di.dist_end();
+ while((dist = base_type::m_dist[dy] + s1) <= base_type::m_width)
+ {
+ dist_start += m_di.dx_start();
+ dist_end += m_di.dx_end();
+ *--p0 = 0;
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++dy;
+ }
+ base_type::m_ren.blend_solid_vspan(base_type::m_x,
+ base_type::m_y - dy + 1,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++base_type::m_step < base_type::m_count;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_ver()
+ {
+ int dist_start;
+ int dist_end;
+ int dist;
+ int dx;
+ int s1 = base_type::step_ver_base(m_di);
+ cover_type* p0 = base_type::m_covers + base_type::max_half_width + 2;
+ cover_type* p1 = p0;
+
+ dist_start = m_di.dist_start();
+ dist_end = m_di.dist_end();
+
+ int npix = 0;
+ *p1 = 0;
+ if(dist_end > 0)
+ {
+ if(dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(s1);
+ }
+ ++npix;
+ }
+ ++p1;
+
+ dx = 1;
+ while((dist = base_type::m_dist[dx] - s1) <= base_type::m_width)
+ {
+ dist_start += m_di.dy_start();
+ dist_end += m_di.dy_end();
+ *p1 = 0;
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ *p1 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++p1;
+ ++dx;
+ }
+
+ dx = 1;
+ dist_start = m_di.dist_start();
+ dist_end = m_di.dist_end();
+ while((dist = base_type::m_dist[dx] + s1) <= base_type::m_width)
+ {
+ dist_start -= m_di.dy_start();
+ dist_end -= m_di.dy_end();
+ *--p0 = 0;
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ *p0 = (cover_type)base_type::m_ren.cover(dist);
+ ++npix;
+ }
+ ++dx;
+ }
+ base_type::m_ren.blend_solid_hspan(base_type::m_x - dx + 1,
+ base_type::m_y,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++base_type::m_step < base_type::m_count;
+ }
+
+ private:
+ line_interpolator_aa3(const line_interpolator_aa3<Renderer>&);
+ const line_interpolator_aa3<Renderer>&
+ operator = (const line_interpolator_aa3<Renderer>&);
+
+ //---------------------------------------------------------------------
+ distance_interpolator3 m_di;
+ };
+
+
+
+
+ //==========================================================line_profile_aa
+ //
+ // See Implementation agg_line_profile_aa.cpp
+ //
+ class line_profile_aa
+ {
+ public:
+ //---------------------------------------------------------------------
+ typedef int8u value_type;
+ enum
+ {
+ subpixel_shift = line_subpixel_shift,
+ subpixel_size = 1 << subpixel_shift,
+ subpixel_mask = subpixel_size - 1
+ };
+
+ enum
+ {
+ aa_shift = 8,
+ aa_num = 1 << aa_shift,
+ aa_mask = aa_num - 1
+ };
+
+ //---------------------------------------------------------------------
+ ~line_profile_aa() { delete [] m_profile; }
+
+ //---------------------------------------------------------------------
+ line_profile_aa() :
+ m_size(0),
+ m_profile(0),
+ m_subpixel_width(0),
+ m_min_width(1.0),
+ m_smoother_width(1.0)
+ {
+ int i;
+ for(i = 0; i < aa_num; i++) m_gamma[i] = (value_type)i;
+ }
+
+ //---------------------------------------------------------------------
+ template<class GammaF>
+ line_profile_aa(double w, const GammaF& gamma_function) :
+ m_size(0),
+ m_profile(0),
+ m_subpixel_width(0),
+ m_min_width(1.0),
+ m_smoother_width(1.0)
+ {
+ gamma(gamma_function);
+ width(w);
+ }
+
+ //---------------------------------------------------------------------
+ void min_width(double w) { m_min_width = w; }
+ void smoother_width(double w) { m_smoother_width = w; }
+
+ //---------------------------------------------------------------------
+ template<class GammaF> void gamma(const GammaF& gamma_function)
+ {
+ int i;
+ for(i = 0; i < aa_num; i++)
+ {
+ m_gamma[i] = value_type(
+ floor(
+ gamma_function(double(i) / aa_mask) * aa_mask + 0.5));
+ }
+ }
+
+ void width(double w);
+
+ unsigned profile_size() const { return m_size; }
+ int subpixel_width() const { return m_subpixel_width; }
+
+ //---------------------------------------------------------------------
+ double min_width() const { return m_min_width; }
+ double smoother_width() const { return m_smoother_width; }
+
+ //---------------------------------------------------------------------
+ value_type value(int dist) const
+ {
+ return m_profile[dist + subpixel_size*2];
+ }
+
+ private:
+ line_profile_aa(const line_profile_aa&);
+ const line_profile_aa& operator = (const line_profile_aa&);
+
+ value_type* profile(double w);
+ void set(double center_width, double smoother_width);
+
+ //---------------------------------------------------------------------
+ unsigned m_size;
+ value_type* m_profile;
+ value_type m_gamma[aa_num];
+ int m_subpixel_width;
+ double m_min_width;
+ double m_smoother_width;
+ };
+
+
+ //======================================================renderer_outline_aa
+ template<class BaseRenderer> class renderer_outline_aa
+ {
+ public:
+ //---------------------------------------------------------------------
+ typedef BaseRenderer base_ren_type;
+ typedef renderer_outline_aa<base_ren_type> self_type;
+ typedef typename base_ren_type::color_type color_type;
+
+ //---------------------------------------------------------------------
+ renderer_outline_aa(base_ren_type& ren, const line_profile_aa& prof) :
+ m_ren(&ren),
+ m_profile(&prof)
+ {
+ }
+
+ //---------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //---------------------------------------------------------------------
+ void profile(const line_profile_aa& prof) { m_profile = &prof; }
+ const line_profile_aa& profile() const { return *m_profile; }
+ line_profile_aa& profile() { return const_cast<line_profile_aa&>(*m_profile); }
+
+ //---------------------------------------------------------------------
+ int subpixel_width() const { return m_profile->subpixel_width(); }
+
+ //---------------------------------------------------------------------
+ int cover(int d) const
+ {
+ return m_profile->value(d);
+ }
+
+ //-------------------------------------------------------------------------
+ void blend_solid_hspan(int x, int y, unsigned len, const cover_type* covers)
+ {
+ m_ren->blend_solid_hspan(x, y, len, m_color, covers);
+ }
+
+ //-------------------------------------------------------------------------
+ void blend_solid_vspan(int x, int y, unsigned len, const cover_type* covers)
+ {
+ m_ren->blend_solid_vspan(x, y, len, m_color, covers);
+ }
+
+ //-------------------------------------------------------------------------
+ static bool accurate_join_only() { return false; }
+
+ //-------------------------------------------------------------------------
+ template<class Cmp>
+ void semidot_hline(Cmp cmp,
+ int xc1, int yc1, int xc2, int yc2,
+ int x1, int y1, int x2)
+ {
+ cover_type covers[line_interpolator_aa_base<self_type>::max_half_width * 2 + 4];
+ cover_type* p0 = covers;
+ cover_type* p1 = covers;
+ int x = x1 << line_subpixel_shift;
+ int y = y1 << line_subpixel_shift;
+ int w = subpixel_width();
+ distance_interpolator0 di(xc1, yc1, xc2, yc2, x, y);
+ x += line_subpixel_size/2;
+ y += line_subpixel_size/2;
+
+ int x0 = x1;
+ int dx = x - xc1;
+ int dy = y - yc1;
+ do
+ {
+ int d = int(fast_sqrt(dx*dx + dy*dy));
+ *p1 = 0;
+ if(cmp(di.dist()) && d <= w)
+ {
+ *p1 = (cover_type)cover(d);
+ }
+ ++p1;
+ dx += line_subpixel_size;
+ di.inc_x();
+ }
+ while(++x1 <= x2);
+ m_ren->blend_solid_hspan(x0, y1,
+ unsigned(p1 - p0),
+ color(),
+ p0);
+ }
+
+ //-------------------------------------------------------------------------
+ template<class Cmp>
+ void semidot(Cmp cmp, int xc1, int yc1, int xc2, int yc2)
+ {
+ int r = ((subpixel_width() + line_subpixel_mask) >> line_subpixel_shift);
+ if(r < 1) r = 1;
+ ellipse_bresenham_interpolator ei(r, r);
+ int dx = 0;
+ int dy = -r;
+ int dy0 = dy;
+ int dx0 = dx;
+ int x = xc1 >> line_subpixel_shift;
+ int y = yc1 >> line_subpixel_shift;
+
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ if(dy != dy0)
+ {
+ semidot_hline(cmp, xc1, yc1, xc2, yc2, x-dx0, y+dy0, x+dx0);
+ semidot_hline(cmp, xc1, yc1, xc2, yc2, x-dx0, y-dy0, x+dx0);
+ }
+ dx0 = dx;
+ dy0 = dy;
+ ++ei;
+ }
+ while(dy < 0);
+ semidot_hline(cmp, xc1, yc1, xc2, yc2, x-dx0, y+dy0, x+dx0);
+ }
+
+ //-------------------------------------------------------------------------
+ void line0(const line_parameters& lp)
+ {
+ line_interpolator_aa0<self_type> li(*this, lp);
+ if(li.count())
+ {
+ if(li.vertical())
+ {
+ while(li.step_ver()) ;
+ }
+ else
+ {
+ while(li.step_hor()) ;
+ }
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ void line1(const line_parameters& lp, int sx, int sy)
+ {
+ fix_degenerate_bisectrix_start(lp, &sx, &sy);
+ line_interpolator_aa1<self_type> li(*this, lp, sx, sy);
+ if(li.vertical())
+ {
+ while(li.step_ver()) ;
+ }
+ else
+ {
+ while(li.step_hor()) ;
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ void line2(const line_parameters& lp, int ex, int ey)
+ {
+ fix_degenerate_bisectrix_end(lp, &ex, &ey);
+ line_interpolator_aa2<self_type> li(*this, lp, ex, ey);
+ if(li.vertical())
+ {
+ while(li.step_ver()) ;
+ }
+ else
+ {
+ while(li.step_hor()) ;
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ void line3(const line_parameters& lp,
+ int sx, int sy, int ex, int ey)
+ {
+ fix_degenerate_bisectrix_start(lp, &sx, &sy);
+ fix_degenerate_bisectrix_end(lp, &ex, &ey);
+ line_interpolator_aa3<self_type> li(*this, lp, sx, sy, ex, ey);
+ if(li.vertical())
+ {
+ while(li.step_ver()) ;
+ }
+ else
+ {
+ while(li.step_hor()) ;
+ }
+ }
+
+ private:
+ base_ren_type* m_ren;
+ const line_profile_aa* m_profile;
+ color_type m_color;
+ };
+
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_renderer_outline_image.h b/agg/inc/agg_renderer_outline_image.h
new file mode 100755
index 000000000000..d5cd3992448c
--- /dev/null
+++ b/agg/inc/agg_renderer_outline_image.h
@@ -0,0 +1,924 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_RENDERER_OUTLINE_IMAGE_INCLUDED
+#define AGG_RENDERER_OUTLINE_IMAGE_INCLUDED
+
+#include <math.h>
+#include "agg_line_aa_basics.h"
+#include "agg_dda_line.h"
+#include "agg_rendering_buffer.h"
+
+
+namespace agg
+{
+ //========================================================line_image_scale
+ template<class Source> class line_image_scale
+ {
+ public:
+ typedef typename Source::color_type color_type;
+
+ line_image_scale(const Source& src, double height) :
+ m_source(src),
+ m_height(height),
+ m_scale(src.height() / height)
+ {
+ }
+
+ double width() const { return m_source.width(); }
+ double height() const { return m_height; }
+
+ color_type pixel(int x, int y) const
+ {
+ double src_y = (y + 0.5) * m_scale - 0.5;
+ int h = int(m_source.height()) - 1;
+ int y1 = int(floor(src_y));
+ int y2 = y1 + 1;
+ color_type pix1 = (y1 < 0) ? color_type::no_color() : m_source.pixel(x, y1);
+ color_type pix2 = (y2 > h) ? color_type::no_color() : m_source.pixel(x, y2);
+ return pix1.gradient(pix2, src_y - y1);
+ }
+
+ private:
+ line_image_scale(const line_image_scale<Source>&);
+ const line_image_scale<Source>& operator = (const line_image_scale<Source>&);
+
+ const Source& m_source;
+ double m_height;
+ double m_scale;
+ };
+
+
+
+ //======================================================line_image_pattern
+ template<class Filter> class line_image_pattern
+ {
+ public:
+ typedef Filter filter_type;
+ typedef typename filter_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ ~line_image_pattern()
+ {
+ delete [] m_data;
+ }
+
+ //--------------------------------------------------------------------
+ line_image_pattern(const Filter& filter) :
+ m_filter(&filter),
+ m_dilation(filter.dilation() + 1),
+ m_dilation_hr(m_dilation << line_subpixel_shift),
+ m_data(0),
+ m_width(0),
+ m_height(0),
+ m_width_hr(0),
+ m_half_height_hr(0),
+ m_offset_y_hr(0)
+ {
+ }
+
+ // Create
+ //--------------------------------------------------------------------
+ template<class Source>
+ line_image_pattern(const Filter& filter, const Source& src) :
+ m_filter(&filter),
+ m_dilation(filter.dilation() + 1),
+ m_dilation_hr(m_dilation << line_subpixel_shift),
+ m_data(0),
+ m_width(0),
+ m_height(0),
+ m_width_hr(0),
+ m_half_height_hr(0),
+ m_offset_y_hr(0)
+ {
+ create(src);
+ }
+
+ // Create
+ //--------------------------------------------------------------------
+ template<class Source> void create(const Source& src)
+ {
+ m_height = unsigned(ceil((double)src.height()));
+ m_width = unsigned(ceil((double)src.width()));
+ m_width_hr = int(src.width() * line_subpixel_size);
+ m_half_height_hr = int(src.height() * line_subpixel_size/2);
+ m_offset_y_hr = m_dilation_hr + m_half_height_hr - line_subpixel_size/2;
+ m_half_height_hr += line_subpixel_size/2;
+
+ delete [] m_data;
+ m_data = new color_type [(m_width + m_dilation * 2) * (m_height + m_dilation * 2)];
+
+ m_buf.attach(m_data, m_width + m_dilation * 2,
+ m_height + m_dilation * 2,
+ m_width + m_dilation * 2);
+ unsigned x, y;
+ color_type* d1;
+ color_type* d2;
+ for(y = 0; y < m_height; y++)
+ {
+ d1 = m_buf.row(y + m_dilation) + m_dilation;
+ for(x = 0; x < m_width; x++)
+ {
+ *d1++ = src.pixel(x, y);
+ }
+ }
+
+ const color_type* s1;
+ const color_type* s2;
+ for(y = 0; y < m_dilation; y++)
+ {
+ //s1 = m_buf.row(m_height + m_dilation - 1) + m_dilation;
+ //s2 = m_buf.row(m_dilation) + m_dilation;
+ d1 = m_buf.row(m_dilation + m_height + y) + m_dilation;
+ d2 = m_buf.row(m_dilation - y - 1) + m_dilation;
+ for(x = 0; x < m_width; x++)
+ {
+ //*d1++ = color_type(*s1++, 0);
+ //*d2++ = color_type(*s2++, 0);
+ *d1++ = color_type::no_color();
+ *d2++ = color_type::no_color();
+ }
+ }
+
+ unsigned h = m_height + m_dilation * 2;
+ for(y = 0; y < h; y++)
+ {
+ s1 = m_buf.row(y) + m_dilation;
+ s2 = m_buf.row(y) + m_dilation + m_width;
+ d1 = m_buf.row(y) + m_dilation + m_width;
+ d2 = m_buf.row(y) + m_dilation;
+
+ for(x = 0; x < m_dilation; x++)
+ {
+ *d1++ = *s1++;
+ *--d2 = *--s2;
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------
+ int pattern_width() const { return m_width_hr; }
+ int line_width() const { return m_half_height_hr; }
+
+ //--------------------------------------------------------------------
+ void pixel(color_type* p, int x, int y) const
+ {
+ m_filter->pixel_high_res(m_buf.rows(),
+ p,
+ x % m_width_hr + m_dilation_hr,
+ y + m_offset_y_hr);
+ }
+
+ //--------------------------------------------------------------------
+ const filter_type& filter() const { return *m_filter; }
+
+ private:
+ line_image_pattern(const line_image_pattern<filter_type>&);
+ const line_image_pattern<filter_type>&
+ operator = (const line_image_pattern<filter_type>&);
+
+ protected:
+ row_ptr_cache<color_type> m_buf;
+ const filter_type* m_filter;
+ unsigned m_dilation;
+ int m_dilation_hr;
+ color_type* m_data;
+ unsigned m_width;
+ unsigned m_height;
+ int m_width_hr;
+ int m_half_height_hr;
+ int m_offset_y_hr;
+ };
+
+
+
+
+
+
+ //=================================================line_image_pattern_pow2
+ template<class Filter> class line_image_pattern_pow2 :
+ public line_image_pattern<Filter>
+ {
+ public:
+ typedef Filter filter_type;
+ typedef typename filter_type::color_type color_type;
+ typedef line_image_pattern<Filter> base_type;
+
+ //--------------------------------------------------------------------
+ line_image_pattern_pow2(const Filter& filter) :
+ line_image_pattern<Filter>(filter), m_mask(line_subpixel_mask) {}
+
+ //--------------------------------------------------------------------
+ template<class Source>
+ line_image_pattern_pow2(const Filter& filter, const Source& src) :
+ line_image_pattern<Filter>(filter), m_mask(line_subpixel_mask)
+ {
+ create(src);
+ }
+
+ //--------------------------------------------------------------------
+ template<class Source> void create(const Source& src)
+ {
+ line_image_pattern<Filter>::create(src);
+ m_mask = 1;
+ while(m_mask < base_type::m_width)
+ {
+ m_mask <<= 1;
+ m_mask |= 1;
+ }
+ m_mask <<= line_subpixel_shift - 1;
+ m_mask |= line_subpixel_mask;
+ base_type::m_width_hr = m_mask + 1;
+ }
+
+ //--------------------------------------------------------------------
+ void pixel(color_type* p, int x, int y) const
+ {
+ base_type::m_filter->pixel_high_res(
+ base_type::m_buf.rows(),
+ p,
+ (x & m_mask) + base_type::m_dilation_hr,
+ y + base_type::m_offset_y_hr);
+ }
+ private:
+ unsigned m_mask;
+ };
+
+
+
+
+
+
+
+ //===================================================distance_interpolator4
+ class distance_interpolator4
+ {
+ public:
+ //---------------------------------------------------------------------
+ distance_interpolator4() {}
+ distance_interpolator4(int x1, int y1, int x2, int y2,
+ int sx, int sy, int ex, int ey,
+ int len, double scale, int x, int y) :
+ m_dx(x2 - x1),
+ m_dy(y2 - y1),
+ m_dx_start(line_mr(sx) - line_mr(x1)),
+ m_dy_start(line_mr(sy) - line_mr(y1)),
+ m_dx_end(line_mr(ex) - line_mr(x2)),
+ m_dy_end(line_mr(ey) - line_mr(y2)),
+
+ m_dist(int(double(x + line_subpixel_size/2 - x2) * double(m_dy) -
+ double(y + line_subpixel_size/2 - y2) * double(m_dx))),
+
+ m_dist_start((line_mr(x + line_subpixel_size/2) - line_mr(sx)) * m_dy_start -
+ (line_mr(y + line_subpixel_size/2) - line_mr(sy)) * m_dx_start),
+
+ m_dist_end((line_mr(x + line_subpixel_size/2) - line_mr(ex)) * m_dy_end -
+ (line_mr(y + line_subpixel_size/2) - line_mr(ey)) * m_dx_end),
+ m_len(int(len / scale))
+ {
+ double d = len * scale;
+ int dx = int(((x2 - x1) << line_subpixel_shift) / d);
+ int dy = int(((y2 - y1) << line_subpixel_shift) / d);
+ m_dx_pict = -dy;
+ m_dy_pict = dx;
+ m_dist_pict = ((x + line_subpixel_size/2 - (x1 - dy)) * m_dy_pict -
+ (y + line_subpixel_size/2 - (y1 + dx)) * m_dx_pict) >>
+ line_subpixel_shift;
+
+ m_dx <<= line_subpixel_shift;
+ m_dy <<= line_subpixel_shift;
+ m_dx_start <<= line_mr_subpixel_shift;
+ m_dy_start <<= line_mr_subpixel_shift;
+ m_dx_end <<= line_mr_subpixel_shift;
+ m_dy_end <<= line_mr_subpixel_shift;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_x()
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_pict += m_dy_pict;
+ m_dist_end += m_dy_end;
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x()
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_pict -= m_dy_pict;
+ m_dist_end -= m_dy_end;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y()
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_pict -= m_dx_pict;
+ m_dist_end -= m_dx_end;
+ }
+
+ //---------------------------------------------------------------------
+ void dec_y()
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_pict += m_dx_pict;
+ m_dist_end += m_dx_end;
+ }
+
+ //---------------------------------------------------------------------
+ void inc_x(int dy)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_pict += m_dy_pict;
+ m_dist_end += m_dy_end;
+ if(dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_pict -= m_dx_pict;
+ m_dist_end -= m_dx_end;
+ }
+ if(dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_pict += m_dx_pict;
+ m_dist_end += m_dx_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_x(int dy)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_pict -= m_dy_pict;
+ m_dist_end -= m_dy_end;
+ if(dy > 0)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_pict -= m_dx_pict;
+ m_dist_end -= m_dx_end;
+ }
+ if(dy < 0)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_pict += m_dx_pict;
+ m_dist_end += m_dx_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void inc_y(int dx)
+ {
+ m_dist -= m_dx;
+ m_dist_start -= m_dx_start;
+ m_dist_pict -= m_dx_pict;
+ m_dist_end -= m_dx_end;
+ if(dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_pict += m_dy_pict;
+ m_dist_end += m_dy_end;
+ }
+ if(dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_pict -= m_dy_pict;
+ m_dist_end -= m_dy_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ void dec_y(int dx)
+ {
+ m_dist += m_dx;
+ m_dist_start += m_dx_start;
+ m_dist_pict += m_dx_pict;
+ m_dist_end += m_dx_end;
+ if(dx > 0)
+ {
+ m_dist += m_dy;
+ m_dist_start += m_dy_start;
+ m_dist_pict += m_dy_pict;
+ m_dist_end += m_dy_end;
+ }
+ if(dx < 0)
+ {
+ m_dist -= m_dy;
+ m_dist_start -= m_dy_start;
+ m_dist_pict -= m_dy_pict;
+ m_dist_end -= m_dy_end;
+ }
+ }
+
+ //---------------------------------------------------------------------
+ int dist() const { return m_dist; }
+ int dist_start() const { return m_dist_start; }
+ int dist_pict() const { return m_dist_pict; }
+ int dist_end() const { return m_dist_end; }
+
+ //---------------------------------------------------------------------
+ int dx() const { return m_dx; }
+ int dy() const { return m_dy; }
+ int dx_start() const { return m_dx_start; }
+ int dy_start() const { return m_dy_start; }
+ int dx_pict() const { return m_dx_pict; }
+ int dy_pict() const { return m_dy_pict; }
+ int dx_end() const { return m_dx_end; }
+ int dy_end() const { return m_dy_end; }
+ int len() const { return m_len; }
+
+ private:
+ //---------------------------------------------------------------------
+ int m_dx;
+ int m_dy;
+ int m_dx_start;
+ int m_dy_start;
+ int m_dx_pict;
+ int m_dy_pict;
+ int m_dx_end;
+ int m_dy_end;
+
+ int m_dist;
+ int m_dist_start;
+ int m_dist_pict;
+ int m_dist_end;
+ int m_len;
+ };
+
+
+
+
+
+ //==================================================line_interpolator_image
+ template<class Renderer> class line_interpolator_image
+ {
+ public:
+ typedef Renderer renderer_type;
+ typedef typename Renderer::color_type color_type;
+
+ //---------------------------------------------------------------------
+ enum
+ {
+ max_half_width = 64
+ };
+
+ //---------------------------------------------------------------------
+ line_interpolator_image(renderer_type& ren, const line_parameters& lp,
+ int sx, int sy, int ex, int ey,
+ int pattern_start,
+ double scale_x) :
+ m_lp(lp),
+ m_li(lp.vertical ? line_dbl_hr(lp.x2 - lp.x1) :
+ line_dbl_hr(lp.y2 - lp.y1),
+ lp.vertical ? abs(lp.y2 - lp.y1) :
+ abs(lp.x2 - lp.x1) + 1),
+ m_di(lp.x1, lp.y1, lp.x2, lp.y2, sx, sy, ex, ey, lp.len, scale_x,
+ lp.x1 & ~line_subpixel_mask, lp.y1 & ~line_subpixel_mask),
+ m_ren(ren),
+ m_x(lp.x1 >> line_subpixel_shift),
+ m_y(lp.y1 >> line_subpixel_shift),
+ m_old_x(m_x),
+ m_old_y(m_y),
+ m_count((lp.vertical ? abs((lp.y2 >> line_subpixel_shift) - m_y) :
+ abs((lp.x2 >> line_subpixel_shift) - m_x))),
+ m_width(ren.subpixel_width()),
+ m_max_extent(m_width >> (line_subpixel_shift - 2)),
+ m_start(pattern_start + (m_max_extent + 2) * ren.pattern_width()),
+ m_step(0)
+ {
+ agg::dda2_line_interpolator li(0, lp.vertical ?
+ (lp.dy << agg::line_subpixel_shift) :
+ (lp.dx << agg::line_subpixel_shift),
+ lp.len);
+
+ unsigned i;
+ int stop = m_width + line_subpixel_size * 2;
+ for(i = 0; i < max_half_width; ++i)
+ {
+ m_dist_pos[i] = li.y();
+ if(m_dist_pos[i] >= stop) break;
+ ++li;
+ }
+ m_dist_pos[i] = 0x7FFF0000;
+
+ int dist1_start;
+ int dist2_start;
+ int npix = 1;
+
+ if(lp.vertical)
+ {
+ do
+ {
+ --m_li;
+ m_y -= lp.inc;
+ m_x = (m_lp.x1 + m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_y(m_x - m_old_x);
+ else m_di.inc_y(m_x - m_old_x);
+
+ m_old_x = m_x;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dx = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start += m_di.dy_start();
+ dist2_start -= m_di.dy_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dx;
+ }
+ while(m_dist_pos[dx] <= m_width);
+ if(npix == 0) break;
+
+ npix = 0;
+ }
+ while(--m_step >= -m_max_extent);
+ }
+ else
+ {
+ do
+ {
+ --m_li;
+
+ m_x -= lp.inc;
+ m_y = (m_lp.y1 + m_li.y()) >> line_subpixel_shift;
+
+ if(lp.inc > 0) m_di.dec_x(m_y - m_old_y);
+ else m_di.inc_x(m_y - m_old_y);
+
+ m_old_y = m_y;
+
+ dist1_start = dist2_start = m_di.dist_start();
+
+ int dy = 0;
+ if(dist1_start < 0) ++npix;
+ do
+ {
+ dist1_start -= m_di.dx_start();
+ dist2_start += m_di.dx_start();
+ if(dist1_start < 0) ++npix;
+ if(dist2_start < 0) ++npix;
+ ++dy;
+ }
+ while(m_dist_pos[dy] <= m_width);
+ if(npix == 0) break;
+
+ npix = 0;
+ }
+ while(--m_step >= -m_max_extent);
+ }
+ m_li.adjust_forward();
+ m_step -= m_max_extent;
+ }
+
+ //---------------------------------------------------------------------
+ bool step_hor()
+ {
+ ++m_li;
+ m_x += m_lp.inc;
+ m_y = (m_lp.y1 + m_li.y()) >> line_subpixel_shift;
+
+ if(m_lp.inc > 0) m_di.inc_x(m_y - m_old_y);
+ else m_di.dec_x(m_y - m_old_y);
+
+ m_old_y = m_y;
+
+ int s1 = m_di.dist() / m_lp.len;
+ int s2 = -s1;
+
+ if(m_lp.inc < 0) s1 = -s1;
+
+ int dist_start;
+ int dist_pict;
+ int dist_end;
+ int dy;
+ int dist;
+
+ dist_start = m_di.dist_start();
+ dist_pict = m_di.dist_pict() + m_start;
+ dist_end = m_di.dist_end();
+ color_type* p0 = m_colors + max_half_width + 2;
+ color_type* p1 = p0;
+
+ int npix = 0;
+ p1->clear();
+ if(dist_end > 0)
+ {
+ if(dist_start <= 0)
+ {
+ m_ren.pixel(p1, dist_pict, s2);
+ }
+ ++npix;
+ }
+ ++p1;
+
+ dy = 1;
+ while((dist = m_dist_pos[dy]) - s1 <= m_width)
+ {
+ dist_start -= m_di.dx_start();
+ dist_pict -= m_di.dx_pict();
+ dist_end -= m_di.dx_end();
+ p1->clear();
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ if(m_lp.inc > 0) dist = -dist;
+ m_ren.pixel(p1, dist_pict, s2 - dist);
+ ++npix;
+ }
+ ++p1;
+ ++dy;
+ }
+
+ dy = 1;
+ dist_start = m_di.dist_start();
+ dist_pict = m_di.dist_pict() + m_start;
+ dist_end = m_di.dist_end();
+ while((dist = m_dist_pos[dy]) + s1 <= m_width)
+ {
+ dist_start += m_di.dx_start();
+ dist_pict += m_di.dx_pict();
+ dist_end += m_di.dx_end();
+ --p0;
+ p0->clear();
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ if(m_lp.inc > 0) dist = -dist;
+ m_ren.pixel(p0, dist_pict, s2 + dist);
+ ++npix;
+ }
+ ++dy;
+ }
+ m_ren.blend_color_vspan(m_x,
+ m_y - dy + 1,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++m_step < m_count;
+ }
+
+
+
+ //---------------------------------------------------------------------
+ bool step_ver()
+ {
+ ++m_li;
+ m_y += m_lp.inc;
+ m_x = (m_lp.x1 + m_li.y()) >> line_subpixel_shift;
+
+ if(m_lp.inc > 0) m_di.inc_y(m_x - m_old_x);
+ else m_di.dec_y(m_x - m_old_x);
+
+ m_old_x = m_x;
+
+ int s1 = m_di.dist() / m_lp.len;
+ int s2 = -s1;
+
+ if(m_lp.inc > 0) s1 = -s1;
+
+ int dist_start;
+ int dist_pict;
+ int dist_end;
+ int dist;
+ int dx;
+
+ dist_start = m_di.dist_start();
+ dist_pict = m_di.dist_pict() + m_start;
+ dist_end = m_di.dist_end();
+ color_type* p0 = m_colors + max_half_width + 2;
+ color_type* p1 = p0;
+
+ int npix = 0;
+ p1->clear();
+ if(dist_end > 0)
+ {
+ if(dist_start <= 0)
+ {
+ m_ren.pixel(p1, dist_pict, s2);
+ }
+ ++npix;
+ }
+ ++p1;
+
+ dx = 1;
+ while((dist = m_dist_pos[dx]) - s1 <= m_width)
+ {
+ dist_start += m_di.dy_start();
+ dist_pict += m_di.dy_pict();
+ dist_end += m_di.dy_end();
+ p1->clear();
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ if(m_lp.inc > 0) dist = -dist;
+ m_ren.pixel(p1, dist_pict, s2 + dist);
+ ++npix;
+ }
+ ++p1;
+ ++dx;
+ }
+
+ dx = 1;
+ dist_start = m_di.dist_start();
+ dist_pict = m_di.dist_pict() + m_start;
+ dist_end = m_di.dist_end();
+ while((dist = m_dist_pos[dx]) + s1 <= m_width)
+ {
+ dist_start -= m_di.dy_start();
+ dist_pict -= m_di.dy_pict();
+ dist_end -= m_di.dy_end();
+ --p0;
+ p0->clear();
+ if(dist_end > 0 && dist_start <= 0)
+ {
+ if(m_lp.inc > 0) dist = -dist;
+ m_ren.pixel(p0, dist_pict, s2 - dist);
+ ++npix;
+ }
+ ++dx;
+ }
+ m_ren.blend_color_hspan(m_x - dx + 1,
+ m_y,
+ unsigned(p1 - p0),
+ p0);
+ return npix && ++m_step < m_count;
+ }
+
+
+ //---------------------------------------------------------------------
+ int pattern_end() const { return m_start + m_di.len(); }
+
+ //---------------------------------------------------------------------
+ bool vertical() const { return m_lp.vertical; }
+ int width() const { return m_width; }
+ int count() const { return m_count; }
+
+ private:
+ line_interpolator_image(const line_interpolator_image<Renderer>&);
+ const line_interpolator_image<Renderer>&
+ operator = (const line_interpolator_image<Renderer>&);
+
+ protected:
+ const line_parameters& m_lp;
+ dda2_line_interpolator m_li;
+ distance_interpolator4 m_di;
+ renderer_type& m_ren;
+ int m_plen;
+ int m_x;
+ int m_y;
+ int m_old_x;
+ int m_old_y;
+ int m_count;
+ int m_width;
+ int m_max_extent;
+ int m_start;
+ int m_step;
+ int m_dist_pos[max_half_width + 1];
+ color_type m_colors[max_half_width * 2 + 4];
+ };
+
+
+
+
+
+
+
+
+ //===================================================renderer_outline_image
+ template<class BaseRenderer, class ImagePattern>
+ class renderer_outline_image
+ {
+ public:
+ //---------------------------------------------------------------------
+ typedef BaseRenderer base_ren_type;
+ typedef renderer_outline_image<BaseRenderer, ImagePattern> self_type;
+ typedef typename base_ren_type::color_type color_type;
+ typedef ImagePattern pattern_type;
+
+
+ //---------------------------------------------------------------------
+ renderer_outline_image(base_ren_type& ren, const pattern_type& patt) :
+ m_ren(&ren),
+ m_pattern(&patt),
+ m_start(0),
+ m_scale_x(1.0)
+ {
+ }
+
+ //---------------------------------------------------------------------
+ void pattern(const pattern_type& p) { m_pattern = &p; }
+ const pattern_type& pattern() const { return *m_pattern; }
+
+ //---------------------------------------------------------------------
+ void scale_x(double s) { m_scale_x = s; }
+ double scale_x() const { return m_scale_x; }
+
+ //---------------------------------------------------------------------
+ void start_x(double s) { m_start = int(s * line_subpixel_size); }
+ double start_x() const { return double(m_start) / line_subpixel_size; }
+
+ //---------------------------------------------------------------------
+ int subpixel_width() const { return m_pattern->line_width(); }
+ int pattern_width() const { return m_pattern->pattern_width(); }
+
+ //-------------------------------------------------------------------------
+ void pixel(color_type* p, int x, int y) const
+ {
+ m_pattern->pixel(p, x, y);
+ }
+
+ //-------------------------------------------------------------------------
+ void blend_color_hspan(int x, int y, unsigned len, const color_type* colors)
+ {
+ m_ren->blend_color_hspan(x, y, len, colors, 0);
+ }
+
+ //-------------------------------------------------------------------------
+ void blend_color_vspan(int x, int y, unsigned len, const color_type* colors)
+ {
+ m_ren->blend_color_vspan(x, y, len, colors, 0);
+ }
+
+ //-------------------------------------------------------------------------
+ static bool accurate_join_only() { return true; }
+
+ //-------------------------------------------------------------------------
+ template<class Cmp>
+ void semidot(Cmp, int, int, int, int)
+ {
+ }
+
+ //-------------------------------------------------------------------------
+ void line0(const line_parameters&)
+ {
+ }
+
+ //-------------------------------------------------------------------------
+ void line1(const line_parameters&, int, int)
+ {
+ }
+
+ //-------------------------------------------------------------------------
+ void line2(const line_parameters&, int, int)
+ {
+ }
+
+ //-------------------------------------------------------------------------
+ void line3(const line_parameters& lp,
+ int sx, int sy, int ex, int ey)
+ {
+ fix_degenerate_bisectrix_start(lp, &sx, &sy);
+ fix_degenerate_bisectrix_end(lp, &ex, &ey);
+ line_interpolator_image<self_type> li(*this, lp,
+ sx, sy,
+ ex, ey,
+ m_start, m_scale_x);
+ if(li.vertical())
+ {
+ while(li.step_ver());
+ }
+ else
+ {
+ while(li.step_hor());
+ }
+ m_start = li.pattern_end();
+ }
+
+ private:
+ base_ren_type* m_ren;
+ const pattern_type* m_pattern;
+ int m_start;
+ double m_scale_x;
+ };
+
+
+
+
+
+}
+
+
+
+#endif
diff --git a/agg/inc/agg_renderer_primitives.h b/agg/inc/agg_renderer_primitives.h
new file mode 100755
index 000000000000..522432c06df6
--- /dev/null
+++ b/agg/inc/agg_renderer_primitives.h
@@ -0,0 +1,224 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class renderer_primitives
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_PRIMITIVES_INCLUDED
+#define AGG_RENDERER_PRIMITIVES_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_renderer_base.h"
+#include "agg_dda_line.h"
+#include "agg_ellipse_bresenham.h"
+
+namespace agg
+{
+ //-----------------------------------------------------renderer_primitives
+ template<class BaseRenderer> class renderer_primitives
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+ typedef typename base_ren_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ renderer_primitives(base_ren_type& ren) :
+ m_ren(&ren),
+ m_fill_color(),
+ m_line_color(),
+ m_curr_x(0),
+ m_curr_y(0)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ static int coord(double c)
+ {
+ return int(c * line_bresenham_interpolator::subpixel_size);
+ }
+
+ //--------------------------------------------------------------------
+ void fill_color(const color_type& c) { m_fill_color = c; }
+ void line_color(const color_type& c) { m_line_color = c; }
+ const color_type& fill_color() const { return m_fill_color; }
+ const color_type& line_color() const { return m_line_color; }
+
+ //--------------------------------------------------------------------
+ void rectangle(int x1, int y1, int x2, int y2)
+ {
+ m_ren->blend_hline(x1, y1, x2-1, m_line_color, cover_full);
+ m_ren->blend_vline(x2, y1, y2-1, m_line_color, cover_full);
+ m_ren->blend_hline(x1+1, y2, x2, m_line_color, cover_full);
+ m_ren->blend_vline(x1, y1+1, y2, m_line_color, cover_full);
+ }
+
+ //--------------------------------------------------------------------
+ void solid_rectangle(int x1, int y1, int x2, int y2)
+ {
+ m_ren->blend_bar(x1, y1, x2, y2, m_fill_color, cover_full);
+ }
+
+ //--------------------------------------------------------------------
+ void outlined_rectangle(int x1, int y1, int x2, int y2)
+ {
+ rectangle(x1, y1, x2, y2);
+ m_ren->blend_bar(x1+1, y1+1, x2-1, y2-1, m_fill_color, cover_full);
+ }
+
+ //--------------------------------------------------------------------
+ void ellipse(int x, int y, int rx, int ry)
+ {
+ ellipse_bresenham_interpolator ei(rx, ry);
+ int dx = 0;
+ int dy = -ry;
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+ m_ren->blend_pixel(x + dx, y + dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x + dx, y - dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x - dx, y - dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x - dx, y + dy, m_line_color, cover_full);
+ ++ei;
+ }
+ while(dy < 0);
+ }
+
+ //--------------------------------------------------------------------
+ void solid_ellipse(int x, int y, int rx, int ry)
+ {
+ ellipse_bresenham_interpolator ei(rx, ry);
+ int dx = 0;
+ int dy = -ry;
+ int dy0 = dy;
+ int dx0 = dx;
+
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ if(dy != dy0)
+ {
+ m_ren->blend_hline(x-dx0, y+dy0, x+dx0, m_fill_color, cover_full);
+ m_ren->blend_hline(x-dx0, y-dy0, x+dx0, m_fill_color, cover_full);
+ }
+ dx0 = dx;
+ dy0 = dy;
+ ++ei;
+ }
+ while(dy < 0);
+ m_ren->blend_hline(x-dx0, y+dy0, x+dx0, m_fill_color, cover_full);
+ }
+
+ //--------------------------------------------------------------------
+ void outlined_ellipse(int x, int y, int rx, int ry)
+ {
+ ellipse_bresenham_interpolator ei(rx, ry);
+ int dx = 0;
+ int dy = -ry;
+
+ do
+ {
+ dx += ei.dx();
+ dy += ei.dy();
+
+ m_ren->blend_pixel(x + dx, y + dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x + dx, y - dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x - dx, y - dy, m_line_color, cover_full);
+ m_ren->blend_pixel(x - dx, y + dy, m_line_color, cover_full);
+
+ if(ei.dy() && dx)
+ {
+ m_ren->blend_hline(x-dx+1, y+dy, x+dx-1, m_fill_color, cover_full);
+ m_ren->blend_hline(x-dx+1, y-dy, x+dx-1, m_fill_color, cover_full);
+ }
+ ++ei;
+ }
+ while(dy < 0);
+ }
+
+ //--------------------------------------------------------------------
+ void line(int x1, int y1, int x2, int y2, bool last=false)
+ {
+ line_bresenham_interpolator li(x1, y1, x2, y2);
+
+ unsigned len = li.len();
+ if(len == 0)
+ {
+ if(last)
+ {
+ m_ren->blend_pixel(li.line_lr(x1), li.line_lr(y1), m_line_color, cover_full);
+ }
+ return;
+ }
+
+ if(last) ++len;
+
+ if(li.is_ver())
+ {
+ do
+ {
+ m_ren->blend_pixel(li.x2(), li.y1(), m_line_color, cover_full);
+ li.vstep();
+ }
+ while(--len);
+ }
+ else
+ {
+ do
+ {
+ m_ren->blend_pixel(li.x1(), li.y2(), m_line_color, cover_full);
+ li.hstep();
+ }
+ while(--len);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void move_to(int x, int y)
+ {
+ m_curr_x = x;
+ m_curr_y = y;
+ }
+
+ //--------------------------------------------------------------------
+ void line_to(int x, int y, bool last=false)
+ {
+ line(m_curr_x, m_curr_y, x, y, last);
+ m_curr_x = x;
+ m_curr_y = y;
+ }
+
+ //--------------------------------------------------------------------
+ const base_ren_type& ren() const { return *m_ren; }
+ base_ren_type& ren() { return *m_ren; }
+
+ //--------------------------------------------------------------------
+ const rendering_buffer& rbuf() const { return m_ren->rbuf(); }
+ rendering_buffer& rbuf() { return m_ren->rbuf(); }
+
+ private:
+ base_ren_type* m_ren;
+ color_type m_fill_color;
+ color_type m_line_color;
+ int m_curr_x;
+ int m_curr_y;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_renderer_raster_text.h b/agg/inc/agg_renderer_raster_text.h
new file mode 100755
index 000000000000..957944600332
--- /dev/null
+++ b/agg/inc/agg_renderer_raster_text.h
@@ -0,0 +1,264 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_RASTER_TEXT_INCLUDED
+#define AGG_RENDERER_RASTER_TEXT_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //==============================================renderer_raster_htext_solid
+ template<class BaseRenderer, class GlyphGenerator>
+ class renderer_raster_htext_solid
+ {
+ public:
+ typedef BaseRenderer ren_type;
+ typedef GlyphGenerator glyph_gen_type;
+ typedef typename glyph_gen_type::glyph_rect glyph_rect;
+ typedef typename ren_type::color_type color_type;
+
+ renderer_raster_htext_solid(ren_type& ren, glyph_gen_type& glyph) :
+ m_ren(&ren),
+ m_glyph(&glyph)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //--------------------------------------------------------------------
+ template<class CharT>
+ void render_text(double x, double y, const CharT* str, bool flip=false)
+ {
+ glyph_rect r;
+ while(*str)
+ {
+ m_glyph->prepare(&r, x, y, *str, flip);
+ if(r.x2 >= r.x1)
+ {
+ int i;
+ if(flip)
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_hspan(r.x1, i, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(r.y2 - i));
+ }
+ }
+ else
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_hspan(r.x1, i, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(i - r.y1));
+ }
+ }
+ }
+ x += r.dx;
+ y += r.dy;
+ ++str;
+ }
+ }
+
+ private:
+ ren_type* m_ren;
+ glyph_gen_type* m_glyph;
+ color_type m_color;
+ };
+
+
+
+ //=============================================renderer_raster_vtext_solid
+ template<class BaseRenderer, class GlyphGenerator>
+ class renderer_raster_vtext_solid
+ {
+ public:
+ typedef BaseRenderer ren_type;
+ typedef GlyphGenerator glyph_gen_type;
+ typedef typename glyph_gen_type::glyph_rect glyph_rect;
+ typedef typename ren_type::color_type color_type;
+
+ renderer_raster_vtext_solid(ren_type& ren, glyph_gen_type& glyph) :
+ m_ren(&ren),
+ m_glyph(&glyph)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //--------------------------------------------------------------------
+ template<class CharT>
+ void render_text(double x, double y, const CharT* str, bool flip=false)
+ {
+ glyph_rect r;
+ while(*str)
+ {
+ m_glyph->prepare(&r, x, y, *str, !flip);
+ if(r.x2 >= r.x1)
+ {
+ int i;
+ if(flip)
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_vspan(i, r.x1, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(i - r.y1));
+ }
+ }
+ else
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->blend_solid_vspan(i, r.x1, (r.x2 - r.x1 + 1),
+ m_color,
+ m_glyph->span(r.y2 - i));
+ }
+ }
+ }
+ x += r.dx;
+ y += r.dy;
+ ++str;
+ }
+ }
+
+ private:
+ ren_type* m_ren;
+ glyph_gen_type* m_glyph;
+ color_type m_color;
+ };
+
+
+
+
+
+
+ //===================================================renderer_raster_htext
+ template<class ScanlineRenderer, class GlyphGenerator>
+ class renderer_raster_htext
+ {
+ public:
+ typedef ScanlineRenderer ren_type;
+ typedef GlyphGenerator glyph_gen_type;
+ typedef typename glyph_gen_type::glyph_rect glyph_rect;
+
+ class scanline_single_span
+ {
+ public:
+ typedef agg::cover_type cover_type;
+
+ //----------------------------------------------------------------
+ struct const_span
+ {
+ int x;
+ unsigned len;
+ const cover_type* covers;
+
+ const_span() {}
+ const_span(int x_, unsigned len_, const cover_type* covers_) :
+ x(x_), len(len_), covers(covers_)
+ {}
+ };
+
+ typedef const const_span* const_iterator;
+
+ //----------------------------------------------------------------
+ scanline_single_span(int x, int y, unsigned len,
+ const cover_type* covers) :
+ m_y(y),
+ m_span(x, len, covers)
+ {}
+
+ //----------------------------------------------------------------
+ int y() const { return m_y; }
+ unsigned num_spans() const { return 1; }
+ const_iterator begin() const { return &m_span; }
+
+ private:
+ //----------------------------------------------------------------
+ int m_y;
+ const_span m_span;
+ };
+
+
+
+ //--------------------------------------------------------------------
+ renderer_raster_htext(ren_type& ren, glyph_gen_type& glyph) :
+ m_ren(&ren),
+ m_glyph(&glyph)
+ {
+ }
+
+
+ //--------------------------------------------------------------------
+ template<class CharT>
+ void render_text(double x, double y, const CharT* str, bool flip=false)
+ {
+ glyph_rect r;
+ while(*str)
+ {
+ m_glyph->prepare(&r, x, y, *str, flip);
+ if(r.x2 >= r.x1)
+ {
+ m_ren->prepare(r.x2 - r.x1 + 1);
+ int i;
+ if(flip)
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->render(
+ scanline_single_span(r.x1,
+ i,
+ (r.x2 - r.x1 + 1),
+ m_glyph->span(r.y2 - i)));
+ }
+ }
+ else
+ {
+ for(i = r.y1; i <= r.y2; i++)
+ {
+ m_ren->render(
+ scanline_single_span(r.x1,
+ i,
+ (r.x2 - r.x1 + 1),
+ m_glyph->span(i - r.y1)));
+ }
+ }
+ }
+ x += r.dx;
+ y += r.dy;
+ ++str;
+ }
+ }
+
+ private:
+ ren_type* m_ren;
+ glyph_gen_type* m_glyph;
+ };
+
+
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_renderer_scanline.h b/agg/inc/agg_renderer_scanline.h
new file mode 100755
index 000000000000..cc33942a3770
--- /dev/null
+++ b/agg/inc/agg_renderer_scanline.h
@@ -0,0 +1,450 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERER_SCANLINE_INCLUDED
+#define AGG_RENDERER_SCANLINE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_renderer_base.h"
+#include "agg_render_scanlines.h"
+
+namespace agg
+{
+
+ //====================================================renderer_scanline_aa
+ template<class BaseRenderer, class SpanGenerator> class renderer_scanline_aa
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_aa(base_ren_type& ren, SpanGenerator& span_gen) :
+ m_ren(&ren),
+ m_span_gen(&span_gen)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_span_gen->prepare(max_span_len);
+ }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ int y = sl.y();
+ m_ren->first_clip_box();
+ do
+ {
+ int xmin = m_ren->xmin();
+ int xmax = m_ren->xmax();
+
+ if(y >= m_ren->ymin() && y <= m_ren->ymax())
+ {
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+ do
+ {
+ int x = span->x;
+ int len = span->len;
+ bool solid = false;
+ const typename Scanline::cover_type* covers = span->covers;
+
+ if(len < 0)
+ {
+ solid = true;
+ len = -len;
+ }
+
+ if(x < xmin)
+ {
+ len -= xmin - x;
+ if(!solid)
+ {
+ covers += xmin - x;
+ }
+ x = xmin;
+ }
+
+ if(len > 0)
+ {
+ if(x + len > xmax)
+ {
+ len = xmax - x + 1;
+ }
+ if(len > 0)
+ {
+ m_ren->blend_color_hspan_no_clip(
+ x, y, len,
+ m_span_gen->generate(x, y, len),
+ solid ? 0 : covers,
+ *covers);
+ }
+ }
+ ++span;
+ }
+ while(--num_spans);
+ }
+ }
+ while(m_ren->next_clip_box());
+ }
+
+ private:
+ base_ren_type* m_ren;
+ SpanGenerator* m_span_gen;
+ };
+
+
+
+
+ //==============================================renderer_scanline_aa_opaque
+ template<class BaseRenderer, class SpanGenerator> class renderer_scanline_aa_opaque
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_aa_opaque(base_ren_type& ren, SpanGenerator& span_gen) :
+ m_ren(&ren),
+ m_span_gen(&span_gen)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_span_gen->prepare(max_span_len);
+ }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ int y = sl.y();
+ m_ren->first_clip_box();
+ do
+ {
+ int xmin = m_ren->xmin();
+ int xmax = m_ren->xmax();
+
+ if(y >= m_ren->ymin() && y <= m_ren->ymax())
+ {
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+ do
+ {
+ int x = span->x;
+ int len = span->len;
+ bool solid = false;
+ const typename Scanline::cover_type* covers = span->covers;
+
+ if(len < 0)
+ {
+ solid = true;
+ len = -len;
+ }
+
+ if(x < xmin)
+ {
+ len -= xmin - x;
+ if(!solid)
+ {
+ covers += xmin - x;
+ }
+ x = xmin;
+ }
+
+ if(len > 0)
+ {
+ if(x + len > xmax)
+ {
+ len = xmax - x + 1;
+ }
+ if(len > 0)
+ {
+ m_ren->blend_opaque_color_hspan_no_clip(
+ x, y, len,
+ m_span_gen->generate(x, y, len),
+ solid ? 0 : covers,
+ *covers);
+ }
+ }
+ ++span;
+ }
+ while(--num_spans);
+ }
+ }
+ while(m_ren->next_clip_box());
+ }
+
+ private:
+ base_ren_type* m_ren;
+ SpanGenerator* m_span_gen;
+ };
+
+
+
+ //==============================================renderer_scanline_aa_solid
+ template<class BaseRenderer> class renderer_scanline_aa_solid
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+ typedef typename base_ren_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_aa_solid(base_ren_type& ren) :
+ m_ren(&ren)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned) {}
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ int y = sl.y();
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+
+ do
+ {
+ int x = span->x;
+ if(span->len > 0)
+ {
+ m_ren->blend_solid_hspan(x, y, (unsigned)span->len,
+ m_color,
+ span->covers);
+ }
+ else
+ {
+ m_ren->blend_hline(x, y, (unsigned)(x - span->len - 1),
+ m_color,
+ *(span->covers));
+ }
+ ++span;
+ }
+ while(--num_spans);
+ }
+
+ private:
+ base_ren_type* m_ren;
+ color_type m_color;
+ };
+
+
+
+
+
+
+
+ //===================================================renderer_scanline_bin
+ template<class BaseRenderer, class SpanGenerator> class renderer_scanline_bin
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_bin(base_ren_type& ren, SpanGenerator& span_gen) :
+ m_ren(&ren),
+ m_span_gen(&span_gen)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_span_gen->prepare(max_span_len);
+ }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ int y = sl.y();
+ m_ren->first_clip_box();
+ do
+ {
+ int xmin = m_ren->xmin();
+ int xmax = m_ren->xmax();
+
+ if(y >= m_ren->ymin() && y <= m_ren->ymax())
+ {
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+ do
+ {
+ int x = span->x;
+ int len = span->len;
+
+ if(len < 0) len = -len;
+ if(x < xmin)
+ {
+ len -= xmin - x;
+ x = xmin;
+ }
+ if(len > 0)
+ {
+ if(x + len > xmax)
+ {
+ len = xmax - x + 1;
+ }
+ if(len > 0)
+ {
+ m_ren->blend_color_hspan_no_clip(
+ x, y, len,
+ m_span_gen->generate(x, y, len),
+ 0);
+ }
+ }
+ ++span;
+ }
+ while(--num_spans);
+ }
+ }
+ while(m_ren->next_clip_box());
+ }
+
+ private:
+ base_ren_type* m_ren;
+ SpanGenerator* m_span_gen;
+ };
+
+
+
+ //===============================================renderer_scanline_bin_opaque
+ template<class BaseRenderer, class SpanGenerator> class renderer_scanline_bin_opaque
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_bin_opaque(base_ren_type& ren, SpanGenerator& span_gen) :
+ m_ren(&ren),
+ m_span_gen(&span_gen)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_span_gen->prepare(max_span_len);
+ }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ int y = sl.y();
+ m_ren->first_clip_box();
+ do
+ {
+ int xmin = m_ren->xmin();
+ int xmax = m_ren->xmax();
+
+ if(y >= m_ren->ymin() && y <= m_ren->ymax())
+ {
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+ do
+ {
+ int x = span->x;
+ int len = span->len;
+
+ if(len < 0) len = -len;
+ if(x < xmin)
+ {
+ len -= xmin - x;
+ x = xmin;
+ }
+ if(len > 0)
+ {
+ if(x + len > xmax)
+ {
+ len = xmax - x + 1;
+ }
+ if(len > 0)
+ {
+ m_ren->blend_opaque_color_hspan_no_clip(
+ x, y, len,
+ m_span_gen->generate(x, y, len),
+ 0);
+ }
+ }
+ ++span;
+ }
+ while(--num_spans);
+ }
+ }
+ while(m_ren->next_clip_box());
+ }
+
+ private:
+ base_ren_type* m_ren;
+ SpanGenerator* m_span_gen;
+ };
+
+
+
+
+ //=============================================renderer_scanline_bin_solid
+ template<class BaseRenderer> class renderer_scanline_bin_solid
+ {
+ public:
+ typedef BaseRenderer base_ren_type;
+ typedef typename base_ren_type::color_type color_type;
+
+ //--------------------------------------------------------------------
+ renderer_scanline_bin_solid(base_ren_type& ren) :
+ m_ren(&ren)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned) {}
+
+ //--------------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ unsigned num_spans = sl.num_spans();
+ typename Scanline::const_iterator span = sl.begin();
+ do
+ {
+ m_ren->blend_hline(span->x,
+ sl.y(),
+ span->x - 1 + ((span->len < 0) ?
+ -span->len :
+ span->len),
+ m_color,
+ cover_full);
+ ++span;
+ }
+ while(--num_spans);
+ }
+
+ private:
+ base_ren_type* m_ren;
+ color_type m_color;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_rendering_buffer.h b/agg/inc/agg_rendering_buffer.h
new file mode 100755
index 000000000000..50b6a46fdfa8
--- /dev/null
+++ b/agg/inc/agg_rendering_buffer.h
@@ -0,0 +1,179 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class rendering_buffer
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERING_BUFFER_INCLUDED
+#define AGG_RENDERING_BUFFER_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //==========================================================row_ptr_cache
+ template<class T> class row_ptr_cache
+ {
+ public:
+ //--------------------------------------------------------------------
+ struct row_data
+ {
+ int x1, x2;
+ const int8u* ptr;
+ row_data() {}
+ row_data(int x1_, int x2_, const int8u* ptr_) :
+ x1(x1_), x2(x2_), ptr(ptr_) {}
+ };
+
+ //-------------------------------------------------------------------
+ ~row_ptr_cache()
+ {
+ delete [] m_rows;
+ }
+
+ //-------------------------------------------------------------------
+ row_ptr_cache() :
+ m_buf(0),
+ m_rows(0),
+ m_width(0),
+ m_height(0),
+ m_stride(0),
+ m_max_height(0)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ row_ptr_cache(T* _buf, unsigned _width, unsigned _height, int _stride) :
+ m_buf(0),
+ m_rows(0),
+ m_width(0),
+ m_height(0),
+ m_stride(0),
+ m_max_height(0)
+ {
+ attach(_buf, _width, _height, _stride);
+ }
+
+ //--------------------------------------------------------------------
+ void attach(T* _buf, unsigned _width, unsigned _height, int _stride)
+ {
+ m_buf = _buf;
+ m_width = _width;
+ m_height = _height;
+ m_stride = _stride;
+ if(_height > m_max_height)
+ {
+ delete [] m_rows;
+ m_rows = new T* [m_max_height = _height];
+ }
+
+ T* row_ptr = m_buf;
+
+ if(_stride < 0)
+ {
+ row_ptr = m_buf - int(_height - 1) * _stride;
+ }
+
+ T** _rows = m_rows;
+
+ while(_height--)
+ {
+ *_rows++ = row_ptr;
+ row_ptr += _stride;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ const T* buf() const { return m_buf; }
+ unsigned width() const { return m_width; }
+ unsigned height() const { return m_height; }
+ int stride() const { return m_stride; }
+ unsigned stride_abs() const
+ {
+ return (m_stride < 0) ?
+ unsigned(-m_stride) :
+ unsigned(m_stride);
+ }
+
+ //--------------------------------------------------------------------
+ T* row(unsigned y) { return m_rows[y]; }
+ const T* row(unsigned y) const { return m_rows[y]; }
+
+ T* next_row(void* p) { return (T*)p + m_stride; }
+ const T* next_row(const void* p) const { return (T*)p + m_stride; }
+
+ T const* const* rows() const { return m_rows; }
+
+ //--------------------------------------------------------------------
+ void copy_from(const row_ptr_cache<T>& mtx)
+ {
+ unsigned h = height();
+ if(mtx.height() < h) h = mtx.height();
+
+ unsigned l = stride_abs();
+ if(mtx.stride_abs() < l) l = mtx.stride_abs();
+
+ l *= sizeof(T);
+
+ unsigned y;
+ for (y = 0; y < h; y++)
+ {
+ memcpy(row(y), mtx.row(y), l);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void clear(T value)
+ {
+ unsigned y;
+ for(y = 0; y < height(); y++)
+ {
+ T* p = row(y);
+ unsigned x;
+ for(x = 0; x < stride_abs(); x++)
+ {
+ *p++ = value;
+ }
+ }
+ }
+
+
+ private:
+ //--------------------------------------------------------------------
+ // Prohibit copying
+ row_ptr_cache(const row_ptr_cache<T>&);
+ const row_ptr_cache<T>& operator = (const row_ptr_cache<T>&);
+
+ private:
+ //--------------------------------------------------------------------
+ T* m_buf; // Pointer to renrdering buffer
+ T** m_rows; // Pointers to each row of the buffer
+ unsigned m_width; // Width in pixels
+ unsigned m_height; // Height in pixels
+ int m_stride; // Number of bytes per row. Can be < 0
+ unsigned m_max_height; // The maximal height (currently allocated)
+ };
+
+
+
+ //========================================================rendering_buffer
+ typedef row_ptr_cache<int8u> rendering_buffer;
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_rendering_buffer_dynarow.h b/agg/inc/agg_rendering_buffer_dynarow.h
new file mode 100755
index 000000000000..b6724d99ff78
--- /dev/null
+++ b/agg/inc/agg_rendering_buffer_dynarow.h
@@ -0,0 +1,184 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class rendering_buffer_dynarow
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_RENDERING_BUFFER_DYNAROW_INCLUDED
+#define AGG_RENDERING_BUFFER_DYNAROW_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //===============================================rendering_buffer_dynarow
+ // Rendering buffer class with dynamic allocation of the rows.
+ // The rows are allocated as needed when requesting for span_ptr().
+ // The class automatically calculates min_x and max_x for each row.
+ // Generally it's more efficient to use this class as a temporary buffer
+ // for rendering a few lines and then to blend it with another buffer.
+ //
+ template<unsigned PixWidth> class rendering_buffer_dynarow
+ {
+ public:
+ //-------------------------------------------------------------------
+ struct row_data
+ {
+ int8u* ptr;
+ int x1;
+ int x2;
+ };
+
+ //-------------------------------------------------------------------
+ ~rendering_buffer_dynarow()
+ {
+ init(0,0);
+ }
+
+ //-------------------------------------------------------------------
+ rendering_buffer_dynarow() :
+ m_rows(0),
+ m_width(0),
+ m_height(0)
+ {
+ }
+
+ // Allocate and clear the buffer
+ //--------------------------------------------------------------------
+ rendering_buffer_dynarow(unsigned width, unsigned height) :
+ m_rows(new row_data[height]),
+ m_width(width),
+ m_height(height)
+ {
+ memset(m_rows, 0, sizeof(row_data) * height);
+ }
+
+ // Allocate and clear the buffer
+ //--------------------------------------------------------------------
+ void init(unsigned width, unsigned height)
+ {
+ unsigned i;
+ for(i = 0; i < m_height; ++i) delete [] m_rows[i].ptr;
+ delete [] m_rows;
+ m_rows = 0;
+ if(width && height)
+ {
+ m_width = width;
+ m_height = height;
+ m_rows = new row_data[height];
+ memset(m_rows, 0, sizeof(row_data) * height);
+ }
+ }
+
+ //--------------------------------------------------------------------
+ unsigned width() const { return m_width; }
+ unsigned height() const { return m_height; }
+
+ // Get pointer to the beginning of the row. Memory for the row
+ // is allocated as needed.
+ //--------------------------------------------------------------------
+ int8u* row(int y)
+ {
+ row_data* r = m_rows + y;
+ if(r->ptr == 0)
+ {
+ r->ptr = new int8u [m_width * PixWidth];
+ memset(r->ptr, 0, m_width * PixWidth);
+ }
+ return r->ptr;
+ }
+
+ // Get const pointer to the row. The caller must check it for null.
+ //--------------------------------------------------------------------
+ const int8u* row(int y) const
+ {
+ return m_rows[y].ptr;
+ }
+
+ // Get the Y-th span. The pointer r.ptr is automatically adjusted
+ // to the actual beginning of the span. Use this function as follows:
+ //
+ // rendering_buffer_dynarow::row_data r = rbuf.span(x, y);
+ // if(r.ptr)
+ // {
+ // do { blend(r.ptr); r.ptr += PixWidth } while(++r.x1 < r.x2);
+ // }
+ //--------------------------------------------------------------------
+ row_data span(int x, int y) const
+ {
+ row_data r = m_rows[y];
+ if(r.ptr)
+ {
+ if(x < r.x1) x = r.x1;
+ r.ptr += x * PixWidth;
+ }
+ return r;
+ }
+
+
+ // The main function used for rendering. Returns pointer to the
+ // pre-allocated span. Memory for the row is allocated as needed.
+ //--------------------------------------------------------------------
+ int8u* span_ptr(int x, int y, unsigned len)
+ {
+ row_data* r = m_rows + y;
+ int x2 = x + len - 1;
+ if(r->ptr)
+ {
+ if(x < r->x1) { r->x1 = x; }
+ if(x2 > r->x2) { r->x2 = x2; }
+ }
+ else
+ {
+ r->ptr = new int8u [m_width * PixWidth];
+ r->x1 = x;
+ r->x2 = x2;
+ memset(r->ptr, 0, m_width * PixWidth);
+ }
+ return r->ptr + x * PixWidth;
+ }
+
+ // Get const pointer to the span. Used mostly in GetPixel function
+ // The caller must check the returned pointer for null.
+ //--------------------------------------------------------------------
+ const int8u* span_ptr(int x, int y, unsigned) const
+ {
+ row_data* r = m_rows + y;
+ return r->ptr ? r->ptr + x * PixWidth : 0;
+ }
+
+
+
+ private:
+ //--------------------------------------------------------------------
+ // Prohibit copying
+ rendering_buffer_dynarow(const rendering_buffer_dynarow<PixWidth>&);
+ const rendering_buffer_dynarow<PixWidth>&
+ operator = (const rendering_buffer_dynarow<PixWidth>&);
+
+ private:
+ //--------------------------------------------------------------------
+ row_data* m_rows; // Pointers to each row of the buffer
+ unsigned m_width; // Width in pixels
+ unsigned m_height; // Height in pixels
+ };
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_rounded_rect.h b/agg/inc/agg_rounded_rect.h
new file mode 100755
index 000000000000..d4185dafa5b3
--- /dev/null
+++ b/agg/inc/agg_rounded_rect.h
@@ -0,0 +1,79 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Rounded rectangle vertex generator
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_ROUNDED_RECT_INCLUDED
+#define AGG_ROUNDED_RECT_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_arc.h"
+#include "agg_vertex_iterator.h"
+
+
+namespace agg
+{
+ //------------------------------------------------------------rounded_rect
+ //
+ // See Implemantation agg_rounded_rect.cpp
+ //
+ class rounded_rect
+ {
+ public:
+ rounded_rect() {}
+ rounded_rect(double x1, double y1, double x2, double y2, double r);
+
+ void rect(double x1, double y1, double x2, double y2);
+ void radius(double r);
+ void radius(double rx, double ry);
+ void radius(double rx_bottom, double ry_bottom, double rx_top, double ry_top);
+ void radius(double rx1, double ry1, double rx2, double ry2,
+ double rx3, double ry3, double rx4, double ry4);
+ void normalize_radius();
+
+ void approximation_scale(double s) { m_arc.approximation_scale(s); }
+ double approximation_scale() const { return m_arc.approximation_scale(); }
+
+ void rewind(unsigned);
+ unsigned vertex(double* x, double* y);
+
+ typedef rounded_rect source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ double m_x1;
+ double m_y1;
+ double m_x2;
+ double m_y2;
+ double m_rx1;
+ double m_ry1;
+ double m_rx2;
+ double m_ry2;
+ double m_rx3;
+ double m_ry3;
+ double m_rx4;
+ double m_ry4;
+ unsigned m_status;
+ arc m_arc;
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_scanline_bin.h b/agg/inc/agg_scanline_bin.h
new file mode 100755
index 000000000000..aa60ed061e07
--- /dev/null
+++ b/agg/inc/agg_scanline_bin.h
@@ -0,0 +1,171 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class scanline_bin - binary scanline.
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SCANLINE_BIN_INCLUDED
+#define AGG_SCANLINE_BIN_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //=============================================================scanline_bin
+ //
+ // This is binary scaline container which supports the interface
+ // used in the rasterizer::render(). See description of agg_scanline_u8
+ // for details.
+ //
+ // Rendering:
+ //-------------------------------------------------------------------------
+ //
+ // int y = sl.y();
+ //
+ // ************************************
+ // ...Perform vertical clipping here...
+ // ************************************
+ //
+ // unsigned num_spans = sl.num_spans();
+ // const agg::scanline_bin::span* cur_span = sl.spans();
+ //
+ // do
+ // {
+ // x = cur_span->x;
+ // len = cur_span->len;
+ //
+ // **************************************
+ // ...Perform horizontal clipping here...
+ // **************************************
+ //
+ // hor_line(x, y, len)
+ // ++cur_span;
+ // }
+ // while(--num_spans);
+ //
+ //------------------------------------------------------------------------
+ class scanline_bin
+ {
+ public:
+ struct span
+ {
+ int16 x;
+ int16 len;
+ };
+
+ typedef const span* const_iterator;
+
+ ~scanline_bin()
+ {
+ delete [] m_spans;
+ }
+
+ scanline_bin() :
+ m_max_len(0),
+ m_last_x(0x7FFF),
+ m_spans(0),
+ m_cur_span(0)
+ {
+ }
+
+ void reset(int min_x, int max_x);
+ void add_cell(int x, unsigned);
+ void add_cells(int x, unsigned len, const void*);
+ void add_span(int x, unsigned len, unsigned);
+ void finalize(int y) { m_y = y; }
+ void reset_spans();
+
+ int y() const { return m_y; }
+ unsigned num_spans() const { return unsigned(m_cur_span - m_spans); }
+ const_iterator begin() const { return m_spans + 1; }
+
+ private:
+ scanline_bin(const scanline_bin&);
+ const scanline_bin operator = (const scanline_bin&);
+
+ unsigned m_max_len;
+ int m_last_x;
+ int m_y;
+ span* m_spans;
+ span* m_cur_span;
+ };
+
+
+ //------------------------------------------------------------------------
+ inline void scanline_bin::reset(int min_x, int max_x)
+ {
+ unsigned max_len = max_x - min_x + 3;
+ if(max_len > m_max_len)
+ {
+ delete [] m_spans;
+ m_spans = new span [max_len];
+ m_max_len = max_len;
+ }
+ m_last_x = 0x7FFF;
+ m_cur_span = m_spans;
+ }
+
+
+ //------------------------------------------------------------------------
+ inline void scanline_bin::reset_spans()
+ {
+ m_last_x = 0x7FFF;
+ m_cur_span = m_spans;
+ }
+
+
+ //------------------------------------------------------------------------
+ inline void scanline_bin::add_cell(int x, unsigned)
+ {
+ if(x == m_last_x+1)
+ {
+ m_cur_span->len++;
+ }
+ else
+ {
+ ++m_cur_span;
+ m_cur_span->x = (int16)x;
+ m_cur_span->len = 1;
+ }
+ m_last_x = x;
+ }
+
+
+ //------------------------------------------------------------------------
+ inline void scanline_bin::add_span(int x, unsigned len, unsigned)
+ {
+ if(x == m_last_x+1)
+ {
+ m_cur_span->len = (int16)(m_cur_span->len + len);
+ }
+ else
+ {
+ ++m_cur_span;
+ m_cur_span->x = (int16)x;
+ m_cur_span->len = (int16)len;
+ }
+ m_last_x = x + len - 1;
+ }
+
+ //------------------------------------------------------------------------
+ inline void scanline_bin::add_cells(int x, unsigned len, const void*)
+ {
+ add_span(x, len, 0);
+ }
+}
+
+
+#endif
diff --git a/agg/inc/agg_scanline_boolean_algebra.h b/agg/inc/agg_scanline_boolean_algebra.h
new file mode 100755
index 000000000000..7f1a3c5ba774
--- /dev/null
+++ b/agg/inc/agg_scanline_boolean_algebra.h
@@ -0,0 +1,1559 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SCANLINE_BOOLEAN_ALGEBRA_INCLUDED
+#define AGG_SCANLINE_BOOLEAN_ALGEBRA_INCLUDED
+
+#include <stdlib.h>
+#include <math.h>
+#include "agg_basics.h"
+
+
+namespace agg
+{
+
+ //-----------------------------------------------sbool_combine_spans_bin
+ // Functor.
+ // Combine two binary encoded spans, i.e., when we don't have any
+ // anti-aliasing information, but only X and Length. The function
+ // is compatible with any type of scanlines.
+ //----------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline>
+ struct sbool_combine_spans_bin
+ {
+ void operator () (const typename Scanline1::const_iterator&,
+ const typename Scanline2::const_iterator&,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ sl.add_span(x, len, cover_full);
+ }
+ };
+
+
+
+ //---------------------------------------------sbool_combine_spans_empty
+ // Functor.
+ // Combine two spans as empty ones. The functor does nothing
+ // and is used to XOR binary spans.
+ //----------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline>
+ struct sbool_combine_spans_empty
+ {
+ void operator () (const typename Scanline1::const_iterator&,
+ const typename Scanline2::const_iterator&,
+ int, unsigned,
+ Scanline&) const
+ {}
+ };
+
+
+
+ //--------------------------------------------------sbool_add_span_empty
+ // Functor.
+ // Add nothing. Used in conbine_shapes_sub
+ //----------------
+ template<class Scanline1,
+ class Scanline>
+ struct sbool_add_span_empty
+ {
+ void operator () (const typename Scanline1::const_iterator&,
+ int, unsigned,
+ Scanline&) const
+ {}
+ };
+
+
+ //----------------------------------------------------sbool_add_span_bin
+ // Functor.
+ // Add a binary span
+ //----------------
+ template<class Scanline1,
+ class Scanline>
+ struct sbool_add_span_bin
+ {
+ void operator () (const typename Scanline1::const_iterator&,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ sl.add_span(x, len, cover_full);
+ }
+ };
+
+
+
+
+ //-----------------------------------------------------sbool_add_span_aa
+ // Functor.
+ // Add an anti-aliased span
+ // anti-aliasing information, but only X and Length. The function
+ // is compatible with any type of scanlines.
+ //----------------
+ template<class Scanline1,
+ class Scanline>
+ struct sbool_add_span_aa
+ {
+ void operator () (const typename Scanline1::const_iterator& span,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ if(span->len < 0)
+ {
+ sl.add_span(x, len, *span->covers);
+ }
+ else
+ if(span->len > 0)
+ {
+ const typename Scanline1::cover_type* covers = span->covers;
+ if(span->x < x) covers += x - span->x;
+ sl.add_cells(x, len, covers);
+ }
+ }
+ };
+
+
+
+
+ //----------------------------------------------sbool_intersect_spans_aa
+ // Functor.
+ // Intersect two spans preserving the anti-aliasing information.
+ // The result is added to the "sl" scanline.
+ //------------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ unsigned CoverShift = cover_shift>
+ struct sbool_intersect_spans_aa
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1,
+ cover_full = cover_mask
+ };
+
+
+ void operator () (const typename Scanline1::const_iterator& span1,
+ const typename Scanline2::const_iterator& span2,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ unsigned cover;
+ const typename Scanline1::cover_type* covers1;
+ const typename Scanline2::cover_type* covers2;
+
+ // Calculate the operation code and choose the
+ // proper combination algorithm.
+ // 0 = Both spans are of AA type
+ // 1 = span1 is solid, span2 is AA
+ // 2 = span1 is AA, span2 is solid
+ // 3 = Both spans are of solid type
+ //-----------------
+ switch((span1->len < 0) | ((span2->len < 0) << 1))
+ {
+ case 0: // Both are AA spans
+ covers1 = span1->covers;
+ covers2 = span2->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = *covers1++ * *covers2++;
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ break;
+
+ case 1: // span1 is solid, span2 is AA
+ covers2 = span2->covers;
+ if(span2->x < x) covers2 += x - span2->x;
+ if(*(span1->covers) == cover_full)
+ {
+ sl.add_cells(x, len, covers2);
+ }
+ else
+ {
+ do
+ {
+ cover = *(span1->covers) * *covers2++;
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ }
+ break;
+
+ case 2: // span1 is AA, span2 is solid
+ covers1 = span1->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(*(span2->covers) == cover_full)
+ {
+ sl.add_cells(x, len, covers1);
+ }
+ else
+ {
+ do
+ {
+ cover = *covers1++ * *(span2->covers);
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ }
+ break;
+
+ case 3: // Both are solid spans
+ cover = *(span1->covers) * *(span2->covers);
+ sl.add_span(x, len,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ break;
+ }
+ }
+ };
+
+
+
+
+
+
+ //--------------------------------------------------sbool_unite_spans_aa
+ // Functor.
+ // Unite two spans preserving the anti-aliasing information.
+ // The result is added to the "sl" scanline.
+ //------------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ unsigned CoverShift = cover_shift>
+ struct sbool_unite_spans_aa
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1,
+ cover_full = cover_mask
+ };
+
+
+ void operator () (const typename Scanline1::const_iterator& span1,
+ const typename Scanline2::const_iterator& span2,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ unsigned cover;
+ const typename Scanline1::cover_type* covers1;
+ const typename Scanline2::cover_type* covers2;
+
+ // Calculate the operation code and choose the
+ // proper combination algorithm.
+ // 0 = Both spans are of AA type
+ // 1 = span1 is solid, span2 is AA
+ // 2 = span1 is AA, span2 is solid
+ // 3 = Both spans are of solid type
+ //-----------------
+ switch((span1->len < 0) | ((span2->len < 0) << 1))
+ {
+ case 0: // Both are AA spans
+ covers1 = span1->covers;
+ covers2 = span2->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = cover_mask * cover_mask -
+ (cover_mask - *covers1++) *
+ (cover_mask - *covers2++);
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ break;
+
+ case 1: // span1 is solid, span2 is AA
+ covers2 = span2->covers;
+ if(span2->x < x) covers2 += x - span2->x;
+ if(*(span1->covers) == cover_full)
+ {
+ sl.add_span(x, len, cover_full);
+ }
+ else
+ {
+ do
+ {
+ cover = cover_mask * cover_mask -
+ (cover_mask - *(span1->covers)) *
+ (cover_mask - *covers2++);
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ }
+ break;
+
+ case 2: // span1 is AA, span2 is solid
+ covers1 = span1->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(*(span2->covers) == cover_full)
+ {
+ sl.add_span(x, len, cover_full);
+ }
+ else
+ {
+ do
+ {
+ cover = cover_mask * cover_mask -
+ (cover_mask - *covers1++) *
+ (cover_mask - *(span2->covers));
+ sl.add_cell(x++,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ while(--len);
+ }
+ break;
+
+ case 3: // Both are solid spans
+ cover = cover_mask * cover_mask -
+ (cover_mask - *(span1->covers)) *
+ (cover_mask - *(span2->covers));
+ sl.add_span(x, len,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ break;
+ }
+ }
+ };
+
+
+ //---------------------------------------------sbool_xor_formula_linear
+ template<unsigned CoverShift = cover_shift>
+ struct sbool_xor_formula_linear
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1
+ };
+
+ static AGG_INLINE unsigned calculate(unsigned a, unsigned b)
+ {
+ unsigned cover = a + b;
+ if(cover > cover_mask) cover = cover_mask + cover_mask - cover;
+ return cover;
+ }
+ };
+
+
+ //---------------------------------------------sbool_xor_formula_saddle
+ template<unsigned CoverShift = cover_shift>
+ struct sbool_xor_formula_saddle
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1
+ };
+
+ static AGG_INLINE unsigned calculate(unsigned a, unsigned b)
+ {
+ unsigned k = a * b;
+ if(k == cover_mask * cover_mask) return 0;
+
+ a = (cover_mask * cover_mask - (a << cover_shift) + k) >> cover_shift;
+ b = (cover_mask * cover_mask - (b << cover_shift) + k) >> cover_shift;
+ return cover_mask - ((a * b) >> cover_shift);
+ }
+ };
+
+
+ //-------------------------------------------sbool_xor_formula_abs_diff
+ struct sbool_xor_formula_abs_diff
+ {
+ static AGG_INLINE unsigned calculate(unsigned a, unsigned b)
+ {
+ return unsigned(abs(int(a) - int(b)));
+ }
+ };
+
+
+
+ //----------------------------------------------------sbool_xor_spans_aa
+ // Functor.
+ // XOR two spans preserving the anti-aliasing information.
+ // The result is added to the "sl" scanline.
+ //------------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class XorFormula,
+ unsigned CoverShift = cover_shift>
+ struct sbool_xor_spans_aa
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1,
+ cover_full = cover_mask
+ };
+
+
+ void operator () (const typename Scanline1::const_iterator& span1,
+ const typename Scanline2::const_iterator& span2,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ unsigned cover;
+ const typename Scanline1::cover_type* covers1;
+ const typename Scanline2::cover_type* covers2;
+
+ // Calculate the operation code and choose the
+ // proper combination algorithm.
+ // 0 = Both spans are of AA type
+ // 1 = span1 is solid, span2 is AA
+ // 2 = span1 is AA, span2 is solid
+ // 3 = Both spans are of solid type
+ //-----------------
+ switch((span1->len < 0) | ((span2->len < 0) << 1))
+ {
+ case 0: // Both are AA spans
+ covers1 = span1->covers;
+ covers2 = span2->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = XorFormula::calculate(*covers1++, *covers2++);
+ if(cover) sl.add_cell(x, cover);
+ ++x;
+ }
+ while(--len);
+ break;
+
+ case 1: // span1 is solid, span2 is AA
+ covers2 = span2->covers;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = XorFormula::calculate(*(span1->covers), *covers2++);
+ if(cover) sl.add_cell(x, cover);
+ ++x;
+ }
+ while(--len);
+ break;
+
+ case 2: // span1 is AA, span2 is solid
+ covers1 = span1->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ do
+ {
+ cover = XorFormula::calculate(*covers1++, *(span2->covers));
+ if(cover) sl.add_cell(x, cover);
+ ++x;
+ }
+ while(--len);
+ break;
+
+ case 3: // Both are solid spans
+ cover = XorFormula::calculate(*(span1->covers), *(span2->covers));
+ if(cover) sl.add_span(x, len, cover);
+ break;
+
+ }
+ }
+ };
+
+
+
+
+
+ //-----------------------------------------------sbool_subtract_spans_aa
+ // Functor.
+ // Unite two spans preserving the anti-aliasing information.
+ // The result is added to the "sl" scanline.
+ //------------------
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ unsigned CoverShift = cover_shift>
+ struct sbool_subtract_spans_aa
+ {
+ enum
+ {
+ cover_shift = CoverShift,
+ cover_size = 1 << cover_shift,
+ cover_mask = cover_size - 1,
+ cover_full = cover_mask
+ };
+
+
+ void operator () (const typename Scanline1::const_iterator& span1,
+ const typename Scanline2::const_iterator& span2,
+ int x, unsigned len,
+ Scanline& sl) const
+ {
+ unsigned cover;
+ const typename Scanline1::cover_type* covers1;
+ const typename Scanline2::cover_type* covers2;
+
+ // Calculate the operation code and choose the
+ // proper combination algorithm.
+ // 0 = Both spans are of AA type
+ // 1 = span1 is solid, span2 is AA
+ // 2 = span1 is AA, span2 is solid
+ // 3 = Both spans are of solid type
+ //-----------------
+ switch((span1->len < 0) | ((span2->len < 0) << 1))
+ {
+ case 0: // Both are AA spans
+ covers1 = span1->covers;
+ covers2 = span2->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = *covers1++ * (cover_mask - *covers2++);
+ if(cover)
+ {
+ sl.add_cell(x,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ ++x;
+ }
+ while(--len);
+ break;
+
+ case 1: // span1 is solid, span2 is AA
+ covers2 = span2->covers;
+ if(span2->x < x) covers2 += x - span2->x;
+ do
+ {
+ cover = *(span1->covers) * (cover_mask - *covers2++);
+ if(cover)
+ {
+ sl.add_cell(x,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ ++x;
+ }
+ while(--len);
+ break;
+
+ case 2: // span1 is AA, span2 is solid
+ covers1 = span1->covers;
+ if(span1->x < x) covers1 += x - span1->x;
+ if(*(span2->covers) != cover_full)
+ {
+ do
+ {
+ cover = *covers1++ * (cover_mask - *(span2->covers));
+ if(cover)
+ {
+ sl.add_cell(x,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ ++x;
+ }
+ while(--len);
+ }
+ break;
+
+ case 3: // Both are solid spans
+ cover = *(span1->covers) * (cover_mask - *(span2->covers));
+ if(cover)
+ {
+ sl.add_span(x, len,
+ (cover == cover_full * cover_full) ?
+ cover_full :
+ (cover >> cover_shift));
+ }
+ break;
+ }
+ }
+ };
+
+
+
+
+
+
+ //--------------------------------------------sbool_add_spans_and_render
+ template<class Scanline1,
+ class Scanline,
+ class Renderer,
+ class AddSpanFunctor>
+ void sbool_add_spans_and_render(const Scanline1& sl1,
+ Scanline& sl,
+ Renderer& ren,
+ AddSpanFunctor add_span)
+ {
+ sl.reset_spans();
+ typename Scanline::const_iterator span = sl1.begin();
+ unsigned num_spans = sl1.num_spans();
+ do
+ {
+ add_span(span, span->x, abs((int)span->len), sl);
+ ++span;
+ }
+ while(--num_spans);
+ sl.finalize(sl1.y());
+ ren.render(sl);
+ }
+
+
+
+
+
+
+
+ //---------------------------------------------sbool_intersect_scanlines
+ // Intersect two scanlines, "sl1" and "sl2" and generate a new "sl" one.
+ // The combine_spans functor can be of type sbool_combine_spans_bin or
+ // sbool_intersect_spans_aa. First is a general functor to combine
+ // two spans without Anti-Aliasing, the second preserves the AA
+ // information, but works slower
+ //
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class CombineSpansFunctor>
+ void sbool_intersect_scanlines(const Scanline1& sl1,
+ const Scanline2& sl2,
+ Scanline& sl,
+ CombineSpansFunctor combine_spans)
+ {
+ sl.reset_spans();
+
+ unsigned num1 = sl1.num_spans();
+ if(num1 == 0) return;
+
+ unsigned num2 = sl2.num_spans();
+ if(num2 == 0) return;
+
+ typename Scanline::const_iterator span1 = sl1.begin();
+ typename Scanline::const_iterator span2 = sl2.begin();
+
+ while(num1 && num2)
+ {
+ int xb1 = span1->x;
+ int xb2 = span2->x;
+ int xe1 = xb1 + abs((int)span1->len) - 1;
+ int xe2 = xb2 + abs((int)span2->len) - 1;
+
+ // Determine what spans we should advance in the next step
+ // The span with the least ending X should be advanced
+ // advance_both is just an optimization when we ending
+ // coordinates are the same and we can advance both
+ //--------------
+ bool advance_span1 = xe1 < xe2;
+ bool advance_both = xe1 == xe2;
+
+ // Find the intersection of the spans
+ // and check if they intersect
+ //--------------
+ if(xb1 < xb2) xb1 = xb2;
+ if(xe1 > xe2) xe1 = xe2;
+ if(xb1 <= xe1)
+ {
+ combine_spans(span1, span2, xb1, xe1 - xb1 + 1, sl);
+ }
+
+ // Advance the spans
+ //--------------
+ if(advance_both)
+ {
+ --num1;
+ --num2;
+ ++span1;
+ ++span2;
+ }
+ else
+ {
+ if(advance_span1)
+ {
+ --num1;
+ ++span1;
+ }
+ else
+ {
+ --num2;
+ ++span2;
+ }
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+ //------------------------------------------------sbool_intersect_shapes
+ // Intersect the scanline shapes. Here the "Scanline Generator"
+ // abstraction is used. ScanlineGen1 and ScanlineGen2 are
+ // the generators, and can be of type rasterizer_scanline_aa<>.
+ // There function requires three scanline containers that can be of
+ // different types.
+ // "sl1" and "sl2" are used to retrieve scanlines from the generators,
+ // "sl" is ised as the resulting scanline to render it.
+ // The external "sl1" and "sl2" are used only for the sake of
+ // optimization and reusing of the scanline objects.
+ // the function calls sbool_intersect_scanlines with CombineSpansFunctor
+ // as the last argument. See sbool_intersect_scanlines for details.
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer,
+ class CombineSpansFunctor>
+ void sbool_intersect_shapes(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren,
+ CombineSpansFunctor combine_spans)
+ {
+ // Prepare the scanline generators.
+ // If anyone of them doesn't contain
+ // any scanlines, then return.
+ //-----------------
+ if(!sg1.rewind_scanlines()) return;
+ if(!sg2.rewind_scanlines()) return;
+
+ // Get the bounding boxes
+ //----------------
+ rect r1(sg1.min_x(), sg1.min_y(), sg1.max_x(), sg1.max_y());
+ rect r2(sg2.min_x(), sg2.min_y(), sg2.max_x(), sg2.max_y());
+
+ // Calculate the intersection of the bounding
+ // boxes and return if they don't intersect.
+ //-----------------
+ rect ir = intersect_rectangles(r1, r2);
+ if(!ir.is_valid()) return;
+
+ // Reset the scanlines and get two first ones
+ //-----------------
+ sl.reset(ir.x1, ir.x2);
+ sl1.reset(sg1.min_x(), sg1.max_x());
+ sl2.reset(sg2.min_x(), sg2.max_x());
+ if(!sg1.sweep_scanline(sl1)) return;
+ if(!sg2.sweep_scanline(sl2)) return;
+
+ ren.prepare(unsigned(ir.x2 - ir.x1 + 2));
+
+ // The main loop
+ // Here we synchronize the scanlines with
+ // the same Y coordinate, ignoring all other ones.
+ // Only scanlines having the same Y-coordinate
+ // are to be combined.
+ //-----------------
+ for(;;)
+ {
+ while(sl1.y() < sl2.y())
+ {
+ if(!sg1.sweep_scanline(sl1)) return;
+ }
+ while(sl2.y() < sl1.y())
+ {
+ if(!sg2.sweep_scanline(sl2)) return;
+ }
+
+ if(sl1.y() == sl2.y())
+ {
+ // The Y coordinates are the same.
+ // Combine the scanlines, render if they contain any spans,
+ // and advance both generators to the next scanlines
+ //----------------------
+ sbool_intersect_scanlines(sl1, sl2, sl, combine_spans);
+ if(sl.num_spans())
+ {
+ sl.finalize(sl1.y());
+ ren.render(sl);
+ }
+ if(!sg1.sweep_scanline(sl1)) return;
+ if(!sg2.sweep_scanline(sl2)) return;
+ }
+ }
+ }
+
+
+
+
+
+
+
+ //-------------------------------------------------sbool_unite_scanlines
+ // Unite two scanlines, "sl1" and "sl2" and generate a new "sl" one.
+ // The combine_spans functor can be of type sbool_combine_spans_bin or
+ // sbool_intersect_spans_aa. First is a general functor to combine
+ // two spans without Anti-Aliasing, the second preserves the AA
+ // information, but works slower
+ //
+ template<class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class AddSpanFunctor1,
+ class AddSpanFunctor2,
+ class CombineSpansFunctor>
+ void sbool_unite_scanlines(const Scanline1& sl1,
+ const Scanline2& sl2,
+ Scanline& sl,
+ AddSpanFunctor1 add_span1,
+ AddSpanFunctor2 add_span2,
+ CombineSpansFunctor combine_spans)
+ {
+ sl.reset_spans();
+
+ unsigned num1 = sl1.num_spans();
+ unsigned num2 = sl2.num_spans();
+
+ typename Scanline::const_iterator span1;
+ typename Scanline::const_iterator span2;
+
+ enum { invalid_b = 0xFFFFFFF, invalid_e = invalid_b - 1 };
+
+ // Initialize the spans as invalid
+ //---------------
+ int xb1 = invalid_b;
+ int xb2 = invalid_b;
+ int xe1 = invalid_e;
+ int xe2 = invalid_e;
+
+ // Initialize span1 if there are spans
+ //---------------
+ if(num1)
+ {
+ span1 = sl1.begin();
+ xb1 = span1->x;
+ xe1 = xb1 + abs((int)span1->len) - 1;
+ --num1;
+ }
+
+ // Initialize span2 if there are spans
+ //---------------
+ if(num2)
+ {
+ span2 = sl2.begin();
+ xb2 = span2->x;
+ xe2 = xb2 + abs((int)span2->len) - 1;
+ --num2;
+ }
+
+
+ for(;;)
+ {
+ // Retrieve a new span1 if it's invalid
+ //----------------
+ if(num1 && xb1 > xe1)
+ {
+ --num1;
+ ++span1;
+ xb1 = span1->x;
+ xe1 = xb1 + abs((int)span1->len) - 1;
+ }
+
+ // Retrieve a new span2 if it's invalid
+ //----------------
+ if(num2 && xb2 > xe2)
+ {
+ --num2;
+ ++span2;
+ xb2 = span2->x;
+ xe2 = xb2 + abs((int)span2->len) - 1;
+ }
+
+ if(xb1 > xe1 && xb2 > xe2) break;
+
+ // Calculate the intersection
+ //----------------
+ int xb = xb1;
+ int xe = xe1;
+ if(xb < xb2) xb = xb2;
+ if(xe > xe2) xe = xe2;
+ int len = xe - xb + 1; // The length of the intersection
+ if(len > 0)
+ {
+ // The spans intersect,
+ // add the beginning of the span
+ //----------------
+ if(xb1 < xb2)
+ {
+ add_span1(span1, xb1, xb2 - xb1, sl);
+ xb1 = xb2;
+ }
+ else
+ if(xb2 < xb1)
+ {
+ add_span2(span2, xb2, xb1 - xb2, sl);
+ xb2 = xb1;
+ }
+
+ // Add the combination part of the spans
+ //----------------
+ combine_spans(span1, span2, xb, len, sl);
+
+
+ // Invalidate the fully processed span or both
+ //----------------
+ if(xe1 < xe2)
+ {
+ // Invalidate span1 and eat
+ // the processed part of span2
+ //--------------
+ xb1 = invalid_b;
+ xe1 = invalid_e;
+ xb2 += len;
+ }
+ else
+ if(xe2 < xe1)
+ {
+ // Invalidate span2 and eat
+ // the processed part of span1
+ //--------------
+ xb2 = invalid_b;
+ xe2 = invalid_e;
+ xb1 += len;
+ }
+ else
+ {
+ xb1 = invalid_b; // Invalidate both
+ xb2 = invalid_b;
+ xe1 = invalid_e;
+ xe2 = invalid_e;
+ }
+ }
+ else
+ {
+ // The spans do not intersect
+ //--------------
+ if(xb1 < xb2)
+ {
+ // Advance span1
+ //---------------
+ if(xb1 <= xe1)
+ {
+ add_span1(span1, xb1, xe1 - xb1 + 1, sl);
+ }
+ xb1 = invalid_b; // Invalidate
+ xe1 = invalid_e;
+ }
+ else
+ {
+ // Advance span2
+ //---------------
+ if(xb2 <= xe2)
+ {
+ add_span2(span2, xb2, xe2 - xb2 + 1, sl);
+ }
+ xb2 = invalid_b; // Invalidate
+ xe2 = invalid_e;
+ }
+ }
+ }
+ }
+
+
+
+
+ //----------------------------------------------------sbool_unite_shapes
+ // Unite the scanline shapes. Here the "Scanline Generator"
+ // abstraction is used. ScanlineGen1 and ScanlineGen2 are
+ // the generators, and can be of type rasterizer_scanline_aa<>.
+ // There function requires three scanline containers that can be
+ // of different type.
+ // "sl1" and "sl2" are used to retrieve scanlines from the generators,
+ // "sl" is ised as the resulting scanline to render it.
+ // The external "sl1" and "sl2" are used only for the sake of
+ // optimization and reusing of the scanline objects.
+ // the function calls sbool_unite_scanlines with CombineSpansFunctor
+ // as the last argument. See sbool_unite_scanlines for details.
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer,
+ class AddSpanFunctor1,
+ class AddSpanFunctor2,
+ class CombineSpansFunctor>
+ void sbool_unite_shapes(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren,
+ AddSpanFunctor1 add_span1,
+ AddSpanFunctor2 add_span2,
+ CombineSpansFunctor combine_spans)
+ {
+ // Prepare the scanline generators.
+ // If anyone of them doesn't contain
+ // any scanlines, then return.
+ //-----------------
+ bool flag1 = sg1.rewind_scanlines();
+ bool flag2 = sg2.rewind_scanlines();
+ if(!flag1 && !flag2) return;
+
+ // Get the bounding boxes
+ //----------------
+ rect r1(sg1.min_x(), sg1.min_y(), sg1.max_x(), sg1.max_y());
+ rect r2(sg2.min_x(), sg2.min_y(), sg2.max_x(), sg2.max_y());
+
+ // Calculate the union of the bounding boxes
+ //-----------------
+ rect ur = unite_rectangles(r1, r2);
+ if(!ur.is_valid()) return;
+
+ ren.prepare(unsigned(ur.x2 - ur.x2 + 2));
+
+ // Reset the scanlines and get two first ones
+ //-----------------
+ sl.reset(ur.x1, ur.x2);
+ if(flag1)
+ {
+ sl1.reset(sg1.min_x(), sg1.max_x());
+ flag1 = sg1.sweep_scanline(sl1);
+ }
+
+ if(flag2)
+ {
+ sl2.reset(sg2.min_x(), sg2.max_x());
+ flag2 = sg2.sweep_scanline(sl2);
+ }
+
+ // The main loop
+ // Here we synchronize the scanlines with
+ // the same Y coordinate.
+ //-----------------
+ while(flag1 || flag2)
+ {
+ if(flag1 && flag2)
+ {
+ if(sl1.y() == sl2.y())
+ {
+ // The Y coordinates are the same.
+ // Combine the scanlines, render if they contain any spans,
+ // and advance both generators to the next scanlines
+ //----------------------
+ sbool_unite_scanlines(sl1, sl2, sl,
+ add_span1, add_span2, combine_spans);
+ if(sl.num_spans())
+ {
+ sl.finalize(sl1.y());
+ ren.render(sl);
+ }
+ flag1 = sg1.sweep_scanline(sl1);
+ flag2 = sg2.sweep_scanline(sl2);
+ }
+ else
+ {
+ if(sl1.y() < sl2.y())
+ {
+ sbool_add_spans_and_render(sl1, sl, ren, add_span1);
+ flag1 = sg1.sweep_scanline(sl1);
+ }
+ else
+ {
+ sbool_add_spans_and_render(sl2, sl, ren, add_span2);
+ flag2 = sg2.sweep_scanline(sl2);
+ }
+ }
+ }
+ else
+ {
+ if(flag1)
+ {
+ sbool_add_spans_and_render(sl1, sl, ren, add_span1);
+ flag1 = sg1.sweep_scanline(sl1);
+ }
+ if(flag2)
+ {
+ sbool_add_spans_and_render(sl2, sl, ren, add_span2);
+ flag2 = sg2.sweep_scanline(sl2);
+ }
+ }
+ }
+ }
+
+
+
+
+
+
+
+
+ //-------------------------------------------------sbool_subtract_shapes
+ // Subtract the scanline shapes, "sg1-sg2". Here the "Scanline Generator"
+ // abstraction is used. ScanlineGen1 and ScanlineGen2 are
+ // the generators, and can be of type rasterizer_scanline_aa<>.
+ // There function requires three scanline containers that can be of
+ // different types.
+ // "sl1" and "sl2" are used to retrieve scanlines from the generators,
+ // "sl" is ised as the resulting scanline to render it.
+ // The external "sl1" and "sl2" are used only for the sake of
+ // optimization and reusing of the scanline objects.
+ // the function calls sbool_intersect_scanlines with CombineSpansFunctor
+ // as the last argument. See combine_scanlines_sub for details.
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer,
+ class AddSpanFunctor1,
+ class CombineSpansFunctor>
+ void sbool_subtract_shapes(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren,
+ AddSpanFunctor1 add_span1,
+ CombineSpansFunctor combine_spans)
+ {
+ // Prepare the scanline generators.
+ // Here "sg1" is master, "sg2" is slave.
+ //-----------------
+ if(!sg1.rewind_scanlines()) return;
+ bool flag2 = sg2.rewind_scanlines();
+
+ // Get the bounding box
+ //----------------
+ rect r1(sg1.min_x(), sg1.min_y(), sg1.max_x(), sg1.max_y());
+
+ // Reset the scanlines and get two first ones
+ //-----------------
+ sl.reset(sg1.min_x(), sg1.max_x());
+ sl1.reset(sg1.min_x(), sg1.max_x());
+ sl2.reset(sg2.min_x(), sg2.max_x());
+ if(!sg1.sweep_scanline(sl1)) return;
+
+ if(flag2) flag2 = sg2.sweep_scanline(sl2);
+
+ ren.prepare(unsigned(sg1.max_x() - sg1.min_x() + 2));
+
+ // A fake span2 processor
+ sbool_add_span_empty<Scanline1, Scanline> add_span2;
+
+ // The main loop
+ // Here we synchronize the scanlines with
+ // the same Y coordinate, ignoring all other ones.
+ // Only scanlines having the same Y-coordinate
+ // are to be combined.
+ //-----------------
+ bool flag1 = true;
+ do
+ {
+ // Synchronize "slave" with "master"
+ //-----------------
+ while(flag2 && sl2.y() < sl1.y())
+ {
+ flag2 = sg2.sweep_scanline(sl2);
+ }
+
+
+ if(flag2 && sl2.y() == sl1.y())
+ {
+ // The Y coordinates are the same.
+ // Combine the scanlines and render if they contain any spans.
+ //----------------------
+ sbool_unite_scanlines(sl1, sl2, sl, add_span1, add_span2, combine_spans);
+ if(sl.num_spans())
+ {
+ sl.finalize(sl1.y());
+ ren.render(sl);
+ }
+ }
+ else
+ {
+ sbool_add_spans_and_render(sl1, sl, ren, add_span1);
+ }
+
+ // Advance the "master"
+ flag1 = sg1.sweep_scanline(sl1);
+ }
+ while(flag1);
+ }
+
+
+
+
+
+
+
+ //---------------------------------------------sbool_intersect_shapes_aa
+ // Intersect two anti-aliased scanline shapes.
+ // Here the "Scanline Generator" abstraction is used.
+ // ScanlineGen1 and ScanlineGen2 are the generators, and can be of
+ // type rasterizer_scanline_aa<>. There function requires three
+ // scanline containers that can be of different types.
+ // "sl1" and "sl2" are used to retrieve scanlines from the generators,
+ // "sl" is ised as the resulting scanline to render it.
+ // The external "sl1" and "sl2" are used only for the sake of
+ // optimization and reusing of the scanline objects.
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_intersect_shapes_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_intersect_spans_aa<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_intersect_shapes(sg1, sg2, sl1, sl2, sl, ren, combine_functor);
+ }
+
+
+
+
+
+ //--------------------------------------------sbool_intersect_shapes_bin
+ // Intersect two binary scanline shapes (without anti-aliasing).
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_intersect_shapes_bin(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_combine_spans_bin<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_intersect_shapes(sg1, sg2, sl1, sl2, sl, ren, combine_functor);
+ }
+
+
+
+
+
+ //-------------------------------------------------sbool_unite_shapes_aa
+ // Unite two anti-aliased scanline shapes
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_unite_shapes_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_aa<Scanline1, Scanline> add_functor1;
+ sbool_add_span_aa<Scanline2, Scanline> add_functor2;
+ sbool_unite_spans_aa<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+
+
+
+ //------------------------------------------------sbool_unite_shapes_bin
+ // Unite two binary scanline shapes (without anti-aliasing).
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_unite_shapes_bin(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_bin<Scanline1, Scanline> add_functor1;
+ sbool_add_span_bin<Scanline2, Scanline> add_functor2;
+ sbool_combine_spans_bin<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+
+
+
+
+
+
+
+ //---------------------------------------------------sbool_xor_shapes_aa
+ // Apply eXclusive OR to two anti-aliased scanline shapes. There's
+ // a modified "Linear" XOR used instead of classical "Saddle" one.
+ // The reason is to have the result absolutely conststent with what
+ // the scanline rasterizer produces.
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_xor_shapes_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_aa<Scanline1, Scanline> add_functor1;
+ sbool_add_span_aa<Scanline2, Scanline> add_functor2;
+ sbool_xor_spans_aa<Scanline1, Scanline2, Scanline,
+ sbool_xor_formula_linear<> > combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+
+ //------------------------------------------sbool_xor_shapes_saddle_aa
+ // Apply eXclusive OR to two anti-aliased scanline shapes.
+ // There's the classical "Saddle" used to calculate the
+ // Anti-Aliasing values, that is:
+ // a XOR b : 1-((1-a+a*b)*(1-b+a*b))
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_xor_shapes_saddle_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_aa<Scanline1, Scanline> add_functor1;
+ sbool_add_span_aa<Scanline2, Scanline> add_functor2;
+ sbool_xor_spans_aa<Scanline1,
+ Scanline2,
+ Scanline,
+ sbool_xor_formula_saddle<> > combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+ //--------------------------------------sbool_xor_shapes_abs_diff_aa
+ // Apply eXclusive OR to two anti-aliased scanline shapes.
+ // There's the absolute difference used to calculate
+ // Anti-Aliasing values, that is:
+ // a XOR b : abs(a-b)
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_xor_shapes_abs_diff_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_aa<Scanline1, Scanline> add_functor1;
+ sbool_add_span_aa<Scanline2, Scanline> add_functor2;
+ sbool_xor_spans_aa<Scanline1,
+ Scanline2,
+ Scanline,
+ sbool_xor_formula_abs_diff> combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+
+ //--------------------------------------------------sbool_xor_shapes_bin
+ // Apply eXclusive OR to two binary scanline shapes (without anti-aliasing).
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_xor_shapes_bin(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_bin<Scanline1, Scanline> add_functor1;
+ sbool_add_span_bin<Scanline2, Scanline> add_functor2;
+ sbool_combine_spans_empty<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_unite_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor1, add_functor2, combine_functor);
+ }
+
+
+
+
+
+
+ //----------------------------------------------sbool_subtract_shapes_aa
+ // Subtract shapes "sg1-sg2" with anti-aliasing
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_subtract_shapes_aa(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_aa<Scanline1, Scanline> add_functor;
+ sbool_subtract_spans_aa<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_subtract_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor, combine_functor);
+ }
+
+
+
+
+
+ //---------------------------------------------sbool_subtract_shapes_bin
+ // Subtract binary shapes "sg1-sg2" without anti-aliasing
+ // See intersect_shapes_aa for more comments
+ //----------
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_subtract_shapes_bin(ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ sbool_add_span_bin<Scanline1, Scanline> add_functor;
+ sbool_combine_spans_empty<Scanline1, Scanline2, Scanline> combine_functor;
+ sbool_subtract_shapes(sg1, sg2, sl1, sl2, sl, ren,
+ add_functor, combine_functor);
+ }
+
+
+
+
+
+
+ //------------------------------------------------------------sbool_op_e
+ enum sbool_op_e
+ {
+ sbool_or, //----sbool_or
+ sbool_and, //----sbool_and
+ sbool_xor, //----sbool_xor
+ sbool_xor_saddle, //----sbool_xor_saddle
+ sbool_xor_abs_diff, //----sbool_xor_abs_diff
+ sbool_a_minus_b, //----sbool_a_minus_b
+ sbool_b_minus_a //----sbool_b_minus_a
+ };
+
+
+
+
+
+
+ //----------------------------------------------sbool_combine_shapes_bin
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_combine_shapes_bin(sbool_op_e op,
+ ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ switch(op)
+ {
+ case sbool_or : sbool_unite_shapes_bin (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_and : sbool_intersect_shapes_bin(sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_xor :
+ case sbool_xor_saddle :
+ case sbool_xor_abs_diff: sbool_xor_shapes_bin (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_a_minus_b : sbool_subtract_shapes_bin (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_b_minus_a : sbool_subtract_shapes_bin (sg2, sg1, sl2, sl1, sl, ren); break;
+ }
+ }
+
+
+
+
+ //-----------------------------------------------sbool_combine_shapes_aa
+ template<class ScanlineGen1,
+ class ScanlineGen2,
+ class Scanline1,
+ class Scanline2,
+ class Scanline,
+ class Renderer>
+ void sbool_combine_shapes_aa(sbool_op_e op,
+ ScanlineGen1& sg1, ScanlineGen2& sg2,
+ Scanline1& sl1, Scanline2& sl2,
+ Scanline& sl, Renderer& ren)
+ {
+ switch(op)
+ {
+ case sbool_or : sbool_unite_shapes_aa (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_and : sbool_intersect_shapes_aa (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_xor : sbool_xor_shapes_aa (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_xor_saddle : sbool_xor_shapes_saddle_aa (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_xor_abs_diff: sbool_xor_shapes_abs_diff_aa(sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_a_minus_b : sbool_subtract_shapes_aa (sg1, sg2, sl1, sl2, sl, ren); break;
+ case sbool_b_minus_a : sbool_subtract_shapes_aa (sg2, sg1, sl2, sl1, sl, ren); break;
+ }
+ }
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_scanline_p.h b/agg/inc/agg_scanline_p.h
new file mode 100755
index 000000000000..f217998578a1
--- /dev/null
+++ b/agg/inc/agg_scanline_p.h
@@ -0,0 +1,197 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class scanline_p - a general purpose scanline container with packed spans.
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SCANLINE_P_INCLUDED
+#define AGG_SCANLINE_P_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //==============================================================scanline_p
+ //
+ // This is a general purpose scaline container which supports the interface
+ // used in the rasterizer::render(). See description of agg_scanline_u
+ // for details.
+ //
+ //------------------------------------------------------------------------
+ template<class T> class scanline_p
+ {
+ public:
+ typedef T cover_type;
+
+ struct span
+ {
+ int16 x;
+ int16 len; // If negative, it's a solid span, covers is valid
+ const T* covers;
+ };
+
+ typedef span* iterator;
+ typedef const span* const_iterator;
+
+ ~scanline_p()
+ {
+ delete [] m_spans;
+ delete [] m_covers;
+ }
+
+ scanline_p() :
+ m_max_len(0),
+ m_last_x(0x7FFFFFF0),
+ m_covers(0),
+ m_cover_ptr(0),
+ m_spans(0),
+ m_cur_span(0)
+ {
+ }
+
+ void reset(int min_x, int max_x);
+ void add_cell(int x, unsigned cover);
+ void add_cells(int x, unsigned len, const T* covers);
+ void add_span(int x, unsigned len, unsigned cover);
+ void finalize(int y_) { m_y = y_; }
+ void reset_spans();
+
+ int y() const { return m_y; }
+ unsigned num_spans() const { return unsigned(m_cur_span - m_spans); }
+ const_iterator begin() const { return m_spans + 1; }
+
+ private:
+ scanline_p(const scanline_p<T>&);
+ const scanline_p<T>& operator = (const scanline_p<T>&);
+
+ unsigned m_max_len;
+ int m_last_x;
+ int m_y;
+ T* m_covers;
+ T* m_cover_ptr;
+ span* m_spans;
+ span* m_cur_span;
+ };
+
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void scanline_p<T>::reset(int min_x, int max_x)
+ {
+ unsigned max_len = max_x - min_x + 3;
+ if(max_len > m_max_len)
+ {
+ delete [] m_spans;
+ delete [] m_covers;
+ m_covers = new T [max_len];
+ m_spans = new span [max_len];
+ m_max_len = max_len;
+ }
+ m_last_x = 0x7FFFFFF0;
+ m_cover_ptr = m_covers;
+ m_cur_span = m_spans;
+ m_cur_span->len = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void scanline_p<T>::reset_spans()
+ {
+ m_last_x = 0x7FFFFFF0;
+ m_cover_ptr = m_covers;
+ m_cur_span = m_spans;
+ m_cur_span->len = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void scanline_p<T>::add_cell(int x, unsigned cover)
+ {
+ *m_cover_ptr = (T)cover;
+ if(x == m_last_x+1 && m_cur_span->len > 0)
+ {
+ m_cur_span->len++;
+ }
+ else
+ {
+ m_cur_span++;
+ m_cur_span->covers = m_cover_ptr;
+ m_cur_span->x = (int16)x;
+ m_cur_span->len = 1;
+ }
+ m_last_x = x;
+ m_cover_ptr++;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void scanline_p<T>::add_cells(int x, unsigned len, const T* covers)
+ {
+ memcpy(m_cover_ptr, covers, len * sizeof(T));
+ if(x == m_last_x+1 && m_cur_span->len > 0)
+ {
+ m_cur_span->len += (int16)len;
+ }
+ else
+ {
+ m_cur_span++;
+ m_cur_span->covers = m_cover_ptr;
+ m_cur_span->x = (int16)x;
+ m_cur_span->len = (int16)len;
+ }
+ m_cover_ptr += len;
+ m_last_x = x + len - 1;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T>
+ void scanline_p<T>::add_span(int x, unsigned len, unsigned cover)
+ {
+ if(x == m_last_x+1 &&
+ m_cur_span->len < 0 &&
+ cover == *m_cur_span->covers)
+ {
+ m_cur_span->len -= (int16)len;
+ }
+ else
+ {
+ *m_cover_ptr = (T)cover;
+ m_cur_span++;
+ m_cur_span->covers = m_cover_ptr++;
+ m_cur_span->x = (int16)x;
+ m_cur_span->len = -((int16)len);
+ }
+ m_last_x = x + len - 1;
+ }
+
+
+ //=============================================================scanline_p8
+ typedef scanline_p<int8u> scanline_p8;
+
+ //============================================================scanline_p16
+ typedef scanline_p<int16u> scanline_p16;
+
+ //============================================================scanline_p32
+ typedef scanline_p<int32u> scanline_p32;
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_scanline_storage_aa.h b/agg/inc/agg_scanline_storage_aa.h
new file mode 100755
index 000000000000..3d8b5b946cf9
--- /dev/null
+++ b/agg/inc/agg_scanline_storage_aa.h
@@ -0,0 +1,796 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SCANLINE_STORAGE_AA_INCLUDED
+#define AGG_SCANLINE_STORAGE_AA_INCLUDED
+
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include "agg_array.h"
+#include "agg_render_scanlines.h"
+
+
+namespace agg
+{
+
+ //----------------------------------------------scanline_cell_storage
+ template<class T> class scanline_cell_storage
+ {
+ struct extra_span
+ {
+ unsigned len;
+ T* ptr;
+ };
+
+ public:
+ typedef T value_type;
+
+ //---------------------------------------------------------------
+ ~scanline_cell_storage()
+ {
+ remove_all();
+ }
+
+ //---------------------------------------------------------------
+ scanline_cell_storage() :
+ m_cells(128-2),
+ m_extra_storage()
+ {}
+
+
+ // Copying
+ //---------------------------------------------------------------
+ scanline_cell_storage(const scanline_cell_storage<T>& v) :
+ m_cells(v.m_cells),
+ m_extra_storage()
+ {
+ copy_extra_storage(v);
+ }
+
+ //---------------------------------------------------------------
+ const scanline_cell_storage<T>&
+ operator = (const scanline_cell_storage<T>& v)
+ {
+ remove_all();
+ m_cells = v.m_cells;
+ copy_extra_storage(v);
+ return *this;
+ }
+
+ //---------------------------------------------------------------
+ void remove_all()
+ {
+ int i;
+ for(i = m_extra_storage.size()-1; i >= 0; --i)
+ {
+ delete [] m_extra_storage[(unsigned)i].ptr;
+ }
+ m_extra_storage.remove_all();
+ m_cells.remove_all();
+ }
+
+ //---------------------------------------------------------------
+ int add_cells(const T* cells, unsigned num_cells)
+ {
+ int idx = m_cells.allocate_continuous_block(num_cells);
+ if(idx >= 0)
+ {
+ T* ptr = &m_cells[idx];
+ memcpy(ptr, cells, sizeof(T) * num_cells);
+ return idx;
+ }
+ extra_span s;
+ s.len = num_cells;
+ s.ptr = new T [num_cells];
+ memcpy(s.ptr, cells, sizeof(T) * num_cells);
+ m_extra_storage.add(s);
+ return -int(m_extra_storage.size());
+ }
+
+ //---------------------------------------------------------------
+ const T* operator [] (int idx) const
+ {
+ if(idx >= 0)
+ {
+ if((unsigned)idx >= m_cells.size()) return 0;
+ return &m_cells[(unsigned)idx];
+ }
+ unsigned i = unsigned(-idx - 1);
+ if(i >= m_extra_storage.size()) return 0;
+ return m_extra_storage[i].ptr;
+ }
+
+ //---------------------------------------------------------------
+ T* operator [] (int idx)
+ {
+ if(idx >= 0)
+ {
+ if((unsigned)idx >= m_cells.size()) return 0;
+ return &m_cells[(unsigned)idx];
+ }
+ unsigned i = unsigned(-idx - 1);
+ if(i >= m_extra_storage.size()) return 0;
+ return m_extra_storage[i].ptr;
+ }
+
+ private:
+ void copy_extra_storage(const scanline_cell_storage<T>& v)
+ {
+ unsigned i;
+ for(i = 0; i < v.m_extra_storage.size(); ++i)
+ {
+ const extra_span& src = v.m_extra_storage[i];
+ extra_span dst;
+ dst.len = src.len;
+ dst.ptr = new T [dst.len];
+ memcpy(dst.ptr, src.ptr, dst.len * sizeof(T));
+ m_extra_storage.add(dst);
+ }
+ }
+
+ pod_deque<T, 12> m_cells;
+ pod_deque<extra_span, 6> m_extra_storage;
+ };
+
+
+
+
+
+
+ //-----------------------------------------------scanline_storage_aa
+ template<class T> class scanline_storage_aa
+ {
+ public:
+ typedef T cover_type;
+
+ //---------------------------------------------------------------
+ struct span_data
+ {
+ int16 x;
+ int16 len; // If negative, it's a solid span, covers is valid
+ int covers_id; // The index of the cells in the scanline_cell_storage
+ };
+
+ //---------------------------------------------------------------
+ struct scanline_data
+ {
+ int y;
+ unsigned num_spans;
+ unsigned start_span;
+ };
+
+
+ //---------------------------------------------------------------
+ class embedded_scanline
+ {
+ public:
+
+ //-----------------------------------------------------------
+ class const_iterator
+ {
+ public:
+ struct span
+ {
+ int16 x;
+ int16 len; // If negative, it's a solid span, covers is valid
+ const T* covers;
+ };
+
+ const_iterator(const embedded_scanline& sl) :
+ m_storage(sl.m_storage),
+ m_span_idx(sl.m_scanline.start_span)
+ {
+ init_span();
+ }
+
+ const span& operator*() const { return m_span; }
+ const span* operator->() const { return &m_span; }
+
+ void operator ++ ()
+ {
+ ++m_span_idx;
+ init_span();
+ }
+
+ private:
+ void init_span()
+ {
+ const span_data& s = m_storage->span_by_index(m_span_idx);
+ m_span.x = s.x;
+ m_span.len = s.len;
+ m_span.covers = m_storage->covers_by_index(s.covers_id);
+ }
+
+ const scanline_storage_aa* m_storage;
+ unsigned m_span_idx;
+ span m_span;
+ };
+
+ friend class const_iterator;
+
+
+ //-----------------------------------------------------------
+ embedded_scanline(const scanline_storage_aa& storage) :
+ m_storage(&storage)
+ {
+ init(0);
+ }
+
+ //-----------------------------------------------------------
+ void reset(int, int) {}
+ unsigned num_spans() const { return m_scanline.num_spans; }
+ int y() const { return m_scanline.y; }
+ const_iterator begin() const { return const_iterator(*this); }
+
+ //-----------------------------------------------------------
+ void init(unsigned scanline_idx)
+ {
+ m_scanline_idx = scanline_idx;
+ m_scanline = m_storage->scanline_by_index(m_scanline_idx);
+ }
+
+ private:
+ const scanline_storage_aa* m_storage;
+ scanline_data m_scanline;
+ unsigned m_scanline_idx;
+ };
+
+
+ //---------------------------------------------------------------
+ scanline_storage_aa() :
+ m_covers(),
+ m_spans(256-2), // Block increment size
+ m_scanlines(),
+ m_min_x( 0x7FFFFFFF),
+ m_min_y( 0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF),
+ m_cur_scanline(0)
+ {
+ m_fake_scanline.y = 0;
+ m_fake_scanline.num_spans = 0;
+ m_fake_scanline.start_span = 0;
+ m_fake_span.x = 0;
+ m_fake_span.len = 0;
+ m_fake_span.covers_id = 0;
+ }
+
+ // Renderer Interface
+ //---------------------------------------------------------------
+ void prepare(unsigned)
+ {
+ m_covers.remove_all();
+ m_scanlines.remove_all();
+ m_spans.remove_all();
+ m_min_x = 0x7FFFFFFF;
+ m_min_y = 0x7FFFFFFF;
+ m_max_x = -0x7FFFFFFF;
+ m_max_y = -0x7FFFFFFF;
+ m_cur_scanline = 0;
+ }
+
+ //---------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ scanline_data sl_this;
+
+ int y = sl.y();
+ if(y < m_min_y) m_min_y = y;
+ if(y > m_max_y) m_max_y = y;
+
+ sl_this.y = y;
+ sl_this.num_spans = sl.num_spans();
+ sl_this.start_span = m_spans.size();
+ typename Scanline::const_iterator span_iterator = sl.begin();
+
+ unsigned num_spans = sl_this.num_spans;
+ do
+ {
+ span_data sp;
+
+ sp.x = span_iterator->x;
+ sp.len = span_iterator->len;
+ int len = abs(int(sp.len));
+ sp.covers_id =
+ m_covers.add_cells(span_iterator->covers,
+ unsigned(len));
+ m_spans.add(sp);
+ int x1 = sp.x;
+ int x2 = sp.x + len - 1;
+ if(x1 < m_min_x) m_min_x = x1;
+ if(x2 > m_max_x) m_max_x = x2;
+ ++span_iterator;
+ }
+ while(--num_spans);
+ m_scanlines.add(sl_this);
+ }
+
+
+ //---------------------------------------------------------------
+ // Iterate scanlines interface
+ int min_x() const { return m_min_x; }
+ int min_y() const { return m_min_y; }
+ int max_x() const { return m_max_x; }
+ int max_y() const { return m_max_y; }
+
+ //---------------------------------------------------------------
+ bool rewind_scanlines()
+ {
+ m_cur_scanline = 0;
+ return m_scanlines.size() > 0;
+ }
+
+
+ //---------------------------------------------------------------
+ template<class Scanline> bool sweep_scanline(Scanline& sl)
+ {
+ sl.reset_spans();
+ for(;;)
+ {
+ if(m_cur_scanline >= m_scanlines.size()) return false;
+ const scanline_data& sl_this = m_scanlines[m_cur_scanline];
+
+ unsigned num_spans = sl_this.num_spans;
+ unsigned span_idx = sl_this.start_span;
+ do
+ {
+ const span_data& sp = m_spans[span_idx++];
+ const T* covers = covers_by_index(sp.covers_id);
+ if(sp.len < 0)
+ {
+ sl.add_span(sp.x, unsigned(-sp.len), *covers);
+ }
+ else
+ {
+ sl.add_cells(sp.x, sp.len, covers);
+ }
+ }
+ while(--num_spans);
+ ++m_cur_scanline;
+ if(sl.num_spans())
+ {
+ sl.finalize(sl_this.y);
+ break;
+ }
+ }
+ return true;
+ }
+
+
+ //---------------------------------------------------------------
+ // Specialization for embedded_scanline
+ bool sweep_scanline(embedded_scanline& sl)
+ {
+ do
+ {
+ if(m_cur_scanline >= m_scanlines.size()) return false;
+ sl.init(m_cur_scanline);
+ ++m_cur_scanline;
+ }
+ while(sl.num_spans() == 0);
+ return true;
+ }
+
+ //---------------------------------------------------------------
+ unsigned byte_size() const
+ {
+ unsigned i;
+ unsigned size = sizeof(int16) * 4; // min_x, min_y, max_x, max_y
+
+ for(i = 0; i < m_scanlines.size(); ++i)
+ {
+ size += sizeof(int16) * 3; // scanline size in bytes, Y, num_spans
+
+ const scanline_data& sl_this = m_scanlines[i];
+
+ unsigned num_spans = sl_this.num_spans;
+ unsigned span_idx = sl_this.start_span;
+ do
+ {
+ const span_data& sp = m_spans[span_idx++];
+
+ size += sizeof(int16) * 2; // X, span_len
+ if(sp.len < 0)
+ {
+ size += sizeof(T); // cover
+ }
+ else
+ {
+ size += sizeof(T) * unsigned(sp.len); // covers
+ }
+ }
+ while(--num_spans);
+ }
+ return size;
+ }
+
+
+ //---------------------------------------------------------------
+ static void write_int16(int8u* dst, int16 val)
+ {
+ dst[0] = ((const int8u*)&val)[0];
+ dst[1] = ((const int8u*)&val)[1];
+ }
+
+
+ //---------------------------------------------------------------
+ void serialize(int8u* data) const
+ {
+ unsigned i;
+
+ write_int16(data, int16u(min_x())); // min_x
+ data += sizeof(int16u);
+ write_int16(data, int16u(min_y())); // min_y
+ data += sizeof(int16u);
+ write_int16(data, int16u(max_x())); // max_x
+ data += sizeof(int16u);
+ write_int16(data, int16u(max_y())); // max_y
+ data += sizeof(int16u);
+
+ for(i = 0; i < m_scanlines.size(); ++i)
+ {
+ const scanline_data& sl_this = m_scanlines[i];
+
+ int8u* size_ptr = data;
+ data += sizeof(int16); // Reserve space for scanline size in bytes
+
+ write_int16(data, int16(sl_this.y)); // Y
+ data += sizeof(int16);
+
+ write_int16(data, int16(sl_this.num_spans)); // num_spans
+ data += sizeof(int16);
+
+ unsigned num_spans = sl_this.num_spans;
+ unsigned span_idx = sl_this.start_span;
+ do
+ {
+ const span_data& sp = m_spans[span_idx++];
+ const T* covers = covers_by_index(sp.covers_id);
+
+ write_int16(data, int16(sp.x)); // X
+ data += sizeof(int16);
+
+ write_int16(data, int16(sp.len)); // span_len
+ data += sizeof(int16);
+
+ if(sp.len < 0)
+ {
+ memcpy(data, covers, sizeof(T));
+ data += sizeof(T);
+ }
+ else
+ {
+ memcpy(data, covers, unsigned(sp.len) * sizeof(T));
+ data += sizeof(T) * unsigned(sp.len);
+ }
+ }
+ while(--num_spans);
+ write_int16(size_ptr, int16(unsigned(data - size_ptr)));
+ }
+ }
+
+
+ //---------------------------------------------------------------
+ const scanline_data& scanline_by_index(unsigned i) const
+ {
+ return (i < m_scanlines.size()) ? m_scanlines[i] : m_fake_scanline;
+ }
+
+ //---------------------------------------------------------------
+ const span_data& span_by_index(unsigned i) const
+ {
+ return (i < m_spans.size()) ? m_spans[i] : m_fake_span;
+ }
+
+ //---------------------------------------------------------------
+ const T* covers_by_index(int i) const
+ {
+ return m_covers[i];
+ }
+
+ private:
+ scanline_cell_storage<T> m_covers;
+ pod_deque<span_data, 10> m_spans;
+ pod_deque<scanline_data, 8> m_scanlines;
+ span_data m_fake_span;
+ scanline_data m_fake_scanline;
+ int m_min_x;
+ int m_min_y;
+ int m_max_x;
+ int m_max_y;
+ unsigned m_cur_scanline;
+ };
+
+
+ typedef scanline_storage_aa<int8u> scanline_storage_aa8; //--------scanline_storage_aa8
+ typedef scanline_storage_aa<int16u> scanline_storage_aa16; //--------scanline_storage_aa16
+ typedef scanline_storage_aa<int32u> scanline_storage_aa32; //--------scanline_storage_aa32
+
+
+
+
+ //------------------------------------------serialized_scanlines_adaptor_aa
+ template<class T> class serialized_scanlines_adaptor_aa
+ {
+ public:
+ typedef T cover_type;
+
+ //---------------------------------------------------------------------
+ class embedded_scanline
+ {
+ public:
+ typedef T cover_type;
+
+ //-----------------------------------------------------------------
+ class const_iterator
+ {
+ public:
+ struct span
+ {
+ int16 x;
+ int16 len; // If negative, it's a solid span, "covers" is valid
+ const T* covers;
+ };
+
+ const_iterator(const embedded_scanline& sl) :
+ m_ptr(sl.m_ptr),
+ m_dx(sl.m_dx)
+ {
+ init_span();
+ }
+
+ const span& operator*() const { return m_span; }
+ const span* operator->() const { return &m_span; }
+
+ void operator ++ ()
+ {
+ if(m_span.len < 0)
+ {
+ m_ptr += sizeof(T);
+ }
+ else
+ {
+ m_ptr += m_span.len * sizeof(T);
+ }
+ init_span();
+ }
+
+ private:
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ void init_span()
+ {
+ m_span.x = read_int16() + m_dx;
+ m_span.len = read_int16();
+ m_span.covers = m_ptr;
+ }
+
+ const int8u* m_ptr;
+ span m_span;
+ int m_dx;
+ };
+
+ friend class const_iterator;
+
+
+ //-----------------------------------------------------------------
+ embedded_scanline() : m_ptr(0), m_y(0), m_num_spans(0) {}
+
+ //-----------------------------------------------------------------
+ void reset(int, int) {}
+ unsigned num_spans() const { return m_num_spans; }
+ int y() const { return m_y; }
+ const_iterator begin() const { return const_iterator(*this); }
+
+
+ private:
+ //-----------------------------------------------------------------
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ public:
+ //-----------------------------------------------------------------
+ void init(const int8u* ptr, int dx, int dy)
+ {
+ m_ptr = ptr;
+ m_y = read_int16() + dy;
+ m_num_spans = unsigned(read_int16());
+ m_dx = dx;
+ }
+
+ private:
+ const int8u* m_ptr;
+ int m_y;
+ unsigned m_num_spans;
+ int m_dx;
+ };
+
+
+
+ public:
+ //--------------------------------------------------------------------
+ serialized_scanlines_adaptor_aa() :
+ m_data(0),
+ m_end(0),
+ m_ptr(0),
+ m_dx(0),
+ m_dy(0),
+ m_min_x(0x7FFFFFFF),
+ m_min_y(0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF)
+ {}
+
+ //--------------------------------------------------------------------
+ serialized_scanlines_adaptor_aa(const int8u* data, unsigned size,
+ double dx, double dy) :
+ m_data(data),
+ m_end(data + size),
+ m_ptr(data),
+ m_dx(int(floor(dx + 0.5))),
+ m_dy(int(floor(dy + 0.5))),
+ m_min_x(0x7FFFFFFF),
+ m_min_y(0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF)
+ {}
+
+ //--------------------------------------------------------------------
+ void init(const int8u* data, unsigned size, double dx, double dy)
+ {
+ m_data = data;
+ m_end = data + size;
+ m_ptr = data;
+ m_dx = int(floor(dx + 0.5));
+ m_dy = int(floor(dy + 0.5));
+ m_min_x = 0x7FFFFFFF;
+ m_min_y = 0x7FFFFFFF;
+ m_max_x = -0x7FFFFFFF;
+ m_max_y = -0x7FFFFFFF;
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned read_int16u()
+ {
+ int16u val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ public:
+ // Iterate scanlines interface
+ //--------------------------------------------------------------------
+ bool rewind_scanlines()
+ {
+ m_ptr = m_data;
+ if(m_ptr < m_end)
+ {
+ m_min_x = read_int16() + m_dx;
+ m_min_y = read_int16() + m_dy;
+ m_max_x = read_int16() + m_dx;
+ m_max_y = read_int16() + m_dy;
+ return true;
+ }
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ int min_x() const { return m_min_x; }
+ int min_y() const { return m_min_y; }
+ int max_x() const { return m_max_x; }
+ int max_y() const { return m_max_y; }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> bool sweep_scanline(Scanline& sl)
+ {
+ sl.reset_spans();
+ for(;;)
+ {
+ if(m_ptr >= m_end) return false;
+
+ read_int16(); // Skip scanline size in bytes
+ int y = read_int16() + m_dy;
+ unsigned num_spans = read_int16();
+
+ do
+ {
+ int x = read_int16() + m_dx;
+ int len = read_int16();
+
+ if(len < 0)
+ {
+ sl.add_span(x, unsigned(-len), *m_ptr);
+ m_ptr += sizeof(T);
+ }
+ else
+ {
+ sl.add_cells(x, len, m_ptr);
+ m_ptr += len * sizeof(T);
+ }
+ }
+ while(--num_spans);
+
+ if(sl.num_spans())
+ {
+ sl.finalize(y);
+ break;
+ }
+ }
+ return true;
+ }
+
+
+ //--------------------------------------------------------------------
+ // Specialization for embedded_scanline
+ bool sweep_scanline(embedded_scanline& sl)
+ {
+ do
+ {
+ if(m_ptr >= m_end) return false;
+
+ unsigned byte_size = read_int16u();
+ sl.init(m_ptr, m_dx, m_dy);
+ m_ptr += byte_size - sizeof(int16);
+ }
+ while(sl.num_spans() == 0);
+ return true;
+ }
+
+ private:
+ const int8u* m_data;
+ const int8u* m_end;
+ const int8u* m_ptr;
+ int m_dx;
+ int m_dy;
+ int m_min_x;
+ int m_min_y;
+ int m_max_x;
+ int m_max_y;
+ };
+
+
+
+ typedef serialized_scanlines_adaptor_aa<int8u> serialized_scanlines_adaptor_aa8; //----serialized_scanlines_adaptor_aa8
+ typedef serialized_scanlines_adaptor_aa<int16u> serialized_scanlines_adaptor_aa16; //----serialized_scanlines_adaptor_aa16
+ typedef serialized_scanlines_adaptor_aa<int32u> serialized_scanlines_adaptor_aa32; //----serialized_scanlines_adaptor_aa32
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_scanline_storage_bin.h b/agg/inc/agg_scanline_storage_bin.h
new file mode 100755
index 000000000000..90fa50e4ee6d
--- /dev/null
+++ b/agg/inc/agg_scanline_storage_bin.h
@@ -0,0 +1,569 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SCANLINE_STORAGE_BIN_INCLUDED
+#define AGG_SCANLINE_STORAGE_BIN_INCLUDED
+
+#include <string.h>
+#include <stdlib.h>
+#include <math.h>
+#include "agg_array.h"
+#include "agg_render_scanlines.h"
+
+
+namespace agg
+{
+
+ //-----------------------------------------------scanline_storage_bin
+ class scanline_storage_bin
+ {
+ public:
+ //---------------------------------------------------------------
+ struct span_data
+ {
+ int16 x;
+ int16 len;
+ };
+
+ //---------------------------------------------------------------
+ struct scanline_data
+ {
+ int y;
+ unsigned num_spans;
+ unsigned start_span;
+ };
+
+
+ //---------------------------------------------------------------
+ class embedded_scanline
+ {
+ public:
+
+ //-----------------------------------------------------------
+ class const_iterator
+ {
+ public:
+ const_iterator(const embedded_scanline& sl) :
+ m_storage(sl.m_storage),
+ m_span_idx(sl.m_scanline.start_span)
+ {
+ m_span = m_storage->span_by_index(m_span_idx);
+ }
+
+ const span_data& operator*() const { return m_span; }
+ const span_data* operator->() const { return &m_span; }
+
+ void operator ++ ()
+ {
+ ++m_span_idx;
+ m_span = m_storage->span_by_index(m_span_idx);
+ }
+
+ private:
+ const scanline_storage_bin* m_storage;
+ unsigned m_span_idx;
+ span_data m_span;
+ };
+
+ friend class const_iterator;
+
+
+ //-----------------------------------------------------------
+ embedded_scanline(const scanline_storage_bin& storage) :
+ m_storage(&storage)
+ {
+ setup(0);
+ }
+
+ //-----------------------------------------------------------
+ void reset(int, int) {}
+ unsigned num_spans() const { return m_scanline.num_spans; }
+ int y() const { return m_scanline.y; }
+ const_iterator begin() const { return const_iterator(*this); }
+
+ //-----------------------------------------------------------
+ void setup(unsigned scanline_idx)
+ {
+ m_scanline_idx = scanline_idx;
+ m_scanline = m_storage->scanline_by_index(m_scanline_idx);
+ }
+
+ private:
+ const scanline_storage_bin* m_storage;
+ scanline_data m_scanline;
+ unsigned m_scanline_idx;
+ };
+
+
+ //---------------------------------------------------------------
+ scanline_storage_bin() :
+ m_spans(256-2), // Block increment size
+ m_scanlines(),
+ m_min_x( 0x7FFFFFFF),
+ m_min_y( 0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF),
+ m_cur_scanline(0)
+ {
+ m_fake_scanline.y = 0;
+ m_fake_scanline.num_spans = 0;
+ m_fake_scanline.start_span = 0;
+ m_fake_span.x = 0;
+ m_fake_span.len = 0;
+ }
+
+ // Renderer Interface
+ //---------------------------------------------------------------
+ void prepare(unsigned)
+ {
+ m_scanlines.remove_all();
+ m_spans.remove_all();
+ m_min_x = 0x7FFFFFFF;
+ m_min_y = 0x7FFFFFFF;
+ m_max_x = -0x7FFFFFFF;
+ m_max_y = -0x7FFFFFFF;
+ m_cur_scanline = 0;
+ }
+
+ //---------------------------------------------------------------
+ template<class Scanline> void render(const Scanline& sl)
+ {
+ scanline_data sl_this;
+
+ int y = sl.y();
+ if(y < m_min_y) m_min_y = y;
+ if(y > m_max_y) m_max_y = y;
+
+ sl_this.y = y;
+ sl_this.num_spans = sl.num_spans();
+ sl_this.start_span = m_spans.size();
+ typename Scanline::const_iterator span_iterator = sl.begin();
+
+ unsigned num_spans = sl_this.num_spans;
+ do
+ {
+ span_data sp;
+ sp.x = span_iterator->x;
+ sp.len = (int16)abs((int)(span_iterator->len));
+ m_spans.add(sp);
+ int x1 = sp.x;
+ int x2 = sp.x + sp.len - 1;
+ if(x1 < m_min_x) m_min_x = x1;
+ if(x2 > m_max_x) m_max_x = x2;
+ ++span_iterator;
+ }
+ while(--num_spans);
+ m_scanlines.add(sl_this);
+ }
+
+
+ //---------------------------------------------------------------
+ // Iterate scanlines interface
+ int min_x() const { return m_min_x; }
+ int min_y() const { return m_min_y; }
+ int max_x() const { return m_max_x; }
+ int max_y() const { return m_max_y; }
+
+ //---------------------------------------------------------------
+ bool rewind_scanlines()
+ {
+ m_cur_scanline = 0;
+ return m_scanlines.size() > 0;
+ }
+
+
+ //---------------------------------------------------------------
+ template<class Scanline> bool sweep_scanline(Scanline& sl)
+ {
+ sl.reset_spans();
+ for(;;)
+ {
+ if(m_cur_scanline >= m_scanlines.size()) return false;
+ const scanline_data& sl_this = m_scanlines[m_cur_scanline];
+
+ unsigned num_spans = sl_this.num_spans;
+ unsigned span_idx = sl_this.start_span;
+ do
+ {
+ const span_data& sp = m_spans[span_idx++];
+ sl.add_span(sp.x, sp.len, cover_full);
+ }
+ while(--num_spans);
+
+ ++m_cur_scanline;
+ if(sl.num_spans())
+ {
+ sl.finalize(sl_this.y);
+ break;
+ }
+ }
+ return true;
+ }
+
+
+ //---------------------------------------------------------------
+ // Specialization for embedded_scanline
+ bool sweep_scanline(embedded_scanline& sl)
+ {
+ do
+ {
+ if(m_cur_scanline >= m_scanlines.size()) return false;
+ sl.setup(m_cur_scanline);
+ ++m_cur_scanline;
+ }
+ while(sl.num_spans() == 0);
+ return true;
+ }
+
+
+ //---------------------------------------------------------------
+ unsigned byte_size() const
+ {
+ unsigned i;
+ unsigned size = sizeof(int16) * 4; // min_x, min_y, max_x, max_y
+
+ for(i = 0; i < m_scanlines.size(); ++i)
+ {
+ size += sizeof(int16) * 2 + // Y, num_spans
+ unsigned(m_scanlines[i].num_spans) * sizeof(int16) * 2; // X, span_len
+ }
+ return size;
+ }
+
+
+ //---------------------------------------------------------------
+ static void write_int16(int8u* dst, int16 val)
+ {
+ dst[0] = ((const int8u*)&val)[0];
+ dst[1] = ((const int8u*)&val)[1];
+ }
+
+
+ //---------------------------------------------------------------
+ void serialize(int8u* data) const
+ {
+ unsigned i;
+
+ write_int16(data, int16u(min_x())); // min_x
+ data += sizeof(int16u);
+ write_int16(data, int16u(min_y())); // min_y
+ data += sizeof(int16u);
+ write_int16(data, int16u(max_x())); // max_x
+ data += sizeof(int16u);
+ write_int16(data, int16u(max_y())); // max_y
+ data += sizeof(int16u);
+
+ for(i = 0; i < m_scanlines.size(); ++i)
+ {
+ const scanline_data& sl_this = m_scanlines[i];
+
+ write_int16(data, int16(sl_this.y)); // Y
+ data += sizeof(int16);
+
+ write_int16(data, int16(sl_this.num_spans)); // num_spans
+ data += sizeof(int16);
+
+ unsigned num_spans = sl_this.num_spans;
+ unsigned span_idx = sl_this.start_span;
+ do
+ {
+ const span_data& sp = m_spans[span_idx++];
+
+ write_int16(data, int16(sp.x)); // X
+ data += sizeof(int16);
+
+ write_int16(data, int16(sp.len)); // len
+ data += sizeof(int16);
+ }
+ while(--num_spans);
+ }
+ }
+
+
+ //---------------------------------------------------------------
+ const scanline_data& scanline_by_index(unsigned i) const
+ {
+ return (i < m_scanlines.size()) ? m_scanlines[i] : m_fake_scanline;
+ }
+
+ //---------------------------------------------------------------
+ const span_data& span_by_index(unsigned i) const
+ {
+ return (i < m_spans.size()) ? m_spans[i] : m_fake_span;
+ }
+
+
+ private:
+ pod_deque<span_data, 10> m_spans;
+ pod_deque<scanline_data, 8> m_scanlines;
+ span_data m_fake_span;
+ scanline_data m_fake_scanline;
+ int m_min_x;
+ int m_min_y;
+ int m_max_x;
+ int m_max_y;
+ unsigned m_cur_scanline;
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //---------------------------------------serialized_scanlines_adaptor_bin
+ class serialized_scanlines_adaptor_bin
+ {
+ public:
+ typedef bool cover_type;
+
+ //--------------------------------------------------------------------
+ class embedded_scanline
+ {
+ public:
+
+ //----------------------------------------------------------------
+ class const_iterator
+ {
+ public:
+ struct span
+ {
+ int16 x;
+ int16 len;
+ };
+
+ const_iterator(const embedded_scanline& sl) :
+ m_ptr(sl.m_ptr),
+ m_dx(sl.m_dx)
+ {
+ m_span.x = read_int16() + m_dx;
+ m_span.len = read_int16();
+ }
+
+ const span& operator*() const { return m_span; }
+ const span* operator->() const { return &m_span; }
+
+ void operator ++ ()
+ {
+ m_span.x = read_int16() + m_dx;
+ m_span.len = read_int16();
+ }
+
+ private:
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ const int8u* m_ptr;
+ span m_span;
+ int m_dx;
+ };
+
+ friend class const_iterator;
+
+
+ //----------------------------------------------------------------
+ embedded_scanline() : m_ptr(0), m_y(0), m_num_spans(0) {}
+
+ //----------------------------------------------------------------
+ void reset(int, int) {}
+ unsigned num_spans() const { return m_num_spans; }
+ int y() const { return m_y; }
+ const_iterator begin() const { return const_iterator(*this); }
+
+
+ private:
+ //----------------------------------------------------------------
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ public:
+ //----------------------------------------------------------------
+ void init(const int8u* ptr, int dx, int dy)
+ {
+ m_ptr = ptr;
+ m_y = read_int16() + dy;
+ m_num_spans = unsigned(read_int16());
+ m_dx = dx;
+ }
+
+ private:
+ const int8u* m_ptr;
+ int m_y;
+ unsigned m_num_spans;
+ int m_dx;
+ };
+
+
+
+ public:
+ //--------------------------------------------------------------------
+ serialized_scanlines_adaptor_bin() :
+ m_data(0),
+ m_end(0),
+ m_ptr(0),
+ m_dx(0),
+ m_dy(0),
+ m_min_x(0x7FFFFFFF),
+ m_min_y(0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF)
+ {}
+
+ //--------------------------------------------------------------------
+ serialized_scanlines_adaptor_bin(const int8u* data, unsigned size,
+ double dx, double dy) :
+ m_data(data),
+ m_end(data + size),
+ m_ptr(data),
+ m_dx(int(floor(dx + 0.5))),
+ m_dy(int(floor(dy + 0.5))),
+ m_min_x(0x7FFFFFFF),
+ m_min_y(0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF)
+ {}
+
+ //--------------------------------------------------------------------
+ void init(const int8u* data, unsigned size, double dx, double dy)
+ {
+ m_data = data;
+ m_end = data + size;
+ m_ptr = data;
+ m_dx = int(floor(dx + 0.5));
+ m_dy = int(floor(dy + 0.5));
+ m_min_x = 0x7FFFFFFF;
+ m_min_y = 0x7FFFFFFF;
+ m_max_x = -0x7FFFFFFF;
+ m_max_y = -0x7FFFFFFF;
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ int read_int16()
+ {
+ int16 val;
+ ((int8u*)&val)[0] = *m_ptr++;
+ ((int8u*)&val)[1] = *m_ptr++;
+ return val;
+ }
+
+ public:
+ // Iterate scanlines interface
+ //--------------------------------------------------------------------
+ bool rewind_scanlines()
+ {
+ m_ptr = m_data;
+ if(m_ptr < m_end)
+ {
+ m_min_x = read_int16() + m_dx;
+ m_min_y = read_int16() + m_dy;
+ m_max_x = read_int16() + m_dx;
+ m_max_y = read_int16() + m_dy;
+ return true;
+ }
+ return false;
+ }
+
+ //--------------------------------------------------------------------
+ int min_x() const { return m_min_x; }
+ int min_y() const { return m_min_y; }
+ int max_x() const { return m_max_x; }
+ int max_y() const { return m_max_y; }
+
+ //--------------------------------------------------------------------
+ template<class Scanline> bool sweep_scanline(Scanline& sl)
+ {
+ sl.reset_spans();
+ for(;;)
+ {
+ if(m_ptr >= m_end) return false;
+
+ int y = read_int16() + m_dy;
+ unsigned num_spans = read_int16();
+
+ do
+ {
+ int x = read_int16() + m_dx;
+ int len = read_int16();
+
+ if(len < 0) len = -len;
+ sl.add_span(x, unsigned(len), cover_full);
+ }
+ while(--num_spans);
+
+ if(sl.num_spans())
+ {
+ sl.finalize(y);
+ break;
+ }
+ }
+ return true;
+ }
+
+
+ //--------------------------------------------------------------------
+ // Specialization for embedded_scanline
+ bool sweep_scanline(embedded_scanline& sl)
+ {
+ do
+ {
+ if(m_ptr >= m_end) return false;
+
+ sl.init(m_ptr, m_dx, m_dy);
+
+ // Jump to the next scanline
+ //--------------------------
+ read_int16(); // Y
+ int num_spans = read_int16(); // num_spans
+ m_ptr += num_spans * sizeof(int16) * 2;
+ }
+ while(sl.num_spans() == 0);
+ return true;
+ }
+
+ private:
+ const int8u* m_data;
+ const int8u* m_end;
+ const int8u* m_ptr;
+ int m_dx;
+ int m_dy;
+ int m_min_x;
+ int m_min_y;
+ int m_max_x;
+ int m_max_y;
+ };
+
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_scanline_u.h b/agg/inc/agg_scanline_u.h
new file mode 100755
index 000000000000..749c5b3c0054
--- /dev/null
+++ b/agg/inc/agg_scanline_u.h
@@ -0,0 +1,323 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SCANLINE_U_INCLUDED
+#define AGG_SCANLINE_U_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+ //==============================================================scanline_u
+ //
+ // Unpacked scanline container class
+ //
+ // This class is used to transfer data from a scanline rastyerizer
+ // to the rendering buffer. It's organized very simple. The class stores
+ // information of horizontal spans to render it into a pixel-map buffer.
+ // Each span has staring X, length, and an array of bytes that determine the
+ // cover-values for each pixel.
+ // Before using this class you should know the minimal and maximal pixel
+ // coordinates of your scanline. The protocol of using is:
+ // 1. reset(min_x, max_x)
+ // 2. add_cell() / add_span() - accumulate scanline.
+ // When forming one scanline the next X coordinate must be always greater
+ // than the last stored one, i.e. it works only with ordered coordinates.
+ // 3. Call finalize(y) and render the scanline.
+ // 3. Call reset_spans() to prepare for the new scanline.
+ //
+ // 4. Rendering:
+ //
+ // Scanline provides an iterator class that allows you to extract
+ // the spans and the cover values for each pixel. Be aware that clipping
+ // has not been done yet, so you should perform it yourself.
+ // Use scanline_u8::iterator to render spans:
+ //-------------------------------------------------------------------------
+ //
+ // int y = sl.y(); // Y-coordinate of the scanline
+ //
+ // ************************************
+ // ...Perform vertical clipping here...
+ // ************************************
+ //
+ // scanline_u8::const_iterator span = sl.begin();
+ //
+ // unsigned char* row = m_rbuf->row(y); // The the address of the beginning
+ // // of the current row
+ //
+ // unsigned num_spans = sl.num_spans(); // Number of spans. It's guaranteed that
+ // // num_spans is always greater than 0.
+ //
+ // do
+ // {
+ // const scanline_u8::cover_type* covers =
+ // span->covers; // The array of the cover values
+ //
+ // int num_pix = span->len; // Number of pixels of the span.
+ // // Always greater than 0, still it's
+ // // better to use "int" instead of
+ // // "unsigned" because it's more
+ // // convenient for clipping
+ // int x = span->x;
+ //
+ // **************************************
+ // ...Perform horizontal clipping here...
+ // ...you have x, covers, and pix_count..
+ // **************************************
+ //
+ // unsigned char* dst = row + x; // Calculate the start address of the row.
+ // // In this case we assume a simple
+ // // grayscale image 1-byte per pixel.
+ // do
+ // {
+ // *dst++ = *covers++; // Hypotetical rendering.
+ // }
+ // while(--num_pix);
+ //
+ // ++span;
+ // }
+ // while(--num_spans); // num_spans cannot be 0, so this loop is quite safe
+ //------------------------------------------------------------------------
+ //
+ // The question is: why should we accumulate the whole scanline when we
+ // could render just separate spans when they're ready?
+ // That's because using the scaline is generally faster. When is consists
+ // of more than one span the conditions for the processor cash system
+ // are better, because switching between two different areas of memory
+ // (that can be very large) occures less frequently.
+ //------------------------------------------------------------------------
+ template<class T> class scanline_u
+ {
+ public:
+ typedef T cover_type;
+
+ //--------------------------------------------------------------------
+ struct span
+ {
+ int16 x;
+ int16 len;
+ cover_type* covers;
+ };
+
+ typedef span* iterator;
+ typedef const span* const_iterator;
+
+ //--------------------------------------------------------------------
+ ~scanline_u();
+ scanline_u();
+
+ void reset(int min_x, int max_x);
+ void add_cell(int x, unsigned cover);
+ void add_cells(int x, unsigned len, const T* covers);
+ void add_span(int x, unsigned len, unsigned cover);
+ void finalize(int y) { m_y = y; }
+ void reset_spans();
+
+ int y() const { return m_y; }
+ unsigned num_spans() const { return unsigned(m_cur_span - m_spans); }
+ const_iterator begin() const { return m_spans + 1; }
+ iterator begin() { return m_spans + 1; }
+
+ private:
+ scanline_u<T>(const scanline_u<T>&);
+ const scanline_u<T>& operator = (const scanline_u<T>&);
+
+ private:
+ int m_min_x;
+ unsigned m_max_len;
+ int m_last_x;
+ int m_y;
+ cover_type* m_covers;
+ span* m_spans;
+ span* m_cur_span;
+ };
+
+
+
+ //------------------------------------------------------------------------
+ template<class T> scanline_u<T>::~scanline_u()
+ {
+ delete [] m_spans;
+ delete [] m_covers;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> scanline_u<T>::scanline_u() :
+ m_min_x(0),
+ m_max_len(0),
+ m_last_x(0x7FFFFFF0),
+ m_covers(0),
+ m_spans(0),
+ m_cur_span(0)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> void scanline_u<T>::reset(int min_x, int max_x)
+ {
+ unsigned max_len = max_x - min_x + 2;
+ if(max_len > m_max_len)
+ {
+ delete [] m_spans;
+ delete [] m_covers;
+ m_covers = new cover_type [max_len];
+ m_spans = new span [max_len];
+ m_max_len = max_len;
+ }
+ m_last_x = 0x7FFFFFF0;
+ m_min_x = min_x;
+ m_cur_span = m_spans;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> inline void scanline_u<T>::reset_spans()
+ {
+ m_last_x = 0x7FFFFFF0;
+ m_cur_span = m_spans;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> inline void scanline_u<T>::add_cell(int x, unsigned cover)
+ {
+ x -= m_min_x;
+ m_covers[x] = (unsigned char)cover;
+ if(x == m_last_x+1)
+ {
+ m_cur_span->len++;
+ }
+ else
+ {
+ m_cur_span++;
+ m_cur_span->x = (int16)(x + m_min_x);
+ m_cur_span->len = 1;
+ m_cur_span->covers = m_covers + x;
+ }
+ m_last_x = x;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> void scanline_u<T>::add_cells(int x, unsigned len, const T* covers)
+ {
+ x -= m_min_x;
+ memcpy(m_covers + x, covers, len * sizeof(T));
+ if(x == m_last_x+1)
+ {
+ m_cur_span->len += (int16)len;
+ }
+ else
+ {
+ m_cur_span++;
+ m_cur_span->x = (int16)(x + m_min_x);
+ m_cur_span->len = (int16)len;
+ m_cur_span->covers = m_covers + x;
+ }
+ m_last_x = x + len - 1;
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T> void scanline_u<T>::add_span(int x, unsigned len, unsigned cover)
+ {
+ x -= m_min_x;
+ memset(m_covers + x, cover, len);
+ if(x == m_last_x+1)
+ {
+ m_cur_span->len += (int16)len;
+ }
+ else
+ {
+ m_cur_span++;
+ m_cur_span->x = (int16)(x + m_min_x);
+ m_cur_span->len = (int16)len;
+ m_cur_span->covers = m_covers + x;
+ }
+ m_last_x = x + len - 1;
+ }
+
+
+ //=============================================================scanline_u8
+ typedef scanline_u<int8u> scanline_u8;
+
+ //============================================================scanline_u16
+ typedef scanline_u<int16u> scanline_u16;
+
+ //============================================================scanline_u32
+ typedef scanline_u<int32u> scanline_u32;
+
+
+ //=============================================================scanline_am
+ //
+ // The scanline container with alpha-masking
+ //
+ //------------------------------------------------------------------------
+ template<class AlphaMask, class CoverT>
+ class scanline_am : public scanline_u<CoverT>
+ {
+ public:
+ typedef AlphaMask alpha_mask_type;
+ typedef CoverT cover_type;
+ typedef scanline_u<CoverT> scanline_type;
+
+ scanline_am() : scanline_type(), m_alpha_mask(0) {}
+ scanline_am(const AlphaMask& am) : scanline_type(), m_alpha_mask(&am) {}
+
+ //--------------------------------------------------------------------
+ void finalize(int span_y)
+ {
+ scanline_u<CoverT>::finalize(span_y);
+ if(m_alpha_mask)
+ {
+ typename scanline_type::iterator span = scanline_type::begin();
+ unsigned count = scanline_type::num_spans();
+ do
+ {
+ m_alpha_mask->combine_hspan(span->x,
+ scanline_type::y(),
+ span->covers,
+ span->len);
+ ++span;
+ }
+ while(--count);
+ }
+ }
+
+ private:
+ const AlphaMask* m_alpha_mask;
+ };
+
+
+ //==========================================================scanline_u8_am
+ template<class AlphaMask>
+ class scanline_u8_am : public scanline_am<AlphaMask, int8u>
+ {
+ public:
+ typedef AlphaMask alpha_mask_type;
+ typedef int8u cover_type;
+ typedef scanline_am<alpha_mask_type, cover_type> self_type;
+
+ scanline_u8_am() : self_type() {}
+ scanline_u8_am(const AlphaMask& am) : self_type(am) {}
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_shorten_path.h b/agg/inc/agg_shorten_path.h
new file mode 100755
index 000000000000..271d2a7ec572
--- /dev/null
+++ b/agg/inc/agg_shorten_path.h
@@ -0,0 +1,66 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SHORTEN_PATH_INCLUDED
+#define AGG_SHORTEN_PATH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+
+namespace agg
+{
+
+ //===========================================================shorten_path
+ template<class VertexSequence>
+ void shorten_path(VertexSequence& vs, double s, unsigned closed = 0)
+ {
+ typedef typename VertexSequence::value_type vertex_type;
+
+ if(s > 0.0 && vs.size() > 1)
+ {
+ double d;
+ int n = int(vs.size() - 2);
+ while(n)
+ {
+ d = vs[n].dist;
+ if(d > s) break;
+ vs.remove_last();
+ s -= d;
+ --n;
+ }
+ if(vs.size() < 2)
+ {
+ vs.remove_all();
+ }
+ else
+ {
+ n = vs.size() - 1;
+ vertex_type& prev = vs[n-1];
+ vertex_type& last = vs[n];
+ d = (prev.dist - s) / prev.dist;
+ double x = prev.x + (last.x - prev.x) * d;
+ double y = prev.y + (last.y - prev.y) * d;
+ last.x = x;
+ last.y = y;
+ if(!prev(last)) vs.remove_last();
+ vs.close(closed != 0);
+ }
+ }
+ }
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_simul_eq.h b/agg/inc/agg_simul_eq.h
new file mode 100755
index 000000000000..f52662e82926
--- /dev/null
+++ b/agg/inc/agg_simul_eq.h
@@ -0,0 +1,147 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Solving simultaneous equations
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SIMUL_EQ_INCLUDED
+#define AGG_SIMUL_EQ_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //=============================================================swap_arrays
+ template<class T> void swap_arrays(T* a1, T* a2, unsigned n)
+ {
+ unsigned i;
+ for(i = 0; i < n; i++)
+ {
+ T tmp = *a1;
+ *a1++ = *a2;
+ *a2++ = tmp;
+ }
+ }
+
+
+ //============================================================matrix_pivot
+ template<unsigned Rows, unsigned Cols>
+ struct matrix_pivot
+ {
+ static int pivot(double m[Rows][Cols], unsigned row)
+ {
+ int k = int(row);
+ double max_val, tmp;
+
+ max_val = -1.0;
+ unsigned i;
+ for(i = row; i < Rows; i++)
+ {
+ if((tmp = fabs(m[i][row])) > max_val && tmp != 0.0)
+ {
+ max_val = tmp;
+ k = i;
+ }
+ }
+
+ if(m[k][row] == 0.0)
+ {
+ return -1;
+ }
+
+ if(k != int(row))
+ {
+ swap_arrays(m[k], m[row], Cols);
+ return k;
+ }
+ return 0;
+ }
+ };
+
+
+
+ //===============================================================simul_eq
+ template<unsigned Size, unsigned RightCols>
+ struct simul_eq
+ {
+ static bool solve(const double left[Size][Size],
+ const double right[Size][RightCols],
+ double result[Size][RightCols])
+ {
+ unsigned i, j, k;
+ double a1;
+
+ double tmp[Size][Size + RightCols];
+
+ for(i = 0; i < Size; i++)
+ {
+ for(j = 0; j < Size; j++)
+ {
+ tmp[i][j] = left[i][j];
+ }
+ for(j = 0; j < RightCols; j++)
+ {
+ tmp[i][Size + j] = right[i][j];
+ }
+ }
+
+ for(k = 0; k < Size; k++)
+ {
+ if(matrix_pivot<Size, Size + RightCols>::pivot(tmp, k) < 0)
+ {
+ return false; // Singularity....
+ }
+
+ a1 = tmp[k][k];
+
+ for(j = k; j < Size + RightCols; j++)
+ {
+ tmp[k][j] /= a1;
+ }
+
+ for(i = k + 1; i < Size; i++)
+ {
+ a1 = tmp[i][k];
+ for (j = k; j < Size + RightCols; j++)
+ {
+ tmp[i][j] -= a1 * tmp[k][j];
+ }
+ }
+ }
+
+
+ for(k = 0; k < RightCols; k++)
+ {
+ int m;
+ for(m = int(Size - 1); m >= 0; m--)
+ {
+ result[m][k] = tmp[m][Size + k];
+ for(j = m + 1; j < Size; j++)
+ {
+ result[m][k] -= tmp[m][j] * result[j][k];
+ }
+ }
+ }
+ return true;
+ }
+
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_allocator.h b/agg/inc/agg_span_allocator.h
new file mode 100755
index 000000000000..d99c5b9d8936
--- /dev/null
+++ b/agg/inc/agg_span_allocator.h
@@ -0,0 +1,72 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_ALLOCATOR_INCLUDED
+#define AGG_SPAN_ALLOCATOR_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //----------------------------------------------------------span_allocator
+ template<class ColorT> class span_allocator
+ {
+ public:
+ typedef ColorT color_type;
+
+ //--------------------------------------------------------------------
+ ~span_allocator()
+ {
+ delete [] m_span;
+ }
+
+ //--------------------------------------------------------------------
+ span_allocator() :
+ m_max_span_len(0),
+ m_span(0)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ color_type* allocate(unsigned max_span_len)
+ {
+ if(max_span_len > m_max_span_len)
+ {
+ delete [] m_span;
+ m_span = new color_type[m_max_span_len = max_span_len];
+ }
+ return m_span;
+ }
+
+ //--------------------------------------------------------------------
+ color_type* span()
+ {
+ return m_span;
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ span_allocator(const span_allocator<ColorT>&);
+ const span_allocator<ColorT>& operator = (const span_allocator<ColorT>&);
+
+ unsigned m_max_span_len;
+ color_type* m_span;
+ };
+}
+
+
+#endif
+
+
diff --git a/agg/inc/agg_span_converter.h b/agg/inc/agg_span_converter.h
new file mode 100755
index 000000000000..104cd7d8e73e
--- /dev/null
+++ b/agg/inc/agg_span_converter.h
@@ -0,0 +1,53 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_CONVERTER_INCLUDED
+#define AGG_SPAN_CONVERTER_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //----------------------------------------------------------span_converter
+ template<class SpanGenerator, class Conv> class span_converter
+ {
+ public:
+ typedef typename SpanGenerator::color_type color_type;
+
+ span_converter(SpanGenerator& span_gen, Conv& conv) :
+ m_span_gen(&span_gen), m_conv(&conv) {}
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_span_gen->prepare(max_span_len);
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = m_span_gen->generate(x, y, len);
+ m_conv->convert(span, x, y, len);
+ return span;
+ }
+
+ private:
+ SpanGenerator* m_span_gen;
+ Conv* m_conv;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_generator.h b/agg/inc/agg_span_generator.h
new file mode 100755
index 000000000000..82b0ebef95f3
--- /dev/null
+++ b/agg/inc/agg_span_generator.h
@@ -0,0 +1,50 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GENERATOR_INCLUDED
+#define AGG_SPAN_GENERATOR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_span_allocator.h"
+
+namespace agg
+{
+
+ //==========================================================span_generator
+ template<class ColorT, class Allocator> class span_generator
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Allocator alloc_type;
+
+ //--------------------------------------------------------------------
+ span_generator(alloc_type& alloc) : m_alloc(&alloc) {}
+
+ //--------------------------------------------------------------------
+ void allocator(alloc_type& alloc) { m_alloc = &alloc; }
+ alloc_type& allocator() { return *m_alloc; }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ m_alloc->allocate(max_span_len);
+ }
+
+ private:
+ alloc_type* m_alloc;
+ };
+}
+
+#endif
diff --git a/agg/inc/agg_span_gouraud.h b/agg/inc/agg_span_gouraud.h
new file mode 100755
index 000000000000..76747899b5fc
--- /dev/null
+++ b/agg/inc/agg_span_gouraud.h
@@ -0,0 +1,180 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GOURAUD_INCLUDED
+#define AGG_SPAN_GOURAUD_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_math.h"
+#include "agg_span_generator.h"
+
+namespace agg
+{
+
+ //============================================================span_gouraud
+ template<class ColorT, class Allocator>
+ class span_gouraud : public span_generator<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Allocator alloc_type;
+
+ struct coord_type
+ {
+ double x;
+ double y;
+ color_type color;
+ };
+
+ //--------------------------------------------------------------------
+ span_gouraud(alloc_type& alloc) :
+ span_generator<color_type, alloc_type>(alloc),
+ m_vertex(0)
+ {
+ m_cmd[0] = path_cmd_stop;
+ }
+
+ //--------------------------------------------------------------------
+ span_gouraud(alloc_type& alloc,
+ const color_type& c1,
+ const color_type& c2,
+ const color_type& c3,
+ double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double d) :
+ span_generator<color_type, alloc_type>(alloc)
+ {
+ colors(c1, c2, c3);
+ triangle(x1, y1, x2, y2, x3, y3, d);
+ }
+
+ //--------------------------------------------------------------------
+ void colors(ColorT c1, ColorT c2, ColorT c3)
+ {
+ m_coord[0].color = c1;
+ m_coord[1].color = c2;
+ m_coord[2].color = c3;
+ }
+
+ //--------------------------------------------------------------------
+ // Sets the triangle and dilates it if needed.
+ // The trick here is to calculate beveled joins in the vertices of the
+ // triangle and render it as a 6-vertex polygon.
+ // It's necessary to achieve numerical stability.
+ // However, the coordinates to interpolate colors are calculated
+ // as miter joins (calc_intersection).
+ void triangle(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double d)
+ {
+ m_coord[0].x = m_x[0] = x1;
+ m_coord[0].y = m_y[0] = y1;
+ m_coord[1].x = m_x[1] = x2;
+ m_coord[1].y = m_y[1] = y2;
+ m_coord[2].x = m_x[2] = x3;
+ m_coord[2].y = m_y[2] = y3;
+ m_cmd[0] = path_cmd_move_to;
+ m_cmd[1] = path_cmd_line_to;
+ m_cmd[2] = path_cmd_line_to;
+ m_cmd[3] = path_cmd_stop;
+
+ if(d != 0.0)
+ {
+ dilate_triangle(m_coord[0].x, m_coord[0].y,
+ m_coord[1].x, m_coord[1].y,
+ m_coord[2].x, m_coord[2].y,
+ m_x, m_y, d);
+
+ calc_intersection(m_x[4], m_y[4], m_x[5], m_y[5],
+ m_x[0], m_y[0], m_x[1], m_y[1],
+ &m_coord[0].x, &m_coord[0].y);
+
+ calc_intersection(m_x[0], m_y[0], m_x[1], m_y[1],
+ m_x[2], m_y[2], m_x[3], m_y[3],
+ &m_coord[1].x, &m_coord[1].y);
+
+ calc_intersection(m_x[2], m_y[2], m_x[3], m_y[3],
+ m_x[4], m_y[4], m_x[5], m_y[5],
+ &m_coord[2].x, &m_coord[2].y);
+ m_cmd[3] = path_cmd_line_to;
+ m_cmd[4] = path_cmd_line_to;
+ m_cmd[5] = path_cmd_line_to;
+ m_cmd[6] = path_cmd_stop;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ // Vertex Source Interface to feed the coordinates to the rasterizer
+ void rewind(unsigned)
+ {
+ m_vertex = 0;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned vertex(double* x, double* y)
+ {
+ *x = m_x[m_vertex];
+ *y = m_y[m_vertex];
+ return m_cmd[m_vertex++];
+ }
+
+
+
+ protected:
+ //--------------------------------------------------------------------
+ void arrange_vertices(coord_type* coord) const
+ {
+ coord[0] = m_coord[0];
+ coord[1] = m_coord[1];
+ coord[2] = m_coord[2];
+
+ if(m_coord[0].y > m_coord[2].y)
+ {
+ coord[0] = m_coord[2];
+ coord[2] = m_coord[0];
+ }
+
+ coord_type tmp;
+ if(coord[0].y > coord[1].y)
+ {
+ tmp = coord[1];
+ coord[1] = coord[0];
+ coord[0] = tmp;
+ }
+
+ if(coord[1].y > coord[2].y)
+ {
+ tmp = coord[2];
+ coord[2] = coord[1];
+ coord[1] = tmp;
+ }
+ }
+
+
+ private:
+ //--------------------------------------------------------------------
+ coord_type m_coord[3];
+ double m_x[8];
+ double m_y[8];
+ unsigned m_cmd[8];
+ unsigned m_vertex;
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_span_gouraud_gray.h b/agg/inc/agg_span_gouraud_gray.h
new file mode 100755
index 000000000000..caf288919e93
--- /dev/null
+++ b/agg/inc/agg_span_gouraud_gray.h
@@ -0,0 +1,185 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GOURAUD_GRAY_INCLUDED
+#define AGG_SPAN_GOURAUD_GRAY_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_gray.h"
+#include "agg_dda_line.h"
+#include "agg_span_gouraud.h"
+
+namespace agg
+{
+
+ //=======================================================span_gouraud_gray
+ template<class ColorT, class Allocator = span_allocator<ColorT> >
+ class span_gouraud_gray : public span_gouraud<ColorT, Allocator>
+ {
+ public:
+ typedef Allocator alloc_type;
+ typedef ColorT color_type;
+ typedef typename color_type::value_type value_type;
+ typedef span_gouraud<color_type, alloc_type> base_type;
+ typedef typename base_type::coord_type coord_type;
+
+ private:
+ //--------------------------------------------------------------------
+ struct gray_calc
+ {
+ void init(const coord_type& c1, const coord_type& c2)
+ {
+ m_x1 = c1.x;
+ m_y1 = c1.y;
+ m_dx = c2.x - c1.x;
+ m_dy = 1.0 / (c2.y - c1.y);
+ m_v1 = c1.color.v;
+ m_a1 = c1.color.a;
+ m_dv = c2.color.v - m_v1;
+ m_da = c2.color.a - m_a1;
+ }
+
+ void calc(int y)
+ {
+ double k = 0.0;
+ if(y > m_y1) k = (y - m_y1) * m_dy;
+ gray8 c;
+ m_v = m_v1 + int(m_dv * k);
+ m_a = m_a1 + int(m_da * k);
+ m_x = int(m_x1 + m_dx * k);
+ }
+
+ double m_x1;
+ double m_y1;
+ double m_dx;
+ double m_dy;
+ int m_v1;
+ int m_a1;
+ int m_dv;
+ int m_da;
+ int m_v;
+ int m_a;
+ int m_x;
+ };
+
+
+ public:
+ //--------------------------------------------------------------------
+ span_gouraud_gray(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_gouraud_gray(alloc_type& alloc,
+ const color_type& c1,
+ const color_type& c2,
+ const color_type& c3,
+ double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double d = 0) :
+ base_type(alloc, c1, c2, c3, x1, y1, x2, y2, x3, y3, d)
+ {}
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ base_type::prepare(max_span_len);
+
+ coord_type coord[3];
+ arrange_vertices(coord);
+
+ m_y2 = int(coord[1].y);
+
+ m_swap = calc_point_location(coord[0].x, coord[0].y,
+ coord[2].x, coord[2].y,
+ coord[1].x, coord[1].y) < 0.0;
+
+ m_c1.init(coord[0], coord[2]);
+ m_c2.init(coord[0], coord[1]);
+ m_c3.init(coord[1], coord[2]);
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ m_c1.calc(y);
+ const gray_calc* pc1 = &m_c1;
+ const gray_calc* pc2 = &m_c2;
+
+ if(y < m_y2)
+ {
+ m_c2.calc(y+1);
+ }
+ else
+ {
+ m_c3.calc(y);
+ pc2 = &m_c3;
+ }
+
+ if(m_swap)
+ {
+ const gray_calc* t = pc2;
+ pc2 = pc1;
+ pc1 = t;
+ }
+
+ int nx = pc1->m_x;
+ unsigned nlen = pc2->m_x - pc1->m_x + 1;
+
+ if(nlen < len) nlen = len;
+
+ dda_line_interpolator<14> v(pc1->m_v, pc2->m_v, nlen);
+ dda_line_interpolator<14> a(pc1->m_a, pc2->m_a, nlen);
+
+ if(nx < x)
+ {
+ unsigned d = unsigned(x - nx);
+ v += d;
+ a += d;
+ }
+
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ span->v = (value_type)v.y();
+ span->a = (value_type)a.y();
+ ++v;
+ ++a;
+ ++span;
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+
+ private:
+ bool m_swap;
+ int m_y2;
+ gray_calc m_c1;
+ gray_calc m_c2;
+ gray_calc m_c3;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_gouraud_rgba.h b/agg/inc/agg_span_gouraud_rgba.h
new file mode 100755
index 000000000000..75679a9426c2
--- /dev/null
+++ b/agg/inc/agg_span_gouraud_rgba.h
@@ -0,0 +1,206 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GOURAUD_RGBA_INCLUDED
+#define AGG_SPAN_GOURAUD_RGBA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_dda_line.h"
+#include "agg_span_gouraud.h"
+
+namespace agg
+{
+
+ //=======================================================span_gouraud_rgba
+ template<class ColorT, class Allocator = span_allocator<ColorT> >
+ class span_gouraud_rgba : public span_gouraud<ColorT, Allocator>
+ {
+ public:
+ typedef Allocator alloc_type;
+ typedef ColorT color_type;
+ typedef typename ColorT::value_type value_type;
+ typedef span_gouraud<color_type, alloc_type> base_type;
+ typedef typename base_type::coord_type coord_type;
+
+ private:
+ //--------------------------------------------------------------------
+ struct rgba_calc
+ {
+ void init(const coord_type& c1, const coord_type& c2)
+ {
+ m_x1 = c1.x;
+ m_y1 = c1.y;
+ m_dx = c2.x - c1.x;
+ m_dy = 1.0 / (c2.y - c1.y);
+ m_r1 = c1.color.r;
+ m_g1 = c1.color.g;
+ m_b1 = c1.color.b;
+ m_a1 = c1.color.a;
+ m_dr = c2.color.r - m_r1;
+ m_dg = c2.color.g - m_g1;
+ m_db = c2.color.b - m_b1;
+ m_da = c2.color.a - m_a1;
+ }
+
+ void calc(int y)
+ {
+ double k = 0.0;
+ if(y > m_y1) k = (y - m_y1) * m_dy;
+ color_type rgba;
+ m_r = m_r1 + int(m_dr * k);
+ m_g = m_g1 + int(m_dg * k);
+ m_b = m_b1 + int(m_db * k);
+ m_a = m_a1 + int(m_da * k);
+ m_x = int(m_x1 + m_dx * k);
+ }
+
+ double m_x1;
+ double m_y1;
+ double m_dx;
+ double m_dy;
+ int m_r1;
+ int m_g1;
+ int m_b1;
+ int m_a1;
+ int m_dr;
+ int m_dg;
+ int m_db;
+ int m_da;
+ int m_r;
+ int m_g;
+ int m_b;
+ int m_a;
+ int m_x;
+ };
+
+ public:
+
+ //--------------------------------------------------------------------
+ span_gouraud_rgba(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_gouraud_rgba(alloc_type& alloc,
+ const color_type& c1,
+ const color_type& c2,
+ const color_type& c3,
+ double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double d = 0) :
+ base_type(alloc, c1, c2, c3, x1, y1, x2, y2, x3, y3, d)
+ {}
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ base_type::prepare(max_span_len);
+
+ coord_type coord[3];
+ arrange_vertices(coord);
+
+ m_y2 = int(coord[1].y);
+
+ m_swap = calc_point_location(coord[0].x, coord[0].y,
+ coord[2].x, coord[2].y,
+ coord[1].x, coord[1].y) < 0.0;
+
+ m_rgba1.init(coord[0], coord[2]);
+ m_rgba2.init(coord[0], coord[1]);
+ m_rgba3.init(coord[1], coord[2]);
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ m_rgba1.calc(y);
+ const rgba_calc* pc1 = &m_rgba1;
+ const rgba_calc* pc2 = &m_rgba2;
+
+ if(y < m_y2)
+ {
+ m_rgba2.calc(y+1);
+ }
+ else
+ {
+ m_rgba3.calc(y);
+ pc2 = &m_rgba3;
+ }
+
+ if(m_swap)
+ {
+ const rgba_calc* t = pc2;
+ pc2 = pc1;
+ pc1 = t;
+ }
+
+ int nx = pc1->m_x;
+ unsigned nlen = pc2->m_x - pc1->m_x + 1;
+
+ if(nlen < len) nlen = len;
+
+ dda_line_interpolator<14> r(pc1->m_r, pc2->m_r, nlen);
+ dda_line_interpolator<14> g(pc1->m_g, pc2->m_g, nlen);
+ dda_line_interpolator<14> b(pc1->m_b, pc2->m_b, nlen);
+ dda_line_interpolator<14> a(pc1->m_a, pc2->m_a, nlen);
+
+ if(nx < x)
+ {
+ unsigned d = unsigned(x - nx);
+ r += d;
+ g += d;
+ b += d;
+ a += d;
+ }
+
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ span->r = (value_type)r.y();
+ span->g = (value_type)g.y();
+ span->b = (value_type)b.y();
+ span->a = (value_type)a.y();
+ ++r;
+ ++g;
+ ++b;
+ ++a;
+ ++span;
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+
+ private:
+ bool m_swap;
+ int m_y2;
+ rgba_calc m_rgba1;
+ rgba_calc m_rgba2;
+ rgba_calc m_rgba3;
+ };
+
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_gradient.h b/agg/inc/agg_span_gradient.h
new file mode 100755
index 000000000000..6bac1c652a84
--- /dev/null
+++ b/agg/inc/agg_span_gradient.h
@@ -0,0 +1,422 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GRADIENT_INCLUDED
+#define AGG_SPAN_GRADIENT_INCLUDED
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include "agg_basics.h"
+#include "agg_span_generator.h"
+#include "agg_math.h"
+#include "agg_array.h"
+
+
+namespace agg
+{
+
+ enum
+ {
+ gradient_subpixel_shift = 4, //-----gradient_subpixel_shift
+ gradient_subpixel_size = 1 << gradient_subpixel_shift, //-----gradient_subpixel_size
+ gradient_subpixel_mask = gradient_subpixel_size - 1 //-----gradient_subpixel_mask
+ };
+
+
+
+ //==========================================================span_gradient
+ template<class ColorT,
+ class Interpolator,
+ class GradientF,
+ class ColorF,
+ class Allocator = span_allocator<ColorT> >
+ class span_gradient : public span_generator<ColorT, Allocator>
+ {
+ public:
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef ColorT color_type;
+ typedef span_generator<color_type, alloc_type> base_type;
+
+ enum
+ {
+ downscale_shift = interpolator_type::subpixel_shift -
+ gradient_subpixel_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_gradient(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_gradient(alloc_type& alloc,
+ interpolator_type& inter,
+ const GradientF& gradient_function_,
+ const ColorF& color_function_,
+ double d1_, double d2_) :
+ base_type(alloc),
+ m_interpolator(&inter),
+ m_gradient_function(&gradient_function_),
+ m_color_function(&color_function_),
+ m_d1(int(d1_ * gradient_subpixel_size)),
+ m_d2(int(d2_ * gradient_subpixel_size))
+ {}
+
+ //--------------------------------------------------------------------
+ interpolator_type& interpolator() { return *m_interpolator; }
+ const GradientF& gradient_function() const { return *m_gradient_function; }
+ const ColorF& color_function() const { return *m_color_function; }
+ double d1() const { return double(m_d1) / gradient_subpixel_size; }
+ double d2() const { return double(m_d2) / gradient_subpixel_size; }
+
+ //--------------------------------------------------------------------
+ void interpolator(interpolator_type& i) { m_interpolator = &i; }
+ void gradient_function(const GradientF& gf) { m_gradient_function = &gf; }
+ void color_function(const ColorF& cf) { m_color_function = &cf; }
+ void d1(double v) { m_d1 = int(v * gradient_subpixel_size); }
+ void d2(double v) { m_d2 = int(v * gradient_subpixel_size); }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ int dd = m_d2 - m_d1;
+ if(dd < 1) dd = 1;
+ m_interpolator->begin(x+0.5, y+0.5, len);
+ do
+ {
+ m_interpolator->coordinates(&x, &y);
+ int d = m_gradient_function->calculate(x >> downscale_shift,
+ y >> downscale_shift, dd);
+ d = ((d - m_d1) * (int)m_color_function->size()) / dd;
+ if(d < 0) d = 0;
+ if(d >= (int)m_color_function->size()) d = m_color_function->size() - 1;
+ *span++ = (*m_color_function)[d];
+ ++(*m_interpolator);
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ interpolator_type* m_interpolator;
+ const GradientF* m_gradient_function;
+ const ColorF* m_color_function;
+ int m_d1;
+ int m_d2;
+ };
+
+
+
+
+ //=====================================================gradient_linear_color
+ template<class ColorT>
+ struct gradient_linear_color
+ {
+ typedef ColorT color_type;
+
+ gradient_linear_color() {}
+ gradient_linear_color(const color_type& c1, const color_type& c2,
+ unsigned size = 256) :
+ m_c1(c1), m_c2(c2), m_size(size) {}
+
+ unsigned size() const { return m_size; }
+ color_type operator [] (unsigned v) const
+ {
+ return m_c1.gradient(m_c2, double(v) / double(m_size - 1));
+ }
+
+ void colors(const color_type& c1, const color_type& c2, unsigned size = 256)
+ {
+ m_c1 = c1;
+ m_c2 = c2;
+ m_size = size;
+ }
+
+ color_type m_c1;
+ color_type m_c2;
+ unsigned m_size;
+ };
+
+
+ //==========================================================gradient_circle
+ class gradient_circle
+ {
+ // Actually the same as radial. Just for compatibility
+ public:
+ static AGG_INLINE int calculate(int x, int y, int)
+ {
+ return int(fast_sqrt(x*x + y*y));
+ }
+ };
+
+
+ //==========================================================gradient_radial
+ class gradient_radial
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int)
+ {
+ return int(fast_sqrt(x*x + y*y));
+ }
+ };
+
+
+ //========================================================gradient_radial_d
+ class gradient_radial_d
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int)
+ {
+ return int(sqrt(double(x)*double(x) + double(y)*double(y)));
+ }
+ };
+
+
+ //====================================================gradient_radial_focus
+ class gradient_radial_focus
+ {
+ public:
+ //---------------------------------------------------------------------
+ gradient_radial_focus() :
+ m_radius(100 * gradient_subpixel_size),
+ m_focus_x(0),
+ m_focus_y(0)
+ {
+ update_values();
+ }
+
+ //---------------------------------------------------------------------
+ gradient_radial_focus(double r, double fx, double fy) :
+ m_radius (int(r * gradient_subpixel_size)),
+ m_focus_x(int(fx * gradient_subpixel_size)),
+ m_focus_y(int(fy * gradient_subpixel_size))
+ {
+ update_values();
+ }
+
+ //---------------------------------------------------------------------
+ void init(double r, double fx, double fy)
+ {
+ m_radius = int(r * gradient_subpixel_size);
+ m_focus_x = int(fx * gradient_subpixel_size);
+ m_focus_y = int(fy * gradient_subpixel_size);
+ update_values();
+ }
+
+ //---------------------------------------------------------------------
+ double radius() const { return double(m_radius) / gradient_subpixel_size; }
+ double focus_x() const { return double(m_focus_x) / gradient_subpixel_size; }
+ double focus_y() const { return double(m_focus_y) / gradient_subpixel_size; }
+
+ //---------------------------------------------------------------------
+ int calculate(int x, int y, int d) const
+ {
+ double solution_x;
+ double solution_y;
+
+ // Special case to avoid divide by zero or very near zero
+ //---------------------------------
+ if(x == int(m_focus_x))
+ {
+ solution_x = m_focus_x;
+ solution_y = 0.0;
+ solution_y += (y > m_focus_y) ? m_trivial : -m_trivial;
+ }
+ else
+ {
+ // Slope of the focus-current line
+ //-------------------------------
+ double slope = double(y - m_focus_y) / double(x - m_focus_x);
+
+ // y-intercept of that same line
+ //--------------------------------
+ double yint = double(y) - (slope * x);
+
+ // Use the classical quadratic formula to calculate
+ // the intersection point
+ //--------------------------------
+ double a = (slope * slope) + 1;
+ double b = 2 * slope * yint;
+ double c = yint * yint - m_radius2;
+ double det = sqrt((b * b) - (4.0 * a * c));
+ solution_x = -b;
+
+ // Choose the positive or negative root depending
+ // on where the X coord lies with respect to the focus.
+ solution_x += (x < m_focus_x) ? -det : det;
+ solution_x /= 2.0 * a;
+
+ // Calculating of Y is trivial
+ solution_y = (slope * solution_x) + yint;
+ }
+
+ // Calculate the percentage (0...1) of the current point along the
+ // focus-circumference line and return the normalized (0...d) value
+ //-------------------------------
+ solution_x -= double(m_focus_x);
+ solution_y -= double(m_focus_y);
+ double int_to_focus = solution_x * solution_x + solution_y * solution_y;
+ double cur_to_focus = double(x - m_focus_x) * double(x - m_focus_x) +
+ double(y - m_focus_y) * double(y - m_focus_y);
+
+ return int(sqrt(cur_to_focus / int_to_focus) * d);
+ }
+
+ private:
+ //---------------------------------------------------------------------
+ void update_values()
+ {
+ // For use in the quadractic equation
+ //-------------------------------
+ m_radius2 = double(m_radius) * double(m_radius);
+
+ double dist = sqrt(double(m_focus_x) * double(m_focus_x) +
+ double(m_focus_y) * double(m_focus_y));
+
+ // Test if distance from focus to center is greater than the radius
+ // For the sake of assurance factor restrict the point to be
+ // no further than 99% of the radius.
+ //-------------------------------
+ double r = m_radius * 0.99;
+ if(dist > r)
+ {
+ // clamp focus to radius
+ // x = r cos theta, y = r sin theta
+ //------------------------
+ double a = atan2(double(m_focus_y), double(m_focus_x));
+ m_focus_x = int(r * cos(a));
+ m_focus_y = int(r * sin(a));
+ }
+
+ // Calculate the solution to be used in the case where x == focus_x
+ //------------------------------
+ m_trivial = sqrt(m_radius2 - (m_focus_x * m_focus_x));
+ }
+
+ int m_radius;
+ int m_focus_x;
+ int m_focus_y;
+ double m_radius2;
+ double m_trivial;
+ };
+
+
+
+ //==============================================================gradient_x
+ class gradient_x
+ {
+ public:
+ static int calculate(int x, int, int) { return x; }
+ };
+
+
+ //==============================================================gradient_y
+ class gradient_y
+ {
+ public:
+ static int calculate(int, int y, int) { return y; }
+ };
+
+
+ //========================================================gradient_diamond
+ class gradient_diamond
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int)
+ {
+ int ax = abs(x);
+ int ay = abs(y);
+ return ax > ay ? ax : ay;
+ }
+ };
+
+
+ //=============================================================gradient_xy
+ class gradient_xy
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int d)
+ {
+ return abs(x) * abs(y) / d;
+ }
+ };
+
+
+ //========================================================gradient_sqrt_xy
+ class gradient_sqrt_xy
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int)
+ {
+ return fast_sqrt(abs(x) * abs(y));
+ }
+ };
+
+
+ //==========================================================gradient_conic
+ class gradient_conic
+ {
+ public:
+ static AGG_INLINE int calculate(int x, int y, int d)
+ {
+ return int(fabs(atan2(double(y), double(x))) * double(d) / pi);
+ }
+ };
+
+
+ //=================================================gradient_repeat_adaptor
+ template<class GradientF> class gradient_repeat_adaptor
+ {
+ public:
+ gradient_repeat_adaptor(const GradientF& gradient) :
+ m_gradient(&gradient) {}
+
+ AGG_INLINE int calculate(int x, int y, int d) const
+ {
+ int ret = m_gradient->calculate(x, y, d) % d;
+ if(ret < 0) ret += d;
+ return ret;
+ }
+
+ private:
+ const GradientF* m_gradient;
+ };
+
+
+ //================================================gradient_reflect_adaptor
+ template<class GradientF> class gradient_reflect_adaptor
+ {
+ public:
+ gradient_reflect_adaptor(const GradientF& gradient) :
+ m_gradient(&gradient) {}
+
+ AGG_INLINE int calculate(int x, int y, int d) const
+ {
+ int d2 = d << 1;
+ int ret = m_gradient->calculate(x, y, d) % d2;
+ if(ret < 0) ret += d2;
+ if(ret >= d) ret = d2 - ret;
+ return ret;
+ }
+
+ private:
+ const GradientF* m_gradient;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_gradient_alpha.h b/agg/inc/agg_span_gradient_alpha.h
new file mode 100755
index 000000000000..b1444ed8c4bc
--- /dev/null
+++ b/agg/inc/agg_span_gradient_alpha.h
@@ -0,0 +1,123 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_GRADIENT_ALPHA_INCLUDED
+#define AGG_SPAN_GRADIENT_ALPHA_INCLUDED
+
+#include "agg_span_gradient.h"
+
+namespace agg
+{
+ //======================================================span_gradient_alpha
+ template<class ColorT,
+ class Interpolator,
+ class GradientF,
+ class AlphaF>
+ class span_gradient_alpha
+ {
+ public:
+ typedef Interpolator interpolator_type;
+ typedef ColorT color_type;
+ typedef typename color_type::value_type alpha_type;
+
+ enum
+ {
+ downscale_shift = interpolator_type::subpixel_shift - gradient_subpixel_shift
+ };
+
+
+ //--------------------------------------------------------------------
+ span_gradient_alpha() {}
+
+ //--------------------------------------------------------------------
+ span_gradient_alpha(interpolator_type& inter,
+ const GradientF& gradient_function,
+ const AlphaF& alpha_function,
+ double d1, double d2) :
+ m_interpolator(&inter),
+ m_gradient_function(&gradient_function),
+ m_alpha_function(&alpha_function),
+ m_d1(int(d1 * gradient_subpixel_size)),
+ m_d2(int(d2 * gradient_subpixel_size))
+ {}
+
+ //--------------------------------------------------------------------
+ interpolator_type& interpolator() { return *m_interpolator; }
+ const GradientF& gradient_function() const { return *m_gradient_function; }
+ const AlphaF& alpha_function() const { return *m_alpha_function; }
+ double d1() const { return double(m_d1) / gradient_subpixel_size; }
+ double d2() const { return double(m_d2) / gradient_subpixel_size; }
+
+ //--------------------------------------------------------------------
+ void interpolator(interpolator_type& i) { m_interpolator = &i; }
+ void gradient_function(const GradientF& gf) { m_gradient_function = &gf; }
+ void alpha_function(const AlphaF& af) { m_alpha_function = &af; }
+ void d1(double v) { m_d1 = int(v * gradient_subpixel_size); }
+ void d2(double v) { m_d2 = int(v * gradient_subpixel_size); }
+
+ //--------------------------------------------------------------------
+ void convert(color_type* span, int x, int y, unsigned len)
+ {
+ int dd = m_d2 - m_d1;
+ if(dd < 1) dd = 1;
+ m_interpolator->begin(x+0.5, y+0.5, len);
+ do
+ {
+ m_interpolator->coordinates(&x, &y);
+ int d = m_gradient_function->calculate(x >> downscale_shift,
+ y >> downscale_shift, dd);
+ d = ((d - m_d1) * (int)m_alpha_function->size()) / dd;
+ if(d < 0) d = 0;
+ if(d >= (int)m_alpha_function->size()) d = m_alpha_function->size() - 1;
+ span->a = (*m_alpha_function)[d];
+ ++span;
+ ++(*m_interpolator);
+ }
+ while(--len);
+ }
+
+ private:
+ interpolator_type* m_interpolator;
+ const GradientF* m_gradient_function;
+ const AlphaF* m_alpha_function;
+ int m_d1;
+ int m_d2;
+ };
+
+
+ //=======================================================gradient_alpha_x
+ template<class ColorT> struct gradient_alpha_x
+ {
+ typedef typename ColorT::value_type alpha_type;
+ alpha_type operator [] (alpha_type x) const { return x; }
+ };
+
+ //====================================================gradient_alpha_x_u8
+ struct gradient_alpha_x_u8
+ {
+ typedef int8u alpha_type;
+ alpha_type operator [] (alpha_type x) const { return x; }
+ };
+
+ //==========================================gradient_alpha_one_munus_x_u8
+ struct gradient_alpha_one_munus_x_u8
+ {
+ typedef int8u alpha_type;
+ alpha_type operator [] (alpha_type x) const { return 255-x; }
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_image_filter.h b/agg/inc/agg_span_image_filter.h
new file mode 100755
index 000000000000..34163bb29f24
--- /dev/null
+++ b/agg/inc/agg_span_image_filter.h
@@ -0,0 +1,110 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Image transformations with filtering. Span generator base class
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_IMAGE_FILTER_INCLUDED
+#define AGG_SPAN_IMAGE_FILTER_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_image_filters.h"
+#include "agg_rendering_buffer.h"
+#include "agg_span_generator.h"
+
+
+namespace agg
+{
+
+ //--------------------------------------------------span_image_filter
+ template<class ColorT, class Interpolator, class Allocator>
+ class span_image_filter : public span_generator<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Allocator alloc_type;
+ typedef Interpolator interpolator_type;
+ typedef span_generator<color_type, alloc_type> base_type;
+
+ //----------------------------------------------------------------
+ span_image_filter(alloc_type& alloc) :
+ span_generator<color_type, alloc_type>(alloc)
+ {}
+
+ //----------------------------------------------------------------
+ span_image_filter(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& interpolator_,
+ const image_filter_lut* filter_) :
+ span_generator<color_type, alloc_type>(alloc),
+ m_src(&src),
+ m_back_color(back_color),
+ m_interpolator(&interpolator_),
+ m_filter(filter_),
+ m_dx_dbl(0.5),
+ m_dy_dbl(0.5),
+ m_dx_int(image_subpixel_size / 2),
+ m_dy_int(image_subpixel_size / 2)
+ {}
+
+ //----------------------------------------------------------------
+ const rendering_buffer& source_image() const { return *m_src; }
+ const color_type& background_color() const { return m_back_color; }
+ const image_filter_lut& filter() const { return *m_filter; }
+ int filter_dx_int() const { return m_dx_int; }
+ int filter_dy_int() const { return m_dy_int; }
+ double filter_dx_dbl() const { return m_dx_dbl; }
+ double filter_dy_dbl() const { return m_dy_dbl; }
+
+ //----------------------------------------------------------------
+ void source_image(const rendering_buffer& v) { m_src = &v; }
+ void background_color(const color_type& v) { m_back_color = v; }
+ void interpolator(interpolator_type& v) { m_interpolator = &v; }
+ void filter(const image_filter_lut& v) { m_filter = &v; }
+ void filter_offset(double dx, double dy)
+ {
+ m_dx_dbl = dx;
+ m_dy_dbl = dy;
+ m_dx_int = int(dx * image_subpixel_size);
+ m_dy_int = int(dy * image_subpixel_size);
+ }
+ void filter_offset(double d) { filter_offset(d, d); }
+
+ //----------------------------------------------------------------
+ interpolator_type& interpolator() { return *m_interpolator; }
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ base_type::prepare(max_span_len);
+ }
+
+ //----------------------------------------------------------------
+ private:
+ const rendering_buffer* m_src;
+ color_type m_back_color;
+ interpolator_type* m_interpolator;
+ const image_filter_lut* m_filter;
+ double m_dx_dbl;
+ double m_dy_dbl;
+ unsigned m_dx_int;
+ unsigned m_dy_int;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_image_filter_gray.h b/agg/inc/agg_span_image_filter_gray.h
new file mode 100755
index 000000000000..3f7ae6fcfa72
--- /dev/null
+++ b/agg/inc/agg_span_image_filter_gray.h
@@ -0,0 +1,701 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_IMAGE_FILTER_GRAY_INCLUDED
+#define AGG_SPAN_IMAGE_FILTER_GRAY_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_gray.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+
+ //==============================================span_image_filter_gray_nn
+ template<class ColorT,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_gray_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_nn(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ calc_type fg;
+ calc_type src_alpha;
+
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x >>= image_subpixel_shift;
+ y >>= image_subpixel_shift;
+
+ if(x >= 0 && y >= 0 &&
+ x <= maxx && y <= maxy)
+ {
+ fg = *((const value_type*)base_type::source_image().row(y) + x);
+ src_alpha = base_mask;
+ }
+ else
+ {
+ fg = base_type::background_color().v;
+ src_alpha = base_type::background_color().a;
+ }
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+ //========================================span_image_filter_gray_bilinear
+ template<class ColorT,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_gray_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_bilinear(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg;
+ calc_type src_alpha;
+ value_type back_v = base_type::background_color().v;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ fg = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr;
+
+ fg += *fg_ptr++ * (image_subpixel_size - x_hr) * (image_subpixel_size - y_hr);
+ fg += *fg_ptr++ * (image_subpixel_size - y_hr) * x_hr;
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 2);
+
+ fg += *fg_ptr++ * (image_subpixel_size - x_hr) * y_hr;
+ fg += *fg_ptr++ * x_hr * y_hr;
+
+ fg >>= image_subpixel_shift * 2;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ unsigned weight;
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg = back_v;
+ src_alpha = back_a;
+ }
+ else
+ {
+ fg =
+ src_alpha = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ fg >>= image_subpixel_shift * 2;
+ src_alpha >>= image_subpixel_shift * 2;
+ }
+ }
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //========================================span_image_filter_gray_2x2
+ template<class ColorT,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_gray_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_2x2(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg;
+ calc_type src_alpha;
+ value_type back_v = base_type::background_color().v;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ fg = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr;
+
+ fg += *fg_ptr++ * ((weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ fg += *fg_ptr++ * ((weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 2);
+
+ fg += *fg_ptr++ * ((weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ fg += *fg_ptr++ * ((weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+
+ fg >>= image_filter_shift;
+ if(fg > base_mask) fg = base_mask;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ unsigned weight;
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg = back_v;
+ src_alpha = back_a;
+ }
+ else
+ {
+ fg = src_alpha = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg += weight * *((const value_type*)base_type::source_image().row(y_lr) + x_lr);
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+ fg >>= image_filter_shift;
+ src_alpha >>= image_filter_shift;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg > src_alpha) fg = src_alpha;
+
+ }
+ }
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+ //================================================span_image_filter_gray
+ template<class ColorT,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_gray :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_gray(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ int fg;
+ int src_alpha;
+ value_type back_v = base_type::background_color().v;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type* fg_ptr;
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ int start1 = start - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() + start - 2;
+ int maxy = base_type::source_image().height() + start - 2;
+
+ int maxx2 = base_type::source_image().width() - start - 1;
+ int maxy2 = base_type::source_image().height() - start - 1;
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ fg = image_filter_size / 2;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ if(x_lr >= -start && y_lr >= -start &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr + start) + x_lr + start;
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ fg += *fg_ptr++ * ((weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ x_hr += image_subpixel_size;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - diameter);
+
+ } while(--y_count);
+
+ fg >>= image_filter_shift;
+
+ if(fg < 0) fg = 0;
+ if(fg > base_mask) fg = base_mask;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ if(x_lr < start1 || y_lr < start1 ||
+ x_lr > maxx2 || y_lr > maxy2)
+ {
+ fg = back_v;
+ src_alpha = back_a;
+ }
+ else
+ {
+ src_alpha = image_filter_size / 2;
+ y_lr = (y >> image_subpixel_shift) + start;
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_lr = (x >> image_subpixel_shift) + start;
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < int(base_type::source_image().width()) &&
+ y_lr < int(base_type::source_image().height()))
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr;
+ fg += *fg_ptr++ * weight;
+ src_alpha += base_mask * weight;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+ x_hr += image_subpixel_size;
+ x_lr++;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr++;
+
+ } while(--y_count);
+
+
+ fg >>= image_filter_shift;
+ src_alpha >>= image_filter_shift;
+
+ if(fg < 0) fg = 0;
+ if(src_alpha < 0) src_alpha = 0;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg > src_alpha) fg = src_alpha;
+ }
+ }
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_image_filter_rgb.h b/agg/inc/agg_span_image_filter_rgb.h
new file mode 100755
index 000000000000..d8f8142bfffb
--- /dev/null
+++ b/agg/inc/agg_span_image_filter_rgb.h
@@ -0,0 +1,840 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_IMAGE_FILTER_RGB_INCLUDED
+#define AGG_SPAN_IMAGE_FILTER_RGB_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+
+ //==============================================span_image_filter_rgb_nn
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgb_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_nn(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ calc_type fg[3];
+ calc_type src_alpha;
+
+ const value_type *fg_ptr;
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x >>= image_subpixel_shift;
+ y >>= image_subpixel_shift;
+
+ if(x >= 0 && y >= 0 &&
+ x <= maxx && y <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y) + x + x + x;
+ fg[0] = *fg_ptr++;
+ fg[1] = *fg_ptr++;
+ fg[2] = *fg_ptr++;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ fg[order_type::R] = base_type::background_color().r;
+ fg[order_type::G] = base_type::background_color().g;
+ fg[order_type::B] = base_type::background_color().b;
+ src_alpha = base_type::background_color().a;
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+ //=========================================span_image_filter_rgb_bilinear
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgb_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_bilinear(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[3];
+ calc_type src_alpha;
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+ unsigned weight;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ fg[0] =
+ fg[1] =
+ fg[2] = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ weight = x_hr * (image_subpixel_size - y_hr);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 6);
+
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ weight = x_hr * y_hr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ fg[0] >>= image_subpixel_shift * 2;
+ fg[1] >>= image_subpixel_shift * 2;
+ fg[2] >>= image_subpixel_shift * 2;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ src_alpha = back_a;
+ }
+ else
+ {
+ fg[0] =
+ fg[1] =
+ fg[2] =
+ src_alpha = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ fg[0] >>= image_subpixel_shift * 2;
+ fg[1] >>= image_subpixel_shift * 2;
+ fg[2] >>= image_subpixel_shift * 2;
+ src_alpha >>= image_subpixel_shift * 2;
+ }
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+
+ //=========================================span_image_filter_rgb_2x2
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgb_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_2x2(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[3];
+ calc_type src_alpha;
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+ unsigned weight;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 6);
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ src_alpha = base_mask;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+ }
+ else
+ {
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ src_alpha = back_a;
+ }
+ else
+ {
+ fg[0] = fg[1] = fg[2] = src_alpha = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr + x_lr + x_lr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ src_alpha += weight * base_mask;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ src_alpha >>= image_filter_shift;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg[0] > src_alpha) fg[0] = src_alpha;
+ if(fg[1] > src_alpha) fg[1] = src_alpha;
+ if(fg[2] > src_alpha) fg[2] = src_alpha;
+ }
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)src_alpha;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //=================================================span_image_filter_rgb
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgb :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgb(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ int fg[3];
+ int src_alpha;
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type* fg_ptr;
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ int start1 = start - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ unsigned step_back = diameter * 3;
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() + start - 2;
+ int maxy = base_type::source_image().height() + start - 2;
+
+ int maxx2 = base_type::source_image().width() - start - 1;
+ int maxy2 = base_type::source_image().height() - start - 1;
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ if(x_lr >= -start && y_lr >= -start &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr + start) + (x_lr + start) * 3;
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ fg[0] += *fg_ptr++ * weight;
+ fg[1] += *fg_ptr++ * weight;
+ fg[2] += *fg_ptr++ * weight;
+
+ x_hr += image_subpixel_size;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - step_back);
+
+ } while(--y_count);
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+ src_alpha = base_mask;
+ }
+ else
+ {
+ if(x_lr < start1 || y_lr < start1 ||
+ x_lr > maxx2 || y_lr > maxy2)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ src_alpha = back_a;
+ }
+ else
+ {
+ src_alpha = image_filter_size / 2;
+ y_lr = (y >> image_subpixel_shift) + start;
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_lr = (x >> image_subpixel_shift) + start;
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < int(base_type::source_image().width()) &&
+ y_lr < int(base_type::source_image().height()))
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + x_lr * 3;
+ fg[0] += *fg_ptr++ * weight;
+ fg[1] += *fg_ptr++ * weight;
+ fg[2] += *fg_ptr++ * weight;
+ src_alpha += base_mask * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ src_alpha += back_a * weight;
+ }
+ x_hr += image_subpixel_size;
+ x_lr++;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr++;
+
+ } while(--y_count);
+
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ src_alpha >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(src_alpha < 0) src_alpha = 0;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg[0] > src_alpha) fg[0] = src_alpha;
+ if(fg[1] > src_alpha) fg[1] = src_alpha;
+ if(fg[2] > src_alpha) fg[2] = src_alpha;
+ }
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)src_alpha;
+
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_image_filter_rgba.h b/agg/inc/agg_span_image_filter_rgba.h
new file mode 100755
index 000000000000..42b822c99b9b
--- /dev/null
+++ b/agg/inc/agg_span_image_filter_rgba.h
@@ -0,0 +1,864 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+//
+// classes span_image_filter_rgba32*
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_IMAGE_FILTER_RGBA_INCLUDED
+#define AGG_SPAN_IMAGE_FILTER_RGBA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+ //=============================================span_image_filter_rgba_nn
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgba_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_nn(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ calc_type fg[4];
+
+ const value_type *fg_ptr;
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x >>= image_subpixel_shift;
+ y >>= image_subpixel_shift;
+
+ if(x >= 0 && y >= 0 &&
+ x <= maxx && y <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y) + (x << 2);
+ fg[0] = *fg_ptr++;
+ fg[1] = *fg_ptr++;
+ fg[2] = *fg_ptr++;
+ fg[3] = *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] = base_type::background_color().r;
+ fg[order_type::G] = base_type::background_color().g;
+ fg[order_type::B] = base_type::background_color().b;
+ fg[order_type::A] = base_type::background_color().a;
+ }
+
+ span->r = fg[order_type::R];
+ span->g = fg[order_type::G];
+ span->b = fg[order_type::B];
+ span->a = fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ };
+
+
+
+
+
+
+
+ //=======================================span_image_filter_rgba_bilinear
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgba_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_bilinear(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter) :
+ base_type(alloc, src, back_color, inter, 0)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ calc_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned weight;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ fg[0] =
+ fg[1] =
+ fg[2] =
+ fg[3] = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ weight = x_hr * (image_subpixel_size - y_hr);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 8);
+
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ weight = x_hr * y_hr;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ fg[0] >>= image_subpixel_shift * 2;
+ fg[1] >>= image_subpixel_shift * 2;
+ fg[2] >>= image_subpixel_shift * 2;
+ fg[3] >>= image_subpixel_shift * 2;
+ }
+ else
+ {
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ fg[order_type::A] = back_a;
+ }
+ else
+ {
+ fg[0] =
+ fg[1] =
+ fg[2] =
+ fg[3] = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * (image_subpixel_size - y_hr);
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = x_hr * y_hr;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ fg[0] >>= image_subpixel_shift * 2;
+ fg[1] >>= image_subpixel_shift * 2;
+ fg[2] >>= image_subpixel_shift * 2;
+ fg[3] >>= image_subpixel_shift * 2;
+ }
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //=======================================span_image_filter_rgba_2x2
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgba_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_2x2(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ calc_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ color_type* span = base_type::allocator().span();
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned weight;
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < maxx && y_lr < maxy)
+ {
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - 8);
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+ }
+ else
+ {
+ if(x_lr < -1 || y_lr < -1 ||
+ x_lr > maxx || y_lr > maxy)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ fg[order_type::A] = back_a;
+ }
+ else
+ {
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr--;
+ y_lr++;
+
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ x_lr++;
+
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += weight * *fg_ptr++;
+ fg[1] += weight * *fg_ptr++;
+ fg[2] += weight * *fg_ptr++;
+ fg[3] += weight * *fg_ptr++;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+ }
+ }
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //================================================span_image_filter_rgba
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_filter_rgba :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_filter_rgba(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ int fg[4];
+
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ const value_type *fg_ptr;
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ int start1 = start - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ unsigned step_back = diameter << 2;
+ color_type* span = base_type::allocator().span();
+
+ int maxx = base_type::source_image().width() + start - 2;
+ int maxy = base_type::source_image().height() + start - 2;
+
+ int maxx2 = base_type::source_image().width() - start - 1;
+ int maxy2 = base_type::source_image().height() - start - 1;
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ if(x_lr >= -start && y_lr >= -start &&
+ x_lr <= maxx && y_lr <= maxy)
+ {
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr + start) + ((x_lr + start) << 2);
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ fg[0] += *fg_ptr++ * weight;
+ fg[1] += *fg_ptr++ * weight;
+ fg[2] += *fg_ptr++ * weight;
+ fg[3] += *fg_ptr++ * weight;
+
+ x_hr += image_subpixel_size;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ fg_ptr = (const value_type*)base_type::source_image().next_row(fg_ptr - step_back);
+
+ } while(--y_count);
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+ }
+ else
+ {
+ if(x_lr < start1 || y_lr < start1 ||
+ x_lr > maxx2 || y_lr > maxy2)
+ {
+ fg[order_type::R] = back_r;
+ fg[order_type::G] = back_g;
+ fg[order_type::B] = back_b;
+ fg[order_type::A] = back_a;
+ }
+ else
+ {
+ y_lr = (y >> image_subpixel_shift) + start;
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_lr = (x >> image_subpixel_shift) + start;
+ x_hr = image_subpixel_mask - x_fract;
+
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ if(x_lr >= 0 && y_lr >= 0 &&
+ x_lr < int(base_type::source_image().width()) &&
+ y_lr < int(base_type::source_image().height()))
+ {
+ fg_ptr = (const value_type*)base_type::source_image().row(y_lr) + (x_lr << 2);
+ fg[0] += *fg_ptr++ * weight;
+ fg[1] += *fg_ptr++ * weight;
+ fg[2] += *fg_ptr++ * weight;
+ fg[3] += *fg_ptr++ * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+ x_hr += image_subpixel_size;
+ x_lr++;
+
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr++;
+
+ } while(--y_count);
+
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+ }
+ }
+
+ span->r = fg[order_type::R];
+ span->g = fg[order_type::G];
+ span->b = fg[order_type::B];
+ span->a = fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ };
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_image_resample.h b/agg/inc/agg_span_image_resample.h
new file mode 100755
index 000000000000..f4dfd57455d7
--- /dev/null
+++ b/agg/inc/agg_span_image_resample.h
@@ -0,0 +1,180 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_IMAGE_RESAMPLE_INCLUDED
+#define AGG_SPAN_IMAGE_RESAMPLE_INCLUDED
+
+#include "agg_span_image_filter.h"
+#include "agg_span_interpolator_linear.h"
+
+
+namespace agg
+{
+
+
+ //=====================================================span_image_resample
+ template<class ColorT, class Interpolator, class Allocator>
+ class span_image_resample :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+
+ //--------------------------------------------------------------------
+ span_image_resample(alloc_type& alloc) :
+ base_type(alloc),
+ m_scale_limit(20),
+ m_blur_x(image_subpixel_size),
+ m_blur_y(image_subpixel_size)
+ {}
+
+ //--------------------------------------------------------------------
+ span_image_resample(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, &filter),
+ m_scale_limit(20),
+ m_blur_x(image_subpixel_size),
+ m_blur_y(image_subpixel_size)
+ {}
+
+
+ //--------------------------------------------------------------------
+ int scale_limit() const { return m_scale_limit; }
+ void scale_limit(int v) { m_scale_limit = v; }
+
+ //--------------------------------------------------------------------
+ double blur_x() const { return double(m_blur_x) / double(image_subpixel_size); }
+ double blur_y() const { return double(m_blur_y) / double(image_subpixel_size); }
+ void blur_x(double v) { m_blur_x = int(v * double(image_subpixel_size) + 0.5); }
+ void blur_y(double v) { m_blur_y = int(v * double(image_subpixel_size) + 0.5); }
+ void blur(double v) { m_blur_x =
+ m_blur_y = int(v * double(image_subpixel_size) + 0.5); }
+
+ protected:
+ int m_scale_limit;
+ int m_blur_x;
+ int m_blur_y;
+ };
+
+
+
+
+
+
+
+
+ //==============================================span_image_resample_affine
+ template<class ColorT, class Allocator>
+ class span_image_resample_affine :
+ public span_image_filter<ColorT, span_interpolator_linear<trans_affine>, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef span_interpolator_linear<trans_affine> interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+
+ //--------------------------------------------------------------------
+ span_image_resample_affine(alloc_type& alloc) :
+ base_type(alloc),
+ m_scale_limit(200.0),
+ m_blur_x(1.0),
+ m_blur_y(1.0)
+ {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter_) :
+ base_type(alloc, src, back_color, inter, &filter_),
+ m_scale_limit(200.0),
+ m_blur_x(1.0),
+ m_blur_y(1.0)
+ {}
+
+
+ //--------------------------------------------------------------------
+ int scale_limit() const { return int(m_scale_limit); }
+ void scale_limit(int v) { m_scale_limit = v; }
+
+ //--------------------------------------------------------------------
+ double blur_x() const { return m_blur_x; }
+ double blur_y() const { return m_blur_y; }
+ void blur_x(double v) { m_blur_x = v; }
+ void blur_y(double v) { m_blur_y = v; }
+ void blur(double v) { m_blur_x = m_blur_y = v; }
+
+
+ //--------------------------------------------------------------------
+ void prepare(unsigned max_span_len)
+ {
+ base_type::prepare(max_span_len);
+
+ double scale_x;
+ double scale_y;
+
+ base_type::interpolator().transformer().scaling_abs(&scale_x, &scale_y);
+
+ m_rx = image_subpixel_size;
+ m_ry = image_subpixel_size;
+ m_rx_inv = image_subpixel_size;
+ m_ry_inv = image_subpixel_size;
+
+ scale_x *= m_blur_x;
+ scale_y *= m_blur_y;
+
+ if(scale_x * scale_y > m_scale_limit)
+ {
+ scale_x = scale_x * m_scale_limit / (scale_x * scale_y);
+ scale_y = scale_y * m_scale_limit / (scale_x * scale_y);
+ }
+
+ if(scale_x > 1.0001)
+ {
+ if(scale_x > m_scale_limit) scale_x = m_scale_limit;
+ m_rx = int( scale_x * double(image_subpixel_size) + 0.5);
+ m_rx_inv = int(1.0/scale_x * double(image_subpixel_size) + 0.5);
+ }
+
+ if(scale_y > 1.0001)
+ {
+ if(scale_y > m_scale_limit) scale_y = m_scale_limit;
+ m_ry = int( scale_y * double(image_subpixel_size) + 0.5);
+ m_ry_inv = int(1.0/scale_y * double(image_subpixel_size) + 0.5);
+ }
+ }
+
+ protected:
+ int m_rx;
+ int m_ry;
+ int m_rx_inv;
+ int m_ry_inv;
+
+ private:
+ double m_scale_limit;
+ double m_blur_x;
+ double m_blur_y;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_image_resample_gray.h b/agg/inc/agg_span_image_resample_gray.h
new file mode 100755
index 000000000000..3d046462cd8c
--- /dev/null
+++ b/agg/inc/agg_span_image_resample_gray.h
@@ -0,0 +1,359 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_IMAGE_RESAMPLE_GRAY_INCLUDED
+#define AGG_SPAN_IMAGE_RESAMPLE_GRAY_INCLUDED
+
+#include "agg_color_gray.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //========================================span_image_resample_gray_affine
+ template<class ColorT,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_gray_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_gray_affine(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_gray_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ long_type fg;
+ long_type src_alpha;
+ value_type back_v = base_type::background_color().v;
+ value_type back_a = base_type::background_color().a;
+
+ color_type* span = base_type::allocator().span();
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg = src_alpha = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + x_lr;
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg += *fg_ptr * weight;
+ src_alpha += base_mask * weight;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+ total_weight += weight;
+ x_hr += base_type::m_rx_inv;
+ ++fg_ptr;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ x_hr += base_type::m_rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += base_type::m_ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg /= total_weight;
+ src_alpha /= total_weight;
+
+ if(fg < 0) fg = 0;
+ if(src_alpha < 0) src_alpha = 0;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg > src_alpha) fg = src_alpha;
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //==============================================span_image_resample_gray
+ template<class ColorT,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_gray :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_gray(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_gray(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg;
+ long_type src_alpha;
+ value_type back_v = base_type::background_color().v;
+ value_type back_a = base_type::background_color().a;
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ base_type::interpolator().coordinates(&x, &y);
+ base_type::interpolator().local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg = src_alpha = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + x_lr;
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg += *fg_ptr * weight;
+ src_alpha += base_mask * weight;
+ }
+ else
+ {
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ }
+ total_weight += weight;
+ x_hr += rx_inv;
+ ++fg_ptr;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg += back_v * weight;
+ src_alpha += back_a * weight;
+ x_hr += rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg /= total_weight;
+ src_alpha /= total_weight;
+
+ if(fg < 0) fg = 0;
+ if(src_alpha < 0) src_alpha = 0;
+
+ if(src_alpha > base_mask) src_alpha = base_mask;
+ if(fg > src_alpha) fg = src_alpha;
+
+ span->v = (value_type)fg;
+ span->a = (value_type)src_alpha;
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_image_resample_rgb.h b/agg/inc/agg_span_image_resample_rgb.h
new file mode 100755
index 000000000000..de25dd4b382b
--- /dev/null
+++ b/agg/inc/agg_span_image_resample_rgb.h
@@ -0,0 +1,393 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_IMAGE_RESAMPLE_RGB_INCLUDED
+#define AGG_SPAN_IMAGE_RESAMPLE_RGB_INCLUDED
+
+#include "agg_color_rgba.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //=========================================span_image_resample_rgb_affine
+ template<class ColorT,
+ class Order,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_rgb_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgb_affine(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgb_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ long_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ color_type* span = base_type::allocator().span();
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + x_lr * 3;
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += base_mask * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[3] += back_a * weight;
+ }
+ total_weight += weight;
+ fg_ptr += 3;
+ x_hr += base_type::m_rx_inv;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[3] += back_a * weight;
+ x_hr += base_type::m_rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += base_type::m_ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[3] > base_mask) fg[3] = base_mask;
+ if(fg[0] > fg[3]) fg[0] = fg[3];
+ if(fg[1] > fg[3]) fg[1] = fg[3];
+ if(fg[2] > fg[3]) fg[2] = fg[3];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[3];
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //===============================================span_image_resample_rgb
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_rgb :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgb(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgb(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ base_type::interpolator().coordinates(&x, &y);
+ base_type::interpolator().local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + x_lr * 3;
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += base_mask * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[3] += back_a * weight;
+ }
+ total_weight += weight;
+ fg_ptr += 3;
+ x_hr += rx_inv;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[3] += back_a * weight;
+ x_hr += rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[3] > base_mask) fg[3] = base_mask;
+ if(fg[0] > fg[3]) fg[0] = fg[3];
+ if(fg[1] > fg[3]) fg[1] = fg[3];
+ if(fg[2] > fg[3]) fg[2] = fg[3];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[3];
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_image_resample_rgba.h b/agg/inc/agg_span_image_resample_rgba.h
new file mode 100755
index 000000000000..40f7ccb42e00
--- /dev/null
+++ b/agg/inc/agg_span_image_resample_rgba.h
@@ -0,0 +1,393 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_IMAGE_RESAMPLE_RGBA_INCLUDED
+#define AGG_SPAN_IMAGE_RESAMPLE_RGBA_INCLUDED
+
+#include "agg_color_rgba.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //========================================span_image_resample_rgba_affine
+ template<class ColorT,
+ class Order,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_rgba_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgba_affine(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgba_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+
+ long_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ color_type* span = base_type::allocator().span();
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + (x_lr << 2);
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += fg_ptr[3] * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+ total_weight += weight;
+ fg_ptr += 4;
+ x_hr += base_type::m_rx_inv;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ x_hr += base_type::m_rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += base_type::m_ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+ };
+
+
+
+
+
+
+
+ //==============================================span_image_resample_rgba
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class Allocator = span_allocator<ColorT> >
+ class span_image_resample_rgba :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgba(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_image_resample_rgba(alloc_type& alloc,
+ const rendering_buffer& src,
+ const color_type& back_color,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, back_color, inter, filter)
+ {}
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[4];
+ value_type back_r = base_type::background_color().r;
+ value_type back_g = base_type::background_color().g;
+ value_type back_b = base_type::background_color().b;
+ value_type back_a = base_type::background_color().a;
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ base_type::interpolator().coordinates(&x, &y);
+ base_type::interpolator().local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = y >> image_subpixel_shift;
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = x_lr_ini;
+ int x_hr = x_hr_ini;
+ if(y_lr >= 0 && y_lr <= maxy)
+ {
+ const value_type* fg_ptr = (const value_type*)
+ base_type::source_image().row(y_lr) + (x_lr << 2);
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ if(x_lr >= 0 && x_lr <= maxx)
+ {
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += fg_ptr[3] * weight;
+ }
+ else
+ {
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ }
+ total_weight += weight;
+ fg_ptr += 4;
+ x_hr += rx_inv;
+ ++x_lr;
+ }
+ while(x_hr < filter_size);
+ }
+ else
+ {
+ do
+ {
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ total_weight += weight;
+ fg[order_type::R] += back_r * weight;
+ fg[order_type::G] += back_g * weight;
+ fg[order_type::B] += back_b * weight;
+ fg[order_type::A] += back_a * weight;
+ x_hr += rx_inv;
+ }
+ while(x_hr < filter_size);
+ }
+ y_hr += ry_inv;
+ ++y_lr;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::R]) fg[order_type::R] = fg[order_type::R];
+ if(fg[order_type::G] > fg[order_type::G]) fg[order_type::G] = fg[order_type::G];
+ if(fg[order_type::B] > fg[order_type::B]) fg[order_type::B] = fg[order_type::B];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+
+ ++span;
+ ++base_type::interpolator();
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_interpolator_adaptor.h b/agg/inc/agg_span_interpolator_adaptor.h
new file mode 100755
index 000000000000..ead42c13590c
--- /dev/null
+++ b/agg/inc/agg_span_interpolator_adaptor.h
@@ -0,0 +1,77 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_INTERPOLATOR_ADAPTOR_INCLUDED
+#define AGG_SPAN_INTERPOLATOR_ADAPTOR_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //===============================================span_interpolator_adaptor
+ template<class Interpolator, class Distortion>
+ class span_interpolator_adaptor : public Interpolator
+ {
+ public:
+ typedef Interpolator base_type;
+ typedef typename base_type::trans_type trans_type;
+ typedef Distortion distortion_type;
+
+ //--------------------------------------------------------------------
+ span_interpolator_adaptor() {}
+ span_interpolator_adaptor(const trans_type& trans,
+ const distortion_type& dist) :
+ base_type(trans),
+ m_distortion(&dist)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ span_interpolator_adaptor(const trans_type& trans,
+ const distortion_type& dist,
+ double x, double y, unsigned len) :
+ base_type(trans, x, y, len),
+ m_distortion(&dist)
+ {
+ }
+
+ //--------------------------------------------------------------------
+ const distortion_type& distortion() const
+ {
+ return *m_distortion;
+ }
+
+ //--------------------------------------------------------------------
+ void distortion(const distortion_type& dist)
+ {
+ m_distortion = dist;
+ }
+
+ //--------------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ base_type::coordinates(x, y);
+ m_distortion->calculate(x, y);
+ }
+
+ private:
+ //--------------------------------------------------------------------
+ const distortion_type* m_distortion;
+ };
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_interpolator_linear.h b/agg/inc/agg_span_interpolator_linear.h
new file mode 100755
index 000000000000..3cc2426be450
--- /dev/null
+++ b/agg/inc/agg_span_interpolator_linear.h
@@ -0,0 +1,232 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_INTERPOLATOR_LINEAR_INCLUDED
+#define AGG_SPAN_INTERPOLATOR_LINEAR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_dda_line.h"
+#include "agg_trans_affine.h"
+
+namespace agg
+{
+
+ //================================================span_interpolator_linear
+ template<class Transformer = trans_affine, unsigned SubpixelShift = 8>
+ class span_interpolator_linear
+ {
+ public:
+ typedef Transformer trans_type;
+
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_interpolator_linear() {}
+ span_interpolator_linear(const trans_type& trans) : m_trans(&trans) {}
+ span_interpolator_linear(const trans_type& trans,
+ double x, double y, unsigned len) :
+ m_trans(&trans)
+ {
+ begin(x, y, len);
+ }
+
+ //----------------------------------------------------------------
+ const trans_type& transformer() const { return *m_trans; }
+ void transformer(const trans_type& trans) { m_trans = &trans; }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned len)
+ {
+ double tx;
+ double ty;
+
+ tx = x;
+ ty = y;
+ m_trans->transform(&tx, &ty);
+ int x1 = int(tx * subpixel_size);
+ int y1 = int(ty * subpixel_size);
+
+ tx = x + len;
+ ty = y;
+ m_trans->transform(&tx, &ty);
+ int x2 = int(tx * subpixel_size);
+ int y2 = int(ty * subpixel_size);
+
+ m_li_x = dda2_line_interpolator(x1, x2, len);
+ m_li_y = dda2_line_interpolator(y1, y2, len);
+ }
+
+ //----------------------------------------------------------------
+ void resynchronize(double xe, double ye, unsigned len)
+ {
+ m_trans->transform(&xe, &ye);
+ m_li_x = dda2_line_interpolator(m_li_x.y(), int(xe * subpixel_size), len);
+ m_li_y = dda2_line_interpolator(m_li_y.y(), int(ye * subpixel_size), len);
+ }
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ ++m_li_x;
+ ++m_li_y;
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ *x = m_li_x.y();
+ *y = m_li_y.y();
+ }
+
+ private:
+ const trans_type* m_trans;
+ dda2_line_interpolator m_li_x;
+ dda2_line_interpolator m_li_y;
+ };
+
+
+
+
+
+
+ //=====================================span_interpolator_linear_subdiv
+ template<class Transformer = trans_affine, unsigned SubpixelShift = 8>
+ class span_interpolator_linear_subdiv
+ {
+ public:
+ typedef Transformer trans_type;
+
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+
+ //----------------------------------------------------------------
+ span_interpolator_linear_subdiv() :
+ m_subdiv_shift(4),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1) {}
+
+ span_interpolator_linear_subdiv(const trans_type& trans,
+ unsigned subdiv_shift = 4) :
+ m_subdiv_shift(subdiv_shift),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1),
+ m_trans(&trans) {}
+
+ span_interpolator_linear_subdiv(const trans_type& trans,
+ double x, double y, unsigned len,
+ unsigned subdiv_shift = 4) :
+ m_subdiv_shift(subdiv_shift),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1),
+ m_trans(&trans)
+ {
+ begin(x, y, len);
+ }
+
+ //----------------------------------------------------------------
+ const trans_type& transformer() const { return *m_trans; }
+ void transformer(const trans_type& trans) { m_trans = &trans; }
+
+ //----------------------------------------------------------------
+ unsigned subdiv_shift() const { return m_subdiv_shift; }
+ void subdiv_shift(unsigned shift)
+ {
+ m_subdiv_shift = shift;
+ m_subdiv_size = 1 << m_subdiv_shift;
+ m_subdiv_mask = m_subdiv_size - 1;
+ }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned len)
+ {
+ double tx;
+ double ty;
+ m_pos = 1;
+ m_src_x = int(x * subpixel_size) + subpixel_size;
+ m_src_y = y;
+ m_len = len;
+
+ if(len > m_subdiv_size) len = m_subdiv_size;
+ tx = x;
+ ty = y;
+ m_trans->transform(&tx, &ty);
+ int x1 = int(tx * subpixel_size);
+ int y1 = int(ty * subpixel_size);
+
+ tx = x + len;
+ ty = y;
+ m_trans->transform(&tx, &ty);
+
+ m_li_x = dda2_line_interpolator(x1, int(tx * subpixel_size), len);
+ m_li_y = dda2_line_interpolator(y1, int(ty * subpixel_size), len);
+ }
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ ++m_li_x;
+ ++m_li_y;
+ if(m_pos >= m_subdiv_size)
+ {
+ unsigned len = m_len;
+ if(len > m_subdiv_size) len = m_subdiv_size;
+ double tx = double(m_src_x) / double(subpixel_size) + len;
+ double ty = m_src_y;
+ m_trans->transform(&tx, &ty);
+ m_li_x = dda2_line_interpolator(m_li_x.y(), int(tx * subpixel_size), len);
+ m_li_y = dda2_line_interpolator(m_li_y.y(), int(ty * subpixel_size), len);
+ m_pos = 0;
+ }
+ m_src_x += subpixel_size;
+ ++m_pos;
+ --m_len;
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ *x = m_li_x.y();
+ *y = m_li_y.y();
+ }
+
+ private:
+ unsigned m_subdiv_shift;
+ unsigned m_subdiv_size;
+ unsigned m_subdiv_mask;
+ const trans_type* m_trans;
+ dda2_line_interpolator m_li_x;
+ dda2_line_interpolator m_li_y;
+ int m_src_x;
+ double m_src_y;
+ unsigned m_pos;
+ unsigned m_len;
+ };
+
+
+}
+
+
+
+#endif
+
+
diff --git a/agg/inc/agg_span_interpolator_persp.h b/agg/inc/agg_span_interpolator_persp.h
new file mode 100755
index 000000000000..632a56449f28
--- /dev/null
+++ b/agg/inc/agg_span_interpolator_persp.h
@@ -0,0 +1,462 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_INTERPOLATOR_PERSP_INCLUDED
+#define AGG_SPAN_INTERPOLATOR_PERSP_INCLUDED
+
+#include "agg_trans_perspective.h"
+#include "agg_dda_line.h"
+
+namespace agg
+{
+
+
+
+ //===========================================span_interpolator_persp_exact
+ template<unsigned SubpixelShift = 8>
+ class span_interpolator_persp_exact
+ {
+ public:
+ typedef trans_perspective trans_type;
+ typedef trans_perspective::iterator_x iterator_type;
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_interpolator_persp_exact() {}
+
+ //--------------------------------------------------------------------
+ // Arbitrary quadrangle transformations
+ span_interpolator_persp_exact(const double* src, const double* dst)
+ {
+ quad_to_quad(src, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Direct transformations
+ span_interpolator_persp_exact(double x1, double y1,
+ double x2, double y2,
+ const double* quad)
+ {
+ rect_to_quad(x1, y1, x2, y2, quad);
+ }
+
+ //--------------------------------------------------------------------
+ // Reverse transformations
+ span_interpolator_persp_exact(const double* quad,
+ double x1, double y1,
+ double x2, double y2)
+ {
+ quad_to_rect(quad, x1, y1, x2, y2);
+ }
+
+ //--------------------------------------------------------------------
+ // Set the transformations using two arbitrary quadrangles.
+ void quad_to_quad(const double* src, const double* dst)
+ {
+ m_trans_dir.quad_to_quad(src, dst);
+ m_trans_inv.quad_to_quad(dst, src);
+ }
+
+ //--------------------------------------------------------------------
+ // Set the direct transformations, i.e., rectangle -> quadrangle
+ void rect_to_quad(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ double src[8];
+ src[0] = src[6] = x1;
+ src[2] = src[4] = x2;
+ src[1] = src[3] = y1;
+ src[5] = src[7] = y2;
+ quad_to_quad(src, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the reverse transformations, i.e., quadrangle -> rectangle
+ void quad_to_rect(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ double dst[8];
+ dst[0] = dst[6] = x1;
+ dst[2] = dst[4] = x2;
+ dst[1] = dst[3] = y1;
+ dst[5] = dst[7] = y2;
+ quad_to_quad(quad, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Check if the equations were solved successfully
+ bool is_valid() const { return m_trans_dir.is_valid(); }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned len)
+ {
+ m_iterator = m_trans_dir.begin(x, y, 1.0);
+ double xt = m_iterator.x;
+ double yt = m_iterator.y;
+
+ double dx;
+ double dy;
+ const double delta = 1/double(subpixel_size);
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sx1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sy1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ x += len;
+ xt = x;
+ yt = y;
+ m_trans_dir.transform(&xt, &yt);
+
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ m_scale_x = dda2_line_interpolator(sx1, sx2, len);
+ m_scale_y = dda2_line_interpolator(sy1, sy2, len);
+ }
+
+
+ //----------------------------------------------------------------
+ void resynchronize(double xe, double ye, unsigned len)
+ {
+ // Assume x1,y1 are equal to the ones at the previous end point
+ int sx1 = m_scale_x.y();
+ int sy1 = m_scale_y.y();
+
+ // Calculate transformed coordinates at x2,y2
+ double xt = xe;
+ double yt = ye;
+ m_trans_dir.transform(&xt, &yt);
+
+ const double delta = 1/double(subpixel_size);
+ double dx;
+ double dy;
+
+ // Calculate scale by X at x2,y2
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= xe;
+ dy -= ye;
+ int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Calculate scale by Y at x2,y2
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= xe;
+ dy -= ye;
+ int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Initialize the interpolators
+ m_scale_x = dda2_line_interpolator(sx1, sx2, len);
+ m_scale_y = dda2_line_interpolator(sy1, sy2, len);
+ }
+
+
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ ++m_iterator;
+ ++m_scale_x;
+ ++m_scale_y;
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ *x = int(m_iterator.x * subpixel_size + 0.5);
+ *y = int(m_iterator.y * subpixel_size + 0.5);
+ }
+
+ //----------------------------------------------------------------
+ void local_scale(int* x, int* y)
+ {
+ *x = m_scale_x.y();
+ *y = m_scale_y.y();
+ }
+
+ //----------------------------------------------------------------
+ void transform(double* x, double* y) const
+ {
+ m_trans_dir.transform(x, y);
+ }
+
+ private:
+ trans_type m_trans_dir;
+ trans_type m_trans_inv;
+ iterator_type m_iterator;
+ dda2_line_interpolator m_scale_x;
+ dda2_line_interpolator m_scale_y;
+ };
+
+
+
+
+
+
+
+
+
+
+
+ //============================================span_interpolator_persp_lerp
+ template<unsigned SubpixelShift = 8>
+ class span_interpolator_persp_lerp
+ {
+ public:
+ typedef trans_perspective trans_type;
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_interpolator_persp_lerp() {}
+
+ //--------------------------------------------------------------------
+ // Arbitrary quadrangle transformations
+ span_interpolator_persp_lerp(const double* src, const double* dst)
+ {
+ quad_to_quad(src, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Direct transformations
+ span_interpolator_persp_lerp(double x1, double y1,
+ double x2, double y2,
+ const double* quad)
+ {
+ rect_to_quad(x1, y1, x2, y2, quad);
+ }
+
+ //--------------------------------------------------------------------
+ // Reverse transformations
+ span_interpolator_persp_lerp(const double* quad,
+ double x1, double y1,
+ double x2, double y2)
+ {
+ quad_to_rect(quad, x1, y1, x2, y2);
+ }
+
+ //--------------------------------------------------------------------
+ // Set the transformations using two arbitrary quadrangles.
+ void quad_to_quad(const double* src, const double* dst)
+ {
+ m_trans_dir.quad_to_quad(src, dst);
+ m_trans_inv.quad_to_quad(dst, src);
+ }
+
+ //--------------------------------------------------------------------
+ // Set the direct transformations, i.e., rectangle -> quadrangle
+ void rect_to_quad(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ double src[8];
+ src[0] = src[6] = x1;
+ src[2] = src[4] = x2;
+ src[1] = src[3] = y1;
+ src[5] = src[7] = y2;
+ quad_to_quad(src, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the reverse transformations, i.e., quadrangle -> rectangle
+ void quad_to_rect(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ double dst[8];
+ dst[0] = dst[6] = x1;
+ dst[2] = dst[4] = x2;
+ dst[1] = dst[3] = y1;
+ dst[5] = dst[7] = y2;
+ quad_to_quad(quad, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Check if the equations were solved successfully
+ bool is_valid() const { return m_trans_dir.is_valid(); }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned len)
+ {
+ // Calculate transformed coordinates at x1,y1
+ double xt = x;
+ double yt = y;
+ m_trans_dir.transform(&xt, &yt);
+ int x1 = int(xt * subpixel_size);
+ int y1 = int(yt * subpixel_size);
+
+ double dx;
+ double dy;
+ const double delta = 1/double(subpixel_size);
+
+ // Calculate scale by X at x1,y1
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sx1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Calculate scale by Y at x1,y1
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sy1 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Calculate transformed coordinates at x2,y2
+ x += len;
+ xt = x;
+ yt = y;
+ m_trans_dir.transform(&xt, &yt);
+ int x2 = int(xt * subpixel_size);
+ int y2 = int(yt * subpixel_size);
+
+ // Calculate scale by X at x2,y2
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Calculate scale by Y at x2,y2
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= x;
+ dy -= y;
+ int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Initialize the interpolators
+ m_coord_x = dda2_line_interpolator(x1, x2, len);
+ m_coord_y = dda2_line_interpolator(y1, y2, len);
+ m_scale_x = dda2_line_interpolator(sx1, sx2, len);
+ m_scale_y = dda2_line_interpolator(sy1, sy2, len);
+ }
+
+
+ //----------------------------------------------------------------
+ void resynchronize(double xe, double ye, unsigned len)
+ {
+ // Assume x1,y1 are equal to the ones at the previous end point
+ int x1 = m_coord_x.y();
+ int y1 = m_coord_y.y();
+ int sx1 = m_scale_x.y();
+ int sy1 = m_scale_y.y();
+
+ // Calculate transformed coordinates at x2,y2
+ double xt = xe;
+ double yt = ye;
+ m_trans_dir.transform(&xt, &yt);
+ int x2 = int(xt * subpixel_size);
+ int y2 = int(yt * subpixel_size);
+
+ const double delta = 1/double(subpixel_size);
+ double dx;
+ double dy;
+
+ // Calculate scale by X at x2,y2
+ dx = xt + delta;
+ dy = yt;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= xe;
+ dy -= ye;
+ int sx2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Calculate scale by Y at x2,y2
+ dx = xt;
+ dy = yt + delta;
+ m_trans_inv.transform(&dx, &dy);
+ dx -= xe;
+ dy -= ye;
+ int sy2 = int(subpixel_size/sqrt(dx*dx + dy*dy)) >> subpixel_shift;
+
+ // Initialize the interpolators
+ m_coord_x = dda2_line_interpolator(x1, x2, len);
+ m_coord_y = dda2_line_interpolator(y1, y2, len);
+ m_scale_x = dda2_line_interpolator(sx1, sx2, len);
+ m_scale_y = dda2_line_interpolator(sy1, sy2, len);
+ }
+
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ ++m_coord_x;
+ ++m_coord_y;
+ ++m_scale_x;
+ ++m_scale_y;
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ *x = m_coord_x.y();
+ *y = m_coord_y.y();
+ }
+
+ //----------------------------------------------------------------
+ void local_scale(int* x, int* y)
+ {
+ *x = m_scale_x.y();
+ *y = m_scale_y.y();
+ }
+
+ //----------------------------------------------------------------
+ void transform(double* x, double* y) const
+ {
+ m_trans_dir.transform(x, y);
+ }
+
+ private:
+ trans_type m_trans_dir;
+ trans_type m_trans_inv;
+ dda2_line_interpolator m_coord_x;
+ dda2_line_interpolator m_coord_y;
+ dda2_line_interpolator m_scale_x;
+ dda2_line_interpolator m_scale_y;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_interpolator_trans.h b/agg/inc/agg_span_interpolator_trans.h
new file mode 100755
index 000000000000..5caaffe9e5c0
--- /dev/null
+++ b/agg/inc/agg_span_interpolator_trans.h
@@ -0,0 +1,97 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Horizontal span interpolator for use with an arbitrary transformer
+// The efficiency highly depends on the operations done in the transformer
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_INTERPOLATOR_TRANS_INCLUDED
+#define AGG_SPAN_INTERPOLATOR_TRANS_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ //=================================================span_interpolator_trans
+ template<class Transformer, unsigned SubpixelShift = 8>
+ class span_interpolator_trans
+ {
+ public:
+ typedef Transformer trans_type;
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_interpolator_trans() {}
+ span_interpolator_trans(const trans_type& trans) : m_trans(&trans) {}
+ span_interpolator_trans(const trans_type& trans,
+ double x, double y, unsigned) :
+ m_trans(&trans)
+ {
+ begin(x, y, 0);
+ }
+
+ //----------------------------------------------------------------
+ const trans_type& transformer() const { return *m_trans; }
+ void transformer(const trans_type& trans) { m_trans = &trans; }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned)
+ {
+ m_x = x;
+ m_y = y;
+ m_trans->transform(&x, &y);
+ m_ix = int(x * subpixel_size);
+ m_iy = int(y * subpixel_size);
+ }
+
+ //----------------------------------------------------------------
+ void next(double, double, unsigned)
+ {
+ }
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ m_x += 1.0;
+ double x = m_x;
+ double y = m_y;
+ m_trans->transform(&x, &y);
+ m_ix = int(x * subpixel_size);
+ m_iy = int(y * subpixel_size);
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ *x = m_ix;
+ *y = m_iy;
+ }
+
+ private:
+ const trans_type* m_trans;
+ double m_x;
+ double m_y;
+ int m_ix;
+ int m_iy;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_pattern.h b/agg/inc/agg_span_pattern.h
new file mode 100755
index 000000000000..b9e9b135ff84
--- /dev/null
+++ b/agg/inc/agg_span_pattern.h
@@ -0,0 +1,278 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+
+#ifndef AGG_SPAN_PATTERN_INCLUDED
+#define AGG_SPAN_PATTERN_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_rendering_buffer.h"
+#include "agg_span_generator.h"
+
+
+namespace agg
+{
+
+ //---------------------------------------------------span_pattern_base
+ template<class ColorT, class Allocator>
+ class span_pattern_base : public span_generator<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef typename ColorT::value_type value_type;
+ typedef Allocator alloc_type;
+ enum { base_mask = color_type::base_mask };
+
+ //----------------------------------------------------------------
+ span_pattern_base(alloc_type& alloc) :
+ span_generator<color_type, alloc_type>(alloc)
+ {}
+
+ //----------------------------------------------------------------
+ span_pattern_base(alloc_type& alloc,
+ const rendering_buffer& src,
+ unsigned offset_x, unsigned offset_y,
+ double alpha) :
+ span_generator<color_type, alloc_type>(alloc),
+ m_src(&src),
+ m_offset_x(offset_x),
+ m_offset_y(offset_y),
+ m_alpha(value_type(alpha * double(base_mask)))
+ {}
+
+ //----------------------------------------------------------------
+ const rendering_buffer& source_image() const { return *m_src; }
+ unsigned offset_x() const { return m_offset_x; }
+ unsigned offset_y() const { return m_offset_y; }
+ double alpha() const { return m_alpha / double(base_mask); }
+ value_type alpha_int() const { return m_alpha; }
+
+ //----------------------------------------------------------------
+ void source_image(const rendering_buffer& v) { m_src = &v; }
+ void offset_x(unsigned v) { m_offset_x = v; }
+ void offset_y(unsigned v) { m_offset_y = v; }
+ void alpha(double v) { m_alpha = value_type(v * double(base_mask)); }
+
+ //----------------------------------------------------------------
+ private:
+ const rendering_buffer* m_src;
+ unsigned m_offset_x;
+ unsigned m_offset_y;
+ value_type m_alpha;
+ };
+
+
+ //---------------------------------------------------wrap_mode_repeat
+ class wrap_mode_repeat
+ {
+ public:
+ wrap_mode_repeat(unsigned size) :
+ m_size(size),
+ m_add(size * (0x3FFFFFFF / size)),
+ m_value(0)
+ {}
+
+ AGG_INLINE unsigned operator() (int v)
+ {
+ return m_value = (unsigned(v) + m_add) % m_size;
+ }
+
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ if(m_value >= m_size) m_value = 0;
+ return m_value;
+ }
+ private:
+ unsigned m_size;
+ unsigned m_add;
+ unsigned m_value;
+ };
+
+
+ //---------------------------------------------wrap_mode_repeat_pow2
+ class wrap_mode_repeat_pow2
+ {
+ public:
+ wrap_mode_repeat_pow2(unsigned size) : m_value(0)
+ {
+ m_mask = 1;
+ while(m_mask < size) m_mask = (m_mask << 1) | 1;
+ m_mask >>= 1;
+ }
+ AGG_INLINE unsigned operator() (int v)
+ {
+ return m_value = unsigned(v) & m_mask;
+ }
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ if(m_value > m_mask) m_value = 0;
+ return m_value;
+ }
+ private:
+ unsigned m_mask;
+ unsigned m_value;
+ };
+
+
+ //----------------------------------------wrap_mode_repeat_auto_pow2
+ class wrap_mode_repeat_auto_pow2
+ {
+ public:
+ wrap_mode_repeat_auto_pow2(unsigned size) :
+ m_size(size),
+ m_add(size * (0x3FFFFFFF / size)),
+ m_mask((m_size & (m_size-1)) ? 0 : m_size-1),
+ m_value(0)
+ {}
+
+ AGG_INLINE unsigned operator() (int v)
+ {
+ if(m_mask) return m_value = unsigned(v) & m_mask;
+ return m_value = (unsigned(v) + m_add) % m_size;
+ }
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ if(m_value >= m_size) m_value = 0;
+ return m_value;
+ }
+
+ private:
+ unsigned m_size;
+ unsigned m_add;
+ unsigned m_mask;
+ unsigned m_value;
+ };
+
+
+ //--------------------------------------------------wrap_mode_reflect
+ class wrap_mode_reflect
+ {
+ public:
+ wrap_mode_reflect(unsigned size) :
+ m_size(size),
+ m_size2(size * 2),
+ m_add(m_size2 * (0x3FFFFFFF / m_size2)),
+ m_value(0)
+ {}
+
+ AGG_INLINE unsigned operator() (int v)
+ {
+ m_value = (unsigned(v) + m_add) % m_size2;
+ if(m_value >= m_size) return m_size2 - m_value - 1;
+ return m_value;
+ }
+
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ if(m_value >= m_size2) m_value = 0;
+ if(m_value >= m_size) return m_size2 - m_value - 1;
+ return m_value;
+ }
+ private:
+ unsigned m_size;
+ unsigned m_size2;
+ unsigned m_add;
+ unsigned m_value;
+ };
+
+
+
+ //-------------------------------------------wrap_mode_reflect_pow2
+ class wrap_mode_reflect_pow2
+ {
+ public:
+ wrap_mode_reflect_pow2(unsigned size) : m_value(0)
+ {
+ m_mask = 1;
+ m_size = 1;
+ while(m_mask < size)
+ {
+ m_mask = (m_mask << 1) | 1;
+ m_size <<= 1;
+ }
+ }
+ AGG_INLINE unsigned operator() (int v)
+ {
+ m_value = unsigned(v) & m_mask;
+ if(m_value >= m_size) return m_mask - m_value;
+ return m_value;
+ }
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ m_value &= m_mask;
+ if(m_value >= m_size) return m_mask - m_value;
+ return m_value;
+ }
+ private:
+ unsigned m_size;
+ unsigned m_mask;
+ unsigned m_value;
+ };
+
+
+
+ //---------------------------------------wrap_mode_reflect_auto_pow2
+ class wrap_mode_reflect_auto_pow2
+ {
+ public:
+ wrap_mode_reflect_auto_pow2(unsigned size) :
+ m_size(size),
+ m_size2(size * 2),
+ m_add(m_size2 * (0x3FFFFFFF / m_size2)),
+ m_mask((m_size2 & (m_size2-1)) ? 0 : m_size2-1),
+ m_value(0)
+ {}
+
+ AGG_INLINE unsigned operator() (int v)
+ {
+ m_value = m_mask ? unsigned(v) & m_mask :
+ (unsigned(v) + m_add) % m_size2;
+ if(m_value >= m_size) return m_size2 - m_value - 1;
+ return m_value;
+ }
+ AGG_INLINE unsigned operator++ ()
+ {
+ ++m_value;
+ if(m_value >= m_size2) m_value = 0;
+ if(m_value >= m_size) return m_size2 - m_value - 1;
+ return m_value;
+ }
+
+ private:
+ unsigned m_size;
+ unsigned m_size2;
+ unsigned m_add;
+ unsigned m_mask;
+ unsigned m_value;
+ };
+
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_span_pattern_filter_gray.h b/agg/inc/agg_span_pattern_filter_gray.h
new file mode 100755
index 000000000000..17a7984be7fe
--- /dev/null
+++ b/agg/inc/agg_span_pattern_filter_gray.h
@@ -0,0 +1,472 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes span_pattern_filter_gray*
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_PATTERN_FILTER_GRAY_INCLUDED
+#define AGG_SPAN_PATTERN_FILTER_GRAY_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_gray.h"
+#include "agg_span_pattern.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+ //===========================================span_pattern_filter_gray
+ template<class ColorT,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_gray_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_nn(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter) :
+ base_type(alloc, src, color_type(0,0), inter, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x = m_wrap_mode_x(x >> image_subpixel_shift);
+ y = m_wrap_mode_y(y >> image_subpixel_shift);
+
+ span->v = *((value_type*)base_type::source_image().row(y) + x);
+ span->a = base_mask;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+ //====================================span_pattern_filter_gray_bilinear
+ template<class ColorT,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_gray_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_bilinear(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter) :
+ base_type(alloc, src, color_type(0,0), inter, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg;
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+ fg = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ fg += ptr1[x1] * (image_subpixel_size - x_hr) * (image_subpixel_size - y_hr);
+ fg += ptr1[x2] * x_hr * (image_subpixel_size - y_hr);
+ fg += ptr2[x1] * (image_subpixel_size - x_hr) * y_hr;
+ fg += ptr2[x2] * x_hr * y_hr;
+
+ span->v = (value_type)(fg >> image_subpixel_shift * 2);
+ span->a = base_mask;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+ //====================================span_pattern_filter_gray_2x2
+ template<class ColorT,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_gray_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_2x2(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0), inter, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg;
+ color_type* span = base_type::allocator().span();
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+ fg = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ fg += ptr1[x1] * ((weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ fg += ptr1[x2] * ((weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ fg += ptr2[x1] * ((weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ fg += ptr2[x2] * ((weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+
+ fg >>= image_filter_shift;
+ if(fg > base_mask) fg = base_mask;
+
+ span->v = (value_type)fg;
+ span->a = base_mask;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+ //==============================================span_pattern_filter_gray
+ template<class ColorT,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_gray :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_gray(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0), inter, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ int fg;
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ const int16* weight_array = base_type::filter().weight_array();
+
+ color_type* span = base_type::allocator().span();
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ int y_lr = m_wrap_mode_y((y >> image_subpixel_shift) + start);
+ int x_int = (x >> image_subpixel_shift) + start;
+ int x_lr;
+
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg = image_filter_size / 2;
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+ x_lr = m_wrap_mode_x(x_int);
+ const value_type* row_ptr = (value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ fg += row_ptr[x_lr] * ((weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift);
+ x_hr += image_subpixel_size;
+ x_lr = ++m_wrap_mode_x;
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr = ++m_wrap_mode_y;
+ } while(--y_count);
+
+ fg >>= image_filter_shift;
+
+ if(fg < 0) fg = 0;
+ if(fg > base_mask) fg = base_mask;
+
+ span->v = fg;
+ span->a = base_mask;
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_pattern_filter_rgb.h b/agg/inc/agg_span_pattern_filter_rgb.h
new file mode 100755
index 000000000000..d4dc1c1797eb
--- /dev/null
+++ b/agg/inc/agg_span_pattern_filter_rgb.h
@@ -0,0 +1,568 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+//
+// classes span_pattern_filter_rgb*
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_PATTERN_FILTER_RGB_INCLUDED
+#define AGG_SPAN_PATTERN_FILTER_RGB_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_span_pattern.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+ //===========================================span_pattern_filter_rgb
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgb_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_nn(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& intr) :
+ base_type(alloc, src, color_type(0,0,0,0), intr, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ const value_type *fg_ptr;
+ do
+ {
+ intr.coordinates(&x, &y);
+
+ x = m_wrap_mode_x(x >> image_subpixel_shift);
+ y = m_wrap_mode_y(y >> image_subpixel_shift);
+
+ fg_ptr = (const value_type*)base_type::source_image().row(y) + x * 3;
+ span->r = fg_ptr[order_type::R];
+ span->g = fg_ptr[order_type::G];
+ span->b = fg_ptr[order_type::B];
+ span->a = base_mask;
+ ++span;
+ ++intr;
+
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+
+ //=====================================span_pattern_filter_rgb_bilinear
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgb_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_bilinear(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& intr) :
+ base_type(alloc, src, color_type(0,0,0,0), intr, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[3];
+ const value_type *fg_ptr;
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ intr.coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+ x1 *= 3;
+ x2 *= 3;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (const value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (const value_type*)base_type::source_image().row(y2);
+
+ fg[0] =
+ fg[1] =
+ fg[2] = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ int weight;
+ fg_ptr = ptr1 + x1;
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr1 + x2;
+ weight = x_hr * (image_subpixel_size - y_hr);
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr2 + x1;
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr2 + x2;
+ weight = x_hr * y_hr;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ span->r = (value_type)(fg[order_type::R] >> image_subpixel_shift * 2);
+ span->g = (value_type)(fg[order_type::G] >> image_subpixel_shift * 2);
+ span->b = (value_type)(fg[order_type::B] >> image_subpixel_shift * 2);
+ span->a = base_mask;
+ ++span;
+ ++intr;
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+ //=====================================span_pattern_filter_rgb_2x2
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgb_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_2x2(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& intr,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), intr, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[3];
+ const value_type *fg_ptr;
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ intr.coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+ x1 *= 3;
+ x2 *= 3;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (const value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (const value_type*)base_type::source_image().row(y2);
+
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ int weight;
+ fg_ptr = ptr1 + x1;
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr1 + x2;
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr2 + x1;
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg_ptr = ptr2 + x2;
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = base_mask;
+ ++span;
+ ++intr;
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+
+ //==============================================span_pattern_filter_rgb
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgb :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgb(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& intr,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), intr, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ int fg[3];
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ const int16* weight_array = base_type::filter().weight_array();
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ intr.coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ int y_lr = m_wrap_mode_y((y >> image_subpixel_shift) + start);
+ int x_int = (x >> image_subpixel_shift) + start;
+ int x_lr;
+
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+ x_lr = m_wrap_mode_x(x_int);
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + x_lr * 3;
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+
+ x_hr += image_subpixel_size;
+ x_lr = ++m_wrap_mode_x;
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr = ++m_wrap_mode_y;
+ } while(--y_count);
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = base_mask;
+ ++span;
+ ++intr;
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_pattern_filter_rgba.h b/agg/inc/agg_span_pattern_filter_rgba.h
new file mode 100755
index 000000000000..8460880fdb79
--- /dev/null
+++ b/agg/inc/agg_span_pattern_filter_rgba.h
@@ -0,0 +1,584 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+//
+// classes span_pattern_filter_rgba*
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_PATTERN_FILTER_RGBA_INCLUDED
+#define AGG_SPAN_PATTERN_FILTER_RGBA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_color_rgba.h"
+#include "agg_span_pattern.h"
+#include "agg_span_image_filter.h"
+
+
+namespace agg
+{
+
+ //===========================================span_pattern_filter_rgba
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgba_nn :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_nn(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_nn(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ const value_type *fg_ptr;
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x = m_wrap_mode_x(x >> image_subpixel_shift);
+ y = m_wrap_mode_y(y >> image_subpixel_shift);
+
+ fg_ptr = (value_type*)base_type::source_image().row(y) + (x << 2);
+ span->r = fg_ptr[order_type::R];
+ span->g = fg_ptr[order_type::G];
+ span->b = fg_ptr[order_type::B];
+ span->a = fg_ptr[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+
+ //=====================================span_pattern_filter_rgba_bilinear
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgba_bilinear :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_bilinear(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_bilinear(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[4];
+ const value_type *fg_ptr;
+ color_type* span = base_type::allocator().span();
+
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+ x1 <<= 2;
+ x2 <<= 2;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+ fg[0] =
+ fg[1] =
+ fg[2] =
+ fg[3] = image_subpixel_size * image_subpixel_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ int weight;
+ fg_ptr = ptr1 + x1;
+ weight = (image_subpixel_size - x_hr) *
+ (image_subpixel_size - y_hr);
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr1 + x2;
+ weight = x_hr * (image_subpixel_size - y_hr);
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr2 + x1;
+ weight = (image_subpixel_size - x_hr) * y_hr;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr2 + x2;
+ weight = x_hr * y_hr;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ span->r = (value_type)(fg[order_type::R] >> image_subpixel_shift * 2);
+ span->g = (value_type)(fg[order_type::G] >> image_subpixel_shift * 2);
+ span->b = (value_type)(fg[order_type::B] >> image_subpixel_shift * 2);
+ span->a = (value_type)(fg[order_type::A] >> image_subpixel_shift * 2);
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+ //=====================================span_pattern_filter_rgba_2x2
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgba_2x2 :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_2x2(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba_2x2(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ calc_type fg[4];
+ const value_type *fg_ptr;
+ color_type* span = base_type::allocator().span();
+ const int16* weight_array = base_type::filter().weight_array() +
+ ((base_type::filter().diameter()/2 - 1) <<
+ image_subpixel_shift);
+ do
+ {
+ int x_hr;
+ int y_hr;
+
+ base_type::interpolator().coordinates(&x_hr, &y_hr);
+
+ x_hr -= base_type::filter_dx_int();
+ y_hr -= base_type::filter_dy_int();
+
+ int x_lr = x_hr >> image_subpixel_shift;
+ int y_lr = y_hr >> image_subpixel_shift;
+
+ unsigned x1 = m_wrap_mode_x(x_lr);
+ unsigned x2 = ++m_wrap_mode_x;
+ x1 <<= 2;
+ x2 <<= 2;
+
+ unsigned y1 = m_wrap_mode_y(y_lr);
+ unsigned y2 = ++m_wrap_mode_y;
+ const value_type* ptr1 = (value_type*)base_type::source_image().row(y1);
+ const value_type* ptr2 = (value_type*)base_type::source_image().row(y2);
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ x_hr &= image_subpixel_mask;
+ y_hr &= image_subpixel_mask;
+
+ int weight;
+ fg_ptr = ptr1 + x1;
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr1 + x2;
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr + image_subpixel_size] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr2 + x1;
+ weight = (weight_array[x_hr + image_subpixel_size] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg_ptr = ptr2 + x2;
+ weight = (weight_array[x_hr] *
+ weight_array[y_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+ fg[0] += weight * fg_ptr[0];
+ fg[1] += weight * fg_ptr[1];
+ fg[2] += weight * fg_ptr[2];
+ fg[3] += weight * fg_ptr[3];
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+
+
+
+
+
+ //==============================================span_pattern_filter_rgba
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_filter_rgba :
+ public span_image_filter<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_filter<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba(alloc_type& alloc) :
+ base_type(alloc)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_filter_rgba(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, &filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ base_type::interpolator().begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ int fg[4];
+
+ unsigned diameter = base_type::filter().diameter();
+ int start = base_type::filter().start();
+ const int16* weight_array = base_type::filter().weight_array();
+
+ color_type* span = base_type::allocator().span();
+
+ int x_count;
+ int weight_y;
+
+ do
+ {
+ base_type::interpolator().coordinates(&x, &y);
+
+ x -= base_type::filter_dx_int();
+ y -= base_type::filter_dy_int();
+
+ int x_hr = x;
+ int y_hr = y;
+
+ int x_fract = x_hr & image_subpixel_mask;
+ unsigned y_count = diameter;
+
+ int y_lr = m_wrap_mode_y((y >> image_subpixel_shift) + start);
+ int x_int = (x >> image_subpixel_shift) + start;
+ int x_lr;
+
+ y_hr = image_subpixel_mask - (y_hr & image_subpixel_mask);
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ do
+ {
+ x_count = diameter;
+ weight_y = weight_array[y_hr];
+ x_hr = image_subpixel_mask - x_fract;
+ x_lr = m_wrap_mode_x(x_int);
+ const value_type* row_ptr = (value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + (x_lr << 2);
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ image_filter_shift;
+
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += fg_ptr[3] * weight;
+
+ x_hr += image_subpixel_size;
+ x_lr = ++m_wrap_mode_x;
+ } while(--x_count);
+
+ y_hr += image_subpixel_size;
+ y_lr = ++m_wrap_mode_y;
+ } while(--y_count);
+
+ fg[0] >>= image_filter_shift;
+ fg[1] >>= image_filter_shift;
+ fg[2] >>= image_filter_shift;
+ fg[3] >>= image_filter_shift;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+ span->r = fg[order_type::R];
+ span->g = fg[order_type::G];
+ span->b = fg[order_type::B];
+ span->a = fg[order_type::A];
+ ++span;
+ ++base_type::interpolator();
+
+ } while(--len);
+
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+}
+
+
+#endif
+
+
+
diff --git a/agg/inc/agg_span_pattern_resample_gray.h b/agg/inc/agg_span_pattern_resample_gray.h
new file mode 100755
index 000000000000..212209502f5f
--- /dev/null
+++ b/agg/inc/agg_span_pattern_resample_gray.h
@@ -0,0 +1,320 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_PATTERN_RESAMPLE_GRAY_INCLUDED
+#define AGG_SPAN_PATTERN_RESAMPLE_GRAY_INCLUDED
+
+#include "agg_color_gray.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //=======================================span_pattern_resample_gray_affine
+ template<class ColorT,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_gray_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_gray_affine(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_gray_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0), inter, filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg;
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ intr.coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + x_lr;
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ fg += *fg_ptr * weight;
+ total_weight += weight;
+ x_hr += base_type::m_rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+
+ y_hr += base_type::m_ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ } while(y_hr < filter_size);
+
+ fg /= total_weight;
+
+ if(fg < 0) fg = 0;
+ if(fg > base_mask) fg = base_mask;
+
+ span->v = (value_type)fg;
+ span->a = (value_type)base_mask;
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+ //============================================span_pattern_resample_gray
+ template<class ColorT,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_gray :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_gray(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_gray(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0), inter, filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg;
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ intr.coordinates(&x, &y);
+ intr.local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + x_lr;
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+ fg += *fg_ptr * weight;
+ total_weight += weight;
+ x_hr += rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+ y_hr += ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ }
+ while(y_hr < filter_size);
+
+ fg /= total_weight;
+
+ if(fg < 0) fg = 0;
+ if(fg > base_mask) fg = base_mask;
+
+ span->v = (value_type)fg;
+ span->a = (value_type)base_mask;
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_pattern_resample_rgb.h b/agg/inc/agg_span_pattern_resample_rgb.h
new file mode 100755
index 000000000000..baef860eb472
--- /dev/null
+++ b/agg/inc/agg_span_pattern_resample_rgb.h
@@ -0,0 +1,346 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_PATTERN_RESAMPLE_RGB_INCLUDED
+#define AGG_SPAN_PATTERN_RESAMPLE_RGB_INCLUDED
+
+#include "agg_color_rgba.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //========================================span_pattern_resample_rgb_affine
+ template<class ColorT,
+ class Order,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_rgb_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgb_affine(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgb_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter_) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[3];
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ intr.coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + x_lr * 3;
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ total_weight += weight;
+ x_hr += base_type::m_rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+
+ y_hr += base_type::m_ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ } while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)base_mask;
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+ //=============================================span_pattern_resample_rgb
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_rgb :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgb(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgb(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[3];
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ intr.coordinates(&x, &y);
+ intr.local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + x_lr * 3;
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ total_weight += weight;
+ x_hr += rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+ y_hr += ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+
+ if(fg[0] > base_mask) fg[0] = base_mask;
+ if(fg[1] > base_mask) fg[1] = base_mask;
+ if(fg[2] > base_mask) fg[2] = base_mask;
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)base_mask;
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_pattern_resample_rgba.h b/agg/inc/agg_span_pattern_resample_rgba.h
new file mode 100755
index 000000000000..37b4dade16f4
--- /dev/null
+++ b/agg/inc/agg_span_pattern_resample_rgba.h
@@ -0,0 +1,354 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_PATTERN_RESAMPLE_RGBA_INCLUDED
+#define AGG_SPAN_PATTERN_RESAMPLE_RGBA_INCLUDED
+
+#include "agg_color_rgba.h"
+#include "agg_span_image_resample.h"
+
+namespace agg
+{
+
+ //=======================================span_pattern_resample_rgba_affine
+ template<class ColorT,
+ class Order,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_rgba_affine :
+ public span_image_resample_affine<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample_affine<color_type, alloc_type> base_type;
+ typedef typename base_type::interpolator_type interpolator_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgba_affine(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgba_affine(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter_) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, filter_),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[4];
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ int radius_x = (diameter * base_type::m_rx) >> 1;
+ int radius_y = (diameter * base_type::m_ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ intr.coordinates(&x, &y);
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ base_type::m_ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ base_type::m_rx_inv) >>
+ image_subpixel_shift;
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + (x_lr << 2);
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += fg_ptr[3] * weight;
+ total_weight += weight;
+ x_hr += base_type::m_rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+
+ y_hr += base_type::m_ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ } while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+
+
+
+
+ //============================================span_pattern_resample_rgba
+ template<class ColorT,
+ class Order,
+ class Interpolator,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_resample_rgba :
+ public span_image_resample<ColorT, Interpolator, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Interpolator interpolator_type;
+ typedef Allocator alloc_type;
+ typedef span_image_resample<color_type, interpolator_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::long_type long_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask,
+ downscale_shift = image_filter_shift
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgba(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //--------------------------------------------------------------------
+ span_pattern_resample_rgba(alloc_type& alloc,
+ const rendering_buffer& src,
+ interpolator_type& inter,
+ const image_filter_lut& filter) :
+ base_type(alloc, src, color_type(0,0,0,0), inter, filter),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //--------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeX(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ interpolator_type& intr = base_type::interpolator();
+ intr.begin(x + base_type::filter_dx_dbl(),
+ y + base_type::filter_dy_dbl(), len);
+ long_type fg[4];
+
+ int diameter = base_type::filter().diameter();
+ int filter_size = diameter << image_subpixel_shift;
+ const int16* weight_array = base_type::filter().weight_array();
+
+ do
+ {
+ int rx;
+ int ry;
+ int rx_inv = image_subpixel_size;
+ int ry_inv = image_subpixel_size;
+ intr.coordinates(&x, &y);
+ intr.local_scale(&rx, &ry);
+
+ rx = (rx * base_type::m_blur_x) >> image_subpixel_shift;
+ ry = (ry * base_type::m_blur_y) >> image_subpixel_shift;
+
+ if(rx < image_subpixel_size)
+ {
+ rx = image_subpixel_size;
+ }
+ else
+ {
+ if(rx > image_subpixel_size * base_type::m_scale_limit)
+ {
+ rx = image_subpixel_size * base_type::m_scale_limit;
+ }
+ rx_inv = image_subpixel_size * image_subpixel_size / rx;
+ }
+
+ if(ry < image_subpixel_size)
+ {
+ ry = image_subpixel_size;
+ }
+ else
+ {
+ if(ry > image_subpixel_size * base_type::m_scale_limit)
+ {
+ ry = image_subpixel_size * base_type::m_scale_limit;
+ }
+ ry_inv = image_subpixel_size * image_subpixel_size / ry;
+ }
+
+ int radius_x = (diameter * rx) >> 1;
+ int radius_y = (diameter * ry) >> 1;
+ int maxx = base_type::source_image().width() - 1;
+ int maxy = base_type::source_image().height() - 1;
+
+ x += base_type::filter_dx_int() - radius_x;
+ y += base_type::filter_dy_int() - radius_y;
+
+ fg[0] = fg[1] = fg[2] = fg[3] = image_filter_size / 2;
+
+ int y_lr = m_wrap_mode_y(y >> image_subpixel_shift);
+ int y_hr = ((image_subpixel_mask - (y & image_subpixel_mask)) *
+ ry_inv) >>
+ image_subpixel_shift;
+ int total_weight = 0;
+ int x_lr_ini = x >> image_subpixel_shift;
+ int x_hr_ini = ((image_subpixel_mask - (x & image_subpixel_mask)) *
+ rx_inv) >>
+ image_subpixel_shift;
+
+ do
+ {
+ int weight_y = weight_array[y_hr];
+ int x_lr = m_wrap_mode_x(x_lr_ini);
+ int x_hr = x_hr_ini;
+ const value_type* row_ptr = (const value_type*)base_type::source_image().row(y_lr);
+ do
+ {
+ const value_type* fg_ptr = row_ptr + (x_lr << 2);
+ int weight = (weight_y * weight_array[x_hr] +
+ image_filter_size / 2) >>
+ downscale_shift;
+ fg[0] += fg_ptr[0] * weight;
+ fg[1] += fg_ptr[1] * weight;
+ fg[2] += fg_ptr[2] * weight;
+ fg[3] += fg_ptr[3] * weight;
+ total_weight += weight;
+ x_hr += rx_inv;
+ x_lr = ++m_wrap_mode_x;
+ }
+ while(x_hr < filter_size);
+ y_hr += ry_inv;
+ y_lr = ++m_wrap_mode_y;
+ }
+ while(y_hr < filter_size);
+
+ fg[0] /= total_weight;
+ fg[1] /= total_weight;
+ fg[2] /= total_weight;
+ fg[3] /= total_weight;
+
+ if(fg[0] < 0) fg[0] = 0;
+ if(fg[1] < 0) fg[1] = 0;
+ if(fg[2] < 0) fg[2] = 0;
+ if(fg[3] < 0) fg[3] = 0;
+
+ if(fg[order_type::A] > base_mask) fg[order_type::A] = base_mask;
+ if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+ if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+ if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
+
+ span->r = (value_type)fg[order_type::R];
+ span->g = (value_type)fg[order_type::G];
+ span->b = (value_type)fg[order_type::B];
+ span->a = (value_type)fg[order_type::A];
+
+ ++span;
+ ++intr;
+ } while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_span_pattern_rgb.h b/agg/inc/agg_span_pattern_rgb.h
new file mode 100755
index 000000000000..2e17f11e7c70
--- /dev/null
+++ b/agg/inc/agg_span_pattern_rgb.h
@@ -0,0 +1,165 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+
+#ifndef AGG_SPAN_PATTERN_RGB_INCLUDED
+#define AGG_SPAN_PATTERN_RGB_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_pixfmt_rgb.h"
+#include "agg_span_pattern.h"
+
+namespace agg
+{
+ //=======================================================span_pattern_rgb
+ template<class ColorT,
+ class Order,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_rgb : public span_pattern_base<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_pattern_base<color_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_rgb(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //----------------------------------------------------------------
+ span_pattern_rgb(alloc_type& alloc,
+ const rendering_buffer& src,
+ unsigned offset_x,
+ unsigned offset_y,
+ value_type alpha = base_mask) :
+ base_type(alloc, src, offset_x, offset_y, alpha),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeY(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ unsigned sx = m_wrap_mode_x(base_type::offset_x() + x);
+ const value_type* row_ptr =
+ (const value_type*)base_type::source_image().row(
+ m_wrap_mode_y(
+ base_type::offset_y() + y));
+ do
+ {
+ const value_type* p = row_ptr + sx + sx + sx;
+ span->r = p[order_type::R];
+ span->g = p[order_type::G];
+ span->b = p[order_type::B];
+ span->a = base_type::alpha_int();
+ sx = ++m_wrap_mode_x;
+ ++span;
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+
+
+/*
+ //=========================================================span_pattern_rgb
+ template<class ColorT, class Order, class Allocator = span_allocator<ColorT> >
+ class span_pattern_rgb : public span_pattern<rgba8, int8u, Allocator>
+ {
+ public:
+ typedef Allocator alloc_type;
+ typedef rgba8 color_type;
+ typedef span_pattern<color_type, int8u, alloc_type> base_type;
+
+ //--------------------------------------------------------------------
+ span_pattern_rgb24(alloc_type& alloc) : base_type(alloc) {}
+
+ //----------------------------------------------------------------
+ span_pattern_rgb24(alloc_type& alloc,
+ const rendering_buffer& src,
+ unsigned offset_x, unsigned offset_y,
+ int8u alpha = 255) :
+ base_type(alloc, src, offset_x, offset_y, alpha)
+ {}
+
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ unsigned sx = (base_type::offset_x() + x) % base_type::source_image().width();
+ unsigned wp = base_type::source_image().width() * 3;
+ const int8u* p = base_type::source_image().row((base_type::offset_y() + y) % base_type::source_image().height());
+ p += sx * 3;
+ do
+ {
+ span->r = p[Order::R];
+ span->g = p[Order::G];
+ span->b = p[Order::B];
+ span->a = base_type::alpha();
+ p += 3;
+ ++sx;
+ ++span;
+ if(sx >= base_type::source_image().width())
+ {
+ sx -= base_type::source_image().width();
+ p -= wp;
+ }
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+ };
+*/
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_span_pattern_rgba.h b/agg/inc/agg_span_pattern_rgba.h
new file mode 100755
index 000000000000..d952d0733696
--- /dev/null
+++ b/agg/inc/agg_span_pattern_rgba.h
@@ -0,0 +1,111 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Adaptation for high precision colors has been sponsored by
+// Liberty Technology Systems, Inc., visit http://lib-sys.com
+//
+// Liberty Technology Systems, Inc. is the provider of
+// PostScript and PDF technology for software developers.
+//
+//----------------------------------------------------------------------------
+
+
+#ifndef AGG_SPAN_PATTERN_RGBA_INCLUDED
+#define AGG_SPAN_PATTERN_RGBA_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_pixfmt_rgba.h"
+#include "agg_span_pattern.h"
+
+namespace agg
+{
+
+ //======================================================span_pattern_rgba
+ template<class ColorT,
+ class Order,
+ class WrapModeX,
+ class WrapModeY,
+ class Allocator = span_allocator<ColorT> >
+ class span_pattern_rgba : public span_pattern_base<ColorT, Allocator>
+ {
+ public:
+ typedef ColorT color_type;
+ typedef Order order_type;
+ typedef Allocator alloc_type;
+ typedef span_pattern_base<color_type, alloc_type> base_type;
+ typedef typename color_type::value_type value_type;
+ typedef typename color_type::calc_type calc_type;
+ enum
+ {
+ base_shift = color_type::base_shift,
+ base_mask = color_type::base_mask
+ };
+
+ //--------------------------------------------------------------------
+ span_pattern_rgba(alloc_type& alloc) :
+ base_type(alloc),
+ m_wrap_mode_x(1),
+ m_wrap_mode_y(1)
+ {}
+
+ //----------------------------------------------------------------
+ span_pattern_rgba(alloc_type& alloc,
+ const rendering_buffer& src,
+ unsigned offset_x, unsigned offset_y) :
+ base_type(alloc, src, offset_x, offset_y, 0),
+ m_wrap_mode_x(src.width()),
+ m_wrap_mode_y(src.height())
+ {}
+
+ //-------------------------------------------------------------------
+ void source_image(const rendering_buffer& src)
+ {
+ base_type::source_image(src);
+ m_wrap_mode_x = WrapModeX(src.width());
+ m_wrap_mode_y = WrapModeY(src.height());
+ }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ unsigned sx = m_wrap_mode_x(base_type::offset_x() + x);
+ const value_type* row_ptr =
+ (const value_type*)base_type::source_image().row(
+ m_wrap_mode_y(
+ base_type::offset_y() + y));
+ do
+ {
+ const value_type* p = row_ptr + (sx << 2);
+ span->r = p[order_type::R];
+ span->g = p[order_type::G];
+ span->b = p[order_type::B];
+ span->a = p[order_type::A];
+ sx = ++m_wrap_mode_x;
+ ++span;
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ WrapModeX m_wrap_mode_x;
+ WrapModeY m_wrap_mode_y;
+ };
+
+}
+
+#endif
+
diff --git a/agg/inc/agg_span_solid.h b/agg/inc/agg_span_solid.h
new file mode 100755
index 000000000000..aa8374bfe61f
--- /dev/null
+++ b/agg/inc/agg_span_solid.h
@@ -0,0 +1,63 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// span_solid_rgba8
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_SPAN_SOLID_INCLUDED
+#define AGG_SPAN_SOLID_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_span_generator.h"
+
+namespace agg
+{
+ //--------------------------------------------------------------span_solid
+ template<class ColorT, class Allocator = span_allocator<ColorT> >
+ class span_solid : public span_generator<ColorT, Allocator>
+ {
+ public:
+ typedef Allocator alloc_type;
+ typedef ColorT color_type;
+ typedef span_generator<color_type, alloc_type> base_type;
+
+ //--------------------------------------------------------------------
+ span_solid(alloc_type& alloc) : base_type(alloc) {}
+
+ //--------------------------------------------------------------------
+ void color(const color_type& c) { m_color = c; }
+ const color_type& color() const { return m_color; }
+
+ //--------------------------------------------------------------------
+ color_type* generate(int x, int y, unsigned len)
+ {
+ color_type* span = base_type::allocator().span();
+ do
+ {
+ *span++ = m_color;
+ }
+ while(--len);
+ return base_type::allocator().span();
+ }
+
+ private:
+ color_type m_color;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_span_subdiv_adaptor.h b/agg/inc/agg_span_subdiv_adaptor.h
new file mode 100755
index 000000000000..60196d705bdb
--- /dev/null
+++ b/agg/inc/agg_span_subdiv_adaptor.h
@@ -0,0 +1,141 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+#ifndef AGG_SPAN_SUBDIV_ADAPTOR_INCLUDED
+#define AGG_SPAN_SUBDIV_ADAPTOR_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //=================================================span_subdiv_adaptor
+ template<class Interpolator, unsigned SubpixelShift = 8>
+ class span_subdiv_adaptor
+ {
+ public:
+ typedef Interpolator interpolator_type;
+ typedef typename interpolator_type::trans_type trans_type;
+
+ enum
+ {
+ subpixel_shift = SubpixelShift,
+ subpixel_size = 1 << subpixel_shift
+ };
+
+
+ //----------------------------------------------------------------
+ span_subdiv_adaptor() :
+ m_subdiv_shift(4),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1) {}
+
+ span_subdiv_adaptor(interpolator_type& interpolator,
+ unsigned subdiv_shift = 4) :
+ m_subdiv_shift(subdiv_shift),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1),
+ m_interpolator(&interpolator) {}
+
+ span_subdiv_adaptor(interpolator_type& interpolator,
+ double x, double y, unsigned len,
+ unsigned subdiv_shift = 4) :
+ m_subdiv_shift(subdiv_shift),
+ m_subdiv_size(1 << m_subdiv_shift),
+ m_subdiv_mask(m_subdiv_size - 1),
+ m_interpolator(&interpolator)
+ {
+ begin(x, y, len);
+ }
+
+
+ //----------------------------------------------------------------
+ const interpolator_type& interpolator() const { return *m_interpolator; }
+ void interpolator(interpolator_type& intr) { m_interpolator = &intr; }
+
+ //----------------------------------------------------------------
+ const trans_type& transformer() const
+ {
+ return *m_interpolator->transformer();
+ }
+ void transformer(const trans_type& trans)
+ {
+ m_interpolator->transformer(trans);
+ }
+
+ //----------------------------------------------------------------
+ unsigned subdiv_shift() const { return m_subdiv_shift; }
+ void subdiv_shift(unsigned shift)
+ {
+ m_subdiv_shift = shift;
+ m_subdiv_size = 1 << m_subdiv_shift;
+ m_subdiv_mask = m_subdiv_size - 1;
+ }
+
+ //----------------------------------------------------------------
+ void begin(double x, double y, unsigned len)
+ {
+ m_pos = 1;
+ m_src_x = int(x * subpixel_size) + subpixel_size;
+ m_src_y = y;
+ m_len = len;
+ if(len > m_subdiv_size) len = m_subdiv_size;
+ m_interpolator->begin(x, y, len);
+ }
+
+ //----------------------------------------------------------------
+ void operator++()
+ {
+ ++(*m_interpolator);
+ if(m_pos >= m_subdiv_size)
+ {
+ unsigned len = m_len;
+ if(len > m_subdiv_size) len = m_subdiv_size;
+ m_interpolator->resynchronize(double(m_src_x) / double(subpixel_size) + len,
+ m_src_y,
+ len);
+ m_pos = 0;
+ }
+ m_src_x += subpixel_size;
+ ++m_pos;
+ --m_len;
+ }
+
+ //----------------------------------------------------------------
+ void coordinates(int* x, int* y) const
+ {
+ m_interpolator->coordinates(x, y);
+ }
+
+ //----------------------------------------------------------------
+ void local_scale(int* x, int* y) const
+ {
+ m_interpolator->local_scale(x, y);
+ }
+
+
+ private:
+ unsigned m_subdiv_shift;
+ unsigned m_subdiv_size;
+ unsigned m_subdiv_mask;
+ interpolator_type* m_interpolator;
+ int m_src_x;
+ double m_src_y;
+ unsigned m_pos;
+ unsigned m_len;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_trans_affine.h b/agg/inc/agg_trans_affine.h
new file mode 100755
index 000000000000..5a4098f904de
--- /dev/null
+++ b/agg/inc/agg_trans_affine.h
@@ -0,0 +1,344 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Affine transformation classes.
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_TRANS_AFFINE_INCLUDED
+#define AGG_TRANS_AFFINE_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+ const double affine_epsilon = 1e-14; // About of precision of doubles
+
+ //============================================================trans_affine
+ //
+ // See Implementation agg_trans_affine.cpp
+ //
+ // Affine transformation are linear transformations in Cartesian coordinates
+ // (strictly speaking not only in Cartesian, but for the beginning we will
+ // think so). They are rotation, scaling, translation and skewing.
+ // After any affine transformation a line segment remains a line segment
+ // and it will never become a curve.
+ //
+ // There will be no math about matrix calculations, since it has been
+ // described many times. Ask yourself a very simple question:
+ // "why do we need to understand and use some matrix stuff instead of just
+ // rotating, scaling and so on". The answers are:
+ //
+ // 1. Any combination of transformations can be done by only 4 multiplications
+ // and 4 additions in floating point.
+ // 2. One matrix transformation is equivalent to the number of consecutive
+ // discrete transformations, i.e. the matrix "accumulates" all transformations
+ // in the order of their settings. Suppose we have 4 transformations:
+ // * rotate by 30 degrees,
+ // * scale X to 2.0,
+ // * scale Y to 1.5,
+ // * move to (100, 100).
+ // The result will depend on the order of these transformations,
+ // and the advantage of matrix is that the sequence of discret calls:
+ // rotate(30), scaleX(2.0), scaleY(1.5), move(100,100)
+ // will have exactly the same result as the following matrix transformations:
+ //
+ // affine_matrix m;
+ // m *= rotate_matrix(30);
+ // m *= scaleX_matrix(2.0);
+ // m *= scaleY_matrix(1.5);
+ // m *= move_matrix(100,100);
+ //
+ // m.transform_my_point_at_last(x, y);
+ //
+ // What is the good of it? In real life we will set-up the matrix only once
+ // and then transform many points, let alone the convenience to set any
+ // combination of transformations.
+ //
+ // So, how to use it? Very easy - literally as it's shown above. Not quite,
+ // let us write a correct example:
+ //
+ // agg::trans_affine m;
+ // m *= agg::trans_affine_rotation(30.0 * 3.1415926 / 180.0);
+ // m *= agg::trans_affine_scaling(2.0, 1.5);
+ // m *= agg::trans_affine_translation(100.0, 100.0);
+ // m.transform(&x, &y);
+ //
+ // The affine matrix is all you need to perform any linear transformation,
+ // but all transformations have origin point (0,0). It means that we need to
+ // use 2 translations if we want to rotate someting around (100,100):
+ //
+ // m *= agg::trans_affine_translation(-100.0, -100.0); // move to (0,0)
+ // m *= agg::trans_affine_rotation(30.0 * 3.1415926 / 180.0); // rotate
+ // m *= agg::trans_affine_translation(100.0, 100.0); // move back to (100,100)
+ //----------------------------------------------------------------------
+ class trans_affine
+ {
+ public:
+ //------------------------------------------ Construction
+ // Construct an identity matrix - it does not transform anything
+ trans_affine() :
+ m0(1.0), m1(0.0), m2(0.0), m3(1.0), m4(0.0), m5(0.0)
+ {}
+
+ // Construct a custom matrix. Usually used in derived classes
+ trans_affine(double v0, double v1, double v2, double v3, double v4, double v5) :
+ m0(v0), m1(v1), m2(v2), m3(v3), m4(v4), m5(v5)
+ {}
+
+ // Construct a matrix to transform a parallelogram to another one.
+ trans_affine(const double* rect, const double* parl)
+ {
+ parl_to_parl(rect, parl);
+ }
+
+ // Construct a matrix to transform a rectangle to a parallelogram.
+ trans_affine(double x1, double y1, double x2, double y2,
+ const double* parl)
+ {
+ rect_to_parl(x1, y1, x2, y2, parl);
+ }
+
+ // Construct a matrix to transform a parallelogram to a rectangle.
+ trans_affine(const double* parl,
+ double x1, double y1, double x2, double y2)
+ {
+ parl_to_rect(parl, x1, y1, x2, y2);
+ }
+
+
+ //---------------------------------- Parellelogram transformations
+ // Calculate a matrix to transform a parallelogram to another one.
+ // src and dst are pointers to arrays of three points
+ // (double[6], x,y,...) that identify three corners of the
+ // parallelograms assuming implicit fourth points.
+ // There are also transformations rectangtle to parallelogram and
+ // parellelogram to rectangle
+ const trans_affine& parl_to_parl(const double* src,
+ const double* dst);
+
+ const trans_affine& rect_to_parl(double x1, double y1,
+ double x2, double y2,
+ const double* parl);
+
+ const trans_affine& parl_to_rect(const double* parl,
+ double x1, double y1,
+ double x2, double y2);
+
+
+ //------------------------------------------ Operations
+ // Reset - actually load an identity matrix
+ const trans_affine& reset();
+
+ // Multiply matrix to another one
+ const trans_affine& multiply(const trans_affine& m);
+
+ // Multiply "m" to "this" and assign the result to "this"
+ const trans_affine& premultiply(const trans_affine& m);
+
+ // Invert matrix. Do not try to invert degenerate matrices,
+ // there's no check for validity. If you set scale to 0 and
+ // then try to invert matrix, expect unpredictable result.
+ const trans_affine& invert();
+
+ // Mirroring around X
+ const trans_affine& flip_x();
+
+ // Mirroring around Y
+ const trans_affine& flip_y();
+
+ //------------------------------------------- Load/Store
+ // Store matrix to an array [6] of double
+ void store_to(double* m) const
+ {
+ *m++ = m0; *m++ = m1; *m++ = m2; *m++ = m3; *m++ = m4; *m++ = m5;
+ }
+
+ // Load matrix from an array [6] of double
+ const trans_affine& load_from(const double* m)
+ {
+ m0 = *m++; m1 = *m++; m2 = *m++; m3 = *m++; m4 = *m++; m5 = *m++;
+ return *this;
+ }
+
+ //------------------------------------------- Operators
+
+ // Multiply current matrix to another one
+ const trans_affine& operator *= (const trans_affine& m)
+ {
+ return multiply(m);
+ }
+
+ // Multiply current matrix to another one and return
+ // the result in a separete matrix.
+ trans_affine operator * (const trans_affine& m)
+ {
+ return trans_affine(*this).multiply(m);
+ }
+
+ // Calculate and return the inverse matrix
+ trans_affine operator ~ () const
+ {
+ trans_affine ret = *this;
+ return ret.invert();
+ }
+
+ // Equal operator with default epsilon
+ bool operator == (const trans_affine& m) const
+ {
+ return is_equal(m, affine_epsilon);
+ }
+
+ // Not Equal operator with default epsilon
+ bool operator != (const trans_affine& m) const
+ {
+ return !is_equal(m, affine_epsilon);
+ }
+
+ //-------------------------------------------- Transformations
+ // Direct transformation x and y
+ void transform(double* x, double* y) const;
+
+ // Inverse transformation x and y. It works slower than the
+ // direct transformation, so if the performance is critical
+ // it's better to invert() the matrix and then use transform()
+ void inverse_transform(double* x, double* y) const;
+
+ //-------------------------------------------- Auxiliary
+ // Calculate the determinant of matrix
+ double determinant() const
+ {
+ return 1.0 / (m0 * m3 - m1 * m2);
+ }
+
+ // Get the average scale (by X and Y).
+ // Basically used to calculate the approximation_scale when
+ // decomposinting curves into line segments.
+ double scale() const;
+
+ // Check to see if it's an identity matrix
+ bool is_identity(double epsilon = affine_epsilon) const;
+
+ // Check to see if two matrices are equal
+ bool is_equal(const trans_affine& m, double epsilon = affine_epsilon) const;
+
+ // Determine the major parameters. Use carefully considering degenerate matrices
+ double rotation() const;
+ void translation(double* dx, double* dy) const;
+ void scaling(double* sx, double* sy) const;
+ void scaling_abs(double* sx, double* sy) const
+ {
+ *sx = sqrt(m0*m0 + m2*m2);
+ *sy = sqrt(m1*m1 + m3*m3);
+ }
+
+ private:
+ double m0;
+ double m1;
+ double m2;
+ double m3;
+ double m4;
+ double m5;
+ };
+
+ //------------------------------------------------------------------------
+ inline void trans_affine::transform(double* x, double* y) const
+ {
+ register double tx = *x;
+ *x = tx * m0 + *y * m2 + m4;
+ *y = tx * m1 + *y * m3 + m5;
+ }
+
+ //------------------------------------------------------------------------
+ inline void trans_affine::inverse_transform(double* x, double* y) const
+ {
+ register double d = determinant();
+ register double a = (*x - m4) * d;
+ register double b = (*y - m5) * d;
+ *x = a * m3 - b * m2;
+ *y = b * m0 - a * m1;
+ }
+
+ //------------------------------------------------------------------------
+ inline double trans_affine::scale() const
+ {
+ double x = 0.707106781 * m0 + 0.707106781 * m2;
+ double y = 0.707106781 * m1 + 0.707106781 * m3;
+ return sqrt(x*x + y*y);
+ }
+
+
+ //------------------------------------------------------------------------
+ inline const trans_affine& trans_affine::premultiply(const trans_affine& m)
+ {
+ trans_affine t = m;
+ return *this = t.multiply(*this);
+ }
+
+
+ //====================================================trans_affine_rotation
+ // Rotation matrix. sin() and cos() are calculated twice for the same angle.
+ // There's no harm because the performance of sin()/cos() is very good on all
+ // modern processors. Besides, this operation is not going to be invoked too
+ // often.
+ class trans_affine_rotation : public trans_affine
+ {
+ public:
+ trans_affine_rotation(double a) :
+ trans_affine(cos(a), sin(a), -sin(a), cos(a), 0.0, 0.0)
+ {}
+ };
+
+ //====================================================trans_affine_scaling
+ // Scaling matrix. sx, sy - scale coefficients by X and Y respectively
+ class trans_affine_scaling : public trans_affine
+ {
+ public:
+ trans_affine_scaling(double sx, double sy) :
+ trans_affine(sx, 0.0, 0.0, sy, 0.0, 0.0)
+ {}
+
+ trans_affine_scaling(double s) :
+ trans_affine(s, 0.0, 0.0, s, 0.0, 0.0)
+ {}
+ };
+
+ //================================================trans_affine_translation
+ // Translation matrix
+ class trans_affine_translation : public trans_affine
+ {
+ public:
+ trans_affine_translation(double tx, double ty) :
+ trans_affine(1.0, 0.0, 0.0, 1.0, tx, ty)
+ {}
+ };
+
+ //====================================================trans_affine_skewing
+ // Sckewing (shear) matrix
+ class trans_affine_skewing : public trans_affine
+ {
+ public:
+ trans_affine_skewing(double sx, double sy) :
+ trans_affine(1.0, tan(sy), tan(sx), 1.0, 0.0, 0.0)
+ {}
+ };
+
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_trans_bilinear.h b/agg/inc/agg_trans_bilinear.h
new file mode 100755
index 000000000000..7398a866d3b0
--- /dev/null
+++ b/agg/inc/agg_trans_bilinear.h
@@ -0,0 +1,166 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Bilinear 2D transformations
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_TRANS_BILINEAR_INCLUDED
+#define AGG_TRANS_BILINEAR_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_simul_eq.h"
+
+namespace agg
+{
+
+ //==========================================================trans_bilinear
+ class trans_bilinear
+ {
+ public:
+ //--------------------------------------------------------------------
+ trans_bilinear() : m_valid(false) {}
+
+ //--------------------------------------------------------------------
+ // Arbitrary quadrangle transformations
+ trans_bilinear(const double* src, const double* dst)
+ {
+ quad_to_quad(src, dst);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Direct transformations
+ trans_bilinear(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ rect_to_quad(x1, y1, x2, y2, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Reverse transformations
+ trans_bilinear(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ quad_to_rect(quad, x1, y1, x2, y2);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the transformations using two arbitrary quadrangles.
+ void quad_to_quad(const double* src, const double* dst)
+ {
+ double left[4][4];
+ double right[4][2];
+
+ unsigned i;
+ for(i = 0; i < 4; i++)
+ {
+ unsigned ix = i * 2;
+ unsigned iy = ix + 1;
+ left[i][0] = 1.0;
+ left[i][1] = src[ix] * src[iy];
+ left[i][2] = src[ix];
+ left[i][3] = src[iy];
+
+ right[i][0] = dst[ix];
+ right[i][1] = dst[iy];
+ }
+ m_valid = simul_eq<4, 2>::solve(left, right, m_mtx);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the direct transformations, i.e., rectangle -> quadrangle
+ void rect_to_quad(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ double src[8];
+ src[0] = src[6] = x1;
+ src[2] = src[4] = x2;
+ src[1] = src[3] = y1;
+ src[5] = src[7] = y2;
+ quad_to_quad(src, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the reverse transformations, i.e., quadrangle -> rectangle
+ void quad_to_rect(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ double dst[8];
+ dst[0] = dst[6] = x1;
+ dst[2] = dst[4] = x2;
+ dst[1] = dst[3] = y1;
+ dst[5] = dst[7] = y2;
+ quad_to_quad(quad, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Check if the equations were solved successfully
+ bool is_valid() const { return m_valid; }
+
+ //--------------------------------------------------------------------
+ // Transform a point (x, y)
+ void transform(double* x, double* y) const
+ {
+ double tx = *x;
+ double ty = *y;
+ double xy = tx * ty;
+ *x = m_mtx[0][0] + m_mtx[1][0] * xy + m_mtx[2][0] * tx + m_mtx[3][0] * ty;
+ *y = m_mtx[0][1] + m_mtx[1][1] * xy + m_mtx[2][1] * tx + m_mtx[3][1] * ty;
+ }
+
+
+ //--------------------------------------------------------------------
+ class iterator_x
+ {
+ double inc_x;
+ double inc_y;
+
+ public:
+ double x;
+ double y;
+
+ iterator_x() {}
+ iterator_x(double tx, double ty, double step, const double m[4][2]) :
+ inc_x(m[1][0] * step * ty + m[2][0] * step),
+ inc_y(m[1][1] * step * ty + m[2][1] * step),
+ x(m[0][0] + m[1][0] * tx * ty + m[2][0] * tx + m[3][0] * ty),
+ y(m[0][1] + m[1][1] * tx * ty + m[2][1] * tx + m[3][1] * ty)
+ {
+ }
+
+ void operator ++ ()
+ {
+ x += inc_x;
+ y += inc_y;
+ }
+ };
+
+ iterator_x begin(double x, double y, double step) const
+ {
+ return iterator_x(x, y, step, m_mtx);
+ }
+
+ private:
+ double m_mtx[4][2];
+ bool m_valid;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_trans_double_path.h b/agg/inc/agg_trans_double_path.h
new file mode 100755
index 000000000000..16ea9f7264bd
--- /dev/null
+++ b/agg/inc/agg_trans_double_path.h
@@ -0,0 +1,131 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_TRANS_DOUBLE_PATH_INCLUDED
+#define AGG_TRANS_DOUBLE_PATH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+
+namespace agg
+{
+
+ // See also: agg_trans_double_path.cpp
+ //
+ //-------------------------------------------------------trans_double_path
+ class trans_double_path
+ {
+ enum status_e
+ {
+ initial,
+ making_path,
+ ready
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+
+ trans_double_path();
+
+ //--------------------------------------------------------------------
+ void base_length(double v) { m_base_length = v; }
+ double base_length() const { return m_base_length; }
+
+ //--------------------------------------------------------------------
+ void base_height(double v) { m_base_height = v; }
+ double base_height() const { return m_base_height; }
+
+ //--------------------------------------------------------------------
+ void preserve_x_scale(bool f) { m_preserve_x_scale = f; }
+ bool preserve_x_scale() const { return m_preserve_x_scale; }
+
+ //--------------------------------------------------------------------
+ void reset();
+ void move_to1(double x, double y);
+ void line_to1(double x, double y);
+ void move_to2(double x, double y);
+ void line_to2(double x, double y);
+ void finalize_paths();
+
+ //--------------------------------------------------------------------
+ template<class VertexSource1, class VertexSource2>
+ void add_paths(VertexSource1& vs1, VertexSource2& vs2,
+ unsigned path1_id=0, unsigned path2_id=0)
+ {
+ double x;
+ double y;
+
+ unsigned cmd;
+
+ vs1.rewind(path1_id);
+ while(!is_stop(cmd = vs1.vertex(&x, &y)))
+ {
+ if(is_move_to(cmd))
+ {
+ move_to1(x, y);
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ line_to1(x, y);
+ }
+ }
+ }
+
+ vs2.rewind(path2_id);
+ while(!is_stop(cmd = vs2.vertex(&x, &y)))
+ {
+ if(is_move_to(cmd))
+ {
+ move_to2(x, y);
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ line_to2(x, y);
+ }
+ }
+ }
+ finalize_paths();
+ }
+
+ //--------------------------------------------------------------------
+ double total_length1() const;
+ double total_length2() const;
+ void transform(double *x, double *y) const;
+
+ private:
+ double finalize_path(vertex_storage& vertices);
+ void transform1(const vertex_storage& vertices,
+ double kindex, double kx,
+ double *x, double* y) const;
+
+ vertex_storage m_src_vertices1;
+ vertex_storage m_src_vertices2;
+ double m_base_length;
+ double m_base_height;
+ double m_kindex1;
+ double m_kindex2;
+ status_e m_status1;
+ status_e m_status2;
+ bool m_preserve_x_scale;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_trans_lens.h b/agg/inc/agg_trans_lens.h
new file mode 100755
index 000000000000..ad900686c3fd
--- /dev/null
+++ b/agg/inc/agg_trans_lens.h
@@ -0,0 +1,79 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.1
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_WARP_MAGNIFIER_INCLUDED
+#define AGG_WARP_MAGNIFIER_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+
+namespace agg
+{
+
+ class trans_warp_magnifier
+ {
+ public:
+ trans_warp_magnifier() : m_xc(0.0), m_yc(0.0), m_magn(1.0), m_radius(1.0), m_warp(false) {}
+
+ void center(double x, double y) { m_xc = x; m_yc = y; }
+ void magnification(double m) { m_magn = m; }
+ void radius(double r) { m_radius = r; }
+ void warp(bool w) { m_warp = w; }
+
+ void transform(double* x, double* y) const
+ {
+ double dx = *x - m_xc;
+ double dy = *y - m_yc;
+ double r = sqrt(dx * dx + dy * dy);
+ double rm = m_radius / m_magn;
+ if(r < rm)
+ {
+ *x = m_xc + dx * m_magn;
+ *y = m_yc + dy * m_magn;
+ return;
+ }
+
+ if(m_warp)
+ {
+ double m = (r + rm * (m_magn - 1.0)) / r;
+ *x = m_xc + dx * m;
+ *y = m_yc + dy * m;
+ return;
+ }
+
+ if(r < m_radius)
+ {
+ double m = m_radius / r;
+ *x = m_xc + dx * m;
+ *y = m_yc + dy * m;
+ }
+ }
+
+ private:
+ double m_xc;
+ double m_yc;
+ double m_magn;
+ double m_radius;
+ bool m_warp;
+ };
+
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_trans_perspective.h b/agg/inc/agg_trans_perspective.h
new file mode 100755
index 000000000000..a127c9095ad2
--- /dev/null
+++ b/agg/inc/agg_trans_perspective.h
@@ -0,0 +1,192 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Perspective 2D transformations
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_TRANS_PERSPECTIVE_INCLUDED
+#define AGG_TRANS_PERSPECTIVE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_simul_eq.h"
+
+namespace agg
+{
+ //=======================================================trans_perspective
+ class trans_perspective
+ {
+ public:
+ //--------------------------------------------------------------------
+ trans_perspective() : m_valid(false) {}
+
+
+ //--------------------------------------------------------------------
+ // Arbitrary quadrangle transformations
+ trans_perspective(const double* src, const double* dst)
+ {
+ quad_to_quad(src, dst);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Direct transformations
+ trans_perspective(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ rect_to_quad(x1, y1, x2, y2, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Reverse transformations
+ trans_perspective(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ quad_to_rect(quad, x1, y1, x2, y2);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the transformations using two arbitrary quadrangles.
+ void quad_to_quad(const double* src, const double* dst)
+ {
+
+ double left[8][8];
+ double right[8][1];
+
+ unsigned i;
+ for (i = 0; i < 4; i++)
+ {
+ unsigned ix = i * 2;
+ unsigned iy = ix + 1;
+
+ left[ix][0] = 1.0;
+ left[ix][1] = src[ix];
+ left[ix][2] = src[iy];
+ left[ix][3] = 0.0;
+ left[ix][4] = 0.0;
+ left[ix][5] = 0.0;
+ left[ix][6] = -src[ix] * dst[ix];
+ left[ix][7] = -src[iy] * dst[ix];
+ right[ix][0] = dst[ix];
+
+ left[iy][0] = 0.0;
+ left[iy][1] = 0.0;
+ left[iy][2] = 0.0;
+ left[iy][3] = 1.0;
+ left[iy][4] = src[ix];
+ left[iy][5] = src[iy];
+ left[iy][6] = -src[ix] * dst[iy];
+ left[iy][7] = -src[iy] * dst[iy];
+ right[iy][0] = dst[iy];
+ }
+ m_valid = simul_eq<8, 1>::solve(left, right, m_mtx);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the direct transformations, i.e., rectangle -> quadrangle
+ void rect_to_quad(double x1, double y1, double x2, double y2,
+ const double* quad)
+ {
+ double src[8];
+ src[0] = src[6] = x1;
+ src[2] = src[4] = x2;
+ src[1] = src[3] = y1;
+ src[5] = src[7] = y2;
+ quad_to_quad(src, quad);
+ }
+
+
+ //--------------------------------------------------------------------
+ // Set the reverse transformations, i.e., quadrangle -> rectangle
+ void quad_to_rect(const double* quad,
+ double x1, double y1, double x2, double y2)
+ {
+ double dst[8];
+ dst[0] = dst[6] = x1;
+ dst[2] = dst[4] = x2;
+ dst[1] = dst[3] = y1;
+ dst[5] = dst[7] = y2;
+ quad_to_quad(quad, dst);
+ }
+
+ //--------------------------------------------------------------------
+ // Check if the equations were solved successfully
+ bool is_valid() const { return m_valid; }
+
+ //--------------------------------------------------------------------
+ // Transform a point (x, y)
+ void transform(double* x, double* y) const
+ {
+ double tx = *x;
+ double ty = *y;
+ double d = 1.0 / (m_mtx[6][0] * tx + m_mtx[7][0] * ty + 1.0);
+ *x = (m_mtx[0][0] + m_mtx[1][0] * tx + m_mtx[2][0] * ty) * d;
+ *y = (m_mtx[3][0] + m_mtx[4][0] * tx + m_mtx[5][0] * ty) * d;
+ }
+
+ //--------------------------------------------------------------------
+ class iterator_x
+ {
+ double den;
+ double den_step;
+ double nom_x;
+ double nom_x_step;
+ double nom_y;
+ double nom_y_step;
+
+ public:
+ double x;
+ double y;
+
+ iterator_x() {}
+ iterator_x(double tx, double ty, double step, const double m[8][1]) :
+ den(m[6][0] * tx + m[7][0] * ty + 1.0),
+ den_step(m[6][0] * step),
+ nom_x(m[0][0] + m[1][0] * tx + m[2][0] * ty),
+ nom_x_step(m[1][0] * step),
+ nom_y(m[3][0] + m[4][0] * tx + m[5][0] * ty),
+ nom_y_step(m[4][0] * step),
+ x(nom_x / den),
+ y(nom_y / den)
+ {
+ }
+
+ void operator ++ ()
+ {
+ den += den_step;
+ nom_x += nom_x_step;
+ nom_y += nom_y_step;
+ double d = 1.0 / den;
+ x = nom_x * d;
+ y = nom_y * d;
+ }
+ };
+
+ //--------------------------------------------------------------------
+ iterator_x begin(double x, double y, double step) const
+ {
+ return iterator_x(x, y, step, m_mtx);
+ }
+
+ private:
+ double m_mtx[8][1];
+ bool m_valid;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_trans_single_path.h b/agg/inc/agg_trans_single_path.h
new file mode 100755
index 000000000000..68369626c396
--- /dev/null
+++ b/agg/inc/agg_trans_single_path.h
@@ -0,0 +1,97 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_TRANS_SINGLE_PATH_INCLUDED
+#define AGG_TRANS_SINGLE_PATH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+
+namespace agg
+{
+
+ // See also: agg_trans_single_path.cpp
+ //
+ //-------------------------------------------------------trans_single_path
+ class trans_single_path
+ {
+ enum status_e
+ {
+ initial,
+ making_path,
+ ready
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+
+ trans_single_path();
+
+ //--------------------------------------------------------------------
+ void base_length(double v) { m_base_length = v; }
+ double base_length() const { return m_base_length; }
+
+ //--------------------------------------------------------------------
+ void preserve_x_scale(bool f) { m_preserve_x_scale = f; }
+ bool preserve_x_scale() const { return m_preserve_x_scale; }
+
+ //--------------------------------------------------------------------
+ void reset();
+ void move_to(double x, double y);
+ void line_to(double x, double y);
+ void finalize_path();
+
+ //--------------------------------------------------------------------
+ template<class VertexSource>
+ void add_path(VertexSource& vs, unsigned path_id=0)
+ {
+ double x;
+ double y;
+
+ unsigned cmd;
+ vs.rewind(path_id);
+ while(!is_stop(cmd = vs.vertex(&x, &y)))
+ {
+ if(is_move_to(cmd))
+ {
+ move_to(x, y);
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ line_to(x, y);
+ }
+ }
+ }
+ finalize_path();
+ }
+
+ //--------------------------------------------------------------------
+ double total_length() const;
+ void transform(double *x, double *y) const;
+
+ private:
+ vertex_storage m_src_vertices;
+ double m_base_length;
+ double m_kindex;
+ status_e m_status;
+ bool m_preserve_x_scale;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_trans_viewport.h b/agg/inc/agg_trans_viewport.h
new file mode 100755
index 000000000000..b77a7204feb9
--- /dev/null
+++ b/agg/inc/agg_trans_viewport.h
@@ -0,0 +1,304 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Viewport transformer - simple orthogonal conversions from world coordinates
+// to screen (device) ones.
+//
+//----------------------------------------------------------------------------
+
+#ifndef AGG_TRANS_VIEWPORT_INCLUDED
+#define AGG_TRANS_VIEWPORT_INCLUDED
+
+#include <string.h>
+#include "agg_basics.h"
+
+
+namespace agg
+{
+
+ enum aspect_ratio_e
+ {
+ aspect_ratio_stretch,
+ aspect_ratio_meet,
+ aspect_ratio_slice
+ };
+
+
+ //----------------------------------------------------------trans_viewport
+ class trans_viewport
+ {
+ public:
+ //-------------------------------------------------------------------
+ trans_viewport() :
+ m_world_x1(0.0),
+ m_world_y1(0.0),
+ m_world_x2(1.0),
+ m_world_y2(1.0),
+ m_device_x1(0.0),
+ m_device_y1(0.0),
+ m_device_x2(1.0),
+ m_device_y2(1.0),
+ m_aspect(aspect_ratio_stretch),
+ m_align_x(0.5),
+ m_align_y(0.5),
+ m_wx1(0.0),
+ m_wy1(0.0),
+ m_wx2(1.0),
+ m_wy2(1.0),
+ m_dx1(0.0),
+ m_dy1(0.0),
+ m_kx(1.0),
+ m_ky(1.0)
+ {}
+
+ //-------------------------------------------------------------------
+ void preserve_aspect_ratio(double alignx,
+ double aligny,
+ aspect_ratio_e aspect)
+ {
+ m_align_x = alignx;
+ m_align_y = aligny;
+ m_aspect = aspect;
+ update();
+ }
+
+ //-------------------------------------------------------------------
+ void device_viewport(double x1, double y1, double x2, double y2)
+ {
+ m_device_x1 = x1;
+ m_device_y1 = y1;
+ m_device_x2 = x2;
+ m_device_y2 = y2;
+ update();
+ }
+
+ //-------------------------------------------------------------------
+ void world_viewport(double x1, double y1, double x2, double y2)
+ {
+ m_world_x1 = x1;
+ m_world_y1 = y1;
+ m_world_x2 = x2;
+ m_world_y2 = y2;
+ update();
+ }
+
+ //-------------------------------------------------------------------
+ void device_viewport(double* x1, double* y1, double* x2, double* y2) const
+ {
+ *x1 = m_device_x1;
+ *y1 = m_device_y1;
+ *x2 = m_device_x2;
+ *y2 = m_device_y2;
+ }
+
+ //-------------------------------------------------------------------
+ void world_viewport(double* x1, double* y1, double* x2, double* y2) const
+ {
+ *x1 = m_world_x1;
+ *y1 = m_world_y1;
+ *x2 = m_world_x2;
+ *y2 = m_world_y2;
+ }
+
+ //-------------------------------------------------------------------
+ void world_viewport_actual(double* x1, double* y1,
+ double* x2, double* y2) const
+ {
+ *x1 = m_wx1;
+ *y1 = m_wy1;
+ *x2 = m_wx2;
+ *y2 = m_wy2;
+ }
+
+ //-------------------------------------------------------------------
+ double align_x() const { return m_align_x; }
+ double align_y() const { return m_align_y; }
+ aspect_ratio_e aspect_ratio() const { return m_aspect; }
+
+ //-------------------------------------------------------------------
+ void transform(double* x, double* y) const
+ {
+ *x = (*x - m_wx1) * m_kx + m_dx1;
+ *y = (*y - m_wy1) * m_ky + m_dy1;
+ }
+
+ //-------------------------------------------------------------------
+ void inverse_transform(double* x, double* y) const
+ {
+ *x = (*x - m_dx1) / m_kx + m_wx1;
+ *y = (*y - m_dy1) / m_ky + m_wy1;
+ }
+
+ //-------------------------------------------------------------------
+ double scale_x() const
+ {
+ return m_kx;
+ }
+
+ //-------------------------------------------------------------------
+ double scale_y() const
+ {
+ return m_ky;
+ }
+
+ //-------------------------------------------------------------------
+ double scale() const
+ {
+ return (m_kx + m_ky) * 0.5;
+ }
+
+
+ //-------------------------------------------------------------------
+ unsigned byte_size() const
+ {
+ return
+ sizeof(m_world_x1) +
+ sizeof(m_world_y1) +
+ sizeof(m_world_x2) +
+ sizeof(m_world_y2) +
+ sizeof(m_device_x1) +
+ sizeof(m_device_y1) +
+ sizeof(m_device_x2) +
+ sizeof(m_device_y2) +
+ sizeof(m_aspect) +
+ sizeof(m_align_x) +
+ sizeof(m_align_y) +
+ sizeof(m_wx1) +
+ sizeof(m_wy1) +
+ sizeof(m_wx2) +
+ sizeof(m_wy2) +
+ sizeof(m_dx1) +
+ sizeof(m_dy1) +
+ sizeof(m_kx) +
+ sizeof(m_ky);
+ }
+
+ void serialize(int8u* ptr) const
+ {
+ memcpy(ptr, &m_world_x1, sizeof(m_world_x1)); ptr += sizeof(m_world_x1);
+ memcpy(ptr, &m_world_y1, sizeof(m_world_y1)); ptr += sizeof(m_world_y1);
+ memcpy(ptr, &m_world_x2, sizeof(m_world_x2)); ptr += sizeof(m_world_x2);
+ memcpy(ptr, &m_world_y2, sizeof(m_world_y2)); ptr += sizeof(m_world_y2);
+ memcpy(ptr, &m_device_x1, sizeof(m_device_x1)); ptr += sizeof(m_device_x1);
+ memcpy(ptr, &m_device_y1, sizeof(m_device_y1)); ptr += sizeof(m_device_y1);
+ memcpy(ptr, &m_device_x2, sizeof(m_device_x2)); ptr += sizeof(m_device_x2);
+ memcpy(ptr, &m_device_y2, sizeof(m_device_y2)); ptr += sizeof(m_device_y2);
+ memcpy(ptr, &m_aspect, sizeof(m_aspect)); ptr += sizeof(m_aspect);
+ memcpy(ptr, &m_align_x, sizeof(m_align_x)); ptr += sizeof(m_align_x);
+ memcpy(ptr, &m_align_y, sizeof(m_align_y)); ptr += sizeof(m_align_y);
+ memcpy(ptr, &m_wx1, sizeof(m_wx1)); ptr += sizeof(m_wx1);
+ memcpy(ptr, &m_wy1, sizeof(m_wy1)); ptr += sizeof(m_wy1);
+ memcpy(ptr, &m_wx2, sizeof(m_wx2)); ptr += sizeof(m_wx2);
+ memcpy(ptr, &m_wy2, sizeof(m_wy2)); ptr += sizeof(m_wy2);
+ memcpy(ptr, &m_dx1, sizeof(m_dx1)); ptr += sizeof(m_dx1);
+ memcpy(ptr, &m_dy1, sizeof(m_dy1)); ptr += sizeof(m_dy1);
+ memcpy(ptr, &m_kx, sizeof(m_kx)); ptr += sizeof(m_kx);
+ memcpy(ptr, &m_ky, sizeof(m_ky)); ptr += sizeof(m_ky);
+ }
+
+ void deserialize(const int8u* ptr)
+ {
+ memcpy(&m_world_x1, ptr, sizeof(m_world_x1)); ptr += sizeof(m_world_x1);
+ memcpy(&m_world_y1, ptr, sizeof(m_world_y1)); ptr += sizeof(m_world_y1);
+ memcpy(&m_world_x2, ptr, sizeof(m_world_x2)); ptr += sizeof(m_world_x2);
+ memcpy(&m_world_y2, ptr, sizeof(m_world_y2)); ptr += sizeof(m_world_y2);
+ memcpy(&m_device_x1, ptr, sizeof(m_device_x1)); ptr += sizeof(m_device_x1);
+ memcpy(&m_device_y1, ptr, sizeof(m_device_y1)); ptr += sizeof(m_device_y1);
+ memcpy(&m_device_x2, ptr, sizeof(m_device_x2)); ptr += sizeof(m_device_x2);
+ memcpy(&m_device_y2, ptr, sizeof(m_device_y2)); ptr += sizeof(m_device_y2);
+ memcpy(&m_aspect, ptr, sizeof(m_aspect)); ptr += sizeof(m_aspect);
+ memcpy(&m_align_x, ptr, sizeof(m_align_x)); ptr += sizeof(m_align_x);
+ memcpy(&m_align_y, ptr, sizeof(m_align_y)); ptr += sizeof(m_align_y);
+ memcpy(&m_wx1, ptr, sizeof(m_wx1)); ptr += sizeof(m_wx1);
+ memcpy(&m_wy1, ptr, sizeof(m_wy1)); ptr += sizeof(m_wy1);
+ memcpy(&m_wx2, ptr, sizeof(m_wx2)); ptr += sizeof(m_wx2);
+ memcpy(&m_wy2, ptr, sizeof(m_wy2)); ptr += sizeof(m_wy2);
+ memcpy(&m_dx1, ptr, sizeof(m_dx1)); ptr += sizeof(m_dx1);
+ memcpy(&m_dy1, ptr, sizeof(m_dy1)); ptr += sizeof(m_dy1);
+ memcpy(&m_kx, ptr, sizeof(m_kx)); ptr += sizeof(m_kx);
+ memcpy(&m_ky, ptr, sizeof(m_ky)); ptr += sizeof(m_ky);
+ }
+
+ private:
+ void update();
+
+ double m_world_x1;
+ double m_world_y1;
+ double m_world_x2;
+ double m_world_y2;
+ double m_device_x1;
+ double m_device_y1;
+ double m_device_x2;
+ double m_device_y2;
+ aspect_ratio_e m_aspect;
+ double m_align_x;
+ double m_align_y;
+ double m_wx1;
+ double m_wy1;
+ double m_wx2;
+ double m_wy2;
+ double m_dx1;
+ double m_dy1;
+ double m_kx;
+ double m_ky;
+ };
+
+
+
+ //-----------------------------------------------------------------------
+ inline void trans_viewport::update()
+ {
+ double world_x1 = m_world_x1;
+ double world_y1 = m_world_y1;
+ double world_x2 = m_world_x2;
+ double world_y2 = m_world_y2;
+ double device_x1 = m_device_x1;
+ double device_y1 = m_device_y1;
+ double device_x2 = m_device_x2;
+ double device_y2 = m_device_y2;
+ if(m_aspect != aspect_ratio_stretch)
+ {
+ double d;
+ m_kx = (device_x2 - device_x1) / (world_x2 - world_x1);
+ m_ky = (device_y2 - device_y1) / (world_y2 - world_y1);
+
+ if((m_aspect == aspect_ratio_meet) == (m_kx < m_ky))
+ {
+ d = (world_y2 - world_y1) * m_ky / m_kx;
+ world_y1 += (world_y2 - world_y1 - d) * m_align_y;
+ world_y2 = world_y1 + d;
+ }
+ else
+ {
+ d = (world_x2 - world_x1) * m_kx / m_ky;
+ world_x1 += (world_x2 - world_x1 - d) * m_align_x;
+ world_x2 = world_x1 + d;
+ }
+ }
+ m_wx1 = world_x1;
+ m_wy1 = world_y1;
+ m_wx2 = world_x2;
+ m_wy2 = world_y2;
+ m_dx1 = device_x1;
+ m_dy1 = device_y1;
+ m_kx = (device_x2 - device_x1) / (world_x2 - world_x1);
+ m_ky = (device_y2 - device_y1) / (world_y2 - world_y1);
+ }
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_trans_warp_magnifier.h b/agg/inc/agg_trans_warp_magnifier.h
new file mode 100755
index 000000000000..d71f567af2ca
--- /dev/null
+++ b/agg/inc/agg_trans_warp_magnifier.h
@@ -0,0 +1,51 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_WARP_MAGNIFIER_INCLUDED
+#define AGG_WARP_MAGNIFIER_INCLUDED
+
+
+namespace agg
+{
+
+ //----------------------------------------------------trans_warp_magnifier
+ //
+ // See Inmplementation agg_trans_warp_magnifier.cpp
+ //
+ class trans_warp_magnifier
+ {
+ public:
+ trans_warp_magnifier() : m_xc(0.0), m_yc(0.0), m_magn(1.0), m_radius(1.0) {}
+
+ void center(double x, double y) { m_xc = x; m_yc = y; }
+ void magnification(double m) { m_magn = m; }
+ void radius(double r) { m_radius = r; }
+
+ void transform(double* x, double* y) const;
+ void inverse_transform(double* x, double* y) const;
+
+ private:
+ double m_xc;
+ double m_yc;
+ double m_magn;
+ double m_radius;
+ };
+
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_vcgen_bspline.h b/agg/inc/agg_vcgen_bspline.h
new file mode 100755
index 000000000000..7490a50a6764
--- /dev/null
+++ b/agg/inc/agg_vcgen_bspline.h
@@ -0,0 +1,74 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_BSPLINE_INCLUDED
+#define AGG_VCGEN_BSPLINE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_array.h"
+#include "agg_bspline.h"
+
+
+namespace agg
+{
+
+ //==========================================================vcgen_bspline
+ class vcgen_bspline
+ {
+ enum status_e
+ {
+ initial,
+ ready,
+ polygon,
+ end_poly,
+ stop
+ };
+
+ public:
+ typedef pod_deque<point_type, 6> vertex_storage;
+
+ vcgen_bspline();
+
+ void interpolation_step(double v) { m_interpolation_step = v; }
+ double interpolation_step() const { return m_interpolation_step; }
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ vcgen_bspline(const vcgen_bspline&);
+ const vcgen_bspline& operator = (const vcgen_bspline&);
+
+ vertex_storage m_src_vertices;
+ bspline m_spline_x;
+ bspline m_spline_y;
+ double m_interpolation_step;
+ unsigned m_closed;
+ status_e m_status;
+ unsigned m_src_vertex;
+ double m_cur_abscissa;
+ double m_max_abscissa;
+ };
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_vcgen_contour.h b/agg/inc/agg_vcgen_contour.h
new file mode 100755
index 000000000000..1c5428206640
--- /dev/null
+++ b/agg/inc/agg_vcgen_contour.h
@@ -0,0 +1,96 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_CONTOUR_INCLUDED
+#define AGG_VCGEN_CONTOUR_INCLUDED
+
+#include "agg_math_stroke.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //----------------------------------------------------------vcgen_contour
+ //
+ // See Implementation agg_vcgen_contour.cpp
+ //
+ class vcgen_contour
+ {
+ enum status_e
+ {
+ initial,
+ ready,
+ outline,
+ out_vertices,
+ end_poly,
+ stop
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+ typedef pod_deque<point_type, 6> coord_storage;
+
+ vcgen_contour();
+
+ void line_join(line_join_e lj) { m_line_join = lj; }
+ void inner_line_join(line_join_e lj) { m_inner_line_join = lj; }
+ void width(double w) { m_width = w * 0.5; }
+ void miter_limit(double ml) { m_miter_limit = ml; }
+ void miter_limit_theta(double t);
+ void inner_miter_limit(double ml) { m_inner_miter_limit = ml; }
+ void approximation_scale(double as) { m_approx_scale = as; }
+ void auto_detect_orientation(bool v) { m_auto_detect = v; }
+
+ line_join_e line_join() const { return m_line_join; }
+ line_join_e inner_line_join() const { return m_inner_line_join; }
+ double width() const { return m_width * 2.0; }
+ double miter_limit() const { return m_miter_limit; }
+ double inner_miter_limit() const { return m_inner_miter_limit; }
+ double approximation_scale() const { return m_approx_scale; }
+ bool auto_detect_orientation() const { return m_auto_detect; }
+
+ // Generator interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ vcgen_contour(const vcgen_contour&);
+ const vcgen_contour& operator = (const vcgen_contour&);
+
+ vertex_storage m_src_vertices;
+ coord_storage m_out_vertices;
+ double m_width;
+ line_join_e m_line_join;
+ line_join_e m_inner_line_join;
+ double m_approx_scale;
+ double m_abs_width;
+ double m_signed_width;
+ double m_miter_limit;
+ double m_inner_miter_limit;
+ status_e m_status;
+ unsigned m_src_vertex;
+ unsigned m_out_vertex;
+ unsigned m_closed;
+ unsigned m_orientation;
+ bool m_auto_detect;
+ };
+
+}
+
+#endif
diff --git a/agg/inc/agg_vcgen_dash.h b/agg/inc/agg_vcgen_dash.h
new file mode 100755
index 000000000000..cc4c86dea833
--- /dev/null
+++ b/agg/inc/agg_vcgen_dash.h
@@ -0,0 +1,99 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Line dash generator
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_VCGEN_DASH_INCLUDED
+#define AGG_VCGEN_DASH_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------------vcgen_dash
+ //
+ // See Implementation agg_vcgen_dash.cpp
+ //
+ class vcgen_dash
+ {
+ enum
+ {
+ max_dashes = 32
+ };
+
+ enum status_e
+ {
+ initial,
+ ready,
+ polyline,
+ stop
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+
+ vcgen_dash();
+
+ void remove_all_dashes();
+ void add_dash(double dash_len, double gap_len);
+ void dash_start(double ds);
+
+ void shorten(double s) { m_shorten = s; }
+ double shorten() const { return m_shorten; }
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef vcgen_dash source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ vcgen_dash(const vcgen_dash&);
+ const vcgen_dash& operator = (const vcgen_dash&);
+
+ void calc_dash_start(double ds);
+
+ double m_dashes[max_dashes];
+ double m_total_dash_len;
+ unsigned m_num_dashes;
+ double m_dash_start;
+ double m_shorten;
+ double m_curr_dash_start;
+ unsigned m_curr_dash;
+ double m_curr_rest;
+ const vertex_dist* m_v1;
+ const vertex_dist* m_v2;
+
+ vertex_storage m_src_vertices;
+ unsigned m_closed;
+ status_e m_status;
+ unsigned m_src_vertex;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_vcgen_markers_term.h b/agg/inc/agg_vcgen_markers_term.h
new file mode 100755
index 000000000000..6f213811c290
--- /dev/null
+++ b/agg/inc/agg_vcgen_markers_term.h
@@ -0,0 +1,72 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_MARKERS_TERM_INCLUDED
+#define AGG_VCGEN_MARKERS_TERM_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+#include "agg_vertex_iterator.h"
+
+namespace agg
+{
+
+ //======================================================vcgen_markers_term
+ //
+ // See Implemantation agg_vcgen_markers_term.cpp
+ // Terminal markers generator (arrowhead/arrowtail)
+ //
+ //------------------------------------------------------------------------
+ class vcgen_markers_term
+ {
+ public:
+ vcgen_markers_term() : m_curr_id(0), m_curr_idx(0) {}
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef vcgen_markers_term source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ vcgen_markers_term(const vcgen_markers_term&);
+ const vcgen_markers_term& operator = (const vcgen_markers_term&);
+
+ struct coord_type
+ {
+ double x, y;
+
+ coord_type() {}
+ coord_type(double x_, double y_) : x(x_), y(y_) {}
+ };
+
+ typedef pod_deque<coord_type, 6> coord_storage;
+
+ coord_storage m_markers;
+ unsigned m_curr_id;
+ unsigned m_curr_idx;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_vcgen_smooth_poly1.h b/agg/inc/agg_vcgen_smooth_poly1.h
new file mode 100755
index 000000000000..61ca14898328
--- /dev/null
+++ b/agg/inc/agg_vcgen_smooth_poly1.h
@@ -0,0 +1,87 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_SMOOTH_POLY1_INCLUDED
+#define AGG_VCGEN_SMOOTH_POLY1_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+
+
+namespace agg
+{
+
+ //======================================================vcgen_smooth_poly1
+ //
+ // See Implementation agg_vcgen_smooth_poly1.cpp
+ // Smooth polygon generator
+ //
+ //------------------------------------------------------------------------
+ class vcgen_smooth_poly1
+ {
+ enum status_e
+ {
+ initial,
+ ready,
+ polygon,
+ ctrl_b,
+ ctrl_e,
+ ctrl1,
+ ctrl2,
+ end_poly,
+ stop
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+
+ vcgen_smooth_poly1();
+
+ void smooth_value(double v) { m_smooth_value = v * 0.5; }
+ double smooth_value() const { return m_smooth_value * 2.0; }
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ vcgen_smooth_poly1(const vcgen_smooth_poly1&);
+ const vcgen_smooth_poly1& operator = (const vcgen_smooth_poly1&);
+
+ void calculate(const vertex_dist& v0,
+ const vertex_dist& v1,
+ const vertex_dist& v2,
+ const vertex_dist& v3);
+
+ vertex_storage m_src_vertices;
+ double m_smooth_value;
+ unsigned m_closed;
+ status_e m_status;
+ unsigned m_src_vertex;
+ double m_ctrl1_x;
+ double m_ctrl1_y;
+ double m_ctrl2_x;
+ double m_ctrl2_y;
+ };
+
+}
+
+
+#endif
+
diff --git a/agg/inc/agg_vcgen_stroke.h b/agg/inc/agg_vcgen_stroke.h
new file mode 100755
index 000000000000..a73509acf3d9
--- /dev/null
+++ b/agg/inc/agg_vcgen_stroke.h
@@ -0,0 +1,114 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_STROKE_INCLUDED
+#define AGG_VCGEN_STROKE_INCLUDED
+
+#include "agg_math_stroke.h"
+#include "agg_vertex_iterator.h"
+
+
+namespace agg
+{
+
+ //============================================================vcgen_stroke
+ //
+ // See Implementation agg_vcgen_stroke.cpp
+ // Stroke generator
+ //
+ //------------------------------------------------------------------------
+ class vcgen_stroke
+ {
+ enum status_e
+ {
+ initial,
+ ready,
+ cap1,
+ cap2,
+ outline1,
+ close_first,
+ outline2,
+ out_vertices,
+ end_poly1,
+ end_poly2,
+ stop
+ };
+
+ public:
+ typedef vertex_sequence<vertex_dist, 6> vertex_storage;
+ typedef pod_deque<point_type, 6> coord_storage;
+
+ vcgen_stroke();
+
+ void line_cap(line_cap_e lc) { m_line_cap = lc; }
+ void line_join(line_join_e lj) { m_line_join = lj; }
+ void inner_line_join(line_join_e lj) { m_inner_line_join = lj; }
+
+ line_cap_e line_cap() const { return m_line_cap; }
+ line_join_e line_join() const { return m_line_join; }
+ line_join_e inner_line_join() const { return m_inner_line_join; }
+
+ void width(double w) { m_width = w * 0.5; }
+ void miter_limit(double ml) { m_miter_limit = ml; }
+ void miter_limit_theta(double t);
+ void inner_miter_limit(double ml) { m_inner_miter_limit = ml; }
+ void approximation_scale(double as) { m_approx_scale = as; }
+
+ double width() const { return m_width * 2.0; }
+ double miter_limit() const { return m_miter_limit; }
+ double inner_miter_limit() const { return m_inner_miter_limit; }
+ double approximation_scale() const { return m_approx_scale; }
+
+ void shorten(double s) { m_shorten = s; }
+ double shorten() const { return m_shorten; }
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ typedef vcgen_stroke source_type;
+ typedef vertex_iterator<source_type> iterator;
+ iterator begin(unsigned id) { return iterator(*this, id); }
+ iterator end() { return iterator(path_cmd_stop); }
+
+ private:
+ vcgen_stroke(const vcgen_stroke&);
+ const vcgen_stroke& operator = (const vcgen_stroke&);
+
+ vertex_storage m_src_vertices;
+ coord_storage m_out_vertices;
+ double m_width;
+ double m_miter_limit;
+ double m_inner_miter_limit;
+ double m_approx_scale;
+ double m_shorten;
+ line_cap_e m_line_cap;
+ line_join_e m_line_join;
+ line_join_e m_inner_line_join;
+ unsigned m_closed;
+ status_e m_status;
+ status_e m_prev_status;
+ unsigned m_src_vertex;
+ unsigned m_out_vertex;
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_vcgen_vertex_sequence.h b/agg/inc/agg_vcgen_vertex_sequence.h
new file mode 100755
index 000000000000..7c4e9e4253e5
--- /dev/null
+++ b/agg/inc/agg_vcgen_vertex_sequence.h
@@ -0,0 +1,135 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VCGEN_VERTEX_SEQUENCE_INCLUDED
+#define AGG_VCGEN_VERTEX_SEQUENCE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_vertex_sequence.h"
+#include "agg_shorten_path.h"
+
+namespace agg
+{
+
+ //===================================================vcgen_vertex_sequence
+ class vcgen_vertex_sequence
+ {
+ public:
+ typedef vertex_dist_cmd vertex_type;
+ typedef vertex_sequence<vertex_type, 6> vertex_storage;
+
+ vcgen_vertex_sequence() :
+ m_flags(0),
+ m_cur_vertex(0),
+ m_shorten(0.0),
+ m_ready(false)
+ {
+ }
+
+ // Vertex Generator Interface
+ void remove_all();
+ void add_vertex(double x, double y, unsigned cmd);
+
+ // Vertex Source Interface
+ void rewind(unsigned id);
+ unsigned vertex(double* x, double* y);
+
+ void shorten(double s) { m_shorten = s; }
+ double shorten() const { return m_shorten; }
+
+ private:
+ vcgen_vertex_sequence(const vcgen_vertex_sequence&);
+ const vcgen_vertex_sequence& operator = (const vcgen_vertex_sequence&);
+
+ vertex_storage m_src_vertices;
+ unsigned m_flags;
+ unsigned m_cur_vertex;
+ double m_shorten;
+ bool m_ready;
+ };
+
+
+ //------------------------------------------------------------------------
+ inline void vcgen_vertex_sequence::remove_all()
+ {
+ m_ready = false;
+ m_src_vertices.remove_all();
+ m_cur_vertex = 0;
+ m_flags = 0;
+ }
+
+ //------------------------------------------------------------------------
+ inline void vcgen_vertex_sequence::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_ready = false;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(vertex_dist_cmd(x, y, cmd));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(vertex_dist_cmd(x, y, cmd));
+ }
+ else
+ {
+ m_flags = cmd & path_flags_mask;
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ inline void vcgen_vertex_sequence::rewind(unsigned)
+ {
+ if(!m_ready)
+ {
+ m_src_vertices.close(is_closed(m_flags));
+ shorten_path(m_src_vertices, m_shorten, get_close_flag(m_flags));
+ }
+ m_ready = true;
+ m_cur_vertex = 0;
+ }
+
+ //------------------------------------------------------------------------
+ inline unsigned vcgen_vertex_sequence::vertex(double* x, double* y)
+ {
+ if(!m_ready)
+ {
+ rewind(0);
+ }
+
+ if(m_cur_vertex == m_src_vertices.size())
+ {
+ ++m_cur_vertex;
+ return path_cmd_end_poly | m_flags;
+ }
+
+ if(m_cur_vertex > m_src_vertices.size())
+ {
+ return path_cmd_stop;
+ }
+
+ vertex_type& v = m_src_vertices[m_cur_vertex++];
+ *x = v.x;
+ *y = v.y;
+ return v.cmd;
+ }
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_vertex_iterator.h b/agg/inc/agg_vertex_iterator.h
new file mode 100755
index 000000000000..f22af0acb888
--- /dev/null
+++ b/agg/inc/agg_vertex_iterator.h
@@ -0,0 +1,133 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes: vertex_iterator
+// vertex_source_adaptor
+// vertex_source_adaptor_with_id
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_VERTEX_ITERATOR_INCLUDED
+#define AGG_VERTEX_ITERATOR_INCLUDED
+
+#include "agg_basics.h"
+
+
+namespace agg
+{
+
+ //---------------------------------------------------------vertex_iterator
+ template<class VertexSource> class vertex_iterator
+ {
+ public:
+ vertex_iterator() {}
+ vertex_iterator(unsigned cmd) { m_vertex.cmd = cmd; }
+ vertex_iterator(const vertex_iterator& i) : m_vs(i.m_vs), m_vertex(i.m_vertex) {}
+ vertex_iterator(VertexSource& vs, unsigned id) : m_vs(&vs)
+ {
+ m_vs->rewind(id);
+ m_vertex.cmd = m_vs->vertex(&m_vertex.x, &m_vertex.y);
+ }
+ vertex_iterator& operator++()
+ {
+ m_vertex.cmd = m_vs->vertex(&m_vertex.x, &m_vertex.y);
+ return *this;
+ }
+
+ const vertex_type& operator*() const { return m_vertex; }
+ const vertex_type* operator->() const { return &m_vertex; }
+
+ bool operator != (const vertex_iterator& i)
+ {
+ return m_vertex.cmd != i.m_vertex.cmd;
+ }
+
+ private:
+ VertexSource* m_vs;
+ vertex_type m_vertex;
+ };
+
+
+ //---------------------------------------------------vertex_source_adaptor
+ template<class VertexContainer> class vertex_source_adaptor
+ {
+ public:
+ vertex_source_adaptor(const VertexContainer& container) :
+ m_container(&container) {}
+
+ void rewind(unsigned)
+ {
+ m_iterator = m_container->begin();
+ m_end = m_container->end();
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ if(m_iterator != m_end)
+ {
+ *x = m_iterator->x;
+ *y = m_iterator->y;
+ cmd = m_iterator->cmd;
+ ++m_iterator;
+ }
+ return cmd;
+ }
+
+ private:
+ const VertexContainer* m_container;
+ typename VertexContainer::const_iterator m_iterator;
+ typename VertexContainer::const_iterator m_end;
+ };
+
+
+
+ //-------------------------------------------vertex_source_adaptor_with_id
+ template<class VertexContainer> class vertex_source_adaptor_with_id
+ {
+ public:
+ vertex_source_adaptor_with_id(const VertexContainer& container) :
+ m_container(&container) {}
+
+ void rewind(unsigned id)
+ {
+ m_iterator = m_container->begin(id);
+ m_end = m_container->end();
+ }
+
+ unsigned vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ if(m_iterator != m_end)
+ {
+ *x = m_iterator->x;
+ *y = m_iterator->y;
+ cmd = m_iterator->cmd;
+ ++m_iterator;
+ }
+ return cmd;
+ }
+
+ private:
+ const VertexContainer* m_container;
+ typename VertexContainer::const_iterator m_iterator;
+ typename VertexContainer::const_iterator m_end;
+ };
+
+
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_vertex_sequence.h b/agg/inc/agg_vertex_sequence.h
new file mode 100755
index 000000000000..357a3df15fa4
--- /dev/null
+++ b/agg/inc/agg_vertex_sequence.h
@@ -0,0 +1,176 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// vertex_sequence container and vertex_dist struct
+//
+//----------------------------------------------------------------------------
+#ifndef AGG_VERTEX_SEQUENCE_INCLUDED
+#define AGG_VERTEX_SEQUENCE_INCLUDED
+
+#include "agg_basics.h"
+#include "agg_array.h"
+#include "agg_math.h"
+
+namespace agg
+{
+
+ //----------------------------------------------------------vertex_sequence
+ // Modified agg::pod_deque. The data is interpreted as a sequence of vertices.
+ // It means that the type T must expose:
+ //
+ // bool operator() (const T& val)
+ //
+ // that is called every time new vertex is being added. The main purpose
+ // of this operator is the possibility to calculate some values during
+ // adding and to return true if the vertex fits some criteria or false if
+ // it doesn't. In the last case the new vertex is not added.
+ //
+ // The simple example is filtering coinciding vertices with calculation
+ // of the distance between the current and previous ones:
+ //
+ // struct vertex_dist
+ // {
+ // double x;
+ // double y;
+ // double dist;
+ //
+ // vertex_dist() {}
+ // vertex_dist(double x_, double y_) :
+ // x(x_),
+ // y(y_),
+ // dist(0.0)
+ // {
+ // }
+ //
+ // bool operator () (const vertex_dist& val)
+ // {
+ // return (dist = calc_distance(x, y, val.x, val.y)) > EPSILON;
+ // }
+ // };
+ //
+ // Function close() calls this operator and removes the last vertex if
+ // necessary.
+ //------------------------------------------------------------------------
+ template<class T, unsigned S=6>
+ class vertex_sequence : public pod_deque<T, S>
+ {
+ public:
+ typedef pod_deque<T, S> base_type;
+
+ void add(const T& val);
+ void modify_last(const T& val);
+ void close(bool remove_flag);
+ };
+
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void vertex_sequence<T, S>::add(const T& val)
+ {
+ if(base_type::size() > 1)
+ {
+ if(!(*this)[base_type::size() - 2]((*this)[base_type::size() - 1]))
+ {
+ base_type::remove_last();
+ }
+ }
+ base_type::add(val);
+ }
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void vertex_sequence<T, S>::modify_last(const T& val)
+ {
+ base_type::remove_last();
+ add(val);
+ }
+
+
+
+ //------------------------------------------------------------------------
+ template<class T, unsigned S>
+ void vertex_sequence<T, S>::close(bool closed)
+ {
+ while(base_type::size() > 1)
+ {
+ if((*this)[base_type::size() - 2]((*this)[base_type::size() - 1])) break;
+ T t = (*this)[base_type::size() - 1];
+ base_type::remove_last();
+ modify_last(t);
+ }
+
+ if(closed)
+ {
+ while(base_type::size() > 1)
+ {
+ if((*this)[base_type::size() - 1]((*this)[0])) break;
+ base_type::remove_last();
+ }
+ }
+ }
+
+
+
+ // Coinciding points maximal distance (Epsilon)
+ const double vertex_dist_epsilon = 1e-14;
+
+ //-------------------------------------------------------------vertex_dist
+ // Vertex (x, y) with the distance to the next one. The last vertex has
+ // distance between the last and the first points if the polygon is closed
+ // and 0.0 if it's a polyline.
+ struct vertex_dist
+ {
+ double x;
+ double y;
+ double dist;
+
+ vertex_dist() {}
+ vertex_dist(double x_, double y_) :
+ x(x_),
+ y(y_),
+ dist(0.0)
+ {
+ }
+
+ bool operator () (const vertex_dist& val)
+ {
+ bool ret = (dist = calc_distance(x, y, val.x, val.y)) > vertex_dist_epsilon;
+ if(!ret) dist = 1.0 / vertex_dist_epsilon;
+ return ret;
+ }
+ };
+
+
+
+ //--------------------------------------------------------vertex_dist_cmd
+ // Save as the above but with additional "command" value
+ struct vertex_dist_cmd : public vertex_dist
+ {
+ unsigned cmd;
+
+ vertex_dist_cmd() {}
+ vertex_dist_cmd(double x_, double y_, unsigned cmd_) :
+ vertex_dist(x_, y_),
+ cmd(cmd_)
+ {
+ }
+ };
+
+
+}
+
+#endif
diff --git a/agg/inc/agg_vpgen_clip_polygon.h b/agg/inc/agg_vpgen_clip_polygon.h
new file mode 100755
index 000000000000..d5da460843e6
--- /dev/null
+++ b/agg/inc/agg_vpgen_clip_polygon.h
@@ -0,0 +1,83 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VPGEN_CLIP_POLYGON_INCLUDED
+#define AGG_VPGEN_CLIP_POLYGON_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //======================================================vpgen_clip_polygon
+ //
+ // See Implementation agg_vpgen_clip_polygon.cpp
+ //
+ class vpgen_clip_polygon
+ {
+ public:
+ vpgen_clip_polygon() :
+ m_clip_box(0, 0, 1, 1),
+ m_x1(0),
+ m_y1(0),
+ m_clip_flags(0),
+ m_num_vertices(0),
+ m_vertex(0),
+ m_cmd(path_cmd_move_to)
+ {
+ }
+
+ void clip_box(double _x1, double _y1, double _x2, double _y2)
+ {
+ m_clip_box.x1 = _x1;
+ m_clip_box.y1 = _y1;
+ m_clip_box.x2 = _x2;
+ m_clip_box.y2 = _y2;
+ m_clip_box.normalize();
+ }
+
+
+ double x1() const { return m_clip_box.x1; }
+ double y1() const { return m_clip_box.y1; }
+ double x2() const { return m_clip_box.x2; }
+ double y2() const { return m_clip_box.y2; }
+
+ static bool auto_close() { return true; }
+ static bool auto_unclose() { return false; }
+
+ void reset();
+ void move_to(double x, double y);
+ void line_to(double x, double y);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ unsigned clipping_flags(double x, double y);
+
+ private:
+ rect_d m_clip_box;
+ double m_x1;
+ double m_y1;
+ unsigned m_clip_flags;
+ double m_x[4];
+ double m_y[4];
+ unsigned m_num_vertices;
+ unsigned m_vertex;
+ unsigned m_cmd;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_vpgen_clip_polyline.h b/agg/inc/agg_vpgen_clip_polyline.h
new file mode 100755
index 000000000000..f951966a3293
--- /dev/null
+++ b/agg/inc/agg_vpgen_clip_polyline.h
@@ -0,0 +1,121 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VPGEN_CLIP_POLYLINE_INCLUDED
+#define AGG_VPGEN_CLIP_POLYLINE_INCLUDED
+
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //======================================================vpgen_clip_polyline
+ //
+ // See Implementation agg_vpgen_clip_polyline.cpp
+ //
+ class vpgen_clip_polyline
+ {
+ public:
+ vpgen_clip_polyline() :
+ m_clip_box(0, 0, 1, 1),
+ m_x1(0),
+ m_y1(0),
+ m_f1(0),
+ m_x2(0),
+ m_y2(0),
+ m_f2(0),
+ m_num_vertices(0),
+ m_vertex(0)
+ {
+ }
+
+ void clip_box(double _x1, double _y1, double _x2, double _y2)
+ {
+ m_clip_box.x1 = _x1;
+ m_clip_box.y1 = _y1;
+ m_clip_box.x2 = _x2;
+ m_clip_box.y2 = _y2;
+ m_clip_box.normalize();
+ }
+
+
+ double x1() const { return m_clip_box.x1; }
+ double y1() const { return m_clip_box.y1; }
+ double x2() const { return m_clip_box.x2; }
+ double y2() const { return m_clip_box.y2; }
+
+ static bool auto_close() { return false; }
+ static bool auto_unclose() { return true; }
+
+ void reset();
+ void move_to(double x, double y);
+ void line_to(double x, double y);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ enum clipping_flags_def
+ {
+ clip_x1 = 1,
+ clip_x2 = 2,
+ clip_y1 = 4,
+ clip_y2 = 8
+ };
+
+ // Determine the clipping code of the vertex according to the
+ // Cyrus-Beck line clipping algorithm
+ //--------------------------------------------------------------------
+ unsigned clipping_flags_x(double x)
+ {
+ unsigned f = 0;
+ if(x < m_clip_box.x1) f |= clip_x1;
+ if(x > m_clip_box.x2) f |= clip_x2;
+ return f;
+ }
+
+ unsigned clipping_flags_y(double y)
+ {
+ unsigned f = 0;
+ if(y < m_clip_box.y1) f |= clip_y1;
+ if(y > m_clip_box.y2) f |= clip_y2;
+ return f;
+ }
+
+ unsigned clipping_flags(double x, double y)
+ {
+ return clipping_flags_x(x) | clipping_flags_y(y);
+ }
+
+ bool move_point(double& x, double& y, unsigned& flags);
+ void clip_line_segment();
+
+ private:
+ rect_d m_clip_box;
+ double m_x1;
+ double m_y1;
+ unsigned m_f1;
+ double m_x2;
+ double m_y2;
+ unsigned m_f2;
+ double m_x[2];
+ double m_y[2];
+ unsigned m_cmd[2];
+ unsigned m_num_vertices;
+ unsigned m_vertex;
+ };
+
+}
+
+
+#endif
diff --git a/agg/inc/agg_vpgen_segmentator.h b/agg/inc/agg_vpgen_segmentator.h
new file mode 100755
index 000000000000..1acc3531cc6e
--- /dev/null
+++ b/agg/inc/agg_vpgen_segmentator.h
@@ -0,0 +1,61 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#ifndef AGG_VPGEN_SEGMENTATOR_INCLUDED
+#define AGG_VPGEN_SEGMENTATOR_INCLUDED
+
+#include <math.h>
+#include "agg_basics.h"
+
+namespace agg
+{
+
+ //=======================================================vpgen_segmentator
+ //
+ // See Implementation agg_vpgen_segmentator.cpp
+ //
+ class vpgen_segmentator
+ {
+ public:
+ vpgen_segmentator() : m_approximation_scale(1.0) {}
+
+ void approximation_scale(double s) { m_approximation_scale = s; }
+ double approximation_scale() const { return m_approximation_scale; }
+
+ static bool auto_close() { return false; }
+ static bool auto_unclose() { return false; }
+
+ void reset() { m_cmd = path_cmd_stop; }
+ void move_to(double x, double y);
+ void line_to(double x, double y);
+ unsigned vertex(double* x, double* y);
+
+ private:
+ double m_approximation_scale;
+ double m_x1;
+ double m_y1;
+ double m_dx;
+ double m_dy;
+ double m_dl;
+ double m_ddl;
+ unsigned m_cmd;
+ };
+
+
+
+}
+
+#endif
+
diff --git a/agg/prj/build.lst b/agg/prj/build.lst
new file mode 100755
index 000000000000..57a09328f82a
--- /dev/null
+++ b/agg/prj/build.lst
@@ -0,0 +1,5 @@
+ag agg : soltools stlport NULL
+ag agg usr1 - all ag_mkout NULL
+ag agg\inc get - all ag_inc NULL
+ag agg\prj get - all ag_prj NULL
+ag agg\source nmake - all ag_agg NULL
diff --git a/agg/prj/d.lst b/agg/prj/d.lst
new file mode 100755
index 000000000000..cbec37a17cc8
--- /dev/null
+++ b/agg/prj/d.lst
@@ -0,0 +1,11 @@
+
+..\%__SRC%\lib\iagg.lib %_DEST%\lib%_EXT%\iagg.lib
+..\%__SRC%\bin\agg?????.dll %_DEST%\bin%_EXT%\agg?????.dll
+
+..\%__SRC%\lib\libagg?????.* %_DEST%\lib%_EXT%\libagg?????.*
+..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+
+mkdir: %_DEST%\inc%_EXT%\agg2
+..\inc\*.h %_DEST%\inc%_EXT%\agg2
+
diff --git a/agg/source/agg.flt b/agg/source/agg.flt
new file mode 100644
index 000000000000..67e713474bf1
--- /dev/null
+++ b/agg/source/agg.flt
@@ -0,0 +1,3 @@
+__CT
+__real
+internal
diff --git a/agg/source/agg_arc.cpp b/agg/source/agg_arc.cpp
new file mode 100755
index 000000000000..eb10f5f7f2fc
--- /dev/null
+++ b/agg/source/agg_arc.cpp
@@ -0,0 +1,105 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Arc vertex generator
+//
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_arc.h"
+
+
+namespace agg
+{
+ //------------------------------------------------------------------------
+ arc::arc(double x, double y,
+ double rx, double ry,
+ double a1, double a2,
+ bool ccw) :
+ m_x(x), m_y(y), m_rx(rx), m_ry(ry), m_scale(1.0)
+ {
+ normalize(a1, a2, ccw);
+ }
+
+ //------------------------------------------------------------------------
+ void arc::init(double x, double y,
+ double rx, double ry,
+ double a1, double a2,
+ bool ccw)
+ {
+ m_x = x; m_y = y;
+ m_rx = rx; m_ry = ry;
+ normalize(a1, a2, ccw);
+ }
+
+ //------------------------------------------------------------------------
+ void arc::approximation_scale(double s)
+ {
+ m_scale = s;
+ if(m_initialized)
+ {
+ normalize(m_start, m_end, m_ccw);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void arc::rewind(unsigned)
+ {
+ m_path_cmd = path_cmd_move_to;
+ m_angle = m_start;
+ }
+
+ //------------------------------------------------------------------------
+ unsigned arc::vertex(double* x, double* y)
+ {
+ if(is_stop(m_path_cmd)) return path_cmd_stop;
+ if((m_angle < m_end) != m_ccw)
+ {
+ *x = m_x + cos(m_end) * m_rx;
+ *y = m_y + sin(m_end) * m_ry;
+ m_path_cmd = path_cmd_stop;
+ return path_cmd_line_to;
+ }
+
+ *x = m_x + cos(m_angle) * m_rx;
+ *y = m_y + sin(m_angle) * m_ry;
+
+ m_angle += m_da;
+
+ unsigned pf = m_path_cmd;
+ m_path_cmd = path_cmd_line_to;
+ return pf;
+ }
+
+ //------------------------------------------------------------------------
+ void arc::normalize(double a1, double a2, bool ccw)
+ {
+ m_da = fabs(1.0 / ((m_rx + m_ry) * 0.5 * m_scale));
+ if(ccw)
+ {
+ while(a2 < a1) a2 += pi * 2.0;
+ }
+ else
+ {
+ while(a1 < a2) a1 += pi * 2.0;
+ m_da = -m_da;
+ }
+ m_ccw = ccw;
+ m_start = a1;
+ m_end = a2;
+ m_initialized = true;
+ }
+
+}
diff --git a/agg/source/agg_arrowhead.cpp b/agg/source/agg_arrowhead.cpp
new file mode 100755
index 000000000000..694ed5ad887b
--- /dev/null
+++ b/agg/source/agg_arrowhead.cpp
@@ -0,0 +1,110 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Simple arrowhead/arrowtail generator
+//
+//----------------------------------------------------------------------------
+
+#include "agg_arrowhead.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ arrowhead::arrowhead() :
+ m_head_d1(1.0),
+ m_head_d2(1.0),
+ m_head_d3(1.0),
+ m_head_d4(0.0),
+ m_tail_d1(1.0),
+ m_tail_d2(1.0),
+ m_tail_d3(1.0),
+ m_tail_d4(0.0),
+ m_head_flag(false),
+ m_tail_flag(false),
+ m_curr_id(0),
+ m_curr_coord(0)
+ {
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void arrowhead::rewind(unsigned id)
+ {
+ m_curr_id = id;
+ m_curr_coord = 0;
+ if(id == 0)
+ {
+ if(!m_tail_flag)
+ {
+ m_cmd[0] = path_cmd_stop;
+ return;
+ }
+ m_coord[0] = m_tail_d1; m_coord[1] = 0.0;
+ m_coord[2] = m_tail_d1 - m_tail_d4; m_coord[3] = m_tail_d3;
+ m_coord[4] = -m_tail_d2 - m_tail_d4; m_coord[5] = m_tail_d3;
+ m_coord[6] = -m_tail_d2; m_coord[7] = 0.0;
+ m_coord[8] = -m_tail_d2 - m_tail_d4; m_coord[9] = -m_tail_d3;
+ m_coord[10] = m_tail_d1 - m_tail_d4; m_coord[11] = -m_tail_d3;
+
+ m_cmd[0] = path_cmd_move_to;
+ m_cmd[1] = path_cmd_line_to;
+ m_cmd[2] = path_cmd_line_to;
+ m_cmd[3] = path_cmd_line_to;
+ m_cmd[4] = path_cmd_line_to;
+ m_cmd[5] = path_cmd_line_to;
+ m_cmd[7] = (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_ccw;
+ m_cmd[6] = path_cmd_stop;
+ return;
+ }
+
+ if(id == 1)
+ {
+ if(!m_head_flag)
+ {
+ m_cmd[0] = path_cmd_stop;
+ return;
+ }
+ m_coord[0] = -m_head_d1; m_coord[1] = 0.0;
+ m_coord[2] = m_head_d2 + m_head_d4; m_coord[3] = -m_head_d3;
+ m_coord[4] = m_head_d2; m_coord[5] = 0.0;
+ m_coord[6] = m_head_d2 + m_head_d4; m_coord[7] = m_head_d3;
+
+ m_cmd[0] = path_cmd_move_to;
+ m_cmd[1] = path_cmd_line_to;
+ m_cmd[2] = path_cmd_line_to;
+ m_cmd[3] = path_cmd_line_to;
+ m_cmd[4] = (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_ccw;
+ m_cmd[5] = path_cmd_stop;
+ return;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned arrowhead::vertex(double* x, double* y)
+ {
+ if(m_curr_id < 2)
+ {
+ unsigned curr_idx = m_curr_coord * 2;
+ *x = m_coord[curr_idx];
+ *y = m_coord[curr_idx + 1];
+ return m_cmd[m_curr_coord++];
+ }
+ return path_cmd_stop;
+ }
+
+}
diff --git a/agg/source/agg_bezier_arc.cpp b/agg/source/agg_bezier_arc.cpp
new file mode 100755
index 000000000000..6b47fff76fc8
--- /dev/null
+++ b/agg/source/agg_bezier_arc.cpp
@@ -0,0 +1,237 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Arc generator. Produces at most 4 consecutive cubic bezier curves, i.e.,
+// 4, 7, 10, or 13 vertices.
+//
+//----------------------------------------------------------------------------
+
+
+#include <math.h>
+#include "agg_bezier_arc.h"
+
+
+namespace agg
+{
+
+ //------------------------------------------------------------arc_to_bezier
+ void arc_to_bezier(double cx, double cy, double rx, double ry,
+ double start_angle, double sweep_angle,
+ double* curve)
+ {
+ double x0 = cos(sweep_angle / 2.0);
+ double y0 = sin(sweep_angle / 2.0);
+ double tx = (1.0 - x0) * 4.0 / 3.0;
+ double ty = y0 - tx * x0 / y0;
+ double px[4];
+ double py[4];
+ px[0] = x0;
+ py[0] = -y0;
+ px[1] = x0 + tx;
+ py[1] = -ty;
+ px[2] = x0 + tx;
+ py[2] = ty;
+ px[3] = x0;
+ py[3] = y0;
+
+ double sn = sin(start_angle + sweep_angle / 2.0);
+ double cs = cos(start_angle + sweep_angle / 2.0);
+
+ unsigned i;
+ for(i = 0; i < 4; i++)
+ {
+ curve[i * 2] = cx + rx * (px[i] * cs - py[i] * sn);
+ curve[i * 2 + 1] = cy + ry * (px[i] * sn + py[i] * cs);
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void bezier_arc::init(double x, double y,
+ double rx, double ry,
+ double start_angle,
+ double sweep_angle)
+ {
+ start_angle = fmod(start_angle, 2.0 * pi);
+ if(sweep_angle >= 2.0 * pi) sweep_angle = 2.0 * pi;
+ if(sweep_angle <= -2.0 * pi) sweep_angle = -2.0 * pi;
+
+ double total_sweep = 0.0;
+ double local_sweep = 0.0;
+ m_num_vertices = 2;
+ bool done = false;
+ do
+ {
+ if(sweep_angle < 0.0)
+ {
+ local_sweep = -pi * 0.5;
+ total_sweep -= pi * 0.5;
+ if(total_sweep <= sweep_angle)
+ {
+ local_sweep = sweep_angle - (total_sweep + pi * 0.5);
+ done = true;
+ }
+ }
+ else
+ {
+ local_sweep = pi * 0.5;
+ total_sweep += pi * 0.5;
+ if(total_sweep >= sweep_angle)
+ {
+ local_sweep = sweep_angle - (total_sweep - pi * 0.5);
+ done = true;
+ }
+ }
+
+ arc_to_bezier(x, y, rx, ry,
+ start_angle,
+ local_sweep,
+ m_vertices + m_num_vertices - 2);
+
+ m_num_vertices += 6;
+ start_angle += local_sweep;
+ }
+ while(!done && m_num_vertices < 26);
+ }
+
+
+
+
+ //--------------------------------------------------------------------
+ void bezier_arc_svg::init(double x0, double y0,
+ double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double x2, double y2)
+ {
+ m_radii_ok = true;
+
+ if(rx < 0.0) rx = -rx;
+ if(ry < 0.0) ry = -rx;
+
+ // Calculate the middle point between
+ // the current and the final points
+ //------------------------
+ double dx2 = (x0 - x2) / 2.0;
+ double dy2 = (y0 - y2) / 2.0;
+
+ // Convert angle from degrees to radians
+ //------------------------
+ double cos_a = cos(angle);
+ double sin_a = sin(angle);
+
+ // Calculate (x1, y1)
+ //------------------------
+ double x1 = cos_a * dx2 + sin_a * dy2;
+ double y1 = -sin_a * dx2 + cos_a * dy2;
+
+ // Ensure radii are large enough
+ //------------------------
+ double prx = rx * rx;
+ double pry = ry * ry;
+ double px1 = x1 * x1;
+ double py1 = y1 * y1;
+
+ // Check that radii are large enough
+ //------------------------
+ double radii_check = px1/prx + py1/pry;
+ if(radii_check > 1.0)
+ {
+ rx = sqrt(radii_check) * rx;
+ ry = sqrt(radii_check) * ry;
+ prx = rx * rx;
+ pry = ry * ry;
+ if(radii_check > 10.0) m_radii_ok = false;
+ }
+
+ // Calculate (cx1, cy1)
+ //------------------------
+ double sign = (large_arc_flag == sweep_flag) ? -1.0 : 1.0;
+ double sq = (prx*pry - prx*py1 - pry*px1) / (prx*py1 + pry*px1);
+ double coef = sign * sqrt((sq < 0) ? 0 : sq);
+ double cx1 = coef * ((rx * y1) / ry);
+ double cy1 = coef * -((ry * x1) / rx);
+
+ //
+ // Calculate (cx, cy) from (cx1, cy1)
+ //------------------------
+ double sx2 = (x0 + x2) / 2.0;
+ double sy2 = (y0 + y2) / 2.0;
+ double cx = sx2 + (cos_a * cx1 - sin_a * cy1);
+ double cy = sy2 + (sin_a * cx1 + cos_a * cy1);
+
+ // Calculate the start_angle (angle1) and the sweep_angle (dangle)
+ //------------------------
+ double ux = (x1 - cx1) / rx;
+ double uy = (y1 - cy1) / ry;
+ double vx = (-x1 - cx1) / rx;
+ double vy = (-y1 - cy1) / ry;
+ double p, n;
+
+ // Calculate the angle start
+ //------------------------
+ n = sqrt(ux*ux + uy*uy);
+ p = ux; // (1 * ux) + (0 * uy)
+ sign = (uy < 0) ? -1.0 : 1.0;
+ double v = p / n;
+ if(v < -1.0) v = -1.0;
+ if(v > 1.0) v = 1.0;
+ double start_angle = sign * acos(v);
+
+ // Calculate the sweep angle
+ //------------------------
+ n = sqrt((ux*ux + uy*uy) * (vx*vx + vy*vy));
+ p = ux * vx + uy * vy;
+ sign = (ux * vy - uy * vx < 0) ? -1.0 : 1.0;
+ v = p / n;
+ if(v < -1.0) v = -1.0;
+ if(v > 1.0) v = 1.0;
+ double sweep_angle = sign * acos(v);
+ if(!sweep_flag && sweep_angle > 0)
+ {
+ sweep_angle -= pi * 2.0;
+ }
+ else
+ if (sweep_flag && sweep_angle < 0)
+ {
+ sweep_angle += pi * 2.0;
+ }
+
+ // We can now build and transform the resulting arc
+ //------------------------
+ m_arc.init(0.0, 0.0, rx, ry, start_angle, sweep_angle);
+ trans_affine mtx = trans_affine_rotation(angle);
+ mtx *= trans_affine_translation(cx, cy);
+
+ for(unsigned i = 2; i < m_arc.num_vertices()-2; i += 2)
+ {
+ mtx.transform(m_arc.vertices() + i, m_arc.vertices() + i + 1);
+ }
+
+ // We must make sure that the starting and ending points
+ // exactly coincide with the initial (x0,y0) and (x2,y2)
+ m_arc.vertices()[0] = x0;
+ m_arc.vertices()[1] = y0;
+ if(m_arc.num_vertices() > 2)
+ {
+ m_arc.vertices()[m_arc.num_vertices() - 2] = x2;
+ m_arc.vertices()[m_arc.num_vertices() - 1] = y2;
+ }
+ }
+
+
+}
diff --git a/agg/source/agg_bspline.cpp b/agg/source/agg_bspline.cpp
new file mode 100755
index 000000000000..8635495ecc9e
--- /dev/null
+++ b/agg/source/agg_bspline.cpp
@@ -0,0 +1,299 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// class bspline
+//
+//----------------------------------------------------------------------------
+
+
+#include "agg_bspline.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ bspline::~bspline()
+ {
+ delete [] m_am;
+ }
+
+
+ //------------------------------------------------------------------------
+ bspline::bspline() :
+ m_max(0),
+ m_num(0),
+ m_x(0),
+ m_y(0),
+ m_am(0),
+ m_last_idx(-1)
+ {
+ }
+
+ //------------------------------------------------------------------------
+ bspline::bspline(int num) :
+ m_max(0),
+ m_num(0),
+ m_x(0),
+ m_y(0),
+ m_am(0),
+ m_last_idx(-1)
+ {
+ init(num);
+ }
+
+ //------------------------------------------------------------------------
+ bspline::bspline(int num, const double* x, const double* y) :
+ m_max(0),
+ m_num(0),
+ m_x(0),
+ m_y(0),
+ m_am(0),
+ m_last_idx(-1)
+ {
+ init(num, x, y);
+ }
+
+
+ //------------------------------------------------------------------------
+ void bspline::init(int max)
+ {
+ if(max > 2 && max > m_max)
+ {
+ delete [] m_am;
+ m_am = new double[max * 3];
+ m_max = max;
+ m_x = m_am + m_max;
+ m_y = m_am + m_max * 2;
+ }
+ m_num = 0;
+ m_last_idx = -1;
+ }
+
+
+ //------------------------------------------------------------------------
+ void bspline::add_point(double x, double y)
+ {
+ if(m_num < m_max)
+ {
+ m_x[m_num] = x;
+ m_y[m_num] = y;
+ ++m_num;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void bspline::prepare()
+ {
+ if(m_num > 2)
+ {
+ int i, k, n1;
+ double* temp;
+ double* r;
+ double* s;
+ double* al;
+ double h, p, d, f, e;
+
+ for(k = 0; k < m_num; k++)
+ {
+ m_am[k] = 0.0;
+ }
+
+ n1 = 3 * m_num;
+
+ al = new double[n1];
+ temp = al;
+
+ for(k = 0; k < n1; k++)
+ {
+ temp[k] = 0.0;
+ }
+
+ r = temp + m_num;
+ s = temp + m_num * 2;
+
+ n1 = m_num - 1;
+ d = m_x[1] - m_x[0];
+ e = (m_y[1] - m_y[0]) / d;
+
+ for(k = 1; k < n1; k++)
+ {
+ h = d;
+ d = m_x[k + 1] - m_x[k];
+ f = e;
+ e = (m_y[k + 1] - m_y[k]) / d;
+ al[k] = d / (d + h);
+ r[k] = 1.0 - al[k];
+ s[k] = 6.0 * (e - f) / (h + d);
+ }
+
+ for(k = 1; k < n1; k++)
+ {
+ p = 1.0 / (r[k] * al[k - 1] + 2.0);
+ al[k] *= -p;
+ s[k] = (s[k] - r[k] * s[k - 1]) * p;
+ }
+
+ m_am[n1] = 0.0;
+ al[n1 - 1] = s[n1 - 1];
+ m_am[n1 - 1] = al[n1 - 1];
+
+ for(k = n1 - 2, i = 0; i < m_num - 2; i++, k--)
+ {
+ al[k] = al[k] * al[k + 1] + s[k];
+ m_am[k] = al[k];
+ }
+ delete [] al;
+ }
+ m_last_idx = -1;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void bspline::init(int num, const double* x, const double* y)
+ {
+ if(num > 2)
+ {
+ init(num);
+ int i;
+ for(i = 0; i < num; i++)
+ {
+ add_point(*x++, *y++);
+ }
+ prepare();
+ }
+ m_last_idx = -1;
+ }
+
+
+ //------------------------------------------------------------------------
+ void bspline::bsearch(int n, const double *x, double x0, int *i)
+ {
+ int j = n - 1;
+ int k;
+
+ for(*i = 0; (j - *i) > 1; )
+ {
+ if(x0 < x[k = (*i + j) >> 1]) j = k;
+ else *i = k;
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ double bspline::interpolation(double x, int i) const
+ {
+ int j = i + 1;
+ double d = m_x[i] - m_x[j];
+ double h = x - m_x[j];
+ double r = m_x[i] - x;
+ double p = d * d / 6.0;
+ return (m_am[j] * r * r * r + m_am[i] * h * h * h) / 6.0 / d +
+ ((m_y[j] - m_am[j] * p) * r + (m_y[i] - m_am[i] * p) * h) / d;
+ }
+
+
+ //------------------------------------------------------------------------
+ double bspline::extrapolation_left(double x) const
+ {
+ double d = m_x[1] - m_x[0];
+ return (-d * m_am[1] / 6 + (m_y[1] - m_y[0]) / d) *
+ (x - m_x[0]) +
+ m_y[0];
+ }
+
+ //------------------------------------------------------------------------
+ double bspline::extrapolation_right(double x) const
+ {
+ double d = m_x[m_num - 1] - m_x[m_num - 2];
+ return (d * m_am[m_num - 2] / 6 + (m_y[m_num - 1] - m_y[m_num - 2]) / d) *
+ (x - m_x[m_num - 1]) +
+ m_y[m_num - 1];
+ }
+
+ //------------------------------------------------------------------------
+ double bspline::get(double x) const
+ {
+ if(m_num > 2)
+ {
+ int i;
+
+ // Extrapolation on the left
+ if(x < m_x[0]) return extrapolation_left(x);
+
+ // Extrapolation on the right
+ if(x >= m_x[m_num - 1]) return extrapolation_right(x);
+
+ // Interpolation
+ bsearch(m_num, m_x, x, &i);
+ return interpolation(x, i);
+ }
+ return 0.0;
+ }
+
+
+ //------------------------------------------------------------------------
+ double bspline::get_stateful(double x) const
+ {
+ if(m_num > 2)
+ {
+ // Extrapolation on the left
+ if(x < m_x[0]) return extrapolation_left(x);
+
+ // Extrapolation on the right
+ if(x >= m_x[m_num - 1]) return extrapolation_right(x);
+
+ if(m_last_idx >= 0)
+ {
+ // Check if x is not in current range
+ if(x < m_x[m_last_idx] || x > m_x[m_last_idx + 1])
+ {
+ // Check if x between next points (most probably)
+ if(m_last_idx < m_num - 2 &&
+ x >= m_x[m_last_idx + 1] &&
+ x <= m_x[m_last_idx + 2])
+ {
+ ++m_last_idx;
+ }
+ else
+ if(m_last_idx > 0 &&
+ x >= m_x[m_last_idx - 1] &&
+ x <= m_x[m_last_idx])
+ {
+ // x is between pevious points
+ --m_last_idx;
+ }
+ else
+ {
+ // Else perform full search
+ bsearch(m_num, m_x, x, &m_last_idx);
+ }
+ }
+ return interpolation(x, m_last_idx);
+ }
+ else
+ {
+ // Interpolation
+ bsearch(m_num, m_x, x, &m_last_idx);
+ return interpolation(x, m_last_idx);
+ }
+ }
+ return 0.0;
+ }
+
+}
+
diff --git a/agg/source/agg_curves.cpp b/agg/source/agg_curves.cpp
new file mode 100755
index 000000000000..bae65f26b5a3
--- /dev/null
+++ b/agg/source/agg_curves.cpp
@@ -0,0 +1,246 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// classes curve3 and curve4
+//
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_curves.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ void curve3::init(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3)
+ {
+ m_start_x = x1;
+ m_start_y = y1;
+ m_end_x = x3;
+ m_end_y = y3;
+
+ double dx1 = x2 - x1;
+ double dy1 = y2 - y1;
+ double dx2 = x3 - x2;
+ double dy2 = y3 - y2;
+
+ double len = sqrt(dx1 * dx1 + dy1 * dy1) + sqrt(dx2 * dx2 + dy2 * dy2);
+
+ m_num_steps = int(len * 0.25 * m_scale);
+
+ if(m_num_steps < 2)
+ {
+ m_num_steps = 2;
+ }
+
+ double subdivide_step = 1.0 / m_num_steps;
+ double subdivide_step2 = subdivide_step * subdivide_step;
+
+ double tmpx = (x1 - x2 * 2.0 + x3) * subdivide_step2;
+ double tmpy = (y1 - y2 * 2.0 + y3) * subdivide_step2;
+
+ m_saved_fx = m_fx = x1;
+ m_saved_fy = m_fy = y1;
+
+ m_saved_dfx = m_dfx = tmpx + (x2 - x1) * (2.0 * subdivide_step);
+ m_saved_dfy = m_dfy = tmpy + (y2 - y1) * (2.0 * subdivide_step);
+
+ m_ddfx = tmpx * 2.0;
+ m_ddfy = tmpy * 2.0;
+
+ m_step = m_num_steps;
+ }
+
+
+
+
+ //------------------------------------------------------------------------
+ void curve3::rewind(unsigned)
+ {
+ if(m_num_steps == 0)
+ {
+ m_step = -1;
+ return;
+ }
+ m_step = m_num_steps;
+ m_fx = m_saved_fx;
+ m_fy = m_saved_fy;
+ m_dfx = m_saved_dfx;
+ m_dfy = m_saved_dfy;
+ }
+
+
+
+
+ //------------------------------------------------------------------------
+ unsigned curve3::vertex(double* x, double* y)
+ {
+ if(m_step < 0) return path_cmd_stop;
+ if(m_step == m_num_steps)
+ {
+ *x = m_start_x;
+ *y = m_start_y;
+ --m_step;
+ return path_cmd_move_to;
+ }
+ if(m_step == 0)
+ {
+ *x = m_end_x;
+ *y = m_end_y;
+ --m_step;
+ return path_cmd_line_to;
+ }
+ m_fx += m_dfx;
+ m_fy += m_dfy;
+ m_dfx += m_ddfx;
+ m_dfy += m_ddfy;
+ *x = m_fx;
+ *y = m_fy;
+ --m_step;
+ return path_cmd_line_to;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //------------------------------------------------------------------------
+ void curve4::init(double x1, double y1,
+ double x2, double y2,
+ double x3, double y3,
+ double x4, double y4)
+ {
+ m_start_x = x1;
+ m_start_y = y1;
+ m_end_x = x4;
+ m_end_y = y4;
+
+ double dx1 = x2 - x1;
+ double dy1 = y2 - y1;
+ double dx2 = x3 - x2;
+ double dy2 = y3 - y2;
+ double dx3 = x4 - x3;
+ double dy3 = y4 - y3;
+
+ double len = sqrt(dx1 * dx1 + dy1 * dy1) +
+ sqrt(dx2 * dx2 + dy2 * dy2) +
+ sqrt(dx3 * dx3 + dy3 * dy3);
+
+ m_num_steps = int(len * 0.25 * m_scale);
+
+ if(m_num_steps < 2)
+ {
+ m_num_steps = 2;
+ }
+
+ double subdivide_step = 1.0 / m_num_steps;
+ double subdivide_step2 = subdivide_step * subdivide_step;
+ double subdivide_step3 = subdivide_step * subdivide_step * subdivide_step;
+
+ double pre1 = 3.0 * subdivide_step;
+ double pre2 = 3.0 * subdivide_step2;
+ double pre4 = 6.0 * subdivide_step2;
+ double pre5 = 6.0 * subdivide_step3;
+
+ double tmp1x = x1 - x2 * 2.0 + x3;
+ double tmp1y = y1 - y2 * 2.0 + y3;
+
+ double tmp2x = (x2 - x3) * 3.0 - x1 + x4;
+ double tmp2y = (y2 - y3) * 3.0 - y1 + y4;
+
+ m_saved_fx = m_fx = x1;
+ m_saved_fy = m_fy = y1;
+
+ m_saved_dfx = m_dfx = (x2 - x1) * pre1 + tmp1x * pre2 + tmp2x * subdivide_step3;
+ m_saved_dfy = m_dfy = (y2 - y1) * pre1 + tmp1y * pre2 + tmp2y * subdivide_step3;
+
+ m_saved_ddfx = m_ddfx = tmp1x * pre4 + tmp2x * pre5;
+ m_saved_ddfy = m_ddfy = tmp1y * pre4 + tmp2y * pre5;
+
+ m_dddfx = tmp2x * pre5;
+ m_dddfy = tmp2y * pre5;
+
+ m_step = m_num_steps;
+ }
+
+
+
+
+ //------------------------------------------------------------------------
+ void curve4::rewind(unsigned)
+ {
+ if(m_num_steps == 0)
+ {
+ m_step = -1;
+ return;
+ }
+ m_step = m_num_steps;
+ m_fx = m_saved_fx;
+ m_fy = m_saved_fy;
+ m_dfx = m_saved_dfx;
+ m_dfy = m_saved_dfy;
+ m_ddfx = m_saved_ddfx;
+ m_ddfy = m_saved_ddfy;
+ }
+
+
+
+
+
+ //------------------------------------------------------------------------
+ unsigned curve4::vertex(double* x, double* y)
+ {
+ if(m_step < 0) return path_cmd_stop;
+ if(m_step == m_num_steps)
+ {
+ *x = m_start_x;
+ *y = m_start_y;
+ --m_step;
+ return path_cmd_move_to;
+ }
+ if(m_step == 0)
+ {
+ *x = m_end_x;
+ *y = m_end_y;
+ --m_step;
+ return path_cmd_line_to;
+ }
+ m_fx += m_dfx;
+ m_fy += m_dfy;
+ m_dfx += m_ddfx;
+ m_dfy += m_ddfy;
+ m_ddfx += m_dddfx;
+ m_ddfy += m_dddfy;
+ *x = m_fx;
+ *y = m_fy;
+ --m_step;
+ return path_cmd_line_to;
+ }
+
+
+
+
+}
+
diff --git a/agg/source/agg_embedded_raster_fonts.cpp b/agg/source/agg_embedded_raster_fonts.cpp
new file mode 100755
index 000000000000..b1060fb7e176
--- /dev/null
+++ b/agg/source/agg_embedded_raster_fonts.cpp
@@ -0,0 +1,10426 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_embedded_raster_fonts.h"
+
+namespace agg
+{
+
+ const int8u gse4x6[] =
+ {
+ 6, 0, 32, 128-32,
+
+ 0x00,0x00,0x07,0x00,0x0e,0x00,0x15,0x00,0x1c,0x00,0x23,0x00,0x2a,0x00,0x31,0x00,0x38,0x00,
+ 0x3f,0x00,0x46,0x00,0x4d,0x00,0x54,0x00,0x5b,0x00,0x62,0x00,0x69,0x00,0x70,0x00,0x77,0x00,
+ 0x7e,0x00,0x85,0x00,0x8c,0x00,0x93,0x00,0x9a,0x00,0xa1,0x00,0xa8,0x00,0xaf,0x00,0xb6,0x00,
+ 0xbd,0x00,0xc4,0x00,0xcb,0x00,0xd2,0x00,0xd9,0x00,0xe0,0x00,0xe7,0x00,0xee,0x00,0xf5,0x00,
+ 0xfc,0x00,0x03,0x01,0x0a,0x01,0x11,0x01,0x18,0x01,0x1f,0x01,0x26,0x01,0x2d,0x01,0x34,0x01,
+ 0x3b,0x01,0x42,0x01,0x49,0x01,0x50,0x01,0x57,0x01,0x5e,0x01,0x65,0x01,0x6c,0x01,0x73,0x01,
+ 0x7a,0x01,0x81,0x01,0x88,0x01,0x8f,0x01,0x96,0x01,0x9d,0x01,0xa4,0x01,0xab,0x01,0xb2,0x01,
+ 0xb9,0x01,0xc0,0x01,0xc7,0x01,0xce,0x01,0xd5,0x01,0xdc,0x01,0xe3,0x01,0xea,0x01,0xf1,0x01,
+ 0xf8,0x01,0xff,0x01,0x06,0x02,0x0d,0x02,0x14,0x02,0x1b,0x02,0x22,0x02,0x29,0x02,0x30,0x02,
+ 0x37,0x02,0x3e,0x02,0x45,0x02,0x4c,0x02,0x53,0x02,0x5a,0x02,0x61,0x02,0x68,0x02,0x6f,0x02,
+ 0x76,0x02,0x7d,0x02,0x84,0x02,0x8b,0x02,0x92,0x02,0x99,0x02,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x40,0x40,0x40,0x00,0x40,0x00,
+
+ 4, // 0x22 '"'
+ 0xa0,0xa0,0x00,0x00,0x00,0x00,
+
+ 4, // 0x23 '#'
+ 0x60,0xf0,0x60,0xf0,0x60,0x00,
+
+ 4, // 0x24 '$'
+ 0x40,0x60,0xc0,0x60,0xc0,0x40,
+
+ 4, // 0x25 '%'
+ 0xa0,0x20,0x40,0x80,0xa0,0x00,
+
+ 4, // 0x26 '&'
+ 0xe0,0xa0,0x50,0xa0,0xd0,0x00,
+
+ 4, // 0x27 '''
+ 0x40,0x40,0x00,0x00,0x00,0x00,
+
+ 4, // 0x28 '('
+ 0x20,0x40,0x40,0x40,0x20,0x00,
+
+ 4, // 0x29 ')'
+ 0x40,0x20,0x20,0x20,0x40,0x00,
+
+ 4, // 0x2a '*'
+ 0xa0,0x40,0xe0,0x40,0xa0,0x00,
+
+ 4, // 0x2b '+'
+ 0x40,0x40,0xe0,0x40,0x40,0x00,
+
+ 4, // 0x2c ','
+ 0x00,0x00,0x00,0x40,0x40,0x80,
+
+ 4, // 0x2d '-'
+ 0x00,0x00,0xe0,0x00,0x00,0x00,
+
+ 4, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x40,0x00,
+
+ 4, // 0x2f '/'
+ 0x10,0x20,0x20,0x40,0x40,0x80,
+
+ 4, // 0x30 '0'
+ 0xe0,0xa0,0xa0,0xa0,0xe0,0x00,
+
+ 4, // 0x31 '1'
+ 0x40,0xc0,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x32 '2'
+ 0xe0,0xa0,0x20,0x40,0xe0,0x00,
+
+ 4, // 0x33 '3'
+ 0xe0,0x20,0x40,0x20,0xe0,0x00,
+
+ 4, // 0x34 '4'
+ 0xa0,0xa0,0xe0,0x20,0x20,0x00,
+
+ 4, // 0x35 '5'
+ 0xe0,0x80,0xc0,0x20,0xc0,0x00,
+
+ 4, // 0x36 '6'
+ 0x40,0x80,0xe0,0xa0,0xe0,0x00,
+
+ 4, // 0x37 '7'
+ 0xe0,0xa0,0x20,0x40,0x40,0x00,
+
+ 4, // 0x38 '8'
+ 0xe0,0xa0,0x40,0xa0,0xe0,0x00,
+
+ 4, // 0x39 '9'
+ 0xe0,0xa0,0xe0,0x20,0xc0,0x00,
+
+ 4, // 0x3a ':'
+ 0x00,0x40,0x00,0x40,0x00,0x00,
+
+ 4, // 0x3b ';'
+ 0x00,0x40,0x00,0x40,0x40,0x80,
+
+ 4, // 0x3c '<'
+ 0x20,0x40,0x80,0x40,0x20,0x00,
+
+ 4, // 0x3d '='
+ 0x00,0xe0,0x00,0xe0,0x00,0x00,
+
+ 4, // 0x3e '>'
+ 0x80,0x40,0x20,0x40,0x80,0x00,
+
+ 4, // 0x3f '?'
+ 0xc0,0x20,0x40,0x00,0x40,0x00,
+
+ 4, // 0x40 '@'
+ 0x40,0xa0,0xe0,0xe0,0x80,0x60,
+
+ 4, // 0x41 'A'
+ 0x40,0xa0,0xe0,0xa0,0xa0,0x00,
+
+ 4, // 0x42 'B'
+ 0xc0,0xa0,0xc0,0xa0,0xc0,0x00,
+
+ 4, // 0x43 'C'
+ 0x60,0x80,0x80,0x80,0x60,0x00,
+
+ 4, // 0x44 'D'
+ 0xc0,0xa0,0xa0,0xa0,0xc0,0x00,
+
+ 4, // 0x45 'E'
+ 0xe0,0x80,0xc0,0x80,0xe0,0x00,
+
+ 4, // 0x46 'F'
+ 0xe0,0x80,0xc0,0x80,0x80,0x00,
+
+ 4, // 0x47 'G'
+ 0x60,0x80,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x48 'H'
+ 0xa0,0xa0,0xe0,0xa0,0xa0,0x00,
+
+ 4, // 0x49 'I'
+ 0xe0,0x40,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x4a 'J'
+ 0x20,0x20,0x20,0x20,0xa0,0x40,
+
+ 4, // 0x4b 'K'
+ 0xa0,0xa0,0xc0,0xc0,0xa0,0x00,
+
+ 4, // 0x4c 'L'
+ 0x80,0x80,0x80,0x80,0xe0,0x00,
+
+ 4, // 0x4d 'M'
+ 0xa0,0xe0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x4e 'N'
+ 0x90,0xd0,0xb0,0x90,0x90,0x00,
+
+ 4, // 0x4f 'O'
+ 0x40,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x50 'P'
+ 0xc0,0xa0,0xa0,0xc0,0x80,0x00,
+
+ 4, // 0x51 'Q'
+ 0x40,0xa0,0xa0,0xa0,0x60,0x00,
+
+ 4, // 0x52 'R'
+ 0xc0,0xa0,0xa0,0xc0,0xa0,0x00,
+
+ 4, // 0x53 'S'
+ 0x60,0x80,0x40,0x20,0xc0,0x00,
+
+ 4, // 0x54 'T'
+ 0xe0,0x40,0x40,0x40,0x40,0x00,
+
+ 4, // 0x55 'U'
+ 0xa0,0xa0,0xa0,0xa0,0xe0,0x00,
+
+ 4, // 0x56 'V'
+ 0xa0,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x57 'W'
+ 0xa0,0xa0,0xa0,0xe0,0xa0,0x00,
+
+ 4, // 0x58 'X'
+ 0xa0,0xa0,0x40,0xa0,0xa0,0x00,
+
+ 4, // 0x59 'Y'
+ 0xa0,0xa0,0x40,0x40,0x40,0x00,
+
+ 4, // 0x5a 'Z'
+ 0xe0,0x20,0x40,0x80,0xe0,0x00,
+
+ 4, // 0x5b '['
+ 0xc0,0x80,0x80,0x80,0xc0,0x00,
+
+ 4, // 0x5c '\'
+ 0x80,0x40,0x40,0x20,0x20,0x10,
+
+ 4, // 0x5d ']'
+ 0xc0,0x40,0x40,0x40,0xc0,0x00,
+
+ 4, // 0x5e '^'
+ 0x40,0xa0,0x00,0x00,0x00,0x00,
+
+ 4, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0xf0,
+
+ 4, // 0x60 '`'
+ 0x40,0x20,0x00,0x00,0x00,0x00,
+
+ 4, // 0x61 'a'
+ 0x00,0x60,0xa0,0xa0,0x70,0x00,
+
+ 4, // 0x62 'b'
+ 0x80,0x80,0xc0,0xa0,0xc0,0x00,
+
+ 4, // 0x63 'c'
+ 0x00,0x60,0x80,0x80,0x60,0x00,
+
+ 4, // 0x64 'd'
+ 0x20,0x20,0x60,0xa0,0x60,0x00,
+
+ 4, // 0x65 'e'
+ 0x00,0x40,0xe0,0x80,0x60,0x00,
+
+ 4, // 0x66 'f'
+ 0x20,0x40,0xe0,0x40,0x40,0x00,
+
+ 4, // 0x67 'g'
+ 0x00,0x60,0xa0,0x60,0x20,0xc0,
+
+ 4, // 0x68 'h'
+ 0x80,0x80,0xc0,0xa0,0xa0,0x00,
+
+ 4, // 0x69 'i'
+ 0x40,0x00,0xc0,0x40,0xe0,0x00,
+
+ 4, // 0x6a 'j'
+ 0x40,0x00,0xc0,0x40,0x40,0x80,
+
+ 4, // 0x6b 'k'
+ 0x80,0x80,0xa0,0xc0,0xa0,0x00,
+
+ 4, // 0x6c 'l'
+ 0xc0,0x40,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x6d 'm'
+ 0x00,0xa0,0xf0,0xf0,0x90,0x00,
+
+ 4, // 0x6e 'n'
+ 0x00,0xc0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x6f 'o'
+ 0x00,0x40,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x70 'p'
+ 0x00,0xc0,0xa0,0xc0,0x80,0x80,
+
+ 4, // 0x71 'q'
+ 0x00,0x60,0xa0,0x60,0x20,0x20,
+
+ 4, // 0x72 'r'
+ 0x00,0xa0,0x50,0x40,0x40,0x00,
+
+ 4, // 0x73 's'
+ 0x00,0x60,0xc0,0x20,0xc0,0x00,
+
+ 4, // 0x74 't'
+ 0x40,0x40,0xe0,0x40,0x60,0x00,
+
+ 4, // 0x75 'u'
+ 0x00,0xa0,0xa0,0xa0,0x60,0x00,
+
+ 4, // 0x76 'v'
+ 0x00,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x77 'w'
+ 0x00,0xa0,0xa0,0xe0,0xa0,0x00,
+
+ 4, // 0x78 'x'
+ 0x00,0xa0,0x40,0xa0,0xa0,0x00,
+
+ 4, // 0x79 'y'
+ 0x00,0xa0,0xa0,0x60,0x20,0xc0,
+
+ 4, // 0x7a 'z'
+ 0x00,0xe0,0x40,0x80,0xe0,0x00,
+
+ 4, // 0x7b '{'
+ 0x30,0x20,0xc0,0x20,0x30,0x00,
+
+ 4, // 0x7c '|'
+ 0x40,0x40,0x00,0x40,0x40,0x40,
+
+ 4, // 0x7d '}'
+ 0xc0,0x40,0x30,0x40,0xc0,0x00,
+
+ 4, // 0x7e '~'
+ 0x50,0xa0,0x00,0x00,0x00,0x00,
+
+ 4, // 0x7f ''
+ 0x00,0x60,0x90,0xf0,0x00,0x00,
+ 0
+ };
+
+ const int8u gse4x8[] =
+ {
+ 8, 0, 32, 128-32,
+
+ 0x00,0x00,0x09,0x00,0x12,0x00,0x1b,0x00,0x24,0x00,0x2d,0x00,0x36,0x00,0x3f,0x00,0x48,0x00,
+ 0x51,0x00,0x5a,0x00,0x63,0x00,0x6c,0x00,0x75,0x00,0x7e,0x00,0x87,0x00,0x90,0x00,0x99,0x00,
+ 0xa2,0x00,0xab,0x00,0xb4,0x00,0xbd,0x00,0xc6,0x00,0xcf,0x00,0xd8,0x00,0xe1,0x00,0xea,0x00,
+ 0xf3,0x00,0xfc,0x00,0x05,0x01,0x0e,0x01,0x17,0x01,0x20,0x01,0x29,0x01,0x32,0x01,0x3b,0x01,
+ 0x44,0x01,0x4d,0x01,0x56,0x01,0x5f,0x01,0x68,0x01,0x71,0x01,0x7a,0x01,0x83,0x01,0x8c,0x01,
+ 0x95,0x01,0x9e,0x01,0xa7,0x01,0xb0,0x01,0xb9,0x01,0xc2,0x01,0xcb,0x01,0xd4,0x01,0xdd,0x01,
+ 0xe6,0x01,0xef,0x01,0xf8,0x01,0x01,0x02,0x0a,0x02,0x13,0x02,0x1c,0x02,0x25,0x02,0x2e,0x02,
+ 0x37,0x02,0x40,0x02,0x49,0x02,0x52,0x02,0x5b,0x02,0x64,0x02,0x6d,0x02,0x76,0x02,0x7f,0x02,
+ 0x88,0x02,0x91,0x02,0x9a,0x02,0xa3,0x02,0xac,0x02,0xb5,0x02,0xbe,0x02,0xc7,0x02,0xd0,0x02,
+ 0xd9,0x02,0xe2,0x02,0xeb,0x02,0xf4,0x02,0xfd,0x02,0x06,0x03,0x0f,0x03,0x18,0x03,0x21,0x03,
+ 0x2a,0x03,0x33,0x03,0x3c,0x03,0x45,0x03,0x4e,0x03,0x57,0x03,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x40,0x40,0x40,0x40,0x00,0x40,0x00,
+
+ 4, // 0x22 '"'
+ 0x00,0xa0,0xa0,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x23 '#'
+ 0x60,0x60,0xf0,0x60,0x60,0xf0,0x60,0x60,
+
+ 4, // 0x24 '$'
+ 0x40,0x60,0xc0,0xc0,0x60,0x60,0xc0,0x40,
+
+ 4, // 0x25 '%'
+ 0x00,0xa0,0x20,0x40,0x40,0x80,0xa0,0x00,
+
+ 4, // 0x26 '&'
+ 0x00,0x40,0xa0,0xa0,0x40,0xb0,0xa0,0x70,
+
+ 4, // 0x27 '''
+ 0x00,0x40,0x40,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x28 '('
+ 0x20,0x40,0x80,0x80,0x80,0x80,0x40,0x20,
+
+ 4, // 0x29 ')'
+ 0x80,0x40,0x20,0x20,0x20,0x20,0x40,0x80,
+
+ 4, // 0x2a '*'
+ 0x00,0xa0,0x40,0xe0,0x40,0xa0,0x00,0x00,
+
+ 4, // 0x2b '+'
+ 0x00,0x40,0x40,0xe0,0x40,0x40,0x00,0x00,
+
+ 4, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x80,
+
+ 4, // 0x2d '-'
+ 0x00,0x00,0x00,0xe0,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,
+
+ 4, // 0x2f '/'
+ 0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,
+
+ 4, // 0x30 '0'
+ 0x00,0xe0,0xa0,0xa0,0xa0,0xa0,0xe0,0x00,
+
+ 4, // 0x31 '1'
+ 0x00,0x40,0xc0,0x40,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x32 '2'
+ 0x00,0xe0,0xa0,0x20,0x40,0x80,0xe0,0x00,
+
+ 4, // 0x33 '3'
+ 0x00,0xe0,0x20,0x40,0x20,0x20,0xe0,0x00,
+
+ 4, // 0x34 '4'
+ 0x00,0x60,0xa0,0xa0,0xf0,0x20,0x20,0x00,
+
+ 4, // 0x35 '5'
+ 0x00,0xe0,0x80,0xc0,0x20,0x20,0xc0,0x00,
+
+ 4, // 0x36 '6'
+ 0x00,0x40,0x80,0xe0,0xa0,0xa0,0xe0,0x00,
+
+ 4, // 0x37 '7'
+ 0x00,0xe0,0xa0,0x20,0x40,0x40,0x40,0x00,
+
+ 4, // 0x38 '8'
+ 0x00,0xe0,0xa0,0x40,0xa0,0xa0,0xe0,0x00,
+
+ 4, // 0x39 '9'
+ 0x00,0xe0,0xa0,0xe0,0x20,0x20,0x40,0x00,
+
+ 4, // 0x3a ':'
+ 0x00,0x00,0x40,0x00,0x00,0x40,0x00,0x00,
+
+ 4, // 0x3b ';'
+ 0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x80,
+
+ 4, // 0x3c '<'
+ 0x00,0x20,0x40,0x80,0x40,0x20,0x00,0x00,
+
+ 4, // 0x3d '='
+ 0x00,0x00,0xe0,0x00,0xe0,0x00,0x00,0x00,
+
+ 4, // 0x3e '>'
+ 0x00,0x80,0x40,0x20,0x40,0x80,0x00,0x00,
+
+ 4, // 0x3f '?'
+ 0x00,0x40,0xa0,0x20,0x40,0x00,0x40,0x00,
+
+ 4, // 0x40 '@'
+ 0x00,0x40,0xa0,0xe0,0xe0,0x80,0x60,0x00,
+
+ 4, // 0x41 'A'
+ 0x00,0x40,0xa0,0xa0,0xe0,0xa0,0xa0,0x00,
+
+ 4, // 0x42 'B'
+ 0x00,0xc0,0xa0,0xc0,0xa0,0xa0,0xc0,0x00,
+
+ 4, // 0x43 'C'
+ 0x00,0x40,0xa0,0x80,0x80,0xa0,0x40,0x00,
+
+ 4, // 0x44 'D'
+ 0x00,0xc0,0xa0,0xa0,0xa0,0xa0,0xc0,0x00,
+
+ 4, // 0x45 'E'
+ 0x00,0xe0,0x80,0xc0,0x80,0x80,0xe0,0x00,
+
+ 4, // 0x46 'F'
+ 0x00,0xe0,0x80,0xc0,0x80,0x80,0x80,0x00,
+
+ 4, // 0x47 'G'
+ 0x00,0x60,0x80,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x48 'H'
+ 0x00,0xa0,0xa0,0xe0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x49 'I'
+ 0x00,0xe0,0x40,0x40,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x4a 'J'
+ 0x00,0x20,0x20,0x20,0x20,0xa0,0x40,0x00,
+
+ 4, // 0x4b 'K'
+ 0x00,0xa0,0xa0,0xc0,0xc0,0xa0,0xa0,0x00,
+
+ 4, // 0x4c 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0xe0,0x00,
+
+ 4, // 0x4d 'M'
+ 0x00,0xa0,0xe0,0xa0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x4e 'N'
+ 0x00,0x90,0x90,0xd0,0xb0,0x90,0x90,0x00,
+
+ 4, // 0x4f 'O'
+ 0x00,0x40,0xa0,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x50 'P'
+ 0x00,0xc0,0xa0,0xa0,0xc0,0x80,0x80,0x00,
+
+ 4, // 0x51 'Q'
+ 0x00,0x40,0xa0,0xa0,0xa0,0xa0,0x60,0x00,
+
+ 4, // 0x52 'R'
+ 0x00,0xc0,0xa0,0xa0,0xc0,0xc0,0xa0,0x00,
+
+ 4, // 0x53 'S'
+ 0x00,0x60,0x80,0x40,0x20,0x20,0xc0,0x00,
+
+ 4, // 0x54 'T'
+ 0x00,0xe0,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 4, // 0x55 'U'
+ 0x00,0xa0,0xa0,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x56 'V'
+ 0x00,0xa0,0xa0,0xa0,0xa0,0x40,0x40,0x00,
+
+ 4, // 0x57 'W'
+ 0x00,0xa0,0xa0,0xa0,0xa0,0xe0,0xa0,0x00,
+
+ 4, // 0x58 'X'
+ 0x00,0xa0,0xa0,0x40,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x59 'Y'
+ 0x00,0xa0,0xa0,0x40,0x40,0x40,0x40,0x00,
+
+ 4, // 0x5a 'Z'
+ 0x00,0xe0,0x20,0x40,0x40,0x80,0xe0,0x00,
+
+ 4, // 0x5b '['
+ 0xc0,0x80,0x80,0x80,0x80,0x80,0x80,0xc0,
+
+ 4, // 0x5c '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,
+
+ 4, // 0x5d ']'
+ 0xc0,0x40,0x40,0x40,0x40,0x40,0x40,0xc0,
+
+ 4, // 0x5e '^'
+ 0x00,0x40,0xa0,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,
+
+ 4, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x61 'a'
+ 0x00,0x00,0x60,0xa0,0xa0,0xa0,0x70,0x00,
+
+ 4, // 0x62 'b'
+ 0x00,0x80,0x80,0xc0,0xa0,0xa0,0xc0,0x00,
+
+ 4, // 0x63 'c'
+ 0x00,0x00,0x40,0xa0,0x80,0xa0,0x40,0x00,
+
+ 4, // 0x64 'd'
+ 0x00,0x20,0x20,0x60,0xa0,0xa0,0x60,0x00,
+
+ 4, // 0x65 'e'
+ 0x00,0x00,0x40,0xa0,0xe0,0x80,0x60,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x20,0x40,0x40,0xe0,0x40,0x40,0x00,
+
+ 4, // 0x67 'g'
+ 0x00,0x00,0x60,0xa0,0xa0,0x60,0x20,0xc0,
+
+ 4, // 0x68 'h'
+ 0x00,0x80,0x80,0xc0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x40,0x00,0xc0,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x6a 'j'
+ 0x00,0x40,0x00,0xc0,0x40,0x40,0x40,0x80,
+
+ 4, // 0x6b 'k'
+ 0x00,0x80,0x80,0xa0,0xc0,0xc0,0xa0,0x00,
+
+ 4, // 0x6c 'l'
+ 0x00,0xc0,0x40,0x40,0x40,0x40,0xe0,0x00,
+
+ 4, // 0x6d 'm'
+ 0x00,0x00,0xa0,0xf0,0xf0,0xf0,0x90,0x00,
+
+ 4, // 0x6e 'n'
+ 0x00,0x00,0xc0,0xa0,0xa0,0xa0,0xa0,0x00,
+
+ 4, // 0x6f 'o'
+ 0x00,0x00,0x40,0xa0,0xa0,0xa0,0x40,0x00,
+
+ 4, // 0x70 'p'
+ 0x00,0x00,0xc0,0xa0,0xa0,0xc0,0x80,0x80,
+
+ 4, // 0x71 'q'
+ 0x00,0x00,0x60,0xa0,0xa0,0x60,0x20,0x20,
+
+ 4, // 0x72 'r'
+ 0x00,0x00,0xa0,0x50,0x40,0x40,0x40,0x00,
+
+ 4, // 0x73 's'
+ 0x00,0x00,0x60,0x80,0x40,0x20,0xc0,0x00,
+
+ 4, // 0x74 't'
+ 0x00,0x40,0x40,0xe0,0x40,0x40,0x20,0x00,
+
+ 4, // 0x75 'u'
+ 0x00,0x00,0xa0,0xa0,0xa0,0xa0,0x60,0x00,
+
+ 4, // 0x76 'v'
+ 0x00,0x00,0xa0,0xa0,0xa0,0x40,0x40,0x00,
+
+ 4, // 0x77 'w'
+ 0x00,0x00,0xa0,0xa0,0xa0,0xe0,0xa0,0x00,
+
+ 4, // 0x78 'x'
+ 0x00,0x00,0xa0,0xa0,0x40,0xa0,0xa0,0x00,
+
+ 4, // 0x79 'y'
+ 0x00,0x00,0xa0,0xa0,0xa0,0x60,0x20,0xc0,
+
+ 4, // 0x7a 'z'
+ 0x00,0x00,0xe0,0x20,0x40,0x80,0xe0,0x00,
+
+ 4, // 0x7b '{'
+ 0x10,0x20,0x20,0xc0,0x20,0x20,0x10,0x00,
+
+ 4, // 0x7c '|'
+ 0x00,0x40,0x40,0x40,0x00,0x40,0x40,0x40,
+
+ 4, // 0x7d '}'
+ 0x80,0x40,0x40,0x30,0x40,0x40,0x80,0x00,
+
+ 4, // 0x7e '~'
+ 0x00,0x50,0xa0,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x7f ''
+ 0x00,0x00,0x00,0x60,0x90,0xf0,0x00,0x00,
+ 0
+ };
+
+ const int8u gse5x7[] =
+ {
+ 7, 0, 32, 128-32,
+
+ 0x00,0x00,0x08,0x00,0x10,0x00,0x18,0x00,0x20,0x00,0x28,0x00,0x30,0x00,0x38,0x00,0x40,0x00,
+ 0x48,0x00,0x50,0x00,0x58,0x00,0x60,0x00,0x68,0x00,0x70,0x00,0x78,0x00,0x80,0x00,0x88,0x00,
+ 0x90,0x00,0x98,0x00,0xa0,0x00,0xa8,0x00,0xb0,0x00,0xb8,0x00,0xc0,0x00,0xc8,0x00,0xd0,0x00,
+ 0xd8,0x00,0xe0,0x00,0xe8,0x00,0xf0,0x00,0xf8,0x00,0x00,0x01,0x08,0x01,0x10,0x01,0x18,0x01,
+ 0x20,0x01,0x28,0x01,0x30,0x01,0x38,0x01,0x40,0x01,0x48,0x01,0x50,0x01,0x58,0x01,0x60,0x01,
+ 0x68,0x01,0x70,0x01,0x78,0x01,0x80,0x01,0x88,0x01,0x90,0x01,0x98,0x01,0xa0,0x01,0xa8,0x01,
+ 0xb0,0x01,0xb8,0x01,0xc0,0x01,0xc8,0x01,0xd0,0x01,0xd8,0x01,0xe0,0x01,0xe8,0x01,0xf0,0x01,
+ 0xf8,0x01,0x00,0x02,0x08,0x02,0x10,0x02,0x18,0x02,0x20,0x02,0x28,0x02,0x30,0x02,0x38,0x02,
+ 0x40,0x02,0x48,0x02,0x50,0x02,0x58,0x02,0x60,0x02,0x68,0x02,0x70,0x02,0x78,0x02,0x80,0x02,
+ 0x88,0x02,0x90,0x02,0x98,0x02,0xa0,0x02,0xa8,0x02,0xb0,0x02,0xb8,0x02,0xc0,0x02,0xc8,0x02,
+ 0xd0,0x02,0xd8,0x02,0xe0,0x02,0xe8,0x02,0xf0,0x02,0xf8,0x02,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x00,0x20,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x50,0x50,0x00,0x00,0x00,0x00,
+
+ 5, // 0x23 '#'
+ 0x00,0x50,0xf8,0x50,0xf8,0x50,0x00,
+
+ 5, // 0x24 '$'
+ 0x20,0x78,0xa0,0x70,0x28,0xf0,0x20,
+
+ 5, // 0x25 '%'
+ 0x00,0x88,0x10,0x20,0x40,0x88,0x00,
+
+ 5, // 0x26 '&'
+ 0x00,0x40,0xa0,0x68,0x90,0x68,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x20,0x20,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x40,0x40,0x40,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x80,0x40,0x20,0x20,0x20,0x40,0x80,
+
+ 5, // 0x2a '*'
+ 0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,
+
+ 5, // 0x2b '+'
+ 0x00,0x20,0x20,0xf8,0x20,0x20,0x00,
+
+ 5, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x40,
+
+ 5, // 0x2d '-'
+ 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
+
+ 5, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x40,0x00,
+
+ 5, // 0x2f '/'
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x00,
+
+ 5, // 0x30 '0'
+ 0x00,0x60,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x70,0x00,
+
+ 5, // 0x32 '2'
+ 0x00,0x60,0x90,0x20,0x40,0xf0,0x00,
+
+ 5, // 0x33 '3'
+ 0x00,0xf0,0x20,0x60,0x10,0xe0,0x00,
+
+ 5, // 0x34 '4'
+ 0x00,0x30,0x50,0x90,0xf0,0x10,0x00,
+
+ 5, // 0x35 '5'
+ 0x00,0xf0,0x80,0xe0,0x10,0xe0,0x00,
+
+ 5, // 0x36 '6'
+ 0x00,0x60,0x80,0xe0,0x90,0x60,0x00,
+
+ 5, // 0x37 '7'
+ 0x00,0xf0,0x90,0x20,0x40,0x40,0x00,
+
+ 5, // 0x38 '8'
+ 0x00,0x60,0x90,0x60,0x90,0x60,0x00,
+
+ 5, // 0x39 '9'
+ 0x00,0x60,0x90,0x70,0x10,0x60,0x00,
+
+ 5, // 0x3a ':'
+ 0x00,0x00,0x20,0x00,0x20,0x00,0x00,
+
+ 5, // 0x3b ';'
+ 0x00,0x00,0x20,0x00,0x20,0x20,0x40,
+
+ 5, // 0x3c '<'
+ 0x00,0x10,0x20,0x40,0x20,0x10,0x00,
+
+ 5, // 0x3d '='
+ 0x00,0x00,0xf0,0x00,0xf0,0x00,0x00,
+
+ 5, // 0x3e '>'
+ 0x00,0x80,0x40,0x20,0x40,0x80,0x00,
+
+ 5, // 0x3f '?'
+ 0x00,0x60,0x90,0x20,0x00,0x20,0x00,
+
+ 5, // 0x40 '@'
+ 0x00,0x60,0x90,0xb0,0x80,0x70,0x00,
+
+ 5, // 0x41 'A'
+ 0x00,0x60,0x90,0xf0,0x90,0x90,0x00,
+
+ 5, // 0x42 'B'
+ 0x00,0xe0,0x90,0xe0,0x90,0xe0,0x00,
+
+ 5, // 0x43 'C'
+ 0x00,0x60,0x90,0x80,0x90,0x60,0x00,
+
+ 5, // 0x44 'D'
+ 0x00,0xe0,0x90,0x90,0x90,0xe0,0x00,
+
+ 5, // 0x45 'E'
+ 0x00,0xf0,0x80,0xe0,0x80,0xf0,0x00,
+
+ 5, // 0x46 'F'
+ 0x00,0xf0,0x80,0xe0,0x80,0x80,0x00,
+
+ 5, // 0x47 'G'
+ 0x00,0x70,0x80,0xb0,0x90,0x60,0x00,
+
+ 5, // 0x48 'H'
+ 0x00,0x90,0x90,0xf0,0x90,0x90,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x4a 'J'
+ 0x00,0x70,0x20,0x20,0xa0,0x40,0x00,
+
+ 5, // 0x4b 'K'
+ 0x00,0x90,0xa0,0xc0,0xa0,0x90,0x00,
+
+ 5, // 0x4c 'L'
+ 0x00,0x80,0x80,0x80,0x80,0xf0,0x00,
+
+ 5, // 0x4d 'M'
+ 0x00,0x90,0xf0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x4e 'N'
+ 0x00,0x90,0xd0,0xb0,0x90,0x90,0x00,
+
+ 5, // 0x4f 'O'
+ 0x00,0x60,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x50 'P'
+ 0x00,0xe0,0x90,0xe0,0x80,0x80,0x00,
+
+ 5, // 0x51 'Q'
+ 0x00,0x60,0x90,0x90,0xa0,0x50,0x00,
+
+ 5, // 0x52 'R'
+ 0x00,0xe0,0x90,0xe0,0xa0,0x90,0x00,
+
+ 5, // 0x53 'S'
+ 0x00,0x70,0x80,0x60,0x10,0xe0,0x00,
+
+ 5, // 0x54 'T'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x55 'U'
+ 0x00,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x56 'V'
+ 0x00,0x50,0x50,0x50,0x20,0x20,0x00,
+
+ 5, // 0x57 'W'
+ 0x00,0x90,0x90,0x90,0xf0,0x90,0x00,
+
+ 5, // 0x58 'X'
+ 0x00,0x90,0x90,0x60,0x90,0x90,0x00,
+
+ 5, // 0x59 'Y'
+ 0x00,0x50,0x50,0x20,0x20,0x20,0x00,
+
+ 5, // 0x5a 'Z'
+ 0x00,0xf0,0x10,0x20,0x40,0xf0,0x00,
+
+ 5, // 0x5b '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x70,
+
+ 5, // 0x5c '\'
+ 0x00,0x80,0x40,0x20,0x10,0x08,0x00,
+
+ 5, // 0x5d ']'
+ 0xe0,0x20,0x20,0x20,0x20,0x20,0xe0,
+
+ 5, // 0x5e '^'
+ 0x00,0x20,0x50,0x00,0x00,0x00,0x00,
+
+ 5, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0xf8,0x00,
+
+ 5, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,
+
+ 5, // 0x61 'a'
+ 0x00,0x00,0x60,0xa0,0xa0,0x50,0x00,
+
+ 5, // 0x62 'b'
+ 0x00,0x80,0x80,0xe0,0x90,0xe0,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x70,0x80,0x80,0x70,0x00,
+
+ 5, // 0x64 'd'
+ 0x00,0x10,0x10,0x70,0x90,0x70,0x00,
+
+ 5, // 0x65 'e'
+ 0x00,0x00,0x60,0xf0,0x80,0x70,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x30,0x40,0xe0,0x40,0x40,0x00,
+
+ 5, // 0x67 'g'
+ 0x00,0x00,0x70,0x90,0x70,0x10,0x60,
+
+ 5, // 0x68 'h'
+ 0x00,0x80,0x80,0xe0,0x90,0x90,0x00,
+
+ 5, // 0x69 'i'
+ 0x20,0x00,0x60,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6a 'j'
+ 0x20,0x00,0x60,0x20,0x20,0xa0,0x40,
+
+ 5, // 0x6b 'k'
+ 0x80,0x80,0x90,0xa0,0xe0,0x90,0x00,
+
+ 5, // 0x6c 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6d 'm'
+ 0x00,0x00,0xa0,0xf0,0xf0,0x90,0x00,
+
+ 5, // 0x6e 'n'
+ 0x00,0x00,0xa0,0xd0,0x90,0x90,0x00,
+
+ 5, // 0x6f 'o'
+ 0x00,0x00,0x60,0x90,0x90,0x60,0x00,
+
+ 5, // 0x70 'p'
+ 0x00,0x00,0xe0,0x90,0xe0,0x80,0x80,
+
+ 5, // 0x71 'q'
+ 0x00,0x00,0x70,0x90,0x70,0x10,0x10,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0xe0,0x90,0x80,0x80,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x70,0xe0,0x10,0xe0,0x00,
+
+ 5, // 0x74 't'
+ 0x40,0x40,0xe0,0x40,0x40,0x70,0x00,
+
+ 5, // 0x75 'u'
+ 0x00,0x00,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x76 'v'
+ 0x00,0x00,0x50,0x50,0x50,0x20,0x00,
+
+ 5, // 0x77 'w'
+ 0x00,0x00,0x90,0x90,0xf0,0x90,0x00,
+
+ 5, // 0x78 'x'
+ 0x00,0x00,0x90,0x60,0x60,0x90,0x00,
+
+ 5, // 0x79 'y'
+ 0x00,0x00,0x90,0x90,0x70,0x10,0x60,
+
+ 5, // 0x7a 'z'
+ 0x00,0x00,0xf0,0x20,0x40,0xf0,0x00,
+
+ 5, // 0x7b '{'
+ 0x10,0x20,0x20,0xc0,0x20,0x20,0x10,
+
+ 5, // 0x7c '|'
+ 0x20,0x20,0x20,0x00,0x20,0x20,0x20,
+
+ 5, // 0x7d '}'
+ 0x40,0x20,0x20,0x18,0x20,0x20,0x40,
+
+ 5, // 0x7e '~'
+ 0x00,0x40,0xa8,0x10,0x00,0x00,0x00,
+
+ 5, // 0x7f ''
+ 0x00,0x00,0x20,0x50,0x88,0xf8,0x00,
+ 0
+ };
+
+ const int8u gse5x9[] =
+ {
+ 9, 0, 32, 128-32,
+
+ 0x00,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x28,0x00,0x32,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,
+ 0x5a,0x00,0x64,0x00,0x6e,0x00,0x78,0x00,0x82,0x00,0x8c,0x00,0x96,0x00,0xa0,0x00,0xaa,0x00,
+ 0xb4,0x00,0xbe,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x00,0x04,0x01,
+ 0x0e,0x01,0x18,0x01,0x22,0x01,0x2c,0x01,0x36,0x01,0x40,0x01,0x4a,0x01,0x54,0x01,0x5e,0x01,
+ 0x68,0x01,0x72,0x01,0x7c,0x01,0x86,0x01,0x90,0x01,0x9a,0x01,0xa4,0x01,0xae,0x01,0xb8,0x01,
+ 0xc2,0x01,0xcc,0x01,0xd6,0x01,0xe0,0x01,0xea,0x01,0xf4,0x01,0xfe,0x01,0x08,0x02,0x12,0x02,
+ 0x1c,0x02,0x26,0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x4e,0x02,0x58,0x02,0x62,0x02,0x6c,0x02,
+ 0x76,0x02,0x80,0x02,0x8a,0x02,0x94,0x02,0x9e,0x02,0xa8,0x02,0xb2,0x02,0xbc,0x02,0xc6,0x02,
+ 0xd0,0x02,0xda,0x02,0xe4,0x02,0xee,0x02,0xf8,0x02,0x02,0x03,0x0c,0x03,0x16,0x03,0x20,0x03,
+ 0x2a,0x03,0x34,0x03,0x3e,0x03,0x48,0x03,0x52,0x03,0x5c,0x03,0x66,0x03,0x70,0x03,0x7a,0x03,
+ 0x84,0x03,0x8e,0x03,0x98,0x03,0xa2,0x03,0xac,0x03,0xb6,0x03,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x23 '#'
+ 0x00,0x50,0x50,0xf8,0x50,0xf8,0x50,0x50,0x00,
+
+ 5, // 0x24 '$'
+ 0x00,0x20,0x78,0xa0,0x70,0x28,0xf0,0x20,0x00,
+
+ 5, // 0x25 '%'
+ 0x00,0xc8,0xc8,0x10,0x20,0x40,0x98,0x98,0x00,
+
+ 5, // 0x26 '&'
+ 0x00,0x40,0xa0,0xa0,0x40,0xa8,0x90,0x68,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x80,0x40,0x20,0x20,0x20,0x20,0x20,0x40,0x80,
+
+ 5, // 0x2a '*'
+ 0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,
+
+ 5, // 0x2b '+'
+ 0x00,0x00,0x20,0x20,0xf8,0x20,0x20,0x00,0x00,
+
+ 5, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x40,
+
+ 5, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,
+
+ 5, // 0x2f '/'
+ 0x00,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,
+
+ 5, // 0x30 '0'
+ 0x00,0x60,0x90,0xb0,0xd0,0x90,0x90,0x60,0x00,
+
+ 5, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x32 '2'
+ 0x00,0x60,0x90,0x10,0x20,0x40,0x80,0xf0,0x00,
+
+ 5, // 0x33 '3'
+ 0x00,0xf0,0x10,0x20,0x60,0x10,0x90,0x60,0x00,
+
+ 5, // 0x34 '4'
+ 0x00,0x30,0x50,0x90,0x90,0xf8,0x10,0x10,0x00,
+
+ 5, // 0x35 '5'
+ 0x00,0xf0,0x80,0xe0,0x10,0x10,0x10,0xe0,0x00,
+
+ 5, // 0x36 '6'
+ 0x00,0x60,0x80,0xe0,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x37 '7'
+ 0x00,0xf0,0x90,0x10,0x20,0x40,0x40,0x40,0x00,
+
+ 5, // 0x38 '8'
+ 0x00,0x60,0x90,0x90,0x60,0x90,0x90,0x60,0x00,
+
+ 5, // 0x39 '9'
+ 0x00,0x60,0x90,0x90,0x70,0x10,0x90,0x60,0x00,
+
+ 5, // 0x3a ':'
+ 0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,
+
+ 5, // 0x3b ';'
+ 0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x20,0x40,
+
+ 5, // 0x3c '<'
+ 0x00,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x00,
+
+ 5, // 0x3d '='
+ 0x00,0x00,0x00,0xf0,0x00,0xf0,0x00,0x00,0x00,
+
+ 5, // 0x3e '>'
+ 0x00,0x80,0x40,0x20,0x10,0x20,0x40,0x80,0x00,
+
+ 5, // 0x3f '?'
+ 0x00,0x60,0x90,0x10,0x20,0x20,0x00,0x20,0x00,
+
+ 5, // 0x40 '@'
+ 0x00,0x60,0x90,0xb0,0xb0,0xb0,0x80,0x70,0x00,
+
+ 5, // 0x41 'A'
+ 0x00,0x60,0x90,0x90,0xf0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x42 'B'
+ 0x00,0xe0,0x90,0x90,0xe0,0x90,0x90,0xe0,0x00,
+
+ 5, // 0x43 'C'
+ 0x00,0x60,0x90,0x80,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x44 'D'
+ 0x00,0xe0,0x90,0x90,0x90,0x90,0x90,0xe0,0x00,
+
+ 5, // 0x45 'E'
+ 0x00,0xf0,0x80,0x80,0xe0,0x80,0x80,0xf0,0x00,
+
+ 5, // 0x46 'F'
+ 0x00,0xf0,0x80,0x80,0xe0,0x80,0x80,0x80,0x00,
+
+ 5, // 0x47 'G'
+ 0x00,0x60,0x90,0x80,0xb0,0x90,0x90,0x60,0x00,
+
+ 5, // 0x48 'H'
+ 0x00,0x90,0x90,0x90,0xf0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x4a 'J'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0xa0,0x40,0x00,
+
+ 5, // 0x4b 'K'
+ 0x00,0x90,0x90,0xa0,0xc0,0xa0,0x90,0x90,0x00,
+
+ 5, // 0x4c 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0xf0,0x00,
+
+ 5, // 0x4d 'M'
+ 0x00,0x90,0xf0,0x90,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x4e 'N'
+ 0x00,0x90,0x90,0xd0,0xb0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x4f 'O'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x50 'P'
+ 0x00,0xe0,0x90,0x90,0xe0,0x80,0x80,0x80,0x00,
+
+ 5, // 0x51 'Q'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0xa0,0x50,0x00,
+
+ 5, // 0x52 'R'
+ 0x00,0xe0,0x90,0x90,0xe0,0xa0,0x90,0x90,0x00,
+
+ 5, // 0x53 'S'
+ 0x00,0x60,0x90,0x80,0x60,0x10,0x90,0x60,0x00,
+
+ 5, // 0x54 'T'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x55 'U'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x56 'V'
+ 0x00,0x50,0x50,0x50,0x50,0x50,0x20,0x20,0x00,
+
+ 5, // 0x57 'W'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0xf0,0x90,0x00,
+
+ 5, // 0x58 'X'
+ 0x00,0x90,0x90,0x60,0x60,0x90,0x90,0x90,0x00,
+
+ 5, // 0x59 'Y'
+ 0x00,0x50,0x50,0x50,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x5a 'Z'
+ 0x00,0xf0,0x10,0x10,0x20,0x40,0x80,0xf0,0x00,
+
+ 5, // 0x5b '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x70,0x00,
+
+ 5, // 0x5c '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x00,
+
+ 5, // 0x5d ']'
+ 0xe0,0x20,0x20,0x20,0x20,0x20,0x20,0xe0,0x00,
+
+ 5, // 0x5e '^'
+ 0x00,0x20,0x50,0x88,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,
+
+ 5, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x61 'a'
+ 0x00,0x00,0x60,0x10,0x70,0x90,0x90,0x70,0x00,
+
+ 5, // 0x62 'b'
+ 0x00,0x80,0x80,0xe0,0x90,0x90,0x90,0xe0,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x60,0x90,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x64 'd'
+ 0x00,0x10,0x10,0x70,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x65 'e'
+ 0x00,0x00,0x60,0x90,0xf0,0x80,0x80,0x70,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x30,0x40,0x40,0xe0,0x40,0x40,0x40,0x00,
+
+ 5, // 0x67 'g'
+ 0x00,0x00,0x70,0x90,0x90,0x70,0x10,0x90,0x60,
+
+ 5, // 0x68 'h'
+ 0x00,0x80,0x80,0xe0,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x69 'i'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6a 'j'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0xa0,0x40,
+
+ 5, // 0x6b 'k'
+ 0x00,0x80,0x80,0x90,0xa0,0xc0,0xa0,0x90,0x00,
+
+ 5, // 0x6c 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6d 'm'
+ 0x00,0x00,0xa0,0xf0,0xf0,0xf0,0x90,0x90,0x00,
+
+ 5, // 0x6e 'n'
+ 0x00,0x00,0xa0,0xd0,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x6f 'o'
+ 0x00,0x00,0x60,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x70 'p'
+ 0x00,0x00,0xe0,0x90,0x90,0x90,0xe0,0x80,0x80,
+
+ 5, // 0x71 'q'
+ 0x00,0x00,0x70,0x90,0x90,0x90,0x70,0x10,0x10,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0xe0,0x90,0x80,0x80,0x80,0x80,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x60,0x90,0x40,0x20,0x90,0x60,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x40,0x40,0xe0,0x40,0x40,0x50,0x20,0x00,
+
+ 5, // 0x75 'u'
+ 0x00,0x00,0x90,0x90,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x76 'v'
+ 0x00,0x00,0x50,0x50,0x50,0x50,0x20,0x20,0x00,
+
+ 5, // 0x77 'w'
+ 0x00,0x00,0x90,0x90,0x90,0x90,0xf0,0x90,0x00,
+
+ 5, // 0x78 'x'
+ 0x00,0x00,0x90,0x90,0x60,0x60,0x90,0x90,0x00,
+
+ 5, // 0x79 'y'
+ 0x00,0x00,0x90,0x90,0x90,0x90,0x70,0x10,0xe0,
+
+ 5, // 0x7a 'z'
+ 0x00,0x00,0xf0,0x10,0x20,0x40,0x80,0xf0,0x00,
+
+ 5, // 0x7b '{'
+ 0x10,0x20,0x20,0x20,0xc0,0x20,0x20,0x20,0x10,
+
+ 5, // 0x7c '|'
+ 0x00,0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x00,
+
+ 5, // 0x7d '}'
+ 0x80,0x40,0x40,0x40,0x30,0x40,0x40,0x40,0x80,
+
+ 5, // 0x7e '~'
+ 0x00,0x40,0xa8,0x10,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x7f ''
+ 0x00,0x00,0x00,0x20,0x50,0x88,0xf8,0x00,0x00,
+ 0
+ };
+
+ const int8u gse6x12[] =
+ {
+ 12, 0, 32, 128-32,
+
+ 0x00,0x00,0x0d,0x00,0x1a,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4e,0x00,0x5b,0x00,0x68,0x00,
+ 0x75,0x00,0x82,0x00,0x8f,0x00,0x9c,0x00,0xa9,0x00,0xb6,0x00,0xc3,0x00,0xd0,0x00,0xdd,0x00,
+ 0xea,0x00,0xf7,0x00,0x04,0x01,0x11,0x01,0x1e,0x01,0x2b,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+ 0x5f,0x01,0x6c,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xa0,0x01,0xad,0x01,0xba,0x01,0xc7,0x01,
+ 0xd4,0x01,0xe1,0x01,0xee,0x01,0xfb,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2f,0x02,0x3c,0x02,
+ 0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7d,0x02,0x8a,0x02,0x97,0x02,0xa4,0x02,0xb1,0x02,
+ 0xbe,0x02,0xcb,0x02,0xd8,0x02,0xe5,0x02,0xf2,0x02,0xff,0x02,0x0c,0x03,0x19,0x03,0x26,0x03,
+ 0x33,0x03,0x40,0x03,0x4d,0x03,0x5a,0x03,0x67,0x03,0x74,0x03,0x81,0x03,0x8e,0x03,0x9b,0x03,
+ 0xa8,0x03,0xb5,0x03,0xc2,0x03,0xcf,0x03,0xdc,0x03,0xe9,0x03,0xf6,0x03,0x03,0x04,0x10,0x04,
+ 0x1d,0x04,0x2a,0x04,0x37,0x04,0x44,0x04,0x51,0x04,0x5e,0x04,0x6b,0x04,0x78,0x04,0x85,0x04,
+ 0x92,0x04,0x9f,0x04,0xac,0x04,0xb9,0x04,0xc6,0x04,0xd3,0x04,
+
+ 6, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x50,0x50,0xf8,0x50,0x50,0x50,0xf8,0x50,0x50,0x00,0x00,
+
+ 6, // 0x24 '$'
+ 0x00,0x20,0x70,0xa8,0xa0,0x70,0x28,0xa8,0x70,0x20,0x00,0x00,
+
+ 6, // 0x25 '%'
+ 0x00,0xc8,0xd8,0x10,0x30,0x20,0x60,0x40,0xd8,0x98,0x00,0x00,
+
+ 6, // 0x26 '&'
+ 0x00,0x60,0x90,0x90,0x90,0x60,0xa8,0x90,0x90,0x68,0x00,0x00,
+
+ 6, // 0x27 '''
+ 0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x00,0x10,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x10,0x00,0x00,
+
+ 6, // 0x29 ')'
+ 0x00,0x40,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x40,0x00,0x00,
+
+ 6, // 0x2a '*'
+ 0x00,0x00,0x00,0x50,0x20,0xf8,0x20,0x50,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2b '+'
+ 0x00,0x00,0x20,0x20,0x20,0xf8,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 6, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,
+
+ 6, // 0x2f '/'
+ 0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,0x00,
+
+ 6, // 0x30 '0'
+ 0x00,0x70,0x88,0x88,0x98,0xa8,0xc8,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x31 '1'
+ 0x00,0x20,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x70,0x88,0x88,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0xf8,0x10,0x20,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x10,0x20,0x40,0x90,0x90,0xf8,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0xf8,0x80,0x80,0xf0,0x08,0x08,0x08,0x88,0x70,0x00,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x70,0x88,0x80,0x80,0xf0,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0xf8,0x88,0x08,0x08,0x10,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x70,0x88,0x88,0x88,0x70,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x70,0x88,0x88,0x88,0x78,0x08,0x08,0x88,0x70,0x00,0x00,
+
+ 6, // 0x3a ':'
+ 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
+
+ 6, // 0x3b ';'
+ 0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 6, // 0x3c '<'
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x08,0x00,0x00,
+
+ 6, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0xf8,0x00,0xf8,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3e '>'
+ 0x00,0x80,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x80,0x00,0x00,
+
+ 6, // 0x3f '?'
+ 0x00,0x70,0x88,0x88,0x08,0x10,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 6, // 0x40 '@'
+ 0x00,0x70,0x88,0x88,0xb8,0xb8,0xb0,0x80,0x88,0x70,0x00,0x00,
+
+ 6, // 0x41 'A'
+ 0x00,0x20,0x50,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x42 'B'
+ 0x00,0xf0,0x88,0x88,0x88,0xf0,0x88,0x88,0x88,0xf0,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x70,0x88,0x88,0x80,0x80,0x80,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x44 'D'
+ 0x00,0xe0,0x90,0x88,0x88,0x88,0x88,0x88,0x90,0xe0,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0xf8,0x80,0x80,0x80,0xf0,0x80,0x80,0x80,0xf8,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0xf8,0x80,0x80,0x80,0xf0,0x80,0x80,0x80,0x80,0x00,0x00,
+
+ 6, // 0x47 'G'
+ 0x00,0x70,0x88,0x80,0x80,0xb8,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x48 'H'
+ 0x00,0x88,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x4a 'J'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0x60,0x00,0x00,
+
+ 6, // 0x4b 'K'
+ 0x00,0x88,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x88,0x00,0x00,
+
+ 6, // 0x4c 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,0x00,
+
+ 6, // 0x4d 'M'
+ 0x00,0x88,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x4e 'N'
+ 0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x4f 'O'
+ 0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x50 'P'
+ 0x00,0xf0,0x88,0x88,0x88,0xf0,0x80,0x80,0x80,0x80,0x00,0x00,
+
+ 6, // 0x51 'Q'
+ 0x00,0x70,0x88,0x88,0x88,0x88,0x88,0xa8,0x90,0x68,0x00,0x00,
+
+ 6, // 0x52 'R'
+ 0x00,0xf0,0x88,0x88,0x88,0x88,0xf0,0xa0,0x90,0x88,0x00,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x70,0x88,0x80,0x80,0x70,0x08,0x08,0x88,0x70,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x55 'U'
+ 0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x88,0x88,0x88,0x88,0x88,0x50,0x50,0x20,0x20,0x00,0x00,
+
+ 6, // 0x57 'W'
+ 0x00,0x88,0x88,0x88,0x88,0x88,0xa8,0xa8,0xd8,0x88,0x00,0x00,
+
+ 6, // 0x58 'X'
+ 0x00,0x88,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x5a 'Z'
+ 0x00,0xf8,0x08,0x08,0x10,0x20,0x40,0x80,0x80,0xf8,0x00,0x00,
+
+ 6, // 0x5b '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,0x00,
+
+ 6, // 0x5c '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00,
+
+ 6, // 0x5d ']'
+ 0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,0x00,
+
+ 6, // 0x5e '^'
+ 0x00,0x00,0x20,0x50,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,0x00,
+
+ 6, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x70,0x88,0x08,0x78,0x88,0x88,0x78,0x00,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x80,0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0xf0,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x08,0x08,0x08,0x78,0x88,0x88,0x88,0x88,0x78,0x00,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x70,0x88,0x88,0xf8,0x80,0x80,0x78,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x18,0x20,0x20,0xf8,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x78,0x88,0x88,0x88,0x88,0x78,0x08,0x08,0xf0,
+
+ 6, // 0x68 'h'
+ 0x00,0x80,0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x69 'i'
+ 0x00,0x20,0x00,0x00,0x60,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x6a 'j'
+ 0x00,0x10,0x00,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x90,0x60,
+
+ 6, // 0x6b 'k'
+ 0x00,0x80,0x80,0x80,0x88,0x90,0xa0,0xd0,0x88,0x88,0x00,0x00,
+
+ 6, // 0x6c 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x6d 'm'
+ 0x00,0x00,0x00,0xd0,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0x00,0x00,
+
+ 6, // 0x6e 'n'
+ 0x00,0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x88,0x88,0x00,0x00,
+
+ 6, // 0x6f 'o'
+ 0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0xf0,0x88,0x88,0x88,0x88,0xf0,0x80,0x80,0x80,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x78,0x88,0x88,0x88,0x88,0x78,0x08,0x08,0x08,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0xb0,0xc8,0x88,0x80,0x80,0x80,0x80,0x00,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x40,0x40,0x40,0xe0,0x40,0x40,0x40,0x48,0x30,0x00,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x78,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x50,0x50,0x20,0x20,0x00,0x00,
+
+ 6, // 0x77 'w'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0xa8,0xa8,0xd8,0x88,0x00,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x00,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x88,0x78,0x08,0x10,0xe0,
+
+ 6, // 0x7a 'z'
+ 0x00,0x00,0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x00,
+
+ 6, // 0x7b '{'
+ 0x18,0x20,0x20,0x20,0x20,0xc0,0x20,0x20,0x20,0x20,0x18,0x00,
+
+ 6, // 0x7c '|'
+ 0x00,0x20,0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x7d '}'
+ 0xc0,0x20,0x20,0x20,0x20,0x18,0x20,0x20,0x20,0x20,0xc0,0x00,
+
+ 6, // 0x7e '~'
+ 0x00,0x00,0x40,0xa8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x7f ''
+ 0x00,0x00,0x00,0x00,0x20,0x50,0x88,0xf8,0x00,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse6x9[] =
+ {
+ 9, 0, 32, 128-32,
+
+ 0x00,0x00,0x0a,0x00,0x14,0x00,0x1e,0x00,0x28,0x00,0x32,0x00,0x3c,0x00,0x46,0x00,0x50,0x00,
+ 0x5a,0x00,0x64,0x00,0x6e,0x00,0x78,0x00,0x82,0x00,0x8c,0x00,0x96,0x00,0xa0,0x00,0xaa,0x00,
+ 0xb4,0x00,0xbe,0x00,0xc8,0x00,0xd2,0x00,0xdc,0x00,0xe6,0x00,0xf0,0x00,0xfa,0x00,0x04,0x01,
+ 0x0e,0x01,0x18,0x01,0x22,0x01,0x2c,0x01,0x36,0x01,0x40,0x01,0x4a,0x01,0x54,0x01,0x5e,0x01,
+ 0x68,0x01,0x72,0x01,0x7c,0x01,0x86,0x01,0x90,0x01,0x9a,0x01,0xa4,0x01,0xae,0x01,0xb8,0x01,
+ 0xc2,0x01,0xcc,0x01,0xd6,0x01,0xe0,0x01,0xea,0x01,0xf4,0x01,0xfe,0x01,0x08,0x02,0x12,0x02,
+ 0x1c,0x02,0x26,0x02,0x30,0x02,0x3a,0x02,0x44,0x02,0x4e,0x02,0x58,0x02,0x62,0x02,0x6c,0x02,
+ 0x76,0x02,0x80,0x02,0x8a,0x02,0x94,0x02,0x9e,0x02,0xa8,0x02,0xb2,0x02,0xbc,0x02,0xc6,0x02,
+ 0xd0,0x02,0xda,0x02,0xe4,0x02,0xee,0x02,0xf8,0x02,0x02,0x03,0x0c,0x03,0x16,0x03,0x20,0x03,
+ 0x2a,0x03,0x34,0x03,0x3e,0x03,0x48,0x03,0x52,0x03,0x5c,0x03,0x66,0x03,0x70,0x03,0x7a,0x03,
+ 0x84,0x03,0x8e,0x03,0x98,0x03,0xa2,0x03,0xac,0x03,0xb6,0x03,
+
+ 6, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x50,0x50,0xf8,0x50,0xf8,0x50,0x50,0x00,
+
+ 6, // 0x24 '$'
+ 0x00,0x70,0xa8,0xa0,0x70,0x28,0xa8,0x70,0x00,
+
+ 6, // 0x25 '%'
+ 0x00,0xc8,0xc8,0x10,0x20,0x40,0x98,0x98,0x00,
+
+ 6, // 0x26 '&'
+ 0x00,0x60,0x90,0x90,0x60,0xa8,0x90,0x68,0x00,
+
+ 6, // 0x27 '''
+ 0x00,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x10,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x10,
+
+ 6, // 0x29 ')'
+ 0x40,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x40,
+
+ 6, // 0x2a '*'
+ 0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,
+
+ 6, // 0x2b '+'
+ 0x00,0x00,0x20,0x20,0xf8,0x20,0x20,0x00,0x00,
+
+ 6, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x40,
+
+ 6, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,
+
+ 6, // 0x2f '/'
+ 0x00,0x08,0x08,0x10,0x20,0x40,0x80,0x80,0x00,
+
+ 6, // 0x30 '0'
+ 0x00,0x70,0x88,0x98,0xa8,0xc8,0x88,0x70,0x00,
+
+ 6, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x70,0x88,0x08,0x10,0x20,0x40,0xf8,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0xf8,0x10,0x20,0x70,0x08,0x88,0x70,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x10,0x20,0x40,0x90,0xf8,0x10,0x10,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0xf8,0x80,0xf0,0x08,0x08,0x88,0x70,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x70,0x88,0x80,0xf0,0x88,0x88,0x70,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0xf8,0x08,0x08,0x10,0x20,0x40,0x40,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x70,0x88,0x88,0x78,0x08,0x88,0x70,0x00,
+
+ 6, // 0x3a ':'
+ 0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x00,0x00,
+
+ 6, // 0x3b ';'
+ 0x00,0x00,0x00,0x20,0x00,0x00,0x20,0x20,0x40,
+
+ 6, // 0x3c '<'
+ 0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00,
+
+ 6, // 0x3d '='
+ 0x00,0x00,0x00,0xf8,0x00,0xf8,0x00,0x00,0x00,
+
+ 6, // 0x3e '>'
+ 0x00,0x80,0x40,0x20,0x10,0x20,0x40,0x80,0x00,
+
+ 6, // 0x3f '?'
+ 0x00,0x70,0x88,0x08,0x10,0x20,0x00,0x20,0x00,
+
+ 6, // 0x40 '@'
+ 0x00,0x70,0x88,0x88,0xb8,0xb8,0x80,0x70,0x00,
+
+ 6, // 0x41 'A'
+ 0x00,0x20,0x50,0x88,0x88,0xf8,0x88,0x88,0x00,
+
+ 6, // 0x42 'B'
+ 0x00,0xf0,0x88,0x88,0xf0,0x88,0x88,0xf0,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00,
+
+ 6, // 0x44 'D'
+ 0x00,0xe0,0x90,0x88,0x88,0x88,0x90,0xe0,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0x80,0x00,
+
+ 6, // 0x47 'G'
+ 0x00,0x70,0x88,0x80,0xb8,0x88,0x88,0x70,0x00,
+
+ 6, // 0x48 'H'
+ 0x00,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 6, // 0x4a 'J'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x00,
+
+ 6, // 0x4b 'K'
+ 0x00,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x00,
+
+ 6, // 0x4c 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,
+
+ 6, // 0x4d 'M'
+ 0x00,0x88,0xd8,0xa8,0x88,0x88,0x88,0x88,0x00,
+
+ 6, // 0x4e 'N'
+ 0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x00,
+
+ 6, // 0x4f 'O'
+ 0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,
+
+ 6, // 0x50 'P'
+ 0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,0x80,0x00,
+
+ 6, // 0x51 'Q'
+ 0x00,0x70,0x88,0x88,0x88,0xa8,0x90,0x68,0x00,
+
+ 6, // 0x52 'R'
+ 0x00,0xf0,0x88,0x88,0x88,0xf0,0x90,0x88,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 6, // 0x55 'U'
+ 0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x88,0x88,0x88,0x50,0x50,0x20,0x20,0x00,
+
+ 6, // 0x57 'W'
+ 0x00,0x88,0x88,0x88,0xa8,0xa8,0xd8,0x88,0x00,
+
+ 6, // 0x58 'X'
+ 0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00,
+
+ 6, // 0x5a 'Z'
+ 0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,
+
+ 6, // 0x5b '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,
+
+ 6, // 0x5c '\'
+ 0x00,0x80,0x80,0x40,0x20,0x10,0x08,0x08,0x00,
+
+ 6, // 0x5d ']'
+ 0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,
+
+ 6, // 0x5e '^'
+ 0x00,0x00,0x20,0x50,0x88,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00,
+
+ 6, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x80,0x80,0xf0,0x88,0x88,0x88,0xf0,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x70,0x88,0x80,0x88,0x70,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x70,0x88,0xf8,0x80,0x78,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x18,0x20,0x20,0xf8,0x20,0x20,0x20,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x70,
+
+ 6, // 0x68 'h'
+ 0x00,0x80,0x80,0xf0,0x88,0x88,0x88,0x88,0x00,
+
+ 6, // 0x69 'i'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x70,0x00,
+
+ 6, // 0x6a 'j'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x90,0x60,
+
+ 6, // 0x6b 'k'
+ 0x00,0x00,0x80,0x88,0x90,0xa0,0xd0,0x88,0x00,
+
+ 6, // 0x6c 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 6, // 0x6d 'm'
+ 0x00,0x00,0x00,0xd0,0xa8,0xa8,0xa8,0xa8,0x00,
+
+ 6, // 0x6e 'n'
+ 0x00,0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x00,
+
+ 6, // 0x6f 'o'
+ 0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x08,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0xb8,0xc0,0x80,0x80,0x80,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x78,0x80,0x70,0x08,0xf0,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x40,0x40,0xe0,0x40,0x40,0x48,0x30,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x88,0x78,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x50,0x20,0x00,
+
+ 6, // 0x77 'w'
+ 0x00,0x00,0x00,0x88,0x88,0xa8,0xd8,0x88,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x78,0x08,0x70,
+
+ 6, // 0x7a 'z'
+ 0x00,0x00,0x00,0xf8,0x10,0x20,0x40,0xf8,0x00,
+
+ 6, // 0x7b '{'
+ 0x18,0x20,0x20,0x20,0xc0,0x20,0x20,0x20,0x18,
+
+ 6, // 0x7c '|'
+ 0x00,0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x00,
+
+ 6, // 0x7d '}'
+ 0xc0,0x20,0x20,0x20,0x18,0x20,0x20,0x20,0xc0,
+
+ 6, // 0x7e '~'
+ 0x00,0x40,0xa8,0x10,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x7f ''
+ 0x00,0x00,0x00,0x20,0x50,0x88,0xf8,0x00,0x00,
+ 0
+ };
+
+ const int8u gse7x11[] =
+ {
+ 11, 0, 32, 128-32,
+
+ 0x00,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6c,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9c,0x00,0xa8,0x00,0xb4,0x00,0xc0,0x00,0xcc,0x00,
+ 0xd8,0x00,0xe4,0x00,0xf0,0x00,0xfc,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2c,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5c,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8c,0x01,0x98,0x01,0xa4,0x01,
+ 0xb0,0x01,0xbc,0x01,0xc8,0x01,0xd4,0x01,0xe0,0x01,0xec,0x01,0xf8,0x01,0x04,0x02,0x10,0x02,
+ 0x1c,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4c,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7c,0x02,
+ 0x88,0x02,0x94,0x02,0xa0,0x02,0xac,0x02,0xb8,0x02,0xc4,0x02,0xd0,0x02,0xdc,0x02,0xe8,0x02,
+ 0xf4,0x02,0x00,0x03,0x0c,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3c,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6c,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9c,0x03,0xa8,0x03,0xb4,0x03,0xc0,0x03,
+ 0xcc,0x03,0xd8,0x03,0xe4,0x03,0xf0,0x03,0xfc,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2c,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5c,0x04,0x68,0x04,0x74,0x04,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x00,0x10,0x38,0x38,0x38,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x48,0x48,0xfc,0x48,0x48,0xfc,0x48,0x48,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x00,
+
+ 7, // 0x25 '%'
+ 0x00,0x00,0x42,0xa4,0x48,0x10,0x24,0x4a,0x84,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x30,0x48,0x48,0x30,0x60,0x94,0x98,0x6c,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x00,0x20,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x04,0x08,0x10,0x10,0x10,0x10,0x08,0x04,0x00,0x00,
+
+ 7, // 0x29 ')'
+ 0x00,0x40,0x20,0x10,0x10,0x10,0x10,0x20,0x40,0x00,0x00,
+
+ 7, // 0x2a '*'
+ 0x00,0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,0x00,
+
+ 7, // 0x2b '+'
+ 0x00,0x00,0x00,0x10,0x10,0x7c,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,
+
+ 7, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 7, // 0x2f '/'
+ 0x00,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x38,0x44,0x4c,0x54,0x64,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x7c,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x38,0x44,0x04,0x08,0x10,0x20,0x44,0x7c,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x7c,0x48,0x10,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x08,0x10,0x20,0x48,0x48,0x7c,0x08,0x1c,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x7c,0x40,0x40,0x78,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x18,0x20,0x40,0x78,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x7c,0x44,0x04,0x08,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3c,0x04,0x08,0x30,0x00,0x00,
+
+ 7, // 0x3a ':'
+ 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+
+ 7, // 0x3b ';'
+ 0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x30,0x30,0x60,0x00,
+
+ 7, // 0x3c '<'
+ 0x00,0x00,0x04,0x08,0x10,0x20,0x10,0x08,0x04,0x00,0x00,
+
+ 7, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0xfc,0x00,0xfc,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3e '>'
+ 0x00,0x00,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00,0x00,
+
+ 7, // 0x3f '?'
+ 0x00,0x70,0x88,0x88,0x10,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x30,0x48,0x04,0x34,0x54,0x54,0x54,0x28,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x10,0x28,0x44,0x44,0x7c,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x7c,0x40,0x40,0x70,0x40,0x40,0x40,0x7c,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x7c,0x40,0x40,0x70,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5c,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x7c,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x4a 'J'
+ 0x00,0x1c,0x08,0x08,0x08,0x08,0x08,0x48,0x30,0x00,0x00,
+
+ 7, // 0x4b 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4c 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7c,0x00,0x00,
+
+ 7, // 0x4d 'M'
+ 0x00,0x44,0x6c,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4e 'N'
+ 0x00,0x44,0x44,0x64,0x54,0x4c,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4f 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x50,0x48,0x44,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x7c,0x54,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0x44,0x44,0x44,0x44,0x54,0x54,0x6c,0x44,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x5a 'Z'
+ 0x00,0x7c,0x04,0x08,0x10,0x20,0x40,0x44,0x7c,0x00,0x00,
+
+ 7, // 0x5b '['
+ 0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,0x00,
+
+ 7, // 0x5c '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,0x00,
+
+ 7, // 0x5d ']'
+ 0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,0x00,
+
+ 7, // 0x5e '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x20,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3c,0x44,0x44,0x3c,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x04,0x04,0x3c,0x44,0x44,0x44,0x44,0x3c,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x7c,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x18,0x24,0x20,0x70,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x3c,0x44,0x44,0x44,0x3c,0x04,0x44,0x38,
+
+ 7, // 0x68 'h'
+ 0x00,0x40,0x40,0x40,0x58,0x64,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x6a 'j'
+ 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x48,0x30,0x00,
+
+ 7, // 0x6b 'k'
+ 0x00,0x40,0x40,0x44,0x48,0x50,0x68,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6c 'l'
+ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x6d 'm'
+ 0x00,0x00,0x00,0xa8,0x54,0x54,0x54,0x54,0x54,0x00,0x00,
+
+ 7, // 0x6e 'n'
+ 0x00,0x00,0x00,0xb8,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6f 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x3c,0x44,0x44,0x44,0x44,0x3c,0x04,0x04,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x3c,0x40,0x38,0x04,0x04,0x78,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x24,0x18,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x3a,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x28,0x10,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x44,0x44,0x54,0x54,0x6c,0x44,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x3c,0x04,0x08,0x30,0x00,
+
+ 7, // 0x7a 'z'
+ 0x00,0x00,0x00,0x7c,0x08,0x10,0x20,0x44,0x7c,0x00,0x00,
+
+ 7, // 0x7b '{'
+ 0x00,0x0c,0x10,0x10,0x10,0x60,0x10,0x10,0x0c,0x00,0x00,
+
+ 7, // 0x7c '|'
+ 0x00,0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 7, // 0x7d '}'
+ 0x00,0x60,0x10,0x10,0x10,0x0c,0x10,0x10,0x60,0x00,0x00,
+
+ 7, // 0x7e '~'
+ 0x00,0x00,0x64,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7f ''
+ 0x00,0x00,0x00,0x10,0x28,0x44,0x44,0x7c,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse7x11_bold[] =
+ {
+ 11, 0, 32, 128-32,
+
+ 0x00,0x00,0x0c,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3c,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6c,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9c,0x00,0xa8,0x00,0xb4,0x00,0xc0,0x00,0xcc,0x00,
+ 0xd8,0x00,0xe4,0x00,0xf0,0x00,0xfc,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2c,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5c,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8c,0x01,0x98,0x01,0xa4,0x01,
+ 0xb0,0x01,0xbc,0x01,0xc8,0x01,0xd4,0x01,0xe0,0x01,0xec,0x01,0xf8,0x01,0x04,0x02,0x10,0x02,
+ 0x1c,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4c,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7c,0x02,
+ 0x88,0x02,0x94,0x02,0xa0,0x02,0xac,0x02,0xb8,0x02,0xc4,0x02,0xd0,0x02,0xdc,0x02,0xe8,0x02,
+ 0xf4,0x02,0x00,0x03,0x0c,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3c,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6c,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9c,0x03,0xa8,0x03,0xb4,0x03,0xc0,0x03,
+ 0xcc,0x03,0xd8,0x03,0xe4,0x03,0xf0,0x03,0xfc,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2c,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5c,0x04,0x68,0x04,0x74,0x04,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x00,0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x6c,0x6c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x48,0x48,0xfc,0x48,0x48,0xfc,0x48,0x48,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x30,0x30,0x78,0xcc,0xc0,0x78,0x0c,0xcc,0x78,0x30,0x30,
+
+ 7, // 0x25 '%'
+ 0x00,0x00,0xc4,0x0c,0x18,0x30,0x60,0xc0,0x8c,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x30,0x58,0x58,0x30,0x74,0xdc,0xd8,0x6c,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x00,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x0c,0x18,0x30,0x30,0x30,0x30,0x18,0x0c,0x00,0x00,
+
+ 7, // 0x29 ')'
+ 0x00,0xc0,0x60,0x30,0x30,0x30,0x30,0x60,0xc0,0x00,0x00,
+
+ 7, // 0x2a '*'
+ 0x00,0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,0x00,
+
+ 7, // 0x2b '+'
+ 0x00,0x00,0x00,0x30,0x30,0xfc,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x60,0x00,
+
+ 7, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 7, // 0x2f '/'
+ 0x00,0x0c,0x0c,0x18,0x18,0x30,0x30,0x60,0x60,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x78,0xcc,0xcc,0xdc,0xec,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x30,0x70,0xf0,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x78,0xcc,0xcc,0x18,0x30,0x60,0xcc,0xfc,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0xfc,0x98,0x30,0x78,0x0c,0x0c,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x18,0x30,0x68,0xd8,0xd8,0xfc,0x18,0x3c,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0xfc,0xc0,0xc0,0xf8,0x0c,0x0c,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x38,0x60,0xc0,0xf8,0xcc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0xfc,0x8c,0x0c,0x18,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x78,0xcc,0xcc,0x78,0xcc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x78,0xcc,0xcc,0xcc,0x7c,0x0c,0x18,0x70,0x00,0x00,
+
+ 7, // 0x3a ':'
+ 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x3b ';'
+ 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x30,0x60,0x00,
+
+ 7, // 0x3c '<'
+ 0x00,0x00,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x00,0x00,
+
+ 7, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0xfc,0x00,0xfc,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3e '>'
+ 0x00,0x00,0x60,0x30,0x18,0x0c,0x18,0x30,0x60,0x00,0x00,
+
+ 7, // 0x3f '?'
+ 0x00,0x78,0xcc,0xcc,0x18,0x30,0x30,0x00,0x30,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x70,0x88,0x04,0x74,0xb4,0xb4,0xb4,0x68,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x30,0x78,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0xf8,0xcc,0xcc,0xf8,0xcc,0xcc,0xcc,0xf8,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x78,0xcc,0xc0,0xc0,0xc0,0xc0,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0xf0,0xd8,0xcc,0xcc,0xcc,0xcc,0xd8,0xf0,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0xfc,0xc4,0xd0,0xf0,0xd0,0xc0,0xc4,0xfc,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0xfc,0xc4,0xd0,0xf0,0xd0,0xc0,0xc0,0xc0,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x78,0xcc,0xc0,0xc0,0xdc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x4a 'J'
+ 0x00,0x3c,0x18,0x18,0x18,0x18,0xd8,0xd8,0x70,0x00,0x00,
+
+ 7, // 0x4b 'K'
+ 0x00,0xcc,0xcc,0xd8,0xf0,0xd8,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x4c 'L'
+ 0x00,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc4,0xfc,0x00,0x00,
+
+ 7, // 0x4d 'M'
+ 0x00,0x84,0xcc,0xfc,0xb4,0xcc,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x4e 'N'
+ 0x00,0xcc,0xcc,0xec,0xfc,0xdc,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x4f 'O'
+ 0x00,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0xf8,0xcc,0xcc,0xcc,0xf8,0xc0,0xc0,0xc0,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x78,0xcc,0xcc,0xcc,0xcc,0xdc,0x78,0x18,0x0c,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0xf8,0xcc,0xcc,0xcc,0xf8,0xd8,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x78,0xcc,0xe0,0x70,0x38,0x1c,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0xcc,0xcc,0xcc,0xcc,0xb4,0xfc,0xcc,0x84,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x5a 'Z'
+ 0x00,0xfc,0x8c,0x18,0x30,0x60,0xc0,0xc4,0xfc,0x00,0x00,
+
+ 7, // 0x5b '['
+ 0x00,0x78,0x60,0x60,0x60,0x60,0x60,0x60,0x78,0x00,0x00,
+
+ 7, // 0x5c '\'
+ 0x00,0x60,0x60,0x30,0x30,0x18,0x18,0x0c,0x0c,0x00,0x00,
+
+ 7, // 0x5d ']'
+ 0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x00,0x00,
+
+ 7, // 0x5e '^'
+ 0x00,0x10,0x38,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x70,0x18,0x78,0xd8,0xd8,0x6c,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x60,0x60,0x60,0x78,0x6c,0x6c,0x6c,0x78,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x78,0xcc,0xc0,0xc0,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x18,0x18,0x18,0x78,0xd8,0xd8,0xd8,0x6c,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x78,0xcc,0xfc,0xc0,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x18,0x34,0x30,0x78,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x6c,0xd8,0xd8,0xd8,0x78,0x18,0xd8,0x70,
+
+ 7, // 0x68 'h'
+ 0x00,0xc0,0xc0,0xd8,0xec,0xcc,0xcc,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x30,0x00,0x70,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x6a 'j'
+ 0x00,0x0c,0x00,0x1c,0x0c,0x0c,0x0c,0x0c,0x6c,0x6c,0x38,
+
+ 7, // 0x6b 'k'
+ 0x00,0xc0,0xc0,0xcc,0xcc,0xd8,0xf0,0xd8,0xcc,0x00,0x00,
+
+ 7, // 0x6c 'l'
+ 0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x6d 'm'
+ 0x00,0x00,0x00,0xe8,0xfc,0xd4,0xd4,0xc4,0xc4,0x00,0x00,
+
+ 7, // 0x6e 'n'
+ 0x00,0x00,0x00,0xd8,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,
+
+ 7, // 0x6f 'o'
+ 0x00,0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xf8,0xc0,0xc0,0xc0,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x7c,0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x0c,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0xd8,0xec,0xcc,0xc0,0xc0,0xc0,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x78,0xcc,0x60,0x18,0xcc,0x78,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x20,0x60,0x60,0xf0,0x60,0x60,0x68,0x30,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0xd8,0xd8,0xd8,0xd8,0xd8,0x6c,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0xcc,0xcc,0xb4,0xfc,0xcc,0x84,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0xcc,0x78,0x30,0x78,0xcc,0xcc,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x18,0xf0,
+
+ 7, // 0x7a 'z'
+ 0x00,0x00,0x00,0xfc,0x98,0x30,0x60,0xc4,0xfc,0x00,0x00,
+
+ 7, // 0x7b '{'
+ 0x1c,0x30,0x30,0x30,0xe0,0x30,0x30,0x30,0x1c,0x00,0x00,
+
+ 7, // 0x7c '|'
+ 0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 7, // 0x7d '}'
+ 0xe0,0x30,0x30,0x30,0x1c,0x30,0x30,0x30,0xe0,0x00,0x00,
+
+ 7, // 0x7e '~'
+ 0x00,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7f ''
+ 0x00,0x00,0x00,0x30,0x78,0xcc,0xcc,0xfc,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse7x15[] =
+ {
+ 15, 0, 32, 128-32,
+
+ 0x00,0x00,0x10,0x00,0x20,0x00,0x30,0x00,0x40,0x00,0x50,0x00,0x60,0x00,0x70,0x00,0x80,0x00,
+ 0x90,0x00,0xa0,0x00,0xb0,0x00,0xc0,0x00,0xd0,0x00,0xe0,0x00,0xf0,0x00,0x00,0x01,0x10,0x01,
+ 0x20,0x01,0x30,0x01,0x40,0x01,0x50,0x01,0x60,0x01,0x70,0x01,0x80,0x01,0x90,0x01,0xa0,0x01,
+ 0xb0,0x01,0xc0,0x01,0xd0,0x01,0xe0,0x01,0xf0,0x01,0x00,0x02,0x10,0x02,0x20,0x02,0x30,0x02,
+ 0x40,0x02,0x50,0x02,0x60,0x02,0x70,0x02,0x80,0x02,0x90,0x02,0xa0,0x02,0xb0,0x02,0xc0,0x02,
+ 0xd0,0x02,0xe0,0x02,0xf0,0x02,0x00,0x03,0x10,0x03,0x20,0x03,0x30,0x03,0x40,0x03,0x50,0x03,
+ 0x60,0x03,0x70,0x03,0x80,0x03,0x90,0x03,0xa0,0x03,0xb0,0x03,0xc0,0x03,0xd0,0x03,0xe0,0x03,
+ 0xf0,0x03,0x00,0x04,0x10,0x04,0x20,0x04,0x30,0x04,0x40,0x04,0x50,0x04,0x60,0x04,0x70,0x04,
+ 0x80,0x04,0x90,0x04,0xa0,0x04,0xb0,0x04,0xc0,0x04,0xd0,0x04,0xe0,0x04,0xf0,0x04,0x00,0x05,
+ 0x10,0x05,0x20,0x05,0x30,0x05,0x40,0x05,0x50,0x05,0x60,0x05,0x70,0x05,0x80,0x05,0x90,0x05,
+ 0xa0,0x05,0xb0,0x05,0xc0,0x05,0xd0,0x05,0xe0,0x05,0xf0,0x05,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x00,0x00,0x10,0x38,0x38,0x38,0x38,0x10,0x10,0x00,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x24,0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x00,0x48,0x48,0x48,0xfc,0x48,0x48,0xfc,0x48,0x48,0x48,0x00,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x00,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x54,0x38,0x10,0x00,0x00,0x00,
+
+ 7, // 0x25 '%'
+ 0x00,0x00,0x44,0x44,0x08,0x08,0x10,0x10,0x20,0x20,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x00,0x00,0x30,0x48,0x48,0x30,0x60,0x94,0x98,0x90,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x00,0x00,0x20,0x20,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x04,0x08,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x08,0x04,0x00,0x00,0x00,
+
+ 7, // 0x29 ')'
+ 0x00,0x40,0x20,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x20,0x40,0x00,0x00,0x00,
+
+ 7, // 0x2a '*'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2b '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x7c,0x10,0x10,0x10,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x00,
+
+ 7, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x2f '/'
+ 0x00,0x00,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x00,0x38,0x44,0x44,0x4c,0x54,0x64,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x00,0x10,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x00,0x38,0x44,0x44,0x04,0x08,0x10,0x20,0x40,0x44,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x00,0x7c,0x44,0x08,0x10,0x38,0x04,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x00,0x08,0x10,0x20,0x40,0x48,0x48,0x7c,0x08,0x08,0x1c,0x00,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x00,0x7c,0x40,0x40,0x40,0x78,0x04,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x00,0x18,0x20,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x00,0x7c,0x44,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x3c,0x04,0x04,0x08,0x30,0x00,0x00,0x00,
+
+ 7, // 0x3a ':'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3b ';'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x30,0x30,0x60,0x00,0x00,
+
+ 7, // 0x3c '<'
+ 0x00,0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,0x00,
+
+ 7, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3e '>'
+ 0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00,0x00,
+
+ 7, // 0x3f '?'
+ 0x00,0x00,0x78,0x84,0x84,0x84,0x08,0x10,0x20,0x20,0x00,0x20,0x00,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x00,0x00,0x30,0x48,0x04,0x34,0x54,0x54,0x54,0x54,0x28,0x00,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x00,0x10,0x28,0x44,0x44,0x44,0x7c,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x00,0x38,0x44,0x44,0x40,0x40,0x40,0x40,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x00,0x7c,0x40,0x40,0x40,0x70,0x40,0x40,0x40,0x40,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x00,0x7c,0x40,0x40,0x40,0x70,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x5c,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x00,0x44,0x44,0x44,0x44,0x7c,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x4a 'J'
+ 0x00,0x00,0x1c,0x08,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,0x00,
+
+ 7, // 0x4b 'K'
+ 0x00,0x00,0x44,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4c 'L'
+ 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x4d 'M'
+ 0x00,0x00,0x44,0x6c,0x54,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4e 'N'
+ 0x00,0x00,0x44,0x44,0x44,0x64,0x54,0x4c,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4f 'O'
+ 0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x50,0x48,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x00,0x38,0x44,0x44,0x40,0x38,0x04,0x04,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x00,0x7c,0x54,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x54,0x6c,0x44,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0x44,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x5a 'Z'
+ 0x00,0x00,0x7c,0x04,0x04,0x08,0x10,0x20,0x40,0x40,0x40,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x5b '['
+ 0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,0x00,
+
+ 7, // 0x5c '\'
+ 0x00,0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,0x00,0x00,
+
+ 7, // 0x5d ']'
+ 0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,0x00,
+
+ 7, // 0x5e '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x20,0x20,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x3c,0x44,0x44,0x44,0x3a,0x00,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x00,0x40,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x00,0x04,0x04,0x04,0x3c,0x44,0x44,0x44,0x44,0x44,0x3a,0x00,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x7c,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x00,0x18,0x24,0x20,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x3a,0x44,0x44,0x44,0x44,0x44,0x3c,0x04,0x44,0x38,0x00,
+
+ 7, // 0x68 'h'
+ 0x00,0x00,0x40,0x40,0x40,0x58,0x64,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x00,0x10,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x6a 'j'
+ 0x00,0x00,0x08,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,
+
+ 7, // 0x6b 'k'
+ 0x00,0x00,0x40,0x40,0x44,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6c 'l'
+ 0x00,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x6d 'm'
+ 0x00,0x00,0x00,0x00,0xa8,0x54,0x54,0x54,0x54,0x54,0x54,0x54,0x00,0x00,0x00,
+
+ 7, // 0x6e 'n'
+ 0x00,0x00,0x00,0x00,0xb8,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6f 'o'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x3c,0x44,0x44,0x44,0x44,0x44,0x3c,0x04,0x04,0x04,0x00,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x58,0x64,0x44,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x00,0x20,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x24,0x18,0x00,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x3a,0x00,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x54,0x54,0x6c,0x44,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x3c,0x04,0x08,0x70,0x00,
+
+ 7, // 0x7a 'z'
+ 0x00,0x00,0x00,0x00,0x7c,0x04,0x08,0x10,0x20,0x40,0x40,0x7c,0x00,0x00,0x00,
+
+ 7, // 0x7b '{'
+ 0x00,0x0c,0x10,0x10,0x10,0x10,0x10,0x60,0x10,0x10,0x10,0x10,0x0c,0x00,0x00,
+
+ 7, // 0x7c '|'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 7, // 0x7d '}'
+ 0x00,0x60,0x10,0x10,0x10,0x10,0x10,0x0c,0x10,0x10,0x10,0x10,0x60,0x00,0x00,
+
+ 7, // 0x7e '~'
+ 0x00,0x00,0x64,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7f ''
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x28,0x44,0x44,0x7c,0x00,0x00,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse7x15_bold[] =
+ {
+ 15, 0, 32, 128-32,
+
+ 0x00,0x00,0x10,0x00,0x20,0x00,0x30,0x00,0x40,0x00,0x50,0x00,0x60,0x00,0x70,0x00,0x80,0x00,
+ 0x90,0x00,0xa0,0x00,0xb0,0x00,0xc0,0x00,0xd0,0x00,0xe0,0x00,0xf0,0x00,0x00,0x01,0x10,0x01,
+ 0x20,0x01,0x30,0x01,0x40,0x01,0x50,0x01,0x60,0x01,0x70,0x01,0x80,0x01,0x90,0x01,0xa0,0x01,
+ 0xb0,0x01,0xc0,0x01,0xd0,0x01,0xe0,0x01,0xf0,0x01,0x00,0x02,0x10,0x02,0x20,0x02,0x30,0x02,
+ 0x40,0x02,0x50,0x02,0x60,0x02,0x70,0x02,0x80,0x02,0x90,0x02,0xa0,0x02,0xb0,0x02,0xc0,0x02,
+ 0xd0,0x02,0xe0,0x02,0xf0,0x02,0x00,0x03,0x10,0x03,0x20,0x03,0x30,0x03,0x40,0x03,0x50,0x03,
+ 0x60,0x03,0x70,0x03,0x80,0x03,0x90,0x03,0xa0,0x03,0xb0,0x03,0xc0,0x03,0xd0,0x03,0xe0,0x03,
+ 0xf0,0x03,0x00,0x04,0x10,0x04,0x20,0x04,0x30,0x04,0x40,0x04,0x50,0x04,0x60,0x04,0x70,0x04,
+ 0x80,0x04,0x90,0x04,0xa0,0x04,0xb0,0x04,0xc0,0x04,0xd0,0x04,0xe0,0x04,0xf0,0x04,0x00,0x05,
+ 0x10,0x05,0x20,0x05,0x30,0x05,0x40,0x05,0x50,0x05,0x60,0x05,0x70,0x05,0x80,0x05,0x90,0x05,
+ 0xa0,0x05,0xb0,0x05,0xc0,0x05,0xd0,0x05,0xe0,0x05,0xf0,0x05,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x00,0x00,0x00,0x30,0x78,0x78,0x78,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x6c,0x6c,0x6c,0x28,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x00,0x48,0x48,0x48,0xfc,0x48,0x48,0xfc,0x48,0x48,0x48,0x00,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x30,0x30,0x78,0xcc,0xe0,0x70,0x38,0x1c,0xcc,0x78,0x30,0x30,0x00,0x00,
+
+ 7, // 0x25 '%'
+ 0x00,0x00,0x00,0x64,0x6c,0x08,0x18,0x10,0x30,0x20,0x6c,0x4c,0x00,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x00,0x00,0x30,0x58,0x58,0x30,0x74,0xdc,0xd8,0xd8,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x00,0x00,0x30,0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x0c,0x18,0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x18,0x0c,0x00,0x00,0x00,
+
+ 7, // 0x29 ')'
+ 0x00,0xc0,0x60,0x30,0x18,0x18,0x18,0x18,0x18,0x30,0x60,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x2a '*'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0xa8,0x70,0xa8,0x20,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2b '+'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0xfc,0x30,0x30,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x00,
+
+ 7, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x2f '/'
+ 0x00,0x00,0x0c,0x0c,0x18,0x18,0x30,0x30,0x60,0x60,0xc0,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0xdc,0xec,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x00,0x30,0x30,0x70,0xf0,0x30,0x30,0x30,0x30,0x30,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x00,0x78,0xcc,0xcc,0x0c,0x18,0x30,0x60,0xc0,0xcc,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x00,0xfc,0x8c,0x18,0x30,0x78,0x0c,0x0c,0x0c,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x00,0x18,0x30,0x60,0xc8,0xd8,0xd8,0xfc,0x18,0x18,0x3c,0x00,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x00,0xfc,0xc0,0xc0,0xc0,0xf8,0x0c,0x0c,0x0c,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x00,0x38,0x60,0xc0,0xc0,0xf8,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x00,0xfc,0x8c,0x0c,0x0c,0x18,0x18,0x30,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0x78,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x18,0x70,0x00,0x00,0x00,
+
+ 7, // 0x3a ':'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3b ';'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x00,
+
+ 7, // 0x3c '<'
+ 0x00,0x00,0x00,0x0c,0x18,0x30,0x60,0xc0,0x60,0x30,0x18,0x0c,0x00,0x00,0x00,
+
+ 7, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3e '>'
+ 0x00,0x00,0x00,0xc0,0x60,0x30,0x18,0x0c,0x18,0x30,0x60,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x3f '?'
+ 0x00,0x00,0x78,0xcc,0xcc,0x18,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x00,0x00,0x70,0x88,0x04,0x74,0xb4,0xb4,0xb4,0xb4,0x68,0x00,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x00,0x30,0x78,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xf8,0xcc,0xcc,0xcc,0xcc,0xf8,0x00,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x00,0x78,0xcc,0xc4,0xc0,0xc0,0xc0,0xc0,0xc4,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x00,0xf0,0xd8,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xd8,0xf0,0x00,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x00,0xfc,0xc4,0xc0,0xd0,0xf0,0xd0,0xc0,0xc0,0xc4,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x00,0xfc,0xc4,0xc0,0xd0,0xf0,0xd0,0xc0,0xc0,0xc0,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x00,0x78,0xcc,0xc0,0xc0,0xc0,0xdc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xfc,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,
+
+ 7, // 0x4a 'J'
+ 0x00,0x00,0x3c,0x18,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0x70,0x00,0x00,0x00,
+
+ 7, // 0x4b 'K'
+ 0x00,0x00,0xcc,0xcc,0xd8,0xd8,0xf0,0xd8,0xd8,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x4c 'L'
+ 0x00,0x00,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc4,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x4d 'M'
+ 0x00,0x00,0x84,0xcc,0xfc,0xb4,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x4e 'N'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xec,0xfc,0xdc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x4f 'O'
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xf8,0xc0,0xc0,0xc0,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xdc,0x78,0x18,0x0c,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xf8,0xd8,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x00,0x78,0xcc,0xcc,0xe0,0x70,0x38,0x1c,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x00,0xfc,0xb4,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xb4,0xfc,0xcc,0x84,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x00,0xcc,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,
+
+ 7, // 0x5a 'Z'
+ 0x00,0x00,0xfc,0x8c,0x0c,0x18,0x30,0x60,0xc0,0xc0,0xc4,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x5b '['
+ 0x00,0x78,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x78,0x00,0x00,
+
+ 7, // 0x5c '\'
+ 0x00,0x00,0xc0,0xc0,0x60,0x60,0x30,0x30,0x18,0x18,0x0c,0x0c,0x00,0x00,0x00,
+
+ 7, // 0x5d ']'
+ 0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x00,0x00,
+
+ 7, // 0x5e '^'
+ 0x00,0x10,0x38,0x6c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x30,0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x70,0xd8,0x18,0x78,0xd8,0xd8,0xd8,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x00,0x60,0x60,0x60,0x78,0x6c,0x6c,0x6c,0x6c,0x6c,0x78,0x00,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x78,0xcc,0xc0,0xc0,0xc0,0xc0,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x00,0x18,0x18,0x18,0x78,0xd8,0xd8,0xd8,0xd8,0xd8,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xfc,0xc0,0xc0,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x00,0x30,0x68,0x60,0x60,0xf0,0x60,0x60,0x60,0x60,0xf0,0x00,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x6c,0xd8,0xd8,0xd8,0xd8,0xd8,0x78,0x18,0xd8,0x70,0x00,
+
+ 7, // 0x68 'h'
+ 0x00,0x00,0xc0,0xc0,0xc0,0xd8,0xec,0xcc,0xcc,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x00,0x30,0x30,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,
+
+ 7, // 0x6a 'j'
+ 0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0xd8,0xd8,0x70,0x00,
+
+ 7, // 0x6b 'k'
+ 0x00,0x00,0xc0,0xc0,0xcc,0xcc,0xcc,0xd8,0xf0,0xd8,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x6c 'l'
+ 0x00,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,
+
+ 7, // 0x6d 'm'
+ 0x00,0x00,0x00,0x00,0xe8,0xfc,0xd4,0xd4,0xd4,0xc4,0xc4,0xc4,0x00,0x00,0x00,
+
+ 7, // 0x6e 'n'
+ 0x00,0x00,0x00,0x00,0xd8,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x6f 'o'
+ 0x00,0x00,0x00,0x00,0x78,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0xf8,0xcc,0xcc,0xcc,0xcc,0xcc,0xf8,0xc0,0xc0,0xc0,0x00,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x7c,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x0c,0x00,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0xd8,0xec,0xcc,0xc0,0xc0,0xc0,0xc0,0xc0,0x00,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x78,0xcc,0xe0,0x70,0x38,0x1c,0xcc,0x78,0x00,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x00,0x20,0x60,0x60,0xf0,0x60,0x60,0x60,0x60,0x6c,0x38,0x00,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0x6c,0x00,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x78,0x30,0x00,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xb4,0xfc,0xcc,0x84,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0xcc,0xcc,0x78,0x30,0x78,0xcc,0xcc,0xcc,0x00,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x7c,0x0c,0x18,0xf0,0x00,
+
+ 7, // 0x7a 'z'
+ 0x00,0x00,0x00,0x00,0xfc,0x8c,0x18,0x30,0x60,0xc0,0xc4,0xfc,0x00,0x00,0x00,
+
+ 7, // 0x7b '{'
+ 0x00,0x1c,0x30,0x30,0x30,0x30,0x30,0xe0,0x30,0x30,0x30,0x30,0x1c,0x00,0x00,
+
+ 7, // 0x7c '|'
+ 0x00,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 7, // 0x7d '}'
+ 0x00,0xe0,0x30,0x30,0x30,0x30,0x30,0x1c,0x30,0x30,0x30,0x30,0xe0,0x00,0x00,
+
+ 7, // 0x7e '~'
+ 0x00,0x00,0x34,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7f ''
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x78,0xcc,0xcc,0xfc,0x00,0x00,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse8x16[] =
+ {
+ 16, 0, 32, 128-32,
+
+ 0x00,0x00,0x11,0x00,0x22,0x00,0x33,0x00,0x44,0x00,0x55,0x00,0x66,0x00,0x77,0x00,0x88,0x00,
+ 0x99,0x00,0xaa,0x00,0xbb,0x00,0xcc,0x00,0xdd,0x00,0xee,0x00,0xff,0x00,0x10,0x01,0x21,0x01,
+ 0x32,0x01,0x43,0x01,0x54,0x01,0x65,0x01,0x76,0x01,0x87,0x01,0x98,0x01,0xa9,0x01,0xba,0x01,
+ 0xcb,0x01,0xdc,0x01,0xed,0x01,0xfe,0x01,0x0f,0x02,0x20,0x02,0x31,0x02,0x42,0x02,0x53,0x02,
+ 0x64,0x02,0x75,0x02,0x86,0x02,0x97,0x02,0xa8,0x02,0xb9,0x02,0xca,0x02,0xdb,0x02,0xec,0x02,
+ 0xfd,0x02,0x0e,0x03,0x1f,0x03,0x30,0x03,0x41,0x03,0x52,0x03,0x63,0x03,0x74,0x03,0x85,0x03,
+ 0x96,0x03,0xa7,0x03,0xb8,0x03,0xc9,0x03,0xda,0x03,0xeb,0x03,0xfc,0x03,0x0d,0x04,0x1e,0x04,
+ 0x2f,0x04,0x40,0x04,0x51,0x04,0x62,0x04,0x73,0x04,0x84,0x04,0x95,0x04,0xa6,0x04,0xb7,0x04,
+ 0xc8,0x04,0xd9,0x04,0xea,0x04,0xfb,0x04,0x0c,0x05,0x1d,0x05,0x2e,0x05,0x3f,0x05,0x50,0x05,
+ 0x61,0x05,0x72,0x05,0x83,0x05,0x94,0x05,0xa5,0x05,0xb6,0x05,0xc7,0x05,0xd8,0x05,0xe9,0x05,
+ 0xfa,0x05,0x0b,0x06,0x1c,0x06,0x2d,0x06,0x3e,0x06,0x4f,0x06,
+
+ 8, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x21 '!'
+ 0x00,0x00,0x10,0x38,0x38,0x38,0x38,0x10,0x10,0x00,0x10,0x10,0x00,0x00,0x00,0x00,
+
+ 8, // 0x22 '"'
+ 0x00,0x24,0x24,0x24,0x24,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x23 '#'
+ 0x00,0x00,0x24,0x24,0x24,0x7e,0x24,0x24,0x7e,0x24,0x24,0x24,0x00,0x00,0x00,0x00,
+
+ 8, // 0x24 '$'
+ 0x00,0x14,0x14,0x3e,0x55,0x54,0x54,0x3e,0x15,0x15,0x55,0x3e,0x14,0x14,0x00,0x00,
+
+ 8, // 0x25 '%'
+ 0x00,0x00,0x32,0x56,0x6c,0x04,0x08,0x08,0x10,0x13,0x25,0x26,0x00,0x00,0x00,0x00,
+
+ 8, // 0x26 '&'
+ 0x00,0x00,0x18,0x24,0x24,0x24,0x18,0x28,0x45,0x46,0x44,0x3b,0x00,0x00,0x00,0x00,
+
+ 8, // 0x27 '''
+ 0x00,0x00,0x08,0x08,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x28 '('
+ 0x00,0x04,0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x04,0x00,0x00,0x00,
+
+ 8, // 0x29 ')'
+ 0x00,0x10,0x08,0x04,0x04,0x02,0x02,0x02,0x02,0x04,0x04,0x08,0x10,0x00,0x00,0x00,
+
+ 8, // 0x2a '*'
+ 0x00,0x00,0x00,0x00,0x66,0x24,0x18,0xff,0x18,0x24,0x66,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2b '+'
+ 0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x7f,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x20,0x00,
+
+ 8, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2f '/'
+ 0x00,0x02,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,0x00,
+
+ 8, // 0x30 '0'
+ 0x00,0x00,0x3c,0x42,0x42,0x46,0x4a,0x52,0x62,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x31 '1'
+ 0x00,0x00,0x08,0x08,0x18,0x38,0x08,0x08,0x08,0x08,0x08,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x32 '2'
+ 0x00,0x00,0x3c,0x42,0x42,0x02,0x04,0x08,0x10,0x20,0x42,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x33 '3'
+ 0x00,0x00,0x7e,0x42,0x04,0x08,0x1c,0x02,0x02,0x02,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x34 '4'
+ 0x00,0x00,0x04,0x08,0x10,0x24,0x44,0x44,0x7e,0x04,0x04,0x0e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x35 '5'
+ 0x00,0x00,0x7e,0x42,0x40,0x40,0x7c,0x02,0x02,0x02,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x36 '6'
+ 0x00,0x00,0x1c,0x20,0x40,0x40,0x7c,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x37 '7'
+ 0x00,0x00,0x7e,0x42,0x42,0x02,0x04,0x08,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,
+
+ 8, // 0x38 '8'
+ 0x00,0x00,0x3c,0x42,0x42,0x42,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x39 '9'
+ 0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x3e,0x02,0x02,0x04,0x38,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3a ':'
+ 0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3b ';'
+ 0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x40,0x00,
+
+ 8, // 0x3c '<'
+ 0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3e '>'
+ 0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3f '?'
+ 0x00,0x00,0x3c,0x42,0x42,0x42,0x04,0x08,0x08,0x00,0x08,0x08,0x00,0x00,0x00,0x00,
+
+ 8, // 0x40 '@'
+ 0x00,0x00,0x3c,0x42,0x01,0x39,0x49,0x49,0x49,0x49,0x49,0x36,0x00,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x7c,0x22,0x22,0x22,0x3c,0x22,0x22,0x22,0x22,0x7c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x43 'C'
+ 0x00,0x00,0x3c,0x42,0x42,0x40,0x40,0x40,0x40,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x44 'D'
+ 0x00,0x00,0x7c,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x7c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x7e,0x22,0x20,0x28,0x38,0x28,0x20,0x20,0x22,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x7e,0x22,0x20,0x28,0x38,0x28,0x20,0x20,0x20,0x70,0x00,0x00,0x00,0x00,
+
+ 8, // 0x47 'G'
+ 0x00,0x00,0x3c,0x42,0x42,0x40,0x40,0x4e,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x48 'H'
+ 0x00,0x00,0x42,0x42,0x42,0x42,0x7e,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,
+
+ 8, // 0x49 'I'
+ 0x00,0x00,0x1c,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4a 'J'
+ 0x00,0x00,0x0e,0x04,0x04,0x04,0x04,0x04,0x04,0x44,0x44,0x38,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4b 'K'
+ 0x00,0x00,0x62,0x22,0x24,0x28,0x30,0x28,0x24,0x22,0x22,0x62,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4c 'L'
+ 0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4d 'M'
+ 0x00,0x00,0x41,0x63,0x55,0x49,0x41,0x41,0x41,0x41,0x41,0x41,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4e 'N'
+ 0x00,0x00,0x42,0x42,0x62,0x52,0x4a,0x46,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4f 'O'
+ 0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x7c,0x22,0x22,0x22,0x22,0x3c,0x20,0x20,0x20,0x70,0x00,0x00,0x00,0x00,
+
+ 8, // 0x51 'Q'
+ 0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x42,0x4a,0x44,0x3a,0x02,0x00,0x00,0x00,
+
+ 8, // 0x52 'R'
+ 0x00,0x00,0x7c,0x22,0x22,0x22,0x22,0x3c,0x28,0x24,0x22,0x62,0x00,0x00,0x00,0x00,
+
+ 8, // 0x53 'S'
+ 0x00,0x00,0x3c,0x42,0x42,0x40,0x30,0x0c,0x02,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x54 'T'
+ 0x00,0x00,0x7f,0x49,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x55 'U'
+ 0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x41,0x41,0x41,0x41,0x22,0x22,0x14,0x14,0x08,0x08,0x00,0x00,0x00,0x00,
+
+ 8, // 0x57 'W'
+ 0x00,0x00,0x41,0x41,0x41,0x41,0x41,0x49,0x49,0x55,0x63,0x41,0x00,0x00,0x00,0x00,
+
+ 8, // 0x58 'X'
+ 0x00,0x00,0x42,0x42,0x42,0x24,0x18,0x18,0x24,0x42,0x42,0x42,0x00,0x00,0x00,0x00,
+
+ 8, // 0x59 'Y'
+ 0x00,0x00,0x22,0x22,0x22,0x22,0x14,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5a 'Z'
+ 0x00,0x00,0x7e,0x42,0x02,0x04,0x08,0x10,0x20,0x40,0x42,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5b '['
+ 0x00,0x1e,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1e,0x00,0x00,0x00,
+
+ 8, // 0x5c '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00,0x00,0x00,
+
+ 8, // 0x5d ']'
+ 0x00,0x3c,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3c,0x00,0x00,0x00,
+
+ 8, // 0x5e '^'
+ 0x00,0x00,0x08,0x14,0x22,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
+
+ 8, // 0x60 '`'
+ 0x00,0x00,0x08,0x08,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x3c,0x44,0x44,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x60,0x20,0x20,0x38,0x24,0x22,0x22,0x22,0x22,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x40,0x40,0x40,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x0c,0x04,0x04,0x1c,0x24,0x44,0x44,0x44,0x44,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x42,0x7e,0x40,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x66 'f'
+ 0x00,0x00,0x0c,0x12,0x10,0x10,0x38,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x44,0x44,0x44,0x44,0x44,0x3c,0x04,0x44,0x38,0x00,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x60,0x20,0x20,0x2c,0x32,0x22,0x22,0x22,0x22,0x62,0x00,0x00,0x00,0x00,
+
+ 8, // 0x69 'i'
+ 0x00,0x00,0x08,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6a 'j'
+ 0x00,0x00,0x04,0x04,0x00,0x0c,0x04,0x04,0x04,0x04,0x04,0x44,0x44,0x38,0x00,0x00,
+
+ 8, // 0x6b 'k'
+ 0x00,0x00,0x60,0x20,0x20,0x22,0x24,0x28,0x38,0x24,0x22,0x62,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6c 'l'
+ 0x00,0x00,0x18,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6d 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x76,0x49,0x49,0x49,0x49,0x41,0x41,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6e 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x5c,0x22,0x22,0x22,0x22,0x22,0x22,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6f 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x42,0x42,0x42,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0x22,0x22,0x22,0x22,0x22,0x3c,0x20,0x20,0x70,0x00,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x44,0x44,0x44,0x44,0x44,0x3c,0x04,0x04,0x0e,0x00,
+
+ 8, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x7c,0x22,0x22,0x20,0x20,0x20,0x70,0x00,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x42,0x40,0x3c,0x02,0x42,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x74 't'
+ 0x00,0x00,0x10,0x10,0x10,0x7c,0x10,0x10,0x10,0x10,0x12,0x0c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x41,0x41,0x41,0x41,0x22,0x14,0x08,0x00,0x00,0x00,0x00,
+
+ 8, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x41,0x41,0x41,0x49,0x49,0x55,0x22,0x00,0x00,0x00,0x00,
+
+ 8, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x00,0x00,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3e,0x02,0x04,0x78,0x00,
+
+ 8, // 0x7a 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x7e,0x44,0x08,0x10,0x20,0x42,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x7b '{'
+ 0x00,0x06,0x08,0x08,0x08,0x08,0x08,0x30,0x08,0x08,0x08,0x08,0x08,0x06,0x00,0x00,
+
+ 8, // 0x7c '|'
+ 0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x00,
+
+ 8, // 0x7d '}'
+ 0x00,0x30,0x08,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x30,0x00,0x00,
+
+ 8, // 0x7e '~'
+ 0x00,0x00,0x39,0x4e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x7f ''
+ 0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x22,0x41,0x41,0x7f,0x00,0x00,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u gse8x16_bold[] =
+ {
+ 16, 0, 32, 128-32,
+
+ 0x00,0x00,0x11,0x00,0x22,0x00,0x33,0x00,0x44,0x00,0x55,0x00,0x66,0x00,0x77,0x00,0x88,0x00,
+ 0x99,0x00,0xaa,0x00,0xbb,0x00,0xcc,0x00,0xdd,0x00,0xee,0x00,0xff,0x00,0x10,0x01,0x21,0x01,
+ 0x32,0x01,0x43,0x01,0x54,0x01,0x65,0x01,0x76,0x01,0x87,0x01,0x98,0x01,0xa9,0x01,0xba,0x01,
+ 0xcb,0x01,0xdc,0x01,0xed,0x01,0xfe,0x01,0x0f,0x02,0x20,0x02,0x31,0x02,0x42,0x02,0x53,0x02,
+ 0x64,0x02,0x75,0x02,0x86,0x02,0x97,0x02,0xa8,0x02,0xb9,0x02,0xca,0x02,0xdb,0x02,0xec,0x02,
+ 0xfd,0x02,0x0e,0x03,0x1f,0x03,0x30,0x03,0x41,0x03,0x52,0x03,0x63,0x03,0x74,0x03,0x85,0x03,
+ 0x96,0x03,0xa7,0x03,0xb8,0x03,0xc9,0x03,0xda,0x03,0xeb,0x03,0xfc,0x03,0x0d,0x04,0x1e,0x04,
+ 0x2f,0x04,0x40,0x04,0x51,0x04,0x62,0x04,0x73,0x04,0x84,0x04,0x95,0x04,0xa6,0x04,0xb7,0x04,
+ 0xc8,0x04,0xd9,0x04,0xea,0x04,0xfb,0x04,0x0c,0x05,0x1d,0x05,0x2e,0x05,0x3f,0x05,0x50,0x05,
+ 0x61,0x05,0x72,0x05,0x83,0x05,0x94,0x05,0xa5,0x05,0xb6,0x05,0xc7,0x05,0xd8,0x05,0xe9,0x05,
+ 0xfa,0x05,0x0b,0x06,0x1c,0x06,0x2d,0x06,0x3e,0x06,0x4f,0x06,
+
+ 8, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x21 '!'
+ 0x00,0x00,0x18,0x3c,0x3c,0x3c,0x3c,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
+
+ 8, // 0x22 '"'
+ 0x00,0x66,0x66,0x66,0x66,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x23 '#'
+ 0x00,0x00,0x66,0x66,0x66,0xff,0x66,0x66,0xff,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
+
+ 8, // 0x24 '$'
+ 0x00,0x08,0x08,0x3e,0x6b,0x6b,0x68,0x3e,0x0b,0x6b,0x6b,0x3e,0x08,0x08,0x00,0x00,
+
+ 8, // 0x25 '%'
+ 0x00,0x00,0x66,0xbe,0xcc,0x0c,0x18,0x18,0x30,0x33,0x65,0x66,0x00,0x00,0x00,0x00,
+
+ 8, // 0x26 '&'
+ 0x00,0x00,0x1c,0x36,0x36,0x36,0x1c,0x3b,0x6e,0x66,0x66,0x3b,0x00,0x00,0x00,0x00,
+
+ 8, // 0x27 '''
+ 0x00,0x00,0x18,0x18,0x18,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x28 '('
+ 0x00,0x06,0x0c,0x18,0x18,0x30,0x30,0x30,0x30,0x18,0x18,0x0c,0x06,0x00,0x00,0x00,
+
+ 8, // 0x29 ')'
+ 0x00,0x30,0x18,0x0c,0x0c,0x06,0x06,0x06,0x06,0x0c,0x0c,0x18,0x30,0x00,0x00,0x00,
+
+ 8, // 0x2a '*'
+ 0x00,0x00,0x00,0x00,0x66,0x24,0x18,0xff,0x18,0x24,0x66,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2b '+'
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xff,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2c ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x20,0x00,
+
+ 8, // 0x2d '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2e '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2f '/'
+ 0x00,0x03,0x03,0x06,0x06,0x0c,0x0c,0x18,0x18,0x30,0x30,0x60,0x60,0x00,0x00,0x00,
+
+ 8, // 0x30 '0'
+ 0x00,0x00,0x3e,0x63,0x63,0x67,0x6b,0x73,0x63,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x31 '1'
+ 0x00,0x00,0x0c,0x0c,0x1c,0x3c,0x0c,0x0c,0x0c,0x0c,0x0c,0x3f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x32 '2'
+ 0x00,0x00,0x3e,0x63,0x63,0x03,0x06,0x0c,0x18,0x30,0x61,0x7f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x33 '3'
+ 0x00,0x00,0x7f,0x43,0x06,0x0c,0x1e,0x03,0x03,0x03,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x34 '4'
+ 0x00,0x00,0x06,0x0c,0x18,0x32,0x66,0x66,0x7f,0x06,0x06,0x0f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x35 '5'
+ 0x00,0x00,0x7f,0x61,0x60,0x60,0x7e,0x03,0x03,0x03,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x36 '6'
+ 0x00,0x00,0x1e,0x30,0x60,0x60,0x7e,0x63,0x63,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x37 '7'
+ 0x00,0x00,0x7f,0x63,0x63,0x03,0x06,0x0c,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,
+
+ 8, // 0x38 '8'
+ 0x00,0x00,0x3e,0x63,0x63,0x63,0x3e,0x63,0x63,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x39 '9'
+ 0x00,0x00,0x3e,0x63,0x63,0x63,0x63,0x3f,0x03,0x03,0x06,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3a ':'
+ 0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3b ';'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x60,0x40,0x00,
+
+ 8, // 0x3c '<'
+ 0x00,0x00,0x00,0x06,0x0c,0x18,0x30,0x60,0x30,0x18,0x0c,0x06,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3d '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7f,0x00,0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3e '>'
+ 0x00,0x00,0x00,0x30,0x18,0x0c,0x06,0x03,0x06,0x0c,0x18,0x30,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3f '?'
+ 0x00,0x00,0x3e,0x63,0x63,0x63,0x06,0x0c,0x0c,0x00,0x0c,0x0c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x40 '@'
+ 0x00,0x00,0x7c,0x86,0x03,0x73,0xdb,0xdb,0xdb,0xdb,0xdb,0x6e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x08,0x1c,0x36,0x63,0x63,0x63,0x7f,0x63,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x7e,0x33,0x33,0x33,0x3e,0x33,0x33,0x33,0x33,0x7e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x43 'C'
+ 0x00,0x00,0x1e,0x33,0x61,0x60,0x60,0x60,0x60,0x61,0x33,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x44 'D'
+ 0x00,0x00,0x7c,0x36,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x7c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x7f,0x33,0x31,0x34,0x3c,0x34,0x30,0x31,0x33,0x7f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x7f,0x33,0x31,0x34,0x3c,0x34,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00,
+
+ 8, // 0x47 'G'
+ 0x00,0x00,0x1f,0x33,0x61,0x60,0x60,0x6f,0x63,0x63,0x33,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x48 'H'
+ 0x00,0x00,0x63,0x63,0x63,0x63,0x7f,0x63,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x49 'I'
+ 0x00,0x00,0x1e,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4a 'J'
+ 0x00,0x00,0x0f,0x06,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4b 'K'
+ 0x00,0x00,0x73,0x33,0x36,0x36,0x3c,0x36,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4c 'L'
+ 0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x33,0x7f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4d 'M'
+ 0x00,0x00,0x63,0x63,0x77,0x77,0x7f,0x6b,0x6b,0x63,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4e 'N'
+ 0x00,0x00,0x63,0x63,0x73,0x7b,0x6f,0x67,0x63,0x63,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4f 'O'
+ 0x00,0x00,0x1c,0x36,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x7e,0x33,0x33,0x33,0x33,0x3e,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00,
+
+ 8, // 0x51 'Q'
+ 0x00,0x00,0x1c,0x36,0x63,0x63,0x63,0x63,0x63,0x6f,0x36,0x1e,0x03,0x00,0x00,0x00,
+
+ 8, // 0x52 'R'
+ 0x00,0x00,0x7e,0x33,0x33,0x33,0x33,0x3e,0x36,0x33,0x33,0x73,0x00,0x00,0x00,0x00,
+
+ 8, // 0x53 'S'
+ 0x00,0x00,0x3e,0x63,0x63,0x30,0x18,0x0c,0x06,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x54 'T'
+ 0x00,0x00,0x3f,0x3f,0x2d,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x55 'U'
+ 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x36,0x1c,0x08,0x00,0x00,0x00,0x00,
+
+ 8, // 0x57 'W'
+ 0x00,0x00,0x63,0x63,0x63,0x6b,0x6b,0x7f,0x77,0x77,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x58 'X'
+ 0x00,0x00,0x63,0x63,0x63,0x36,0x1c,0x1c,0x36,0x63,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x59 'Y'
+ 0x00,0x00,0x33,0x33,0x33,0x33,0x1e,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5a 'Z'
+ 0x00,0x00,0x7f,0x63,0x43,0x06,0x0c,0x18,0x30,0x61,0x63,0x7f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5b '['
+ 0x00,0x1f,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f,0x00,0x00,0x00,
+
+ 8, // 0x5c '\'
+ 0x00,0x60,0x60,0x30,0x30,0x18,0x18,0x0c,0x0c,0x06,0x06,0x03,0x03,0x00,0x00,0x00,
+
+ 8, // 0x5d ']'
+ 0x00,0x7c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x7c,0x00,0x00,0x00,
+
+ 8, // 0x5e '^'
+ 0x00,0x00,0x08,0x1c,0x36,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5f '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,
+
+ 8, // 0x60 '`'
+ 0x00,0x00,0x18,0x18,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x3c,0x66,0x06,0x3e,0x66,0x66,0x3b,0x00,0x00,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x70,0x30,0x30,0x3c,0x36,0x33,0x33,0x33,0x33,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x63,0x60,0x60,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x0e,0x06,0x06,0x1e,0x36,0x66,0x66,0x66,0x66,0x3b,0x00,0x00,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x63,0x7f,0x60,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x66 'f'
+ 0x00,0x00,0x0e,0x1b,0x1b,0x18,0x3c,0x18,0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3b,0x66,0x66,0x66,0x66,0x66,0x3e,0x06,0x66,0x3c,0x00,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x70,0x30,0x30,0x36,0x3b,0x33,0x33,0x33,0x33,0x73,0x00,0x00,0x00,0x00,
+
+ 8, // 0x69 'i'
+ 0x00,0x00,0x0c,0x0c,0x00,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6a 'j'
+ 0x00,0x00,0x06,0x06,0x00,0x0e,0x06,0x06,0x06,0x06,0x06,0x66,0x66,0x3c,0x00,0x00,
+
+ 8, // 0x6b 'k'
+ 0x00,0x00,0x70,0x30,0x30,0x33,0x33,0x36,0x3c,0x36,0x33,0x73,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6c 'l'
+ 0x00,0x00,0x1c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x1e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6d 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x76,0x7f,0x6b,0x6b,0x6b,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6e 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x6e,0x33,0x33,0x33,0x33,0x33,0x33,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6f 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x63,0x63,0x63,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x6e,0x33,0x33,0x33,0x33,0x33,0x3e,0x30,0x30,0x78,0x00,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3b,0x66,0x66,0x66,0x66,0x66,0x3e,0x06,0x06,0x0f,0x00,
+
+ 8, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x6e,0x3b,0x33,0x30,0x30,0x30,0x78,0x00,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x3e,0x63,0x60,0x3e,0x03,0x63,0x3e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x74 't'
+ 0x00,0x00,0x08,0x18,0x18,0x7e,0x18,0x18,0x18,0x18,0x1b,0x0e,0x00,0x00,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3b,0x00,0x00,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x63,0x36,0x1c,0x08,0x00,0x00,0x00,0x00,
+
+ 8, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x6b,0x6b,0x7f,0x36,0x36,0x00,0x00,0x00,0x00,
+
+ 8, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x36,0x1c,0x36,0x63,0x63,0x00,0x00,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x63,0x63,0x63,0x63,0x63,0x63,0x3f,0x03,0x06,0x7c,0x00,
+
+ 8, // 0x7a 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x7f,0x63,0x06,0x0c,0x18,0x31,0x7f,0x00,0x00,0x00,0x00,
+
+ 8, // 0x7b '{'
+ 0x00,0x03,0x04,0x0c,0x0c,0x0c,0x08,0x30,0x08,0x0c,0x0c,0x0c,0x04,0x03,0x00,0x00,
+
+ 8, // 0x7c '|'
+ 0x00,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x0c,0x0c,0x0c,0x0c,0x0c,0x00,0x00,0x00,
+
+ 8, // 0x7d '}'
+ 0x00,0x60,0x10,0x18,0x18,0x18,0x08,0x06,0x08,0x18,0x18,0x18,0x10,0x60,0x00,0x00,
+
+ 8, // 0x7e '~'
+ 0x00,0x00,0x3b,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x7f ''
+ 0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x36,0x63,0x63,0x7f,0x00,0x00,0x00,0x00,0x00,
+ 0
+ };
+
+ const int8u mcs11_prop[] =
+ {
+ 11, 2, 32, 128-32,
+ 0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+ 0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+ 0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+ 0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+ 0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+ 0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+ 0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,
+
+ 4, // 0x22 '"'
+ 0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x28,0x28,0x7C,0x28,0x28,0x28,0x7C,0x28,0x28,0x00,
+
+ 6, // 0x24 '$'
+ 0x10,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x10,
+
+ 6, // 0x25 '%'
+ 0x00,0x00,0x68,0xA8,0xD0,0x10,0x20,0x2C,0x54,0x58,0x00,
+
+ 6, // 0x26 '&'
+ 0x00,0x20,0x50,0x50,0x50,0x20,0x54,0x54,0x48,0x34,0x00,
+
+ 3, // 0x27 '''
+ 0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x28 '('
+ 0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x40,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x28,0x7C,0x38,0x7C,0x28,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2B '+'
+ 0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0xC0,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,
+
+ 7, // 0x2F '/'
+ 0x00,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,
+
+ 6, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x54,0x44,0x44,0x38,0x00,
+
+ 4, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x38,0x44,0x44,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x04,0x38,0x04,0x04,0x44,0x38,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x08,0x18,0x18,0x28,0x28,0x48,0x7C,0x08,0x08,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0x7C,0x40,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x40,0x78,0x44,0x44,0x44,0x38,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x04,0x44,0x38,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0xC0,
+
+ 6, // 0x3C '<'
+ 0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,
+
+ 6, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,
+
+ 6, // 0x40 '@'
+ 0x00,0x38,0x44,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,
+
+ 6, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,
+
+ 6, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x40,0x44,0x38,0x00,
+
+ 6, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x44,0x48,0x70,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,
+
+ 6, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5C,0x44,0x44,0x4C,0x34,0x00,
+
+ 6, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,
+
+ 4, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x08,0x48,0x30,0x00,
+
+ 6, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x60,0x50,0x48,0x44,0x44,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,
+
+ 8, // 0x4D 'M'
+ 0x00,0x41,0x63,0x55,0x49,0x49,0x41,0x41,0x41,0x41,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x42,0x42,0x62,0x52,0x4A,0x46,0x42,0x42,0x42,0x00,
+
+ 6, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,
+
+ 6, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x40,0x00,
+
+ 6, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,
+
+ 6, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x44,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x40,0x38,0x04,0x04,0x44,0x38,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+
+ 6, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,
+
+ 8, // 0x57 'W'
+ 0x00,0x41,0x41,0x41,0x41,0x49,0x49,0x49,0x55,0x22,0x00,
+
+ 6, // 0x58 'X'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x10,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,
+
+ 5, // 0x5B '['
+ 0x30,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x30,
+
+ 7, // 0x5C '\'
+ 0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+ 4, // 0x5D ']'
+ 0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,
+
+ 6, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,
+
+ 4, // 0x60 '`'
+ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x7C,0x40,0x44,0x38,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x10,0x20,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x3C,0x04,0x44,0x38,
+
+ 6, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x44,0x00,
+
+ 2, // 0x69 'i'
+ 0x00,0x40,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 3, // 0x6A 'j'
+ 0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,
+
+ 5, // 0x6B 'k'
+ 0x00,0x40,0x40,0x48,0x50,0x60,0x60,0x50,0x48,0x48,0x00,
+
+ 2, // 0x6C 'l'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 8, // 0x6D 'm'
+ 0x00,0x00,0x00,0x76,0x49,0x49,0x49,0x49,0x41,0x41,0x00,
+
+ 6, // 0x6E 'n'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x44,0x00,
+
+ 6, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x28,0x10,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,
+
+ 8, // 0x77 'w'
+ 0x00,0x00,0x00,0x41,0x41,0x41,0x41,0x49,0x49,0x36,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x3C,0x04,0x08,0x70,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,
+
+ 5, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x20,0x18,
+
+ 3, // 0x7C '|'
+ 0x00,0x40,0x40,0x40,0x40,0x00,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x20,0x18,0x20,0x20,0x20,0x20,0xC0,
+
+ 6, // 0x7E '~'
+ 0x00,0x24,0x54,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs11_prop_condensed[] =
+ {
+ 11, 2, 32, 128-32,
+ 0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+ 0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+ 0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+ 0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+ 0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+ 0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+ 0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+
+ 3, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x21 '!'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x40,0x00,
+
+ 4, // 0x22 '"'
+ 0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x23 '#'
+ 0x00,0x50,0x50,0xF8,0x50,0x50,0x50,0xF8,0x50,0x50,0x00,
+
+ 5, // 0x24 '$'
+ 0x00,0x40,0x60,0x90,0x80,0x60,0x10,0x90,0x60,0x20,0x00,
+
+ 5, // 0x25 '%'
+ 0x00,0x00,0x90,0x90,0x20,0x20,0x40,0x40,0x90,0x90,0x00,
+
+ 5, // 0x26 '&'
+ 0x00,0x40,0xA0,0xA0,0xA0,0x40,0xA8,0x90,0x90,0x68,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x00,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 4, // 0x29 ')'
+ 0x80,0x40,0x40,0x20,0x20,0x20,0x20,0x20,0x40,0x40,0x80,
+
+ 5, // 0x2A '*'
+ 0x00,0x00,0x90,0x60,0xF0,0x60,0x90,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2B '+'
+ 0x00,0x00,0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0xC0,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,
+
+ 6, // 0x2F '/'
+ 0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 5, // 0x30 '0'
+ 0x00,0x70,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 3, // 0x31 '1'
+ 0x00,0x40,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x32 '2'
+ 0x00,0x60,0x90,0x90,0x10,0x10,0x20,0x40,0x80,0xF0,0x00,
+
+ 5, // 0x33 '3'
+ 0x00,0x60,0x90,0x10,0x10,0x60,0x10,0x10,0x90,0x60,0x00,
+
+ 5, // 0x34 '4'
+ 0x00,0x10,0x30,0x30,0x50,0x50,0x90,0xF0,0x10,0x10,0x00,
+
+ 5, // 0x35 '5'
+ 0x00,0xF0,0x80,0x80,0xE0,0x90,0x10,0x10,0x90,0x60,0x00,
+
+ 5, // 0x36 '6'
+ 0x00,0x60,0x90,0x80,0x80,0xE0,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x37 '7'
+ 0x00,0xF0,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x00,
+
+ 5, // 0x38 '8'
+ 0x00,0x60,0x90,0x90,0x90,0x60,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x39 '9'
+ 0x00,0x60,0x90,0x90,0x90,0x70,0x10,0x10,0x90,0x60,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0xC0,
+
+ 6, // 0x3C '<'
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x08,0x00,
+
+ 5, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF0,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x00,0x80,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x80,0x00,
+
+ 5, // 0x3F '?'
+ 0x00,0x60,0x90,0x10,0x10,0x20,0x40,0x00,0x40,0x00,0x00,
+
+ 5, // 0x40 '@'
+ 0x00,0x60,0x90,0x90,0xB0,0xB0,0xB0,0x80,0x80,0x70,0x00,
+
+ 5, // 0x41 'A'
+ 0x00,0x60,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x42 'B'
+ 0x00,0xE0,0x90,0x90,0x90,0xE0,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x43 'C'
+ 0x00,0x60,0x90,0x80,0x80,0x80,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x44 'D'
+ 0x00,0xE0,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x45 'E'
+ 0x00,0xF0,0x80,0x80,0x80,0xF0,0x80,0x80,0x80,0xF0,0x00,
+
+ 5, // 0x46 'F'
+ 0x00,0xF0,0x80,0x80,0x80,0xF0,0x80,0x80,0x80,0x80,0x00,
+
+ 5, // 0x47 'G'
+ 0x00,0x70,0x80,0x80,0x80,0xB0,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x48 'H'
+ 0x00,0x90,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x90,0x00,
+
+ 4, // 0x49 'I'
+ 0x00,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xE0,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0xA0,0xA0,0x40,0x00,
+
+ 5, // 0x4B 'K'
+ 0x00,0x90,0x90,0xA0,0xA0,0xC0,0xA0,0xA0,0x90,0x90,0x00,
+
+ 5, // 0x4C 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xF0,0x00,
+
+ 6, // 0x4D 'M'
+ 0x00,0x88,0xD8,0xA8,0xA8,0xA8,0x88,0x88,0x88,0x88,0x00,
+
+ 5, // 0x4E 'N'
+ 0x00,0x90,0x90,0xD0,0xD0,0xB0,0xB0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x4F 'O'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x50 'P'
+ 0x00,0xE0,0x90,0x90,0x90,0x90,0xE0,0x80,0x80,0x80,0x00,
+
+ 5, // 0x51 'Q'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x30,
+
+ 5, // 0x52 'R'
+ 0x00,0xE0,0x90,0x90,0x90,0x90,0xE0,0xA0,0x90,0x90,0x00,
+
+ 5, // 0x53 'S'
+ 0x00,0x60,0x90,0x80,0x80,0x60,0x10,0x10,0x90,0x60,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0xF8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x55 'U'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x88,0x88,0x88,0x88,0x50,0x50,0x50,0x20,0x20,0x00,
+
+ 6, // 0x57 'W'
+ 0x00,0x88,0x88,0x88,0xA8,0xA8,0xA8,0xA8,0xA8,0x50,0x00,
+
+ 5, // 0x58 'X'
+ 0x00,0x90,0x90,0x90,0x60,0x60,0x90,0x90,0x90,0x90,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x5A 'Z'
+ 0x00,0xF0,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0xF0,0x00,
+
+ 4, // 0x5B '['
+ 0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,0x00,
+
+ 6, // 0x5C '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 4, // 0x5D ']'
+ 0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,0x00,
+
+ 5, // 0x5E '^'
+ 0x00,0x20,0x50,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,
+
+ 5, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x61 'a'
+ 0x00,0x00,0x00,0x60,0x90,0x10,0x70,0x90,0x90,0x70,0x00,
+
+ 5, // 0x62 'b'
+ 0x00,0x80,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x00,0x60,0x90,0x80,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x64 'd'
+ 0x00,0x10,0x10,0x10,0x70,0x90,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x65 'e'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0xF0,0x80,0x90,0x60,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x20,0x40,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x67 'g'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x70,0x10,0x90,0x60,
+
+ 5, // 0x68 'h'
+ 0x00,0x80,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0x90,0x00,
+
+ 2, // 0x69 'i'
+ 0x00,0x80,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
+
+ 4, // 0x6A 'j'
+ 0x00,0x20,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,
+
+ 5, // 0x6B 'k'
+ 0x00,0x80,0x80,0x90,0x90,0xA0,0xC0,0xA0,0x90,0x90,0x00,
+
+ 2, // 0x6C 'l'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
+
+ 6, // 0x6D 'm'
+ 0x00,0x00,0x00,0xD0,0xA8,0xA8,0xA8,0x88,0x88,0x88,0x00,
+
+ 5, // 0x6E 'n'
+ 0x00,0x00,0x00,0xA0,0xD0,0x90,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x6F 'o'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x70 'p'
+ 0x00,0x00,0x00,0xE0,0x90,0x90,0x90,0x90,0xE0,0x80,0x80,
+
+ 5, // 0x71 'q'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x90,0x70,0x10,0x10,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0xB8,0x48,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x00,0x60,0x90,0x40,0x20,0x10,0x90,0x60,0x00,
+
+ 4, // 0x74 't'
+ 0x00,0x40,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x20,0x00,
+
+ 5, // 0x75 'u'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,0x90,0x70,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0x50,0x50,0x20,0x20,0x00,
+
+ 6, // 0x77 'w'
+ 0x00,0x00,0x00,0x88,0x88,0x88,0xA8,0xA8,0xA8,0x50,0x00,
+
+ 5, // 0x78 'x'
+ 0x00,0x00,0x00,0x90,0x90,0x60,0x60,0x90,0x90,0x90,0x00,
+
+ 5, // 0x79 'y'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x70,0x10,0x20,0xC0,
+
+ 5, // 0x7A 'z'
+ 0x00,0x00,0x00,0xF0,0x10,0x20,0x40,0x80,0x80,0xF0,0x00,
+
+ 5, // 0x7B '{'
+ 0x30,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30,
+
+ 3, // 0x7C '|'
+ 0x00,0x40,0x40,0x40,0x40,0x00,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xC0,
+
+ 5, // 0x7E '~'
+ 0x00,0x40,0xA8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x7F ''
+ 0x00,0x20,0x70,0xD8,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs12_prop[] =
+ {
+ 12, 3, 32, 128-32,
+ 0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+ 0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+ 0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+ 0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+ 0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+ 0x49,0x02,0x62,0x02,0x6F,0x02,0x7C,0x02,0x89,0x02,0x96,0x02,0xA3,0x02,0xB0,0x02,0xBD,0x02,
+ 0xCA,0x02,0xD7,0x02,0xF0,0x02,0xFD,0x02,0x0A,0x03,0x17,0x03,0x24,0x03,0x31,0x03,0x3E,0x03,
+ 0x4B,0x03,0x58,0x03,0x65,0x03,0x72,0x03,0x7F,0x03,0x8C,0x03,0x99,0x03,0xA6,0x03,0xB3,0x03,
+ 0xC0,0x03,0xCD,0x03,0xDA,0x03,0xE7,0x03,0xF4,0x03,0x01,0x04,0x1A,0x04,0x27,0x04,0x34,0x04,
+ 0x41,0x04,0x4E,0x04,0x5B,0x04,0x68,0x04,0x75,0x04,0x82,0x04,0x8F,0x04,0xA8,0x04,0xB5,0x04,
+ 0xC2,0x04,0xCF,0x04,0xDC,0x04,0xE9,0x04,0xF6,0x04,0x03,0x05,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 4, // 0x22 '"'
+ 0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x28,0x28,0x28,0x7C,0x28,0x28,0x28,0x7C,0x28,0x28,0x28,0x00,
+
+ 6, // 0x24 '$'
+ 0x10,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x10,0x00,
+
+ 7, // 0x25 '%'
+ 0x32,0x54,0x64,0x08,0x08,0x10,0x10,0x26,0x2A,0x4C,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x30,0x48,0x48,0x48,0x30,0x4A,0x4A,0x44,0x3A,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,0x00,
+
+ 5, // 0x29 ')'
+ 0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x40,0x00,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x00,
+
+ 6, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x40,0x80,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 7, // 0x2F '/'
+ 0x00,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x54,0x44,0x44,0x38,0x00,0x00,
+
+ 4, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x04,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x28,0x48,0x48,0x7C,0x08,0x08,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x7C,0x40,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x40,0x80,
+
+ 6, // 0x3C '<'
+ 0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,
+
+ 6, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x38,0x44,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5C,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,
+
+ 6, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x60,0x50,0x48,0x44,0x44,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 9, // 0x4D 'M'
+ 0x00,0x00,0x41,0x00,0x63,0x00,0x55,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x40,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 9, // 0x57 'W'
+ 0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x49,0x00,0x49,0x00,0x55,0x00,0x22,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,
+
+ 4, // 0x5B '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,0x00,
+
+ 7, // 0x5C '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+ 4, // 0x5D ']'
+ 0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xE0,0x00,
+
+ 6, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
+
+ 4, // 0x60 '`'
+ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x30,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x78,
+
+ 7, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x40,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0x60,
+
+ 6, // 0x6B 'k'
+ 0x00,0x40,0x40,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 9, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x6E 'n'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x20,0x18,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 9, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x36,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x3C,0x08,0x70,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 5, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x20,0x18,0x00,
+
+ 3, // 0x7C '|'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x20,0x18,0x20,0x20,0x20,0x20,0xC0,0x00,
+
+ 7, // 0x7E '~'
+ 0x00,0x60,0x92,0x92,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs13_prop[] =
+ {
+ 13, 4, 32, 128-32,
+ 0x00,0x00,0x0E,0x00,0x1C,0x00,0x2A,0x00,0x38,0x00,0x46,0x00,0x54,0x00,0x62,0x00,0x70,0x00,
+ 0x7E,0x00,0x8C,0x00,0x9A,0x00,0xA8,0x00,0xB6,0x00,0xC4,0x00,0xD2,0x00,0xE0,0x00,0xEE,0x00,
+ 0xFC,0x00,0x0A,0x01,0x18,0x01,0x26,0x01,0x34,0x01,0x42,0x01,0x50,0x01,0x5E,0x01,0x6C,0x01,
+ 0x7A,0x01,0x88,0x01,0x96,0x01,0xA4,0x01,0xB2,0x01,0xC0,0x01,0xCE,0x01,0xDC,0x01,0xEA,0x01,
+ 0xF8,0x01,0x06,0x02,0x14,0x02,0x22,0x02,0x30,0x02,0x3E,0x02,0x4C,0x02,0x5A,0x02,0x68,0x02,
+ 0x76,0x02,0x91,0x02,0x9F,0x02,0xAD,0x02,0xBB,0x02,0xC9,0x02,0xD7,0x02,0xE5,0x02,0xF3,0x02,
+ 0x01,0x03,0x0F,0x03,0x2A,0x03,0x38,0x03,0x46,0x03,0x54,0x03,0x62,0x03,0x70,0x03,0x7E,0x03,
+ 0x8C,0x03,0x9A,0x03,0xA8,0x03,0xB6,0x03,0xC4,0x03,0xD2,0x03,0xE0,0x03,0xEE,0x03,0xFC,0x03,
+ 0x0A,0x04,0x18,0x04,0x26,0x04,0x34,0x04,0x42,0x04,0x50,0x04,0x6B,0x04,0x79,0x04,0x87,0x04,
+ 0x95,0x04,0xA3,0x04,0xB1,0x04,0xBF,0x04,0xCD,0x04,0xDB,0x04,0xE9,0x04,0x04,0x05,0x12,0x05,
+ 0x20,0x05,0x2E,0x05,0x3C,0x05,0x4A,0x05,0x58,0x05,0x66,0x05,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 4, // 0x22 '"'
+ 0x00,0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x28,0x28,0x28,0x7C,0x28,0x28,0x28,0x7C,0x28,0x28,0x28,0x00,
+
+ 6, // 0x24 '$'
+ 0x00,0x10,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x10,0x00,
+
+ 7, // 0x25 '%'
+ 0x00,0x32,0x54,0x64,0x08,0x08,0x10,0x10,0x26,0x2A,0x4C,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x30,0x48,0x48,0x48,0x30,0x4A,0x4A,0x44,0x3A,0x00,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x40,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,0x00,0x00,
+
+ 5, // 0x29 ')'
+ 0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x40,0x00,0x00,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x20,0x40,0x80,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,
+
+ 7, // 0x2F '/'
+ 0x00,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x54,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 4, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x04,0x38,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x28,0x48,0x48,0x7C,0x08,0x08,0x00,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x7C,0x40,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x20,0x40,0x80,
+
+ 6, // 0x3C '<'
+ 0x00,0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,
+
+ 6, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x38,0x44,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5C,0x44,0x44,0x4C,0x34,0x00,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,0x00,
+
+ 6, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x60,0x50,0x48,0x44,0x44,0x00,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 9, // 0x4D 'M'
+ 0x00,0x00,0x41,0x00,0x63,0x00,0x55,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x40,0x38,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 9, // 0x57 'W'
+ 0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x49,0x00,0x49,0x00,0x55,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 4, // 0x5B '['
+ 0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,0x00,0x00,
+
+ 7, // 0x5C '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,0x00,
+
+ 4, // 0x5D ']'
+ 0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xE0,0x00,0x00,
+
+ 6, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
+
+ 4, // 0x60 '`'
+ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x30,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x44,0x38,
+
+ 7, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x40,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x90,0x60,0x00,
+
+ 6, // 0x6B 'k'
+ 0x00,0x40,0x40,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 9, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x6E 'n'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,0x04,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x20,0x18,0x00,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 9, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x08,0x70,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,0x00,
+
+ 5, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x20,0x18,0x00,0x00,
+
+ 3, // 0x7C '|'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x20,0x18,0x20,0x20,0x20,0x20,0xC0,0x00,0x00,
+
+ 7, // 0x7E '~'
+ 0x00,0x60,0x92,0x92,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs5x10_mono[] =
+ {
+ 10, 2, 32, 128-32,
+ 0x00,0x00,0x0B,0x00,0x16,0x00,0x21,0x00,0x2C,0x00,0x37,0x00,0x42,0x00,0x4D,0x00,0x58,0x00,
+ 0x63,0x00,0x6E,0x00,0x79,0x00,0x84,0x00,0x8F,0x00,0x9A,0x00,0xA5,0x00,0xB0,0x00,0xBB,0x00,
+ 0xC6,0x00,0xD1,0x00,0xDC,0x00,0xE7,0x00,0xF2,0x00,0xFD,0x00,0x08,0x01,0x13,0x01,0x1E,0x01,
+ 0x29,0x01,0x34,0x01,0x3F,0x01,0x4A,0x01,0x55,0x01,0x60,0x01,0x6B,0x01,0x76,0x01,0x81,0x01,
+ 0x8C,0x01,0x97,0x01,0xA2,0x01,0xAD,0x01,0xB8,0x01,0xC3,0x01,0xCE,0x01,0xD9,0x01,0xE4,0x01,
+ 0xEF,0x01,0xFA,0x01,0x05,0x02,0x10,0x02,0x1B,0x02,0x26,0x02,0x31,0x02,0x3C,0x02,0x47,0x02,
+ 0x52,0x02,0x5D,0x02,0x68,0x02,0x73,0x02,0x7E,0x02,0x89,0x02,0x94,0x02,0x9F,0x02,0xAA,0x02,
+ 0xB5,0x02,0xC0,0x02,0xCB,0x02,0xD6,0x02,0xE1,0x02,0xEC,0x02,0xF7,0x02,0x02,0x03,0x0D,0x03,
+ 0x18,0x03,0x23,0x03,0x2E,0x03,0x39,0x03,0x44,0x03,0x4F,0x03,0x5A,0x03,0x65,0x03,0x70,0x03,
+ 0x7B,0x03,0x86,0x03,0x91,0x03,0x9C,0x03,0xA7,0x03,0xB2,0x03,0xBD,0x03,0xC8,0x03,0xD3,0x03,
+ 0xDE,0x03,0xE9,0x03,0xF4,0x03,0xFF,0x03,0x0A,0x04,0x15,0x04,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x23 '#'
+ 0x00,0x50,0x50,0xF8,0x50,0x50,0x50,0xF8,0x50,0x50,
+
+ 5, // 0x24 '$'
+ 0x00,0x40,0x60,0x90,0x80,0x60,0x10,0x90,0x60,0x20,
+
+ 5, // 0x25 '%'
+ 0x00,0x00,0x90,0x90,0x20,0x20,0x40,0x40,0x90,0x90,
+
+ 5, // 0x26 '&'
+ 0x00,0x40,0xA0,0xA0,0xA0,0x40,0xA8,0x90,0x90,0x68,
+
+ 5, // 0x27 '''
+ 0x00,0x20,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x20,0x20,0x40,
+
+ 5, // 0x2A '*'
+ 0x00,0x00,0x90,0x60,0xF0,0x60,0x90,0x00,0x00,0x00,
+
+ 5, // 0x2B '+'
+ 0x00,0x00,0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0xC0,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,
+
+ 5, // 0x2F '/'
+ 0x00,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x00,
+
+ 5, // 0x30 '0'
+ 0x00,0x70,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x32 '2'
+ 0x00,0x60,0x90,0x90,0x10,0x20,0x40,0x80,0xF0,0x00,
+
+ 5, // 0x33 '3'
+ 0x00,0x60,0x90,0x10,0x60,0x10,0x10,0x90,0x60,0x00,
+
+ 5, // 0x34 '4'
+ 0x00,0x10,0x30,0x50,0x50,0x90,0xF0,0x10,0x10,0x00,
+
+ 5, // 0x35 '5'
+ 0x00,0xF0,0x80,0x80,0xE0,0x10,0x10,0x90,0x60,0x00,
+
+ 5, // 0x36 '6'
+ 0x00,0x60,0x80,0x80,0xE0,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x37 '7'
+ 0x00,0xF0,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x00,
+
+ 5, // 0x38 '8'
+ 0x00,0x60,0x90,0x90,0x60,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x39 '9'
+ 0x00,0x60,0x90,0x90,0x90,0x70,0x10,0x10,0x60,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0xC0,
+
+ 5, // 0x3C '<'
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x08,
+
+ 5, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0xF0,0x00,0xF0,0x00,0x00,0x00,
+
+ 5, // 0x3E '>'
+ 0x00,0x80,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x80,
+
+ 5, // 0x3F '?'
+ 0x00,0x60,0x90,0x10,0x10,0x20,0x40,0x00,0x40,0x00,
+
+ 5, // 0x40 '@'
+ 0x00,0x60,0x90,0x90,0xB0,0xB0,0x80,0x80,0x70,0x00,
+
+ 5, // 0x41 'A'
+ 0x00,0x60,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x42 'B'
+ 0x00,0xE0,0x90,0x90,0xE0,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x43 'C'
+ 0x00,0x60,0x90,0x80,0x80,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x44 'D'
+ 0x00,0xE0,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x45 'E'
+ 0x00,0xF0,0x80,0x80,0xF0,0x80,0x80,0x80,0xF0,0x00,
+
+ 5, // 0x46 'F'
+ 0x00,0xF0,0x80,0x80,0xF0,0x80,0x80,0x80,0x80,0x00,
+
+ 5, // 0x47 'G'
+ 0x00,0x60,0x90,0x80,0x80,0xB0,0x90,0x90,0x60,0x00,
+
+ 5, // 0x48 'H'
+ 0x00,0x90,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,0x00,
+
+ 5, // 0x4B 'K'
+ 0x00,0x90,0xA0,0xA0,0xC0,0xC0,0xA0,0xA0,0x90,0x00,
+
+ 5, // 0x4C 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xF0,0x00,
+
+ 5, // 0x4D 'M'
+ 0x00,0x90,0x90,0xF0,0xF0,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x4E 'N'
+ 0x00,0x90,0x90,0xD0,0xD0,0xB0,0xB0,0x90,0x90,0x00,
+
+ 5, // 0x4F 'O'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x50 'P'
+ 0x00,0xE0,0x90,0x90,0x90,0xE0,0x80,0x80,0x80,0x00,
+
+ 5, // 0x51 'Q'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x30,
+
+ 5, // 0x52 'R'
+ 0x00,0xE0,0x90,0x90,0x90,0xE0,0xA0,0x90,0x90,0x00,
+
+ 5, // 0x53 'S'
+ 0x00,0x60,0x90,0x80,0x60,0x10,0x90,0x90,0x60,0x00,
+
+ 5, // 0x54 'T'
+ 0x00,0xF8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x55 'U'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x56 'V'
+ 0x00,0x90,0x90,0x90,0x50,0x50,0x50,0x20,0x20,0x00,
+
+ 5, // 0x57 'W'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0xF0,0xF0,0x90,0x00,
+
+ 5, // 0x58 'X'
+ 0x00,0x90,0x90,0x90,0x60,0x60,0x90,0x90,0x90,0x00,
+
+ 5, // 0x59 'Y'
+ 0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x5A 'Z'
+ 0x00,0xF0,0x10,0x20,0x20,0x40,0x40,0x80,0xF0,0x00,
+
+ 5, // 0x5B '['
+ 0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,
+
+ 5, // 0x5C '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,
+
+ 5, // 0x5D ']'
+ 0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,
+
+ 5, // 0x5E '^'
+ 0x00,0x20,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,
+
+ 5, // 0x60 '`'
+ 0x00,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x61 'a'
+ 0x00,0x00,0x00,0x60,0x10,0x70,0x90,0x90,0x70,0x00,
+
+ 5, // 0x62 'b'
+ 0x00,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0xE0,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x00,0x60,0x90,0x80,0x80,0x90,0x60,0x00,
+
+ 5, // 0x64 'd'
+ 0x00,0x10,0x10,0x70,0x90,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x65 'e'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0xF0,0x80,0x70,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x30,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x00,
+
+ 5, // 0x67 'g'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x70,0x10,0xE0,
+
+ 5, // 0x68 'h'
+ 0x00,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x69 'i'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0xC0,
+
+ 5, // 0x6B 'k'
+ 0x00,0x80,0x80,0x90,0xA0,0xC0,0xA0,0x90,0x90,0x00,
+
+ 5, // 0x6C 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,
+
+ 5, // 0x6D 'm'
+ 0x00,0x00,0x00,0x90,0xF0,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x6E 'n'
+ 0x00,0x00,0x00,0xE0,0x90,0x90,0x90,0x90,0x90,0x00,
+
+ 5, // 0x6F 'o'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0x90,0x90,0x60,0x00,
+
+ 5, // 0x70 'p'
+ 0x00,0x00,0x00,0xE0,0x90,0x90,0x90,0xE0,0x80,0x80,
+
+ 5, // 0x71 'q'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x70,0x10,0x10,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0x00,0xB0,0x50,0x40,0x40,0x40,0xE0,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x00,0x60,0x90,0x40,0x20,0x90,0x60,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x40,0x40,0xE0,0x40,0x40,0x40,0x50,0x20,0x00,
+
+ 5, // 0x75 'u'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,0x70,0x00,
+
+ 5, // 0x76 'v'
+ 0x00,0x00,0x00,0x90,0x90,0x50,0x50,0x20,0x20,0x00,
+
+ 5, // 0x77 'w'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0xF0,0x90,0x00,
+
+ 5, // 0x78 'x'
+ 0x00,0x00,0x00,0x90,0x90,0x60,0x60,0x90,0x90,0x00,
+
+ 5, // 0x79 'y'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x70,0x10,0xE0,
+
+ 5, // 0x7A 'z'
+ 0x00,0x00,0x00,0xF0,0x10,0x20,0x40,0x80,0xF0,0x00,
+
+ 5, // 0x7B '{'
+ 0x30,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30,
+
+ 5, // 0x7C '|'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xC0,
+
+ 5, // 0x7E '~'
+ 0x00,0x40,0xA8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x7F ''
+ 0x00,0x20,0x70,0xD8,0x88,0x88,0xF8,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs5x11_mono[] =
+ {
+ 11, 3, 32, 128-32,
+ 0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+ 0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+ 0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+ 0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+ 0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+ 0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+ 0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x50,0x50,0xA0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x23 '#'
+ 0x00,0x50,0x50,0xF8,0x50,0x50,0x50,0xF8,0x50,0x50,0x00,
+
+ 5, // 0x24 '$'
+ 0x00,0x40,0x60,0x90,0x80,0x60,0x10,0x90,0x60,0x20,0x00,
+
+ 5, // 0x25 '%'
+ 0x00,0x00,0x90,0x90,0x20,0x20,0x40,0x40,0x90,0x90,0x00,
+
+ 5, // 0x26 '&'
+ 0x00,0x40,0xA0,0xA0,0x40,0xA8,0x90,0x90,0x68,0x00,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x20,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x00,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x00,0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x20,0x20,0x40,
+
+ 5, // 0x2A '*'
+ 0x00,0x00,0x90,0x60,0xF0,0x60,0x90,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2B '+'
+ 0x00,0x00,0x00,0x20,0x20,0xF8,0x20,0x20,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x40,0x80,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 5, // 0x2F '/'
+ 0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 5, // 0x30 '0'
+ 0x00,0x70,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,0x00,
+
+ 5, // 0x31 '1'
+ 0x00,0x20,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x32 '2'
+ 0x00,0x60,0x90,0x90,0x10,0x20,0x40,0x80,0xF0,0x00,0x00,
+
+ 5, // 0x33 '3'
+ 0x00,0x60,0x90,0x10,0x60,0x10,0x10,0x90,0x60,0x00,0x00,
+
+ 5, // 0x34 '4'
+ 0x00,0x10,0x30,0x50,0x50,0x90,0xF8,0x10,0x10,0x00,0x00,
+
+ 5, // 0x35 '5'
+ 0x00,0xF0,0x80,0xE0,0x90,0x10,0x10,0x90,0x60,0x00,0x00,
+
+ 5, // 0x36 '6'
+ 0x00,0x60,0x90,0x80,0xE0,0x90,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x37 '7'
+ 0x00,0xF0,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x00,0x00,
+
+ 5, // 0x38 '8'
+ 0x00,0x60,0x90,0x90,0x60,0x90,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x39 '9'
+ 0x00,0x60,0x90,0x90,0x90,0x70,0x10,0x90,0x60,0x00,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x40,0x80,
+
+ 5, // 0x3C '<'
+ 0x00,0x08,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x08,0x00,
+
+ 5, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0xF0,0x00,0x00,0x00,
+
+ 5, // 0x3E '>'
+ 0x00,0x80,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x80,0x00,
+
+ 5, // 0x3F '?'
+ 0x00,0x60,0x90,0x10,0x10,0x20,0x40,0x00,0x40,0x00,0x00,
+
+ 5, // 0x40 '@'
+ 0x00,0x60,0x90,0x90,0xB0,0xB0,0x80,0x80,0x70,0x00,0x00,
+
+ 5, // 0x41 'A'
+ 0x00,0x60,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x42 'B'
+ 0x00,0xE0,0x90,0x90,0xE0,0x90,0x90,0x90,0xE0,0x00,0x00,
+
+ 5, // 0x43 'C'
+ 0x00,0x60,0x90,0x80,0x80,0x80,0x80,0x90,0x60,0x00,0x00,
+
+ 5, // 0x44 'D'
+ 0x00,0xE0,0x90,0x90,0x90,0x90,0x90,0x90,0xE0,0x00,0x00,
+
+ 5, // 0x45 'E'
+ 0x00,0xF0,0x80,0x80,0xE0,0x80,0x80,0x80,0xF0,0x00,0x00,
+
+ 5, // 0x46 'F'
+ 0x00,0xF0,0x80,0x80,0xE0,0x80,0x80,0x80,0x80,0x00,0x00,
+
+ 5, // 0x47 'G'
+ 0x00,0x60,0x90,0x80,0x80,0xB0,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x48 'H'
+ 0x00,0x90,0x90,0x90,0xF0,0x90,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x70,0x20,0x20,0x20,0x20,0xA0,0xA0,0x40,0x00,0x00,
+
+ 5, // 0x4B 'K'
+ 0x00,0x90,0xA0,0xA0,0xC0,0xA0,0xA0,0x90,0x90,0x00,0x00,
+
+ 5, // 0x4C 'L'
+ 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xF0,0x00,0x00,
+
+ 5, // 0x4D 'M'
+ 0x00,0x90,0xF0,0xF0,0x90,0x90,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x4E 'N'
+ 0x00,0x90,0x90,0xD0,0xD0,0xB0,0xB0,0x90,0x90,0x00,0x00,
+
+ 5, // 0x4F 'O'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x50 'P'
+ 0x00,0xE0,0x90,0x90,0x90,0xE0,0x80,0x80,0x80,0x00,0x00,
+
+ 5, // 0x51 'Q'
+ 0x00,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x30,0x00,
+
+ 5, // 0x52 'R'
+ 0x00,0xE0,0x90,0x90,0x90,0xE0,0xA0,0x90,0x90,0x00,0x00,
+
+ 5, // 0x53 'S'
+ 0x00,0x60,0x90,0x80,0x60,0x10,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x54 'T'
+ 0x00,0xF8,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 5, // 0x55 'U'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x56 'V'
+ 0x00,0x90,0x90,0x90,0x50,0x50,0x50,0x20,0x20,0x00,0x00,
+
+ 5, // 0x57 'W'
+ 0x00,0x90,0x90,0x90,0x90,0x90,0xF0,0xF0,0x90,0x00,0x00,
+
+ 5, // 0x58 'X'
+ 0x00,0x90,0x90,0x90,0x60,0x60,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x59 'Y'
+ 0x00,0x88,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00,0x00,
+
+ 5, // 0x5A 'Z'
+ 0x00,0xF0,0x10,0x20,0x20,0x40,0x40,0x80,0xF0,0x00,0x00,
+
+ 5, // 0x5B '['
+ 0x00,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,
+
+ 5, // 0x5C '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 5, // 0x5D ']'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,
+
+ 5, // 0x5E '^'
+ 0x00,0x20,0x50,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,
+
+ 5, // 0x60 '`'
+ 0x00,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x61 'a'
+ 0x00,0x00,0x00,0x60,0x10,0x70,0x90,0x90,0x70,0x00,0x00,
+
+ 5, // 0x62 'b'
+ 0x00,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0xE0,0x00,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x00,0x60,0x90,0x80,0x80,0x90,0x60,0x00,0x00,
+
+ 5, // 0x64 'd'
+ 0x00,0x10,0x10,0x70,0x90,0x90,0x90,0x90,0x70,0x00,0x00,
+
+ 5, // 0x65 'e'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0xF0,0x80,0x70,0x00,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x30,0x40,0xE0,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 5, // 0x67 'g'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x90,0x70,0x10,0xE0,
+
+ 5, // 0x68 'h'
+ 0x00,0x80,0x80,0xE0,0x90,0x90,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x69 'i'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,
+
+ 5, // 0x6B 'k'
+ 0x00,0x80,0x80,0x90,0xA0,0xC0,0xA0,0x90,0x90,0x00,0x00,
+
+ 5, // 0x6C 'l'
+ 0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x6D 'm'
+ 0x00,0x00,0x00,0x90,0xF0,0x90,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x6E 'n'
+ 0x00,0x00,0x00,0xE0,0x90,0x90,0x90,0x90,0x90,0x00,0x00,
+
+ 5, // 0x6F 'o'
+ 0x00,0x00,0x00,0x60,0x90,0x90,0x90,0x90,0x60,0x00,0x00,
+
+ 5, // 0x70 'p'
+ 0x00,0x00,0x00,0xE0,0x90,0x90,0x90,0x90,0xE0,0x80,0x80,
+
+ 5, // 0x71 'q'
+ 0x00,0x00,0x00,0x70,0x90,0x90,0x90,0x90,0x70,0x10,0x10,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0x00,0xA0,0x50,0x40,0x40,0x40,0xE0,0x00,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x00,0x60,0x90,0x40,0x20,0x90,0x60,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x40,0x40,0xE0,0x40,0x40,0x40,0x40,0x30,0x00,0x00,
+
+ 5, // 0x75 'u'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,0x70,0x00,0x00,
+
+ 5, // 0x76 'v'
+ 0x00,0x00,0x00,0x90,0x90,0x50,0x50,0x20,0x20,0x00,0x00,
+
+ 5, // 0x77 'w'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0xF0,0x90,0x00,0x00,
+
+ 5, // 0x78 'x'
+ 0x00,0x00,0x00,0x90,0x90,0x60,0x60,0x90,0x90,0x00,0x00,
+
+ 5, // 0x79 'y'
+ 0x00,0x00,0x00,0x90,0x90,0x90,0x90,0x90,0x70,0x10,0xE0,
+
+ 5, // 0x7A 'z'
+ 0x00,0x00,0x00,0xF0,0x10,0x20,0x40,0x80,0xF0,0x00,0x00,
+
+ 5, // 0x7B '{'
+ 0x30,0x40,0x40,0x40,0x40,0x80,0x40,0x40,0x40,0x40,0x30,
+
+ 5, // 0x7C '|'
+ 0x00,0x20,0x20,0x20,0x20,0x00,0x20,0x20,0x20,0x20,0x00,
+
+ 5, // 0x7D '}'
+ 0xC0,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0xC0,
+
+ 5, // 0x7E '~'
+ 0x00,0x40,0xA8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x7F ''
+ 0x00,0x20,0x70,0xD8,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs6x10_mono[] =
+ {
+ 10, 3, 32, 128-32,
+ 0x00,0x00,0x0B,0x00,0x16,0x00,0x21,0x00,0x2C,0x00,0x37,0x00,0x42,0x00,0x4D,0x00,0x58,0x00,
+ 0x63,0x00,0x6E,0x00,0x79,0x00,0x84,0x00,0x8F,0x00,0x9A,0x00,0xA5,0x00,0xB0,0x00,0xBB,0x00,
+ 0xC6,0x00,0xD1,0x00,0xDC,0x00,0xE7,0x00,0xF2,0x00,0xFD,0x00,0x08,0x01,0x13,0x01,0x1E,0x01,
+ 0x29,0x01,0x34,0x01,0x3F,0x01,0x4A,0x01,0x55,0x01,0x60,0x01,0x6B,0x01,0x76,0x01,0x81,0x01,
+ 0x8C,0x01,0x97,0x01,0xA2,0x01,0xAD,0x01,0xB8,0x01,0xC3,0x01,0xCE,0x01,0xD9,0x01,0xE4,0x01,
+ 0xEF,0x01,0xFA,0x01,0x05,0x02,0x10,0x02,0x1B,0x02,0x26,0x02,0x31,0x02,0x3C,0x02,0x47,0x02,
+ 0x52,0x02,0x5D,0x02,0x68,0x02,0x73,0x02,0x7E,0x02,0x89,0x02,0x94,0x02,0x9F,0x02,0xAA,0x02,
+ 0xB5,0x02,0xC0,0x02,0xCB,0x02,0xD6,0x02,0xE1,0x02,0xEC,0x02,0xF7,0x02,0x02,0x03,0x0D,0x03,
+ 0x18,0x03,0x23,0x03,0x2E,0x03,0x39,0x03,0x44,0x03,0x4F,0x03,0x5A,0x03,0x65,0x03,0x70,0x03,
+ 0x7B,0x03,0x86,0x03,0x91,0x03,0x9C,0x03,0xA7,0x03,0xB2,0x03,0xBD,0x03,0xC8,0x03,0xD3,0x03,
+ 0xDE,0x03,0xE9,0x03,0xF4,0x03,0xFF,0x03,0x0A,0x04,0x15,0x04,
+
+ 6, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x28,0x28,0x7C,0x28,0x28,0x7C,0x28,0x28,0x00,
+
+ 6, // 0x24 '$'
+ 0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x00,
+
+ 6, // 0x25 '%'
+ 0x00,0x08,0xC8,0xD0,0x10,0x20,0x2C,0x4C,0x40,0x00,
+
+ 6, // 0x26 '&'
+ 0x00,0x20,0x50,0x50,0x24,0x54,0x48,0x34,0x00,0x00,
+
+ 6, // 0x27 '''
+ 0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x08,0x10,0x10,0x20,0x20,0x20,0x10,0x10,0x08,0x00,
+
+ 6, // 0x29 ')'
+ 0x20,0x10,0x10,0x08,0x08,0x08,0x10,0x10,0x20,0x00,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x28,0x7C,0x38,0x7C,0x28,0x00,0x00,0x00,
+
+ 6, // 0x2B '+'
+ 0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 6, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 6, // 0x2F '/'
+ 0x00,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,
+
+ 6, // 0x30 '0'
+ 0x00,0x38,0x44,0x4C,0x54,0x64,0x44,0x38,0x00,0x00,
+
+ 6, // 0x31 '1'
+ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x38,0x44,0x04,0x18,0x20,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x38,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x48,0x7C,0x08,0x08,0x00,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0x7C,0x40,0x40,0x78,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x38,0x40,0x40,0x78,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x10,0x20,0x20,0x20,0x00,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x3C,0x04,0x04,0x38,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 6, // 0x3C '<'
+ 0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,
+
+ 6, // 0x3D '='
+ 0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x18,0x10,0x00,0x10,0x00,0x00,
+
+ 6, // 0x40 '@'
+ 0x00,0x38,0x44,0x5C,0x54,0x5C,0x40,0x38,0x00,0x00,
+
+ 6, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x00,0x00,
+
+ 6, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x78,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 6, // 0x44 'D'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x4C,0x44,0x44,0x3C,0x00,0x00,
+
+ 6, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,
+
+ 6, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x4D 'M'
+ 0x00,0x44,0x6C,0x54,0x54,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x4E 'N'
+ 0x00,0x44,0x44,0x64,0x54,0x4C,0x44,0x44,0x00,0x00,
+
+ 6, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+ 6, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x10,0x00,0x00,
+
+ 6, // 0x57 'W'
+ 0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x28,0x00,0x00,
+
+ 6, // 0x58 'X'
+ 0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x78,0x08,0x10,0x20,0x40,0x40,0x78,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+ 6, // 0x5C '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 6, // 0x5D ']'
+ 0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
+
+ 6, // 0x5E '^'
+ 0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
+
+ 6, // 0x60 '`'
+ 0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x3C,0x00,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x3C,0x00,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x78,0x40,0x3C,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x0C,0x10,0x10,0x38,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x3C,0x04,0x38,
+
+ 6, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x69 'i'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x6A 'j'
+ 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x48,0x30,
+
+ 6, // 0x6B 'k'
+ 0x00,0x40,0x40,0x48,0x50,0x60,0x50,0x48,0x00,0x00,
+
+ 6, // 0x6C 'l'
+ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x6D 'm'
+ 0x00,0x00,0x00,0x68,0x54,0x54,0x44,0x44,0x00,0x00,
+
+ 6, // 0x6E 'n'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x40,0x38,0x04,0x78,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x10,0x10,0x38,0x10,0x10,0x14,0x08,0x00,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x10,0x00,0x00,
+
+ 6, // 0x77 'w'
+ 0x00,0x00,0x00,0x44,0x44,0x54,0x7C,0x28,0x00,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x48,0x48,0x30,0x48,0x48,0x00,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x3C,0x04,0x38,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x78,0x08,0x30,0x40,0x78,0x00,0x00,
+
+ 6, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x18,0x00,
+
+ 6, // 0x7C '|'
+ 0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x10,0x00,
+
+ 6, // 0x7D '}'
+ 0x60,0x10,0x10,0x10,0x0C,0x10,0x10,0x10,0x60,0x00,
+
+ 6, // 0x7E '~'
+ 0x00,0x48,0xA8,0x90,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs6x11_mono[] =
+ {
+ 11, 3, 32, 128-32,
+ 0x00,0x00,0x0C,0x00,0x18,0x00,0x24,0x00,0x30,0x00,0x3C,0x00,0x48,0x00,0x54,0x00,0x60,0x00,
+ 0x6C,0x00,0x78,0x00,0x84,0x00,0x90,0x00,0x9C,0x00,0xA8,0x00,0xB4,0x00,0xC0,0x00,0xCC,0x00,
+ 0xD8,0x00,0xE4,0x00,0xF0,0x00,0xFC,0x00,0x08,0x01,0x14,0x01,0x20,0x01,0x2C,0x01,0x38,0x01,
+ 0x44,0x01,0x50,0x01,0x5C,0x01,0x68,0x01,0x74,0x01,0x80,0x01,0x8C,0x01,0x98,0x01,0xA4,0x01,
+ 0xB0,0x01,0xBC,0x01,0xC8,0x01,0xD4,0x01,0xE0,0x01,0xEC,0x01,0xF8,0x01,0x04,0x02,0x10,0x02,
+ 0x1C,0x02,0x28,0x02,0x34,0x02,0x40,0x02,0x4C,0x02,0x58,0x02,0x64,0x02,0x70,0x02,0x7C,0x02,
+ 0x88,0x02,0x94,0x02,0xA0,0x02,0xAC,0x02,0xB8,0x02,0xC4,0x02,0xD0,0x02,0xDC,0x02,0xE8,0x02,
+ 0xF4,0x02,0x00,0x03,0x0C,0x03,0x18,0x03,0x24,0x03,0x30,0x03,0x3C,0x03,0x48,0x03,0x54,0x03,
+ 0x60,0x03,0x6C,0x03,0x78,0x03,0x84,0x03,0x90,0x03,0x9C,0x03,0xA8,0x03,0xB4,0x03,0xC0,0x03,
+ 0xCC,0x03,0xD8,0x03,0xE4,0x03,0xF0,0x03,0xFC,0x03,0x08,0x04,0x14,0x04,0x20,0x04,0x2C,0x04,
+ 0x38,0x04,0x44,0x04,0x50,0x04,0x5C,0x04,0x68,0x04,0x74,0x04,
+
+ 6, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x23 '#'
+ 0x00,0x28,0x28,0x7C,0x28,0x28,0x7C,0x28,0x28,0x00,0x00,
+
+ 6, // 0x24 '$'
+ 0x00,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x00,
+
+ 6, // 0x25 '%'
+ 0x00,0x68,0xA8,0xD0,0x10,0x20,0x2C,0x54,0x58,0x00,0x00,
+
+ 6, // 0x26 '&'
+ 0x00,0x20,0x50,0x50,0x20,0x54,0x54,0x48,0x34,0x00,0x00,
+
+ 6, // 0x27 '''
+ 0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x00,
+
+ 6, // 0x29 ')'
+ 0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x00,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x28,0x7C,0x38,0x7C,0x28,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2B '+'
+ 0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 6, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 6, // 0x2F '/'
+ 0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,
+
+ 6, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x31 '1'
+ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x38,0x44,0x44,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x28,0x48,0x7C,0x08,0x08,0x00,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0x7C,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x3C,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 6, // 0x3C '<'
+ 0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,
+
+ 6, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,
+
+ 6, // 0x3E '>'
+ 0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 6, // 0x40 '@'
+ 0x00,0x38,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,0x00,
+
+ 6, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 6, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5C,0x44,0x4C,0x34,0x00,0x00,
+
+ 6, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,
+
+ 6, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x44,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x4D 'M'
+ 0x00,0x44,0x6C,0x54,0x54,0x54,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x4E 'N'
+ 0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x00,0x00,
+
+ 6, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+ 6, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 6, // 0x57 'W'
+ 0x00,0x44,0x44,0x54,0x54,0x54,0x54,0x54,0x28,0x00,0x00,
+
+ 6, // 0x58 'X'
+ 0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+ 6, // 0x5C '\'
+ 0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 6, // 0x5D ']'
+ 0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
+
+ 6, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
+
+ 6, // 0x60 '`'
+ 0x00,0x20,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x3C,0x00,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x0C,0x10,0x38,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x78,
+
+ 6, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x69 'i'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x6A 'j'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x50,0x20,
+
+ 6, // 0x6B 'k'
+ 0x00,0x40,0x40,0x4C,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 6, // 0x6C 'l'
+ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 6, // 0x6D 'm'
+ 0x00,0x00,0x00,0x68,0x54,0x54,0x54,0x44,0x44,0x00,0x00,
+
+ 6, // 0x6E 'n'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 6, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x30,0x08,0x44,0x38,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x18,0x00,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 6, // 0x77 'w'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x54,0x7C,0x28,0x00,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x3C,0x08,0x70,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0xC0,0xC0,0x20,0x20,0x20,0x18,0x00,
+
+ 6, // 0x7C '|'
+ 0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x10,0x00,
+
+ 6, // 0x7D '}'
+ 0x60,0x10,0x10,0x10,0x0C,0x0C,0x10,0x10,0x10,0x60,0x00,
+
+ 6, // 0x7E '~'
+ 0x00,0x24,0x54,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs7x12_mono_high[] =
+ {
+ 12, 3, 32, 128-32,
+ 0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+ 0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+ 0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+ 0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+ 0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+ 0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7D,0x02,0x8A,0x02,0x97,0x02,0xA4,0x02,0xB1,0x02,
+ 0xBE,0x02,0xCB,0x02,0xD8,0x02,0xE5,0x02,0xF2,0x02,0xFF,0x02,0x0C,0x03,0x19,0x03,0x26,0x03,
+ 0x33,0x03,0x40,0x03,0x4D,0x03,0x5A,0x03,0x67,0x03,0x74,0x03,0x81,0x03,0x8E,0x03,0x9B,0x03,
+ 0xA8,0x03,0xB5,0x03,0xC2,0x03,0xCF,0x03,0xDC,0x03,0xE9,0x03,0xF6,0x03,0x03,0x04,0x10,0x04,
+ 0x1D,0x04,0x2A,0x04,0x37,0x04,0x44,0x04,0x51,0x04,0x5E,0x04,0x6B,0x04,0x78,0x04,0x85,0x04,
+ 0x92,0x04,0x9F,0x04,0xAC,0x04,0xB9,0x04,0xC6,0x04,0xD3,0x04,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x24,0x24,0x24,0x7E,0x24,0x24,0x24,0x7E,0x24,0x24,0x24,0x00,
+
+ 7, // 0x24 '$'
+ 0x10,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x10,0x00,
+
+ 7, // 0x25 '%'
+ 0x32,0x54,0x64,0x08,0x08,0x10,0x10,0x26,0x2A,0x4C,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x20,0x50,0x50,0x50,0x20,0x54,0x54,0x48,0x34,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x00,
+
+ 7, // 0x29 ')'
+ 0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x00,
+
+ 7, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x00,
+
+ 7, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 7, // 0x2F '/'
+ 0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x54,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x04,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x28,0x48,0x48,0x7C,0x08,0x08,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x7C,0x40,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x3A ':'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00,0x00,
+
+ 7, // 0x3B ';'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x20,0x40,
+
+ 7, // 0x3C '<'
+ 0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,
+
+ 7, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3E '>'
+ 0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x38,0x44,0x44,0x5C,0x54,0x54,0x4C,0x40,0x38,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x5C,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,
+
+ 7, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x60,0x50,0x48,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x4D 'M'
+ 0x00,0x44,0x6C,0x6C,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x44,0x00,0x00,
+
+ 7, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x40,0x38,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x54,0x28,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x5B '['
+ 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+ 7, // 0x5C '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+ 7, // 0x5D ']'
+ 0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
+
+ 7, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x20,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x0C,0x10,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x78,
+
+ 7, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x6A 'j'
+ 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x08,0x08,0x48,0x30,
+
+ 7, // 0x6B 'k'
+ 0x00,0x40,0x40,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 7, // 0x6C 'l'
+ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x6D 'm'
+ 0x00,0x00,0x00,0x68,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6E 'n'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x20,0x24,0x18,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x54,0x54,0x28,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x3C,0x08,0x70,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x20,0x18,0x00,
+
+ 7, // 0x7C '|'
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+
+ 7, // 0x7D '}'
+ 0x60,0x10,0x10,0x10,0x10,0x0C,0x10,0x10,0x10,0x10,0x60,0x00,
+
+ 7, // 0x7E '~'
+ 0x00,0x60,0x92,0x92,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u mcs7x12_mono_low[] =
+ {
+ 12, 4, 32, 128-32,
+ 0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x4E,0x00,0x5B,0x00,0x68,0x00,
+ 0x75,0x00,0x82,0x00,0x8F,0x00,0x9C,0x00,0xA9,0x00,0xB6,0x00,0xC3,0x00,0xD0,0x00,0xDD,0x00,
+ 0xEA,0x00,0xF7,0x00,0x04,0x01,0x11,0x01,0x1E,0x01,0x2B,0x01,0x38,0x01,0x45,0x01,0x52,0x01,
+ 0x5F,0x01,0x6C,0x01,0x79,0x01,0x86,0x01,0x93,0x01,0xA0,0x01,0xAD,0x01,0xBA,0x01,0xC7,0x01,
+ 0xD4,0x01,0xE1,0x01,0xEE,0x01,0xFB,0x01,0x08,0x02,0x15,0x02,0x22,0x02,0x2F,0x02,0x3C,0x02,
+ 0x49,0x02,0x56,0x02,0x63,0x02,0x70,0x02,0x7D,0x02,0x8A,0x02,0x97,0x02,0xA4,0x02,0xB1,0x02,
+ 0xBE,0x02,0xCB,0x02,0xD8,0x02,0xE5,0x02,0xF2,0x02,0xFF,0x02,0x0C,0x03,0x19,0x03,0x26,0x03,
+ 0x33,0x03,0x40,0x03,0x4D,0x03,0x5A,0x03,0x67,0x03,0x74,0x03,0x81,0x03,0x8E,0x03,0x9B,0x03,
+ 0xA8,0x03,0xB5,0x03,0xC2,0x03,0xCF,0x03,0xDC,0x03,0xE9,0x03,0xF6,0x03,0x03,0x04,0x10,0x04,
+ 0x1D,0x04,0x2A,0x04,0x37,0x04,0x44,0x04,0x51,0x04,0x5E,0x04,0x6B,0x04,0x78,0x04,0x85,0x04,
+ 0x92,0x04,0x9F,0x04,0xAC,0x04,0xB9,0x04,0xC6,0x04,0xD3,0x04,
+
+ 7, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x21 '!'
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x28,0x28,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x28,0x28,0x7C,0x28,0x28,0x28,0x7C,0x28,0x28,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x10,0x38,0x54,0x50,0x38,0x14,0x54,0x38,0x10,0x00,0x00,
+
+ 7, // 0x25 '%'
+ 0x34,0x54,0x68,0x08,0x10,0x10,0x20,0x2C,0x54,0x58,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x20,0x50,0x50,0x20,0x54,0x54,0x48,0x34,0x00,0x00,0x00,
+
+ 7, // 0x27 '''
+ 0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x08,0x10,0x10,0x20,0x20,0x20,0x20,0x20,0x10,0x10,0x08,0x00,
+
+ 7, // 0x29 ')'
+ 0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x00,
+
+ 7, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x7C,0x38,0x54,0x10,0x00,0x00,0x00,
+
+ 7, // 0x2B '+'
+ 0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x20,0x40,0x00,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x2F '/'
+ 0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x00,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x38,0x44,0x44,0x54,0x54,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x38,0x44,0x44,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x38,0x44,0x04,0x38,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x08,0x18,0x28,0x28,0x48,0x7C,0x08,0x08,0x00,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x7C,0x40,0x78,0x44,0x04,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x38,0x44,0x40,0x78,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x3A ':'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x3B ';'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x20,0x40,0x00,
+
+ 7, // 0x3C '<'
+ 0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00,
+
+ 7, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3E '>'
+ 0x00,0x40,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x40,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 7, // 0x40 '@'
+ 0x00,0x38,0x44,0x44,0x5C,0x54,0x4C,0x40,0x38,0x00,0x00,0x00,
+
+ 7, // 0x41 'A'
+ 0x00,0x38,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x78,0x44,0x44,0x78,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 7, // 0x43 'C'
+ 0x00,0x38,0x44,0x40,0x40,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x70,0x48,0x44,0x44,0x44,0x44,0x48,0x70,0x00,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x38,0x44,0x40,0x40,0x4C,0x44,0x4C,0x34,0x00,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x44,0x44,0x44,0x7C,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x49 'I'
+ 0x00,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x4A 'J'
+ 0x00,0x1C,0x08,0x08,0x08,0x08,0x48,0x48,0x30,0x00,0x00,0x00,
+
+ 7, // 0x4B 'K'
+ 0x00,0x44,0x48,0x50,0x60,0x60,0x50,0x48,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4C 'L'
+ 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x4D 'M'
+ 0x00,0x44,0x6C,0x54,0x54,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x44,0x64,0x64,0x54,0x54,0x4C,0x4C,0x44,0x00,0x00,0x00,
+
+ 7, // 0x4F 'O'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x51 'Q'
+ 0x00,0x38,0x44,0x44,0x44,0x44,0x54,0x48,0x34,0x00,0x00,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x78,0x44,0x44,0x44,0x78,0x48,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x44,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x57 'W'
+ 0x00,0x44,0x44,0x44,0x44,0x44,0x54,0x54,0x28,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x44,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x5A 'Z'
+ 0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x5B '['
+ 0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+ 7, // 0x5C '\'
+ 0x00,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+ 7, // 0x5D ']'
+ 0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x38,0x00,
+
+ 7, // 0x5E '^'
+ 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x60 '`'
+ 0x00,0x20,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x3C,0x00,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x78,0x00,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x38,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x66 'f'
+ 0x00,0x0C,0x10,0x38,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x44,0x38,
+
+ 7, // 0x68 'h'
+ 0x00,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x69 'i'
+ 0x00,0x10,0x00,0x30,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x6A 'j'
+ 0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x08,0x08,0x48,0x48,0x30,
+
+ 7, // 0x6B 'k'
+ 0x00,0x40,0x40,0x4C,0x50,0x60,0x50,0x48,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6C 'l'
+ 0x00,0x30,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,
+
+ 7, // 0x6D 'm'
+ 0x00,0x00,0x00,0x68,0x54,0x54,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6E 'n'
+ 0x00,0x00,0x00,0x58,0x64,0x44,0x44,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x6F 'o'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,0x04,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x58,0x24,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x38,0x44,0x30,0x08,0x44,0x38,0x00,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x20,0x20,0x70,0x20,0x20,0x20,0x24,0x18,0x00,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x4C,0x34,0x00,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x54,0x54,0x28,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x3C,0x04,0x08,0x70,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x7C,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,0x00,
+
+ 7, // 0x7B '{'
+ 0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x20,0x18,0x00,
+
+ 7, // 0x7C '|'
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+
+ 7, // 0x7D '}'
+ 0x60,0x10,0x10,0x10,0x10,0x0C,0x10,0x10,0x10,0x10,0x60,0x00,
+
+ 7, // 0x7E '~'
+ 0x00,0x24,0x54,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x7F ''
+ 0x00,0x10,0x38,0x6C,0x44,0x44,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana12[] =
+ {
+ 12, 3, 32, 128-32,
+ 0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x5A,0x00,0x67,0x00,0x74,0x00,
+ 0x81,0x00,0x8E,0x00,0x9B,0x00,0xA8,0x00,0xB5,0x00,0xC2,0x00,0xCF,0x00,0xDC,0x00,0xE9,0x00,
+ 0xF6,0x00,0x03,0x01,0x10,0x01,0x1D,0x01,0x2A,0x01,0x37,0x01,0x44,0x01,0x51,0x01,0x5E,0x01,
+ 0x6B,0x01,0x78,0x01,0x85,0x01,0x92,0x01,0x9F,0x01,0xAC,0x01,0xC5,0x01,0xD2,0x01,0xDF,0x01,
+ 0xEC,0x01,0xF9,0x01,0x06,0x02,0x13,0x02,0x20,0x02,0x2D,0x02,0x3A,0x02,0x47,0x02,0x54,0x02,
+ 0x61,0x02,0x7A,0x02,0x87,0x02,0xA0,0x02,0xAD,0x02,0xC6,0x02,0xD3,0x02,0xE0,0x02,0xED,0x02,
+ 0xFA,0x02,0x07,0x03,0x20,0x03,0x2D,0x03,0x3A,0x03,0x47,0x03,0x54,0x03,0x61,0x03,0x6E,0x03,
+ 0x7B,0x03,0x88,0x03,0x95,0x03,0xA2,0x03,0xAF,0x03,0xBC,0x03,0xC9,0x03,0xD6,0x03,0xE3,0x03,
+ 0xF0,0x03,0xFD,0x03,0x0A,0x04,0x17,0x04,0x24,0x04,0x31,0x04,0x4A,0x04,0x57,0x04,0x64,0x04,
+ 0x71,0x04,0x7E,0x04,0x8B,0x04,0x98,0x04,0xA5,0x04,0xB2,0x04,0xBF,0x04,0xCC,0x04,0xD9,0x04,
+ 0xE6,0x04,0xF3,0x04,0x00,0x05,0x0D,0x05,0x1A,0x05,0x27,0x05,
+
+ 3, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x00,0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x28,0x7C,0x28,0x7C,0x28,0x00,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x00,0x10,0x10,0x3C,0x50,0x30,0x18,0x14,0x78,0x10,0x10,
+
+ 11, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x4A,0x00,0x4A,0x00,0x35,0x80,0x0A,0x40,0x0A,0x40,0x11,0x80,0x00,0x00,0x00,0x00,
+
+ 7, // 0x26 '&'
+ 0x00,0x00,0x00,0x30,0x48,0x48,0x32,0x4A,0x44,0x3A,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x00,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x28 '('
+ 0x00,0x00,0x10,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x10,
+
+ 4, // 0x29 ')'
+ 0x00,0x00,0x80,0x40,0x20,0x20,0x20,0x20,0x20,0x20,0x40,0x80,
+
+ 7, // 0x2A '*'
+ 0x00,0x10,0x54,0x38,0x54,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 3, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x80,0x00,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x00,
+
+ 4, // 0x2F '/'
+ 0x00,0x00,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x80,0x80,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x00,0x00,0x10,0x30,0x10,0x10,0x10,0x10,0x38,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x00,0x00,0x38,0x44,0x04,0x08,0x10,0x20,0x7C,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x00,0x00,0x38,0x44,0x04,0x18,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x00,0x00,0x08,0x18,0x28,0x48,0x7C,0x08,0x08,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x00,0x00,0x7C,0x40,0x78,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x00,0x00,0x18,0x20,0x40,0x78,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x3C,0x04,0x08,0x30,0x00,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x40,0x40,0x00,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x00,0x40,0x40,0x80,0x00,
+
+ 7, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x04,0x18,0x60,0x18,0x04,0x00,0x00,0x00,
+
+ 7, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x40,0x30,0x0C,0x30,0x40,0x00,0x00,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x00,0x00,0x70,0x08,0x08,0x10,0x20,0x00,0x20,0x00,0x00,
+
+ 10, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x20,0x80,0x4E,0x80,0x52,0x80,0x52,0x80,0x4D,0x00,0x20,0x00,0x1F,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x00,0x18,0x18,0x24,0x24,0x7E,0x42,0x42,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x00,0x00,0x70,0x48,0x48,0x78,0x44,0x44,0x78,0x00,0x00,
+
+ 8, // 0x43 'C'
+ 0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,
+
+ 8, // 0x44 'D'
+ 0x00,0x00,0x00,0x78,0x44,0x42,0x42,0x42,0x44,0x78,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x00,0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x00,0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 8, // 0x47 'G'
+ 0x00,0x00,0x00,0x1C,0x22,0x40,0x4E,0x42,0x22,0x1C,0x00,0x00,
+
+ 8, // 0x48 'H'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x00,0x00,0x30,0x10,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,
+
+ 7, // 0x4B 'K'
+ 0x00,0x00,0x00,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 9, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x55,0x00,0x55,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4E 'N'
+ 0x00,0x00,0x00,0x42,0x62,0x52,0x4A,0x46,0x42,0x42,0x00,0x00,
+
+ 9, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x00,0x00,
+
+ 9, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x04,0x00,0x03,0x00,
+
+ 7, // 0x52 'R'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x78,0x50,0x48,0x44,0x00,0x00,
+
+ 7, // 0x53 'S'
+ 0x00,0x00,0x00,0x38,0x44,0x40,0x38,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 8, // 0x55 'U'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00,
+
+ 9, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x49,0x00,0x49,0x00,0x55,0x00,0x55,0x00,0x22,0x00,0x22,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x10,0x10,0x00,0x00,
+
+ 7, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 4, // 0x5B '['
+ 0x00,0x00,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x60,
+
+ 4, // 0x5C '\'
+ 0x00,0x00,0x80,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x00,
+
+ 4, // 0x5D ']'
+ 0x00,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x60,
+
+ 7, // 0x5E '^'
+ 0x00,0x00,0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,
+
+ 6, // 0x60 '`'
+ 0x00,0x00,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x08,0x38,0x48,0x38,0x00,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x00,0x40,0x40,0x40,0x70,0x48,0x48,0x48,0x70,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x40,0x40,0x38,0x00,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x00,0x08,0x08,0x08,0x38,0x48,0x48,0x48,0x38,0x00,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x78,0x40,0x38,0x00,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x00,0x30,0x40,0x40,0xE0,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x38,0x08,0x30,
+
+ 6, // 0x68 'h'
+ 0x00,0x00,0x40,0x40,0x40,0x70,0x48,0x48,0x48,0x48,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x00,0x40,0x00,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 3, // 0x6A 'j'
+ 0x00,0x00,0x00,0x40,0x00,0xC0,0x40,0x40,0x40,0x40,0x40,0x80,
+
+ 6, // 0x6B 'k'
+ 0x00,0x00,0x40,0x40,0x40,0x48,0x50,0x60,0x50,0x48,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 9, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x49,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0x48,0x48,0x48,0x48,0x00,0x00,
+
+ 6, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x48,0x30,0x00,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0x48,0x48,0x48,0x70,0x40,0x40,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x48,0x48,0x48,0x38,0x08,0x08,
+
+ 4, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x50,0x60,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x30,0x08,0x70,0x00,0x00,
+
+ 4, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x40,0xF0,0x40,0x40,0x40,0x30,0x00,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x48,0x38,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x30,0x30,0x00,0x00,
+
+ 7, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x54,0x54,0x28,0x28,0x00,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x48,0x48,0x30,0x48,0x48,0x00,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x48,0x48,0x48,0x30,0x10,0x20,0x20,
+
+ 5, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0x10,0x20,0x40,0x70,0x00,0x00,
+
+ 6, // 0x7B '{'
+ 0x00,0x00,0x18,0x20,0x20,0x20,0x20,0xC0,0x20,0x20,0x20,0x18,
+
+ 5, // 0x7C '|'
+ 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+
+ 6, // 0x7D '}'
+ 0x00,0x00,0x60,0x10,0x10,0x10,0x10,0x0C,0x10,0x10,0x10,0x60,
+
+ 7, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x58,0x00,0x00,0x00,0x00,
+
+ 9, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana12_bold[] =
+ {
+ 12, 3, 32, 128-32,
+ 0x00,0x00,0x0D,0x00,0x1A,0x00,0x27,0x00,0x34,0x00,0x41,0x00,0x5A,0x00,0x67,0x00,0x74,0x00,
+ 0x81,0x00,0x8E,0x00,0x9B,0x00,0xA8,0x00,0xB5,0x00,0xC2,0x00,0xCF,0x00,0xDC,0x00,0xE9,0x00,
+ 0xF6,0x00,0x03,0x01,0x10,0x01,0x1D,0x01,0x2A,0x01,0x37,0x01,0x44,0x01,0x51,0x01,0x5E,0x01,
+ 0x6B,0x01,0x78,0x01,0x85,0x01,0x92,0x01,0x9F,0x01,0xAC,0x01,0xC5,0x01,0xD2,0x01,0xDF,0x01,
+ 0xEC,0x01,0xF9,0x01,0x06,0x02,0x13,0x02,0x20,0x02,0x2D,0x02,0x3A,0x02,0x47,0x02,0x54,0x02,
+ 0x61,0x02,0x6E,0x02,0x7B,0x02,0x88,0x02,0x95,0x02,0xA2,0x02,0xAF,0x02,0xBC,0x02,0xC9,0x02,
+ 0xD6,0x02,0xE3,0x02,0xFC,0x02,0x09,0x03,0x16,0x03,0x23,0x03,0x30,0x03,0x3D,0x03,0x4A,0x03,
+ 0x57,0x03,0x64,0x03,0x71,0x03,0x7E,0x03,0x8B,0x03,0x98,0x03,0xA5,0x03,0xB2,0x03,0xBF,0x03,
+ 0xCC,0x03,0xD9,0x03,0xE6,0x03,0xF3,0x03,0x00,0x04,0x0D,0x04,0x26,0x04,0x33,0x04,0x40,0x04,
+ 0x4D,0x04,0x5A,0x04,0x67,0x04,0x74,0x04,0x81,0x04,0x8E,0x04,0x9B,0x04,0xB4,0x04,0xC1,0x04,
+ 0xCE,0x04,0xDB,0x04,0xE8,0x04,0xF5,0x04,0x02,0x05,0x0F,0x05,
+
+ 3, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x00,0x60,0x00,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x00,0xD8,0xD8,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x23 '#'
+ 0x00,0x00,0x00,0x14,0x14,0x7E,0x28,0xFC,0x50,0x50,0x00,0x00,
+
+ 6, // 0x24 '$'
+ 0x00,0x00,0x20,0x20,0x70,0xE8,0xE0,0x38,0xB8,0x70,0x20,0x20,
+
+ 11, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x00,0x94,0x00,0x94,0x00,0x69,0x80,0x0A,0x40,0x0A,0x40,0x11,0x80,0x00,0x00,0x00,0x00,
+
+ 8, // 0x26 '&'
+ 0x00,0x00,0x00,0x70,0xD8,0xD8,0x76,0xDC,0xCC,0x76,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x00,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x00,0x00,0x30,0x60,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x60,0x30,
+
+ 5, // 0x29 ')'
+ 0x00,0x00,0xC0,0x60,0x30,0x30,0x30,0x30,0x30,0x30,0x60,0xC0,
+
+ 6, // 0x2A '*'
+ 0x00,0x00,0x20,0xA8,0x70,0xA8,0x20,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,
+
+ 3, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x80,0x00,
+
+ 4, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,
+
+ 6, // 0x2F '/'
+ 0x00,0x00,0x08,0x08,0x10,0x10,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 6, // 0x30 '0'
+ 0x00,0x00,0x00,0x70,0xD8,0xD8,0xD8,0xD8,0xD8,0x70,0x00,0x00,
+
+ 6, // 0x31 '1'
+ 0x00,0x00,0x00,0x30,0x70,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 6, // 0x32 '2'
+ 0x00,0x00,0x00,0x70,0x98,0x18,0x30,0x60,0xC0,0xF8,0x00,0x00,
+
+ 6, // 0x33 '3'
+ 0x00,0x00,0x00,0x70,0x98,0x18,0x70,0x18,0x98,0x70,0x00,0x00,
+
+ 6, // 0x34 '4'
+ 0x00,0x00,0x00,0x18,0x38,0x58,0x98,0xFC,0x18,0x18,0x00,0x00,
+
+ 6, // 0x35 '5'
+ 0x00,0x00,0x00,0xF8,0xC0,0xF0,0x18,0x18,0x98,0x70,0x00,0x00,
+
+ 6, // 0x36 '6'
+ 0x00,0x00,0x00,0x70,0xC0,0xF0,0xD8,0xD8,0xD8,0x70,0x00,0x00,
+
+ 6, // 0x37 '7'
+ 0x00,0x00,0x00,0xF8,0x18,0x30,0x30,0x60,0x60,0xC0,0x00,0x00,
+
+ 6, // 0x38 '8'
+ 0x00,0x00,0x00,0x70,0xD8,0xD8,0x70,0xD8,0xD8,0x70,0x00,0x00,
+
+ 6, // 0x39 '9'
+ 0x00,0x00,0x00,0x70,0xD8,0xD8,0xD8,0x78,0x18,0x70,0x00,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x60,0x60,0x00,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x60,0x60,0x40,0x00,
+
+ 8, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x04,0x18,0x60,0x60,0x18,0x04,0x00,0x00,
+
+ 8, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x7C,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x40,0x30,0x0C,0x0C,0x30,0x40,0x00,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x00,0x00,0xF0,0x18,0x18,0x30,0x60,0x00,0x60,0x00,0x00,
+
+ 9, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x42,0x00,0x9D,0x00,0xA5,0x00,0xA5,0x00,0x9E,0x00,0x40,0x00,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x00,0x38,0x38,0x6C,0x6C,0x7C,0xC6,0xC6,0x00,0x00,
+
+ 7, // 0x42 'B'
+ 0x00,0x00,0x00,0xF8,0xCC,0xCC,0xF8,0xCC,0xCC,0xF8,0x00,0x00,
+
+ 6, // 0x43 'C'
+ 0x00,0x00,0x00,0x70,0xC8,0xC0,0xC0,0xC0,0xC8,0x70,0x00,0x00,
+
+ 7, // 0x44 'D'
+ 0x00,0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xCC,0xCC,0xF8,0x00,0x00,
+
+ 6, // 0x45 'E'
+ 0x00,0x00,0x00,0xF8,0xC0,0xC0,0xF8,0xC0,0xC0,0xF8,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x00,0x00,0xF8,0xC0,0xC0,0xF8,0xC0,0xC0,0xC0,0x00,0x00,
+
+ 7, // 0x47 'G'
+ 0x00,0x00,0x00,0x78,0xC4,0xC0,0xC0,0xDC,0xCC,0x7C,0x00,0x00,
+
+ 7, // 0x48 'H'
+ 0x00,0x00,0x00,0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0xF0,0x60,0x60,0x60,0x60,0x60,0xF0,0x00,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x00,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0xE0,0x00,0x00,
+
+ 7, // 0x4B 'K'
+ 0x00,0x00,0x00,0xCC,0xD8,0xF0,0xE0,0xF0,0xD8,0xCC,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xF8,0x00,0x00,
+
+ 8, // 0x4D 'M'
+ 0x00,0x00,0x00,0x82,0xC6,0xEE,0xB6,0xB6,0x86,0x86,0x00,0x00,
+
+ 7, // 0x4E 'N'
+ 0x00,0x00,0x00,0x84,0xC4,0xE4,0xB4,0x9C,0x8C,0x84,0x00,0x00,
+
+ 8, // 0x4F 'O'
+ 0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x00,0x00,0xF8,0xCC,0xCC,0xCC,0xF8,0xC0,0xC0,0x00,0x00,
+
+ 8, // 0x51 'Q'
+ 0x00,0x00,0x00,0x7C,0xC6,0xC6,0xC6,0xC6,0xC6,0x7C,0x18,0x0E,
+
+ 7, // 0x52 'R'
+ 0x00,0x00,0x00,0xF8,0xCC,0xCC,0xF8,0xD8,0xCC,0xC6,0x00,0x00,
+
+ 6, // 0x53 'S'
+ 0x00,0x00,0x00,0x70,0xC8,0xC0,0x70,0x18,0x98,0x70,0x00,0x00,
+
+ 6, // 0x54 'T'
+ 0x00,0x00,0x00,0xFC,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 7, // 0x55 'U'
+ 0x00,0x00,0x00,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x00,0x00,
+
+ 7, // 0x56 'V'
+ 0x00,0x00,0x00,0xCC,0xCC,0x78,0x78,0x78,0x30,0x30,0x00,0x00,
+
+ 11, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0xCC,0xC0,0xCC,0xC0,0x6D,0x80,0x6D,0x80,0x73,0x80,0x33,0x00,0x33,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x58 'X'
+ 0x00,0x00,0x00,0xCC,0xCC,0x78,0x30,0x78,0xCC,0xCC,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0x00,0xCC,0xCC,0x78,0x30,0x30,0x30,0x30,0x00,0x00,
+
+ 6, // 0x5A 'Z'
+ 0x00,0x00,0x00,0xF8,0x18,0x30,0x60,0xC0,0xC0,0xF8,0x00,0x00,
+
+ 5, // 0x5B '['
+ 0x00,0x00,0x70,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x70,
+
+ 6, // 0x5C '\'
+ 0x00,0x00,0x80,0x80,0x40,0x40,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 5, // 0x5D ']'
+ 0x00,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x70,
+
+ 8, // 0x5E '^'
+ 0x00,0x00,0x00,0x18,0x3C,0x66,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,
+
+ 6, // 0x60 '`'
+ 0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0x18,0x78,0xD8,0x78,0x00,0x00,
+
+ 6, // 0x62 'b'
+ 0x00,0x00,0xC0,0xC0,0xC0,0xF0,0xD8,0xD8,0xD8,0xF0,0x00,0x00,
+
+ 5, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0xC0,0xC0,0xC0,0x70,0x00,0x00,
+
+ 6, // 0x64 'd'
+ 0x00,0x00,0x18,0x18,0x18,0x78,0xD8,0xD8,0xD8,0x78,0x00,0x00,
+
+ 6, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0xD8,0xF8,0xC0,0x78,0x00,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x00,0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 6, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x78,0xD8,0xD8,0xD8,0x78,0x18,0x70,
+
+ 6, // 0x68 'h'
+ 0x00,0x00,0xC0,0xC0,0xC0,0xF0,0xD8,0xD8,0xD8,0xD8,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x00,0xC0,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,
+
+ 4, // 0x6A 'j'
+ 0x00,0x00,0x00,0x60,0x00,0xE0,0x60,0x60,0x60,0x60,0x60,0xC0,
+
+ 6, // 0x6B 'k'
+ 0x00,0x00,0xC0,0xC0,0xC0,0xD8,0xD8,0xF0,0xD8,0xD8,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0xC0,0x00,0x00,
+
+ 9, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF6,0x00,0xDB,0x00,0xDB,0x00,0xDB,0x00,0xDB,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0xD8,0xD8,0xD8,0xD8,0x00,0x00,
+
+ 6, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0xD8,0xD8,0xD8,0x70,0x00,0x00,
+
+ 6, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0xD8,0xD8,0xD8,0xF0,0xC0,0xC0,
+
+ 6, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x78,0xD8,0xD8,0xD8,0x78,0x18,0x18,
+
+ 4, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0xD0,0xE0,0xC0,0xC0,0xC0,0x00,0x00,
+
+ 5, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x70,0xC0,0xF0,0x30,0xE0,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x00,0x00,0x60,0x60,0xF8,0x60,0x60,0x60,0x38,0x00,0x00,
+
+ 6, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0xD8,0xD8,0xD8,0xD8,0x78,0x00,0x00,
+
+ 6, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0xD8,0xD8,0xD8,0x70,0x70,0x00,0x00,
+
+ 9, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDB,0x00,0xDB,0x00,0xDB,0x00,0x66,0x00,0x66,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0xD8,0xD8,0x70,0xD8,0xD8,0x00,0x00,
+
+ 6, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0xD8,0xD8,0xD8,0x70,0x70,0x30,0x60,
+
+ 5, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0xF0,0x30,0x60,0xC0,0xF0,0x00,0x00,
+
+ 6, // 0x7B '{'
+ 0x00,0x00,0x18,0x30,0x30,0x30,0xE0,0x30,0x30,0x30,0x30,0x18,
+
+ 5, // 0x7C '|'
+ 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+
+ 6, // 0x7D '}'
+ 0x00,0x00,0xC0,0x60,0x60,0x60,0x38,0x60,0x60,0x60,0x60,0xC0,
+
+ 8, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x92,0x8C,0x00,0x00,0x00,
+
+ 9, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana13[] =
+ {
+ 13, 3, 32, 128-32,
+ 0x00,0x00,0x0E,0x00,0x1C,0x00,0x2A,0x00,0x45,0x00,0x53,0x00,0x6E,0x00,0x7C,0x00,0x8A,0x00,
+ 0x98,0x00,0xA6,0x00,0xB4,0x00,0xCF,0x00,0xDD,0x00,0xEB,0x00,0xF9,0x00,0x07,0x01,0x15,0x01,
+ 0x23,0x01,0x31,0x01,0x3F,0x01,0x4D,0x01,0x5B,0x01,0x69,0x01,0x77,0x01,0x85,0x01,0x93,0x01,
+ 0xA1,0x01,0xAF,0x01,0xCA,0x01,0xE5,0x01,0x00,0x02,0x0E,0x02,0x29,0x02,0x37,0x02,0x45,0x02,
+ 0x60,0x02,0x7B,0x02,0x89,0x02,0x97,0x02,0xB2,0x02,0xC0,0x02,0xCE,0x02,0xDC,0x02,0xEA,0x02,
+ 0xF8,0x02,0x13,0x03,0x21,0x03,0x3C,0x03,0x4A,0x03,0x65,0x03,0x73,0x03,0x81,0x03,0x8F,0x03,
+ 0x9D,0x03,0xAB,0x03,0xC6,0x03,0xD4,0x03,0xE2,0x03,0xF0,0x03,0xFE,0x03,0x0C,0x04,0x1A,0x04,
+ 0x35,0x04,0x43,0x04,0x51,0x04,0x5F,0x04,0x6D,0x04,0x7B,0x04,0x89,0x04,0x97,0x04,0xA5,0x04,
+ 0xB3,0x04,0xC1,0x04,0xCF,0x04,0xDD,0x04,0xEB,0x04,0xF9,0x04,0x14,0x05,0x22,0x05,0x30,0x05,
+ 0x3E,0x05,0x4C,0x05,0x5A,0x05,0x68,0x05,0x76,0x05,0x84,0x05,0x92,0x05,0xAD,0x05,0xBB,0x05,
+ 0xC9,0x05,0xD7,0x05,0xE5,0x05,0xF3,0x05,0x01,0x06,0x1C,0x06,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x00,0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x0A,0x00,0x3F,0x00,0x14,0x00,0x14,0x00,0x7E,0x00,0x28,0x00,0x28,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x24 '$'
+ 0x00,0x00,0x10,0x10,0x3C,0x50,0x50,0x38,0x14,0x14,0x78,0x10,0x10,
+
+ 12, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x49,0x00,0x4A,0x00,0x32,0x00,0x04,0xC0,0x05,0x20,0x09,0x20,0x08,0xC0,0x00,0x00,0x00,0x00,
+
+ 8, // 0x26 '&'
+ 0x00,0x00,0x00,0x30,0x48,0x48,0x32,0x4A,0x44,0x46,0x39,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x00,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x00,0x00,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x00,0x00,0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x40,
+
+ 7, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x54,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,
+
+ 5, // 0x2F '/'
+ 0x00,0x00,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 7, // 0x30 '0'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x31 '1'
+ 0x00,0x00,0x00,0x10,0x70,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,
+
+ 7, // 0x32 '2'
+ 0x00,0x00,0x00,0x38,0x44,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 7, // 0x33 '3'
+ 0x00,0x00,0x00,0x38,0x44,0x04,0x18,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x34 '4'
+ 0x00,0x00,0x00,0x08,0x18,0x28,0x48,0x88,0xFC,0x08,0x08,0x00,0x00,
+
+ 7, // 0x35 '5'
+ 0x00,0x00,0x00,0x7C,0x40,0x40,0x78,0x04,0x04,0x44,0x38,0x00,0x00,
+
+ 7, // 0x36 '6'
+ 0x00,0x00,0x00,0x18,0x20,0x40,0x78,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x37 '7'
+ 0x00,0x00,0x00,0x7C,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x00,0x00,
+
+ 7, // 0x38 '8'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x38,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x39 '9'
+ 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x3C,0x04,0x08,0x30,0x00,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x20,0x20,0x00,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 9, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x0C,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3F '?'
+ 0x00,0x00,0x00,0x70,0x08,0x08,0x10,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 10, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x20,0x80,0x4E,0x80,0x52,0x80,0x52,0x80,0x52,0x80,0x4D,0x00,0x20,0x00,0x1E,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x00,0x18,0x18,0x24,0x24,0x24,0x7E,0x42,0x42,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x7C,0x42,0x42,0x42,0x7C,0x00,0x00,
+
+ 9, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x45 'E'
+ 0x00,0x00,0x00,0x7C,0x40,0x40,0x7C,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 6, // 0x46 'F'
+ 0x00,0x00,0x00,0x7C,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 9, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x47,0x00,0x41,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x48 'H'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,
+
+ 8, // 0x4B 'K'
+ 0x00,0x00,0x00,0x42,0x44,0x48,0x50,0x70,0x48,0x44,0x42,0x00,0x00,
+
+ 6, // 0x4C 'L'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7C,0x00,0x00,
+
+ 9, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x55,0x00,0x55,0x00,0x49,0x00,0x49,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4E 'N'
+ 0x00,0x00,0x00,0x62,0x62,0x52,0x52,0x4A,0x4A,0x46,0x46,0x00,0x00,
+
+ 9, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x50 'P'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x40,0x40,0x40,0x00,0x00,
+
+ 9, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x04,0x00,0x03,0x00,
+
+ 8, // 0x52 'R'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x78,0x48,0x44,0x42,0x00,0x00,
+
+ 8, // 0x53 'S'
+ 0x00,0x00,0x00,0x3C,0x42,0x40,0x30,0x0C,0x02,0x42,0x3C,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 8, // 0x55 'U'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x00,0x42,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x00,0x00,
+
+ 11, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x40,0x44,0x40,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x11,0x00,0x11,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x58 'X'
+ 0x00,0x00,0x00,0x42,0x42,0x24,0x18,0x18,0x24,0x42,0x42,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0x00,0x82,0x44,0x28,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 8, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x7E,0x02,0x04,0x08,0x10,0x20,0x40,0x7E,0x00,0x00,
+
+ 5, // 0x5B '['
+ 0x00,0x00,0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,
+
+ 5, // 0x5C '\'
+ 0x00,0x00,0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x00,
+
+ 5, // 0x5D ']'
+ 0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,
+
+ 9, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x14,0x00,0x22,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,
+
+ 7, // 0x60 '`'
+ 0x00,0x00,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x04,0x3C,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x62 'b'
+ 0x00,0x00,0x40,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x78,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 7, // 0x64 'd'
+ 0x00,0x00,0x04,0x04,0x04,0x3C,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x7C,0x40,0x44,0x38,0x00,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x00,0x30,0x40,0x40,0xF0,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x38,
+
+ 7, // 0x68 'h'
+ 0x00,0x00,0x40,0x40,0x40,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 4, // 0x6A 'j'
+ 0x00,0x00,0x20,0x00,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0xC0,
+
+ 7, // 0x6B 'k'
+ 0x00,0x00,0x40,0x40,0x40,0x44,0x48,0x50,0x70,0x48,0x44,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 11, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7B,0x80,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x00,0x00,0x00,0x00,
+
+ 7, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00,
+
+ 7, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x38,0x00,0x00,
+
+ 7, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x78,0x40,0x40,
+
+ 7, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x44,0x44,0x44,0x44,0x3C,0x04,0x04,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x58,0x60,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 6, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x60,0x18,0x08,0x70,0x00,0x00,
+
+ 4, // 0x74 't'
+ 0x00,0x00,0x00,0x40,0x40,0xF0,0x40,0x40,0x40,0x40,0x30,0x00,0x00,
+
+ 7, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x44,0x44,0x44,0x3C,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 9, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x00,0x49,0x00,0x55,0x00,0x55,0x00,0x22,0x00,0x22,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x28,0x10,0x10,0x28,0x44,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x28,0x28,0x28,0x10,0x10,0x10,0x20,
+
+ 6, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x78,0x08,0x10,0x20,0x40,0x78,0x00,0x00,
+
+ 7, // 0x7B '{'
+ 0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x60,0x10,0x10,0x10,0x10,0x0C,
+
+ 5, // 0x7C '|'
+ 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+
+ 7, // 0x7D '}'
+ 0x00,0x00,0x60,0x10,0x10,0x10,0x10,0x0C,0x10,0x10,0x10,0x10,0x60,
+
+ 9, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x49,0x00,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana13_bold[] =
+ {
+ 13, 3, 32, 128-32,
+ 0x00,0x00,0x0E,0x00,0x1C,0x00,0x2A,0x00,0x45,0x00,0x53,0x00,0x6E,0x00,0x89,0x00,0x97,0x00,
+ 0xA5,0x00,0xB3,0x00,0xC1,0x00,0xDC,0x00,0xEA,0x00,0xF8,0x00,0x06,0x01,0x14,0x01,0x22,0x01,
+ 0x30,0x01,0x3E,0x01,0x4C,0x01,0x5A,0x01,0x68,0x01,0x76,0x01,0x84,0x01,0x92,0x01,0xA0,0x01,
+ 0xAE,0x01,0xBC,0x01,0xD7,0x01,0xF2,0x01,0x0D,0x02,0x1B,0x02,0x36,0x02,0x51,0x02,0x5F,0x02,
+ 0x6D,0x02,0x88,0x02,0x96,0x02,0xA4,0x02,0xBF,0x02,0xDA,0x02,0xE8,0x02,0xF6,0x02,0x04,0x03,
+ 0x12,0x03,0x2D,0x03,0x48,0x03,0x63,0x03,0x71,0x03,0x8C,0x03,0x9A,0x03,0xA8,0x03,0xB6,0x03,
+ 0xD1,0x03,0xDF,0x03,0xFA,0x03,0x08,0x04,0x16,0x04,0x24,0x04,0x32,0x04,0x40,0x04,0x4E,0x04,
+ 0x69,0x04,0x77,0x04,0x85,0x04,0x93,0x04,0xA1,0x04,0xAF,0x04,0xBD,0x04,0xCB,0x04,0xD9,0x04,
+ 0xE7,0x04,0xF5,0x04,0x03,0x05,0x11,0x05,0x1F,0x05,0x2D,0x05,0x48,0x05,0x56,0x05,0x64,0x05,
+ 0x72,0x05,0x80,0x05,0x8E,0x05,0x9C,0x05,0xAA,0x05,0xB8,0x05,0xC6,0x05,0xE1,0x05,0xEF,0x05,
+ 0xFD,0x05,0x0B,0x06,0x19,0x06,0x27,0x06,0x35,0x06,0x50,0x06,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x21 '!'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x60,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x00,0x0A,0x00,0x3F,0x00,0x14,0x00,0x14,0x00,0x7E,0x00,0x28,0x00,0x28,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x24 '$'
+ 0x00,0x00,0x08,0x08,0x3C,0x6A,0x68,0x3C,0x16,0x56,0x3C,0x10,0x10,
+
+ 14, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x80,0x6C,0x80,0x6D,0x00,0x6D,0x70,0x3A,0xD8,0x02,0xD8,0x04,0xD8,0x04,0x70,0x00,0x00,0x00,0x00,
+
+ 10, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x6C,0x00,0x6C,0x00,0x39,0x80,0x6D,0x00,0x66,0x00,0x63,0x00,0x3D,0x80,0x00,0x00,0x00,0x00,
+
+ 4, // 0x27 '''
+ 0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x00,0x00,0x18,0x30,0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x30,0x18,
+
+ 6, // 0x29 ')'
+ 0x00,0x00,0x60,0x30,0x30,0x18,0x18,0x18,0x18,0x18,0x30,0x30,0x60,
+
+ 8, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x54,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x40,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 8, // 0x2F '/'
+ 0x00,0x00,0x06,0x06,0x0C,0x0C,0x18,0x18,0x18,0x30,0x30,0x60,0x60,
+
+ 8, // 0x30 '0'
+ 0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x31 '1'
+ 0x00,0x00,0x00,0x18,0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00,0x00,
+
+ 8, // 0x32 '2'
+ 0x00,0x00,0x00,0x3C,0x66,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00,0x00,
+
+ 8, // 0x33 '3'
+ 0x00,0x00,0x00,0x3C,0x66,0x06,0x1C,0x06,0x06,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x34 '4'
+ 0x00,0x00,0x00,0x04,0x0C,0x1C,0x2C,0x4C,0x7E,0x0C,0x0C,0x00,0x00,
+
+ 8, // 0x35 '5'
+ 0x00,0x00,0x00,0x3E,0x30,0x30,0x3C,0x06,0x06,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x36 '6'
+ 0x00,0x00,0x00,0x1C,0x30,0x60,0x7C,0x66,0x66,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x37 '7'
+ 0x00,0x00,0x00,0x7E,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x00,0x00,
+
+ 8, // 0x38 '8'
+ 0x00,0x00,0x00,0x3C,0x66,0x66,0x3C,0x66,0x66,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x39 '9'
+ 0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00,0x00,
+
+ 4, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 4, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x60,0x40,
+
+ 9, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x00,0x00,0x38,0x4C,0x0C,0x18,0x30,0x30,0x00,0x30,0x00,0x00,
+
+ 11, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x20,0x40,0x4F,0x40,0x5B,0x40,0x5B,0x40,0x5B,0x40,0x4F,0x80,0x20,0x00,0x1F,0x00,0x00,0x00,
+
+ 9, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x00,0x7C,0x66,0x66,0x7C,0x66,0x66,0x66,0x7C,0x00,0x00,
+
+ 8, // 0x43 'C'
+ 0x00,0x00,0x00,0x3C,0x62,0x60,0x60,0x60,0x60,0x62,0x3C,0x00,0x00,
+
+ 9, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x66,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x66,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x00,0x7E,0x60,0x60,0x7E,0x60,0x60,0x60,0x7E,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x00,0x7E,0x60,0x60,0x7E,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 9, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x61,0x00,0x60,0x00,0x60,0x00,0x67,0x00,0x63,0x00,0x63,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x00,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0xF0,0x00,0x00,
+
+ 8, // 0x4B 'K'
+ 0x00,0x00,0x00,0x66,0x6C,0x78,0x70,0x70,0x78,0x6C,0x66,0x00,0x00,
+
+ 7, // 0x4C 'L'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7E,0x00,0x00,
+
+ 10, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x71,0x80,0x7B,0x80,0x5D,0x80,0x49,0x80,0x41,0x80,0x41,0x80,0x41,0x80,0x00,0x00,0x00,0x00,
+
+ 9, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x61,0x00,0x71,0x00,0x59,0x00,0x4D,0x00,0x47,0x00,0x43,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x7C,0x60,0x60,0x60,0x00,0x00,
+
+ 9, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x0C,0x00,0x07,0x00,
+
+ 8, // 0x52 'R'
+ 0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x7C,0x6C,0x66,0x63,0x00,0x00,
+
+ 8, // 0x53 'S'
+ 0x00,0x00,0x00,0x3C,0x62,0x60,0x7C,0x3E,0x06,0x46,0x3C,0x00,0x00,
+
+ 8, // 0x54 'T'
+ 0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,
+
+ 9, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x00,0x66,0x66,0x66,0x3C,0x3C,0x3C,0x18,0x18,0x00,0x00,
+
+ 12, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x60,0x66,0x60,0x66,0x60,0x36,0xC0,0x3F,0xC0,0x39,0xC0,0x19,0x80,0x19,0x80,0x00,0x00,0x00,0x00,
+
+ 8, // 0x58 'X'
+ 0x00,0x00,0x00,0x66,0x66,0x3C,0x18,0x18,0x3C,0x66,0x66,0x00,0x00,
+
+ 8, // 0x59 'Y'
+ 0x00,0x00,0x00,0x66,0x66,0x3C,0x3C,0x18,0x18,0x18,0x18,0x00,0x00,
+
+ 8, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x7E,0x06,0x0E,0x1C,0x38,0x70,0x60,0x7E,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x00,0x00,0x78,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x78,
+
+ 8, // 0x5C '\'
+ 0x00,0x00,0x60,0x60,0x30,0x30,0x18,0x18,0x18,0x0C,0x0C,0x06,0x06,
+
+ 6, // 0x5D ']'
+ 0x00,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,
+
+ 10, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
+
+ 8, // 0x60 '`'
+ 0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x60,0x60,0x60,0x60,0x3C,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x06,0x06,0x06,0x3E,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x7E,0x60,0x62,0x3C,0x00,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x00,0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x3E,0x06,0x3C,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x66,0x00,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x00,0x00,0x60,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x00,0x00,0x30,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0xE0,
+
+ 8, // 0x6B 'k'
+ 0x00,0x00,0x60,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0x00,0x00,
+
+ 4, // 0x6C 'l'
+ 0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 12, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7D,0xC0,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x66,0x00,0x00,
+
+ 8, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x3E,0x06,0x06,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x6C,0x7C,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x60,0x78,0x3C,0x0C,0x78,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x00,0x00,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x38,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x3C,0x3C,0x18,0x00,0x00,
+
+ 10, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6D,0x80,0x6D,0x80,0x6D,0x80,0x6D,0x80,0x33,0x00,0x33,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x3C,0x3C,0x66,0x66,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x3C,0x3C,0x18,0x18,0x30,0x30,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x0C,0x18,0x30,0x60,0x7C,0x00,0x00,
+
+ 8, // 0x7B '{'
+ 0x00,0x00,0x0E,0x18,0x18,0x18,0x18,0x70,0x18,0x18,0x18,0x18,0x0E,
+
+ 6, // 0x7C '|'
+ 0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+
+ 8, // 0x7D '}'
+ 0x00,0x00,0x70,0x18,0x18,0x18,0x18,0x0E,0x18,0x18,0x18,0x18,0x70,
+
+ 9, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x49,0x00,0x49,0x00,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x7F,0x80,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana14[] =
+ {
+ 14, 3, 32, 128-32,
+ 0x00,0x00,0x0F,0x00,0x1E,0x00,0x2D,0x00,0x4A,0x00,0x59,0x00,0x76,0x00,0x93,0x00,0xA2,0x00,
+ 0xB1,0x00,0xC0,0x00,0xCF,0x00,0xEC,0x00,0xFB,0x00,0x0A,0x01,0x19,0x01,0x28,0x01,0x37,0x01,
+ 0x46,0x01,0x55,0x01,0x64,0x01,0x73,0x01,0x82,0x01,0x91,0x01,0xA0,0x01,0xAF,0x01,0xBE,0x01,
+ 0xCD,0x01,0xDC,0x01,0xF9,0x01,0x16,0x02,0x33,0x02,0x42,0x02,0x5F,0x02,0x6E,0x02,0x7D,0x02,
+ 0x9A,0x02,0xB7,0x02,0xC6,0x02,0xD5,0x02,0xF2,0x02,0x0F,0x03,0x1E,0x03,0x2D,0x03,0x3C,0x03,
+ 0x4B,0x03,0x68,0x03,0x85,0x03,0xA2,0x03,0xB1,0x03,0xCE,0x03,0xDD,0x03,0xEC,0x03,0xFB,0x03,
+ 0x18,0x04,0x27,0x04,0x44,0x04,0x53,0x04,0x62,0x04,0x71,0x04,0x80,0x04,0x8F,0x04,0x9E,0x04,
+ 0xBB,0x04,0xCA,0x04,0xD9,0x04,0xE8,0x04,0xF7,0x04,0x06,0x05,0x15,0x05,0x24,0x05,0x33,0x05,
+ 0x42,0x05,0x51,0x05,0x60,0x05,0x6F,0x05,0x7E,0x05,0x8D,0x05,0xAA,0x05,0xB9,0x05,0xC8,0x05,
+ 0xD7,0x05,0xE6,0x05,0xF5,0x05,0x04,0x06,0x13,0x06,0x22,0x06,0x31,0x06,0x4E,0x06,0x5D,0x06,
+ 0x6C,0x06,0x7B,0x06,0x8A,0x06,0x99,0x06,0xA8,0x06,0xC5,0x06,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x00,0x48,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x00,0x12,0x00,0x3F,0x80,0x12,0x00,0x12,0x00,0x7F,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x24 '$'
+ 0x00,0x00,0x10,0x10,0x3E,0x50,0x50,0x30,0x1C,0x12,0x12,0x7C,0x10,0x10,
+
+ 13, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x49,0x00,0x49,0x00,0x4A,0x00,0x32,0x60,0x02,0x90,0x04,0x90,0x04,0x90,0x08,0x60,0x00,0x00,0x00,0x00,
+
+ 10, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x39,0x00,0x45,0x00,0x42,0x00,0x43,0x00,0x3C,0x80,0x00,0x00,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x00,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x28 '('
+ 0x00,0x00,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,
+
+ 5, // 0x29 ')'
+ 0x00,0x00,0x40,0x20,0x20,0x10,0x10,0x10,0x10,0x10,0x10,0x20,0x20,0x40,
+
+ 8, // 0x2A '*'
+ 0x00,0x00,0x10,0x54,0x38,0x54,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 5, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,
+
+ 5, // 0x2F '/'
+ 0x00,0x00,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x20,0x40,0x40,0x40,0x80,
+
+ 8, // 0x30 '0'
+ 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x31 '1'
+ 0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,
+
+ 8, // 0x32 '2'
+ 0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x20,0x40,0x7E,0x00,0x00,
+
+ 8, // 0x33 '3'
+ 0x00,0x00,0x00,0x3C,0x42,0x02,0x02,0x1C,0x02,0x02,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x34 '4'
+ 0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x44,0x7F,0x04,0x04,0x04,0x00,0x00,
+
+ 8, // 0x35 '5'
+ 0x00,0x00,0x00,0x7E,0x40,0x40,0x7C,0x02,0x02,0x02,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x36 '6'
+ 0x00,0x00,0x00,0x1C,0x20,0x40,0x7C,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x37 '7'
+ 0x00,0x00,0x00,0x7E,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x00,0x00,
+
+ 8, // 0x38 '8'
+ 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x39 '9'
+ 0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x3E,0x02,0x04,0x38,0x00,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x20,0x20,0x00,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x20,0x20,0x20,0x40,
+
+ 9, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x00,0x00,0x38,0x44,0x04,0x04,0x08,0x10,0x10,0x00,0x10,0x00,0x00,
+
+ 12, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x27,0x40,0x49,0x20,0x49,0x20,0x49,0x20,0x49,0x20,0x27,0xC0,0x30,0x00,0x0F,0x00,0x00,0x00,
+
+ 8, // 0x41 'A'
+ 0x00,0x00,0x00,0x18,0x18,0x24,0x24,0x42,0x42,0x7E,0x81,0x81,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x7C,0x42,0x42,0x42,0x7C,0x00,0x00,
+
+ 9, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x7E,0x40,0x40,0x40,0x7E,0x00,0x00,
+
+ 7, // 0x46 'F'
+ 0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x7C,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 9, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x47,0x00,0x41,0x00,0x41,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7F,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,
+
+ 5, // 0x4A 'J'
+ 0x00,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,
+
+ 8, // 0x4B 'K'
+ 0x00,0x00,0x00,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x00,0x00,
+
+ 7, // 0x4C 'L'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,0x00,
+
+ 10, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x52,0x80,0x52,0x80,0x52,0x80,0x4C,0x80,0x4C,0x80,0x40,0x80,0x40,0x80,0x00,0x00,0x00,0x00,
+
+ 9, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x00,0x61,0x00,0x51,0x00,0x51,0x00,0x49,0x00,0x45,0x00,0x45,0x00,0x43,0x00,0x43,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x00,0x7C,0x42,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x00,0x00,
+
+ 10, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x02,0x00,0x01,0x80,
+
+ 8, // 0x52 'R'
+ 0x00,0x00,0x00,0x7C,0x42,0x42,0x42,0x7C,0x48,0x44,0x42,0x41,0x00,0x00,
+
+ 8, // 0x53 'S'
+ 0x00,0x00,0x00,0x3C,0x42,0x40,0x40,0x3C,0x02,0x02,0x42,0x3C,0x00,0x00,
+
+ 7, // 0x54 'T'
+ 0x00,0x00,0x00,0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 9, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x56 'V'
+ 0x00,0x00,0x00,0x81,0x81,0x42,0x42,0x42,0x24,0x24,0x18,0x18,0x00,0x00,
+
+ 13, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x10,0x42,0x10,0x45,0x10,0x45,0x10,0x25,0x20,0x28,0xA0,0x28,0xA0,0x10,0x40,0x10,0x40,0x00,0x00,0x00,0x00,
+
+ 8, // 0x58 'X'
+ 0x00,0x00,0x00,0x42,0x42,0x24,0x18,0x18,0x18,0x24,0x42,0x42,0x00,0x00,
+
+ 7, // 0x59 'Y'
+ 0x00,0x00,0x00,0x82,0x44,0x44,0x28,0x10,0x10,0x10,0x10,0x10,0x00,0x00,
+
+ 8, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x7E,0x02,0x04,0x08,0x10,0x10,0x20,0x40,0x7E,0x00,0x00,
+
+ 5, // 0x5B '['
+ 0x00,0x00,0x70,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x70,
+
+ 5, // 0x5C '\'
+ 0x00,0x00,0x80,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x08,0x08,
+
+ 5, // 0x5D ']'
+ 0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,
+
+ 10, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x21,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
+
+ 8, // 0x60 '`'
+ 0x00,0x00,0x20,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x02,0x02,0x3E,0x42,0x42,0x3E,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x00,0x00,
+
+ 6, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x40,0x40,0x40,0x44,0x38,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x02,0x02,0x02,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x7E,0x40,0x42,0x3C,0x00,0x00,
+
+ 4, // 0x66 'f'
+ 0x00,0x00,0x30,0x40,0x40,0xF0,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x02,0x3C,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x42,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 4, // 0x6A 'j'
+ 0x00,0x00,0x20,0x00,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC0,
+
+ 7, // 0x6B 'k'
+ 0x00,0x00,0x40,0x40,0x40,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 11, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7B,0x80,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x5C,0x62,0x42,0x42,0x42,0x42,0x42,0x00,0x00,
+
+ 8, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x40,0x40,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x58,0x60,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x40,0x40,0x38,0x04,0x04,0x78,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x00,0x00,0x40,0x40,0xF8,0x40,0x40,0x40,0x40,0x40,0x38,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x46,0x3A,0x00,0x00,
+
+ 7, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x00,0x00,
+
+ 11, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x40,0x44,0x40,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x11,0x00,0x11,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,
+
+ 7, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x28,0x28,0x10,0x10,0x10,0x20,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,
+
+ 8, // 0x7B '{'
+ 0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x60,0x10,0x10,0x10,0x10,0x10,0x0C,
+
+ 5, // 0x7C '|'
+ 0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,
+
+ 8, // 0x7D '}'
+ 0x00,0x00,0x30,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x30,
+
+ 10, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x4C,0x80,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0xE0,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana14_bold[] =
+ {
+ 14, 3, 32, 128-32,
+ 0x00,0x00,0x0F,0x00,0x1E,0x00,0x2D,0x00,0x4A,0x00,0x67,0x00,0x84,0x00,0xA1,0x00,0xB0,0x00,
+ 0xBF,0x00,0xCE,0x00,0xEB,0x00,0x08,0x01,0x17,0x01,0x26,0x01,0x35,0x01,0x44,0x01,0x61,0x01,
+ 0x7E,0x01,0x9B,0x01,0xB8,0x01,0xD5,0x01,0xF2,0x01,0x0F,0x02,0x2C,0x02,0x49,0x02,0x66,0x02,
+ 0x75,0x02,0x84,0x02,0xA1,0x02,0xBE,0x02,0xDB,0x02,0xEA,0x02,0x07,0x03,0x24,0x03,0x41,0x03,
+ 0x5E,0x03,0x7B,0x03,0x8A,0x03,0x99,0x03,0xB6,0x03,0xD3,0x03,0xE2,0x03,0xF1,0x03,0x0E,0x04,
+ 0x1D,0x04,0x3A,0x04,0x57,0x04,0x74,0x04,0x91,0x04,0xAE,0x04,0xCB,0x04,0xE8,0x04,0xF7,0x04,
+ 0x14,0x05,0x31,0x05,0x4E,0x05,0x6B,0x05,0x88,0x05,0x97,0x05,0xA6,0x05,0xB5,0x05,0xC4,0x05,
+ 0xE1,0x05,0xFE,0x05,0x1B,0x06,0x2A,0x06,0x39,0x06,0x48,0x06,0x57,0x06,0x66,0x06,0x75,0x06,
+ 0x84,0x06,0x93,0x06,0xA2,0x06,0xB1,0x06,0xC0,0x06,0xCF,0x06,0xEC,0x06,0xFB,0x06,0x0A,0x07,
+ 0x19,0x07,0x28,0x07,0x37,0x07,0x46,0x07,0x55,0x07,0x64,0x07,0x73,0x07,0x90,0x07,0x9F,0x07,
+ 0xAE,0x07,0xBD,0x07,0xDA,0x07,0xE9,0x07,0x06,0x08,0x23,0x08,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x60,0x60,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x00,0x3F,0x80,0x3F,0x80,0x12,0x00,0x7F,0x00,0x7F,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x69,0x00,0x68,0x00,0x7E,0x00,0x3F,0x00,0x0B,0x00,0x4B,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,
+
+ 15, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x6C,0x40,0x6C,0x80,0x6C,0xB8,0x6D,0x6C,0x3A,0x6C,0x02,0x6C,0x04,0x6C,0x04,0x38,0x00,0x00,0x00,0x00,
+
+ 10, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x39,0x80,0x6D,0x00,0x66,0x00,0x63,0x00,0x3D,0x80,0x00,0x00,0x00,0x00,
+
+ 4, // 0x27 '''
+ 0x00,0x00,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x00,0x18,0x30,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0x30,0x18,
+
+ 7, // 0x29 ')'
+ 0x00,0x00,0x30,0x18,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x18,0x30,
+
+ 9, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x2A,0x00,0x1C,0x00,0x1C,0x00,0x2A,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x40,
+
+ 6, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 8, // 0x2F '/'
+ 0x00,0x00,0x06,0x06,0x0C,0x0C,0x0C,0x18,0x18,0x30,0x30,0x30,0x60,0x60,
+
+ 9, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x3C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x03,0x00,0x03,0x00,0x1E,0x00,0x03,0x00,0x03,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x16,0x00,0x16,0x00,0x26,0x00,0x46,0x00,0x7F,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x30,0x00,0x30,0x00,0x3E,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x30,0x00,0x60,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3F,0x00,0x03,0x00,0x06,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x00,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x00,0x60,0x60,0x60,0x40,
+
+ 10, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x00,0x00,0x38,0x4C,0x0C,0x18,0x30,0x30,0x00,0x30,0x30,0x00,0x00,
+
+ 12, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x2F,0x40,0x5B,0x20,0x5B,0x20,0x5B,0x20,0x5B,0x20,0x2F,0xC0,0x30,0x00,0x0F,0x00,0x00,0x00,
+
+ 9, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x7F,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x66,0x00,0x66,0x00,0x66,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x31,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x31,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x00,0x7E,0x60,0x60,0x60,0x7E,0x60,0x60,0x60,0x7E,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x00,0x7E,0x60,0x60,0x60,0x7E,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 10, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x30,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x67,0x80,0x61,0x80,0x31,0x80,0x1F,0x80,0x00,0x00,0x00,0x00,
+
+ 10, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x7F,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,
+
+ 7, // 0x4A 'J'
+ 0x00,0x00,0x00,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xF8,0x00,0x00,
+
+ 9, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x66,0x00,0x6C,0x00,0x78,0x00,0x70,0x00,0x78,0x00,0x6C,0x00,0x66,0x00,0x63,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4C 'L'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7F,0x00,0x00,
+
+ 11, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x71,0xC0,0x71,0xC0,0x5A,0xC0,0x5A,0xC0,0x4C,0xC0,0x4C,0xC0,0x40,0xC0,0x40,0xC0,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x70,0x80,0x58,0x80,0x58,0x80,0x4C,0x80,0x46,0x80,0x46,0x80,0x43,0x80,0x41,0x80,0x00,0x00,0x00,0x00,
+
+ 11, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x06,0x00,0x03,0xC0,
+
+ 9, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x6C,0x00,0x66,0x00,0x63,0x00,0x61,0x80,0x00,0x00,0x00,0x00,
+
+ 9, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x61,0x00,0x60,0x00,0x70,0x00,0x3E,0x00,0x07,0x00,0x03,0x00,0x43,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x54 'T'
+ 0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,
+
+ 10, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x63,0x18,0x63,0x18,0x33,0x30,0x37,0xB0,0x34,0xB0,0x1C,0xE0,0x18,0x60,0x18,0x60,0x00,0x00,0x00,0x00,
+
+ 9, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x36,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x7E,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x7E,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x00,0x00,0x78,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x78,
+
+ 8, // 0x5C '\'
+ 0x00,0x00,0x60,0x60,0x30,0x30,0x30,0x18,0x18,0x0C,0x0C,0x0C,0x06,0x06,
+
+ 6, // 0x5D ']'
+ 0x00,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,
+
+ 10, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,
+
+ 9, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x3E,0x66,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x66,0x7C,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x62,0x60,0x60,0x60,0x62,0x3C,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x06,0x06,0x06,0x3E,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x66,0x7E,0x60,0x62,0x3C,0x00,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x00,0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x66,0x3E,0x06,0x3C,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x60,0x60,0x60,0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x00,0x60,0x60,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x00,0x30,0x30,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xE0,
+
+ 8, // 0x6B 'k'
+ 0x00,0x00,0x60,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0x63,0x00,0x00,
+
+ 4, // 0x6C 'l'
+ 0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 12, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xC0,0x77,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x66,0x60,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x66,0x66,0x00,0x00,
+
+ 8, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x66,0x66,0x66,0x66,0x66,0x3C,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x66,0x7C,0x60,0x60,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x3E,0x66,0x66,0x66,0x66,0x66,0x3E,0x06,0x06,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x6C,0x7C,0x60,0x60,0x60,0x60,0x60,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x3C,0x60,0x60,0x38,0x0C,0x0C,0x78,0x00,0x00,
+
+ 5, // 0x74 't'
+ 0x00,0x00,0x00,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x60,0x38,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x66,0x66,0x3E,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x3C,0x3C,0x3C,0x18,0x00,0x00,
+
+ 12, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x60,0x66,0x60,0x66,0x60,0x69,0x60,0x39,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,
+
+ 8, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x3C,0x18,0x3C,0x66,0x66,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,0x3C,0x3C,0x3C,0x18,0x18,0x30,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x7C,0x0C,0x18,0x38,0x30,0x60,0x7C,0x00,0x00,
+
+ 9, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x0E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x70,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x0E,0x00,
+
+ 6, // 0x7C '|'
+ 0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,
+
+ 9, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x38,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x07,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x38,0x00,
+
+ 10, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x48,0x80,0x44,0x80,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,0xE0,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana16[] =
+ {
+ 16, 4, 32, 128-32,
+ 0x00,0x00,0x11,0x00,0x22,0x00,0x33,0x00,0x54,0x00,0x65,0x00,0x86,0x00,0xA7,0x00,0xB8,0x00,
+ 0xC9,0x00,0xDA,0x00,0xFB,0x00,0x1C,0x01,0x2D,0x01,0x3E,0x01,0x4F,0x01,0x60,0x01,0x71,0x01,
+ 0x82,0x01,0x93,0x01,0xA4,0x01,0xB5,0x01,0xC6,0x01,0xD7,0x01,0xE8,0x01,0xF9,0x01,0x0A,0x02,
+ 0x1B,0x02,0x2C,0x02,0x4D,0x02,0x6E,0x02,0x8F,0x02,0xA0,0x02,0xC1,0x02,0xE2,0x02,0xF3,0x02,
+ 0x14,0x03,0x35,0x03,0x46,0x03,0x57,0x03,0x78,0x03,0x99,0x03,0xAA,0x03,0xBB,0x03,0xCC,0x03,
+ 0xDD,0x03,0xFE,0x03,0x1F,0x04,0x40,0x04,0x51,0x04,0x72,0x04,0x93,0x04,0xB4,0x04,0xD5,0x04,
+ 0xF6,0x04,0x17,0x05,0x38,0x05,0x59,0x05,0x7A,0x05,0x9B,0x05,0xAC,0x05,0xBD,0x05,0xCE,0x05,
+ 0xEF,0x05,0x00,0x06,0x11,0x06,0x22,0x06,0x33,0x06,0x44,0x06,0x55,0x06,0x66,0x06,0x77,0x06,
+ 0x88,0x06,0x99,0x06,0xAA,0x06,0xBB,0x06,0xCC,0x06,0xDD,0x06,0xFE,0x06,0x0F,0x07,0x20,0x07,
+ 0x31,0x07,0x42,0x07,0x53,0x07,0x64,0x07,0x75,0x07,0x86,0x07,0x97,0x07,0xB8,0x07,0xC9,0x07,
+ 0xDA,0x07,0xEB,0x07,0xFC,0x07,0x0D,0x08,0x1E,0x08,0x3F,0x08,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 5, // 0x22 '"'
+ 0x00,0x00,0x00,0x50,0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x00,0x3F,0x80,0x12,0x00,0x12,0x00,0x7F,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x24 '$'
+ 0x00,0x00,0x00,0x10,0x10,0x3E,0x50,0x50,0x30,0x1C,0x12,0x12,0x7C,0x10,0x10,0x00,
+
+ 13, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x44,0x80,0x45,0x00,0x45,0x00,0x3A,0xE0,0x05,0x10,0x05,0x10,0x09,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x44,0x00,0x44,0x00,0x44,0x00,0x38,0x80,0x45,0x00,0x42,0x00,0x46,0x00,0x39,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x27 '''
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x00,0x00,0x00,0x08,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,0x08,
+
+ 6, // 0x29 ')'
+ 0x00,0x00,0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,
+
+ 9, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x2A,0x00,0x1C,0x00,0x2A,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x00,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x2F '/'
+ 0x00,0x00,0x00,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 8, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x08,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,0x00,
+
+ 8, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x02,0x04,0x18,0x20,0x40,0x7E,0x00,0x00,0x00,
+
+ 8, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x02,0x02,0x1C,0x02,0x02,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x04,0x0C,0x14,0x24,0x44,0x7F,0x04,0x04,0x04,0x00,0x00,0x00,
+
+ 8, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x3E,0x20,0x20,0x20,0x3C,0x02,0x02,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x1C,0x20,0x40,0x7C,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x7E,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x10,0x00,0x00,0x00,
+
+ 8, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3C,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x3E,0x02,0x04,0x38,0x00,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x00,
+
+ 9, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x00,0x06,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x38,0x44,0x04,0x08,0x10,0x10,0x00,0x10,0x10,0x00,0x00,0x00,
+
+ 13, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x10,0x40,0x27,0xA0,0x48,0x90,0x48,0x90,0x48,0x90,0x48,0x90,0x48,0x90,0x27,0xE0,0x10,0x00,0x0F,0x80,0x00,0x00,
+
+ 9, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x14,0x00,0x14,0x00,0x22,0x00,0x22,0x00,0x3E,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x7C,0x42,0x42,0x42,0x7C,0x00,0x00,0x00,
+
+ 9, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x7E,0x40,0x40,0x40,0x7E,0x00,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x7E,0x40,0x40,0x40,0x7C,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 9, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x47,0x00,0x41,0x00,0x21,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7F,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,
+
+ 8, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x00,0x00,0x00,
+
+ 7, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,0x00,0x00,
+
+ 11, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x51,0x40,0x51,0x40,0x4A,0x40,0x4A,0x40,0x44,0x40,0x44,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x00,0x61,0x00,0x51,0x00,0x51,0x00,0x49,0x00,0x45,0x00,0x45,0x00,0x43,0x00,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x7C,0x42,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 10, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x02,0x00,0x01,0x80,0x00,0x00,
+
+ 9, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x44,0x00,0x78,0x00,0x44,0x00,0x42,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x41,0x00,0x40,0x00,0x40,0x00,0x3E,0x00,0x01,0x00,0x01,0x00,0x41,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x10,0x42,0x10,0x45,0x10,0x45,0x10,0x25,0x20,0x28,0xA0,0x28,0xA0,0x10,0x40,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x14,0x00,0x08,0x00,0x14,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x00,0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x38,0x00,
+
+ 6, // 0x5C '\'
+ 0x00,0x00,0x00,0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x00,
+
+ 6, // 0x5D ']'
+ 0x00,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x70,0x00,
+
+ 11, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,
+
+ 8, // 0x60 '`'
+ 0x00,0x00,0x00,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x02,0x02,0x3E,0x42,0x42,0x3E,0x00,0x00,0x00,
+
+ 8, // 0x62 'b'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x40,0x40,0x40,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x64 'd'
+ 0x00,0x00,0x00,0x02,0x02,0x02,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x00,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x7E,0x40,0x42,0x3C,0x00,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x00,0x00,0x1C,0x20,0x20,0x78,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 8, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x3C,
+
+ 8, // 0x68 'h'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x5C,0x62,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 4, // 0x6A 'j'
+ 0x00,0x00,0x00,0x20,0x00,0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0xC0,
+
+ 7, // 0x6B 'k'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x00,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 11, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x59,0x80,0x66,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x44,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x62,0x42,0x42,0x42,0x42,0x42,0x00,0x00,0x00,
+
+ 8, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00,0x00,
+
+ 8, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x62,0x42,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,
+
+ 8, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x42,0x42,0x42,0x42,0x46,0x3A,0x02,0x02,0x02,
+
+ 5, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x60,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 7, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x40,0x40,0x38,0x04,0x04,0x78,0x00,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x78,0x20,0x20,0x20,0x20,0x20,0x18,0x00,0x00,0x00,
+
+ 8, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x46,0x3A,0x00,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x00,0x00,0x00,
+
+ 11, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x40,0x44,0x40,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x11,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x44,0x28,0x10,0x28,0x44,0x44,0x00,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x10,0x10,0x20,
+
+ 7, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x04,0x08,0x10,0x20,0x40,0x7C,0x00,0x00,0x00,
+
+ 8, // 0x7B '{'
+ 0x00,0x00,0x00,0x0C,0x10,0x10,0x10,0x10,0x60,0x10,0x10,0x10,0x10,0x10,0x0C,0x00,
+
+ 7, // 0x7C '|'
+ 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+
+ 8, // 0x7D '}'
+ 0x00,0x00,0x00,0x30,0x08,0x08,0x08,0x08,0x06,0x08,0x08,0x08,0x08,0x08,0x30,0x00,
+
+ 11, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x80,0x4C,0x80,0x43,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana16_bold[] =
+ {
+ 16, 4, 32, 128-32,
+ 0x00,0x00,0x11,0x00,0x22,0x00,0x33,0x00,0x54,0x00,0x75,0x00,0xA6,0x00,0xC7,0x00,0xD8,0x00,
+ 0xE9,0x00,0xFA,0x00,0x1B,0x01,0x3C,0x01,0x4D,0x01,0x5E,0x01,0x6F,0x01,0x90,0x01,0xB1,0x01,
+ 0xD2,0x01,0xF3,0x01,0x14,0x02,0x35,0x02,0x56,0x02,0x77,0x02,0x98,0x02,0xB9,0x02,0xDA,0x02,
+ 0xEB,0x02,0xFC,0x02,0x1D,0x03,0x3E,0x03,0x5F,0x03,0x70,0x03,0x91,0x03,0xB2,0x03,0xD3,0x03,
+ 0xF4,0x03,0x15,0x04,0x36,0x04,0x57,0x04,0x78,0x04,0x99,0x04,0xAA,0x04,0xBB,0x04,0xDC,0x04,
+ 0xED,0x04,0x0E,0x05,0x2F,0x05,0x50,0x05,0x71,0x05,0x92,0x05,0xB3,0x05,0xD4,0x05,0xE5,0x05,
+ 0x06,0x06,0x27,0x06,0x48,0x06,0x69,0x06,0x8A,0x06,0xAB,0x06,0xBC,0x06,0xDD,0x06,0xEE,0x06,
+ 0x0F,0x07,0x30,0x07,0x51,0x07,0x72,0x07,0x93,0x07,0xA4,0x07,0xC5,0x07,0xE6,0x07,0xF7,0x07,
+ 0x18,0x08,0x39,0x08,0x4A,0x08,0x5B,0x08,0x6C,0x08,0x7D,0x08,0x9E,0x08,0xBF,0x08,0xE0,0x08,
+ 0x01,0x09,0x22,0x09,0x33,0x09,0x44,0x09,0x55,0x09,0x76,0x09,0x97,0x09,0xB8,0x09,0xD9,0x09,
+ 0xFA,0x09,0x0B,0x0A,0x2C,0x0A,0x3D,0x0A,0x5E,0x0A,0x7F,0x0A,
+
+ 4, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x00,0x6C,0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x09,0x00,0x3F,0x80,0x3F,0x80,0x12,0x00,0x7F,0x00,0x7F,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x69,0x00,0x68,0x00,0x78,0x00,0x3E,0x00,0x0F,0x00,0x0B,0x00,0x4B,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
+
+ 17, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x20,0x00,0x66,0x20,0x00,0x66,0x40,0x00,0x66,0x5E,0x00,0x66,0xB3,0x00,0x3D,0x33,0x00,0x01,0x33,0x00,0x02,0x33,0x00,0x02,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x66,0x00,0x66,0x00,0x66,0xC0,0x3C,0xC0,0x66,0x80,0x63,0x00,0x63,0x80,0x3C,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x27 '''
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x00,0x00,0x0C,0x18,0x30,0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x30,0x18,0x0C,
+
+ 7, // 0x29 ')'
+ 0x00,0x00,0x00,0x60,0x30,0x18,0x18,0x0C,0x0C,0x0C,0x0C,0x0C,0x18,0x18,0x30,0x60,
+
+ 9, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x49,0x00,0x2A,0x00,0x1C,0x00,0x2A,0x00,0x49,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x3F,0x80,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x60,0x60,0xC0,0xC0,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 9, // 0x2F '/'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x00,0x00,
+
+ 9, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x3C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x03,0x00,0x0E,0x00,0x03,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0E,0x00,0x16,0x00,0x26,0x00,0x46,0x00,0x7F,0x80,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x30,0x00,0x30,0x00,0x3E,0x00,0x03,0x00,0x03,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x30,0x00,0x60,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3F,0x00,0x03,0x00,0x06,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 5, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x38,0x30,0x30,0x60,0x60,
+
+ 11, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x18,0x00,0x06,0x00,0x01,0x80,0x00,0x40,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x3C,0x66,0x06,0x0C,0x18,0x18,0x00,0x18,0x18,0x00,0x00,0x00,
+
+ 13, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x30,0x60,0x27,0xA0,0x4D,0x90,0x4D,0x90,0x4D,0x90,0x4D,0x90,0x27,0xE0,0x30,0x00,0x0F,0x80,0x00,0x00,0x00,0x00,
+
+ 10, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x1E,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x7F,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7F,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x61,0x80,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0x00,0x60,0x00,0x63,0x80,0x61,0x80,0x31,0x80,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x7F,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x78,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x78,0x00,0x00,0x00,
+
+ 7, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0xF8,0x00,0x00,0x00,
+
+ 9, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x66,0x00,0x6C,0x00,0x78,0x00,0x78,0x00,0x6C,0x00,0x66,0x00,0x63,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7F,0x00,0x00,0x00,
+
+ 12, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xE0,0x70,0xE0,0x59,0x60,0x59,0x60,0x4E,0x60,0x4E,0x60,0x44,0x60,0x44,0x60,0x40,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x80,0x70,0x80,0x58,0x80,0x58,0x80,0x4C,0x80,0x46,0x80,0x46,0x80,0x43,0x80,0x43,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x03,0x00,0x01,0xC0,0x00,0x00,
+
+ 9, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x6C,0x00,0x66,0x00,0x63,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x70,0x00,0x3E,0x00,0x07,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,
+
+ 10, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x00,0x33,0x00,0x1E,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x63,0x18,0x63,0x18,0x33,0x30,0x37,0xB0,0x34,0xB0,0x1C,0xE0,0x18,0x60,0x18,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x33,0x00,0x33,0x00,0x1E,0x00,0x0C,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x00,0x00,0x00,0x78,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x78,0x00,
+
+ 9, // 0x5C '\'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x00,0x00,
+
+ 6, // 0x5D ']'
+ 0x00,0x00,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x78,0x00,
+
+ 10, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x00,0x00,
+
+ 9, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x03,0x00,0x3F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x62 'b'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6E,0x00,0x73,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x63,0x60,0x60,0x60,0x63,0x3E,0x00,0x00,0x00,
+
+ 9, // 0x64 'd'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x3F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x67,0x00,0x3B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x7F,0x00,0x60,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x66 'f'
+ 0x00,0x00,0x00,0x38,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 9, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x67,0x00,0x3B,0x00,0x03,0x00,0x03,0x00,0x3E,0x00,
+
+ 9, // 0x68 'h'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6E,0x00,0x73,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x00,0x00,0x30,0x30,0x00,0x70,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0xE0,
+
+ 8, // 0x6B 'k'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x66,0x6C,0x78,0x78,0x6C,0x66,0x63,0x00,0x00,0x00,
+
+ 4, // 0x6C 'l'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 14, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x70,0x73,0x98,0x63,0x18,0x63,0x18,0x63,0x18,0x63,0x18,0x63,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x00,0x73,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x00,0x73,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,
+
+ 9, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x67,0x00,0x3B,0x00,0x03,0x00,0x03,0x00,0x03,0x00,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0x7C,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x60,0x70,0x3C,0x0E,0x06,0x7C,0x00,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x60,0x60,0xF8,0x60,0x60,0x60,0x60,0x60,0x38,0x00,0x00,0x00,
+
+ 9, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x67,0x00,0x3B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x60,0x66,0x60,0x66,0x60,0x69,0x60,0x39,0xC0,0x30,0xC0,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x1C,0x00,0x36,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,
+
+ 8, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x06,0x0C,0x18,0x30,0x60,0x7E,0x00,0x00,0x00,
+
+ 9, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x70,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x07,0x00,0x00,0x00,
+
+ 8, // 0x7C '|'
+ 0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,
+
+ 9, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x07,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x70,0x00,0x00,0x00,
+
+ 11, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x44,0x40,0x44,0x40,0x43,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana17[] =
+ {
+ 17, 4, 32, 128-32,
+ 0x00,0x00,0x12,0x00,0x24,0x00,0x36,0x00,0x59,0x00,0x7C,0x00,0x9F,0x00,0xC2,0x00,0xD4,0x00,
+ 0xE6,0x00,0xF8,0x00,0x1B,0x01,0x3E,0x01,0x50,0x01,0x62,0x01,0x74,0x01,0x86,0x01,0xA9,0x01,
+ 0xCC,0x01,0xEF,0x01,0x12,0x02,0x35,0x02,0x58,0x02,0x7B,0x02,0x9E,0x02,0xC1,0x02,0xE4,0x02,
+ 0xF6,0x02,0x08,0x03,0x2B,0x03,0x4E,0x03,0x71,0x03,0x83,0x03,0xA6,0x03,0xC9,0x03,0xEC,0x03,
+ 0x0F,0x04,0x32,0x04,0x55,0x04,0x67,0x04,0x8A,0x04,0xAD,0x04,0xBF,0x04,0xD1,0x04,0xF4,0x04,
+ 0x06,0x05,0x29,0x05,0x4C,0x05,0x6F,0x05,0x81,0x05,0xA4,0x05,0xC7,0x05,0xEA,0x05,0x0D,0x06,
+ 0x30,0x06,0x53,0x06,0x76,0x06,0x99,0x06,0xBC,0x06,0xDF,0x06,0xF1,0x06,0x03,0x07,0x15,0x07,
+ 0x38,0x07,0x5B,0x07,0x7E,0x07,0x90,0x07,0xB3,0x07,0xC5,0x07,0xE8,0x07,0xFA,0x07,0x0C,0x08,
+ 0x2F,0x08,0x52,0x08,0x64,0x08,0x76,0x08,0x88,0x08,0x9A,0x08,0xBD,0x08,0xE0,0x08,0x03,0x09,
+ 0x26,0x09,0x49,0x09,0x5B,0x09,0x6D,0x09,0x7F,0x09,0xA2,0x09,0xB4,0x09,0xD7,0x09,0xFA,0x09,
+ 0x0C,0x0A,0x1E,0x0A,0x41,0x0A,0x53,0x0A,0x76,0x0A,0x99,0x0A,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x22 '"'
+ 0x00,0x00,0x00,0x48,0x48,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x04,0x80,0x09,0x00,0x3F,0xC0,0x09,0x00,0x12,0x00,0x7F,0x80,0x12,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x49,0x00,0x48,0x00,0x48,0x00,0x3E,0x00,0x09,0x00,0x09,0x00,0x49,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
+
+ 15, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x20,0x44,0x40,0x44,0x80,0x44,0x80,0x45,0x38,0x39,0x44,0x02,0x44,0x04,0x44,0x04,0x44,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x42,0x00,0x42,0x00,0x44,0x00,0x38,0x80,0x44,0x80,0x42,0x80,0x41,0x00,0x22,0x80,0x1C,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x27 '''
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x28 '('
+ 0x00,0x00,0x00,0x08,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,0x08,
+
+ 6, // 0x29 ')'
+ 0x00,0x00,0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,
+
+ 9, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x49,0x00,0x2A,0x00,0x1C,0x00,0x2A,0x00,0x49,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x7F,0xC0,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x00,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x2F '/'
+ 0x00,0x00,0x00,0x04,0x08,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
+
+ 9, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x38,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x0C,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x41,0x00,0x01,0x00,0x02,0x00,0x1C,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x42,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x06,0x00,0x0A,0x00,0x12,0x00,0x22,0x00,0x42,0x00,0x7F,0x80,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7C,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x42,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x30,0x00,0x20,0x00,0x40,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x3E,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x21,0x00,0x1F,0x00,0x01,0x00,0x02,0x00,0x06,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x00,
+
+ 11, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x06,0x00,0x18,0x00,0x60,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x02,0x02,0x0C,0x10,0x10,0x00,0x10,0x10,0x00,0x00,0x00,
+
+ 14, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x18,0x20,0x20,0x10,0x27,0xC8,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x27,0xF0,0x20,0x00,0x18,0x00,0x07,0xC0,0x00,0x00,
+
+ 10, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x7F,0x80,0x40,0x80,0x80,0x40,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7E,0x00,0x41,0x00,0x40,0x80,0x40,0x80,0x41,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0x80,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x30,0x80,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x41,0x80,0x40,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x80,0x41,0x80,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x7E,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 11, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x20,0x40,0x40,0x00,0x40,0x00,0x43,0xC0,0x40,0x40,0x20,0x40,0x30,0x40,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x7F,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 6, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x38,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,
+
+ 10, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x42,0x00,0x44,0x00,0x48,0x00,0x50,0x00,0x68,0x00,0x44,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,
+
+ 11, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x51,0x40,0x51,0x40,0x4A,0x40,0x4A,0x40,0x44,0x40,0x44,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x80,0x60,0x80,0x50,0x80,0x48,0x80,0x48,0x80,0x44,0x80,0x44,0x80,0x42,0x80,0x41,0x80,0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x31,0x80,0x20,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x80,0x31,0x80,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x7C,0x42,0x41,0x41,0x42,0x7C,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 11, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x31,0x80,0x20,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x80,0x31,0x80,0x0E,0x00,0x02,0x00,0x02,0x00,0x01,0xC0,
+
+ 10, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x42,0x00,0x42,0x00,0x44,0x00,0x78,0x00,0x44,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x20,0x80,0x40,0x00,0x40,0x00,0x38,0x00,0x07,0x00,0x00,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x80,0x40,0x40,0x80,0x40,0x80,0x21,0x00,0x21,0x00,0x21,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 15, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x41,0x04,0x22,0x88,0x22,0x88,0x22,0x88,0x14,0x50,0x14,0x50,0x14,0x50,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x21,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x21,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x41,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x80,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x5B '['
+ 0x00,0x00,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,
+
+ 6, // 0x5C '\'
+ 0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x10,0x08,0x08,0x08,0x04,0x00,
+
+ 6, // 0x5D ']'
+ 0x00,0x00,0x00,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x78,
+
+ 11, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x00,0x00,
+
+ 9, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x02,0x3E,0x42,0x42,0x46,0x3A,0x00,0x00,0x00,
+
+ 9, // 0x62 'b'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x5C,0x00,0x62,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x40,0x40,0x40,0x40,0x22,0x1C,0x00,0x00,0x00,
+
+ 9, // 0x64 'd'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x24,0x42,0x7E,0x40,0x40,0x22,0x1C,0x00,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x00,0x00,0x1C,0x20,0x20,0x7C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 9, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x01,0x00,0x22,0x00,0x1C,0x00,
+
+ 9, // 0x68 'h'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x5E,0x00,0x61,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xE0,
+
+ 8, // 0x6B 'k'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x42,0x44,0x48,0x50,0x70,0x48,0x44,0x42,0x00,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 13, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0xE0,0x63,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x42,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x00,0x61,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x00,0x62,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x40,0x00,0x40,0x00,0x40,0x00,
+
+ 9, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x40,0x30,0x0C,0x02,0x42,0x3C,0x00,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x7C,0x20,0x20,0x20,0x20,0x20,0x20,0x1C,0x00,0x00,0x00,
+
+ 9, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x43,0x00,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x18,0x00,0x00,0x00,
+
+ 11, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x40,0x44,0x40,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x2A,0x80,0x11,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x22,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x14,0x00,0x22,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x24,0x24,0x24,0x18,0x18,0x18,0x10,0x10,0x20,
+
+ 8, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x02,0x04,0x08,0x10,0x20,0x40,0x7E,0x00,0x00,0x00,
+
+ 9, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x60,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x07,0x00,
+
+ 6, // 0x7C '|'
+ 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+
+ 9, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x04,0x00,0x03,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x70,0x00,
+
+ 11, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x40,0x44,0x40,0x44,0x40,0x43,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana17_bold[] =
+ {
+ 17, 4, 32, 128-32,
+ 0x00,0x00,0x12,0x00,0x24,0x00,0x36,0x00,0x59,0x00,0x7C,0x00,0xB0,0x00,0xD3,0x00,0xE5,0x00,
+ 0xF7,0x00,0x09,0x01,0x2C,0x01,0x4F,0x01,0x61,0x01,0x73,0x01,0x85,0x01,0xA8,0x01,0xCB,0x01,
+ 0xEE,0x01,0x11,0x02,0x34,0x02,0x57,0x02,0x7A,0x02,0x9D,0x02,0xC0,0x02,0xE3,0x02,0x06,0x03,
+ 0x18,0x03,0x2A,0x03,0x4D,0x03,0x70,0x03,0x93,0x03,0xB6,0x03,0xD9,0x03,0xFC,0x03,0x1F,0x04,
+ 0x42,0x04,0x65,0x04,0x88,0x04,0xAB,0x04,0xCE,0x04,0xF1,0x04,0x03,0x05,0x15,0x05,0x38,0x05,
+ 0x5B,0x05,0x7E,0x05,0xA1,0x05,0xC4,0x05,0xE7,0x05,0x0A,0x06,0x2D,0x06,0x50,0x06,0x73,0x06,
+ 0x96,0x06,0xB9,0x06,0xDC,0x06,0xFF,0x06,0x22,0x07,0x45,0x07,0x57,0x07,0x7A,0x07,0x8C,0x07,
+ 0xAF,0x07,0xD2,0x07,0xF5,0x07,0x18,0x08,0x3B,0x08,0x4D,0x08,0x70,0x08,0x93,0x08,0xA5,0x08,
+ 0xC8,0x08,0xEB,0x08,0xFD,0x08,0x0F,0x09,0x32,0x09,0x44,0x09,0x67,0x09,0x8A,0x09,0xAD,0x09,
+ 0xD0,0x09,0xF3,0x09,0x05,0x0A,0x17,0x0A,0x29,0x0A,0x4C,0x0A,0x6F,0x0A,0x92,0x0A,0xB5,0x0A,
+ 0xD8,0x0A,0xEA,0x0A,0x0D,0x0B,0x1F,0x0B,0x42,0x0B,0x65,0x0B,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 8, // 0x22 '"'
+ 0x00,0x00,0x00,0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x40,0x04,0x40,0x3F,0xE0,0x3F,0xE0,0x08,0x80,0x11,0x00,0x7F,0xC0,0x7F,0xC0,0x22,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x1F,0x00,0x34,0x80,0x64,0x00,0x74,0x00,0x3C,0x00,0x0F,0x00,0x0B,0x80,0x09,0x80,0x4B,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,0x00,0x00,
+
+ 18, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x08,0x00,0x66,0x10,0x00,0x66,0x20,0x00,0x66,0x2F,0x00,0x66,0x59,0x80,0x66,0x99,0x80,0x3D,0x19,0x80,0x01,0x19,0x80,0x02,0x19,0x80,0x04,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x36,0x00,0x1C,0x60,0x36,0x60,0x63,0x60,0x61,0xC0,0x31,0xC0,0x1F,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x28 '('
+ 0x00,0x00,0x00,0x0C,0x18,0x30,0x30,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0x30,0x18,0x0C,
+
+ 8, // 0x29 ')'
+ 0x00,0x00,0x00,0x30,0x18,0x0C,0x0C,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x0C,0x18,0x30,
+
+ 10, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x49,0x00,0x2A,0x00,0x1C,0x00,0x2A,0x00,0x49,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x7F,0xC0,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x60,0x60,0xC0,0xC0,0x00,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 10, // 0x2F '/'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x00,0x00,
+
+ 10, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x3C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x61,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x61,0x80,0x01,0x80,0x0F,0x00,0x03,0x00,0x01,0x80,0x61,0x80,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x07,0x00,0x0B,0x00,0x13,0x00,0x23,0x00,0x43,0x00,0x7F,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x30,0x00,0x30,0x00,0x3E,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x61,0x80,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x38,0x00,0x30,0x00,0x6E,0x00,0x73,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x3F,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x03,0x00,0x07,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x38,0x30,0x30,0x60,0x60,0x00,
+
+ 12, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x18,0x00,0x06,0x00,0x01,0x80,0x00,0x40,0x01,0x80,0x06,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x18,0x20,0x20,0x10,0x27,0xC8,0x4C,0xC8,0x4C,0xC8,0x4C,0xC8,0x4C,0xC8,0x27,0xF0,0x20,0x00,0x18,0x00,0x07,0xC0,0x00,0x00,
+
+ 11, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1B,0x00,0x1B,0x00,0x31,0x80,0x3F,0x80,0x31,0x80,0x60,0xC0,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,0x61,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x30,0xC0,0x30,0xC0,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x30,0xC0,0x30,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x61,0x80,0x61,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x61,0x80,0x61,0x80,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x30,0xC0,0x30,0xC0,0x60,0x00,0x60,0x00,0x63,0xC0,0x60,0xC0,0x30,0xC0,0x30,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x7F,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,
+
+ 8, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x3E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0xF8,0x00,0x00,0x00,
+
+ 11, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x61,0x80,0x63,0x00,0x66,0x00,0x6C,0x00,0x7C,0x00,0x76,0x00,0x63,0x00,0x61,0x80,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x70,0x70,0x70,0x70,0xF0,0x58,0xB0,0x59,0xB0,0x4D,0x30,0x4F,0x30,0x46,0x30,0x46,0x30,0x40,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x40,0x70,0x40,0x58,0x40,0x4C,0x40,0x4C,0x40,0x46,0x40,0x43,0x40,0x43,0x40,0x41,0xC0,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x30,0xC0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,0x30,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x63,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x30,0xC0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,0x30,0xC0,0x0F,0x80,0x03,0x00,0x03,0x00,0x01,0xE0,
+
+ 11, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,0x61,0x80,0x7F,0x00,0x63,0x00,0x61,0x80,0x60,0xC0,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x61,0x80,0x60,0x00,0x3E,0x00,0x1F,0x00,0x01,0x80,0x61,0x80,0x63,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x31,0x80,0x31,0x80,0x1B,0x00,0x1B,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 16, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x86,0x61,0x86,0x63,0xC6,0x32,0x4C,0x36,0x6C,0x36,0x6C,0x34,0x2C,0x1C,0x38,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x31,0x80,0x31,0x80,0x1B,0x00,0x0E,0x00,0x0E,0x00,0x1B,0x00,0x31,0x80,0x31,0x80,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5B '['
+ 0x00,0x00,0x00,0x3E,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3E,
+
+ 10, // 0x5C '\'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0x00,
+
+ 8, // 0x5D ']'
+ 0x00,0x00,0x00,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x7C,
+
+ 12, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x0E,0x00,0x1B,0x00,0x31,0x80,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x00,0x00,
+
+ 10, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x03,0x00,0x03,0x00,0x3F,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x62 'b'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6E,0x00,0x73,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x33,0x60,0x60,0x60,0x60,0x33,0x1E,0x00,0x00,0x00,
+
+ 10, // 0x64 'd'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x63,0x00,0x7F,0x00,0x60,0x00,0x60,0x00,0x33,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x00,0x00,0x1C,0x30,0x30,0x7C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 10, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x01,0x80,0x03,0x00,0x3E,0x00,
+
+ 10, // 0x68 'h'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6F,0x00,0x71,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 6, // 0x6A 'j'
+ 0x00,0x00,0x00,0x18,0x18,0x00,0x38,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF0,
+
+ 9, // 0x6B 'k'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x63,0x00,0x66,0x00,0x6C,0x00,0x78,0x00,0x7C,0x00,0x66,0x00,0x63,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x6C 'l'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 14, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x70,0x73,0x98,0x63,0x18,0x63,0x18,0x63,0x18,0x63,0x18,0x63,0x18,0x63,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0x00,0x71,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x00,0x73,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,
+
+ 10, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x7E,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x62,0x60,0x7C,0x3E,0x06,0x46,0x3C,0x00,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x60,0x60,0xFC,0x60,0x60,0x60,0x60,0x60,0x60,0x3C,0x00,0x00,0x00,
+
+ 10, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x80,0x3D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x63,0x18,0x33,0x30,0x37,0xB0,0x34,0xB0,0x1C,0xE0,0x1C,0xE0,0x0C,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x36,0x00,0x63,0x00,0x63,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x1C,0x00,0x1C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,
+
+ 8, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x06,0x0C,0x18,0x18,0x30,0x60,0x7E,0x00,0x00,0x00,
+
+ 10, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x70,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x07,0x80,
+
+ 8, // 0x7C '|'
+ 0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+
+ 10, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x06,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x78,0x00,
+
+ 12, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x24,0x20,0x46,0x20,0x42,0x40,0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana18[] =
+ {
+ 18, 4, 32, 128-32,
+ 0x00,0x00,0x13,0x00,0x26,0x00,0x39,0x00,0x5E,0x00,0x83,0x00,0xA8,0x00,0xCD,0x00,0xE0,0x00,
+ 0xF3,0x00,0x06,0x01,0x2B,0x01,0x50,0x01,0x63,0x01,0x76,0x01,0x89,0x01,0x9C,0x01,0xC1,0x01,
+ 0xE6,0x01,0x0B,0x02,0x30,0x02,0x55,0x02,0x7A,0x02,0x9F,0x02,0xC4,0x02,0xE9,0x02,0x0E,0x03,
+ 0x21,0x03,0x34,0x03,0x59,0x03,0x7E,0x03,0xA3,0x03,0xB6,0x03,0xDB,0x03,0x00,0x04,0x25,0x04,
+ 0x4A,0x04,0x6F,0x04,0x94,0x04,0xB9,0x04,0xDE,0x04,0x03,0x05,0x16,0x05,0x29,0x05,0x4E,0x05,
+ 0x61,0x05,0x86,0x05,0xAB,0x05,0xD0,0x05,0xF5,0x05,0x1A,0x06,0x3F,0x06,0x64,0x06,0x89,0x06,
+ 0xAE,0x06,0xD3,0x06,0xF8,0x06,0x1D,0x07,0x42,0x07,0x67,0x07,0x7A,0x07,0x8D,0x07,0xA0,0x07,
+ 0xC5,0x07,0xEA,0x07,0x0F,0x08,0x34,0x08,0x59,0x08,0x6C,0x08,0x91,0x08,0xB6,0x08,0xC9,0x08,
+ 0xEE,0x08,0x13,0x09,0x26,0x09,0x39,0x09,0x5E,0x09,0x71,0x09,0x96,0x09,0xBB,0x09,0xE0,0x09,
+ 0x05,0x0A,0x2A,0x0A,0x3D,0x0A,0x50,0x0A,0x63,0x0A,0x88,0x0A,0xAD,0x0A,0xD2,0x0A,0xF7,0x0A,
+ 0x1C,0x0B,0x41,0x0B,0x66,0x0B,0x79,0x0B,0x9E,0x0B,0xC3,0x0B,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 7, // 0x22 '"'
+ 0x00,0x00,0x00,0x48,0x48,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x80,0x04,0x80,0x09,0x00,0x3F,0xC0,0x09,0x00,0x11,0x00,0x12,0x00,0x7F,0x80,0x12,0x00,0x24,0x00,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x08,0x00,0x3E,0x00,0x49,0x00,0x48,0x00,0x48,0x00,0x38,0x00,0x0E,0x00,0x09,0x00,0x09,0x00,0x49,0x00,0x3E,0x00,0x08,0x00,0x08,0x00,0x08,0x00,
+
+ 16, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x20,0x44,0x40,0x44,0x40,0x44,0x80,0x44,0x80,0x38,0x9C,0x01,0x22,0x01,0x22,0x02,0x22,0x02,0x22,0x04,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x21,0x00,0x21,0x00,0x1E,0x40,0x24,0x40,0x42,0x40,0x41,0x40,0x40,0x80,0x21,0x40,0x1E,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x27 '''
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x28 '('
+ 0x00,0x00,0x00,0x08,0x10,0x20,0x20,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x20,0x10,0x08,
+
+ 7, // 0x29 ')'
+ 0x00,0x00,0x00,0x20,0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x20,
+
+ 10, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x49,0x00,0x2A,0x00,0x1C,0x00,0x2A,0x00,0x49,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x3F,0xE0,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x40,0x40,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x00,0x00,0x00,
+
+ 7, // 0x2F '/'
+ 0x00,0x00,0x00,0x02,0x04,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x40,0x80,0x00,
+
+ 10, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x1C,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x41,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x01,0x00,0x02,0x00,0x0C,0x00,0x30,0x00,0x40,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x40,0x80,0x00,0x80,0x01,0x00,0x0E,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x41,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x00,0x05,0x00,0x09,0x00,0x11,0x00,0x21,0x00,0x41,0x00,0x7F,0xC0,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x20,0x00,0x20,0x00,0x20,0x00,0x3E,0x00,0x01,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x41,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x5E,0x00,0x61,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x20,0x80,0x1F,0x80,0x00,0x80,0x01,0x00,0x02,0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,
+
+ 7, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x20,0x20,
+
+ 12, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x3C,0x42,0x02,0x02,0x04,0x08,0x10,0x10,0x00,0x10,0x10,0x00,0x00,0x00,
+
+ 15, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x18,0x60,0x20,0x10,0x23,0xD0,0x44,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x44,0x48,0x23,0xF0,0x20,0x00,0x18,0x00,0x07,0xC0,0x00,0x00,
+
+ 10, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x12,0x00,0x12,0x00,0x12,0x00,0x21,0x00,0x21,0x00,0x40,0x80,0x7F,0x80,0x40,0x80,0x80,0x40,0x80,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x7E,0x00,0x41,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x41,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x20,0x40,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x40,0x30,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x41,0x80,0x40,0x80,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x80,0x41,0x80,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x40,0x00,0x40,0x00,0x40,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x30,0x60,0x20,0x20,0x40,0x00,0x40,0x00,0x41,0xE0,0x40,0x20,0x40,0x20,0x20,0x20,0x30,0x20,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0xC0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00,0x00,
+
+ 7, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0xF0,0x00,0x00,0x00,
+
+ 10, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x41,0x00,0x42,0x00,0x44,0x00,0x48,0x00,0x50,0x00,0x68,0x00,0x44,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,
+
+ 13, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x50,0x50,0x50,0x50,0x48,0x90,0x48,0x90,0x45,0x10,0x45,0x10,0x42,0x10,0x42,0x10,0x40,0x10,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x60,0x40,0x50,0x40,0x48,0x40,0x48,0x40,0x44,0x40,0x42,0x40,0x42,0x40,0x41,0x40,0x40,0xC0,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x20,0x40,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x20,0x40,0x30,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x41,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x41,0x00,0x7E,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0xC0,0x20,0x40,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x20,0x40,0x30,0xC0,0x0F,0x00,0x01,0x00,0x01,0x00,0x00,0xE0,
+
+ 10, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x42,0x00,0x41,0x00,0x40,0x80,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x20,0x80,0x40,0x00,0x40,0x00,0x20,0x00,0x1E,0x00,0x01,0x00,0x00,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x80,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x20,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x40,0x80,0x40,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x21,0x00,0x12,0x00,0x12,0x00,0x12,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 15, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x04,0x41,0x04,0x22,0x88,0x22,0x88,0x22,0x88,0x12,0x90,0x14,0x50,0x14,0x50,0x14,0x50,0x08,0x20,0x08,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x80,0x21,0x00,0x21,0x00,0x12,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x12,0x00,0x21,0x00,0x21,0x00,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x41,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x00,0x80,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x5B '['
+ 0x00,0x00,0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,
+
+ 7, // 0x5C '\'
+ 0x00,0x00,0x00,0x80,0x40,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x04,0x02,0x00,
+
+ 7, // 0x5D ']'
+ 0x00,0x00,0x00,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x78,
+
+ 12, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x09,0x00,0x10,0x80,0x20,0x40,0x40,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xC0,0x00,0x00,
+
+ 10, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x01,0x00,0x3F,0x00,0x41,0x00,0x41,0x00,0x43,0x00,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x62 'b'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x5C,0x00,0x62,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x21,0x40,0x40,0x40,0x40,0x21,0x1E,0x00,0x00,0x00,
+
+ 9, // 0x64 'd'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x22,0x00,0x41,0x00,0x7F,0x00,0x40,0x00,0x40,0x00,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x00,0x00,0x1C,0x20,0x20,0x20,0x7C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,
+
+ 9, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x01,0x00,0x22,0x00,0x1C,0x00,
+
+ 9, // 0x68 'h'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x5E,0x00,0x61,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x69 'i'
+ 0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 5, // 0x6A 'j'
+ 0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x70,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0xE0,
+
+ 9, // 0x6B 'k'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x42,0x00,0x44,0x00,0x48,0x00,0x50,0x00,0x68,0x00,0x44,0x00,0x42,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 3, // 0x6C 'l'
+ 0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 15, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2E,0x70,0x31,0x88,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x00,0x61,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x21,0x00,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x21,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x00,0x62,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x42,0x00,0x7C,0x00,0x40,0x00,0x40,0x00,0x40,0x00,
+
+ 9, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x21,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x23,0x00,0x1D,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
+
+ 6, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,0x60,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
+
+ 8, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x40,0x30,0x0C,0x02,0x42,0x3C,0x00,0x00,0x00,
+
+ 6, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x7C,0x20,0x20,0x20,0x20,0x20,0x20,0x1C,0x00,0x00,0x00,
+
+ 9, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x43,0x00,0x3D,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x10,0x42,0x10,0x25,0x20,0x25,0x20,0x28,0xA0,0x28,0xA0,0x10,0x40,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x22,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x14,0x00,0x22,0x00,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x41,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0x14,0x00,0x14,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,
+
+ 9, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x60,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x07,0x00,
+
+ 7, // 0x7C '|'
+ 0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+
+ 10, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x02,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x38,0x00,
+
+ 12, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x24,0x20,0x42,0x40,0x41,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 15, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+ const int8u verdana18_bold[] =
+ {
+ 18, 4, 32, 128-32,
+ 0x00,0x00,0x13,0x00,0x26,0x00,0x4B,0x00,0x70,0x00,0x95,0x00,0xCC,0x00,0xF1,0x00,0x04,0x01,
+ 0x17,0x01,0x2A,0x01,0x4F,0x01,0x74,0x01,0x87,0x01,0x9A,0x01,0xAD,0x01,0xD2,0x01,0xF7,0x01,
+ 0x1C,0x02,0x41,0x02,0x66,0x02,0x8B,0x02,0xB0,0x02,0xD5,0x02,0xFA,0x02,0x1F,0x03,0x44,0x03,
+ 0x57,0x03,0x6A,0x03,0x8F,0x03,0xB4,0x03,0xD9,0x03,0xFE,0x03,0x23,0x04,0x48,0x04,0x6D,0x04,
+ 0x92,0x04,0xB7,0x04,0xDC,0x04,0x01,0x05,0x26,0x05,0x4B,0x05,0x5E,0x05,0x71,0x05,0x96,0x05,
+ 0xBB,0x05,0xE0,0x05,0x05,0x06,0x2A,0x06,0x4F,0x06,0x74,0x06,0x99,0x06,0xBE,0x06,0xE3,0x06,
+ 0x08,0x07,0x2D,0x07,0x52,0x07,0x77,0x07,0x9C,0x07,0xC1,0x07,0xD4,0x07,0xF9,0x07,0x0C,0x08,
+ 0x31,0x08,0x56,0x08,0x7B,0x08,0xA0,0x08,0xC5,0x08,0xD8,0x08,0xFD,0x08,0x22,0x09,0x35,0x09,
+ 0x5A,0x09,0x7F,0x09,0x92,0x09,0xA5,0x09,0xCA,0x09,0xDD,0x09,0x02,0x0A,0x27,0x0A,0x4C,0x0A,
+ 0x71,0x0A,0x96,0x0A,0xA9,0x0A,0xCE,0x0A,0xE1,0x0A,0x06,0x0B,0x2B,0x0B,0x50,0x0B,0x75,0x0B,
+ 0x9A,0x0B,0xBF,0x0B,0xE4,0x0B,0xF7,0x0B,0x1C,0x0C,0x41,0x0C,
+
+ 5, // 0x20 ' '
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x21 '!'
+ 0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x30,0x30,0x00,0x00,0x00,
+
+ 9, // 0x22 '"'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x36,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x23 '#'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x20,0x04,0x20,0x08,0x40,0x3F,0xF0,0x3F,0xF0,0x08,0x40,0x10,0x80,0x7F,0xE0,0x7F,0xE0,0x21,0x00,0x21,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x24 '$'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x1F,0x80,0x34,0xC0,0x64,0xC0,0x64,0x00,0x3C,0x00,0x07,0x80,0x04,0xC0,0x64,0xC0,0x65,0x80,0x3F,0x00,0x04,0x00,0x04,0x00,0x00,0x00,
+
+ 19, // 0x25 '%'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x08,0x00,0x63,0x10,0x00,0x63,0x10,0x00,0x63,0x20,0x00,0x63,0x2F,0x80,0x63,0x58,0xC0,0x3E,0x98,0xC0,0x00,0x98,0xC0,0x01,0x18,0xC0,0x01,0x18,0xC0,0x02,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x26 '&'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x33,0x00,0x1E,0x60,0x36,0x60,0x63,0x60,0x61,0xC0,0x60,0xC0,0x30,0xE0,0x1F,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x27 '''
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x28 '('
+ 0x00,0x00,0x00,0x06,0x0C,0x18,0x30,0x30,0x60,0x60,0x60,0x60,0x60,0x30,0x30,0x18,0x0C,0x06,
+
+ 8, // 0x29 ')'
+ 0x00,0x00,0x00,0x60,0x30,0x18,0x0C,0x0C,0x06,0x06,0x06,0x06,0x06,0x0C,0x0C,0x18,0x30,0x60,
+
+ 11, // 0x2A '*'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x24,0x80,0x15,0x00,0x0E,0x00,0x15,0x00,0x24,0x80,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x2B '+'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x3F,0xE0,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2C ','
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x60,0x60,0x60,0xC0,0xC0,
+
+ 7, // 0x2D '-'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 5, // 0x2E '.'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 10, // 0x2F '/'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x30,0x00,0x60,0x00,0x60,0x00,0x00,0x00,
+
+ 11, // 0x30 '0'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x31 '1'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x1E,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x32 '2'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x60,0xC0,0x00,0xC0,0x01,0x80,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x7F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x33 '3'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x61,0x80,0x60,0xC0,0x00,0xC0,0x01,0x80,0x0F,0x00,0x01,0x80,0x00,0xC0,0x60,0xC0,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x34 '4'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x05,0x80,0x09,0x80,0x11,0x80,0x21,0x80,0x41,0x80,0x7F,0xE0,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x35 '5'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xC0,0x30,0x00,0x30,0x00,0x30,0x00,0x3F,0x00,0x01,0x80,0x00,0xC0,0x00,0xC0,0x60,0xC0,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x36 '6'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x18,0x00,0x30,0x00,0x60,0x00,0x6F,0x00,0x71,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x37 '7'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x38 '8'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x39 '9'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x31,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0xC0,0x1E,0xC0,0x00,0xC0,0x01,0x80,0x03,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x3A ':'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 6, // 0x3B ';'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x00,0x00,0x38,0x30,0x30,0x30,0x60,0x60,
+
+ 13, // 0x3C '<'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0xC0,0x03,0x00,0x0C,0x00,0x30,0x00,0x30,0x00,0x0C,0x00,0x03,0x00,0x00,0xC0,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x3D '='
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x3E '>'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x18,0x00,0x06,0x00,0x01,0x80,0x00,0x60,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 9, // 0x3F '?'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x63,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x18,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x40 '@'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x18,0x60,0x20,0x10,0x27,0xD0,0x4C,0xC8,0x4C,0xC8,0x4C,0xC8,0x4C,0xC8,0x4C,0xC8,0x27,0xF0,0x20,0x00,0x18,0x00,0x07,0xC0,0x00,0x00,
+
+ 12, // 0x41 'A'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x0F,0x00,0x0F,0x00,0x19,0x80,0x19,0x80,0x30,0xC0,0x3F,0xC0,0x30,0xC0,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x42 'B'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,0x61,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x43 'C'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0xC0,0x30,0xC0,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x30,0xC0,0x38,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x44 'D'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0xC0,0x60,0xC0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0xC0,0x61,0xC0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x45 'E'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x46 'F'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x47 'G'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x38,0x60,0x30,0x60,0x60,0x00,0x60,0x00,0x63,0xE0,0x60,0x60,0x60,0x60,0x30,0x60,0x38,0x60,0x0F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x48 'H'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x7F,0xE0,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x49 'I'
+ 0x00,0x00,0x00,0x00,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x00,0x00,0x00,
+
+ 8, // 0x4A 'J'
+ 0x00,0x00,0x00,0x00,0x3E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0xF8,0x00,0x00,0x00,
+
+ 12, // 0x4B 'K'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0xC0,0x61,0x80,0x63,0x00,0x66,0x00,0x6C,0x00,0x7E,0x00,0x73,0x00,0x61,0x80,0x60,0xC0,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x4C 'L'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x4D 'M'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x38,0x70,0x38,0x70,0x78,0x58,0x58,0x58,0xD8,0x4C,0x98,0x4D,0x98,0x47,0x18,0x47,0x18,0x42,0x18,0x40,0x18,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x4E 'N'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x20,0x70,0x20,0x58,0x20,0x4C,0x20,0x4C,0x20,0x46,0x20,0x43,0x20,0x43,0x20,0x41,0xA0,0x40,0xE0,0x40,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x4F 'O'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0xE0,0x30,0x60,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x30,0x60,0x38,0xE0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x50 'P'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x61,0x80,0x7F,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 13, // 0x51 'Q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x38,0xE0,0x30,0x60,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x60,0x30,0x30,0x60,0x38,0xE0,0x0F,0x80,0x03,0x00,0x03,0x80,0x01,0xF0,
+
+ 12, // 0x52 'R'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x61,0x80,0x7F,0x00,0x61,0x80,0x60,0xC0,0x60,0x60,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x53 'S'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x30,0xC0,0x60,0xC0,0x60,0x00,0x7C,0x00,0x3F,0x80,0x03,0xC0,0x00,0xC0,0x60,0xC0,0x61,0x80,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x54 'T'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 12, // 0x55 'U'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x30,0xC0,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x56 'V'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x60,0xC0,0x60,0xC0,0x31,0x80,0x31,0x80,0x31,0x80,0x1B,0x00,0x1B,0x00,0x1B,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 16, // 0x57 'W'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x86,0x61,0x86,0x63,0xC6,0x33,0xCC,0x32,0x4C,0x32,0x4C,0x1E,0x78,0x1C,0x38,0x1C,0x38,0x0C,0x30,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x58 'X'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0xC0,0x31,0x80,0x31,0x80,0x1B,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x1B,0x00,0x31,0x80,0x31,0x80,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x59 'Y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x5A 'Z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x80,0x01,0x80,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x7F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x5B '['
+ 0x00,0x00,0x00,0x3E,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x3E,
+
+ 10, // 0x5C '\'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0x00,
+
+ 8, // 0x5D ']'
+ 0x00,0x00,0x00,0x7C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x7C,
+
+ 13, // 0x5E '^'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x0F,0x00,0x19,0x80,0x30,0xC0,0x60,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x5F '_'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xE0,0x00,0x00,
+
+ 11, // 0x60 '`'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x61 'a'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x01,0x80,0x01,0x80,0x3F,0x80,0x61,0x80,0x61,0x80,0x63,0x80,0x3D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x62 'b'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6E,0x00,0x73,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 8, // 0x63 'c'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x33,0x60,0x60,0x60,0x60,0x33,0x1E,0x00,0x00,0x00,
+
+ 10, // 0x64 'd'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x65 'e'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x7F,0x80,0x60,0x00,0x60,0x00,0x31,0x80,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 6, // 0x66 'f'
+ 0x00,0x00,0x00,0x1C,0x30,0x30,0x30,0x7C,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x00,
+
+ 10, // 0x67 'g'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x01,0x80,0x03,0x00,0x3E,0x00,
+
+ 10, // 0x68 'h'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x6F,0x00,0x71,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x69 'i'
+ 0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 6, // 0x6A 'j'
+ 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x78,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xF0,
+
+ 10, // 0x6B 'k'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x61,0x80,0x63,0x00,0x66,0x00,0x6C,0x00,0x7E,0x00,0x73,0x00,0x61,0x80,0x60,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 4, // 0x6C 'l'
+ 0x00,0x00,0x00,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 16, // 0x6D 'm'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0x3C,0x71,0xC6,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x61,0x86,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x6E 'n'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6F,0x00,0x71,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x6F 'o'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x33,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x70 'p'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x00,0x73,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x00,0x7E,0x00,0x60,0x00,0x60,0x00,0x60,0x00,
+
+ 10, // 0x71 'q'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x80,0x31,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x33,0x80,0x1D,0x80,0x01,0x80,0x01,0x80,0x01,0x80,
+
+ 7, // 0x72 'r'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x7E,0x60,0x60,0x60,0x60,0x60,0x60,0x00,0x00,0x00,
+
+ 9, // 0x73 's'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x61,0x00,0x60,0x00,0x7E,0x00,0x3F,0x00,0x03,0x00,0x43,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 7, // 0x74 't'
+ 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x7E,0x30,0x30,0x30,0x30,0x30,0x30,0x1E,0x00,0x00,0x00,
+
+ 10, // 0x75 'u'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x61,0x80,0x63,0x80,0x3D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x76 'v'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x33,0x00,0x33,0x00,0x33,0x00,0x1E,0x00,0x1E,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 14, // 0x77 'w'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x18,0x63,0x18,0x63,0x18,0x37,0xB0,0x34,0xB0,0x3C,0xF0,0x18,0x60,0x18,0x60,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x78 'x'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x33,0x00,0x33,0x00,0x1E,0x00,0x1E,0x00,0x33,0x00,0x33,0x00,0x61,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 10, // 0x79 'y'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x80,0x61,0x80,0x33,0x00,0x33,0x00,0x33,0x00,0x1E,0x00,0x1E,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x18,0x00,
+
+ 9, // 0x7A 'z'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 11, // 0x7B '{'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x00,0x70,0x00,0x18,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x07,0x80,
+
+ 8, // 0x7C '|'
+ 0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,
+
+ 11, // 0x7D '}'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x01,0xC0,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x3C,0x00,
+
+ 13, // 0x7E '~'
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x10,0x24,0x10,0x42,0x10,0x41,0x20,0x40,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 15, // 0x7F ''
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,
+
+ 0
+ };
+
+}
+
diff --git a/agg/source/agg_gsv_text.cpp b/agg/source/agg_gsv_text.cpp
new file mode 100755
index 000000000000..fd522cd8de08
--- /dev/null
+++ b/agg/source/agg_gsv_text.cpp
@@ -0,0 +1,688 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class gsv_text
+//
+//----------------------------------------------------------------------------
+#include <string.h>
+#include <stdio.h>
+#include "agg_gsv_text.h"
+
+
+namespace agg
+{
+ int8u gsv_default_font[] =
+ {
+ 0x40,0x00,0x6c,0x0f,0x15,0x00,0x0e,0x00,0xf9,0xff,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x0d,0x0a,0x0d,0x0a,0x46,0x6f,0x6e,0x74,0x20,0x28,
+ 0x63,0x29,0x20,0x4d,0x69,0x63,0x72,0x6f,0x50,0x72,
+ 0x6f,0x66,0x20,0x32,0x37,0x20,0x53,0x65,0x70,0x74,
+ 0x65,0x6d,0x62,0x2e,0x31,0x39,0x38,0x39,0x00,0x0d,
+ 0x0a,0x0d,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x02,0x00,0x12,0x00,0x34,0x00,0x46,0x00,0x94,0x00,
+ 0xd0,0x00,0x2e,0x01,0x3e,0x01,0x64,0x01,0x8a,0x01,
+ 0x98,0x01,0xa2,0x01,0xb4,0x01,0xba,0x01,0xc6,0x01,
+ 0xcc,0x01,0xf0,0x01,0xfa,0x01,0x18,0x02,0x38,0x02,
+ 0x44,0x02,0x68,0x02,0x98,0x02,0xa2,0x02,0xde,0x02,
+ 0x0e,0x03,0x24,0x03,0x40,0x03,0x48,0x03,0x52,0x03,
+ 0x5a,0x03,0x82,0x03,0xec,0x03,0xfa,0x03,0x26,0x04,
+ 0x4c,0x04,0x6a,0x04,0x7c,0x04,0x8a,0x04,0xb6,0x04,
+ 0xc4,0x04,0xca,0x04,0xe0,0x04,0xee,0x04,0xf8,0x04,
+ 0x0a,0x05,0x18,0x05,0x44,0x05,0x5e,0x05,0x8e,0x05,
+ 0xac,0x05,0xd6,0x05,0xe0,0x05,0xf6,0x05,0x00,0x06,
+ 0x12,0x06,0x1c,0x06,0x28,0x06,0x36,0x06,0x48,0x06,
+ 0x4e,0x06,0x60,0x06,0x6e,0x06,0x74,0x06,0x84,0x06,
+ 0xa6,0x06,0xc8,0x06,0xe6,0x06,0x08,0x07,0x2c,0x07,
+ 0x3c,0x07,0x68,0x07,0x7c,0x07,0x8c,0x07,0xa2,0x07,
+ 0xb0,0x07,0xb6,0x07,0xd8,0x07,0xec,0x07,0x10,0x08,
+ 0x32,0x08,0x54,0x08,0x64,0x08,0x88,0x08,0x98,0x08,
+ 0xac,0x08,0xb6,0x08,0xc8,0x08,0xd2,0x08,0xe4,0x08,
+ 0xf2,0x08,0x3e,0x09,0x48,0x09,0x94,0x09,0xc2,0x09,
+ 0xc4,0x09,0xd0,0x09,0xe2,0x09,0x04,0x0a,0x0e,0x0a,
+ 0x26,0x0a,0x34,0x0a,0x4a,0x0a,0x66,0x0a,0x70,0x0a,
+ 0x7e,0x0a,0x8e,0x0a,0x9a,0x0a,0xa6,0x0a,0xb4,0x0a,
+ 0xd8,0x0a,0xe2,0x0a,0xf6,0x0a,0x18,0x0b,0x22,0x0b,
+ 0x32,0x0b,0x56,0x0b,0x60,0x0b,0x6e,0x0b,0x7c,0x0b,
+ 0x8a,0x0b,0x9c,0x0b,0x9e,0x0b,0xb2,0x0b,0xc2,0x0b,
+ 0xd8,0x0b,0xf4,0x0b,0x08,0x0c,0x30,0x0c,0x56,0x0c,
+ 0x72,0x0c,0x90,0x0c,0xb2,0x0c,0xce,0x0c,0xe2,0x0c,
+ 0xfe,0x0c,0x10,0x0d,0x26,0x0d,0x36,0x0d,0x42,0x0d,
+ 0x4e,0x0d,0x5c,0x0d,0x78,0x0d,0x8c,0x0d,0x8e,0x0d,
+ 0x90,0x0d,0x92,0x0d,0x94,0x0d,0x96,0x0d,0x98,0x0d,
+ 0x9a,0x0d,0x9c,0x0d,0x9e,0x0d,0xa0,0x0d,0xa2,0x0d,
+ 0xa4,0x0d,0xa6,0x0d,0xa8,0x0d,0xaa,0x0d,0xac,0x0d,
+ 0xae,0x0d,0xb0,0x0d,0xb2,0x0d,0xb4,0x0d,0xb6,0x0d,
+ 0xb8,0x0d,0xba,0x0d,0xbc,0x0d,0xbe,0x0d,0xc0,0x0d,
+ 0xc2,0x0d,0xc4,0x0d,0xc6,0x0d,0xc8,0x0d,0xca,0x0d,
+ 0xcc,0x0d,0xce,0x0d,0xd0,0x0d,0xd2,0x0d,0xd4,0x0d,
+ 0xd6,0x0d,0xd8,0x0d,0xda,0x0d,0xdc,0x0d,0xde,0x0d,
+ 0xe0,0x0d,0xe2,0x0d,0xe4,0x0d,0xe6,0x0d,0xe8,0x0d,
+ 0xea,0x0d,0xec,0x0d,0x0c,0x0e,0x26,0x0e,0x48,0x0e,
+ 0x64,0x0e,0x88,0x0e,0x92,0x0e,0xa6,0x0e,0xb4,0x0e,
+ 0xd0,0x0e,0xee,0x0e,0x02,0x0f,0x16,0x0f,0x26,0x0f,
+ 0x3c,0x0f,0x58,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,
+ 0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,
+ 0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,
+ 0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x6c,0x0f,0x10,0x80,
+ 0x05,0x95,0x00,0x72,0x00,0xfb,0xff,0x7f,0x01,0x7f,
+ 0x01,0x01,0xff,0x01,0x05,0xfe,0x05,0x95,0xff,0x7f,
+ 0x00,0x7a,0x01,0x86,0xff,0x7a,0x01,0x87,0x01,0x7f,
+ 0xfe,0x7a,0x0a,0x87,0xff,0x7f,0x00,0x7a,0x01,0x86,
+ 0xff,0x7a,0x01,0x87,0x01,0x7f,0xfe,0x7a,0x05,0xf2,
+ 0x0b,0x95,0xf9,0x64,0x0d,0x9c,0xf9,0x64,0xfa,0x91,
+ 0x0e,0x00,0xf1,0xfa,0x0e,0x00,0x04,0xfc,0x08,0x99,
+ 0x00,0x63,0x04,0x9d,0x00,0x63,0x04,0x96,0xff,0x7f,
+ 0x01,0x7f,0x01,0x01,0x00,0x01,0xfe,0x02,0xfd,0x01,
+ 0xfc,0x00,0xfd,0x7f,0xfe,0x7e,0x00,0x7e,0x01,0x7e,
+ 0x01,0x7f,0x02,0x7f,0x06,0x7e,0x02,0x7f,0x02,0x7e,
+ 0xf2,0x89,0x02,0x7e,0x02,0x7f,0x06,0x7e,0x02,0x7f,
+ 0x01,0x7f,0x01,0x7e,0x00,0x7c,0xfe,0x7e,0xfd,0x7f,
+ 0xfc,0x00,0xfd,0x01,0xfe,0x02,0x00,0x01,0x01,0x01,
+ 0x01,0x7f,0xff,0x7f,0x10,0xfd,0x15,0x95,0xee,0x6b,
+ 0x05,0x95,0x02,0x7e,0x00,0x7e,0xff,0x7e,0xfe,0x7f,
+ 0xfe,0x00,0xfe,0x02,0x00,0x02,0x01,0x02,0x02,0x01,
+ 0x02,0x00,0x02,0x7f,0x03,0x7f,0x03,0x00,0x03,0x01,
+ 0x02,0x01,0xfc,0xf2,0xfe,0x7f,0xff,0x7e,0x00,0x7e,
+ 0x02,0x7e,0x02,0x00,0x02,0x01,0x01,0x02,0x00,0x02,
+ 0xfe,0x02,0xfe,0x00,0x07,0xf9,0x15,0x8d,0xff,0x7f,
+ 0x01,0x7f,0x01,0x01,0x00,0x01,0xff,0x01,0xff,0x00,
+ 0xff,0x7f,0xff,0x7e,0xfe,0x7b,0xfe,0x7d,0xfe,0x7e,
+ 0xfe,0x7f,0xfd,0x00,0xfd,0x01,0xff,0x02,0x00,0x03,
+ 0x01,0x02,0x06,0x04,0x02,0x02,0x01,0x02,0x00,0x02,
+ 0xff,0x02,0xfe,0x01,0xfe,0x7f,0xff,0x7e,0x00,0x7e,
+ 0x01,0x7d,0x02,0x7d,0x05,0x79,0x02,0x7e,0x03,0x7f,
+ 0x01,0x00,0x01,0x01,0x00,0x01,0xf1,0xfe,0xfe,0x01,
+ 0xff,0x02,0x00,0x03,0x01,0x02,0x02,0x02,0x00,0x86,
+ 0x01,0x7e,0x08,0x75,0x02,0x7e,0x02,0x7f,0x05,0x80,
+ 0x05,0x93,0xff,0x01,0x01,0x01,0x01,0x7f,0x00,0x7e,
+ 0xff,0x7e,0xff,0x7f,0x06,0xf1,0x0b,0x99,0xfe,0x7e,
+ 0xfe,0x7d,0xfe,0x7c,0xff,0x7b,0x00,0x7c,0x01,0x7b,
+ 0x02,0x7c,0x02,0x7d,0x02,0x7e,0xfe,0x9e,0xfe,0x7c,
+ 0xff,0x7d,0xff,0x7b,0x00,0x7c,0x01,0x7b,0x01,0x7d,
+ 0x02,0x7c,0x05,0x85,0x03,0x99,0x02,0x7e,0x02,0x7d,
+ 0x02,0x7c,0x01,0x7b,0x00,0x7c,0xff,0x7b,0xfe,0x7c,
+ 0xfe,0x7d,0xfe,0x7e,0x02,0x9e,0x02,0x7c,0x01,0x7d,
+ 0x01,0x7b,0x00,0x7c,0xff,0x7b,0xff,0x7d,0xfe,0x7c,
+ 0x09,0x85,0x08,0x95,0x00,0x74,0xfb,0x89,0x0a,0x7a,
+ 0x00,0x86,0xf6,0x7a,0x0d,0xf4,0x0d,0x92,0x00,0x6e,
+ 0xf7,0x89,0x12,0x00,0x04,0xf7,0x06,0x81,0xff,0x7f,
+ 0xff,0x01,0x01,0x01,0x01,0x7f,0x00,0x7e,0xff,0x7e,
+ 0xff,0x7f,0x06,0x84,0x04,0x89,0x12,0x00,0x04,0xf7,
+ 0x05,0x82,0xff,0x7f,0x01,0x7f,0x01,0x01,0xff,0x01,
+ 0x05,0xfe,0x00,0xfd,0x0e,0x18,0x00,0xeb,0x09,0x95,
+ 0xfd,0x7f,0xfe,0x7d,0xff,0x7b,0x00,0x7d,0x01,0x7b,
+ 0x02,0x7d,0x03,0x7f,0x02,0x00,0x03,0x01,0x02,0x03,
+ 0x01,0x05,0x00,0x03,0xff,0x05,0xfe,0x03,0xfd,0x01,
+ 0xfe,0x00,0x0b,0xeb,0x06,0x91,0x02,0x01,0x03,0x03,
+ 0x00,0x6b,0x09,0x80,0x04,0x90,0x00,0x01,0x01,0x02,
+ 0x01,0x01,0x02,0x01,0x04,0x00,0x02,0x7f,0x01,0x7f,
+ 0x01,0x7e,0x00,0x7e,0xff,0x7e,0xfe,0x7d,0xf6,0x76,
+ 0x0e,0x00,0x03,0x80,0x05,0x95,0x0b,0x00,0xfa,0x78,
+ 0x03,0x00,0x02,0x7f,0x01,0x7f,0x01,0x7d,0x00,0x7e,
+ 0xff,0x7d,0xfe,0x7e,0xfd,0x7f,0xfd,0x00,0xfd,0x01,
+ 0xff,0x01,0xff,0x02,0x11,0xfc,0x0d,0x95,0xf6,0x72,
+ 0x0f,0x00,0xfb,0x8e,0x00,0x6b,0x07,0x80,0x0f,0x95,
+ 0xf6,0x00,0xff,0x77,0x01,0x01,0x03,0x01,0x03,0x00,
+ 0x03,0x7f,0x02,0x7e,0x01,0x7d,0x00,0x7e,0xff,0x7d,
+ 0xfe,0x7e,0xfd,0x7f,0xfd,0x00,0xfd,0x01,0xff,0x01,
+ 0xff,0x02,0x11,0xfc,0x10,0x92,0xff,0x02,0xfd,0x01,
+ 0xfe,0x00,0xfd,0x7f,0xfe,0x7d,0xff,0x7b,0x00,0x7b,
+ 0x01,0x7c,0x02,0x7e,0x03,0x7f,0x01,0x00,0x03,0x01,
+ 0x02,0x02,0x01,0x03,0x00,0x01,0xff,0x03,0xfe,0x02,
+ 0xfd,0x01,0xff,0x00,0xfd,0x7f,0xfe,0x7e,0xff,0x7d,
+ 0x10,0xf9,0x11,0x95,0xf6,0x6b,0xfc,0x95,0x0e,0x00,
+ 0x03,0xeb,0x08,0x95,0xfd,0x7f,0xff,0x7e,0x00,0x7e,
+ 0x01,0x7e,0x02,0x7f,0x04,0x7f,0x03,0x7f,0x02,0x7e,
+ 0x01,0x7e,0x00,0x7d,0xff,0x7e,0xff,0x7f,0xfd,0x7f,
+ 0xfc,0x00,0xfd,0x01,0xff,0x01,0xff,0x02,0x00,0x03,
+ 0x01,0x02,0x02,0x02,0x03,0x01,0x04,0x01,0x02,0x01,
+ 0x01,0x02,0x00,0x02,0xff,0x02,0xfd,0x01,0xfc,0x00,
+ 0x0c,0xeb,0x10,0x8e,0xff,0x7d,0xfe,0x7e,0xfd,0x7f,
+ 0xff,0x00,0xfd,0x01,0xfe,0x02,0xff,0x03,0x00,0x01,
+ 0x01,0x03,0x02,0x02,0x03,0x01,0x01,0x00,0x03,0x7f,
+ 0x02,0x7e,0x01,0x7c,0x00,0x7b,0xff,0x7b,0xfe,0x7d,
+ 0xfd,0x7f,0xfe,0x00,0xfd,0x01,0xff,0x02,0x10,0xfd,
+ 0x05,0x8e,0xff,0x7f,0x01,0x7f,0x01,0x01,0xff,0x01,
+ 0x00,0xf4,0xff,0x7f,0x01,0x7f,0x01,0x01,0xff,0x01,
+ 0x05,0xfe,0x05,0x8e,0xff,0x7f,0x01,0x7f,0x01,0x01,
+ 0xff,0x01,0x01,0xf3,0xff,0x7f,0xff,0x01,0x01,0x01,
+ 0x01,0x7f,0x00,0x7e,0xff,0x7e,0xff,0x7f,0x06,0x84,
+ 0x14,0x92,0xf0,0x77,0x10,0x77,0x04,0x80,0x04,0x8c,
+ 0x12,0x00,0xee,0xfa,0x12,0x00,0x04,0xfa,0x04,0x92,
+ 0x10,0x77,0xf0,0x77,0x14,0x80,0x03,0x90,0x00,0x01,
+ 0x01,0x02,0x01,0x01,0x02,0x01,0x04,0x00,0x02,0x7f,
+ 0x01,0x7f,0x01,0x7e,0x00,0x7e,0xff,0x7e,0xff,0x7f,
+ 0xfc,0x7e,0x00,0x7d,0x00,0xfb,0xff,0x7f,0x01,0x7f,
+ 0x01,0x01,0xff,0x01,0x09,0xfe,0x12,0x8d,0xff,0x02,
+ 0xfe,0x01,0xfd,0x00,0xfe,0x7f,0xff,0x7f,0xff,0x7d,
+ 0x00,0x7d,0x01,0x7e,0x02,0x7f,0x03,0x00,0x02,0x01,
+ 0x01,0x02,0xfb,0x88,0xfe,0x7e,0xff,0x7d,0x00,0x7d,
+ 0x01,0x7e,0x01,0x7f,0x07,0x8b,0xff,0x78,0x00,0x7e,
+ 0x02,0x7f,0x02,0x00,0x02,0x02,0x01,0x03,0x00,0x02,
+ 0xff,0x03,0xff,0x02,0xfe,0x02,0xfe,0x01,0xfd,0x01,
+ 0xfd,0x00,0xfd,0x7f,0xfe,0x7f,0xfe,0x7e,0xff,0x7e,
+ 0xff,0x7d,0x00,0x7d,0x01,0x7d,0x01,0x7e,0x02,0x7e,
+ 0x02,0x7f,0x03,0x7f,0x03,0x00,0x03,0x01,0x02,0x01,
+ 0x01,0x01,0xfe,0x8d,0xff,0x78,0x00,0x7e,0x01,0x7f,
+ 0x08,0xfb,0x09,0x95,0xf8,0x6b,0x08,0x95,0x08,0x6b,
+ 0xf3,0x87,0x0a,0x00,0x04,0xf9,0x04,0x95,0x00,0x6b,
+ 0x00,0x95,0x09,0x00,0x03,0x7f,0x01,0x7f,0x01,0x7e,
+ 0x00,0x7e,0xff,0x7e,0xff,0x7f,0xfd,0x7f,0xf7,0x80,
+ 0x09,0x00,0x03,0x7f,0x01,0x7f,0x01,0x7e,0x00,0x7d,
+ 0xff,0x7e,0xff,0x7f,0xfd,0x7f,0xf7,0x00,0x11,0x80,
+ 0x12,0x90,0xff,0x02,0xfe,0x02,0xfe,0x01,0xfc,0x00,
+ 0xfe,0x7f,0xfe,0x7e,0xff,0x7e,0xff,0x7d,0x00,0x7b,
+ 0x01,0x7d,0x01,0x7e,0x02,0x7e,0x02,0x7f,0x04,0x00,
+ 0x02,0x01,0x02,0x02,0x01,0x02,0x03,0xfb,0x04,0x95,
+ 0x00,0x6b,0x00,0x95,0x07,0x00,0x03,0x7f,0x02,0x7e,
+ 0x01,0x7e,0x01,0x7d,0x00,0x7b,0xff,0x7d,0xff,0x7e,
+ 0xfe,0x7e,0xfd,0x7f,0xf9,0x00,0x11,0x80,0x04,0x95,
+ 0x00,0x6b,0x00,0x95,0x0d,0x00,0xf3,0xf6,0x08,0x00,
+ 0xf8,0xf5,0x0d,0x00,0x02,0x80,0x04,0x95,0x00,0x6b,
+ 0x00,0x95,0x0d,0x00,0xf3,0xf6,0x08,0x00,0x06,0xf5,
+ 0x12,0x90,0xff,0x02,0xfe,0x02,0xfe,0x01,0xfc,0x00,
+ 0xfe,0x7f,0xfe,0x7e,0xff,0x7e,0xff,0x7d,0x00,0x7b,
+ 0x01,0x7d,0x01,0x7e,0x02,0x7e,0x02,0x7f,0x04,0x00,
+ 0x02,0x01,0x02,0x02,0x01,0x02,0x00,0x03,0xfb,0x80,
+ 0x05,0x00,0x03,0xf8,0x04,0x95,0x00,0x6b,0x0e,0x95,
+ 0x00,0x6b,0xf2,0x8b,0x0e,0x00,0x04,0xf5,0x04,0x95,
+ 0x00,0x6b,0x04,0x80,0x0c,0x95,0x00,0x70,0xff,0x7d,
+ 0xff,0x7f,0xfe,0x7f,0xfe,0x00,0xfe,0x01,0xff,0x01,
+ 0xff,0x03,0x00,0x02,0x0e,0xf9,0x04,0x95,0x00,0x6b,
+ 0x0e,0x95,0xf2,0x72,0x05,0x85,0x09,0x74,0x03,0x80,
+ 0x04,0x95,0x00,0x6b,0x00,0x80,0x0c,0x00,0x01,0x80,
+ 0x04,0x95,0x00,0x6b,0x00,0x95,0x08,0x6b,0x08,0x95,
+ 0xf8,0x6b,0x08,0x95,0x00,0x6b,0x04,0x80,0x04,0x95,
+ 0x00,0x6b,0x00,0x95,0x0e,0x6b,0x00,0x95,0x00,0x6b,
+ 0x04,0x80,0x09,0x95,0xfe,0x7f,0xfe,0x7e,0xff,0x7e,
+ 0xff,0x7d,0x00,0x7b,0x01,0x7d,0x01,0x7e,0x02,0x7e,
+ 0x02,0x7f,0x04,0x00,0x02,0x01,0x02,0x02,0x01,0x02,
+ 0x01,0x03,0x00,0x05,0xff,0x03,0xff,0x02,0xfe,0x02,
+ 0xfe,0x01,0xfc,0x00,0x0d,0xeb,0x04,0x95,0x00,0x6b,
+ 0x00,0x95,0x09,0x00,0x03,0x7f,0x01,0x7f,0x01,0x7e,
+ 0x00,0x7d,0xff,0x7e,0xff,0x7f,0xfd,0x7f,0xf7,0x00,
+ 0x11,0xf6,0x09,0x95,0xfe,0x7f,0xfe,0x7e,0xff,0x7e,
+ 0xff,0x7d,0x00,0x7b,0x01,0x7d,0x01,0x7e,0x02,0x7e,
+ 0x02,0x7f,0x04,0x00,0x02,0x01,0x02,0x02,0x01,0x02,
+ 0x01,0x03,0x00,0x05,0xff,0x03,0xff,0x02,0xfe,0x02,
+ 0xfe,0x01,0xfc,0x00,0x03,0xef,0x06,0x7a,0x04,0x82,
+ 0x04,0x95,0x00,0x6b,0x00,0x95,0x09,0x00,0x03,0x7f,
+ 0x01,0x7f,0x01,0x7e,0x00,0x7e,0xff,0x7e,0xff,0x7f,
+ 0xfd,0x7f,0xf7,0x00,0x07,0x80,0x07,0x75,0x03,0x80,
+ 0x11,0x92,0xfe,0x02,0xfd,0x01,0xfc,0x00,0xfd,0x7f,
+ 0xfe,0x7e,0x00,0x7e,0x01,0x7e,0x01,0x7f,0x02,0x7f,
+ 0x06,0x7e,0x02,0x7f,0x01,0x7f,0x01,0x7e,0x00,0x7d,
+ 0xfe,0x7e,0xfd,0x7f,0xfc,0x00,0xfd,0x01,0xfe,0x02,
+ 0x11,0xfd,0x08,0x95,0x00,0x6b,0xf9,0x95,0x0e,0x00,
+ 0x01,0xeb,0x04,0x95,0x00,0x71,0x01,0x7d,0x02,0x7e,
+ 0x03,0x7f,0x02,0x00,0x03,0x01,0x02,0x02,0x01,0x03,
+ 0x00,0x0f,0x04,0xeb,0x01,0x95,0x08,0x6b,0x08,0x95,
+ 0xf8,0x6b,0x09,0x80,0x02,0x95,0x05,0x6b,0x05,0x95,
+ 0xfb,0x6b,0x05,0x95,0x05,0x6b,0x05,0x95,0xfb,0x6b,
+ 0x07,0x80,0x03,0x95,0x0e,0x6b,0x00,0x95,0xf2,0x6b,
+ 0x11,0x80,0x01,0x95,0x08,0x76,0x00,0x75,0x08,0x95,
+ 0xf8,0x76,0x09,0xf5,0x11,0x95,0xf2,0x6b,0x00,0x95,
+ 0x0e,0x00,0xf2,0xeb,0x0e,0x00,0x03,0x80,0x03,0x93,
+ 0x00,0x6c,0x01,0x94,0x00,0x6c,0xff,0x94,0x05,0x00,
+ 0xfb,0xec,0x05,0x00,0x02,0x81,0x00,0x95,0x0e,0x68,
+ 0x00,0x83,0x06,0x93,0x00,0x6c,0x01,0x94,0x00,0x6c,
+ 0xfb,0x94,0x05,0x00,0xfb,0xec,0x05,0x00,0x03,0x81,
+ 0x03,0x87,0x08,0x05,0x08,0x7b,0xf0,0x80,0x08,0x04,
+ 0x08,0x7c,0x03,0xf9,0x01,0x80,0x10,0x00,0x01,0x80,
+ 0x06,0x95,0xff,0x7f,0xff,0x7e,0x00,0x7e,0x01,0x7f,
+ 0x01,0x01,0xff,0x01,0x05,0xef,0x0f,0x8e,0x00,0x72,
+ 0x00,0x8b,0xfe,0x02,0xfe,0x01,0xfd,0x00,0xfe,0x7f,
+ 0xfe,0x7e,0xff,0x7d,0x00,0x7e,0x01,0x7d,0x02,0x7e,
+ 0x02,0x7f,0x03,0x00,0x02,0x01,0x02,0x02,0x04,0xfd,
+ 0x04,0x95,0x00,0x6b,0x00,0x8b,0x02,0x02,0x02,0x01,
+ 0x03,0x00,0x02,0x7f,0x02,0x7e,0x01,0x7d,0x00,0x7e,
+ 0xff,0x7d,0xfe,0x7e,0xfe,0x7f,0xfd,0x00,0xfe,0x01,
+ 0xfe,0x02,0x0f,0xfd,0x0f,0x8b,0xfe,0x02,0xfe,0x01,
+ 0xfd,0x00,0xfe,0x7f,0xfe,0x7e,0xff,0x7d,0x00,0x7e,
+ 0x01,0x7d,0x02,0x7e,0x02,0x7f,0x03,0x00,0x02,0x01,
+ 0x02,0x02,0x03,0xfd,0x0f,0x95,0x00,0x6b,0x00,0x8b,
+ 0xfe,0x02,0xfe,0x01,0xfd,0x00,0xfe,0x7f,0xfe,0x7e,
+ 0xff,0x7d,0x00,0x7e,0x01,0x7d,0x02,0x7e,0x02,0x7f,
+ 0x03,0x00,0x02,0x01,0x02,0x02,0x04,0xfd,0x03,0x88,
+ 0x0c,0x00,0x00,0x02,0xff,0x02,0xff,0x01,0xfe,0x01,
+ 0xfd,0x00,0xfe,0x7f,0xfe,0x7e,0xff,0x7d,0x00,0x7e,
+ 0x01,0x7d,0x02,0x7e,0x02,0x7f,0x03,0x00,0x02,0x01,
+ 0x02,0x02,0x03,0xfd,0x0a,0x95,0xfe,0x00,0xfe,0x7f,
+ 0xff,0x7d,0x00,0x6f,0xfd,0x8e,0x07,0x00,0x03,0xf2,
+ 0x0f,0x8e,0x00,0x70,0xff,0x7d,0xff,0x7f,0xfe,0x7f,
+ 0xfd,0x00,0xfe,0x01,0x09,0x91,0xfe,0x02,0xfe,0x01,
+ 0xfd,0x00,0xfe,0x7f,0xfe,0x7e,0xff,0x7d,0x00,0x7e,
+ 0x01,0x7d,0x02,0x7e,0x02,0x7f,0x03,0x00,0x02,0x01,
+ 0x02,0x02,0x04,0xfd,0x04,0x95,0x00,0x6b,0x00,0x8a,
+ 0x03,0x03,0x02,0x01,0x03,0x00,0x02,0x7f,0x01,0x7d,
+ 0x00,0x76,0x04,0x80,0x03,0x95,0x01,0x7f,0x01,0x01,
+ 0xff,0x01,0xff,0x7f,0x01,0xf9,0x00,0x72,0x04,0x80,
+ 0x05,0x95,0x01,0x7f,0x01,0x01,0xff,0x01,0xff,0x7f,
+ 0x01,0xf9,0x00,0x6f,0xff,0x7d,0xfe,0x7f,0xfe,0x00,
+ 0x09,0x87,0x04,0x95,0x00,0x6b,0x0a,0x8e,0xf6,0x76,
+ 0x04,0x84,0x07,0x78,0x02,0x80,0x04,0x95,0x00,0x6b,
+ 0x04,0x80,0x04,0x8e,0x00,0x72,0x00,0x8a,0x03,0x03,
+ 0x02,0x01,0x03,0x00,0x02,0x7f,0x01,0x7d,0x00,0x76,
+ 0x00,0x8a,0x03,0x03,0x02,0x01,0x03,0x00,0x02,0x7f,
+ 0x01,0x7d,0x00,0x76,0x04,0x80,0x04,0x8e,0x00,0x72,
+ 0x00,0x8a,0x03,0x03,0x02,0x01,0x03,0x00,0x02,0x7f,
+ 0x01,0x7d,0x00,0x76,0x04,0x80,0x08,0x8e,0xfe,0x7f,
+ 0xfe,0x7e,0xff,0x7d,0x00,0x7e,0x01,0x7d,0x02,0x7e,
+ 0x02,0x7f,0x03,0x00,0x02,0x01,0x02,0x02,0x01,0x03,
+ 0x00,0x02,0xff,0x03,0xfe,0x02,0xfe,0x01,0xfd,0x00,
+ 0x0b,0xf2,0x04,0x8e,0x00,0x6b,0x00,0x92,0x02,0x02,
+ 0x02,0x01,0x03,0x00,0x02,0x7f,0x02,0x7e,0x01,0x7d,
+ 0x00,0x7e,0xff,0x7d,0xfe,0x7e,0xfe,0x7f,0xfd,0x00,
+ 0xfe,0x01,0xfe,0x02,0x0f,0xfd,0x0f,0x8e,0x00,0x6b,
+ 0x00,0x92,0xfe,0x02,0xfe,0x01,0xfd,0x00,0xfe,0x7f,
+ 0xfe,0x7e,0xff,0x7d,0x00,0x7e,0x01,0x7d,0x02,0x7e,
+ 0x02,0x7f,0x03,0x00,0x02,0x01,0x02,0x02,0x04,0xfd,
+ 0x04,0x8e,0x00,0x72,0x00,0x88,0x01,0x03,0x02,0x02,
+ 0x02,0x01,0x03,0x00,0x01,0xf2,0x0e,0x8b,0xff,0x02,
+ 0xfd,0x01,0xfd,0x00,0xfd,0x7f,0xff,0x7e,0x01,0x7e,
+ 0x02,0x7f,0x05,0x7f,0x02,0x7f,0x01,0x7e,0x00,0x7f,
+ 0xff,0x7e,0xfd,0x7f,0xfd,0x00,0xfd,0x01,0xff,0x02,
+ 0x0e,0xfd,0x05,0x95,0x00,0x6f,0x01,0x7d,0x02,0x7f,
+ 0x02,0x00,0xf8,0x8e,0x07,0x00,0x03,0xf2,0x04,0x8e,
+ 0x00,0x76,0x01,0x7d,0x02,0x7f,0x03,0x00,0x02,0x01,
+ 0x03,0x03,0x00,0x8a,0x00,0x72,0x04,0x80,0x02,0x8e,
+ 0x06,0x72,0x06,0x8e,0xfa,0x72,0x08,0x80,0x03,0x8e,
+ 0x04,0x72,0x04,0x8e,0xfc,0x72,0x04,0x8e,0x04,0x72,
+ 0x04,0x8e,0xfc,0x72,0x07,0x80,0x03,0x8e,0x0b,0x72,
+ 0x00,0x8e,0xf5,0x72,0x0e,0x80,0x02,0x8e,0x06,0x72,
+ 0x06,0x8e,0xfa,0x72,0xfe,0x7c,0xfe,0x7e,0xfe,0x7f,
+ 0xff,0x00,0x0f,0x87,0x0e,0x8e,0xf5,0x72,0x00,0x8e,
+ 0x0b,0x00,0xf5,0xf2,0x0b,0x00,0x03,0x80,0x09,0x99,
+ 0xfe,0x7f,0xff,0x7f,0xff,0x7e,0x00,0x7e,0x01,0x7e,
+ 0x01,0x7f,0x01,0x7e,0x00,0x7e,0xfe,0x7e,0x01,0x8e,
+ 0xff,0x7e,0x00,0x7e,0x01,0x7e,0x01,0x7f,0x01,0x7e,
+ 0x00,0x7e,0xff,0x7e,0xfc,0x7e,0x04,0x7e,0x01,0x7e,
+ 0x00,0x7e,0xff,0x7e,0xff,0x7f,0xff,0x7e,0x00,0x7e,
+ 0x01,0x7e,0xff,0x8e,0x02,0x7e,0x00,0x7e,0xff,0x7e,
+ 0xff,0x7f,0xff,0x7e,0x00,0x7e,0x01,0x7e,0x01,0x7f,
+ 0x02,0x7f,0x05,0x87,0x04,0x95,0x00,0x77,0x00,0xfd,
+ 0x00,0x77,0x04,0x80,0x05,0x99,0x02,0x7f,0x01,0x7f,
+ 0x01,0x7e,0x00,0x7e,0xff,0x7e,0xff,0x7f,0xff,0x7e,
+ 0x00,0x7e,0x02,0x7e,0xff,0x8e,0x01,0x7e,0x00,0x7e,
+ 0xff,0x7e,0xff,0x7f,0xff,0x7e,0x00,0x7e,0x01,0x7e,
+ 0x04,0x7e,0xfc,0x7e,0xff,0x7e,0x00,0x7e,0x01,0x7e,
+ 0x01,0x7f,0x01,0x7e,0x00,0x7e,0xff,0x7e,0x01,0x8e,
+ 0xfe,0x7e,0x00,0x7e,0x01,0x7e,0x01,0x7f,0x01,0x7e,
+ 0x00,0x7e,0xff,0x7e,0xff,0x7f,0xfe,0x7f,0x09,0x87,
+ 0x03,0x86,0x00,0x02,0x01,0x03,0x02,0x01,0x02,0x00,
+ 0x02,0x7f,0x04,0x7d,0x02,0x7f,0x02,0x00,0x02,0x01,
+ 0x01,0x02,0xee,0xfe,0x01,0x02,0x02,0x01,0x02,0x00,
+ 0x02,0x7f,0x04,0x7d,0x02,0x7f,0x02,0x00,0x02,0x01,
+ 0x01,0x03,0x00,0x02,0x03,0xf4,0x10,0x80,0x03,0x80,
+ 0x07,0x15,0x08,0x6b,0xfe,0x85,0xf5,0x00,0x10,0xfb,
+ 0x0d,0x95,0xf6,0x00,0x00,0x6b,0x0a,0x00,0x02,0x02,
+ 0x00,0x08,0xfe,0x02,0xf6,0x00,0x0e,0xf4,0x03,0x80,
+ 0x00,0x15,0x0a,0x00,0x02,0x7e,0x00,0x7e,0x00,0x7d,
+ 0x00,0x7e,0xfe,0x7f,0xf6,0x00,0x0a,0x80,0x02,0x7e,
+ 0x01,0x7e,0x00,0x7d,0xff,0x7d,0xfe,0x7f,0xf6,0x00,
+ 0x10,0x80,0x03,0x80,0x00,0x15,0x0c,0x00,0xff,0x7e,
+ 0x03,0xed,0x03,0xfd,0x00,0x03,0x02,0x00,0x00,0x12,
+ 0x02,0x03,0x0a,0x00,0x00,0x6b,0x02,0x00,0x00,0x7d,
+ 0xfe,0x83,0xf4,0x00,0x11,0x80,0x0f,0x80,0xf4,0x00,
+ 0x00,0x15,0x0c,0x00,0xff,0xf6,0xf5,0x00,0x0f,0xf5,
+ 0x04,0x95,0x07,0x76,0x00,0x0a,0x07,0x80,0xf9,0x76,
+ 0x00,0x75,0xf8,0x80,0x07,0x0c,0x09,0xf4,0xf9,0x0c,
+ 0x09,0xf4,0x03,0x92,0x02,0x03,0x07,0x00,0x03,0x7d,
+ 0x00,0x7b,0xfc,0x7e,0x04,0x7d,0x00,0x7a,0xfd,0x7e,
+ 0xf9,0x00,0xfe,0x02,0x06,0x89,0x02,0x00,0x06,0xf5,
+ 0x03,0x95,0x00,0x6b,0x0c,0x15,0x00,0x6b,0x02,0x80,
+ 0x03,0x95,0x00,0x6b,0x0c,0x15,0x00,0x6b,0xf8,0x96,
+ 0x03,0x00,0x07,0xea,0x03,0x80,0x00,0x15,0x0c,0x80,
+ 0xf7,0x76,0xfd,0x00,0x03,0x80,0x0a,0x75,0x03,0x80,
+ 0x03,0x80,0x07,0x13,0x02,0x02,0x03,0x00,0x00,0x6b,
+ 0x02,0x80,0x03,0x80,0x00,0x15,0x09,0x6b,0x09,0x15,
+ 0x00,0x6b,0x03,0x80,0x03,0x80,0x00,0x15,0x00,0xf6,
+ 0x0d,0x00,0x00,0x8a,0x00,0x6b,0x03,0x80,0x07,0x80,
+ 0xfd,0x00,0xff,0x03,0x00,0x04,0x00,0x07,0x00,0x04,
+ 0x01,0x02,0x03,0x01,0x06,0x00,0x03,0x7f,0x01,0x7e,
+ 0x01,0x7c,0x00,0x79,0xff,0x7c,0xff,0x7d,0xfd,0x00,
+ 0xfa,0x00,0x0e,0x80,0x03,0x80,0x00,0x15,0x0c,0x00,
+ 0x00,0x6b,0x02,0x80,0x03,0x80,0x00,0x15,0x0a,0x00,
+ 0x02,0x7f,0x01,0x7d,0x00,0x7b,0xff,0x7e,0xfe,0x7f,
+ 0xf6,0x00,0x10,0xf7,0x11,0x8f,0xff,0x03,0xff,0x02,
+ 0xfe,0x01,0xfa,0x00,0xfd,0x7f,0xff,0x7e,0x00,0x7c,
+ 0x00,0x79,0x00,0x7b,0x01,0x7e,0x03,0x00,0x06,0x00,
+ 0x02,0x00,0x01,0x03,0x01,0x02,0x03,0xfb,0x03,0x95,
+ 0x0c,0x00,0xfa,0x80,0x00,0x6b,0x09,0x80,0x03,0x95,
+ 0x00,0x77,0x06,0x7a,0x06,0x06,0x00,0x09,0xfa,0xf1,
+ 0xfa,0x7a,0x0e,0x80,0x03,0x87,0x00,0x0b,0x02,0x02,
+ 0x03,0x00,0x02,0x7e,0x01,0x02,0x04,0x00,0x02,0x7e,
+ 0x00,0x75,0xfe,0x7e,0xfc,0x00,0xff,0x01,0xfe,0x7f,
+ 0xfd,0x00,0xfe,0x02,0x07,0x8e,0x00,0x6b,0x09,0x80,
+ 0x03,0x80,0x0e,0x15,0xf2,0x80,0x0e,0x6b,0x03,0x80,
+ 0x03,0x95,0x00,0x6b,0x0e,0x00,0x00,0x7d,0xfe,0x98,
+ 0x00,0x6b,0x05,0x80,0x03,0x95,0x00,0x75,0x02,0x7d,
+ 0x0a,0x00,0x00,0x8e,0x00,0x6b,0x02,0x80,0x03,0x95,
+ 0x00,0x6b,0x10,0x00,0x00,0x15,0xf8,0x80,0x00,0x6b,
+ 0x0a,0x80,0x03,0x95,0x00,0x6b,0x10,0x00,0x00,0x15,
+ 0xf8,0x80,0x00,0x6b,0x0a,0x00,0x00,0x7d,0x02,0x83,
+ 0x10,0x80,0x03,0x95,0x00,0x6b,0x09,0x00,0x03,0x02,
+ 0x00,0x08,0xfd,0x02,0xf7,0x00,0x0e,0x89,0x00,0x6b,
+ 0x03,0x80,0x03,0x95,0x00,0x6b,0x09,0x00,0x03,0x02,
+ 0x00,0x08,0xfd,0x02,0xf7,0x00,0x0e,0xf4,0x03,0x92,
+ 0x02,0x03,0x07,0x00,0x03,0x7d,0x00,0x70,0xfd,0x7e,
+ 0xf9,0x00,0xfe,0x02,0x03,0x89,0x09,0x00,0x02,0xf5,
+ 0x03,0x80,0x00,0x15,0x00,0xf5,0x07,0x00,0x00,0x08,
+ 0x02,0x03,0x06,0x00,0x02,0x7d,0x00,0x70,0xfe,0x7e,
+ 0xfa,0x00,0xfe,0x02,0x00,0x08,0x0c,0xf6,0x0f,0x80,
+ 0x00,0x15,0xf6,0x00,0xfe,0x7d,0x00,0x79,0x02,0x7e,
+ 0x0a,0x00,0xf4,0xf7,0x07,0x09,0x07,0xf7,0x03,0x8c,
+ 0x01,0x02,0x01,0x01,0x05,0x00,0x02,0x7f,0x01,0x7e,
+ 0x00,0x74,0x00,0x86,0xff,0x01,0xfe,0x01,0xfb,0x00,
+ 0xff,0x7f,0xff,0x7f,0x00,0x7c,0x01,0x7e,0x01,0x00,
+ 0x05,0x00,0x02,0x00,0x01,0x02,0x03,0xfe,0x04,0x8e,
+ 0x02,0x01,0x04,0x00,0x02,0x7f,0x01,0x7e,0x00,0x77,
+ 0xff,0x7e,0xfe,0x7f,0xfc,0x00,0xfe,0x01,0xff,0x02,
+ 0x00,0x09,0x01,0x02,0x02,0x02,0x03,0x01,0x02,0x01,
+ 0x01,0x01,0x01,0x02,0x02,0xeb,0x03,0x80,0x00,0x15,
+ 0x03,0x00,0x02,0x7e,0x00,0x7b,0xfe,0x7e,0xfd,0x00,
+ 0x03,0x80,0x04,0x00,0x03,0x7e,0x00,0x78,0xfd,0x7e,
+ 0xf9,0x00,0x0c,0x80,0x03,0x8c,0x02,0x02,0x02,0x01,
+ 0x03,0x00,0x02,0x7f,0x01,0x7d,0xfe,0x7e,0xf9,0x7d,
+ 0xff,0x7e,0x00,0x7d,0x03,0x7f,0x02,0x00,0x03,0x01,
+ 0x02,0x01,0x02,0xfe,0x0d,0x8c,0xff,0x02,0xfe,0x01,
+ 0xfc,0x00,0xfe,0x7f,0xff,0x7e,0x00,0x77,0x01,0x7e,
+ 0x02,0x7f,0x04,0x00,0x02,0x01,0x01,0x02,0x00,0x0f,
+ 0xff,0x02,0xfe,0x01,0xf9,0x00,0x0c,0xeb,0x03,0x88,
+ 0x0a,0x00,0x00,0x02,0x00,0x03,0xfe,0x02,0xfa,0x00,
+ 0xff,0x7e,0xff,0x7d,0x00,0x7b,0x01,0x7c,0x01,0x7f,
+ 0x06,0x00,0x02,0x02,0x03,0xfe,0x03,0x8f,0x06,0x77,
+ 0x06,0x09,0xfa,0x80,0x00,0x71,0xff,0x87,0xfb,0x79,
+ 0x07,0x87,0x05,0x79,0x02,0x80,0x03,0x8d,0x02,0x02,
+ 0x06,0x00,0x02,0x7e,0x00,0x7d,0xfc,0x7d,0x04,0x7e,
+ 0x00,0x7d,0xfe,0x7e,0xfa,0x00,0xfe,0x02,0x04,0x85,
+ 0x02,0x00,0x06,0xf9,0x03,0x8f,0x00,0x73,0x01,0x7e,
+ 0x07,0x00,0x02,0x02,0x00,0x0d,0x00,0xf3,0x01,0x7e,
+ 0x03,0x80,0x03,0x8f,0x00,0x73,0x01,0x7e,0x07,0x00,
+ 0x02,0x02,0x00,0x0d,0x00,0xf3,0x01,0x7e,0xf8,0x90,
+ 0x03,0x00,0x08,0xf0,0x03,0x80,0x00,0x15,0x00,0xf3,
+ 0x02,0x00,0x06,0x07,0xfa,0xf9,0x07,0x78,0x03,0x80,
+ 0x03,0x80,0x04,0x0c,0x02,0x03,0x04,0x00,0x00,0x71,
+ 0x02,0x80,0x03,0x80,0x00,0x0f,0x06,0x77,0x06,0x09,
+ 0x00,0x71,0x02,0x80,0x03,0x80,0x00,0x0f,0x0a,0xf1,
+ 0x00,0x0f,0xf6,0xf8,0x0a,0x00,0x02,0xf9,0x05,0x80,
+ 0xff,0x01,0xff,0x04,0x00,0x05,0x01,0x03,0x01,0x02,
+ 0x06,0x00,0x02,0x7e,0x00,0x7d,0x00,0x7b,0x00,0x7c,
+ 0xfe,0x7f,0xfa,0x00,0x0b,0x80,0x03,0x80,0x00,0x0f,
+ 0x00,0xfb,0x01,0x03,0x01,0x02,0x05,0x00,0x02,0x7e,
+ 0x01,0x7d,0x00,0x76,0x03,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,0x10,0x80,
+ 0x10,0x80,0x0a,0x8f,0x02,0x7f,0x01,0x7e,0x00,0x76,
+ 0xff,0x7f,0xfe,0x7f,0xfb,0x00,0xff,0x01,0xff,0x01,
+ 0x00,0x0a,0x01,0x02,0x01,0x01,0x05,0x00,0xf9,0x80,
+ 0x00,0x6b,0x0c,0x86,0x0d,0x8a,0xff,0x03,0xfe,0x02,
+ 0xfb,0x00,0xff,0x7e,0xff,0x7d,0x00,0x7b,0x01,0x7c,
+ 0x01,0x7f,0x05,0x00,0x02,0x01,0x01,0x03,0x03,0xfc,
+ 0x03,0x80,0x00,0x0f,0x00,0xfb,0x01,0x03,0x01,0x02,
+ 0x04,0x00,0x01,0x7e,0x01,0x7d,0x00,0x76,0x00,0x8a,
+ 0x01,0x03,0x02,0x02,0x03,0x00,0x02,0x7e,0x01,0x7d,
+ 0x00,0x76,0x03,0x80,0x03,0x8f,0x00,0x74,0x01,0x7e,
+ 0x02,0x7f,0x04,0x00,0x02,0x01,0x01,0x01,0x00,0x8d,
+ 0x00,0x6e,0xff,0x7e,0xfe,0x7f,0xfb,0x00,0xfe,0x01,
+ 0x0c,0x85,0x03,0x8d,0x01,0x02,0x03,0x00,0x02,0x7e,
+ 0x01,0x02,0x03,0x00,0x02,0x7e,0x00,0x74,0xfe,0x7f,
+ 0xfd,0x00,0xff,0x01,0xfe,0x7f,0xfd,0x00,0xff,0x01,
+ 0x00,0x0c,0x06,0x82,0x00,0x6b,0x08,0x86,0x03,0x80,
+ 0x0a,0x0f,0xf6,0x80,0x0a,0x71,0x03,0x80,0x03,0x8f,
+ 0x00,0x73,0x01,0x7e,0x07,0x00,0x02,0x02,0x00,0x0d,
+ 0x00,0xf3,0x01,0x7e,0x00,0x7e,0x03,0x82,0x03,0x8f,
+ 0x00,0x79,0x02,0x7e,0x08,0x00,0x00,0x89,0x00,0x71,
+ 0x02,0x80,0x03,0x8f,0x00,0x73,0x01,0x7e,0x03,0x00,
+ 0x02,0x02,0x00,0x0d,0x00,0xf3,0x01,0x7e,0x03,0x00,
+ 0x02,0x02,0x00,0x0d,0x00,0xf3,0x01,0x7e,0x03,0x80,
+ 0x03,0x8f,0x00,0x73,0x01,0x7e,0x03,0x00,0x02,0x02,
+ 0x00,0x0d,0x00,0xf3,0x01,0x7e,0x03,0x00,0x02,0x02,
+ 0x00,0x0d,0x00,0xf3,0x01,0x7e,0x00,0x7e,0x03,0x82,
+ 0x03,0x8d,0x00,0x02,0x02,0x00,0x00,0x71,0x08,0x00,
+ 0x02,0x02,0x00,0x06,0xfe,0x02,0xf8,0x00,0x0c,0xf6,
+ 0x03,0x8f,0x00,0x71,0x07,0x00,0x02,0x02,0x00,0x06,
+ 0xfe,0x02,0xf9,0x00,0x0c,0x85,0x00,0x71,0x02,0x80,
+ 0x03,0x8f,0x00,0x71,0x07,0x00,0x03,0x02,0x00,0x06,
+ 0xfd,0x02,0xf9,0x00,0x0c,0xf6,0x03,0x8d,0x02,0x02,
+ 0x06,0x00,0x02,0x7e,0x00,0x75,0xfe,0x7e,0xfa,0x00,
+ 0xfe,0x02,0x04,0x85,0x06,0x00,0x02,0xf9,0x03,0x80,
+ 0x00,0x0f,0x00,0xf8,0x04,0x00,0x00,0x06,0x02,0x02,
+ 0x04,0x00,0x02,0x7e,0x00,0x75,0xfe,0x7e,0xfc,0x00,
+ 0xfe,0x02,0x00,0x05,0x0a,0xf9,0x0d,0x80,0x00,0x0f,
+ 0xf7,0x00,0xff,0x7e,0x00,0x7b,0x01,0x7e,0x09,0x00,
+ 0xf6,0xfa,0x04,0x06,0x08,0xfa
+ };
+
+
+
+ //-------------------------------------------------------------------------
+ gsv_text::~gsv_text()
+ {
+ if(m_loaded_font) delete [] m_loaded_font;
+ if(m_text_buf) delete [] m_text_buf;
+ }
+
+
+ //-------------------------------------------------------------------------
+ gsv_text::gsv_text() :
+ m_x(0.0),
+ m_y(0.0),
+ m_start_x(0.0),
+ m_width(10.0),
+ m_height(0.0),
+ m_space(0.0),
+ m_line_space(0.0),
+ m_text(m_chr),
+ m_text_buf(0),
+ m_buf_size(0),
+ m_cur_chr(m_chr),
+ m_font(gsv_default_font),
+ m_loaded_font(0),
+ m_status(initial),
+ m_big_endian(false),
+ m_flip(false)
+ {
+ m_chr[0] = m_chr[1] = 0;
+
+ int t = 1;
+ if(*(char*)&t == 0) m_big_endian = true;
+ }
+
+
+
+ //-------------------------------------------------------------------------
+ void gsv_text::font(const void* _font)
+ {
+ m_font = _font;
+ if(m_font == 0) m_font = m_loaded_font;
+ }
+
+ //-------------------------------------------------------------------------
+ void gsv_text::size(double height, double width)
+ {
+ m_height = height;
+ m_width = width;
+ }
+
+ //-------------------------------------------------------------------------
+ void gsv_text::space(double _space)
+ {
+ m_space = _space;
+ }
+
+ //-------------------------------------------------------------------------
+ void gsv_text::line_space(double _line_space)
+ {
+ m_line_space = _line_space;
+ }
+
+ //-------------------------------------------------------------------------
+ void gsv_text::start_point(double x, double y)
+ {
+ m_x = m_start_x = x;
+ m_y = y;
+ //if(m_flip) m_y += m_height;
+ }
+
+
+ //-------------------------------------------------------------------------
+ void gsv_text::load_font(const char* file)
+ {
+ if(m_loaded_font) delete [] m_loaded_font;
+ m_loaded_font = 0;
+
+ FILE* fd = fopen(file, "rb");
+ if(fd)
+ {
+ unsigned len;
+
+ fseek(fd, 0l, SEEK_END);
+ len = ftell(fd);
+ fseek(fd, 0l, SEEK_SET);
+ if(len > 0)
+ {
+ m_loaded_font = new char [len];
+ fread(m_loaded_font, 1, len, fd);
+ m_font = m_loaded_font;
+ }
+ fclose(fd);
+ }
+ }
+
+
+ //-------------------------------------------------------------------------
+ void gsv_text::text(const char* _text)
+ {
+ if(_text == 0)
+ {
+ m_chr[0] = 0;
+ m_text = m_chr;
+ return;
+ }
+ unsigned new_size = strlen(_text) + 1;
+ if(new_size > m_buf_size)
+ {
+ if(m_text_buf) delete [] m_text_buf;
+ m_text_buf = new char [m_buf_size = new_size];
+ }
+ memcpy(m_text_buf, _text, new_size);
+ m_text = m_text_buf;
+ }
+
+
+
+ //-------------------------------------------------------------------------
+ void gsv_text::rewind(unsigned)
+ {
+ m_status = initial;
+ if(m_font == 0) return;
+
+ m_indices = (int8u*)m_font;
+ double base_height = value(m_indices + 4);
+ m_indices += value(m_indices);
+ m_glyphs = (int8*)(m_indices + 257*2);
+ m_h = m_height / base_height;
+ m_w = (m_width == 0.0) ? m_h : m_width / base_height;
+ if(m_flip) m_h = -m_h;
+ m_cur_chr = m_text;
+ }
+
+
+ //-------------------------------------------------------------------------
+ unsigned gsv_text::vertex(double* x, double* y)
+ {
+ unsigned idx;
+ int8 yc, yf;
+ int dx, dy;
+ bool quit = false;
+
+
+ while(!quit)
+ {
+ switch(m_status)
+ {
+ case initial:
+ if(m_font == 0)
+ {
+ quit = true;
+ break;
+ }
+ m_status = next_char;
+
+ case next_char:
+ if(*m_cur_chr == 0)
+ {
+ quit = true;
+ break;
+ }
+ idx = (*m_cur_chr++) & 0xFF;
+ if(idx == '\n')
+ {
+ m_x = m_start_x;
+ m_y -= m_flip ? -m_height - m_line_space : m_height + m_line_space;
+ break;
+ }
+ idx <<= 1;
+ m_bglyph = m_glyphs + value(m_indices + idx);
+ m_eglyph = m_glyphs + value(m_indices + idx + 2);
+ m_status = start_glyph;
+
+ case start_glyph:
+ *x = m_x;
+ *y = m_y;
+ m_status = glyph;
+ return path_cmd_move_to;
+
+ case glyph:
+ if(m_bglyph >= m_eglyph)
+ {
+ m_status = next_char;
+ m_x += m_space;
+ break;
+ }
+ dx = int(*m_bglyph++);
+ yf = (yc = *m_bglyph++) & 0x80;
+ yc <<= 1;
+ yc >>= 1;
+ dy = int(yc);
+ m_x += double(dx) * m_w;
+ m_y += double(dy) * m_h;
+ *x = m_x;
+ *y = m_y;
+ return yf ? path_cmd_move_to : path_cmd_line_to;
+ }
+
+ }
+ return path_cmd_stop;
+ }
+
+
+
+}
diff --git a/agg/source/agg_image_filters.cpp b/agg/source/agg_image_filters.cpp
new file mode 100755
index 000000000000..28dd0654eeb4
--- /dev/null
+++ b/agg/source/agg_image_filters.cpp
@@ -0,0 +1,120 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Filtering class image_filter_lut implemantation
+//
+//----------------------------------------------------------------------------
+
+
+#include "agg_image_filters.h"
+
+
+namespace agg
+{
+
+ //--------------------------------------------------------------------
+ image_filter_lut::~image_filter_lut()
+ {
+ delete [] m_weight_array;
+ }
+
+
+ //--------------------------------------------------------------------
+ image_filter_lut::image_filter_lut() :
+ m_weight_array(0),
+ m_max_size(0)
+ {}
+
+ //--------------------------------------------------------------------
+ void image_filter_lut::realloc(double _radius)
+ {
+ m_radius = _radius;
+ m_diameter = unsigned(ceil(_radius)) * 2;
+ m_start = -int(m_diameter / 2 - 1);
+ unsigned size = m_diameter << image_subpixel_shift;
+ if(size > m_max_size)
+ {
+ delete [] m_weight_array;
+ m_weight_array = new int16 [size];
+ m_max_size = size;
+ }
+ }
+
+
+
+ //--------------------------------------------------------------------
+ // This function normalizes integer values and corrects the rounding
+ // errors. It doesn't do anything with the source floating point values
+ // (m_weight_array_dbl), it corrects only integers according to the rule
+ // of 1.0 which means that any sum of pixel weights must be equal to 1.0.
+ // So, the filter function must produce a graph of the proper shape.
+ //--------------------------------------------------------------------
+ void image_filter_lut::normalize()
+ {
+ unsigned i;
+ int flip = 1;
+
+ for(i = 0; i < image_subpixel_size; i++)
+ {
+ for(;;)
+ {
+ int sum = 0;
+ unsigned j;
+ for(j = 0; j < m_diameter; j++)
+ {
+ sum += m_weight_array[j * image_subpixel_size + i];
+ }
+
+ if(sum == image_filter_size) break;
+
+ double k = double(image_filter_size) / double(sum);
+ sum = 0;
+ for(j = 0; j < m_diameter; j++)
+ {
+ sum += m_weight_array[j * image_subpixel_size + i] =
+ int16(m_weight_array[j * image_subpixel_size + i] * k);
+ }
+
+ sum -= image_filter_size;
+ int16 inc = (sum > 0) ? -1 : 1;
+
+ for(j = 0; j < m_diameter && sum; j++)
+ {
+ flip ^= 1;
+ unsigned idx = flip ? m_diameter/2 + j/2 : m_diameter/2 - j/2;
+ int v = m_weight_array[idx * image_subpixel_size + i];
+ if(v < image_filter_size)
+ {
+ m_weight_array[idx * image_subpixel_size + i] =
+ m_weight_array[idx * image_subpixel_size + i] + inc;
+ sum += inc;
+ }
+ }
+ }
+ }
+
+ unsigned pivot = m_diameter << (image_subpixel_shift - 1);
+
+ for(i = 0; i < pivot; i++)
+ {
+ m_weight_array[pivot + i] = m_weight_array[pivot - i];
+ }
+ unsigned end = (diameter() << image_subpixel_shift) - 1;
+ m_weight_array[0] = m_weight_array[end];
+ }
+
+
+}
+
diff --git a/agg/source/agg_line_aa_basics.cpp b/agg/source/agg_line_aa_basics.cpp
new file mode 100755
index 000000000000..34103178d7b7
--- /dev/null
+++ b/agg/source/agg_line_aa_basics.cpp
@@ -0,0 +1,82 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_line_aa_basics.h"
+
+namespace agg
+{
+ //-------------------------------------------------------------------------
+ // The number of the octant is determined as a 3-bit value as follows:
+ // bit 0 = vertical flag
+ // bit 1 = sx < 0
+ // bit 2 = sy < 0
+ //
+ // [N] shows the number of the orthogonal quadrant
+ // <M> shows the number of the diagonal quadrant
+ // <1>
+ // [1] | [0]
+ // . (3)011 | 001(1) .
+ // . | .
+ // . | .
+ // . | .
+ // (2)010 .|. 000(0)
+ // <2> ----------.+.----------- <0>
+ // (6)110 . | . 100(4)
+ // . | .
+ // . | .
+ // . | .
+ // (7)111 | 101(5)
+ // [2] | [3]
+ // <3>
+ // 0,1,2,3,4,5,6,7
+ int8u line_parameters::s_orthogonal_quadrant[8] = { 0,0,1,1,3,3,2,2 };
+ int8u line_parameters::s_diagonal_quadrant[8] = { 0,1,2,1,0,3,2,3 };
+
+
+
+ //-------------------------------------------------------------------------
+ void bisectrix(const line_parameters& l1,
+ const line_parameters& l2,
+ int* x, int* y)
+ {
+ double k = double(l2.len) / double(l1.len);
+ double tx = l2.x2 - (l2.x1 - l1.x1) * k;
+ double ty = l2.y2 - (l2.y1 - l1.y1) * k;
+
+ //All bisectrices must be on the right of the line
+ //If the next point is on the left (l1 => l2.2)
+ //then the bisectix should be rotated by 180 degrees.
+ if(double(l2.x2 - l2.x1) * double(l2.y1 - l1.y1) <
+ double(l2.y2 - l2.y1) * double(l2.x1 - l1.x1) + 100.0)
+ {
+ tx -= (tx - l2.x1) * 2.0;
+ ty -= (ty - l2.y1) * 2.0;
+ }
+
+ // Check if the bisectrix is too short
+ double dx = tx - l2.x1;
+ double dy = ty - l2.y1;
+ if((int)sqrt(dx * dx + dy * dy) < line_subpixel_size)
+ {
+ *x = (l2.x1 + l2.x1 + (l2.y1 - l1.y1) + (l2.y2 - l2.y1)) >> 1;
+ *y = (l2.y1 + l2.y1 - (l2.x1 - l1.x1) - (l2.x2 - l2.x1)) >> 1;
+ return;
+ }
+ *x = int(tx);
+ *y = int(ty);
+ }
+
+}
diff --git a/agg/source/agg_line_profile_aa.cpp b/agg/source/agg_line_profile_aa.cpp
new file mode 100755
index 000000000000..1374475b663f
--- /dev/null
+++ b/agg/source/agg_line_profile_aa.cpp
@@ -0,0 +1,117 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_renderer_outline_aa.h"
+
+namespace agg
+{
+
+ //---------------------------------------------------------------------
+ void line_profile_aa::width(double w)
+ {
+ if(w < 0.0) w = 0.0;
+
+ if(w < m_smoother_width) w += w;
+ else w += m_smoother_width;
+
+ w *= 0.5;
+
+ w -= m_smoother_width;
+ double s = m_smoother_width;
+ if(w < 0.0)
+ {
+ s += w;
+ w = 0.0;
+ }
+ set(w, s);
+ }
+
+
+ //---------------------------------------------------------------------
+ line_profile_aa::value_type* line_profile_aa::profile(double w)
+ {
+ m_subpixel_width = int(w * subpixel_size);
+ unsigned size = m_subpixel_width + subpixel_size * 6;
+ if(size > m_size)
+ {
+ delete [] m_profile;
+ m_profile = new value_type[m_size = size];
+ }
+ return m_profile;
+ }
+
+
+ //---------------------------------------------------------------------
+ void line_profile_aa::set(double center_width, double _smoother_width)
+ {
+ double base_val = 1.0;
+ if(center_width == 0.0) center_width = 1.0 / subpixel_size;
+ if(_smoother_width == 0.0) _smoother_width = 1.0 / subpixel_size;
+
+ double _width = center_width + _smoother_width;
+ if(_width < m_min_width)
+ {
+ double k = _width / m_min_width;
+ base_val *= k;
+ center_width /= k;
+ _smoother_width /= k;
+ }
+
+ value_type* ch = profile(center_width + _smoother_width);
+
+ unsigned subpixel_center_width = unsigned(center_width * subpixel_size);
+ unsigned subpixel_smoother_width = unsigned(_smoother_width * subpixel_size);
+
+ value_type* ch_center = ch + subpixel_size*2;
+ value_type* ch_smoother = ch_center + subpixel_center_width;
+
+ unsigned i;
+
+ unsigned val = m_gamma[unsigned(base_val * aa_mask)];
+ ch = ch_center;
+ for(i = 0; i < subpixel_center_width; i++)
+ {
+ *ch++ = (value_type)val;
+ }
+
+ for(i = 0; i < subpixel_smoother_width; i++)
+ {
+ *ch_smoother++ =
+ m_gamma[unsigned((base_val -
+ base_val *
+ (double(i) / subpixel_smoother_width)) * aa_mask)];
+ }
+
+ unsigned n_smoother = profile_size() -
+ subpixel_smoother_width -
+ subpixel_center_width -
+ subpixel_size*2;
+
+ val = m_gamma[0];
+ for(i = 0; i < n_smoother; i++)
+ {
+ *ch_smoother++ = (value_type)val;
+ }
+
+ ch = ch_center;
+ for(i = 0; i < subpixel_size*2; i++)
+ {
+ *--ch = *ch_center++;
+ }
+ }
+
+
+}
+
diff --git a/agg/source/agg_path_storage.cpp b/agg/source/agg_path_storage.cpp
new file mode 100755
index 000000000000..60eafffff14f
--- /dev/null
+++ b/agg/source/agg_path_storage.cpp
@@ -0,0 +1,525 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class path_storage
+//
+//----------------------------------------------------------------------------
+#include <string.h>
+#include <math.h>
+#include "agg_path_storage.h"
+#include "agg_math.h"
+#include "agg_bezier_arc.h"
+
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ path_storage::~path_storage()
+ {
+ if(m_total_blocks)
+ {
+ double** coord_blk = m_coord_blocks + m_total_blocks - 1;
+ while(m_total_blocks--)
+ {
+ delete [] *coord_blk;
+ --coord_blk;
+ }
+ delete [] m_coord_blocks;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ path_storage::path_storage() :
+ m_total_vertices(0),
+ m_total_blocks(0),
+ m_max_blocks(0),
+ m_coord_blocks(0),
+ m_cmd_blocks(0),
+ m_iterator(0)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ path_storage::path_storage(const path_storage& ps) :
+ m_total_vertices(0),
+ m_total_blocks(0),
+ m_max_blocks(0),
+ m_coord_blocks(0),
+ m_cmd_blocks(0),
+ m_iterator(0)
+ {
+ copy_from(ps);
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::remove_all()
+ {
+ m_total_vertices = 0;
+ m_iterator = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::copy_from(const path_storage& ps)
+ {
+ remove_all();
+ unsigned i;
+ for(i = 0; i < ps.total_vertices(); i++)
+ {
+ double x, y;
+ unsigned cmd = ps.vertex(i, &x, &y);
+ add_vertex(x, y, cmd);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::allocate_block(unsigned nb)
+ {
+ if(nb >= m_max_blocks)
+ {
+ double** new_coords =
+ new double* [(m_max_blocks + block_pool) * 2];
+
+ unsigned char** new_cmds =
+ (unsigned char**)(new_coords + m_max_blocks + block_pool);
+
+ if(m_coord_blocks)
+ {
+ memcpy(new_coords,
+ m_coord_blocks,
+ m_max_blocks * sizeof(double*));
+
+ memcpy(new_cmds,
+ m_cmd_blocks,
+ m_max_blocks * sizeof(unsigned char*));
+
+ delete [] m_coord_blocks;
+ }
+ m_coord_blocks = new_coords;
+ m_cmd_blocks = new_cmds;
+ m_max_blocks += block_pool;
+ }
+ m_coord_blocks[nb] =
+ new double [block_size * 2 +
+ block_size /
+ (sizeof(double) / sizeof(unsigned char))];
+
+ m_cmd_blocks[nb] =
+ (unsigned char*)(m_coord_blocks[nb] + block_size * 2);
+
+ m_total_blocks++;
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::rewind(unsigned path_id)
+ {
+ m_iterator = path_id;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void path_storage::arc_to(double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double x, double y)
+ {
+ if(m_total_vertices && is_vertex(command(m_total_vertices - 1)))
+ {
+ const double epsilon = 1e-30;
+ double x0 = 0.0;
+ double y0 = 0.0;
+ last_vertex(&x0, &y0);
+
+ rx = fabs(rx);
+ ry = fabs(ry);
+
+ // Ensure radii are valid
+ //-------------------------
+ if(rx < epsilon || ry < epsilon)
+ {
+ line_to(x, y);
+ return;
+ }
+
+ if(calc_distance(x0, y0, x, y) < epsilon)
+ {
+ // If the endpoints (x, y) and (x0, y0) are identical, then this
+ // is equivalent to omitting the elliptical arc segment entirely.
+ return;
+ }
+ bezier_arc_svg a(x0, y0, rx, ry, angle, large_arc_flag, sweep_flag, x, y);
+ if(a.radii_ok())
+ {
+ add_path(a, 0, true);
+ }
+ else
+ {
+ line_to(x, y);
+ }
+ }
+ else
+ {
+ move_to(x, y);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::arc_rel(double rx, double ry,
+ double angle,
+ bool large_arc_flag,
+ bool sweep_flag,
+ double dx, double dy)
+ {
+ rel_to_abs(&dx, &dy);
+ arc_to(rx, ry, angle, large_arc_flag, sweep_flag, dx, dy);
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::curve3(double x_ctrl, double y_ctrl,
+ double x_to, double y_to)
+ {
+ add_vertex(x_ctrl, y_ctrl, path_cmd_curve3);
+ add_vertex(x_to, y_to, path_cmd_curve3);
+ }
+
+ //------------------------------------------------------------------------
+ void path_storage::curve3_rel(double dx_ctrl, double dy_ctrl,
+ double dx_to, double dy_to)
+ {
+ rel_to_abs(&dx_ctrl, &dy_ctrl);
+ rel_to_abs(&dx_to, &dy_to);
+ add_vertex(dx_ctrl, dy_ctrl, path_cmd_curve3);
+ add_vertex(dx_to, dy_to, path_cmd_curve3);
+ }
+
+ //------------------------------------------------------------------------
+ void path_storage::curve3(double x_to, double y_to)
+ {
+ double x0 = 0;
+ double y0 = 0;
+ if(is_vertex(last_vertex(&x0, &y0)))
+ {
+ double x_ctrl = 0;
+ double y_ctrl = 0;
+ unsigned cmd = prev_vertex(&x_ctrl, &y_ctrl);
+ if(is_curve(cmd))
+ {
+ x_ctrl = x0 + x0 - x_ctrl;
+ y_ctrl = y0 + y0 - y_ctrl;
+ }
+ else
+ {
+ x_ctrl = x0;
+ y_ctrl = y0;
+ }
+ curve3(x_ctrl, y_ctrl, x_to, y_to);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::curve3_rel(double dx_to, double dy_to)
+ {
+ rel_to_abs(&dx_to, &dy_to);
+ curve3(dx_to, dy_to);
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::curve4(double x_ctrl1, double y_ctrl1,
+ double x_ctrl2, double y_ctrl2,
+ double x_to, double y_to)
+ {
+ add_vertex(x_ctrl1, y_ctrl1, path_cmd_curve4);
+ add_vertex(x_ctrl2, y_ctrl2, path_cmd_curve4);
+ add_vertex(x_to, y_to, path_cmd_curve4);
+ }
+
+ //------------------------------------------------------------------------
+ void path_storage::curve4_rel(double dx_ctrl1, double dy_ctrl1,
+ double dx_ctrl2, double dy_ctrl2,
+ double dx_to, double dy_to)
+ {
+ rel_to_abs(&dx_ctrl1, &dy_ctrl1);
+ rel_to_abs(&dx_ctrl2, &dy_ctrl2);
+ rel_to_abs(&dx_to, &dy_to);
+ add_vertex(dx_ctrl1, dy_ctrl1, path_cmd_curve4);
+ add_vertex(dx_ctrl2, dy_ctrl2, path_cmd_curve4);
+ add_vertex(dx_to, dy_to, path_cmd_curve4);
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::curve4(double x_ctrl2, double y_ctrl2,
+ double x_to, double y_to)
+ {
+ double x0 = 0;
+ double y0 = 0;
+ if(is_vertex(last_vertex(&x0, &y0)))
+ {
+ double x_ctrl1 = 0;
+ double y_ctrl1 = 0;
+ unsigned cmd = prev_vertex(&x_ctrl1, &y_ctrl1);
+ if(is_curve(cmd))
+ {
+ x_ctrl1 = x0 + x0 - x_ctrl1;
+ y_ctrl1 = y0 + y0 - y_ctrl1;
+ }
+ else
+ {
+ x_ctrl1 = x0;
+ y_ctrl1 = y0;
+ }
+ curve4(x_ctrl1, y_ctrl1, x_ctrl2, y_ctrl2, x_to, y_to);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::curve4_rel(double dx_ctrl2, double dy_ctrl2,
+ double dx_to, double dy_to)
+ {
+ rel_to_abs(&dx_ctrl2, &dy_ctrl2);
+ rel_to_abs(&dx_to, &dy_to);
+ curve4(dx_ctrl2, dy_ctrl2, dx_to, dy_to);
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::end_poly(unsigned flags)
+ {
+ if(m_total_vertices)
+ {
+ if(is_vertex(command(m_total_vertices - 1)))
+ {
+ add_vertex(0.0, 0.0, path_cmd_end_poly | flags);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned path_storage::start_new_path()
+ {
+ if(m_total_vertices)
+ {
+ if(!is_stop(command(m_total_vertices - 1)))
+ {
+ add_vertex(0.0, 0.0, path_cmd_stop);
+ }
+ }
+ return m_total_vertices;
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::add_poly(const double* vertices, unsigned num,
+ bool solid_path, unsigned end_flags)
+ {
+ if(num)
+ {
+ if(!solid_path)
+ {
+ move_to(vertices[0], vertices[1]);
+ vertices += 2;
+ --num;
+ }
+ while(num--)
+ {
+ line_to(vertices[0], vertices[1]);
+ vertices += 2;
+ }
+ if(end_flags) end_poly(end_flags);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned path_storage::perceive_polygon_orientation(unsigned idx,
+ double xs, double ys,
+ unsigned* orientation)
+ {
+ unsigned i;
+ double sum = 0.0;
+ double x, y, xn, yn;
+
+ x = xs;
+ y = ys;
+ for(i = idx; i < m_total_vertices; ++i)
+ {
+ if(is_next_poly(vertex(i, &xn, &yn))) break;
+ sum += x * yn - y * xn;
+ x = xn;
+ y = yn;
+ }
+ if(i > idx) sum += x * ys - y * xs;
+ *orientation = path_flags_none;
+ if(sum != 0.0)
+ {
+ *orientation = (sum < 0.0) ? path_flags_cw : path_flags_ccw;
+ }
+ return i;
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::reverse_polygon(unsigned _start, unsigned _end)
+ {
+ unsigned i;
+ unsigned tmp_cmd = command(_start);
+
+ // Shift all commands to one position
+ for(i = _start; i < _end; i++)
+ {
+ modify_command(i, command(i + 1));
+ }
+
+ // Assign starting command to the ending command
+ modify_command(_end, tmp_cmd);
+
+ // Reverse the polygon
+ while(_end > _start)
+ {
+ unsigned start_nb = _start >> block_shift;
+ unsigned end_nb = _end >> block_shift;
+ double* start_ptr = m_coord_blocks[start_nb] + ((_start & block_mask) << 1);
+ double* end_ptr = m_coord_blocks[end_nb] + ((_end & block_mask) << 1);
+ double tmp_xy;
+
+ tmp_xy = *start_ptr;
+ *start_ptr++ = *end_ptr;
+ *end_ptr++ = tmp_xy;
+
+ tmp_xy = *start_ptr;
+ *start_ptr = *end_ptr;
+ *end_ptr = tmp_xy;
+
+ tmp_cmd = m_cmd_blocks[start_nb][_start & block_mask];
+ m_cmd_blocks[start_nb][_start & block_mask] = m_cmd_blocks[end_nb][_end & block_mask];
+ m_cmd_blocks[end_nb][_end & block_mask] = (unsigned char)tmp_cmd;
+
+ ++_start;
+ --_end;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned path_storage::arrange_orientations(unsigned path_id,
+ path_flags_e new_orientation)
+ {
+ unsigned _end = m_total_vertices;
+ if(m_total_vertices && new_orientation != path_flags_none)
+ {
+ unsigned start = path_id;
+
+ double xs, ys;
+ unsigned cmd = vertex(start, &xs, &ys);
+ unsigned inc = 0;
+ for(;;)
+ {
+ unsigned orientation;
+ _end = perceive_polygon_orientation(start + 1, xs, ys,
+ &orientation);
+ if(_end > start + 2 &&
+ orientation &&
+ orientation != unsigned(new_orientation))
+ {
+ reverse_polygon(start + inc, _end - 1);
+ }
+ if(_end >= m_total_vertices) break;
+ cmd = command(_end);
+ if(is_stop(cmd))
+ {
+ ++_end;
+ break;
+ }
+ if(is_end_poly(cmd))
+ {
+ inc = 1;
+ modify_command(_end, set_orientation(cmd, new_orientation));
+ }
+ else
+ {
+ cmd = vertex(++_end, &xs, &ys);
+ inc = 0;
+ }
+ start = _end;
+ }
+ }
+ return _end;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void path_storage::arrange_orientations_all_paths(path_flags_e new_orientation)
+ {
+ if(new_orientation != path_flags_none)
+ {
+ unsigned start = 0;
+ while(start < m_total_vertices)
+ {
+ start = arrange_orientations(start, new_orientation);
+ }
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void path_storage::flip_x(double x1, double x2)
+ {
+ unsigned i;
+ double x, y;
+ for(i = 0; i < m_total_vertices; i++)
+ {
+ unsigned cmd = vertex(i, &x, &y);
+ if(is_vertex(cmd))
+ {
+ modify_vertex(i, x2 - x + x1, y);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void path_storage::flip_y(double y1, double y2)
+ {
+ unsigned i;
+ double x, y;
+ for(i = 0; i < m_total_vertices; i++)
+ {
+ unsigned cmd = vertex(i, &x, &y);
+ if(is_vertex(cmd))
+ {
+ modify_vertex(i, x, y2 - y + y1);
+ }
+ }
+ }
+
+
+}
+
diff --git a/agg/source/agg_rasterizer_scanline_aa.cpp b/agg/source/agg_rasterizer_scanline_aa.cpp
new file mode 100755
index 000000000000..421c0187d0aa
--- /dev/null
+++ b/agg/source/agg_rasterizer_scanline_aa.cpp
@@ -0,0 +1,621 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+// The author gratefully acknowleges the support of David Turner,
+// Robert Wilhelm, and Werner Lemberg - the authors of the FreeType
+// libray - in producing this work. See http://www.freetype.org for details.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Class outline_aa - implementation.
+//
+// Initially the rendering algorithm was designed by David Turner and the
+// other authors of the FreeType library - see the above notice. I nearly
+// created a similar renderer, but still I was far from David's work.
+// I completely redesigned the original code and adapted it for Anti-Grain
+// ideas. Two functions - render_line and render_hline are the core of
+// the algorithm - they calculate the exact coverage of each pixel cell
+// of the polygon. I left these functions almost as is, because there's
+// no way to improve the perfection - hats off to David and his group!
+//
+// All other code is very different from the original.
+//
+//----------------------------------------------------------------------------
+
+#include <string.h>
+#include "agg_rasterizer_scanline_aa.h"
+
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void cell_aa::set_cover(int c, int a)
+ {
+ cover = c;
+ area = a;
+ }
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void cell_aa::add_cover(int c, int a)
+ {
+ cover += c;
+ area += a;
+ }
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void cell_aa::set_coord(int cx, int cy)
+ {
+ x = int16(cx);
+ y = int16(cy);
+ packed_coord = (cy << 16) + cx;
+ }
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void cell_aa::set(int cx, int cy, int c, int a)
+ {
+ x = int16(cx);
+ y = int16(cy);
+ packed_coord = (cy << 16) + cx;
+ cover = c;
+ area = a;
+ }
+
+ //------------------------------------------------------------------------
+ outline_aa::~outline_aa()
+ {
+ delete [] m_sorted_cells;
+ if(m_num_blocks)
+ {
+ cell_aa** ptr = m_cells + m_num_blocks - 1;
+ while(m_num_blocks--)
+ {
+ delete [] *ptr;
+ ptr--;
+ }
+ delete [] m_cells;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ outline_aa::outline_aa() :
+ m_num_blocks(0),
+ m_max_blocks(0),
+ m_cur_block(0),
+ m_num_cells(0),
+ m_cells(0),
+ m_cur_cell_ptr(0),
+ m_sorted_cells(0),
+ m_sorted_size(0),
+ m_cur_x(0),
+ m_cur_y(0),
+ m_min_x(0x7FFFFFFF),
+ m_min_y(0x7FFFFFFF),
+ m_max_x(-0x7FFFFFFF),
+ m_max_y(-0x7FFFFFFF),
+ m_sorted(false)
+ {
+ m_cur_cell.set(0x7FFF, 0x7FFF, 0, 0);
+ }
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::reset()
+ {
+ m_num_cells = 0;
+ m_cur_block = 0;
+ m_cur_cell.set(0x7FFF, 0x7FFF, 0, 0);
+ m_sorted = false;
+ m_min_x = 0x7FFFFFFF;
+ m_min_y = 0x7FFFFFFF;
+ m_max_x = -0x7FFFFFFF;
+ m_max_y = -0x7FFFFFFF;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::allocate_block()
+ {
+ if(m_cur_block >= m_num_blocks)
+ {
+ if(m_num_blocks >= m_max_blocks)
+ {
+ cell_aa** new_cells = new cell_aa* [m_max_blocks + cell_block_pool];
+ if(m_cells)
+ {
+ memcpy(new_cells, m_cells, m_max_blocks * sizeof(cell_aa*));
+ delete [] m_cells;
+ }
+ m_cells = new_cells;
+ m_max_blocks += cell_block_pool;
+ }
+ m_cells[m_num_blocks++] = new cell_aa [unsigned(cell_block_size)];
+ }
+ m_cur_cell_ptr = m_cells[m_cur_block++];
+ }
+
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void outline_aa::add_cur_cell()
+ {
+ if(m_cur_cell.area | m_cur_cell.cover)
+ {
+ if((m_num_cells & cell_block_mask) == 0)
+ {
+ if(m_num_blocks >= cell_block_limit) return;
+ allocate_block();
+ }
+ *m_cur_cell_ptr++ = m_cur_cell;
+ ++m_num_cells;
+ if(m_cur_cell.x < m_min_x) m_min_x = m_cur_cell.x;
+ if(m_cur_cell.x > m_max_x) m_max_x = m_cur_cell.x;
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void outline_aa::set_cur_cell(int x, int y)
+ {
+ if(m_cur_cell.packed_coord != (y << 16) + x)
+ {
+ add_cur_cell();
+ m_cur_cell.set(x, y, 0, 0);
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ AGG_INLINE void outline_aa::render_hline(int ey, int x1, int y1, int x2, int y2)
+ {
+ int ex1 = x1 >> poly_base_shift;
+ int ex2 = x2 >> poly_base_shift;
+ int fx1 = x1 & poly_base_mask;
+ int fx2 = x2 & poly_base_mask;
+
+ int delta, p, first, dx;
+ int incr, lift, mod, rem;
+
+ //trivial case. Happens often
+ if(y1 == y2)
+ {
+ set_cur_cell(ex2, ey);
+ return;
+ }
+
+ //everything is located in a single cell. That is easy!
+ if(ex1 == ex2)
+ {
+ delta = y2 - y1;
+ m_cur_cell.add_cover(delta, (fx1 + fx2) * delta);
+ return;
+ }
+
+ //ok, we'll have to render a run of adjacent cells on the same
+ //hline...
+ p = (poly_base_size - fx1) * (y2 - y1);
+ first = poly_base_size;
+ incr = 1;
+
+ dx = x2 - x1;
+
+ if(dx < 0)
+ {
+ p = fx1 * (y2 - y1);
+ first = 0;
+ incr = -1;
+ dx = -dx;
+ }
+
+ delta = p / dx;
+ mod = p % dx;
+
+ if(mod < 0)
+ {
+ delta--;
+ mod += dx;
+ }
+
+ m_cur_cell.add_cover(delta, (fx1 + first) * delta);
+
+ ex1 += incr;
+ set_cur_cell(ex1, ey);
+ y1 += delta;
+
+ if(ex1 != ex2)
+ {
+ p = poly_base_size * (y2 - y1 + delta);
+ lift = p / dx;
+ rem = p % dx;
+
+ if (rem < 0)
+ {
+ lift--;
+ rem += dx;
+ }
+
+ mod -= dx;
+
+ while (ex1 != ex2)
+ {
+ delta = lift;
+ mod += rem;
+ if(mod >= 0)
+ {
+ mod -= dx;
+ delta++;
+ }
+
+ m_cur_cell.add_cover(delta, (poly_base_size) * delta);
+ y1 += delta;
+ ex1 += incr;
+ set_cur_cell(ex1, ey);
+ }
+ }
+ delta = y2 - y1;
+ m_cur_cell.add_cover(delta, (fx2 + poly_base_size - first) * delta);
+ }
+
+
+
+
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::render_line(int x1, int y1, int x2, int y2)
+ {
+ int ey1 = y1 >> poly_base_shift;
+ int ey2 = y2 >> poly_base_shift;
+ int fy1 = y1 & poly_base_mask;
+ int fy2 = y2 & poly_base_mask;
+
+ int dx, dy, x_from, x_to;
+ int p, rem, mod, lift, delta, first, incr;
+
+ dx = x2 - x1;
+ dy = y2 - y1;
+
+ //everything is on a single hline
+ if(ey1 == ey2)
+ {
+ render_hline(ey1, x1, fy1, x2, fy2);
+ return;
+ }
+
+ //Vertical line - we have to calculate start and end cells,
+ //and then - the common values of the area and coverage for
+ //all cells of the line. We know exactly there's only one
+ //cell, so, we don't have to call render_hline().
+ incr = 1;
+ if(dx == 0)
+ {
+ int ex = x1 >> poly_base_shift;
+ int two_fx = (x1 - (ex << poly_base_shift)) << 1;
+ int area;
+
+ first = poly_base_size;
+ if(dy < 0)
+ {
+ first = 0;
+ incr = -1;
+ }
+
+ x_from = x1;
+
+ //render_hline(ey1, x_from, fy1, x_from, first);
+ delta = first - fy1;
+ m_cur_cell.add_cover(delta, two_fx * delta);
+
+ ey1 += incr;
+ set_cur_cell(ex, ey1);
+
+ delta = first + first - poly_base_size;
+ area = two_fx * delta;
+ while(ey1 != ey2)
+ {
+ //render_hline(ey1, x_from, poly_base_size - first, x_from, first);
+ m_cur_cell.set_cover(delta, area);
+ ey1 += incr;
+ set_cur_cell(ex, ey1);
+ }
+ //render_hline(ey1, x_from, poly_base_size - first, x_from, fy2);
+ delta = fy2 - poly_base_size + first;
+ m_cur_cell.add_cover(delta, two_fx * delta);
+ return;
+ }
+
+ //ok, we have to render several hlines
+ p = (poly_base_size - fy1) * dx;
+ first = poly_base_size;
+
+ if(dy < 0)
+ {
+ p = fy1 * dx;
+ first = 0;
+ incr = -1;
+ dy = -dy;
+ }
+
+ delta = p / dy;
+ mod = p % dy;
+
+ if(mod < 0)
+ {
+ delta--;
+ mod += dy;
+ }
+
+ x_from = x1 + delta;
+ render_hline(ey1, x1, fy1, x_from, first);
+
+ ey1 += incr;
+ set_cur_cell(x_from >> poly_base_shift, ey1);
+
+ if(ey1 != ey2)
+ {
+ p = poly_base_size * dx;
+ lift = p / dy;
+ rem = p % dy;
+
+ if(rem < 0)
+ {
+ lift--;
+ rem += dy;
+ }
+ mod -= dy;
+
+ while(ey1 != ey2)
+ {
+ delta = lift;
+ mod += rem;
+ if (mod >= 0)
+ {
+ mod -= dy;
+ delta++;
+ }
+
+ x_to = x_from + delta;
+ render_hline(ey1, x_from, poly_base_size - first, x_to, first);
+ x_from = x_to;
+
+ ey1 += incr;
+ set_cur_cell(x_from >> poly_base_shift, ey1);
+ }
+ }
+ render_hline(ey1, x_from, poly_base_size - first, x2, fy2);
+ }
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::move_to(int x, int y)
+ {
+ if(m_sorted) reset();
+ set_cur_cell(x >> poly_base_shift, y >> poly_base_shift);
+ m_cur_x = x;
+ m_cur_y = y;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::line_to(int x, int y)
+ {
+ render_line(m_cur_x, m_cur_y, x, y);
+ m_cur_x = x;
+ m_cur_y = y;
+ m_sorted = false;
+ }
+
+
+ //------------------------------------------------------------------------
+ enum
+ {
+ qsort_threshold = 9
+ };
+
+
+ //------------------------------------------------------------------------
+ template <class T> AGG_INLINE void swap_cells(T* a, T* b)
+ {
+ T temp = *a;
+ *a = *b;
+ *b = temp;
+ }
+
+ //------------------------------------------------------------------------
+ template <class T> AGG_INLINE bool less_than(T* a, T* b)
+ {
+ return (*a)->packed_coord < (*b)->packed_coord;
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::qsort_cells(cell_aa** start, unsigned num)
+ {
+ cell_aa** stack[80];
+ cell_aa*** top;
+ cell_aa** limit;
+ cell_aa** base;
+
+ limit = start + num;
+ base = start;
+ top = stack;
+
+ for (;;)
+ {
+ int len = int(limit - base);
+
+ cell_aa** i;
+ cell_aa** j;
+ cell_aa** pivot;
+
+ if(len > qsort_threshold)
+ {
+ // we use base + len/2 as the pivot
+ pivot = base + len / 2;
+ swap_cells(base, pivot);
+
+ i = base + 1;
+ j = limit - 1;
+
+ // now ensure that *i <= *base <= *j
+ if(less_than(j, i))
+ {
+ swap_cells(i, j);
+ }
+
+ if(less_than(base, i))
+ {
+ swap_cells(base, i);
+ }
+
+ if(less_than(j, base))
+ {
+ swap_cells(base, j);
+ }
+
+ for(;;)
+ {
+ do i++; while( less_than(i, base) );
+ do j--; while( less_than(base, j) );
+
+ if ( i > j )
+ {
+ break;
+ }
+
+ swap_cells(i, j);
+ }
+
+ swap_cells(base, j);
+
+ // now, push the largest sub-array
+ if(j - base > limit - i)
+ {
+ top[0] = base;
+ top[1] = j;
+ base = i;
+ }
+ else
+ {
+ top[0] = i;
+ top[1] = limit;
+ limit = j;
+ }
+ top += 2;
+ }
+ else
+ {
+ // the sub-array is small, perform insertion sort
+ j = base;
+ i = j + 1;
+
+ for(; i < limit; j = i, i++)
+ {
+ for(; less_than(j + 1, j); j--)
+ {
+ swap_cells(j + 1, j);
+ if (j == base)
+ {
+ break;
+ }
+ }
+ }
+ if(top > stack)
+ {
+ top -= 2;
+ base = top[0];
+ limit = top[1];
+ }
+ else
+ {
+ break;
+ }
+ }
+ }
+ }
+
+
+
+
+
+ //------------------------------------------------------------------------
+ void outline_aa::sort_cells()
+ {
+ if(m_num_cells == 0) return;
+ if(m_num_cells > m_sorted_size)
+ {
+ delete [] m_sorted_cells;
+ m_sorted_size = m_num_cells;
+ m_sorted_cells = new cell_aa* [m_num_cells + 1];
+ }
+
+ cell_aa** sorted_ptr = m_sorted_cells;
+ cell_aa** block_ptr = m_cells;
+ cell_aa* cell_ptr;
+
+ unsigned nb = m_num_cells >> cell_block_shift;
+ unsigned i;
+
+ while(nb--)
+ {
+ cell_ptr = *block_ptr++;
+ i = cell_block_size;
+ while(i--)
+ {
+ *sorted_ptr++ = cell_ptr++;
+ }
+ }
+
+ cell_ptr = *block_ptr++;
+ i = m_num_cells & cell_block_mask;
+ while(i--)
+ {
+ *sorted_ptr++ = cell_ptr++;
+ }
+ m_sorted_cells[m_num_cells] = 0;
+ qsort_cells(m_sorted_cells, m_num_cells);
+ m_min_y = m_sorted_cells[0]->y;
+ m_max_y = m_sorted_cells[m_num_cells - 1]->y;
+ }
+
+
+
+
+ //------------------------------------------------------------------------
+ const cell_aa* const* outline_aa::cells()
+ {
+ //Perform sort only the first time.
+ if(!m_sorted)
+ {
+ add_cur_cell();
+ sort_cells();
+ m_sorted = true;
+ }
+ return m_sorted_cells;
+ }
+
+
+
+
+
+}
+
+
+
+
+
diff --git a/agg/source/agg_rounded_rect.cpp b/agg/source/agg_rounded_rect.cpp
new file mode 100755
index 000000000000..8f6e532e7096
--- /dev/null
+++ b/agg/source/agg_rounded_rect.cpp
@@ -0,0 +1,164 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Rounded rectangle vertex generator
+//
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_rounded_rect.h"
+
+
+namespace agg
+{
+ //------------------------------------------------------------------------
+ rounded_rect::rounded_rect(double x1, double y1, double x2, double y2, double r) :
+ m_x1(x1), m_y1(y1), m_x2(x2), m_y2(y2),
+ m_rx1(r), m_ry1(r), m_rx2(r), m_ry2(r),
+ m_rx3(r), m_ry3(r), m_rx4(r), m_ry4(r)
+ {
+ if(x1 > x2) { m_x1 = x2; m_x2 = x1; }
+ if(y1 > y2) { m_y1 = y2; m_y2 = y1; }
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::rect(double x1, double y1, double x2, double y2)
+ {
+ m_x1 = x1;
+ m_y1 = y1;
+ m_x2 = x2;
+ m_y2 = y2;
+ if(x1 > x2) { m_x1 = x2; m_x2 = x1; }
+ if(y1 > y2) { m_y1 = y2; m_y2 = y1; }
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::radius(double r)
+ {
+ m_rx1 = m_ry1 = m_rx2 = m_ry2 = m_rx3 = m_ry3 = m_rx4 = m_ry4 = r;
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::radius(double rx, double ry)
+ {
+ m_rx1 = m_rx2 = m_rx3 = m_rx4 = rx;
+ m_ry1 = m_ry2 = m_ry3 = m_ry4 = ry;
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::radius(double rx_bottom, double ry_bottom,
+ double rx_top, double ry_top)
+ {
+ m_rx1 = m_rx2 = rx_bottom;
+ m_rx3 = m_rx4 = rx_top;
+ m_ry1 = m_ry2 = ry_bottom;
+ m_ry3 = m_ry4 = ry_top;
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::radius(double rx1, double ry1, double rx2, double ry2,
+ double rx3, double ry3, double rx4, double ry4)
+ {
+ m_rx1 = rx1; m_ry1 = ry1; m_rx2 = rx2; m_ry2 = ry2;
+ m_rx3 = rx3; m_ry3 = ry3; m_rx4 = rx4; m_ry4 = ry4;
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::normalize_radius()
+ {
+ double dx = fabs(m_y2 - m_y1);
+ double dy = fabs(m_x2 - m_x1);
+
+ double k = 1.0;
+ double t;
+ t = dx / (m_rx1 + m_rx2); if(t < k) k = t;
+ t = dx / (m_rx3 + m_rx4); if(t < k) k = t;
+ t = dy / (m_ry1 + m_ry2); if(t < k) k = t;
+ t = dy / (m_ry3 + m_ry4); if(t < k) k = t;
+
+ if(k < 1.0)
+ {
+ m_rx1 *= k; m_ry1 *= k; m_rx2 *= k; m_ry2 *= k;
+ m_rx3 *= k; m_ry3 *= k; m_rx4 *= k; m_ry4 *= k;
+ }
+ }
+
+ //--------------------------------------------------------------------
+ void rounded_rect::rewind(unsigned)
+ {
+ m_status = 0;
+ }
+
+ //--------------------------------------------------------------------
+ unsigned rounded_rect::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_stop;
+ switch(m_status)
+ {
+ case 0:
+ m_arc.init(m_x1 + m_rx1, m_y1 + m_ry1, m_rx1, m_ry1,
+ pi, pi+pi*0.5);
+ m_arc.rewind(0);
+ m_status++;
+
+ case 1:
+ cmd = m_arc.vertex(x, y);
+ if(is_stop(cmd)) m_status++;
+ else return cmd;
+
+ case 2:
+ m_arc.init(m_x2 - m_rx2, m_y1 + m_ry2, m_rx2, m_ry2,
+ pi+pi*0.5, 0.0);
+ m_arc.rewind(0);
+ m_status++;
+
+ case 3:
+ cmd = m_arc.vertex(x, y);
+ if(is_stop(cmd)) m_status++;
+ else return path_cmd_line_to;
+
+ case 4:
+ m_arc.init(m_x2 - m_rx3, m_y2 - m_ry3, m_rx3, m_ry3,
+ 0.0, pi*0.5);
+ m_arc.rewind(0);
+ m_status++;
+
+ case 5:
+ cmd = m_arc.vertex(x, y);
+ if(is_stop(cmd)) m_status++;
+ else return path_cmd_line_to;
+
+ case 6:
+ m_arc.init(m_x1 + m_rx4, m_y2 - m_ry4, m_rx4, m_ry4,
+ pi*0.5, pi);
+ m_arc.rewind(0);
+ m_status++;
+
+ case 7:
+ cmd = m_arc.vertex(x, y);
+ if(is_stop(cmd)) m_status++;
+ else return path_cmd_line_to;
+
+ case 8:
+ cmd = (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_ccw;
+ m_status++;
+ break;
+ }
+ return cmd;
+ }
+
+
+}
+
diff --git a/agg/source/agg_sqrt_tables.cpp b/agg/source/agg_sqrt_tables.cpp
new file mode 100755
index 000000000000..e2f88f5a7fef
--- /dev/null
+++ b/agg/source/agg_sqrt_tables.cpp
@@ -0,0 +1,115 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// static tables for fast integer sqrt
+//
+//----------------------------------------------------------------------------
+
+#include "agg_basics.h"
+
+namespace agg
+{
+ int16u g_sqrt_table[1024] =
+ {
+ 0,
+ 2048,2896,3547,4096,4579,5017,5418,5793,6144,6476,6792,7094,7384,7663,7932,8192,8444,
+ 8689,8927,9159,9385,9606,9822,10033,10240,10443,10642,10837,11029,11217,11403,11585,
+ 11765,11942,12116,12288,12457,12625,12790,12953,13114,13273,13430,13585,13738,13890,
+ 14040,14189,14336,14482,14626,14768,14910,15050,15188,15326,15462,15597,15731,15864,
+ 15995,16126,16255,16384,16512,16638,16764,16888,17012,17135,17257,17378,17498,17618,
+ 17736,17854,17971,18087,18203,18318,18432,18545,18658,18770,18882,18992,19102,19212,
+ 19321,19429,19537,19644,19750,19856,19961,20066,20170,20274,20377,20480,20582,20684,
+ 20785,20886,20986,21085,21185,21283,21382,21480,21577,21674,21771,21867,21962,22058,
+ 22153,22247,22341,22435,22528,22621,22713,22806,22897,22989,23080,23170,23261,23351,
+ 23440,23530,23619,23707,23796,23884,23971,24059,24146,24232,24319,24405,24491,24576,
+ 24661,24746,24831,24915,24999,25083,25166,25249,25332,25415,25497,25580,25661,25743,
+ 25824,25905,25986,26067,26147,26227,26307,26387,26466,26545,26624,26703,26781,26859,
+ 26937,27015,27092,27170,27247,27324,27400,27477,27553,27629,27705,27780,27856,27931,
+ 28006,28081,28155,28230,28304,28378,28452,28525,28599,28672,28745,28818,28891,28963,
+ 29035,29108,29180,29251,29323,29394,29466,29537,29608,29678,29749,29819,29890,29960,
+ 30030,30099,30169,30238,30308,30377,30446,30515,30583,30652,30720,30788,30856,30924,
+ 30992,31059,31127,31194,31261,31328,31395,31462,31529,31595,31661,31727,31794,31859,
+ 31925,31991,32056,32122,32187,32252,32317,32382,32446,32511,32575,32640,32704,32768,
+ 32832,32896,32959,33023,33086,33150,33213,33276,33339,33402,33465,33527,33590,33652,
+ 33714,33776,33839,33900,33962,34024,34086,34147,34208,34270,34331,34392,34453,34514,
+ 34574,34635,34695,34756,34816,34876,34936,34996,35056,35116,35176,35235,35295,35354,
+ 35413,35472,35531,35590,35649,35708,35767,35825,35884,35942,36001,36059,36117,36175,
+ 36233,36291,36348,36406,36464,36521,36578,36636,36693,36750,36807,36864,36921,36978,
+ 37034,37091,37147,37204,37260,37316,37372,37429,37485,37540,37596,37652,37708,37763,
+ 37819,37874,37929,37985,38040,38095,38150,38205,38260,38315,38369,38424,38478,38533,
+ 38587,38642,38696,38750,38804,38858,38912,38966,39020,39073,39127,39181,39234,39287,
+ 39341,39394,39447,39500,39553,39606,39659,39712,39765,39818,39870,39923,39975,40028,
+ 40080,40132,40185,40237,40289,40341,40393,40445,40497,40548,40600,40652,40703,40755,
+ 40806,40857,40909,40960,41011,41062,41113,41164,41215,41266,41317,41368,41418,41469,
+ 41519,41570,41620,41671,41721,41771,41821,41871,41922,41972,42021,42071,42121,42171,
+ 42221,42270,42320,42369,42419,42468,42518,42567,42616,42665,42714,42763,42813,42861,
+ 42910,42959,43008,43057,43105,43154,43203,43251,43300,43348,43396,43445,43493,43541,
+ 43589,43637,43685,43733,43781,43829,43877,43925,43972,44020,44068,44115,44163,44210,
+ 44258,44305,44352,44400,44447,44494,44541,44588,44635,44682,44729,44776,44823,44869,
+ 44916,44963,45009,45056,45103,45149,45195,45242,45288,45334,45381,45427,45473,45519,
+ 45565,45611,45657,45703,45749,45795,45840,45886,45932,45977,46023,46069,46114,46160,
+ 46205,46250,46296,46341,46386,46431,46477,46522,46567,46612,46657,46702,46746,46791,
+ 46836,46881,46926,46970,47015,47059,47104,47149,47193,47237,47282,47326,47370,47415,
+ 47459,47503,47547,47591,47635,47679,47723,47767,47811,47855,47899,47942,47986,48030,
+ 48074,48117,48161,48204,48248,48291,48335,48378,48421,48465,48508,48551,48594,48637,
+ 48680,48723,48766,48809,48852,48895,48938,48981,49024,49067,49109,49152,49195,49237,
+ 49280,49322,49365,49407,49450,49492,49535,49577,49619,49661,49704,49746,49788,49830,
+ 49872,49914,49956,49998,50040,50082,50124,50166,50207,50249,50291,50332,50374,50416,
+ 50457,50499,50540,50582,50623,50665,50706,50747,50789,50830,50871,50912,50954,50995,
+ 51036,51077,51118,51159,51200,51241,51282,51323,51364,51404,51445,51486,51527,51567,
+ 51608,51649,51689,51730,51770,51811,51851,51892,51932,51972,52013,52053,52093,52134,
+ 52174,52214,52254,52294,52334,52374,52414,52454,52494,52534,52574,52614,52654,52694,
+ 52734,52773,52813,52853,52892,52932,52972,53011,53051,53090,53130,53169,53209,53248,
+ 53287,53327,53366,53405,53445,53484,53523,53562,53601,53640,53679,53719,53758,53797,
+ 53836,53874,53913,53952,53991,54030,54069,54108,54146,54185,54224,54262,54301,54340,
+ 54378,54417,54455,54494,54532,54571,54609,54647,54686,54724,54762,54801,54839,54877,
+ 54915,54954,54992,55030,55068,55106,55144,55182,55220,55258,55296,55334,55372,55410,
+ 55447,55485,55523,55561,55599,55636,55674,55712,55749,55787,55824,55862,55900,55937,
+ 55975,56012,56049,56087,56124,56162,56199,56236,56273,56311,56348,56385,56422,56459,
+ 56497,56534,56571,56608,56645,56682,56719,56756,56793,56830,56867,56903,56940,56977,
+ 57014,57051,57087,57124,57161,57198,57234,57271,57307,57344,57381,57417,57454,57490,
+ 57527,57563,57599,57636,57672,57709,57745,57781,57817,57854,57890,57926,57962,57999,
+ 58035,58071,58107,58143,58179,58215,58251,58287,58323,58359,58395,58431,58467,58503,
+ 58538,58574,58610,58646,58682,58717,58753,58789,58824,58860,58896,58931,58967,59002,
+ 59038,59073,59109,59144,59180,59215,59251,59286,59321,59357,59392,59427,59463,59498,
+ 59533,59568,59603,59639,59674,59709,59744,59779,59814,59849,59884,59919,59954,59989,
+ 60024,60059,60094,60129,60164,60199,60233,60268,60303,60338,60373,60407,60442,60477,
+ 60511,60546,60581,60615,60650,60684,60719,60753,60788,60822,60857,60891,60926,60960,
+ 60995,61029,61063,61098,61132,61166,61201,61235,61269,61303,61338,61372,61406,61440,
+ 61474,61508,61542,61576,61610,61644,61678,61712,61746,61780,61814,61848,61882,61916,
+ 61950,61984,62018,62051,62085,62119,62153,62186,62220,62254,62287,62321,62355,62388,
+ 62422,62456,62489,62523,62556,62590,62623,62657,62690,62724,62757,62790,62824,62857,
+ 62891,62924,62957,62991,63024,63057,63090,63124,63157,63190,63223,63256,63289,63323,
+ 63356,63389,63422,63455,63488,63521,63554,63587,63620,63653,63686,63719,63752,63785,
+ 63817,63850,63883,63916,63949,63982,64014,64047,64080,64113,64145,64178,64211,64243,
+ 64276,64309,64341,64374,64406,64439,64471,64504,64536,64569,64601,64634,64666,64699,
+ 64731,64763,64796,64828,64861,64893,64925,64957,64990,65022,65054,65086,65119,65151,
+ 65183,65215,65247,65279,65312,65344,65376,65408,65440,65472,65504
+ };
+
+
+ int8 g_elder_bit_table[256] =
+ {
+ 0,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,
+ 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
+ 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+ 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
+ 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
+ };
+
+}
diff --git a/agg/source/agg_trans_affine.cpp b/agg/source/agg_trans_affine.cpp
new file mode 100755
index 000000000000..f81050d3e42f
--- /dev/null
+++ b/agg/source/agg_trans_affine.cpp
@@ -0,0 +1,195 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Affine transformations
+//
+//----------------------------------------------------------------------------
+#include "agg_trans_affine.h"
+
+
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::parl_to_parl(const double* src,
+ const double* dst)
+ {
+ m0 = src[2] - src[0];
+ m1 = src[3] - src[1];
+ m2 = src[4] - src[0];
+ m3 = src[5] - src[1];
+ m4 = src[0];
+ m5 = src[1];
+ invert();
+ multiply(trans_affine(dst[2] - dst[0], dst[3] - dst[1],
+ dst[4] - dst[0], dst[5] - dst[1],
+ dst[0], dst[1]));
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::rect_to_parl(double x1, double y1,
+ double x2, double y2,
+ const double* parl)
+ {
+ double src[6];
+ src[0] = x1; src[1] = y1;
+ src[2] = x2; src[3] = y1;
+ src[4] = x2; src[5] = y2;
+ parl_to_parl(src, parl);
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::parl_to_rect(const double* parl,
+ double x1, double y1,
+ double x2, double y2)
+ {
+ double dst[6];
+ dst[0] = x1; dst[1] = y1;
+ dst[2] = x2; dst[3] = y1;
+ dst[4] = x2; dst[5] = y2;
+ parl_to_parl(parl, dst);
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::multiply(const trans_affine& m)
+ {
+ double t0 = m0 * m.m0 + m1 * m.m2;
+ double t2 = m2 * m.m0 + m3 * m.m2;
+ double t4 = m4 * m.m0 + m5 * m.m2 + m.m4;
+ m1 = m0 * m.m1 + m1 * m.m3;
+ m3 = m2 * m.m1 + m3 * m.m3;
+ m5 = m4 * m.m1 + m5 * m.m3 + m.m5;
+ m0 = t0;
+ m2 = t2;
+ m4 = t4;
+ return *this;
+ }
+
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::invert()
+ {
+ double d = determinant();
+
+ double t0 = m3 * d;
+ m3 = m0 * d;
+ m1 = -m1 * d;
+ m2 = -m2 * d;
+
+ double t4 = -m4 * t0 - m5 * m2;
+ m5 = -m4 * m1 - m5 * m3;
+
+ m0 = t0;
+ m4 = t4;
+ return *this;
+ }
+
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::flip_x()
+ {
+ m0 = -m0;
+ m1 = -m1;
+ m4 = -m4;
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::flip_y()
+ {
+ m2 = -m2;
+ m3 = -m3;
+ m5 = -m5;
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ const trans_affine& trans_affine::reset()
+ {
+ m0 = m3 = 1.0;
+ m1 = m2 = m4 = m5 = 0.0;
+ return *this;
+ }
+
+ //------------------------------------------------------------------------
+ inline bool is_equal_eps(double v1, double v2, double epsilon)
+ {
+ return fabs(v1 - v2) < epsilon;
+ }
+
+ //------------------------------------------------------------------------
+ bool trans_affine::is_identity(double epsilon) const
+ {
+ return is_equal_eps(m0, 1.0, epsilon) &&
+ is_equal_eps(m1, 0.0, epsilon) &&
+ is_equal_eps(m2, 0.0, epsilon) &&
+ is_equal_eps(m3, 1.0, epsilon) &&
+ is_equal_eps(m4, 0.0, epsilon) &&
+ is_equal_eps(m5, 0.0, epsilon);
+ }
+
+ //------------------------------------------------------------------------
+ bool trans_affine::is_equal(const trans_affine& m, double epsilon) const
+ {
+ return is_equal_eps(m0, m.m0, epsilon) &&
+ is_equal_eps(m1, m.m1, epsilon) &&
+ is_equal_eps(m2, m.m2, epsilon) &&
+ is_equal_eps(m3, m.m3, epsilon) &&
+ is_equal_eps(m4, m.m4, epsilon) &&
+ is_equal_eps(m5, m.m5, epsilon);
+ }
+
+ //------------------------------------------------------------------------
+ double trans_affine::rotation() const
+ {
+ double x1 = 0.0;
+ double y1 = 0.0;
+ double x2 = 1.0;
+ double y2 = 0.0;
+ transform(&x1, &y1);
+ transform(&x2, &y2);
+ return atan2(y2-y1, x2-x1);
+ }
+
+ //------------------------------------------------------------------------
+ void trans_affine::translation(double* dx, double* dy) const
+ {
+ trans_affine t(*this);
+ t *= trans_affine_rotation(-rotation());
+ t.transform(dx, dy);
+ }
+
+ //------------------------------------------------------------------------
+ void trans_affine::scaling(double* sx, double* sy) const
+ {
+ double x1 = 0.0;
+ double y1 = 0.0;
+ double x2 = 1.0;
+ double y2 = 1.0;
+ trans_affine t(*this);
+ t *= trans_affine_rotation(-rotation());
+ t.transform(&x1, &y1);
+ t.transform(&x2, &y2);
+ *sx = x2 - x1;
+ *sy = y2 - y1;
+ }
+
+
+}
+
diff --git a/agg/source/agg_trans_double_path.cpp b/agg/source/agg_trans_double_path.cpp
new file mode 100755
index 000000000000..5fc83ea50391
--- /dev/null
+++ b/agg/source/agg_trans_double_path.cpp
@@ -0,0 +1,273 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_math.h"
+#include "agg_trans_double_path.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ trans_double_path::trans_double_path() :
+ m_base_length(0.0),
+ m_base_height(1.0),
+ m_kindex1(0.0),
+ m_kindex2(0.0),
+ m_status1(initial),
+ m_status2(initial),
+ m_preserve_x_scale(true)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::reset()
+ {
+ m_src_vertices1.remove_all();
+ m_src_vertices2.remove_all();
+ m_kindex1 = 0.0;
+ m_kindex1 = 0.0;
+ m_status1 = initial;
+ m_status2 = initial;
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::move_to1(double x, double y)
+ {
+ if(m_status1 == initial)
+ {
+ m_src_vertices1.modify_last(vertex_dist(x, y));
+ m_status1 = making_path;
+ }
+ else
+ {
+ line_to1(x, y);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::line_to1(double x, double y)
+ {
+ if(m_status1 == making_path)
+ {
+ m_src_vertices1.add(vertex_dist(x, y));
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::move_to2(double x, double y)
+ {
+ if(m_status2 == initial)
+ {
+ m_src_vertices2.modify_last(vertex_dist(x, y));
+ m_status2 = making_path;
+ }
+ else
+ {
+ line_to2(x, y);
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::line_to2(double x, double y)
+ {
+ if(m_status2 == making_path)
+ {
+ m_src_vertices2.add(vertex_dist(x, y));
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ double trans_double_path::finalize_path(vertex_storage& vertices)
+ {
+ unsigned i;
+ double dist;
+ double d;
+
+ if(vertices.size() > 2)
+ {
+ if(vertices[vertices.size() - 2].dist * 10.0 <
+ vertices[vertices.size() - 3].dist)
+ {
+ d = vertices[vertices.size() - 3].dist +
+ vertices[vertices.size() - 2].dist;
+
+ vertices[vertices.size() - 2] =
+ vertices[vertices.size() - 1];
+
+ vertices.remove_last();
+ vertices[vertices.size() - 2].dist = d;
+ }
+ }
+
+ dist = 0;
+ vertices.close(false);
+ for(i = 0; i < vertices.size(); i++)
+ {
+ vertex_dist& v = vertices[i];
+ d = v.dist;
+ v.dist = dist;
+ dist += d;
+ }
+
+ return (vertices.size() - 1) / dist;
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::finalize_paths()
+ {
+ if(m_status1 == making_path && m_src_vertices1.size() > 1 &&
+ m_status2 == making_path && m_src_vertices2.size() > 1)
+ {
+ m_kindex1 = finalize_path(m_src_vertices1);
+ m_kindex2 = finalize_path(m_src_vertices2);
+ m_status1 = ready;
+ m_status2 = ready;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ double trans_double_path::total_length1() const
+ {
+ if(m_base_length >= 1e-10) return m_base_length;
+ return (m_status1 == ready) ?
+ m_src_vertices1[m_src_vertices1.size() - 1].dist :
+ 0.0;
+ }
+
+
+ //------------------------------------------------------------------------
+ double trans_double_path::total_length2() const
+ {
+ if(m_base_length >= 1e-10) return m_base_length;
+ return (m_status2 == ready) ?
+ m_src_vertices2[m_src_vertices2.size() - 1].dist :
+ 0.0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::transform1(const vertex_storage& vertices,
+ double kindex, double kx,
+ double *x, double* y) const
+ {
+ double x1 = 0.0;
+ double y1 = 0.0;
+ double dx = 1.0;
+ double dy = 1.0;
+ double d = 0.0;
+ double dd = 1.0;
+ *x *= kx;
+ if(*x < 0.0)
+ {
+ // Extrapolation on the left
+ //--------------------------
+ x1 = vertices[0].x;
+ y1 = vertices[0].y;
+ dx = vertices[1].x - x1;
+ dy = vertices[1].y - y1;
+ dd = vertices[1].dist - vertices[0].dist;
+ d = *x;
+ }
+ else
+ if(*x > vertices[vertices.size() - 1].dist)
+ {
+ // Extrapolation on the right
+ //--------------------------
+ unsigned i = vertices.size() - 2;
+ unsigned j = vertices.size() - 1;
+ x1 = vertices[j].x;
+ y1 = vertices[j].y;
+ dx = x1 - vertices[i].x;
+ dy = y1 - vertices[i].y;
+ dd = vertices[j].dist - vertices[i].dist;
+ d = *x - vertices[j].dist;
+ }
+ else
+ {
+ // Interpolation
+ //--------------------------
+ unsigned i = 0;
+ unsigned j = vertices.size() - 1;
+ if(m_preserve_x_scale)
+ {
+ unsigned k;
+ for(i = 0; (j - i) > 1; )
+ {
+ if(*x < vertices[k = (i + j) >> 1].dist)
+ {
+ j = k;
+ }
+ else
+ {
+ i = k;
+ }
+ }
+ d = vertices[i].dist;
+ dd = vertices[j].dist - d;
+ d = *x - d;
+ }
+ else
+ {
+ i = (unsigned)floor(*x * kindex);
+ j = i + 1;
+ dd = vertices[j].dist - vertices[i].dist;
+ d = ((*x * kindex) - i) * dd;
+ }
+ x1 = vertices[i].x;
+ y1 = vertices[i].y;
+ dx = vertices[j].x - x1;
+ dy = vertices[j].y - y1;
+ }
+ *x = x1 + dx * d / dd;
+ *y = y1 + dy * d / dd;
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_double_path::transform(double *x, double *y) const
+ {
+ if(m_status1 == ready && m_status2 == ready)
+ {
+ if(m_base_length > 1e-10)
+ {
+ *x *= m_src_vertices1[m_src_vertices1.size() - 1].dist /
+ m_base_length;
+ }
+
+ double x1 = *x;
+ double y1 = *y;
+ double x2 = *x;
+ double y2 = *y;
+ double dd = m_src_vertices2[m_src_vertices2.size() - 1].dist /
+ m_src_vertices1[m_src_vertices1.size() - 1].dist;
+
+ transform1(m_src_vertices1, m_kindex1, 1.0, &x1, &y1);
+ transform1(m_src_vertices2, m_kindex2, dd, &x2, &y2);
+
+ *x = x1 + *y * (x2 - x1) / m_base_height;
+ *y = y1 + *y * (y2 - y1) / m_base_height;
+ }
+ }
+
+}
+
diff --git a/agg/source/agg_trans_single_path.cpp b/agg/source/agg_trans_single_path.cpp
new file mode 100755
index 000000000000..cc4fb5356267
--- /dev/null
+++ b/agg/source/agg_trans_single_path.cpp
@@ -0,0 +1,202 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_math.h"
+#include "agg_vertex_sequence.h"
+#include "agg_trans_single_path.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ trans_single_path::trans_single_path() :
+ m_base_length(0.0),
+ m_kindex(0.0),
+ m_status(initial),
+ m_preserve_x_scale(true)
+ {
+ }
+
+ //------------------------------------------------------------------------
+ void trans_single_path::reset()
+ {
+ m_src_vertices.remove_all();
+ m_kindex = 0.0;
+ m_status = initial;
+ }
+
+ //------------------------------------------------------------------------
+ void trans_single_path::move_to(double x, double y)
+ {
+ if(m_status == initial)
+ {
+ m_src_vertices.modify_last(vertex_dist(x, y));
+ m_status = making_path;
+ }
+ else
+ {
+ line_to(x, y);
+ }
+ }
+
+ //------------------------------------------------------------------------
+ void trans_single_path::line_to(double x, double y)
+ {
+ if(m_status == making_path)
+ {
+ m_src_vertices.add(vertex_dist(x, y));
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_single_path::finalize_path()
+ {
+ if(m_status == making_path && m_src_vertices.size() > 1)
+ {
+ unsigned i;
+ double dist;
+ double d;
+
+ if(m_src_vertices.size() > 2)
+ {
+ if(m_src_vertices[m_src_vertices.size() - 2].dist * 10.0 <
+ m_src_vertices[m_src_vertices.size() - 3].dist)
+ {
+ d = m_src_vertices[m_src_vertices.size() - 3].dist +
+ m_src_vertices[m_src_vertices.size() - 2].dist;
+
+ m_src_vertices[m_src_vertices.size() - 2] =
+ m_src_vertices[m_src_vertices.size() - 1];
+
+ m_src_vertices.remove_last();
+ m_src_vertices[m_src_vertices.size() - 2].dist = d;
+ }
+ }
+
+ dist = 0.0;
+ m_src_vertices.close(false);
+ for(i = 0; i < m_src_vertices.size(); i++)
+ {
+ vertex_dist& v = m_src_vertices[i];
+ double _d = v.dist;
+ v.dist = dist;
+ dist += _d;
+ }
+ m_kindex = (m_src_vertices.size() - 1) / dist;
+ m_status = ready;
+ }
+ }
+
+
+
+ //------------------------------------------------------------------------
+ double trans_single_path::total_length() const
+ {
+ if(m_base_length >= 1e-10) return m_base_length;
+ return (m_status == ready) ?
+ m_src_vertices[m_src_vertices.size() - 1].dist :
+ 0.0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void trans_single_path::transform(double *x, double *y) const
+ {
+ if(m_status == ready)
+ {
+ if(m_base_length > 1e-10)
+ {
+ *x *= m_src_vertices[m_src_vertices.size() - 1].dist /
+ m_base_length;
+ }
+
+ double x1 = 0.0;
+ double y1 = 0.0;
+ double dx = 1.0;
+ double dy = 1.0;
+ double d = 0.0;
+ double dd = 1.0;
+ if(*x < 0.0)
+ {
+ // Extrapolation on the left
+ //--------------------------
+ x1 = m_src_vertices[0].x;
+ y1 = m_src_vertices[0].y;
+ dx = m_src_vertices[1].x - x1;
+ dy = m_src_vertices[1].y - y1;
+ dd = m_src_vertices[1].dist - m_src_vertices[0].dist;
+ d = *x;
+ }
+ else
+ if(*x > m_src_vertices[m_src_vertices.size() - 1].dist)
+ {
+ // Extrapolation on the right
+ //--------------------------
+ unsigned i = m_src_vertices.size() - 2;
+ unsigned j = m_src_vertices.size() - 1;
+ x1 = m_src_vertices[j].x;
+ y1 = m_src_vertices[j].y;
+ dx = x1 - m_src_vertices[i].x;
+ dy = y1 - m_src_vertices[i].y;
+ dd = m_src_vertices[j].dist - m_src_vertices[i].dist;
+ d = *x - m_src_vertices[j].dist;
+ }
+ else
+ {
+ // Interpolation
+ //--------------------------
+ unsigned i = 0;
+ unsigned j = m_src_vertices.size() - 1;
+ if(m_preserve_x_scale)
+ {
+ unsigned k;
+ for(i = 0; (j - i) > 1; )
+ {
+ if(*x < m_src_vertices[k = (i + j) >> 1].dist)
+ {
+ j = k;
+ }
+ else
+ {
+ i = k;
+ }
+ }
+ d = m_src_vertices[i].dist;
+ dd = m_src_vertices[j].dist - d;
+ d = *x - d;
+ }
+ else
+ {
+ i = (unsigned)floor(*x * m_kindex);
+ j = i + 1;
+ dd = m_src_vertices[j].dist - m_src_vertices[i].dist;
+ d = ((*x * m_kindex) - i) * dd;
+ }
+ x1 = m_src_vertices[i].x;
+ y1 = m_src_vertices[i].y;
+ dx = m_src_vertices[j].x - x1;
+ dy = m_src_vertices[j].y - y1;
+ }
+ double x2 = x1 + dx * d / dd;
+ double y2 = y1 + dy * d / dd;
+ *x = x2 - *y * dy / dd;
+ *y = y2 + *y * dx / dd;
+ }
+ }
+
+
+}
+
diff --git a/agg/source/agg_trans_warp_magnifier.cpp b/agg/source/agg_trans_warp_magnifier.cpp
new file mode 100755
index 000000000000..4f9d28233907
--- /dev/null
+++ b/agg/source/agg_trans_warp_magnifier.cpp
@@ -0,0 +1,50 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_trans_warp_magnifier.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ void trans_warp_magnifier::transform(double* x, double* y) const
+ {
+ double dx = *x - m_xc;
+ double dy = *y - m_yc;
+ double r = sqrt(dx * dx + dy * dy);
+ if(r < m_radius)
+ {
+ *x = m_xc + dx * m_magn;
+ *y = m_yc + dy * m_magn;
+ return;
+ }
+
+ double m = (r + m_radius * (m_magn - 1.0)) / r;
+ *x = m_xc + dx * m;
+ *y = m_yc + dy * m;
+ }
+
+ //------------------------------------------------------------------------
+ void trans_warp_magnifier::inverse_transform(double* x, double* y) const
+ {
+ trans_warp_magnifier t(*this);
+ t.magnification(1.0 / m_magn);
+ t.radius(m_radius * m_magn);
+ t.transform(x, y);
+ }
+
+
+}
diff --git a/agg/source/agg_vcgen_bspline.cpp b/agg/source/agg_vcgen_bspline.cpp
new file mode 100755
index 000000000000..9ca4df9b44f4
--- /dev/null
+++ b/agg/source/agg_vcgen_bspline.cpp
@@ -0,0 +1,194 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_vcgen_bspline.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ vcgen_bspline::vcgen_bspline() :
+ m_src_vertices(),
+ m_spline_x(),
+ m_spline_y(),
+ m_interpolation_step(1.0/50.0),
+ m_closed(0),
+ m_status(initial),
+ m_src_vertex(0)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_bspline::remove_all()
+ {
+ m_src_vertices.remove_all();
+ m_closed = 0;
+ m_status = initial;
+ m_src_vertex = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_bspline::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_status = initial;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(point_type(x, y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(point_type(x, y));
+ }
+ else
+ {
+ m_closed = get_close_flag(cmd);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_bspline::rewind(unsigned)
+ {
+ m_cur_abscissa = 0.0;
+ m_max_abscissa = 0.0;
+ m_src_vertex = 0;
+ if(m_status == initial && m_src_vertices.size() > 2)
+ {
+ if(m_closed)
+ {
+ m_spline_x.init(m_src_vertices.size() + 8);
+ m_spline_y.init(m_src_vertices.size() + 8);
+ m_spline_x.add_point(0.0, m_src_vertices.prev(m_src_vertices.size() - 3).x);
+ m_spline_y.add_point(0.0, m_src_vertices.prev(m_src_vertices.size() - 3).y);
+ m_spline_x.add_point(1.0, m_src_vertices[m_src_vertices.size() - 3].x);
+ m_spline_y.add_point(1.0, m_src_vertices[m_src_vertices.size() - 3].y);
+ m_spline_x.add_point(2.0, m_src_vertices[m_src_vertices.size() - 2].x);
+ m_spline_y.add_point(2.0, m_src_vertices[m_src_vertices.size() - 2].y);
+ m_spline_x.add_point(3.0, m_src_vertices[m_src_vertices.size() - 1].x);
+ m_spline_y.add_point(3.0, m_src_vertices[m_src_vertices.size() - 1].y);
+ }
+ else
+ {
+ m_spline_x.init(m_src_vertices.size());
+ m_spline_y.init(m_src_vertices.size());
+ }
+ unsigned i;
+ for(i = 0; i < m_src_vertices.size(); i++)
+ {
+ double x = m_closed ? i + 4 : i;
+ m_spline_x.add_point(x, m_src_vertices[i].x);
+ m_spline_y.add_point(x, m_src_vertices[i].y);
+ }
+ m_cur_abscissa = 0.0;
+ m_max_abscissa = m_src_vertices.size() - 1;
+ if(m_closed)
+ {
+ m_cur_abscissa = 4.0;
+ m_max_abscissa += 5.0;
+ m_spline_x.add_point(m_src_vertices.size() + 4, m_src_vertices[0].x);
+ m_spline_y.add_point(m_src_vertices.size() + 4, m_src_vertices[0].y);
+ m_spline_x.add_point(m_src_vertices.size() + 5, m_src_vertices[1].x);
+ m_spline_y.add_point(m_src_vertices.size() + 5, m_src_vertices[1].y);
+ m_spline_x.add_point(m_src_vertices.size() + 6, m_src_vertices[2].x);
+ m_spline_y.add_point(m_src_vertices.size() + 6, m_src_vertices[2].y);
+ m_spline_x.add_point(m_src_vertices.size() + 7, m_src_vertices.next(2).x);
+ m_spline_y.add_point(m_src_vertices.size() + 7, m_src_vertices.next(2).y);
+ }
+ m_spline_x.prepare();
+ m_spline_y.prepare();
+ m_status = ready;
+ }
+ }
+
+
+
+
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_bspline::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_line_to;
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ rewind(0);
+
+ case ready:
+ if(m_src_vertices.size() < 2)
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+
+ if(m_src_vertices.size() == 2)
+ {
+ *x = m_src_vertices[m_src_vertex].x;
+ *y = m_src_vertices[m_src_vertex].y;
+ m_src_vertex++;
+ if(m_src_vertex == 1) return path_cmd_move_to;
+ if(m_src_vertex == 2) return path_cmd_line_to;
+ cmd = path_cmd_stop;
+ break;
+ }
+
+ cmd = path_cmd_move_to;
+ m_status = polygon;
+ m_src_vertex = 0;
+
+ case polygon:
+ if(m_cur_abscissa >= m_max_abscissa)
+ {
+ if(m_closed)
+ {
+ m_status = end_poly;
+ break;
+ }
+ else
+ {
+ *x = m_src_vertices[m_src_vertices.size() - 1].x;
+ *y = m_src_vertices[m_src_vertices.size() - 1].y;
+ m_status = end_poly;
+ return path_cmd_line_to;
+ }
+ }
+
+ *x = m_spline_x.get_stateful(m_cur_abscissa);
+ *y = m_spline_y.get_stateful(m_cur_abscissa);
+ m_src_vertex++;
+ m_cur_abscissa += m_interpolation_step;
+ return (m_src_vertex == 1) ? path_cmd_move_to : path_cmd_line_to;
+
+ case end_poly:
+ m_status = stop;
+ return path_cmd_end_poly | m_closed;
+
+ case stop:
+ return path_cmd_stop;
+ }
+ }
+ return cmd;
+ }
+
+
+}
+
diff --git a/agg/source/agg_vcgen_contour.cpp b/agg/source/agg_vcgen_contour.cpp
new file mode 100755
index 000000000000..979407417e75
--- /dev/null
+++ b/agg/source/agg_vcgen_contour.cpp
@@ -0,0 +1,191 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Contour generator
+//
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_vcgen_contour.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ vcgen_contour::vcgen_contour() :
+ m_src_vertices(),
+ m_out_vertices(),
+ m_width(1.0),
+ m_line_join(bevel_join),
+ m_inner_line_join(miter_join_revert),
+ m_approx_scale(1.0),
+ m_abs_width(1.0),
+ m_signed_width(1.0),
+ m_miter_limit(4.0),
+ m_inner_miter_limit(1.0 + 1.0/64.0),
+ m_status(initial),
+ m_src_vertex(0),
+ m_closed(0),
+ m_orientation(0),
+ m_auto_detect(false)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_contour::remove_all()
+ {
+ m_src_vertices.remove_all();
+ m_closed = 0;
+ m_orientation = 0;
+ m_abs_width = fabs(m_width);
+ m_signed_width = m_width;
+ m_status = initial;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_contour::miter_limit_theta(double t)
+ {
+ m_miter_limit = 1.0 / sin(t * 0.5) ;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_contour::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_status = initial;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(vertex_dist(x, y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(vertex_dist(x, y));
+ }
+ else
+ {
+ if(is_end_poly(cmd))
+ {
+ m_closed = get_close_flag(cmd);
+ if(m_orientation == path_flags_none)
+ {
+ m_orientation = get_orientation(cmd);
+ }
+ }
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_contour::rewind(unsigned)
+ {
+ if(m_status == initial)
+ {
+ m_src_vertices.close(true);
+ m_signed_width = m_width;
+ if(m_auto_detect)
+ {
+ if(!is_oriented(m_orientation))
+ {
+ m_orientation = (calc_polygon_area(m_src_vertices) > 0.0) ?
+ path_flags_ccw :
+ path_flags_cw;
+ }
+ }
+ if(is_oriented(m_orientation))
+ {
+ m_signed_width = is_ccw(m_orientation) ? m_width : -m_width;
+ }
+ }
+ m_status = ready;
+ m_src_vertex = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_contour::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_line_to;
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ rewind(0);
+
+ case ready:
+ if(m_src_vertices.size() < 2 + unsigned(m_closed != 0))
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+ m_status = outline;
+ cmd = path_cmd_move_to;
+ m_src_vertex = 0;
+ m_out_vertex = 0;
+
+ case outline:
+ if(m_src_vertex >= m_src_vertices.size())
+ {
+ m_status = end_poly;
+ break;
+ }
+ stroke_calc_join(m_out_vertices,
+ m_src_vertices.prev(m_src_vertex),
+ m_src_vertices.curr(m_src_vertex),
+ m_src_vertices.next(m_src_vertex),
+ m_src_vertices.prev(m_src_vertex).dist,
+ m_src_vertices.curr(m_src_vertex).dist,
+ m_signed_width,
+ m_line_join,
+ m_inner_line_join,
+ m_miter_limit,
+ m_inner_miter_limit,
+ m_approx_scale);
+ ++m_src_vertex;
+ m_status = out_vertices;
+ m_out_vertex = 0;
+
+ case out_vertices:
+ if(m_out_vertex >= m_out_vertices.size())
+ {
+ m_status = outline;
+ }
+ else
+ {
+ const point_type& c = m_out_vertices[m_out_vertex++];
+ *x = c.x;
+ *y = c.y;
+ return cmd;
+ }
+ break;
+
+ case end_poly:
+ if(!m_closed) return path_cmd_stop;
+ m_status = stop;
+ return (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_ccw;
+
+ case stop:
+ return path_cmd_stop;
+ }
+ }
+ return cmd;
+ }
+
+}
diff --git a/agg/source/agg_vcgen_dash.cpp b/agg/source/agg_vcgen_dash.cpp
new file mode 100755
index 000000000000..96783abe9952
--- /dev/null
+++ b/agg/source/agg_vcgen_dash.cpp
@@ -0,0 +1,237 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Line dash generator
+//
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_vcgen_dash.h"
+#include "agg_shorten_path.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ vcgen_dash::vcgen_dash() :
+ m_total_dash_len(0.0),
+ m_num_dashes(0),
+ m_dash_start(0.0),
+ m_shorten(0.0),
+ m_curr_dash_start(0.0),
+ m_curr_dash(0),
+ m_src_vertices(),
+ m_closed(0),
+ m_status(initial),
+ m_src_vertex(0)
+ {
+ }
+
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::remove_all_dashes()
+ {
+ m_total_dash_len = 0.0;
+ m_num_dashes = 0;
+ m_curr_dash_start = 0.0;
+ m_curr_dash = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::add_dash(double dash_len, double gap_len)
+ {
+ if(m_num_dashes < max_dashes)
+ {
+ m_total_dash_len += dash_len + gap_len;
+ m_dashes[m_num_dashes++] = dash_len;
+ m_dashes[m_num_dashes++] = gap_len;
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::dash_start(double ds)
+ {
+ m_dash_start = ds;
+ calc_dash_start(fabs(ds));
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::calc_dash_start(double ds)
+ {
+ m_curr_dash = 0;
+ m_curr_dash_start = 0.0;
+ while(ds > 0.0)
+ {
+ if(ds > m_dashes[m_curr_dash])
+ {
+ ds -= m_dashes[m_curr_dash];
+ ++m_curr_dash;
+ m_curr_dash_start = 0.0;
+ if(m_curr_dash >= m_num_dashes) m_curr_dash = 0;
+ }
+ else
+ {
+ m_curr_dash_start = ds;
+ ds = 0.0;
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::remove_all()
+ {
+ m_status = initial;
+ m_src_vertices.remove_all();
+ m_closed = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_status = initial;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(vertex_dist(x, y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(vertex_dist(x, y));
+ }
+ else
+ {
+ m_closed = get_close_flag(cmd);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_dash::rewind(unsigned)
+ {
+ if(m_status == initial)
+ {
+ m_src_vertices.close(m_closed != 0);
+ shorten_path(m_src_vertices, m_shorten, m_closed);
+ }
+ m_status = ready;
+ m_src_vertex = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_dash::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_move_to;
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ rewind(0);
+
+ case ready:
+ if(m_num_dashes < 2 || m_src_vertices.size() < 2)
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+ m_status = polyline;
+ m_src_vertex = 1;
+ m_v1 = &m_src_vertices[0];
+ m_v2 = &m_src_vertices[1];
+ m_curr_rest = m_v1->dist;
+ *x = m_v1->x;
+ *y = m_v1->y;
+ if(m_dash_start >= 0.0) calc_dash_start(m_dash_start);
+ return path_cmd_move_to;
+
+ case polyline:
+ {
+ double dash_rest = m_dashes[m_curr_dash] - m_curr_dash_start;
+
+ unsigned _cmd = (m_curr_dash & 1) ?
+ path_cmd_move_to :
+ path_cmd_line_to;
+
+ if(m_curr_rest > dash_rest)
+ {
+ m_curr_rest -= dash_rest;
+ ++m_curr_dash;
+ if(m_curr_dash >= m_num_dashes) m_curr_dash = 0;
+ m_curr_dash_start = 0.0;
+ *x = m_v2->x - (m_v2->x - m_v1->x) * m_curr_rest / m_v1->dist;
+ *y = m_v2->y - (m_v2->y - m_v1->y) * m_curr_rest / m_v1->dist;
+ }
+ else
+ {
+ m_curr_dash_start += m_curr_rest;
+ *x = m_v2->x;
+ *y = m_v2->y;
+ ++m_src_vertex;
+ m_v1 = m_v2;
+ m_curr_rest = m_v1->dist;
+ if(m_closed)
+ {
+ if(m_src_vertex > m_src_vertices.size())
+ {
+ m_status = stop;
+ }
+ else
+ {
+ m_v2 = &m_src_vertices
+ [
+ (m_src_vertex >= m_src_vertices.size()) ? 0 :
+ m_src_vertex
+ ];
+ }
+ }
+ else
+ {
+ if(m_src_vertex >= m_src_vertices.size())
+ {
+ m_status = stop;
+ }
+ else
+ {
+ m_v2 = &m_src_vertices[m_src_vertex];
+ }
+ }
+ }
+ return _cmd;
+ }
+
+ // statement unreachable
+ //break;
+
+ case stop:
+ cmd = path_cmd_stop;
+ break;
+ }
+
+ }
+ return path_cmd_stop;
+ }
+
+
+}
+
diff --git a/agg/source/agg_vcgen_markers_term.cpp b/agg/source/agg_vcgen_markers_term.cpp
new file mode 100755
index 000000000000..0daa40793764
--- /dev/null
+++ b/agg/source/agg_vcgen_markers_term.cpp
@@ -0,0 +1,103 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Terminal markers generator (arrowhead/arrowtail)
+//
+//----------------------------------------------------------------------------
+
+#include "agg_vcgen_markers_term.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ void vcgen_markers_term::remove_all()
+ {
+ m_markers.remove_all();
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_markers_term::add_vertex(double x, double y, unsigned cmd)
+ {
+ if(is_move_to(cmd))
+ {
+ if(m_markers.size() & 1)
+ {
+ // Initial state, the first coordinate was added.
+ // If two of more calls of start_vertex() occures
+ // we just modify the last one.
+ m_markers.modify_last(coord_type(x, y));
+ }
+ else
+ {
+ m_markers.add(coord_type(x, y));
+ }
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ if(m_markers.size() & 1)
+ {
+ // Initial state, the first coordinate was added.
+ // Add three more points, 0,1,1,0
+ m_markers.add(coord_type(x, y));
+ m_markers.add(m_markers[m_markers.size() - 1]);
+ m_markers.add(m_markers[m_markers.size() - 3]);
+ }
+ else
+ {
+ if(m_markers.size())
+ {
+ // Replace two last points: 0,1,1,0 -> 0,1,2,1
+ m_markers[m_markers.size() - 1] = m_markers[m_markers.size() - 2];
+ m_markers[m_markers.size() - 2] = coord_type(x, y);
+ }
+ }
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_markers_term::rewind(unsigned id)
+ {
+ m_curr_id = id * 2;
+ m_curr_idx = m_curr_id;
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_markers_term::vertex(double* x, double* y)
+ {
+ if(m_curr_id > 2 || m_curr_idx >= m_markers.size())
+ {
+ return path_cmd_stop;
+ }
+ const coord_type& c = m_markers[m_curr_idx];
+ *x = c.x;
+ *y = c.y;
+ if(m_curr_idx & 1)
+ {
+ m_curr_idx += 3;
+ return path_cmd_line_to;
+ }
+ ++m_curr_idx;
+ return path_cmd_move_to;
+ }
+
+
+}
diff --git a/agg/source/agg_vcgen_smooth_poly1.cpp b/agg/source/agg_vcgen_smooth_poly1.cpp
new file mode 100755
index 000000000000..1df1edb5c72c
--- /dev/null
+++ b/agg/source/agg_vcgen_smooth_poly1.cpp
@@ -0,0 +1,226 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Smooth polygon generator
+//
+//----------------------------------------------------------------------------
+
+#include "agg_vcgen_smooth_poly1.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ vcgen_smooth_poly1::vcgen_smooth_poly1() :
+ m_src_vertices(),
+ m_smooth_value(0.5),
+ m_closed(0),
+ m_status(initial),
+ m_src_vertex(0)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_smooth_poly1::remove_all()
+ {
+ m_src_vertices.remove_all();
+ m_closed = 0;
+ m_status = initial;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_smooth_poly1::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_status = initial;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(vertex_dist(x, y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(vertex_dist(x, y));
+ }
+ else
+ {
+ m_closed = get_close_flag(cmd);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_smooth_poly1::rewind(unsigned)
+ {
+ if(m_status == initial)
+ {
+ m_src_vertices.close(m_closed != 0);
+ }
+ m_status = ready;
+ m_src_vertex = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_smooth_poly1::calculate(const vertex_dist& v0,
+ const vertex_dist& v1,
+ const vertex_dist& v2,
+ const vertex_dist& v3)
+ {
+
+ double k1 = v0.dist / (v0.dist + v1.dist);
+ double k2 = v1.dist / (v1.dist + v2.dist);
+
+ double xm1 = v0.x + (v2.x - v0.x) * k1;
+ double ym1 = v0.y + (v2.y - v0.y) * k1;
+ double xm2 = v1.x + (v3.x - v1.x) * k2;
+ double ym2 = v1.y + (v3.y - v1.y) * k2;
+
+ m_ctrl1_x = v1.x + m_smooth_value * (v2.x - xm1);
+ m_ctrl1_y = v1.y + m_smooth_value * (v2.y - ym1);
+ m_ctrl2_x = v2.x + m_smooth_value * (v1.x - xm2);
+ m_ctrl2_y = v2.y + m_smooth_value * (v1.y - ym2);
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_smooth_poly1::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_line_to;
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ rewind(0);
+
+ case ready:
+ if(m_src_vertices.size() < 2)
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+
+ if(m_src_vertices.size() == 2)
+ {
+ *x = m_src_vertices[m_src_vertex].x;
+ *y = m_src_vertices[m_src_vertex].y;
+ m_src_vertex++;
+ if(m_src_vertex == 1) return path_cmd_move_to;
+ if(m_src_vertex == 2) return path_cmd_line_to;
+ cmd = path_cmd_stop;
+ break;
+ }
+
+ cmd = path_cmd_move_to;
+ m_status = polygon;
+ m_src_vertex = 0;
+
+ case polygon:
+ if(m_closed)
+ {
+ if(m_src_vertex >= m_src_vertices.size())
+ {
+ *x = m_src_vertices[0].x;
+ *y = m_src_vertices[0].y;
+ m_status = end_poly;
+ return path_cmd_curve4;
+ }
+ }
+ else
+ {
+ if(m_src_vertex >= m_src_vertices.size() - 1)
+ {
+ *x = m_src_vertices[m_src_vertices.size() - 1].x;
+ *y = m_src_vertices[m_src_vertices.size() - 1].y;
+ m_status = end_poly;
+ return path_cmd_curve3;
+ }
+ }
+
+ calculate(m_src_vertices.prev(m_src_vertex),
+ m_src_vertices.curr(m_src_vertex),
+ m_src_vertices.next(m_src_vertex),
+ m_src_vertices.next(m_src_vertex + 1));
+
+ *x = m_src_vertices[m_src_vertex].x;
+ *y = m_src_vertices[m_src_vertex].y;
+ m_src_vertex++;
+
+ if(m_closed)
+ {
+ m_status = ctrl1;
+ return ((m_src_vertex == 1) ?
+ path_cmd_move_to :
+ path_cmd_curve4);
+ }
+ else
+ {
+ if(m_src_vertex == 1)
+ {
+ m_status = ctrl_b;
+ return path_cmd_move_to;
+ }
+ if(m_src_vertex >= m_src_vertices.size() - 1)
+ {
+ m_status = ctrl_e;
+ return path_cmd_curve3;
+ }
+ m_status = ctrl1;
+ return path_cmd_curve4;
+ }
+ // statement unreachable
+ //break;
+
+ case ctrl_b:
+ *x = m_ctrl2_x;
+ *y = m_ctrl2_y;
+ m_status = polygon;
+ return path_cmd_curve3;
+
+ case ctrl_e:
+ *x = m_ctrl1_x;
+ *y = m_ctrl1_y;
+ m_status = polygon;
+ return path_cmd_curve3;
+
+ case ctrl1:
+ *x = m_ctrl1_x;
+ *y = m_ctrl1_y;
+ m_status = ctrl2;
+ return path_cmd_curve4;
+
+ case ctrl2:
+ *x = m_ctrl2_x;
+ *y = m_ctrl2_y;
+ m_status = polygon;
+ return path_cmd_curve4;
+
+ case end_poly:
+ m_status = stop;
+ return path_cmd_end_poly | m_closed;
+
+ case stop:
+ return path_cmd_stop;
+ }
+ }
+ return cmd;
+ }
+
+}
+
diff --git a/agg/source/agg_vcgen_stroke.cpp b/agg/source/agg_vcgen_stroke.cpp
new file mode 100755
index 000000000000..a8a4481ec25b
--- /dev/null
+++ b/agg/source/agg_vcgen_stroke.cpp
@@ -0,0 +1,246 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+//
+// Stroke generator
+//
+//----------------------------------------------------------------------------
+#include <math.h>
+#include "agg_vcgen_stroke.h"
+#include "agg_shorten_path.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ vcgen_stroke::vcgen_stroke() :
+ m_src_vertices(),
+ m_out_vertices(),
+ m_width(0.5),
+ m_miter_limit(4.0),
+ m_inner_miter_limit(1.0 + 1.0/64.0),
+ m_approx_scale(1.0),
+ m_shorten(0.0),
+ m_line_cap(butt_cap),
+ m_line_join(miter_join),
+ m_inner_line_join(miter_join_revert),
+ m_closed(0),
+ m_status(initial),
+ m_src_vertex(0),
+ m_out_vertex(0)
+ {
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_stroke::miter_limit_theta(double t)
+ {
+ m_miter_limit = 1.0 / sin(t * 0.5) ;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_stroke::remove_all()
+ {
+ m_src_vertices.remove_all();
+ m_closed = 0;
+ m_status = initial;
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_stroke::add_vertex(double x, double y, unsigned cmd)
+ {
+ m_status = initial;
+ if(is_move_to(cmd))
+ {
+ m_src_vertices.modify_last(vertex_dist(x, y));
+ }
+ else
+ {
+ if(is_vertex(cmd))
+ {
+ m_src_vertices.add(vertex_dist(x, y));
+ }
+ else
+ {
+ m_closed = get_close_flag(cmd);
+ }
+ }
+ }
+
+
+ //------------------------------------------------------------------------
+ void vcgen_stroke::rewind(unsigned)
+ {
+ if(m_status == initial)
+ {
+ m_src_vertices.close(m_closed != 0);
+ shorten_path(m_src_vertices, m_shorten, m_closed);
+ if(m_src_vertices.size() < 3) m_closed = 0;
+ }
+ m_status = ready;
+ m_src_vertex = 0;
+ m_out_vertex = 0;
+ }
+
+
+ //------------------------------------------------------------------------
+ unsigned vcgen_stroke::vertex(double* x, double* y)
+ {
+ unsigned cmd = path_cmd_line_to;
+ while(!is_stop(cmd))
+ {
+ switch(m_status)
+ {
+ case initial:
+ rewind(0);
+
+ case ready:
+ if(m_src_vertices.size() < 2 + unsigned(m_closed != 0))
+ {
+ cmd = path_cmd_stop;
+ break;
+ }
+ m_status = m_closed ? outline1 : cap1;
+ cmd = path_cmd_move_to;
+ m_src_vertex = 0;
+ m_out_vertex = 0;
+ break;
+
+ case cap1:
+ stroke_calc_cap(m_out_vertices,
+ m_src_vertices[0],
+ m_src_vertices[1],
+ m_src_vertices[0].dist,
+ m_line_cap,
+ m_width,
+ m_approx_scale);
+ m_src_vertex = 1;
+ m_prev_status = outline1;
+ m_status = out_vertices;
+ m_out_vertex = 0;
+ break;
+
+ case cap2:
+ stroke_calc_cap(m_out_vertices,
+ m_src_vertices[m_src_vertices.size() - 1],
+ m_src_vertices[m_src_vertices.size() - 2],
+ m_src_vertices[m_src_vertices.size() - 2].dist,
+ m_line_cap,
+ m_width,
+ m_approx_scale);
+ m_prev_status = outline2;
+ m_status = out_vertices;
+ m_out_vertex = 0;
+ break;
+
+ case outline1:
+ if(m_closed)
+ {
+ if(m_src_vertex >= m_src_vertices.size())
+ {
+ m_prev_status = close_first;
+ m_status = end_poly1;
+ break;
+ }
+ }
+ else
+ {
+ if(m_src_vertex >= m_src_vertices.size() - 1)
+ {
+ m_status = cap2;
+ break;
+ }
+ }
+ stroke_calc_join(m_out_vertices,
+ m_src_vertices.prev(m_src_vertex),
+ m_src_vertices.curr(m_src_vertex),
+ m_src_vertices.next(m_src_vertex),
+ m_src_vertices.prev(m_src_vertex).dist,
+ m_src_vertices.curr(m_src_vertex).dist,
+ m_width,
+ m_line_join,
+ m_inner_line_join,
+ m_miter_limit,
+ m_inner_miter_limit,
+ m_approx_scale);
+ ++m_src_vertex;
+ m_prev_status = m_status;
+ m_status = out_vertices;
+ m_out_vertex = 0;
+ break;
+
+ case close_first:
+ m_status = outline2;
+ cmd = path_cmd_move_to;
+
+ case outline2:
+ if(m_src_vertex <= unsigned(m_closed == 0))
+ {
+ m_status = end_poly2;
+ m_prev_status = stop;
+ break;
+ }
+
+ --m_src_vertex;
+ stroke_calc_join(m_out_vertices,
+ m_src_vertices.next(m_src_vertex),
+ m_src_vertices.curr(m_src_vertex),
+ m_src_vertices.prev(m_src_vertex),
+ m_src_vertices.curr(m_src_vertex).dist,
+ m_src_vertices.prev(m_src_vertex).dist,
+ m_width,
+ m_line_join,
+ m_inner_line_join,
+ m_miter_limit,
+ m_inner_miter_limit,
+ m_approx_scale);
+
+ m_prev_status = m_status;
+ m_status = out_vertices;
+ m_out_vertex = 0;
+ break;
+
+ case out_vertices:
+ if(m_out_vertex >= m_out_vertices.size())
+ {
+ m_status = m_prev_status;
+ }
+ else
+ {
+ const point_type& c = m_out_vertices[m_out_vertex++];
+ *x = c.x;
+ *y = c.y;
+ return cmd;
+ }
+ break;
+
+ case end_poly1:
+ m_status = m_prev_status;
+ return (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_ccw;
+
+ case end_poly2:
+ m_status = m_prev_status;
+ return (unsigned)path_cmd_end_poly | (unsigned)path_flags_close | (unsigned)path_flags_cw;
+
+ case stop:
+ cmd = path_cmd_stop;
+ break;
+ }
+ }
+ return cmd;
+ }
+
+}
diff --git a/agg/source/agg_vpgen_clip_polygon.cpp b/agg/source/agg_vpgen_clip_polygon.cpp
new file mode 100755
index 000000000000..e3a0b71d821b
--- /dev/null
+++ b/agg/source/agg_vpgen_clip_polygon.cpp
@@ -0,0 +1,133 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include "agg_vpgen_clip_polygon.h"
+#include "agg_clip_liang_barsky.h"
+
+namespace agg
+{
+
+ //------------------------------------------------------------------------
+ // Determine the clipping code of the vertex according to the
+ // Cyrus-Beck line clipping algorithm
+ //
+ // | |
+ // 0110 | 0010 | 0011
+ // | |
+ // -------+--------+-------- clip_box.y2
+ // | |
+ // 0100 | 0000 | 0001
+ // | |
+ // -------+--------+-------- clip_box.y1
+ // | |
+ // 1100 | 1000 | 1001
+ // | |
+ // clip_box.x1 clip_box.x2
+ //
+ //
+ unsigned vpgen_clip_polygon::clipping_flags(double x, double y)
+ {
+ if(x < m_clip_box.x1)
+ {
+ if(y > m_clip_box.y2) return 6;
+ if(y < m_clip_box.y1) return 12;
+ return 4;
+ }
+
+ if(x > m_clip_box.x2)
+ {
+ if(y > m_clip_box.y2) return 3;
+ if(y < m_clip_box.y1) return 9;
+ return 1;
+ }
+
+ if(y > m_clip_box.y2) return 2;
+ if(y < m_clip_box.y1) return 8;
+
+ return 0;
+ }
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polygon::reset()
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ }
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polygon::move_to(double x, double y)
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ m_clip_flags = clipping_flags(x, y);
+ if(m_clip_flags == 0)
+ {
+ m_x[0] = x;
+ m_y[0] = y;
+ m_num_vertices = 1;
+ }
+ m_x1 = x;
+ m_y1 = y;
+ m_cmd = path_cmd_move_to;
+ }
+
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polygon::line_to(double x, double y)
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ unsigned flags = clipping_flags(x, y);
+
+ if(m_clip_flags == flags)
+ {
+ if(flags == 0)
+ {
+ m_x[0] = x;
+ m_y[0] = y;
+ m_num_vertices = 1;
+ }
+ }
+ else
+ {
+ m_num_vertices = clip_liang_barsky(m_x1, m_y1,
+ x, y,
+ m_clip_box,
+ m_x, m_y);
+ }
+
+ m_clip_flags = flags;
+ m_x1 = x;
+ m_y1 = y;
+ }
+
+
+ //----------------------------------------------------------------------------
+ unsigned vpgen_clip_polygon::vertex(double* x, double* y)
+ {
+ if(m_vertex < m_num_vertices)
+ {
+ *x = m_x[m_vertex];
+ *y = m_y[m_vertex];
+ ++m_vertex;
+ unsigned cmd = m_cmd;
+ m_cmd = path_cmd_line_to;
+ return cmd;
+ }
+ return path_cmd_stop;
+ }
+
+
+}
diff --git a/agg/source/agg_vpgen_clip_polyline.cpp b/agg/source/agg_vpgen_clip_polyline.cpp
new file mode 100755
index 000000000000..b3b60c96a70d
--- /dev/null
+++ b/agg/source/agg_vpgen_clip_polyline.cpp
@@ -0,0 +1,142 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_vpgen_clip_polyline.h"
+
+namespace agg
+{
+ static double clip_epsilon = 1e-10;
+
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polyline::reset()
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ }
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polyline::move_to(double x, double y)
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ m_f1 = clipping_flags(x, y);
+ if(m_f1 == 0)
+ {
+ m_x[0] = x;
+ m_y[0] = y;
+ m_cmd[0] = path_cmd_move_to;
+ m_num_vertices = 1;
+ }
+ m_x1 = x;
+ m_y1 = y;
+ }
+
+
+ //----------------------------------------------------------------------------
+ bool vpgen_clip_polyline::move_point(double& x, double& y, unsigned& flags)
+ {
+ double bound;
+
+ if(flags & (clip_x1 | clip_x2))
+ {
+ bound = (flags & clip_x1) ? m_clip_box.x1 : m_clip_box.x2;
+ y = (bound - m_x1) * (m_y2 - m_y1) / (m_x2 - m_x1) + m_y1;
+ x = bound;
+ flags = clipping_flags_y(y);
+ }
+ if(fabs(m_y2 - m_y1) < clip_epsilon && fabs(m_x2 - m_x1) < clip_epsilon)
+ {
+ return false;
+ }
+ if(flags & (clip_y1 | clip_y2))
+ {
+ bound = (flags & clip_y1) ? m_clip_box.y1 : m_clip_box.y2;
+ x = (bound - m_y1) * (m_x2 - m_x1) / (m_y2 - m_y1) + m_x1;
+ y = bound;
+ }
+ flags = 0;
+ return true;
+ }
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polyline::clip_line_segment()
+ {
+ if((m_f1 & m_f2) == 0)
+ {
+ if(m_f1)
+ {
+ if(!move_point(m_x1, m_y1, m_f1)) return;
+ if(m_f1) return;
+ m_x[0] = m_x1;
+ m_y[0] = m_y1;
+ m_cmd[0] = path_cmd_move_to;
+ m_num_vertices = 1;
+ }
+ if(m_f2)
+ { // Move Point 2
+ if(!move_point(m_x2, m_y2, m_f2)) return;
+ }
+ m_x[m_num_vertices] = m_x2;
+ m_y[m_num_vertices] = m_y2;
+ m_cmd[m_num_vertices++] = path_cmd_line_to;
+ }
+ }
+
+
+
+ //----------------------------------------------------------------------------
+ void vpgen_clip_polyline::line_to(double x, double y)
+ {
+ m_vertex = 0;
+ m_num_vertices = 0;
+ unsigned f = m_f2 = clipping_flags(m_x2 = x, m_y2 = y);
+
+ if(m_f2 == m_f1)
+ {
+ if(m_f2 == 0)
+ {
+ m_x[0] = x;
+ m_y[0] = y;
+ m_cmd[0] = path_cmd_line_to;
+ m_num_vertices = 1;
+ }
+ }
+ else
+ {
+ clip_line_segment();
+ }
+
+ m_f1 = f;
+ m_x1 = x;
+ m_y1 = y;
+ }
+
+
+ //----------------------------------------------------------------------------
+ unsigned vpgen_clip_polyline::vertex(double* x, double* y)
+ {
+ if(m_vertex < m_num_vertices)
+ {
+ *x = m_x[m_vertex];
+ *y = m_y[m_vertex];
+ return m_cmd[m_vertex++];
+ }
+ return path_cmd_stop;
+ }
+
+
+}
diff --git a/agg/source/agg_vpgen_segmentator.cpp b/agg/source/agg_vpgen_segmentator.cpp
new file mode 100755
index 000000000000..97e76707c1cb
--- /dev/null
+++ b/agg/source/agg_vpgen_segmentator.cpp
@@ -0,0 +1,67 @@
+//----------------------------------------------------------------------------
+// Anti-Grain Geometry - Version 2.3
+// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
+//
+// Permission to copy, use, modify, sell and distribute this software
+// is granted provided this copyright notice appears in all copies.
+// This software is provided "as is" without express or implied
+// warranty, and with no claim as to its suitability for any purpose.
+//
+//----------------------------------------------------------------------------
+// Contact: mcseem@antigrain.com
+// mcseemagg@yahoo.com
+// http://www.antigrain.com
+//----------------------------------------------------------------------------
+
+#include <math.h>
+#include "agg_vpgen_segmentator.h"
+
+namespace agg
+{
+
+ void vpgen_segmentator::move_to(double x, double y)
+ {
+ m_x1 = x;
+ m_y1 = y;
+ m_dx = 0.0;
+ m_dy = 0.0;
+ m_dl = 2.0;
+ m_ddl = 2.0;
+ m_cmd = path_cmd_move_to;
+ }
+
+ void vpgen_segmentator::line_to(double x, double y)
+ {
+ m_x1 += m_dx;
+ m_y1 += m_dy;
+ m_dx = x - m_x1;
+ m_dy = y - m_y1;
+ double len = sqrt(m_dx * m_dx + m_dy * m_dy) * m_approximation_scale;
+ if(len < 1e-30) len = 1e-30;
+ m_ddl = 1.0 / len;
+ m_dl = (m_cmd == path_cmd_move_to) ? 0.0 : m_ddl;
+ if(m_cmd == path_cmd_stop) m_cmd = path_cmd_line_to;
+ }
+
+ unsigned vpgen_segmentator::vertex(double* x, double* y)
+ {
+ if(m_cmd == path_cmd_stop) return path_cmd_stop;
+
+ unsigned cmd = m_cmd;
+ m_cmd = path_cmd_line_to;
+ if(m_dl >= 1.0 - m_ddl)
+ {
+ m_dl = 1.0;
+ m_cmd = path_cmd_stop;
+ *x = m_x1 + m_dx;
+ *y = m_y1 + m_dy;
+ return cmd;
+ }
+ *x = m_x1 + m_dx * m_dl;
+ *y = m_y1 + m_dy * m_dl;
+ m_dl += m_ddl;
+ return cmd;
+ }
+
+}
+
diff --git a/agg/source/makefile.mk b/agg/source/makefile.mk
new file mode 100755
index 000000000000..e29f2c3b8891
--- /dev/null
+++ b/agg/source/makefile.mk
@@ -0,0 +1,91 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..
+PRJNAME=agg
+TARGET=agg
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+.IF "$(L10N_framework)"==""
+# don't link default libraries from sal
+UWINAPILIB=
+LIBSALCPPRT=
+# --- Files -------------------------------------
+
+SLOFILES= \
+ $(SLO)$/agg_arc.obj \
+ $(SLO)$/agg_arrowhead.obj \
+ $(SLO)$/agg_bezier_arc.obj \
+ $(SLO)$/agg_bspline.obj \
+ $(SLO)$/agg_curves.obj \
+ $(SLO)$/agg_embedded_raster_fonts.obj \
+ $(SLO)$/agg_gsv_text.obj \
+ $(SLO)$/agg_image_filters.obj \
+ $(SLO)$/agg_line_aa_basics.obj \
+ $(SLO)$/agg_line_profile_aa.obj \
+ $(SLO)$/agg_path_storage.obj \
+ $(SLO)$/agg_rasterizer_scanline_aa.obj \
+ $(SLO)$/agg_rounded_rect.obj \
+ $(SLO)$/agg_sqrt_tables.obj \
+ $(SLO)$/agg_trans_affine.obj \
+ $(SLO)$/agg_trans_double_path.obj \
+ $(SLO)$/agg_trans_single_path.obj \
+ $(SLO)$/agg_trans_warp_magnifier.obj \
+ $(SLO)$/agg_vcgen_bspline.obj \
+ $(SLO)$/agg_vcgen_contour.obj \
+ $(SLO)$/agg_vcgen_dash.obj \
+ $(SLO)$/agg_vcgen_markers_term.obj \
+ $(SLO)$/agg_vcgen_smooth_poly1.obj \
+ $(SLO)$/agg_vcgen_stroke.obj \
+ $(SLO)$/agg_vpgen_clip_polygon.obj \
+ $(SLO)$/agg_vpgen_clip_polyline.obj \
+ $(SLO)$/agg_vpgen_segmentator.obj
+
+SHL1TARGET = $(TARGET)$(DLLPOSTFIX)
+SHL1IMPLIB = i$(TARGET)
+SHL1LIBS = $(SLB)$/$(TARGET).lib
+SHL1DEF = $(MISC)$/$(SHL1TARGET).def
+DEF1NAME = $(SHL1TARGET)
+
+DEF1DEPN =$(MISC)$/$(SHL1TARGET).flt \
+ $(LIB1TARGET)
+
+DEF1DES =agg
+DEFLIB1NAME =$(TARGET)
+
+# --- Targets ----------------------------------
+
+.ENDIF # L10N_framework
+.INCLUDE : target.mk
+.IF "$(L10N_framework)"==""
+$(MISC)$/$(SHL1TARGET).flt : makefile.mk $(TARGET).flt
+ @$(TYPE) $(TARGET).flt > $@
+
+.ENDIF # L10N_framework
diff --git a/animations/inc/animations/animationnodehelper.hxx b/animations/inc/animations/animationnodehelper.hxx
new file mode 100644
index 000000000000..8857c52942ce
--- /dev/null
+++ b/animations/inc/animations/animationnodehelper.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef INCLUDED_ANIMATIONS_ANIMATIONNODEHELPER_HXX
+#define INCLUDED_ANIMATIONS_ANIMATIONNODEHELPER_HXX
+
+#include <com/sun/star/uno/Reference.hxx>
+#include <com/sun/star/animations/XAnimationNode.hpp>
+#include <com/sun/star/container/XEnumerationAccess.hpp>
+#include <com/sun/star/container/XEnumeration.hpp>
+
+#include <vector>
+
+/* Declaration and definition of AnimationNode helper */
+
+namespace anim
+{
+ // TODO(Q1): this could possibly be implemented with a somewhat
+ // more lightweight template, by having the actual worker receive
+ // only a function pointer, and a thin templated wrapper around
+ // that which converts member functions into that.
+
+ /** Apply given functor to every animation node child.
+
+ @param xNode
+ Parent node
+
+ @param rFunctor
+ Functor to apply. The functor must have an appropriate
+ operator()( const ::com::sun::star::uno::Reference<
+ ::com::sun::star::animations::XAnimationNode >& ) member.
+
+ @return true, if the functor was successfully applied to
+ all children, false otherwise.
+ */
+ template< typename Functor > inline bool for_each_childNode( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode,
+ Functor& rFunctor )
+ {
+ try
+ {
+ // get an XEnumerationAccess to the children
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess >
+ xEnumerationAccess( xNode,
+ ::com::sun::star::uno::UNO_QUERY_THROW );
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >
+ xEnumeration( xEnumerationAccess->createEnumeration(),
+ ::com::sun::star::uno::UNO_QUERY_THROW );
+
+ while( xEnumeration->hasMoreElements() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >
+ xChildNode( xEnumeration->nextElement(),
+ ::com::sun::star::uno::UNO_QUERY_THROW );
+
+ rFunctor( xChildNode );
+ }
+
+ return true;
+ }
+ catch( ::com::sun::star::uno::Exception& )
+ {
+ return false;
+ }
+ }
+
+
+ /** pushes the given node to the given vector and recursivly calls itself for each child node.
+ */
+ inline void create_deep_vector( const ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >& xNode,
+ std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode > >& rVector )
+ {
+ rVector.push_back( xNode );
+
+ try
+ {
+ // get an XEnumerationAccess to the children
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumerationAccess >
+ xEnumerationAccess( xNode,
+ ::com::sun::star::uno::UNO_QUERY );
+
+ if( xEnumerationAccess.is() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration >
+ xEnumeration( xEnumerationAccess->createEnumeration(),
+ ::com::sun::star::uno::UNO_QUERY );
+
+ if( xEnumeration.is() )
+ {
+ while( xEnumeration->hasMoreElements() )
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::animations::XAnimationNode >
+ xChildNode( xEnumeration->nextElement(),
+ ::com::sun::star::uno::UNO_QUERY_THROW );
+
+ create_deep_vector( xChildNode, rVector );
+ }
+ }
+ }
+ }
+ catch( ::com::sun::star::uno::Exception& )
+ {
+ }
+ }
+}
+
+#endif /* INCLUDED_ANIMATIONS_ANIMATIONNODEHELPER_HXX */
diff --git a/animations/prj/build.lst b/animations/prj/build.lst
new file mode 100644
index 000000000000..00a1eb69c743
--- /dev/null
+++ b/animations/prj/build.lst
@@ -0,0 +1,3 @@
+animations animations : cppuhelper comphelper offuh NULL
+animations animations usr1 - all animations_mkout NULL
+animations animations\source\animcore nmake - all animations_animcore NULL
diff --git a/animations/prj/d.lst b/animations/prj/d.lst
new file mode 100644
index 000000000000..bdab238656c3
--- /dev/null
+++ b/animations/prj/d.lst
@@ -0,0 +1,9 @@
+..\%__SRC%\bin\animcore.dll %_DEST%\bin%_EXT%\animcore.dll
+..\%__SRC%\lib\libanimcore.so %_DEST%\lib%_EXT%\libanimcore.so
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
+..\source\animcore\animcore.xml %_DEST%\xml%_EXT%\animcore.xml
+
+..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib%_EXT%\lib*static*.dylib
+
+mkdir: %_DEST%\inc%_EXT%\animations
+..\inc\animations\animationnodehelper.hxx %_DEST%\inc%_EXT%\animations\animationnodehelper.hxx
diff --git a/animations/source/animcore/animcore.cxx b/animations/source/animcore/animcore.cxx
new file mode 100644
index 000000000000..7b18a83e2fe4
--- /dev/null
+++ b/animations/source/animcore/animcore.cxx
@@ -0,0 +1,2089 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <com/sun/star/util/XCloneable.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/animations/XAnimateColor.hpp>
+#include <com/sun/star/animations/XAnimateSet.hpp>
+#include <com/sun/star/animations/XAnimateMotion.hpp>
+#include <com/sun/star/animations/XAnimateTransform.hpp>
+#include <com/sun/star/animations/XTransitionFilter.hpp>
+#include <com/sun/star/animations/XTimeContainer.hpp>
+#include <com/sun/star/animations/XIterateContainer.hpp>
+#include <com/sun/star/animations/XAudio.hpp>
+#include <com/sun/star/animations/XCommand.hpp>
+#include <com/sun/star/animations/AnimationNodeType.hpp>
+#include <com/sun/star/animations/AnimationCalcMode.hpp>
+#include <com/sun/star/animations/AnimationFill.hpp>
+#include <com/sun/star/animations/AnimationRestart.hpp>
+#include <com/sun/star/animations/AnimationColorSpace.hpp>
+#include <com/sun/star/animations/AnimationAdditiveMode.hpp>
+#include <com/sun/star/animations/AnimationTransformType.hpp>
+#include <com/sun/star/animations/TransitionType.hpp>
+#include <com/sun/star/animations/TransitionSubType.hpp>
+#include <com/sun/star/presentation/ShapeAnimationSubType.hpp>
+#include <com/sun/star/container/XEnumerationAccess.hpp>
+#include <com/sun/star/beans/NamedValue.hpp>
+#include <com/sun/star/util/XChangesNotifier.hpp>
+#include <com/sun/star/lang/XUnoTunnel.hpp>
+#include <cppuhelper/interfacecontainer.hxx>
+
+#include <cppuhelper/implbase1.hxx>
+#include <rtl/uuid.h>
+
+#include <osl/mutex.hxx>
+#include <list>
+#include <algorithm>
+
+using ::osl::Mutex;
+using ::osl::Guard;
+using ::rtl::OUString;
+using ::cppu::OInterfaceContainerHelper;
+using ::cppu::OInterfaceIteratorHelper;
+using ::com::sun::star::uno::Any;
+using ::com::sun::star::uno::UNO_QUERY;
+using ::com::sun::star::uno::XInterface;
+using ::com::sun::star::uno::RuntimeException;
+using ::com::sun::star::uno::Sequence;
+using ::com::sun::star::uno::Reference;
+using ::com::sun::star::uno::XComponentContext;
+using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::XWeak;
+using ::com::sun::star::uno::Type;
+using ::com::sun::star::uno::makeAny;
+using ::com::sun::star::lang::NoSupportException;
+using ::com::sun::star::lang::IllegalArgumentException;
+using ::com::sun::star::lang::WrappedTargetException;
+using ::com::sun::star::lang::NoSupportException;
+using ::com::sun::star::lang::XServiceInfo;
+using ::com::sun::star::lang::XTypeProvider;
+using ::com::sun::star::container::NoSuchElementException;
+using ::com::sun::star::container::ElementExistException;
+using ::com::sun::star::container::XEnumeration;
+using ::com::sun::star::container::XEnumerationAccess;
+using ::com::sun::star::beans::NamedValue;
+using ::com::sun::star::util::XCloneable;
+using ::com::sun::star::lang::XUnoTunnel;
+using ::com::sun::star::util::XChangesNotifier;
+using ::com::sun::star::util::XChangesListener;
+using ::com::sun::star::util::ElementChange;
+using ::com::sun::star::util::ChangesEvent;
+
+using ::cppu::OWeakObject;
+
+using namespace ::com::sun::star::animations;
+using namespace ::com::sun::star::animations::AnimationNodeType;
+
+namespace animcore
+{
+
+// ====================================================================
+
+typedef ::std::list< Reference< XAnimationNode > > ChildList_t;
+
+// ====================================================================
+
+class AnimationNodeBase : public XAnimateMotion,
+ public XAnimateColor,
+ public XTransitionFilter,
+ public XAnimateSet,
+ public XAnimateTransform,
+ public XIterateContainer,
+ public XEnumerationAccess,
+ public XServiceInfo,
+ public XTypeProvider,
+ public XAudio,
+ public XCommand,
+ public XCloneable,
+ public XChangesNotifier,
+ public XUnoTunnel,
+ public OWeakObject
+{
+public:
+ // our first, last and only protection from mutli-threads!
+ Mutex maMutex;
+};
+
+class AnimationNode : public AnimationNodeBase
+{
+public:
+ AnimationNode( sal_Int16 nNodeType );
+ AnimationNode( const AnimationNode& rNode );
+ virtual ~AnimationNode();
+
+ // XInterface
+ virtual Any SAL_CALL queryInterface( const Type& aType ) throw (RuntimeException);
+ virtual void SAL_CALL acquire() throw ();
+ virtual void SAL_CALL release() throw ();
+
+ // XTypeProvider
+ virtual Sequence< Type > SAL_CALL getTypes() throw (RuntimeException);
+ virtual Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (RuntimeException);
+
+ // XServiceInfo
+ OUString SAL_CALL getImplementationName() throw();
+ Sequence< OUString > SAL_CALL getSupportedServiceNames(void) throw();
+ sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw();
+
+ // XChild
+ virtual Reference< XInterface > SAL_CALL getParent() throw (RuntimeException);
+ virtual void SAL_CALL setParent( const Reference< XInterface >& Parent ) throw (NoSupportException, RuntimeException);
+
+ // XCloneable
+ virtual Reference< XCloneable > SAL_CALL createClone() throw (RuntimeException);
+
+ // XAnimationNode
+ virtual sal_Int16 SAL_CALL getType() throw (RuntimeException);
+ virtual Any SAL_CALL getBegin() throw (RuntimeException);
+ virtual void SAL_CALL setBegin( const Any& _begin ) throw (RuntimeException);
+ virtual Any SAL_CALL getDuration() throw (RuntimeException);
+ virtual void SAL_CALL setDuration( const Any& _duration ) throw (RuntimeException);
+ virtual Any SAL_CALL getEnd() throw (RuntimeException);
+ virtual void SAL_CALL setEnd( const Any& _end ) throw (RuntimeException);
+ virtual Any SAL_CALL getEndSync() throw (RuntimeException);
+ virtual void SAL_CALL setEndSync( const Any& _endsync ) throw (RuntimeException);
+ virtual Any SAL_CALL getRepeatCount() throw (RuntimeException);
+ virtual void SAL_CALL setRepeatCount( const Any& _repeatcount ) throw (RuntimeException);
+ virtual Any SAL_CALL getRepeatDuration() throw (RuntimeException);
+ virtual void SAL_CALL setRepeatDuration( const Any& _repeatduration ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getFill() throw (RuntimeException);
+ virtual void SAL_CALL setFill( sal_Int16 _fill ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getFillDefault() throw (RuntimeException);
+ virtual void SAL_CALL setFillDefault( sal_Int16 _filldefault ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getRestart() throw (RuntimeException);
+ virtual void SAL_CALL setRestart( sal_Int16 _restart ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getRestartDefault() throw (RuntimeException);
+ virtual void SAL_CALL setRestartDefault( sal_Int16 _restartdefault ) throw (RuntimeException);
+ virtual double SAL_CALL getAcceleration() throw (RuntimeException);
+ virtual void SAL_CALL setAcceleration( double _acceleration ) throw (RuntimeException);
+ virtual double SAL_CALL getDecelerate() throw (RuntimeException);
+ virtual void SAL_CALL setDecelerate( double _decelerate ) throw (RuntimeException);
+ virtual sal_Bool SAL_CALL getAutoReverse() throw (RuntimeException);
+ virtual void SAL_CALL setAutoReverse( sal_Bool _autoreverse ) throw (RuntimeException);
+ virtual Sequence< NamedValue > SAL_CALL getUserData() throw (RuntimeException);
+ virtual void SAL_CALL setUserData( const Sequence< NamedValue >& _userdata ) throw (RuntimeException);
+
+ // XAnimate
+ virtual Any SAL_CALL getTarget() throw (RuntimeException);
+ virtual void SAL_CALL setTarget( const Any& _target ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getSubItem() throw (RuntimeException);
+ virtual void SAL_CALL setSubItem( sal_Int16 _subitem ) throw (RuntimeException);
+ virtual OUString SAL_CALL getAttributeName() throw (RuntimeException);
+ virtual void SAL_CALL setAttributeName( const OUString& _attribute ) throw (RuntimeException);
+ virtual Sequence< Any > SAL_CALL getValues() throw (RuntimeException);
+ virtual void SAL_CALL setValues( const Sequence< Any >& _values ) throw (RuntimeException);
+ virtual Sequence< double > SAL_CALL getKeyTimes() throw (RuntimeException);
+ virtual void SAL_CALL setKeyTimes( const Sequence< double >& _keytimes ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getValueType() throw (RuntimeException);
+ virtual void SAL_CALL setValueType( sal_Int16 _valuetype ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getCalcMode() throw (RuntimeException);
+ virtual void SAL_CALL setCalcMode( sal_Int16 _calcmode ) throw (RuntimeException);
+ virtual sal_Bool SAL_CALL getAccumulate() throw (RuntimeException);
+ virtual void SAL_CALL setAccumulate( sal_Bool _accumulate ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getAdditive() throw (RuntimeException);
+ virtual void SAL_CALL setAdditive( sal_Int16 _additive ) throw (RuntimeException);
+ virtual Any SAL_CALL getFrom() throw (RuntimeException);
+ virtual void SAL_CALL setFrom( const Any& _from ) throw (RuntimeException);
+ virtual Any SAL_CALL getTo() throw (RuntimeException);
+ virtual void SAL_CALL setTo( const Any& _to ) throw (RuntimeException);
+ virtual Any SAL_CALL getBy() throw (RuntimeException);
+ virtual void SAL_CALL setBy( const Any& _by ) throw (RuntimeException);
+ virtual Sequence< TimeFilterPair > SAL_CALL getTimeFilter() throw (RuntimeException);
+ virtual void SAL_CALL setTimeFilter( const Sequence< TimeFilterPair >& _timefilter ) throw (RuntimeException);
+ virtual OUString SAL_CALL getFormula() throw (RuntimeException);
+ virtual void SAL_CALL setFormula( const OUString& _formula ) throw (RuntimeException);
+
+ // XAnimateColor
+ virtual sal_Int16 SAL_CALL getColorInterpolation() throw (RuntimeException);
+ virtual void SAL_CALL setColorInterpolation( sal_Int16 _colorspace ) throw (RuntimeException);
+ virtual sal_Bool SAL_CALL getDirection() throw (RuntimeException);
+ virtual void SAL_CALL setDirection( sal_Bool _direction ) throw (RuntimeException);
+
+ // XAnimateMotion
+ virtual Any SAL_CALL getPath() throw (RuntimeException);
+ virtual void SAL_CALL setPath( const Any& _path ) throw (RuntimeException);
+ virtual Any SAL_CALL getOrigin() throw (RuntimeException);
+ virtual void SAL_CALL setOrigin( const Any& _origin ) throw (RuntimeException);
+
+ // XAnimateTransform
+ virtual sal_Int16 SAL_CALL getTransformType() throw (RuntimeException);
+ virtual void SAL_CALL setTransformType( sal_Int16 _transformtype ) throw (RuntimeException);
+
+ // XTransitionFilter
+ virtual sal_Int16 SAL_CALL getTransition() throw (RuntimeException);
+ virtual void SAL_CALL setTransition( sal_Int16 _transition ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getSubtype() throw (RuntimeException);
+ virtual void SAL_CALL setSubtype( sal_Int16 _subtype ) throw (RuntimeException);
+ virtual sal_Bool SAL_CALL getMode() throw (RuntimeException);
+ virtual void SAL_CALL setMode( sal_Bool _mode ) throw (RuntimeException);
+// virtual sal_Bool SAL_CALL getDirection() throw (RuntimeException);
+// virtual void SAL_CALL setDirection( sal_Bool _direction ) throw (RuntimeException);
+ virtual sal_Int32 SAL_CALL getFadeColor() throw (RuntimeException);
+ virtual void SAL_CALL setFadeColor( sal_Int32 _fadecolor ) throw (RuntimeException);
+
+ // XAudio
+ virtual Any SAL_CALL getSource() throw (RuntimeException);
+ virtual void SAL_CALL setSource( const Any& _source ) throw (RuntimeException);
+ virtual double SAL_CALL getVolume() throw (RuntimeException);
+ virtual void SAL_CALL setVolume( double _volume ) throw (RuntimeException);
+
+
+ // XCommand
+// virtual Any SAL_CALL getTarget() throw (RuntimeException);
+// virtual void SAL_CALL setTarget( const Any& _target ) throw (RuntimeException);
+ virtual sal_Int16 SAL_CALL getCommand() throw (RuntimeException);
+ virtual void SAL_CALL setCommand( sal_Int16 _command ) throw (RuntimeException);
+ virtual Any SAL_CALL getParameter() throw (RuntimeException);
+ virtual void SAL_CALL setParameter( const Any& _parameter ) throw (RuntimeException);
+
+ // XElementAccess
+ virtual Type SAL_CALL getElementType() throw (RuntimeException);
+ virtual sal_Bool SAL_CALL hasElements() throw (RuntimeException);
+
+ // XEnumerationAccess
+ virtual Reference< XEnumeration > SAL_CALL createEnumeration() throw (RuntimeException);
+
+ // XTimeContainer
+ virtual Reference< XAnimationNode > SAL_CALL insertBefore( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild ) throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
+ virtual Reference< XAnimationNode > SAL_CALL insertAfter( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild ) throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
+ virtual Reference< XAnimationNode > SAL_CALL replaceChild( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& oldChild ) throw( IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException);
+ virtual Reference< XAnimationNode > SAL_CALL removeChild( const Reference< XAnimationNode >& oldChild ) throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException);
+ virtual Reference< XAnimationNode > SAL_CALL appendChild( const Reference< XAnimationNode >& newChild ) throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException);
+
+ // XIterateContainer
+ virtual sal_Int16 SAL_CALL getIterateType() throw (RuntimeException);
+ virtual void SAL_CALL setIterateType( sal_Int16 _iteratetype ) throw (RuntimeException);
+ virtual double SAL_CALL getIterateInterval() throw (RuntimeException);
+ virtual void SAL_CALL setIterateInterval( double _iterateinterval ) throw (RuntimeException);
+
+ // XChangesNotifier
+ virtual void SAL_CALL addChangesListener( const Reference< XChangesListener >& aListener ) throw (RuntimeException);
+ virtual void SAL_CALL removeChangesListener( const Reference< XChangesListener >& aListener ) throw (RuntimeException);
+
+ // XUnoTunnel
+ virtual ::sal_Int64 SAL_CALL getSomething( const Sequence< ::sal_Int8 >& aIdentifier ) throw (RuntimeException);
+
+ static const Sequence< sal_Int8 > & getUnoTunnelId();
+ void fireChangeListener();
+
+private:
+ OInterfaceContainerHelper maChangeListener;
+
+ static void initTypeProvider( sal_Int16 nNodeType ) throw();
+
+ const sal_Int16 mnNodeType;
+
+ // for XTypeProvider
+ static Sequence< Type >* mpTypes[12];
+ static Sequence< sal_Int8 >* mpId[12];
+
+ // attributes for the XAnimationNode interface implementation
+ Any maBegin, maDuration, maEnd, maEndSync, maRepeatCount, maRepeatDuration;
+ sal_Int16 mnFill, mnFillDefault, mnRestart, mnRestartDefault;
+ double mfAcceleration, mfDecelerate;
+ sal_Bool mbAutoReverse;
+ Sequence< NamedValue > maUserData;
+
+ // parent interface for XChild interface implementation
+ Reference<XInterface> mxParent;
+ AnimationNode* mpParent;
+
+ // attributes for XAnimate
+ Any maTarget;
+ OUString maAttributeName, maFormula;
+ Sequence< Any > maValues;
+ Sequence< double > maKeyTimes;
+ sal_Int16 mnValueType, mnSubItem;
+ sal_Int16 mnCalcMode, mnAdditive;
+ sal_Bool mbAccumulate;
+ Any maFrom, maTo, maBy;
+ Sequence< TimeFilterPair > maTimeFilter;
+
+ // attributes for XAnimateColor
+ sal_Int16 mnColorSpace;
+ sal_Bool mbDirection;
+
+ // atributes for XAnimateMotion
+ Any maPath, maOrigin;
+
+ // attributes for XAnimateTransform
+ sal_Int16 mnTransformType;
+
+ // attributes for XTransitionFilter
+ sal_Int16 mnTransition;
+ sal_Int16 mnSubtype;
+ sal_Bool mbMode;
+ sal_Int32 mnFadeColor;
+
+ // XAudio
+ double mfVolume;
+
+ // XCommand
+ sal_Int16 mnCommand;
+ Any maParameter;
+
+ // XIterateContainer
+ sal_Int16 mnIterateType;
+ double mfIterateInterval;
+
+ /** sorted list of child nodes for XTimeContainer*/
+ ChildList_t maChilds;
+};
+
+// ====================================================================
+
+class TimeContainerEnumeration : public ::cppu::WeakImplHelper1< XEnumeration >
+{
+public:
+ TimeContainerEnumeration( const ChildList_t &rChilds );
+ virtual ~TimeContainerEnumeration();
+
+ // Methods
+ virtual sal_Bool SAL_CALL hasMoreElements() throw (RuntimeException);
+ virtual Any SAL_CALL nextElement( ) throw (NoSuchElementException, WrappedTargetException, RuntimeException);
+
+private:
+ /** sorted list of child nodes */
+ ChildList_t maChilds;
+
+ /** current iteration position */
+ ChildList_t::iterator maIter;
+
+ /** our first, last and only protection from mutli-threads! */
+ Mutex maMutex;
+};
+
+TimeContainerEnumeration::TimeContainerEnumeration( const ChildList_t &rChilds )
+: maChilds( rChilds )
+{
+ maIter = maChilds.begin();
+}
+
+TimeContainerEnumeration::~TimeContainerEnumeration()
+{
+}
+
+// Methods
+sal_Bool SAL_CALL TimeContainerEnumeration::hasMoreElements() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ return maIter != maChilds.end();
+}
+
+Any SAL_CALL TimeContainerEnumeration::nextElement()
+ throw (NoSuchElementException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( maIter == maChilds.end() )
+ throw NoSuchElementException();
+
+ return makeAny( (*maIter++) );
+}
+
+// ====================================================================
+
+Sequence< Type >* AnimationNode::mpTypes[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
+Sequence< sal_Int8 >* AnimationNode::mpId[] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL };
+
+AnimationNode::AnimationNode( sal_Int16 nNodeType )
+: maChangeListener(maMutex),
+ mnNodeType( nNodeType ),
+ mnFill( AnimationFill::DEFAULT ),
+ mnFillDefault( AnimationFill::INHERIT ),
+ mnRestart( AnimationRestart:: DEFAULT ),
+ mnRestartDefault( AnimationRestart:: INHERIT ),
+ mfAcceleration( 0.0 ),
+ mfDecelerate( 0.0 ),
+ mbAutoReverse( sal_False ),
+ mpParent(0),
+ mnValueType( 0 ),
+ mnSubItem( 0 ),
+ mnCalcMode( (nNodeType == AnimationNodeType::ANIMATEMOTION) ? AnimationCalcMode::PACED : AnimationCalcMode::LINEAR),
+ mnAdditive(AnimationAdditiveMode::REPLACE),
+ mbAccumulate(sal_False),
+ mnColorSpace( AnimationColorSpace::RGB ),
+ mbDirection( sal_True ),
+ mnTransformType( AnimationTransformType::TRANSLATE ),
+ mnTransition(TransitionType::BARWIPE),
+ mnSubtype(TransitionSubType::DEFAULT),
+ mbMode(true),
+ mnFadeColor(0),
+ mfVolume(1.0),
+ mnCommand(0),
+ mnIterateType( ::com::sun::star::presentation::ShapeAnimationSubType::AS_WHOLE ),
+ mfIterateInterval(0.0)
+{
+ OSL_ENSURE((sal_uInt32)nNodeType < sizeof(mpTypes)/sizeof(Sequence<Type>*), "NodeType out of range");
+}
+
+AnimationNode::AnimationNode( const AnimationNode& rNode )
+: AnimationNodeBase(),
+ maChangeListener(maMutex),
+ mnNodeType( rNode.mnNodeType ),
+
+ // attributes for the XAnimationNode interface implementation
+ maBegin( rNode.maBegin ),
+ maDuration( rNode.maDuration ),
+ maEnd( rNode.maEnd ),
+ maEndSync( rNode.maEndSync ),
+ maRepeatCount( rNode.maRepeatCount ),
+ maRepeatDuration( rNode.maRepeatDuration ),
+ mnFill( rNode.mnFill ),
+ mnFillDefault( rNode.mnFillDefault ),
+ mnRestart( rNode.mnRestart ),
+ mnRestartDefault( rNode.mnRestartDefault ),
+ mfAcceleration( rNode.mfAcceleration ),
+ mfDecelerate( rNode.mfDecelerate ),
+ mbAutoReverse( rNode.mbAutoReverse ),
+ maUserData( rNode.maUserData ),
+ mpParent(0),
+
+ // attributes for XAnimate
+ maTarget( rNode.maTarget ),
+ maAttributeName( rNode.maAttributeName ),
+ maFormula( rNode.maFormula ),
+ maValues( rNode.maValues ),
+ maKeyTimes( rNode.maKeyTimes ),
+ mnValueType( rNode.mnValueType ),
+ mnSubItem( rNode.mnSubItem ),
+ mnCalcMode( rNode.mnCalcMode ),
+ mnAdditive( rNode.mnAdditive ),
+ mbAccumulate( rNode.mbAccumulate ),
+ maFrom( rNode.maFrom ),
+ maTo( rNode.maTo ),
+ maBy( rNode.maBy ),
+ maTimeFilter( rNode.maTimeFilter ),
+
+ // attributes for XAnimateColor
+ mnColorSpace( rNode.mnColorSpace ),
+ mbDirection( rNode.mbDirection ),
+
+ // atributes for XAnimateMotion
+ maPath( rNode.maPath ),
+ maOrigin( rNode.maOrigin ),
+
+ // attributes for XAnimateTransform
+ mnTransformType( rNode.mnTransformType ),
+
+ // attributes for XTransitionFilter
+ mnTransition( rNode.mnTransition ),
+ mnSubtype( rNode.mnSubtype ),
+ mbMode( rNode.mbMode ),
+ mnFadeColor( rNode.mnFadeColor ),
+
+ // XAudio
+ mfVolume( rNode.mfVolume ),
+
+ // XCommand
+ mnCommand( rNode.mnCommand ),
+ maParameter( rNode.maParameter ),
+
+ // XIterateContainer
+ mnIterateType( rNode.mnIterateType ),
+ mfIterateInterval( rNode.mfIterateInterval )
+{
+}
+
+AnimationNode::~AnimationNode()
+{
+}
+
+// --------------------------------------------------------------------
+
+#define IMPL_NODE_FACTORY(N,IN,SN)\
+Reference< XInterface > SAL_CALL createInstance_##N( const Reference< XComponentContext > & ) throw (Exception)\
+{\
+ return Reference < XInterface > ( SAL_STATIC_CAST( ::cppu::OWeakObject * , new AnimationNode( N ) ) );\
+}\
+OUString getImplementationName_##N()\
+{\
+ return OUString( RTL_CONSTASCII_USTRINGPARAM ( IN ) );\
+}\
+Sequence<OUString> getSupportedServiceNames_##N(void)\
+{\
+ Sequence<OUString> aRet(1);\
+ aRet.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM( SN ));\
+ return aRet;\
+}
+
+IMPL_NODE_FACTORY( PAR, "animcore::ParallelTimeContainer", "com.sun.star.animations.ParallelTimeContainer" )
+IMPL_NODE_FACTORY( SEQ, "animcore::SequenceTimeContainer", "com.sun.star.animations.SequenceTimeContainer" )
+IMPL_NODE_FACTORY( ITERATE, "animcore::IterateContainer", "com.sun.star.animations.IterateContainer" )
+IMPL_NODE_FACTORY( ANIMATE, "animcore::Animate", "com.sun.star.animations.Animate" )
+IMPL_NODE_FACTORY( SET, "animcore::AnimateSet", "com.sun.star.animations.AnimateSet" )
+IMPL_NODE_FACTORY( ANIMATECOLOR, "animcore::AnimateColor", "com.sun.star.animations.AnimateColor" )
+IMPL_NODE_FACTORY( ANIMATEMOTION, "animcore::AnimateMotion", "com.sun.star.animations.AnimateMotion" )
+IMPL_NODE_FACTORY( ANIMATETRANSFORM, "animcore::AnimateTransform", "com.sun.star.animations.AnimateTransform" )
+IMPL_NODE_FACTORY( TRANSITIONFILTER, "animcore::TransitionFilter", "com.sun.star.animations.TransitionFilter" )
+IMPL_NODE_FACTORY( AUDIO, "animcore::Audio", "com.sun.star.animations.Audio" );
+IMPL_NODE_FACTORY( COMMAND, "animcore::Command", "com.sun.star.animations.Command" );
+
+// --------------------------------------------------------------------
+
+// XInterface
+Any SAL_CALL AnimationNode::queryInterface( const Type& aType ) throw (RuntimeException)
+{
+ Any aRet( ::cppu::queryInterface(
+ aType,
+ static_cast< XServiceInfo * >( this ),
+ static_cast< XTypeProvider * >( this ),
+ static_cast< XChild * >( static_cast< XTimeContainer * >(this) ),
+ static_cast< XCloneable* >( this ),
+ static_cast< XAnimationNode* >( static_cast< XTimeContainer * >(this) ),
+ static_cast< XInterface* >(static_cast< OWeakObject * >(this)),
+ static_cast< XWeak* >(static_cast< OWeakObject * >(this)),
+ static_cast< XChangesNotifier* >( this ),
+ static_cast< XUnoTunnel* >( this ) ) );
+
+ if(!aRet.hasValue())
+ {
+ switch( mnNodeType )
+ {
+ case AnimationNodeType::PAR:
+ case AnimationNodeType::SEQ:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XTimeContainer * >( this ),
+ static_cast< XEnumerationAccess * >( this ),
+ static_cast< XElementAccess * >( this ) );
+ break;
+ case AnimationNodeType::ITERATE:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XTimeContainer * >( this ),
+ static_cast< XIterateContainer * >( this ),
+ static_cast< XEnumerationAccess * >( this ),
+ static_cast< XElementAccess * >( this ) );
+ break;
+ case AnimationNodeType::ANIMATE:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XAnimateMotion * >(this) ) );
+ break;
+ case AnimationNodeType::ANIMATEMOTION:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XAnimateMotion * >(this) ),
+ static_cast< XAnimateMotion * >( this ) );
+ break;
+ case AnimationNodeType::ANIMATECOLOR:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XAnimateColor * >(this) ),
+ static_cast< XAnimateColor * >( this ) );
+ break;
+ case AnimationNodeType::SET:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XAnimateSet * >(this) ),
+ static_cast< XAnimateSet * >( this ) );
+ break;
+ case AnimationNodeType::ANIMATETRANSFORM:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XAnimateTransform * >(this) ),
+ static_cast< XAnimateTransform * >( this ) );
+ break;
+ case AnimationNodeType::AUDIO:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAudio * >( static_cast< XAudio * >(this) ) );
+ break;
+ case AnimationNodeType::COMMAND:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XCommand * >( static_cast< XCommand * >(this) ) );
+ break;
+ case AnimationNodeType::TRANSITIONFILTER:
+ aRet = ::cppu::queryInterface(
+ aType,
+ static_cast< XAnimate * >( static_cast< XTransitionFilter * >(this) ),
+ static_cast< XTransitionFilter * >( this ) );
+ break;
+ }
+ }
+
+ return aRet.hasValue() ? aRet : OWeakObject::queryInterface( aType );
+}
+
+// --------------------------------------------------------------------
+
+void AnimationNode::initTypeProvider( sal_Int16 nNodeType ) throw()
+{
+ ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() );
+
+ if(! mpTypes[nNodeType] )
+ {
+ // create id
+ mpId[nNodeType] = new Sequence< sal_Int8 >( 16 );
+ rtl_createUuid( (sal_uInt8 *)mpId[nNodeType]->getArray(), 0, sal_True );
+
+ static sal_Int32 type_numbers[] =
+ {
+ 7, // CUSTOM
+ 9, // PAR
+ 9, // SEQ
+ 9, // ITERATE
+ 8, // ANIMATE
+ 8, // SET
+ 8, // ANIMATEMOTION
+ 8, // ANIMATECOLOR
+ 8, // ANIMATETRANSFORM
+ 8, // TRANSITIONFILTER
+ 8, // AUDIO
+ 8, // COMMAND
+ };
+
+ // collect types
+ Sequence< Type > * types = new Sequence< Type >( type_numbers[nNodeType] );
+ Type * pTypeAr = types->getArray();
+ sal_Int32 nPos = 0;
+
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XWeak > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XChild > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XCloneable > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XTypeProvider > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XServiceInfo > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XUnoTunnel > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XChangesNotifier> *)0 );
+
+ switch( nNodeType )
+ {
+ case AnimationNodeType::PAR:
+ case AnimationNodeType::SEQ:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XTimeContainer > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XEnumerationAccess > *)0 );
+ break;
+ case AnimationNodeType::ITERATE:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XIterateContainer > *)0 );
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XEnumerationAccess > *)0 );
+ break;
+ case AnimationNodeType::ANIMATE:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAnimate > *)0 );
+ break;
+ case AnimationNodeType::ANIMATEMOTION:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAnimateMotion > *)0 );
+ break;
+ case AnimationNodeType::ANIMATECOLOR:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAnimateColor > *)0 );
+ break;
+ case AnimationNodeType::ANIMATETRANSFORM:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAnimateTransform > *)0 );
+ break;
+ case AnimationNodeType::SET:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAnimateSet > *)0 );
+ break;
+ case AnimationNodeType::TRANSITIONFILTER:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XTransitionFilter > *)0 );
+ break;
+ case AnimationNodeType::AUDIO:
+ pTypeAr[nPos++] = ::getCppuType( (const Reference< XAudio > *)0 );
+ break;
+ case AnimationNodeType::COMMAND:
+ pTypeAr[nPos++] = ::getCppuType( ( const Reference< XCommand > *)0 );
+ break;
+ }
+ mpTypes[nNodeType] = types;
+ }
+}
+
+// --------------------------------------------------------------------
+
+Sequence< Type > AnimationNode::getTypes() throw (RuntimeException)
+{
+ if (! mpTypes[mnNodeType])
+ initTypeProvider(mnNodeType);
+ return *mpTypes[mnNodeType];
+}
+// --------------------------------------------------------------------
+
+Sequence< sal_Int8 > AnimationNode::getImplementationId() throw (RuntimeException)
+{
+ if (! mpId[mnNodeType])
+ initTypeProvider(mnNodeType);
+ return *mpId[mnNodeType];
+}
+
+// --------------------------------------------------------------------
+
+// XInterface
+void SAL_CALL AnimationNode::acquire( ) throw ()
+{
+ OWeakObject::acquire();
+}
+
+// --------------------------------------------------------------------
+
+// XInterface
+void SAL_CALL AnimationNode::release( ) throw ()
+{
+ OWeakObject::acquire();
+}
+
+// --------------------------------------------------------------------
+
+// XServiceInfo
+OUString AnimationNode::getImplementationName() throw()
+{
+ switch( mnNodeType )
+ {
+ case AnimationNodeType::PAR:
+ return getImplementationName_PAR();
+ case AnimationNodeType::SEQ:
+ return getImplementationName_SEQ();
+ case AnimationNodeType::ITERATE:
+ return getImplementationName_ITERATE();
+ case AnimationNodeType::SET:
+ return getImplementationName_SET();
+ case AnimationNodeType::ANIMATECOLOR:
+ return getImplementationName_ANIMATECOLOR();
+ case AnimationNodeType::ANIMATEMOTION:
+ return getImplementationName_ANIMATEMOTION();
+ case AnimationNodeType::TRANSITIONFILTER:
+ return getImplementationName_TRANSITIONFILTER();
+ case AnimationNodeType::ANIMATETRANSFORM:
+ return getImplementationName_ANIMATETRANSFORM();
+ case AnimationNodeType::AUDIO:
+ return getImplementationName_AUDIO();
+ case AnimationNodeType::COMMAND:
+ return getImplementationName_COMMAND();
+ case AnimationNodeType::ANIMATE:
+ default:
+ return getImplementationName_ANIMATE();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XServiceInfo
+sal_Bool AnimationNode::supportsService(const OUString& ServiceName) throw()
+{
+ Sequence< OUString > aSNL( getSupportedServiceNames() );
+ const OUString * pArray = aSNL.getConstArray();
+
+ for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
+ if( pArray[i] == ServiceName )
+ return sal_True;
+
+ return sal_False;
+}
+
+// --------------------------------------------------------------------
+
+// XServiceInfo
+Sequence< OUString > AnimationNode::getSupportedServiceNames(void) throw()
+{
+ switch( mnNodeType )
+ {
+ case AnimationNodeType::PAR:
+ return getSupportedServiceNames_PAR();
+ case AnimationNodeType::SEQ:
+ return getSupportedServiceNames_SEQ();
+ case AnimationNodeType::ITERATE:
+ return getSupportedServiceNames_ITERATE();
+ case AnimationNodeType::SET:
+ return getSupportedServiceNames_SET();
+ case AnimationNodeType::ANIMATECOLOR:
+ return getSupportedServiceNames_ANIMATECOLOR();
+ case AnimationNodeType::ANIMATEMOTION:
+ return getSupportedServiceNames_ANIMATEMOTION();
+ case AnimationNodeType::TRANSITIONFILTER:
+ return getSupportedServiceNames_TRANSITIONFILTER();
+ case AnimationNodeType::AUDIO:
+ return getSupportedServiceNames_AUDIO();
+ case AnimationNodeType::COMMAND:
+ return getSupportedServiceNames_COMMAND();
+ case AnimationNodeType::ANIMATE:
+ default:
+ return getSupportedServiceNames_ANIMATE();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Int16 SAL_CALL AnimationNode::getType() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnNodeType;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getBegin() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maBegin;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setBegin( const Any& _begin ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _begin != maBegin )
+ {
+ maBegin = _begin;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getDuration() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maDuration;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setDuration( const Any& _duration ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _duration != maDuration )
+ {
+ maDuration = _duration;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getEnd() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maEnd;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setEnd( const Any& _end ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _end != maEnd )
+ {
+ maEnd = _end;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getEndSync() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maEndSync;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setEndSync( const Any& _endsync ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _endsync != maEndSync )
+ {
+ maEndSync = _endsync;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getRepeatCount() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maRepeatCount;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setRepeatCount( const Any& _repeatcount ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _repeatcount != maRepeatCount )
+ {
+ maRepeatCount = _repeatcount;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+Any SAL_CALL AnimationNode::getRepeatDuration() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maRepeatDuration;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setRepeatDuration( const Any& _repeatduration ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _repeatduration != maRepeatDuration )
+ {
+ maRepeatDuration = _repeatduration;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Int16 SAL_CALL AnimationNode::getFill() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnFill;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setFill( sal_Int16 _fill ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _fill != mnFill )
+ {
+ mnFill = _fill;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Int16 SAL_CALL AnimationNode::getFillDefault() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnFillDefault;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setFillDefault( sal_Int16 _filldefault ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _filldefault != mnFillDefault )
+ {
+ mnFillDefault = _filldefault;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Int16 SAL_CALL AnimationNode::getRestart() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnRestart;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setRestart( sal_Int16 _restart ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _restart != mnRestart )
+ {
+ mnRestart = _restart;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Int16 SAL_CALL AnimationNode::getRestartDefault() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnRestartDefault;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setRestartDefault( sal_Int16 _restartdefault ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _restartdefault != mnRestartDefault )
+ {
+ mnRestartDefault = _restartdefault;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+double SAL_CALL AnimationNode::getAcceleration() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mfAcceleration;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setAcceleration( double _acceleration ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _acceleration != mfAcceleration )
+ {
+ mfAcceleration = _acceleration;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+double SAL_CALL AnimationNode::getDecelerate() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mfDecelerate;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setDecelerate( double _decelerate ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _decelerate != mfDecelerate )
+ {
+ mfDecelerate = _decelerate;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+sal_Bool SAL_CALL AnimationNode::getAutoReverse() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mbAutoReverse;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimationNode
+void SAL_CALL AnimationNode::setAutoReverse( sal_Bool _autoreverse ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _autoreverse != mbAutoReverse )
+ {
+ mbAutoReverse = _autoreverse;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+Sequence< NamedValue > SAL_CALL AnimationNode::getUserData() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maUserData;
+}
+
+// --------------------------------------------------------------------
+
+void SAL_CALL AnimationNode::setUserData( const Sequence< NamedValue >& _userdata ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maUserData = _userdata;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XChild
+Reference< XInterface > SAL_CALL AnimationNode::getParent() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mxParent;
+}
+
+// --------------------------------------------------------------------
+
+// XChild
+void SAL_CALL AnimationNode::setParent( const Reference< XInterface >& Parent ) throw (NoSupportException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( Parent != mxParent )
+ {
+ mxParent = Parent;
+
+ mpParent = 0;
+ Reference< XUnoTunnel > xTunnel( mxParent, UNO_QUERY );
+ if( xTunnel.is() )
+ mpParent = reinterpret_cast< AnimationNode* >( sal::static_int_cast< sal_IntPtr >(xTunnel->getSomething( getUnoTunnelId() )));
+
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XCloneable
+Reference< XCloneable > SAL_CALL AnimationNode::createClone() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ Reference< XCloneable > xNewNode;
+ try
+ {
+ xNewNode = new AnimationNode( *this );
+
+ if( maChilds.size() )
+ {
+ Reference< XTimeContainer > xContainer( xNewNode, UNO_QUERY );
+ if( xContainer.is() )
+ {
+ ChildList_t::iterator aIter( maChilds.begin() );
+ ChildList_t::iterator aEnd( maChilds.end() );
+ while( aIter != aEnd )
+ {
+ Reference< XCloneable > xCloneable((*aIter++), UNO_QUERY );
+ if( xCloneable.is() ) try
+ {
+ Reference< XAnimationNode > xNewChildNode( xCloneable->createClone(), UNO_QUERY );
+ if( xNewChildNode.is() )
+ xContainer->appendChild( xNewChildNode );
+ }
+ catch( Exception& e )
+ {
+ (void)e;
+ OSL_TRACE( "animations::AnimationNode::createClone(), exception caught!" );
+ }
+ }
+ }
+ }
+ }
+ catch( Exception& e )
+ {
+ (void)e;
+ OSL_TRACE( "animations::AnimationNode::createClone(), exception caught!" );
+ }
+
+ return xNewNode;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Any SAL_CALL AnimationNode::getTarget()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maTarget;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setTarget( const Any& _target )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _target != maTarget )
+ {
+ maTarget= _target;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+OUString SAL_CALL AnimationNode::getAttributeName() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maAttributeName;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setAttributeName( const OUString& _attribute )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _attribute != maAttributeName )
+ {
+ maAttributeName = _attribute;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Sequence< Any > SAL_CALL AnimationNode::getValues()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maValues;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setValues( const Sequence< Any >& _values )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maValues = _values;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+sal_Int16 SAL_CALL AnimationNode::getSubItem() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnSubItem;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setSubItem( sal_Int16 _subitem ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _subitem != mnSubItem )
+ {
+ mnSubItem = _subitem;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Sequence< double > SAL_CALL AnimationNode::getKeyTimes() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maKeyTimes;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setKeyTimes( const Sequence< double >& _keytimes ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maKeyTimes = _keytimes;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+sal_Int16 SAL_CALL AnimationNode::getValueType() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnValueType;
+}
+
+// --------------------------------------------------------------------
+
+void SAL_CALL AnimationNode::setValueType( sal_Int16 _valuetype ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _valuetype != mnValueType )
+ {
+ mnValueType = _valuetype;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+sal_Int16 SAL_CALL AnimationNode::getCalcMode()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnCalcMode;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setCalcMode( sal_Int16 _calcmode )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _calcmode != mnCalcMode )
+ {
+ mnCalcMode = _calcmode;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+sal_Bool SAL_CALL AnimationNode::getAccumulate()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mbAccumulate;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setAccumulate( sal_Bool _accumulate )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _accumulate != mbAccumulate )
+ {
+ mbAccumulate = _accumulate;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+sal_Int16 SAL_CALL AnimationNode::getAdditive()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnAdditive;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setAdditive( sal_Int16 _additive )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _additive != mnAdditive )
+ {
+ mnAdditive = _additive;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Any SAL_CALL AnimationNode::getFrom()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maFrom;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setFrom( const Any& _from )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _from != maFrom )
+ {
+ maFrom = _from;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Any SAL_CALL AnimationNode::getTo()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maTo;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setTo( const Any& _to )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _to != maTo )
+ {
+ maTo = _to;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Any SAL_CALL AnimationNode::getBy()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maBy;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setBy( const Any& _by )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _by != maBy )
+ {
+ maBy = _by;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+Sequence< TimeFilterPair > SAL_CALL AnimationNode::getTimeFilter()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maTimeFilter;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimate
+void SAL_CALL AnimationNode::setTimeFilter( const Sequence< TimeFilterPair >& _timefilter )
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maTimeFilter = _timefilter;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+OUString SAL_CALL AnimationNode::getFormula() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maFormula;
+}
+
+// --------------------------------------------------------------------
+
+void SAL_CALL AnimationNode::setFormula( const OUString& _formula ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _formula != maFormula )
+ {
+ maFormula = _formula;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateColor
+sal_Int16 SAL_CALL AnimationNode::getColorInterpolation() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnColorSpace;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateColor
+void SAL_CALL AnimationNode::setColorInterpolation( sal_Int16 _colorspace ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _colorspace != mnColorSpace )
+ {
+ mnColorSpace = _colorspace;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateColor
+sal_Bool SAL_CALL AnimationNode::getDirection() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mbDirection;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateColor
+void SAL_CALL AnimationNode::setDirection( sal_Bool _direction ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _direction != mbDirection )
+ {
+ mbDirection = _direction;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateMotion
+Any SAL_CALL AnimationNode::getPath() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maPath;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateMotion
+void SAL_CALL AnimationNode::setPath( const Any& _path ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maPath = _path;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateMotion
+Any SAL_CALL AnimationNode::getOrigin() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maOrigin;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateMotion
+void SAL_CALL AnimationNode::setOrigin( const Any& _origin ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maOrigin = _origin;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateTransform
+sal_Int16 SAL_CALL AnimationNode::getTransformType() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnTransformType;
+}
+
+// --------------------------------------------------------------------
+
+// XAnimateTransform
+void SAL_CALL AnimationNode::setTransformType( sal_Int16 _transformtype ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _transformtype != mnTransformType )
+ {
+ mnTransformType = _transformtype;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+sal_Int16 SAL_CALL AnimationNode::getTransition() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnTransition;
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+void SAL_CALL AnimationNode::setTransition( sal_Int16 _transition ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _transition != mnTransition )
+ {
+ mnTransition = _transition;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+sal_Int16 SAL_CALL AnimationNode::getSubtype() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnSubtype;
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+void SAL_CALL AnimationNode::setSubtype( sal_Int16 _subtype ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _subtype != mnSubtype )
+ {
+ mnSubtype = _subtype;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+sal_Bool SAL_CALL AnimationNode::getMode() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mbMode;
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+void SAL_CALL AnimationNode::setMode( sal_Bool _mode ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _mode != mbMode )
+ {
+ mbMode = _mode;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+sal_Int32 SAL_CALL AnimationNode::getFadeColor() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnFadeColor;
+}
+
+// --------------------------------------------------------------------
+
+// XTransitionFilter
+void SAL_CALL AnimationNode::setFadeColor( sal_Int32 _fadecolor ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _fadecolor != mnFadeColor )
+ {
+ mnFadeColor = _fadecolor;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XAudio
+Any SAL_CALL AnimationNode::getSource() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maTarget;
+}
+
+// --------------------------------------------------------------------
+
+// XAudio
+void SAL_CALL AnimationNode::setSource( const Any& _source ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maTarget = _source;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XAudio
+double SAL_CALL AnimationNode::getVolume() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mfVolume;
+}
+
+// --------------------------------------------------------------------
+
+// XAudio
+void SAL_CALL AnimationNode::setVolume( double _volume ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _volume != mfVolume )
+ {
+ mfVolume = _volume;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XCommand
+sal_Int16 SAL_CALL AnimationNode::getCommand() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnCommand;
+}
+
+// --------------------------------------------------------------------
+
+// XCommand
+void SAL_CALL AnimationNode::setCommand( sal_Int16 _command ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _command != mnCommand )
+ {
+ mnCommand = _command;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XCommand
+Any SAL_CALL AnimationNode::getParameter() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return maParameter;
+}
+
+// --------------------------------------------------------------------
+
+// XCommand
+void SAL_CALL AnimationNode::setParameter( const Any& _parameter ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ maParameter = _parameter;
+ fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+// XElementAccess
+Type SAL_CALL AnimationNode::getElementType() throw (RuntimeException)
+{
+ return ::getCppuType((const Reference< XAnimationNode >*)0);
+}
+
+// --------------------------------------------------------------------
+
+// XElementAccess
+sal_Bool SAL_CALL AnimationNode::hasElements() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return !maChilds.empty();
+}
+
+// --------------------------------------------------------------------
+
+// XEnumerationAccess
+Reference< XEnumeration > SAL_CALL AnimationNode::createEnumeration()
+ throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ return new TimeContainerEnumeration( maChilds);
+}
+
+// --------------------------------------------------------------------
+
+
+// XTimeContainer
+Reference< XAnimationNode > SAL_CALL AnimationNode::insertBefore( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild )
+ throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( !newChild.is() || !refChild.is() )
+ throw IllegalArgumentException();
+
+ ChildList_t::iterator before = ::std::find(maChilds.begin(), maChilds.end(), refChild);
+ if( before == maChilds.end() )
+ throw NoSuchElementException();
+
+ if( ::std::find(maChilds.begin(), maChilds.end(), newChild) != maChilds.end() )
+ throw ElementExistException();
+
+ maChilds.insert( before, newChild );
+
+ Reference< XInterface > xThis( static_cast< OWeakObject * >(this) );
+ newChild->setParent( xThis );
+
+ return newChild;
+}
+
+// --------------------------------------------------------------------
+
+// XTimeContainer
+Reference< XAnimationNode > SAL_CALL AnimationNode::insertAfter( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& refChild )
+ throw (IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( !newChild.is() || !refChild.is() )
+ throw IllegalArgumentException();
+
+ ChildList_t::iterator before = ::std::find(maChilds.begin(), maChilds.end(), refChild);
+ if( before == maChilds.end() )
+ throw NoSuchElementException();
+
+ if( ::std::find(maChilds.begin(), maChilds.end(), newChild) != maChilds.end() )
+ throw ElementExistException();
+
+ before++;
+ if( before != maChilds.end() )
+ maChilds.insert( before, newChild );
+ else
+ maChilds.push_back( newChild );
+
+ Reference< XInterface > xThis( static_cast< OWeakObject * >(this) );
+ newChild->setParent( xThis );
+
+ return newChild;
+}
+
+// --------------------------------------------------------------------
+
+// XTimeContainer
+Reference< XAnimationNode > SAL_CALL AnimationNode::replaceChild( const Reference< XAnimationNode >& newChild, const Reference< XAnimationNode >& oldChild )
+ throw( IllegalArgumentException, NoSuchElementException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( !newChild.is() || !oldChild.is() )
+ throw IllegalArgumentException();
+
+ ChildList_t::iterator replace = ::std::find(maChilds.begin(), maChilds.end(), oldChild);
+ if( replace == maChilds.end() )
+ throw NoSuchElementException();
+
+ if( ::std::find(maChilds.begin(), maChilds.end(), newChild) != maChilds.end() )
+ throw ElementExistException();
+
+ Reference< XInterface > xNull( 0 );
+ oldChild->setParent( xNull );
+
+ (*replace) = newChild;
+
+ Reference< XInterface > xThis( static_cast< OWeakObject * >(this) );
+ newChild->setParent( xThis );
+
+ return newChild;
+}
+
+// --------------------------------------------------------------------
+
+// XTimeContainer
+Reference< XAnimationNode > SAL_CALL AnimationNode::removeChild( const Reference< XAnimationNode >& oldChild )
+ throw(IllegalArgumentException, NoSuchElementException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( !oldChild.is() )
+ throw IllegalArgumentException();
+
+ ChildList_t::iterator old = ::std::find(maChilds.begin(), maChilds.end(), oldChild);
+ if( old == maChilds.end() )
+ throw NoSuchElementException();
+
+ Reference< XInterface > xNull( 0 );
+ oldChild->setParent( xNull );
+
+ maChilds.erase( old );
+
+ return oldChild;
+}
+
+// --------------------------------------------------------------------
+
+// XTimeContainer
+Reference< XAnimationNode > SAL_CALL AnimationNode::appendChild( const Reference< XAnimationNode >& newChild )
+ throw(IllegalArgumentException, ElementExistException, WrappedTargetException, RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ if( !newChild.is() )
+ throw IllegalArgumentException();
+
+ if( ::std::find(maChilds.begin(), maChilds.end(), newChild) != maChilds.end() )
+ throw ElementExistException();
+
+ Reference< XInterface > xThis( static_cast< OWeakObject * >(this) );
+ Reference< XInterface > xChild( newChild );
+
+ if( xThis == xChild )
+ throw IllegalArgumentException();
+
+ maChilds.push_back( newChild );
+
+ newChild->setParent( xThis );
+
+ return newChild;
+}
+
+// --------------------------------------------------------------------
+
+// XIterateContainer
+sal_Int16 SAL_CALL AnimationNode::getIterateType() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mnIterateType;
+}
+
+// --------------------------------------------------------------------
+
+// XIterateContainer
+void SAL_CALL AnimationNode::setIterateType( sal_Int16 _iteratetype ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _iteratetype != mnIterateType )
+ {
+ mnIterateType = _iteratetype;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XIterateContainer
+double SAL_CALL AnimationNode::getIterateInterval() throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ return mfIterateInterval;
+}
+
+// --------------------------------------------------------------------
+
+// XIterateContainer
+void SAL_CALL AnimationNode::setIterateInterval( double _iterateinterval ) throw (RuntimeException)
+{
+ Guard< Mutex > aGuard( maMutex );
+ if( _iterateinterval != mfIterateInterval )
+ {
+ mfIterateInterval = _iterateinterval;
+ fireChangeListener();
+ }
+}
+
+// --------------------------------------------------------------------
+
+// XChangesNotifier
+void SAL_CALL AnimationNode::addChangesListener( const Reference< XChangesListener >& aListener ) throw (RuntimeException)
+{
+ maChangeListener.addInterface( aListener );
+}
+
+// --------------------------------------------------------------------
+
+// XChangesNotifier
+void SAL_CALL AnimationNode::removeChangesListener( const Reference< XChangesListener >& aListener ) throw (RuntimeException)
+{
+ maChangeListener.removeInterface(aListener);
+}
+
+// --------------------------------------------------------------------
+
+// XUnoTunnel
+::sal_Int64 SAL_CALL AnimationNode::getSomething( const Sequence< ::sal_Int8 >& rId ) throw (RuntimeException)
+{
+ if( rId.getLength() == 16 && 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), rId.getConstArray(), 16 ) )
+ {
+ return sal::static_int_cast< sal_Int64 >(reinterpret_cast< sal_IntPtr >(this));
+
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+// --------------------------------------------------------------------
+
+const ::com::sun::star::uno::Sequence< sal_Int8 > & AnimationNode::getUnoTunnelId()
+{
+ static ::com::sun::star::uno::Sequence< sal_Int8 > * pSeq = 0;
+ if( !pSeq )
+ {
+ ::osl::Guard< ::osl::Mutex > aGuard( ::osl::Mutex::getGlobalMutex() );
+ if( !pSeq )
+ {
+ static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq( 16 );
+ rtl_createUuid( (sal_uInt8*)aSeq.getArray(), 0, sal_True );
+ pSeq = &aSeq;
+ }
+ }
+ return *pSeq;
+}
+
+// --------------------------------------------------------------------
+
+void AnimationNode::fireChangeListener()
+{
+ Guard< Mutex > aGuard( maMutex );
+
+ OInterfaceIteratorHelper aIterator( maChangeListener );
+ if( aIterator.hasMoreElements() )
+ {
+ Reference< XInterface > xSource( static_cast<OWeakObject*>(this), UNO_QUERY );
+ Sequence< ElementChange > aChanges;
+ const ChangesEvent aEvent( xSource, makeAny( mxParent ), aChanges );
+ while( aIterator.hasMoreElements() )
+ {
+ Reference< XChangesListener > xListener( aIterator.next(), UNO_QUERY );
+ if( xListener.is() )
+ xListener->changesOccurred( aEvent );
+ }
+ }
+
+ if( mpParent )
+ mpParent->fireChangeListener();
+}
+
+// --------------------------------------------------------------------
+
+} // namespace animcore
diff --git a/animations/source/animcore/animcore.map b/animations/source/animcore/animcore.map
new file mode 100644
index 000000000000..30c5bb729ac7
--- /dev/null
+++ b/animations/source/animcore/animcore.map
@@ -0,0 +1,9 @@
+UDK_3_0_0 {
+ global:
+ component_getImplementationEnvironment;
+ component_writeInfo;
+ component_getFactory;
+ component_canUnload;
+ local:
+ *;
+};
diff --git a/animations/source/animcore/animcore.xml b/animations/source/animcore/animcore.xml
new file mode 100644
index 000000000000..9ccca0f02081
--- /dev/null
+++ b/animations/source/animcore/animcore.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module-description PUBLIC "-//StarOffice//DTD ComponentDescription 1.0//EN" "module-description.dtd">
+<module-description xmlns:xlink="http://www.w3.org/1999/xlink">
+ <module-name> animations </module-name>
+
+ <component-description>
+ <author> Christian Lippka </author>
+ <name> todo </name>
+ <description>
+ This component provides ...
+ </description>
+ <loader-name> com.sun.star.loader.SharedLibrary </loader-name>
+ <language> c++ </language>
+ <status value="draft"/>
+ <supported-service> </supported-service>
+ <service-dependency> ... </service-dependency>
+ <type> ... </type>
+ </component-description>
+
+ <project-build-dependency> cppuhelper </project-build-dependency>
+ <project-build-dependency> cppu </project-build-dependency>
+ <project-build-dependency> vos </project-build-dependency>
+ <project-build-dependency> sal </project-build-dependency>
+
+ <runtime-module-dependency> cppuhelper </runtime-module-dependency>
+ <runtime-module-dependency> cppu2 </runtime-module-dependency>
+ <runtime-module-dependency> vos2MSC </runtime-module-dependency>
+ <runtime-module-dependency> sal2 </runtime-module-dependency>
+</module-description>
+
diff --git a/animations/source/animcore/factreg.cxx b/animations/source/animcore/factreg.cxx
new file mode 100644
index 000000000000..3cfc350d405d
--- /dev/null
+++ b/animations/source/animcore/factreg.cxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <osl/diagnose.h>
+#include <cppuhelper/factory.hxx>
+#include <cppuhelper/implementationentry.hxx>
+
+#include <com/sun/star/registry/XRegistryKey.hpp>
+
+using namespace ::rtl;
+using namespace ::cppu;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+
+#include "factreg.hxx"
+
+namespace animcore
+{
+ rtl_StandardModuleCount g_moduleCount = MODULE_COUNT_INIT;
+}
+
+using namespace animcore;
+
+#define IMPLEMENTATION_ENTRY(N)\
+{\
+ createInstance_##N, getImplementationName_##N ,\
+ getSupportedServiceNames_##N, createSingleComponentFactory ,\
+ &g_moduleCount.modCnt , 0\
+}\
+
+static struct ImplementationEntry g_entries[] =
+{
+ IMPLEMENTATION_ENTRY( PAR ),
+ IMPLEMENTATION_ENTRY( SEQ ),
+ IMPLEMENTATION_ENTRY( ITERATE ),
+ IMPLEMENTATION_ENTRY( ANIMATE ),
+ IMPLEMENTATION_ENTRY( SET ),
+ IMPLEMENTATION_ENTRY( ANIMATECOLOR ),
+ IMPLEMENTATION_ENTRY( ANIMATEMOTION ),
+ IMPLEMENTATION_ENTRY( ANIMATETRANSFORM ),
+ IMPLEMENTATION_ENTRY( TRANSITIONFILTER ),
+ IMPLEMENTATION_ENTRY( AUDIO ),
+ IMPLEMENTATION_ENTRY( COMMAND ),
+ IMPLEMENTATION_ENTRY( TargetPropertiesCreator ),
+ { 0, 0, 0, 0, 0, 0 }
+};
+
+extern "C"
+{
+
+sal_Bool SAL_CALL component_canUnload( TimeValue *pTime )
+{
+ return g_moduleCount.canUnload( &g_moduleCount , pTime );
+}
+
+//==================================================================================================
+void SAL_CALL component_getImplementationEnvironment(
+ const sal_Char ** ppEnvTypeName, uno_Environment ** )
+{
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+//==================================================================================================
+sal_Bool SAL_CALL component_writeInfo(
+ void * pServiceManager, void * pRegistryKey )
+{
+ return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
+}
+//==================================================================================================
+void * SAL_CALL component_getFactory(
+ const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
+{
+ return component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , g_entries );
+}
+
+}
diff --git a/animations/source/animcore/factreg.hxx b/animations/source/animcore/factreg.hxx
new file mode 100644
index 000000000000..b76fc1067e0c
--- /dev/null
+++ b/animations/source/animcore/factreg.hxx
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#include <rtl/unload.h>
+
+namespace animcore {
+
+extern rtl_StandardModuleCount g_moduleCount;
+
+#define DECL_NODE_FACTORY(N)\
+extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createInstance_##N( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > & rSMgr ) throw (::com::sun::star::uno::Exception);\
+extern ::rtl::OUString getImplementationName_##N();\
+extern ::com::sun::star::uno::Sequence< ::rtl::OUString> getSupportedServiceNames_##N(void)
+
+DECL_NODE_FACTORY( PAR );
+DECL_NODE_FACTORY( SEQ );
+DECL_NODE_FACTORY( ITERATE );
+DECL_NODE_FACTORY( ANIMATE );
+DECL_NODE_FACTORY( SET );
+DECL_NODE_FACTORY( ANIMATECOLOR );
+DECL_NODE_FACTORY( ANIMATEMOTION );
+DECL_NODE_FACTORY( ANIMATETRANSFORM );
+DECL_NODE_FACTORY( TRANSITIONFILTER );
+DECL_NODE_FACTORY( AUDIO );
+DECL_NODE_FACTORY( COMMAND );
+DECL_NODE_FACTORY( TargetPropertiesCreator );
+
+}
diff --git a/animations/source/animcore/makefile.mk b/animations/source/animcore/makefile.mk
new file mode 100644
index 000000000000..645ea8233d64
--- /dev/null
+++ b/animations/source/animcore/makefile.mk
@@ -0,0 +1,70 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..$/..
+
+PRJNAME=animations
+TARGET=animcore
+ENABLE_EXCEPTIONS=TRUE
+NO_BSYMBOLIC=TRUE
+#COMP1TYPELIST=$(TARGET)
+#COMPRDB=$(SOLARBINDIR)$/offapi.rdb
+
+# --- Settings -----------------------------------------------------
+.INCLUDE : settings.mk
+.IF "$(L10N_framework)"==""
+# --- Files --------------------------------------------------------
+#UNOUCRDEP=$(SOLARBINDIR)$/offapi.rdb
+#UNOUCRRDB=$(SOLARBINDIR)$/offapi.rdb
+#UNOUCROUT=$(OUT)$/inc$/animations
+#INCPRE+= $(UNOUCROUT)
+
+
+SLOFILES = $(SLO)$/animcore.obj\
+ $(SLO)$/factreg.obj\
+ $(SLO)$/targetpropertiescreator.obj
+
+SHL1TARGET= $(TARGET)
+SHL1VERSIONMAP= $(TARGET).map
+
+SHL1STDLIBS= \
+ $(SALLIB) \
+ $(CPPULIB) \
+ $(CPPUHELPERLIB)
+
+
+SHL1DEPN=
+SHL1IMPLIB= i$(TARGET)
+SHL1LIBS= $(SLB)$/$(TARGET).lib
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+
+DEF1NAME= $(SHL1TARGET)
+
+.ENDIF # L10N_framework
+
+# --- Targets ------------------------------------------------------
+.INCLUDE : target.mk
+
diff --git a/animations/source/animcore/targetpropertiescreator.cxx b/animations/source/animcore/targetpropertiescreator.cxx
new file mode 100644
index 000000000000..0bba7b55d918
--- /dev/null
+++ b/animations/source/animcore/targetpropertiescreator.cxx
@@ -0,0 +1,504 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <com/sun/star/uno/XComponentContext.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/animations/XTargetPropertiesCreator.hpp>
+#include <com/sun/star/animations/XIterateContainer.hpp>
+#include <com/sun/star/animations/TargetProperties.hpp>
+#include <com/sun/star/presentation/ParagraphTarget.hpp>
+#include <com/sun/star/registry/XRegistryKey.hpp>
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <com/sun/star/lang/XServiceName.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/animations/AnimationNodeType.hpp>
+#include <com/sun/star/animations/XAnimate.hpp>
+#include <cppuhelper/compbase3.hxx>
+#include <cppuhelper/factory.hxx>
+#include <cppuhelper/implementationentry.hxx>
+#include <comphelper/optionalvalue.hxx>
+#include <comphelper/broadcasthelper.hxx>
+#include <comphelper/sequence.hxx>
+
+#include <animations/animationnodehelper.hxx>
+
+#include <vector>
+#include <hash_map>
+
+
+using namespace ::com::sun::star;
+
+#define IMPLEMENTATION_NAME "animcore::TargetPropertiesCreator"
+#define SERVICE_NAME "com.sun.star.animations.TargetPropertiesCreator"
+
+namespace animcore
+{
+ typedef ::cppu::WeakComponentImplHelper3< ::com::sun::star::animations::XTargetPropertiesCreator,
+ lang::XServiceInfo,
+ lang::XServiceName > TargetPropertiesCreator_Base;
+
+ class TargetPropertiesCreator : public ::comphelper::OBaseMutex,
+ public TargetPropertiesCreator_Base
+ {
+ public:
+ static uno::Reference< uno::XInterface > SAL_CALL createInstance( const uno::Reference< uno::XComponentContext >& xContext ) throw ( uno::Exception )
+ {
+ return uno::Reference< uno::XInterface >( static_cast<cppu::OWeakObject*>(new TargetPropertiesCreator( xContext )) );
+ }
+
+ /// Dispose all internal references
+ virtual void SAL_CALL disposing();
+
+ // XTargetPropertiesCreator
+ virtual uno::Sequence< animations::TargetProperties > SAL_CALL createInitialTargetProperties( const uno::Reference< animations::XAnimationNode >& rootNode ) throw (uno::RuntimeException);
+
+ // XServiceInfo
+ virtual ::rtl::OUString SAL_CALL getImplementationName() throw( uno::RuntimeException );
+ virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException );
+ virtual uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames() throw( uno::RuntimeException );
+
+ // XServiceName
+ virtual ::rtl::OUString SAL_CALL getServiceName( ) throw (uno::RuntimeException);
+
+ protected:
+ ~TargetPropertiesCreator(); // we're a ref-counted UNO class. _We_ destroy ourselves.
+
+ private:
+ // default: disabled copy/assignment
+ TargetPropertiesCreator(const TargetPropertiesCreator&);
+ TargetPropertiesCreator& operator=( const TargetPropertiesCreator& );
+
+ TargetPropertiesCreator( const uno::Reference< uno::XComponentContext >& rxContext );
+ };
+
+ // --------------------------------------------------------------------
+
+ uno::Reference< uno::XInterface > SAL_CALL createInstance_TargetPropertiesCreator( const uno::Reference< uno::XComponentContext > & rSMgr ) throw (uno::Exception)
+ {
+ return TargetPropertiesCreator::createInstance( rSMgr );
+ }
+
+ ::rtl::OUString getImplementationName_TargetPropertiesCreator()
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( IMPLEMENTATION_NAME ) );
+ }
+
+ uno::Sequence< ::rtl::OUString > getSupportedServiceNames_TargetPropertiesCreator(void)
+ {
+ uno::Sequence< ::rtl::OUString > aRet(1);
+ aRet.getArray()[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
+ return aRet;
+ }
+
+ // --------------------------------------------------------------------
+
+ namespace
+ {
+ // Vector containing all properties for a given shape
+ typedef ::std::vector< beans::NamedValue > VectorOfNamedValues;
+
+ /** The hash map key
+
+ This key contains both XShape reference and a paragraph
+ index, as we somehow have to handle shape and paragraph
+ targets with the same data structure.
+ */
+ struct ShapeHashKey
+ {
+ /// Shape target
+ uno::Reference< drawing::XShape > mxRef;
+
+ /** Paragraph index.
+
+ If this is a pure shape target, mnParagraphIndex is
+ set to -1.
+ */
+ sal_Int16 mnParagraphIndex;
+
+ /// Comparison needed for hash_map
+ bool operator==( const ShapeHashKey& rRHS ) const
+ {
+ return mxRef == rRHS.mxRef && mnParagraphIndex == rRHS.mnParagraphIndex;
+ }
+ };
+
+ // A hash map which maps a XShape to the corresponding vector of initial properties
+ typedef ::std::hash_map< ShapeHashKey,
+ VectorOfNamedValues,
+ ::std::size_t (*)(const ShapeHashKey&) > XShapeHash;
+
+ ::std::size_t refhasher( const ShapeHashKey& rKey )
+ {
+ // TODO(P2): Maybe a better hash function would be to
+ // spread mnParagraphIndex to 32 bit: a0b0c0d0e0... Hakmem
+ // should have a formula.
+ //
+ // Yes it has:
+ // x = (x & 0x0000FF00) << 8) | (x >> 8) & 0x0000FF00 | x & 0xFF0000FF;
+ // x = (x & 0x00F000F0) << 4) | (x >> 4) & 0x00F000F0 | x & 0xF00FF00F;
+ // x = (x & 0x0C0C0C0C) << 2) | (x >> 2) & 0x0C0C0C0C | x & 0xC3C3C3C3;
+ // x = (x & 0x22222222) << 1) | (x >> 1) & 0x22222222 | x & 0x99999999;
+ //
+ // Costs about 17 cycles on a RISC machine with infinite
+ // instruction level parallelism (~42 basic
+ // instructions). Thus I truly doubt this pays off...
+ return reinterpret_cast< ::std::size_t >(rKey.mxRef.get()) ^ (rKey.mnParagraphIndex << 16L);
+ }
+
+
+ class NodeFunctor
+ {
+ public:
+ explicit NodeFunctor( XShapeHash& rShapeHash ) :
+ mrShapeHash( rShapeHash ),
+ mxTargetShape(),
+ mnParagraphIndex( -1 )
+ {
+ }
+
+ NodeFunctor( XShapeHash& rShapeHash,
+ const uno::Reference< drawing::XShape >& rTargetShape,
+ sal_Int16 nParagraphIndex ) :
+ mrShapeHash( rShapeHash ),
+ mxTargetShape( rTargetShape ),
+ mnParagraphIndex( nParagraphIndex )
+ {
+ }
+
+ void operator()( const uno::Reference< animations::XAnimationNode >& xNode ) const
+ {
+ if( !xNode.is() )
+ {
+ OSL_ENSURE( false,
+ "AnimCore: NodeFunctor::operator(): invalid XAnimationNode" );
+ return;
+ }
+
+ uno::Reference< drawing::XShape > xTargetShape( mxTargetShape );
+ sal_Int16 nParagraphIndex( mnParagraphIndex );
+
+ switch( xNode->getType() )
+ {
+ case animations::AnimationNodeType::ITERATE:
+ {
+ // extract target shape from iterate node
+ // (will override the target for all children)
+ // --------------------------------------------------
+
+ uno::Reference< animations::XIterateContainer > xIterNode( xNode,
+ uno::UNO_QUERY );
+
+ // TODO(E1): I'm not too sure what to expect here...
+ if( !xIterNode->getTarget().hasValue() )
+ {
+ OSL_ENSURE( false,
+ "animcore: NodeFunctor::operator(): no target on ITERATE node" );
+ return;
+ }
+
+ xTargetShape.set( xIterNode->getTarget(),
+ uno::UNO_QUERY );
+
+ if( !xTargetShape.is() )
+ {
+ ::com::sun::star::presentation::ParagraphTarget aTarget;
+
+ // no shape provided. Maybe a ParagraphTarget?
+ if( !(xIterNode->getTarget() >>= aTarget) )
+ {
+ OSL_ENSURE( false,
+ "animcore: NodeFunctor::operator(): could not extract any "
+ "target information" );
+ return;
+ }
+
+ xTargetShape = aTarget.Shape;
+ nParagraphIndex = aTarget.Paragraph;
+
+ if( !xTargetShape.is() )
+ {
+ OSL_ENSURE( false,
+ "animcore: NodeFunctor::operator(): invalid shape in ParagraphTarget" );
+ return;
+ }
+ }
+ }
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::PAR:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::SEQ:
+ {
+ NodeFunctor aFunctor( mrShapeHash,
+ xTargetShape,
+ nParagraphIndex );
+ if( !::anim::for_each_childNode( xNode,
+ aFunctor ) )
+ {
+ OSL_ENSURE( false,
+ "AnimCore: NodeFunctor::operator(): child node iteration failed, "
+ "or extraneous container nodes encountered" );
+ }
+ }
+ break;
+
+ case animations::AnimationNodeType::CUSTOM:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::ANIMATE:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::ANIMATEMOTION:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::ANIMATECOLOR:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::ANIMATETRANSFORM:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::TRANSITIONFILTER:
+ // FALLTHROUGH intended
+ case animations::AnimationNodeType::AUDIO:
+ // FALLTHROUGH intended
+ default:
+ // ignore this node, no valuable content for now.
+ break;
+
+ case animations::AnimationNodeType::SET:
+ {
+ // evaluate set node content
+ uno::Reference< animations::XAnimate > xAnimateNode( xNode,
+ uno::UNO_QUERY );
+
+ if( !xAnimateNode.is() )
+ break; // invalid node
+
+ // determine target shape (if any)
+ ShapeHashKey aTarget;
+ if( xTargetShape.is() )
+ {
+ // override target shape with parent-supplied
+ aTarget.mxRef = xTargetShape;
+ aTarget.mnParagraphIndex = nParagraphIndex;
+ }
+ else
+ {
+ // no parent-supplied target, retrieve
+ // node target
+ if( (xAnimateNode->getTarget() >>= aTarget.mxRef) )
+ {
+ // pure shape target - set paragraph
+ // index to magic
+ aTarget.mnParagraphIndex = -1;
+ }
+ else
+ {
+ // not a pure shape target - maybe a
+ // ParagraphTarget?
+ presentation::ParagraphTarget aUnoTarget;
+
+ if( !(xAnimateNode->getTarget() >>= aUnoTarget) )
+ {
+ OSL_ENSURE( false,
+ "AnimCore: NodeFunctor::operator(): unknown target type encountered" );
+ break;
+ }
+
+ aTarget.mxRef = aUnoTarget.Shape;
+ aTarget.mnParagraphIndex = aUnoTarget.Paragraph;
+ }
+ }
+
+ if( !aTarget.mxRef.is() )
+ {
+ OSL_ENSURE( false,
+ "AnimCore: NodeFunctor::operator(): Found target, but XShape is NULL" );
+ break; // invalid target XShape
+ }
+
+ // check whether we already have an entry for
+ // this target (we only take the first set
+ // effect for every shape)
+ XShapeHash::const_iterator aIter;
+ if( (aIter=mrShapeHash.find( aTarget )) != mrShapeHash.end() )
+ break; // already an entry in existence for given XShape
+
+ // if this is an appear effect, hide shape
+ // initially. This is currently the only place
+ // where a shape effect influences shape
+ // attributes outside it's effective duration.
+ if( xAnimateNode->getAttributeName().equalsIgnoreAsciiCaseAscii("visibility") )
+ {
+ sal_Bool bVisible( sal_False );
+
+ uno::Any aAny( xAnimateNode->getTo() );
+
+ // try to extract bool value
+ if( !(aAny >>= bVisible) )
+ {
+ // try to extract string
+ ::rtl::OUString aString;
+ if( (aAny >>= aString) )
+ {
+ // we also take the strings "true" and "false",
+ // as well as "on" and "off" here
+ if( aString.equalsIgnoreAsciiCaseAscii("true") ||
+ aString.equalsIgnoreAsciiCaseAscii("on") )
+ {
+ bVisible = sal_True;
+ }
+ if( aString.equalsIgnoreAsciiCaseAscii("false") ||
+ aString.equalsIgnoreAsciiCaseAscii("off") )
+ {
+ bVisible = sal_False;
+ }
+ }
+ }
+
+ if( bVisible )
+ {
+ // target is set to 'visible' at the
+ // first relevant effect. Thus, target
+ // must be initially _hidden_, for the
+ // effect to have visible impact.
+ mrShapeHash.insert(
+ XShapeHash::value_type(
+ aTarget,
+ VectorOfNamedValues(
+ 1,
+ beans::NamedValue(
+ xAnimateNode->getAttributeName(),
+ uno::makeAny( sal_False ) ) ) ) );
+ }
+ }
+ }
+ break;
+ }
+ }
+
+ private:
+ XShapeHash& mrShapeHash;
+ uno::Reference< drawing::XShape > mxTargetShape;
+ sal_Int16 mnParagraphIndex;
+ };
+ }
+
+ // --------------------------------------------------------------------
+
+ TargetPropertiesCreator::TargetPropertiesCreator( const uno::Reference< uno::XComponentContext >& ) :
+ TargetPropertiesCreator_Base( m_aMutex )
+ {
+ }
+
+ TargetPropertiesCreator::~TargetPropertiesCreator()
+ {
+ }
+
+ void SAL_CALL TargetPropertiesCreator::disposing()
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+ }
+
+ // XTargetPropertiesCreator
+ uno::Sequence< animations::TargetProperties > SAL_CALL TargetPropertiesCreator::createInitialTargetProperties
+ (
+ const uno::Reference< animations::XAnimationNode >& xRootNode
+ ) throw (uno::RuntimeException)
+ {
+ ::osl::MutexGuard aGuard( m_aMutex );
+
+ // scan all nodes for visibility changes, and record first
+ // 'visibility=true' for each shape
+ XShapeHash aShapeHash( 101,
+ &refhasher );
+
+ NodeFunctor aFunctor( aShapeHash );
+
+ // TODO(F1): Maybe limit functor application to main sequence
+ // alone (CL said something that shape visibility is only
+ // affected by effects in the main sequence for PPT).
+ //
+ // OTOH, client code can pass us only the main sequence (which
+ // it actually does right now, for the slideshow implementation).
+ aFunctor( xRootNode );
+
+
+ // output to result sequence
+ // ----------------------------------------------------------------------
+
+ uno::Sequence< animations::TargetProperties > aRes( aShapeHash.size() );
+
+ ::std::size_t nCurrIndex(0);
+ XShapeHash::const_iterator aCurr( aShapeHash.begin() );
+ const XShapeHash::const_iterator aEnd ( aShapeHash.end() );
+ while( aCurr != aEnd )
+ {
+ animations::TargetProperties& rCurrProps( aRes[ nCurrIndex++ ] );
+
+ if( aCurr->first.mnParagraphIndex == -1 )
+ {
+ rCurrProps.Target = uno::makeAny( aCurr->first.mxRef );
+ }
+ else
+ {
+ rCurrProps.Target = uno::makeAny(
+ presentation::ParagraphTarget(
+ aCurr->first.mxRef,
+ aCurr->first.mnParagraphIndex ) );
+ }
+
+ rCurrProps.Properties = ::comphelper::containerToSequence( aCurr->second );
+
+ ++aCurr;
+ }
+
+ return aRes;
+ }
+
+ // XServiceInfo
+ ::rtl::OUString SAL_CALL TargetPropertiesCreator::getImplementationName() throw( uno::RuntimeException )
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( IMPLEMENTATION_NAME ) );
+ }
+
+ sal_Bool SAL_CALL TargetPropertiesCreator::supportsService( const ::rtl::OUString& ServiceName ) throw( uno::RuntimeException )
+ {
+ return ServiceName.equalsIgnoreAsciiCaseAscii( SERVICE_NAME );
+ }
+
+ uno::Sequence< ::rtl::OUString > SAL_CALL TargetPropertiesCreator::getSupportedServiceNames() throw( uno::RuntimeException )
+ {
+ uno::Sequence< ::rtl::OUString > aRet(1);
+ aRet[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( SERVICE_NAME ) );
+
+ return aRet;
+ }
+
+ // XServiceName
+ ::rtl::OUString SAL_CALL TargetPropertiesCreator::getServiceName( ) throw (uno::RuntimeException)
+ {
+ return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( SERVICE_NAME ) );
+ }
+
+} // namespace animcore
diff --git a/apache-commons/download/README b/apache-commons/download/README
new file mode 100644
index 000000000000..38fc135536d7
--- /dev/null
+++ b/apache-commons/download/README
@@ -0,0 +1,16 @@
+commons-codec-1.3-src.tar.gz
+commons-logging-1.1.1-src.tar.gz
+commons-lang-2.3-src.tar.gz
+
+downloaded from
+
+http://archive.apache.org/dist/commons
+
+---
+
+commons-httpclient-3.1-src.tar.gz
+
+downloaded from
+
+http://hc.apache.org/downloads.cgi
+
diff --git a/apache-commons/download/commons-codec-1.3-src.tar.gz b/apache-commons/download/commons-codec-1.3-src.tar.gz
new file mode 100644
index 000000000000..13e0063fbdf9
--- /dev/null
+++ b/apache-commons/download/commons-codec-1.3-src.tar.gz
Binary files differ
diff --git a/apache-commons/download/commons-httpclient-3.1-src.tar.gz b/apache-commons/download/commons-httpclient-3.1-src.tar.gz
new file mode 100644
index 000000000000..f52b40704b2f
--- /dev/null
+++ b/apache-commons/download/commons-httpclient-3.1-src.tar.gz
Binary files differ
diff --git a/apache-commons/download/commons-lang-2.3-src.tar.gz b/apache-commons/download/commons-lang-2.3-src.tar.gz
new file mode 100644
index 000000000000..f517cbd8ab4f
--- /dev/null
+++ b/apache-commons/download/commons-lang-2.3-src.tar.gz
Binary files differ
diff --git a/apache-commons/download/commons-logging-1.1.1-src.tar.gz b/apache-commons/download/commons-logging-1.1.1-src.tar.gz
new file mode 100644
index 000000000000..14a9371be57a
--- /dev/null
+++ b/apache-commons/download/commons-logging-1.1.1-src.tar.gz
Binary files differ
diff --git a/apache-commons/java/codec/makefile.mk b/apache-commons/java/codec/makefile.mk
new file mode 100644
index 000000000000..208bb2970dd3
--- /dev/null
+++ b/apache-commons/java/codec/makefile.mk
@@ -0,0 +1,73 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=apache-commons
+TARGET=commons-codec
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# override buildfile
+ANT_BUILDFILE=build.xml
+
+.INCLUDE : antsettings.mk
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=commons-codec-1.3-src
+
+TARFILE_ROOTDIR=commons-codec-1.3
+
+PATCH_FILES=$(PRJ)$/patches$/codec.patch
+
+#CONVERTFILES=build.xml
+
+OUT2CLASS=dist$/commons-codec-1.3.jar
+
+.IF "$(JAVACISGCJ)"=="yes"
+JAVA_HOME=
+.EXPORT : JAVA_HOME
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar
+.ELSE
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar
+.ENDIF
+
+.ENDIF # $(SOLAR_JAVA)!= ""
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+.INCLUDE : tg_ext.mk
+.ENDIF
+
diff --git a/apache-commons/java/httpclient/makefile.mk b/apache-commons/java/httpclient/makefile.mk
new file mode 100644
index 000000000000..338c1832b164
--- /dev/null
+++ b/apache-commons/java/httpclient/makefile.mk
@@ -0,0 +1,78 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=apache-commons
+TARGET=commons-httpclient
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# override buildfile
+ANT_BUILDFILE=build.xml
+
+.INCLUDE : antsettings.mk
+
+TAR!:=$(GNUTAR)
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=commons-httpclient-3.1-src
+
+TARFILE_ROOTDIR=commons-httpclient-3.1
+
+#PATCH_FILES=$(PRJ)$/patches$/httpclient.patch
+
+#CONVERTFILES=build.xml
+
+OUT2CLASS=dist$/commons-httpclient.jar
+
+COMMONS_LOGGING_JAR=..$/..$/..$/..$/$(INPATH)$/class$/commons-logging-1.1.1-SNAPSHOT.jar
+COMMONS_CODEC_JAR=..$/..$/..$/..$/$/$(INPATH)$/class$/commons-codec-1.3.jar
+
+.IF "$(JAVACISGCJ)"=="yes"
+JAVA_HOME=
+.EXPORT : JAVA_HOME
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -Dcommons-logging.jar=$(COMMONS_LOGGING_JAR) -Dcommons-codec.jar=$(COMMONS_CODEC_JAR) -f $(ANT_BUILDFILE) dist
+.ELSE
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dcommons-logging.jar=$(COMMONS_LOGGING_JAR) -Dcommons-codec.jar=$(COMMONS_CODEC_JAR) -f $(ANT_BUILDFILE) dist
+.ENDIF
+
+.ENDIF # $(SOLAR_JAVA)!= ""
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+.INCLUDE : tg_ext.mk
+.ENDIF
+
diff --git a/apache-commons/java/lang/makefile.mk b/apache-commons/java/lang/makefile.mk
new file mode 100644
index 000000000000..97501563e242
--- /dev/null
+++ b/apache-commons/java/lang/makefile.mk
@@ -0,0 +1,75 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=apache-commons
+TARGET=commons-lang
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# override buildfile
+ANT_BUILDFILE=build.xml
+
+.INCLUDE : antsettings.mk
+
+TAR!:=$(GNUTAR)
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=commons-lang-2.3-src
+
+TARFILE_ROOTDIR=commons-lang-2.3-src
+
+#PATCH_FILES=$(PRJ)$/patches$/logging.patch
+
+#CONVERTFILES=build.xml
+
+OUT2CLASS=dist$/commons-lang-2.3.jar
+
+.IF "$(JAVACISGCJ)"=="yes"
+JAVA_HOME=
+.EXPORT : JAVA_HOME
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -f $(ANT_BUILDFILE) jar
+.ELSE
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) jar
+.ENDIF
+
+.ENDIF # $(SOLAR_JAVA)!= ""
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+
+.IF "$(SOLAR_JAVA)" != "" && "$(ENABLE_MEDIAWIKI)" == "YES"
+.INCLUDE : tg_ext.mk
+.ENDIF
+
diff --git a/apache-commons/java/logging/makefile.mk b/apache-commons/java/logging/makefile.mk
new file mode 100644
index 000000000000..6e3a1d2314d9
--- /dev/null
+++ b/apache-commons/java/logging/makefile.mk
@@ -0,0 +1,77 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=apache-commons
+TARGET=commons-logging
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# override buildfile
+ANT_BUILDFILE=build.xml
+
+.INCLUDE : antsettings.mk
+
+.IF "$(SOLAR_JAVA)" != "" && ( "$(ENABLE_MEDIAWIKI)" == "YES" || "$(ENABLE_REPORTBUILDER)" == "YES" )
+# --- Files --------------------------------------------------------
+
+TARFILE_NAME=commons-logging-1.1.1-src
+
+TARFILE_ROOTDIR=commons-logging-1.1.1-src
+
+PATCH_FILES=$(PRJ)$/patches$/logging.patch
+
+CONVERTFILES=build.xml
+
+OUT2CLASS=target$/commons-logging-1.1.1-SNAPSHOT.jar
+
+.IF "$(SYSTEM_TOMCAT)" != "YES"
+SERVLETAPI_JAR := $(SOLARVER)$/$(INPATH)$/bin$(UPDMINOREXT)$/servlet-api.jar
+.ENDIF
+
+.IF "$(JAVACISGCJ)"=="yes"
+JAVA_HOME=
+.EXPORT : JAVA_HOME
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -Dbuild.compiler=gcj -Dservletapi.jar=$(SERVLETAPI_JAR) -f $(ANT_BUILDFILE) compile build-jar
+.ELSE
+BUILD_ACTION=$(ANT) -Dbuild.label="build-$(RSCREVISION)" -f $(ANT_BUILDFILE) -Dservletapi.jar=$(SERVLETAPI_JAR) compile build-jar
+.ENDIF
+
+.ENDIF # $(SOLAR_JAVA)!= ""
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : set_ext.mk
+.INCLUDE : target.mk
+
+.IF "$(SOLAR_JAVA)" != "" && ( "$(ENABLE_MEDIAWIKI)" == "YES" || "$(ENABLE_REPORTBUILDER)" == "YES" )
+.INCLUDE : tg_ext.mk
+.ENDIF
+
diff --git a/apache-commons/patches/codec.patch b/apache-commons/patches/codec.patch
new file mode 100644
index 000000000000..dea25ad263d2
--- /dev/null
+++ b/apache-commons/patches/codec.patch
@@ -0,0 +1,17 @@
+--- misc/build/commons-codec-1.3/build.xml-old 2008-01-31 15:28:58.000000000 +0100
++++ misc/build/commons-codec-1.3/build.xml 2008-01-31 15:29:21.000000000 +0100
+@@ -90,14 +90,12 @@
+ </target>
+ <target name="dist" depends="compile,javadoc" description="Create binary distribution">
+ <mkdir dir="${dist.home}"/>
+- <copy file="../LICENSE" todir="${dist.home}"/>
+ <copy file="${basedir}/RELEASE-NOTES.txt" todir="${dist.home}"/>
+ <antcall target="jar"/>
+ </target>
+ <target name="jar" depends="compile" description="Create jar">
+ <mkdir dir="${dist.home}"/>
+ <mkdir dir="${build.home}/classes/META-INF"/>
+- <copy file="../LICENSE" tofile="${build.home}/classes/META-INF/LICENSE.txt"/>
+ <jar jarfile="${dist.home}/${final.name}.jar" basedir="${build.home}/classes" manifest="${build.home}/conf/MANIFEST.MF"/>
+ </target>
+ <target name="install-jar" depends="jar" description="--> Installs jar file in ${lib.repo}">
diff --git a/apache-commons/patches/logging.patch b/apache-commons/patches/logging.patch
new file mode 100644
index 000000000000..63b93dcbd6f2
--- /dev/null
+++ b/apache-commons/patches/logging.patch
@@ -0,0 +1,15 @@
+--- misc/commons-logging-1.1.1-src/build.xml 2007-11-22 00:27:52.000000000 +0100
++++ misc/build/commons-logging-1.1.1-src/build.xml 2008-06-24 14:23:56.316301736 +0200
+@@ -127,10 +127,10 @@
+ <!-- ========== Compiler Defaults ========================================= -->
+
+ <!-- Version of java class files to generate. -->
+- <property name="target.version" value="1.1"/>
++ <property name="target.version" value="1.3"/>
+
+ <!-- Version of java source to accept -->
+- <property name="source.version" value="1.2"/>
++ <property name="source.version" value="1.3"/>
+
+ <!-- Should Java compilations set the 'debug' compiler option? -->
+ <property name="compile.debug" value="true"/>
diff --git a/apache-commons/prj/build.lst b/apache-commons/prj/build.lst
new file mode 100644
index 000000000000..c509ce0336dd
--- /dev/null
+++ b/apache-commons/prj/build.lst
@@ -0,0 +1,6 @@
+ac apache-commons : solenv TOMCAT:tomcat NULL
+ac apache-commons usr1 - all ac_mkout NULL
+ac apache-commons\java\codec nmake - all ac_codec NULL
+ac apache-commons\java\lang nmake - all ac_lang NULL
+ac apache-commons\java\logging nmake - all ac_logging NULL
+ac apache-commons\java\httpclient nmake - all ac_httpclient ac_logging ac_codec NULL
diff --git a/apache-commons/prj/d.lst b/apache-commons/prj/d.lst
new file mode 100644
index 000000000000..21f6e01700ea
--- /dev/null
+++ b/apache-commons/prj/d.lst
@@ -0,0 +1,5 @@
+..\%__SRC%\class\commons-logging-1.1.1-SNAPSHOT.jar %_DEST%\bin%_EXT%\commons-logging-1.1.1.jar
+..\%__SRC%\class\commons-codec-1.3.jar %_DEST%\bin%_EXT%\commons-codec-1.3.jar
+..\%__SRC%\class\commons-httpclient.jar %_DEST%\bin%_EXT%\commons-httpclient-3.1.jar
+..\%__SRC%\class\commons-lang-2.3.jar %_DEST%\bin%_EXT%\commons-lang-2.3.jar
+
diff --git a/apple_remote/AppleRemote.m b/apple_remote/AppleRemote.m
new file mode 100644
index 000000000000..a65cc6440b41
--- /dev/null
+++ b/apple_remote/AppleRemote.m
@@ -0,0 +1,125 @@
+/*****************************************************************************
+ * RemoteControlWrapper.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "AppleRemote.h"
+
+#import <mach/mach.h>
+#import <mach/mach_error.h>
+#import <IOKit/IOKitLib.h>
+#import <IOKit/IOCFPlugIn.h>
+#import <IOKit/hid/IOHIDKeys.h>
+
+const char* AppleRemoteDeviceName = "AppleIRController";
+
+// the WWDC 07 Leopard Build is missing the constant
+#ifndef NSAppKitVersionNumber10_4
+ #define NSAppKitVersionNumber10_4 824
+#endif
+#ifndef NSAppKitVersionNumber10_5
+ #define NSAppKitVersionNumber10_5 949
+#endif
+
+@implementation AppleRemote
+
++ (const char*) remoteControlDeviceName {
+ return AppleRemoteDeviceName;
+}
+
+- (void) setCookieMappingInDictionary: (NSMutableDictionary*) _cookieToButtonMapping {
+
+ // TODO : avoid such magics
+ if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_4) {
+ #ifdef DEBUG
+ NSLog( @"setting 10.4 cookies" );
+ #endif
+ // 10.4.x Tiger
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlus] forKey:@"14_12_11_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMinus] forKey:@"14_13_11_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"14_7_6_14_7_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"14_8_6_14_8_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"14_9_6_14_9_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"14_10_6_14_10_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"14_6_4_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"14_6_3_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"14_6_14_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Hold] forKey:@"18_14_6_18_14_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"19_"];
+ } else if( floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_5 ) {
+ #ifdef DEBUG
+ NSLog( @"setting 10.5 cookies" );
+ #endif
+ // 10.5.x Leopard
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlus] forKey:@"31_29_28_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMinus] forKey:@"31_30_28_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"31_20_19_18_31_20_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"31_21_19_18_31_21_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"31_22_19_18_31_22_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"31_23_19_18_31_23_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"31_19_18_4_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"31_19_18_3_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"31_19_18_31_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Hold] forKey:@"35_31_19_18_35_31_19_18_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"19_"];
+ }
+ else
+ {
+ #ifdef DEBUG
+ NSLog( @"setting 10.6 cookies" );
+ #endif
+ // 10.6.x Snow Leopard
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlus] forKey:@"33_31_30_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMinus] forKey:@"33_32_30_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"33_22_21_20_2_33_22_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"33_23_21_20_2_33_23_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"33_24_21_20_2_33_24_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"33_25_21_20_2_33_25_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"33_21_20_14_12_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"33_21_20_13_12_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"33_21_20_2_33_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Hold] forKey:@"37_33_21_20_2_37_33_21_20_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"19_"];
+ }
+}
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown {
+ if (pressedDown == NO && event == kRemoteButtonMenu_Hold) {
+ // There is no seperate event for pressed down on menu hold. We are simulating that event here
+ [super sendRemoteButtonEvent:event pressedDown:YES];
+ }
+
+ [super sendRemoteButtonEvent:event pressedDown:pressedDown];
+
+ if (pressedDown && (event == kRemoteButtonRight || event == kRemoteButtonLeft || event == kRemoteButtonPlay || event == kRemoteButtonMenu || event == kRemoteButtonPlay_Hold)) {
+ // There is no seperate event when the button is being released. We are simulating that event here
+ [super sendRemoteButtonEvent:event pressedDown:NO];
+ }
+}
+
+@end
diff --git a/apple_remote/GlobalKeyboardDevice.m b/apple_remote/GlobalKeyboardDevice.m
new file mode 100644
index 000000000000..14bf558a0511
--- /dev/null
+++ b/apple_remote/GlobalKeyboardDevice.m
@@ -0,0 +1,249 @@
+/*****************************************************************************
+ * GlobalKeyboardDevice.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+
+#import "GlobalKeyboardDevice.h"
+
+#define F1 122
+#define F2 120
+#define F3 99
+#define F4 118
+#define F5 96
+#define F6 97
+#define F7 98
+
+/*
+ the following default keys are read and shall be used to change the keyboard mapping
+
+ mac.remotecontrols.GlobalKeyboardDevice.plus_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.plus_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.minus_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.minus_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.play_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.play_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.left_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.left_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.right_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.right_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.menu_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.menu_keycode
+ mac.remotecontrols.GlobalKeyboardDevice.playhold_modifiers
+ mac.remotecontrols.GlobalKeyboardDevice.playhold_keycode
+ */
+
+static OSStatus hotKeyEventHandler(EventHandlerCallRef, EventRef, void*);
+
+@implementation GlobalKeyboardDevice
+
+- (id) initWithDelegate: (id) _remoteControlDelegate {
+ if ( (self = [super initWithDelegate: _remoteControlDelegate]) ) {
+ hotKeyRemoteEventMapping = [[NSMutableDictionary alloc] init];
+
+ unsigned int modifiers = cmdKey + shiftKey /*+ optionKey*/ + controlKey;
+
+ [self mapRemoteButton:kRemoteButtonPlus defaultKeycode:F1 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonMinus defaultKeycode:F2 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonPlay defaultKeycode:F3 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonLeft defaultKeycode:F4 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonRight defaultKeycode:F5 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonMenu defaultKeycode:F6 defaultModifiers:modifiers];
+ [self mapRemoteButton:kRemoteButtonPlay_Hold defaultKeycode:F7 defaultModifiers:modifiers];
+ }
+ return self;
+}
+
+- (void) dealloc {
+ [hotKeyRemoteEventMapping release];
+ [super dealloc];
+}
+
+- (void) mapRemoteButton: (RemoteControlEventIdentifier) remoteButtonIdentifier defaultKeycode: (unsigned int) defaultKeycode defaultModifiers: (unsigned int) defaultModifiers {
+ NSString* defaultsKey = NULL;
+
+ switch(remoteButtonIdentifier) {
+ case kRemoteButtonPlus:
+ defaultsKey = @"plus";
+ break;
+ case kRemoteButtonMinus:
+ defaultsKey = @"minus";
+ break;
+ case kRemoteButtonMenu:
+ defaultsKey = @"menu";
+ break;
+ case kRemoteButtonPlay:
+ defaultsKey = @"play";
+ break;
+ case kRemoteButtonRight:
+ defaultsKey = @"right";
+ break;
+ case kRemoteButtonLeft:
+ defaultsKey = @"left";
+ break;
+ case kRemoteButtonPlay_Hold:
+ defaultsKey = @"playhold";
+ break;
+ default:
+#ifdef DEBUG
+ NSLog(@"Unknown global keyboard defaults key for remote button identifier %d", remoteButtonIdentifier);
+#endif
+ break;
+ }
+
+ NSNumber* modifiersCfg = [[NSUserDefaults standardUserDefaults] objectForKey: [NSString stringWithFormat: @"mac.remotecontrols.GlobalKeyboardDevice.%@_modifiers", defaultsKey]];
+ NSNumber* keycodeCfg = [[NSUserDefaults standardUserDefaults] objectForKey: [NSString stringWithFormat: @"mac.remotecontrols.GlobalKeyboardDevice.%@_keycode", defaultsKey]];
+
+ unsigned int modifiers = defaultModifiers;
+ if (modifiersCfg) modifiers = [modifiersCfg unsignedIntValue];
+
+ unsigned int keycode = defaultKeycode;
+ if (keycodeCfg) keycode = [keycodeCfg unsignedIntValue];
+
+ [self registerHotKeyCode: keycode modifiers: modifiers remoteEventIdentifier: remoteButtonIdentifier];
+}
+
+- (void) setListeningToRemote: (BOOL) value {
+ if (value == [self isListeningToRemote]) return;
+ if (value) {
+ [self startListening: self];
+ } else {
+ [self stopListening: self];
+ }
+}
+- (BOOL) isListeningToRemote {
+ return (eventHandlerRef!=NULL);
+}
+
+- (void) startListening: (id) sender {
+
+ if (eventHandlerRef) return;
+
+ EventTypeSpec eventSpec[2] = {
+ { kEventClassKeyboard, kEventHotKeyPressed },
+ { kEventClassKeyboard, kEventHotKeyReleased }
+ };
+
+ InstallEventHandler( GetEventDispatcherTarget(),
+ (EventHandlerProcPtr)hotKeyEventHandler,
+ 2, eventSpec, self, &eventHandlerRef);
+}
+- (void) stopListening: (id) sender {
+ RemoveEventHandler(eventHandlerRef);
+ eventHandlerRef = NULL;
+}
+
+- (BOOL) sendsEventForButtonIdentifier: (RemoteControlEventIdentifier) identifier {
+ NSEnumerator* values = [hotKeyRemoteEventMapping objectEnumerator];
+ NSNumber* remoteIdentifier;
+ while( (remoteIdentifier = [values nextObject]) ) {
+ if ([remoteIdentifier unsignedIntValue] == identifier) return YES;
+ }
+ return NO;
+}
+
++ (const char*) remoteControlDeviceName {
+ return "Keyboard";
+}
+
+- (BOOL)registerHotKeyCode: (unsigned int) keycode modifiers: (unsigned int) modifiers remoteEventIdentifier: (RemoteControlEventIdentifier) identifier {
+ OSStatus err;
+ EventHotKeyID hotKeyID;
+ EventHotKeyRef carbonHotKey;
+
+ hotKeyID.signature = 'PTHk';
+ hotKeyID.id = (long)keycode;
+
+ err = RegisterEventHotKey(keycode, modifiers, hotKeyID, GetEventDispatcherTarget(), 0, &carbonHotKey );
+
+ if( err )
+ return NO;
+
+ [hotKeyRemoteEventMapping setObject: [NSNumber numberWithInt:identifier] forKey: [NSNumber numberWithUnsignedInt: hotKeyID.id]];
+
+ return YES;
+}
+/*
+- (void)unregisterHotKey: (PTHotKey*)hotKey
+{
+ OSStatus err;
+ EventHotKeyRef carbonHotKey;
+ NSValue* key;
+
+ if( [[self allHotKeys] containsObject: hotKey] == NO )
+ return;
+
+ carbonHotKey = [self _carbonHotKeyForHotKey: hotKey];
+ NSAssert( carbonHotKey != nil, @"" );
+
+ err = UnregisterEventHotKey( carbonHotKey );
+ //Watch as we ignore 'err':
+
+ key = [NSValue valueWithPointer: carbonHotKey];
+ [mHotKeys removeObjectForKey: key];
+
+ [self _updateEventHandler];
+
+ //See that? Completely ignored
+}
+*/
+
+- (RemoteControlEventIdentifier) remoteControlEventIdentifierForID: (unsigned int) id {
+ NSNumber* remoteEventIdentifier = [hotKeyRemoteEventMapping objectForKey:[NSNumber numberWithUnsignedInt: id]];
+ return [remoteEventIdentifier unsignedIntValue];
+}
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown {
+ [delegate sendRemoteButtonEvent: event pressedDown: pressedDown remoteControl:self];
+}
+
+static RemoteControlEventIdentifier lastEvent;
+
+
+static OSStatus hotKeyEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void* userData )
+{
+ GlobalKeyboardDevice* keyboardDevice = (GlobalKeyboardDevice*) userData;
+ EventHotKeyID hkCom;
+ GetEventParameter(inEvent,kEventParamDirectObject,typeEventHotKeyID,NULL,sizeof(hkCom),NULL,&hkCom);
+
+ RemoteControlEventIdentifier identifier = [keyboardDevice remoteControlEventIdentifierForID:hkCom.id];
+ if (identifier == 0) return noErr;
+
+ BOOL pressedDown = YES;
+ if (identifier != lastEvent) {
+ lastEvent = identifier;
+ } else {
+ lastEvent = 0;
+ pressedDown = NO;
+ }
+ [keyboardDevice sendRemoteButtonEvent: identifier pressedDown: pressedDown];
+
+ return noErr;
+}
+
+@end
diff --git a/apple_remote/HIDRemoteControlDevice.m b/apple_remote/HIDRemoteControlDevice.m
new file mode 100644
index 000000000000..94215900717b
--- /dev/null
+++ b/apple_remote/HIDRemoteControlDevice.m
@@ -0,0 +1,518 @@
+/*****************************************************************************
+ * HIDRemoteControlDevice.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "HIDRemoteControlDevice.h"
+
+#import <mach/mach.h>
+#import <mach/mach_error.h>
+#import <IOKit/IOKitLib.h>
+#import <IOKit/IOCFPlugIn.h>
+#import <IOKit/hid/IOHIDKeys.h>
+#import <Carbon/Carbon.h>
+
+@interface HIDRemoteControlDevice (PrivateMethods)
+- (NSDictionary*) cookieToButtonMapping; // Creates the dictionary using the magics, depending on the remote
+- (IOHIDQueueInterface**) queue;
+- (IOHIDDeviceInterface**) hidDeviceInterface;
+- (void) handleEventWithCookieString: (NSString*) cookieString sumOfValues: (SInt32) sumOfValues;
+- (void) removeNotifcationObserver;
+- (void) remoteControlAvailable:(NSNotification *)notification;
+
+@end
+
+@interface HIDRemoteControlDevice (IOKitMethods)
++ (io_object_t) findRemoteDevice;
+- (IOHIDDeviceInterface**) createInterfaceForDevice: (io_object_t) hidDevice;
+- (BOOL) initializeCookies;
+- (BOOL) openDevice;
+@end
+
+@implementation HIDRemoteControlDevice
+
++ (const char*) remoteControlDeviceName {
+ return "";
+}
+
++ (BOOL) isRemoteAvailable {
+ io_object_t hidDevice = [self findRemoteDevice];
+ if (hidDevice != 0) {
+ IOObjectRelease(hidDevice);
+ return YES;
+ } else {
+ return NO;
+ }
+}
+
+- (id) initWithDelegate: (id) _remoteControlDelegate {
+ if ([[self class] isRemoteAvailable] == NO) return nil;
+
+ if ( (self = [super initWithDelegate: _remoteControlDelegate]) ) {
+ openInExclusiveMode = YES;
+ queue = NULL;
+ hidDeviceInterface = NULL;
+ cookieToButtonMapping = [[NSMutableDictionary alloc] init];
+
+ [self setCookieMappingInDictionary: cookieToButtonMapping];
+
+ NSEnumerator* enumerator = [cookieToButtonMapping objectEnumerator];
+ NSNumber* identifier;
+ supportedButtonEvents = 0;
+ while( (identifier = [enumerator nextObject]) ) {
+ supportedButtonEvents |= [identifier intValue];
+ }
+
+ fixSecureEventInputBug = [[NSUserDefaults standardUserDefaults] boolForKey: @"remoteControlWrapperFixSecureEventInputBug"];
+ }
+
+ return self;
+}
+
+- (void) dealloc {
+ [self removeNotifcationObserver];
+ [self stopListening:self];
+ [cookieToButtonMapping release];
+ [super dealloc];
+}
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown {
+ [delegate sendRemoteButtonEvent: event pressedDown: pressedDown remoteControl:self];
+}
+
+- (void) setCookieMappingInDictionary: (NSMutableDictionary*) cookieToButtonMapping {
+}
+- (int) remoteIdSwitchCookie {
+ return 0;
+}
+
+- (BOOL) sendsEventForButtonIdentifier: (RemoteControlEventIdentifier) identifier {
+ return (supportedButtonEvents & identifier) == identifier;
+}
+
+- (BOOL) isListeningToRemote {
+ return (hidDeviceInterface != NULL && allCookies != NULL && queue != NULL);
+}
+
+- (void) setListeningToRemote: (BOOL) value {
+ if (value == NO) {
+ [self stopListening:self];
+ } else {
+ [self startListening:self];
+ }
+}
+
+- (BOOL) isOpenInExclusiveMode {
+ return openInExclusiveMode;
+}
+- (void) setOpenInExclusiveMode: (BOOL) value {
+ openInExclusiveMode = value;
+}
+
+- (BOOL) processesBacklog {
+ return processesBacklog;
+}
+- (void) setProcessesBacklog: (BOOL) value {
+ processesBacklog = value;
+}
+
+- (void) startListening: (id) sender {
+ if ([self isListeningToRemote]) return;
+
+ // 4th July 2007
+ //
+ // A security update in february of 2007 introduced an odd behavior.
+ // Whenever SecureEventInput is activated or deactivated the exclusive access
+ // to the remote control device is lost. This leads to very strange behavior where
+ // a press on the Menu button activates FrontRow while your app still gets the event.
+ // A great number of people have complained about this.
+ //
+ // Enabling the SecureEventInput and keeping it enabled does the trick.
+ //
+ // I'm pretty sure this is a kind of bug at Apple and I'm in contact with the responsible
+ // Apple Engineer. This solution is not a perfect one - I know.
+ // One of the side effects is that applications that listen for special global keyboard shortcuts (like Quicksilver)
+ // may get into problems as they no longer get the events.
+ // As there is no official Apple Remote API from Apple I also failed to open a technical incident on this.
+ //
+ // Note that there is a corresponding DisableSecureEventInput in the stopListening method below.
+ //
+ if ([self isOpenInExclusiveMode] && fixSecureEventInputBug) EnableSecureEventInput();
+
+ [self removeNotifcationObserver];
+
+ io_object_t hidDevice = [[self class] findRemoteDevice];
+ if (hidDevice == 0) return;
+
+ if ([self createInterfaceForDevice:hidDevice] == NULL) {
+ goto error;
+ }
+
+ if ([self initializeCookies]==NO) {
+ goto error;
+ }
+
+ if ([self openDevice]==NO) {
+ goto error;
+ }
+ // be KVO friendly
+ [self willChangeValueForKey:@"listeningToRemote"];
+ [self didChangeValueForKey:@"listeningToRemote"];
+ goto cleanup;
+
+error:
+ [self stopListening:self];
+ DisableSecureEventInput();
+
+cleanup:
+ IOObjectRelease(hidDevice);
+}
+
+- (void) stopListening: (id) sender {
+ if ([self isListeningToRemote]==NO) return;
+
+ BOOL sendNotification = NO;
+
+ if (eventSource != NULL) {
+ CFRunLoopRemoveSource(CFRunLoopGetCurrent(), eventSource, kCFRunLoopDefaultMode);
+ CFRelease(eventSource);
+ eventSource = NULL;
+ }
+ if (queue != NULL) {
+ (*queue)->stop(queue);
+
+ //dispose of queue
+ (*queue)->dispose(queue);
+
+ //release the queue we allocated
+ (*queue)->Release(queue);
+
+ queue = NULL;
+
+ sendNotification = YES;
+ }
+
+ if (allCookies != nil) {
+ [allCookies autorelease];
+ allCookies = nil;
+ }
+
+ if (hidDeviceInterface != NULL) {
+ //close the device
+ (*hidDeviceInterface)->close(hidDeviceInterface);
+
+ //release the interface
+ (*hidDeviceInterface)->Release(hidDeviceInterface);
+
+ hidDeviceInterface = NULL;
+ }
+
+ if ([self isOpenInExclusiveMode] && fixSecureEventInputBug) DisableSecureEventInput();
+
+ if ([self isOpenInExclusiveMode] && sendNotification) {
+ [[self class] sendFinishedNotifcationForAppIdentifier: nil];
+ }
+ // be KVO friendly
+ [self willChangeValueForKey:@"listeningToRemote"];
+ [self didChangeValueForKey:@"listeningToRemote"];
+}
+
+@end
+
+@implementation HIDRemoteControlDevice (PrivateMethods)
+
+- (IOHIDQueueInterface**) queue {
+ return queue;
+}
+
+- (IOHIDDeviceInterface**) hidDeviceInterface {
+ return hidDeviceInterface;
+}
+
+
+- (NSDictionary*) cookieToButtonMapping {
+ return cookieToButtonMapping;
+}
+
+- (NSString*) validCookieSubstring: (NSString*) cookieString {
+ if (cookieString == nil || [cookieString length] == 0) return nil;
+ NSEnumerator* keyEnum = [[self cookieToButtonMapping] keyEnumerator];
+ NSString* key;
+ while( (key = [keyEnum nextObject]) ) {
+ NSRange range = [cookieString rangeOfString:key];
+ if (range.location == 0) return key;
+ }
+ return nil;
+}
+
+- (void) handleEventWithCookieString: (NSString*) cookieString sumOfValues: (SInt32) sumOfValues {
+ /*
+ if (previousRemainingCookieString) {
+ cookieString = [previousRemainingCookieString stringByAppendingString: cookieString];
+ NSLog(@"New cookie string is %@", cookieString);
+ [previousRemainingCookieString release], previousRemainingCookieString=nil;
+ }*/
+ if (cookieString == nil || [cookieString length] == 0) return;
+
+ NSNumber* buttonId = [[self cookieToButtonMapping] objectForKey: cookieString];
+ if (buttonId != nil) {
+ [self sendRemoteButtonEvent: [buttonId intValue] pressedDown: (sumOfValues>0)];
+ } else {
+ // let's see if a number of events are stored in the cookie string. this does
+ // happen when the main thread is too busy to handle all incoming events in time.
+ NSString* subCookieString;
+ NSString* lastSubCookieString=nil;
+ while( (subCookieString = [self validCookieSubstring: cookieString]) ) {
+ cookieString = [cookieString substringFromIndex: [subCookieString length]];
+ lastSubCookieString = subCookieString;
+ if (processesBacklog) [self handleEventWithCookieString: subCookieString sumOfValues:sumOfValues];
+ }
+ if (processesBacklog == NO && lastSubCookieString != nil) {
+ // process the last event of the backlog and assume that the button is not pressed down any longer.
+ // The events in the backlog do not seem to be in order and therefore (in rare cases) the last event might be
+ // a button pressed down event while in reality the user has released it.
+ // NSLog(@"processing last event of backlog");
+ [self handleEventWithCookieString: lastSubCookieString sumOfValues:0];
+ }
+ if ([cookieString length] > 0) {
+ NSLog(@"Unknown button for cookiestring %@", cookieString);
+ }
+ }
+}
+
+- (void) removeNotifcationObserver {
+ [[NSDistributedNotificationCenter defaultCenter] removeObserver:self name:FINISHED_USING_REMOTE_CONTROL_NOTIFICATION object:nil];
+}
+
+- (void) remoteControlAvailable:(NSNotification *)notification {
+ [self removeNotifcationObserver];
+ [self startListening: self];
+}
+
+@end
+
+/* Callback method for the device queue
+Will be called for any event of any type (cookie) to which we subscribe
+*/
+static void QueueCallbackFunction(void* target, IOReturn result, void* refcon, void* sender) {
+ if (target < 0) {
+ NSLog(@"QueueCallbackFunction called with invalid target!");
+ return;
+ }
+ NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
+
+ HIDRemoteControlDevice* remote = (HIDRemoteControlDevice*)target;
+ IOHIDEventStruct event;
+ AbsoluteTime zeroTime = {0,0};
+ NSMutableString* cookieString = [NSMutableString string];
+ SInt32 sumOfValues = 0;
+ while (result == kIOReturnSuccess)
+ {
+ result = (*[remote queue])->getNextEvent([remote queue], &event, zeroTime, 0);
+ if ( result != kIOReturnSuccess )
+ continue;
+
+ //printf("%d %d %d\n", event.elementCookie, event.value, event.longValue);
+
+ if (((int)event.elementCookie)!=5) {
+ sumOfValues+=event.value;
+ [cookieString appendString:[NSString stringWithFormat:@"%d_", event.elementCookie]];
+ }
+ }
+ [remote handleEventWithCookieString: cookieString sumOfValues: sumOfValues];
+
+ [pool release];
+}
+
+@implementation HIDRemoteControlDevice (IOKitMethods)
+
+- (IOHIDDeviceInterface**) createInterfaceForDevice: (io_object_t) hidDevice {
+ io_name_t className;
+ IOCFPlugInInterface** plugInInterface = NULL;
+ HRESULT plugInResult = S_OK;
+ SInt32 score = 0;
+ IOReturn ioReturnValue = kIOReturnSuccess;
+
+ hidDeviceInterface = NULL;
+
+ ioReturnValue = IOObjectGetClass(hidDevice, className);
+
+ if (ioReturnValue != kIOReturnSuccess) {
+ NSLog(@"Error: Failed to get class name.");
+ return NULL;
+ }
+
+ ioReturnValue = IOCreatePlugInInterfaceForService(hidDevice,
+ kIOHIDDeviceUserClientTypeID,
+ kIOCFPlugInInterfaceID,
+ &plugInInterface,
+ &score);
+ if (ioReturnValue == kIOReturnSuccess)
+ {
+ //Call a method of the intermediate plug-in to create the device interface
+ plugInResult = (*plugInInterface)->QueryInterface(plugInInterface, CFUUIDGetUUIDBytes(kIOHIDDeviceInterfaceID), (LPVOID) &hidDeviceInterface);
+
+ if (plugInResult != S_OK) {
+ NSLog(@"Error: Couldn't create HID class device interface");
+ }
+ // Release
+ if (plugInInterface) (*plugInInterface)->Release(plugInInterface);
+ }
+ return hidDeviceInterface;
+}
+
+- (BOOL) initializeCookies {
+ IOHIDDeviceInterface122** handle = (IOHIDDeviceInterface122**)hidDeviceInterface;
+ IOHIDElementCookie cookie;
+ long usage;
+ long usagePage;
+ id object;
+ NSArray* elements = nil;
+ NSDictionary* element;
+ IOReturn success;
+
+ if (!handle || !(*handle)) return NO;
+
+ // Copy all elements, since we're grabbing most of the elements
+ // for this device anyway, and thus, it's faster to iterate them
+ // ourselves. When grabbing only one or two elements, a matching
+ // dictionary should be passed in here instead of NULL.
+ success = (*handle)->copyMatchingElements(handle, NULL, (CFArrayRef*)&elements);
+
+ if (success == kIOReturnSuccess) {
+
+ [elements autorelease];
+ /*
+ cookies = calloc(NUMBER_OF_APPLE_REMOTE_ACTIONS, sizeof(IOHIDElementCookie));
+ memset(cookies, 0, sizeof(IOHIDElementCookie) * NUMBER_OF_APPLE_REMOTE_ACTIONS);
+ */
+ allCookies = [[NSMutableArray alloc] init];
+
+ NSEnumerator *elementsEnumerator = [elements objectEnumerator];
+
+ while ( (element = [elementsEnumerator nextObject]) ) {
+ //Get cookie
+ object = [element valueForKey: (NSString*)CFSTR(kIOHIDElementCookieKey) ];
+ if (object == nil || ![object isKindOfClass:[NSNumber class]]) continue;
+ if (object == 0 || CFGetTypeID(object) != CFNumberGetTypeID()) continue;
+ cookie = (IOHIDElementCookie) [object longValue];
+
+ //Get usage
+ object = [element valueForKey: (NSString*)CFSTR(kIOHIDElementUsageKey) ];
+ if (object == nil || ![object isKindOfClass:[NSNumber class]]) continue;
+ usage = [object longValue];
+
+ //Get usage page
+ object = [element valueForKey: (NSString*)CFSTR(kIOHIDElementUsagePageKey) ];
+ if (object == nil || ![object isKindOfClass:[NSNumber class]]) continue;
+ usagePage = [object longValue];
+
+ [allCookies addObject: [NSNumber numberWithInt:(int)cookie]];
+ }
+ } else {
+ return NO;
+ }
+
+ return YES;
+}
+
+- (BOOL) openDevice {
+ HRESULT result;
+
+ IOHIDOptionsType openMode = kIOHIDOptionsTypeNone;
+ if ([self isOpenInExclusiveMode]) openMode = kIOHIDOptionsTypeSeizeDevice;
+ IOReturn ioReturnValue = (*hidDeviceInterface)->open(hidDeviceInterface, openMode);
+
+ if (ioReturnValue == KERN_SUCCESS) {
+ queue = (*hidDeviceInterface)->allocQueue(hidDeviceInterface);
+ if (queue) {
+ result = (*queue)->create(queue, 0, 12); //depth: maximum number of elements in queue before oldest elements in queue begin to be lost.
+
+ IOHIDElementCookie cookie;
+ NSEnumerator *allCookiesEnumerator = [allCookies objectEnumerator];
+
+ while ( (cookie = (IOHIDElementCookie)[[allCookiesEnumerator nextObject] intValue]) ) {
+ (*queue)->addElement(queue, cookie, 0);
+ }
+
+ // add callback for async events
+ ioReturnValue = (*queue)->createAsyncEventSource(queue, &eventSource);
+ if (ioReturnValue == KERN_SUCCESS) {
+ ioReturnValue = (*queue)->setEventCallout(queue,QueueCallbackFunction, self, NULL);
+ if (ioReturnValue == KERN_SUCCESS) {
+ CFRunLoopAddSource(CFRunLoopGetCurrent(), eventSource, kCFRunLoopDefaultMode);
+
+ //start data delivery to queue
+ (*queue)->start(queue);
+ return YES;
+ } else {
+ NSLog(@"Error when setting event callback");
+ }
+ } else {
+ NSLog(@"Error when creating async event source");
+ }
+ } else {
+ NSLog(@"Error when opening device");
+ }
+ } else if (ioReturnValue == kIOReturnExclusiveAccess) {
+ // the device is used exclusive by another application
+
+ // 1. we register for the FINISHED_USING_REMOTE_CONTROL_NOTIFICATION notification
+ [[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(remoteControlAvailable:) name:FINISHED_USING_REMOTE_CONTROL_NOTIFICATION object:nil];
+
+ // 2. send a distributed notification that we wanted to use the remote control
+ [[self class] sendRequestForRemoteControlNotification];
+ }
+ return NO;
+}
+
++ (io_object_t) findRemoteDevice {
+ CFMutableDictionaryRef hidMatchDictionary = NULL;
+ IOReturn ioReturnValue = kIOReturnSuccess;
+ io_iterator_t hidObjectIterator = 0;
+ io_object_t hidDevice = 0;
+
+ // Set up a matching dictionary to search the I/O Registry by class
+ // name for all HID class devices
+ hidMatchDictionary = IOServiceMatching([self remoteControlDeviceName]);
+
+ // Now search I/O Registry for matching devices.
+ ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault, hidMatchDictionary, &hidObjectIterator);
+
+ if ((ioReturnValue == kIOReturnSuccess) && (hidObjectIterator != 0)) {
+ hidDevice = IOIteratorNext(hidObjectIterator);
+ }
+
+ // release the iterator
+ IOObjectRelease(hidObjectIterator);
+
+ return hidDevice;
+}
+
+@end
+
diff --git a/apple_remote/KeyspanFrontRowControl.m b/apple_remote/KeyspanFrontRowControl.m
new file mode 100644
index 000000000000..dd86475b12b1
--- /dev/null
+++ b/apple_remote/KeyspanFrontRowControl.m
@@ -0,0 +1,97 @@
+/*****************************************************************************
+ * KeyspanFrontRowControl.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "KeyspanFrontRowControl.h"
+#import <mach/mach.h>
+#import <mach/mach_error.h>
+#import <IOKit/IOKitLib.h>
+#import <IOKit/IOCFPlugIn.h>
+#import <IOKit/hid/IOHIDKeys.h>
+
+@implementation KeyspanFrontRowControl
+
+- (void) setCookieMappingInDictionary: (NSMutableDictionary*) _cookieToButtonMapping {
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlus] forKey:@"11_18_99_10_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMinus] forKey:@"11_18_98_10_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu] forKey:@"11_18_58_10_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay] forKey:@"11_18_61_10_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight] forKey:@"11_18_96_10_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft] forKey:@"11_18_97_10_"];
+ /* hold events are not being send by this device
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonRight_Hold] forKey:@"14_6_4_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonLeft_Hold] forKey:@"14_6_3_2_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonMenu_Hold] forKey:@"14_6_14_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteButtonPlay_Sleep] forKey:@"18_14_6_18_14_6_"];
+ [_cookieToButtonMapping setObject:[NSNumber numberWithInt:kRemoteControl_Switched] forKey:@"19_"];
+ */
+}
+
++ (io_object_t) findRemoteDevice {
+ CFMutableDictionaryRef hidMatchDictionary = NULL;
+ IOReturn ioReturnValue = kIOReturnSuccess;
+ io_iterator_t hidObjectIterator = 0;
+ io_object_t hidDevice = 0;
+ SInt32 idVendor = 1741;
+ SInt32 idProduct = 0x420;
+
+ // Set up a matching dictionary to search the I/O Registry by class
+ // name for all HID class devices
+ hidMatchDictionary = IOServiceMatching(kIOHIDDeviceKey);
+
+ CFNumberRef numberRefVendor = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &idVendor);
+ if ( numberRefVendor )
+ {
+ CFDictionaryAddValue(hidMatchDictionary, CFSTR(kIOHIDVendorIDKey), numberRefVendor);
+ CFRelease(numberRefVendor);
+ }
+
+ CFNumberRef numberRefProduct = CFNumberCreate(kCFAllocatorDefault, kCFNumberSInt32Type, &idProduct);
+ if ( numberRefProduct )
+ {
+ CFDictionaryAddValue(hidMatchDictionary, CFSTR(kIOHIDProductIDKey), numberRefProduct);
+ CFRelease(numberRefProduct);
+ }
+
+ // Now search I/O Registry for matching devices.
+ ioReturnValue = IOServiceGetMatchingServices(kIOMasterPortDefault, hidMatchDictionary, &hidObjectIterator);
+
+ if ((ioReturnValue == kIOReturnSuccess) && (hidObjectIterator != 0)) {
+ hidDevice = IOIteratorNext(hidObjectIterator);
+ }
+
+ // release the iterator
+ if ( hidObjectIterator )
+ IOObjectRelease(hidObjectIterator);
+
+ return hidDevice;
+
+}
+
+@end
diff --git a/apple_remote/MultiClickRemoteBehavior.m b/apple_remote/MultiClickRemoteBehavior.m
new file mode 100644
index 000000000000..03b24978d93b
--- /dev/null
+++ b/apple_remote/MultiClickRemoteBehavior.m
@@ -0,0 +1,213 @@
+/*****************************************************************************
+ * MultiClickRemoteBehavior.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "MultiClickRemoteBehavior.h"
+
+const NSTimeInterval DEFAULT_MAXIMUM_CLICK_TIME_DIFFERENCE = 0.35;
+const NSTimeInterval HOLD_RECOGNITION_TIME_INTERVAL = 0.4;
+
+@implementation MultiClickRemoteBehavior
+
+- (id) init {
+ if ( (self = [super init]) ) {
+ maxClickTimeDifference = DEFAULT_MAXIMUM_CLICK_TIME_DIFFERENCE;
+ }
+ return self;
+}
+
+// Delegates are not retained!
+// http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/CommunicatingWithObjects/chapter_6_section_4.html
+// Delegating objects do not (and should not) retain their delegates.
+// However, clients of delegating objects (applications, usually) are responsible for ensuring that their delegates are around
+// to receive delegation messages. To do this, they may have to retain the delegate.
+- (void) setDelegate: (id) _delegate {
+ if ( _delegate && ( [_delegate respondsToSelector:@selector(remoteButton:pressedDown:clickCount:)] == NO )) return; // return what ?
+
+ delegate = _delegate;
+}
+- (id) delegate {
+ return delegate;
+}
+
+- (BOOL) simulateHoldEvent {
+ return simulateHoldEvents;
+}
+- (void) setSimulateHoldEvent: (BOOL) value {
+ simulateHoldEvents = value;
+}
+
+- (BOOL) simulatesHoldForButtonIdentifier: (RemoteControlEventIdentifier) identifier remoteControl: (RemoteControl*) remoteControl {
+ // we do that check only for the normal button identifiers as we would check for hold support for hold events instead
+ if (identifier > (1 << EVENT_TO_HOLD_EVENT_OFFSET)) return NO;
+
+ return [self simulateHoldEvent] && [remoteControl sendsEventForButtonIdentifier: (identifier << EVENT_TO_HOLD_EVENT_OFFSET)]==NO;
+}
+
+- (BOOL) clickCountingEnabled {
+ return clickCountEnabledButtons != 0;
+}
+- (void) setClickCountingEnabled: (BOOL) value {
+ if (value) {
+ [self setClickCountEnabledButtons: kRemoteButtonPlus | kRemoteButtonMinus | kRemoteButtonPlay | kRemoteButtonLeft | kRemoteButtonRight | kRemoteButtonMenu];
+ } else {
+ [self setClickCountEnabledButtons: 0];
+ }
+}
+
+- (unsigned int) clickCountEnabledButtons {
+ return clickCountEnabledButtons;
+}
+- (void) setClickCountEnabledButtons: (unsigned int)value {
+ clickCountEnabledButtons = value;
+}
+
+- (NSTimeInterval) maximumClickCountTimeDifference {
+ return maxClickTimeDifference;
+}
+- (void) setMaximumClickCountTimeDifference: (NSTimeInterval) timeDiff {
+ maxClickTimeDifference = timeDiff;
+}
+
+- (void) sendSimulatedHoldEvent: (id) time {
+ BOOL startSimulateHold = NO;
+ RemoteControlEventIdentifier event = lastHoldEvent;
+ @synchronized(self) {
+ startSimulateHold = (lastHoldEvent>0 && lastHoldEventTime == [time doubleValue]);
+ }
+ if (startSimulateHold) {
+ lastEventSimulatedHold = YES;
+ event = (event << EVENT_TO_HOLD_EVENT_OFFSET);
+ [delegate remoteButton:event pressedDown: YES clickCount: 1];
+ }
+}
+
+- (void) executeClickCountEvent: (NSArray*) values {
+ RemoteControlEventIdentifier event = [[values objectAtIndex: 0] unsignedIntValue];
+ NSTimeInterval eventTimePoint = [[values objectAtIndex: 1] doubleValue];
+
+ BOOL finishedClicking = NO;
+ int finalClickCount = eventClickCount;
+
+ @synchronized(self) {
+ finishedClicking = (event != lastClickCountEvent || eventTimePoint == lastClickCountEventTime);
+ if (finishedClicking) {
+ eventClickCount = 0;
+ lastClickCountEvent = 0;
+ lastClickCountEventTime = 0;
+ }
+ }
+
+ if (finishedClicking) {
+ [delegate remoteButton:event pressedDown: YES clickCount:finalClickCount];
+ // trigger a button release event, too
+ [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow:0.1]];
+ [delegate remoteButton:event pressedDown: NO clickCount:finalClickCount];
+ }
+}
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown remoteControl: (RemoteControl*) remoteControl {
+ if (!delegate) return;
+
+ BOOL clickCountingForEvent = ([self clickCountEnabledButtons] & event) == event;
+
+ if ([self simulatesHoldForButtonIdentifier: event remoteControl: remoteControl] && lastClickCountEvent==0) {
+ if (pressedDown) {
+ // wait to see if it is a hold
+ lastHoldEvent = event;
+ lastHoldEventTime = [NSDate timeIntervalSinceReferenceDate];
+ [self performSelector:@selector(sendSimulatedHoldEvent:)
+ withObject:[NSNumber numberWithDouble:lastHoldEventTime]
+ afterDelay:HOLD_RECOGNITION_TIME_INTERVAL];
+ return;
+ } else {
+ if (lastEventSimulatedHold) {
+ // it was a hold
+ // send an event for "hold release"
+ event = (event << EVENT_TO_HOLD_EVENT_OFFSET);
+ lastHoldEvent = 0;
+ lastEventSimulatedHold = NO;
+
+ [delegate remoteButton:event pressedDown: pressedDown clickCount:1];
+ return;
+ } else {
+ RemoteControlEventIdentifier previousEvent = lastHoldEvent;
+ @synchronized(self) {
+ lastHoldEvent = 0;
+ }
+
+ // in case click counting is enabled we have to setup the state for that, too
+ if (clickCountingForEvent) {
+ lastClickCountEvent = previousEvent;
+ lastClickCountEventTime = lastHoldEventTime;
+ NSNumber* eventNumber;
+ NSNumber* timeNumber;
+ eventClickCount = 1;
+ timeNumber = [NSNumber numberWithDouble:lastClickCountEventTime];
+ eventNumber= [NSNumber numberWithUnsignedInt:previousEvent];
+ NSTimeInterval diffTime = maxClickTimeDifference-([NSDate timeIntervalSinceReferenceDate]-lastHoldEventTime);
+ [self performSelector: @selector(executeClickCountEvent:)
+ withObject: [NSArray arrayWithObjects:eventNumber, timeNumber, nil]
+ afterDelay: diffTime];
+ // we do not return here because we are still in the press-release event
+ // that will be consumed below
+ } else {
+ // trigger the pressed down event that we consumed first
+ [delegate remoteButton:event pressedDown: YES clickCount:1];
+ }
+ }
+ }
+ }
+
+ if (clickCountingForEvent) {
+ if (pressedDown == NO) return;
+
+ NSNumber* eventNumber;
+ NSNumber* timeNumber;
+ @synchronized(self) {
+ lastClickCountEventTime = [NSDate timeIntervalSinceReferenceDate];
+ if (lastClickCountEvent == event) {
+ eventClickCount = eventClickCount + 1;
+ } else {
+ eventClickCount = 1;
+ }
+ lastClickCountEvent = event;
+ timeNumber = [NSNumber numberWithDouble:lastClickCountEventTime];
+ eventNumber= [NSNumber numberWithUnsignedInt:event];
+ }
+ [self performSelector: @selector(executeClickCountEvent:)
+ withObject: [NSArray arrayWithObjects:eventNumber, timeNumber, nil]
+ afterDelay: maxClickTimeDifference];
+ } else {
+ [delegate remoteButton:event pressedDown: pressedDown clickCount:1];
+ }
+
+}
+
+@end
diff --git a/apple_remote/RemoteControl.m b/apple_remote/RemoteControl.m
new file mode 100644
index 000000000000..d0812d384b3e
--- /dev/null
+++ b/apple_remote/RemoteControl.m
@@ -0,0 +1,146 @@
+/*****************************************************************************
+ * RemoteControl.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "RemoteControl.h"
+
+// notifaction names that are being used to signal that an application wants to
+// have access to the remote control device or if the application has finished
+// using the remote control device
+NSString* REQUEST_FOR_REMOTE_CONTROL_NOTIFCATION = @"mac.remotecontrols.RequestForRemoteControl";
+NSString* FINISHED_USING_REMOTE_CONTROL_NOTIFICATION = @"mac.remotecontrols.FinishedUsingRemoteControl";
+
+// keys used in user objects for distributed notifications
+NSString* kRemoteControlDeviceName = @"RemoteControlDeviceName";
+NSString* kApplicationIdentifier = @"CFBundleIdentifier";
+// bundle identifier of the application that should get access to the remote control
+// this key is being used in the FINISHED notification only
+NSString* kTargetApplicationIdentifier = @"TargetBundleIdentifier";
+
+
+@implementation RemoteControl
+
+// returns nil if the remote control device is not available
+- (id) initWithDelegate: (id) _remoteControlDelegate {
+ if ( (self = [super init]) ) {
+ delegate = [_remoteControlDelegate retain];
+#ifdef DEBUG
+ NSLog(@"RemoteControl initWithDelegate ok");
+#endif
+ }
+ return self;
+}
+
+- (void) dealloc {
+ [delegate release];
+ [super dealloc];
+}
+
+- (void) setListeningToRemote: (BOOL) value {
+#ifdef DEBUG
+ NSLog(@"setListeningToRemote ok");
+#endif
+}
+- (BOOL) isListeningToRemote {
+ return NO;
+}
+
+- (void) startListening: (id) sender {
+#ifdef DEBUG
+ NSLog(@"startListening ok");
+#endif
+}
+- (void) stopListening: (id) sender {
+#ifdef DEBUG
+ NSLog(@"stopListening ok");
+#endif
+}
+
+- (BOOL) isOpenInExclusiveMode {
+ return YES;
+}
+- (void) setOpenInExclusiveMode: (BOOL) value {
+}
+
+- (BOOL) sendsEventForButtonIdentifier: (RemoteControlEventIdentifier) identifier {
+#ifdef DEBUG
+ NSLog(@"sending event for button identifier \n");
+#endif
+ return YES;
+}
+
++ (void) sendDistributedNotification: (NSString*) notificationName targetBundleIdentifier: (NSString*) targetIdentifier
+{
+ if ( (self = [super init]) ) {
+ NSDictionary* userInfo = [NSDictionary dictionaryWithObjectsAndKeys: [NSString stringWithCString:[self remoteControlDeviceName] encoding:NSASCIIStringEncoding],
+ kRemoteControlDeviceName /* key = RemoteControlDeviceName -> OK */,
+ [[NSBundle mainBundle] bundleIdentifier] /* value = org.openoffice.script -> OK */,
+ kApplicationIdentifier/* key = CFBundleIdentifier -> OK */,
+ targetIdentifier /*value = AppleIRController -> OK */,
+ kTargetApplicationIdentifier /*targetBundleIdentifier -> does not appear, since the peer is nil*/,
+ nil];
+#ifdef DEBUG
+ // Debug purpose: returns all the existing dictionary keys.
+ NSString *s;
+ NSEnumerator *e = [userInfo keyEnumerator];
+ while ( (s = [e nextObject]) ) {
+ NSLog(@"key = %@ ",s);
+ }
+ NSEnumerator *f = [userInfo objectEnumerator ];
+ while ( (s = [f nextObject]) ) {
+ NSLog(@"value = %@ ",s);
+ }
+ NSLog(@"sendDistributedNotification ...");
+#endif
+
+ [[NSDistributedNotificationCenter defaultCenter] postNotificationName:notificationName
+ object:nil
+ userInfo:userInfo
+ deliverImmediately:YES];
+ }
+}
+
++ (void) sendFinishedNotifcationForAppIdentifier: (NSString*) identifier {
+ [self sendDistributedNotification:FINISHED_USING_REMOTE_CONTROL_NOTIFICATION targetBundleIdentifier:identifier];
+#ifdef DEBUG
+ NSLog(@"sendFinishedNotifcationForAppIdentifier ...");
+#endif
+}
++ (void) sendRequestForRemoteControlNotification {
+ [self sendDistributedNotification:REQUEST_FOR_REMOTE_CONTROL_NOTIFCATION targetBundleIdentifier:nil];
+#ifdef DEBUG
+ NSLog(@"sendRequestForRemoteControlNotification ...");
+#endif
+}
+
++ (const char*) remoteControlDeviceName {
+ return NULL;
+}
+
+@end
diff --git a/apple_remote/RemoteControlContainer.m b/apple_remote/RemoteControlContainer.m
new file mode 100644
index 000000000000..40a222f2d829
--- /dev/null
+++ b/apple_remote/RemoteControlContainer.m
@@ -0,0 +1,140 @@
+/*****************************************************************************
+ * RemoteControlContainer.m
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "RemoteControlContainer.h"
+
+@implementation RemoteControlContainer
+
+- (id) initWithDelegate: (id) _remoteControlDelegate {
+ if ( (self = [super initWithDelegate:_remoteControlDelegate]) ) {
+ remoteControls = [[NSMutableArray alloc] init];
+#ifdef DEBUG
+ NSLog(@"RemoteControlContainer initWithDelegate ok");
+ }
+ else {
+ NSLog(@"RemoteControlContainer initWithDelegate failed");
+#endif
+ }
+
+ return self;
+}
+
+- (void) dealloc {
+ [self stopListening: self];
+ [remoteControls release];
+ [super dealloc];
+}
+
+- (BOOL) instantiateAndAddRemoteControlDeviceWithClass: (Class) clazz {
+ BOOL toReturn = NO;
+ RemoteControl* remoteControl = [[clazz alloc] initWithDelegate: delegate];
+ if (remoteControl) {
+ [remoteControls addObject: remoteControl];
+ [remoteControl addObserver: self forKeyPath:@"listeningToRemote" options:NSKeyValueObservingOptionNew context:nil];
+ toReturn = YES;
+ }
+#ifdef DEBUG
+ else {
+ NSLog(@"RemoteControlContainer instantiateAndAddRemoteControlDeviceWithClass failed");
+ toReturn = NO;
+ }
+#endif
+ return toReturn;
+}
+
+- (unsigned int) count {
+ return [remoteControls count];
+}
+
+- (void) reset {
+ [self willChangeValueForKey:@"listeningToRemote"];
+ [self didChangeValueForKey:@"listeningToRemote"];
+#ifdef DEBUG
+ // debug purpose
+ NSLog(@"reset... (after listening to remote)");
+#endif
+}
+
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
+ [self reset];
+}
+
+- (void) setListeningToRemote: (BOOL) value {
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ [[remoteControls objectAtIndex: i] setListeningToRemote: value];
+ }
+ if (value && value != [self isListeningToRemote]) [self performSelector:@selector(reset) withObject:nil afterDelay:0.01];
+}
+- (BOOL) isListeningToRemote {
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ if ([[remoteControls objectAtIndex: i] isListeningToRemote]) {
+ return YES;
+ }
+ }
+ return NO;
+}
+
+- (void) startListening: (id) sender {
+#ifdef DEBUG
+ NSLog(@"startListening to events... ");
+#endif
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ [[remoteControls objectAtIndex: i] startListening: sender];
+ }
+}
+- (void) stopListening: (id) sender {
+#ifdef DEBUG
+ NSLog(@"stopListening to events... ");
+#endif
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ [[remoteControls objectAtIndex: i] stopListening: sender];
+ }
+}
+
+- (BOOL) isOpenInExclusiveMode {
+ BOOL mode = YES;
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ mode = mode && ([[remoteControls objectAtIndex: i] isOpenInExclusiveMode]);
+ }
+ return mode;
+}
+- (void) setOpenInExclusiveMode: (BOOL) value {
+ int i;
+ for(i=0; i < [remoteControls count]; i++) {
+ [[remoteControls objectAtIndex: i] setOpenInExclusiveMode:value];
+ }
+}
+
+@end
diff --git a/apple_remote/RemoteMainController.m b/apple_remote/RemoteMainController.m
new file mode 100644
index 000000000000..5b3b893adafc
--- /dev/null
+++ b/apple_remote/RemoteMainController.m
@@ -0,0 +1,177 @@
+/*****************************************************************************
+ * RemoteMainController.m
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import "RemoteMainController.h"
+#import "AppleRemote.h"
+#import "KeyspanFrontRowControl.h"
+#import "GlobalKeyboardDevice.h"
+#import "RemoteControlContainer.h"
+#import "MultiClickRemoteBehavior.h"
+
+// -------------------------------------------------------------------------------------------
+// Sample Code 3: Multi Click Behavior and Hold Event Simulation
+// -------------------------------------------------------------------------------------------
+
+@implementation MainController
+
+- (id) init {
+ self = [super init]; // because we redefined our own init instead of use the fu..nny awakeFromNib
+ if (self != nil) {
+
+ // 1. instantiate the desired behavior for the remote control device
+ remoteControlBehavior = [[MultiClickRemoteBehavior alloc] init];
+
+ // 2. configure the behavior
+ [remoteControlBehavior setDelegate: self];
+
+ // 3. a Remote Control Container manages a number of devices and conforms to the RemoteControl interface
+ // Therefore you can enable or disable all the devices of the container with a single "startListening:" call.
+ RemoteControlContainer* container = [[RemoteControlContainer alloc] initWithDelegate: remoteControlBehavior];
+
+ if ( [container instantiateAndAddRemoteControlDeviceWithClass: [AppleRemote class]] != 0 ) {
+#ifdef DEBUG
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [AppleRemote class]] successfull");
+ }
+ else {
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [AppleRemote class]] failed");
+#endif
+ }
+
+ if ( [container instantiateAndAddRemoteControlDeviceWithClass: [KeyspanFrontRowControl class]] != 0 ) {
+#ifdef DEBUG
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [KeyspanFrontRowControl class]] successfull");
+ }
+ else {
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [KeyspanFrontRowControl class]] failed");
+#endif
+ }
+
+ if ( [container instantiateAndAddRemoteControlDeviceWithClass: [GlobalKeyboardDevice class]] != 0 ) {
+#ifdef DEBUG
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [GlobalKeyboardDevice class]] successfull");
+ }
+ else {
+ NSLog(@"[container instantiateAndAddRemoteControlDeviceWithClass: [GlobalKeyboardDevice class]] failed");
+#endif
+ }
+ // to give the binding mechanism a chance to see the change of the attribute
+ [self setValue: container forKey: @"remoteControl"];
+#ifdef DEBUG
+ NSLog(@"MainController init done");
+#endif
+ }
+ else
+ NSLog(@"MainController init failed");
+ return self;
+}
+
+- (void) postTheEvent: (short int)buttonIdentifier modifierFlags:(int)modifierFlags
+{
+ [NSApp postEvent:
+ [NSEvent otherEventWithType:NSApplicationDefined
+ location:NSZeroPoint
+ modifierFlags:modifierFlags
+ timestamp: 0
+ windowNumber:[[NSApp keyWindow] windowNumber]
+ context:nil
+ subtype:AppleRemoteControlEvent
+ data1: buttonIdentifier
+ data2: 0]
+ atStart: NO];
+}
+
+
+- (void) remoteButton: (RemoteControlEventIdentifier)buttonIdentifier pressedDown: (BOOL) pressedDown clickCount: (unsigned int)clickCount
+{
+ NSString* pressed = @"";
+#ifdef DEBUG
+ NSString* buttonName = nil;
+#endif
+ if (pressedDown)
+ {
+ pressed = @"(pressed)";
+
+#ifdef DEBUG
+ switch(buttonIdentifier)
+ {
+ case kRemoteButtonPlus: buttonName = @"Volume up"; break; // MEDIA_COMMAND_VOLUME_UP ( see vcl/inc/vcl/cmdevt.hxx )
+ case kRemoteButtonMinus: buttonName = @"Volume down"; break; // MEDIA_COMMAND_VOLUME_DOWN
+ case kRemoteButtonMenu: buttonName = @"Menu"; break; // MEDIA_COMMAND_MENU
+ case kRemoteButtonPlay: buttonName = @"Play"; break; // MEDIA_COMMAND_PLAY
+ case kRemoteButtonRight: buttonName = @"Next slide"; break; // MEDIA_COMMAND_NEXTTRACK
+ case kRemoteButtonLeft: buttonName = @"Left"; break; // MEDIA_COMMAND_PREVIOUSTRACK
+ case kRemoteButtonRight_Hold: buttonName = @"Last slide"; break; // MEDIA_COMMAND_NEXTTRACK_HOLD
+ case kRemoteButtonLeft_Hold: buttonName = @"First slide"; break; // MEDIA_COMMAND_PREVIOUSTRACK_HOLD
+ case kRemoteButtonPlus_Hold: buttonName = @"Volume up holding"; break;
+ case kRemoteButtonMinus_Hold: buttonName = @"Volume down holding"; break;
+ case kRemoteButtonPlay_Hold: buttonName = @"Play (sleep mode)"; break; // MEDIA_COMMAND_PLAY_HOLD
+ case kRemoteButtonMenu_Hold: buttonName = @"Menu (long)"; break; // MEDIA_COMMAND_MENU_HOLD
+ case kRemoteControl_Switched: buttonName = @"Remote Control Switched";break;
+
+ default: NSLog(@"Unmapped event for button %d", buttonIdentifier); break;
+ }
+#endif
+ [ self postTheEvent:buttonIdentifier modifierFlags: 0 ];
+ }
+ else // not pressed
+ {
+ pressed = @"(released)";
+ }
+
+#ifdef DEBUG
+ //NSLog(@"Button %@ pressed %@", buttonName, pressed);
+ NSString* clickCountString = @"";
+ if (clickCount > 1) clickCountString = [NSString stringWithFormat: @"%d clicks", clickCount];
+ NSString* feedbackString = [NSString stringWithFormat:@"(Value:%4d) %@ %@ %@",buttonIdentifier, buttonName, pressed, clickCountString];
+
+ // print out events
+ NSLog(@"%@", feedbackString);
+
+ if (pressedDown == NO) printf("\n");
+ // simulate slow processing of events
+ // [NSThread sleepUntilDate: [NSDate dateWithTimeIntervalSinceNow: 0.5]];
+#endif
+}
+
+- (void) dealloc {
+ [remoteControl autorelease];
+ [remoteControlBehavior autorelease];
+ [super dealloc];
+}
+
+// for bindings access
+- (RemoteControl*) remoteControl {
+ return remoteControl;
+}
+
+- (MultiClickRemoteBehavior*) remoteBehavior {
+ return remoteControlBehavior;
+}
+
+@end \ No newline at end of file
diff --git a/apple_remote/inc/AppleRemote.h b/apple_remote/inc/AppleRemote.h
new file mode 100644
index 000000000000..aeb32f9f3892
--- /dev/null
+++ b/apple_remote/inc/AppleRemote.h
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * RemoteControlWrapper.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import "HIDRemoteControlDevice.h"
+
+/* Interacts with the Apple Remote Control HID device
+ The class is not thread safe
+*/
+@interface AppleRemote : HIDRemoteControlDevice {
+}
+
+@end
diff --git a/apple_remote/inc/GlobalKeyboardDevice.h b/apple_remote/inc/GlobalKeyboardDevice.h
new file mode 100644
index 000000000000..8e2aede3f34c
--- /dev/null
+++ b/apple_remote/inc/GlobalKeyboardDevice.h
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * GlobalKeyboardDevice.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import <Carbon/Carbon.h>
+
+#import "RemoteControl.h"
+
+
+/*
+ This class registers for a number of global keyboard shortcuts to simulate a remote control
+ */
+
+@interface GlobalKeyboardDevice : RemoteControl {
+
+ NSMutableDictionary* hotKeyRemoteEventMapping;
+ EventHandlerRef eventHandlerRef;
+
+}
+
+- (void) mapRemoteButton: (RemoteControlEventIdentifier) remoteButtonIdentifier defaultKeycode: (unsigned int) defaultKeycode defaultModifiers: (unsigned int) defaultModifiers;
+
+- (BOOL)registerHotKeyCode: (unsigned int) keycode modifiers: (unsigned int) modifiers remoteEventIdentifier: (RemoteControlEventIdentifier) identifier;
+
+
+
+@end
diff --git a/apple_remote/inc/HIDRemoteControlDevice.h b/apple_remote/inc/HIDRemoteControlDevice.h
new file mode 100644
index 000000000000..622441fce83c
--- /dev/null
+++ b/apple_remote/inc/HIDRemoteControlDevice.h
@@ -0,0 +1,67 @@
+/*****************************************************************************
+ * HIDRemoteControlDevice.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same license
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import <IOKit/hid/IOHIDLib.h>
+
+#import "RemoteControl.h"
+
+/*
+ Base class for HID based remote control devices
+ */
+@interface HIDRemoteControlDevice : RemoteControl {
+ IOHIDDeviceInterface** hidDeviceInterface; // see IOKit/hid/IOHIDLib.h
+ IOHIDQueueInterface** queue; // IOKit/hid/IOHIDLib.h
+ NSMutableArray* allCookies;
+ NSMutableDictionary* cookieToButtonMapping;
+ CFRunLoopSourceRef eventSource;
+
+ BOOL fixSecureEventInputBug;
+ BOOL openInExclusiveMode;
+ BOOL processesBacklog;
+
+ int supportedButtonEvents;
+}
+
+// When your application needs to much time on the main thread when processing an event other events
+// may already be received which are put on a backlog. As soon as your main thread
+// has some spare time this backlog is processed and may flood your delegate with calls.
+// Backlog processing is turned off by default.
+- (BOOL) processesBacklog;
+- (void) setProcessesBacklog: (BOOL) value;
+
+// methods that should be overwritten by subclasses
+- (void) setCookieMappingInDictionary: (NSMutableDictionary*) cookieToButtonMapping;
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown;
+
++ (BOOL) isRemoteAvailable;
+
+@end
diff --git a/apple_remote/inc/KeyspanFrontRowControl.h b/apple_remote/inc/KeyspanFrontRowControl.h
new file mode 100644
index 000000000000..a67ce4a96111
--- /dev/null
+++ b/apple_remote/inc/KeyspanFrontRowControl.h
@@ -0,0 +1,42 @@
+/*****************************************************************************
+ * KeyspanFrontRowControl.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+
+#import <Cocoa/Cocoa.h>
+#import "HIDRemoteControlDevice.h"
+
+/* Interacts with the Keyspan FrontRow Remote Control HID device
+ The class is not thread safe
+*/
+@interface KeyspanFrontRowControl : HIDRemoteControlDevice {
+
+}
+
+@end
diff --git a/apple_remote/inc/MultiClickRemoteBehavior.h b/apple_remote/inc/MultiClickRemoteBehavior.h
new file mode 100644
index 000000000000..9cffa35fae2f
--- /dev/null
+++ b/apple_remote/inc/MultiClickRemoteBehavior.h
@@ -0,0 +1,93 @@
+/*****************************************************************************
+ * MultiClickRemoteBehavior.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+
+#import <Cocoa/Cocoa.h>
+#import "RemoteControl.h"
+
+/**
+ A behavior that adds multiclick and hold events on top of a device.
+ Events are generated and send to a delegate
+ */
+@interface MultiClickRemoteBehavior : NSObject {
+ id delegate;
+
+ // state for simulating plus/minus hold
+ BOOL simulateHoldEvents;
+ BOOL lastEventSimulatedHold;
+ RemoteControlEventIdentifier lastHoldEvent;
+ NSTimeInterval lastHoldEventTime;
+
+ // state for multi click
+ unsigned int clickCountEnabledButtons;
+ NSTimeInterval maxClickTimeDifference;
+ NSTimeInterval lastClickCountEventTime;
+ RemoteControlEventIdentifier lastClickCountEvent;
+ unsigned int eventClickCount;
+}
+
+- (id) init;
+
+// Delegates are not retained
+- (void) setDelegate: (id) delegate;
+- (id) delegate;
+
+// Simulating hold events does deactivate sending of individual requests for pressed down/released.
+// Instead special hold events are being triggered when the user is pressing and holding a button for a small period.
+// Simulation is activated only for those buttons and remote control that do not have a seperate event already
+- (BOOL) simulateHoldEvent;
+- (void) setSimulateHoldEvent: (BOOL) value;
+
+// click counting makes it possible to recognize if the user has pressed a button repeatedly
+// click counting does delay each event as it has to wait if there is another event (second click)
+// therefore there is a slight time difference (maximumClickCountTimeDifference) between a single click
+// of the user and the call of your delegate method
+// click counting can be enabled individually for specific buttons. Use the property clickCountEnableButtons to
+// set the buttons for which click counting shall be enabled
+- (BOOL) clickCountingEnabled;
+- (void) setClickCountingEnabled: (BOOL) value;
+
+- (unsigned int) clickCountEnabledButtons;
+- (void) setClickCountEnabledButtons: (unsigned int)value;
+
+// the maximum time difference till which clicks are recognized as multi clicks
+- (NSTimeInterval) maximumClickCountTimeDifference;
+- (void) setMaximumClickCountTimeDifference: (NSTimeInterval) timeDiff;
+
+@end
+
+/*
+ * Method definitions for the delegate of the MultiClickRemoteBehavior class
+ */
+@interface NSObject(MultiClickRemoteBehaviorDelegate)
+
+- (void) remoteButton: (RemoteControlEventIdentifier)buttonIdentifier pressedDown: (BOOL) pressedDown clickCount: (unsigned int) count;
+
+@end
diff --git a/apple_remote/inc/RemoteControl.h b/apple_remote/inc/RemoteControl.h
new file mode 100644
index 000000000000..cbf8fd856235
--- /dev/null
+++ b/apple_remote/inc/RemoteControl.h
@@ -0,0 +1,105 @@
+/*****************************************************************************
+ * RemoteControl.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+
+// notifaction names that are being used to signal that an application wants to
+// have access to the remote control device or if the application has finished
+// using the remote control device
+extern NSString* REQUEST_FOR_REMOTE_CONTROL_NOTIFCATION;
+extern NSString* FINISHED_USING_REMOTE_CONTROL_NOTIFICATION;
+
+// keys used in user objects for distributed notifications
+extern NSString* kRemoteControlDeviceName;
+extern NSString* kApplicationIdentifier;
+extern NSString* kTargetApplicationIdentifier;
+
+// we have a 6 bit offset to make a hold event out of a normal event
+#define EVENT_TO_HOLD_EVENT_OFFSET 6
+
+@class RemoteControl;
+
+typedef enum _RemoteControlEventIdentifier {
+ // normal events
+ kRemoteButtonPlus =1<<1,
+ kRemoteButtonMinus =1<<2,
+ kRemoteButtonMenu =1<<3,
+ kRemoteButtonPlay =1<<4,
+ kRemoteButtonRight =1<<5,
+ kRemoteButtonLeft =1<<6,
+
+ // hold events
+ kRemoteButtonPlus_Hold =1<<7,
+ kRemoteButtonMinus_Hold =1<<8,
+ kRemoteButtonMenu_Hold =1<<9,
+ kRemoteButtonPlay_Hold =1<<10,
+ kRemoteButtonRight_Hold =1<<11,
+ kRemoteButtonLeft_Hold =1<<12,
+
+ // special events (not supported by all devices)
+ kRemoteControl_Switched =1<<13,
+} RemoteControlEventIdentifier;
+
+@interface NSObject(RemoteControlDelegate)
+
+- (void) sendRemoteButtonEvent: (RemoteControlEventIdentifier) event pressedDown: (BOOL) pressedDown remoteControl: (RemoteControl*) remoteControl;
+
+@end
+
+/*
+ Base Interface for Remote Control devices
+*/
+@interface RemoteControl : NSObject {
+ id delegate;
+}
+
+// returns nil if the remote control device is not available
+- (id) initWithDelegate: (id) remoteControlDelegate;
+
+- (void) setListeningToRemote: (BOOL) value;
+- (BOOL) isListeningToRemote;
+
+- (BOOL) isOpenInExclusiveMode;
+- (void) setOpenInExclusiveMode: (BOOL) value;
+
+- (void) startListening: (id) sender;
+- (void) stopListening: (id) sender;
+
+// is this remote control sending the given event?
+- (BOOL) sendsEventForButtonIdentifier: (RemoteControlEventIdentifier) identifier;
+
+// sending of notifications between applications
++ (void) sendFinishedNotifcationForAppIdentifier: (NSString*) identifier;
++ (void) sendRequestForRemoteControlNotification;
+
+// name of the device
++ (const char*) remoteControlDeviceName;
+
+@end
diff --git a/apple_remote/inc/RemoteControlContainer.h b/apple_remote/inc/RemoteControlContainer.h
new file mode 100644
index 000000000000..f6cd40ba1178
--- /dev/null
+++ b/apple_remote/inc/RemoteControlContainer.h
@@ -0,0 +1,41 @@
+/*****************************************************************************
+ * RemoteControlContainer.h
+ * RemoteControlWrapper
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+#import "RemoteControl.h"
+
+@interface RemoteControlContainer : RemoteControl {
+ NSMutableArray* remoteControls;
+}
+
+- (BOOL) instantiateAndAddRemoteControlDeviceWithClass: (Class) clazz;
+- (unsigned int) count;
+
+@end
diff --git a/apple_remote/inc/RemoteMainController.h b/apple_remote/inc/RemoteMainController.h
new file mode 100644
index 000000000000..7143f1f1eda9
--- /dev/null
+++ b/apple_remote/inc/RemoteMainController.h
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * RemoteMainController.h
+ *
+ *
+ * Created by Martin Kahr on 11.03.06 under a MIT-style license.
+ * Copyright (c) 2006 martinkahr.com. All rights reserved.
+ *
+ * Code modified and adapted to OpenOffice.org
+ * by Eric Bachard on 11.08.2008 under the same License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ *****************************************************************************/
+
+#import <Cocoa/Cocoa.h>
+
+#define AppleRemoteControlEvent 15
+
+@class RemoteControl;
+@class MultiClickRemoteBehavior;
+
+//static void sendTheEvent( unichar, int );
+
+@interface MainController : NSObject {
+@public // else remoteControl is not reachable from GetSalData()->mpMainController
+ RemoteControl* remoteControl;
+@private
+ MultiClickRemoteBehavior* remoteControlBehavior;
+}
+- (RemoteControl*) remoteControl;
+- (MultiClickRemoteBehavior*) remoteBehavior;
+
+@end
diff --git a/apple_remote/makefile.mk b/apple_remote/makefile.mk
new file mode 100644
index 000000000000..d261d5192708
--- /dev/null
+++ b/apple_remote/makefile.mk
@@ -0,0 +1,82 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=.
+
+PRJNAME=external
+TARGET=AppleRemote
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+.IF "$(GUIBASE)"!="aqua"
+
+dummy:
+ @echo "Nothing to build for GUIBASE $(GUIBASE)"
+
+.ELSE # "$(GUIBASE)"!="aqua"
+
+SHL1STDLIBS+= \
+ -framework Cocoa -framework Carbon -framework IOKit
+
+LIB1FILES+= \
+ $(SLB)$/AppleRemote.lib
+
+SLOFILES= \
+ $(SLO)$/KeyspanFrontRowControl.obj \
+ $(SLO)$/AppleRemote.obj \
+ $(SLO)$/RemoteControl.obj \
+ $(SLO)$/RemoteControlContainer.obj \
+ $(SLO)$/GlobalKeyboardDevice.obj \
+ $(SLO)$/HIDRemoteControlDevice.obj \
+ $(SLO)$/MultiClickRemoteBehavior.obj \
+ $(SLO)$/RemoteMainController.obj
+
+SHL1TARGET= $(TARGET)$(DLLPOSTFIX)
+SHL1OBJS= $(SLOFILES)
+
+OUT2INC = \
+ $(BUILDDIR)$/KeyspaFrontRowControl.h \
+ $(BUILDDIR)$/AppleRemote.h \
+ $(BUILDDIR)$/RemoteControl.h \
+ $(BUILDDIR)$/RemoteControlContainer.h \
+ $(BUILDDIR)$/GlobalKeyboardDevice.h \
+ $(BUILDDIR)$/HIDRemoteControlDevice.h \
+ $(BUILDDIR)$/MultiClickRemoteBehavior.h \
+ $(BUILDDIR)$/RemoteMainController.h
+
+
+.ENDIF # "$(GUIBASE)"!="aqua"
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/apple_remote/prj/build.lst b/apple_remote/prj/build.lst
new file mode 100644
index 000000000000..ff4ee577408a
--- /dev/null
+++ b/apple_remote/prj/build.lst
@@ -0,0 +1,2 @@
+apr apple_remote : solenv soltools NULL
+apr apple_remote nmake - u apr_aprem NULL
diff --git a/apple_remote/prj/d.lst b/apple_remote/prj/d.lst
new file mode 100644
index 000000000000..ef6dd4613f43
--- /dev/null
+++ b/apple_remote/prj/d.lst
@@ -0,0 +1,5 @@
+mkdir: %_DEST%\inc%_EXT%\apple_remote
+..\inc\*.h %_DEST%\inc%_EXT%\apple_remote\*
+
+..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+
diff --git a/autodoc/inc/ary/actions.hxx b/autodoc/inc/ary/actions.hxx
new file mode 100644
index 000000000000..8468c1a820ec
--- /dev/null
+++ b/autodoc/inc/ary/actions.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ACTIONS_HXX
+#define ARY_ACTIONS_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+ class RepositoryCenter;
+
+
+/*
+enum E_Action
+{
+ action_Parse,
+ action_SecondaryProductions,
+ action_Save,
+ action_Load,
+ action_ReadyForRead
+};
+*/
+
+
+/** @resp
+ Performs such commands on the repository, which refer to
+ large parts of it.
+
+ @collab ::ary::Repository
+ and its components and derivates.
+ @descr
+ This class works in kind of double dispatch way:
+
+ // Client code:
+ Command_Xy aMyCommand;
+ ary::Repository::The_().PerformCommand( aMyCommand );
+
+ // Repository_Implementation::PerformCommand() code:
+ aMyCommand.Run(*this);
+
+ // Command_Xy::Run(Repository_Implementation & rRepository) code:
+ rRepository.Run_Command_Xy(*this);
+*/
+class Command
+{
+ public:
+ virtual ~Command() {}
+
+ void Run(
+ n22::RepositoryCenter &
+ io_rReposy );
+ private:
+ virtual void do_Run(
+ n22::RepositoryCenter &
+ io_rReposy ) = 0;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+Command::Run(n22::RepositoryCenter & io_rReposy)
+ { do_Run(io_rReposy); }
+
+
+} // namespace ary
+
+
+#endif
+
+
+
diff --git a/autodoc/inc/ary/ary.hxx b/autodoc/inc/ary/ary.hxx
new file mode 100644
index 000000000000..9b1afeebba3f
--- /dev/null
+++ b/autodoc/inc/ary/ary.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ARY_HXX
+#define ARY_ARY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+}
+
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+namespace ary
+{
+
+/** Starting point for all work with the
+ Autodoc Sourcecode Repository.
+
+ Create and destroy the repository and
+ give access to the "Gates" for different tasks.
+
+ @collab ::ary::cpp::Gate
+ @collab ::ary::idl::Gate
+*/
+
+class Repository
+{
+ public:
+ // LIFECYCLE
+ virtual ~Repository() {}
+ static DYN Repository &
+ Create_();
+ // INQUIRY
+ virtual const String &
+ Title() const = 0;
+ virtual const ::ary::cpp::Gate &
+ Gate_Cpp() const = 0;
+ virtual const ::ary::idl::Gate &
+ Gate_Idl() const = 0;
+ // ACCESS
+ virtual ::ary::cpp::Gate &
+ Gate_Cpp() = 0;
+ virtual ::ary::idl::Gate &
+ Gate_Idl() = 0;
+ virtual void Set_Title(
+ const String & i_sName ) = 0;
+};
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/ary_disp.hxx b/autodoc/inc/ary/ary_disp.hxx
new file mode 100644
index 000000000000..5e8194d6d049
--- /dev/null
+++ b/autodoc/inc/ary/ary_disp.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ARY_DISP_HXX
+#define ARY_ARY_DISP_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+
+class Display : public csv::ProcessorIfc
+{
+ public:
+ virtual ~Display() {}
+
+ // OPERATIONS
+ void StartSlot();
+ void FinishSlot();
+
+ /** This method depends on the result of Get_ReFinder().
+ If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called
+ and if valid, cpp::CppEntity::Accept( *this ) is called.
+ If Get_ReFinder() == 0, simply do_DisplaySlot_Rid() is called
+ with just the id as parameter.
+ */
+ void DisplaySlot_Rid(
+ ary::Rid i_nId );
+// void DisplaySlot_Lid(
+// ary::Lid i_nId );
+ /** This method depends on the result of Get_ReFinder().
+ If Get_ReFinder() != 0, then DisplayGate::Find_Re() is called
+ and if valid, cpp::CppEntity::Accept( *this ) is called.
+ If Get_ReFinder() == 0, simply do_DisplaySlot_LocalCe() is called
+ with just the id as parameter.
+ */
+ void DisplaySlot_LocalCe(
+ ary::cpp::Ce_id i_nId,
+ const String & i_sName );
+ // INQUIRY
+ const cpp::Gate * Get_ReFinder() const;
+
+ private:
+ virtual void do_StartSlot();
+ virtual void do_FinishSlot();
+
+
+ virtual void do_DisplaySlot_Rid(
+ ary::Rid i_nId );
+ virtual void do_DisplaySlot_LocalCe(
+ ary::cpp::Ce_id i_nId,
+ const String & i_sName );
+ virtual const cpp::Gate *
+ inq_Get_ReFinder() const = 0;
+};
+
+
+// IMPLEMENTATION
+
+
+inline void
+Display::StartSlot()
+ { do_StartSlot(); }
+inline void
+Display::FinishSlot()
+ { do_FinishSlot(); }
+inline const cpp::Gate *
+Display::Get_ReFinder() const
+ { return inq_Get_ReFinder(); }
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/arygroup.hxx b/autodoc/inc/ary/arygroup.hxx
new file mode 100644
index 000000000000..68de399f99c5
--- /dev/null
+++ b/autodoc/inc/ary/arygroup.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ARYGROUP_HXX
+#define ARY_ARYGROUP_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class CppEntity;
+}
+
+class Slot;
+
+namespace group
+{
+ typedef std::vector< SlotAccessId > SlotList;
+}
+}
+
+
+
+
+namespace ary
+{
+
+
+
+class AryGroup
+{
+ public:
+ // LIFECYCLE
+ virtual ~AryGroup() {}
+
+ // INQUIRY
+ Gid Id_Group() const;
+ const cpp::CppEntity &
+ RE_Group() const;
+ const group::SlotList &
+ Slots() const;
+ DYN Slot * Create_Slot(
+ SlotAccessId i_nSlot ) const;
+
+
+ private:
+ virtual Gid inq_Id_Group() const = 0;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const = 0;
+ virtual const group::SlotList &
+ inq_Slots() const = 0;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const = 0;
+};
+
+
+
+// IMPLEMENTATION
+inline Gid
+AryGroup::Id_Group() const
+ { return inq_Id_Group(); }
+inline const cpp::CppEntity &
+AryGroup::RE_Group() const
+ { return inq_RE_Group(); }
+inline const group::SlotList &
+AryGroup::Slots() const
+ { return inq_Slots(); }
+inline DYN Slot *
+AryGroup::Create_Slot( SlotAccessId i_nSlot ) const
+ { return inq_Create_Slot(i_nSlot); }
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/ceslot.hxx b/autodoc/inc/ary/ceslot.hxx
new file mode 100644
index 000000000000..f113d26d7372
--- /dev/null
+++ b/autodoc/inc/ary/ceslot.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CESLOT_HXX
+#define ARY_CESLOT_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+class Display;
+
+/** Unterscheidungen von Slots
+
+ Slots:
+ - ReadWrite or ReadOnly
+ - ContentType
+ - Groups
+ - MemberLink 'EnumValue from Enum' or 'Class from Namespace'
+ - MemberData 'Parameter from Operation'
+ - SimpleLink
+ - CommentedLink 'Baseclass from Class'
+ - DefaultCommentedLink 'Class from GlobaIndex'
+*/
+
+class Slot
+{
+ public:
+ virtual ~Slot() {}
+
+ virtual void StoreAt(
+ Display & o_rDestination ) const;
+ virtual uintt Size() const = 0;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const = 0;
+};
+
+class Slot_AutoPtr
+{
+ public:
+ Slot_AutoPtr(
+ Slot * i_pSlot = 0 )
+ : pSlot(i_pSlot) {}
+ ~Slot_AutoPtr() { if (pSlot != 0) delete pSlot; }
+
+ Slot_AutoPtr & operator=(
+ Slot * i_pSlot )
+ { if (pSlot != 0) delete pSlot;
+ pSlot = i_pSlot;
+ return *this; }
+ operator bool() const { return pSlot != 0; }
+
+ const Slot & operator*() { csv_assert(pSlot != 0);
+ return *pSlot; }
+ const Slot * operator->() { csv_assert(pSlot != 0);
+ return pSlot; }
+
+ private:
+ // Forbidden functions
+ Slot_AutoPtr(const Slot_AutoPtr &);
+ Slot_AutoPtr & operator=(const Slot_AutoPtr &);
+
+ // DATA
+ Slot * pSlot;
+};
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cessentl.hxx b/autodoc/inc/ary/cessentl.hxx
new file mode 100644
index 000000000000..bd724b9c8fe6
--- /dev/null
+++ b/autodoc/inc/ary/cessentl.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CESSENTL_HXX
+#define ARY_CESSENTL_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+class CeEssentials
+{ // Non inline functions are implemented in ceworker.cxx .
+ public:
+ // LIFECYCLE
+ CeEssentials();
+ CeEssentials(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ loc::Le_id i_nLocation );
+ ~CeEssentials();
+ // INQUIRY
+ const String & LocalName() const;
+ Ce_id Owner() const;
+ loc::Le_id Location() const;
+
+ // ACCESS
+ private:
+ String sLocalName;
+ Ce_id nOwner;
+ loc::Le_id nLocation;
+};
+
+
+
+// IMPLEMENTATION
+inline const String &
+CeEssentials::LocalName() const
+ { return sLocalName; }
+inline Ce_id
+CeEssentials::Owner() const
+ { return nOwner; }
+inline loc::Le_id
+CeEssentials::Location() const
+ { return nLocation; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_builtintype.hxx b/autodoc/inc/ary/cpp/c_builtintype.hxx
new file mode 100644
index 000000000000..1bb6bec86b9c
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_builtintype.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_BUILTINTYPE_HXX
+#define ARY_CPP_C_BUILTINTYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_type.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Represents types like void, int, double.
+*/
+class BuiltInType : public Type
+{
+ public:
+ enum E_ClassId { class_id = 1200 };
+
+ BuiltInType(
+ const String & i_sName,
+ E_TypeSpecialisation
+ i_Specialisation );
+
+ String SpecializedName() const;
+
+ static String SpecializedName_(
+ const char * i_sName,
+ E_TypeSpecialisation
+ i_eTypeSpecialisation );
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual bool inq_IsConst() const;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const;
+ // DATA
+ String sName;
+ E_TypeSpecialisation
+ eSpecialisation;
+};
+
+
+
+inline String
+BuiltInType::SpecializedName() const
+{
+ return SpecializedName_(sName, eSpecialisation);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_ce.hxx b/autodoc/inc/ary/cpp/c_ce.hxx
new file mode 100644
index 000000000000..5bec606630fa
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_ce.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_CE_HXX
+#define ARY_CPP_C_CE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_cppentity.hxx>
+ // COMPONENTS
+#include <ary/doc/d_docu.hxx>
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+
+typedef loc::Le_id Lid;
+
+
+
+/** Represents a C++ code entity.
+*/
+class CodeEntity : public ary::cpp::CppEntity
+{
+ public:
+ typedef Ce_Traits traits_t;
+
+ // LIFECYCLE
+ virtual ~CodeEntity() {}
+
+ // INQUIRY
+ Ce_id CeId() const { return Ce_id(Id()); }
+ const String & LocalName() const;
+ Cid Owner() const;
+ Lid Location() const;
+ bool IsVisible() const;
+
+ // ACCESS
+ void Set_InVisible() { bIsVisible = false; }
+
+ protected:
+ CodeEntity() : bIsVisible(true) {}
+
+ private:
+ // Locals
+ virtual const String &
+ inq_LocalName() const = 0;
+ virtual Cid inq_Owner() const = 0;
+ virtual Lid inq_Location() const = 0;
+
+ // DATA
+ mutable bool bIsVisible;
+};
+
+
+// IMPLEMENTATION
+inline const String &
+CodeEntity::LocalName() const
+ { return inq_LocalName(); }
+inline Cid
+CodeEntity::Owner() const
+ { return inq_Owner(); }
+inline Lid
+CodeEntity::Location() const
+ { return inq_Location(); }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_class.hxx b/autodoc/inc/ary/cpp/c_class.hxx
new file mode 100644
index 000000000000..60a81e81be3c
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_class.hxx
@@ -0,0 +1,245 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_CLASS_HXX
+#define ARY_CPP_C_CLASS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/symtreenode.hxx>
+#include <ary/cessentl.hxx>
+#include <ary/sequentialids.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ class.
+*/
+class Class : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1001 };
+
+ enum E_Slots
+ {
+ SLOT_Bases = 1,
+ SLOT_NestedClasses,
+ SLOT_Enums,
+ SLOT_Typedefs,
+ SLOT_Operations,
+ SLOT_StaticOperations,
+ SLOT_Data,
+ SLOT_StaticData,
+ SLOT_FriendClasses,
+ SLOT_FriendOperations
+ };
+
+ typedef ::ary::symtree::Node<CeNode_Traits> node_t;
+
+
+ // LIFECYCLE
+ Class(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ E_ClassKey i_eClassKey );
+ ~Class();
+
+ // OPERATIONS
+ void Add_BaseClass(
+ const S_Classes_Base &
+ i_rBaseClass );
+ void Add_TemplateParameterType(
+ const String & i_sLocalName,
+ Type_id i_nIdAsType );
+ void Add_KnownDerivative(
+ Ce_id i_nId )
+ { aKnownDerivatives.Add(i_nId); }
+
+ void Add_LocalClass(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalEnum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalTypedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalStaticOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalData(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalStaticData(
+ const String & i_sLocalName,
+ Cid i_nId );
+
+ void UpdateVirtuality(
+ E_Virtuality i_eVirtuality )
+ { if ( int(i_eVirtuality) > int(eVirtuality) )
+ eVirtuality = i_eVirtuality; }
+ const List_TplParam &
+ TemplateParameters() const
+ { return aTemplateParameterTypes; }
+ const List_Bases & BaseClasses() const { return aBaseClasses; }
+ const SequentialIds<Ce_id> &
+ KnownDerivatives() const
+ { return aKnownDerivatives; }
+
+ // INQUIRY
+ E_ClassKey ClassKey() const;
+ E_Protection Protection() const;
+ E_Virtuality Virtuality() const { return eVirtuality; }
+
+ Ce_id Search_Child(
+ const String & i_key ) const;
+ Rid Search_LocalClass(
+ const String & i_sName ) const;
+ const node_t & AsNode() const;
+
+ // ACCESS
+ node_t & AsNode();
+
+ private:
+ NON_COPYABLE(Class);
+
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual loc::Le_id inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+ // Local
+ typedef List_LocalCe::const_iterator CIterator_Locals;
+ typedef List_LocalCe::iterator Iterator_Locals;
+ typedef SequentialIds<Ce_id> IdSequence;
+
+ CIterator_Locals PosOfName(
+ const List_LocalCe& i_rList,
+ const String & i_sName ) const;
+ // DATA
+ CeEssentials aEssentials;
+ node_t aAssignedNode;
+
+ List_Bases aBaseClasses;
+ List_TplParam aTemplateParameterTypes;
+
+ List_LocalCe aClasses;
+ List_LocalCe aEnums;
+ List_LocalCe aTypedefs;
+ List_LocalCe aOperations;
+ List_LocalCe aStaticOperations;
+ List_LocalCe aData;
+ List_LocalCe aStaticData;
+
+ IdSequence aFriendClasses;
+ IdSequence aFriendOperations;
+ IdSequence aKnownDerivatives;
+
+ E_ClassKey eClassKey;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+};
+
+
+
+
+// IMPLEMENTATION
+inline E_ClassKey
+Class::ClassKey() const
+{
+ return eClassKey;
+}
+
+inline E_Protection
+Class::Protection() const
+{
+ return eProtection;
+}
+
+inline const Class::node_t &
+Class::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Class::node_t &
+Class::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_cppentity.hxx b/autodoc/inc/ary/cpp/c_cppentity.hxx
new file mode 100644
index 000000000000..e487f77102c7
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_cppentity.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_CPPENTITY_HXX
+#define ARY_CPP_C_CPPENTITY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // OTHER
+#include <ary/doc/d_docu.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ code entity as parsed by Autodoc.
+*/
+class CppEntity : public Entity
+{
+ public:
+ // LIFECYCLE
+ virtual ~CppEntity() {}
+
+ // OPERATIONS
+
+ // INQUIRY
+ const ary::doc::Documentation &
+ Docu() const;
+ // ACCESS
+ void Set_Docu(
+ DYN ary::doc::Node &
+ pass_docudata );
+ private:
+ // DATA
+ ary::doc::Documentation
+ aDocu;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const doc::Documentation &
+CppEntity::Docu() const
+{
+ return aDocu;
+}
+
+inline void
+CppEntity::Set_Docu(ary::doc::Node & pass_docudata)
+{
+ aDocu.Set_Data(pass_docudata);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_de.hxx b/autodoc/inc/ary/cpp/c_de.hxx
new file mode 100644
index 000000000000..46c565b07c15
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_de.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_DE_HXX
+#define ARY_CPP_C_DE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_cppentity.hxx>
+ // OTHER
+#include <ary/loc/loc_types4loc.hxx>
+#include <ary/cpp/c_traits.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Describes a C/C++ #define statement. May be a define or a macro, for which
+ two cases the two different constructors are to be used.
+
+ This class is used by cpp::PreProcessor.
+*/
+class DefineEntity : public ary::cpp::CppEntity
+{
+ public:
+ typedef Def_Traits traits_t;
+
+ virtual ~DefineEntity() {}
+
+ // INQUIRY
+ De_id DefId() const { return De_id(Id()); }
+ const String & LocalName() const;
+ loc::Le_id Location() const;
+ const StringVector &
+ DefinitionText() const;
+ // ACCESS
+ protected:
+ DefineEntity(
+ const String & i_name,
+ loc::Le_id i_declaringFile );
+ private:
+ // Locals
+ virtual const StringVector &
+ inq_DefinitionText() const = 0;
+
+ // DATA
+ String sName;
+ loc::Le_id nLocation;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+DefineEntity::LocalName() const
+ { return sName; }
+
+inline loc::Le_id
+DefineEntity::Location() const
+ { return nLocation; }
+
+inline const StringVector &
+DefineEntity::DefinitionText() const
+ { return inq_DefinitionText(); }
+
+
+
+
+
+} // end namespace cpp
+} // end namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_define.hxx b/autodoc/inc/ary/cpp/c_define.hxx
new file mode 100644
index 000000000000..2ad480090c81
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_define.hxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_DEFINE_HXX
+#define ARY_CPP_C_DEFINE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_de.hxx>
+ // OTHER
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C/C++ #define ("#define DEF") statement, but no macro.
+
+ @see Macro
+*/
+class Define : public DefineEntity
+{
+ public:
+ enum E_ClassId { class_id = 1601 };
+
+ Define( /// Used for: #define DEFINE xyz
+ const String & i_name,
+ const StringVector &
+ i_definition,
+ loc::Le_id i_declaringFile );
+ virtual ~Define();
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface DefineEntity:
+ virtual const StringVector &
+ inq_DefinitionText() const;
+ // DATA
+ StringVector aDefinition;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_enum.hxx b/autodoc/inc/ary/cpp/c_enum.hxx
new file mode 100644
index 000000000000..19e04f61a7f8
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_enum.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_ENUM_HXX
+#define ARY_CPP_C_ENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/sequentialids.hxx>
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ enum declaration.
+*/
+class Enum : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1002 };
+
+ enum E_Slots
+ {
+ SLOT_Values = 1
+ };
+
+ // LIFECYCLE
+ Enum(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile );
+ ~Enum();
+
+ // OPERATIONS
+ void Add_Value(
+ Ce_id i_nId );
+
+ // INQUIRY
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+
+ // DATA
+ CeEssentials aEssentials;
+ SequentialIds<Ce_id>
+ aValues;
+ E_Protection eProtection;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_enuval.hxx b/autodoc/inc/ary/cpp/c_enuval.hxx
new file mode 100644
index 000000000000..f2710689a497
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_enuval.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_ENUVAL_HXX
+#define ARY_CPP_C_ENUVAL_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ enum value declaration and definition.
+*/
+class EnumValue : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 1006 };
+
+ // LIFECYCLE
+ EnumValue(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ String i_sInitialisation );
+ ~EnumValue();
+ // INQUIRY
+ const String & Initialisation() const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ String sInitialisation;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+EnumValue::Initialisation() const
+ { return sInitialisation; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_funct.hxx b/autodoc/inc/ary/cpp/c_funct.hxx
new file mode 100644
index 000000000000..94c4a06cad2b
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_funct.hxx
@@ -0,0 +1,149 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_FUNCT_HXX
+#define ARY_CPP_C_FUNCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+#include <ary/cpp/c_osigna.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ function declaration.
+*/
+class Function : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 1004 };
+
+ Function(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ Type_id i_nReturnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_ConVol i_conVol,
+ E_Virtuality i_eVirtuality,
+ FunctionFlags i_aFlags,
+ bool i_bThrowExists,
+ const std::vector<Type_id> &
+ i_rExceptions );
+ ~Function();
+
+
+ // OPERATIONS
+ void Add_TemplateParameterType(
+ const String & i_sLocalName,
+ Type_id i_nIdAsType );
+
+ // INQUIRY
+ const OperationSignature &
+ Signature() const;
+ Type_id ReturnType() const;
+ E_Protection Protection() const { return eProtection; }
+ E_Virtuality Virtuality() const { return eVirtuality; }
+ const FunctionFlags &
+ Flags() const { return aFlags; }
+ const StringVector &
+ ParamInfos() const { return aParameterInfos; }
+ const std::vector<Type_id> *
+ Exceptions() const { return pExceptions.Ptr(); }
+
+ const List_TplParam &
+ TemplateParameters() const
+ { return aTemplateParameterTypes; }
+ bool IsIdentical(
+ const Function & i_f ) const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Local Types
+ typedef StringVector ParameterInfoList;
+ typedef std::vector<Type_id> ExceptionTypeList;
+
+ // DATA
+ CeEssentials aEssentials;
+ List_TplParam aTemplateParameterTypes;
+ OperationSignature aSignature;
+ Type_id nReturnType;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+ FunctionFlags aFlags;
+ ParameterInfoList aParameterInfos;
+ Dyn<ExceptionTypeList>
+ pExceptions; // if (NOT pExceptions) there is no throw,
+ // else, there is one, but the list still may be empty.
+};
+
+
+
+
+// IMPLEMENTATION
+inline const OperationSignature &
+Function::Signature() const
+ { return aSignature; }
+inline Type_id
+Function::ReturnType() const
+ { return nReturnType; }
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_gate.hxx b/autodoc/inc/ary/cpp/c_gate.hxx
new file mode 100644
index 000000000000..ea9d09078397
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_gate.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_GATE_HXX
+#define ARY_CPP_C_GATE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace autodoc
+{
+ class Options;
+}
+namespace ary
+{
+ class Entity;
+
+namespace cpp
+{
+ class CodeEntity;
+ class CppEntity;
+ class CePilot;
+ class DefPilot;
+ class TypePilot;
+}
+namespace loc
+{
+ class LocationPilot;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to all stored objcts in the repository, which are
+ relevant to C++.
+*/
+class Gate
+{
+ public:
+ // LIFECYCLE
+ virtual ~Gate() {}
+
+
+ // OPERATIONS
+ virtual void Calculate_AllSecondaryInformation() = 0;
+// const ::autodoc::Options &
+// i_options ) = 0;
+
+ // INQUIRY
+ virtual const String &
+ RepositoryTitle() const = 0;
+ virtual const CodeEntity *
+ Search_RelatedCe(
+ Type_id i_type ) const = 0;
+ virtual const ::ary::cpp::CppEntity *
+ Search_Entity(
+ GlobalId i_id ) const = 0;
+ virtual uintt Get_AlphabeticalList(
+ List_GlobalIds & o_result,
+ const char * i_begin,
+ const char * i_end ) const = 0;
+ virtual const CePilot &
+ Ces() const = 0;
+ virtual const DefPilot &
+ Defs() const = 0;
+ virtual const TypePilot &
+ Types() const = 0;
+ virtual const loc::LocationPilot &
+ Locations() const = 0;
+
+ // ACCESS
+ virtual CePilot & Ces() = 0;
+ virtual DefPilot & Defs() = 0;
+ virtual TypePilot & Types() = 0;
+ virtual loc::LocationPilot &
+ Locations() = 0;
+};
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_macro.hxx b/autodoc/inc/ary/cpp/c_macro.hxx
new file mode 100644
index 000000000000..35fe6c17c623
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_macro.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_MACRO_HXX
+#define ARY_CPP_C_MACRO_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_de.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C/C++ macro ("#define ABC(a,b)") statement, but no simple define.
+
+ @see Define
+*/
+class Macro : public DefineEntity
+{
+ public:
+ enum E_ClassId { class_id = 1602 };
+
+ Macro();
+ Macro( /// Used for: #define DEFINE xyz
+ const String & i_name,
+ const StringVector &
+ i_params,
+ const StringVector &
+ i_definition,
+ loc::Le_id i_declaringFile );
+ ~Macro();
+ const StringVector & Params() const { return aParams; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface DefineEntity:
+ virtual const StringVector &
+ inq_DefinitionText() const;
+ // DATA
+ StringVector aParams;
+ StringVector aDefinition;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_namesp.hxx b/autodoc/inc/ary/cpp/c_namesp.hxx
new file mode 100644
index 000000000000..2cb0f6878169
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_namesp.hxx
@@ -0,0 +1,194 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_NAMESP_HXX
+#define ARY_CPP_C_NAMESP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/arygroup.hxx>
+ // OTHER
+#include <ary/symtreenode.hxx>
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+ class OperationSignature;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** A C++ namespace.
+*/
+class Namespace : public CodeEntity,
+ public AryGroup
+{
+ public:
+ enum E_ClassId { class_id = 1000 };
+
+ enum E_Slots
+ {
+ SLOT_SubNamespaces = 1,
+ SLOT_Classes,
+ SLOT_Enums,
+ SLOT_Typedefs,
+ SLOT_Operations,
+ SLOT_Variables,
+ SLOT_Constants
+ };
+
+ typedef ::ary::symtree::Node<CeNode_Traits> node_t;
+
+ Namespace();
+ Namespace(
+ const String & i_sName,
+ Namespace & i_rParent );
+ ~Namespace();
+ // OPERATIONS
+ void Add_LocalNamespace(
+ Namespace & io_rLocalNamespace );
+ void Add_LocalClass(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalEnum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalTypedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalOperation(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalVariable(
+ const String & i_sLocalName,
+ Cid i_nId );
+ void Add_LocalConstant(
+ const String & i_sLocalName,
+ Cid i_nId );
+
+ // INQUIRY
+ virtual uintt Depth() const;
+ Namespace * Parent() const;
+
+ Ce_id Search_Child(
+ const String & i_key ) const;
+ Namespace * Search_LocalNamespace(
+ const String & i_sLocalName ) const;
+ uintt Get_SubNamespaces(
+ std::vector< const Namespace* > &
+ o_rResultList ) const;
+ Ce_id Search_LocalClass(
+ const String & i_sName ) const;
+ void Search_LocalOperations(
+ std::vector<Ce_id> &
+ o_result,
+ const String & i_sName ) const;
+ const node_t & AsNode() const;
+
+ // ACCESS
+ node_t & AsNode();
+
+ private:
+ NON_COPYABLE(Namespace);
+
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // Interface AryGroup
+ virtual Gid inq_Id_Group() const;
+ virtual const cpp::CppEntity &
+ inq_RE_Group() const;
+ virtual const ary::group::SlotList &
+ inq_Slots() const;
+ virtual DYN Slot * inq_Create_Slot(
+ SlotAccessId i_nSlot ) const;
+ // Local
+ typedef std::multimap<String, Ce_id> Map_Operations;
+
+ // DATA
+ CeEssentials aEssentials;
+ node_t aAssignedNode;
+
+ Map_NamespacePtr aLocalNamespaces;
+ Map_LocalCe aLocalClasses;
+ Map_LocalCe aLocalEnums;
+ Map_LocalCe aLocalTypedefs;
+ Map_Operations aLocalOperations;
+ Map_LocalCe aLocalVariables;
+ Map_LocalCe aLocalConstants;
+
+ Namespace * pParent;
+ uintt nDepth;
+};
+
+
+
+// IMPLEMENTATION
+inline const Namespace::node_t &
+Namespace::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Namespace::node_t &
+Namespace::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace cpp
+} // ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_osigna.hxx b/autodoc/inc/ary/cpp/c_osigna.hxx
new file mode 100644
index 000000000000..60596e327191
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_osigna.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_OSIGNA_HXX
+#define ARY_CPP_C_OSIGNA_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** The signature of a C++ function. That is: parameter types and
+ const/volatile modifiers.
+*/
+class OperationSignature
+{
+ public:
+ typedef std::vector<Type_id> ParameterTypeList;
+
+ OperationSignature(
+ ParameterTypeList i_parameterTypes, // Non const, because it will be swapped with aParameterTypes.
+ E_ConVol i_conVol );
+
+ bool operator==(
+ const OperationSignature &
+ i_rSig ) const;
+ bool operator<(
+ const OperationSignature &
+ i_rSig ) const;
+
+ // INQUIRY
+ const ParameterTypeList &
+ Parameters() const;
+ E_ConVol ConVol() const;
+
+ /** Compares the signatures by length an then by ids of
+ parameter types. So the result is not always human
+ reconstructable.
+ @return like in strcmp().
+ */
+ int Compare(
+ const OperationSignature &
+ i_rSig ) const;
+ private:
+ // DATA
+ ParameterTypeList aParameterTypes;
+ E_ConVol eConVol;
+};
+
+
+
+
+// IMPLEMENTATION
+inline bool
+OperationSignature::operator==( const OperationSignature & i_rSign ) const
+{
+ return Compare(i_rSign) == 0;
+}
+
+inline bool
+OperationSignature::operator<( const OperationSignature & i_rSign ) const
+{
+ return Compare(i_rSign) < 0;
+}
+
+inline const OperationSignature::ParameterTypeList &
+OperationSignature::Parameters() const
+{
+ return aParameterTypes;
+}
+
+inline E_ConVol
+OperationSignature::ConVol() const
+{
+ return eConVol;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_slntry.hxx b/autodoc/inc/ary/cpp/c_slntry.hxx
new file mode 100644
index 000000000000..0c6ef0d9c74a
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_slntry.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_SLNTRY_HXX
+#define ARY_CPP_C_SLNTRY_HXX
+// KORR_DEPRECATED_3.0
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/namesort.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Namespace;
+
+
+
+typedef Namespace * NamespacePtr;
+struct Less_NamespacePtr
+{
+ bool operator()( /// @return true if (i_p1->Name() < i_p2->Name()) .
+ const NamespacePtr& i_p1,
+ const NamespacePtr& i_p2 );
+};
+
+
+
+
+struct S_Classes_Base
+{
+ Type_id nId;
+ E_Protection eProtection;
+ E_Virtuality eVirtuality;
+ String sComment;
+
+ S_Classes_Base()
+ : nId(0),
+ eProtection(PROTECT_global),
+ eVirtuality(VIRTUAL_none)
+ // sComment
+ { }
+};
+
+struct S_TplParam
+{
+ String sName;
+ Type_id nId;
+
+ S_TplParam(
+ String i_sName,
+ Type_id i_nId )
+ : sName(i_sName), nId(i_nId) {}
+ const String & Name() const { return sName; }
+};
+
+
+struct S_LocalCe
+{
+ String sLocalName;
+ Ce_id nId;
+
+ S_LocalCe() : nId(0) {}
+ S_LocalCe(
+ const String & i_sLocalName,
+ Cid i_nId )
+ : sLocalName(i_sLocalName), nId(i_nId) {}
+ bool operator<(
+ const S_LocalCe & i_rCe ) const
+ { return LesserName()(sLocalName,i_rCe.sLocalName); }
+};
+
+typedef std::vector< S_LocalCe > List_LocalCe;
+
+
+typedef std::map<String, NamespacePtr> Map_NamespacePtr;
+typedef std::vector< S_Classes_Base > List_Bases;
+typedef std::vector< S_TplParam > List_TplParam;
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_traits.hxx b/autodoc/inc/ary/cpp/c_traits.hxx
new file mode 100644
index 000000000000..70db38ce0400
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_traits.hxx
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_TRAITS_HXX
+#define ARY_CPP_C_TRAITS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace symtree
+{
+ template <class X> class Node;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Basic traits for derived ones of ->CodeEntity.
+*/
+struct Ce_Traits
+{
+ typedef CodeEntity entity_base_type;
+ typedef Ce_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of SYMBOL_TRAITS for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct CeNode_Traits : public Ce_Traits
+{
+ static const symtree::Node<CeNode_Traits> *
+ NodeOf_(
+ const entity_base_type &
+ i_entity );
+ static symtree::Node<CeNode_Traits> *
+ NodeOf_(
+ entity_base_type & i_entity );
+ static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ template <class KEY>
+ static id_type Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_Compare : public Ce_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_GlobalCompare : public Ce_Traits
+{
+ typedef entity_base_type key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity )
+ { return i_entity; }
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+/** Basic traits for derivd ones of ->DefineEntity.
+*/
+struct Def_Traits
+{
+ typedef DefineEntity entity_base_type;
+ typedef De_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Def_Compare : public Def_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+/** Basic traits for derivd ones of ->Type.
+*/
+struct Type_Traits
+{
+ typedef Type entity_base_type;
+ typedef Type_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct UsedType_Compare : public Type_Traits
+{
+ typedef UsedType key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+
+
+// IMPLEMENTATION
+
+/// Implementation helper for ->CeNode_Traits::Search_ .
+Ce_id CeNode_Search(
+ const CodeEntity & i_entity,
+ const String & i_localKey );
+
+
+template <class KEY>
+Ce_Traits::id_type
+CeNode_Traits::Search_( const entity_base_type & i_entity,
+ const KEY & i_localKey )
+{
+ return CeNode_Search(i_entity, i_localKey);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_tydef.hxx b/autodoc/inc/ary/cpp/c_tydef.hxx
new file mode 100644
index 000000000000..398b140215d2
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_tydef.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_TYDEF_HXX
+#define ARY_CPP_C_TYDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ typedef declaration.
+*/
+class Typedef : public CodeEntity
+{
+ public:
+ // LIFECYCLE
+ enum E_ClassId { class_id = 1003 };
+
+ Typedef(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile,
+ Type_id i_nDescribingType );
+ ~Typedef();
+ // INQUIRY
+ Type_id DescribingType() const;
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ Type_id nDescribingType;
+ E_Protection eProtection;
+};
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Typedef::DescribingType() const
+{
+ return nDescribingType;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_type.hxx b/autodoc/inc/ary/cpp/c_type.hxx
new file mode 100644
index 000000000000..b404c890ec54
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_type.hxx
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_TYPE_HXX
+#define ARY_CPP_C_TYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_traits.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Base of all C++ types
+*/
+class Type : public ::ary::Entity
+{
+ public:
+ typedef Type_Traits traits_t;
+
+ virtual ~Type() {}
+
+ Type_id TypeId() const { return Type_id(Id()); }
+ Ce_id RelatedCe() const;
+ bool IsConst() const;
+ void Get_Text(
+ StreamStr & o_rOut,
+ const Gate & i_rGate ) const;
+
+ /** It is guaranteed, that the output is correct, also,
+ if all three output-streams are the same instance.
+ */
+ void Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const;
+
+ private:
+ virtual Rid inq_RelatedCe() const; // Defaulted to 0. Implemented in c_builtintype.cxx.
+ virtual bool inq_IsConst() const = 0;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Ce_id
+Type::RelatedCe() const
+{
+ return Ce_id(inq_RelatedCe());
+}
+
+inline bool
+Type::IsConst() const
+{
+ return inq_IsConst();
+}
+
+inline void
+Type::Get_Text( StreamStr & o_rOut,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text( o_rOut, o_rOut, o_rOut, i_rGate );
+}
+
+inline void
+Type::Get_Text( StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text( o_rPreName,o_rName,o_rPostName, i_rGate );
+}
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_types4cpp.hxx b/autodoc/inc/ary/cpp/c_types4cpp.hxx
new file mode 100644
index 000000000000..230578054051
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_types4cpp.hxx
@@ -0,0 +1,134 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_TYPES4CPP_HXX
+#define ARY_CPP_C_TYPES4CPP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <cosv/tpl/range.hxx>
+#include <ary/types.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+class Namespace;
+class CodeEntity;
+class Type;
+class DefineEntity;
+class Gate;
+class CePilot;
+class TypePilot;
+class SecondariesPilot;
+class Ce_Storage;
+class Def_Storage;
+class Type_Storage;
+class UsedType;
+
+
+typedef TypedId< ::ary::cpp::CodeEntity > Ce_id;
+typedef TypedId< ::ary::cpp::Type > Type_id;
+typedef TypedId< ::ary::cpp::DefineEntity > De_id;
+
+
+typedef std::vector<Ce_id> CesList;
+typedef std::vector<De_id> DefsList;
+typedef std::vector<Type_id> TypesList;
+
+typedef std::vector<Ce_id>::const_iterator CesConstIterator;
+typedef std::vector<De_id>::const_iterator DefsConstIterator;
+typedef std::vector<Type_id>::const_iterator TypesConstIterator;
+
+typedef csv::range< CesConstIterator > CesResultList;
+typedef csv::range< DefsConstIterator > DefsResultList;
+typedef csv::range< TypesConstIterator > TypesResultList;
+
+
+typedef std::map<String, Ce_id> Map_LocalCe;
+
+
+
+enum E_Protection
+{
+ PROTECT_global = 0,
+ PROTECT_local, /// within Functions
+ PROTECT_public,
+ PROTECT_protected,
+ PROTECT_private
+};
+
+/** The sequence of E_Virtuality's values must not be changed,
+ because they are used in int-comparisons.
+*/
+enum E_Virtuality
+{
+ VIRTUAL_none = 0,
+ VIRTUAL_virtual,
+ VIRTUAL_abstract
+};
+
+enum E_ClassKey
+{
+ CK_class,
+ CK_struct,
+ CK_union
+};
+
+enum E_TypeSpecialisation
+{
+ TYSP_none = 0,
+ TYSP_unsigned,
+ TYSP_signed
+};
+
+enum E_ConVol
+{
+ CONVOL_none = 0,
+ CONVOL_const = 0x0001,
+ CONVOL_volatile = 0x0002,
+ CONVOL_both = 0x0003
+};
+
+
+
+// Backwards compatibility:
+typedef Ce_id Cid;
+typedef Type_id Tid;
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_vari.hxx b/autodoc/inc/ary/cpp/c_vari.hxx
new file mode 100644
index 000000000000..42f3e76a5e83
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_vari.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_VARI_HXX
+#define ARY_CPP_C_VARI_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_ce.hxx>
+ // OTHER
+#include <ary/cessentl.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** A C++ variable or constant declaration.
+*/
+class Variable : public CodeEntity
+{
+ public:
+ // LIFECYCLE
+ enum E_ClassId { class_id = 1005 };
+
+ Variable(
+ const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ Type_id i_nType,
+ VariableFlags i_aFlags,
+ const String & i_sArraySize,
+ const String & i_sInitValue );
+ ~Variable();
+
+
+ // INQUIRY
+ Type_id Type() const;
+ const String & ArraySize() const;
+ const String & Initialisation() const;
+ E_Protection Protection() const { return eProtection; }
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::cpp::CodeEntity
+ virtual const String &
+ inq_LocalName() const;
+ virtual Cid inq_Owner() const;
+ virtual Lid inq_Location() const;
+
+ // Interface ary::cpp::CppEntity
+ virtual ClassId get_AryClass() const;
+
+ // DATA
+ CeEssentials aEssentials;
+ Type_id nType;
+ E_Protection eProtection;
+ VariableFlags aFlags;
+ String sArraySize;
+ String sInitialisation;
+};
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Variable::Type() const
+ { return nType; }
+inline const String &
+Variable::ArraySize() const
+ { return sArraySize; }
+inline const String &
+Variable::Initialisation() const
+ { return sInitialisation; }
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/c_vfflag.hxx b/autodoc/inc/ary/cpp/c_vfflag.hxx
new file mode 100644
index 000000000000..f9e3532e0f2b
--- /dev/null
+++ b/autodoc/inc/ary/cpp/c_vfflag.hxx
@@ -0,0 +1,151 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_VFFLAG_HXX
+#define ARY_CPP_C_VFFLAG_HXX
+
+// USED SERVICES
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Properties of C++ variables.
+*/
+struct VariableFlags
+{
+ public:
+ enum E_Flags
+ {
+ f_static_local = 0x0001,
+ f_static_member = 0x0002,
+ f_extern = 0x0004,
+ f_mutable = 0x0008
+ };
+
+ VariableFlags(
+ UINT16 i_nFlags = 0 )
+ : nFlags(i_nFlags) {}
+
+ void Reset() { nFlags = 0; }
+
+ void SetStaticLocal() { nFlags |= f_static_local; }
+ void SetStaticMember() { nFlags |= f_static_member; }
+ void SetExtern() { nFlags |= f_extern; }
+ void SetMutable() { nFlags |= f_mutable; }
+
+ bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; }
+ bool IsStaticMember() const { return (nFlags & f_static_member) != 0; }
+ bool IsExtern() const { return (nFlags & f_extern) != 0; }
+ bool IsMutable() const { return (nFlags & f_mutable) != 0; }
+
+ private:
+ UINT16 nFlags;
+};
+
+
+/** Properties of C++ functions.
+*/
+struct FunctionFlags
+{
+ public:
+ enum E_Flags
+ {
+ f_static_local = 0x0001,
+ f_static_member = 0x0002,
+ f_extern = 0x0004,
+ f_externC = 0x0008,
+ f_mutable = 0x0010,
+ f_inline = 0x0100,
+ f_register = 0x0200,
+ f_explicit = 0x0400
+ };
+
+ FunctionFlags(
+ UINT16 i_nFlags = 0 )
+ : nFlags(i_nFlags) {}
+
+ bool operator==(
+ const FunctionFlags &
+ i_ff ) const
+ { return nFlags == i_ff.nFlags; }
+ bool operator!=(
+ const FunctionFlags &
+ i_ff ) const
+ { return NOT operator==(i_ff); }
+
+ void Reset() { nFlags = 0; }
+
+ void SetStaticLocal() { nFlags |= f_static_local; }
+ void SetStaticMember() { nFlags |= f_static_member; }
+ void SetExtern() { nFlags |= f_extern; }
+ void SetExternC() { nFlags |= f_externC; }
+ void SetMutable() { nFlags |= f_mutable; }
+ void SetInline() { nFlags |= f_inline; }
+ void SetRegister() { nFlags |= f_register; }
+ void SetExplicit() { nFlags |= f_explicit; }
+
+ bool IsStaticLocal() const { return (nFlags & f_static_local) != 0; }
+ bool IsStaticMember() const { return (nFlags & f_static_member) != 0; }
+ bool IsExtern() const { return (nFlags & f_extern) != 0; }
+ bool IsExternC() const { return (nFlags & f_externC) != 0; }
+ bool IsMutable() const { return (nFlags & f_mutable) != 0; }
+ bool IsInline() const { return (nFlags & f_inline) != 0; }
+ bool IsRegister() const { return (nFlags & f_register) != 0; }
+ bool IsExplicit() const { return (nFlags & f_explicit) != 0; }
+
+ private:
+ UINT16 nFlags;
+};
+
+
+/** A C++ function parameter.
+*/
+struct S_Parameter
+{
+ String sName;
+ String sSizeExpression;
+ String sInitExpression;
+ Type_id nType;
+
+ S_Parameter() : nType(0) {}
+ ~S_Parameter() {}
+ void Empty() { nType = Type_id(0);
+ sName.clear();
+ sSizeExpression.clear();
+ sInitExpression.clear(); }
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/cp_ce.hxx b/autodoc/inc/ary/cpp/cp_ce.hxx
new file mode 100644
index 000000000000..93b56536dbbb
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_ce.hxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CP_CE_HXX
+#define ARY_CPP_CP_CE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+ class QualifiedName;
+
+namespace cpp
+{
+ class Class;
+ class CodeEntity;
+ class Enum;
+ class EnumValue;
+ class Function;
+ class InputContext;
+ class Namespace;
+ class OperationSignature;
+ class Typedef;
+ class Variable;
+
+ struct FunctionFlags;
+ struct S_Parameter;
+ struct VariableFlags;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to all declared C++ code entites (types, variables, operations)
+ in the repository.
+*/
+class CePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~CePilot() {}
+
+ // OPERATIONS
+ virtual Namespace &
+ CheckIn_Namespace(
+ const InputContext &
+ i_context,
+ const String & i_localName ) = 0;
+ virtual Class & Store_Class(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ E_ClassKey i_classKey ) = 0;
+ virtual Enum & Store_Enum(
+ const InputContext &
+ i_context,
+ const String & i_localName ) = 0;
+ virtual Typedef & Store_Typedef(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_referredType ) = 0;
+
+ /// @return 0, if the function is duplicate.
+ virtual Function * Store_Operation(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_returnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_Virtuality i_virtuality,
+ E_ConVol i_conVol,
+ FunctionFlags i_flags,
+ bool i_throwExists,
+ const std::vector<Tid> &
+ i_exceptions ) = 0;
+ virtual Variable & Store_Variable(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_type,
+ VariableFlags i_flags,
+ const String & i_arraySize,
+ const String & i_initValue ) = 0;
+ virtual EnumValue & Store_EnumValue(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ const String & i_initValue ) = 0;
+ // INQUIRY
+ virtual const Namespace &
+ GlobalNamespace() const = 0;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_id ) const = 0;
+ virtual const CodeEntity *
+ Search_Ce(
+ Ce_id i_id ) const = 0;
+
+ /// It's assumed that i_rSearchedName is an absolute name.
+ virtual const CodeEntity *
+ Search_CeAbsolute(
+ const CodeEntity & i_curScope,
+ const QualifiedName &
+ i_absoluteName ) const = 0;
+ virtual const CodeEntity *
+ Search_CeLocal(
+ const String & i_relativeName,
+ bool i_isFunction,
+ const Namespace & i_curNamespace,
+ const Class * i_curClass ) const = 0;
+ virtual void Get_QualifiedName(
+ StreamStr & o_result,
+ const String & i_localName,
+ Ce_id i_owner,
+ const char * i_delimiter = "::" ) const = 0;
+ virtual void Get_SignatureText(
+ StreamStr & o_rOut,
+ const OperationSignature &
+ i_signature,
+ const StringVector *
+ i_sParameterNames = 0 ) const = 0;
+ virtual CesResultList
+ Search_TypeName(
+ const String & i_sName ) const = 0;
+ // ACCESS
+ virtual Namespace & GlobalNamespace() = 0;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/cp_def.hxx b/autodoc/inc/ary/cpp/cp_def.hxx
new file mode 100644
index 000000000000..5f58634b4716
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_def.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CP_DEF_HXX
+#define ARY_CPP_CP_DEF_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Define;
+ class InputContext;
+ class Macro;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Acess to C++ defines and macros in the repository.
+*/
+class DefPilot
+{
+ public:
+ typedef DefsList::const_iterator DefsIterator;
+
+
+
+ // LIFECYCLE
+ virtual ~DefPilot() {}
+
+
+ // OPERATIONS
+ virtual Define & Store_Define(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rDefinition ) = 0;
+ virtual Macro & Store_Macro(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rParams,
+ const StringVector &
+ i_rDefinition ) = 0;
+ // INQUIRY
+ virtual const DefineEntity &
+ Find_Def(
+ De_id i_id ) const = 0;
+ virtual DefsResultList
+ AllDefines() const = 0;
+ virtual DefsResultList
+ AllMacros() const = 0;
+};
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/cp_type.hxx b/autodoc/inc/ary/cpp/cp_type.hxx
new file mode 100644
index 000000000000..c8ebd6450f59
--- /dev/null
+++ b/autodoc/inc/ary/cpp/cp_type.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CP_TYPE_HXX
+#define ARY_CPP_CP_TYPE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class InputContext;
+ class Type;
+ class UsedType;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+
+/** Acess to all found C++ types (as they are used in declarations)
+ in the repository.
+*/
+class TypePilot
+{
+ public:
+
+ // LIFECYCLE
+ virtual ~TypePilot() {}
+
+
+ // OPERATIONS
+ virtual const Type &
+ CheckIn_UsedType(
+ const InputContext &
+ i_context,
+ DYN UsedType & pass_type ) = 0;
+ // INQUIRY
+ virtual const Type &
+ Find_Type(
+ Type_id i_type ) const = 0;
+ virtual bool Get_TypeText(
+ StreamStr & o_result,
+ Type_id i_type ) const = 0;
+ virtual bool Get_TypeText(
+ StreamStr & o_preName, /// ::ary::cpp::
+ StreamStr & o_name, /// MyClass
+ StreamStr & o_postName, /// <TplArgument> * const &
+ Type_id i_type ) const = 0;
+ virtual Type_id Tid_Ellipse() const = 0;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/inpcontx.hxx b/autodoc/inc/ary/cpp/inpcontx.hxx
new file mode 100644
index 000000000000..69d0d3f41337
--- /dev/null
+++ b/autodoc/inc/ary/cpp/inpcontx.hxx
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_INPCONTX_HXX
+#define ARY_CPP_INPCONTX_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+namespace cpp
+{
+ class Gate;
+ class Namespace;
+ class Class;
+ class Enum;
+
+ class OperationSignature;
+}
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** The context of a CodeEntity, which is going to be stored in the
+ repository. The information is used mainly by ->ary::cpp::CeAdmin.
+*/
+class InputContext
+{
+ public:
+ class Owner
+ {
+ public:
+ // LIFECYCLE
+ virtual ~Owner() {}
+
+ // OPERATIONS
+ /// Adds Class data to current inner scope (Namespace or Class).
+ void Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Enum data to current inner scope (Namespace or Class).
+ void Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Typedef data to current inner scope (Namespace or Class).
+ void Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ /// Adds Operation data to current inner scope (Namespace or Class).
+ void Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStaticMember ); /// True only for static class members.
+ /// Adds Variable data to current inner scope (Namespace or Class).
+ void Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStaticMember ); /// True only for static class members.
+ // INQUIRY
+ Ce_id CeId() const;
+
+ /** @attention Must only be used by ary::cpp::GatePilot!
+ Will work nowhere else!
+ */
+ virtual bool HasClass(
+ const String & i_sLocalName ) = 0;
+ private:
+ virtual void do_Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId ) = 0;
+ virtual void do_Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStatic ) = 0;
+ virtual void do_Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic ) = 0;
+ virtual Ce_id inq_CeId() const = 0;
+ };
+
+ // LIFECYCLE
+ virtual ~InputContext() {}
+
+ // OPERATIONS
+
+ // INQUIRY
+ loc::File & CurFile() const;
+
+ Namespace & CurNamespace() const;
+ Class * CurClass() const;
+ Enum * CurEnum() const;
+
+ Owner & CurOwner() const;
+ E_Protection CurProtection() const;
+
+ private:
+ virtual loc::File & inq_CurFile() const = 0;
+
+ virtual Namespace & inq_CurNamespace() const = 0;
+ virtual Class * inq_CurClass() const = 0;
+ virtual Enum * inq_CurEnum() const = 0;
+
+ virtual Owner & inq_CurOwner() const = 0;
+ virtual E_Protection
+ inq_CurProtection() const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline loc::File &
+InputContext::CurFile() const
+ { return inq_CurFile(); }
+
+inline Namespace &
+InputContext::CurNamespace() const
+ { return inq_CurNamespace(); }
+inline Class *
+InputContext::CurClass() const
+ { return inq_CurClass(); }
+inline Enum *
+InputContext::CurEnum() const
+ { return inq_CurEnum(); }
+inline InputContext::Owner &
+InputContext::CurOwner() const
+ { return inq_CurOwner(); }
+inline E_Protection
+InputContext::CurProtection() const
+ { return inq_CurProtection(); }
+
+
+inline void
+InputContext::Owner::Add_Class( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Class(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Enum( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Enum(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Typedef( const String & i_sLocalName,
+ Cid i_nId )
+ { do_Add_Typedef(i_sLocalName, i_nId); }
+inline void
+InputContext::Owner::Add_Operation( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStatic )
+ { do_Add_Operation( i_sLocalName, i_nId, i_bIsStatic ); }
+inline void
+InputContext::Owner::Add_Variable( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic )
+ { do_Add_Variable( i_sLocalName, i_nId, i_bIsConst, i_bIsStatic ); }
+inline Ce_id
+InputContext::Owner::CeId() const
+ { return inq_CeId(); }
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/namechain.hxx b/autodoc/inc/ary/cpp/namechain.hxx
new file mode 100644
index 000000000000..094abd755981
--- /dev/null
+++ b/autodoc/inc/ary/cpp/namechain.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_NAMECHAI_HXX
+#define ARY_CPP_NAMECHAI_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+
+namespace ut
+{
+ class List_TplParameter;
+
+class NameSegment
+{
+ public:
+ NameSegment(
+ const char * i_sName );
+ /** @precond MPT pTemplate.
+ This cannot be used, except of inserting a new element
+ in the segment list of ary::cpp::ut::NameChain. In that
+ case, the template parameter list doe snot yet exist.
+ */
+ NameSegment(
+ const NameSegment & i_rSeg );
+ ~NameSegment();
+
+ // OPERATIONS
+ List_TplParameter & AddTemplate();
+
+ // INQUIRY
+ const String & Name() const;
+
+ /// @return as strcmp().
+ intt Compare(
+ const NameSegment & i_rOther ) const;
+ void Get_Text_AsScope(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ void Get_Text_AsMainType(
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+
+ NameSegment& operator=(const NameSegment&);
+ private:
+ String sName;
+ Dyn<List_TplParameter>
+ pTemplate;
+};
+
+class NameChain
+{
+ public:
+ typedef std::vector<NameSegment>::const_iterator
+ const_iterator;
+
+ NameChain();
+ ~NameChain();
+
+ // OPERATIONS
+ void Add_Segment(
+ const char * i_sSeg );
+ /** @precond aSegments.size() > 0.
+ Which means: Add_Segment() has to be called at least once before.
+ */
+ List_TplParameter & Templatize_LastSegment();
+
+ // INQUIRY
+ const_iterator begin() const { return aSegments.begin(); }
+ const_iterator end() const { return aSegments.end(); }
+
+ /// @return like strcmp.
+ intt Compare(
+ const NameChain & i_rChain ) const;
+ /// @ATTENTION Return value is volatile. Not reentrance enabled.
+ const String & LastSegment() const;
+
+ void Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ private:
+ std::vector< NameSegment >
+ aSegments;
+};
+
+
+
+// IMPLEMENTATION
+inline const String &
+NameSegment::Name() const
+ { return sName; }
+
+
+
+
+
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/cpp/usedtype.hxx b/autodoc/inc/ary/cpp/usedtype.hxx
new file mode 100644
index 000000000000..594be2a948a4
--- /dev/null
+++ b/autodoc/inc/ary/cpp/usedtype.hxx
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_USEDTYPE_HXX
+#define ARY_CPP_USEDTYPE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/c_type.hxx>
+ // OTHER
+#include <ary/cpp/namechain.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class CePilot;
+
+namespace ut
+{
+ class List_TplParameter;
+}
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** This class represents a type in textual form, like it is parsed out of
+ source code as a variable type or function return type.
+*/
+class UsedType : public Type
+{
+ public:
+ enum E_ClassId { class_id = 1203 };
+
+ explicit UsedType(
+ Ce_id i_scope );
+ ~UsedType();
+ // OPERATORS
+ bool operator<(
+ const UsedType & i_rType ) const;
+ // OPERATIONS
+
+ // Operations to build up the used type from parsing:
+ void Set_Absolute(); /// "::" is in front.
+ void Add_NameSegment(
+ const char * i_sSeg );
+ ut::List_TplParameter &
+ Enter_Template();
+ void Set_Unsigned();
+ void Set_Signed();
+ void Set_BuiltIn(
+ const char * i_sType );
+ void Set_Const(); /// Sets CV to the type or the present pointer level, whatever is highest.
+ void Set_Volatile(); /// Sets CV to the type or the present pointer level, whatever is highest.
+ void Add_PtrLevel(); /// For an '*'.
+ void Set_Reference(); /// For an '&'.
+
+ // Operations to find the relating CodeEntity:
+ /** This needs to be called only one time. After that
+ RelatedCe() will return the value.
+
+ When connectiing all parsed types, there are three steps:
+ 1. Find related types in the same scope and namespaces above.
+ 2. Then all classes can be connected to their base classes.
+ 3. Lastly types can be connected to Ces only known via their base
+ classes. This is not possible at step 1.
+
+ @see Connect2CeOnlyKnownViaBaseClass()
+ */
+ void Connect2Ce(
+ const CePilot & i_ces );
+
+ /** @see Connect2Ce()
+ */
+ void Connect2CeOnlyKnownViaBaseClass(
+ const Gate & i_gate );
+
+ // INQUIRY
+ /** @return True, if type consists of one built-in typename and
+ nothing else.
+ */
+ bool IsBuiltInType() const;
+ /** @return the full local name, including template instantiation, but without
+ '*','&' or modifiers.
+ */
+ const String & LocalName() const;
+ E_TypeSpecialisation
+ TypeSpecialisation() const;
+
+ private:
+ // Interface csv::ConstProcessorClient
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface ary::cpp::Type:
+ virtual Rid inq_RelatedCe() const;
+ virtual bool inq_IsConst() const;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ // Local
+ typedef std::vector< ary::cpp::E_ConVol > PtrLevelVector;
+
+ uintt PtrLevel() const { return uintt(aPtrLevels.size()); }
+ Ce_id RecursiveSearchCe_InBaseClassesOf(
+ const CodeEntity & i_mayBeClass,
+ const StringVector &
+ i_myQualification,
+ const String & i_myName,
+ const Gate & i_gate ) const;
+ void Get_NameParts(
+ StringVector & o_qualification,
+ String & o_name );
+
+ // Forbidden functions
+ UsedType(
+ const UsedType & i_rType );
+ bool operator=(
+ const UsedType & i_rType );
+
+ // DATA
+ ut::NameChain aPath;
+ PtrLevelVector aPtrLevels;
+ ary::cpp::E_ConVol eConVol_Type;
+ bool bIsReference;
+ bool bIsAbsolute;
+ bool bRefers2BuiltInType;
+ E_TypeSpecialisation
+ eTypeSpecialisation;
+ Ce_id nRelatedCe;
+
+ /// Namespace or class scope where the type occurred.
+ Ce_id nScope;
+};
+
+
+namespace ut
+{
+ class TemplateParameter;
+
+class List_TplParameter
+{
+ public:
+ typedef std::vector< DYN TemplateParameter * >::const_iterator const_iterator;
+
+ List_TplParameter();
+ ~List_TplParameter();
+
+ void AddParam_Type(
+ Type_id i_nType );
+ /// puts "< " TemplateArgumentList " >" to o_rOut.
+ void Get_Text(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ /// @return as strcmp().
+ intt Compare(
+ const List_TplParameter &
+ i_rOther ) const;
+
+ private:
+ typedef std::vector< DYN TemplateParameter * > Vector_TplArgument;
+
+ Vector_TplArgument aTplParameters;
+};
+
+} // namespace ut
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_boolean.hxx b/autodoc/inc/ary/doc/d_boolean.hxx
new file mode 100644
index 000000000000..58dd45008919
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_boolean.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_BOOLEAN_HXX
+#define ARY_DOC_D_BOOLEAN_HXX
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+
+// USED SERVICES
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Repesents a boolean documentation item like "optional" or "not optional".
+*/
+class Boolean : public Node
+{
+ public:
+ // LIFECYCLE
+ explicit Boolean(
+ nodetype::id i_type );
+ virtual ~Boolean();
+
+ // OPERATIONS
+ void Set(
+ bool i_b );
+ // INQUIRY
+ bool IsTrue() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ bool b;
+};
+
+
+
+
+// IMPLEMENTATION
+inline
+Boolean::Boolean(nodetype::id i_type)
+ : Node(i_type),
+ b(false)
+{
+}
+
+inline bool
+Boolean::IsTrue() const
+{
+ return b;
+}
+
+inline void
+Boolean::Set( bool i_b )
+{
+ b = i_b;
+}
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_docu.hxx b/autodoc/inc/ary/doc/d_docu.hxx
new file mode 100644
index 000000000000..ad9c895a2a6e
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_docu.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_DOCU_HXX
+#define ARY_DOC_D_DOCU_HXX
+
+// BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+
+// USED SERVICES
+#include <ary/doc/d_node.hxx>
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Represents a documentation which is assigned to an Autodoc
+ repository entity.
+*/
+class Documentation : public csv::ConstProcessorClient
+{
+ public:
+ Documentation();
+ ~Documentation();
+ // OPERATIONS
+ void Clear();
+
+ // INQUIRY
+ const Node * Data() const;
+
+ // ACCESS
+ Node * Data();
+ void Set_Data(
+ ary::doc::Node & i_data );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ Dyn<Node> pData;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Documentation::Clear()
+{
+ pData = 0;
+}
+
+inline const Node *
+Documentation::Data() const
+{
+ return pData.Ptr();
+}
+
+inline Node *
+Documentation::Data()
+{
+ return pData.Ptr();
+}
+
+inline void
+Documentation::Set_Data(ary::doc::Node & i_data)
+{
+ pData = &i_data;
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_node.hxx b/autodoc/inc/ary/doc/d_node.hxx
new file mode 100644
index 000000000000..e5b29d7b5a7f
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_node.hxx
@@ -0,0 +1,109 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_NODE_HXX
+#define ARY_DOC_D_NODE_HXX
+
+// BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+#include <cosv/tpl/vvector.hxx>
+#include <ary/doc/d_types4doc.hxx>
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** The abstract base class for any type of documentation content.
+
+ A ->Documentation has as content a hierarchy of Nodes, each can be a
+ different kind of content, like descriptions of single items or structs
+ or lists of Nodes.
+*/
+class Node : public csv::ConstProcessorClient
+{
+ public:
+ // LIFECYCLE
+ virtual ~Node();
+
+ // OPERATIONS
+ void Add_toChain(
+ DYN Node & pass_nextNode );
+ // INQUIRY
+ nodetype::id Type() const;
+ const Node * Next() const;
+ bool IsSingle() const;
+ uintt ListSize() const;
+
+ protected:
+ explicit Node(
+ nodetype::id i_type);
+ private:
+ // Forbid copies:
+ Node(const Node&);
+ Node & operator=(const Node&);
+
+ // DATA
+ nodetype::id nType;
+ Dyn<Node> pNext; /// Next ->Node in same list.
+};
+
+typedef csv::VirtualVector<Node> NodeList;
+
+
+
+
+// IMPLEMENTATION
+inline nodetype::id
+Node::Type() const
+{
+ return nType;
+}
+
+inline const Node *
+Node::Next() const
+{
+ return pNext.Ptr();
+}
+
+inline bool
+Node::IsSingle() const
+{
+ return pNext.operator bool();
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_oldcppdocu.hxx b/autodoc/inc/ary/doc/d_oldcppdocu.hxx
new file mode 100644
index 000000000000..79bc4ab33aaf
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_oldcppdocu.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_OLDCPPDOCU_HXX
+#define ARY_DOC_D_OLDCPPDOCU_HXX
+// KORR_DEPRECATED_3.0
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+// USED SERVICES
+#include <ary/info/inftypes.hxx>
+#include <ary/ary_disp.hxx>
+
+namespace ary
+{
+namespace info
+{
+ class AtTag;
+ class DocuStore;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+ using ::ary::info::AtTag;
+ using ::ary::info::E_AtTagId;
+
+
+/** Wrapper class for old C++ documentation format.
+
+ To be replaced by using the standard format.
+*/
+class OldCppDocu : public Node
+{
+ public:
+ typedef std::vector< DYN AtTag * > TagList;
+
+ // LIFECYCLE
+ OldCppDocu();
+ virtual ~OldCppDocu();
+
+ void Store2(
+ info::DocuStore & o_rDocuStore );
+
+ virtual AtTag * Create_StdTag(
+ E_AtTagId i_eId );
+ virtual AtTag * CheckIn_BaseTag();
+ virtual AtTag * CheckIn_ExceptionTag();
+ virtual AtTag * Create_ImplementsTag();
+ virtual AtTag * Create_KeywordTag();
+ virtual AtTag * CheckIn_ParameterTag();
+ virtual AtTag * CheckIn_SeeTag();
+ virtual AtTag * CheckIn_TemplateTag();
+ virtual AtTag * Create_LabelTag();
+ virtual AtTag * Create_DefaultTag();
+ virtual AtTag * Create_SinceTag(); /// @return always the first one created.
+
+ virtual void Replace_AtShort_By_AtDescr();
+
+ virtual void Set_Obsolete();
+ virtual void Set_Internal();
+ virtual void Set_Interface() { bIsInterface = true; }
+
+ // INQUIRY
+ const TagList & Tags() const { return aTags; }
+ const AtTag & Short() const;
+ bool IsObsolete() const { return bIsObsolete; }
+ virtual bool IsInternal() const;
+ virtual bool IsInterface() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ unsigned char nTags[ary::info::C_eAtTag_NrOfClasses];
+
+ /** Creates a new AtTag at the end of aTags.
+ The index of this new AtTag is inserted in nTags at position
+ i_nIndex.
+ */
+ AtTag * & NewTag(
+ UINT8 i_nIndex );
+ /** Returns the Tag with the position nTags[i_nIndex]
+ in aTags.
+ */
+ AtTag & GetTag(
+ UINT8 i_nIndex );
+
+ TagList aTags;
+ bool bIsObsolete;
+ bool bIsInternal;
+ bool bIsInterface;
+};
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_oldidldocu.hxx b/autodoc/inc/ary/doc/d_oldidldocu.hxx
new file mode 100644
index 000000000000..6c4d2bdc2cc7
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_oldidldocu.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_OLDIDLDOCU_HXX
+#define ARY_DOC_D_OLDIDLDOCU_HXX
+
+// BASE CLASSES
+#include <ary/doc/d_node.hxx>
+// USED SERVICES
+#include <ary_i/ci_text2.hxx>
+
+
+
+
+namespace ary
+{
+namespace inf
+{
+ class AtTag2;
+ class DocuToken;
+ class DocuTex2;
+}
+namespace doc
+{
+ using ::ary::inf::AtTag2;
+ using ::ary::inf::DocuToken;
+ using ::ary::inf::DocuTex2;
+
+
+
+/** Wrapper for the old idl documentation format.
+*/
+class OldIdlDocu : public Node
+{
+ public:
+ OldIdlDocu();
+ ~OldIdlDocu();
+
+ void AddToken2Short(
+ DYN DocuToken & let_drToken )
+ { aShort.AddToken(let_drToken); }
+ void AddToken2Description(
+ DYN DocuToken & let_drToken )
+ { aDescription.AddToken(let_drToken); }
+ void AddToken2DeprecatedText(
+ DYN DocuToken & let_drToken );
+ void AddAtTag(
+ DYN AtTag2 & let_drAtTag )
+ { aTags.push_back(&let_drAtTag); }
+ void SetPublished() { bIsPublished = true; }
+ void SetDeprecated() { bIsDeprecated = true; }
+ void SetOptional() { bIsOptional = true; }
+ void SetExternShort(
+ const DocuTex2 & i_pExternShort )
+ { pExternShort = &i_pExternShort; }
+
+ const DocuTex2 & Short() const { return pExternShort != 0 ? *pExternShort : aShort; }
+ const DocuTex2 & Description() const { return aDescription; }
+ const DocuTex2 & DeprecatedText() const { return aDeprecatedText; }
+ const std::vector< AtTag2* > &
+ Tags() const { return aTags; }
+ bool IsPublished() const { return bIsPublished; }
+ bool IsDeprecated() const { return bIsDeprecated; }
+ bool IsOptional() const { return bIsOptional; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ DocuTex2 aShort;
+ DocuTex2 aDescription;
+ DocuTex2 aDeprecatedText;
+ std::vector< AtTag2* >
+ aTags;
+ const DocuTex2 * pExternShort;
+ bool bIsPublished;
+ bool bIsDeprecated;
+ bool bIsOptional;
+};
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_parametrized.hxx b/autodoc/inc/ary/doc/d_parametrized.hxx
new file mode 100644
index 000000000000..21f699e180d9
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_parametrized.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_PARAMETER_HXX
+#define ARY_DOC_D_PARAMETER_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/doc/d_node.hxx>
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Documentation unit with Parameter.
+*/
+template <class T>
+class Parametrized : public Node
+{
+ public:
+ // LIFECYCLE
+ explicit Parametrized(
+ nodetype::id i_id,
+ T i_Parameter );
+ virtual ~Parametrized();
+
+ // INQUIRY
+ const HyperText & Doc() const;
+ const T & Parameter() const;
+
+ // ACESS
+ HyperText & Doc();
+ void Set_Parameter(
+ const T & i_param );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // DATA
+ HyperText aDoc;
+ T aParameter;
+};
+
+
+
+
+// IMPLEMENTATION
+template <class T>
+Parametrized<T>::Parametrized( nodetype::id i_id,
+ T i_Parameter )
+ : Node(i_id),
+ aDoc(),
+ aParameter(i_Parameter)
+{
+}
+
+template <class T>
+Parametrized<T>::~Parametrized()
+{
+}
+
+template <class T>
+const HyperText &
+Parametrized<T>::Doc() const
+{
+ return aDoc;
+}
+
+template <class T>
+const T &
+Parametrized<T>::Parameter() const
+{
+ return aParameter;
+}
+
+template <class T>
+HyperText &
+Parametrized<T>::Doc()
+{
+ return aDoc;
+}
+
+template <class T>
+inline void
+Parametrized<T>::Set_Parameter(const T & i_param)
+{
+ aParameter = i_param;
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/d_types4doc.hxx b/autodoc/inc/ary/doc/d_types4doc.hxx
new file mode 100644
index 000000000000..754a1b414a1d
--- /dev/null
+++ b/autodoc/inc/ary/doc/d_types4doc.hxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DOC_D_TYPES4DOC_HXX
+#define ARY_DOC_D_TYPES4DOC_HXX
+
+// USED SERVICES
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+/** Type of a documentation: multiple lines or single line.
+*/
+enum E_BlockType
+{
+ dbt_none = 0,
+ dbt_multiline,
+ dbt_singleline
+};
+
+/** Type of documentation text: with html or without.
+*/
+enum E_TextType
+{
+ dtt_none = 0,
+ dtt_plain,
+ dtt_html
+};
+
+namespace nodetype
+{
+
+typedef int id;
+
+} // namespace nodetype
+
+
+
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/doc/ht/dht_interpreter.hxx b/autodoc/inc/ary/doc/ht/dht_interpreter.hxx
new file mode 100644
index 000000000000..3659654c03d4
--- /dev/null
+++ b/autodoc/inc/ary/doc/ht/dht_interpreter.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DHT_INTERPRETER_HXX
+#define ARY_DHT_INTERPRETER_HXX
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+namespace ht
+{
+ class Processor;
+
+
+/** Interface for all interpreters of a ->Component.
+*/
+class Interpreter
+{
+ public:
+ virtual ~Interpreter() {}
+
+ void Accept(
+ Processor & io_processor,
+ const String & i_data ) const;
+ private:
+ virtual void do_Accept(
+ Processor & io_processor,
+ const String & i_data ) const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Interpreter::Accept( Processor & io_processor,
+ const String & i_data ) const
+{
+ do_Accept(io_processor, i_data);
+}
+
+
+
+
+} // namespace ht
+} // namespace doc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/entity.hxx b/autodoc/inc/ary/entity.hxx
new file mode 100644
index 000000000000..2b51fb37cb1d
--- /dev/null
+++ b/autodoc/inc/ary/entity.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ENTITY_HXX
+#define ARY_ENTITY_HXX
+
+// BASE CLASSES
+#include <ary/object.hxx>
+
+
+
+
+namespace ary
+{
+
+
+/** Interface for every class, whose objects are searchable within the
+ Autodoc Repository by an id.
+
+ @todo
+ Possibly make ->Set_Id() less public accessible.
+*/
+class Entity : public Object
+{
+ public:
+ virtual ~Entity() {}
+
+ Rid Id() const;
+
+ /// @attention Must be used only by ->ary::stg::Storage<>
+ void Set_Id(
+ Rid i_nId );
+ protected:
+ Entity() : nId(0) {}
+ private:
+ // DATA
+ Rid nId;
+};
+
+
+inline Rid
+Entity::Id() const
+{
+ return nId;
+}
+
+inline void
+Entity::Set_Id(Rid i_nId)
+{
+ nId = i_nId;
+}
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/getncast.hxx b/autodoc/inc/ary/getncast.hxx
new file mode 100644
index 000000000000..01b286fe1a0a
--- /dev/null
+++ b/autodoc/inc/ary/getncast.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_GETNCAST_HXX
+#define ARY_GETNCAST_HXX
+
+
+// USED SERVICES
+#include <ary/object.hxx>
+
+
+
+
+namespace ary
+{
+
+
+template <class DEST>
+inline bool
+is_type(const ary::Object & i_obj)
+{
+ return i_obj.AryClass() == DEST::class_id;
+}
+
+
+template <class DEST>
+inline const DEST &
+ary_cast( const Object & ce)
+{
+ csv_assert( is_type<DEST>(ce) );
+ return static_cast< const DEST& >(ce);
+}
+
+template <class DEST>
+inline DEST &
+ary_cast( Object & ce)
+{
+ csv_assert( is_type<DEST>(ce) );
+ return static_cast< DEST& >(ce);
+}
+
+template <class DEST>
+inline const DEST *
+ary_cast( const Object * ce)
+{
+ if ( ce ? is_type<DEST>(*ce) : false )
+ return static_cast< const DEST* >(ce);
+ return 0;
+}
+
+template <class DEST>
+inline DEST *
+ary_cast( Object * ce)
+{
+ if ( ce ? is_type<DEST>(*ce) : false )
+ return static_cast< DEST* >(ce);
+ return 0;
+}
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_attribute.hxx b/autodoc/inc/ary/idl/i_attribute.hxx
new file mode 100644
index 000000000000..1a14f5c6f716
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_attribute.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_ATTRIBUTE_HXX
+#define ARY_IDL_I_ATTRIBUTE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_attribute
+{
+ struct attr;
+}
+
+
+
+
+/** @resp
+ Represents an IDL property.
+*/
+class Attribute : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2014 };
+
+ // LIFECYCLE
+ Attribute(
+ const String & i_sName,
+ Ce_id i_nInterface,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ bool i_bReadonly,
+ bool i_bBound );
+ ~Attribute();
+ // OPERATIONS
+ void Add_GetException(
+ Type_id i_nException );
+ void Add_SetException(
+ Type_id i_nException );
+
+ // INQUIRY
+ Type_id Type() const;
+ bool IsReadonly() const;
+ bool IsBound() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector< Type_id > ExceptionList;
+ friend struct ifc_attribute::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+ ExceptionList aGetExceptions;
+ ExceptionList aSetExceptions;
+ bool bReadonly;
+ bool bBound;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Attribute::Add_GetException( Type_id i_nException )
+ { aGetExceptions.push_back(i_nException); }
+
+inline void
+Attribute::Add_SetException( Type_id i_nException )
+ { aSetExceptions.push_back(i_nException); }
+
+inline Type_id
+Attribute::Type() const
+ { return nType; }
+
+inline bool
+Attribute::IsReadonly() const
+ { return bReadonly; }
+
+inline bool
+Attribute::IsBound() const
+ { return bBound; }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_ce.hxx b/autodoc/inc/ary/idl/i_ce.hxx
new file mode 100644
index 000000000000..1c2414a22023
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_ce.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_CE_HXX
+#define ARY_IDL_I_CE_HXX
+
+// BASE CLASSES
+#include <ary/entity.hxx>
+// USED SERVICES
+#include <ary/doc/d_docu.hxx>
+#include <ary/idl/i_ce2s.hxx>
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** @resp Base class for all IDL code entities.
+
+ A @->CodeEntity is a namespace, type, data or function, which occures in
+ the parsed UNO IDL code and is described and/or commented within the
+ Autodoc repository.
+
+ This is a storage base class, where more special classes are
+ derived from.
+*/
+class CodeEntity : public ary::Entity
+{
+ public:
+ // LIFECYCLE
+ virtual ~CodeEntity();
+
+ // OPERATION
+
+ // INQUIRY
+ Ce_id CeId() const { return Ce_id(Id()); }
+ const String & LocalName() const;
+ Ce_id NameRoom() const;
+ Ce_id Owner() const;
+ E_SightLevel SightLevel() const;
+
+ const ary::doc::Documentation &
+ Docu() const;
+ const Ce_2s & Secondaries() const;
+
+ static const CodeEntity &
+ Null_();
+ // ACCESS
+ void Set_Docu(
+ DYN ary::doc::Node &
+ pass_data );
+ Ce_2s & Secondaries();
+
+ protected:
+ CodeEntity();
+ private:
+ // Locals
+ virtual const String & inq_LocalName() const = 0;
+ virtual Ce_id inq_NameRoom() const = 0;
+ virtual Ce_id inq_Owner() const = 0;
+ virtual E_SightLevel inq_SightLevel() const = 0;
+
+ // DATA
+ ary::doc::Documentation
+ aDocu;
+ Dyn<Ce_2s> p2s;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+CodeEntity::LocalName() const
+ { return inq_LocalName(); }
+
+inline Ce_id
+CodeEntity::NameRoom() const
+ { return inq_NameRoom(); }
+
+inline Ce_id
+CodeEntity::Owner() const
+ { return inq_Owner(); }
+
+inline E_SightLevel
+CodeEntity::SightLevel() const
+ { return inq_SightLevel(); }
+
+inline const ary::doc::Documentation &
+CodeEntity::Docu() const
+ { return aDocu; }
+
+inline void
+CodeEntity::Set_Docu(DYN ary::doc::Node & pass_data)
+{
+ aDocu.Set_Data(pass_data);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_ce2s.hxx b/autodoc/inc/ary/idl/i_ce2s.hxx
new file mode 100644
index 000000000000..f3b3140f48c3
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_ce2s.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_CE2S_HXX
+#define ARY_IDL_I_CE2S_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+
+
+namespace ary
+{
+
+namespace idl
+{
+
+
+
+/** Abstract base for all secondary productions of code entities
+*/
+class Ce_2s
+{
+ public:
+ // LIFECYCLE
+ virtual ~Ce_2s();
+
+ static DYN Ce_2s * Create_(
+ ClassId i_nCeClass );
+ // OPERATIONS
+ void Add_Link2DescriptionInManual(
+ const String & i_link,
+ const String & i_linkUI )
+ { aDescriptionsInManual.push_back(i_link); aDescriptionsInManual.push_back(i_linkUI); }
+ void Add_Link2RefInManual(
+ const String & i_link,
+ const String & i_linkUI )
+ { aRefsInManual.push_back(i_link); aRefsInManual.push_back(i_linkUI); }
+ std::vector<Ce_id> &
+ Access_List(
+ int i_indexOfList );
+ // INQUIRY
+ const StringVector &
+ Links2DescriptionInManual() const
+ { return aDescriptionsInManual; }
+ const StringVector &
+ Links2RefsInManual() const
+ { return aRefsInManual; }
+ int CountXrefLists() const { return aXrefLists.size(); }
+ const std::vector<Ce_id> &
+ List(
+ int i_indexOfList ) const;
+ private:
+ typedef DYN std::vector<Ce_id> * ListPtr;
+
+ // DATA
+ StringVector aDescriptionsInManual;
+ StringVector aRefsInManual;
+ std::vector<ListPtr>
+ aXrefLists;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_comrela.hxx b/autodoc/inc/ary/idl/i_comrela.hxx
new file mode 100644
index 000000000000..1e3a040291eb
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_comrela.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_COMRELA_HXX
+#define ARY_IDL_I_COMRELA_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+namespace ary
+{
+namespace doc
+{
+ class OldIdlDocu;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Contains data for an IDL code entity related to another one like a base of
+ an interface or of a service or the supported interface of a service.
+*/
+class CommentedRelation
+{
+ public:
+ // LIFECYCLE
+
+ CommentedRelation(
+ Type_id i_nType,
+ doc::OldIdlDocu * i_pInfo )
+ : nType(i_nType),
+ pInfo(i_pInfo)
+ {}
+ // INQUIRY
+ Type_id Type() const { return nType; }
+ doc::OldIdlDocu * Info() const { return pInfo; }
+
+ private:
+ // DATA
+ Type_id nType;
+ doc::OldIdlDocu * pInfo;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_constant.hxx b/autodoc/inc/ary/idl/i_constant.hxx
new file mode 100644
index 000000000000..f822e780f4d2
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_constant.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_CONSTANT_HXX
+#define ARY_IDL_I_CONSTANT_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_constant
+{
+ struct attr;
+}
+
+
+/** Represents an IDL constant.
+*/
+class Constant : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2012 };
+
+ // LIFECYCLE
+ Constant(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType,
+ const String & i_sInitValue );
+ ~Constant();
+ // INQUIRY
+ Type_id Type() const;
+ const String & Value() const;
+
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_constant::attr;
+
+ // DATA
+ String sName;
+ Ce_id nNameRoom;
+ Ce_id nOwner;
+
+ Type_id nType;
+ String sInitValue;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Constant::Type() const
+{
+ return nType;
+}
+
+inline const String &
+Constant::Value() const
+{
+ return sInitValue;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_constgroup.hxx b/autodoc/inc/ary/idl/i_constgroup.hxx
new file mode 100644
index 000000000000..961daf6678ab
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_constgroup.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_CONSTGROUP_HXX
+#define ARY_IDL_I_CONSTGROUP_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_constgroup
+{
+ struct attr;
+}
+
+
+/** Represents an IDL constants group.
+*/
+class ConstantsGroup : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2011 };
+
+ // LIFECYCLE
+ ConstantsGroup(
+ const String & i_sName,
+ Ce_id i_nModule );
+ ~ConstantsGroup();
+ // ACCESS
+ void Add_Constant(
+ Ce_id i_nConstant );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ConstantList;
+ friend struct ifc_constgroup::attr;
+
+ // DATA
+ String sName;
+ Ce_id nModule;
+
+ ConstantList aConstants;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+ConstantsGroup::Add_Constant( Ce_id i_nConstant )
+{
+ aConstants.push_back(i_nConstant);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_enum.hxx b/autodoc/inc/ary/idl/i_enum.hxx
new file mode 100644
index 000000000000..36e1244460dd
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_enum.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_ENUM_HXX
+#define ARY_IDL_I_ENUM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_enum
+{
+ struct attr;
+}
+
+
+/** Represents an IDL enum.
+*/
+class Enum : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2005 };
+ // LIFECYCLE
+ Enum(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Enum();
+ // ACCESS
+ void Add_Value(
+ Ce_id i_nValue );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ValueList;
+ friend struct ifc_enum::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ ValueList aValues;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Enum::Add_Value( Ce_id i_nValue )
+{
+ aValues.push_back(i_nValue);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_enumvalue.hxx b/autodoc/inc/ary/idl/i_enumvalue.hxx
new file mode 100644
index 000000000000..ea3d1df74c5d
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_enumvalue.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_ENUMVALUE_HXX
+#define ARY_IDL_I_ENUMVALUE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_enumvalue
+{
+ struct attr;
+}
+
+
+/** @resp
+ Represents an IDL enum value.
+*/
+class EnumValue : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2006 };
+
+ // LIFECYCLE
+ EnumValue(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ const String & i_sInitValue );
+ ~EnumValue();
+ // INQUIRY
+ const String & Value() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_enumvalue::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ String sValue;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const String &
+EnumValue::Value() const
+{
+ return sValue;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_exception.hxx b/autodoc/inc/ary/idl/i_exception.hxx
new file mode 100644
index 000000000000..bed245e884c7
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_exception.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_EXCEPTION_HXX
+#define ARY_IDL_I_EXCEPTION_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_exception
+{
+ struct attr;
+}
+
+
+/** Represents an IDL exception.
+*/
+class Exception : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2010 };
+
+ // LIFECYCLE
+ Exception(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase );
+ ~Exception();
+ // INQUIRY
+ Type_id Base() const { return nBase; }
+
+ // ACCESS
+ void Add_Member(
+ Ce_id i_nMember );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ElementList;
+ friend struct ifc_exception::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nBase;
+ ElementList aElements;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Exception::Add_Member( Ce_id i_nMember )
+{
+ aElements.push_back(i_nMember);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_function.hxx b/autodoc/inc/ary/idl/i_function.hxx
new file mode 100644
index 000000000000..45cac1ffc55a
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_function.hxx
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_FUNCTION_HXX
+#define ARY_IDL_I_FUNCTION_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_param.hxx>
+#include <ary/idl/ik_function.hxx>
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Represents an IDL function.
+
+ Special case constructor:
+ Constructors have return type "0".
+*/
+class Function : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2002 };
+
+ typedef std::vector< Parameter > ParamList;
+ typedef std::vector< Type_id > ExceptionList;
+
+ // LIFECYCLE
+ /// Normal function
+ Function(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nReturnType,
+ bool i_bOneWay );
+ /// Constructor
+ Function(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom );
+ ~Function();
+
+ // OPERATIONS
+ void Add_Parameter(
+ const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection
+ i_eDirection );
+ /// The function's parameter list ends with the ellipse "..." .
+ void Set_Ellipse();
+ void Add_Exception(
+ Type_id i_nException );
+
+ // INQUIRY
+ Type_id ReturnType() const;
+ const ParamList & Parameters() const { return aParameters; }
+ const ExceptionList &
+ Exceptions() const { return aExceptions; }
+ bool IsOneway() const;
+ bool HasEllipse() const { return bEllipse; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ friend struct ifc_function::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nReturnType;
+ ParamList aParameters;
+ ExceptionList aExceptions;
+ bool bOneWay;
+ bool bEllipse;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Function::Add_Parameter( const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection i_eDirection )
+{
+ aParameters.push_back( Parameter(i_sName,i_nType,i_eDirection) );
+}
+
+inline void
+Function::Set_Ellipse()
+{
+ bEllipse = true;
+}
+
+inline void
+Function::Add_Exception( Type_id i_nException )
+{
+ aExceptions.push_back(i_nException);
+}
+
+inline Type_id
+Function::ReturnType() const
+ { return nReturnType; }
+
+inline bool
+Function::IsOneway() const
+ { return bOneWay; }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_gate.hxx b/autodoc/inc/ary/idl/i_gate.hxx
new file mode 100644
index 000000000000..923ee68998a3
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_gate.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_GATE_HXX
+#define ARY_IDL_I_GATE_HXX
+
+// USED SERVICES
+
+namespace autodoc
+{
+ class Options;
+}
+namespace ary
+{
+namespace idl
+{
+ class CePilot;
+ class TypePilot;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Main entry to access the IDL parts of the repository.
+*/
+class Gate
+{
+ public:
+ // LIFECYCLE
+ virtual ~Gate() {}
+
+ // OPERATIONS
+ virtual void Calculate_AllSecondaryInformation(
+ const String & i_devman_reffilepath ) = 0;
+// const ::autodoc::Options &
+// i_options ) = 0;
+ // INQUIRY
+ virtual const CePilot &
+ Ces() const = 0;
+ virtual const TypePilot &
+ Types() const = 0;
+ // ACCESS
+ virtual CePilot & Ces() = 0;
+ virtual TypePilot & Types() = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_interface.hxx b/autodoc/inc/ary/idl/i_interface.hxx
new file mode 100644
index 000000000000..4c68d1703b1b
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_interface.hxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_INTERFACE_HXX
+#define ARY_IDL_I_INTERFACE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_comrela.hxx>
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_interface
+{
+ struct attr;
+}
+ class Interface_2s;
+
+
+/** Represents an IDL interface.
+*/
+class Interface : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2001 };
+
+ // LIFECYCLE
+ Interface(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Interface();
+ // INQUIRY
+ bool HasBase() const;
+
+ // ACCESS
+ void Add_Function(
+ Ce_id i_nId );
+ void Add_Attribute(
+ Ce_id i_nId );
+ void Add_Base(
+ Type_id i_nInterface,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector< CommentedRelation > RelationList;
+ typedef std::vector<Ce_id> MemberList;
+ friend struct ifc_interface::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ RelationList aBases;
+ MemberList aFunctions;
+ MemberList aAttributes;
+ Dyn<Interface_2s> p2s;
+};
+
+
+
+
+// IMPLEMENTATION
+inline bool
+Interface::HasBase() const
+ { return aBases.size() > 0; }
+inline void
+Interface::Add_Function( Ce_id i_nId )
+ { aFunctions.push_back(i_nId); }
+inline void
+Interface::Add_Attribute( Ce_id i_nId )
+ { aAttributes.push_back(i_nId); }
+inline void
+Interface::Add_Base( Type_id i_nInterface,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aBases.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_module.hxx b/autodoc/inc/ary/idl/i_module.hxx
new file mode 100644
index 000000000000..feaa520faa3a
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_module.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_MODULE_HXX
+#define ARY_IDL_I_MODULE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/stdconstiter.hxx>
+
+
+
+
+namespace ary
+{
+ template <class> class NameTreeNode;
+
+namespace idl
+{
+namespace ifc_module
+{
+ struct attr;
+}
+ class Gate;
+
+
+/** Represents an IDL module.
+
+ "Name" in methods means all code entities which belong into
+ this namespace (not in a subnamespace of this one), but not
+ to the subnamespaces.
+
+ "SubNamespace" in method names refers to all direct subnamespaces.
+*/
+class Module : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2000 };
+
+ // LIFECYCLE
+ Module();
+ Module(
+ const String & i_sName,
+ const Module & i_rParent );
+ ~Module();
+ // OPERATIONS
+ void Add_Name(
+ const String & i_sName,
+ Ce_id i_nId );
+ // INQUIRY
+ Ce_id Search_Name(
+ const String & i_sName ) const;
+ void Get_Names(
+ Dyn_StdConstIterator<Ce_id> &
+ o_rResult ) const;
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_module::attr;
+
+ // DATA
+ Dyn< NameTreeNode<Ce_id> >
+ pImpl;
+};
+
+
+inline bool
+is_Module( const CodeEntity & i_rCe )
+{
+ return i_rCe.AryClass() == Module::class_id;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_namelookup.hxx b/autodoc/inc/ary/idl/i_namelookup.hxx
new file mode 100644
index 000000000000..917c36f8e9d6
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_namelookup.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_NAMELOOKUP_HXX
+#define ARY_IDL_I_NAMELOOKUP_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_types4idl.hxx>
+
+// USED SERVICES
+#include <ary/stdconstiter.hxx>
+#include <ary/itrange.hxx>
+#include <vector>
+#include <map>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** This class finds all occurrences in the current language of a
+ name in the repository.
+*/
+class NameLookup
+{
+ public:
+ struct NameProperties
+ {
+ NameProperties()
+ : nId(0),
+ nClass(0),
+ nOwner(0) {}
+ NameProperties(
+ Ce_id i_id,
+ ClassId i_class,
+ Ce_id i_owner )
+ : nId(i_id),
+ nClass(i_class),
+ nOwner(i_owner) {}
+ Ce_id nId;
+ ClassId nClass;
+ Ce_id nOwner;
+ };
+
+ /// Map from Name to NameProperties.
+ typedef std::multimap<String, NameProperties> Map_Names;
+
+ // LIFECYCLE
+ NameLookup();
+ ~NameLookup();
+ // OPERATIONS
+ void Add_Name(
+ const String & i_name,
+ Ce_id i_id,
+ ClassId i_class,
+ Ce_id i_owner );
+ private:
+ // DATA
+ Map_Names aNames;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_param.hxx b/autodoc/inc/ary/idl/i_param.hxx
new file mode 100644
index 000000000000..726a1403f29a
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_param.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_PARAM_HXX
+#define ARY_IDL_I_PARAM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Represents a parameter in an IDL function.
+*/
+class Parameter
+{
+ public:
+ // LIFECYCLE
+ Parameter(
+ const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection
+ i_eDirection );
+ ~Parameter();
+
+ // INQUIRY
+ const String & Name() const { return sName; }
+ Type_id Type() const { return nType; }
+ E_ParameterDirection
+ Direction() const { return eDirection; }
+
+ private:
+ // DATA
+ String sName;
+ Type_id nType;
+ E_ParameterDirection
+ eDirection;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_property.hxx b/autodoc/inc/ary/idl/i_property.hxx
new file mode 100644
index 000000000000..b0a5739dd6ab
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_property.hxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_PROPERTY_HXX
+#define ARY_IDL_I_PROPERTY_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_property
+{
+ struct attr;
+}
+
+
+/** Represents an IDL property.
+*/
+class Property : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2004 };
+
+ class Stereotypes
+ {
+ public:
+ enum E_Flags
+ {
+ readonly = 1,
+ bound = 2,
+ constrained = 4,
+ maybeambiguous = 8,
+ maybedefault = 16,
+ maybevoid = 32,
+ removable = 64,
+ transient = 128,
+ s_MAX
+ };
+ Stereotypes() : nFlags(0) {}
+
+ bool HasAny() const { return nFlags != 0; }
+ bool IsReadOnly() const { return (nFlags & UINT32(readonly)) != 0; }
+ bool IsBound() const { return (nFlags & UINT32(bound)) != 0; }
+ bool IsConstrained() const
+ { return (nFlags & UINT32(constrained)) != 0; }
+ bool IsMayBeAmbiguous() const
+ { return (nFlags & UINT32(maybeambiguous)) != 0; }
+ bool IsMayBeDefault() const
+ { return (nFlags & UINT32(maybedefault)) != 0; }
+ bool IsMayBeVoid() const { return (nFlags & UINT32(maybevoid)) != 0; }
+ bool IsRemovable() const { return (nFlags & UINT32(removable)) != 0; }
+ bool IsTransient() const { return (nFlags & UINT32(transient)) != 0; }
+
+ void Set_Flag(
+ E_Flags i_flag )
+ { nFlags |= UINT32(i_flag); }
+ private:
+ // DATA
+ UINT32 nFlags;
+ };
+
+
+ // LIFECYCLE
+ Property(
+ const String & i_sName,
+ Ce_id i_nService,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ Stereotypes i_stereotypes );
+ ~Property();
+ // INQUIRY
+ Type_id Type() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_property::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+ Stereotypes aStereotypes;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Property::Type() const
+{
+ return nType;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_service.hxx b/autodoc/inc/ary/idl/i_service.hxx
new file mode 100644
index 000000000000..a1cdb400dcda
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_service.hxx
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_SERVICE_HXX
+#define ARY_IDL_I_SERVICE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+// USED SERVICES
+#include <ary/idl/i_comrela.hxx>
+#include <ary/stdconstiter.hxx>
+#include <ary/idl/ik_service.hxx>
+
+
+
+
+namespace ary
+{
+namespace info
+{
+ class CodeInformation;
+}
+namespace idl
+{
+namespace ifc_service
+{
+ struct attr;
+}
+
+
+/** Represents an IDL service.
+*/
+class Service : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2003 }; // See reposy.cxx
+
+ // LIFECYCLE
+ Service(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Service();
+
+ // INQUIRY
+ void Get_SupportedInterfaces(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_rResult ) const;
+ void Get_IncludedServices(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_rResult ) const;
+
+ // ACCESS
+ void Add_Property(
+ Ce_id i_nProperty );
+ void AddRef_IncludedService(
+ Type_id i_nService,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+ void AddRef_SupportedInterface(
+ Type_id i_nInterface,
+ DYN doc::OldIdlDocu *
+ pass_dpDocu );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector< CommentedRelation > RelationList;
+ typedef std::vector<Ce_id> PropertyList;
+ friend struct ifc_service::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ RelationList aIncludedServices;
+ RelationList aSupportedInterfaces;
+ PropertyList aProperties;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Service::Add_Property( Ce_id i_nProperty )
+ { aProperties.push_back(i_nProperty); }
+
+inline void
+Service::AddRef_IncludedService( Type_id i_nService,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aIncludedServices.push_back( CommentedRelation(i_nService, pass_dpDocu) ); }
+
+inline void
+Service::AddRef_SupportedInterface( Type_id i_nInterface,
+ DYN doc::OldIdlDocu * pass_dpDocu )
+ { aSupportedInterfaces.push_back( CommentedRelation(i_nInterface, pass_dpDocu) ); }
+
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_singleton.hxx b/autodoc/inc/ary/idl/i_singleton.hxx
new file mode 100644
index 000000000000..dbfca6d93087
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_singleton.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_SINGLETON_HXX
+#define ARY_IDL_I_SINGLETON_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_singleton
+{
+ struct attr;
+}
+
+
+/** Represents an IDL singleton.
+*/
+class Singleton : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2013 };
+
+ // LIFECYCLE
+ Singleton(
+ const String & i_sName,
+ Ce_id i_nOwner );
+ ~Singleton();
+ // INQUIRY
+ Type_id AssociatedService() const
+ { return nService; }
+
+ // ACCESS
+ void Set_Service(
+ Type_id i_nService );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ friend struct ifc_singleton::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nService;
+};
+
+
+
+
+
+// IMPLEMENTATION
+inline void
+Singleton::Set_Service( Type_id i_nService )
+{
+ nService = i_nService;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_siservice.hxx b/autodoc/inc/ary/idl/i_siservice.hxx
new file mode 100644
index 000000000000..c38e90610a74
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_siservice.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_SISERVICE_HXX
+#define ARY_IDL_I_SISERVICE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_sglifcservice
+{
+ struct attr;
+}
+
+
+/** Represents an IDL single interface service.
+*/
+class SglIfcService : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2015 }; // See reposy.cxx
+
+ // LIFECYCLE
+ SglIfcService(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface );
+ ~SglIfcService();
+ // ACCESS
+ void Add_Constructor(
+ Ce_id i_nId );
+
+ // INFO
+ Type_id BaseInterface() const { return nBaseInterface; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ typedef std::vector<Ce_id> CtorList;
+ friend struct ifc_sglifcservice::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Type_id nBaseInterface;
+
+ CtorList aConstructors;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+SglIfcService::Add_Constructor( Ce_id i_nId )
+{
+ aConstructors.push_back(i_nId);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_sisingleton.hxx b/autodoc/inc/ary/idl/i_sisingleton.hxx
new file mode 100644
index 000000000000..6dd288c048d3
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_sisingleton.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_SISINGLETON_HXX
+#define ARY_IDL_I_SISINGLETON_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_sglifcsingleton
+{
+ struct attr;
+}
+
+
+/** Represents an IDL interface.
+*/
+class SglIfcSingleton : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2016 }; // See reposy.cxx
+
+ // LIFECYCLE
+ SglIfcSingleton(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface );
+ ~SglIfcSingleton();
+ // INQUIRY
+ Type_id BaseInterface() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity:
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Local
+ friend struct ifc_sglifcsingleton::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Type_id nBaseInterface;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+SglIfcSingleton::BaseInterface() const
+{
+ return nBaseInterface;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_struct.hxx b/autodoc/inc/ary/idl/i_struct.hxx
new file mode 100644
index 000000000000..c73eb1517f7b
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_struct.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_STRUCT_HXX
+#define ARY_IDL_I_STRUCT_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_struct
+{
+ struct attr;
+}
+
+
+/** Represents an IDL struct.
+*/
+class Struct : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2008 };
+
+ // LIFECYCLE
+ Struct(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase,
+ const String & i_sTemplateParameter,
+ Type_id i_nTemplateParameterType );
+ ~Struct();
+ // INQUIRY
+ Type_id Base() const;
+ String TemplateParameter() const;
+ Type_id TemplateParameterType() const;
+
+ // ACCESS
+ void Add_Member(
+ Ce_id i_nMember );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ // Locals
+ typedef std::vector<Ce_id> ElementList;
+ friend struct ifc_struct::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nBase;
+ String sTemplateParameter;
+ Type_id nTemplateParameterType;
+ ElementList aElements;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+Struct::Base() const
+{
+ return nBase;
+}
+
+inline String
+Struct::TemplateParameter() const
+{
+ return sTemplateParameter;
+}
+
+inline Type_id
+Struct::TemplateParameterType() const
+{
+ return nTemplateParameterType;
+}
+
+inline void
+Struct::Add_Member( Ce_id i_nMember )
+{
+ aElements.push_back(i_nMember);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_structelem.hxx b/autodoc/inc/ary/idl/i_structelem.hxx
new file mode 100644
index 000000000000..f7544f027f2d
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_structelem.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_STRUCTELEM_HXX
+#define ARY_IDL_I_STRUCTELEM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_structelement
+{
+ struct attr;
+}
+
+
+/** Represents an IDL struct element.
+*/
+class StructElement : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2009 };
+
+ // LIFECYCLE
+ StructElement(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType );
+ ~StructElement();
+
+ // INQUIRY
+ Type_id Type() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_structelement::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+ Ce_id nNameRoom;
+
+ Type_id nType;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Type_id
+StructElement::Type() const
+{
+ return nType;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_traits.hxx b/autodoc/inc/ary/idl/i_traits.hxx
new file mode 100644
index 000000000000..c34704537794
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_traits.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_TRAITS_HXX
+#define ARY_IDL_I_TRAITS_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Basic traits for derivd ones of ->CodeEntity.
+*/
+struct Ce_Traits
+{
+ typedef CodeEntity entity_base_type;
+ typedef Ce_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Ce_Compare : public Ce_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_type.hxx b/autodoc/inc/ary/idl/i_type.hxx
new file mode 100644
index 000000000000..75f9737f1468
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_type.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_TYPE_HXX
+#define ARY_IDL_I_TYPE_HXX
+
+// USED SERVICES
+#include <ary/entity.hxx>
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+
+
+/** Abstract base for all secondary productions of types
+*/
+class Type_2s
+{
+ public:
+ virtual ~Type_2s() {}
+
+ static DYN Type_2s *
+ Create_(
+ ClassId i_nCeId );
+};
+
+
+/** Base of all IDL types.
+
+ Type represents the occurence of a type as base,
+ parameter, return type or element type in UNO IDL code.
+ Some of them relate to a ->CodeEntity, but
+ the ->Type "MyInterface" is something different than
+ the ->CodeEntity "MyInterface".
+
+ This is a storage base class, where more special
+ classes are derived from.
+*/
+class Type : public ary::Entity
+{
+ public:
+ typedef Type_2s secondary_productions;
+
+ // LIFECYCLE
+ virtual ~Type() {}
+
+ // INQUIRY
+ Type_id TypeId() const { return Type_id(Id()); }
+
+ /** Does NOT clear the output-parameters.
+
+ @attention
+ If this is a sequence, the text of the first non-sequence, enclosed type
+ is returned.
+ */
+ void Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const;
+ const std::vector<Type_id> *
+ TemplateParameters() const;
+ const Type & FirstEnclosedNonSequenceType( /// @return *this, if this is not a ->Sequence.
+ const Gate & i_rGate ) const;
+
+ private:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const = 0;
+ virtual const std::vector<Type_id> *
+ inq_TemplateParameters() const;
+ virtual const Type &
+ inq_FirstEnclosedNonSequenceType(
+ const Gate & i_rGate ) const;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Type::Get_Text( StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const
+{
+ inq_Get_Text(o_module,o_name,o_nRelatedCe,o_nSequenceCount,i_rGate);
+}
+
+inline const std::vector<Type_id> *
+Type::TemplateParameters() const
+{
+ return inq_TemplateParameters();
+}
+
+inline const Type &
+Type::FirstEnclosedNonSequenceType(const Gate & i_rGate) const
+{
+ return inq_FirstEnclosedNonSequenceType(i_rGate);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_typedef.hxx b/autodoc/inc/ary/idl/i_typedef.hxx
new file mode 100644
index 000000000000..9d315c2f12d9
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_typedef.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_TYPEDEF_HXX
+#define ARY_IDL_I_TYPEDEF_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+namespace ifc_typedef
+{
+ struct attr;
+}
+
+
+/** Represents an IDL typedef.
+*/
+class Typedef : public CodeEntity
+{
+ public:
+ enum E_ClassId { class_id = 2007 };
+
+ // LIFECYCLE
+ Typedef(
+ const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nDefiningType );
+ ~Typedef();
+
+ Type_id DefiningType() const { return nDefiningType; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface CodeEntity
+ virtual const String & inq_LocalName() const;
+ virtual Ce_id inq_NameRoom() const;
+ virtual Ce_id inq_Owner() const;
+ virtual E_SightLevel inq_SightLevel() const;
+
+ friend struct ifc_typedef::attr;
+
+ // DATA
+ String sName;
+ Ce_id nOwner;
+
+ Type_id nDefiningType;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/i_types4idl.hxx b/autodoc/inc/ary/idl/i_types4idl.hxx
new file mode 100644
index 000000000000..046b47f4bb0c
--- /dev/null
+++ b/autodoc/inc/ary/idl/i_types4idl.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_TYPES4IDL_HXX
+#define ARY_IDL_I_TYPES4IDL_HXX
+
+// USED SERVICES
+#include <ary/types.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+ class CodeEntity;
+ class Type;
+ class Gate;
+ class CePilot;
+ class TypePilot;
+
+
+typedef TypedId<CodeEntity> Ce_id;
+typedef TypedId<Type> Type_id;
+
+
+/** This is used when an ->ary::idl::ExplicitType
+ represents a templated struct and is sorted into the
+ dictionary of an ->ary::idl::XNameRoom.
+ Then local type name and template type id are concatenated
+ to one string with this char as delimiter.
+*/
+const char C_cTemplateDelimiter = '<';
+
+typedef std::vector<Ce_id> Ce_idList;
+
+
+enum E_ParameterDirection
+{
+ param_in,
+ param_out,
+ param_inout
+};
+
+
+enum E_SightLevel
+{
+ sl_Module, // not file bound entities, like modules
+ sl_File, // entities on top level within one file, like interface or enum
+ sl_Member // member entities, like enumvalue or function
+};
+
+inline Ce_id
+Ce_id_Null()
+{
+ return Ce_id(0);
+}
+
+inline void
+NullPush_IdList(Ce_idList * o_pList)
+{
+ if (o_pList)
+ o_pList->push_back( Ce_id_Null() );
+}
+
+inline void
+NullPush_IdList_2(Ce_idList * o_pList)
+{
+ if (o_pList)
+ {
+ o_pList->push_back( Ce_id_Null() );
+ o_pList->push_back( Ce_id_Null() );
+ }
+}
+
+namespace alphabetical_index
+{
+ enum E_Letter
+ {
+ a = int('a'),
+ b,
+ c,
+ d,
+ e,
+ f,
+ g,
+ h,
+ i,
+ j,
+ k,
+ l,
+ m,
+ n,
+ o,
+ p,
+ q,
+ r,
+ s,
+ t,
+ u,
+ v,
+ w,
+ x,
+ y,
+ z,
+ non_alpha = int('_'),
+ MAX
+ };
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/ik_attribute.hxx b/autodoc/inc/ary/idl/ik_attribute.hxx
new file mode 100644
index 000000000000..6e8822111d1e
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_attribute.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_ATTRIBUTE_HXX
+#define ARY_IDL_IK_ATTRIBUTE_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_attribute
+{
+
+using ifc_ce::DocText;
+using ::ary::idl::ifc_ce::Dyn_TypeIterator;
+
+
+struct attr: public ifc_ce::attr
+{
+ static bool HasAnyStereotype(
+ const CodeEntity & i_ce );
+ static bool IsReadOnly(
+ const CodeEntity & i_ce );
+ static bool IsBound(
+ const CodeEntity & i_ce );
+ static Type_id Type(
+ const CodeEntity & i_ce );
+ static void Get_GetExceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SetExceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_attribute
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_ce.hxx b/autodoc/inc/ary/idl/ik_ce.hxx
new file mode 100644
index 000000000000..ffa9363a6543
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_ce.hxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_CE_HXX
+#define ARY_IDL_IK_CE_HXX
+// KORR_DEPRECATED_3.0
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/stdconstiter.hxx>
+
+namespace ary
+{
+namespace info
+{
+ class Text;
+}
+namespace idl
+{
+
+
+namespace ifc_ce
+{
+
+
+typedef ::ary::Dyn_StdConstIterator<Ce_id> Dyn_CeIterator;
+typedef ::ary::Dyn_StdConstIterator<Type_id> Dyn_TypeIterator;
+typedef ::ary::info::Text DocText;
+
+
+
+struct attr
+{
+ static Ce_id CeId(
+ const CodeEntity & i_ce );
+ static const String &
+ LocalName(
+ const CodeEntity & i_ce );
+ static Ce_id NameRoom(
+ const CodeEntity & i_ce );
+ static Rid Owner(
+ const CodeEntity & i_ce );
+ static E_SightLevel SightLevel(
+ const CodeEntity & i_ce );
+ static bool Search_Member(
+ const CodeEntity & ,
+ const String & )
+ { return true; } // KORR_FUTURE
+};
+
+struct xref
+{
+};
+
+struct doc
+{
+ static const DocText &
+ ShortInfo( /// @return a short description of the CodeEntity
+ const CodeEntity & i_ce );
+
+ static const DocText &
+ TagAuthor(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagExample(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagDescr(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagGuarantees(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagKey(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagMissing(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagSee(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagShort(
+ const CodeEntity & i_ce );
+ static const DocText &
+ TagVersion(
+ const CodeEntity & i_ce );
+
+ void Get_UnkownTags(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+
+ bool IsDeprecated(
+ const CodeEntity & i_ce );
+ bool IsIncomplete(
+ const CodeEntity & i_ce );
+ bool IsInternal(
+ const CodeEntity & i_ce );
+ bool IsNodoc(
+ const CodeEntity & i_ce );
+ bool IsOptional(
+ const CodeEntity & i_ce );
+ bool IsSuspicious(
+ const CodeEntity & i_ce );
+
+};
+
+
+} // namespace ifc_ce
+
+
+} // namspace idl
+} // namspace ary
+
+#endif
+
+
diff --git a/autodoc/inc/ary/idl/ik_constant.hxx b/autodoc/inc/ary/idl/ik_constant.hxx
new file mode 100644
index 000000000000..61b7fb7c87e0
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_constant.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_CONSTANT_HXX
+#define ARY_IDL_IK_CONSTANT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_constant
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Type(
+ const CodeEntity & i_ce );
+ static const String &
+ Value(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_constant
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_constgroup.hxx b/autodoc/inc/ary/idl/ik_constgroup.hxx
new file mode 100644
index 000000000000..df55fda2ce03
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_constgroup.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_CONSTGROUP_HXX
+#define ARY_IDL_IK_CONSTGROUP_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_constgroup
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Constants(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_constgroup
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_enum.hxx b/autodoc/inc/ary/idl/ik_enum.hxx
new file mode 100644
index 000000000000..229d945b06f9
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_enum.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_ENUM_HXX
+#define ARY_IDL_IK_ENUM_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_enum
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Values(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_enum
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_enumvalue.hxx b/autodoc/inc/ary/idl/ik_enumvalue.hxx
new file mode 100644
index 000000000000..4071199a9f12
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_enumvalue.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_ENUMVALUE_HXX
+#define ARY_IDL_IK_ENUMVALUE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_enumvalue
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static const String &
+ Value(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_enumvalue
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_exception.hxx b/autodoc/inc/ary/idl/ik_exception.hxx
new file mode 100644
index 000000000000..6bd9eaa58109
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_exception.hxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_EXCEPTION_HXX
+#define ARY_IDL_IK_EXCEPTION_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_exception
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Base(
+ const CodeEntity & i_ce );
+ static void Get_Elements(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_RaisingFunctions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_exception
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_function.hxx b/autodoc/inc/ary/idl/ik_function.hxx
new file mode 100644
index 000000000000..b52264440405
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_function.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_SERVICE_HXX
+#define ARY_IDL_IK_SERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/i_param.hxx>
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+namespace ifc_function
+{
+
+using ::ary::idl::ifc_ce::Dyn_CeIterator;
+using ::ary::idl::ifc_ce::Dyn_TypeIterator;
+using ::ary::idl::ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id ReturnType(
+ const CodeEntity & i_ce );
+ static bool IsOneway(
+ const CodeEntity & i_ce );
+ static bool HasEllipse(
+ const CodeEntity & i_ce );
+ static void Get_Parameters(
+ Dyn_StdConstIterator<ary::idl::Parameter> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Exceptions(
+ Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+// aStateMachine.AddToken( "@param", nTok_at_param, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@throws", nTok_at_throws, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@exception",
+// aStateMachine.AddToken( "@return", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+// aStateMachine.AddToken( "@returns", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+};
+
+
+} // namespace ifc_function
+
+
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_interface.hxx b/autodoc/inc/ary/idl/ik_interface.hxx
new file mode 100644
index 000000000000..c6fb059fea48
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_interface.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_INTERFACE_HXX
+#define ARY_IDL_IK_INTERFACE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+class CommentedRelation;
+
+namespace ifc_interface
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_Bases(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Functions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Attributes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SynonymTypedefs( /// like: typedef i_ce.LocalName() newName;
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportingServices(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportingSingletons(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+
+#if 0
+ static void Get_UsingTypedefs( /// like: typedef sequence<i_ce.LocalName()> newNameSeq;
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsIndirectReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsIndirectParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+#endif // 0
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_interface
+
+} // namespace idl
+} // namespace ary
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_module.hxx b/autodoc/inc/ary/idl/ik_module.hxx
new file mode 100644
index 000000000000..e4b5e5b0a6b1
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_module.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_MODULE_HXX
+#define ARY_IDL_IK_MODULE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+class CePilot;
+
+namespace ifc_module
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr : public ifc_ce::attr
+{
+ // KORR_FUTURE
+ // This has to be changed that way, that the differencing takes place
+ // within hfi_module.cxx and not here.
+ // So the class CePilot is not needed here, etc.
+ // Too much scope pollution.
+ static void Get_AllChildrenSeparated(
+ std::vector< const CodeEntity* > & o_nestedModules,
+ std::vector< const CodeEntity* > & o_services,
+ std::vector< const CodeEntity* > & o_interfaces,
+ std::vector< const CodeEntity* > & o_structs,
+ std::vector< const CodeEntity* > & o_exceptions,
+ std::vector< const CodeEntity* > & o_enums,
+ std::vector< const CodeEntity* > & o_typedefs,
+ std::vector< const CodeEntity* > & o_constantGroups,
+ std::vector< const CodeEntity* > & o_singletons,
+ const CePilot & i_pilot,
+ const CodeEntity & i_ce );
+
+ static void Get_SubModules(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Services(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Interfaces(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Structs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Exceptions(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Enums(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_Typedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_ConstantsGroups(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_module
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_property.hxx b/autodoc/inc/ary/idl/ik_property.hxx
new file mode 100644
index 000000000000..874eb91edce4
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_property.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_PROPERTY_HXX
+#define ARY_IDL_IK_PROPERTY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_property
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static bool HasAnyStereotype(
+ const CodeEntity & i_ce );
+ static bool IsReadOnly(
+ const CodeEntity & i_ce );
+ static bool IsBound(
+ const CodeEntity & i_ce );
+ static bool IsConstrained(
+ const CodeEntity & i_ce );
+ static bool IsMayBeAmbiguous(
+ const CodeEntity & i_ce );
+ static bool IsMayBeDefault(
+ const CodeEntity & i_ce );
+ static bool IsMayBeVoid(
+ const CodeEntity & i_ce );
+ static bool IsRemovable(
+ const CodeEntity & i_ce );
+ static bool IsTransient(
+ const CodeEntity & i_ce );
+ static Type_id Type(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_property
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_service.hxx b/autodoc/inc/ary/idl/ik_service.hxx
new file mode 100644
index 000000000000..6a7561375a4a
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_service.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_SERVICE_HXX
+#define ARY_IDL_IK_SERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_service
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static void Get_IncludedServices(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_ExportedInterfaces(
+ Dyn_StdConstIterator<CommentedRelation> &
+ o_result,
+ const CodeEntity & i_ce );
+ static void Get_Properties(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_IncludingServices(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_InstantiatingSingletons(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_service
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_singleton.hxx b/autodoc/inc/ary/idl/ik_singleton.hxx
new file mode 100644
index 000000000000..e4af7af5b810
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_singleton.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_SINGLETON_HXX
+#define ARY_IDL_IK_SINGLETON_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_singleton
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id AssociatedService(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_singleton
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_siservice.hxx b/autodoc/inc/ary/idl/ik_siservice.hxx
new file mode 100644
index 000000000000..8a42f899b6a3
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_siservice.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_SISERVICE_HXX
+#define ARY_IDL_IK_SISERVICE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_sglifcservice
+{
+
+using ifc_ce::Dyn_CeIterator;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id BaseInterface(
+ const CodeEntity & i_ce );
+ static void Get_Constructors(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_sglifcservice
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_sisingleton.hxx b/autodoc/inc/ary/idl/ik_sisingleton.hxx
new file mode 100644
index 000000000000..13ba8b810251
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_sisingleton.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_SISINGLETON_HXX
+#define ARY_IDL_IK_SISINGLETON_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_sglifcsingleton
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id BaseInterface(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_sglifcsingleton
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_struct.hxx b/autodoc/inc/ary/idl/ik_struct.hxx
new file mode 100644
index 000000000000..b5908d3a1e0c
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_struct.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_STRUCT_HXX
+#define ARY_IDL_IK_STRUCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_struct
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Base(
+ const CodeEntity & i_ce );
+ static void Get_Elements(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_Derivations(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_struct
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/idl/ik_structelem.hxx b/autodoc/inc/ary/idl/ik_structelem.hxx
new file mode 100644
index 000000000000..2b8f95587463
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_structelem.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_STRUCTELEM_HXX
+#define ARY_IDL_IK_STRUCTELEM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_structelement
+{
+
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id Type(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+
+} // namespace ifc_structelement
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ik_typedef.hxx b/autodoc/inc/ary/idl/ik_typedef.hxx
new file mode 100644
index 000000000000..1d4a88d5d287
--- /dev/null
+++ b/autodoc/inc/ary/idl/ik_typedef.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IK_TYPEDEF_HXX
+#define ARY_IDL_IK_TYPEDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ik_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace idl
+{
+
+namespace ifc_typedef
+{
+
+using ifc_ce::Dyn_CeIterator;
+using ifc_ce::DocText;
+
+
+struct attr: public ifc_ce::attr
+{
+ static Type_id DefiningType(
+ const CodeEntity & i_ce );
+};
+
+struct xref : public ifc_ce::xref
+{
+ static void Get_SynonymTypedefs(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsReturns(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsParameters(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+ static void Get_AsDataTypes(
+ Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce );
+};
+
+struct doc : public ifc_ce::doc
+{
+};
+
+} // namespace ifc_typedef
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/inc/ary/idl/ip_ce.hxx b/autodoc/inc/ary/idl/ip_ce.hxx
new file mode 100644
index 000000000000..d2b7773d62df
--- /dev/null
+++ b/autodoc/inc/ary/idl/ip_ce.hxx
@@ -0,0 +1,210 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IP_CE_HXX
+#define ARY_IDL_IP_CE_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/idl/i_property.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+
+ class ConstantsGroup;
+ class Enum;
+ class Exception;
+ class Interface;
+ class Service;
+ class SglIfcService;
+ class Singleton;
+ class SglIfcSingleton;
+ class Struct;
+ class Typedef;
+
+ class Attribute;
+ class Constant;
+ class EnumValue;
+ class Function;
+ class Property;
+ class StructElement;
+ class Variable;
+
+ class NameLookup;
+
+
+/** Provides the access logic for all code entities.
+*/
+class CePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~CePilot() {}
+
+ // OPERATIONS
+ virtual Module & CheckIn_Module(
+ Ce_id i_nParentId,
+ const String & i_sName ) = 0;
+ virtual Service & Store_Service(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual SglIfcService &
+ Store_SglIfcService(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface ) = 0;
+ virtual Interface & Store_Interface(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase ) = 0;
+ virtual Struct & Store_Struct(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam = String::Null_() ) = 0;
+ virtual Exception & Store_Exception(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase ) = 0;
+ virtual Enum & Store_Enum(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual Typedef & Store_Typedef(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nDefiningType ) = 0;
+ virtual ConstantsGroup &
+ Store_ConstantsGroup(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual Singleton & Store_Singleton(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual SglIfcSingleton &
+ Store_SglIfcSingleton(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface ) = 0;
+
+ virtual Constant & Store_Constant(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ const String & i_sValue ) = 0;
+ virtual Property & Store_Property(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ Property::Stereotypes
+ i_stereotypes ) = 0;
+ virtual Function & Store_Function(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nReturnType,
+ bool i_bOneWay ) = 0;
+ virtual Function & Store_ServiceConstructor(
+ Ce_id i_nOwner,
+ const String & i_sName ) = 0;
+ virtual StructElement &
+ Store_StructMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType ) = 0;
+ virtual StructElement &
+ Store_ExceptionMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType ) = 0;
+ virtual EnumValue & Store_EnumValue(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ const String & i_sValue ) = 0;
+ virtual Attribute & Store_Attribute(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ bool i_bReadOnly,
+ bool i_bBound ) = 0;
+ // INQUIRY
+ virtual const Module &
+ GlobalNamespace() const = 0;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_nId ) const = 0;
+
+ virtual const Module &
+ Find_Module(
+ Ce_id i_nId ) const = 0;
+ virtual const Module *
+ Search_Module(
+ Ce_id i_nId ) const = 0;
+ virtual const Function &
+ Find_Function(
+ Ce_id i_nId ) const = 0;
+ virtual const Property &
+ Find_Property(
+ Ce_id i_nId ) const = 0;
+ virtual const EnumValue &
+ Find_EnumValue(
+ Ce_id i_nId ) const = 0;
+ virtual const Constant &
+ Find_Constant(
+ Ce_id i_nId ) const = 0;
+ virtual const StructElement &
+ Find_StructElement(
+ Ce_id i_nId ) const = 0;
+ virtual void Get_Text(
+ StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const CodeEntity & i_ce ) const = 0;
+ virtual const NameLookup &
+ NameDictionary() const = 0;
+ virtual void Get_AlphabeticalIndex(
+ std::vector<Ce_id> &
+ o_rResult,
+ alphabetical_index::E_Letter
+ i_cLetter) const = 0;
+ // ACCESS
+ virtual Module & GlobalNamespace() = 0;
+ virtual CodeEntity &
+ Find_Ce(
+ Ce_id i_nId ) = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/idl/ip_type.hxx b/autodoc/inc/ary/idl/ip_type.hxx
new file mode 100644
index 000000000000..7936bab40bff
--- /dev/null
+++ b/autodoc/inc/ary/idl/ip_type.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IP_TYPE_HXX
+#define ARY_IDL_IP_TYPE_HXX
+
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+
+
+
+
+namespace ary
+{
+ class QualifiedName;
+
+namespace idl
+{
+ class Type;
+ class ExplicitNameRoom;
+
+
+/** Access point to all {->Type}s in IDL.
+*/
+class TypePilot
+{
+ public:
+ // LIFECYCLE
+ virtual ~TypePilot() {}
+
+ // OPERATIONS
+ virtual const Type &
+ CheckIn_Type(
+ QualifiedName & i_rFullName,
+ uintt i_nSequenceCount,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters ) = 0;
+ // INQUIRY
+ virtual const Type &
+ Find_Type(
+ Type_id i_nType ) const = 0;
+ virtual String Search_LocalNameOf(
+ Type_id i_nType ) const = 0;
+ virtual Ce_id Search_CeRelatedTo(
+ Type_id i_nType ) const = 0;
+ virtual const ExplicitNameRoom &
+ Find_XNameRoom(
+ Type_id i_nType ) const = 0;
+ virtual bool IsBuiltInOrRelated(
+ const Type & i_rType ) const = 0;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/info/all_dts.hxx b/autodoc/inc/ary/info/all_dts.hxx
new file mode 100644
index 000000000000..58aee2a5e50d
--- /dev/null
+++ b/autodoc/inc/ary/info/all_dts.hxx
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_ALL_DTS_HXX
+#define ARY_INFO_ALL_DTS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuDisplay;
+
+class DocuToken
+{
+ public:
+ virtual ~DocuToken() {}
+
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ bool IsWhite() const;
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const = 0;
+ virtual bool inq_IsWhite() const = 0;
+};
+
+class DT_Text : public DocuToken
+{
+ public:
+ DT_Text(
+ const char * i_sText )
+ : sText( i_sText ) {}
+
+ const String & Text() const { return sText; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+};
+
+class DT_MaybeLink : public DocuToken
+{
+ public:
+ DT_MaybeLink(
+ const char * i_sText,
+ bool i_bIsGlobal,
+ bool i_bIsFunction )
+ : sText( i_sText ),
+ bIsGlobal(i_bIsGlobal),
+ bIsFunction(i_bIsFunction) { }
+
+ const String & Text() const { return sText; }
+ bool IsAbsolute() const { return bIsGlobal; }
+ bool IsFunction() const { return bIsFunction; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+ bool bIsGlobal;
+ bool bIsFunction;
+};
+
+class DT_Whitespace : public DocuToken
+{
+ public:
+ DT_Whitespace(
+ UINT8 i_nLength )
+ : nLength( i_nLength ) {}
+ UINT8 Length() const { return nLength; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ UINT8 nLength;
+};
+
+
+class DT_Eol : public DocuToken
+{
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+};
+
+class DT_Xml : public DocuToken
+{
+ public:
+ DT_Xml(
+ const char * i_sText )
+ : sText( i_sText ) {}
+
+ const String & Text() const { return sText; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual bool inq_IsWhite() const;
+
+ String sText;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+DocuToken::StoreAt( DocuDisplay & o_rDisplay ) const
+ { do_StoreAt(o_rDisplay); }
+inline bool
+DocuToken::IsWhite() const
+ { return inq_IsWhite(); }
+
+
+
+}
+}
+
+#endif
+
diff --git a/autodoc/inc/ary/info/all_tags.hxx b/autodoc/inc/ary/info/all_tags.hxx
new file mode 100644
index 000000000000..bd2de713f22c
--- /dev/null
+++ b/autodoc/inc/ary/info/all_tags.hxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_ALL_TAGS_HXX
+#define ARY_INFO_ALL_TAGS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/info/ci_attag.hxx>
+ // COMPONENTS
+#include <ary/info/inftypes.hxx>
+#include <ary/info/ci_text.hxx>
+#include <ary/qualiname.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace info
+{
+
+
+class StdTag : public AtTag
+{
+ public:
+ StdTag(
+ E_AtTagId i_eId );
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ void ChangeId2(
+ E_AtTagId i_eId )
+ { eId = i_eId; }
+
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ E_AtTagId Std_Id() const { return eId; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ E_AtTagId eId;
+ DocuText aText;
+ StdTag * pNext;
+};
+
+class BaseTag : public AtTag
+{
+ public:
+ BaseTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sBase;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class ExceptionTag : public AtTag
+{
+ public:
+ ExceptionTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sException;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class ImplementsTag : public AtTag
+{
+ public:
+ ImplementsTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ QualifiedName sName;
+ AtTag * pNext;
+};
+
+class KeywordTag : public AtTag
+{
+ public:
+ KeywordTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ StringVector sKeys;
+};
+
+class ParameterTag : public AtTag
+{
+ public:
+ ParameterTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+
+ const String & ParamName() const { return sName; }
+ const DocuText & CText() const { return aText; }
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual const ParameterTag *
+ GetNext() const { return dynamic_cast< ParameterTag* >(pNext); }
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ String sName;
+ String sValidRange;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class SeeTag : public AtTag
+{
+ public:
+ SeeTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ const std::vector< QualifiedName > &
+ References() const { return sReferences; }
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ std::vector< QualifiedName >
+ sReferences;
+};
+
+class TemplateTag : public AtTag
+{
+ public:
+ TemplateTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ const DocuText & CText() const { return aText; }
+ virtual const char *
+ Title() const;
+ const String & TplParamName() const { return sName; }
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual const TemplateTag *
+ GetNext() const { return dynamic_cast< TemplateTag* >(pNext); }
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ String sName;
+ DocuText aText;
+ AtTag * pNext;
+};
+
+class LabelTag : public AtTag
+{
+ public:
+ LabelTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ private:
+ virtual DocuText * Text();
+
+ String sLabel;
+};
+
+class SinceTag : public AtTag
+{
+ public:
+ SinceTag();
+
+ virtual bool Add_SpecialMeaningToken(
+ const char * i_sText,
+ intt i_nNr );
+ virtual const char *
+ Title() const;
+ virtual UINT8 NrOfSpecialMeaningTokens() const;
+ virtual AtTag * GetFollower();
+
+ const String & Version() const { return sVersion; }
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ virtual DocuText * Text();
+
+ // Data
+ String sVersion;
+};
+
+
+
+// IMPLEMENTATION
+
+
+}
+}
+
+#endif
+
diff --git a/autodoc/inc/ary/info/ci_attag.hxx b/autodoc/inc/ary/info/ci_attag.hxx
new file mode 100644
index 000000000000..da487a86f7fb
--- /dev/null
+++ b/autodoc/inc/ary/info/ci_attag.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_CI_ATTAG_HXX
+#define ARY_INFO_CI_ATTAG_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuText;
+class DocuDisplay;
+
+class AtTag
+{
+ public:
+ virtual ~AtTag() {}
+
+ void Set_HtmlUseInDocuText(
+ bool i_bUseIt );
+ virtual bool Add_SpecialMeaningToken( /// @return false, if token was not special.
+ const char * i_sText,
+ intt i_nNr ) = 0;
+ virtual void Add_Token(
+ const char * i_sText );
+ virtual void Add_PotentialLink(
+ const char * i_sText,
+ bool i_bIsGlobal,
+ bool i_bIsFunction );
+ virtual void Add_Whitespace(
+ UINT8 i_nLength );
+ virtual void Add_Eol();
+
+ virtual UINT8 NrOfSpecialMeaningTokens() const = 0;
+ virtual AtTag * GetFollower() = 0;
+
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ const DocuText & CText() const;
+
+ private:
+ virtual void do_StoreAt(
+ DocuDisplay & o_rDisplay ) const; // later becoming abstract
+
+ virtual DocuText * Text() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+inline void
+AtTag::StoreAt( DocuDisplay & o_rDisplay ) const
+ { do_StoreAt(o_rDisplay); }
+inline const DocuText &
+AtTag::CText() const
+ { DocuText * ret = const_cast< AtTag* >(this)->Text();
+ csv_assert( ret != 0 );
+ return *ret;
+ }
+
+
+}
+}
+
+#endif
+
diff --git a/autodoc/inc/ary/info/ci_text.hxx b/autodoc/inc/ary/info/ci_text.hxx
new file mode 100644
index 000000000000..c2dce2bfd11a
--- /dev/null
+++ b/autodoc/inc/ary/info/ci_text.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_CI_TEXT_HXX
+#define ARY_INFO_CI_TEXT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+class DocuToken;
+class DocuDisplay;
+
+
+class DocuText
+{
+ public:
+ typedef std::vector< DocuToken * > TokenList;
+
+ DocuText();
+ ~DocuText();
+
+ void Set_HtmlUse(
+ bool i_bUseIt )
+ { bUsesHtml = i_bUseIt; }
+ void Add_Token(
+ DYN DocuToken & let_drToken )
+ { aTokens.push_back(&let_drToken); }
+ const TokenList & Tokens() const { return aTokens; }
+ void StoreAt(
+ DocuDisplay & o_rDisplay ) const;
+ bool IsNoHtml() const { return NOT bUsesHtml; }
+ bool IsEmpty() const { return aTokens.size() == 0; }
+
+ private:
+ TokenList aTokens;
+ bool bUsesHtml;
+};
+
+
+
+
+
+
+// IMPLEMENTATION
+
+
+}
+}
+
+#endif
+
diff --git a/autodoc/inc/ary/info/docstore.hxx b/autodoc/inc/ary/info/docstore.hxx
new file mode 100644
index 000000000000..421904ab94fd
--- /dev/null
+++ b/autodoc/inc/ary/info/docstore.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_DOCSTORE_HXX
+#define ARY_INFO_DOCSTORE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/info/inftypes.hxx>
+
+namespace ary
+{
+namespace doc
+{
+ class Node;
+}
+
+
+
+namespace info
+{
+
+class DocuStore
+{
+ public:
+ virtual ~DocuStore() {}
+
+ void Store2CurFile(
+ DYN doc::Node & let_drDocu );
+ void Store2CurNamespace(
+ DYN doc::Node & let_drDocu );
+
+ void Store2ConnectedDeclaration(
+ DYN doc::Node & let_drDocu );
+
+ void Store2Glossary(
+ DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm );
+ void Store2GlobalTexts(
+ DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId
+ i_nId );
+ private:
+ virtual void do_Store2CurFile(
+ DYN doc::Node & let_drDocu ) = 0;
+ virtual void do_Store2CurNamespace(
+ DYN doc::Node & let_drDocu ) = 0;
+
+ virtual void do_Store2ConnectedDeclaration(
+ DYN doc::Node & let_drDocu ) = 0;
+
+ virtual void do_Store2Glossary(
+ DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm ) = 0;
+ virtual void do_Store2GlobalTexts(
+ DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId
+ i_nId ) = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+DocuStore::Store2CurFile( DYN doc::Node & let_drDocu )
+ { do_Store2CurFile(let_drDocu); }
+inline void
+DocuStore::Store2CurNamespace( DYN doc::Node & let_drDocu )
+ { do_Store2CurNamespace(let_drDocu); }
+inline void
+DocuStore::Store2ConnectedDeclaration( DYN doc::Node & let_drDocu )
+ { do_Store2ConnectedDeclaration(let_drDocu); }
+inline void
+DocuStore::Store2Glossary( DYN doc::Node & let_drDocu,
+ const String & i_sExplainedTerm )
+ { do_Store2Glossary(let_drDocu, i_sExplainedTerm); }
+inline void
+DocuStore::Store2GlobalTexts( DYN doc::Node & let_drDocu,
+ ary::info::GlobalTextId i_nId )
+ { do_Store2GlobalTexts(let_drDocu, i_nId); }
+
+
+
+
+} // namespace info
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/info/infodisp.hxx b/autodoc/inc/ary/info/infodisp.hxx
new file mode 100644
index 000000000000..f486a2292f8d
--- /dev/null
+++ b/autodoc/inc/ary/info/infodisp.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_INFODISP_HXX
+#define ARY_INFO_INFODISP_HXX
+// KORR_DEPRECATED_3.0
+
+// BASE CLASSES
+// USED SERVICES
+
+
+
+
+namespace ary
+{
+namespace info
+{
+ class StdTag;
+ class BaseTag;
+ class ExceptionTag;
+ class ImplementsTag;
+ class KeywordTag;
+ class ParameterTag;
+ class SeeTag;
+ class TemplateTag;
+ class LabelTag;
+ class SinceTag;
+ class DT_Text;
+ class DT_MaybeLink;
+ class DT_Whitespace;
+ class DT_Eol;
+ class DT_Xml;
+
+
+
+/** Displaying an ary::doc::OldCppDocu.
+
+ @descr
+ This class is an interface, but the functions are defaulted,
+ to do nothing. so a derived class needn't implement all of them.
+*/
+class DocuDisplay
+{
+ public:
+ virtual ~DocuDisplay() {}
+
+ virtual void Display_StdTag(
+ const StdTag & i_rData ) = 0;
+ virtual void Display_BaseTag(
+ const BaseTag & i_rData ) = 0;
+ virtual void Display_ExceptionTag(
+ const ExceptionTag &
+ i_rData ) = 0;
+ virtual void Display_ImplementsTag(
+ const ImplementsTag &
+ i_rData ) = 0;
+ virtual void Display_KeywordTag(
+ const KeywordTag & i_rData ) = 0;
+ virtual void Display_ParameterTag(
+ const ParameterTag &
+ i_rData ) = 0;
+ virtual void Display_SeeTag(
+ const SeeTag & i_rData ) = 0;
+ virtual void Display_TemplateTag(
+ const TemplateTag & i_rData ) = 0;
+ virtual void Display_LabelTag(
+ const LabelTag & i_rData ) = 0;
+ virtual void Display_SinceTag(
+ const ary::info::SinceTag &
+ i_rData ) = 0;
+ virtual void Display_DT_Text(
+ const DT_Text & i_rData ) = 0;
+ virtual void Display_DT_MaybeLink(
+ const DT_MaybeLink& i_rData ) = 0;
+ virtual void Display_DT_Whitespace(
+ const DT_Whitespace &
+ i_rData ) = 0;
+ virtual void Display_DT_Eol(
+ const DT_Eol & i_rData ) = 0;
+ virtual void Display_DT_Xml(
+ const ary::info::DT_Xml &
+ i_rData ) = 0;
+};
+
+
+
+
+}
+}
+#endif
diff --git a/autodoc/inc/ary/info/inftypes.hxx b/autodoc/inc/ary/info/inftypes.hxx
new file mode 100644
index 000000000000..0bf330670063
--- /dev/null
+++ b/autodoc/inc/ary/info/inftypes.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_INFO_INFTYPES_HXX
+#define ARY_INFO_INFTYPES_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+
+
+
+
+typedef uintt GlobalTextId;
+
+
+
+/** Because this enum is used as index list for displayed
+ tag headlines, the items must neither be moved nor deleted.
+ Only adding to the end is allowed. atid_MAX always has to exist
+ and to be the last used value.
+ Also assigning numbers to the values is forbidden.
+*/
+enum E_AtTagId
+{
+ atid_ATT = 0,
+ atid_author,
+ atid_change,
+ atid_collab,
+ atid_contact,
+
+ atid_copyright,
+ atid_deprecated,
+ atid_descr,
+ atid_docdate,
+ atid_derive,
+
+ atid_dyn,
+ atid_instance,
+ atid_interface,
+ atid_invariant,
+ atid_life,
+
+ atid_multi,
+ atid_onerror,
+ atid_persist,
+ atid_postcond,
+ atid_precond,
+
+ atid_resp,
+ atid_return,
+ atid_short,
+ atid_todo,
+ atid_version,
+
+ atid_MAX
+};
+
+/** Because this enum is used as index list for displayed
+ tag headlines, the items must neither be moved nor deleted.
+ Only adding to the end is allowed. C_eAtTag_NrOfClasses always has to exist
+ and to be the last used value.
+ Also assigning other numbers to the values, than in this
+ existing scheme, is forbidden.
+*/
+enum E_AtTagClass
+{
+ atc_std = 0,
+
+ atc_base = atid_MAX,
+ atc_exception = atid_MAX + 1,
+ atc_implements = atid_MAX + 2,
+ atc_keyword = atid_MAX + 3,
+ atc_parameter = atid_MAX + 4,
+
+ atc_see = atid_MAX + 5,
+ atc_template = atid_MAX + 6,
+ atc_label = atid_MAX + 7,
+ atc_since = atid_MAX + 8,
+ C_eAtTag_NrOfClasses
+};
+
+
+
+} // namespace info
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary/itrange.hxx b/autodoc/inc/ary/itrange.hxx
new file mode 100644
index 000000000000..2c8b625b0c16
--- /dev/null
+++ b/autodoc/inc/ary/itrange.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ITRANGE_HXX
+#define ARY_ITRANGE_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <utility>
+
+
+
+
+namespace ary
+{
+
+template <typename ITER>
+class IteratorRange
+{
+ public:
+ IteratorRange(
+ ITER i_begin,
+ ITER i_end )
+ : itCurrent(i_begin),
+ itEnd(i_end)
+ {}
+ IteratorRange(
+ std::pair<ITER,ITER>
+ i_range )
+ : itCurrent(i_range.first),
+ itEnd(i_range.second)
+ {}
+
+ operator bool() const { return itCurrent != itEnd; }
+ IteratorRange & operator++() { ++itCurrent; return *this; }
+
+ ITER cur() const { return itCurrent; }
+ ITER end() const { return itEnd; }
+
+
+ private:
+ // DATA
+ ITER itCurrent;
+ ITER itEnd;
+};
+
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_dir.hxx b/autodoc/inc/ary/loc/loc_dir.hxx
new file mode 100644
index 000000000000..4d63d526b6df
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_dir.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_DIR_HXX
+#define ARY_LOC_DIR_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+
+// USED SERVICES
+#include <ary/loc/loc_traits.hxx>
+#include <ary/symtreenode.hxx>
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents a directory for source code files.
+*/
+class Directory : public LocationEntity
+{
+ public:
+ enum E_ClassId { class_id = 7030 };
+
+ typedef ::ary::symtree::Node<LeNode_Traits> node_t;
+
+ /// Used for root directories.
+ explicit Directory(
+ Le_id i_assignedRoot );
+
+ /// Used for subdirectories which have a parent directory.
+ Directory(
+ const String & i_localName,
+ Le_id i_parentDirectory );
+ virtual ~Directory();
+
+ void Add_Dir(
+ const Directory & i_dir );
+ void Add_File(
+ const File & i_file );
+
+ Le_id Parent() const;
+ Le_id AssignedRoot() const;
+
+ Le_id Search_Dir(
+ const String & i_name ) const;
+ Le_id Search_File(
+ const String & i_name ) const;
+
+ const node_t & AsNode() const;
+ node_t & AsNode();
+
+ private:
+ struct Container;
+
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ String sLocalName;
+ Le_id nParentDirectory;
+ Le_id nAssignedRoot;
+ node_t aAssignedNode;
+ Dyn<Container> pChildren;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Le_id
+Directory::Parent() const
+{
+ return nParentDirectory;
+}
+
+inline Le_id
+Directory::AssignedRoot() const
+{
+ return nAssignedRoot;
+}
+
+inline const Directory::node_t &
+Directory::AsNode() const
+{
+ return aAssignedNode;
+}
+
+inline Directory::node_t &
+Directory::AsNode()
+{
+ return aAssignedNode;
+}
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_file.hxx b/autodoc/inc/ary/loc/loc_file.hxx
new file mode 100644
index 000000000000..63586ad4977d
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_file.hxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_FILE_HXX
+#define ARY_LOC_FILE_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_filebase.hxx>
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents an unspecified source code file.
+*/
+class File : public FileBase
+{
+ public:
+ enum E_ClassId { class_id = 7100 };
+
+ File(
+ const String & i_sLocalName,
+ Le_id i_nParentDirectory );
+ virtual ~File();
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_filebase.hxx b/autodoc/inc/ary/loc/loc_filebase.hxx
new file mode 100644
index 000000000000..8cb5c98cbc85
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_filebase.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_FILEBASE_HXX
+#define ARY_LOC_FILEBASE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Base class for classes representing source code files.
+*/
+class FileBase : public LocationEntity
+{
+ public:
+ virtual ~FileBase() {}
+
+ protected:
+ FileBase(
+ const String & i_localName ,
+ Le_id i_parentDirectory );
+ private:
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ String sLocalName;
+ Le_id nParentDirectory;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_le.hxx b/autodoc/inc/ary/loc/loc_le.hxx
new file mode 100644
index 000000000000..fdf3ad077df5
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_le.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_LE_HXX
+#define ARY_LOC_LE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/entity.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/loc/loc_types4loc.hxx>
+#include <ary/loc/loc_traits.hxx>
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Base class for all file locations in the Autodoc repository.
+*/
+class LocationEntity : public ::ary::Entity
+{
+ public:
+ typedef Le_Traits traits_t;
+
+ virtual ~LocationEntity() {}
+
+ Le_id LeId() const;
+ const String & LocalName() const;
+ Le_id ParentDirectory() const;
+
+ private:
+ virtual const String &
+ inq_LocalName() const = 0;
+ virtual Le_id inq_ParentDirectory() const = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline Le_id
+LocationEntity::LeId() const
+{
+ return TypedId<LocationEntity>(Id());
+}
+
+inline const String &
+LocationEntity::LocalName() const
+{
+ return inq_LocalName();
+}
+
+inline Le_id
+LocationEntity::ParentDirectory() const
+{
+ return inq_ParentDirectory();
+}
+
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_root.hxx b/autodoc/inc/ary/loc/loc_root.hxx
new file mode 100644
index 000000000000..5b789a8cbeaa
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_root.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_PROJECT_HXX
+#define ARY_LOC_PROJECT_HXX
+
+// BASE CLASSES
+#include <ary/loc/loc_le.hxx>
+// USED SERVICES
+#include <cosv/ploc.hxx>
+#include <ary/loc/loc_dir.hxx>
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Represents a root directory for source files.
+*/
+class Root : public LocationEntity
+{
+ public:
+ enum E_ClassId { class_id = 7000 };
+
+ explicit Root(
+ const csv::ploc::Path &
+ i_rRootDirectoryPath );
+ void Assign_Directory(
+ Le_id i_assignedDirectory );
+ virtual ~Root();
+
+ // INQUIRY
+ const csv::ploc::Path &
+ Path() const;
+ Le_id MyDir() const;
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface ary::Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface LocationEntity:
+ virtual const String &
+ inq_LocalName() const;
+ virtual Le_id inq_ParentDirectory() const;
+
+ // DATA
+ csv::ploc::Path aPath;
+ String sPathAsString;
+ Le_id aMyDirectory;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+Root::Assign_Directory(Le_id i_assignedDirectory)
+{
+ aMyDirectory = i_assignedDirectory;
+}
+
+inline const csv::ploc::Path &
+Root::Path() const
+{
+ return aPath;
+}
+
+inline Le_id
+Root::MyDir() const
+{
+ return aMyDirectory;
+}
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_traits.hxx b/autodoc/inc/ary/loc/loc_traits.hxx
new file mode 100644
index 000000000000..52cd6dd9b22b
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_traits.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_TRAITS_HXX
+#define ARY_LOC_TRAITS_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace symtree
+{
+ template <class> class Node;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Basic traits for derived ones of ->LocationEntity.
+*/
+struct Le_Traits
+{
+ typedef LocationEntity entity_base_type;
+ typedef Le_id id_type;
+
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+};
+
+
+/** An instance of SYMBOL_TRAITS for ->::ary::symtree::Node.
+
+ @see ::ary::symtree::Node
+*/
+struct LeNode_Traits : public Le_Traits
+{
+ static symtree::Node<LeNode_Traits> *
+ NodeOf_(
+ entity_base_type & i_entity );
+
+ static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ template <class KEY>
+ static id_type Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+};
+
+
+
+/** An instance of COMPARE for ->::ary::SortedIds<>.
+
+ @see ::ary::SortedIds<>
+*/
+struct Le_Compare : public Le_Traits
+{
+ typedef String key_type;
+
+ static const key_type &
+ KeyOf_(
+ const entity_base_type &
+ i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+};
+
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/loc_types4loc.hxx b/autodoc/inc/ary/loc/loc_types4loc.hxx
new file mode 100644
index 000000000000..fd45476a7187
--- /dev/null
+++ b/autodoc/inc/ary/loc/loc_types4loc.hxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_TYPES4LOC_HXX
+#define ARY_LOC_TYPES4LOC_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+namespace loc
+{
+
+class LocationEntity;
+
+
+
+typedef ::ary::TypedId<LocationEntity> Le_id;
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/loc/locp_le.hxx b/autodoc/inc/ary/loc/locp_le.hxx
new file mode 100644
index 000000000000..585282f233f6
--- /dev/null
+++ b/autodoc/inc/ary/loc/locp_le.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOCP_LE_HXX
+#define ARY_LOCP_LE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <cosv/ploc.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+namespace ary
+{
+namespace loc
+{
+ class Root;
+ class Directory;
+ class File;
+}
+}
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+
+/** Provides access to files and directories stored in the
+ repository.
+*/
+class LocationPilot
+{
+ public:
+ virtual ~LocationPilot() {}
+
+ virtual Root & CheckIn_Root(
+ const csv::ploc::Path &
+ i_rPath ) = 0;
+ virtual File & CheckIn_File(
+ const String & i_name,
+ const csv::ploc::DirectoryChain &
+ i_subPath,
+ Le_id i_root ) = 0;
+
+ virtual Root & Find_Root(
+ Le_id i_id ) const = 0;
+ virtual Directory & Find_Directory(
+ Le_id i_id ) const = 0;
+ virtual File & Find_File(
+ Le_id i_id ) const = 0;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/namesort.hxx b/autodoc/inc/ary/namesort.hxx
new file mode 100644
index 000000000000..bb766a3773d1
--- /dev/null
+++ b/autodoc/inc/ary/namesort.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_NAMESORT_HXX
+#define ARY_NAMESORT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+/** Provides sensible sorting of ASCII names in programming languages.
+
+ @descr
+ Names are compared case insensitive first. Only after they appear
+ equal that way, there is an additional case sensitive comparison.
+ The second comparison sorts upper case before lower case.
+
+*/
+struct LesserName
+{
+ bool operator()(
+ const String & i_s1,
+ const String & i_s2 ) const;
+ private:
+ // DATA
+
+ static const csv::CharOrder_Table
+ aOrdering1_;
+ static const csv::CharOrder_Table
+ aOrdering2_;
+};
+
+inline bool
+LesserName::operator()( const String & i_s1,
+ const String & i_s2 ) const
+{
+ int result = i_s1.compare(aOrdering1_,i_s2);
+ if (result == 0)
+ result = i_s1.compare(aOrdering2_,i_s2);
+ return result < 0;
+}
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/object.hxx b/autodoc/inc/ary/object.hxx
new file mode 100644
index 000000000000..8212312f8ec7
--- /dev/null
+++ b/autodoc/inc/ary/object.hxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_OBJECT_HXX
+#define ARY_OBJECT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/types.hxx>
+
+
+namespace ary
+{
+
+
+/** Interface for every class, that is stored within the
+ Autodoc Repository.
+*/
+class Object : public csv::ConstProcessorClient
+{
+ public:
+ virtual ~Object() {}
+
+ /// @return Type id of most derived class.
+ ClassId AryClass() const;
+
+ private:
+ virtual ClassId get_AryClass() const = 0;
+};
+
+
+
+inline ClassId
+Object::AryClass() const
+{
+ return get_AryClass();
+}
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/qualiname.hxx b/autodoc/inc/ary/qualiname.hxx
new file mode 100644
index 000000000000..94a886968d10
--- /dev/null
+++ b/autodoc/inc/ary/qualiname.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_QUALINAME_HXX
+#define ARY_QUALINAME_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <cosv/tpl/tpltools.hxx>
+
+
+namespace ary
+{
+
+class QualifiedName
+{
+ public:
+ typedef StringVector::const_iterator namespace_iterator;
+
+ QualifiedName(
+ uintt i_nSize = 0);
+
+ /// @see AssignText()
+ QualifiedName(
+ const char * i_sText,
+ const char * i_sSeparator );
+ ~QualifiedName();
+
+ QualifiedName & operator+=(
+ const String & i_sNamespaceName )
+ { if (i_sNamespaceName.length() > 0)
+ aNamespace.push_back(i_sNamespaceName);
+ return *this; }
+ /// @precond i_nIndex < NamespaceDepth().
+ String & operator[](
+ uintt i_nIndex )
+ { csv_assert(i_nIndex < aNamespace.size());
+ return aNamespace[i_nIndex]; }
+ void Init(
+ bool i_bAbsolute )
+ { Empty(); bIsAbsolute = i_bAbsolute; }
+ /** Reads a qualified name from a string.
+ If the last two charcters are "()", the inquiry IsFunction() will return
+ true.
+ */
+ void AssignText(
+ const char * i_sText,
+ const char * i_sSeparator );
+ void SetLocalName(
+ const String & i_sLocalName )
+ { sLocalName = i_sLocalName; }
+ void Empty() { csv::erase_container(aNamespace); sLocalName.clear(); bIsAbsolute = false; }
+
+ const String & LocalName() const { return sLocalName; }
+ namespace_iterator first_namespace() const { return aNamespace.begin(); }
+ namespace_iterator end_namespace() const { return aNamespace.end(); }
+ uintt NamespaceDepth() const { return aNamespace.size(); }
+
+ bool IsAbsolute() const { return bIsAbsolute; }
+ bool IsQualified() const { return aNamespace.size() > 0; }
+ bool IsFunction() const { return bIsFunction; }
+
+ private:
+ // DATA
+ StringVector aNamespace;
+ String sLocalName;
+ bool bIsAbsolute; /// true := beginning with "::".
+ bool bIsFunction; /// true := ending with "()"
+};
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/sequentialids.hxx b/autodoc/inc/ary/sequentialids.hxx
new file mode 100644
index 000000000000..94b6cfa4823e
--- /dev/null
+++ b/autodoc/inc/ary/sequentialids.hxx
@@ -0,0 +1,153 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SEQUENTIALIDS_HXX
+#define ARY_SEQUENTIALIDS_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+#include <algorithm>
+
+
+
+namespace ary
+{
+
+
+/** Implementation of a set of children to an entity in the Autodoc
+ repository. The children are in the sequence of addition.
+*/
+template<class ID>
+class SequentialIds
+{
+ public:
+ typedef std::vector<ID> data_t;
+ typedef typename data_t::const_iterator const_iterator;
+
+ // LIFECYCLE
+ explicit SequentialIds(
+ std::size_t i_reserve = 0 );
+ ~SequentialIds();
+
+ // OPERATIONS
+ void Add(
+ const ID & i_child );
+ // INQUIRY
+ const_iterator Begin() const;
+ const_iterator End() const;
+ std::size_t Size() const;
+
+ template <class IDENTIFY>
+ ID Find(
+ IDENTIFY i_find ) const;
+ template <class IDENTIFY>
+ // Workaround for Solaris8 compiler: return type has to match alphabetically
+ typename std::vector<ID>::const_iterator
+ Search(
+ IDENTIFY i_find ) const;
+ private:
+ // DATA
+ data_t aData;
+};
+
+
+
+
+
+
+
+// IMPLEMENTATION
+
+template <class ID>
+SequentialIds<ID>::SequentialIds(std::size_t i_reserve)
+ : aData()
+{
+ if (i_reserve > 0)
+ aData.reserve(i_reserve);
+}
+
+template <class ID>
+SequentialIds<ID>::~SequentialIds()
+{
+}
+
+template <class ID>
+inline void
+SequentialIds<ID>::Add(const ID & i_child)
+{
+ aData.push_back(i_child);
+}
+
+template <class ID>
+inline typename SequentialIds<ID>::const_iterator
+SequentialIds<ID>::Begin() const
+{
+ return aData.begin();
+}
+
+template <class ID>
+inline typename SequentialIds<ID>::const_iterator
+SequentialIds<ID>::End() const
+{
+ return aData.end();
+}
+
+template <class ID>
+inline std::size_t
+SequentialIds<ID>::Size() const
+{
+ return aData.size();
+}
+
+template <class ID>
+template <class IDENTIFY>
+ID
+SequentialIds<ID>::Find(IDENTIFY i_find) const
+{
+ const_iterator
+ ret = std::find_if(aData.begin(), aData.end(), i_find);
+ csv_assert(ret != aData.end());
+ return *ret;
+}
+
+template <class ID>
+template <class IDENTIFY>
+// Workaround for Solaris8 compiler: return type has to match alphabetically
+// typename SequentialIds<ID>::const_iterator
+typename std::vector<ID>::const_iterator
+SequentialIds<ID>::Search(IDENTIFY i_find) const
+{
+ return std::find_if(aData.begin(), aData.end(), i_find);
+}
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/stdconstiter.hxx b/autodoc/inc/ary/stdconstiter.hxx
new file mode 100644
index 000000000000..5b05ff6279ea
--- /dev/null
+++ b/autodoc/inc/ary/stdconstiter.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_STDCONSTITER_HXX
+#define ARY_STDCONSTITER_HXX
+// KORR_DEPRECATED_3.0
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+
+template <class ELEM>
+
+class StdConstIterator
+{
+ public:
+ virtual ~StdConstIterator() {}
+
+ void operator++() { do_Advance(); }
+ const ELEM & operator*() const { return *inq_CurElement(); }
+ operator bool() const { return inq_CurElement() != 0; }
+
+ /// Needed as replacement for operator bool() in gcc 2.95.
+ bool IsValid() const { return operator bool(); }
+ bool IsSorted() const { return inq_IsSorted(); }
+
+ protected:
+ StdConstIterator() {}
+
+ private:
+ //Locals
+ virtual void do_Advance() = 0;
+ virtual const ELEM *
+ inq_CurElement() const = 0;
+ virtual bool inq_IsSorted() const = 0;
+
+ // Forbidden:
+ StdConstIterator(const StdConstIterator<ELEM>&);
+ StdConstIterator<ELEM> & operator=(const StdConstIterator<ELEM>&);
+};
+
+
+template <class ELEM>
+class Dyn_StdConstIterator
+{
+ public:
+ typedef StdConstIterator<ELEM> client_type;
+
+ Dyn_StdConstIterator(
+ DYN client_type * pass_dpIterator = 0 )
+ : pClient(pass_dpIterator) {}
+ Dyn_StdConstIterator<ELEM> &
+ operator=(
+ DYN client_type * pass_dpIterator )
+ { pClient = pass_dpIterator;
+ return *this; }
+ client_type & operator*() const { return *pClient.MutablePtr(); }
+
+ private:
+ Dyn<client_type> pClient;
+};
+
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/symtreenode.hxx b/autodoc/inc/ary/symtreenode.hxx
new file mode 100644
index 000000000000..8d2f07165ee2
--- /dev/null
+++ b/autodoc/inc/ary/symtreenode.hxx
@@ -0,0 +1,344 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SYMTREE_NODE_HXX
+#define ARY_SYMTREE_NODE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+
+namespace ary
+{
+namespace symtree
+{
+
+
+
+/** Represents a node in a tree of symbols like a namespace tree or a
+ directory tree.
+
+ @tpl NODE_TRAITS
+ Needs to define the types:
+ entity_base_type: The type of the entities in that storage,
+ e.g. ->ary::cpp::CodeEntity.
+ id_type: The type of the ids of those entities,
+ e.g. ->ary::cpp::Ce_id.
+
+ Needs to define the functions:
+ 1. static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+ 2. static symtree::Node<LeNode_Traits> *
+ NodeOf_(
+ const entity_base_type &
+ i_entity );
+ 3. static const String &
+ LocalNameOf_(
+ const entity_base_type &
+ i_entity );
+ 4. static entity_base_type *
+ ParentOf_(
+ const entity_base_type &
+ i_entity );
+ 5. template <class KEY>
+ static id_t Search_(
+ const entity_base_type &
+ i_entity,
+ const KEY & i_localKey );
+*/
+template <class NODE_TRAITS>
+class Node
+{
+ public:
+ typedef Node<NODE_TRAITS> node_self;
+ typedef typename NODE_TRAITS::entity_base_type entity_t;
+ typedef typename NODE_TRAITS::id_type id_t;
+
+
+ // LIFECYCLE
+ /// @attention Always needs to be followed by ->Assign_Entity()!
+ Node();
+ explicit Node(
+ entity_t & i_entity );
+ void Assign_Entity(
+ entity_t & i_entity );
+ ~Node();
+ // INQUIRY
+ id_t Id();
+ const String Name() const;
+ int Depth() const;
+ const entity_t & Entity() const;
+ const node_self * Parent() const;
+
+ /** Gets a child with a specific name and of a specific type.
+
+ There may be more childs with the same name.
+
+ @return id_t(0), if no matching child is found.
+ */
+ template <class KEY>
+ typename NODE_TRAITS::id_type
+ Search(
+ const KEY & i_localKey ) const
+ {
+ // Inline here to workaround SUNW8 compiler bug, works in SUNW12.
+ return NODE_TRAITS::Search_(Entity(), i_localKey);
+ }
+
+
+ /** Gets a child with a specific qualified name below this node.
+
+ The child may not exists.
+ */
+ template <class KEY>
+ void SearchBelow(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator
+ i_qualifiedSearchedName_begin,
+ StringVector::const_iterator
+ i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const;
+
+ /** Gets a child with a specific qualified name, either below this node
+ or below any of the parent nodes.
+
+ The child may not exists.
+ */
+ template <class KEY>
+ void SearchUp(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator
+ i_qualifiedSearchedName_begin,
+ StringVector::const_iterator
+ i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const;
+ // ACCESS
+ entity_t & Entity();
+ node_self * Parent();
+
+ private:
+ // Forbid copying:
+ Node(const node_self&);
+ node_self& operator=(const node_self&);
+
+ // Locals
+ void InitDepth();
+ node_self * Get_Parent() const;
+ node_self * NodeOf(
+ id_t i_id ) const;
+
+ // DATA
+ entity_t * pEntity;
+ int nDepth;
+};
+
+
+
+
+// IMPLEMENTATION
+
+template <class NODE_TRAITS>
+inline const typename Node<NODE_TRAITS>::entity_t &
+Node<NODE_TRAITS>::Entity() const
+{
+ csv_assert(pEntity != 0);
+ return *pEntity;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::NodeOf(id_t i_id) const
+{
+ if (i_id.IsValid())
+ return NODE_TRAITS::NodeOf_(NODE_TRAITS::EntityOf_(i_id));
+ return 0;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Get_Parent() const
+{
+ entity_t *
+ parent = NODE_TRAITS::ParentOf_(Entity());
+ if (parent != 0)
+ return NODE_TRAITS::NodeOf_(*parent);
+ return 0;
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::Node()
+ : pEntity(0),
+ nDepth(0)
+{
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::Node(entity_t & i_entity)
+ : pEntity(&i_entity),
+ nDepth(0)
+{
+ InitDepth();
+}
+
+template <class NODE_TRAITS>
+void
+Node<NODE_TRAITS>::Assign_Entity(entity_t & i_entity)
+{
+ pEntity = &i_entity;
+ InitDepth();
+}
+
+template <class NODE_TRAITS>
+Node<NODE_TRAITS>::~Node()
+{
+}
+
+template <class NODE_TRAITS>
+inline typename Node<NODE_TRAITS>::id_t
+Node<NODE_TRAITS>::Id()
+{
+ return NODE_TRAITS::IdOf(Entity());
+}
+
+template <class NODE_TRAITS>
+inline const String
+Node<NODE_TRAITS>::Name() const
+{
+ return NODE_TRAITS::LocalNameOf_(Entity());
+}
+
+template <class NODE_TRAITS>
+inline int
+Node<NODE_TRAITS>::Depth() const
+{
+ return nDepth;
+}
+
+template <class NODE_TRAITS>
+inline const Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Parent() const
+{
+ return Get_Parent();
+}
+
+template <class NODE_TRAITS>
+template <class KEY>
+void
+Node<NODE_TRAITS>::SearchBelow(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator i_qualifiedSearchedName_begin,
+ StringVector::const_iterator i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const
+{
+ if (i_qualifiedSearchedName_begin != i_qualifiedSearchedName_end)
+ {
+ id_t
+ next = Search(*i_qualifiedSearchedName_begin);
+ if (next.IsValid())
+ {
+ const node_self *
+ subnode = NodeOf(next);
+ if (subnode != 0)
+ {
+ subnode->SearchBelow( o_return,
+ i_qualifiedSearchedName_begin+1,
+ i_qualifiedSearchedName_end ,
+ i_localKey );
+ return;
+ }
+ }
+ o_return = id_t(0);
+ return;
+ }
+
+ o_return = Search(i_localKey);
+}
+
+template <class NODE_TRAITS>
+template <class KEY>
+void
+Node<NODE_TRAITS>::SearchUp(
+ id_t & o_return, // Workaround SUNW8 compiler bug
+ StringVector::const_iterator i_qualifiedSearchedName_begin,
+ StringVector::const_iterator i_qualifiedSearchedName_end,
+ const KEY & i_localKey ) const
+{
+ SearchBelow( o_return,
+ i_qualifiedSearchedName_begin,
+ i_qualifiedSearchedName_end,
+ i_localKey );
+ if (o_return.IsValid())
+ return;
+
+ node_self *
+ parent = Get_Parent();
+ if (parent != 0)
+ {
+ parent->SearchUp( o_return,
+ i_qualifiedSearchedName_begin,
+ i_qualifiedSearchedName_end,
+ i_localKey );
+ }
+}
+
+template <class NODE_TRAITS>
+typename Node<NODE_TRAITS>::entity_t &
+Node<NODE_TRAITS>::Entity()
+{
+ csv_assert(pEntity != 0);
+ return *pEntity;
+}
+
+template <class NODE_TRAITS>
+inline Node<NODE_TRAITS> *
+Node<NODE_TRAITS>::Parent()
+{
+ return Get_Parent();
+}
+
+template <class NODE_TRAITS>
+void
+Node<NODE_TRAITS>::InitDepth()
+{
+ Node<NODE_TRAITS> *
+ pp = Get_Parent();
+ if (pp != 0)
+ nDepth = pp->Depth() + 1;
+ else
+ nDepth = 0;
+}
+
+
+
+
+} // namespace symtree
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/types.hxx b/autodoc/inc/ary/types.hxx
new file mode 100644
index 000000000000..0f8d28c6b151
--- /dev/null
+++ b/autodoc/inc/ary/types.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_TYPES_HXX
+#define ARY_TYPES_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // OTHER
+
+
+namespace ary
+{
+
+
+typedef uintt Rid;
+typedef uintt ClassId;
+
+
+
+// Deprecated:
+typedef Rid Gid; /// Group Id. Id of a group.
+typedef UINT8 SlotAccessId; /// Access to a Slot
+typedef std::set< Rid, std::less< Rid > > Set_Rid;
+typedef std::vector<Rid> List_Rid;
+
+
+
+
+
+/** This is a global id, providing as well an entity's class as its
+ id.
+*/
+class GlobalId
+{
+ public:
+ GlobalId()
+ : nClass(0),
+ nId(0) {}
+ GlobalId(
+ ClassId i_class,
+ Rid i_id )
+ : nClass(i_class),
+ nId(i_id) {}
+ ~GlobalId() {}
+
+ bool IsValid() const { return nClass != 0
+ AND
+ nId != 0; }
+ ClassId Class() const { return nClass; }
+ Rid Id() const { return nId; }
+
+ private:
+ // DATA
+ ClassId nClass;
+ Rid nId;
+};
+
+
+typedef std::vector<GlobalId> List_GlobalIds;
+
+
+/** This is a typed repository id. It allows to get
+ an object of a specific type.
+*/
+template <class IFC>
+class TypedId
+{
+ public:
+ typedef TypedId<IFC> self;
+
+
+ explicit TypedId(
+ Rid i_nId = 0 )
+ : nId(i_nId) {}
+ TypedId<IFC> & operator=(
+ Rid i_nId )
+ { nId = i_nId; return *this; }
+ bool operator==(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return nId == i_nId.nId; }
+ bool operator!=(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return NOT operator==(i_nId); }
+ bool operator<(
+ const TypedId<IFC> &
+ i_nId ) const
+ { return nId < i_nId.nId; }
+
+ bool IsValid() const { return nId != 0; }
+ Rid Value() const { return nId; }
+
+ static self Null_() { return self(0); }
+
+ private:
+ // DATA
+ Rid nId;
+};
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary/udmhost.hxx b/autodoc/inc/ary/udmhost.hxx
new file mode 100644
index 000000000000..eca8b89c2894
--- /dev/null
+++ b/autodoc/inc/ary/udmhost.hxx
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_UDMHOST_HXX
+#define ARY_UDMHOST_HXX
+// KORR_DEPRECATED_3.0
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/host.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+
+
+
+class UdmHost : public Host
+{
+ public:
+ enum E_ClassId { class_id = 1000 };
+
+ UdmHost();
+ virtual ~UdmHost();
+
+ private:
+ virtual Host_ClassId
+ inq_ClassId() const;
+};
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/inc/ary_i/ci_atag2.hxx b/autodoc/inc/ary_i/ci_atag2.hxx
new file mode 100644
index 000000000000..db0caaa5d673
--- /dev/null
+++ b/autodoc/inc/ary_i/ci_atag2.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CI_ATAG2_HXX
+#define ARY_CI_ATAG2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <ary_i/ci_text2.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+class DocumentationDisplay;
+
+class AtTag2
+{
+ public:
+ virtual ~AtTag2() {}
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+
+ const char * Title() const { return sTitle; }
+ const DocuTex2 & Text() const { return aText; }
+ DocuTex2 & Access_Text() { return aText; }
+
+ protected:
+ AtTag2(
+ const char * i_sTitle)
+ : sTitle(i_sTitle) {}
+ String sTitle;
+ DocuTex2 aText;
+};
+
+
+
+// IMPLEMENTATION
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary_i/ci_text2.hxx b/autodoc/inc/ary_i/ci_text2.hxx
new file mode 100644
index 000000000000..fbc7fcbc4095
--- /dev/null
+++ b/autodoc/inc/ary_i/ci_text2.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CINFO_CI_TEXT2_HXX
+#define ARY_CINFO_CI_TEXT2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+class DocumentationDisplay;
+
+
+class DocuToken
+{
+ public:
+ virtual ~DocuToken() {}
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+ virtual bool IsWhiteOnly() const = 0;
+};
+
+
+class DocuTex2
+{
+ public:
+ typedef std::vector< DocuToken * > TokenList;
+
+ DocuTex2();
+ virtual ~DocuTex2();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ void AddToken(
+ DYN DocuToken & let_drToken );
+
+ const TokenList & Tokens() const { return aTokens; }
+ bool IsEmpty() const;
+ const String & TextOfFirstToken() const;
+
+ String & Access_TextOfFirstToken();
+
+ private:
+ TokenList aTokens;
+};
+
+
+
+// IMPLEMENTATION
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/ary_i/d_token.hxx b/autodoc/inc/ary_i/d_token.hxx
new file mode 100644
index 000000000000..39303321c015
--- /dev/null
+++ b/autodoc/inc/ary_i/d_token.hxx
@@ -0,0 +1,282 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef CSI_DSAPI_D_TOKEN_HXX
+#define CSI_DSAPI_D_TOKEN_HXX
+
+// BASE CLASSES
+#include <ary_i/ci_text2.hxx>
+#include <ary_i/ci_atag2.hxx>
+
+
+namespace ary
+{
+namespace inf
+{
+ class DocumentationDisplay;
+}
+}
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+using ary::inf::DocumentationDisplay;
+
+
+class DT_Dsapi : public ary::inf::DocuToken
+{
+ public:
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const = 0;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+
+class DT_TextToken : public DT_Dsapi
+{
+ public:
+ explicit DT_TextToken(
+ const char * i_sText )
+ : sText(i_sText) {}
+ explicit DT_TextToken(
+ const String & i_sText )
+ : sText(i_sText) {}
+ virtual ~DT_TextToken();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sText; }
+ const String & GetTextStr() const { return sText; }
+
+ String & Access_Text() { return sText; }
+
+ virtual bool IsWhiteOnly() const;
+
+ private:
+ String sText;
+};
+
+class DT_White : public DT_Dsapi
+{
+ public:
+ DT_White() {}
+ virtual ~DT_White();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+class DT_MLTag : public DT_Dsapi
+{
+ public:
+ enum E_Kind
+ {
+ k_unknown = 0,
+ k_begin,
+ k_end,
+ k_single
+ };
+};
+
+class DT_MupType : public DT_MLTag
+{
+ public:
+ explicit DT_MupType( /// Constructor for End-Tag
+ bool ) /// Must be there, but is not evaluated.
+ : bIsBegin(false) {}
+ explicit DT_MupType( /// Constructor for Begin-Tag
+ const String & i_sScope )
+ : sScope(i_sScope), bIsBegin(true) {}
+ virtual ~DT_MupType();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & Scope() const { return sScope; }
+ bool IsBegin() const { return bIsBegin; }
+
+ private:
+ String sScope;
+ bool bIsBegin;
+};
+
+class DT_MupMember : public DT_MLTag
+{
+ public:
+ explicit DT_MupMember( /// Constructor for End-Tag
+ bool ) /// Must be there, but is not evaluated.
+ : bIsBegin(false) {}
+ DT_MupMember( /// Constructor for Begin-Tag
+ const String & i_sScope )
+ : sScope(i_sScope), bIsBegin(true) {}
+ virtual ~DT_MupMember();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & Scope() const { return sScope; }
+ bool IsBegin() const { return bIsBegin; }
+
+ private:
+ String sScope;
+ bool bIsBegin;
+};
+
+class DT_MupConst : public DT_Dsapi
+{
+ public:
+ DT_MupConst(
+ const char * i_sConstText )
+ : sConstText(i_sConstText) {}
+ virtual ~DT_MupConst();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sConstText; }
+
+ private:
+ String sConstText; /// Without HTML.
+};
+
+
+class DT_Style : public DT_MLTag
+{
+ public:
+ DT_Style(
+ const char * i_sPlainHtmlTag,
+ bool i_bNewLine )
+ : sText(i_sPlainHtmlTag), bNewLine(i_bNewLine) {}
+ virtual ~DT_Style();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const char * GetText() const { return sText; }
+ bool IsStartOfNewLine() const
+ { return bNewLine; }
+ private:
+ String sText; /// With HTML.
+ E_Kind eKind;
+ bool bNewLine;
+};
+
+class DT_EOL : public DT_Dsapi
+{
+ public:
+ DT_EOL() {}
+ virtual ~DT_EOL();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ virtual bool IsWhiteOnly() const;
+};
+
+
+class DT_AtTag : public ary::inf::AtTag2
+{
+ public:
+ void AddToken(
+ DYN ary::inf::DocuToken &
+ let_drToken )
+ { aText.AddToken(let_drToken); }
+ void SetName(
+ const char * i_sName )
+ { sTitle = i_sName; }
+
+ protected:
+ DT_AtTag(
+ const char * i_sTitle )
+ : ary::inf::AtTag2(i_sTitle) {}
+};
+
+class DT_StdAtTag : public DT_AtTag
+{
+ public:
+ explicit DT_StdAtTag(
+ const char * i_sTitle )
+ : DT_AtTag(i_sTitle) {}
+ virtual ~DT_StdAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+class DT_SeeAlsoAtTag : public DT_AtTag
+{
+ public:
+ DT_SeeAlsoAtTag() : DT_AtTag("") {}
+ virtual ~DT_SeeAlsoAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+ const String & LinkText() const { return sTitle; } // Missbrauch von sTitle
+};
+
+class DT_ParameterAtTag : public DT_AtTag
+{
+ public:
+ DT_ParameterAtTag() : DT_AtTag("") {}
+ virtual ~DT_ParameterAtTag();
+
+ void SetTitle(
+ const char * i_sTitle );
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+class DT_SinceAtTag : public DT_AtTag
+{
+ public:
+ DT_SinceAtTag() : DT_AtTag("Since version") {}
+ virtual ~DT_SinceAtTag();
+
+ virtual void DisplayAt(
+ DocumentationDisplay &
+ o_rDisplay ) const;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/inc/ary_i/disdocum.hxx b/autodoc/inc/ary_i/disdocum.hxx
new file mode 100644
index 000000000000..51f708a751ea
--- /dev/null
+++ b/autodoc/inc/ary_i/disdocum.hxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_DISDOCUM_HXX
+#define ARY_DISDOCUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace dsapi
+{
+class DT_TextToken;
+class DT_MupType;
+class DT_MupMember;
+class DT_MupConst;
+class DT_Style;
+class DT_EOL;
+class DT_StdAtTag;
+class DT_SeeAlsoAtTag;
+class DT_ParameterAtTag;
+class DT_SinceAtTag;
+} // namespace dsapi
+} // namespace csi
+
+
+namespace ary
+{
+namespace inf
+{
+
+
+
+class DocumentationDisplay
+{
+ public:
+
+ virtual ~DocumentationDisplay() { }
+
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken ) = 0;
+ virtual void Display_White() = 0;
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType & i_rToken ) = 0;
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken ) = 0;
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken ) = 0;
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken ) = 0;
+ virtual void Display_EOL() = 0;
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken ) = 0;
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken ) = 0;
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken ) = 0;
+ virtual void Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag &
+ i_rToken ) = 0;
+};
+
+
+class DocuTag_Display : public DocumentationDisplay
+{
+ public:
+ // Dummies, implemented in source\ary_i\kernel\ci_atag2.cxx
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken );
+ virtual void Display_White();
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType & i_rToken );
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken );
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken );
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken );
+ virtual void Display_EOL();
+};
+
+class DocuText_Display : public DocumentationDisplay
+{
+ public:
+ // Dummies, implemented in source\ary_i\kernel\ci_text2.cxx
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken );
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken );
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken );
+ virtual void Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag &
+ i_rToken );
+};
+
+
+
+} // namespace inf
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/inc/autodoc/displaying.hxx b/autodoc/inc/autodoc/displaying.hxx
new file mode 100644
index 000000000000..8fb21c6b6ecb
--- /dev/null
+++ b/autodoc/inc/autodoc/displaying.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_DISPLAYING_HXX
+#define AUTODOC_DISPLAYING_HXX
+
+
+namespace display
+{
+ class CorporateFrame;
+}
+
+
+
+namespace autodoc
+{
+
+class HtmlDisplay_UdkStd;
+class HtmlDisplay_Idl_Ifc;
+
+// class TextDisplay_FunctionList_Ifc;
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class DisplayToolsFactory_Ifc
+{
+ public:
+ virtual ~DisplayToolsFactory_Ifc() {}
+ static DisplayToolsFactory_Ifc &
+ GetIt_();
+
+// virtual DYN autodoc::TextDisplay_FunctionList_Ifc *
+// Create_TextDisplay_FunctionList() const = 0;
+
+ virtual DYN autodoc::HtmlDisplay_UdkStd *
+ Create_HtmlDisplay_UdkStd() const = 0;
+ virtual DYN autodoc::HtmlDisplay_Idl_Ifc *
+ Create_HtmlDisplay_Idl() const = 0;
+
+ virtual const display::CorporateFrame &
+ Create_StdFrame() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+
+#endif
+
diff --git a/autodoc/inc/autodoc/dsp_html_std.hxx b/autodoc/inc/autodoc/dsp_html_std.hxx
new file mode 100644
index 000000000000..ff3beae8ff31
--- /dev/null
+++ b/autodoc/inc/autodoc/dsp_html_std.hxx
@@ -0,0 +1,213 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_DSP_HTML_STD_HXX
+#define AUTODOC_DSP_HTML_STD_HXX
+
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Gate;
+ }
+ namespace idl
+ {
+ class Gate;
+ }
+}
+
+namespace display
+{
+ class CorporateFrame;
+}
+
+
+namespace autodoc
+{
+
+
+class HtmlDisplay_UdkStd
+{
+ public:
+ virtual ~HtmlDisplay_UdkStd() {}
+
+ /** Displays the names of several C++ code entities within the
+ given namespace (or the global namespace as default). All
+ subnamespaces are included.
+
+ Output has following format:
+
+ =========================================================================
+ OutputDirectory
+ index.html
+ def-all.html
+ prj\
+ sal\
+ index.html // Overview about project
+
+ f-FileName[1,2,...] // Overview about file
+ f-OtherFileName[1,2,...]
+ ...
+ def-FileName[1,2,...] // #defines and macros in file
+ def-OtherFileName[1,2,...]
+ ...
+ rtl\
+ ...
+ cppu\
+ ...
+ cppuhelper\
+ ...
+ ...
+ ix\
+ ix-a.html
+ ix-b.html
+ ...
+ ix-z.html
+ ix-_.html
+ ix-other.html
+
+ cpp\
+ index.html // Overview about global namespace
+
+ Namespace_A\
+ Namespace_C\
+ index.html // Overview about namespace C
+ ...
+ ...
+
+ index.html // Overview about namespace A
+
+ c-ClassName_X.html // Description of class
+ ...
+ e-EnumName.html // Description of enum
+ ...
+ t-TypedefName.html // Description of typedef
+ ...
+ o-Filename.html // Descriptions of operations in this file in this namespace
+ ...
+ d-Filename.html // Descriptions of data in this file in this namespace
+ ...
+
+ ClassName_X\
+ c-ClassName_Y.html
+ e-EnumName.html
+ t-TypedefName.html
+ o.html // Descriptions of operations in class X
+ d.html // Descriptions of data in class X
+
+ ClassName_Y\
+ ...
+ ...
+
+ idl\
+ ...
+ java\
+ ...
+ =========================================================================
+
+
+ @param i_sOutputDirectory
+ Directory for output. Path must be given in correct
+ syntax for the actual operating system without final
+ path delimiter. If this is 0 or "", the current
+ working directory is chosen.
+ @param i_rAryGate
+ The access to the Autodoc Repository.
+ @param i_rLayout
+ Gives parameters for the appearance of the HTML output.
+ @param i_pProjectList
+ If this is != 0, then only code entities which are declared
+ in this projects are displayed.
+ */
+ void Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ private:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout ) = 0;
+};
+
+// IMPLEMENTATION
+
+inline void
+HtmlDisplay_UdkStd::Run( const char * i_sOutputDirectory,
+ const ary::cpp::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
+}
+
+
+
+// class HtmlDisplay_Idl_Ifc
+
+class HtmlDisplay_Idl_Ifc
+{
+ public:
+ virtual ~HtmlDisplay_Idl_Ifc() {}
+
+ void Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ private:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout ) = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+HtmlDisplay_Idl_Ifc::Run( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ do_Run( i_sOutputDirectory, i_rAryGate, i_rLayout );
+}
+
+
+
+
+} // namespace autodoc
+#endif
diff --git a/autodoc/inc/autodoc/dsp_txt_flist.hxx b/autodoc/inc/autodoc/dsp_txt_flist.hxx
new file mode 100644
index 000000000000..a8015a1d9537
--- /dev/null
+++ b/autodoc/inc/autodoc/dsp_txt_flist.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_DSP_TXT_FLIST_HXX
+#define AUTODOC_DSP_TXT_FLIST_HXX
+
+#include <iostream>
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class DisplayGate;
+ }
+}
+
+
+namespace autodoc
+{
+
+class TextDisplay_FunctionList_Ifc
+{
+ public:
+ virtual ~TextDisplay_FunctionList_Ifc() {}
+
+ /** Displays the names of all C++ functions and methods within the
+ given namespace (or the global namespace as default). All
+ subnamespaces are included.
+ */
+ virtual void Run(
+ ostream & o_rStream,
+ const ary::cpp::DisplayGate &
+ i_rAryGate ) = 0; /// If i_pNamespace == 0, the global namespace is displayed.
+};
+
+
+} // namespace autodoc
+
+#endif
+
diff --git a/autodoc/inc/autodoc/filecoli.hxx b/autodoc/inc/autodoc/filecoli.hxx
new file mode 100644
index 000000000000..8b13d18649ef
--- /dev/null
+++ b/autodoc/inc/autodoc/filecoli.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSER_FILECOLI_HXX
+#define ADC_PARSER_FILECOLI_HXX
+
+
+namespace autodoc
+{
+
+class FileCollector_Ifc
+{
+ public:
+ // TYPES
+ typedef StringVector::const_iterator const_iterator;
+
+ enum E_SearchMode
+ {
+ flat,
+ recursive
+ };
+
+ // LIFECYCLE
+ virtual ~FileCollector_Ifc() {}
+
+ // OPERATIONS
+ virtual uintt AddFilesFrom(
+ const char * i_sRootDir,
+ const char * i_sFilter,
+ E_SearchMode i_eSearchMode ) = 0;
+ virtual uintt AddFile(
+ const char * i_sFilePath ) = 0;
+ virtual void EraseAll() = 0;
+
+ // INQUIRY
+ virtual const_iterator
+ Begin() const = 0;
+ virtual const_iterator
+ End() const = 0;
+ virtual uintt Size() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+#endif
+
diff --git a/autodoc/inc/autodoc/parsing.hxx b/autodoc/inc/autodoc/parsing.hxx
new file mode 100644
index 000000000000..825e84261f89
--- /dev/null
+++ b/autodoc/inc/autodoc/parsing.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_PARSING_HXX
+#define AUTODOC_PARSING_HXX
+
+
+
+namespace autodoc
+{
+
+class CodeParser_Ifc;
+class DocumentationParser_Ifc;
+class FileCollector_Ifc;
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class ParseToolsFactory_Ifc
+{
+ public:
+ virtual ~ParseToolsFactory_Ifc() {}
+ static ParseToolsFactory_Ifc &
+ GetIt_();
+
+ virtual DYN autodoc::CodeParser_Ifc *
+ Create_Parser_Cplusplus() const = 0;
+
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_UnoIDL() const = 0;
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_Java() const = 0;
+// virtual DYN autodoc::CodeParser_Ifc *
+// CreateParser_StoredProcedures() const = 0;
+
+ virtual DYN autodoc::DocumentationParser_Ifc *
+ Create_DocuParser_AutodocStyle() const = 0;
+
+// virtual DYN autodoc::DocumentationParser_Ifc *
+// CreateDocuParser_StarOfficeAPIStyle() const = 0;
+
+ virtual DYN autodoc::FileCollector_Ifc *
+ Create_FileCollector(
+ uintt i_nEstimatedNrOfFiles ) const = 0; /// Should be somewhat larger than the maximal estimated number of files.
+};
+
+
+} // namespace autodoc
+
+
+
+#endif
+
diff --git a/autodoc/inc/autodoc/prs_code.hxx b/autodoc/inc/autodoc/prs_code.hxx
new file mode 100644
index 000000000000..e50dba1ad7bc
--- /dev/null
+++ b/autodoc/inc/autodoc/prs_code.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_PRS_CODE_HXX
+#define AUTODOC_PRS_CODE_HXX
+
+
+
+namespace csv
+{
+ namespace ploc
+ {
+ class Path;
+ }
+}
+
+namespace ary
+{
+ class Repository;
+}
+
+namespace autodoc
+{
+ class FileCollector_Ifc;
+ class DocumentationParser_Ifc;
+
+
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class CodeParser_Ifc
+{
+ public:
+ virtual ~CodeParser_Ifc() {}
+
+ virtual void Setup(
+ ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc &
+ i_rDocumentationInterpreter ) = 0;
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles ) = 0;
+};
+
+
+
+
+} // namespace autodoc
+#endif
diff --git a/autodoc/inc/autodoc/prs_docu.hxx b/autodoc/inc/autodoc/prs_docu.hxx
new file mode 100644
index 000000000000..f73b2631af90
--- /dev/null
+++ b/autodoc/inc/autodoc/prs_docu.hxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSER_PRS_DOCU_HXX
+#define ADC_PARSER_PRS_DOCU_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace autodoc
+{
+
+class TkpDocuContext;
+
+class DocumentationParser_Ifc
+{
+ public:
+ virtual ~DocumentationParser_Ifc() {}
+
+ virtual DYN TkpDocuContext *
+ Create_DocuContext() const = 0;
+};
+
+
+} // namespace autodoc
+
+
+#endif
+
diff --git a/autodoc/inc/autodoc/x_parsing.hxx b/autodoc/inc/autodoc/x_parsing.hxx
new file mode 100644
index 000000000000..36f7d71155be
--- /dev/null
+++ b/autodoc/inc/autodoc/x_parsing.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef AUTODOC_X_PARSING_HXX
+#define AUTODOC_X_PARSING_HXX
+
+// USED SERVICES
+#include <iostream>
+
+
+
+
+namespace autodoc
+{
+
+class X_Parser_Ifc
+{
+ public:
+ // TYPES
+ enum E_Event
+ {
+ x_Any = 0,
+ x_InvalidChar,
+ x_UnexpectedToken,
+ x_UnexpectedEOF,
+ x_UnspecifiedSyntaxError
+ };
+
+ // LIFECYCLE
+ virtual ~X_Parser_Ifc() {}
+
+ // INQUIRY
+ virtual E_Event GetEvent() const = 0;
+ virtual void GetInfo(
+ std::ostream & o_rOutputMedium ) const = 0;
+};
+
+
+} // namespace autodoc
+
+std::ostream & operator<<(
+ std::ostream & o_rOut,
+ const autodoc::X_Parser_Ifc &
+ i_rException );
+
+
+
+
+#endif
diff --git a/autodoc/inc/display/corframe.hxx b/autodoc/inc/display/corframe.hxx
new file mode 100644
index 000000000000..e03659807bec
--- /dev/null
+++ b/autodoc/inc/display/corframe.hxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CORFRAME_HXX
+#define ADC_CORFRAME_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+class Html_Image;
+
+
+namespace display
+{
+
+
+class CorporateFrame
+{
+ public:
+ // LIFECYCLE
+ virtual ~CorporateFrame() {}
+
+ // INQUIRY
+ virtual DYN Html_Image *
+ LogoSrc() const = 0;
+ virtual const char *
+ LogoLink() const = 0;
+ virtual const char *
+ CopyrightText() const = 0;
+
+ virtual const char *
+ CssStyle() const = 0;
+ virtual const char *
+ CssStylesExplanation() const = 0;
+ virtual const char *
+ DevelopersGuideHtmlRoot() const = 0;
+ virtual bool SimpleLinks() const = 0;
+
+ // ACCESS
+ virtual void Set_DevelopersGuideHtmlRoot(
+ const String & i_directory ) = 0;
+ virtual void Set_SimpleLinks() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace display
+
+
+#endif
+
diff --git a/autodoc/inc/parser/parser.hxx b/autodoc/inc/parser/parser.hxx
new file mode 100644
index 000000000000..ad5f9a7adac4
--- /dev/null
+++ b/autodoc/inc/parser/parser.hxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSER_HXX
+#define ADC_PARSER_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace autodoc
+{
+ class FileCollector_Ifc;
+}
+
+
+class CodeParser
+{
+ public:
+ virtual ~CodeParser() {}
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles ) = 0;
+};
+
+
+
+#endif
+
diff --git a/autodoc/inc/parser/parserinfo.hxx b/autodoc/inc/parser/parserinfo.hxx
new file mode 100644
index 000000000000..3afe646dd4f0
--- /dev/null
+++ b/autodoc/inc/parser/parserinfo.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSERINFO_HXX
+#define ADC_PARSERINFO_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+/** Interface about current state of parsing.
+*/
+class ParserInfo
+{
+ public:
+ // OPERATIONS
+ void Set_CurFile(
+ const String & i_file,
+ bool i_bUseLines = false)
+ { sCurFile = i_file;
+ nCurLine = i_bUseLines ? 1 : 0; }
+ void Increment_CurLine()
+ { ++nCurLine; }
+
+ // INQUIRY
+ const String & CurFile() const { return sCurFile; }
+ uintt CurLine() const { return nCurLine; }
+
+ protected:
+ // LIFECYCLE
+ ParserInfo() : sCurFile(), nCurLine(0) {}
+ ~ParserInfo() {}
+ private:
+ String sCurFile;
+ uintt nCurLine;
+
+};
+
+#endif
diff --git a/autodoc/inc/parser/unoidl.hxx b/autodoc/inc/parser/unoidl.hxx
new file mode 100644
index 000000000000..2ec434304756
--- /dev/null
+++ b/autodoc/inc/parser/unoidl.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UNOIDL_HXX
+#define ADC_UNOIDL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <parser/parser.hxx>
+#include <parser/parserinfo.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+ class Repository;
+}
+namespace autodoc
+{
+ class FileCollector_Ifc;
+}
+
+namespace autodoc
+{
+
+
+class IdlParser : public ::CodeParser,
+ public ::ParserInfo
+{
+ public:
+ IdlParser(
+ ary::Repository & io_rRepository );
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles );
+
+ private:
+ // DATA
+ ary::Repository * pRepository;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace autodoc
+
+
+#endif
+
diff --git a/autodoc/prj/build.lst b/autodoc/prj/build.lst
new file mode 100644
index 000000000000..fd4d3f7c7963
--- /dev/null
+++ b/autodoc/prj/build.lst
@@ -0,0 +1,67 @@
+ar autodoc : cosv udm sal NULL
+ar autodoc usr1 - all ar_mkout NULL
+ar autodoc\inc get - all ar_i NULL
+ar autodoc\inc\ary get - all ar_ir NULL
+ar autodoc\inc\ary\cpp get - all ar_ir_cpp NULL
+ar autodoc\inc\ary\idl get - all ar_ir_idl NULL
+ar autodoc\inc\ary\info get - all ar_ir_info NULL
+ar autodoc\inc\ary\loc get - all ar_ir_loc NULL
+ar autodoc\inc\ary\task get - all ar_ir_task NULL
+ar autodoc\inc\ary_i get - all ar_ir_cinfo NULL
+ar autodoc\inc\autodoc get - all ar_iau NULL
+ar autodoc\inc\display get - all ar_idispl2 NULL
+ar autodoc\inc\parser get - all ar_iparse2 NULL
+ar autodoc\prj get - all ar_prj NULL
+ar autodoc\util get - all ar_util NULL
+ar autodoc\source get - all ar_s NULL
+ar autodoc\source\inc get - all ar_si NULL
+ar autodoc\source\inc\display get - all ar_si_display NULL
+ar autodoc\source\inc\oodb get - all ar_si_oodb2 NULL
+ar autodoc\source\inc\tools get - all ar_si_tools NULL
+ar autodoc\source\inc\utility get - all ar_si_util2 NULL
+ar autodoc\source\ary get - all ar_sr NULL
+ar autodoc\source\ary\inc get - all ar_sri NULL
+ar autodoc\source\ary\inc\cpp get - all ar_sri_cpp NULL
+ar autodoc\source\ary\inc\idl get - all ar_sri_idl NULL
+ar autodoc\source\ary\inc\loc get - all ar_sri_loc NULL
+ar autodoc\source\ary\inc\store get - all ar_sri_store NULL
+ar autodoc\source\ary\cpp nmake - all ar_sr_cpp NULL
+ar autodoc\source\ary\doc nmake - all ar_sr_doc NULL
+ar autodoc\source\ary\idl nmake - all ar_sr_idl NULL
+ar autodoc\source\ary\info nmake - all ar_sr_info NULL
+ar autodoc\source\ary\kernel nmake - all ar_sr_kernel NULL
+ar autodoc\source\ary\loc nmake - all ar_sr_loc NULL
+ar autodoc\source\ary_i get - all ar_sr_i NULL
+ar autodoc\source\ary_i\kernel nmake - all ar_sr_cinfo NULL
+ar autodoc\source\display get - all ar_sd NULL
+ar autodoc\source\display\inc get - all ar_sdi NULL
+ar autodoc\source\display\inc\funclist get - all ar_sdi_flist NULL
+ar autodoc\source\display\inc\html get - all ar_sdi_html NULL
+ar autodoc\source\display\html nmake - all ar_sd_html NULL
+ar autodoc\source\display\kernel nmake - all ar_sd_kernel NULL
+ar autodoc\source\display\idl nmake - all ar_sd_idl NULL
+ar autodoc\source\display\toolkit nmake - all ar_sd_tkit NULL
+ar autodoc\source\parser get - all ar_sp NULL
+ar autodoc\source\parser\inc get - all ar_spi NULL
+ar autodoc\source\parser\inc\adoc get - all ar_spi_adoc NULL
+ar autodoc\source\parser\inc\cpp get - all ar_spi_cpp NULL
+ar autodoc\source\parser\inc\semantic get - all ar_spi_sem NULL
+ar autodoc\source\parser\inc\tokens get - all ar_spi_tok NULL
+ar autodoc\source\parser\adoc nmake - all ar_sp_adoc NULL
+ar autodoc\source\parser\cpp nmake - all ar_sp_cpp NULL
+ar autodoc\source\parser\kernel nmake - all ar_sp_krnl NULL
+ar autodoc\source\parser\semantic nmake - all ar_sp_sem NULL
+ar autodoc\source\parser\tokens nmake - all ar_sp_tok NULL
+ar autodoc\source\parser_i get - all ar_sp2 NULL
+ar autodoc\source\parser_i\inc get - all ar_sp2i NULL
+ar autodoc\source\parser_i\inc\s2_dsapi get - all ar_sp2i_idoc NULL
+ar autodoc\source\parser_i\inc\s2_luidl get - all ar_sp2i_cpp NULL
+ar autodoc\source\parser_i\inc\semantic get - all ar_sp2i_sem NULL
+ar autodoc\source\parser_i\inc\tokens get - all ar_sp2i_tok NULL
+ar autodoc\source\parser_i\idl nmake - all ar_sp2_idl NULL
+ar autodoc\source\parser_i\idoc nmake - all ar_sp2_idoc NULL
+ar autodoc\source\parser_i\tokens nmake - all ar_sp2_tok NULL
+ar autodoc\source\tools nmake - all ar_st NULL
+ar autodoc\source\mkinc get - all ar_smk NULL
+ar autodoc\source\exes get - all ar_se NULL
+ar autodoc\source\exes\adc_uni nmake - all ar_se_uni ar_sr_cpp ar_sr_doc ar_sr_idl ar_sr_info ar_sr_kernel ar_sr_loc ar_sr_cinfo ar_sd_html ar_sd_kernel ar_sd_idl ar_sp_adoc ar_sp_cpp ar_sp_krnl ar_sp_sem ar_sp_tok ar_sp2_idl ar_sd_tkit ar_sp2_idoc ar_sp2_tok ar_st NULL
diff --git a/autodoc/prj/d.lst b/autodoc/prj/d.lst
new file mode 100644
index 000000000000..c73e559f0729
--- /dev/null
+++ b/autodoc/prj/d.lst
@@ -0,0 +1,3 @@
+..\%__SRC%\bin\autodoc.exe %_DEST%\bin%_EXT%\autodoc.exe
+..\%__SRC%\bin\autodoc %_DEST%\bin%_EXT%\autodoc
+
diff --git a/autodoc/source/ary/cpp/c_builtintype.cxx b/autodoc/source/ary/cpp/c_builtintype.cxx
new file mode 100644
index 000000000000..fc245ae0985b
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_builtintype.cxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_builtintype.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_type.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+
+//********************** Type **************************//
+Rid
+Type::inq_RelatedCe() const
+{
+ return 0;
+}
+
+
+//********************** BuiltInType **************************//
+
+BuiltInType::BuiltInType( const String & i_sName,
+ E_TypeSpecialisation i_eSpecialisation )
+ : sName( i_sName ),
+ eSpecialisation( i_eSpecialisation )
+{
+}
+
+String
+BuiltInType::SpecializedName_( const char * i_sName,
+ E_TypeSpecialisation i_eTypeSpecialisation )
+{
+ StreamLock
+ aStrLock(60);
+ StreamStr &
+ ret = aStrLock();
+
+ switch ( i_eTypeSpecialisation )
+ {
+ case TYSP_unsigned:
+ ret << "u_";
+ break;
+ case TYSP_signed:
+ if (strcmp(i_sName,"char") == 0)
+ ret << "s_";
+ break;
+ default:
+ ;
+
+ } // end switch
+
+ ret << i_sName;
+ return String(ret.c_str());
+}
+
+void
+BuiltInType::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ary::ClassId
+BuiltInType::get_AryClass() const
+{
+ return class_id;
+}
+
+bool
+BuiltInType::inq_IsConst() const
+{
+ return false;
+}
+
+void
+BuiltInType::inq_Get_Text( StreamStr & , // o_rPreName
+ StreamStr & o_rName,
+ StreamStr & , // o_rPostName
+ const Gate & ) const // i_rGate
+{
+ switch (eSpecialisation)
+ {
+ case TYSP_unsigned: o_rName << "unsigned "; break;
+ case TYSP_signed: o_rName << "signed "; break;
+
+ default: // Does nothing.
+ ;
+ }
+ o_rName << sName;
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_class.cxx b/autodoc/source/ary/cpp/c_class.cxx
new file mode 100644
index 000000000000..8867c1d9e856
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_class.cxx
@@ -0,0 +1,284 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_class.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <slots.hxx>
+#include "c_slots.hxx"
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Class::Class( const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ loc::Le_id i_nFile,
+ E_ClassKey i_eClassKey )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ i_nFile ),
+ aAssignedNode(),
+ aBaseClasses(),
+ aTemplateParameterTypes(),
+ aClasses(),
+ aEnums(),
+ aTypedefs(),
+ aOperations(),
+ aStaticOperations(),
+ aData(),
+ aStaticData(),
+ aFriendClasses(),
+ aFriendOperations(),
+ aKnownDerivatives(),
+ eClassKey(i_eClassKey),
+ eProtection(i_eProtection),
+ eVirtuality(VIRTUAL_none)
+{
+ aAssignedNode.Assign_Entity(*this);
+}
+
+Class::~Class()
+{
+}
+
+void
+Class::Add_BaseClass( const S_Classes_Base & i_rBaseClass )
+{
+ aBaseClasses.push_back(i_rBaseClass);
+}
+
+void
+Class::Add_TemplateParameterType( const String & i_sLocalName,
+ Type_id i_nIdAsType )
+{
+ aTemplateParameterTypes.push_back(
+ List_TplParam::value_type(i_sLocalName,i_nIdAsType) );
+}
+
+void
+Class::Add_LocalClass( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aClasses.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalEnum( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aEnums.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalTypedef( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aTypedefs.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalOperation( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aOperations.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalStaticOperation( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aStaticOperations.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalData( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aData.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+void
+Class::Add_LocalStaticData( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aStaticData.push_back( S_LocalCe(i_sLocalName, i_nId) );
+}
+
+
+struct find_name
+{
+ find_name(
+ const String & i_name )
+ : sName(i_name) {}
+
+ bool operator()(
+ const S_LocalCe & i_lce ) const
+ { return i_lce.sLocalName == sName; }
+ private:
+ String sName;
+};
+
+Ce_id
+Class::Search_Child(const String & i_key) const
+{
+ Ce_id
+ ret = Ce_id(Search_LocalClass(i_key));
+ if (ret.IsValid())
+ return ret;
+
+ CIterator_Locals
+ itret = std::find_if(aEnums.begin(), aEnums.end(), find_name(i_key));
+ if (itret != aEnums.end())
+ return (*itret).nId;
+ itret = std::find_if(aTypedefs.begin(), aTypedefs.end(), find_name(i_key));
+ if (itret != aTypedefs.end())
+ return (*itret).nId;
+ itret = std::find_if(aData.begin(), aData.end(), find_name(i_key));
+ if (itret != aData.end())
+ return (*itret).nId;
+ itret = std::find_if(aStaticData.begin(), aStaticData.end(), find_name(i_key));
+ if (itret != aStaticData.end())
+ return (*itret).nId;
+ return Ce_id(0);
+}
+
+Rid
+Class::Search_LocalClass( const String & i_sName ) const
+{
+ CIterator_Locals itFound = PosOfName(aClasses, i_sName);
+ if (itFound != aClasses.end())
+ return (*itFound).nId.Value();
+ return 0;
+}
+
+const String &
+Class::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Class::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+loc::Le_id
+Class::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+Class::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Class::get_AryClass() const
+{
+ return class_id;
+}
+
+Gid
+Class::inq_Id_Group() const
+{
+ return static_cast<Gid>(Id());
+}
+
+const ary::cpp::CppEntity &
+Class::inq_RE_Group() const
+{
+ return *this;
+}
+
+const group::SlotList &
+Class::inq_Slots() const
+{
+ static const SlotAccessId aProjectSlotData[]
+ = { SLOT_Bases,
+ SLOT_NestedClasses,
+ SLOT_Enums,
+ SLOT_Typedefs,
+ SLOT_Operations,
+ SLOT_StaticOperations,
+ SLOT_Data,
+ SLOT_StaticData,
+ SLOT_FriendClasses,
+ SLOT_FriendOperations };
+ static const std::vector< SlotAccessId >
+ aSlots( &aProjectSlotData[0],
+ &aProjectSlotData[0]
+ + sizeof aProjectSlotData / sizeof (SlotAccessId) );
+ return aSlots;
+}
+
+
+DYN Slot *
+Class::inq_Create_Slot( SlotAccessId i_nSlot ) const
+{
+ switch ( i_nSlot )
+ {
+ case SLOT_Bases: return new Slot_BaseClass(aBaseClasses);
+ case SLOT_NestedClasses: return new Slot_ListLocalCe(aClasses);
+ case SLOT_Enums: return new Slot_ListLocalCe(aEnums);
+ case SLOT_Typedefs: return new Slot_ListLocalCe(aTypedefs);
+ case SLOT_Operations: return new Slot_ListLocalCe(aOperations);
+ case SLOT_StaticOperations: return new Slot_ListLocalCe(aStaticOperations);
+ case SLOT_Data: return new Slot_ListLocalCe(aData);
+ case SLOT_StaticData: return new Slot_ListLocalCe(aStaticData);
+ case SLOT_FriendClasses: return new Slot_SequentialIds<Ce_id>(aFriendClasses);
+ case SLOT_FriendOperations: return new Slot_SequentialIds<Ce_id>(aFriendOperations);
+ default:
+ return new Slot_Null;
+ } // end switch
+}
+
+Class::CIterator_Locals
+Class::PosOfName( const List_LocalCe & i_rList,
+ const String & i_sName ) const
+{
+ for ( CIterator_Locals ret = i_rList.begin();
+ ret != i_rList.end();
+ ++ret )
+ {
+ if ( (*ret).sLocalName == i_sName )
+ return ret;
+ }
+ return i_rList.end();
+}
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_de.cxx b/autodoc/source/ary/cpp/c_de.cxx
new file mode 100644
index 000000000000..4c8024bbef47
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_de.cxx
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_de.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+DefineEntity::DefineEntity( const String & i_name,
+ loc::Le_id i_declaringFile )
+ : sName(i_name),
+ nLocation(i_declaringFile)
+{
+}
+
+
+
+
+} // end namespace cpp
+} // end namespace ary
diff --git a/autodoc/source/ary/cpp/c_define.cxx b/autodoc/source/ary/cpp/c_define.cxx
new file mode 100644
index 000000000000..4f91ea38c8e6
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_define.cxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_define.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <prprpr.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+Define::Define( const String & i_name,
+ const StringVector & i_definition,
+ loc::Le_id i_declaringFile)
+ : DefineEntity(i_name, i_declaringFile),
+ aDefinition(i_definition)
+{
+}
+
+Define::~Define()
+{
+}
+
+void
+Define::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Define::get_AryClass() const
+{
+ return class_id;
+}
+
+const StringVector &
+Define::inq_DefinitionText() const
+{
+ return aDefinition;
+}
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_enum.cxx b/autodoc/source/ary/cpp/c_enum.cxx
new file mode 100644
index 000000000000..6dd76f183e16
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_enum.cxx
@@ -0,0 +1,134 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_enum.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <slots.hxx>
+#include "c_slots.hxx"
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Enum::Enum( const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ i_nFile ),
+ aValues(),
+ eProtection(i_eProtection)
+{
+}
+
+Enum::~Enum()
+{
+}
+
+void
+Enum::Add_Value( Ce_id i_nId )
+{
+ aValues.Add( i_nId );
+}
+
+const String &
+Enum::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Enum::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+Enum::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+Enum::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Enum::get_AryClass() const
+{
+ return class_id;
+}
+
+Gid
+Enum::inq_Id_Group() const
+{
+ return static_cast<Gid>(Id());
+}
+
+const ary::cpp::CppEntity &
+Enum::inq_RE_Group() const
+{
+ return *this;
+}
+
+const group::SlotList &
+Enum::inq_Slots() const
+{
+ static const SlotAccessId aProjectSlotData[]
+ = { SLOT_Values };
+ static const std::vector< SlotAccessId >
+ aSlots( &aProjectSlotData[0],
+ &aProjectSlotData[0]
+ + sizeof aProjectSlotData / sizeof (SlotAccessId) );
+ return aSlots;
+}
+
+DYN Slot *
+Enum::inq_Create_Slot( SlotAccessId i_nSlot ) const
+{
+ switch ( i_nSlot )
+ {
+ case SLOT_Values: return new Slot_SequentialIds<Ce_id>(aValues);
+ default:
+ return new Slot_Null;
+ } // end switch
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_enuval.cxx b/autodoc/source/ary/cpp/c_enuval.cxx
new file mode 100644
index 000000000000..d133546449bd
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_enuval.cxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_enuval.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+EnumValue::EnumValue( const String & i_sLocalName,
+ Ce_id i_nOwner,
+ String i_sInitialisation )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ Lid(0) ),
+ sInitialisation(i_sInitialisation)
+{
+}
+
+EnumValue::~EnumValue()
+{
+}
+
+const String &
+EnumValue::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+EnumValue::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+EnumValue::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+EnumValue::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+EnumValue::get_AryClass() const
+{
+ return class_id;
+}
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_funct.cxx b/autodoc/source/ary/cpp/c_funct.cxx
new file mode 100644
index 000000000000..cfc0a61909b2
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_funct.cxx
@@ -0,0 +1,247 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_funct.hxx>
+
+
+
+// NOT FULLY DECLARED SERVICES
+#include <algorithm>
+#include <ary/cpp/c_funct.hxx>
+
+
+
+
+
+namespace
+{
+using namespace ::ary::cpp;
+
+
+class Parameter_2_NonTypeParamInfo
+{
+ public:
+ String operator()(
+ const S_Parameter & i_rParam ) const;
+};
+
+class Parameter_2_Type
+{
+ public:
+ Type_id operator()(
+ const S_Parameter & i_rParam ) const
+ { return i_rParam.nType; }
+};
+
+/** @return
+ A vector with Strings like this:
+ "ParamName" or "ParamName[ArraySize]" or "ParamName = InitValue".
+*/
+StringVector Create_NonTypeParameterInfos(
+ const std::vector<S_Parameter> &
+ i_rParameters );
+/** @return
+ A vector of the parameters' type ids.
+*/
+std::vector<Type_id>
+ Create_ParameterTypeList(
+ const std::vector<S_Parameter> &
+ i_rParameters );
+
+} // namspace anonymous
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Function::Function( const String & i_sLocalName,
+ Ce_id i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile,
+ Type_id i_nReturnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_ConVol i_conVol,
+ E_Virtuality i_eVirtuality,
+ FunctionFlags i_aFlags,
+ bool i_bThrowExists,
+ const std::vector<Type_id> &
+ i_rExceptions )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ i_nFile ),
+ aTemplateParameterTypes(),
+ aSignature( Create_ParameterTypeList(i_parameters),
+ i_conVol ),
+ nReturnType(i_nReturnType),
+ eProtection(i_eProtection),
+ eVirtuality(i_eVirtuality),
+ aFlags(i_aFlags),
+ aParameterInfos( Create_NonTypeParameterInfos(i_parameters) ),
+ pExceptions( i_bThrowExists ? new ExceptionTypeList(i_rExceptions) : 0 )
+{
+}
+
+Function::~Function()
+{
+}
+
+bool
+Function::IsIdentical( const Function & i_f ) const
+{
+ return
+ LocalName() == i_f.LocalName()
+ AND
+ Owner() == i_f.Owner()
+ AND
+ aSignature == i_f.aSignature
+ AND
+ nReturnType == i_f.nReturnType
+ AND
+ eProtection == i_f.eProtection
+ AND
+ eVirtuality == i_f.eVirtuality
+ AND
+ aFlags == i_f.aFlags
+ AND
+ ( ( NOT pExceptions AND NOT i_f.pExceptions )
+ OR
+ ( pExceptions AND i_f.pExceptions
+ ? *pExceptions == *i_f.pExceptions
+ : false )
+ )
+ AND
+ aTemplateParameterTypes.size() == i_f.aTemplateParameterTypes.size();
+}
+
+void
+Function::Add_TemplateParameterType( const String & i_sLocalName,
+ Type_id i_nIdAsType )
+{
+ aTemplateParameterTypes.push_back(
+ List_TplParam::value_type(i_sLocalName, i_nIdAsType) );
+}
+
+
+const String &
+Function::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Function::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+Function::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+Function::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Function::get_AryClass() const
+{
+ return class_id;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+
+
+
+namespace
+{
+
+String
+Parameter_2_NonTypeParamInfo::operator()( const ary::cpp::S_Parameter & i_rParam ) const
+{
+ static StreamStr aParamName_(1020);
+ aParamName_.seekp(0);
+
+ aParamName_ << i_rParam.sName;
+ if ( i_rParam.sSizeExpression.length() > 0 )
+ {
+ aParamName_ << '['
+ << i_rParam.sSizeExpression
+ << ']';
+ }
+ if ( i_rParam.sInitExpression.length() > 0 )
+ {
+ aParamName_ << " = "
+ << i_rParam.sInitExpression;
+ }
+
+ return aParamName_.c_str();
+}
+
+
+StringVector
+Create_NonTypeParameterInfos( const std::vector<S_Parameter> & i_rParameters )
+{
+ static Parameter_2_NonTypeParamInfo
+ aTransformFunction_;
+
+ StringVector
+ ret(i_rParameters.size(), String::Null_());
+ std::transform( i_rParameters.begin(), i_rParameters.end(),
+ ret.begin(),
+ aTransformFunction_ );
+ return ret;
+}
+
+std::vector<Type_id>
+Create_ParameterTypeList( const std::vector<S_Parameter> & i_rParameters )
+{
+ static Parameter_2_Type
+ aTransformFunction_;
+
+ std::vector<Type_id>
+ ret(i_rParameters.size(), Type_id(0));
+ std::transform( i_rParameters.begin(), i_rParameters.end(),
+ ret.begin(),
+ aTransformFunction_ );
+ return ret;
+}
+
+
+
+
+} // namespace anonymous
diff --git a/autodoc/source/ary/cpp/c_macro.cxx b/autodoc/source/ary/cpp/c_macro.cxx
new file mode 100644
index 000000000000..6d0e546d4da7
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_macro.cxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_macro.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <prprpr.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+Macro::Macro( const String & i_name,
+ const StringVector & i_params,
+ const StringVector & i_definition,
+ loc::Le_id i_declaringFile )
+ : DefineEntity(i_name, i_declaringFile),
+ aParams(i_params),
+ aDefinition(i_definition)
+{
+}
+
+Macro::~Macro()
+{
+}
+
+void
+Macro::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Macro::get_AryClass() const
+{
+ return class_id;
+
+ // return RCID_MACRO;
+}
+
+const StringVector &
+Macro::inq_DefinitionText() const
+{
+ return aDefinition;
+}
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_namesp.cxx b/autodoc/source/ary/cpp/c_namesp.cxx
new file mode 100644
index 000000000000..bc49099a824a
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_namesp.cxx
@@ -0,0 +1,294 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_namesp.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <algorithm>
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/getncast.hxx>
+#include <slots.hxx>
+#include "c_slots.hxx"
+
+
+namespace ary
+{
+namespace cpp
+{
+
+typedef std::multimap<String, Ce_id>::const_iterator operations_citer;
+
+Namespace::Namespace()
+ : aEssentials(),
+ aAssignedNode(),
+ // aLocalNamespaces,
+ // aLocalClasses,
+ // aLocalEnums,
+ // aLocalTypedefs,
+ // aLocalOperations,
+ // aLocalVariables,
+ // aLocalConstants,
+ pParent(0),
+ nDepth(0)
+{
+ aAssignedNode.Assign_Entity(*this);
+}
+
+Namespace::Namespace( const String & i_sLocalName,
+ Namespace & i_rParent )
+ : aEssentials( i_sLocalName,
+ i_rParent.CeId(),
+ Lid(0) ),
+ aAssignedNode(),
+ // aLocalNamespaces,
+ // aLocalClasses,
+ // aLocalEnums,
+ // aLocalTypedefs,
+ // aLocalOperations,
+ // aLocalVariables,
+ // aLocalConstants,
+ pParent(&i_rParent),
+ nDepth(i_rParent.Depth()+1)
+{
+ aAssignedNode.Assign_Entity(*this);
+}
+
+Namespace::~Namespace()
+{
+}
+
+void
+Namespace::Add_LocalNamespace( DYN Namespace & io_rLocalNamespace )
+{
+ aLocalNamespaces[io_rLocalNamespace.LocalName()] = &io_rLocalNamespace;
+}
+
+void
+Namespace::Add_LocalClass( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalClasses[i_sLocalName] = i_nId;
+}
+
+void
+Namespace::Add_LocalEnum( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalEnums[i_sLocalName] = i_nId;
+}
+
+void
+Namespace::Add_LocalTypedef( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalTypedefs[i_sLocalName] = i_nId;
+}
+
+void
+Namespace::Add_LocalOperation( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalOperations.insert( Map_Operations::value_type(i_sLocalName, i_nId) );
+}
+
+
+void
+Namespace::Add_LocalVariable( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalVariables[i_sLocalName] = i_nId;
+}
+
+void
+Namespace::Add_LocalConstant( const String & i_sLocalName,
+ Cid i_nId )
+{
+ aLocalConstants[i_sLocalName] = i_nId;
+}
+
+uintt
+Namespace::Depth() const
+{
+ return nDepth;
+}
+
+Namespace *
+Namespace::Parent() const
+{
+ return pParent;
+}
+
+Ce_id
+Namespace::Search_Child(const String & i_key) const
+{
+ Namespace *
+ ret_nsp = Search_LocalNamespace(i_key);
+ if (ret_nsp != 0)
+ return ret_nsp->CeId();
+
+ Ce_id
+ ret = Search_LocalClass(i_key);
+ if (ret.IsValid())
+ return ret;
+
+ ret = csv::value_from_map(aLocalEnums, i_key, Ce_id(0));
+ if (ret.IsValid())
+ return ret;
+ ret = csv::value_from_map(aLocalTypedefs, i_key, Ce_id(0));
+ if (ret.IsValid())
+ return ret;
+ ret = csv::value_from_map(aLocalVariables, i_key, Ce_id(0));
+ if (ret.IsValid())
+ return ret;
+ return csv::value_from_map(aLocalConstants, i_key, Ce_id(0));
+}
+
+Namespace *
+Namespace::Search_LocalNamespace( const String & i_sLocalName ) const
+{
+ return csv::value_from_map(aLocalNamespaces, i_sLocalName, (Namespace*)(0));
+}
+
+uintt
+Namespace::Get_SubNamespaces( std::vector< const Namespace* > & o_rResultList ) const
+{
+ for ( Map_NamespacePtr::const_iterator it = aLocalNamespaces.begin();
+ it != aLocalNamespaces.end();
+ ++it )
+ {
+ o_rResultList.push_back( (*it).second );
+ }
+ return o_rResultList.size();
+}
+
+Ce_id
+Namespace::Search_LocalClass( const String & i_sName ) const
+{
+ return csv::value_from_map(aLocalClasses, i_sName, Ce_id(0));
+}
+
+void
+Namespace::Search_LocalOperations( std::vector<Ce_id> & o_result,
+ const String & i_sName ) const
+{
+ operations_citer
+ itLower = aLocalOperations.lower_bound(i_sName);
+ if (itLower == aLocalOperations.end())
+ return;
+ if ( (*itLower).first != i_sName )
+ return;
+
+ operations_citer
+ itEnd = aLocalOperations.end();
+ for ( operations_citer it = itLower;
+ it != aLocalOperations.end() ? (*itLower).first == i_sName : false;
+ ++it )
+ {
+ o_result.push_back((*it).second);
+ }
+}
+
+
+const String &
+Namespace::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Namespace::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+Namespace::inq_Location() const
+{
+ return Lid(0);
+}
+
+void
+Namespace::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Namespace::get_AryClass() const
+{
+ return class_id;
+}
+
+Gid
+Namespace::inq_Id_Group() const
+{
+ return static_cast<Gid>(Id());
+}
+
+const ary::cpp::CppEntity &
+Namespace::inq_RE_Group() const
+{
+ return *this;
+}
+
+const ary::group::SlotList &
+Namespace::inq_Slots() const
+{
+ static const SlotAccessId aProjectSlotData[]
+ = { SLOT_SubNamespaces, SLOT_Classes, SLOT_Enums, SLOT_Typedefs, SLOT_Operations,
+ SLOT_Variables, SLOT_Constants };
+ static const std::vector< SlotAccessId >
+ aSlots( &aProjectSlotData[0],
+ &aProjectSlotData[0]
+ + sizeof aProjectSlotData / sizeof (SlotAccessId) );
+ return aSlots;
+}
+
+DYN Slot *
+Namespace::inq_Create_Slot( SlotAccessId i_nSlot ) const
+{
+ switch ( i_nSlot )
+ {
+ case SLOT_SubNamespaces: return new Slot_SubNamespaces(aLocalNamespaces);
+ case SLOT_Classes: return new Slot_MapLocalCe(aLocalClasses);
+ case SLOT_Enums: return new Slot_MapLocalCe(aLocalEnums);
+ case SLOT_Typedefs: return new Slot_MapLocalCe(aLocalTypedefs);
+ case SLOT_Operations: return new Slot_MapOperations(aLocalOperations);
+ case SLOT_Variables: return new Slot_MapLocalCe(aLocalVariables);
+ case SLOT_Constants: return new Slot_MapLocalCe(aLocalConstants);
+ default:
+ return new Slot_Null;
+ } // end switch
+}
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_osigna.cxx b/autodoc/source/ary/cpp/c_osigna.cxx
new file mode 100644
index 000000000000..70aa1840ef81
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_osigna.cxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_osigna.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+OperationSignature::OperationSignature( std::vector<Type_id> i_parameterTypes,
+ E_ConVol i_conVol )
+ : aParameterTypes(i_parameterTypes),
+ eConVol(i_conVol)
+{
+}
+
+int
+OperationSignature::Compare( const OperationSignature & i_rSig ) const
+{
+ if ( aParameterTypes.size() < i_rSig.aParameterTypes.size() )
+ return -1;
+ else if ( i_rSig.aParameterTypes.size() < aParameterTypes.size() )
+ return 1;
+
+ ParameterTypeList::const_iterator iMe = aParameterTypes.begin();
+ ParameterTypeList::const_iterator iOther = i_rSig.aParameterTypes.begin();
+ for ( ; iMe != aParameterTypes.end(); ++iMe, ++iOther )
+ {
+ if ( *iMe < *iOther )
+ return -1;
+ else if ( *iOther < *iMe )
+ return 1;
+ }
+
+ if ( eConVol < i_rSig.eConVol )
+ return -1;
+ else if ( eConVol != i_rSig.eConVol )
+ return 1;
+
+ return 0;
+}
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_reposypart.cxx b/autodoc/source/ary/cpp/c_reposypart.cxx
new file mode 100644
index 000000000000..e1e8085672be
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_reposypart.cxx
@@ -0,0 +1,523 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "c_reposypart.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/getncast.hxx>
+#include <ary/namesort.hxx>
+#include <ary/cpp/c_builtintype.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_cppentity.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_type.hxx>
+#include <ary/cpp/usedtype.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <ary/getncast.hxx>
+#include <loc_internalgate.hxx>
+#include <reposy.hxx>
+#include "ca_ce.hxx"
+#include "ca_def.hxx"
+#include "ca_type.hxx"
+#include "cs_ce.hxx"
+#include "cs_def.hxx"
+#include "cs_type.hxx"
+
+
+
+namespace
+{
+
+using ::ary::GlobalId;
+using ::ary::Rid;
+using namespace ::ary::cpp;
+
+
+inline bool
+IsDefine( const GlobalId & i_id )
+{
+ return i_id.Class() == Define::class_id
+ OR
+ i_id.Class() == Macro::class_id;
+}
+
+
+/// Find Ces
+class TypeConnector
+{
+ public:
+ TypeConnector(
+ Gate & i_gate )
+ : pGate(&i_gate) {}
+ ~TypeConnector() {}
+
+ void operator()(
+ Type & io_rType ) const;
+ private:
+ // DATA
+ Gate * pGate;
+};
+
+/// Find Ces only known from base class name scope.
+class TypeConnector2ndTry
+{
+ public:
+ TypeConnector2ndTry(
+ Gate & i_gate )
+ : pGate(&i_gate) {}
+ ~TypeConnector2ndTry() {}
+
+ void operator()(
+ Type & io_rType ) const;
+ private:
+ // DATA
+ Gate * pGate;
+};
+
+/// Reconnect (in both directions) base-derived relations of classes.
+class HierarchyLinker
+{
+ public:
+ HierarchyLinker(
+ Gate & i_gate )
+ : pGate(&i_gate) {}
+
+ ~HierarchyLinker() {}
+
+ void operator()(
+ Class & io_rCe ) const;
+ private:
+ // DATA
+ Gate * pGate;
+};
+
+
+
+/// Helper functor for ->RepositoryPartition::Get_AlphabeticalList().
+template <class TRAITS>
+struct MakeGlobalId
+{
+ GlobalId operator()(
+ typename TRAITS::id_type
+ i_id ) const
+ {
+ return GlobalId( TRAITS::EntityOf_(i_id).AryClass(),
+ i_id.Value() );
+ }
+};
+
+
+
+
+/** Compare two {->GlobalId}s.
+
+
+ @todo Move this up to the definition of GlobalId<>.
+*/
+struct LesserGlobal
+{
+ LesserGlobal(
+ const Ce_Storage & i_ces,
+ const Def_Storage & i_des )
+ : rCes(i_ces), rDes(i_des) {}
+
+ bool operator()(
+ GlobalId i_1,
+ GlobalId i_2 ) const;
+
+ private:
+ const String & NameOf(
+ GlobalId i_id ) const;
+ // DATA
+ const Ce_Storage & rCes;
+ const Def_Storage & rDes;
+ ::ary::LesserName aLess;
+};
+
+
+bool
+LesserGlobal::operator()( GlobalId i_1,
+ GlobalId i_2 ) const
+ {
+ String s1 = NameOf(i_1);
+ String s2 = NameOf(i_2);
+
+ if (s1 != s2)
+ return aLess(s1, s2);
+
+ if ( IsDefine(i_1) != IsDefine(i_2) )
+ {
+ return NOT IsDefine(i_2);
+ }
+ else if (IsDefine(i_1))
+ {
+ return i_1.Class() < i_2.Class();
+ }
+
+ return Ce_GlobalCompare::Lesser_(
+ rCes[i_1.Id()],
+ rCes[i_2.Id()] );
+ }
+
+
+} // namespace anonymous
+
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+DYN InternalGate &
+InternalGate::Create_Partition_(RepositoryCenter & i_center)
+{
+ return *new RepositoryPartition(i_center);
+}
+
+
+RepositoryPartition::RepositoryPartition(RepositoryCenter & i_center)
+ : pRepositoryCenter(&i_center),
+ pCes(0),
+ pTypes(0),
+ pDefs(0),
+ pLocations(& loc::InternalGate::Create_Locations_())
+{
+ pCes = new CeAdmin(*this);
+ pTypes = new TypeAdmin(*this);
+ pDefs = new DefAdmin(*this);
+ pCes->Set_Related(*pTypes);
+}
+
+RepositoryPartition::~RepositoryPartition()
+{
+}
+
+void
+RepositoryPartition::Calculate_AllSecondaryInformation()
+// const ::autodoc::Options & )
+{
+ // KORR_FUTURE
+ // Forward the options from here.
+
+ Connect_AllTypes_2_TheirRelated_CodeEntites();
+}
+
+const String &
+RepositoryPartition::RepositoryTitle() const
+{
+ return static_cast< ary::Repository* >(pRepositoryCenter)->Title();
+}
+
+const CodeEntity *
+RepositoryPartition::Search_RelatedCe(Type_id i_type) const
+{
+ if (NOT i_type.IsValid())
+ return 0;
+
+ Ce_id
+ ce_id = pTypes->Find_Type(i_type).RelatedCe();
+ return ce_id.IsValid()
+ ? & pCes->Find_Ce(ce_id)
+ : (CodeEntity*)(0);
+}
+
+const ::ary::cpp::CppEntity *
+RepositoryPartition::Search_Entity(GlobalId i_id) const
+{
+ if (i_id.Id() == 0)
+ return 0;
+
+ if ( NOT IsDefine(i_id) )
+ {
+ // Shall make sure this is a C++ CodeEntity:
+ csv_assert( i_id.Class() >= Namespace::class_id
+ AND
+ i_id.Class() < BuiltInType::class_id
+ && "Unexpected entity type in cpp::RepositoryPartition"
+ "::Search_Entity()." );
+ return & Ces().Find_Ce( Ce_id(i_id.Id()) );
+ }
+ else
+ {
+ return & Defs().Find_Def( De_id(i_id.Id()) );
+ }
+}
+
+
+const CePilot &
+RepositoryPartition::Ces() const
+{
+ csv_assert(pCes != 0);
+ return *pCes;
+}
+
+const DefPilot &
+RepositoryPartition::Defs() const
+{
+ csv_assert(pDefs != 0);
+ return *pDefs;
+}
+
+const TypePilot &
+RepositoryPartition::Types() const
+{
+ csv_assert(pTypes != 0);
+ return *pTypes;
+}
+
+const loc::LocationPilot &
+RepositoryPartition::Locations() const
+{
+ csv_assert(pLocations != 0);
+ return *pLocations;
+}
+
+CePilot &
+RepositoryPartition::Ces()
+{
+ csv_assert(pCes != 0);
+ return *pCes;
+}
+
+DefPilot &
+RepositoryPartition::Defs()
+{
+ csv_assert(pDefs != 0);
+ return *pDefs;
+}
+
+TypePilot &
+RepositoryPartition::Types()
+{
+ csv_assert(pTypes != 0);
+ return *pTypes;
+}
+
+loc::LocationPilot &
+RepositoryPartition::Locations()
+{
+ csv_assert(pLocations != 0);
+ return *pLocations;
+}
+
+
+void
+RepositoryPartition::Connect_AllTypes_2_TheirRelated_CodeEntites()
+{
+ TypeConnector
+ aConnector(*this);
+ std::for_each( pTypes->Storage().BeginUnreserved(),
+ pTypes->Storage().End(),
+ aConnector );
+
+ typedef ::ary::stg::filter_iterator<CodeEntity,Class>
+ filter_class_iter;
+
+ HierarchyLinker
+ aHierarchyLinker(*this);
+ filter_class_iter itEnd( pCes->Storage().End() );
+ for ( filter_class_iter it( pCes->Storage().BeginUnreserved() );
+ it != itEnd;
+ ++it )
+ {
+ if (NOT it.IsValid())
+ continue;
+
+ if (is_type<Class>(*it))
+ aHierarchyLinker(ary_cast<Class>(*it));
+ }
+
+ TypeConnector2ndTry
+ aConnector2ndTry(*this);
+ std::for_each( pTypes->Storage().BeginUnreserved(),
+ pTypes->Storage().End(),
+ aConnector2ndTry );
+}
+
+template <class COMPARE>
+void Add2Result(
+ List_GlobalIds & o_result,
+ const SortedIds<COMPARE> &
+ i_data,
+ const char * i_begin,
+ const char * i_end );
+template <class COMPARE>
+void
+Add2Result( List_GlobalIds & o_result,
+ const SortedIds<COMPARE> & i_data,
+ const char * i_begin,
+ const char * i_end )
+{
+ const size_t
+ previous_size = o_result.size();
+ typename std::vector<typename COMPARE::id_type>::const_iterator
+ it_beg = i_data.LowerBound(i_begin);
+ typename std::vector<typename COMPARE::id_type>::const_iterator
+ it_end = i_data.LowerBound(i_end);
+ size_t
+ count_added = static_cast<size_t>( std::distance(it_beg,it_end) );
+ o_result.insert( o_result.end(),
+ count_added,
+ GlobalId() );
+ List_GlobalIds::iterator
+ it_out = o_result.begin() + previous_size;
+ std::transform( it_beg, it_end,
+ it_out,
+ MakeGlobalId<COMPARE>() );
+}
+
+
+uintt
+RepositoryPartition::Get_AlphabeticalList( List_GlobalIds & o_result,
+ const char * i_begin,
+ const char * i_end ) const
+{
+ size_t
+ ret = o_result.size();
+
+ const Ce_Storage &
+ ce_storage = pCes->Storage();
+ const Def_Storage &
+ def_storage = pDefs->Storage();
+
+ Add2Result( o_result,
+ ce_storage.TypeIndex(),
+ i_begin, i_end );
+ Add2Result( o_result,
+ ce_storage.OperationIndex(),
+ i_begin, i_end );
+ Add2Result( o_result,
+ ce_storage.DataIndex(),
+ i_begin, i_end );
+ Add2Result( o_result,
+ def_storage.DefineIndex(),
+ i_begin, i_end );
+ Add2Result( o_result,
+ def_storage.MacroIndex(),
+ i_begin, i_end );
+
+ LesserGlobal
+ aLess(ce_storage, def_storage);
+
+ std::sort(o_result.begin(), o_result.end(), aLess);
+
+ return o_result.size() - ret;
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
+
+
+
+
+
+namespace
+{
+
+
+void
+TypeConnector::operator()( Type & io_rType ) const
+{
+ csv_assert(pGate != 0);
+ UsedType *
+ pt = ::ary::ary_cast<UsedType>(&io_rType);
+ if (pt != 0)
+ pt->Connect2Ce(pGate->Ces());
+}
+
+void
+TypeConnector2ndTry::operator()( Type & io_rType ) const
+{
+ csv_assert(pGate != 0);
+ UsedType *
+ pt = ::ary::ary_cast<UsedType>(&io_rType);
+ if (pt != 0)
+ pt->Connect2CeOnlyKnownViaBaseClass(*pGate);
+}
+
+void
+HierarchyLinker::operator()( Class & io_rCe ) const
+{
+ csv_assert( ::ary::is_type<Class>(io_rCe) );
+ Class &
+ rClass = io_rCe;
+
+ for ( List_Bases::const_iterator it = rClass.BaseClasses().begin();
+ it != rClass.BaseClasses().end();
+ ++it )
+ {
+ const CodeEntity *
+ pCe = 0;
+ Type_id
+ nTid = (*it).nId;
+ for ( pCe = pGate->Search_RelatedCe(nTid);
+ ary::ary_cast<Typedef>(pCe) != 0;
+ pCe = pGate->Search_RelatedCe(nTid) )
+ {
+ nTid = static_cast< const Typedef* >(pCe)->DescribingType();
+ }
+ const Class *
+ pClass = ary::ary_cast<Class>(pCe);
+ if (pClass == 0)
+ return;
+ // KORR_FUTURE: we need a non const Find_Class()
+ const_cast< Class* >(pClass)->Add_KnownDerivative( io_rCe.CeId() );
+ }
+}
+
+const String &
+LesserGlobal::NameOf(GlobalId i_id) const
+{
+ if ( NOT IsDefine(i_id) )
+ {
+ return rCes[i_id.Id()].LocalName();
+ }
+ else
+ {
+ return rDes[i_id.Id()].LocalName();
+ }
+}
+
+
+
+} // namespace anonymous
diff --git a/autodoc/source/ary/cpp/c_reposypart.hxx b/autodoc/source/ary/cpp/c_reposypart.hxx
new file mode 100644
index 000000000000..355af34eb7c6
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_reposypart.hxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_REPOSYPART_HXX
+#define ARY_CPP_C_REPOSYPART_HXX
+
+
+
+// BASE CLASSES
+#include <cpp_internalgate.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class CeAdmin;
+ class DefAdmin;
+ class TypeAdmin;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** The C++ partition of the repository.
+*/
+class RepositoryPartition : public InternalGate
+{
+ public:
+ RepositoryPartition(
+ RepositoryCenter & i_reposyImpl );
+ virtual ~RepositoryPartition();
+
+ // INHERITED
+ // Interface Gate:
+ virtual void Calculate_AllSecondaryInformation();
+// const ::autodoc::Options &
+// i_options );
+ virtual const String &
+ RepositoryTitle() const;
+ virtual const CodeEntity *
+ Search_RelatedCe(
+ Type_id i_type ) const;
+ virtual const ::ary::cpp::CppEntity *
+ Search_Entity(
+ GlobalId i_id ) const;
+ virtual uintt Get_AlphabeticalList(
+ List_GlobalIds & o_result,
+ const char * i_begin,
+ const char * i_end ) const;
+ virtual const CePilot &
+ Ces() const;
+ virtual const DefPilot &
+ Defs() const;
+ virtual const TypePilot &
+ Types() const;
+ virtual const loc::LocationPilot &
+ Locations() const;
+ virtual CePilot & Ces();
+ virtual DefPilot & Defs();
+ virtual TypePilot & Types();
+ virtual loc::LocationPilot &
+ Locations();
+ private:
+ // Locals
+ void Connect_AllTypes_2_TheirRelated_CodeEntites();
+
+ // DATA
+ RepositoryCenter * pRepositoryCenter;
+
+ Dyn<CeAdmin> pCes;
+ Dyn<TypeAdmin> pTypes;
+ Dyn<DefAdmin> pDefs;
+ Dyn<loc::LocationPilot>
+ pLocations;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/c_slots.cxx b/autodoc/source/ary/cpp/c_slots.cxx
new file mode 100644
index 000000000000..bdb2351f1aad
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_slots.cxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <c_slots.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary_disp.hxx>
+#include <ary/cpp/c_namesp.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+//*********************** Slot_SubNamespaces ********************//
+
+
+Slot_SubNamespaces::Slot_SubNamespaces( const Map_NamespacePtr & i_rData )
+ : pData( &i_rData )
+{
+}
+
+Slot_SubNamespaces::~Slot_SubNamespaces()
+{
+}
+
+uintt
+Slot_SubNamespaces::Size() const
+{
+ return pData->size();
+}
+
+void
+Slot_SubNamespaces::StoreEntries( ary::Display & o_rDestination ) const
+{
+ for ( Map_NamespacePtr::const_iterator it = pData->begin();
+ it != pData->end();
+ ++it )
+ {
+ (*(*it).second).Accept(o_rDestination);
+ }
+}
+
+
+//*********************** Slot_BaseClass ********************//
+
+Slot_BaseClass::Slot_BaseClass( const List_Bases & i_rData )
+ : pData( &i_rData )
+{
+}
+
+Slot_BaseClass::~Slot_BaseClass()
+{
+}
+
+uintt
+Slot_BaseClass::Size() const
+{
+ return pData->size();
+}
+
+void
+Slot_BaseClass::StoreEntries( ary::Display & o_rDestination ) const
+{
+ for ( List_Bases::const_iterator it = pData->begin();
+ it != pData->end();
+ ++it )
+ {
+ csv::CheckedCall(o_rDestination, *it);
+ }
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_slots.hxx b/autodoc/source/ary/cpp/c_slots.hxx
new file mode 100644
index 000000000000..b2b662dbed39
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_slots.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_C_SLOTS_HXX
+#define ARY_CPP_C_SLOTS_HXX
+
+// BASE CLASSES
+#include <ary/ceslot.hxx>
+// USED SERVICES
+#include <ary/cpp/c_slntry.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+class Slot_SubNamespaces : public ary::Slot
+{
+ public:
+ Slot_SubNamespaces(
+ const Map_NamespacePtr &
+ i_rData );
+ virtual ~Slot_SubNamespaces();
+
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ ary::Display & o_rDestination ) const;
+ // DATA
+ const Map_NamespacePtr *
+ pData;
+};
+
+class Slot_BaseClass : public ary::Slot
+{
+ public:
+ Slot_BaseClass(
+ const List_Bases & i_rData );
+ virtual ~Slot_BaseClass();
+
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ ary::Display & o_rDestination ) const;
+ // DATA
+ const List_Bases * pData;
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/c_traits.cxx b/autodoc/source/ary/cpp/c_traits.cxx
new file mode 100644
index 000000000000..f269adaf9b65
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_traits.cxx
@@ -0,0 +1,223 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_traits.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/namesort.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/usedtype.hxx>
+#include <ary/getncast.hxx>
+#include "cs_ce.hxx"
+#include "cs_def.hxx"
+#include "cs_type.hxx"
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+//******************** Ce_Traits ********************//
+Ce_Traits::entity_base_type &
+Ce_Traits::EntityOf_(id_type i_id)
+{
+ csv_assert(i_id.IsValid());
+ return Ce_Storage::Instance_()[i_id];
+}
+
+//******************** CeNode_Traits ********************//
+const symtree::Node<CeNode_Traits> *
+CeNode_Traits::NodeOf_(const entity_base_type & i_entity)
+{
+ if (is_type<Namespace>(i_entity))
+ return & ary_cast<Namespace>(i_entity).AsNode();
+ else if (is_type<Class>(i_entity))
+ return & ary_cast<Class>(i_entity).AsNode();
+ return 0;
+}
+
+symtree::Node<CeNode_Traits> *
+CeNode_Traits::NodeOf_(entity_base_type & io_entity)
+{
+ if (is_type<Namespace>(io_entity))
+ return & ary_cast<Namespace>(io_entity).AsNode();
+ else if (is_type<Class>(io_entity))
+ return & ary_cast<Class>(io_entity).AsNode();
+ return 0;
+}
+
+Ce_Traits::entity_base_type *
+CeNode_Traits::ParentOf_(const entity_base_type & i_entity)
+{
+ Ce_Traits::id_type
+ ret = i_entity.Owner();
+ if (ret.IsValid())
+ {
+ if (is_type<EnumValue>(i_entity))
+ { // Return not the Enum, but the owner of the Enum:
+ ret = EntityOf_(ret).Owner();
+ csv_assert(ret.IsValid());
+ }
+ return &EntityOf_(ret);
+ }
+ return 0;
+}
+
+Ce_id
+CeNode_Search( const CodeEntity & i_entity,
+ const String & i_localKey )
+{
+ if (is_type<Namespace>(i_entity))
+ return ary_cast<Namespace>(i_entity).Search_Child(i_localKey);
+ else if (is_type<Class>(i_entity))
+ return ary_cast<Class>(i_entity).Search_Child(i_localKey);
+ return Ce_id(0);
+}
+
+
+
+
+//******************** Ce_Compare ********************//
+const Ce_Compare::key_type &
+Ce_Compare::KeyOf_(const entity_base_type & i_entity)
+{
+ return i_entity.LocalName();
+}
+
+bool
+Ce_Compare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ static ::ary::LesserName less_;
+ return less_(i_1,i_2);
+}
+
+
+//******************** Ce_GlobalCompare ********************//
+void
+Get_Qualified( StreamStr & o_out,
+ const CodeEntity & i_ce )
+{
+ if (i_ce.LocalName().empty())
+ return;
+ if (i_ce.Owner().IsValid())
+ Get_Qualified(o_out, Ce_Traits::EntityOf_(i_ce.Owner()));
+
+ o_out << i_ce.LocalName() << "::";
+}
+
+
+bool
+Ce_GlobalCompare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ static ::ary::LesserName less_;
+
+ if (i_1.LocalName() != i_2.LocalName())
+ return less_(i_1.LocalName(), i_2.LocalName());
+
+ csv_assert(i_1.Owner().IsValid() AND i_2.Owner().IsValid());
+
+ static StreamStr
+ aBuffer1_(300);
+ static StreamStr
+ aBuffer2_(300);
+ aBuffer1_.reset();
+ aBuffer2_.reset();
+
+ Get_Qualified(aBuffer1_, Ce_Traits::EntityOf_(i_1.Owner()));
+ Get_Qualified(aBuffer2_, Ce_Traits::EntityOf_(i_2.Owner()));
+ if (aBuffer1_.size() >= 2)
+ aBuffer1_.pop_back(2);
+ if (aBuffer2_.size() >= 2)
+ aBuffer2_.pop_back(2);
+ return less_(aBuffer1_.c_str(), aBuffer2_.c_str());
+}
+
+
+
+//******************** Def_Traits ********************//
+Def_Traits::entity_base_type &
+Def_Traits::EntityOf_(id_type i_id)
+{
+ csv_assert(i_id.IsValid());
+ return Def_Storage::Instance_()[i_id];
+}
+
+//******************** Def_Compare ********************//
+const Def_Compare::key_type &
+Def_Compare::KeyOf_(const entity_base_type & i_entity)
+{
+ return i_entity.LocalName();
+}
+
+bool
+Def_Compare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ static ::ary::LesserName less_;
+ return less_(i_1,i_2);
+}
+
+
+
+//******************** Type_Traits ********************//
+Type_Traits::entity_base_type &
+Type_Traits::EntityOf_(id_type i_id)
+{
+ csv_assert(i_id.IsValid());
+ return Type_Storage::Instance_()[i_id];
+}
+
+//******************** Type_Compare ********************//
+const UsedType_Compare::key_type &
+UsedType_Compare::KeyOf_(const entity_base_type & i_entity)
+{
+ csv_assert( is_type<UsedType>(i_entity) );
+ return ary_cast<UsedType>(i_entity);
+}
+
+bool
+UsedType_Compare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ return i_1 < i_2;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_tydef.cxx b/autodoc/source/ary/cpp/c_tydef.cxx
new file mode 100644
index 000000000000..284e30810e18
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_tydef.cxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_tydef.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <slots.hxx>
+#include "c_slots.hxx"
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Typedef::Typedef( const String & i_sLocalName,
+ Cid i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile,
+ Tid i_nDescribingType )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ i_nFile ),
+ nDescribingType(i_nDescribingType),
+ eProtection(i_eProtection)
+{
+}
+
+Typedef::~Typedef()
+{
+
+}
+
+const String &
+Typedef::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Typedef::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+Typedef::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+Typedef::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Typedef::get_AryClass() const
+{
+ return class_id;
+}
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/c_vari.cxx b/autodoc/source/ary/cpp/c_vari.cxx
new file mode 100644
index 000000000000..111eddee277b
--- /dev/null
+++ b/autodoc/source/ary/cpp/c_vari.cxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/c_vari.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Variable::Variable( const String & i_sLocalName,
+ Cid i_nOwner,
+ E_Protection i_eProtection,
+ Lid i_nFile,
+ Tid i_nType,
+ VariableFlags i_aFlags,
+ const String & i_sArraySize,
+ const String & i_sInitValue )
+ : aEssentials( i_sLocalName,
+ i_nOwner,
+ i_nFile ),
+ nType(i_nType),
+ eProtection(i_eProtection),
+ aFlags(i_aFlags),
+ sArraySize(i_sArraySize),
+ sInitialisation(i_sInitValue)
+{
+}
+
+Variable::~Variable()
+{
+}
+
+const String &
+Variable::inq_LocalName() const
+{
+ return aEssentials.LocalName();
+}
+
+Cid
+Variable::inq_Owner() const
+{
+ return aEssentials.Owner();
+}
+
+Lid
+Variable::inq_Location() const
+{
+ return aEssentials.Location();
+}
+
+void
+Variable::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Variable::get_AryClass() const
+{
+ return class_id;
+}
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/ca_ce.cxx b/autodoc/source/ary/cpp/ca_ce.cxx
new file mode 100644
index 000000000000..0bdbc41861a8
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_ce.cxx
@@ -0,0 +1,622 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#include <precomp.h>
+#include "ca_ce.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/qualiname.hxx>
+#include <ary/cpp/inpcontx.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_type.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/getncast.hxx>
+
+
+
+
+
+
+namespace
+{
+
+String Get_NewAnonymousNamespaceName();
+String Get_NewAnonymousName(
+ char i_start );
+
+
+} // anonymous namespace
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+// KORR_FUTURE
+// What about namespace visibility ?
+// Perhaps handle all/some visibility transfer only after parse is complete.
+void
+transfer_visibility( const Class * i_owner,
+ CodeEntity & o_child )
+{
+ if ( i_owner != 0 ? NOT i_owner->IsVisible() : false )
+ o_child.Set_InVisible();
+}
+
+inline const TypePilot &
+CeAdmin::Types() const
+{
+ csv_assert(pTypes != 0);
+ return *pTypes;
+}
+
+
+
+
+
+
+CeAdmin::CeAdmin(RepositoryPartition & io_myReposyPartition)
+ : aStorage(),
+ pTypes(0),
+ pCppRepositoryPartition(&io_myReposyPartition)
+{
+}
+
+void
+CeAdmin::Set_Related(const TypePilot & i_types)
+{
+ pTypes = &i_types;
+}
+
+CeAdmin::~CeAdmin()
+{
+}
+
+Namespace &
+CeAdmin::CheckIn_Namespace( const InputContext & i_context,
+ const String & i_localName )
+{
+ const String
+ local_name = NOT i_localName.empty()
+ ? i_localName
+ : Get_NewAnonymousNamespaceName();
+ Namespace &
+ rParent = i_context.CurNamespace();
+ Namespace *
+ ret = rParent.Search_LocalNamespace(local_name);
+ if ( ret == 0 )
+ {
+ ret = &Create_Namespace(rParent, local_name);
+ }
+ return *ret;
+}
+
+Class &
+CeAdmin::Store_Class( const InputContext & i_context,
+ const String & i_localName,
+ E_ClassKey i_eClassKey )
+{
+ const String
+ local_name = i_localName.empty()
+ ? Get_NewAnonymousName( i_eClassKey == CK_class
+ ? 'c'
+ : i_eClassKey == CK_struct
+ ? 's'
+ : 'u' )
+ : i_localName;
+
+ Class &
+ ret = * new Class( local_name,
+ i_context.CurOwner().CeId(),
+ i_context.CurProtection(),
+ i_context.CurFile().LeId(),
+ i_eClassKey );
+ aStorage.Store_Type(ret);
+ i_context.CurOwner().Add_Class(local_name, ret.CeId());
+ transfer_visibility(i_context.CurClass(), ret);
+
+ return ret;
+}
+
+Enum &
+CeAdmin::Store_Enum( const InputContext & i_context,
+ const String & i_localName )
+{
+ const String
+ local_name = i_localName.empty()
+ ? Get_NewAnonymousName('e')
+ : i_localName;
+ Enum &
+ ret = * new Enum( local_name,
+ i_context.CurOwner().CeId(),
+ i_context.CurProtection(),
+ i_context.CurFile().LeId() );
+ aStorage.Store_Type(ret);
+ i_context.CurOwner().Add_Enum(local_name, ret.CeId());
+ transfer_visibility(i_context.CurClass(), ret);
+
+ return ret;
+}
+
+Typedef &
+CeAdmin::Store_Typedef( const InputContext& i_context,
+ const String & i_localName,
+ Type_id i_referredType )
+{
+ Typedef &
+ ret = * new Typedef( i_localName,
+ i_context.CurOwner().CeId(),
+ i_context.CurProtection(),
+ i_context.CurFile().LeId(),
+ i_referredType );
+ aStorage.Store_Type(ret);
+ i_context.CurOwner().Add_Typedef(i_localName, ret.CeId());
+ transfer_visibility(i_context.CurClass(), ret);
+
+ return ret;
+}
+
+Function *
+CeAdmin::Store_Operation( const InputContext & i_context,
+ const String & i_localName,
+ Type_id i_returnType,
+ const std::vector<S_Parameter> & i_parameters,
+ E_Virtuality i_virtuality,
+ E_ConVol i_conVol,
+ FunctionFlags i_flags,
+ bool i_throwExists,
+ const std::vector<Type_id> & i_exceptions )
+{
+ Function &
+ ret = * new Function( i_localName,
+ i_context.CurOwner().CeId(),
+ i_context.CurProtection(),
+ i_context.CurFile().LeId(),
+ i_returnType,
+ i_parameters,
+ i_conVol,
+ i_virtuality,
+ i_flags,
+ i_throwExists,
+ i_exceptions );
+
+ // Check for double declaration:
+ Ce_id
+ nAlreadyExistingFunction(0);
+ switch ( lhf_CheckAndHandle_DuplicateOperation(
+ nAlreadyExistingFunction,
+ i_context,
+ ret) )
+ {
+ case df_discard_new:
+ delete &ret;
+ return 0;
+ case df_replace:
+ csv_assert(nAlreadyExistingFunction.IsValid());
+ aStorage.Replace_Entity(
+ nAlreadyExistingFunction,
+ ret );
+ break;
+ case df_no:
+ aStorage.Store_Operation(ret); // Now it has a valid id.
+ i_context.CurOwner().Add_Operation( i_localName, ret.CeId(), i_flags.IsStaticMember() );
+ break;
+ default:
+ csv_assert(false);
+ }
+
+ transfer_visibility(i_context.CurClass(), ret);
+ if ( i_context.CurProtection() != PROTECT_global )
+ {
+ Class *
+ pClass = i_context.CurClass();
+ if ( pClass != 0 AND i_virtuality != VIRTUAL_none)
+ {
+ pClass->UpdateVirtuality(i_virtuality);
+ }
+ }
+
+ return &ret;
+}
+
+Variable &
+CeAdmin::Store_Variable( const InputContext& i_context,
+ const String & i_localName,
+ Type_id i_type,
+ VariableFlags i_flags,
+ const String & i_arraySize,
+ const String & i_initValue )
+{
+ Variable &
+ ret = * new Variable( i_localName,
+ i_context.CurOwner().CeId(),
+ i_context.CurProtection(),
+ i_context.CurFile().LeId(),
+ i_type,
+ i_flags,
+ i_arraySize,
+ i_initValue );
+
+ bool
+ is_const = Types().Find_Type(i_type).IsConst();
+ aStorage.Store_Datum(ret);
+ i_context.CurOwner().Add_Variable(
+ i_localName,
+ ret.CeId(),
+ is_const,
+ i_flags.IsStaticMember() );
+ transfer_visibility(i_context.CurClass(), ret);
+
+ return ret;
+}
+
+EnumValue &
+CeAdmin::Store_EnumValue( const InputContext & i_context,
+ const String & i_localName,
+ const String & i_initValue )
+{
+ Enum *
+ parent = i_context.CurEnum();
+ csv_assert( parent != 0 );
+
+ EnumValue &
+ ret = * new EnumValue( i_localName,
+ parent->CeId(),
+ i_initValue );
+ aStorage.Store_Datum(ret);
+ parent->Add_Value(ret.CeId());
+
+ // KORR also for current enum:
+ transfer_visibility(i_context.CurClass(), ret);
+
+ return ret;
+}
+
+const Namespace &
+CeAdmin::GlobalNamespace() const
+{
+ return ary_cast<Namespace>( aStorage[predefined::ce_GlobalNamespace] );
+}
+
+const CodeEntity &
+CeAdmin::Find_Ce(Ce_id i_id) const
+{
+ return aStorage[i_id];
+}
+
+const CodeEntity *
+CeAdmin::Search_Ce(Ce_id i_id) const
+{
+ return aStorage.Exists(i_id)
+ ? & aStorage[i_id]
+ : (const CodeEntity*)(0);
+}
+
+const CodeEntity *
+CeAdmin::Search_CeAbsolute( const CodeEntity & i_curScope,
+ const QualifiedName & i_rSearchedName ) const
+{
+ const symtree::Node<CeNode_Traits> *
+ cur_node = CeNode_Traits::NodeOf_(i_curScope);
+ csv_assert(cur_node != 0);
+
+ Ce_id
+ ret(0);
+ cur_node->SearchUp( ret,
+ i_rSearchedName.first_namespace(),
+ i_rSearchedName.end_namespace(),
+ i_rSearchedName.LocalName() );
+ return Search_Ce(ret);
+}
+
+const CodeEntity *
+CeAdmin::Search_CeLocal( const String & i_localName,
+ bool i_bIsFunction,
+ const Namespace & i_rCurNamespace,
+ const Class * i_pCurClass ) const
+{
+ // KORR_FUTURE
+ // See if this is correct.
+
+ Ce_id
+ ret(0);
+
+ if ( NOT i_bIsFunction )
+ {
+ CesResultList
+ type_instances = aStorage.TypeIndex().SearchAll(i_localName);
+ CesResultList
+ data_instances = aStorage.DataIndex().SearchAll(i_localName);
+ Ce_id
+ ret1 = Search_MatchingInstance(
+ type_instances,
+ (i_pCurClass
+ ? i_pCurClass->CeId()
+ : i_rCurNamespace.CeId())
+ );
+ Ce_id
+ ret2 = Search_MatchingInstance(
+ data_instances,
+ (i_pCurClass
+ ? i_pCurClass->CeId()
+ : i_rCurNamespace.CeId())
+ );
+ if (NOT ret2.IsValid())
+ ret = ret1;
+ else if (NOT ret1.IsValid())
+ ret = ret2;
+ }
+ else
+ {
+ CesResultList
+ function_instances = aStorage.OperationIndex().SearchAll(i_localName);
+ if ( function_instances.size() == 1 )
+ ret = *function_instances.begin();
+ else
+ {
+ ret = Search_MatchingInstance(
+ function_instances,
+ (i_pCurClass
+ ? i_pCurClass->CeId()
+ : i_rCurNamespace.CeId())
+ );
+ }
+ }
+
+ if ( ret.IsValid() )
+ return & Find_Ce(ret);
+
+ return 0;
+}
+
+void
+CeAdmin::Get_QualifiedName( StreamStr & o_rOut,
+ const String & i_localName,
+ Ce_id i_nOwner,
+ const char * i_sDelimiter ) const
+{
+ if ( i_localName.empty() OR NOT i_nOwner.IsValid() )
+ return;
+
+ const CodeEntity *
+ pOwner = & Find_Ce( i_nOwner );
+ if ( is_type<Enum>(*pOwner) )
+ pOwner = &Find_Ce( Ce_id(pOwner->Owner()) );
+
+ Get_QualifiedName( o_rOut,
+ pOwner->LocalName(),
+ Ce_id(pOwner->Owner()),
+ i_sDelimiter );
+ o_rOut
+ << i_sDelimiter
+ << i_localName;
+}
+
+void
+CeAdmin::Get_SignatureText( StreamStr & o_rOut,
+ const OperationSignature & i_signature,
+ const StringVector * i_sParameterNames ) const
+{
+ OperationSignature::ParameterTypeList::const_iterator
+ it = i_signature.Parameters().begin();
+ OperationSignature::ParameterTypeList::const_iterator
+ it_end = i_signature.Parameters().end();
+
+ const StringVector aDummy;
+ StringVector::const_iterator
+ itName = i_sParameterNames != 0
+ ? i_sParameterNames->begin()
+ : aDummy.begin();
+ StringVector::const_iterator
+ itName_end = i_sParameterNames != 0
+ ? i_sParameterNames->end()
+ : aDummy.end();
+
+ bool
+ bEmpty = (it == it_end);
+ if (NOT bEmpty)
+ {
+ o_rOut << "( ";
+ Types().Get_TypeText(o_rOut, *it);
+ if (itName != itName_end)
+ o_rOut << " " << (*itName);
+
+ for ( ++it; it != it_end; ++it )
+ {
+ o_rOut << ", ";
+ Types().Get_TypeText(o_rOut, *it);
+ if (itName != itName_end)
+ {
+ ++itName;
+ if (itName != itName_end)
+ o_rOut << " " << (*itName);
+ }
+ }
+ o_rOut << " )";
+ }
+ else
+ {
+ o_rOut << "( )";
+ }
+
+ if ( intt(i_signature.ConVol()) & intt(ary::cpp::CONVOL_const) )
+ o_rOut << " const";
+ if ( intt(i_signature.ConVol()) & intt(ary::cpp::CONVOL_volatile) )
+ o_rOut << " volatile";
+}
+
+CesResultList
+CeAdmin::Search_TypeName(const String & i_sName) const
+{
+ return aStorage.TypeIndex().SearchAll(i_sName);
+}
+
+Namespace &
+CeAdmin::GlobalNamespace()
+{
+ return ary_cast<Namespace>( aStorage[predefined::ce_GlobalNamespace] );
+}
+
+CeAdmin::E_DuplicateFunction
+CeAdmin::lhf_CheckAndHandle_DuplicateOperation(
+ Ce_id & o_existentFunction,
+ const InputContext & i_context,
+ const Function & i_newFunction )
+{
+ if (i_context.CurProtection() != PROTECT_global)
+ {
+ // Assume, there will be no duplicates within the same class.
+
+ // KORR_FUTURE
+ // Assumption may be wrong in case of #defines providing different
+ // versions for different compilers.
+ return df_no;
+ }
+
+ std::vector<Ce_id>
+ aOperationsWithSameName;
+ i_context.CurNamespace().Search_LocalOperations(
+ aOperationsWithSameName,
+ i_newFunction.LocalName() );
+
+ for ( std::vector<Ce_id>::const_iterator
+ it = aOperationsWithSameName.begin();
+ it != aOperationsWithSameName.end();
+ ++it )
+ {
+ const Function &
+ rFunction = ary_cast<Function>(aStorage[*it]);
+ if ( rFunction.LocalName() == i_newFunction.LocalName()
+ AND rFunction.Signature() == i_newFunction.Signature() )
+ {
+ if (NOT rFunction.IsIdentical(i_newFunction))
+ {
+ // KORR_FUTURE Make this more detailed.
+ Cerr() << "Non identical function with same signature "
+ << "found: "
+ << i_context.CurNamespace().LocalName()
+ << "::"
+ << i_newFunction.LocalName()
+ << "(..)"
+ << Endl();
+ }
+ o_existentFunction = rFunction.CeId();
+ if (rFunction.Docu().Data() == 0)
+ return df_replace;
+ else
+ return df_discard_new;
+ }
+ } // end for
+
+ return df_no;
+}
+
+Namespace &
+CeAdmin::Create_Namespace( Namespace & o_parent,
+ const String & i_localName )
+{
+ DYN Namespace &
+ ret = *new Namespace(i_localName, o_parent);
+ aStorage.Store_Entity(ret);
+ o_parent.Add_LocalNamespace(ret);
+ return ret;
+}
+
+Ce_id
+CeAdmin::Search_MatchingInstance( CesResultList i_list,
+ Ce_id i_owner ) const
+{
+ // KORR
+ // Multiple results?
+
+ for ( CesList::const_iterator it = i_list.begin();
+ it != i_list.end();
+ ++it )
+ {
+ const CodeEntity &
+ ce = aStorage[*it];
+ if ( ce.Owner() == i_owner)
+ {
+ return *it;
+ }
+ }
+ return Ce_id(0);
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+
+
+
+namespace
+{
+
+uintt G_nLastFreeAnonymousNamespaceNr = 0;
+uintt G_nLastFreeAnonymousEntityNr = 0;
+
+String
+Get_NewAnonymousNamespaceName()
+{
+ StreamLock
+ sl(100);
+ return String( sl()
+ << "namespace_anonymous_"
+ << ++G_nLastFreeAnonymousNamespaceNr
+ << csv::c_str );
+
+}
+
+String
+Get_NewAnonymousName(char i_cStart)
+{
+ StreamLock
+ sl(100);
+ return String( sl()
+ << i_cStart
+ << "_Anonymous__"
+ << ++G_nLastFreeAnonymousEntityNr
+ << c_str );
+}
+
+
+
+} // namespace anonymous
diff --git a/autodoc/source/ary/cpp/ca_ce.hxx b/autodoc/source/ary/cpp/ca_ce.hxx
new file mode 100644
index 000000000000..67f9c444e95b
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_ce.hxx
@@ -0,0 +1,213 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CA_CE_HXX
+#define ARY_CPP_CA_CE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/cp_ce.hxx>
+ // OTHER
+#include "cs_ce.hxx"
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Ce_Storage;
+ class RepositoryPartition;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Administrates all C++ code entities (types, operations, variables).
+*/
+class CeAdmin : public CePilot
+{
+ public:
+ // LIFECYCLE
+ CeAdmin(
+ RepositoryPartition &
+ io_myReposyPartition );
+ void Set_Related(
+ const TypePilot & i_types );
+ virtual ~CeAdmin();
+
+ // INQUIRY
+ const Ce_Storage & Storage() const;
+
+ // ACCESS
+ Ce_Storage & Storage();
+
+ // INHERITED
+ // Interface CePilot:
+ virtual Namespace & CheckIn_Namespace(
+ const InputContext &
+ i_context,
+ const String & i_localName );
+ virtual Class & Store_Class(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ E_ClassKey i_classKey );
+ virtual Enum & Store_Enum(
+ const InputContext &
+ i_context,
+ const String & i_localName );
+ virtual Typedef & Store_Typedef(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_referredType );
+ virtual Function * Store_Operation(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_returnType,
+ const std::vector<S_Parameter> &
+ i_parameters,
+ E_Virtuality i_virtuality,
+ E_ConVol i_conVol,
+ FunctionFlags i_flags,
+ bool i_throwExists,
+ const std::vector<Type_id> &
+ i_exceptions );
+ virtual Variable & Store_Variable(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ Type_id i_type,
+ VariableFlags i_flags,
+ const String & i_arraySize,
+ const String & i_initValue );
+ virtual EnumValue & Store_EnumValue(
+ const InputContext &
+ i_context,
+ const String & i_localName,
+ const String & i_initValue );
+ virtual const Namespace &
+ GlobalNamespace() const;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_id ) const;
+ virtual const CodeEntity *
+ Search_Ce(
+ Ce_id i_id ) const;
+ virtual const CodeEntity *
+ Search_CeAbsolute(
+ const CodeEntity & i_curScope,
+ const QualifiedName &
+ i_absoluteName ) const;
+ virtual const CodeEntity *
+ Search_CeLocal(
+ const String & i_relativeName,
+ bool i_isFunction,
+ const Namespace & i_curNamespace,
+ const Class * i_curClass ) const;
+ virtual void Get_QualifiedName(
+ StreamStr & o_result,
+ const String & i_localName,
+ Ce_id i_owner,
+ const char * i_delimiter = "::" ) const;
+ virtual void Get_SignatureText(
+ StreamStr & o_rOut,
+ const OperationSignature &
+ i_signature,
+ const StringVector *
+ i_sParameterNames = 0 ) const;
+ virtual CesResultList
+ Search_TypeName(
+ const String & i_sName ) const;
+ virtual Namespace & GlobalNamespace();
+
+ private:
+ // Locals
+ /// @return true, if function is duplicate.
+ enum E_DuplicateFunction
+ {
+ df_no,
+ df_replace,
+ df_discard_new
+ };
+
+ /** @param o_existentFunction
+ The id of the already existing function, else unset.
+ */
+ E_DuplicateFunction lhf_CheckAndHandle_DuplicateOperation(
+ Ce_id & o_existentFunction,
+ const InputContext &
+ i_context,
+ const Function & i_newFunction );
+ Namespace & Create_Namespace(
+ Namespace & o_parent,
+ const String & i_localName );
+ Ce_id Search_MatchingInstance(
+ CesResultList i_list,
+ Ce_id i_owner ) const;
+ const TypePilot & Types() const;
+
+ // DATA
+ Ce_Storage aStorage;
+ const TypePilot * pTypes;
+ RepositoryPartition *
+ pCppRepositoryPartition;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const Ce_Storage &
+CeAdmin::Storage() const
+{
+ return aStorage;
+}
+
+inline Ce_Storage &
+CeAdmin::Storage()
+{
+ return aStorage;
+}
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/ca_def.cxx b/autodoc/source/ary/cpp/ca_def.cxx
new file mode 100644
index 000000000000..6fa2bf087996
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_def.cxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "ca_def.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/cpp/inpcontx.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+DefAdmin::DefAdmin(RepositoryPartition & io_myReposyPartition)
+ : aStorage(),
+ pCppRepositoryPartition(&io_myReposyPartition)
+{
+}
+
+DefAdmin::~DefAdmin()
+{
+}
+
+Define &
+DefAdmin::Store_Define( const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector & i_rDefinition )
+{
+ Define &
+ ret = *new Define( i_sName,
+ i_rDefinition,
+ i_rContext.CurFile().LeId() );
+ aStorage.Store_Define(ret);
+ return ret;
+
+}
+
+Macro &
+DefAdmin::Store_Macro( const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector & i_rParams,
+ const StringVector & i_rDefinition )
+{
+ Macro &
+ ret = *new Macro( i_sName,
+ i_rParams,
+ i_rDefinition,
+ i_rContext.CurFile().LeId() );
+ aStorage.Store_Macro(ret);
+ return ret;
+}
+
+const DefineEntity &
+DefAdmin::Find_Def(De_id i_id) const
+{
+ return aStorage[i_id];
+}
+
+DefsResultList
+DefAdmin::AllDefines() const
+{
+ return csv::make_range( aStorage.DefineIndex().Begin(),
+ aStorage.DefineIndex().End() );
+}
+
+DefsResultList
+DefAdmin::AllMacros() const
+{
+ return csv::make_range( aStorage.MacroIndex().Begin(),
+ aStorage.MacroIndex().End() );
+}
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/ca_def.hxx b/autodoc/source/ary/cpp/ca_def.hxx
new file mode 100644
index 000000000000..266382c8577f
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_def.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CA_DEF_HXX
+#define ARY_CPP_CA_DEF_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/cp_def.hxx>
+ // OTHER
+#include "cs_def.hxx"
+
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Def_Storage;
+ class RepositoryPartition;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+
+class DefAdmin : public DefPilot
+{
+ public:
+ // LIFECYCLE
+ DefAdmin(
+ RepositoryPartition &
+ io_myReposyPartition );
+ ~DefAdmin();
+
+ // INQUIRY
+ const Def_Storage & Storage() const;
+
+ // INHERITED
+ // Interface DefPilot:
+ virtual Define & Store_Define(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rDefinition );
+ virtual Macro & Store_Macro(
+ const InputContext& i_rContext,
+ const String & i_sName,
+ const StringVector &
+ i_rParams,
+ const StringVector &
+ i_rDefinition );
+ virtual const DefineEntity &
+ Find_Def(
+ De_id i_id ) const;
+ virtual DefsResultList
+ AllDefines() const;
+ virtual DefsResultList
+ AllMacros() const;
+
+ private:
+ // DATA
+ Def_Storage aStorage;
+ RepositoryPartition *
+ pCppRepositoryPartition;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const Def_Storage &
+DefAdmin::Storage() const
+{
+ return aStorage;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/ca_type.cxx b/autodoc/source/ary/cpp/ca_type.cxx
new file mode 100644
index 000000000000..4ebfae31b869
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_type.cxx
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "ca_type.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_builtintype.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/cpp/inpcontx.hxx>
+#include <ary/cpp/usedtype.hxx>
+#include <ary/getncast.hxx>
+#include "c_reposypart.hxx"
+#include "cs_type.hxx"
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+TypeAdmin::TypeAdmin(RepositoryPartition & io_myReposyPartition)
+ : aStorage(),
+ pCppRepositoryPartition(&io_myReposyPartition)
+{
+}
+
+TypeAdmin::~TypeAdmin()
+{
+}
+
+
+// KORR_FUTURE
+// Remove unused parameter.
+
+const Type &
+TypeAdmin::CheckIn_UsedType( const InputContext & ,
+ DYN UsedType & pass_type )
+{
+ Dyn<UsedType>
+ pNewType(&pass_type); // Ensure clean up of heap object.
+
+ Type_id
+ tid(0);
+ if (pass_type.IsBuiltInType())
+ {
+ tid = aStorage.Search_BuiltInType(
+ BuiltInType::SpecializedName_( pass_type.LocalName().c_str(),
+ pass_type.TypeSpecialisation() ));
+ csv_assert(tid.IsValid());
+ return aStorage[tid];
+ }
+
+ tid = aStorage.UsedTypeIndex().Search(pass_type);
+ if (tid.IsValid())
+ {
+ return aStorage[tid];
+ }
+
+ // Type does not yet exist:
+ // Transfer ownership from pNewTypeand assign id:
+ aStorage.Store_Entity(*pNewType.Release());
+
+ aStorage.UsedTypeIndex().Add(pass_type.TypeId());
+ return pass_type;
+}
+
+const Type &
+TypeAdmin::Find_Type(Type_id i_type) const
+{
+ return aStorage[i_type];
+}
+
+bool
+TypeAdmin::Get_TypeText( StreamStr & o_result,
+ Type_id i_type ) const
+{
+ if (NOT i_type.IsValid())
+ return false;
+ aStorage[i_type].Get_Text(o_result, *pCppRepositoryPartition);
+ return true;
+}
+
+bool
+TypeAdmin::Get_TypeText( StreamStr & o_preName,
+ StreamStr & o_name,
+ StreamStr & o_postName,
+ Type_id i_type ) const
+{
+ if (NOT i_type.IsValid())
+ return false;
+ aStorage[i_type].Get_Text(o_preName, o_name, o_postName, *pCppRepositoryPartition);
+ return true;
+}
+
+Type_id
+TypeAdmin::Tid_Ellipse() const
+{
+ return Type_id(predefined::t_ellipse);
+}
+
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/ca_type.hxx b/autodoc/source/ary/cpp/ca_type.hxx
new file mode 100644
index 000000000000..ae0580709ce8
--- /dev/null
+++ b/autodoc/source/ary/cpp/ca_type.hxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CA_TYPE_HXX
+#define ARY_CPP_CA_TYPE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/cp_type.hxx>
+ // OTHER
+#include "cs_type.hxx"
+
+
+
+namespace ary
+{
+namespace cpp
+{
+ class RepositoryPartition;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** Administrates all C++ types as uses in user declarations
+ as return-, parameter- or variable-types.
+*/
+class TypeAdmin : public TypePilot
+{
+ public:
+ // LIFECYCLE
+ TypeAdmin(
+ RepositoryPartition &
+ io_myReposyPartition );
+ virtual ~TypeAdmin();
+
+ // INQUIRY
+ /// @return A list of all stored types that are not C++ or STL builtin types.
+ const Type_Storage &
+ Storage() const;
+
+ // ACCESS
+ Type_Storage & Storage();
+
+ // INHERITED
+ // Interface TypePilot:
+ virtual const Type &
+ CheckIn_UsedType(
+ const InputContext &
+ i_context,
+ DYN UsedType & pass_type );
+ virtual const Type &
+ Find_Type(
+ Type_id i_type ) const;
+ virtual bool Get_TypeText(
+ StreamStr & o_result,
+ Type_id i_type ) const;
+ virtual bool Get_TypeText(
+ StreamStr & o_preName, /// ::ary::cpp::
+ StreamStr & o_name, /// MyClass
+ StreamStr & o_postName, /// <TplArgument> * const &
+ Type_id i_type ) const;
+ virtual Type_id Tid_Ellipse() const;
+
+ private:
+ // DATA
+ Type_Storage aStorage;
+ RepositoryPartition *
+ pCppRepositoryPartition;
+};
+
+
+
+
+// IMPLEMENTATION
+inline const Type_Storage &
+TypeAdmin::Storage() const
+{
+ return aStorage;
+}
+
+inline Type_Storage &
+TypeAdmin::Storage()
+{
+ return aStorage;
+}
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/cs_ce.cxx b/autodoc/source/ary/cpp/cs_ce.cxx
new file mode 100644
index 000000000000..e8c34567e4fd
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_ce.cxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cs_ce.hxx"
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_namesp.hxx>
+
+
+
+namespace
+{
+const uintt
+ C_nReservedElements = ::ary::cpp::predefined::ce_MAX; // Skipping "0" and the GlobalNamespace
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Ce_Storage * Ce_Storage::pInstance_ = 0;
+
+
+
+Ce_Storage::Ce_Storage()
+ : stg::Storage<CodeEntity>(C_nReservedElements),
+ aTypes(),
+ aOperations(),
+ aData()
+
+{
+ Set_Reserved( predefined::ce_GlobalNamespace,
+ *new Namespace );
+
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Ce_Storage::~Ce_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+Ce_id
+Ce_Storage::Store_Type(DYN CodeEntity & pass_ce)
+{
+ Ce_id
+ ret = Store_Entity(pass_ce);
+ aTypes.Add(ret);
+ return ret;
+}
+
+Ce_id
+Ce_Storage::Store_Operation(DYN CodeEntity & pass_ce)
+{
+ Ce_id
+ ret = Store_Entity(pass_ce);
+ aOperations.Add(ret);
+ return ret;
+}
+
+Ce_id
+Ce_Storage::Store_Datum(DYN CodeEntity & pass_ce)
+{
+ Ce_id
+ ret = Store_Entity(pass_ce);
+ aData.Add(ret);
+ return ret;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/cs_ce.hxx b/autodoc/source/ary/cpp/cs_ce.hxx
new file mode 100644
index 000000000000..fa150aa71664
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_ce.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CS_CE_HXX
+#define ARY_CPP_CS_CE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <store/s_storage.hxx>
+ // OTHER
+#include <ary/cpp/c_ce.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <sortedids.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** The data base for all ->ary::cpp::CodeEntity objects.
+*/
+class Ce_Storage : public ::ary::stg::Storage<CodeEntity>
+{
+ public:
+ typedef SortedIds<Ce_Compare> Index;
+
+ Ce_Storage();
+ virtual ~Ce_Storage();
+
+ Ce_id Store_Type(
+ DYN CodeEntity & pass_ce );
+ Ce_id Store_Operation(
+ DYN CodeEntity & pass_ce );
+ Ce_id Store_Datum(
+ DYN CodeEntity & pass_ce );
+
+ const Index & TypeIndex() const { return aTypes; }
+ const Index & OperationIndex() const { return aOperations; }
+ const Index & DataIndex() const { return aData; }
+
+ Index & TypeIndex() { return aTypes; }
+ Index & OperationIndex() { return aOperations; }
+ Index & DataIndex() { return aData; }
+
+ static Ce_Storage & Instance_() { csv_assert(pInstance_ != 0);
+ return *pInstance_; }
+ private:
+ // DATA
+ Index aTypes;
+ Index aOperations;
+ Index aData;
+
+ static Ce_Storage * pInstance_;
+};
+
+
+
+
+namespace predefined
+{
+
+enum E_CodeEntity
+{
+ ce_GlobalNamespace = 1,
+ ce_MAX
+};
+
+} // namespace predefined
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/cs_def.cxx b/autodoc/source/ary/cpp/cs_def.cxx
new file mode 100644
index 000000000000..d12e5de24164
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_def.cxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cs_def.hxx"
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace
+{
+const uintt
+ C_nReservedElements = ::ary::cpp::predefined::de_MAX; // Skipping "0"
+}
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+Def_Storage * Def_Storage::pInstance_ = 0;
+
+
+
+
+Def_Storage::Def_Storage()
+ : stg::Storage<DefineEntity>(C_nReservedElements)
+{
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Def_Storage::~Def_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+De_id
+Def_Storage::Store_Define(DYN DefineEntity & pass_de)
+{
+ De_id
+ ret = Store_Entity(pass_de);
+ aDefines.Add(ret);
+ return ret;
+}
+
+De_id
+Def_Storage::Store_Macro(DYN DefineEntity & pass_de)
+{
+ De_id
+ ret = Store_Entity(pass_de);
+ aMacros.Add(ret);
+ return ret;
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/cs_def.hxx b/autodoc/source/ary/cpp/cs_def.hxx
new file mode 100644
index 000000000000..6e1e2ad380c3
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_def.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CS_DE_HXX
+#define ARY_CPP_CS_DE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <store/s_storage.hxx>
+ // OTHER
+#include <ary/cpp/c_de.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <sortedids.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+
+/** The data base for all ->ary::cpp::Type objects.
+*/
+class Def_Storage : public ::ary::stg::Storage<DefineEntity>
+{
+ public:
+ typedef SortedIds<Def_Compare> Index;
+
+ // LIFECYCLE
+ Def_Storage();
+ virtual ~Def_Storage();
+
+ De_id Store_Define(
+ DYN DefineEntity & pass_de );
+ De_id Store_Macro(
+ DYN DefineEntity & pass_de );
+
+ const Index & DefineIndex() const { return aDefines; }
+ const Index & MacroIndex() const { return aMacros; }
+
+ Index & DefineIndex() { return aDefines; }
+ Index & MacroIndex() { return aMacros; }
+
+ static Def_Storage &
+ Instance_() { csv_assert(pInstance_ != 0);
+ return *pInstance_; }
+ private:
+ // DATA
+ Index aDefines;
+ Index aMacros;
+
+
+ static Def_Storage *
+ pInstance_;
+};
+
+
+
+
+namespace predefined
+{
+
+enum E_DefineEntity
+{
+ // 0 is always unused with repository storages.
+ de_MAX = 1
+};
+
+} // namespace predefined
+
+
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/cs_type.cxx b/autodoc/source/ary/cpp/cs_type.cxx
new file mode 100644
index 000000000000..723108dbc49e
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_type.cxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cs_type.hxx"
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_builtintype.hxx>
+
+
+namespace
+{
+ const uintt
+ C_nReservedElements = ary::cpp::predefined::t_MAX; // Skipping "0" and the builtin types
+}
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+Type_Storage * Type_Storage::pInstance_ = 0;
+
+
+
+
+Type_Storage::Type_Storage()
+ : stg::Storage<Type>(C_nReservedElements),
+ aBuiltInTypes()
+{
+ Setup_BuiltInTypes();
+
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Type_Storage::~Type_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+Type_id
+Type_Storage::Search_BuiltInType( const String & i_specializedName ) const
+{
+ return csv::value_from_map(aBuiltInTypes, i_specializedName, Tid(0));
+}
+
+void
+Type_Storage::Setup_BuiltInTypes()
+{
+ Set_BuiltInType( predefined::t_void, "void" );
+ Set_BuiltInType( predefined::t_bool, "bool" );
+ Set_BuiltInType( predefined::t_char, "char" );
+ Set_BuiltInType( predefined::t_signed_char, "char", TYSP_signed );
+ Set_BuiltInType( predefined::t_unsigned_char, "char", TYSP_unsigned );
+ Set_BuiltInType( predefined::t_short, "short" );
+ Set_BuiltInType( predefined::t_unsigned_short, "short", TYSP_unsigned );
+ Set_BuiltInType( predefined::t_int, "int" );
+ Set_BuiltInType( predefined::t_unsigned_int, "int", TYSP_unsigned );
+ Set_BuiltInType( predefined::t_long, "long" );
+ Set_BuiltInType( predefined::t_unsigned_long, "long", TYSP_unsigned );
+ Set_BuiltInType( predefined::t_float, "float" );
+ Set_BuiltInType( predefined::t_double, "double" );
+ Set_BuiltInType( predefined::t_size_t, "size_t" );
+ Set_BuiltInType( predefined::t_wchar_t, "wchar_t" );
+ Set_BuiltInType( predefined::t_ptrdiff_t, "ptrdiff_t" );
+ Set_BuiltInType( predefined::t_ellipse, "..." );
+}
+
+void
+Type_Storage::Set_BuiltInType( Rid i_id,
+ const char * i_sName,
+ ary::cpp::E_TypeSpecialisation i_eSpecialisation )
+{
+ DYN BuiltInType &
+ rNew = *new BuiltInType(i_sName, i_eSpecialisation);
+ Set_Reserved( i_id, rNew); // Here goes the ownership for rNew.
+ aBuiltInTypes[rNew.SpecializedName()] = rNew.TypeId();
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/cs_type.hxx b/autodoc/source/ary/cpp/cs_type.hxx
new file mode 100644
index 000000000000..ee8ceee06c12
--- /dev/null
+++ b/autodoc/source/ary/cpp/cs_type.hxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_CS_TYPE_HXX
+#define ARY_CPP_CS_TYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <store/s_storage.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/cpp/c_type.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <ary/cpp/usedtype.hxx>
+#include <sortedids.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+
+/** The data base for all ->ary::cpp::Type objects.
+*/
+class Type_Storage : public ::ary::stg::Storage<Type>
+{
+ public:
+ typedef SortedIds<UsedType_Compare> UT_Index;
+
+ Type_Storage();
+ virtual ~Type_Storage();
+
+ const UT_Index & UsedTypeIndex() const;
+
+ UT_Index & UsedTypeIndex();
+ Type_id Search_BuiltInType(
+ const String & i_specializedName ) const;
+
+ static Type_Storage &
+ Instance_() { csv_assert(pInstance_ != 0);
+ return *pInstance_; }
+ private:
+ // Locals
+ void Setup_BuiltInTypes();
+ void Set_BuiltInType(
+ Rid i_nId,
+ const char * i_sName,
+ ary::cpp::E_TypeSpecialisation
+ i_eSpecialisation = TYSP_none );
+ // DATA
+ UT_Index aUsedTypes;
+ std::map<String,Type_id>
+ aBuiltInTypes;
+
+
+ static Type_Storage *
+ pInstance_;
+};
+
+
+
+
+namespace predefined
+{
+
+enum E_Type
+{
+ // 0 is always unused with repository storages.
+ t_void = 1,
+ t_bool,
+ t_char,
+ t_signed_char,
+ t_unsigned_char,
+ t_short,
+ t_unsigned_short,
+ t_int,
+ t_unsigned_int,
+ t_long,
+ t_unsigned_long,
+ t_float,
+ t_double,
+ t_size_t,
+ t_wchar_t,
+ t_ptrdiff_t,
+ t_ellipse,
+ t_MAX
+};
+
+} // namespace predefined
+
+
+
+// IMPLEMENTATION
+inline const Type_Storage::UT_Index &
+Type_Storage::UsedTypeIndex() const
+{
+ return aUsedTypes;
+}
+
+inline Type_Storage::UT_Index &
+Type_Storage::UsedTypeIndex()
+{
+ return aUsedTypes;
+}
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/makefile.mk b/autodoc/source/ary/cpp/makefile.mk
new file mode 100644
index 000000000000..5c20a59bd82e
--- /dev/null
+++ b/autodoc/source/ary/cpp/makefile.mk
@@ -0,0 +1,80 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_cpp
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/c_builtintype.obj \
+ $(OBJ)$/c_class.obj \
+ $(OBJ)$/c_de.obj \
+ $(OBJ)$/c_define.obj \
+ $(OBJ)$/c_enum.obj \
+ $(OBJ)$/c_enuval.obj \
+ $(OBJ)$/c_funct.obj \
+ $(OBJ)$/c_macro.obj \
+ $(OBJ)$/c_namesp.obj \
+ $(OBJ)$/c_osigna.obj \
+ $(OBJ)$/c_reposypart.obj \
+ $(OBJ)$/c_slots.obj \
+ $(OBJ)$/c_traits.obj \
+ $(OBJ)$/c_tydef.obj \
+ $(OBJ)$/c_vari.obj \
+ $(OBJ)$/ca_ce.obj \
+ $(OBJ)$/ca_def.obj \
+ $(OBJ)$/ca_type.obj \
+ $(OBJ)$/cs_ce.obj \
+ $(OBJ)$/cs_def.obj \
+ $(OBJ)$/cs_type.obj \
+ $(OBJ)$/namechain.obj \
+ $(OBJ)$/tplparam.obj \
+ $(OBJ)$/usedtype.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/ary/cpp/namechain.cxx b/autodoc/source/ary/cpp/namechain.cxx
new file mode 100644
index 000000000000..d164a588dcb9
--- /dev/null
+++ b/autodoc/source/ary/cpp/namechain.cxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/namechain.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/usedtype.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include "tplparam.hxx"
+
+
+
+namespace ary
+{
+namespace cpp
+{
+namespace ut
+{
+
+
+//********************* NameSegment ******************//
+
+NameSegment::NameSegment( const char * i_sName )
+ : sName( i_sName )
+ // pTemplate
+{
+}
+
+NameSegment::NameSegment( const NameSegment & i_rSeg )
+ : sName(i_rSeg.sName)
+ // pTemplate
+{
+ // KORR_FUTURE : Handling of copying of templates.
+// csv_assert( NOT i_rSeg.pTemplate );
+}
+
+NameSegment& NameSegment::operator=(const NameSegment & i_rSeg)
+{
+ sName = i_rSeg.sName;
+ return *this;
+}
+
+NameSegment::~NameSegment()
+{
+}
+
+List_TplParameter &
+NameSegment::AddTemplate()
+{
+ return * (pTemplate = new List_TplParameter);
+}
+
+intt
+NameSegment::Compare( const NameSegment & i_rOther ) const
+{
+ intt nResult = strcmp( sName.c_str(), i_rOther.sName.c_str() );
+ if (nResult != 0)
+ return nResult;
+ if ( bool(pTemplate) != bool(i_rOther.pTemplate) )
+ {
+ if ( NOT pTemplate )
+ return -1;
+ else
+ return +1;
+ }
+ else if ( NOT pTemplate )
+ return 0;
+ else
+ return pTemplate->Compare( *i_rOther.pTemplate );
+}
+
+void
+NameSegment::Get_Text_AsScope( StreamStr & o_rOut,
+ const Gate & i_rGate ) const
+{
+ o_rOut << sName;
+ if ( pTemplate )
+ pTemplate->Get_Text( o_rOut, i_rGate );
+}
+
+void
+NameSegment::Get_Text_AsMainType( StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const
+{
+ o_rName << sName;
+ if ( pTemplate )
+ pTemplate->Get_Text( o_rPostName, i_rGate );
+}
+
+
+//********************* NameChain ******************//
+
+NameChain::NameChain()
+// : aSegments
+{
+}
+
+NameChain::~NameChain()
+{
+}
+
+void
+NameChain::Add_Segment( const char * i_sSeg )
+{
+ aSegments.push_back( NameSegment(i_sSeg) );
+}
+
+List_TplParameter &
+NameChain::Templatize_LastSegment()
+{
+ csv_assert( aSegments.size() > 0 );
+
+ return aSegments.back().AddTemplate();
+}
+
+intt
+NameChain::Compare( const NameChain & i_rChain ) const
+{
+ intt nResult = intt(aSegments.size()) - intt(i_rChain.aSegments.size());
+ if (nResult != 0)
+ return nResult;
+
+ std::vector< NameSegment >::const_iterator it1 = aSegments.begin();
+ std::vector< NameSegment >::const_iterator it1End = aSegments.end();
+ std::vector< NameSegment >::const_iterator it2 = i_rChain.aSegments.begin();
+
+ for ( ; it1 != it1End; ++it1, ++it2 )
+ {
+ nResult = (*it1).Compare(*it2);
+ if (nResult != 0)
+ return nResult;
+ }
+
+ return 0;
+}
+
+const String &
+NameChain::LastSegment() const
+{
+ if ( aSegments.size() > 0 )
+ return aSegments.back().Name();
+ return String::Null_();
+}
+
+void
+NameChain::Get_Text( StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const
+{
+ std::vector< NameSegment >::const_iterator it = aSegments.begin();
+ std::vector< NameSegment >::const_iterator itEnd = aSegments.end();
+
+ if ( it == itEnd )
+ return;
+
+ for ( --itEnd; it != itEnd; ++it )
+ {
+ (*it).Get_Text_AsScope( o_rPreName, i_rGate );
+ o_rPreName << "::";
+ }
+ (*it).Get_Text_AsMainType( o_rName, o_rPostName, i_rGate );
+}
+
+
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/tplparam.cxx b/autodoc/source/ary/cpp/tplparam.cxx
new file mode 100644
index 000000000000..67f8439c0c59
--- /dev/null
+++ b/autodoc/source/ary/cpp/tplparam.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "tplparam.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_type.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+namespace ut
+{
+
+TplParameter_Type::TplParameter_Type( Tid i_nType )
+ : nType(i_nType)
+{
+}
+
+TplParameter_Type::~TplParameter_Type()
+{
+}
+
+intt
+TplParameter_Type::Compare( const TemplateParameter & i_rOther ) const
+{
+ const TplParameter_Type * pOther
+ = dynamic_cast< const TplParameter_Type* >( &i_rOther );
+ if (pOther == 0)
+ return -1;
+
+ return static_cast<long>(nType.Value())
+ - static_cast<long>(pOther->nType.Value());
+}
+
+void
+TplParameter_Type::Get_Text( StreamStr & o_rOut,
+ const ary::cpp::Gate & i_rGate ) const
+{
+ i_rGate.Types().Get_TypeText( o_rOut, nType );
+}
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/cpp/tplparam.hxx b/autodoc/source/ary/cpp/tplparam.hxx
new file mode 100644
index 000000000000..f8ee57b968c7
--- /dev/null
+++ b/autodoc/source/ary/cpp/tplparam.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_TPLPARAM_HXX
+#define ARY_CPP_TPLPARAM_HXX
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+ class UsedType;
+ class Gate;
+
+namespace ut
+{
+
+
+class TemplateParameter
+{
+ public:
+ virtual ~TemplateParameter() {}
+
+ virtual intt Compare(
+ const TemplateParameter &
+ i_rOther ) const = 0;
+ virtual void Get_Text(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const = 0;
+};
+
+
+class TplParameter_Type : public TemplateParameter
+{
+ public:
+ TplParameter_Type(
+ Tid i_nType );
+ ~TplParameter_Type();
+
+ virtual intt Compare(
+ const TemplateParameter &
+ i_rOther ) const;
+ virtual void Get_Text(
+ StreamStr & o_rOut,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+ private:
+ Tid nType;
+};
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/cpp/usedtype.cxx b/autodoc/source/ary/cpp/usedtype.cxx
new file mode 100644
index 000000000000..bf1d864ad68b
--- /dev/null
+++ b/autodoc/source/ary/cpp/usedtype.cxx
@@ -0,0 +1,575 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cpp/usedtype.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/symtreenode.hxx>
+#include <ary/cpp/c_ce.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_traits.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <ary/getncast.hxx>
+#include "tplparam.hxx"
+
+
+
+namespace
+{
+
+using namespace ::ary::cpp;
+typedef std::vector< ary::cpp::E_ConVol > PtrLevelVector;
+
+
+inline bool
+result2bool( intt i_nResult )
+ { return i_nResult < 0; }
+
+
+intt compare_PtrLevelVector(
+ const PtrLevelVector &
+ i_r1,
+ const PtrLevelVector &
+ i_r2 );
+inline intt
+compare_ConVol( E_ConVol i_e1,
+ E_ConVol i_e2 )
+ { return intt(i_e1) - intt(i_e2); }
+
+inline intt
+compare_bool( bool i_b1,
+ bool i_b2 )
+ { return i_b1 == i_b2
+ ? 0
+ : i_b1
+ ? -1
+ : +1; }
+inline intt
+compare_Specialisation( E_TypeSpecialisation i_e1,
+ E_TypeSpecialisation i_e2 )
+ { return intt(i_e1) - intt(i_e2); }
+
+inline bool
+is_const( E_ConVol i_eCV )
+ { return ( intt(i_eCV) & intt(CONVOL_const) ) != 0; }
+
+inline bool
+is_volatile( E_ConVol i_eCV )
+ { return ( intt(i_eCV) & intt(CONVOL_volatile) ) != 0; }
+
+
+intt
+compare_PtrLevelVector( const PtrLevelVector & i_r1,
+ const PtrLevelVector & i_r2 )
+{
+ intt nResult = i_r1.size() - i_r2.size();
+ if ( nResult != 0 )
+ return nResult;
+
+ PtrLevelVector::const_iterator it1 = i_r1.begin();
+ PtrLevelVector::const_iterator it1End = i_r1.end();
+ PtrLevelVector::const_iterator it2 = i_r2.begin();
+
+ for ( ; it1 != it1End; ++it1, ++it2 )
+ {
+ nResult = compare_ConVol(*it1, *it2);
+ if ( nResult != 0 )
+ return nResult;
+ }
+
+ return 0;
+}
+
+
+} // anonymous namespace
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+typedef symtree::Node<CeNode_Traits> CeNode;
+typedef ut::NameChain::const_iterator nc_iter;
+
+Ce_id CheckForRelatedCe_inNode(
+ const CeNode & i_node,
+ const StringVector& i_qualification,
+ const String & i_name );
+
+
+UsedType::UsedType(Ce_id i_scope )
+ : aPath(),
+ aPtrLevels(),
+ eConVol_Type(CONVOL_none),
+ bIsReference(false),
+ bIsAbsolute(false),
+ bRefers2BuiltInType(false),
+ eTypeSpecialisation(TYSP_none),
+ nRelatedCe(0),
+ nScope(i_scope)
+{
+}
+
+UsedType::~UsedType()
+{
+}
+
+
+bool
+UsedType::operator<( const UsedType & i_rType ) const
+{
+ intt nResult = compare_bool( bIsAbsolute, i_rType.bIsAbsolute );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = static_cast<intt>(nScope.Value())
+ -
+ static_cast<intt>(i_rType.nScope.Value());
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = aPath.Compare( i_rType.aPath );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = compare_ConVol( eConVol_Type, i_rType.eConVol_Type );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = compare_PtrLevelVector( aPtrLevels, i_rType.aPtrLevels );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = compare_bool( bIsReference, i_rType.bIsReference );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ nResult = compare_Specialisation( eTypeSpecialisation, i_rType.eTypeSpecialisation );
+ if ( nResult != 0 )
+ return result2bool(nResult);
+
+ return false;
+}
+
+void
+UsedType::Set_Absolute()
+{
+ bIsAbsolute = true;
+}
+
+void
+UsedType::Add_NameSegment( const char * i_sSeg )
+{
+ aPath.Add_Segment(i_sSeg);
+}
+
+ut::List_TplParameter &
+UsedType::Enter_Template()
+{
+ return aPath.Templatize_LastSegment();
+}
+
+void
+UsedType::Set_Unsigned()
+{
+ eTypeSpecialisation = TYSP_unsigned;
+}
+
+void
+UsedType::Set_Signed()
+{
+ eTypeSpecialisation = TYSP_signed;
+}
+
+void
+UsedType::Set_BuiltIn( const char * i_sType )
+{
+ aPath.Add_Segment(i_sType);
+ bRefers2BuiltInType = true;
+}
+
+void
+UsedType::Set_Const()
+{
+ if (PtrLevel() == 0)
+ eConVol_Type = E_ConVol(eConVol_Type | CONVOL_const);
+ else
+ aPtrLevels.back() = E_ConVol(aPtrLevels.back() | CONVOL_const);
+}
+
+void
+UsedType::Set_Volatile()
+{
+ if (PtrLevel() == 0)
+ eConVol_Type = E_ConVol(eConVol_Type | CONVOL_volatile);
+ else
+ aPtrLevels.back() = E_ConVol(aPtrLevels.back() | CONVOL_volatile);
+}
+
+void
+UsedType::Add_PtrLevel()
+{
+ aPtrLevels.push_back(CONVOL_none);
+}
+
+void
+UsedType::Set_Reference()
+{
+ bIsReference = true;
+}
+
+inline bool
+IsInternal(const ary::cpp::CodeEntity & i_ce)
+{
+ const ary::doc::OldCppDocu *
+ docu = dynamic_cast< const ary::doc::OldCppDocu* >(i_ce.Docu().Data());
+ if (docu != 0)
+ return docu->IsInternal();
+ return false;
+}
+
+
+void
+UsedType::Connect2Ce( const CePilot & i_ces)
+{
+ StringVector
+ qualification;
+ String
+ name;
+ Get_NameParts(qualification, name);
+
+ for ( const CeNode * scope_node = CeNode_Traits::NodeOf_(
+ i_ces.Find_Ce(nScope));
+ scope_node != 0;
+ scope_node = scope_node->Parent() )
+ {
+ nRelatedCe = CheckForRelatedCe_inNode(*scope_node, qualification, name);
+ if ( nRelatedCe.IsValid() )
+ {
+ if ( IsInternal(i_ces.Find_Ce(nRelatedCe)) )
+ nRelatedCe = Ce_id(0);
+ return;
+ }
+ } // end for
+}
+
+void
+UsedType::Connect2CeOnlyKnownViaBaseClass(const Gate & i_gate)
+{
+ csv_assert(nScope.IsValid());
+ CesResultList
+ instances = i_gate.Ces().Search_TypeName( LocalName() );
+
+ // If there are no matches, or only one match that was already
+ // accepted, all work is done.
+ if ( (nRelatedCe.IsValid() AND instances.size() == 1)
+ OR instances.size() == 0 )
+ return;
+
+ StringVector
+ qualification;
+ String
+ name;
+ Get_NameParts(qualification, name);
+
+ const CodeEntity &
+ scopece = i_gate.Ces().Find_Ce(nScope);
+
+ // Else search for declaration in own class and then in base classes.
+ // These would be of higher priority than those in parent namespaces.
+ Ce_id
+ foundce = RecursiveSearchCe_InBaseClassesOf(
+ scopece, qualification, name, i_gate);
+ if (foundce.IsValid())
+ nRelatedCe = foundce;
+
+ if ( nRelatedCe.IsValid() AND IsInternal(i_gate.Ces().Find_Ce(nRelatedCe)) )
+ {
+ nRelatedCe = Ce_id(0);
+ }
+}
+
+bool
+UsedType::IsBuiltInType() const
+{
+ return bRefers2BuiltInType
+ AND aPtrLevels.size() == 0
+ AND NOT bIsReference
+ AND eConVol_Type == ary::cpp::CONVOL_none;
+}
+
+const String &
+UsedType::LocalName() const
+{
+ return aPath.LastSegment();
+}
+
+E_TypeSpecialisation
+UsedType::TypeSpecialisation() const
+{
+ return eTypeSpecialisation;
+}
+
+void
+UsedType::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ary::ClassId
+UsedType::get_AryClass() const
+{
+ return class_id;
+}
+
+Rid
+UsedType::inq_RelatedCe() const
+{
+ return nRelatedCe.Value();
+}
+
+bool
+UsedType::inq_IsConst() const
+{
+ if ( is_const(eConVol_Type) )
+ return true;
+ for ( PtrLevelVector::const_iterator it = aPtrLevels.begin();
+ it != aPtrLevels.end();
+ ++it )
+ {
+ if ( is_const(*it) )
+ return true;
+ }
+
+ return false;
+}
+
+void
+UsedType::inq_Get_Text( StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const Gate & i_rGate ) const
+{
+ if ( is_const(eConVol_Type) )
+ o_rPreName << "const ";
+ if ( is_volatile(eConVol_Type) )
+ o_rPreName << "volatile ";
+ if ( bIsAbsolute )
+ o_rPreName << "::";
+
+ aPath.Get_Text( o_rPreName, o_rName, o_rPostName, i_rGate );
+
+ for ( PtrLevelVector::const_iterator it = aPtrLevels.begin();
+ it != aPtrLevels.end();
+ ++it )
+ {
+ o_rPostName << " *";
+ if ( is_const(*it) )
+ o_rPostName << " const";
+ if ( is_volatile(*it) )
+ o_rPostName << " volatile";
+ }
+ if ( bIsReference )
+ o_rPostName << " &";
+}
+
+Ce_id
+UsedType::RecursiveSearchCe_InBaseClassesOf( const CodeEntity & i_mayBeClass,
+ const StringVector & i_myQualification,
+ const String & i_myName,
+ const Gate & i_gate ) const
+{
+ // Find in this class?
+ const CeNode *
+ basenode = CeNode_Traits::NodeOf_(i_mayBeClass);
+ if (basenode == 0)
+ return Ce_id(0);
+ Ce_id
+ found = CheckForRelatedCe_inNode(*basenode, i_myQualification, i_myName);
+ if (found.IsValid())
+ return found;
+
+
+ const Class *
+ cl = ary_cast<Class>(&i_mayBeClass);
+ if (cl == 0)
+ return Ce_id(0);
+
+ for ( List_Bases::const_iterator it = cl->BaseClasses().begin();
+ it != cl->BaseClasses().end();
+ ++it )
+ {
+ csv_assert((*it).nId.IsValid());
+ Ce_id
+ base = i_gate.Types().Find_Type((*it).nId).RelatedCe();
+ while (base.IsValid() AND is_type<Typedef>(i_gate.Ces().Find_Ce(base)) )
+ {
+ base = i_gate.Types().Find_Type(
+ ary_cast<Typedef>(i_gate.Ces().Find_Ce(base))
+ .DescribingType() )
+ .RelatedCe();
+ }
+
+ if (base.IsValid())
+ {
+ const CodeEntity &
+ basece = i_gate.Ces().Find_Ce(base);
+ found = RecursiveSearchCe_InBaseClassesOf(
+ basece, i_myQualification, i_myName, i_gate);
+ if (found.IsValid())
+ return found;
+ }
+ } // end for
+
+ return Ce_id(0);
+}
+
+
+void
+UsedType::Get_NameParts( StringVector & o_qualification,
+ String & o_name )
+{
+ nc_iter nit = aPath.begin();
+ nc_iter nit_end = aPath.end();
+ csv_assert(nit != nit_end); // Each UsedType has to have a local name.
+
+ --nit_end;
+ o_name = (*nit_end).Name();
+ for ( ;
+ nit != nit_end;
+ ++nit )
+ {
+ o_qualification.push_back( (*nit).Name() );
+ }
+}
+
+Ce_id
+CheckForRelatedCe_inNode( const CeNode & i_node,
+ const StringVector & i_qualification,
+ const String & i_name )
+{
+ if (i_qualification.size() > 0)
+ {
+ Ce_id
+ ret(0);
+ i_node.SearchBelow( ret,
+ i_qualification.begin(),
+ i_qualification.end(),
+ i_name );
+ return ret;
+ }
+ else
+ {
+ return i_node.Search(i_name);
+ }
+}
+
+
+namespace ut
+{
+
+List_TplParameter::List_TplParameter()
+ : aTplParameters()
+{
+}
+
+List_TplParameter::~List_TplParameter()
+{
+ csv::erase_container_of_heap_ptrs(aTplParameters);
+}
+
+void
+List_TplParameter::AddParam_Type( Type_id i_nType )
+{
+ aTplParameters.push_back( new TplParameter_Type(i_nType) );
+}
+
+void
+List_TplParameter::Get_Text( StreamStr & o_rOut,
+ const ary::cpp::Gate & i_rGate ) const
+{
+ Vector_TplArgument::const_iterator it = aTplParameters.begin();
+ Vector_TplArgument::const_iterator itEnd = aTplParameters.end();
+
+ if ( it == itEnd )
+ {
+ o_rOut << "<>";
+ return;
+ }
+
+ o_rOut << "< ";
+
+ (*it)->Get_Text( o_rOut, i_rGate );
+
+ for ( ++it; it != itEnd; ++it )
+ {
+ o_rOut << ", ";
+ (*it)->Get_Text( o_rOut, i_rGate );
+ }
+
+ o_rOut << " >";
+}
+
+intt
+List_TplParameter::Compare( const List_TplParameter & i_rOther ) const
+{
+ intt nResult = intt(aTplParameters.size()) - intt(i_rOther.aTplParameters.size());
+
+ if (nResult != 0)
+ return nResult;
+
+ Vector_TplArgument::const_iterator it1 = aTplParameters.begin();
+ Vector_TplArgument::const_iterator it1End = aTplParameters.end();
+ Vector_TplArgument::const_iterator it2 = i_rOther.aTplParameters.begin();
+
+ for ( ; it1 != it1End; ++it1, ++it2 )
+ {
+ nResult = (*it1)->Compare( *(*it2) );
+ if (nResult != 0)
+ return nResult;
+ }
+
+ return 0;
+}
+
+
+} // namespace ut
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/doc/d_boolean.cxx b/autodoc/source/ary/doc/d_boolean.cxx
new file mode 100644
index 000000000000..9d28b822ce1b
--- /dev/null
+++ b/autodoc/source/ary/doc/d_boolean.cxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/doc/d_boolean.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+Boolean::~Boolean()
+{
+}
+
+void
+Boolean::do_Accept(csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
diff --git a/autodoc/source/ary/doc/d_docu.cxx b/autodoc/source/ary/doc/d_docu.cxx
new file mode 100644
index 000000000000..50c841e2fb00
--- /dev/null
+++ b/autodoc/source/ary/doc/d_docu.cxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/doc/d_docu.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_node.hxx>
+
+namespace ary
+{
+namespace doc
+{
+
+Documentation::Documentation()
+ : pData(0)
+{
+}
+
+Documentation::~Documentation()
+{
+}
+
+void
+Documentation::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+
+
+
+} // namespace doc
+} // namespace ary
diff --git a/autodoc/source/ary/doc/d_node.cxx b/autodoc/source/ary/doc/d_node.cxx
new file mode 100644
index 000000000000..23e30c6ca286
--- /dev/null
+++ b/autodoc/source/ary/doc/d_node.cxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/doc/d_node.hxx>
+
+
+namespace ary
+{
+namespace doc
+{
+
+
+
+Node::~Node()
+{
+}
+
+Node::Node(nodetype::id i_type)
+ : nType(i_type),
+ pNext(0)
+{
+}
+
+void
+Node::Add_toChain( DYN Node & pass_nextNode )
+{
+ if (NOT pNext)
+ pNext = &pass_nextNode;
+ else
+ pNext->Add_toChain(pass_nextNode);
+}
+
+uintt
+Node::ListSize() const
+{
+ return pNext
+ ? pNext->ListSize() + 1
+ : 1;
+}
+
+
+
+} // namespace doc
+} // namespace ary
diff --git a/autodoc/source/ary/doc/d_oldcppdocu.cxx b/autodoc/source/ary/doc/d_oldcppdocu.cxx
new file mode 100644
index 000000000000..26ab84fb768e
--- /dev/null
+++ b/autodoc/source/ary/doc/d_oldcppdocu.cxx
@@ -0,0 +1,336 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/doc/d_oldcppdocu.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/info/all_tags.hxx>
+#include <ary/info/docstore.hxx>
+#include <ary/info/infodisp.hxx>
+#include <docu_node_ids.hxx>
+
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+using namespace info;
+
+
+
+
+unsigned char C_ucNO_INDEX = 255;
+typedef DYN StdTag * (F_CREATE)();
+
+
+OldCppDocu::OldCppDocu()
+ : Node(docnt::nt_OldCppDocu),
+ bIsObsolete(false),
+ bIsInternal(false),
+ bIsInterface(false)
+{
+ memset( nTags, C_ucNO_INDEX, size_t(C_eAtTag_NrOfClasses) );
+}
+
+OldCppDocu::~OldCppDocu()
+{
+}
+
+void
+OldCppDocu::Store2( info::DocuStore & o_rDocuStore )
+{
+ o_rDocuStore.Store2ConnectedDeclaration(*this);
+}
+
+AtTag *
+OldCppDocu::Create_StdTag( E_AtTagId i_eId )
+{
+ UINT8 nIndex = static_cast<UINT8>(i_eId);
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new StdTag(i_eId);
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::CheckIn_BaseTag()
+{
+ UINT8 nIndex = atc_base;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new BaseTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::CheckIn_ExceptionTag()
+{
+ UINT8 nIndex = atc_exception;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new ExceptionTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::Create_ImplementsTag()
+{
+ UINT8 nIndex = atc_implements;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new ImplementsTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::Create_KeywordTag()
+{
+ UINT8 nIndex = atc_keyword;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new KeywordTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::CheckIn_ParameterTag()
+{
+ UINT8 nIndex = atc_parameter;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new ParameterTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::CheckIn_SeeTag()
+{
+ UINT8 nIndex = atc_see;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new SeeTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::CheckIn_TemplateTag()
+{
+ UINT8 nIndex = atc_template;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new TemplateTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::Create_LabelTag()
+{
+ UINT8 nIndex = atc_label;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new LabelTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::Create_DefaultTag()
+{
+ UINT8 nIndex = atid_descr;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new StdTag(atid_descr);
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+AtTag *
+OldCppDocu::Create_SinceTag()
+{
+ UINT8 nIndex = atc_since;
+ if ( nTags[nIndex] == C_ucNO_INDEX )
+ {
+ AtTag * ret = new SinceTag();
+ NewTag(nIndex) = ret;
+ return ret;
+ }
+ else
+ {
+ return GetTag(nIndex).GetFollower();
+ }
+}
+
+
+void
+OldCppDocu::Replace_AtShort_By_AtDescr()
+{
+ unsigned char nPosInTags = nTags[atid_short];
+ if ( nPosInTags == C_ucNO_INDEX )
+ return;
+
+ AtTag * pTag = aTags[ nPosInTags ];
+ if ( pTag == 0 ) // Should be csv_assert().
+ return;
+
+ csv_assert( dynamic_cast< StdTag* >(pTag) != 0 );
+ StdTag * pStdTag = static_cast< StdTag* >(pTag);
+
+ pStdTag->ChangeId2(atid_descr);
+ nTags[atid_short] = C_ucNO_INDEX;
+ nTags[atid_descr] = nPosInTags;
+}
+
+void
+OldCppDocu::Set_Obsolete()
+{
+ bIsObsolete = true;
+}
+
+void
+OldCppDocu::Set_Internal()
+{
+ bIsInternal = true;
+}
+
+const AtTag &
+OldCppDocu::Short() const
+{
+ static const StdTag aNull_(atid_short);
+
+ unsigned char nPosInTags = nTags[atid_short];
+ if ( nPosInTags != C_ucNO_INDEX )
+ {
+ AtTag * pTag = aTags[ nPosInTags ];
+ if ( pTag != 0 ) // Should be csv_assert().
+ {
+ return *pTag;
+ }
+ }
+
+ return aNull_;
+}
+
+AtTag * &
+OldCppDocu::NewTag(UINT8 i_nIndex)
+{
+ nTags[i_nIndex] = static_cast<UINT8>(aTags.size());
+ aTags.push_back(0);
+ return aTags.back();
+}
+
+AtTag &
+OldCppDocu::GetTag( UINT8 i_nIndex )
+{
+ csv_assert( i_nIndex < C_eAtTag_NrOfClasses );
+ csv_assert( nTags[i_nIndex] != C_ucNO_INDEX );
+ csv_assert( aTags[nTags[i_nIndex]] != 0 );
+ return * aTags[nTags[i_nIndex]];
+}
+
+bool
+OldCppDocu::IsInternal() const
+{
+ return bIsInternal;
+}
+
+bool
+OldCppDocu::IsInterface() const
+{
+ return bIsInterface;
+}
+
+void
+OldCppDocu::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+} // namespace doc
+} // namespace ary
diff --git a/autodoc/source/ary/doc/d_oldidldocu.cxx b/autodoc/source/ary/doc/d_oldidldocu.cxx
new file mode 100644
index 000000000000..1c61a6ac0fb0
--- /dev/null
+++ b/autodoc/source/ary/doc/d_oldidldocu.cxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/doc/d_oldidldocu.hxx>
+
+// NOT FULLY DEFINED SERVICES
+#include <docu_node_ids.hxx>
+
+
+
+namespace ary
+{
+namespace doc
+{
+
+using namespace ::ary::inf;
+
+
+OldIdlDocu::OldIdlDocu()
+ : Node(docnt::nt_OldIdlDocu),
+ aShort(),
+ aDescription(),
+ aDeprecatedText(),
+ aTags(),
+ pExternShort(0),
+ bIsPublished(false),
+ bIsDeprecated(false),
+ bIsOptional(false)
+{
+}
+
+OldIdlDocu::~OldIdlDocu()
+{
+}
+
+void
+OldIdlDocu::AddToken2DeprecatedText( DYN DocuToken & let_drToken )
+{
+ aDeprecatedText.AddToken(let_drToken);
+}
+
+void
+OldIdlDocu::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+
+
+} // namespace info
+} // namespace ary
diff --git a/autodoc/source/ary/doc/makefile.mk b/autodoc/source/ary/doc/makefile.mk
new file mode 100644
index 000000000000..21989dcc5827
--- /dev/null
+++ b/autodoc/source/ary/doc/makefile.mk
@@ -0,0 +1,58 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_doc
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/d_boolean.obj \
+ $(OBJ)$/d_docu.obj \
+ $(OBJ)$/d_node.obj \
+ $(OBJ)$/d_oldcppdocu.obj \
+ $(OBJ)$/d_oldidldocu.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/autodoc/source/ary/idl/i2s_calculator.cxx b/autodoc/source/ary/idl/i2s_calculator.cxx
new file mode 100644
index 000000000000..111e9548b941
--- /dev/null
+++ b/autodoc/source/ary/idl/i2s_calculator.cxx
@@ -0,0 +1,992 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "i2s_calculator.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+#include <string.h>
+#include <cosv/file.hxx>
+//#include <adc_manager.hxx>
+//#include <adc_options.hxx>
+#include <ary/qualiname.hxx>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_function.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/i_sisingleton.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <ary/namesort.hxx>
+#include <nametreenode.hxx>
+#include "i_nnfinder.hxx"
+#include "ia_ce.hxx"
+#include "ia_type.hxx"
+#include "is_ce.hxx"
+#include "is_type.hxx"
+#include "it_ce.hxx"
+#include "it_explicit.hxx"
+#include "it_sequence.hxx"
+#include "it_xnameroom.hxx"
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+template <class DEST>
+DEST *
+SecondariesCalculator::SearchCe4Type(Type_id i_type)
+{
+ Ce_id
+ ce = lhf_Search_CeFromTypeId(i_type);
+ if (ce.IsValid())
+ return ary_cast<DEST>(& my_CeStorage()[ce]);
+ return 0;
+}
+
+
+typedef stg::const_iterator<CodeEntity> stg_citerator;
+typedef stg::iterator<CodeEntity> stg_iterator;
+
+typedef stg::filter_iterator<CodeEntity,Interface>
+ interface_iterator;
+
+typedef stg::filter_iterator<Type,ExplicitType>
+ explicittype_iterator;
+
+typedef ary::stg::const_filter_iterator<CodeEntity,Typedef>
+ typedef_citerator;
+
+
+inline Service *
+SecondariesCalculator::lhf_SearchService( Type_id i_nType )
+{
+ return SearchCe4Type<Service>(i_nType);
+}
+
+inline Interface *
+SecondariesCalculator::lhf_SearchInterface( Type_id i_nType )
+{
+ return SearchCe4Type<Interface>(i_nType);
+}
+
+inline Struct *
+SecondariesCalculator::lhf_SearchStruct( Type_id i_nType )
+{
+ return SearchCe4Type<Struct>(i_nType);
+}
+
+inline Exception *
+SecondariesCalculator::lhf_SearchException( Type_id i_nType )
+{
+ return SearchCe4Type<Exception>(i_nType);
+}
+
+inline const Ce_Storage &
+SecondariesCalculator::my_CeStorage() const
+{
+ csv_assert(pCes != 0);
+ return pCes->Storage();
+}
+
+inline const Type_Storage &
+SecondariesCalculator::my_TypeStorage() const
+{
+ csv_assert(pTypes != 0);
+ return pTypes->Storage();
+}
+
+inline Ce_Storage &
+SecondariesCalculator::my_CeStorage()
+{
+ csv_assert(pCes != 0);
+ return pCes->Storage();
+}
+
+inline Type_Storage &
+SecondariesCalculator::my_TypeStorage()
+{
+ csv_assert(pTypes != 0);
+ return pTypes->Storage();
+}
+
+inline void
+SecondariesCalculator::insert_into2sList( CodeEntity & o_out,
+ int i_listIndex,
+ Ce_id i_nCe )
+ { o_out.Secondaries().Access_List(i_listIndex).push_back(i_nCe); }
+
+
+SecondariesCalculator::SecondariesCalculator( CeAdmin & i_ces,
+ TypeAdmin & i_types )
+ : pCes(&i_ces),
+ pTypes(&i_types)
+{
+}
+
+SecondariesCalculator::~SecondariesCalculator()
+{
+}
+
+
+void
+SecondariesCalculator::CheckAllInterfaceBases()
+{
+ Module &
+ rGlobalNamespace = pCes->GlobalNamespace();
+ QualifiedName
+ aXInterface("::com::sun::star::uno::XInterface","::");
+
+ const Type &
+ rType = pTypes->CheckIn_Type( aXInterface,
+ 0,
+ rGlobalNamespace.CeId(),
+ 0 );
+ Type_id
+ nTypeXInterface = rType.TypeId();
+ const ExplicitType &
+ rExplType = ary_cast<ExplicitType>(rType);
+ Ce_id
+ nCeXInterface = lhf_Search_CeForType(rExplType);
+
+ interface_iterator itEnd( my_CeStorage().End() );
+ for ( interface_iterator it( my_CeStorage().BeginUnreserved() );
+ it != itEnd;
+ ++it )
+ {
+ if (NOT it.IsValid())
+ continue;
+
+ Interface &
+ rInterface = *it;
+ if ( NOT rInterface.HasBase() // According to UNO IDL syntax, an interface without base has com::sun::star::uno::XInterface as base.
+ AND rInterface.CeId() != nCeXInterface ) // XInterface must not be base of itself.
+ {
+ rInterface.Add_Base(nTypeXInterface, 0);
+ }
+ } // end for
+}
+
+void
+SecondariesCalculator::Connect_Types2Ces()
+{
+ explicittype_iterator itEnd( my_TypeStorage().End() );
+ for ( explicittype_iterator it( my_TypeStorage().BeginUnreserved() );
+ it != itEnd;
+ ++it )
+ {
+ if (NOT it.IsValid())
+ continue;
+
+ ExplicitType &
+ rType = ary_cast<ExplicitType>(*it);
+ Ce_id
+ nRelatedCe = lhf_Search_CeForType(rType);
+ if (nRelatedCe.IsValid())
+ {
+ Ce_Type *
+ pNew = new Ce_Type(nRelatedCe, rType.TemplateParameters());
+ my_TypeStorage().Replace_Entity( rType.TypeId(),
+ *pNew );
+ }
+ } // end for
+}
+
+void
+SecondariesCalculator::Gather_CrossReferences()
+{
+ gather_Synonyms();
+
+ for ( stg_iterator it = my_CeStorage().Begin();
+ it != my_CeStorage().End();
+ ++it )
+ {
+ (*it).Accept( static_cast< SPInst_asHost& >(*this) );
+
+ } // end for
+
+ sort_All2s();
+}
+
+void
+SecondariesCalculator::Make_Links2DeveloperManual(
+ const String & i_devman_reffilepath )
+{
+// const autodoc::Options &
+// rOptions = TheAutodocManager().TheOptions();
+//
+// const String &
+// rDeveloperManual_URL
+// = rOptions.Get_Extra(autodoc::OPT_developer_guide);
+// const String
+// rDeveloperManual_ReferenceFile
+// = rOptions.Get_Extra(autodoc::OPT_developer_guide_refs_file);
+
+// if ( rDeveloperManual_URL.length() == 0
+// OR
+// rDeveloperManual_ReferenceFile.length() == 0 )
+// {
+// return;
+// }
+
+ csv::File
+ aFile(i_devman_reffilepath, csv::CFM_READ);
+ csv::OpenCloseGuard
+ aFileOpener(aFile);
+ if (aFileOpener)
+ {
+ Read_Links2DevManual(aFile);
+ }
+}
+
+namespace
+{
+
+enum E_LinkMode
+{
+ link2descr,
+ link2ref
+};
+
+struct OrderCeIdsByName
+{
+ OrderCeIdsByName(
+ const Ce_Storage & i_storage )
+ : rStorage(i_storage),
+ aNameComparison() {}
+ bool operator()(
+ Ce_id i_ce1,
+ Ce_id i_ce2 ) const
+ {
+ return aNameComparison( rStorage[i_ce1].LocalName(),
+ rStorage[i_ce2].LocalName() );
+ }
+
+ private:
+ const Ce_Storage & rStorage;
+ LesserName aNameComparison;
+};
+
+
+}
+
+
+
+void
+SecondariesCalculator::do_Process( const Service & i_rData )
+{
+ const Service &
+ rService = ary_cast<Service>(i_rData);
+
+ // Interfaces:
+ assignImplementation_toAServicesInterfaces( rService.CeId(),
+ rService.CeId(),
+ interface_2s_ExportingServices );
+ // Services and their interfaces:
+ recursive_AssignIncludingService(rService.CeId(), rService);
+}
+
+void
+SecondariesCalculator::do_Process( const Interface & i_rData )
+{
+ assign_AsDerivedInterface( ary_cast<Interface>(i_rData) );
+}
+
+void
+SecondariesCalculator::do_Process( const Struct & i_rData )
+{
+ assign_AsDerivedStruct( ary_cast<Struct>(i_rData) );
+}
+
+void
+SecondariesCalculator::do_Process( const Exception & i_rData )
+{
+ assign_AsDerivedException( ary_cast<Exception>(i_rData) );
+}
+
+void
+SecondariesCalculator::do_Process( const Typedef & )
+{
+ // KORR_FUTURE
+ // Find out what was meant here ???
+
+// const Typedef &
+// rTypedef = ary_cast<Typedef>(i_rData);
+}
+
+void
+SecondariesCalculator::do_Process( const Singleton & i_rData )
+{
+ const Singleton &
+ rSingleton = ary_cast<Singleton>(i_rData);
+
+ Service *
+ pServ = lhf_SearchService(rSingleton.AssociatedService());
+ if (pServ != 0)
+ {
+ insert_into2sUnique( *pServ,
+ service_2s_InstantiatingSingletons,
+ rSingleton.CeId() );
+ }
+
+ // Interfaces:
+ assignImplementation_toAServicesInterfaces( rSingleton.CeId(),
+ lhf_Search_CeFromTypeId(rSingleton.AssociatedService()),
+ interface_2s_ExportingSingletons );
+}
+
+void
+SecondariesCalculator::do_Process( const SglIfcService & i_rData )
+{
+ const SglIfcService &
+ rSglIfcService = ary_cast<SglIfcService>(i_rData);
+
+ assignImplementation_toAServicesInterfaces( rSglIfcService.CeId(),
+ rSglIfcService.CeId(),
+ interface_2s_ExportingServices );
+}
+
+void
+SecondariesCalculator::do_Process( const SglIfcSingleton & i_rData )
+{
+ const SglIfcSingleton &
+ rSglIfcSingleton = ary_cast<SglIfcSingleton>(i_rData);
+
+ Type_id nBase = rSglIfcSingleton.BaseInterface();
+ recursive_AssignImplementation_toExportedInterface( rSglIfcSingleton.CeId(),
+ nBase,
+ interface_2s_ExportingSingletons );
+}
+
+void
+SecondariesCalculator::do_Process( const Function & i_rData )
+{
+ const Function &
+ rFunction = ary_cast<Function>(i_rData);
+
+ recursive_AssignFunction_toCeAsReturn(rFunction.CeId(), rFunction.ReturnType());
+
+ for ( Function::ParamList::const_iterator itp = rFunction.Parameters().begin();
+ itp != rFunction.Parameters().end();
+ ++itp )
+ {
+ recursive_AssignFunction_toCeAsParameter(rFunction.CeId(), (*itp).Type());
+ } // end for (itp)
+
+ for ( Function::ExceptionList::const_iterator itx = rFunction.Exceptions().begin();
+ itx != rFunction.Exceptions().end();
+ ++itx )
+ {
+ Exception *
+ pX = lhf_SearchException(*itx);
+ if (pX != 0)
+ {
+ insert_into2sUnique(*pX, exception_2s_RaisingFunctions, rFunction.CeId());
+ }
+ } // end for (itx)
+}
+
+void
+SecondariesCalculator::do_Process( const StructElement & i_rData )
+{
+ const StructElement &
+ rStructElement = ary_cast<StructElement>(i_rData);
+
+ recursive_AssignStructElement_toCeAsDataType(rStructElement.CeId(), rStructElement.Type());
+}
+
+void
+SecondariesCalculator::do_Process( const Property & i_rData )
+{
+ const Property &
+ rProperty = ary_cast<Property>(i_rData);
+
+ recursive_AssignStructElement_toCeAsDataType(rProperty.CeId(), rProperty.Type());
+}
+
+Ce_id
+SecondariesCalculator::lhf_Search_CeForType( const ExplicitType & i_rType ) const
+{
+ const ExplicitNameRoom &
+ rExplicitNameRoom = ary_cast<ExplicitNameRoom>(
+ my_TypeStorage()[i_rType.NameRoom()] );
+ Find_ModuleNode
+ rNodeFinder( my_CeStorage(),
+ rExplicitNameRoom.NameChain_Begin(),
+ rExplicitNameRoom.NameChain_End(),
+ i_rType.Name() );
+
+ if ( rExplicitNameRoom.IsAbsolute() )
+ {
+ const Module &
+ rGlobalNamespace = ary_cast<Module>(
+ my_CeStorage()[predefined::ce_GlobalNamespace]);
+ return Search_SubTree( rGlobalNamespace,
+ rNodeFinder );
+ }
+ else
+ {
+ const Module &
+ rStartModule = ary_cast<Module>(
+ my_CeStorage()[i_rType.ModuleOfOccurrence()]);
+ Ce_id ret = Search_SubTree_UpTillRoot( rStartModule,
+ rNodeFinder );
+ return ret;
+ } // endif (rExplicitNameRoom.IsAbsolute()) else
+}
+
+Ce_id
+SecondariesCalculator::lhf_Search_CeFromTypeId( Type_id i_nType ) const
+{
+ if (NOT i_nType.IsValid())
+ return Ce_id(0);
+ const Ce_Type *
+ pType = ary_cast<Ce_Type>( & my_TypeStorage()[i_nType] );
+ return pType != 0
+ ? pType->RelatedCe()
+ : Ce_id_Null();
+}
+
+void
+SecondariesCalculator::assign_CurLink( char * i_text,
+ const String & i_link,
+ const String & i_linkUI,
+ bool i_isDescr,
+ int i_lineCount )
+{
+ csv_assert(i_text != 0);
+
+ const ary::idl::Module *
+ pModule = & ary_cast<Module>(
+ my_CeStorage()[predefined::ce_GlobalNamespace]);
+
+ char * pPastNext = 0;
+ char * pNext = i_text;
+ for ( ;
+ (pPastNext = strstr(pNext,".")) != 0;
+ pNext = pPastNext + 1 )
+ {
+ String sNext(pNext, pPastNext-pNext);
+ Ce_id nModule = pModule->Search_Name(sNext);
+ if (nModule.IsValid())
+ {
+ pModule = ary_cast<Module>( & my_CeStorage()[nModule] );
+ }
+ else
+ {
+ pModule = 0;
+ }
+
+ if (pModule == 0)
+ {
+ Cerr() << "Warning: Invalid line nr. "
+ << i_lineCount
+ << " in DevelopersGuide reference file:\n"
+ << reinterpret_cast< const char* >(i_text)
+ << "\n"
+ << Endl();
+ return;
+ }
+ } // end for
+
+ pPastNext = strchr(pNext,':');
+ bool bMember = pPastNext != 0;
+ String sCe( pNext, (bMember ? csv::str::size(pPastNext-pNext) : csv::str::maxsize) );
+
+// KORR_FUTURE
+// String sMember(bMember ? pPastNext+1, "");
+
+ Ce_id nCe = pModule->Search_Name(sCe);
+ if (NOT nCe.IsValid())
+ {
+ Cerr() << "Warning: Invalid line nr. "
+ << i_lineCount
+ << " in DevelopersGuide reference file:\n"
+ << reinterpret_cast< const char* >(i_text)
+ << "\n"
+ << Endl();
+ return;
+ }
+
+ CodeEntity &
+ rCe = my_CeStorage()[nCe];
+ if (NOT bMember)
+ {
+ if (i_isDescr)
+ rCe.Secondaries().Add_Link2DescriptionInManual(i_link, i_linkUI);
+ else
+ rCe.Secondaries().Add_Link2RefInManual(i_link, i_linkUI);
+ return;
+ }
+ else
+ {
+ // KORR_FUTURE
+ // Provisorial just doing nothing (or may be
+ // adding a link at main Ces lists).
+// if (i_isDescr)
+// rCe.Secondaries().Add_Link2DescriptionInManual(i_link);
+// else
+// rCe.Secondaries().Add_Link2RefInManual(i_link);
+ }
+}
+
+void
+SecondariesCalculator::gather_Synonyms()
+{
+ const Ce_Storage &
+ cstrg = my_CeStorage();
+ typedef_citerator itEnd(cstrg.End());
+ for ( typedef_citerator it(cstrg.Begin());
+ it != itEnd;
+ ++it )
+ {
+ if (NOT it.IsValid())
+ continue;
+
+ const Typedef &
+ rTypedef = *it;
+ recursive_AssignAsSynonym(rTypedef.CeId(), rTypedef);
+ } // end for (itTd)
+}
+
+void
+SecondariesCalculator::recursive_AssignAsSynonym( Ce_id i_synonymousTypedefsId,
+ const Typedef & i_TypedefToCheck )
+{
+ Ce_id
+ nCe = lhf_Search_CeFromTypeId(i_TypedefToCheck.DefiningType());
+ if (NOT nCe.IsValid())
+ return;
+ CodeEntity &
+ rCe = my_CeStorage()[nCe];
+
+ switch (rCe.AryClass()) // KORR_FUTURE: make this faster, remove switch.
+ {
+ case Interface::class_id:
+ insert_into2sList( rCe,
+ interface_2s_SynonymTypedefs,
+ i_synonymousTypedefsId );
+ break;
+ case Struct::class_id:
+ insert_into2sList( rCe,
+ struct_2s_SynonymTypedefs,
+ i_synonymousTypedefsId );
+ break;
+ case Enum::class_id:
+ insert_into2sList( rCe,
+ enum_2s_SynonymTypedefs,
+ i_synonymousTypedefsId );
+ break;
+ case Typedef::class_id:
+ insert_into2sList( rCe,
+ typedef_2s_SynonymTypedefs,
+ i_synonymousTypedefsId );
+ recursive_AssignAsSynonym( i_synonymousTypedefsId,
+ static_cast< Typedef& >(rCe) );
+ break;
+ // default: do nothing.
+ }
+}
+
+void
+SecondariesCalculator::recursive_AssignIncludingService( Ce_id i_includingServicesId,
+ const Service & i_ServiceToCheckItsIncludes )
+{
+ Dyn_StdConstIterator<CommentedRelation>
+ pIncludedServices;
+ i_ServiceToCheckItsIncludes.Get_IncludedServices(pIncludedServices);
+
+ for ( StdConstIterator<CommentedRelation> &
+ itServ = *pIncludedServices;
+ itServ;
+ ++itServ )
+ {
+ Service *
+ pServ = lhf_SearchService((*itServ).Type());
+ if (pServ != 0)
+ {
+ insert_into2sUnique( *pServ,
+ service_2s_IncludingServices,
+ i_includingServicesId
+ );
+ recursive_AssignIncludingService(i_includingServicesId, *pServ);
+
+ } // end if
+
+ assignImplementation_toAServicesInterfaces( i_includingServicesId,
+ lhf_Search_CeFromTypeId( (*itServ).Type() ),
+ interface_2s_ExportingServices );
+ } // end for
+}
+
+void
+SecondariesCalculator::assign_AsDerivedInterface( const Interface & i_rDerived )
+{
+ ary::Dyn_StdConstIterator<ary::idl::CommentedRelation>
+ pHelp;
+ ary::idl::ifc_interface::attr::Get_Bases(pHelp, i_rDerived);
+
+ for ( ary::StdConstIterator<ary::idl::CommentedRelation> & it = *pHelp;
+ it.operator bool();
+ ++it )
+ {
+ Interface *
+ pIfc = lhf_SearchInterface( (*it).Type() );
+ if (pIfc == 0)
+ continue;
+
+ insert_into2sList( *pIfc,
+ interface_2s_Derivations,
+ i_rDerived.CeId() );
+ } // end for
+}
+
+void
+SecondariesCalculator::assign_AsDerivedStruct( const Struct & i_rDerived )
+{
+ Type_id
+ nBase = i_rDerived.Base();
+ if (nBase.IsValid())
+ {
+ Struct *
+ pParent = lhf_SearchStruct(nBase);
+ if (pParent != 0)
+ {
+ insert_into2sList( *pParent,
+ struct_2s_Derivations,
+ i_rDerived.CeId() );
+ }
+ }
+}
+
+void
+SecondariesCalculator::assign_AsDerivedException( const Exception & i_rDerived )
+{
+ Type_id
+ nBase = i_rDerived.Base();
+ if (nBase.IsValid())
+ {
+ Exception *
+ pParent = lhf_SearchException(nBase);
+ if (pParent != 0)
+ {
+ insert_into2sList( *pParent,
+ exception_2s_Derivations,
+ i_rDerived.CeId() );
+ } // end if
+ } // end if
+}
+
+void
+SecondariesCalculator::assignImplementation_toAServicesInterfaces(
+ Ce_id i_nImpl,
+ Ce_id i_nService,
+ E_2s_of_Interface i_eList )
+{
+ if (NOT i_nService.IsValid())
+ return;
+ Service *
+ pService = ary_cast<Service>( & my_CeStorage()[i_nService] );
+ SglIfcService *
+ pSglIfcService = ary_cast<SglIfcService>( & my_CeStorage()[i_nService] );
+
+ if (pService != 0)
+ {
+ Dyn_StdConstIterator<CommentedRelation>
+ pSupportedInterfaces;
+ pService->Get_SupportedInterfaces(pSupportedInterfaces);
+
+ for ( StdConstIterator<CommentedRelation> &
+ itInfc = *pSupportedInterfaces;
+ itInfc.operator bool();
+ ++itInfc )
+ {
+ recursive_AssignImplementation_toExportedInterface( i_nImpl,
+ (*itInfc).Type(),
+ i_eList );
+ } // end for
+ }
+ else if (pSglIfcService != 0)
+ {
+ Type_id nBase = pSglIfcService->BaseInterface();
+ recursive_AssignImplementation_toExportedInterface( i_nImpl,
+ nBase,
+ i_eList );
+ } // end if
+}
+
+void
+SecondariesCalculator::recursive_AssignImplementation_toExportedInterface(
+ Ce_id i_nService,
+ Type_id i_nExportedInterface,
+ E_2s_of_Interface i_eList )
+{
+ Interface *
+ pIfc = lhf_SearchInterface(i_nExportedInterface);
+ if (pIfc == 0)
+ return;
+
+ insert_into2sUnique( *pIfc,
+ i_eList,
+ i_nService );
+ Dyn_StdConstIterator<CommentedRelation>
+ pBases;
+ ary::idl::ifc_interface::attr::Get_Bases(pBases, *pIfc);
+ for ( StdConstIterator<CommentedRelation> & it = *pBases;
+ it.operator bool();
+ ++it )
+ {
+ recursive_AssignImplementation_toExportedInterface(i_nService, (*it).Type(), i_eList);
+ }
+}
+
+void
+SecondariesCalculator::recursive_AssignFunction_toCeAsReturn( Ce_id i_nFunction,
+ Type_id i_nReturnType )
+{
+ Ce_id
+ nCe = lhf_Search_CeFromTypeId(i_nReturnType);
+ if (NOT nCe.IsValid())
+ return;
+
+ CodeEntity &
+ rCe = my_CeStorage()[nCe];
+ switch (rCe.AryClass()) // KORR_FUTURE: make this faster, remove switch.
+ {
+ case Interface::class_id:
+ insert_into2sList( rCe,
+ interface_2s_AsReturns,
+ i_nFunction );
+ break;
+ case Struct::class_id:
+ insert_into2sList( rCe,
+ struct_2s_AsReturns,
+ i_nFunction );
+ break;
+ case Enum::class_id:
+ insert_into2sList( rCe,
+ enum_2s_AsReturns,
+ i_nFunction );
+ break;
+ case Typedef::class_id:
+ insert_into2sList( rCe,
+ typedef_2s_AsReturns,
+ i_nFunction );
+ recursive_AssignFunction_toCeAsReturn( i_nFunction,
+ static_cast< Typedef& >(rCe).DefiningType() );
+ break;
+ // default: do nothing.
+ }
+}
+
+void
+SecondariesCalculator::recursive_AssignFunction_toCeAsParameter( Ce_id i_nFunction,
+ Type_id i_nParameterType )
+{
+ Ce_id
+ nCe = lhf_Search_CeFromTypeId(i_nParameterType);
+ if (NOT nCe.IsValid())
+ return;
+
+ CodeEntity &
+ rCe = my_CeStorage()[nCe];
+ switch (rCe.AryClass()) // KORR_FUTURE: make this faster, remove switch.
+ {
+ case Interface::class_id:
+ insert_into2sList( rCe,
+ interface_2s_AsParameters,
+ i_nFunction );
+ break;
+ case Struct::class_id:
+ insert_into2sList( rCe,
+ struct_2s_AsParameters,
+ i_nFunction );
+ break;
+ case Enum::class_id:
+ insert_into2sList( rCe,
+ enum_2s_AsParameters,
+ i_nFunction );
+ break;
+ case Typedef::class_id:
+ insert_into2sList( rCe,
+ typedef_2s_AsParameters,
+ i_nFunction );
+ recursive_AssignFunction_toCeAsParameter( i_nFunction,
+ static_cast< Typedef& >(rCe).DefiningType() );
+ break;
+ // default: do nothing.
+ }
+}
+
+void
+SecondariesCalculator::recursive_AssignStructElement_toCeAsDataType( Ce_id i_nDataElement,
+ Type_id i_nDataType )
+{
+ Ce_id
+ nCe = lhf_Search_CeFromTypeId(i_nDataType);
+ if (NOT nCe.IsValid())
+ return;
+
+ CodeEntity &
+ rCe = my_CeStorage()[nCe];
+ switch (rCe.AryClass()) // KORR_FUTURE: make this faster, remove switch.
+ {
+ case Interface::class_id:
+ insert_into2sList( rCe,
+ interface_2s_AsDataTypes,
+ i_nDataElement );
+ break;
+ case Struct::class_id:
+ insert_into2sList( rCe,
+ struct_2s_AsDataTypes,
+ i_nDataElement );
+ break;
+ case Enum::class_id:
+ insert_into2sList( rCe,
+ enum_2s_AsDataTypes,
+ i_nDataElement );
+ break;
+ case Typedef::class_id:
+ insert_into2sList( rCe,
+ typedef_2s_AsDataTypes,
+ i_nDataElement );
+ recursive_AssignFunction_toCeAsParameter( i_nDataElement,
+ static_cast< Typedef& >(rCe).DefiningType() );
+ break;
+ // default: do nothing.
+ } // end switch
+}
+
+void
+SecondariesCalculator::insert_into2sUnique( CodeEntity & o_out,
+ int i_listIndex,
+ Ce_id i_nCe )
+{
+ std::vector<Ce_id> &
+ rOut = o_out.Secondaries().Access_List(i_listIndex);
+ if (std::find(rOut.begin(),rOut.end(),i_nCe) != rOut.end())
+ return;
+ rOut.push_back(i_nCe);
+}
+
+void
+SecondariesCalculator::sort_All2s()
+{
+ OrderCeIdsByName
+ aIdOrdering(my_CeStorage());
+
+ for ( stg_iterator it = my_CeStorage().Begin();
+ it != my_CeStorage().End();
+ ++it )
+ {
+ Ce_2s &
+ r2s = (*it).Secondaries();
+ int iCount = r2s.CountXrefLists();
+ for (int i = 0; i < iCount; ++i)
+ {
+ std::sort( r2s.Access_List(i).begin(),
+ r2s.Access_List(i).end(),
+ aIdOrdering );
+ } // end for (i)
+ } // end for (it)
+}
+
+void
+SecondariesCalculator::Read_Links2DevManual( csv::bstream & i_file )
+{
+ StreamLock aLine(300);
+ StreamStr & rLine = aLine();
+
+
+ String sCurLink;
+ String sCurLinkUI;
+ E_LinkMode eCurMode = link2ref;
+
+ int lineCount = 0;
+ const char * sLink = "LINK:";
+ const char * sDescr = "DESCR:";
+ const char * sTopic = "TOPIC:";
+ const char * sRef = "REF:";
+ const UINT8 cMaxASCIINumWhiteSpace = 32;
+
+ while (NOT i_file.eod())
+ {
+ ++lineCount;
+
+ rLine.reset();
+ rLine.operator_read_line(i_file);
+
+ if ( *rLine.c_str() >= 'a' )
+ {
+ assign_CurLink(rLine.begin(), sCurLink, sCurLinkUI, eCurMode == link2descr, lineCount);
+ }
+ else if ( strncmp(rLine.c_str(), sLink, strlen(sLink)) == 0 )
+ {
+ sCurLink = rLine.c_str()+5;
+ sCurLinkUI.clear();
+ }
+ else if ( strncmp(rLine.c_str(), sDescr, strlen(sDescr)) == 0 )
+ {
+ sCurLinkUI = rLine.c_str()+6;
+ }
+ else if ( strncmp(rLine.c_str(), sTopic, strlen(sTopic)) == 0 )
+ {
+ eCurMode = link2descr;
+ }
+ else if ( strncmp(rLine.c_str(), sRef, strlen(sRef)) == 0 )
+ {
+ eCurMode = link2ref;
+ }
+ else if (static_cast<UINT8>(*rLine.c_str()) > cMaxASCIINumWhiteSpace)
+ {
+ assign_CurLink(rLine.begin(), sCurLink, sCurLinkUI, eCurMode == link2descr, lineCount);
+ }
+ // else
+ // Ignore empty line.
+
+ } // end while
+}
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i2s_calculator.hxx b/autodoc/source/ary/idl/i2s_calculator.hxx
new file mode 100644
index 000000000000..2ebde4d9400c
--- /dev/null
+++ b/autodoc/source/ary/idl/i2s_calculator.hxx
@@ -0,0 +1,295 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I2S_CALCULATOR_HXX
+#define ARY_IDL_I2S_CALCULATOR_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+ class CeAdmin;
+ class Ce_Storage;
+ class TypeAdmin;
+ class Type_Storage;
+ class Module;
+ class ExplicitType;
+ class Function;
+ class Interface;
+ class Property;
+ class Typedef;
+ class Service;
+ class Singleton;
+ class SglIfcService;
+ class SglIfcSingleton;
+ class Struct;
+ class StructElement;
+ class Exception;
+ class Ce_2s;
+}
+}
+
+
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+enum E_2s_of_Service
+{
+ service_2s_IncludingServices,
+ service_2s_InstantiatingSingletons
+};
+
+enum E_2s_of_Interface
+{
+ interface_2s_Derivations,
+ interface_2s_ExportingServices,
+ interface_2s_ExportingSingletons,
+ interface_2s_SynonymTypedefs,
+// interface_2s_UsingTypedefs,
+ interface_2s_AsReturns,
+// interface_2s_AsIndirectReturns,
+ interface_2s_AsParameters,
+// interface_2s_AsIndirectParameters,
+ interface_2s_AsDataTypes
+};
+
+enum E_2s_of_Struct
+{
+ struct_2s_Derivations,
+ struct_2s_SynonymTypedefs,
+// struct_2s_UsingTypedefs,
+ struct_2s_AsReturns,
+// struct_2s_AsIndirectReturns,
+ struct_2s_AsParameters,
+// struct_2s_AsIndirectParameters,
+ struct_2s_AsDataTypes
+};
+
+enum E_2s_of_Enum
+{
+ enum_2s_SynonymTypedefs,
+// enum_2s_UsingTypedefs,
+ enum_2s_AsReturns,
+// enum_2s_AsIndirectReturns,
+ enum_2s_AsParameters,
+// enum_2s_AsIndirectParameters,
+ enum_2s_AsDataTypes
+};
+
+enum E_2s_of_Typedef
+{
+ typedef_2s_SynonymTypedefs,
+// typedef_2s_UsingTypedefs,
+ typedef_2s_AsReturns,
+// typedef_2s_AsIndirectReturns,
+ typedef_2s_AsParameters,
+// typedef_2s_AsIndirectParameters,
+ typedef_2s_AsDataTypes
+};
+
+enum E_2s_of_Exceptions
+{
+ exception_2s_Derivations,
+ exception_2s_RaisingFunctions
+};
+
+
+
+class SPInst_asHost : public csv::ProcessorIfc,
+ public csv::ConstProcessor<Service>,
+ public csv::ConstProcessor<Interface>,
+ public csv::ConstProcessor<Struct>,
+ public csv::ConstProcessor<Exception>,
+ public csv::ConstProcessor<Typedef>,
+ public csv::ConstProcessor<Singleton>,
+ public csv::ConstProcessor<Function>,
+ public csv::ConstProcessor<StructElement>,
+ public csv::ConstProcessor<Property>,
+ public csv::ConstProcessor<SglIfcService>,
+ public csv::ConstProcessor<SglIfcSingleton>
+{
+};
+
+
+
+
+/** This class scans the parsed data and produces several
+ secondary data like cross references and alphabetical indices.
+
+ In this declaration "Secondaries" or "2s" mean those secondary data.
+
+ @see Ce_2s
+*/
+class SecondariesCalculator : public SPInst_asHost
+{
+ public:
+ // LIFECYCLE
+ SecondariesCalculator(
+ CeAdmin & i_ces,
+ TypeAdmin & i_types );
+ virtual ~SecondariesCalculator();
+
+ // OPERATIONS
+ void CheckAllInterfaceBases();
+ void Connect_Types2Ces();
+ void Gather_CrossReferences();
+ void Make_Links2DeveloperManual(
+ const String & i_devman_reffilepath );
+
+ private:
+ // Interface CeHost These are the points to gather cross
+ // references:
+ virtual void do_Process(
+ const Service & i_rData );
+ virtual void do_Process(
+ const Interface & i_rData );
+ virtual void do_Process(
+ const Struct & i_rData );
+ virtual void do_Process(
+ const Exception & i_rData );
+ virtual void do_Process(
+ const Typedef & i_rData );
+ virtual void do_Process(
+ const Singleton & i_rData );
+ virtual void do_Process(
+ const Function & i_rData );
+ virtual void do_Process(
+ const StructElement &
+ i_rData );
+ virtual void do_Process(
+ const Property & i_rData );
+ virtual void do_Process(
+ const SglIfcService &
+ i_rData );
+ virtual void do_Process(
+ const SglIfcSingleton &
+ i_rData );
+
+ // Locals
+ const Ce_Storage & my_CeStorage() const;
+ const Type_Storage &
+ my_TypeStorage() const;
+ Ce_Storage & my_CeStorage();
+ Type_Storage & my_TypeStorage();
+
+ template <class DEST>
+ DEST * SearchCe4Type(
+ Type_id i_type );
+ Ce_id lhf_Search_CeForType(
+ const ExplicitType &
+ i_rType ) const;
+ Ce_id lhf_Search_CeFromTypeId(
+ Type_id i_nType ) const;
+ Service * lhf_SearchService(
+ Type_id i_nServ );
+ Interface * lhf_SearchInterface(
+ Type_id i_nIfc );
+ Struct * lhf_SearchStruct(
+ Type_id i_nIfc );
+ Exception * lhf_SearchException(
+ Type_id i_nIfc );
+ void assign_CurLink(
+ char * i_text,
+ const String & i_link,
+ const String & i_linkUI,
+ bool i_isDescr, /// @descr true: description, false: reference.
+ int i_lineCount );
+ void gather_Synonyms();
+ void recursive_AssignAsSynonym(
+ Ce_id i_synonymousTypedefsId,
+ const Typedef & i_TypedefToCheck );
+ void recursive_AssignIncludingService(
+ Ce_id i_includingServicesId,
+ const Service & i_ServiceToCheckItsIncludes );
+ void assign_AsDerivedInterface(
+ const Interface & i_rDerived );
+ void assign_AsDerivedStruct(
+ const Struct & i_rDerived );
+ void assign_AsDerivedException(
+ const Exception & i_rDerived );
+ void assignImplementation_toAServicesInterfaces(
+ Ce_id i_nImpl,
+ Ce_id i_nService,
+ E_2s_of_Interface i_eList );
+ void recursive_AssignImplementation_toExportedInterface(
+ Ce_id i_nService,
+ Type_id i_nExportedInterface,
+ E_2s_of_Interface i_eList );
+ void recursive_AssignFunction_toCeAsReturn(
+ Ce_id i_nFunction,
+ Type_id i_nReturnType );
+ void recursive_AssignFunction_toCeAsParameter(
+ Ce_id i_nFunction,
+ Type_id i_nParameterType );
+
+ /** @param i_nDataElement
+ May be the ID of an struct element as well as an exception element
+ or a property.
+ */
+ void recursive_AssignStructElement_toCeAsDataType(
+ Ce_id i_nDataElement,
+ Type_id i_nDataType );
+ void insert_into2sList(
+ CodeEntity & o_out,
+ int i_listIndex,
+ Ce_id i_nCe );
+ void insert_into2sUnique(
+ CodeEntity & o_out,
+ int i_listIndex,
+ Ce_id i_nCe );
+ /// Sorts secondary production lists alphabetical.
+ void sort_All2s();
+
+ void Read_Links2DevManual(
+ csv::bstream & i_file );
+
+ // DATA
+ CeAdmin * pCes;
+ TypeAdmin * pTypes;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/i_attribute.cxx b/autodoc/source/ary/idl/i_attribute.cxx
new file mode 100644
index 000000000000..ec78a58bd758
--- /dev/null
+++ b/autodoc/source/ary/idl/i_attribute.cxx
@@ -0,0 +1,159 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_attribute.hxx>
+#include <ary/idl/ik_attribute.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/getncast.hxx>
+#include <sci_impl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+Attribute::Attribute( const String & i_sName,
+ Ce_id i_nService,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ bool i_bReadonly,
+ bool i_bBound )
+ : sName(i_sName),
+ nOwner(i_nService),
+ nNameRoom(i_nModule),
+ nType(i_nType),
+ aGetExceptions(),
+ aSetExceptions(),
+ bReadonly(i_bReadonly),
+ bBound(i_bBound)
+{
+}
+
+Attribute::~Attribute()
+{
+}
+
+
+void
+Attribute::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Attribute::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Attribute::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Attribute::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+Attribute::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Attribute::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+namespace ifc_attribute
+{
+
+inline const Attribute &
+attribute_cast( const CodeEntity & i_ce )
+{
+ csv_assert( is_type<Attribute>(i_ce) );
+ return static_cast< const Attribute& >(i_ce);
+}
+
+bool
+attr::HasAnyStereotype( const CodeEntity & i_ce )
+{
+ const Attribute & rAttr = attribute_cast(i_ce);
+ return rAttr.bReadonly OR rAttr.bBound;
+}
+
+bool
+attr::IsReadOnly( const CodeEntity & i_ce )
+{
+ return attribute_cast(i_ce).bReadonly;
+}
+
+bool
+attr::IsBound( const CodeEntity & i_ce )
+{
+ return attribute_cast(i_ce).bBound;
+}
+
+Type_id
+attr::Type( const CodeEntity & i_ce )
+{
+ return attribute_cast(i_ce).nType;
+}
+
+void
+attr::Get_GetExceptions( Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result
+ = new SCI_Vector<Type_id>( attribute_cast(i_ce).aGetExceptions );
+}
+
+void
+attr::Get_SetExceptions( Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result
+ = new SCI_Vector<Type_id>( attribute_cast(i_ce).aSetExceptions );
+}
+
+
+} // namespace ifc_attribute
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_ce.cxx b/autodoc/source/ary/idl/i_ce.cxx
new file mode 100644
index 000000000000..783e3a9b93f7
--- /dev/null
+++ b/autodoc/source/ary/idl/i_ce.cxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_ce.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary/getncast.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace
+{
+ const Ce_2s aConstCe2sDummy;
+}
+
+
+
+CodeEntity::CodeEntity()
+ : aDocu(),
+ p2s(0)
+{
+}
+
+CodeEntity::~CodeEntity()
+{
+}
+
+const Ce_2s &
+CodeEntity::Secondaries() const
+{
+ if (p2s)
+ return *p2s;
+ return aConstCe2sDummy;
+}
+
+Ce_2s &
+CodeEntity::Secondaries()
+{
+ if (p2s)
+ return *p2s;
+ p2s = Ce_2s::Create_(AryClass());
+ return *p2s;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_ce2s.cxx b/autodoc/source/ary/idl/i_ce2s.cxx
new file mode 100644
index 000000000000..0898b7867086
--- /dev/null
+++ b/autodoc/source/ary/idl/i_ce2s.cxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_ce.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary/getncast.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+namespace
+{
+const std::vector<Ce_id> C_sNullVector_Ce_ids;
+}
+
+
+Ce_2s::~Ce_2s()
+{
+ csv::erase_container_of_heap_ptrs(aXrefLists);
+}
+
+DYN Ce_2s *
+Ce_2s::Create_( ClassId )
+{
+ return new Ce_2s;
+}
+
+
+std::vector<Ce_id> &
+Ce_2s::Access_List( int i_indexOfList )
+{
+ csv_assert(i_indexOfList >= 0 AND i_indexOfList < 1000);
+
+ while (i_indexOfList >= (int) aXrefLists.size())
+ {
+ aXrefLists.push_back(new std::vector<Ce_id>);
+ }
+ return *aXrefLists[i_indexOfList];
+}
+
+const std::vector<Ce_id> &
+Ce_2s::List( int i_indexOfList ) const
+{
+ if (uintt(i_indexOfList) < aXrefLists.size())
+ return *aXrefLists[i_indexOfList];
+ else
+ return C_sNullVector_Ce_ids;
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_comrela.cxx b/autodoc/source/ary/idl/i_comrela.cxx
new file mode 100644
index 000000000000..8f5d164b5479
--- /dev/null
+++ b/autodoc/source/ary/idl/i_comrela.cxx
@@ -0,0 +1,47 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_comrela.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+// KORR_FUTURE Currently unneeded file. May become useful later.
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_constant.cxx b/autodoc/source/ary/idl/i_constant.cxx
new file mode 100644
index 000000000000..ac6a7124935f
--- /dev/null
+++ b/autodoc/source/ary/idl/i_constant.cxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_constant.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_constant.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+Constant::Constant( const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType,
+ const String & i_sInitValue )
+ : sName(i_sName),
+ nNameRoom(i_nNameRoom),
+ nOwner(i_nOwner),
+ nType(i_nType),
+ sInitValue(i_sInitValue)
+{
+}
+
+Constant::~Constant()
+{
+}
+
+void
+Constant::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+
+ClassId
+Constant::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Constant::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Constant::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+Constant::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Constant::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+
+namespace ifc_constant
+{
+
+inline const Constant &
+constant_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Constant::class_id );
+ return static_cast< const Constant& >(i_ce);
+}
+
+Type_id
+attr::Type( const CodeEntity & i_ce )
+{
+ return constant_cast(i_ce).nType;
+}
+
+const String &
+attr::Value( const CodeEntity & i_ce )
+{
+ return constant_cast(i_ce).sInitValue;
+}
+
+} // namespace ifc_constant
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_constgroup.cxx b/autodoc/source/ary/idl/i_constgroup.cxx
new file mode 100644
index 000000000000..434b054ea3f1
--- /dev/null
+++ b/autodoc/source/ary/idl/i_constgroup.cxx
@@ -0,0 +1,114 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/ik_constgroup.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+ConstantsGroup::ConstantsGroup( const String & i_sName,
+ Ce_id i_nModule )
+ : sName(i_sName),
+ nModule(i_nModule),
+ aConstants()
+{
+}
+
+ConstantsGroup::~ConstantsGroup()
+{
+}
+
+void
+ConstantsGroup::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+ConstantsGroup::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+ConstantsGroup::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+ConstantsGroup::inq_NameRoom() const
+{
+ return nModule;
+}
+
+Ce_id
+ConstantsGroup::inq_Owner() const
+{
+ return nModule;
+}
+
+E_SightLevel
+ConstantsGroup::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_constgroup
+{
+
+inline const ConstantsGroup &
+constgroup_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == ConstantsGroup::class_id );
+ return static_cast< const ConstantsGroup& >(i_ce);
+}
+
+void
+attr::Get_Constants( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(constgroup_cast(i_ce).aConstants);
+}
+
+} // namespace ifc_constgroup
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_enum.cxx b/autodoc/source/ary/idl/i_enum.cxx
new file mode 100644
index 000000000000..30ee8e39e146
--- /dev/null
+++ b/autodoc/source/ary/idl/i_enum.cxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/ik_enum.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+Enum::Enum( const String & i_sName,
+ Ce_id i_nOwner )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ aValues()
+{
+}
+
+Enum::~Enum()
+{
+}
+
+void
+Enum::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Enum::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Enum::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Enum::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Enum::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Enum::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_enum
+{
+
+inline const Enum &
+enum_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Enum::class_id );
+ return static_cast< const Enum& >(i_ce);
+}
+
+void
+attr::Get_Values( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(enum_cast(i_ce).aValues);
+}
+
+
+void
+xref::Get_SynonymTypedefs( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(enum_2s_SynonymTypedefs));
+}
+
+void
+xref::Get_AsReturns( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(enum_2s_AsReturns));
+}
+
+void
+xref::Get_AsParameters( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(enum_2s_AsParameters));
+}
+
+void
+xref::Get_AsDataTypes( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(enum_2s_AsDataTypes));
+}
+
+} // namespace ifc_enum
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_enumvalue.cxx b/autodoc/source/ary/idl/i_enumvalue.cxx
new file mode 100644
index 000000000000..7ee139f9ba4c
--- /dev/null
+++ b/autodoc/source/ary/idl/i_enumvalue.cxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_enumvalue.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_enumvalue.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+EnumValue::EnumValue( const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ const String & i_sInitValue )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nNameRoom(i_nNameRoom),
+ sValue(i_sInitValue)
+{
+}
+
+EnumValue::~EnumValue()
+{
+}
+
+void
+EnumValue::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+EnumValue::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+EnumValue::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+EnumValue::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+EnumValue::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+EnumValue::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+
+
+namespace ifc_enumvalue
+{
+
+inline const EnumValue &
+enumvalue_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == EnumValue::class_id );
+ return static_cast< const EnumValue& >(i_ce);
+}
+
+const String &
+attr::Value( const CodeEntity & i_ce )
+{
+ return enumvalue_cast(i_ce).sValue;
+}
+
+
+} // namespace ifc_enumvalue
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_exception.cxx b/autodoc/source/ary/idl/i_exception.cxx
new file mode 100644
index 000000000000..cf98da1719a7
--- /dev/null
+++ b/autodoc/source/ary/idl/i_exception.cxx
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/ik_exception.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+Exception::Exception( const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nBase(i_nBase),
+ aElements()
+{
+}
+
+Exception::~Exception()
+{
+}
+
+void
+Exception::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Exception::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Exception::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Exception::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Exception::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Exception::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_exception
+{
+
+inline const Exception &
+exception_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Exception::class_id );
+ return static_cast< const Exception& >(i_ce);
+}
+
+Type_id
+attr::Base( const CodeEntity & i_ce )
+{
+ return exception_cast(i_ce).nBase;
+}
+
+void
+attr::Get_Elements( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>( exception_cast(i_ce).aElements );
+}
+
+
+void
+xref::Get_Derivations( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(exception_2s_Derivations));
+}
+
+void
+xref::Get_RaisingFunctions( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(exception_2s_RaisingFunctions));
+}
+
+
+} // namespace ifc_exception
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_function.cxx b/autodoc/source/ary/idl/i_function.cxx
new file mode 100644
index 000000000000..141ebb084c32
--- /dev/null
+++ b/autodoc/source/ary/idl/i_function.cxx
@@ -0,0 +1,165 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_function.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+Function::Function( const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nReturnType,
+ bool i_bOneWay )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nNameRoom(i_nNameRoom),
+ nReturnType(i_nReturnType),
+ aParameters(),
+ aExceptions(),
+ bOneWay(i_bOneWay),
+ bEllipse(false)
+{
+}
+
+Function::Function( const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nNameRoom(i_nNameRoom),
+ nReturnType(0),
+ aParameters(),
+ aExceptions(),
+ bOneWay(false),
+ bEllipse(false)
+{
+}
+
+Function::~Function()
+{
+}
+
+void
+Function::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Function::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Function::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Function::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+Function::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Function::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+
+namespace ifc_function
+{
+
+inline const Function &
+function_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Function::class_id );
+ return static_cast< const Function& >(i_ce);
+}
+
+Type_id
+attr::ReturnType( const CodeEntity & i_ce )
+{
+ return function_cast(i_ce).nReturnType;
+}
+
+bool
+attr::IsOneway( const CodeEntity & i_ce )
+{
+ return function_cast(i_ce).bOneWay;
+}
+
+bool
+attr::HasEllipse( const CodeEntity & i_ce )
+{
+ return function_cast(i_ce).bEllipse;
+}
+
+void
+attr::Get_Parameters( Dyn_StdConstIterator<ary::idl::Parameter> & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result
+ = new SCI_Vector<Parameter>( function_cast(i_ce).aParameters );
+}
+
+void
+attr::Get_Exceptions( Dyn_TypeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result
+ = new SCI_Vector<Type_id>( function_cast(i_ce).aExceptions );
+}
+
+
+
+
+
+} // namespace ifc_function
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_interface.cxx b/autodoc/source/ary/idl/i_interface.cxx
new file mode 100644
index 000000000000..4e4b61a071eb
--- /dev/null
+++ b/autodoc/source/ary/idl/i_interface.cxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_interface.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+class Interface_2s
+{
+};
+
+
+Interface::Interface( const String & i_sName,
+ Ce_id i_nOwner )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ aBases(),
+ aFunctions(),
+ aAttributes(),
+ p2s()
+{
+}
+
+Interface::~Interface()
+{
+ for ( RelationList::iterator it = aBases.begin();
+ it != aBases.end();
+ ++it )
+ {
+ delete (*it).Info();
+ }
+}
+
+void
+Interface::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Interface::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Interface::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Interface::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Interface::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Interface::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_interface
+{
+
+inline const Interface &
+interface_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Interface::class_id );
+ return static_cast< const Interface& >(i_ce);
+}
+
+void
+attr::Get_Bases( Dyn_StdConstIterator<CommentedRelation> & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<CommentedRelation>(interface_cast(i_ce).aBases);
+}
+
+void
+attr::Get_Functions( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(interface_cast(i_ce).aFunctions);
+}
+
+void
+attr::Get_Attributes( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(interface_cast(i_ce).aAttributes);
+}
+
+void
+xref::Get_Derivations( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_Derivations));
+}
+
+void
+xref::Get_SynonymTypedefs( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_SynonymTypedefs));
+}
+
+void
+xref::Get_ExportingServices( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_ExportingServices));
+}
+
+void
+xref::Get_ExportingSingletons( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_ExportingSingletons));
+}
+
+void
+xref::Get_AsReturns( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsReturns));
+}
+
+void
+xref::Get_AsParameters( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsParameters));
+}
+
+void
+xref::Get_AsDataTypes( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(interface_2s_AsDataTypes));
+}
+
+
+
+
+} // namespace ifc_interface
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_module.cxx b/autodoc/source/ary/idl/i_module.cxx
new file mode 100644
index 000000000000..b5b7453fa3b0
--- /dev/null
+++ b/autodoc/source/ary/idl/i_module.cxx
@@ -0,0 +1,204 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ik_module.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/i_sisingleton.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <nametreenode.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+Module::Module()
+ : pImpl( new NameTreeNode<Ce_id> )
+{
+}
+
+Module::Module( const String & i_sName,
+ const Module & i_rParent )
+ : pImpl( new NameTreeNode<Ce_id>( i_sName,
+ *i_rParent.pImpl,
+ i_rParent.CeId() ) )
+{
+}
+
+Module::~Module()
+{
+}
+
+void
+Module::Add_Name( const String & i_sName,
+ Ce_id i_nCodeEntity )
+{
+ pImpl->Add_Name(i_sName, i_nCodeEntity);
+}
+
+Ce_id
+Module::Search_Name( const String & i_sName ) const
+{
+ return pImpl->Search_Name(i_sName);
+}
+
+void
+Module::Get_Names( Dyn_StdConstIterator<Ce_id> & o_rResult ) const
+{
+ pImpl->Get_Names( o_rResult );
+}
+
+void
+Module::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Module::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Module::inq_LocalName() const
+{
+ return pImpl->Name();
+}
+
+Ce_id
+Module::inq_NameRoom() const
+{
+ return pImpl->Parent();
+}
+
+Ce_id
+Module::inq_Owner() const
+{
+ return pImpl->Parent();
+}
+
+E_SightLevel
+Module::inq_SightLevel() const
+{
+ return sl_Module;
+}
+
+
+namespace ifc_module
+{
+
+inline const Module &
+module_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Module::class_id );
+ return static_cast< const Module& >(i_ce);
+}
+
+typedef NameTreeNode<Ce_id>::Map_LocalNames NameMap;
+
+void
+attr::Get_AllChildrenSeparated( std::vector< const CodeEntity* > & o_nestedModules,
+ std::vector< const CodeEntity* > & o_services,
+ std::vector< const CodeEntity* > & o_interfaces,
+ std::vector< const CodeEntity* > & o_structs,
+ std::vector< const CodeEntity* > & o_exceptions,
+ std::vector< const CodeEntity* > & o_enums,
+ std::vector< const CodeEntity* > & o_typedefs,
+ std::vector< const CodeEntity* > & o_constantGroups,
+ std::vector< const CodeEntity* > & o_singletons,
+ const CePilot & i_pilot,
+ const CodeEntity & i_ce )
+{
+ const CodeEntity *
+ pCe = 0;
+ NameMap::const_iterator
+ itEnd = module_cast(i_ce).pImpl->LocalNames().end();
+ for ( NameMap::const_iterator
+ it = module_cast(i_ce).pImpl->LocalNames().begin();
+ it != itEnd;
+ ++it )
+ {
+ pCe = &i_pilot.Find_Ce( (*it).second );
+ switch (pCe->AryClass())
+ {
+ case Module::class_id:
+ o_nestedModules.push_back(pCe);
+ break;
+ case SglIfcService::class_id:
+ case Service::class_id:
+ o_services.push_back(pCe);
+ break;
+ case Interface::class_id:
+ o_interfaces.push_back(pCe);
+ break;
+ case Struct::class_id:
+ o_structs.push_back(pCe);
+ break;
+ case Exception::class_id:
+ o_exceptions.push_back(pCe);
+ break;
+ case Enum::class_id:
+ o_enums.push_back(pCe);
+ break;
+ case Typedef::class_id:
+ o_typedefs.push_back(pCe);
+ break;
+ case ConstantsGroup::class_id:
+ o_constantGroups.push_back(pCe);
+ break;
+ case SglIfcSingleton::class_id:
+ case Singleton::class_id:
+ o_singletons.push_back(pCe);
+ break;
+ }
+ } // end for
+}
+
+
+} // namespace ifc_module
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_namelookup.cxx b/autodoc/source/ary/idl/i_namelookup.cxx
new file mode 100644
index 000000000000..5b07d5a73c16
--- /dev/null
+++ b/autodoc/source/ary/idl/i_namelookup.cxx
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_namelookup.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <sci_impl.hxx>
+
+namespace ary
+{
+namespace idl
+{
+
+NameLookup::NameLookup()
+ : aNames()
+{
+}
+
+NameLookup::~NameLookup()
+{
+}
+
+void
+NameLookup::Add_Name( const String & i_name,
+ Ce_id i_id,
+ ClassId i_class,
+ Ce_id i_owner )
+{
+ aNames.insert( std::pair< const String, NameProperties>(
+ i_name,
+ NameProperties( i_id,
+ i_class,
+ i_owner )));
+}
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_nnfinder.hxx b/autodoc/source/ary/idl/i_nnfinder.hxx
new file mode 100644
index 000000000000..3355a5f89030
--- /dev/null
+++ b/autodoc/source/ary/idl/i_nnfinder.hxx
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_NNFINDER_HXX
+#define ARY_IDL_NNFINDER_HXX
+
+// USED SERVICES
+#include "is_ce.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Gives context info for tree search functions.
+
+ @collab ->ary::Search_SubTree<>()
+ @collab ->ary::Search_SubTree_UpTillRoot<>()
+*/
+class Find_ModuleNode
+{
+ public:
+ typedef Ce_id id_type;
+ typedef StringVector::const_iterator name_iterator;
+
+ // LIFECYCLE
+ Find_ModuleNode(
+ const Ce_Storage & i_rStorage,
+ name_iterator it_begin,
+ name_iterator it_end,
+ const String & i_sName )
+ : rStorage(i_rStorage),
+ itBegin(it_begin),
+ itEnd(it_end),
+ sName2Search(i_sName) { if (itBegin != itEnd ? (*itBegin).empty() : false) ++itBegin; }
+ // OPERATIONS
+ const Module * operator()(
+ id_type i_id ) const
+ { return i_id.IsValid()
+ ? & ary_cast<Module>(rStorage[i_id])
+ : 0; }
+
+ name_iterator Begin() const { return itBegin; }
+ name_iterator End() const { return itEnd; }
+ const String & Name2Search() const { return sName2Search; }
+
+ private:
+ // DATA
+ const Ce_Storage & rStorage;
+ name_iterator itBegin;
+ name_iterator itEnd;
+ String sName2Search;
+};
+
+
+
+
+class Types_forSetCe_Id
+{
+ public:
+ typedef Ce_id element_type;
+ typedef Ce_Storage find_type;
+
+ // KORR_FUTURE: Check, if this sorting is right or the ary standard
+ // sorting should be used.
+ struct sort_type
+ {
+ sort_type(
+ const find_type & i_rFinder )
+ : rFinder(i_rFinder) {}
+ bool operator()(
+ const element_type &
+ i_r1,
+ const element_type &
+ i_r2 ) const
+ {
+ return rFinder[i_r1].LocalName()
+ < rFinder[i_r2].LocalName();
+ }
+
+ private:
+ const find_type & rFinder;
+
+ };
+};
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/i_param.cxx b/autodoc/source/ary/idl/i_param.cxx
new file mode 100644
index 000000000000..bdaadeee0964
--- /dev/null
+++ b/autodoc/source/ary/idl/i_param.cxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_param.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+Parameter::Parameter( const String & i_sName,
+ Type_id i_nType,
+ E_ParameterDirection i_eDirection )
+ : sName(i_sName),
+ nType(i_nType),
+ eDirection(i_eDirection)
+{
+}
+
+Parameter::~Parameter()
+{
+}
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_property.cxx b/autodoc/source/ary/idl/i_property.cxx
new file mode 100644
index 000000000000..852e06f4ced0
--- /dev/null
+++ b/autodoc/source/ary/idl/i_property.cxx
@@ -0,0 +1,171 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/ik_property.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+Property::Property( const String & i_sName,
+ Ce_id i_nService,
+ Ce_id i_nModule,
+ Type_id i_nType,
+ Stereotypes i_stereotypes )
+ : sName(i_sName),
+ nOwner(i_nService),
+ nNameRoom(i_nModule),
+ nType(i_nType),
+ aStereotypes(i_stereotypes)
+{
+}
+
+Property::~Property()
+{
+}
+
+
+void
+Property::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Property::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Property::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Property::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+Property::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Property::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+namespace ifc_property
+{
+
+inline const Property &
+property_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Property::class_id );
+ return static_cast< const Property& >(i_ce);
+}
+
+bool
+attr::HasAnyStereotype( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.HasAny();
+}
+
+bool
+attr::IsReadOnly( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsReadOnly();
+}
+
+bool
+attr::IsBound( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsBound();
+}
+
+bool
+attr::IsConstrained( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsConstrained();
+}
+
+bool
+attr::IsMayBeAmbiguous( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsMayBeAmbiguous();
+}
+
+bool
+attr::IsMayBeDefault( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsMayBeDefault();
+}
+
+bool
+attr::IsMayBeVoid( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsMayBeVoid();
+}
+
+bool
+attr::IsRemovable( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsRemovable();
+}
+
+bool
+attr::IsTransient( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).aStereotypes.IsTransient();
+}
+
+Type_id
+attr::Type( const CodeEntity & i_ce )
+{
+ return property_cast(i_ce).nType;
+}
+
+} // namespace ifc_property
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_reposypart.cxx b/autodoc/source/ary/idl/i_reposypart.cxx
new file mode 100644
index 000000000000..c0edd33feeb7
--- /dev/null
+++ b/autodoc/source/ary/idl/i_reposypart.cxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "i_reposypart.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_namelookup.hxx>
+#include <idl_internalgate.hxx>
+#include "ia_ce.hxx"
+#include "ia_type.hxx"
+#include "i2s_calculator.hxx"
+#include "is_ce.hxx"
+#include "is_type.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+DYN InternalGate &
+InternalGate::Create_Partition_(RepositoryCenter & i_center)
+{
+ return *new RepositoryPartition(i_center);
+}
+
+
+
+RepositoryPartition::RepositoryPartition( RepositoryCenter & i_repository )
+ : pCenter(&i_repository),
+ pCes(0),
+ pTypes(0),
+ pNamesDictionary(new NameLookup)
+{
+ pTypes = new TypeAdmin;
+ pCes = new CeAdmin(*pNamesDictionary, *pTypes);
+}
+
+RepositoryPartition::~RepositoryPartition()
+{
+}
+
+void
+RepositoryPartition::Calculate_AllSecondaryInformation(
+ const String & i_devman_reffilepath )
+{
+ // KORR_FUTURE
+ // Forward the options from here.
+
+ SecondariesCalculator
+ secalc(*pCes,*pTypes);
+
+ secalc.CheckAllInterfaceBases();
+ secalc.Connect_Types2Ces();
+ secalc.Gather_CrossReferences();
+
+ if ( NOT i_devman_reffilepath.empty() )
+ {
+ secalc.Make_Links2DeveloperManual(i_devman_reffilepath);
+ }
+}
+
+const CePilot &
+RepositoryPartition::Ces() const
+{
+ return *pCes;
+}
+
+const TypePilot &
+RepositoryPartition::Types() const
+{
+ return *pTypes;
+}
+
+CePilot &
+RepositoryPartition::Ces()
+{
+ return *pCes;
+}
+
+TypePilot &
+RepositoryPartition::Types()
+{
+ return *pTypes;
+}
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_reposypart.hxx b/autodoc/source/ary/idl/i_reposypart.hxx
new file mode 100644
index 000000000000..f28e1f1364d7
--- /dev/null
+++ b/autodoc/source/ary/idl/i_reposypart.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_I_REPOSYPART_HXX
+#define ARY_IDL_I_REPOSYPART_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <idl_internalgate.hxx>
+ // OTHER
+
+
+namespace ary
+{
+namespace idl
+{
+ class CeAdmin;
+ class TypeAdmin;
+ class NameLookup;
+}
+}
+
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+/** The idl part of the Autodoc repository.
+*/
+class RepositoryPartition : public InternalGate
+{
+ public:
+ // LIFECYCLE
+ RepositoryPartition(
+ RepositoryCenter & i_repository );
+ ~RepositoryPartition();
+ // INHERITED
+ // Interface Gate:
+ virtual void Calculate_AllSecondaryInformation(
+ const String & i_devman_reffilepath );
+// const ::autodoc::Options &
+// i_options );
+ virtual const CePilot &
+ Ces() const;
+ virtual const TypePilot &
+ Types() const;
+ virtual CePilot & Ces();
+ virtual TypePilot & Types();
+
+ private:
+ // DATA
+ RepositoryCenter * pCenter;
+
+ Dyn<CeAdmin> pCes;
+ Dyn<TypeAdmin> pTypes;
+ Dyn<NameLookup> pNamesDictionary;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/i_service.cxx b/autodoc/source/ary/idl/i_service.cxx
new file mode 100644
index 000000000000..14eb20a1096d
--- /dev/null
+++ b/autodoc/source/ary/idl/i_service.cxx
@@ -0,0 +1,171 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_service.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_service.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+Service::Service( const String & i_sName,
+ Ce_id i_nOwner )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ aIncludedServices(),
+ aSupportedInterfaces(),
+ aProperties()
+{
+}
+
+Service::~Service()
+{
+ for ( RelationList::iterator it = aIncludedServices.begin();
+ it != aIncludedServices.end();
+ ++it )
+ {
+ delete (*it).Info();
+ }
+
+ for ( RelationList::iterator it = aSupportedInterfaces.begin();
+ it != aSupportedInterfaces.end();
+ ++it )
+ {
+ delete (*it).Info();
+ }
+}
+
+void
+Service::Get_SupportedInterfaces( Dyn_StdConstIterator<CommentedRelation> & o_rResult ) const
+{
+ o_rResult = new SCI_Vector<CommentedRelation>(aSupportedInterfaces);
+}
+
+void
+Service::Get_IncludedServices( Dyn_StdConstIterator<CommentedRelation> & o_rResult ) const
+{
+ o_rResult = new SCI_Vector<CommentedRelation>(aIncludedServices);
+}
+
+void
+Service::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Service::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Service::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Service::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Service::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Service::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_service
+{
+
+inline const Service &
+service_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Service::class_id );
+ return static_cast< const Service& >(i_ce);
+}
+
+void
+attr::Get_IncludedServices( Dyn_StdConstIterator<CommentedRelation> & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<CommentedRelation>( service_cast(i_ce).aIncludedServices );
+}
+
+void
+attr::Get_ExportedInterfaces( Dyn_StdConstIterator<CommentedRelation> & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<CommentedRelation>( service_cast(i_ce).aSupportedInterfaces );
+}
+
+void
+attr::Get_Properties( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>( service_cast(i_ce).aProperties );
+}
+
+void
+xref::Get_IncludingServices( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(service_2s_IncludingServices));
+}
+
+void
+xref::Get_InstantiatingSingletons( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(service_2s_InstantiatingSingletons));
+}
+
+
+} // namespace ifc_service
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_singleton.cxx b/autodoc/source/ary/idl/i_singleton.cxx
new file mode 100644
index 000000000000..fcc6ef580756
--- /dev/null
+++ b/autodoc/source/ary/idl/i_singleton.cxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_singleton.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_singleton.hxx>
+#include <sci_impl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+Singleton::Singleton( const String & i_sName,
+ Ce_id i_nOwner )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nService()
+{
+}
+
+Singleton::~Singleton()
+{
+}
+
+void
+Singleton::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Singleton::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Singleton::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Singleton::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Singleton::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Singleton::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_singleton
+{
+
+inline const Singleton &
+singleton_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Singleton::class_id );
+ return static_cast< const Singleton& >(i_ce);
+}
+
+Type_id
+attr::AssociatedService( const CodeEntity & i_ce )
+{
+ return singleton_cast(i_ce).nService;
+}
+
+} // namespace ifc_singleton
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_siservice.cxx b/autodoc/source/ary/idl/i_siservice.cxx
new file mode 100644
index 000000000000..2aff0288cec3
--- /dev/null
+++ b/autodoc/source/ary/idl/i_siservice.cxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/ik_siservice.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+SglIfcService::SglIfcService( const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nBaseInterface(i_nBaseInterface),
+ aConstructors()
+{
+}
+
+SglIfcService::~SglIfcService()
+{
+}
+
+void
+SglIfcService::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+SglIfcService::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+SglIfcService::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+SglIfcService::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+SglIfcService::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+SglIfcService::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_sglifcservice
+{
+
+inline const SglIfcService &
+sglifcservice_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == SglIfcService::class_id );
+ return static_cast< const SglIfcService& >(i_ce);
+}
+
+Type_id
+attr::BaseInterface( const CodeEntity & i_ce )
+{
+ return sglifcservice_cast(i_ce).nBaseInterface;
+}
+
+void
+attr::Get_Constructors( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>( sglifcservice_cast(i_ce).aConstructors );
+}
+
+} // namespace ifc_sglifcservice
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_sisingleton.cxx b/autodoc/source/ary/idl/i_sisingleton.cxx
new file mode 100644
index 000000000000..d731f341153b
--- /dev/null
+++ b/autodoc/source/ary/idl/i_sisingleton.cxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_sisingleton.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/ik_sisingleton.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+SglIfcSingleton::SglIfcSingleton( const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBaseInterface )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nBaseInterface(i_nBaseInterface)
+{
+}
+
+SglIfcSingleton::~SglIfcSingleton()
+{
+}
+
+void
+SglIfcSingleton::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+SglIfcSingleton::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+SglIfcSingleton::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+SglIfcSingleton::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+SglIfcSingleton::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+SglIfcSingleton::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+namespace ifc_sglifcsingleton
+{
+
+inline const SglIfcSingleton &
+sglifcsingleton_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == SglIfcSingleton::class_id );
+ return static_cast< const SglIfcSingleton& >(i_ce);
+}
+
+Type_id
+attr::BaseInterface( const CodeEntity & i_ce )
+{
+ return sglifcsingleton_cast(i_ce).nBaseInterface;
+}
+
+
+} // namespace ifc_sglifcsingleton
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_struct.cxx b/autodoc/source/ary/idl/i_struct.cxx
new file mode 100644
index 000000000000..dfffa3522813
--- /dev/null
+++ b/autodoc/source/ary/idl/i_struct.cxx
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/ik_struct.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+Struct::Struct( const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nBase,
+ const String & i_sTemplateParameter,
+ Type_id i_nTemplateParameterType )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nBase(i_nBase),
+ sTemplateParameter(i_sTemplateParameter),
+ nTemplateParameterType(i_nTemplateParameterType),
+ aElements()
+{
+}
+
+Struct::~Struct()
+{
+}
+
+void
+Struct::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Struct::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Struct::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Struct::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Struct::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Struct::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_struct
+{
+
+inline const Struct &
+struct_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Struct::class_id );
+ return static_cast< const Struct& >(i_ce);
+}
+
+Type_id
+attr::Base( const CodeEntity & i_ce )
+{
+ return struct_cast(i_ce).nBase;
+}
+
+void
+attr::Get_Elements( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>( struct_cast(i_ce).aElements );
+}
+
+
+void
+xref::Get_Derivations( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(struct_2s_Derivations));
+}
+
+void
+xref::Get_SynonymTypedefs( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(struct_2s_SynonymTypedefs));
+}
+
+void
+xref::Get_AsReturns( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(struct_2s_AsReturns));
+}
+
+void
+xref::Get_AsParameters( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(struct_2s_AsParameters));
+}
+
+void
+xref::Get_AsDataTypes( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(struct_2s_AsDataTypes));
+}
+
+} // namespace ifc_struct
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_structelem.cxx b/autodoc/source/ary/idl/i_structelem.cxx
new file mode 100644
index 000000000000..1a19d195f457
--- /dev/null
+++ b/autodoc/source/ary/idl/i_structelem.cxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/ik_structelem.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+StructElement::StructElement( const String & i_sName,
+ Ce_id i_nOwner,
+ Ce_id i_nNameRoom,
+ Type_id i_nType )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nNameRoom(i_nNameRoom),
+ nType(i_nType)
+{
+}
+
+StructElement::~StructElement()
+{
+}
+
+void
+StructElement::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+StructElement::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+StructElement::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+StructElement::inq_NameRoom() const
+{
+ return nNameRoom;
+}
+
+Ce_id
+StructElement::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+StructElement::inq_SightLevel() const
+{
+ return sl_Member;
+}
+
+
+namespace ifc_structelement
+{
+
+inline const StructElement &
+selem_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == StructElement::class_id );
+ return static_cast< const StructElement& >(i_ce);
+}
+
+Type_id
+attr::Type( const CodeEntity & i_ce )
+{
+ return selem_cast(i_ce).nType;
+}
+
+} // namespace ifc_structelement
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_traits.cxx b/autodoc/source/ary/idl/i_traits.cxx
new file mode 100644
index 000000000000..1c12c5bc996f
--- /dev/null
+++ b/autodoc/source/ary/idl/i_traits.cxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_traits.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/namesort.hxx>
+#include "is_ce.hxx"
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+//******************** Ce_Traits ********************//
+Ce_Traits::entity_base_type &
+Ce_Traits::EntityOf_(id_type i_id)
+{
+ csv_assert(i_id.IsValid());
+ return Ce_Storage::Instance_()[i_id];
+}
+
+//******************** Ce_Compare ********************//
+const Ce_Compare::key_type &
+Ce_Compare::KeyOf_(const entity_base_type & i_entity)
+{
+ return i_entity.LocalName();
+}
+
+bool
+Ce_Compare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ static ::ary::LesserName less_;
+ return less_(i_1,i_2);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/i_typedef.cxx b/autodoc/source/ary/idl/i_typedef.cxx
new file mode 100644
index 000000000000..f33ef60921ca
--- /dev/null
+++ b/autodoc/source/ary/idl/i_typedef.cxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/ik_typedef.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <sci_impl.hxx>
+#include "i2s_calculator.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+Typedef::Typedef( const String & i_sName,
+ Ce_id i_nOwner,
+ Type_id i_nDefiningType )
+ : sName(i_sName),
+ nOwner(i_nOwner),
+ nDefiningType(i_nDefiningType)
+{
+}
+
+Typedef::~Typedef()
+{
+}
+
+void
+Typedef::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+Typedef::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Typedef::inq_LocalName() const
+{
+ return sName;
+}
+
+Ce_id
+Typedef::inq_NameRoom() const
+{
+ return nOwner;
+}
+
+Ce_id
+Typedef::inq_Owner() const
+{
+ return nOwner;
+}
+
+E_SightLevel
+Typedef::inq_SightLevel() const
+{
+ return sl_File;
+}
+
+
+namespace ifc_typedef
+{
+
+inline const Typedef &
+typedef_cast( const CodeEntity & i_ce )
+{
+ csv_assert( i_ce.AryClass() == Typedef::class_id );
+ return static_cast< const Typedef& >(i_ce);
+}
+
+Type_id
+attr::DefiningType( const CodeEntity & i_ce )
+{
+ return typedef_cast(i_ce).nDefiningType;
+}
+
+
+void
+xref::Get_SynonymTypedefs( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(typedef_2s_SynonymTypedefs));
+}
+
+void
+xref::Get_AsReturns( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(typedef_2s_AsReturns));
+}
+
+void
+xref::Get_AsParameters( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(typedef_2s_AsParameters));
+}
+
+void
+xref::Get_AsDataTypes( Dyn_CeIterator & o_result,
+ const CodeEntity & i_ce )
+{
+ o_result = new SCI_Vector<Ce_id>(i_ce.Secondaries().List(typedef_2s_AsDataTypes));
+}
+
+} // namespace ifc_typedef
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/ia_ce.cxx b/autodoc/source/ary/idl/ia_ce.cxx
new file mode 100644
index 000000000000..f78f5050a7db
--- /dev/null
+++ b/autodoc/source/ary/idl/ia_ce.cxx
@@ -0,0 +1,581 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "ia_ce.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/idl/i_attribute.hxx>
+#include <ary/idl/i_constant.hxx>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_function.hxx>
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_namelookup.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/i_sisingleton.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/i_traits.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <idsort.hxx>
+#include "ia_type.hxx"
+#include "is_ce.hxx"
+#include "it_tplparam.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+inline Module &
+CeAdmin::lhf_Access_Module( Ce_id i_nId )
+ { return ary_cast<Module>(Storage()[i_nId]); }
+
+inline void
+CeAdmin::lhf_Put2Storage_and_AssignId( CodeEntity & pass_io_rCe )
+ { // This also assigns an ID to pass_io_rCe:
+ Storage().Store_Entity(pass_io_rCe);
+ my_NameDictionary().Add_Name( pass_io_rCe.LocalName(),
+ pass_io_rCe.CeId(),
+ pass_io_rCe.AryClass(),
+ pass_io_rCe.Owner() );
+ }
+
+inline void
+CeAdmin::lhf_Store_NewEntity( DYN CodeEntity & pass_io_rCe,
+ Module & i_rOwner )
+{
+ lhf_Put2Storage_and_AssignId(pass_io_rCe);
+ i_rOwner.Add_Name(pass_io_rCe.LocalName(), pass_io_rCe.CeId());
+}
+
+inline void
+CeAdmin::lhf_Store_NewEntity( DYN CodeEntity & pass_io_rCe,
+ Ce_id i_nOwnerModule )
+{
+ lhf_Store_NewEntity(pass_io_rCe, lhf_Access_Module(i_nOwnerModule));
+}
+
+
+
+CeAdmin::CeAdmin( NameLookup & io_rNameDictionary,
+ TypeAdmin & io_rTypePilot )
+ : pStorage(new Ce_Storage),
+ pGlobalNamespace(0),
+ pNameDictionary(&io_rNameDictionary),
+ pTypePilot(&io_rTypePilot)
+{
+ Storage().Set_Reserved(
+ predefined::ce_GlobalNamespace,
+ *new Module );
+ pGlobalNamespace = &lhf_Access_Module(Ce_id(predefined::ce_GlobalNamespace));
+}
+
+CeAdmin::~CeAdmin()
+{
+}
+
+
+
+Module &
+CeAdmin::CheckIn_Module( Ce_id i_nParentId,
+ const String & i_sName )
+{
+ Module & rOwner = lhf_Access_Module(i_nParentId);
+ Ce_id nId = rOwner.Search_Name(i_sName);
+ if (nId.IsValid())
+ {
+ return lhf_Access_Module(nId);
+ }
+
+ Module & ret = *new Module( i_sName,
+ rOwner );
+ lhf_Store_NewEntity(ret, rOwner);
+ return ret;
+}
+
+Service &
+CeAdmin::Store_Service( Ce_id i_nOwner,
+ const String & i_sName )
+{
+ Service & ret = *new Service( i_sName,
+ i_nOwner );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+SglIfcService &
+CeAdmin::Store_SglIfcService( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface )
+{
+ SglIfcService &
+ ret = *new SglIfcService( i_sName,
+ i_nOwner,
+ i_nBaseInterface );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+Interface &
+CeAdmin::Store_Interface( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase )
+{
+ Interface & ret = *new Interface( i_sName,
+ i_nOwner );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ if (i_nBase.IsValid())
+ ret.Add_Base(i_nBase, 0);
+ return ret;
+}
+
+Struct &
+CeAdmin::Store_Struct( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam )
+{
+ if (NOT i_sTemplateParam.empty())
+ {
+ return lhf_Store_TplStruct( i_nOwner,
+ i_sName,
+ i_nBase,
+ i_sTemplateParam );
+ }
+
+ Struct & ret = *new Struct( i_sName,
+ i_nOwner,
+ i_nBase,
+ String::Null_(),
+ Type_id::Null_() );
+ lhf_Store_NewEntity(ret, i_nOwner);
+
+ return ret;
+}
+
+Exception &
+CeAdmin::Store_Exception( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase )
+{
+ Exception & ret = *new Exception( i_sName,
+ i_nOwner,
+ i_nBase );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+Enum &
+CeAdmin::Store_Enum( Ce_id i_nOwner,
+ const String & i_sName )
+{
+ Enum & ret = *new Enum( i_sName,
+ i_nOwner );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+Typedef &
+CeAdmin::Store_Typedef( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nDefiningType )
+{
+ Typedef & ret = *new Typedef( i_sName,
+ i_nOwner,
+ i_nDefiningType );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+
+ConstantsGroup &
+CeAdmin::Store_ConstantsGroup( Ce_id i_nOwner,
+ const String & i_sName )
+{
+ ConstantsGroup & ret = *new ConstantsGroup( i_sName,
+ i_nOwner );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+Singleton &
+CeAdmin::Store_Singleton( Ce_id i_nOwner,
+ const String & i_sName )
+{
+ Singleton & ret = *new Singleton( i_sName,
+ i_nOwner );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+SglIfcSingleton &
+CeAdmin::Store_SglIfcSingleton( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface )
+{
+ SglIfcSingleton &
+ ret = *new SglIfcSingleton( i_sName,
+ i_nOwner,
+ i_nBaseInterface );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ return ret;
+}
+
+Constant &
+CeAdmin::Store_Constant( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ const String & i_sValue )
+{
+ ConstantsGroup &
+ rOwner = ary_cast<ConstantsGroup>(Storage()[i_nOwner]);
+ Constant & ret = *new Constant( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nType,
+ i_sValue );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Constant(ret.CeId());
+ return ret;
+}
+
+Property &
+CeAdmin::Store_Property( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ Property::Stereotypes i_stereotypes )
+{
+ Service &
+ rOwner = ary_cast<Service>(Storage()[i_nOwner]);
+ Property & ret = *new Property( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nType,
+ i_stereotypes );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Property(ret.CeId());
+ return ret;
+}
+
+Function &
+CeAdmin::Store_Function( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nReturnType,
+ bool i_bOneWay )
+{
+ Interface &
+ rOwner = ary_cast<Interface>(Storage()[i_nOwner]);
+ Function & ret = *new Function( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nReturnType,
+ i_bOneWay);
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Function(ret.CeId());
+ return ret;
+}
+
+Function &
+CeAdmin::Store_ServiceConstructor( Ce_id i_nOwner,
+ const String & i_sName )
+{
+ SglIfcService &
+ rOwner = ary_cast<SglIfcService>(Storage()[i_nOwner]);
+ Function & ret = *new Function( i_sName,
+ i_nOwner,
+ rOwner.NameRoom() );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Constructor(ret.CeId());
+ return ret;
+}
+
+StructElement &
+CeAdmin::Store_StructMember( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType )
+{
+ Struct &
+ rOwner = ary_cast<Struct>(Storage()[i_nOwner]);
+ StructElement & ret = *new StructElement( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nType );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Member(ret.CeId());
+ return ret;
+}
+
+StructElement &
+CeAdmin::Store_ExceptionMember( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType )
+{
+ Exception &
+ rOwner = ary_cast<Exception>(Storage()[i_nOwner]);
+ StructElement & ret = *new StructElement( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nType );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Member(ret.CeId());
+ return ret;
+}
+
+EnumValue &
+CeAdmin::Store_EnumValue( Ce_id i_nOwner,
+ const String & i_sName,
+ const String & i_sValue )
+{
+ Enum &
+ rOwner = ary_cast<Enum>(Storage()[i_nOwner]);
+ EnumValue & ret = *new EnumValue( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_sValue );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Value(ret.CeId());
+ return ret;
+}
+
+Attribute &
+CeAdmin::Store_Attribute( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ bool i_bReadOnly,
+ bool i_bBound )
+{
+ Interface &
+ rOwner = ary_cast<Interface>(Storage()[i_nOwner]);
+
+ Attribute & ret = *new Attribute ( i_sName,
+ i_nOwner,
+ rOwner.NameRoom(),
+ i_nType,
+ i_bReadOnly,
+ i_bBound );
+ lhf_Put2Storage_and_AssignId(ret);
+ rOwner.Add_Attribute(ret.CeId());
+ return ret;
+}
+
+const Module &
+CeAdmin::GlobalNamespace() const
+{
+ csv_assert(pGlobalNamespace);
+ return *pGlobalNamespace;
+}
+
+const CodeEntity &
+CeAdmin::Find_Ce( Ce_id i_nId ) const
+{
+ return Storage()[i_nId];
+
+}
+
+const Module &
+CeAdmin::Find_Module( Ce_id i_nId ) const
+{
+ return ary_cast<Module>(Storage()[i_nId]);
+}
+
+const Module *
+CeAdmin::Search_Module( Ce_id i_nId ) const
+{
+ if (NOT i_nId.IsValid())
+ return 0;
+ return ary_cast<Module>( & Storage()[i_nId] );
+}
+
+const Function &
+CeAdmin::Find_Function( Ce_id i_nId ) const
+{
+ return ary_cast<Function>(Storage()[i_nId]);
+}
+
+const Property &
+CeAdmin::Find_Property( Ce_id i_nId ) const
+{
+ return ary_cast<Property>(Storage()[i_nId]);
+}
+
+const EnumValue &
+CeAdmin::Find_EnumValue( Ce_id i_nId ) const
+{
+ return ary_cast<EnumValue>(Storage()[i_nId]);
+}
+
+const Constant &
+CeAdmin::Find_Constant( Ce_id i_nId ) const
+{
+ return ary_cast<Constant>(Storage()[i_nId]);
+}
+
+const StructElement &
+CeAdmin::Find_StructElement( Ce_id i_nId ) const
+{
+ return ary_cast<StructElement>(Storage()[i_nId]);
+}
+
+void
+CeAdmin::Get_Text( StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const CodeEntity & i_ce ) const
+{
+ const CodeEntity * pCe = &i_ce;
+ csv::erase_container(o_module);
+ o_ce.clear();
+ o_member.clear();
+
+ switch ( pCe->SightLevel() )
+ {
+ // Here are intentionally no breaks!
+ case sl_Member:
+ if ( is_type<Function>(*pCe) )
+ o_member = StreamLock(200)()
+ << pCe->LocalName()
+ << "()"
+ << c_str;
+ else
+ o_member = pCe->LocalName();
+ pCe = & Storage()[pCe->Owner()];
+ case sl_File:
+ o_ce = pCe->LocalName();
+ pCe = & Storage()[pCe->NameRoom()];
+ case sl_Module:
+ get_ModuleText(o_module,*pCe);
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+const NameLookup &
+CeAdmin::NameDictionary() const
+{
+ return *pNameDictionary;
+}
+
+
+void
+CeAdmin::Get_AlphabeticalIndex( std::vector<Ce_id> & o_rResult,
+ alphabetical_index::E_Letter i_cLetter ) const
+{
+ const int C_nLowerUpperDiff = 'a'-'A';
+
+ // Establishing filter:
+ UINT8 filter[256];
+
+ UINT8 nLetter = static_cast<UINT8>(i_cLetter);
+ memset(filter, 0, 256);
+ filter[nLetter] = 1;
+ if ( i_cLetter != alphabetical_index::non_alpha )
+ filter[nLetter - C_nLowerUpperDiff] = 1;
+
+ // Gather entities which start with i_cLetter:
+ o_rResult.reserve(1000);
+ idl::Ce_Storage::c_iter
+ itEnd = Storage().End();
+ for ( idl::Ce_Storage::c_iter it = Storage().BeginUnreserved();
+ it != itEnd;
+ ++it )
+ {
+ if ( filter[ static_cast<UINT8>(*(*it).LocalName().c_str()) ] == 1 )
+ o_rResult.push_back( (*it).CeId() );
+ }
+
+ std::sort( o_rResult.begin(),
+ o_rResult.end(),
+ IdSorter<Ce_Compare>() );
+}
+
+
+Module &
+CeAdmin::GlobalNamespace()
+{
+ csv_assert(pGlobalNamespace);
+ return *pGlobalNamespace;
+}
+
+CodeEntity &
+CeAdmin::Find_Ce( Ce_id i_nId )
+{
+ return Storage()[i_nId];
+}
+
+void
+CeAdmin::get_ModuleText( StringVector & o_module,
+ const CodeEntity & i_ce ) const
+{
+ if (i_ce.NameRoom().IsValid())
+ {
+ const CodeEntity &
+ rParent = Storage()[i_ce.NameRoom()];
+ get_ModuleText(o_module, rParent);
+ o_module.push_back(i_ce.LocalName());
+ }
+}
+
+Struct &
+CeAdmin::lhf_Store_TplStruct( Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam )
+{
+ csv_assert(NOT i_sTemplateParam.empty());
+
+ TemplateParamType &
+ rTpt = pTypePilot->Store_TemplateParamType(i_sTemplateParam);
+
+ Struct & ret = *new Struct( i_sName,
+ i_nOwner,
+ i_nBase,
+ i_sTemplateParam,
+ rTpt.TypeId() );
+ lhf_Store_NewEntity(ret, i_nOwner);
+ rTpt.Set_StructId(ret.CeId());
+
+ return ret;
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/ia_ce.hxx b/autodoc/source/ary/idl/ia_ce.hxx
new file mode 100644
index 000000000000..48d8907eb3a3
--- /dev/null
+++ b/autodoc/source/ary/idl/ia_ce.hxx
@@ -0,0 +1,253 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IA_CE_HXX
+#define ARY_IDL_IA_CE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ip_ce.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+class Ce_Storage;
+class TypeAdmin;
+
+
+/** @resp
+ Implements ::ary::idl::CePilot. Provides the access logic for all
+ IDL code entities.
+
+ @collab Ce_Storage
+ @collab TypeAdmin
+
+ @see CodeEntity
+*/
+class CeAdmin : public CePilot
+{
+ public:
+ // LIFECYCLE
+ CeAdmin(
+ NameLookup & io_rNameDictionary,
+ TypeAdmin & io_rTypePilot );
+ virtual ~CeAdmin();
+
+ // OPERATIONS
+
+ // INQUIRY
+ const Ce_Storage & Storage() const;
+
+ // ACCESS
+ Ce_Storage & Storage();
+
+ // INHERITED
+ // Interface ::ary::idl::CePilot:
+ virtual Module & CheckIn_Module(
+ Ce_id i_nParentId,
+ const String & i_sName );
+ virtual Service & Store_Service(
+ Ce_id i_nOwner,
+ const String & i_sName );
+ virtual SglIfcService &
+ Store_SglIfcService(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface );
+ virtual Interface & Store_Interface(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase );
+ virtual Struct & Store_Struct(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam );
+ virtual Exception & Store_Exception(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase );
+ virtual Enum & Store_Enum(
+ Ce_id i_nOwner,
+ const String & i_sName );
+ virtual Typedef & Store_Typedef(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nDefiningType );
+ virtual ConstantsGroup &
+ Store_ConstantsGroup(
+ Ce_id i_nOwner,
+ const String & i_sName );
+ virtual Singleton & Store_Singleton(
+ Ce_id i_nOwner,
+ const String & i_sName );
+ virtual SglIfcSingleton &
+ Store_SglIfcSingleton(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBaseInterface );
+
+ virtual Constant & Store_Constant(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ const String & i_sValue );
+ virtual Property & Store_Property(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ Property::Stereotypes
+ i_stereotypes );
+ virtual Function & Store_Function(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nReturnType,
+ bool i_bOneWay );
+ virtual Function & Store_ServiceConstructor(
+ Ce_id i_nOwner,
+ const String & i_sName );
+ virtual StructElement &
+ Store_StructMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType );
+ virtual StructElement &
+ Store_ExceptionMember(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType );
+ virtual EnumValue & Store_EnumValue(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ const String & i_sValue );
+ virtual Attribute & Store_Attribute(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nType,
+ bool i_bReadOnly,
+ bool i_bBound );
+
+ virtual const Module &
+ GlobalNamespace() const;
+ virtual const CodeEntity &
+ Find_Ce(
+ Ce_id i_nId ) const;
+ virtual const Module &
+ Find_Module(
+ Ce_id i_nId ) const;
+ virtual const Module *
+ Search_Module(
+ Ce_id i_nId ) const;
+ virtual const Function &
+ Find_Function(
+ Ce_id i_nId ) const;
+ virtual const Property &
+ Find_Property(
+ Ce_id i_nId ) const;
+ virtual const EnumValue &
+ Find_EnumValue(
+ Ce_id i_nId ) const;
+ virtual const Constant &
+ Find_Constant(
+ Ce_id i_nId ) const;
+ virtual const StructElement &
+ Find_StructElement(
+ Ce_id i_nId ) const;
+ virtual void Get_Text(
+ StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const CodeEntity & i_ce ) const;
+ virtual const NameLookup &
+ NameDictionary() const;
+ virtual void Get_AlphabeticalIndex(
+ std::vector<Ce_id> &
+ o_rResult,
+ alphabetical_index::E_Letter
+ i_cLetter) const;
+ // ACCESS
+ virtual Module & GlobalNamespace();
+ virtual CodeEntity &
+ Find_Ce(
+ Ce_id i_nId );
+ private:
+ // Locals
+ Module & lhf_Access_Module(
+ Ce_id i_nId );
+ void lhf_Put2Storage_and_AssignId(
+ CodeEntity & pass_io_rCe );
+ void lhf_Store_NewEntity(
+ DYN CodeEntity & pass_io_rCe,
+ Module & i_rOwner );
+ void lhf_Store_NewEntity(
+ DYN CodeEntity & pass_io_rCe,
+ Ce_id i_nOwnerModule );
+ void get_ModuleText(
+ StringVector & o_module,
+ const CodeEntity & i_ce ) const;
+ Struct & lhf_Store_TplStruct(
+ Ce_id i_nOwner,
+ const String & i_sName,
+ Type_id i_nBase,
+ const String & i_sTemplateParam );
+
+ const Ce_Storage & my_Storage() const;
+ Ce_Storage & my_Storage();
+ NameLookup & my_NameDictionary() { return *pNameDictionary; }
+
+ // DATA
+ Dyn<Ce_Storage> pStorage; /// @inv pStorage != 0;
+ Module * pGlobalNamespace;
+ NameLookup * pNameDictionary;
+ TypeAdmin * pTypePilot;
+};
+
+
+// IMPLEMENTATION
+inline const Ce_Storage &
+CeAdmin::Storage() const
+{
+ return *pStorage;
+}
+
+inline Ce_Storage &
+CeAdmin::Storage()
+{
+ return *pStorage;
+}
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/ia_type.cxx b/autodoc/source/ary/idl/ia_type.cxx
new file mode 100644
index 000000000000..eb47d355c9ae
--- /dev/null
+++ b/autodoc/source/ary/idl/ia_type.cxx
@@ -0,0 +1,364 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "ia_type.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/qualiname.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include "ia_ce.hxx"
+#include "is_type.hxx"
+#include "it_builtin.hxx"
+#include "it_ce.hxx"
+#include "it_explicit.hxx"
+#include "it_sequence.hxx"
+#include "it_tplparam.hxx"
+#include "it_xnameroom.hxx"
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+String MakeTemplateName(
+ const String & i_localName,
+ const std::vector<Type_id> &
+ i_templateParameters );
+
+
+
+inline CeAdmin &
+TypeAdmin::my_Ces() const
+ { return *pCes; }
+
+inline void
+TypeAdmin::lhf_Put2Storage_and_AssignId( DYN Type & pass_io_rType )
+ { // This also assigns an ID to pass_io_rType:
+ Storage().Store_Entity(pass_io_rType); }
+
+inline Type_id
+TypeAdmin::lhf_findBuiltInType( const String & i_sName )
+ { return ary_cast<ExplicitNameRoom>(Storage()[nXNameRoom_Root])
+ .Search_Name(i_sName); }
+
+inline const ExplicitNameRoom &
+TypeAdmin::find_ExplicitNameRoom( Type_id i_nType ) const
+{
+ return ary_cast<ExplicitNameRoom>(Storage()[i_nType]);
+}
+
+inline ExplicitNameRoom &
+TypeAdmin::find_ExplicitNameRoom( Type_id i_nType )
+{
+ return ary_cast<ExplicitNameRoom>(Storage()[i_nType]);
+}
+
+ExplicitNameRoom &
+TypeAdmin::lhf_CheckIn_XNameRoom( const QualifiedName & i_rName,
+ Ce_id i_nModuleOfOccurrence )
+{
+ Type_id nRoot = i_rName.IsAbsolute()
+ ? Type_id( predefined::type_GlobalXNameRoom )
+ : lhf_Get_NameRoomRoot_forModuleofOccurrence( i_nModuleOfOccurrence ).TypeId();
+
+ if ( i_rName.NamespaceDepth() == 0 )
+ return find_ExplicitNameRoom(nRoot);
+
+ QualifiedName::namespace_iterator it = i_rName.first_namespace();
+ ExplicitNameRoom *
+ ret = & find_ExplicitNameRoom(nRoot);
+ for ( ; it != i_rName.end_namespace(); ++it )
+ {
+ Type_id
+ found = ret->Search_Name(*it);
+ if (found.IsValid())
+ {
+ ret = & find_ExplicitNameRoom(found);
+ }
+ else
+ {
+ ExplicitNameRoom &
+ rNew = *new ExplicitNameRoom(*it, *ret);
+ lhf_Put2Storage_and_AssignId(rNew);
+ ret->Add_Name( rNew.Name(), rNew.TypeId() );
+ ret = &rNew;
+ }
+
+ } // end for
+ return *ret;
+}
+
+Type_id
+TypeAdmin::lhf_CheckIn_TypeName( const String & i_sLocalName,
+ ExplicitNameRoom & io_rXNameRoom,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> * i_templateParameters )
+{
+ String sSearchLocalName( i_sLocalName );
+ if ( i_templateParameters != 0
+ ? i_templateParameters->size() > 0
+ : false )
+ {
+ sSearchLocalName = MakeTemplateName(
+ i_sLocalName,
+ *i_templateParameters);
+ }
+
+ Type_id
+ ret = io_rXNameRoom.Search_Name(sSearchLocalName);
+ if (NOT ret.IsValid())
+ {
+ DYN Type &
+ rNewType = *new ExplicitType( i_sLocalName,
+ io_rXNameRoom.TypeId(),
+ i_nModuleOfOccurrence,
+ i_templateParameters );
+ lhf_Put2Storage_and_AssignId(rNewType);
+ ret = rNewType.TypeId();
+ io_rXNameRoom.Add_Name( sSearchLocalName, ret );
+ }
+ return ret;
+}
+
+Type_id
+TypeAdmin::lhf_CheckIn_Sequence(Type_id i_nType)
+{
+ Type_id
+ ret = Storage().Search_SequenceOf(i_nType);
+
+ if (NOT ret.IsValid())
+ {
+ DYN Type &
+ rNewSeq = *new Sequence(i_nType);
+ lhf_Put2Storage_and_AssignId(rNewSeq);
+ ret = rNewSeq.Id();
+ Storage().Add_Sequence(i_nType, ret);
+ }
+ return ret;
+}
+
+void
+TypeAdmin::lhf_CheckIn_BuiltInType( const char * i_sName,
+ Rid i_nId )
+{
+ DYN BuiltInType &
+ rNewType = *new BuiltInType(i_sName);
+ Storage().Set_Reserved(i_nId, rNewType);
+
+ // Put them into both roots, to catch the syntactically correct
+ // (though unlikely) ::Any, ::long etc.
+ Type_id
+ nId(i_nId);
+ find_ExplicitNameRoom(nXNameRoom_Root).Add_Name(i_sName, nId);
+ find_ExplicitNameRoom(nXNameRoom_Global).Add_Name(i_sName, nId);
+}
+
+ExplicitNameRoom &
+TypeAdmin::lhf_Get_NameRoomRoot_forModuleofOccurrence( Ce_id i_nModuleOfOccurrence )
+{
+ const Type_id *
+ pFound = csv::find_in_map( aMap_ModuleOfOccurrence2NameRoomRoot,
+ i_nModuleOfOccurrence );
+ if (pFound != 0)
+ return find_ExplicitNameRoom(*pFound);
+
+ ExplicitNameRoom &
+ ret = *new ExplicitNameRoom;
+ lhf_Put2Storage_and_AssignId(ret);
+ aMap_ModuleOfOccurrence2NameRoomRoot.insert(std::pair< const Ce_id, Type_id>(i_nModuleOfOccurrence,ret.TypeId()));
+ return ret;
+}
+
+TypeAdmin::TypeAdmin()
+ : pStorage(new Type_Storage),
+ pCes(0), // Needs to be set directly after creation.
+ nXNameRoom_Root( static_cast<ary::Rid>(predefined::type_Root_ofXNameRooms) ),
+ nXNameRoom_Global( static_cast<ary::Rid>(predefined::type_GlobalXNameRoom) ),
+ aMap_ModuleOfOccurrence2NameRoomRoot()
+{
+ DYN ExplicitNameRoom &
+ drRoot = *new ExplicitNameRoom;
+ Storage().Set_Reserved( nXNameRoom_Root.Value(), drRoot );
+
+ DYN ExplicitNameRoom &
+ drGlobal = *new ExplicitNameRoom(String::Null_(), drRoot);
+ Storage().Set_Reserved( nXNameRoom_Global.Value(), drGlobal );
+ drRoot.Add_Name( drGlobal.Name(), nXNameRoom_Global );
+
+ lhf_Setup_BuildInTypes();
+}
+
+TypeAdmin::~TypeAdmin()
+{
+}
+
+void
+TypeAdmin::lhf_Setup_BuildInTypes()
+{
+ lhf_CheckIn_BuiltInType("any", predefined::type_any);
+ lhf_CheckIn_BuiltInType("boolean", predefined::type_boolean);
+ lhf_CheckIn_BuiltInType("byte", predefined::type_byte);
+ lhf_CheckIn_BuiltInType("char", predefined::type_char);
+ lhf_CheckIn_BuiltInType("double", predefined::type_double);
+ lhf_CheckIn_BuiltInType("float", predefined::type_float);
+ lhf_CheckIn_BuiltInType("hyper", predefined::type_hyper);
+ lhf_CheckIn_BuiltInType("long", predefined::type_long);
+ lhf_CheckIn_BuiltInType("short", predefined::type_short);
+ lhf_CheckIn_BuiltInType("string", predefined::type_string);
+ lhf_CheckIn_BuiltInType("type", predefined::type_type);
+ lhf_CheckIn_BuiltInType("void", predefined::type_void);
+ lhf_CheckIn_BuiltInType("unsigned hyper", predefined::type_u_hyper);
+ lhf_CheckIn_BuiltInType("unsigned long", predefined::type_u_long);
+ lhf_CheckIn_BuiltInType("unsigned short", predefined::type_u_short);
+}
+
+const Type &
+TypeAdmin::CheckIn_Type( QualifiedName & i_rFullName,
+ uintt i_nSequenceCount,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> * i_templateParameters )
+{
+ // Look in built-in types:
+ Type_id
+ nType = lhf_findBuiltInType(i_rFullName.LocalName());
+ if (NOT nType.IsValid())
+ { // No built-in type:
+ ExplicitNameRoom &
+ rNameRoom = lhf_CheckIn_XNameRoom(i_rFullName,i_nModuleOfOccurrence);
+ nType = lhf_CheckIn_TypeName( i_rFullName.LocalName(),
+ rNameRoom,
+ i_nModuleOfOccurrence,
+ i_templateParameters );
+ } // endif
+
+ for ( uintt s = 0; s < i_nSequenceCount; ++s )
+ {
+ nType = lhf_CheckIn_Sequence(nType);
+ }
+
+ return Storage()[nType];
+}
+
+TemplateParamType &
+TypeAdmin::Store_TemplateParamType( String i_sName )
+{
+ DYN TemplateParamType &
+ ret = *new TemplateParamType( i_sName );
+ lhf_Put2Storage_and_AssignId(ret);
+ return ret;
+}
+
+const Type &
+TypeAdmin::Find_Type( Type_id i_nType ) const
+{
+ return Storage()[i_nType];
+}
+
+String
+TypeAdmin::Search_LocalNameOf( Type_id i_nType ) const
+{
+ const Type *
+ pType = Storage().Exists(i_nType)
+ ? 0
+ : & Storage()[i_nType];
+ if (pType != 0)
+ {
+ switch (pType->AryClass())
+ {
+ case Ce_Type::class_id:
+ case ExplicitType::class_id:
+ case BuiltInType::class_id:
+ return static_cast< const Named_Type& >(*pType).Name();
+ }
+ }
+ return String::Null_();
+}
+
+Ce_id
+TypeAdmin::Search_CeRelatedTo( Type_id i_nType ) const
+{
+ const Ce_Type *
+ ret = ary_cast<Ce_Type>( & Storage()[i_nType] );
+ return ret != 0
+ ? ret->RelatedCe()
+ : Ce_id_Null();
+}
+
+const ExplicitNameRoom &
+TypeAdmin::Find_XNameRoom( Type_id i_nType ) const
+{
+ return find_ExplicitNameRoom(i_nType);
+}
+
+bool
+TypeAdmin::IsBuiltInOrRelated( const Type & i_rType ) const
+{
+ if ( is_type<BuiltInType>(i_rType) )
+ return true;
+ else
+ {
+ const Type *
+ pType = &i_rType;
+ while (is_type<Sequence>(*pType))
+ {
+ Type_id
+ nt = ary_cast<Sequence>(pType)->RelatedType();
+ if (NOT nt.IsValid())
+ return false;
+ pType = & Storage()[nt];
+ }
+ return is_type<BuiltInType>(*pType);
+ }
+}
+
+
+String
+MakeTemplateName( const String & i_localName,
+ const std::vector<Type_id> & )
+{
+ StreamLock
+ sl(200);
+
+ // This is the simple solution, assuming that there is only
+ // one version of templatisation allowed with a given name.
+ return
+ sl()
+ << i_localName
+ << C_cTemplateDelimiter
+ << c_str;
+}
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/ia_type.hxx b/autodoc/source/ary/idl/ia_type.hxx
new file mode 100644
index 000000000000..050519234626
--- /dev/null
+++ b/autodoc/source/ary/idl/ia_type.hxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IA_TYPE_HXX
+#define ARY_IDL_IA_TYPE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/ip_type.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include "is_type.hxx"
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+class Type_Storage;
+class CeAdmin;
+class TemplateParamType;
+
+
+class TypeAdmin : public TypePilot
+{
+ public:
+ // LIFECYCLE
+ TypeAdmin();
+
+ void Assign_CePilot(
+ CeAdmin & io_rCes );
+ virtual ~TypeAdmin();
+
+ // OPERATIONS
+ TemplateParamType & Store_TemplateParamType(
+ String i_sName );
+ // INQUIRY
+ const Type_Storage &
+ Storage() const;
+ // ACCESS
+ Type_Storage & Storage();
+
+ // INHERITED
+ // Interface TypePilot:
+ virtual const Type &
+ CheckIn_Type(
+ QualifiedName & i_rFullName,
+ uintt i_nSequenceCount,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters );
+ virtual const Type &
+ Find_Type(
+ Type_id i_nType ) const;
+ virtual String Search_LocalNameOf(
+ Type_id i_nType ) const;
+ virtual Ce_id Search_CeRelatedTo(
+ Type_id i_nType ) const;
+ virtual const ExplicitNameRoom &
+ Find_XNameRoom(
+ Type_id i_nType ) const;
+ virtual bool IsBuiltInOrRelated(
+ const Type & i_rType ) const;
+ private:
+ // Locals
+ CeAdmin & my_Ces() const;
+
+ void lhf_Put2Storage_and_AssignId(
+ DYN Type & pass_io_rType );
+
+ ExplicitNameRoom & lhf_CheckIn_XNameRoom(
+ const QualifiedName &
+ i_rName,
+ Ce_id i_nModuleOfOccurrence );
+ Type_id lhf_CheckIn_TypeName(
+ const String & i_sLocalName,
+ ExplicitNameRoom & io_rExplicitNameRoom,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters );
+ Type_id lhf_CheckIn_Sequence(
+ Type_id i_nType );
+ void lhf_CheckIn_BuiltInType(
+ const char * i_sName,
+ Rid i_nId );
+ const ExplicitNameRoom &
+ find_ExplicitNameRoom(
+ Type_id i_nType ) const;
+ ExplicitNameRoom & find_ExplicitNameRoom(
+ Type_id i_nType );
+ ExplicitNameRoom & lhf_Get_NameRoomRoot_forModuleofOccurrence(
+ Ce_id i_nModuleOfOccurrence );
+
+ /// @return Type_id::Null_(), if not found.
+ Type_id lhf_findBuiltInType(
+ const String & i_sName );
+ /// @precond nGlobalNamespace must be valid.
+ void lhf_Setup_BuildInTypes();
+
+ // DATA
+ Type_Storage * pStorage; /// @inv pStorage != 0
+ CeAdmin * pCes; /// @inv pCes != 0
+
+ // Data for saving time:
+ Type_id nXNameRoom_Root; /** @descr This is different from nXNameRoom_Global, because
+ the root of explicit name rooms in code without leading "::" is unknown.
+ */
+ Type_id nXNameRoom_Global;
+
+ // HACK, because this needs to be saved somehow and is not in storage:
+ std::map<Ce_id, Type_id>
+ aMap_ModuleOfOccurrence2NameRoomRoot;
+};
+
+
+
+
+
+// IMPLEMENTATION
+inline const Type_Storage &
+TypeAdmin::Storage() const
+{
+ return *pStorage;
+}
+
+inline Type_Storage &
+TypeAdmin::Storage()
+{
+ return *pStorage;
+}
+
+inline void
+TypeAdmin::Assign_CePilot( CeAdmin & io_rCes )
+{
+ pCes = &io_rCes;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/is_ce.cxx b/autodoc/source/ary/idl/is_ce.cxx
new file mode 100644
index 000000000000..eb4b93a6dfce
--- /dev/null
+++ b/autodoc/source/ary/idl/is_ce.cxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "is_ce.hxx"
+
+// NOT FULLY DEFINED SERVICES
+
+namespace
+{
+ const uintt
+ C_nReservedElements = ary::idl::predefined::ce_MAX; // Skipping "0" and the GlobalNamespace
+}
+
+
+namespace ary
+{
+namespace idl
+{
+
+Ce_Storage * Ce_Storage::pInstance_ = 0;
+
+
+
+
+Ce_Storage::Ce_Storage()
+ : stg::Storage<CodeEntity>(C_nReservedElements)
+{
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Ce_Storage::~Ce_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/is_ce.hxx b/autodoc/source/ary/idl/is_ce.hxx
new file mode 100644
index 000000000000..c1edee0b23ff
--- /dev/null
+++ b/autodoc/source/ary/idl/is_ce.hxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IS_CE_HXX
+#define ARY_IDL_IS_CE_HXX
+
+// BASE CLASSES
+#include <store/s_storage.hxx>
+// USED SERVICES
+#include <ary/idl/i_ce.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** The data base for all ->ary::idl::CodeEntity objects.
+*/
+class Ce_Storage : public ::ary::stg::Storage< ::ary::idl::CodeEntity >
+{
+ public:
+ Ce_Storage();
+ virtual ~Ce_Storage();
+
+ static Ce_Storage & Instance_() { csv_assert(pInstance_ != 0);
+ return *pInstance_; }
+ private:
+ // DATA
+ static Ce_Storage * pInstance_;
+};
+
+
+
+
+namespace predefined
+{
+
+enum E_CodeEntity
+{
+ ce_GlobalNamespace = 1,
+ ce_MAX
+};
+
+} // namespace predefined
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/is_type.cxx b/autodoc/source/ary/idl/is_type.cxx
new file mode 100644
index 000000000000..269286413b17
--- /dev/null
+++ b/autodoc/source/ary/idl/is_type.cxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "is_type.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+
+namespace
+{
+
+const uintt
+ C_nReservedElements = ary::idl::predefined::type_MAX; // Skipping "0" and the built in types.
+}
+
+
+namespace ary
+{
+namespace idl
+{
+
+Type_Storage * Type_Storage::pInstance_ = 0;
+
+
+
+Type_Storage::Type_Storage()
+ : stg::Storage<Type>(C_nReservedElements),
+ aSequenceIndex()
+{
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Type_Storage::~Type_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+void
+Type_Storage::Add_Sequence( Type_id i_nRelatedType,
+ Type_id i_nSequence )
+{
+ aSequenceIndex[i_nRelatedType] = i_nSequence;
+}
+
+Type_id
+Type_Storage::Search_SequenceOf( Type_id i_nRelatedType )
+{
+ return csv::value_from_map(aSequenceIndex, i_nRelatedType);
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/is_type.hxx b/autodoc/source/ary/idl/is_type.hxx
new file mode 100644
index 000000000000..b905602238f0
--- /dev/null
+++ b/autodoc/source/ary/idl/is_type.hxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IS_TYPE_HXX
+#define ARY_IDL_IS_TYPE_HXX
+
+// BASE CLASSES
+#include <store/s_storage.hxx>
+// USED SERVICES
+#include <ary/idl/i_type.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** The data base for all ->ary::idl::CodeEntity objects.
+*/
+class Type_Storage : public ::ary::stg::Storage< ::ary::idl::Type >
+{
+ public:
+ Type_Storage();
+ ~Type_Storage();
+
+
+ void Add_Sequence(
+ Type_id i_nRelatedType,
+ Type_id i_nSequence );
+
+ Type_id Search_SequenceOf(
+ Type_id i_nRelatedType );
+
+ static Type_Storage &
+ Instance_();
+ private:
+ /** value_type.first := id of the base type
+ value_type.second := id of the sequence<base type>
+ */
+ typedef std::map<Type_id,Type_id> Map_Sequences;
+
+ // DATA
+ Map_Sequences aSequenceIndex;
+
+ static Type_Storage *
+ pInstance_;
+};
+
+
+
+namespace predefined
+{
+
+enum E_Type
+{
+ type_Root_ofXNameRooms = 1,
+ type_GlobalXNameRoom,
+ type_any,
+ type_boolean,
+ type_byte,
+ type_char,
+ type_double,
+ type_float,
+ type_hyper,
+ type_long,
+ type_short,
+ type_string,
+ type_type,
+ type_void,
+ type_u_hyper,
+ type_u_long,
+ type_u_short,
+ type_ellipse, // ...
+ type_MAX
+};
+
+} // namespace predefined
+
+
+
+
+// IMPLEMENTATION
+inline Type_Storage &
+Type_Storage::Instance_()
+{
+ csv_assert(pInstance_ != 0);
+ return *pInstance_;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_builtin.cxx b/autodoc/source/ary/idl/it_builtin.cxx
new file mode 100644
index 000000000000..9c543a7bc798
--- /dev/null
+++ b/autodoc/source/ary/idl/it_builtin.cxx
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_builtin.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+BuiltInType::BuiltInType( const char * i_sName )
+ : Named_Type(i_sName)
+{
+}
+
+BuiltInType::~BuiltInType()
+{
+}
+
+ClassId
+BuiltInType::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+BuiltInType::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+BuiltInType::inq_Get_Text( StringVector & , // o_module
+ String & o_name,
+ Ce_id & , // o_nRelatedCe
+ int & , // o_nSequenceCount
+ const Gate & ) const // i_rGate
+{
+ o_name = Name();
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_builtin.hxx b/autodoc/source/ary/idl/it_builtin.hxx
new file mode 100644
index 000000000000..1e3ca7fcc90f
--- /dev/null
+++ b/autodoc/source/ary/idl/it_builtin.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_BUILTIN_HXX
+#define ARY_IDL_IT_BUILTIN_HXX
+
+// BASE CLASSES
+#include "it_named.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** A type defined by the IDL language.
+*/
+class BuiltInType : public Named_Type
+{
+ public:
+ enum E_ClassId { class_id = 2200 };
+
+ // LIFECYCLE
+ BuiltInType(
+ const char * i_sName );
+ virtual ~BuiltInType();
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_ce.cxx b/autodoc/source/ary/idl/it_ce.cxx
new file mode 100644
index 000000000000..1fca8585f941
--- /dev/null
+++ b/autodoc/source/ary/idl/it_ce.cxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_ce.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ip_ce.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+Ce_Type::Ce_Type( Ce_id i_relatedCe,
+ const std::vector<Type_id> * i_templateParameters )
+ : nRelatedCe(i_relatedCe),
+ pTemplateParameters(0)
+{
+ if (i_templateParameters != 0)
+ pTemplateParameters = new std::vector<Type_id>(*i_templateParameters);
+}
+
+Ce_Type::~Ce_Type()
+{
+}
+
+ClassId
+Ce_Type::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+Ce_Type::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+Ce_Type::inq_Get_Text( StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & , // o_nSequenceCount
+ const Gate & i_rGate ) const
+{
+ String sDummyMember;
+
+ const CodeEntity &
+ rCe = i_rGate.Ces().Find_Ce(nRelatedCe);
+ i_rGate.Ces().Get_Text( o_module,
+ o_name,
+ sDummyMember,
+ rCe );
+ o_nRelatedCe = nRelatedCe;
+}
+
+const std::vector<Type_id> *
+Ce_Type::inq_TemplateParameters() const
+{
+ return pTemplateParameters.Ptr();
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_ce.hxx b/autodoc/source/ary/idl/it_ce.hxx
new file mode 100644
index 000000000000..f2de201503d8
--- /dev/null
+++ b/autodoc/source/ary/idl/it_ce.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_CE_HXX
+#define ARY_IDL_IT_CE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_type.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** A named ->Type related to its corresponding
+ ->CodeEntity.
+*/
+class Ce_Type : public Type
+{
+ public:
+ enum E_ClassId { class_id = 2201 };
+
+ // LIFECYCLE
+ Ce_Type(
+ Ce_id i_relatedCe,
+ const std::vector<Type_id> *
+ i_templateParameters );
+ virtual ~Ce_Type();
+
+ // INQUIRY
+ Ce_id RelatedCe() const { return nRelatedCe; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const;
+ virtual const std::vector<Type_id> *
+ inq_TemplateParameters() const;
+ // DATA
+ Ce_id nRelatedCe;
+ Dyn< std::vector<Type_id> >
+ pTemplateParameters;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_explicit.cxx b/autodoc/source/ary/idl/it_explicit.cxx
new file mode 100644
index 000000000000..552abe5b586b
--- /dev/null
+++ b/autodoc/source/ary/idl/it_explicit.cxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_explicit.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include "it_xnameroom.hxx"
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+ExplicitType::ExplicitType( const String & i_sName,
+ Type_id i_nXNameRoom,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters )
+ : Named_Type(i_sName),
+ nXNameRoom(i_nXNameRoom),
+ nModuleOfOccurrence(i_nModuleOfOccurrence),
+ pTemplateParameters(0)
+{
+ if (i_templateParameters != 0)
+ pTemplateParameters = new std::vector<Type_id>(*i_templateParameters);
+}
+
+ExplicitType::~ExplicitType()
+{
+}
+
+ClassId
+ExplicitType::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+ExplicitType::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+ExplicitType::inq_Get_Text( StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const
+{
+ const ExplicitNameRoom &
+ rNameRoom = i_rGate.Types().Find_XNameRoom(nXNameRoom);
+ rNameRoom.Get_Text(o_module,o_name,o_nRelatedCe,o_nSequenceCount,i_rGate);
+
+ o_name = Name();
+}
+
+const std::vector<Type_id> *
+ExplicitType::inq_TemplateParameters() const
+{
+ return pTemplateParameters.Ptr();
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_explicit.hxx b/autodoc/source/ary/idl/it_explicit.hxx
new file mode 100644
index 000000000000..8a3d8d76a24d
--- /dev/null
+++ b/autodoc/source/ary/idl/it_explicit.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_EXPLICIT_HXX
+#define ARY_IDL_IT_EXPLICIT_HXX
+
+// BASE CLASSES
+#include "it_named.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** A named @->Type, not yet related to its corresponding
+ @->CodeEntity.
+*/
+class ExplicitType : public Named_Type
+{
+ public:
+ enum E_ClassId { class_id = 2203 };
+
+ // LIFECYCLE
+ ExplicitType(
+ const String & i_sName,
+ Type_id i_nXNameRoom,
+ Ce_id i_nModuleOfOccurrence,
+ const std::vector<Type_id> *
+ i_templateParameters );
+ virtual ~ExplicitType();
+
+ // INQUIRY
+ Ce_id ModuleOfOccurrence() const
+ { return nModuleOfOccurrence; }
+ Type_id NameRoom() const { return nXNameRoom; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface CppEntity:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const;
+ virtual const std::vector<Type_id> *
+ inq_TemplateParameters() const;
+ // DATA
+ Type_id nXNameRoom; // As written in code.
+ Ce_id nModuleOfOccurrence;
+ Dyn< const std::vector<Type_id> >
+ pTemplateParameters;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_named.hxx b/autodoc/source/ary/idl/it_named.hxx
new file mode 100644
index 000000000000..a1f431368b6d
--- /dev/null
+++ b/autodoc/source/ary/idl/it_named.hxx
@@ -0,0 +1,76 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_NAMED_HXX
+#define ARY_IDL_IT_NAMED_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/idl/i_type.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+
+/** Represents types with a name - in opposite to e.g. sequences,
+ which do not have one.
+*/
+class Named_Type : public Type
+{
+ public:
+ // LIFECYCLE
+ virtual ~Named_Type() {}
+
+ // INQUIRY
+ const String & Name() const { return sName; }
+
+ protected:
+ Named_Type(
+ const String & i_sName )
+ : sName(i_sName) { }
+ private:
+ // DATA
+ String sName;
+};
+
+
+
+} // namespace idl
+} // namespace ary
+
+
+#endif
+
diff --git a/autodoc/source/ary/idl/it_sequence.cxx b/autodoc/source/ary/idl/it_sequence.cxx
new file mode 100644
index 000000000000..144c64ca6c80
--- /dev/null
+++ b/autodoc/source/ary/idl/it_sequence.cxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_sequence.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_type.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+Sequence::Sequence( Type_id i_nRelatedType )
+ : nRelatedType(i_nRelatedType)
+{
+}
+
+Sequence::~Sequence()
+{
+}
+
+ClassId
+Sequence::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+Sequence::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+Sequence::inq_Get_Text( StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const
+{
+ ++o_nSequenceCount;
+
+ i_rGate.Types().Find_Type(nRelatedType)
+ .Get_Text( o_module,
+ o_name,
+ o_nRelatedCe,
+ o_nSequenceCount,
+ i_rGate );
+}
+
+const Type &
+Sequence::inq_FirstEnclosedNonSequenceType(const Gate & i_rGate) const
+{
+ return i_rGate.Types().Find_Type(nRelatedType).FirstEnclosedNonSequenceType(i_rGate);
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_sequence.hxx b/autodoc/source/ary/idl/it_sequence.hxx
new file mode 100644
index 000000000000..c4a29d410fd5
--- /dev/null
+++ b/autodoc/source/ary/idl/it_sequence.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_SEQUENCE_HXX
+#define ARY_IDL_IT_SEQUENCE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_type.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** A sequence (an array of a type).
+*/
+class Sequence : public Type
+{
+ public:
+ enum E_ClassId { class_id = 2202 };
+
+ // LIFECYCLE
+ Sequence(
+ Type_id i_nRelatedType );
+ virtual ~Sequence();
+
+ // INQUIRY
+ Type_id RelatedType() const { return nRelatedType; }
+
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const;
+ virtual const Type &
+ inq_FirstEnclosedNonSequenceType(
+ const Gate & i_rGate ) const;
+ // DATA
+ Type_id nRelatedType;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_tplparam.cxx b/autodoc/source/ary/idl/it_tplparam.cxx
new file mode 100644
index 000000000000..cde0d096c85f
--- /dev/null
+++ b/autodoc/source/ary/idl/it_tplparam.cxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_tplparam.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+
+TemplateParamType::TemplateParamType( const char * i_sName )
+ : Named_Type(i_sName)
+{
+}
+
+TemplateParamType::~TemplateParamType()
+{
+}
+
+ClassId
+TemplateParamType::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+TemplateParamType::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+TemplateParamType::inq_Get_Text( StringVector & , // o_module
+ String & o_name,
+ Ce_id & , // o_nRelatedCe
+ int & , // o_nSequenceCount
+ const Gate & ) const // i_rGate
+{
+ o_name = Name();
+}
+
+
+//************* Implemented default function for idl::Type ********//
+
+const std::vector<Type_id> *
+Type::inq_TemplateParameters() const
+{
+ return 0;
+}
+
+const Type &
+Type::inq_FirstEnclosedNonSequenceType(const Gate & ) const
+{
+ return *this;
+}
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_tplparam.hxx b/autodoc/source/ary/idl/it_tplparam.hxx
new file mode 100644
index 000000000000..608332d6c9de
--- /dev/null
+++ b/autodoc/source/ary/idl/it_tplparam.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_TPLPARAM_HXX
+#define ARY_IDL_IT_TPLPARAM_HXX
+
+// BASE CLASSES
+#include "it_named.hxx"
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** @resp Represents a template type when it is used within the
+ declaring struct.
+*/
+class TemplateParamType : public Named_Type
+{
+ public:
+ enum E_ClassId { class_id = 2205 };
+
+ // LIFECYCLE
+ TemplateParamType(
+ const char * i_sName );
+ virtual ~TemplateParamType();
+
+ Ce_id StructId() const; /// The struct which declares this type.
+ void Set_StructId(
+ Ce_id i_nStruct );
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequenceCount,
+ const Gate & i_rGate ) const;
+ // DATA
+ Ce_id nStruct; /// The struct which declares this type.
+};
+
+
+
+
+// IMPLEMENTATION
+inline Ce_id
+TemplateParamType::StructId() const
+{
+ return nStruct;
+}
+
+inline void
+TemplateParamType::Set_StructId( Ce_id i_nStruct )
+{
+ nStruct = i_nStruct;
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/it_xnameroom.cxx b/autodoc/source/ary/idl/it_xnameroom.cxx
new file mode 100644
index 000000000000..a990fdb7982e
--- /dev/null
+++ b/autodoc/source/ary/idl/it_xnameroom.cxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "it_xnameroom.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/processor.hxx>
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_type.hxx>
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+ExplicitNameRoom::ExplicitNameRoom()
+ : aImpl()
+{
+}
+
+ExplicitNameRoom::ExplicitNameRoom( const String & i_sName,
+ const ExplicitNameRoom & i_rParent )
+ : aImpl( i_sName, i_rParent.aImpl, i_rParent.TypeId() )
+{
+}
+
+ExplicitNameRoom::~ExplicitNameRoom()
+{
+}
+
+ClassId
+ExplicitNameRoom::get_AryClass() const
+{
+ return class_id;
+}
+
+void
+ExplicitNameRoom::do_Accept( csv::ProcessorIfc & io_processor ) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+void
+ExplicitNameRoom::inq_Get_Text( StringVector & o_module,
+ String & , // o_name
+ Ce_id & , // o_nRelatedCe
+ int & , // o_nSequemceCount
+ const Gate & ) const // i_rGate
+{
+ StringVector::const_iterator it = NameChain_Begin();
+ if ( it != NameChain_End()
+ ? (*it).empty()
+ : false )
+ { // Don't put out the root global namespace
+ ++it;
+ }
+
+ for ( ;
+ it != NameChain_End();
+ ++it )
+ {
+ o_module.push_back(*it);
+ }
+}
+
+
+
+
+} // namespace idl
+} // namespace ary
diff --git a/autodoc/source/ary/idl/it_xnameroom.hxx b/autodoc/source/ary/idl/it_xnameroom.hxx
new file mode 100644
index 000000000000..ea9513605cb6
--- /dev/null
+++ b/autodoc/source/ary/idl/it_xnameroom.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_IT_XNAMEROOM_HXX
+#define ARY_IDL_IT_XNAMEROOM_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_type.hxx>
+#include <nametreenode.hxx>
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** A namespace for ->Type s, as they are explicitely written in code.
+
+ The search/identification string is usually the local name of
+ the Type. But for templated structs, the search string has this
+ pattern:
+ <LocalName> '<' <StringOfTemplateTypeId>
+*/
+class ExplicitNameRoom : public Type
+{
+ public:
+ enum E_ClassId { class_id = 2204 };
+
+ // LIFECYCLE
+ ExplicitNameRoom();
+ ExplicitNameRoom(
+ const String & i_sName,
+ const ExplicitNameRoom &
+ i_rParent );
+ virtual ~ExplicitNameRoom();
+
+ // OPERATIONS
+ /** @param i_sSearchString
+ A local type name usually.
+ For templated types see class docu.
+ @see ExplicitNameRoom
+ */
+ void Add_Name(
+ const String & i_sSearchString,
+ Type_id i_nId )
+ { aImpl.Add_Name(i_sSearchString,i_nId); }
+ // INQUIRY
+ const String & Name() const { return aImpl.Name(); }
+ intt Depth() const { return aImpl.Depth(); }
+ void Get_FullName(
+ StringVector & o_rText,
+ Ce_idList * o_pRelatedCes,
+ const Gate & i_rGate ) const;
+ bool IsAbsolute() const { return Depth() > 0
+ ? (*NameChain_Begin()).empty()
+ : false; }
+ /** @param i_sSearchString
+ A local type name usually.
+ For templated types see class docu.
+ @see ExplicitNameRoom
+ */
+ Type_id Search_Name(
+ const String & i_sSearchString ) const
+ { return aImpl.Search_Name(i_sSearchString); }
+
+ StringVector::const_iterator
+ NameChain_Begin() const
+ { return aImpl.NameChain_Begin(); }
+ StringVector::const_iterator
+ NameChain_End() const
+ { return aImpl.NameChain_End(); }
+ private:
+ // Interface csv::ConstProcessorClient:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ // Interface Object:
+ virtual ClassId get_AryClass() const;
+
+ // Interface Type:
+ virtual void inq_Get_Text(
+ StringVector & o_module,
+ String & o_name,
+ Ce_id & o_nRelatedCe,
+ int & o_nSequemceCount,
+ const Gate & i_rGate ) const;
+ // DATA
+ NameTreeNode<Type_id>
+ aImpl;
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/idl/makefile.mk b/autodoc/source/ary/idl/makefile.mk
new file mode 100644
index 000000000000..bf260e2c521e
--- /dev/null
+++ b/autodoc/source/ary/idl/makefile.mk
@@ -0,0 +1,87 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_idl
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/i_attribute.obj \
+ $(OBJ)$/i_ce.obj \
+ $(OBJ)$/i_ce2s.obj \
+ $(OBJ)$/i_comrela.obj \
+ $(OBJ)$/i_constant.obj \
+ $(OBJ)$/i_constgroup.obj \
+ $(OBJ)$/i_enum.obj \
+ $(OBJ)$/i_enumvalue.obj \
+ $(OBJ)$/i_exception.obj \
+ $(OBJ)$/i_function.obj \
+ $(OBJ)$/i_interface.obj \
+ $(OBJ)$/i_module.obj \
+ $(OBJ)$/i_namelookup.obj \
+ $(OBJ)$/i_param.obj \
+ $(OBJ)$/i_property.obj \
+ $(OBJ)$/i_reposypart.obj \
+ $(OBJ)$/i_service.obj \
+ $(OBJ)$/i_singleton.obj \
+ $(OBJ)$/i_siservice.obj \
+ $(OBJ)$/i_sisingleton.obj \
+ $(OBJ)$/i_struct.obj \
+ $(OBJ)$/i_structelem.obj \
+ $(OBJ)$/i_traits.obj \
+ $(OBJ)$/i_typedef.obj \
+ $(OBJ)$/i2s_calculator.obj \
+ $(OBJ)$/ia_ce.obj \
+ $(OBJ)$/ia_type.obj \
+ $(OBJ)$/is_ce.obj \
+ $(OBJ)$/is_type.obj \
+ $(OBJ)$/it_builtin.obj \
+ $(OBJ)$/it_ce.obj \
+ $(OBJ)$/it_explicit.obj \
+ $(OBJ)$/it_sequence.obj \
+ $(OBJ)$/it_tplparam.obj \
+ $(OBJ)$/it_xnameroom.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/autodoc/source/ary/inc/cpp_internalgate.hxx b/autodoc/source/ary/inc/cpp_internalgate.hxx
new file mode 100644
index 000000000000..723e019cb4f6
--- /dev/null
+++ b/autodoc/source/ary/inc/cpp_internalgate.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_INTERNALGATE_HXX
+#define ARY_CPP_INTERNALGATE_HXX
+
+// BASE CLASSES
+#include <ary/cpp/c_gate.hxx>
+
+namespace ary
+{
+ class RepositoryCenter;
+}
+
+
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+/** Provides access to the ->cpp::RepositoryPartition as far as is needed
+ by the ->RepositoryCenter.
+*/
+class InternalGate : public ::ary::cpp::Gate
+{
+ public:
+ virtual ~InternalGate() {}
+
+ static DYN InternalGate &
+ Create_Partition_(
+ RepositoryCenter & i_center );
+};
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/cross_refs.hxx b/autodoc/source/ary/inc/cross_refs.hxx
new file mode 100644
index 000000000000..8f6b98aabc05
--- /dev/null
+++ b/autodoc/source/ary/inc/cross_refs.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CROSS_REFS_HXX
+#define ARY_CROSS_REFS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include "sorted_idset.hxx"
+
+
+template <class VALUE_LIST, class TYPES>
+class CrossReferences
+{
+ public:
+ typedef TYPES::element_type element;
+
+ /// Checks for double occurences
+ void Add(
+ VALUE_LIST::index_type
+ i_nPosition
+ const element & i_rElem );
+ void Get_List(
+ Dyn_StdConstIterator<element> &
+ o_rResult ) const;
+ private:
+ SortedIdSet<TYPES> aData[VALUE_LIST::max];
+};
+
+
+
+namespace ary
+{
+
+template <class TYPES>
+class SortedIdSet
+{
+ public:
+ typedef typename TYPES::element_type element;
+ typedef typename TYPES::sort_type sorter;
+ typedef typename TYPES::find_type finder;
+
+ SortedIdSet(
+ const finder & i_rFinder )
+ : aSorter(i_rFinder),
+ aData(aSorter) {}
+ ~SortedIdSet() {}
+
+ void Get_Begin(
+ Dyn_StdConstIterator<element> &
+ o_rResult )
+ { o_rResult = new SCI_Set<FINDER>(aData); }
+ void Add(
+ const element & i_rElement )
+ { aData.insert(i_rElement); }
+
+ private:
+ typedef std::set<element, sorter> Set;
+
+ // DATA
+ sorter aSorter;
+ Set aData;
+};
+
+
+} // namespace ary
+
+
+
+#endif
+
diff --git a/autodoc/source/ary/inc/idl_internalgate.hxx b/autodoc/source/ary/inc/idl_internalgate.hxx
new file mode 100644
index 000000000000..783971f7295f
--- /dev/null
+++ b/autodoc/source/ary/inc/idl_internalgate.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDL_INTERNALGATE_HXX
+#define ARY_IDL_INTERNALGATE_HXX
+
+// BASE CLASSES
+#include <ary/idl/i_gate.hxx>
+
+namespace ary
+{
+ class RepositoryCenter;
+}
+
+
+
+
+namespace ary
+{
+namespace idl
+{
+
+
+/** Provides access to the ->idl::RepositoryPartition as far as is needed
+ by the ->RepositoryCenter.
+*/
+class InternalGate : public ::ary::idl::Gate
+{
+ public:
+ virtual ~InternalGate() {}
+
+ static DYN InternalGate &
+ Create_Partition_(
+ RepositoryCenter & i_center );
+};
+
+
+
+
+} // namespace idl
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/idsort.hxx b/autodoc/source/ary/inc/idsort.hxx
new file mode 100644
index 000000000000..d0bbaa37e7a2
--- /dev/null
+++ b/autodoc/source/ary/inc/idsort.hxx
@@ -0,0 +1,52 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_IDSORT_HXX
+#define ARY_IDSORT_HXX
+
+
+/** A compare function that sorts ids of repository entities in the same
+ storage.
+
+ @see ::ary::SortedIds
+*/
+template<class COMPARE>
+struct IdSorter
+{
+ bool operator()(
+ typename COMPARE::id_type
+ i_1,
+ typename COMPARE::id_type
+ i_2 ) const
+ { return COMPARE::Lesser_(
+ COMPARE::KeyOf_(COMPARE::EntityOf_(i_1)),
+ COMPARE::KeyOf_(COMPARE::EntityOf_(i_2)) );
+ }
+};
+
+
+#endif
diff --git a/autodoc/source/ary/inc/loc_internalgate.hxx b/autodoc/source/ary/inc/loc_internalgate.hxx
new file mode 100644
index 000000000000..13409e6364de
--- /dev/null
+++ b/autodoc/source/ary/inc/loc_internalgate.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_INTERNALGATE_HXX
+#define ARY_LOC_INTERNALGATE_HXX
+
+// USED SERVICES
+
+namespace ary
+{
+namespace loc
+{
+ class LocationPilot;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Additional access to locations for the repository implementation.
+*/
+class InternalGate
+{
+ public:
+
+ static DYN LocationPilot &
+ Create_Locations_();
+};
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/nametreenode.hxx b/autodoc/source/ary/inc/nametreenode.hxx
new file mode 100644
index 000000000000..c7d77faaab34
--- /dev/null
+++ b/autodoc/source/ary/inc/nametreenode.hxx
@@ -0,0 +1,210 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_NAMETREENODE_HXX
+#define ARY_NAMETREENODE_HXX
+// KORR_DEPRECATED_3.0
+// Replace by ::ary::symtree::Node.
+
+// USED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <sci_impl.hxx>
+// HACK because of SunPro 5.2 compiler bug with templates:
+#include <ary/idl/i_module.hxx>
+
+
+
+
+namespace ary
+{
+
+
+/** Implementation of a node in a namespace-tree.
+*/
+template<class ITEM_ID>
+class NameTreeNode
+{
+ public:
+ typedef NameTreeNode self;
+ typedef ITEM_ID item_id;
+ typedef StringVector::const_iterator name_iterator;
+ typedef std::map<String, item_id> Map_LocalNames;
+
+ // LIFECYCLE
+ NameTreeNode();
+ NameTreeNode(
+ const String & i_sName,
+ const self & i_rParent,
+ ITEM_ID i_nParentId );
+ virtual ~NameTreeNode();
+
+ // OPERATIONS
+ void Add_Name(
+ const String & i_sName,
+ item_id i_nId );
+ // INQUIRY
+ const String & Name() const { return Depth() > 0 ? aCompleteNameChain.back() : String::Null_(); }
+ item_id Parent() const { return nParent; }
+ intt Depth() const { return aCompleteNameChain.size(); }
+
+ bool IsEquivalent(
+ const NameTreeNode &
+ i_rNode ) const;
+ name_iterator NameChain_Begin() const { return aCompleteNameChain.begin(); }
+ name_iterator NameChain_End() const { return aCompleteNameChain.end(); }
+
+ item_id Search_Name(
+ const String & i_sName ) const;
+ void Get_Names(
+ Dyn_StdConstIterator<ITEM_ID> &
+ o_rResult ) const;
+ const Map_LocalNames &
+ LocalNames() const { return aLocalNames; }
+ private:
+ // Locals
+ Map_LocalNames & LocalNames() { return aLocalNames; }
+
+ // DATA
+ Map_LocalNames aLocalNames;
+ StringVector aCompleteNameChain;
+ item_id nParent;
+};
+
+
+
+
+// IMPLEMENTATION
+template<class ITEM_ID>
+NameTreeNode<ITEM_ID>::NameTreeNode()
+ : aLocalNames(),
+ aCompleteNameChain(),
+ nParent(0)
+{
+}
+
+template<class ITEM_ID>
+NameTreeNode<ITEM_ID>::NameTreeNode( const String & i_sName,
+ const self & i_rParent,
+ ITEM_ID i_nParentId )
+ : aLocalNames(),
+ aCompleteNameChain(),
+ nParent(i_nParentId)
+{
+ aCompleteNameChain.reserve(i_rParent.Depth()+1);
+ for ( name_iterator it = i_rParent.NameChain_Begin();
+ it != i_rParent.NameChain_End();
+ ++it )
+ {
+ aCompleteNameChain.push_back(*it);
+ }
+ aCompleteNameChain.push_back(i_sName);
+}
+
+template<class ITEM_ID>
+NameTreeNode<ITEM_ID>::~NameTreeNode()
+{
+}
+
+
+template<class ITEM_ID>
+inline void
+NameTreeNode<ITEM_ID>::Add_Name( const String & i_sName,
+ item_id i_nId )
+{
+ LocalNames().insert( typename Map_LocalNames::value_type(i_sName, i_nId) );
+}
+
+
+template<class ITEM_ID>
+inline bool
+NameTreeNode<ITEM_ID>::IsEquivalent( const NameTreeNode & i_rNode ) const
+{
+ return aCompleteNameChain == i_rNode.aCompleteNameChain;
+}
+
+template<class ITEM_ID>
+inline ITEM_ID
+NameTreeNode<ITEM_ID>::Search_Name( const String & i_sName ) const
+{
+ return csv::value_from_map(LocalNames(),i_sName, ITEM_ID(0));
+}
+
+template<class ITEM_ID>
+inline void
+NameTreeNode<ITEM_ID>::Get_Names( Dyn_StdConstIterator<ITEM_ID> & o_rResult ) const
+{
+ o_rResult = new SCI_DataInMap<String,item_id>(LocalNames());
+}
+
+
+// HACK because of SunPro 5.2 compiler bug with templates:
+// ary::idl::Module has to be "FIND_NODE::node_type"
+// must be solved later somehow.
+template <class FIND_NODE>
+typename FIND_NODE::id_type
+Search_SubTree( const ary::idl::Module & i_rStart,
+ const FIND_NODE & i_rNodeFinder )
+{
+ const ary::idl::Module *
+ ret = &i_rStart;
+
+ for ( StringVector::const_iterator it = i_rNodeFinder.Begin();
+ it != i_rNodeFinder.End() AND ret != 0;
+ ++it )
+ {
+ ret = i_rNodeFinder(ret->Search_Name(*it));
+ }
+
+ typename FIND_NODE::id_type nret(0);
+ return ret != 0
+ ? ret->Search_Name(i_rNodeFinder.Name2Search())
+ : nret;
+}
+
+template <class FIND_NODE>
+typename FIND_NODE::id_type
+Search_SubTree_UpTillRoot( const ary::idl::Module & i_rStart,
+ const FIND_NODE & i_rNodeFinder )
+{
+ typename FIND_NODE::id_type
+ ret(0);
+ for ( const ary::idl::Module * start = &i_rStart;
+ start != 0 AND NOT ret.IsValid();
+ start = i_rNodeFinder(start->Owner()) )
+ {
+ ret = Search_SubTree( *start,
+ i_rNodeFinder );
+ }
+ return ret;
+}
+// END Hack for SunPro 5.2 compiler bug.
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/reposy.hxx b/autodoc/source/ary/inc/reposy.hxx
new file mode 100644
index 000000000000..6bdfd907ce04
--- /dev/null
+++ b/autodoc/source/ary/inc/reposy.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_REPOSY_HXX
+#define ARY_REPOSY_HXX
+
+// BASE CLASSES
+#include <ary/ary.hxx>
+// USED SERVICES
+#include <cosv/ploc_dir.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class InternalGate;
+}
+namespace idl
+{
+ class InternalGate;
+}
+} // namespace ary
+
+
+
+
+namespace ary
+{
+
+
+/** Implements ::ary::Repository.
+
+ @see Repository
+*/
+
+class RepositoryCenter : public ::ary::Repository
+{
+ public:
+ // LIFECYCLE
+ RepositoryCenter();
+ virtual ~RepositoryCenter();
+
+ // INHERITED
+ // Interface Repository:
+ virtual const cpp::Gate & Gate_Cpp() const;
+ virtual const idl::Gate & Gate_Idl() const;
+ virtual const String & Title() const;
+ virtual cpp::Gate & Gate_Cpp();
+ virtual idl::Gate & Gate_Idl();
+ virtual void Set_Title(const String & i_sName );
+
+ private:
+ // DATA
+ String sDisplayedName; /// Name to be displayed for human users.
+ csv::ploc::Directory
+ aLocation;
+ Dyn<cpp::InternalGate>
+ pCppPartition;
+ Dyn<idl::InternalGate>
+ pIdlPartition;
+};
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/sci_impl.hxx b/autodoc/source/ary/inc/sci_impl.hxx
new file mode 100644
index 000000000000..26c5236904b9
--- /dev/null
+++ b/autodoc/source/ary/inc/sci_impl.hxx
@@ -0,0 +1,413 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SCI_IMPL_HXX
+#define ARY_SCI_IMPL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/stdconstiter.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+
+
+//************************* SCI_Vector **********************************//
+
+template <class ELEM>
+class SCI_Vector : public StdConstIterator<ELEM>
+{
+ public:
+ typedef std::vector<ELEM> source;
+ typedef typename source::const_iterator source_iterator;
+
+ SCI_Vector(
+ const source & i_rSource );
+ virtual ~SCI_Vector();
+
+ private:
+ // Interface StdConstIterator<>:
+ virtual void do_Advance();
+ virtual const ELEM *
+ inq_CurElement() const;
+ virtual bool inq_IsSorted() const;
+
+ // DATA
+ source_iterator itRun;
+ source_iterator itEnd;
+};
+
+
+
+//************************* SCI_Map **********************************//
+
+template <class KEY, class VALUE>
+class SCI_Map : public StdConstIterator< typename std::map<KEY,VALUE>::value_type >
+{
+ public:
+ typedef std::map<KEY,VALUE> source;
+ typedef typename source::const_iterator source_iterator;
+
+ SCI_Map(
+ const source & i_rSource );
+ virtual ~SCI_Map();
+
+ private:
+ // Interface StdConstIterator<>:
+ virtual void do_Advance();
+ virtual const typename std::map<KEY,VALUE>::value_type *
+ inq_CurElement() const;
+ virtual bool inq_IsSorted() const;
+
+ // DATA
+ source_iterator itRun;
+ source_iterator itEnd;
+};
+
+
+//************************* SCI_MultiMap **********************************//
+
+template <class KEY, class VALUE>
+class SCI_MultiMap : public StdConstIterator< typename std::multimap<KEY,VALUE>::value_type >
+{
+ public:
+ typedef std::multimap<KEY,VALUE> source;
+ typedef typename source::const_iterator source_iterator;
+
+ SCI_MultiMap(
+ const source & i_rSource );
+ SCI_MultiMap(
+ source_iterator i_begin,
+ source_iterator i_end );
+ virtual ~SCI_MultiMap();
+
+ private:
+ // Interface StdConstIterator<>:
+ virtual void do_Advance();
+ virtual const typename std::multimap<KEY,VALUE>::value_type *
+ inq_CurElement() const;
+ virtual bool inq_IsSorted() const;
+
+ // DATA
+ source_iterator itRun;
+ source_iterator itEnd;
+};
+
+
+
+//************************* SCI_Set **********************************//
+
+
+template <class TYPES>
+class SCI_Set : public StdConstIterator<typename TYPES::element_type>
+{
+ public:
+ typedef typename TYPES::element_type element;
+ typedef typename TYPES::sort_type sorter;
+ typedef std::set<element, sorter> source;
+ typedef typename source::const_iterator source_iterator;
+
+ SCI_Set(
+ const source & i_rSource );
+ virtual ~SCI_Set();
+
+ private:
+ // Interface StdConstIterator<>:
+ virtual void do_Advance();
+ virtual const element *
+ inq_CurElement() const;
+ virtual bool inq_IsSorted() const;
+
+ // DATA
+ source_iterator itRun;
+ source_iterator itEnd;
+};
+
+//************************* SCI_DataInMap **********************************//
+
+template <class KEY, class VALUE>
+class SCI_DataInMap : public StdConstIterator<VALUE>
+{
+ public:
+ typedef std::map<KEY,VALUE> source;
+ typedef typename source::const_iterator source_iterator;
+
+ SCI_DataInMap(
+ const source & i_rSource );
+ virtual ~SCI_DataInMap();
+
+ private:
+ // Interface StdConstIterator<>:
+ virtual void do_Advance();
+ virtual const VALUE *
+ inq_CurElement() const;
+ virtual bool inq_IsSorted() const;
+
+ // DATA
+ source_iterator itRun;
+ source_iterator itEnd;
+};
+
+
+
+
+
+//********************************************************************//
+
+
+// IMPLEMENTATION
+
+template <class ELEM>
+SCI_Vector<ELEM>::SCI_Vector( const source & i_rSource )
+ : itRun(i_rSource.begin()),
+ itEnd(i_rSource.end())
+{
+}
+
+template <class ELEM>
+SCI_Vector<ELEM>::~SCI_Vector()
+{
+}
+
+
+template <class ELEM>
+void
+SCI_Vector<ELEM>::do_Advance()
+{
+ if (itRun != itEnd)
+ ++itRun;
+}
+
+template <class ELEM>
+const ELEM *
+SCI_Vector<ELEM>::inq_CurElement() const
+{
+ if (itRun != itEnd)
+ return &(*itRun);
+ return 0;
+}
+
+template <class ELEM>
+bool
+SCI_Vector<ELEM>::inq_IsSorted() const
+{
+ return false;
+}
+
+
+
+
+template <class KEY, class VALUE>
+SCI_Map<KEY,VALUE>::SCI_Map( const source & i_rSource )
+ : itRun(i_rSource.begin()),
+ itEnd(i_rSource.end())
+{
+}
+
+template <class KEY, class VALUE>
+SCI_Map<KEY,VALUE>::~SCI_Map()
+{
+}
+
+template <class KEY, class VALUE>
+void
+SCI_Map<KEY,VALUE>::do_Advance()
+{
+ if (itRun != itEnd)
+ ++itRun;
+}
+
+template <class KEY, class VALUE>
+const typename std::map<KEY,VALUE>::value_type *
+SCI_Map<KEY,VALUE>::inq_CurElement() const
+{
+ if (itRun != itEnd)
+ return &(*itRun);
+ return 0;
+}
+
+
+template <class KEY, class VALUE>
+bool
+SCI_Map<KEY,VALUE>::inq_IsSorted() const
+{
+ return true;
+}
+
+
+
+
+
+
+
+template <class KEY, class VALUE>
+SCI_MultiMap<KEY,VALUE>::SCI_MultiMap( const source & i_rSource )
+ : itRun(i_rSource.begin()),
+ itEnd(i_rSource.end())
+{
+}
+
+template <class KEY, class VALUE>
+SCI_MultiMap<KEY,VALUE>::SCI_MultiMap( source_iterator i_begin,
+ source_iterator i_end )
+ : itRun(i_begin),
+ itEnd(i_end)
+{
+}
+
+template <class KEY, class VALUE>
+SCI_MultiMap<KEY,VALUE>::~SCI_MultiMap()
+{
+}
+
+template <class KEY, class VALUE>
+void
+SCI_MultiMap<KEY,VALUE>::do_Advance()
+{
+ if (itRun != itEnd)
+ ++itRun;
+}
+
+template <class KEY, class VALUE>
+const typename std::multimap<KEY,VALUE>::value_type *
+SCI_MultiMap<KEY,VALUE>::inq_CurElement() const
+{
+ if (itRun != itEnd)
+ return &(*itRun);
+ return 0;
+}
+
+
+template <class KEY, class VALUE>
+bool
+SCI_MultiMap<KEY,VALUE>::inq_IsSorted() const
+{
+ return true;
+}
+
+
+
+
+
+
+
+
+template <class ELEM>
+SCI_Set<ELEM>::SCI_Set( const source & i_rSource )
+ : itRun(i_rSource.begin()),
+ itEnd(i_rSource.end())
+{
+}
+
+template <class ELEM>
+SCI_Set<ELEM>::~SCI_Set()
+{
+}
+
+
+template <class ELEM>
+void
+SCI_Set<ELEM>::do_Advance()
+{
+ if (itRun != itEnd)
+ ++itRun;
+}
+
+template <class ELEM>
+const typename SCI_Set<ELEM>::element *
+SCI_Set<ELEM>::inq_CurElement() const
+{
+ if (itRun != itEnd)
+ return &(*itRun);
+ return 0;
+}
+
+template <class ELEM>
+bool
+SCI_Set<ELEM>::inq_IsSorted() const
+{
+ return true;
+}
+
+
+
+
+
+
+
+template <class KEY, class VALUE>
+SCI_DataInMap<KEY,VALUE>::SCI_DataInMap( const source & i_rSource )
+ : itRun(i_rSource.begin()),
+ itEnd(i_rSource.end())
+{
+}
+
+template <class KEY, class VALUE>
+SCI_DataInMap<KEY,VALUE>::~SCI_DataInMap()
+{
+}
+
+template <class KEY, class VALUE>
+void
+SCI_DataInMap<KEY,VALUE>::do_Advance()
+{
+ if (itRun != itEnd)
+ ++itRun;
+}
+
+template <class KEY, class VALUE>
+const VALUE *
+SCI_DataInMap<KEY,VALUE>::inq_CurElement() const
+{
+ if (itRun != itEnd)
+ return &(*itRun).second;
+ return 0;
+}
+
+
+template <class KEY, class VALUE>
+bool
+SCI_DataInMap<KEY,VALUE>::inq_IsSorted() const
+{
+ return true;
+}
+
+
+
+
+
+
+
+} // namespace ary
+
+
+#endif
diff --git a/autodoc/source/ary/inc/slots.hxx b/autodoc/source/ary/inc/slots.hxx
new file mode 100644
index 000000000000..f5c449f7a30a
--- /dev/null
+++ b/autodoc/source/ary/inc/slots.hxx
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SLOTS_HXX
+#define ARY_SLOTS_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/ceslot.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/ary_disp.hxx>
+#include <ary/types.hxx>
+#include <ary/sequentialids.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+
+
+namespace ary
+{
+
+
+class Slot_Null : public Slot
+{
+ public:
+ virtual ~Slot_Null();
+
+ virtual void StoreAt(
+ Display & o_rDestination ) const;
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const;
+};
+
+class Slot_MapLocalCe : public Slot
+{
+ public:
+ Slot_MapLocalCe(
+ const cpp::Map_LocalCe & i_rData );
+ virtual ~Slot_MapLocalCe();
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const;
+ // DATA
+ const cpp::Map_LocalCe *
+ pData;
+};
+
+class Slot_MapOperations : public Slot
+{
+ public:
+ Slot_MapOperations(
+ const std::multimap<String, cpp::Ce_id> &
+ i_rData );
+ virtual ~Slot_MapOperations();
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const;
+ // DATA
+ const std::multimap<String, cpp::Ce_id> *
+ pData;
+};
+
+class Slot_ListLocalCe : public Slot
+{
+ public:
+ Slot_ListLocalCe(
+ const cpp::List_LocalCe &
+ i_rData );
+ virtual ~Slot_ListLocalCe();
+
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const;
+ // DATA
+ const cpp::List_LocalCe *
+ pData;
+};
+
+template <class ID>
+class Slot_SequentialIds : public Slot
+{
+ public:
+ Slot_SequentialIds(
+ const SequentialIds<ID> &
+ i_rData )
+ : pData(&i_rData) {}
+ virtual ~Slot_SequentialIds();
+
+ virtual uintt Size() const;
+
+ private:
+ virtual void StoreEntries(
+ Display & o_rDestination ) const;
+ // DATA
+ const SequentialIds<ID> *
+ pData;
+};
+
+
+template <class ID>
+Slot_SequentialIds<ID>::~Slot_SequentialIds()
+{
+}
+
+template <class ID>
+uintt
+Slot_SequentialIds<ID>::Size() const
+{
+ return pData->Size();
+}
+
+template <class ID>
+void
+Slot_SequentialIds<ID>::StoreEntries( Display & o_rDestination ) const
+{
+ for ( typename SequentialIds<ID>::const_iterator it = pData->Begin();
+ it != pData->End();
+ ++it )
+ {
+ o_rDestination.DisplaySlot_Rid( (*it).Value() );
+ }
+}
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/sorted_idset.hxx b/autodoc/source/ary/inc/sorted_idset.hxx
new file mode 100644
index 000000000000..93c00a1091ca
--- /dev/null
+++ b/autodoc/source/ary/inc/sorted_idset.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SORTED_IDSET_HXX
+#define ARY_SORTED_IDSET_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <set>
+ // PARAMETERS
+#include "csi_impl.hxx"
+
+
+template <class XY> class SortedIdSet;
+
+class Interface_2s
+{
+ public:
+ /// Checks for double occurences
+ void Add_ExportingService(
+ Ce_id i_nId );
+ void Get_ExportingServices(
+ Dyn_StdConstIterator<Ce_id> &
+ o_rResult ) const;
+ private:
+ Dyn<SortedIdSet> pExportingServices;
+};
+
+
+
+namespace ary
+{
+
+template <class TYPES>
+class SortedIdSet
+{
+ public:
+ typedef typename TYPES::element_type element;
+ typedef typename TYPES::sort_type sorter;
+ typedef typename TYPES::find_type finder;
+
+ SortedIdSet(
+ const finder & i_rFinder )
+ : aSorter(i_rFinder),
+ aData(aSorter) {}
+ ~SortedIdSet() {}
+
+ void Get_Begin(
+ Dyn_StdConstIterator<element> &
+ o_rResult )
+ { o_rResult = new SCI_Set<FINDER>(aData); }
+ void Add(
+ const element & i_rElement )
+ { aData.insert(i_rElement); }
+
+ private:
+ typedef std::set<element, sorter> Set;
+
+ // DATA
+ sorter aSorter;
+ Set aData;
+};
+
+
+} // namespace ary
+
+
+
+#endif
+
diff --git a/autodoc/source/ary/inc/sortedids.hxx b/autodoc/source/ary/inc/sortedids.hxx
new file mode 100644
index 000000000000..9bebaa9b19a5
--- /dev/null
+++ b/autodoc/source/ary/inc/sortedids.hxx
@@ -0,0 +1,237 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_SORTEDIDS_HXX
+#define ARY_SORTEDIDS_HXX
+
+
+// USED SERVICES
+#include <algorithm>
+#include <cosv/tpl/range.hxx>
+
+
+
+
+namespace ary
+{
+
+
+/** Implementation of a set of children to an entity in the Autodoc
+ repository. The children are sorted.
+
+ @tpl COMPARE
+ Needs to provide types:
+ entity_base_type
+ id_type
+ key_type
+
+ and functions:
+ static entity_base_type &
+ EntityOf_(
+ id_type i_id );
+ static const key_type &
+ KeyOf_(
+ const entity_type & i_entity );
+ static bool Lesser_(
+ const key_type & i_1,
+ const key_type & i_2 );
+*/
+template<class COMPARE>
+class SortedIds
+{
+ public:
+ typedef typename COMPARE::id_type element_t;
+ typedef typename COMPARE::key_type key_t;
+ typedef std::vector<element_t> data_t;
+ typedef typename data_t::const_iterator const_iterator;
+ typedef typename data_t::iterator iterator;
+ typedef csv::range<const_iterator> search_result_t;
+
+ // LIFECYCLE
+ explicit SortedIds(
+ std::size_t i_reserve = 0 );
+ ~SortedIds();
+
+ // OPERATIONS
+ void Add(
+ element_t i_elem );
+ // INQUIRY
+ const_iterator Begin() const;
+ const_iterator End() const;
+
+ element_t Search(
+ const key_t & i_key ) const;
+ search_result_t SearchAll(
+ const key_t & i_key ) const;
+ const_iterator LowerBound(
+ const key_t & i_key ) const;
+
+ private:
+ typedef typename COMPARE::entity_base_type entity_t;
+
+ // Locals
+ iterator LowerBound(
+ const key_t & i_key );
+
+ static const key_t &
+ KeyOf_(
+ element_t i_child );
+ template <class ITER>
+ static ITER impl_LowerBound_(
+ ITER i_begin,
+ ITER i_end,
+ const key_t & i_key );
+
+ // DATA
+ data_t aData;
+};
+
+
+
+
+// IMPLEMENTATION
+template<class COMPARE>
+inline const typename SortedIds<COMPARE>::key_t &
+SortedIds<COMPARE>::KeyOf_(element_t i_child)
+{
+ return COMPARE::KeyOf_(COMPARE::EntityOf_(i_child));
+}
+
+template<class COMPARE>
+SortedIds<COMPARE>::SortedIds(std::size_t i_reserve)
+ : aData()
+{
+ if (i_reserve > 0)
+ aData.reserve(i_reserve);
+}
+
+template<class COMPARE>
+SortedIds<COMPARE>::~SortedIds()
+{
+}
+
+template<class COMPARE>
+void
+SortedIds<COMPARE>::Add(element_t i_elem)
+{
+ aData.insert( LowerBound( KeyOf_(i_elem) ),
+ i_elem );
+}
+
+template<class COMPARE>
+inline typename SortedIds<COMPARE>::const_iterator
+SortedIds<COMPARE>::Begin() const
+{
+ return aData.begin();
+}
+
+template<class COMPARE>
+inline typename SortedIds<COMPARE>::const_iterator
+SortedIds<COMPARE>::End() const
+{
+ return aData.end();
+}
+
+template<class COMPARE>
+typename SortedIds<COMPARE>::element_t
+SortedIds<COMPARE>::Search(const key_t & i_key) const
+{
+ const_iterator
+ ret = LowerBound(i_key);
+ return ret != aData.end() AND NOT COMPARE::Lesser_(i_key, KeyOf_(*ret))
+ ? *ret
+ : element_t(0);
+}
+
+template<class COMPARE>
+typename SortedIds<COMPARE>::search_result_t
+SortedIds<COMPARE>::SearchAll(const key_t & i_key) const
+{
+ const_iterator
+ r1 = LowerBound(i_key);
+ const_iterator
+ r2 = r1;
+ while ( r2 != aData.end()
+ AND NOT COMPARE::Lesser_(i_key, KeyOf_(*r2)) )
+ {
+ ++r2;
+ }
+
+ return csv::make_range(r1,r2);
+}
+
+template<class COMPARE>
+inline typename SortedIds<COMPARE>::const_iterator
+SortedIds<COMPARE>::LowerBound(const key_t & i_key) const
+{
+ return impl_LowerBound_( aData.begin(),
+ aData.end(),
+ i_key );
+}
+
+template<class COMPARE>
+inline typename SortedIds<COMPARE>::iterator
+SortedIds<COMPARE>::LowerBound(const key_t & i_key)
+{
+ return impl_LowerBound_( aData.begin(),
+ aData.end(),
+ i_key );
+}
+
+template<class COMPARE>
+template <class ITER>
+ITER
+SortedIds<COMPARE>::impl_LowerBound_( ITER i_begin,
+ ITER i_end,
+ const key_t & i_key )
+{
+ ITER i1 = i_begin;
+ ITER i2 = i_end;
+
+ for ( ITER it = i1 + (i2-i1)/2;
+ i1 != i2;
+ it = i1 + (i2-i1)/2 )
+ {
+ if ( COMPARE::Lesser_(KeyOf_(*it), i_key) )
+ {
+ i1 = it;
+ ++i1;
+ }
+ else
+ {
+ i2 = it;
+ }
+ } // end for
+
+ return i1;
+}
+
+
+
+
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/store/s_base.hxx b/autodoc/source/ary/inc/store/s_base.hxx
new file mode 100644
index 000000000000..e14fc2652293
--- /dev/null
+++ b/autodoc/source/ary/inc/store/s_base.hxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_STORE_S_BASE_HXX
+#define ARY_STORE_S_BASE_HXX
+
+// USED SERVICES
+#include <deque>
+#include <cosv/tpl/tpltools.hxx>
+
+
+
+
+namespace ary
+{
+namespace stg
+{
+
+
+/** The basic storage container of the repository.
+
+ @collab Storage
+ Implements Storage. Not used elsewhere.
+
+ @tpl ENTITY
+ The type of *it, where it is of type c_iter, has to be ENTITY * const.
+*/
+template <class ENTITY>
+class Base
+{
+ public:
+ // LIFECYCLE
+ typedef std::deque< ENTITY* > impl_type;
+ typedef typename impl_type::const_iterator c_iter;
+
+
+ /** @param i_nrOfReservedItems
+ The number of actual items to reserve, including the item
+ at index [0] that is always empty and unused.
+ */
+ Base(
+ uintt i_nrOfReservedItems );
+ ~Base();
+
+ // OPERATORS
+ ENTITY * operator[](
+ uintt i_index ) const;
+ // OPERATIONS
+ uintt Add_Entity( /// @return the index of the new element.
+ DYN ENTITY & pass_newEntity );
+ DYN ENTITY * Set_Entity( /// @return the previous value.
+ uintt i_index,
+ DYN ENTITY & pass_newEntity );
+ // INQUIRY
+ uintt Size() const; /// Incl. reserved size.
+ uintt ReservedSize() const; /// Incl. zero for element at [0].
+
+ c_iter Begin() const; /// @return location of index 1, because 0 is always empty.
+ c_iter BeginUnreserved() const;
+ c_iter End() const;
+
+ private:
+ // DATA
+ impl_type aData;
+ uintt nReservedSize;
+};
+
+
+
+// IMPLEMENTATION
+
+template <class ENTITY>
+Base<ENTITY>::Base(uintt i_nrOfReservedItems)
+ : aData(i_nrOfReservedItems, 0),
+ nReservedSize(i_nrOfReservedItems)
+{
+}
+
+template <class ENTITY>
+Base<ENTITY>::~Base()
+{
+ csv::erase_container_of_heap_ptrs(aData);
+}
+
+
+template <class ENTITY>
+ENTITY *
+Base<ENTITY>::operator[](uintt i_index) const
+{
+ if (i_index < aData.size())
+ return aData[i_index];
+ return 0;
+}
+
+template <class ENTITY>
+uintt
+Base<ENTITY>::Add_Entity(DYN ENTITY & pass_newEntity)
+{
+ aData.push_back(&pass_newEntity);
+ return aData.size() - 1;
+}
+
+template <class ENTITY>
+DYN ENTITY *
+Base<ENTITY>::Set_Entity( uintt i_index,
+ DYN ENTITY & pass_newEntity )
+{
+ csv_assert(i_index != 0 AND i_index < aData.size());
+
+ Dyn<ENTITY>
+ ret(aData[i_index]);
+ aData[i_index] = &pass_newEntity;
+ return ret.Release();
+}
+
+template <class ENTITY>
+uintt
+Base<ENTITY>::Size() const
+{
+ return aData.size();
+}
+
+template <class ENTITY>
+uintt
+Base<ENTITY>::ReservedSize() const
+{
+ return nReservedSize;
+}
+
+template <class ENTITY>
+typename Base<ENTITY>::c_iter
+Base<ENTITY>::Begin() const
+{
+ return aData.begin() + 1;
+}
+
+template <class ENTITY>
+typename Base<ENTITY>::c_iter
+Base<ENTITY>::BeginUnreserved() const
+{
+ return aData.begin() + nReservedSize;
+}
+
+template <class ENTITY>
+typename Base<ENTITY>::c_iter
+Base<ENTITY>::End() const
+{
+ return aData.end();
+}
+
+
+
+
+} // namespace stg
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/store/s_iterator.hxx b/autodoc/source/ary/inc/store/s_iterator.hxx
new file mode 100644
index 000000000000..af5c991ba9a9
--- /dev/null
+++ b/autodoc/source/ary/inc/store/s_iterator.hxx
@@ -0,0 +1,237 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_STORE_S_ITERATOR_HXX
+#define ARY_STORE_S_ITERATOR_HXX
+
+// USED SERVICES
+#include <ary/getncast.hxx>
+#include "s_base.hxx"
+
+
+
+
+namespace ary
+{
+namespace stg
+{
+
+
+template <class> class const_iterator;
+template <class, class> class const_filter_iterator;
+
+
+/** A non-const iterator that runs on a ->Storage<>.
+
+ @collab Storage<>
+*/
+template <class ENTITY>
+class iterator : public std::iterator<std::forward_iterator_tag, ENTITY>
+{
+ public:
+ typedef iterator<ENTITY> self;
+ typedef typename Base<ENTITY>::impl_type impl_container;
+ typedef typename impl_container::const_iterator impl_type;
+
+ // OPERATORS
+ iterator()
+ : itImpl() {}
+ explicit iterator(
+ impl_type i_impl)
+ : itImpl(i_impl) {}
+ ~iterator() {}
+
+ bool operator==(
+ self i_other ) const
+ { return itImpl == i_other.itImpl; }
+ bool operator!=(
+ self i_other ) const
+ { return itImpl != i_other.itImpl; }
+ ENTITY & operator*() const { csv_assert(*itImpl != 0);
+ return *(*itImpl); }
+ self & operator++() { ++itImpl; return *this; }
+ self operator++(int) { return self(itImpl++); }
+
+ private:
+ friend class const_iterator<ENTITY>; // For const_iterator(iterator);
+ impl_type ImplIterator() const { return itImpl; }
+
+ // DATA
+ impl_type itImpl;
+};
+
+
+/** A const iterator that runs on a ->Storage<>.
+
+ @collab Storage<>
+*/
+template <class ENTITY>
+class const_iterator :
+ public std::iterator<std::forward_iterator_tag, const ENTITY>
+{
+ public:
+ typedef const_iterator<ENTITY> self;
+ typedef typename Base<ENTITY>::impl_type impl_container;
+ typedef typename impl_container::const_iterator impl_type;
+
+ // OPERATORS
+ const_iterator()
+ : itImpl() {}
+ explicit const_iterator(
+ impl_type i_impl)
+ : itImpl(i_impl) {}
+ const_iterator( // implicit conversions allowed
+ ::ary::stg::iterator<ENTITY> i_it )
+ : itImpl(i_it.ImplIterator()) {}
+ ~const_iterator() {}
+
+ bool operator==(
+ self i_other ) const
+ { return itImpl == i_other.itImpl; }
+ bool operator!=(
+ self i_other ) const
+ { return itImpl != i_other.itImpl; }
+ const ENTITY & operator*() const { csv_assert(*itImpl != 0);
+ return *(*itImpl); }
+ self & operator++() { ++itImpl; return *this; }
+ self operator++(int) { return self(itImpl++); }
+
+ private:
+ // DATA
+ impl_type itImpl;
+};
+
+
+
+
+
+/** A non const iterator that runs on a ->Storage<> and returns only
+ the elements of a specific type.
+
+ @tpl ENTITY
+ The element type of the ->Storage<>
+
+ @tpl FILTER
+ The actual type of the returned items. FILTER needs to be derived from
+ ENTITY.
+
+ @collab Storage<>
+*/
+template <class ENTITY, class FILTER>
+class filter_iterator :
+ public std::iterator<std::forward_iterator_tag, FILTER>
+{
+ public:
+ typedef filter_iterator<ENTITY,FILTER> self;
+ typedef ::ary::stg::iterator<ENTITY> impl_type;
+
+ // OPERATORS
+ filter_iterator()
+ : itCur() {}
+ explicit filter_iterator(
+ impl_type i_cur )
+ : itCur(i_cur) {}
+ ~filter_iterator() {}
+
+ bool operator==(
+ self i_other ) const
+ { return itCur == i_other.itCur; }
+ bool operator!=(
+ self i_other ) const
+ { return itCur != i_other.itCur; }
+ FILTER & operator*() const { csv_assert(IsValid());
+ return static_cast< FILTER& >(*itCur); }
+ self & operator++() { ++itCur;
+ return *this; }
+ self operator++(int) { return self(itCur++); }
+ bool IsValid() const { return ary::is_type<FILTER>(*itCur); }
+
+ private:
+ friend class const_filter_iterator<ENTITY,FILTER>; // For const_filter_iterator(filter_iterator);
+ impl_type ImplCur() const { return itCur; }
+
+ // DATA
+ impl_type itCur;
+};
+
+
+/** A const iterator that runs on a ->Storage<> and returns only
+ the elements of a specific type.
+
+ @tpl ENTITY
+ The element type of the ->Storage<>
+
+ @tpl FILTER
+ The actual type of the returned items. FILTER needs to be derived from
+ ENTITY.
+
+ @collab Storage<>
+*/
+template <class ENTITY, class FILTER>
+class const_filter_iterator :
+ public std::iterator<std::forward_iterator_tag, const FILTER>
+{
+ public:
+ typedef const_filter_iterator<ENTITY,FILTER> self;
+ typedef ::ary::stg::const_iterator<ENTITY> impl_type;
+
+ // OPERATORS
+ const_filter_iterator()
+ : itCur() {}
+ explicit const_filter_iterator(
+ impl_type i_cur )
+ : itCur(i_cur) {}
+ explicit const_filter_iterator( // implicit conversions allowed
+ filter_iterator<ENTITY,FILTER>
+ i_it )
+ : itCur(i_it.ImplCur()) {}
+ ~const_filter_iterator()
+ {}
+ bool operator==(
+ self i_other ) const
+ { return itCur == i_other.itCur; }
+ bool operator!=(
+ self i_other ) const
+ { return itCur != i_other.itCur; }
+ const FILTER & operator*() const { csv_assert(IsValid());
+ return static_cast< const FILTER& >(*itCur); }
+ self & operator++() { ++itCur;
+ return *this; }
+ self operator++(int) { return self(itCur++); }
+ bool IsValid() const { return ary::is_type<FILTER>(*itCur); }
+
+ private:
+ // DATA
+ impl_type itCur;
+};
+
+
+
+
+} // namespace stg
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/store/s_storage.hxx b/autodoc/source/ary/inc/store/s_storage.hxx
new file mode 100644
index 000000000000..aace69ef6678
--- /dev/null
+++ b/autodoc/source/ary/inc/store/s_storage.hxx
@@ -0,0 +1,294 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_STORE_S_STORAGE_HXX
+#define ARY_STORE_S_STORAGE_HXX
+
+// USED SERVICES
+#include <ary/types.hxx>
+#include "s_iterator.hxx"
+
+
+
+
+namespace ary
+{
+namespace stg
+{
+
+
+/** The storage unit of one class of commomly stored repository
+ entities.
+*/
+template <class ENTITY>
+class Storage
+{
+ public:
+ typedef Base<ENTITY> container_type;
+ typedef ary::TypedId<ENTITY> key_type;
+ typedef stg::const_iterator<ENTITY> c_iter;
+ typedef stg::iterator<ENTITY> iter;
+
+ // LIFECYCLE
+ virtual ~Storage() {}
+
+ // OPERATORS
+ const ENTITY & operator[](
+ key_type i_id ) const;
+ ENTITY & operator[](
+ key_type i_id );
+ const ENTITY & operator[](
+ Rid i_index ) const;
+ ENTITY & operator[](
+ Rid i_index );
+ // OPERATIONS
+ /// Sets the id of the new entity.
+ key_type Store_Entity(
+ DYN ENTITY & pass_newEntity );
+ /// Sets the id of the new entity.
+ void Set_Reserved(
+ uintt i_index,
+ DYN ENTITY & pass_newEntity );
+ /// Sets the id of the new entity.
+ void Replace_Entity(
+ key_type i_index,
+ DYN ENTITY & pass_newEntity );
+ // INQUIRY
+ bool Exists(
+ key_type i_id ) const;
+ bool Exists(
+ Rid i_index ) const;
+
+ c_iter Begin() const;
+ c_iter BeginUnreserved() const;
+ c_iter End() const;
+
+ // ACCESS
+ iter Begin();
+ iter BeginUnreserved();
+ iter End();
+
+ protected:
+ Storage(
+ uintt i_nrOfReservedItems );
+ private:
+ // DATA
+ container_type aData;
+};
+
+
+
+
+
+
+// IMPLEMENTATION
+
+// Used later, so implemented first.
+template <class ENTITY>
+inline bool
+Storage<ENTITY>::Exists(Rid i_index) const
+{
+ return 0 < i_index AND i_index < aData.Size();
+}
+
+template <class ENTITY>
+inline bool
+Storage<ENTITY>::Exists(key_type i_id) const
+{
+ return Exists(i_id.Value());
+}
+
+template <class ENTITY>
+inline const ENTITY &
+Storage<ENTITY>::operator[](Rid i_index) const
+{
+ csv_assert(Exists(i_index));
+ return * aData[i_index];
+}
+
+template <class ENTITY>
+inline ENTITY &
+Storage<ENTITY>::operator[](Rid i_index)
+{
+ csv_assert(Exists(i_index));
+ return * aData[i_index];
+}
+
+template <class ENTITY>
+inline const ENTITY &
+Storage<ENTITY>::operator[](key_type i_id) const
+{
+ return operator[](i_id.Value());
+}
+
+template <class ENTITY>
+inline ENTITY &
+Storage<ENTITY>::operator[](key_type i_id)
+{
+ return operator[](i_id.Value());
+}
+
+template <class ENTITY>
+typename Storage<ENTITY>::key_type
+Storage<ENTITY>::Store_Entity(DYN ENTITY & pass_newEntity)
+{
+ csv_assert( aData.Size() >= aData.ReservedSize() );
+ Rid
+ ret( aData.Add_Entity(pass_newEntity) );
+ pass_newEntity.Set_Id(ret);
+ return key_type(ret);
+}
+
+template <class ENTITY>
+void
+Storage<ENTITY>::Set_Reserved(uintt i_index,
+ DYN ENTITY & pass_newEntity)
+{
+ // 0 must not be used.
+ csv_assert( i_index != 0 );
+ // Make sure, i_index actually is the id of a reserved item.
+ csv_assert( i_index < aData.ReservedSize() );
+
+ // If there was a previous entity, it will be deleted by
+ // the destructor of pOldEntity.
+ Dyn<ENTITY>
+ pOldEntity(aData.Set_Entity(i_index, pass_newEntity));
+ pass_newEntity.Set_Id(i_index);
+}
+
+template <class ENTITY>
+void
+Storage<ENTITY>::Replace_Entity( key_type i_index,
+ DYN ENTITY & pass_newEntity )
+{
+ uintt
+ nIndex = i_index.Value();
+ // Make sure, i_index actually is the id of an existing,
+ // non reserved entity.
+ csv_assert( csv::in_range(aData.ReservedSize(), nIndex, aData.Size()) );
+
+ // If there was a previous entity, it will be deleted by
+ // the destructor of pOldEntity.
+ Dyn<ENTITY>
+ pOldEntity(aData.Set_Entity(nIndex, pass_newEntity));
+ pass_newEntity.Set_Id(nIndex);
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::c_iter
+Storage<ENTITY>::Begin() const
+{
+ return c_iter(aData.Begin());
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::c_iter
+Storage<ENTITY>::BeginUnreserved() const
+{
+ return c_iter(aData.BeginUnreserved());
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::c_iter
+Storage<ENTITY>::End() const
+{
+ return c_iter(aData.End());
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::iter
+Storage<ENTITY>::Begin()
+{
+ return iter(aData.Begin());
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::iter
+Storage<ENTITY>::BeginUnreserved()
+{
+ return iter(aData.BeginUnreserved());
+}
+
+template <class ENTITY>
+inline
+typename Storage<ENTITY>::iter
+Storage<ENTITY>::End()
+{
+ return iter(aData.End());
+}
+
+template <class ENTITY>
+inline
+Storage<ENTITY>::Storage(uintt i_nrOfReservedItems)
+ : aData(i_nrOfReservedItems)
+{
+ // Make sure Rid and uintt are the same type, because
+ // the interface of this uses Rid, but the interface of
+ // container_type uses uintt.
+ csv_assert( sizeof(uintt) == sizeof(Rid) );
+}
+
+
+
+
+// HELPER FUNCTIONS
+
+/** @return 0, if data are not there.
+*/
+template <class ENTITY>
+inline const ENTITY *
+Search( const Storage<ENTITY> & i_storage,
+ Rid i_id )
+{
+ if (NOT i_storage.Exists(i_id))
+ return 0;
+ return &i_storage[i_id];
+}
+
+/** @return 0, if data are not there.
+*/
+template <class ENTITY>
+inline ENTITY *
+SearchAccess( const Storage<ENTITY> & i_storage,
+ Rid i_id )
+{
+ if (NOT i_storage.Exists(i_id))
+ return 0;
+ return &i_storage[i_id];
+}
+
+
+
+
+} // namespace stg
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/inc/traits_impl.hxx b/autodoc/source/ary/inc/traits_impl.hxx
new file mode 100644
index 000000000000..77c84c819ba6
--- /dev/null
+++ b/autodoc/source/ary/inc/traits_impl.hxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_TRAITS_IMPL_HXX
+#define ARY_TRAITS_IMPL_HXX
+
+
+// USED SERVICES
+#include <ary/getncast.hxx>
+
+
+namespace ary
+{
+namespace traits
+{
+
+
+/** Finds the node assigned to an entity, if that entity has a specific
+ actual type.
+
+ @tpl NODE
+ The assumed actual type of io_node.
+*/
+template<class NODE>
+const typename NODE::node_t *
+ NodeOf(
+ const typename NODE::traits_t::entity_base_type &
+ io_node );
+
+/** Finds the node assigned to an entity, if that entity has a specific
+ actual type.
+
+ @tpl NODE
+ The assumed actual type of io_node.
+*/
+template<class NODE>
+typename NODE::node_t *
+ NodeOf(
+ typename NODE::traits_t::entity_base_type &
+ io_node );
+
+/** Finds a child to a node.
+*/
+template<class NODE, class KEY>
+typename NODE::traits_t::id_type
+ Search_Child(
+ const typename NODE::traits_t::entity_base_type &
+ i_node,
+ const KEY & i_localKey );
+
+
+
+
+// IMPLEMENTATION
+
+template<class NODE>
+const typename NODE::node_t *
+NodeOf(const typename NODE::traits_t::entity_base_type & io_node)
+{
+ const NODE *
+ pn = ary_cast<NODE>(&io_node);
+ if (pn != 0)
+ return & pn->AsNode();
+ return 0;
+}
+
+template<class NODE>
+typename NODE::node_t *
+NodeOf(typename NODE::traits_t::entity_base_type & io_node)
+{
+ NODE *
+ pn = ary_cast<NODE>(&io_node);
+ if (pn != 0)
+ return & pn->AsNode();
+ return 0;
+}
+
+template<class NODE, class KEY>
+typename NODE::traits_t::id_type
+Search_Child( const typename NODE::traits_t::entity_base_type & i_node,
+ const KEY & i_localKey )
+{
+ const NODE *
+ pn = ary_cast<NODE>(&i_node);
+ if (pn != 0)
+ return pn->Search_Child(i_localKey);
+ return typename NODE::traits_t::id_type(0);
+}
+
+
+
+
+} // namespace traits
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/info/all_dts.cxx b/autodoc/source/ary/info/all_dts.cxx
new file mode 100644
index 000000000000..7dfbf737538b
--- /dev/null
+++ b/autodoc/source/ary/info/all_dts.cxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/info/all_dts.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/info/infodisp.hxx>
+
+
+namespace ary
+{
+namespace info
+{
+
+
+void
+DT_Text::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_DT_Text(*this);
+}
+
+bool
+DT_Text::inq_IsWhite() const
+{
+ return false;
+}
+
+void
+DT_MaybeLink::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_DT_MaybeLink(*this);
+}
+
+bool
+DT_MaybeLink::inq_IsWhite() const
+{
+ return false;
+}
+
+void
+DT_Whitespace::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_DT_Whitespace(*this);
+}
+
+bool
+DT_Whitespace::inq_IsWhite() const
+{
+ return true;
+}
+
+void
+DT_Eol::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_DT_Eol(*this);
+}
+
+bool
+DT_Eol::inq_IsWhite() const
+{
+ return true;
+}
+
+void
+DT_Xml::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_DT_Xml(*this);
+}
+
+bool
+DT_Xml::inq_IsWhite() const
+{
+ return false;
+}
+
+
+} // namespace info
+} // namespace ary
+
diff --git a/autodoc/source/ary/info/all_tags.cxx b/autodoc/source/ary/info/all_tags.cxx
new file mode 100644
index 000000000000..76d8192690ff
--- /dev/null
+++ b/autodoc/source/ary/info/all_tags.cxx
@@ -0,0 +1,569 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/info/all_tags.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <limits>
+#include <ary/info/infodisp.hxx>
+#include <adc_cl.hxx>
+
+
+namespace ary
+{
+namespace info
+{
+
+
+
+//***************************** StdTag ***********************//
+
+
+StdTag::StdTag( E_AtTagId i_eId )
+ : eId(i_eId),
+ // aText,
+ pNext(0)
+{
+}
+
+bool
+StdTag::Add_SpecialMeaningToken( const char * ,
+ intt )
+{
+ // Does nothing
+
+ // KORR_FUTURE
+ // Should be a logical exception:
+ // csv_assert(false);
+ return false;
+}
+
+UINT8
+StdTag::NrOfSpecialMeaningTokens() const
+{
+ return 0;
+}
+
+AtTag *
+StdTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ pNext = new StdTag(eId);
+ return pNext;
+}
+
+void
+StdTag::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_StdTag( *this );
+}
+
+DocuText *
+StdTag::Text()
+{
+ return &aText;
+}
+
+
+
+//***************************** BaseTag ***********************//
+
+BaseTag::BaseTag()
+ : // sBase
+ // aText
+ pNext(0)
+{
+}
+
+bool
+BaseTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 )
+ {
+ sBase.AssignText(i_sText,"::");
+ return true;
+ }
+ return false;
+}
+
+const char *
+BaseTag::Title() const
+{
+ return "Base Classes";
+}
+
+UINT8
+BaseTag::NrOfSpecialMeaningTokens() const
+{
+ return 1;
+}
+
+AtTag *
+BaseTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ pNext = new BaseTag;
+ return pNext;
+}
+
+DocuText *
+BaseTag::Text()
+{
+ return &aText;
+}
+
+
+
+//***************************** ExceptionTag ***********************//
+
+ExceptionTag::ExceptionTag()
+ : // sException,
+ // aText
+ pNext(0)
+{
+}
+
+bool
+ExceptionTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 )
+ {
+ sException.AssignText(i_sText,"::");
+ return true;
+ }
+ return false;
+}
+
+const char *
+ExceptionTag::Title() const
+{
+ return "Thrown Exceptions";
+}
+
+UINT8
+ExceptionTag::NrOfSpecialMeaningTokens() const
+{
+ return 1;
+}
+
+AtTag *
+ExceptionTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ pNext = new ExceptionTag;
+ return pNext;
+}
+
+DocuText *
+ExceptionTag::Text()
+{
+ return &aText;
+}
+
+
+//***************************** ImplementsTag ***********************//
+
+ImplementsTag::ImplementsTag()
+ : // sBase
+ // aText
+ pNext(0)
+{
+}
+
+bool
+ImplementsTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 )
+ {
+ sName.AssignText(i_sText,"::");
+ }
+ else
+ {
+ GetFollower()->Add_SpecialMeaningToken(i_sText,1);
+ }
+ return true;
+}
+
+const char *
+ImplementsTag::Title() const
+{
+ return "Implements";
+}
+
+UINT8
+ImplementsTag::NrOfSpecialMeaningTokens() const
+{
+ return std::numeric_limits<UINT8>::max();
+}
+
+AtTag *
+ImplementsTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ pNext = new ImplementsTag;
+ return pNext;
+}
+
+DocuText *
+ImplementsTag::Text()
+{
+ return 0;
+}
+
+
+//***************************** KeywordTag ***********************//
+
+
+KeywordTag::KeywordTag()
+// : sKeys
+{
+}
+
+bool
+KeywordTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt )
+{
+ sKeys.push_back(i_sText);
+ return true;
+}
+
+const char *
+KeywordTag::Title() const
+{
+ return "Keywords";
+}
+
+UINT8
+KeywordTag::NrOfSpecialMeaningTokens() const
+{
+ return std::numeric_limits<UINT8>::max();
+}
+
+AtTag *
+KeywordTag::GetFollower()
+{
+ return this;
+}
+
+DocuText *
+KeywordTag::Text()
+{
+ return 0;
+}
+
+
+
+//***************************** ParameterTag ***********************//
+
+
+ParameterTag::ParameterTag()
+ : // sName
+ // aText
+ pNext(0)
+{
+}
+
+bool
+ParameterTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 )
+ {
+ sName = i_sText;
+ return true;
+ }
+ else if (i_nNr == 2)
+ {
+ uintt nLen = strlen(i_sText);
+ if (*i_sText == '[' AND i_sText[nLen-1] == ']')
+ {
+ sValidRange = String(i_sText+1, nLen-2);
+ return true;
+ }
+ }
+ return false;
+}
+
+UINT8
+ParameterTag::NrOfSpecialMeaningTokens() const
+{
+ return 2;
+}
+
+AtTag *
+ParameterTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ return pNext = new ParameterTag;
+}
+
+DocuText *
+ParameterTag::Text()
+{
+ return &aText;
+}
+
+void
+ParameterTag::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_ParameterTag( *this );
+}
+
+
+
+//***************************** SeeTag ***********************//
+
+
+
+SeeTag::SeeTag()
+// : sReferences
+{
+}
+
+bool
+SeeTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt )
+{
+ static QualifiedName aNull_;
+ sReferences.push_back(aNull_);
+ sReferences.back().AssignText(i_sText,"::");
+
+ return true;
+}
+
+const char *
+SeeTag::Title() const
+{
+ return "See Also";
+}
+
+UINT8
+SeeTag::NrOfSpecialMeaningTokens() const
+{
+ return std::numeric_limits<UINT8>::max();
+}
+
+AtTag *
+SeeTag::GetFollower()
+{
+ return this;
+}
+
+void
+SeeTag::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_SeeTag( *this );
+}
+
+DocuText *
+SeeTag::Text()
+{
+ return 0;
+}
+
+
+
+//***************************** TemplateTag ***********************//
+
+
+TemplateTag::TemplateTag()
+ : // sName
+ // aText
+ pNext(0)
+{
+}
+
+bool
+TemplateTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 )
+ {
+ sName = i_sText;
+ return true;
+ }
+ return false;
+}
+
+const char *
+TemplateTag::Title() const
+{
+ return "Template Parameters";
+}
+
+UINT8
+TemplateTag::NrOfSpecialMeaningTokens() const
+{
+ return 1;
+}
+
+AtTag *
+TemplateTag::GetFollower()
+{
+ if (pNext != 0)
+ return pNext->GetFollower();
+ return pNext = new TemplateTag;
+}
+
+void
+TemplateTag::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_TemplateTag( *this );
+}
+
+
+DocuText *
+TemplateTag::Text()
+{
+ return &aText;
+}
+
+
+//***************************** LabelTag ***********************//
+
+
+
+LabelTag::LabelTag()
+ : sLabel()
+{
+}
+
+bool
+LabelTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt i_nNr )
+{
+ if ( i_nNr == 1 AND sLabel.length() == 0 )
+ {
+ sLabel = i_sText;
+ return true;
+ }
+ // KORR_FUTURE
+// else // Throw exception because of double label.
+ return false;
+}
+
+const char *
+LabelTag::Title() const
+{
+ return "Label";
+}
+
+UINT8
+LabelTag::NrOfSpecialMeaningTokens() const
+{
+ return 1;
+}
+
+AtTag *
+LabelTag::GetFollower()
+{
+ return this;
+}
+
+DocuText *
+LabelTag::Text()
+{
+ return 0;
+}
+
+
+//***************************** SinceTag ***********************//
+
+SinceTag::SinceTag()
+ : sVersion()
+{
+}
+
+bool
+SinceTag::Add_SpecialMeaningToken( const char * i_sText,
+ intt )
+{
+ const char cCiphersend = '9' + 1;
+ if ( sVersion.empty()
+ AND NOT csv::in_range('0', *i_sText, cCiphersend)
+ AND autodoc::CommandLine::Get_().DoesTransform_SinceTag() )
+ {
+ return true;
+ }
+
+ if (sVersion.empty())
+ {
+ sVersion = i_sText;
+ }
+ else
+ {
+ StreamLock sHelp(100);
+ sVersion = sHelp() << sVersion << " " << i_sText << c_str;
+ }
+
+ return true;
+}
+
+const char *
+SinceTag::Title() const
+{
+ return "Label";
+}
+
+UINT8
+SinceTag::NrOfSpecialMeaningTokens() const
+{
+ return UINT8(-1);
+}
+
+AtTag *
+SinceTag::GetFollower()
+{
+ return this;
+}
+
+void
+SinceTag::do_StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_SinceTag( *this );
+}
+
+DocuText *
+SinceTag::Text()
+{
+ return 0;
+}
+
+
+} // namespace info
+} // namespace ary
+
diff --git a/autodoc/source/ary/info/ci_attag.cxx b/autodoc/source/ary/info/ci_attag.cxx
new file mode 100644
index 000000000000..e9afb6e106f7
--- /dev/null
+++ b/autodoc/source/ary/info/ci_attag.cxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/info/ci_attag.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/info/all_dts.hxx>
+#include <ary/info/ci_text.hxx>
+
+
+namespace ary
+{
+namespace info
+{
+
+void
+AtTag::Set_HtmlUseInDocuText( bool i_bUseIt )
+{
+ DocuText * pText = Text();
+ if ( pText != 0 )
+ pText->Set_HtmlUse(i_bUseIt);
+}
+
+void
+AtTag::Add_Token( const char * i_sText )
+{
+ DocuText * pText = Text();
+ if (pText != 0)
+ pText->Add_Token( *new DT_Text(i_sText) );
+}
+
+void
+AtTag::Add_PotentialLink( const char * i_sText,
+ bool i_bIsGlobal,
+ bool i_bIsFunction )
+{
+ DocuText * pText = Text();
+ if (pText != 0)
+ pText->Add_Token( *new DT_MaybeLink(i_sText, i_bIsGlobal, i_bIsFunction) );
+}
+
+void
+AtTag::Add_Whitespace( UINT8 i_nLength )
+{
+ DocuText * pText = Text();
+ if (pText != 0)
+ pText->Add_Token( *new DT_Whitespace(i_nLength) );
+}
+
+void
+AtTag::Add_Eol()
+{
+ DocuText * pText = Text();
+ if (pText != 0)
+ pText->Add_Token( *new DT_Eol );
+}
+
+void
+AtTag::do_StoreAt( DocuDisplay & ) const
+{
+ // Dummy
+}
+
+} // namespace info
+} // namespace ary
+
+
diff --git a/autodoc/source/ary/info/ci_text.cxx b/autodoc/source/ary/info/ci_text.cxx
new file mode 100644
index 000000000000..12710c5fd53b
--- /dev/null
+++ b/autodoc/source/ary/info/ci_text.cxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/info/ci_text.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/info/all_dts.hxx>
+
+
+namespace ary
+{
+namespace info
+{
+
+DocuText::DocuText()
+ : bUsesHtml(false)
+{
+}
+
+DocuText::~DocuText()
+{
+ for ( TokenList::iterator iter = aTokens.begin();
+ iter != aTokens.end();
+ ++iter )
+ {
+ delete (*iter);
+ }
+}
+
+void
+DocuText::StoreAt( DocuDisplay & o_rDisplay ) const
+{
+ ary::info::DocuText::TokenList::const_iterator itEnd = aTokens.end();
+ for ( ary::info::DocuText::TokenList::const_iterator it = aTokens.begin();
+ it != itEnd;
+ ++it )
+ {
+ (*it)->StoreAt(o_rDisplay);
+ }
+}
+
+} // namespace info
+} // namespace ary
+
+
diff --git a/autodoc/source/ary/info/makefile.mk b/autodoc/source/ary/info/makefile.mk
new file mode 100644
index 000000000000..0c507ba3f4fe
--- /dev/null
+++ b/autodoc/source/ary/info/makefile.mk
@@ -0,0 +1,60 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_info
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/all_dts.obj \
+ $(OBJ)$/all_tags.obj \
+ $(OBJ)$/ci_attag.obj \
+ $(OBJ)$/ci_text.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/ary/kernel/ary_disp.cxx b/autodoc/source/ary/kernel/ary_disp.cxx
new file mode 100644
index 000000000000..2e652f28a664
--- /dev/null
+++ b/autodoc/source/ary/kernel/ary_disp.cxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/ary_disp.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+
+
+
+namespace ary
+{
+
+void
+Display::DisplaySlot_Rid( ary::Rid i_nId )
+{
+ const cpp::Gate *
+ pGate = Get_ReFinder();
+ if (pGate != 0)
+ {
+ const ary::cpp::CodeEntity *
+ pRE = pGate->Ces().Search_Ce( cpp::Ce_id(i_nId) );
+ if (pRE != 0)
+ {
+ pRE->Accept( *this );
+ return;
+ }
+ }
+
+ do_DisplaySlot_Rid( i_nId );
+}
+
+
+void
+Display::DisplaySlot_LocalCe( ary::cpp::Ce_id i_nId,
+ const String & i_sName )
+{
+ const cpp::Gate *
+ pGate = Get_ReFinder();
+ if (pGate != 0)
+ {
+ const ary::cpp::CodeEntity *
+ pRE = pGate->Ces().Search_Ce(i_nId);
+ if (pRE != 0)
+ {
+ pRE->Accept( *this );
+ return;
+ }
+ }
+
+ do_DisplaySlot_LocalCe( i_nId, i_sName );
+}
+
+
+
+// Dummy implementations for class Display
+
+void
+Display::do_StartSlot()
+{
+}
+
+void
+Display::do_FinishSlot()
+{
+}
+
+void
+Display::do_DisplaySlot_Rid( ary::Rid )
+{
+}
+
+void
+Display::do_DisplaySlot_LocalCe( ary::cpp::Ce_id ,
+ const String & )
+{
+}
+
+
+} // namespace ary
diff --git a/autodoc/source/ary/kernel/cessentl.cxx b/autodoc/source/ary/kernel/cessentl.cxx
new file mode 100644
index 000000000000..ea32736b6a2a
--- /dev/null
+++ b/autodoc/source/ary/kernel/cessentl.cxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/cessentl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_ce.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+
+
+namespace ary
+{
+namespace cpp
+{
+
+
+CeEssentials::CeEssentials()
+ : sLocalName(),
+ nOwner(0),
+ nLocation(0)
+{
+}
+
+CeEssentials::CeEssentials( const String & i_sLocalName,
+ Cid i_nOwner,
+ loc::Le_id i_nLocation )
+ : sLocalName(i_sLocalName),
+ nOwner(i_nOwner),
+ nLocation(i_nLocation)
+{
+}
+
+CeEssentials::~CeEssentials()
+{
+}
+
+
+
+inline bool
+IsInternal(const doc::Documentation & i_doc)
+{
+ const ary::doc::OldCppDocu *
+ docu = dynamic_cast< const ary::doc::OldCppDocu* >(i_doc.Data());
+ if (docu != 0)
+ return docu->IsInternal();
+ return false;
+}
+
+
+bool
+CodeEntity::IsVisible() const
+{
+ // KORR_FUTURE: Improve the whole handling of internal and visibility.
+ return bIsVisible && NOT IsInternal(Docu());
+}
+
+
+
+} // namespace cpp
+} // namespace ary
diff --git a/autodoc/source/ary/kernel/makefile.mk b/autodoc/source/ary/kernel/makefile.mk
new file mode 100644
index 000000000000..6c90252bc3b8
--- /dev/null
+++ b/autodoc/source/ary/kernel/makefile.mk
@@ -0,0 +1,63 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_kernel
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/ary_disp.obj \
+ $(OBJ)$/cessentl.obj \
+ $(OBJ)$/namesort.obj \
+ $(OBJ)$/qualiname.obj \
+ $(OBJ)$/reposy.obj \
+ $(OBJ)$/slots.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/ary/kernel/namesort.cxx b/autodoc/source/ary/kernel/namesort.cxx
new file mode 100644
index 000000000000..a404d754fb07
--- /dev/null
+++ b/autodoc/source/ary/kernel/namesort.cxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/namesort.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace
+{
+
+
+int C_cAutodocNameOrdering1[256] =
+ { 0,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, // 0 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, // 32 ..
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,255,255, 255,255,255,255,
+
+ 255, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, // 64 ..
+ 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61,255, 255,255,255, 63,
+ 255, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, // 96 ..
+ 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61,255, 255,255,255,255,
+
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, //128 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, //160 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255
+ };
+
+int C_cAutodocNameOrdering2[256] =
+ { 0,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, // 0 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, // 32 ..
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,255,255, 255,255,255,255,
+
+ 255, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, // 64 ..
+ 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61,255, 255,255,255, 63,
+ 255, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, // 96 ..
+ 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62,255, 255,255,255,255,
+
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, //128 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255, //160 ..
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255,
+ 255,255,255,255, 255,255,255,255, 255,255,255,255, 255,255,255,255
+ };
+
+
+} // namespace anonymous
+
+
+namespace ary
+{
+
+
+const csv::CharOrder_Table
+LesserName::aOrdering1_(C_cAutodocNameOrdering1);
+
+const csv::CharOrder_Table
+LesserName::aOrdering2_(C_cAutodocNameOrdering2);
+
+
+
+} // namespace ary
diff --git a/autodoc/source/ary/kernel/qualiname.cxx b/autodoc/source/ary/kernel/qualiname.cxx
new file mode 100644
index 000000000000..1c844b20a731
--- /dev/null
+++ b/autodoc/source/ary/kernel/qualiname.cxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/qualiname.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace ary
+{
+
+
+QualifiedName::QualifiedName( uintt i_nSize )
+ : aNamespace(),
+ sLocalName(),
+ bIsAbsolute(false),
+ bIsFunction()
+{
+ if (i_nSize > 0)
+ aNamespace.reserve(i_nSize);
+}
+
+QualifiedName::QualifiedName( const char * i_sText,
+ const char * i_sSeparator )
+ : aNamespace(),
+ sLocalName(),
+ bIsAbsolute(false),
+ bIsFunction()
+{
+ AssignText(i_sText,i_sSeparator);
+}
+
+QualifiedName::~QualifiedName()
+{
+}
+
+void
+QualifiedName::AssignText( const char * i_sText,
+ const char * i_sSeparator )
+{
+ csv_assert(NOT csv::no_str(i_sText) AND NOT csv::no_str(i_sSeparator));
+ bIsAbsolute = false;
+ bIsFunction = false;
+ csv::erase_container( aNamespace );
+
+ uintt nSepLen = strlen(i_sSeparator);
+ const char * sNext = i_sText;
+
+ const char * ps = strstr( i_sText, i_sSeparator );
+ if (ps == i_sText)
+ {
+ bIsAbsolute = true;
+ sNext = ps + nSepLen;
+ }
+
+ for ( ps = strstr(sNext, i_sSeparator);
+ ps != 0;
+ ps = strstr(sNext, i_sSeparator) )
+ {
+ String sPart(sNext, ps - sNext);
+ aNamespace.push_back(sPart);
+ sNext = ps + nSepLen;
+ }
+
+ uintt sNameLen = strlen(sNext);
+ if ( sNameLen > 2 )
+ {
+ ps = sNext + sNameLen - 2;
+ if (*ps == '(' AND *(ps+1) == ')')
+ {
+ sNameLen -= 2;
+ bIsFunction = true;
+ }
+ }
+ sLocalName = String(sNext,sNameLen);
+}
+
+
+} // namespace ary
diff --git a/autodoc/source/ary/kernel/reposy.cxx b/autodoc/source/ary/kernel/reposy.cxx
new file mode 100644
index 000000000000..9ef4b3f4ca7f
--- /dev/null
+++ b/autodoc/source/ary/kernel/reposy.cxx
@@ -0,0 +1,218 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <reposy.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cpp_internalgate.hxx>
+#include <idl_internalgate.hxx>
+
+
+namespace ary
+{
+
+
+//***************** Repository ************//
+
+DYN Repository &
+Repository::Create_()
+{
+ return *new RepositoryCenter;
+}
+
+
+
+
+RepositoryCenter::RepositoryCenter()
+ : sDisplayedName(),
+ aLocation(),
+ pCppPartition(0),
+ pIdlPartition(0)
+{
+ pCppPartition = & cpp::InternalGate::Create_Partition_(*this);
+ pIdlPartition = & idl::InternalGate::Create_Partition_(*this);
+}
+
+RepositoryCenter::~RepositoryCenter()
+{
+}
+
+const ::ary::cpp::Gate &
+RepositoryCenter::Gate_Cpp() const
+{
+ csv_assert(pCppPartition);
+ return *pCppPartition;
+}
+
+const ::ary::idl::Gate &
+RepositoryCenter::Gate_Idl() const
+{
+ csv_assert(pIdlPartition);
+ return *pIdlPartition;
+}
+
+const String &
+RepositoryCenter::Title() const
+{
+ return sDisplayedName;
+}
+
+
+::ary::cpp::Gate &
+RepositoryCenter::Gate_Cpp()
+{
+ csv_assert(pCppPartition);
+ return *pCppPartition;
+}
+
+::ary::idl::Gate &
+RepositoryCenter::Gate_Idl()
+{
+ csv_assert(pIdlPartition);
+ return *pIdlPartition;
+}
+
+void
+RepositoryCenter::Set_Title(const String & i_sName)
+{
+ sDisplayedName = i_sName;
+}
+
+
+
+
+//********************* Repository Type Info Data ****************//
+
+// !!! IMPORTANT - NEVER DELETE OR CHANGE - ADDING ALLOWED
+
+
+
+/* ClassType-Ids
+ -------------
+
+ cpp 1000
+ idl 2000
+ corba 3000
+ java 4000
+ information 5000
+ logic location 6000
+ phys location 7000
+ sec. prod. 8000
+
+
+ cpp
+ ---
+ Namespace 1000
+ Class 1001
+ Enum 1002
+ Typedef 1003
+ Function 1004
+ Variable 1005
+ EnumValue 1006
+ NamespaceAlias 1007
+
+ BuiltInType 1200
+ CeType_Final 1201
+ CeType_Extern 1202
+ UsedType 1203
+ PtrType 1211
+ RefType 1212
+ ConstType 1221
+ VolatileType 1222
+ ArrayType 1230
+ TemplateInstance 1235
+ FunctionPtr 1240
+ DataMemberPtr 1250
+ OperationMemberPtr 1260
+
+ TplParam_Type 1301
+ TplParam_Value 1302
+
+ OpSignature 1400
+
+ Define 1601
+ Macro 1602
+
+ ProjectGroup 1901
+ FileGroup 1902
+
+ TopProject 1921
+
+
+
+ idl
+ ---
+
+ Module 2000
+ Interface 2001
+ Function 2002
+ Service 2003
+ Property 2004
+ Enum 2005
+ EnumValue 2006
+ Typedef 2007
+ Struct 2008
+ StructElement 2009
+ Exception 2010
+ ConstantGroup 2011
+ Constant 2012
+ Singleton 2013
+ Attribute 2014
+ SglIfcService 2015
+ SglIfcSingleton 2016
+
+ BuiltInType 2200
+ CeType 2201
+ Sequence 2202
+ ExplicitType 2203
+ ExplicitNameRoom 2204
+ TemplateParamType 2205
+
+
+ java
+ ----
+ Package 4000
+ Interface 4001
+ Class 4002
+
+ physical location
+ -----------------
+ Root 7000
+ Directory 7030
+ File 7100
+
+
+ info
+ ----
+ CodeInformation
+ (IDL) 11002
+*/
+
+
+} // namespace ary
diff --git a/autodoc/source/ary/kernel/slots.cxx b/autodoc/source/ary/kernel/slots.cxx
new file mode 100644
index 000000000000..ef2e06ae8388
--- /dev/null
+++ b/autodoc/source/ary/kernel/slots.cxx
@@ -0,0 +1,164 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <slots.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary_disp.hxx>
+
+
+
+namespace ary
+{
+
+
+//*********************** Slot ********************//
+
+
+void
+Slot::StoreAt( Display & o_rDestination ) const
+{
+ o_rDestination.StartSlot();
+ StoreEntries(o_rDestination);
+ o_rDestination.FinishSlot();
+}
+
+
+//*********************** Slot_Null ********************//
+
+Slot_Null::~Slot_Null()
+{
+}
+
+void
+Slot_Null::StoreAt( Display & ) const
+{
+ // Does nothing
+}
+
+uintt
+Slot_Null::Size() const
+{
+ return 0;
+}
+
+void
+Slot_Null::StoreEntries( Display & ) const
+{
+ // Does nothing
+}
+
+//*********************** Slot_MapLocalCe ********************//
+
+Slot_MapLocalCe::Slot_MapLocalCe( const cpp::Map_LocalCe & i_rData )
+ : pData(&i_rData)
+{
+}
+
+Slot_MapLocalCe::~Slot_MapLocalCe()
+{
+}
+
+uintt
+Slot_MapLocalCe::Size() const
+{
+ return pData->size();;
+}
+
+void
+Slot_MapLocalCe::StoreEntries( Display & o_rDestination ) const
+{
+ for ( cpp::Map_LocalCe::const_iterator it = pData->begin();
+ it != pData->end();
+ ++it )
+ {
+ o_rDestination.DisplaySlot_LocalCe( (*it).second, (*it).first );
+ }
+}
+
+
+
+//*********************** Slot_MapOperations ********************//
+
+Slot_MapOperations::Slot_MapOperations( const std::multimap<String, cpp::Ce_id> & i_rData )
+ : pData(&i_rData)
+{
+}
+
+Slot_MapOperations::~Slot_MapOperations()
+{
+}
+
+uintt
+Slot_MapOperations::Size() const
+{
+ return pData->size();;
+}
+
+void
+Slot_MapOperations::StoreEntries( Display & o_rDestination ) const
+{
+ for ( std::multimap<String, cpp::Ce_id>::const_iterator it = pData->begin();
+ it != pData->end();
+ ++it )
+ {
+ o_rDestination.DisplaySlot_LocalCe( (*it).second, (*it).first );
+ }
+}
+
+//*********************** Slot_ListLocalCe ********************//
+
+Slot_ListLocalCe::Slot_ListLocalCe( const cpp::List_LocalCe & i_rData )
+ : pData(&i_rData)
+{
+}
+
+Slot_ListLocalCe::~Slot_ListLocalCe()
+{
+}
+
+uintt
+Slot_ListLocalCe::Size() const
+{
+ return pData->size();;
+}
+
+void
+Slot_ListLocalCe::StoreEntries( Display & o_rDestination ) const
+{
+ for ( cpp::List_LocalCe::const_iterator it = pData->begin();
+ it != pData->end();
+ ++it )
+ {
+ o_rDestination.DisplaySlot_LocalCe( (*it).nId, (*it).sLocalName );
+ }
+}
+
+
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loc_dir.cxx b/autodoc/source/ary/loc/loc_dir.cxx
new file mode 100644
index 000000000000..616b8775eca0
--- /dev/null
+++ b/autodoc/source/ary/loc/loc_dir.cxx
@@ -0,0 +1,134 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/loc/loc_dir.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/loc/loc_file.hxx>
+#include <sortedids.hxx>
+#include "locs_le.hxx"
+
+
+namespace ary
+{
+namespace loc
+{
+
+struct Directory::Container
+{
+ typedef SortedIds<Le_Compare> SortedChildList;
+
+ SortedChildList aSubDirectories;
+ SortedChildList aFiles;
+
+ Container()
+ : aSubDirectories(),
+ aFiles()
+ {}
+};
+
+
+
+
+Directory::Directory(Le_id i_assignedRoot)
+ : sLocalName(),
+ nParentDirectory(0),
+ nAssignedRoot(i_assignedRoot),
+ aAssignedNode(),
+ pChildren(new Container)
+{
+ aAssignedNode.Assign_Entity(*this);
+}
+
+Directory::Directory( const String & i_localName,
+ Le_id i_parentDirectory )
+ : sLocalName(i_localName),
+ nParentDirectory(i_parentDirectory),
+ nAssignedRoot(0),
+ aAssignedNode(),
+ pChildren(new Container)
+{
+ aAssignedNode.Assign_Entity(*this);
+}
+
+Directory::~Directory()
+{
+}
+
+void
+Directory::Add_Dir(const Directory & i_dir)
+{
+ pChildren->aSubDirectories.Add(i_dir.LeId());
+}
+
+void
+Directory::Add_File(const File & i_file)
+{
+ pChildren->aFiles.Add(i_file.LeId());
+}
+
+Le_id
+Directory::Search_Dir(const String & i_name) const
+{
+ return pChildren->aSubDirectories.Search(i_name);
+}
+
+Le_id
+Directory::Search_File(const String & i_name) const
+{
+ return pChildren->aFiles.Search(i_name);
+}
+
+void
+Directory::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Directory::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Directory::inq_LocalName() const
+{
+ return sLocalName;
+}
+
+Le_id
+Directory::inq_ParentDirectory() const
+{
+ return nParentDirectory;
+}
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loc_file.cxx b/autodoc/source/ary/loc/loc_file.cxx
new file mode 100644
index 000000000000..5a7a67089e17
--- /dev/null
+++ b/autodoc/source/ary/loc/loc_file.cxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/loc/loc_file.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+File::File( const String & i_sLocalName,
+ Le_id i_nParentDirectory )
+ : FileBase(i_sLocalName, i_nParentDirectory)
+{
+}
+
+File::~File()
+{
+}
+
+void
+File::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor, *this);
+}
+
+ClassId
+File::get_AryClass() const
+{
+ return class_id;
+}
+
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loc_filebase.cxx b/autodoc/source/ary/loc/loc_filebase.cxx
new file mode 100644
index 000000000000..f7a6afcc4858
--- /dev/null
+++ b/autodoc/source/ary/loc/loc_filebase.cxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/loc/loc_filebase.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+FileBase::FileBase( const String & i_localName,
+ Le_id i_parentDirectory )
+ : sLocalName(i_localName),
+ nParentDirectory(i_parentDirectory)
+{
+}
+
+const String &
+FileBase::inq_LocalName() const
+{
+ return sLocalName;
+}
+
+Le_id
+FileBase::inq_ParentDirectory() const
+{
+ return nParentDirectory;
+}
+
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loc_root.cxx b/autodoc/source/ary/loc/loc_root.cxx
new file mode 100644
index 000000000000..3cf8e47c1181
--- /dev/null
+++ b/autodoc/source/ary/loc/loc_root.cxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/loc/loc_root.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+Root::Root(const csv::ploc::Path & i_path)
+ : aPath(i_path),
+ sPathAsString(),
+ aMyDirectory(0)
+{
+ StreamLock
+ path_string(700);
+ path_string() << i_path;
+ sPathAsString = path_string().c_str();
+}
+
+Root::~Root()
+{
+}
+
+void
+Root::do_Accept(csv::ProcessorIfc & io_processor) const
+{
+ csv::CheckedCall(io_processor,*this);
+}
+
+ClassId
+Root::get_AryClass() const
+{
+ return class_id;
+}
+
+const String &
+Root::inq_LocalName() const
+{
+ return sPathAsString;
+}
+
+Le_id
+Root::inq_ParentDirectory() const
+{
+ return Le_id::Null_();
+}
+
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loc_traits.cxx b/autodoc/source/ary/loc/loc_traits.cxx
new file mode 100644
index 000000000000..875b6aae17ee
--- /dev/null
+++ b/autodoc/source/ary/loc/loc_traits.cxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary/loc/loc_traits.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/namesort.hxx>
+#include <ary/getncast.hxx>
+#include "locs_le.hxx"
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+//******************** Le_Traits ************************//
+Le_Traits::entity_base_type &
+Le_Traits::EntityOf_(id_type i_id)
+{
+ csv_assert(i_id.IsValid());
+ return Le_Storage::Instance_()[i_id];
+}
+
+//******************** LeNode_Traits ************************//
+symtree::Node<LeNode_Traits> *
+LeNode_Traits::NodeOf_(entity_base_type & io_entity)
+{
+ if (is_type<Directory>(io_entity))
+ return & ary_cast<Directory>(io_entity).AsNode();
+ return 0;
+}
+
+Le_Traits::entity_base_type *
+LeNode_Traits::ParentOf_(const entity_base_type & i_entity)
+{
+ Le_Traits::id_type
+ ret = i_entity.ParentDirectory();
+ if (ret.IsValid())
+ return &EntityOf_(ret);
+ return 0;
+}
+
+//******************** Le_Compare ************************//
+const Le_Compare::key_type &
+Le_Compare::KeyOf_(const entity_base_type & i_entity)
+{
+ return i_entity.LocalName();
+}
+
+bool
+Le_Compare::Lesser_( const key_type & i_1,
+ const key_type & i_2 )
+{
+ static ::ary::LesserName less_;
+ return less_(i_1,i_2);
+}
+
+
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loca_le.cxx b/autodoc/source/ary/loc/loca_le.cxx
new file mode 100644
index 000000000000..27a4339fc93d
--- /dev/null
+++ b/autodoc/source/ary/loc/loca_le.cxx
@@ -0,0 +1,181 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "loca_le.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/loc/loc_dir.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/loc_root.hxx>
+#include <loc_internalgate.hxx>
+#include "locs_le.hxx"
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+DYN LocationPilot &
+InternalGate::Create_Locations_()
+{
+ return *new LocationAdmin;
+}
+
+
+
+
+inline Le_Storage &
+LocationAdmin::Storage() const
+{
+ csv_assert(pStorage);
+ return *pStorage.MutablePtr();
+}
+
+
+LocationAdmin::LocationAdmin()
+ : pStorage(new Le_Storage)
+{
+}
+
+LocationAdmin::~LocationAdmin()
+{
+}
+
+Root &
+LocationAdmin::CheckIn_Root(const csv::ploc::Path & i_path)
+{
+ Dyn<Root>
+ p_new( new Root(i_path) );
+
+ Le_id
+ id = Storage().RootIndex().Search(p_new->LocalName());
+ if ( id.IsValid() )
+ {
+ return ary_cast<Root>(Storage()[id]);
+ }
+
+ Root *
+ ret = p_new.Ptr();
+ Storage().Store_Entity(*p_new.Release());
+ Storage().RootIndex().Add(ret->LeId());
+
+ Directory *
+ p_rootdir = new Directory(ret->LeId());
+ Storage().Store_Entity(*p_rootdir);
+ ret->Assign_Directory(p_rootdir->LeId());
+
+ return *ret;
+}
+
+File &
+LocationAdmin::CheckIn_File( const String & i_name,
+ const csv::ploc::DirectoryChain & i_subPath,
+ Le_id i_root )
+{
+ Root &
+ root = Find_Root(i_root);
+ Directory &
+ parent_dir = CheckIn_Directories(
+ Find_Directory(root.MyDir()),
+ i_subPath.Begin(),
+ i_subPath.End() );
+ Le_id
+ fid = parent_dir.Search_File(i_name);
+ if (NOT fid.IsValid())
+ {
+ File *
+ ret = new File(i_name, parent_dir.LeId());
+ Storage().Store_Entity(*ret);
+ parent_dir.Add_File(*ret);
+ return *ret;
+ }
+ else
+ {
+ return Find_File(fid);
+ }
+}
+
+Root &
+LocationAdmin::Find_Root(Le_id i_id) const
+{
+ return ary_cast<Root>(Storage()[i_id]);
+}
+
+Directory &
+LocationAdmin::Find_Directory(Le_id i_id) const
+{
+ return ary_cast<Directory>(Storage()[i_id]);
+}
+
+File &
+LocationAdmin::Find_File(Le_id i_id) const
+{
+ return ary_cast<File>(Storage()[i_id]);
+}
+
+Directory &
+LocationAdmin::CheckIn_Directory( Directory & io_parent,
+ const String & i_name )
+{
+ Le_id
+ did = io_parent.Search_Dir(i_name);
+ if (NOT did.IsValid())
+ {
+ Directory *
+ ret = new Directory(i_name, io_parent.LeId());
+ Storage().Store_Entity(*ret);
+ io_parent.Add_Dir(*ret);
+ return *ret;
+ }
+ else
+ {
+ return Find_Directory(did);
+ }
+}
+
+Directory &
+LocationAdmin::CheckIn_Directories(
+ Directory & io_root,
+ StringVector::const_iterator i_beginSubPath,
+ StringVector::const_iterator i_endSubPath )
+{
+ if (i_beginSubPath == i_endSubPath)
+ return io_root;
+
+ Directory &
+ next = CheckIn_Directory(io_root, *i_beginSubPath);
+ return CheckIn_Directories(next, i_beginSubPath+1, i_endSubPath);
+}
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/loca_le.hxx b/autodoc/source/ary/loc/loca_le.hxx
new file mode 100644
index 000000000000..a898f34c104f
--- /dev/null
+++ b/autodoc/source/ary/loc/loca_le.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_LOCA_LE_HXX
+#define ARY_LOC_LOCA_LE_HXX
+
+// BASE CLASSES
+#include <ary/loc/locp_le.hxx>
+
+namespace ary
+{
+namespace loc
+{
+ class Le_Storage;
+}
+}
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** Provides access to files and directories stored in the
+ repository.
+*/
+class LocationAdmin : public LocationPilot
+{
+ public:
+ LocationAdmin();
+ virtual ~LocationAdmin();
+
+ // INHERITED
+ // Interface LocationPilot:
+ virtual Root & CheckIn_Root(
+ const csv::ploc::Path &
+ i_rPath );
+ virtual File & CheckIn_File(
+ const String & i_name,
+ const csv::ploc::DirectoryChain &
+ i_subPath,
+ Le_id i_root );
+
+ virtual Root & Find_Root(
+ Le_id i_id ) const;
+ virtual Directory & Find_Directory(
+ Le_id i_id ) const;
+ virtual File & Find_File(
+ Le_id i_id ) const;
+ private:
+ // Locals
+ Le_Storage & Storage() const;
+ Directory & CheckIn_Directory(
+ Directory & io_parent,
+ const String & i_name );
+ Directory & CheckIn_Directories(
+ Directory & io_root,
+ StringVector::const_iterator
+ i_beginSubPath,
+ StringVector::const_iterator
+ i_endSubPath );
+ // DATA
+ Dyn<Le_Storage> pStorage;
+};
+
+
+
+
+} // namespace loc
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/loc/locs_le.cxx b/autodoc/source/ary/loc/locs_le.cxx
new file mode 100644
index 000000000000..6031dc2c92d4
--- /dev/null
+++ b/autodoc/source/ary/loc/locs_le.cxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "locs_le.hxx"
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace
+{
+ const uintt
+ C_nReservedElements = ary::loc::predefined::le_MAX; // Skipping "0"
+}
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+Le_Storage * Le_Storage::pInstance_ = 0;
+
+
+
+
+Le_Storage::Le_Storage()
+ : stg::Storage<LocationEntity>(C_nReservedElements)
+{
+ csv_assert(pInstance_ == 0);
+ pInstance_ = this;
+}
+
+Le_Storage::~Le_Storage()
+{
+ csv_assert(pInstance_ != 0);
+ pInstance_ = 0;
+}
+
+
+} // namespace loc
+} // namespace ary
diff --git a/autodoc/source/ary/loc/locs_le.hxx b/autodoc/source/ary/loc/locs_le.hxx
new file mode 100644
index 000000000000..19301dffa2f2
--- /dev/null
+++ b/autodoc/source/ary/loc/locs_le.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_LOC_LOCS_LE_HXX
+#define ARY_LOC_LOCS_LE_HXX
+
+// BASE CLASSES
+#include <store/s_storage.hxx>
+// USED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/loc/loc_le.hxx>
+#include <ary/loc/loc_root.hxx>
+#include <sortedids.hxx>
+
+
+
+
+namespace ary
+{
+namespace loc
+{
+
+
+/** The data base for all ->ary::cpp::CodeEntity objects.
+*/
+class Le_Storage : public ::ary::stg::Storage<LocationEntity>
+{
+ public:
+ typedef SortedIds<Le_Compare> Index;
+
+ Le_Storage();
+ virtual ~Le_Storage();
+
+ const Index & RootIndex() const { return aRoots; }
+ Index & RootIndex() { return aRoots; }
+
+ static Le_Storage & Instance_() { csv_assert(pInstance_ != 0);
+ return *pInstance_; }
+ private:
+ // DATA
+ Index aRoots;
+
+ static Le_Storage * pInstance_;
+};
+
+
+
+
+namespace predefined
+{
+
+enum E_LocationEntity
+{
+ le_MAX = 1
+};
+
+} // namespace predefined
+
+
+
+
+} // namespace cpp
+} // namespace ary
+#endif
diff --git a/autodoc/source/ary/loc/makefile.mk b/autodoc/source/ary/loc/makefile.mk
new file mode 100644
index 000000000000..e4aa0e9b43f5
--- /dev/null
+++ b/autodoc/source/ary/loc/makefile.mk
@@ -0,0 +1,61 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary_loc
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/loc_dir.obj \
+ $(OBJ)$/loc_file.obj \
+ $(OBJ)$/loc_filebase.obj \
+ $(OBJ)$/loc_root.obj \
+ $(OBJ)$/loc_traits.obj \
+ $(OBJ)$/loca_le.obj \
+ $(OBJ)$/locs_le.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/autodoc/source/ary_i/kernel/ci_atag2.cxx b/autodoc/source/ary_i/kernel/ci_atag2.cxx
new file mode 100644
index 000000000000..d15a86f8aa9d
--- /dev/null
+++ b/autodoc/source/ary_i/kernel/ci_atag2.cxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary_i/ci_atag2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary_i/disdocum.hxx>
+
+
+namespace ary
+{
+namespace inf
+{
+
+void DocuTag_Display::Display_TextToken(
+ const csi::dsapi::DT_TextToken & ) {}
+void DocuTag_Display::Display_White() {}
+void DocuTag_Display::Display_MupType(
+ const csi::dsapi::DT_MupType & ) {}
+void DocuTag_Display::Display_MupMember(
+ const csi::dsapi::DT_MupMember & ) {}
+void DocuTag_Display::Display_MupConst(
+ const csi::dsapi::DT_MupConst & ) {}
+void DocuTag_Display::Display_Style(
+ const csi::dsapi::DT_Style & ) {}
+void DocuTag_Display::Display_EOL() {}
+
+
+} // namespace inf
+} // namespace ary
+
diff --git a/autodoc/source/ary_i/kernel/ci_text2.cxx b/autodoc/source/ary_i/kernel/ci_text2.cxx
new file mode 100644
index 000000000000..37dbe4b159a8
--- /dev/null
+++ b/autodoc/source/ary_i/kernel/ci_text2.cxx
@@ -0,0 +1,139 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary_i/ci_text2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary_i/disdocum.hxx>
+#include <ary_i/d_token.hxx>
+
+
+namespace ary
+{
+namespace inf
+{
+
+DocuTex2::DocuTex2()
+{
+}
+
+DocuTex2::~DocuTex2()
+{
+ for ( TokenList::iterator iter = aTokens.begin();
+ iter != aTokens.end();
+ ++iter )
+ {
+ delete (*iter);
+ }
+}
+
+void
+DocuTex2::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ for ( ary::inf::DocuTex2::TokenList::const_iterator
+ iter = aTokens.begin();
+ iter != aTokens.end();
+ ++iter )
+ {
+ (*iter)->DisplayAt(o_rDisplay);
+ }
+}
+
+void
+DocuTex2::AddToken( DYN DocuToken & let_drToken )
+{
+ if (aTokens.empty())
+ {
+ if (let_drToken.IsWhiteOnly())
+ return;
+ }
+ aTokens.push_back(&let_drToken);
+}
+
+bool
+DocuTex2::IsEmpty() const
+{
+ for ( ary::inf::DocuTex2::TokenList::const_iterator
+ iter = aTokens.begin();
+ iter != aTokens.end();
+ ++iter )
+ {
+ return false;
+ }
+ return true;
+}
+
+using csi::dsapi::DT_TextToken;
+
+const String &
+DocuTex2::TextOfFirstToken() const
+{
+ if (NOT aTokens.empty())
+ {
+ const DT_TextToken *
+ pTok = dynamic_cast< const DT_TextToken* >(*aTokens.begin());
+
+ if (pTok != 0)
+ return pTok->GetTextStr();
+ }
+ return String::Null_();
+}
+
+String &
+DocuTex2::Access_TextOfFirstToken()
+{
+ if (NOT aTokens.empty())
+ {
+ DT_TextToken *
+ pTok = dynamic_cast< DT_TextToken* >(*aTokens.begin());
+
+ if (pTok != 0)
+ return pTok->Access_Text();
+ }
+
+ static String sDummy_;
+ return sDummy_;
+}
+
+
+
+void DocuText_Display::Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag & ) {}
+void DocuText_Display::Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag & ) {}
+void DocuText_Display::Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag & ) {}
+void DocuText_Display::Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag & ) {}
+
+
+
+} // namespace inf
+} // namespace ary
+
diff --git a/autodoc/source/ary_i/kernel/d_token.cxx b/autodoc/source/ary_i/kernel/d_token.cxx
new file mode 100644
index 000000000000..469c553c965c
--- /dev/null
+++ b/autodoc/source/ary_i/kernel/d_token.cxx
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <ary_i/d_token.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary_i/disdocum.hxx>
+
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+bool
+DT_Dsapi::IsWhiteOnly() const
+{
+ return false;
+}
+
+DT_TextToken::~DT_TextToken()
+{
+}
+
+void
+DT_TextToken::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_TextToken( *this );
+}
+
+bool
+DT_TextToken::IsWhiteOnly() const
+{
+ for ( const char * it = sText.c_str();
+ static_cast<UINT8>(*it) > 32;
+ ++it )
+ {
+ return false;
+ }
+ return true;
+}
+
+DT_White::~DT_White()
+{
+}
+
+void
+DT_White::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_White();
+}
+
+bool
+DT_White::IsWhiteOnly() const
+{
+ return true;
+}
+
+DT_MupType::~DT_MupType()
+{
+}
+
+void
+DT_MupType::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_MupType( *this );
+}
+
+DT_MupMember::~DT_MupMember()
+{
+}
+
+void
+DT_MupMember::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_MupMember( *this );
+}
+
+DT_MupConst::~DT_MupConst()
+{
+}
+
+void
+DT_MupConst::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_MupConst( *this );
+}
+
+DT_Style::~DT_Style()
+{
+}
+
+void
+DT_Style::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_Style( *this );
+}
+
+DT_EOL::~DT_EOL()
+{
+}
+
+void
+DT_EOL::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_EOL();
+}
+
+bool
+DT_EOL::IsWhiteOnly() const
+{
+ return true;
+}
+
+DT_StdAtTag::~DT_StdAtTag()
+{
+}
+
+void
+DT_StdAtTag::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_StdAtTag( *this );
+}
+
+DT_SeeAlsoAtTag::~DT_SeeAlsoAtTag()
+{
+}
+
+void
+DT_SeeAlsoAtTag::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_SeeAlsoAtTag( *this );
+}
+
+DT_ParameterAtTag::~DT_ParameterAtTag()
+{
+}
+
+void
+DT_ParameterAtTag::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_ParameterAtTag( *this );
+}
+
+DT_SinceAtTag::~DT_SinceAtTag()
+{
+}
+
+void
+DT_SinceAtTag::DisplayAt( DocumentationDisplay & o_rDisplay ) const
+{
+ o_rDisplay.Display_SinceAtTag( *this );
+}
+
+
+
+
+} // namespace dsapi
+} // namespace csi
diff --git a/autodoc/source/ary_i/kernel/makefile.mk b/autodoc/source/ary_i/kernel/makefile.mk
new file mode 100644
index 000000000000..79675bc03c81
--- /dev/null
+++ b/autodoc/source/ary_i/kernel/makefile.mk
@@ -0,0 +1,60 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=ary2_cinfo
+
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/ci_atag2.obj \
+ $(OBJ)$/ci_text2.obj \
+ $(OBJ)$/d_token.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/html/aryattrs.cxx b/autodoc/source/display/html/aryattrs.cxx
new file mode 100644
index 000000000000..7b0fcea14cd7
--- /dev/null
+++ b/autodoc/source/display/html/aryattrs.cxx
@@ -0,0 +1,248 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "aryattrs.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/getncast.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include "strconst.hxx"
+
+
+
+
+//******************** HtmlDisplay_Impl *********************//
+
+const char *
+Get_ClassTypeKey( const ary::cpp::Class & i_rClass )
+{
+ return i_rClass.ClassKey() == ary::cpp::CK_class
+ ? C_sHFTypeTitle_Class
+ : i_rClass.ClassKey() == ary::cpp::CK_struct
+ ? C_sHFTypeTitle_Struct
+ : C_sHFTypeTitle_Union;
+
+}
+
+const char *
+Get_TypeKey( const ary::cpp::CodeEntity & i_rCe )
+{
+ if ( ary::is_type<ary::cpp::Class>(i_rCe) )
+ {
+ return Get_ClassTypeKey(
+ ary::ary_cast<ary::cpp::Class>(i_rCe) );
+ }
+ if ( ary::is_type<ary::cpp::Enum>(i_rCe) )
+ {
+ return "enum";
+ }
+ return "";
+}
+
+bool
+Ce_IsInternal( const ary::cpp::CodeEntity & i_rCe )
+{
+ return NOT i_rCe.IsVisible();
+}
+
+const char *
+SyntaxText_PreName( const ary::cpp::Function & i_rFunction,
+ const ary::cpp::Gate & i_rAryGate )
+{
+ static StreamStr sResult( 150 );
+ sResult.seekp(0);
+
+ // write pre-name:
+ const ary::cpp::FunctionFlags & rFlags = i_rFunction.Flags();
+ if ( rFlags.IsStaticLocal() OR rFlags.IsStaticMember() )
+ sResult << "static ";
+ if ( rFlags.IsExplicit() )
+ sResult << "explicit ";
+ if ( rFlags.IsMutable() )
+ sResult << "mutable ";
+ if ( i_rFunction.Virtuality() != ary::cpp::VIRTUAL_none )
+ sResult << "virtual ";
+ i_rAryGate.Types().Get_TypeText( sResult, i_rFunction.ReturnType() );
+ sResult << " ";
+
+ return sResult.c_str();
+}
+
+const char *
+SyntaxText_PostName( const ary::cpp::Function & i_rFunction,
+ const ary::cpp::Gate & i_rAryGate )
+{
+ static StreamStr sResult( 850 );
+ sResult.seekp(0);
+
+ // parameters and con_vol
+ i_rAryGate.Ces().Get_SignatureText( sResult, i_rFunction.Signature(), &i_rFunction.ParamInfos() );
+
+ // write Exceptions:
+ const std::vector< ary::cpp::Type_id > *
+ pThrow = i_rFunction.Exceptions();
+ if ( pThrow)
+ {
+
+ std::vector< ary::cpp::Type_id >::const_iterator
+ it = pThrow->begin();
+ std::vector< ary::cpp::Type_id >::const_iterator
+ it_end = pThrow->end();
+
+ if (it != it_end)
+ {
+ sResult << " throw( ";
+ i_rAryGate.Types().Get_TypeText(sResult, *it);
+
+ for ( ++it; it != it_end; ++it )
+ {
+ sResult << ", ";
+ i_rAryGate.Types().Get_TypeText(sResult, *it);
+ }
+ sResult << " )";
+ }
+ else
+ {
+ sResult << " throw( )";
+ }
+ } // endif // pThrow
+
+ // abstractness:
+ if ( i_rFunction.Virtuality() == ary::cpp::VIRTUAL_abstract )
+ sResult << " = 0";
+
+ // finish:
+ sResult << ";";
+
+ return sResult.c_str();
+}
+
+bool
+Get_TypeText( const char * & o_rPreName,
+ const char * & o_rName,
+ const char * & o_rPostName,
+ ary::cpp::Type_id i_nTypeid,
+ const ary::cpp::Gate & i_rAryGate )
+{
+ static StreamStr sResult_PreName(250);
+ static StreamStr sResult_Name(250);
+ static StreamStr sResult_PostName(250);
+
+ sResult_PreName.seekp(0);
+ sResult_Name.seekp(0);
+ sResult_PostName.seekp(0);
+
+ bool ret = i_rAryGate.Types().Get_TypeText(
+ sResult_PreName,
+ sResult_Name,
+ sResult_PostName,
+ i_nTypeid );
+ if ( sResult_PreName.tellp() > 0 )
+ {
+ char cLast = *( sResult_PreName.c_str() + (sResult_PreName.tellp() - 1) );
+ if (cLast != ':' AND cLast != ' ')
+ sResult_PreName << " ";
+ }
+
+
+ if (ret)
+ {
+ o_rPreName = sResult_PreName.c_str();
+ o_rName = sResult_Name.c_str();
+ o_rPostName = sResult_PostName.c_str();
+ }
+ else
+ {
+ o_rPreName = o_rName = o_rPostName = "";
+ }
+ return ret;
+}
+
+
+
+
+//********************* FunctionParam_Iterator *****************//
+
+
+FunctionParam_Iterator::FunctionParam_Iterator()
+ : // itTypes
+ // itTypes_end
+ // itNames_andMore
+ // itNames_andMore_end
+ eConVol(ary::cpp::CONVOL_none)
+{
+ static std::vector<ary::cpp::Type_id> aTypesNull_;
+ static StringVector aNamesNull_;
+
+ itTypes = itTypes_end = aTypesNull_.end();
+ itNames_andMore = itNames_andMore_end = aNamesNull_.end();
+}
+
+FunctionParam_Iterator::~FunctionParam_Iterator()
+{
+}
+
+FunctionParam_Iterator &
+FunctionParam_Iterator::operator++()
+{
+ if ( IsValid() )
+ {
+ ++itTypes;
+ ++itNames_andMore;
+ }
+ return *this;
+}
+
+void
+FunctionParam_Iterator::Assign( const ary::cpp::Function & i_rFunction )
+{
+ const ary::cpp::OperationSignature &
+ rSigna = i_rFunction.Signature();
+
+ const std::vector<ary::cpp::Type_id> &
+ rTypes = rSigna.Parameters();
+ const StringVector &
+ rNames = i_rFunction.ParamInfos();
+
+ if ( rTypes.size() != rNames.size() OR rTypes.size() == 0 )
+ return;
+
+ itTypes = rTypes.begin();
+ itTypes_end = rTypes.end();
+ itNames_andMore = rNames.begin();
+ itNames_andMore_end = rNames.end();
+
+ eConVol = rSigna.ConVol();
+}
diff --git a/autodoc/source/display/html/aryattrs.hxx b/autodoc/source/display/html/aryattrs.hxx
new file mode 100644
index 000000000000..053b445ac7eb
--- /dev/null
+++ b/autodoc/source/display/html/aryattrs.hxx
@@ -0,0 +1,154 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_ARYATTRS_HXX
+#define ADC_DISPLAY_ARYATTRS_HXX
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/doc/d_docu.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ class CodeEntity;
+ class Class;
+ class DisplayGate;
+ class Function;
+ class Namespace;
+ }
+}
+
+
+
+
+const char * Get_ClassTypeKey(
+ const ary::cpp::Class & i_rClass );
+const char * Get_TypeKey(
+ const ary::cpp::CodeEntity &
+ i_rCe );
+bool Ce_IsInternal(
+ const ary::cpp::CodeEntity &
+ i_rCe );
+const char * SyntaxText_PreName(
+ const ary::cpp::Function &
+ i_rFunction,
+ const ary::cpp::Gate & i_rAryGate );
+const char * SyntaxText_PostName(
+ const ary::cpp::Function &
+ i_rFunction,
+ const ary::cpp::Gate & i_rAryGate );
+
+bool Get_TypeText(
+ const char * & o_rPreName,
+ const char * & o_rName,
+ const char * & o_rPostName,
+ ary::cpp::Type_id i_nTypeid,
+ const ary::cpp::Gate & i_rAryGate );
+
+
+inline const ary::doc::OldCppDocu *
+Get_CppDocu(const ary::doc::Documentation & i_doc)
+{
+ return dynamic_cast< const ary::doc::OldCppDocu* >(i_doc.Data());
+}
+
+
+class FunctionParam_Iterator
+{
+ public:
+ FunctionParam_Iterator();
+ ~FunctionParam_Iterator();
+
+ operator bool() const;
+ FunctionParam_Iterator &
+ operator++();
+
+ void Assign(
+ const ary::cpp::Function &
+ i_rFunction );
+
+ ary::cpp::Type_id
+ CurType() const;
+ const String & CurName() const;
+
+ bool IsFunctionConst() const;
+ bool IsFunctionVolatile() const;
+
+ private:
+ typedef std::vector<ary::cpp::Type_id>::const_iterator Type_Iterator;
+ typedef StringVector::const_iterator Name_Iterator;
+
+ bool IsValid() const;
+
+ // Forbidden
+ FunctionParam_Iterator &
+ operator++(int);
+ // DATA
+ Type_Iterator itTypes;
+ Type_Iterator itTypes_end;
+ Name_Iterator itNames_andMore; /// Name, init-value.
+ Name_Iterator itNames_andMore_end;
+
+ ary::cpp::E_ConVol eConVol;
+};
+
+
+
+
+// IMPLEMENTATION
+inline
+FunctionParam_Iterator::operator bool() const
+ { return IsValid(); }
+
+inline bool
+FunctionParam_Iterator::IsValid() const
+{
+ // By C'tor and Assign(), it is assured, that
+ // both iterators are valid, if one is valid.
+ return itTypes != itTypes_end;
+}
+
+inline ary::cpp::Type_id
+FunctionParam_Iterator::CurType() const
+ { return IsValid() ? *itTypes : ary::cpp::Type_id(0); }
+inline const String &
+FunctionParam_Iterator::CurName() const
+ { return IsValid() ? *itNames_andMore : String::Null_(); }
+inline bool
+FunctionParam_Iterator::IsFunctionConst() const
+ { return (eConVol & ary::cpp::CONVOL_const) != 0; }
+inline bool
+FunctionParam_Iterator::IsFunctionVolatile() const
+ { return (eConVol & ary::cpp::CONVOL_volatile) != 0; }
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/cfrstd.cxx b/autodoc/source/display/html/cfrstd.cxx
new file mode 100644
index 000000000000..3bf56afb07cc
--- /dev/null
+++ b/autodoc/source/display/html/cfrstd.cxx
@@ -0,0 +1,344 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <cfrstd.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <time.h>
+
+
+/* CSS Styles
+ ----------
+
+Colors:
+- light background color #eeeeff
+- dark background color #ccccff
+- self in navibar background color #2222ad
+
+
+Fonts:
+- page title 20, bold, Arial
+- navibar main 12, bold, Arial
+- navibar sub 8, Arial, kapitlchen
+- attrtable title line 8, bold, Arial, kapitlchen
+- attrtable value line 8, Arial kapitlchen
+
+- namespace chain 13, bold
+- table title 13, bold
+- template line 13
+
+- member paragraph title 12, bold
+
+- docu paragraph title 11, bold
+- standard text 11
+
+- hierarchy 11, monospace
+
+
+classes:
+
+ td.title page title
+ h3 table title
+ h4 member paragraph title
+
+ td.nmain navigation main bar
+ td.nsub navigation sub bar
+ a.nmain links in navigation main bar
+ a.nsub links in navigation sub bar
+
+ td.attr1 attribute table head line
+ td.attr2 attribute table value line
+
+ p.namechain namespace chain in head of pages
+ p.tpl template line in head of pages
+
+ pre.doc preformatted docu
+ pre.hierarchy class bases hierarchy graphic
+
+ dl.syntax function- or variable-declaration field
+ a.syntax link in function- or variable-declaration field
+
+ p.dt docu paragraph title
+ dl.dt docu paragraph title
+
+ p standard text
+ dl standard text
+ dd standard text
+*/
+
+
+#define CRLF "\n"
+
+namespace
+{
+
+bool bUse_OOoFrameDiv = true;
+
+
+//*************** These are used for IDL currently only! ********************
+
+const char * const C_sStdStyle =
+ "/*See bottom of file for explanations.*/"CRLF
+ CRLF
+ "body { background-color:#ffffff; }"CRLF
+ CRLF
+ "h3 { font-size:13pt; font-weight:bold;"CRLF
+ " margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "p, dt, dd, pre { font-size:11pt;"CRLF
+ " margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "pre { font-family:monospace; }"CRLF
+ CRLF
+ "table.navimain { background-color:#eeeeff; }"CRLF
+ "table.subtitle { margin-top:6pt; margin-bottom:6pt; }"CRLF
+ CRLF
+ "td { font-size:11pt; }"CRLF
+ "td.title { font-family: Arial; font-size:19pt; font-weight:bold;"CRLF
+ " line-height:30pt; background-color:#ccccff; text-align:center; }"CRLF
+ "td.subtitle { font-family: Arial; font-size:13pt;"CRLF
+ " line-height:20pt; background-color:#ccccff; }"CRLF
+ "td.crosstitle { font-size:12pt; font-weight:bold;"CRLF
+ " line-height:15pt; background-color:#eeeeff; }"CRLF
+ "td.imdetail { width:100%; background-color:#eeeeff; }"CRLF
+ CRLF
+ "td.imsum_left { width:30%; }"CRLF
+ "td.imsum_right { width:70%; }"CRLF
+ CRLF
+ "td.navimain, a.navimain"CRLF
+ " { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "td.navimainself { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold;"CRLF
+ " color:#ffffff; background-color:#2222ad; }"CRLF
+ "td.navimainnone { text-align:center; font-family: Arial; font-size:12pt; }"CRLF
+ "td.navisub, a.navisub"CRLF
+ " { text-align:center; font-family: Arial; font-size:9pt; font-variant:small-caps; }"CRLF
+ "td.navimain, td.navisub"CRLF
+ " { padding-left:7pt; padding-right:7pt; }"CRLF
+ CRLF
+ "a.membertitle { font-size:12pt; font-weight:bold; line-height:18pt; }"CRLF
+ "a.navimain, a.navisub { color:#000000; }"CRLF
+ ".dt { font-weight:bold; }"CRLF
+ ".namechain { font-size:13pt; font-weight:bold;"CRLF
+ " margin-top:3pt; margin-bottom:6pt; }"CRLF
+ ".title2 { font-size:13pt; font-style:italic; font-weight:bold; text-align:left; }"CRLF
+ ;
+
+
+const char * const C_sCssExplanations =
+ "/* Explanation of CSS classes:"CRLF
+ CRLF
+ ".navimain Text in main navigation bar."CRLF
+ ".navisub Text in lower navigation bar."CRLF
+ "td.navimainself Cell in main navigation bar with \"selected\" shadow: You are here."CRLF
+ "td.navimainnone Cell in main navigation bar with no link."CRLF
+ CRLF
+ ".namechain Line with current module path."CRLF
+ CRLF
+ "td.crosstitle Comment box for bases (base interfaces etc.)"CRLF
+ "td.imsum_left Left part of such boxes."CRLF
+ "td.imsum_right Right part of such boxes."CRLF
+ CRLF
+ "td.title Main title of the page like \"interface XYz\""CRLF
+ ".subtitle Tables, and head cells of those, which list members"CRLF
+ " like \"method summary\" and \"method details\"."CRLF
+ CRLF
+ "td.imdetail Background table of method's detail description."CRLF
+ "a.membertitle Method name (as jump label) in method's detail"CRLF
+ " description."CRLF
+ ".title2 smaller font prefixes to page titles"CRLF
+ "*/"CRLF
+ ;
+
+const char * const C_sStdStyle_withDivFrame =
+ "/*See bottom of file for explanations.*/"CRLF
+ CRLF
+ "body { background-color:#ffffff; }"CRLF
+ CRLF
+ "#adc-idlref h3 { font-size:13pt; font-weight:bold;"CRLF
+ " margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "#adc-idlref p, #adc-idlref dt, #adc-idlref dd, #adc-idlref pre"CRLF
+ " { font-size:11pt;"CRLF
+ " margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "#adc-idlref pre { font-family:monospace; }"CRLF
+ CRLF
+ "#adc-idlref table.navimain { background-color:#eeeeff; }"CRLF
+ "#adc-idlref table.subtitle { margin-top:6pt; margin-bottom:6pt; }"CRLF
+ CRLF
+ "#adc-idlref td { font-size:11pt; }"CRLF
+ "#adc-idlref td.title { font-family: Arial; font-size:19pt; font-weight:bold;"CRLF
+ " line-height:30pt; background-color:#ccccff; text-align:center; }"CRLF
+ "#adc-idlref td.subtitle { font-family: Arial; font-size:13pt;"CRLF
+ " line-height:20pt; background-color:#ccccff; }"CRLF
+ "#adc-idlref td.crosstitle { font-size:12pt; font-weight:bold;"CRLF
+ " line-height:15pt; background-color:#eeeeff; }"CRLF
+ "#adc-idlref td.imdetail { width:100%; background-color:#eeeeff; }"CRLF
+ CRLF
+ "#adc-idlref td.imsum_left { width:30%; }"CRLF
+ "#adc-idlref td.imsum_right { width:70%; }"CRLF
+ CRLF
+ "#adc-idlref td.navimain, #adc-idlref a.navimain"CRLF
+ " { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "#adc-idlref td.navimainself { text-align:center; font-family: Arial; font-size:12pt; font-weight:bold;"CRLF
+ " color:#ffffff; background-color:#2222ad; }"CRLF
+ "#adc-idlref td.navimainnone { text-align:center; font-family: Arial; font-size:12pt; }"CRLF
+ "#adc-idlref td.navisub, #adc-idlref a.navisub"CRLF
+ " { text-align:center; font-family: Arial; font-size:9pt; font-variant:small-caps; }"CRLF
+ "#adc-idlref td.navimain, #adc-idlref td.navisub"CRLF
+ " { padding-left:7pt; padding-right:7pt; }"CRLF
+ CRLF
+ "#adc-idlref a.membertitle { font-size:12pt; font-weight:bold; line-height:18pt; }"CRLF
+ "#adc-idlref a.navimain, #adc-idlref a.navisub { color:#000000; }"CRLF
+ "#adc-idlref .dt { font-weight:bold; }"CRLF
+ "#adc-idlref .namechain { font-size:13pt; font-weight:bold;"CRLF
+ " margin-top:3pt; margin-bottom:6pt; }"CRLF
+ "#adc-idlref .title2 { font-size:13pt; font-style:italic; font-weight:bold; text-align:left; }"CRLF
+ ""CRLF
+ "#adc-idlref table { empty-cells:show; }"CRLF
+ ""CRLF
+ "#adc-idlref .childlist td, "CRLF
+ "#adc-idlref .commentedlinks td, "CRLF
+ "#adc-idlref .memberlist td, "CRLF
+ "#adc-idlref .subtitle td, "CRLF
+ "#adc-idlref .crosstitle td { border: .1pt solid #000000; }"CRLF
+ ""CRLF
+ "#adc-idlref .flag-table td { border: .1pt solid #cccccc; } "CRLF
+ ""CRLF
+ "#adc-idlref .title-table td, "CRLF
+ "#adc-idlref .table-in-method td, "CRLF
+ "#adc-idlref .table-in-data td, "CRLF
+ "#adc-idlref .navimain td, "CRLF
+ "#adc-idlref .navisub td, "CRLF
+ "#adc-idlref .expl-table td, "CRLF
+ "#adc-idlref .param-table td { border: none; }"CRLF
+ ;
+
+
+} // anonymous namespace
+
+
+StdFrame::StdFrame()
+ : sDevelopersGuideHtmlRoot(),
+ bSimpleLinks(false)
+{
+}
+
+DYN Html_Image *
+StdFrame::LogoSrc() const
+{
+ return 0;
+
+// return new Html_Image( "logodot-blu.gif",
+// "109",
+// "54",
+// "RIGHT",
+// "0",
+// "OpenOffice" );
+
+}
+
+const char *
+StdFrame::LogoLink() const
+{
+ return "";
+// return "http://www.sun.com";
+// return "http://www.openoffice.org";
+}
+
+
+String MakeCopyRight();
+
+const char *
+StdFrame::CopyrightText() const
+{
+ static String sCopyRight_( MakeCopyRight() );
+ return sCopyRight_.c_str();
+}
+
+const char *
+StdFrame::CssStyle() const
+{
+ if (bUse_OOoFrameDiv)
+ return C_sStdStyle_withDivFrame;
+ else
+ return C_sStdStyle;
+}
+
+const char *
+StdFrame::CssStylesExplanation() const
+{
+ return C_sCssExplanations;
+}
+
+const char *
+StdFrame::DevelopersGuideHtmlRoot() const
+{
+ return sDevelopersGuideHtmlRoot;
+}
+
+bool
+StdFrame::SimpleLinks() const
+{
+ return bSimpleLinks;
+}
+
+void
+StdFrame::Set_DevelopersGuideHtmlRoot( const String & i_directory )
+{
+ if (NOT i_directory.empty())
+ {
+ if (i_directory.char_at(i_directory.length()-1) == '/')
+ {
+ sDevelopersGuideHtmlRoot.assign(i_directory,i_directory.length()-1);
+ return;
+ }
+ }
+ sDevelopersGuideHtmlRoot = i_directory;
+}
+
+void
+StdFrame::Set_SimpleLinks()
+{
+ bSimpleLinks = true;
+}
+
+String
+MakeCopyRight()
+{
+ StreamStr cr(700);
+ time_t
+ gt;
+ time(&gt);
+ tm *
+ plt = localtime(&gt);
+ int year = 1900 + plt->tm_year;
+
+ cr << "Copyright &copy; 1995, "
+ << year
+ << ", Oracle and/or its affiliates. All rights reserved.";
+ return String(cr.c_str());
+
+}
diff --git a/autodoc/source/display/html/chd_udk2.cxx b/autodoc/source/display/html/chd_udk2.cxx
new file mode 100644
index 000000000000..f03a9a297c40
--- /dev/null
+++ b/autodoc/source/display/html/chd_udk2.cxx
@@ -0,0 +1,201 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <html/chd_udk2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/ary_disp.hxx>
+#include <ary/ceslot.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/cp_ce.hxx>
+
+#include "dsply_cl.hxx"
+#include "dsply_da.hxx"
+#include "dsply_op.hxx"
+#include "opageenv.hxx"
+#include "outfile.hxx"
+#include "pagemake.hxx"
+
+
+
+//******************** CppHtmlDisplay_Udk2 ********************//
+
+
+CppHtmlDisplay_Udk2::CppHtmlDisplay_Udk2()
+ : pCurPageEnv(0)
+{
+}
+
+CppHtmlDisplay_Udk2::~CppHtmlDisplay_Udk2()
+{
+}
+
+void
+CppHtmlDisplay_Udk2::do_Run( const char * i_sOutputDirectory,
+ const ary::cpp::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ SetRunData( i_sOutputDirectory, i_rAryGate, i_rLayout );
+
+ Create_Css_File();
+ Create_Overview_File();
+ Create_Help_File();
+ Create_AllDefs_File();
+
+ CreateFiles_InSubTree_Namespaces();
+ CreateFiles_InSubTree_Index();
+}
+
+void
+CppHtmlDisplay_Udk2::SetRunData( const char * i_sOutputDirectory,
+ const ary::cpp::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ csv::ploc::Path aOutputDir( i_sOutputDirectory, true );
+ pCurPageEnv = new OuputPage_Environment( aOutputDir, i_rAryGate, i_rLayout );
+}
+
+void
+CppHtmlDisplay_Udk2::Create_Css_File()
+{
+ pCurPageEnv->MoveDir_2Root();
+ pCurPageEnv->SetFile_Css();
+ HtmlDocuFile::WriteCssFile(pCurPageEnv->CurPath());
+}
+
+void
+CppHtmlDisplay_Udk2::Create_Overview_File()
+{
+ pCurPageEnv->MoveDir_2Root();
+ PageDisplay aPageMaker( *pCurPageEnv );
+ aPageMaker.Create_OverviewFile();
+}
+
+void
+CppHtmlDisplay_Udk2::Create_Help_File()
+{
+ PageDisplay aPageMaker( *pCurPageEnv );
+ aPageMaker.Create_HelpFile();
+}
+
+void
+CppHtmlDisplay_Udk2::Create_AllDefs_File()
+{
+ PageDisplay aPageMaker( *pCurPageEnv );
+ aPageMaker.Create_AllDefsFile();
+}
+
+void
+CppHtmlDisplay_Udk2::CreateFiles_InSubTree_Namespaces()
+{
+ Cout() << "\nCreate files in subtree namespaces" << Endl();
+
+ const ary::cpp::Namespace &
+ rGlobalNsp = Gate().Ces().GlobalNamespace();
+
+ RecursiveDisplay_Namespace(rGlobalNsp);
+ Cout() << Endl();
+}
+
+void
+CppHtmlDisplay_Udk2::CreateFiles_InSubTree_Index()
+{
+ Cout() << "\nCreate files in subtree index" << Endl();
+ Cout() << Endl();
+
+ PageDisplay aPageMaker( *pCurPageEnv );
+ aPageMaker.Create_IndexFiles();
+}
+
+void
+CppHtmlDisplay_Udk2::RecursiveDisplay_Namespace( const ary::cpp::Namespace & i_rNsp )
+{
+ if (i_rNsp.Owner().IsValid())
+ pCurPageEnv->MoveDir_Down2( i_rNsp );
+ else
+ pCurPageEnv->MoveDir_2Names();
+ DisplayFiles_InNamespace( i_rNsp );
+
+ typedef std::vector< const ary::cpp::Namespace* > NspList;
+ NspList aSubNspList;
+ i_rNsp.Get_SubNamespaces( aSubNspList );
+ for ( NspList::const_iterator it = aSubNspList.begin();
+ it != aSubNspList.end();
+ ++it )
+ {
+ RecursiveDisplay_Namespace( *(*it) );
+ } // end for
+
+ pCurPageEnv->MoveDir_Up();
+}
+
+void
+CppHtmlDisplay_Udk2::DisplayFiles_InNamespace( const ary::cpp::Namespace & i_rNsp )
+{
+ PageDisplay aPageMaker( *pCurPageEnv );
+
+ ary::Slot_AutoPtr pSlot;
+
+ // Namespace
+ aPageMaker.Create_NamespaceFile();
+
+ // Classes
+ ClassDisplayer aClassDisplayer( *pCurPageEnv );
+ DisplaySlot( aClassDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Classes );
+
+ // Enums
+ DisplaySlot( aPageMaker, i_rNsp, ary::cpp::Namespace::SLOT_Enums );
+
+ // Typedefs
+ DisplaySlot( aPageMaker, i_rNsp, ary::cpp::Namespace::SLOT_Typedefs );
+
+ // Operations
+ OperationsDisplay aOperationsDisplayer( *pCurPageEnv );
+ DisplaySlot( aOperationsDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Operations );
+ aOperationsDisplayer.Create_Files();
+
+ // Data
+ DataDisplay aDataDisplayer( *pCurPageEnv );
+
+ aDataDisplayer.PrepareForConstants();
+ DisplaySlot( aDataDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Constants );
+
+ aDataDisplayer.PrepareForVariables();
+ DisplaySlot( aDataDisplayer, i_rNsp, ary::cpp::Namespace::SLOT_Variables );
+
+ aDataDisplayer.Create_Files();
+}
+
+const ary::cpp::Gate &
+CppHtmlDisplay_Udk2::Gate() const
+{
+ return pCurPageEnv->Gate();
+}
diff --git a/autodoc/source/display/html/cre_link.cxx b/autodoc/source/display/html/cre_link.cxx
new file mode 100644
index 000000000000..688464d53969
--- /dev/null
+++ b/autodoc/source/display/html/cre_link.cxx
@@ -0,0 +1,269 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cre_link.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/locp_le.hxx>
+#include "hdimpl.hxx"
+#include "opageenv.hxx"
+#include "strconst.hxx"
+
+
+
+
+
+LinkCreator::LinkCreator( char * o_rOutput,
+ uintt i_nOutputSize )
+ : pOut(o_rOutput),
+ nOutMaxSize(i_nOutputSize),
+ pEnv(0)
+{
+}
+
+LinkCreator::~LinkCreator()
+{
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Namespace & i_rData )
+{
+ Create_PrePath( i_rData );
+ strcat( pOut, "index.html" ); // KORR_FUTURE // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Class & i_rData )
+{
+ Create_PrePath( i_rData );
+ strcat( pOut, ClassFileName(i_rData.LocalName().c_str()) ); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Enum & i_rData )
+{
+ Create_PrePath( i_rData );
+ strcat( pOut, EnumFileName(i_rData.LocalName().c_str()) ); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Typedef & i_rData )
+{
+ Create_PrePath( i_rData );
+ strcat( pOut, TypedefFileName(i_rData.LocalName().c_str()) ); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Function & i_rData )
+{
+ Create_PrePath( i_rData );
+
+ if ( i_rData.Protection() != ary::cpp::PROTECT_global )
+ {
+ strcat( pOut, "o.html" ); // SAFE STRCAT (#100211# - checked)
+ }
+ else
+ {
+ csv_assert(i_rData.Location().IsValid());
+ const ary::loc::File &
+ rFile = pEnv->Gate().Locations().Find_File(i_rData.Location());
+ strcat( pOut, HtmlFileName("o-", rFile.LocalName().c_str()) ); // SAFE STRCAT (#100211# - checked)
+ }
+
+ csv_assert(pEnv != 0);
+ strcat( pOut, OperationLink(pEnv->Gate(), i_rData.LocalName(), i_rData.CeId()) ); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Variable & i_rData )
+{
+ Create_PrePath( i_rData );
+
+ if ( i_rData.Protection() != ary::cpp::PROTECT_global )
+ {
+ strcat( pOut, "d.html" ); // SAFE STRCAT (#100211# - checked)
+ }
+ else
+ {
+ csv_assert(i_rData.Location().IsValid());
+ const ary::loc::File &
+ rFile = pEnv->Gate().Locations().Find_File(i_rData.Location());
+ strcat( pOut, HtmlFileName("d-", rFile.LocalName().c_str()) ); // SAFE STRCAT (#100211# - checked)
+ }
+
+ strcat( pOut, DataLink(i_rData.LocalName()) ); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::EnumValue & i_rData )
+{
+ const ary::cpp::CodeEntity *
+ pEnum = pEnv->Gate().Ces().Search_Ce(i_rData.Owner());
+ if (pEnum == 0)
+ return;
+
+ pEnum->Accept(*this);
+ strcat(pOut, "#"); // SAFE STRCAT (#100211# - checked)
+ strcat(pOut, i_rData.LocalName().c_str()); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Define & i_rData )
+{
+ // KORR_FUTURE
+ // Only valid from Index:
+
+ *pOut = '\0';
+ strcat(pOut, "../def-all.html#"); // SAFE STRCAT (#100211# - checked)
+ strcat(pOut, i_rData.LocalName().c_str()); // SAFE STRCAT (#100211# - checked)
+}
+
+void
+LinkCreator::do_Process( const ary::cpp::Macro & i_rData )
+{
+ // KORR_FUTURE
+ // Only valid from Index:
+
+ *pOut = '\0';
+ strcat(pOut, "../def-all.html#"); // SAFE STRCAT (#100211# - checked)
+ strcat(pOut, i_rData.LocalName().c_str()); // SAFE STRCAT (#100211# - checked)
+}
+
+
+namespace
+{
+
+class NameScope_const_iterator
+{
+ public:
+ NameScope_const_iterator(
+ ary::cpp::Ce_id i_nId,
+ const ary::cpp::Gate &
+ i_rGate );
+
+ operator bool() const { return pCe != 0; }
+ const String & operator*() const;
+
+ void go_up();
+
+ private:
+ const ary::cpp::CodeEntity *
+ pCe;
+ const ary::cpp::Gate *
+ pGate;
+};
+
+
+NameScope_const_iterator::NameScope_const_iterator(
+ ary::cpp::Ce_id i_nId,
+ const ary::cpp::Gate & i_rGate )
+ : pCe(i_rGate.Ces().Search_Ce(i_nId)),
+ pGate(&i_rGate)
+{
+}
+
+const String &
+NameScope_const_iterator::operator*() const
+{
+ return pCe ? pCe->LocalName()
+ : String::Null_();
+}
+
+void
+NameScope_const_iterator::go_up()
+{
+ if (pCe == 0)
+ return;
+ pCe = pGate->Ces().Search_Ce(pCe->Owner());
+}
+
+
+void Recursive_CreatePath(
+ char * o_pOut,
+ const NameScope_const_iterator &
+ i_it );
+
+void
+Recursive_CreatePath( char * o_pOut,
+ const NameScope_const_iterator & i_it )
+{
+ if (NOT i_it)
+ return;
+
+ NameScope_const_iterator it( i_it );
+ it.go_up();
+ if (NOT it)
+ return; // Global Namespace
+ Recursive_CreatePath( o_pOut, it );
+
+ strcat( o_pOut, (*i_it).c_str() ); // SAFE STRCAT (#100211# - checked)
+ strcat( o_pOut, "/" ); // SAFE STRCAT (#100211# - checked)
+}
+
+
+} // anonymous namespace
+
+
+
+
+
+void
+LinkCreator::Create_PrePath( const ary::cpp::CodeEntity & i_rData )
+{
+ *pOut = NULCH;
+
+ if ( pEnv->CurNamespace() != 0 )
+ {
+ if ( pEnv->CurClass()
+ ? pEnv->CurClass()->CeId() == i_rData.Owner()
+ : pEnv->CurNamespace()->CeId() == i_rData.Owner() )
+ return;
+
+ strcat( pOut, PathUp(pEnv->Depth() - 1) ); // SAFE STRCAT (#100211# - checked)
+ }
+ else
+ { // Within Index
+ strcat( pOut, "../names/" ); // SAFE STRCAT (#100211# - checked)
+ }
+
+ NameScope_const_iterator it( i_rData.Owner(), pEnv->Gate() );
+ Recursive_CreatePath( pOut, it );
+}
diff --git a/autodoc/source/display/html/cre_link.hxx b/autodoc/source/display/html/cre_link.hxx
new file mode 100644
index 000000000000..bd37e83384f4
--- /dev/null
+++ b/autodoc/source/display/html/cre_link.hxx
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_CRE_LINK_HXX
+#define ADC_DISPLAY_CRE_LINK_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace cpp
+{
+ class CodeEntity;
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+ class EnumValue;
+ class Define;
+ class Macro;
+}
+}
+
+
+class OuputPage_Environment;
+
+
+
+/** Displays links to ->{ary::cpp::CodeEntity CodeEntites}.
+*/
+class LinkCreator : public csv::ProcessorIfc,
+ public csv::ConstProcessor<ary::cpp::Namespace>,
+ public csv::ConstProcessor<ary::cpp::Class>,
+ public csv::ConstProcessor<ary::cpp::Enum>,
+ public csv::ConstProcessor<ary::cpp::Typedef>,
+ public csv::ConstProcessor<ary::cpp::Function>,
+ public csv::ConstProcessor<ary::cpp::Variable>,
+ public csv::ConstProcessor<ary::cpp::EnumValue>,
+ public csv::ConstProcessor<ary::cpp::Define>,
+ public csv::ConstProcessor<ary::cpp::Macro>
+{
+ public:
+ LinkCreator(
+ char * o_rOutput,
+ uintt i_nOutputSize );
+ ~LinkCreator();
+
+
+ void SetEnv(
+ const OuputPage_Environment &
+ i_rEnv );
+ private:
+ void Create_PrePath(
+ const ary::cpp::CodeEntity &
+ i_rData );
+ // Interface csv::ConstProcessor<>
+ virtual void do_Process(
+ const ary::cpp::Namespace &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Enum &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Typedef &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Function &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Variable &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::EnumValue &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Define &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Macro &
+ i_rData );
+ // DATA
+ char * pOut;
+ uintt nOutMaxSize;
+ const OuputPage_Environment *
+ pEnv;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+LinkCreator::SetEnv( const OuputPage_Environment & i_rEnv )
+ { pEnv = &i_rEnv; }
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/dsply_cl.cxx b/autodoc/source/display/html/dsply_cl.cxx
new file mode 100644
index 000000000000..656bca79c2cf
--- /dev/null
+++ b/autodoc/source/display/html/dsply_cl.cxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "dsply_cl.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include "dsply_da.hxx"
+#include "dsply_op.hxx"
+#include "hdimpl.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+
+
+
+
+ClassDisplayer::ClassDisplayer( OuputPage_Environment & io_rEnv )
+ : pEnv(&io_rEnv)
+{
+}
+
+ClassDisplayer::~ClassDisplayer()
+{
+}
+
+void
+ClassDisplayer::DisplayFiles_InClass( const ary::cpp::Class & i_rData,
+ PageDisplay & io_rPageMaker )
+{
+ // Classes
+ ClassDisplayer aClassDisplayer( Env() );
+ DisplaySlot( aClassDisplayer, i_rData, ary::cpp::Class::SLOT_NestedClasses );
+
+ // Enums
+ DisplaySlot( io_rPageMaker, i_rData, ary::cpp::Class::SLOT_Enums );
+
+ // Typedefs
+ DisplaySlot( io_rPageMaker, i_rData, ary::cpp::Class::SLOT_Typedefs );
+
+ // Operations
+ OperationsDisplay aOperationsDisplayer( Env() );
+
+ aOperationsDisplayer.PrepareForStdMembers();
+ DisplaySlot( aOperationsDisplayer, i_rData, ary::cpp::Class::SLOT_Operations );
+
+ aOperationsDisplayer.PrepareForStaticMembers();
+ DisplaySlot( aOperationsDisplayer, i_rData, ary::cpp::Class::SLOT_StaticOperations );
+
+ aOperationsDisplayer.Create_Files();
+
+ // Data
+ DataDisplay aDataDisplayer( Env() );
+
+ aDataDisplayer.PrepareForStdMembers();
+ DisplaySlot( aDataDisplayer, i_rData, ary::cpp::Class::SLOT_Data );
+
+ aDataDisplayer.PrepareForStaticMembers();
+ DisplaySlot( aDataDisplayer, i_rData, ary::cpp::Class::SLOT_StaticData );
+
+ aDataDisplayer.Create_Files();
+}
+
+void
+ClassDisplayer::do_Process( const ary::cpp::Class & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ PageDisplay aPageMaker( Env() );
+ aPageMaker.Process(i_rData);
+
+ Env().MoveDir_Down2( i_rData );
+ DisplayFiles_InClass( i_rData, aPageMaker );
+ Env().MoveDir_Up();
+}
+
+const ary::cpp::Gate *
+ClassDisplayer::inq_Get_ReFinder() const
+{
+ return & pEnv->Gate();
+}
diff --git a/autodoc/source/display/html/dsply_cl.hxx b/autodoc/source/display/html/dsply_cl.hxx
new file mode 100644
index 000000000000..8f81e4f8c1b0
--- /dev/null
+++ b/autodoc/source/display/html/dsply_cl.hxx
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_HD_PAGE_HXX
+#define ADC_DISPLAY_HTML_HD_PAGE_HXX
+
+// BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+#include <ary/types.hxx>
+
+class OuputPage_Environment;
+
+namespace ary
+{
+namespace cpp
+{
+ class Class;
+}
+}
+
+class PageDisplay;
+
+
+
+
+class ClassDisplayer : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Class>
+{
+ public:
+ ClassDisplayer( // TODO
+ OuputPage_Environment &
+ io_rEnv );
+ virtual ~ClassDisplayer();
+
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_data );
+ // Interface ary::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+
+ // Locals
+ void DisplayFiles_InClass(
+ const ary::cpp::Class &
+ i_rData,
+ PageDisplay & io_rPageMaker );
+
+ OuputPage_Environment &
+ Env() { return *pEnv; }
+
+ // DATA
+ OuputPage_Environment *
+ pEnv;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/dsply_da.cxx b/autodoc/source/display/html/dsply_da.cxx
new file mode 100644
index 000000000000..4a8055f74d55
--- /dev/null
+++ b/autodoc/source/display/html/dsply_da.cxx
@@ -0,0 +1,199 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "dsply_da.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/doc/d_docu.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <udm/html/htmlitem.hxx>
+#include "hd_docu.hxx"
+#include "hdimpl.hxx"
+#include "html_kit.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+
+
+using namespace csi;
+
+
+
+DataDisplay::DataDisplay( OuputPage_Environment & io_rEnv )
+ : aMap_GlobalDataDisplay(),
+ pClassMembersDisplay(0),
+ pEnv( &io_rEnv ),
+ pDocuShow( new Docu_Display(io_rEnv) )
+{
+}
+
+DataDisplay::~DataDisplay()
+{
+ csv::erase_map_of_heap_ptrs( aMap_GlobalDataDisplay );
+}
+
+void
+DataDisplay::PrepareForConstants()
+{
+ if (pClassMembersDisplay)
+ pClassMembersDisplay = 0;
+
+ csv::erase_map_of_heap_ptrs( aMap_GlobalDataDisplay );
+}
+
+void
+DataDisplay::PrepareForVariables()
+{
+ // Doesn't need to do anything yet.
+}
+
+void
+DataDisplay::PrepareForStdMembers()
+{
+ csv::erase_map_of_heap_ptrs( aMap_GlobalDataDisplay );
+
+ pClassMembersDisplay = new PageDisplay(*pEnv);
+ const ary::cpp::Class * pClass = pEnv->CurClass();
+ csv_assert( pClass != 0 );
+ pClassMembersDisplay->Setup_DataFile_for(*pClass);
+}
+
+void
+DataDisplay::PrepareForStaticMembers()
+{
+ // Doesn't need to do anything yet.
+}
+
+void
+DataDisplay::Create_Files()
+{
+ if (pClassMembersDisplay)
+ {
+ pClassMembersDisplay->Create_File();
+ pClassMembersDisplay = 0;
+ }
+ else
+ {
+ for ( Map_FileId2PagePtr::const_iterator it = aMap_GlobalDataDisplay.begin();
+ it != aMap_GlobalDataDisplay.end();
+ ++it )
+ {
+ (*it).second->Create_File();
+ }
+ csv::erase_map_of_heap_ptrs( aMap_GlobalDataDisplay );
+ }
+}
+
+void
+DataDisplay::do_Process( const ary::cpp::Variable & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ PageDisplay & rPage = FindPage_for( i_rData );
+
+ csi::xml::Element & rOut = rPage.CurOut();
+ Display_SglDatum( rOut, i_rData );
+}
+
+const ary::cpp::Gate *
+DataDisplay::inq_Get_ReFinder() const
+{
+ return & pEnv->Gate();
+}
+
+PageDisplay &
+DataDisplay::FindPage_for( const ary::cpp::Variable & i_rData )
+{
+ if ( pClassMembersDisplay )
+ return *pClassMembersDisplay;
+
+ SourceFileId
+ nSourceFile = i_rData.Location();
+ PageDisplay *
+ pFound = csv::value_from_map( aMap_GlobalDataDisplay, nSourceFile, (PageDisplay*)0 );
+ if ( pFound == 0 )
+ {
+ pFound = new PageDisplay( *pEnv );
+ const ary::loc::File &
+ rFile = pEnv->Gate().Locations().Find_File( nSourceFile );
+ pFound->Setup_DataFile_for(rFile);
+ aMap_GlobalDataDisplay[nSourceFile] = pFound;
+ }
+
+ return *pFound;
+}
+
+void
+DataDisplay::Display_SglDatum( csi::xml::Element & rOut,
+ const ary::cpp::Variable & i_rData )
+{
+ adcdisp::ExplanationList aDocu(rOut, true);
+ aDocu.AddEntry( 0 );
+
+ aDocu.Term()
+ >> *new html::Label( DataLabel(i_rData.LocalName()) )
+ << " ";
+ aDocu.Term()
+ << i_rData.LocalName();
+
+ dshelp::Get_LinkedTypeText( aDocu.Def(), *pEnv, i_rData.Type() );
+ aDocu.Def()
+ << " "
+ >> *new html::Strong
+ << i_rData.LocalName();
+ if ( i_rData.ArraySize().length() > 0 )
+ {
+ aDocu.Def()
+ << "["
+ << i_rData.ArraySize()
+ << "]";
+ }
+ if ( i_rData.Initialisation().length() > 0 )
+ {
+ aDocu.Def()
+ << " = "
+ << i_rData.Initialisation();
+ }
+ aDocu.Def()
+ << ";"
+ << new html::LineBreak
+ << new html::LineBreak;
+
+ aDocu.AddEntry_NoTerm();
+
+ pDocuShow->Assign_Out(aDocu.Def());
+ pDocuShow->Process(i_rData.Docu());
+ pDocuShow->Unassign_Out();
+
+ rOut << new html::HorizontalLine;
+}
diff --git a/autodoc/source/display/html/dsply_da.hxx b/autodoc/source/display/html/dsply_da.hxx
new file mode 100644
index 000000000000..f3cf563c0f72
--- /dev/null
+++ b/autodoc/source/display/html/dsply_da.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_DSPLY_DA_HXX
+#define ADC_DISPLAY_HTML_DSPLY_DA_HXX
+
+// BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+#include <ary/cpp/c_ce.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Variable;
+ }
+}
+namespace csi
+{
+ namespace xml
+ {
+ class Element;
+ }
+}
+
+
+
+
+class OuputPage_Environment;
+class PageDisplay;
+class Docu_Display;
+
+class DataDisplay : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Variable>
+{
+ public:
+ DataDisplay(
+ OuputPage_Environment &
+ io_rInfo );
+ virtual ~DataDisplay();
+
+ void PrepareForConstants();
+ void PrepareForVariables();
+ void PrepareForStdMembers();
+ void PrepareForStaticMembers();
+
+ void Create_Files();
+
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Variable &
+ i_rData );
+ // Interface ary::cpp::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+
+ // Locals
+ typedef ary::cpp::Lid SourceFileId;
+ typedef std::map< SourceFileId, DYN PageDisplay* > Map_FileId2PagePtr;
+
+ PageDisplay & FindPage_for(
+ const ary::cpp::Variable &
+ i_rData );
+ void Display_SglDatum(
+ csi::xml::Element & rOut,
+ const ary::cpp::Variable &
+ i_rData );
+ // DATA
+ Map_FileId2PagePtr aMap_GlobalDataDisplay;
+ Dyn<PageDisplay> pClassMembersDisplay;
+
+ OuputPage_Environment *
+ pEnv;
+ Dyn<Docu_Display> pDocuShow;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/dsply_op.cxx b/autodoc/source/display/html/dsply_op.cxx
new file mode 100644
index 000000000000..1bae518aae18
--- /dev/null
+++ b/autodoc/source/display/html/dsply_op.cxx
@@ -0,0 +1,207 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "dsply_op.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <udm/html/htmlitem.hxx>
+#include "hd_docu.hxx"
+#include "hdimpl.hxx"
+#include "html_kit.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+
+using namespace csi;
+using namespace adcdisp;
+
+
+
+
+OperationsDisplay::OperationsDisplay( OuputPage_Environment & io_rEnv )
+ : // aMap_GlobalFunctionsDisplay,
+ // pClassMembersDisplay,
+ pEnv( &io_rEnv ),
+ pDocuShow( new Docu_Display(io_rEnv) )
+{
+}
+
+OperationsDisplay::~OperationsDisplay()
+{
+ csv::erase_map_of_heap_ptrs( aMap_GlobalFunctionsDisplay );
+}
+
+void
+OperationsDisplay::PrepareForStdMembers()
+{
+ csv::erase_map_of_heap_ptrs( aMap_GlobalFunctionsDisplay );
+
+ pClassMembersDisplay = new PageDisplay(*pEnv);
+ const ary::cpp::Class * pClass = pEnv->CurClass();
+ csv_assert( pClass != 0 );
+ pClassMembersDisplay->Setup_OperationsFile_for(*pClass);
+}
+
+void
+OperationsDisplay::PrepareForStaticMembers()
+{
+ // Doesn't need to do anything yet.
+}
+
+void
+OperationsDisplay::Create_Files()
+{
+ if (pClassMembersDisplay)
+ pClassMembersDisplay->Create_File();
+ else
+ {
+ for ( Map_FileId2PagePtr::const_iterator it = aMap_GlobalFunctionsDisplay.begin();
+ it != aMap_GlobalFunctionsDisplay.end();
+ ++it )
+ {
+ (*it).second->Create_File();
+ }
+ }
+}
+
+void
+OperationsDisplay::do_Process( const ary::cpp::Function & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ PageDisplay & rPage = FindPage_for( i_rData );
+
+ csi::xml::Element & rOut = rPage.CurOut();
+ Display_SglOperation( rOut, i_rData );
+}
+
+const ary::cpp::Gate *
+OperationsDisplay::inq_Get_ReFinder() const
+{
+ return & pEnv->Gate();
+}
+
+PageDisplay &
+OperationsDisplay::FindPage_for( const ary::cpp::Function & i_rData )
+{
+ if ( pClassMembersDisplay )
+ return *pClassMembersDisplay;
+
+ SourceFileId
+ nSourceFile = i_rData.Location();
+ PageDisplay *
+ pFound = csv::value_from_map( aMap_GlobalFunctionsDisplay, nSourceFile, (PageDisplay*)0 );
+ if ( pFound == 0 )
+ {
+ pFound = new PageDisplay( *pEnv );
+ const ary::loc::File &
+ rFile = pEnv->Gate().Locations().Find_File( nSourceFile );
+ pFound->Setup_OperationsFile_for(rFile);
+ aMap_GlobalFunctionsDisplay[nSourceFile] = pFound;
+ }
+
+ return *pFound;
+}
+
+void
+OperationsDisplay::Display_SglOperation( csi::xml::Element & rOut,
+ const ary::cpp::Function & i_rData )
+{
+ adcdisp::ExplanationList aDocu(rOut, true);
+ aDocu.AddEntry( 0 );
+
+
+ adcdisp::OperationTitle fTitle;
+ fTitle( aDocu.Term(),
+ i_rData.LocalName(),
+ i_rData.CeId(),
+ pEnv->Gate() );
+
+ // Syntax
+ adcdisp::ExplanationList aSyntaxHeader(aDocu.Def());
+ aSyntaxHeader.AddEntry( 0, "simple" );
+ csi::xml::Element & rHeader = aSyntaxHeader.Term();
+
+ adcdisp::ParameterTable
+ aParams( aSyntaxHeader.Def() );
+
+ if (i_rData.TemplateParameters().size() > 0)
+ {
+ TemplateClause fTemplateClause;
+ fTemplateClause( rHeader, i_rData.TemplateParameters() );
+ rHeader << new html::LineBreak;
+ }
+ if ( i_rData.Flags().IsExternC() )
+ {
+ rHeader
+ << "extern \"C\""
+ << new html::LineBreak;
+ }
+
+ bool bConst = false;
+ bool bVolatile = false;
+ WriteOut_LinkedFunctionText( rHeader, aParams, i_rData, *pEnv,
+ &bConst, &bVolatile );
+ aDocu.Def() << new html::LineBreak;
+
+ // Flags
+ aDocu.AddEntry_NoTerm();
+ adcdisp::FlagTable
+ aFlags( aDocu.Def(), 8 );
+
+ const ary::cpp::FunctionFlags &
+ rFFlags = i_rData.Flags();
+ aFlags.SetColumn( 0, "virtual",
+ i_rData.Virtuality() != ary::cpp::VIRTUAL_none );
+ aFlags.SetColumn( 1, "abstract",
+ i_rData.Virtuality() == ary::cpp::VIRTUAL_abstract );
+ aFlags.SetColumn( 2, "const", bConst );
+ aFlags.SetColumn( 3, "volatile", bVolatile );
+ aFlags.SetColumn( 4, "template",
+ i_rData.TemplateParameters().size() > 0 );
+ aFlags.SetColumn( 5, "static",
+ rFFlags.IsStaticLocal() OR rFFlags.IsStaticMember() );
+ aFlags.SetColumn( 6, "inline",
+ rFFlags.IsInline() );
+ aFlags.SetColumn( 7, "C-linkage",
+ rFFlags.IsExternC() );
+ aDocu.Def() << new html::LineBreak;
+
+ // Docu
+ aDocu.AddEntry_NoTerm();
+ pDocuShow->Assign_Out(aDocu.Def());
+ pDocuShow->Process(i_rData.Docu());
+ pDocuShow->Unassign_Out();
+
+ rOut << new html::HorizontalLine;
+}
diff --git a/autodoc/source/display/html/dsply_op.hxx b/autodoc/source/display/html/dsply_op.hxx
new file mode 100644
index 000000000000..e17989f62c47
--- /dev/null
+++ b/autodoc/source/display/html/dsply_op.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_DSPLY_OP_HXX
+#define ADC_DISPLAY_HTML_DSPLY_OP_HXX
+
+// BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+#include <ary/cpp/c_ce.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Function;
+ }
+}
+namespace csi
+{
+ namespace xml
+ {
+ class Element;
+ }
+}
+
+class OuputPage_Environment;
+class PageDisplay;
+class Docu_Display;
+
+
+
+
+class OperationsDisplay : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Function>
+{
+ public:
+ OperationsDisplay(
+ OuputPage_Environment &
+ io_rInfo );
+ virtual ~OperationsDisplay();
+
+ void PrepareForStdMembers();
+ void PrepareForStaticMembers();
+ void Create_Files();
+
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Function &
+ i_rData );
+ // Interface ary::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+
+ // Locals
+ typedef ary::cpp::Lid SourceFileId;
+ typedef std::map< SourceFileId, DYN PageDisplay* > Map_FileId2PagePtr;
+
+ PageDisplay & FindPage_for(
+ const ary::cpp::Function &
+ i_rData );
+ void Display_SglOperation(
+ csi::xml::Element & rOut,
+ const ary::cpp::Function &
+ i_rData );
+ // DATA
+ Map_FileId2PagePtr aMap_GlobalFunctionsDisplay;
+ Dyn<PageDisplay> pClassMembersDisplay;
+
+ OuputPage_Environment *
+ pEnv;
+ Dyn<Docu_Display> pDocuShow;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/easywri.cxx b/autodoc/source/display/html/easywri.cxx
new file mode 100644
index 000000000000..47c6196e5322
--- /dev/null
+++ b/autodoc/source/display/html/easywri.cxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "easywri.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+using namespace csi::html;
+
+
+EasyWriter::EasyWriter()
+{
+}
+
+EasyWriter::~EasyWriter()
+{
+}
+
+void
+EasyWriter::Open_OutputNode( csi::xml::Element & io_rDestination )
+{
+ aCurDestination.push(&io_rDestination);
+}
+
+void
+EasyWriter::Finish_OutputNode()
+{
+ csv_assert( NOT aCurDestination.empty() );
+ aCurDestination.pop();
+}
+
+csi::xml::Element &
+EasyWriter::Out()
+{
+ csv_assert( aCurDestination.size() > 0);
+ return *aCurDestination.top();
+}
+
diff --git a/autodoc/source/display/html/easywri.hxx b/autodoc/source/display/html/easywri.hxx
new file mode 100644
index 000000000000..d5490b0f6133
--- /dev/null
+++ b/autodoc/source/display/html/easywri.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_EASYWRI_HXX
+#define ADC_DISPLAY_HTML_EASYWRI_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <estack.hxx>
+ // PARAMETERS
+#include <udm/html/htmlitem.hxx>
+
+
+class EasyWriter
+{
+ public:
+ // LIFECYCLE
+ EasyWriter();
+ ~EasyWriter();
+
+ // OPERATIONS
+ /// Pushes csi::xml::Element on stack.
+ void Open_OutputNode(
+ csi::xml::Element & io_rDestination );
+ /// Pops front csi::xml::Element from stack.
+ void Finish_OutputNode();
+
+ void Enter(
+ csi::xml::Element & io_rDestination )
+ { Open_OutputNode(io_rDestination); }
+ void Leave() { Finish_OutputNode(); }
+
+ // ACCESS
+ csi::xml::Element & Out(); // CurOutputNode
+
+ private:
+ EStack< csi::xml::Element * >
+ aCurDestination; // The front element is the currently used.
+ // The later ones are the parents.
+};
+
+/*
+inline csi::xml::Element &
+EasyWriter::Out()
+ { csv_assert( aCurDestination.size() > 0 );
+ return *aCurDestination.top(); }
+*/
+
+// IMPLEMENTATION
+
+
+#endif
+
+
diff --git a/autodoc/source/display/html/hd_chlst.cxx b/autodoc/source/display/html/hd_chlst.cxx
new file mode 100644
index 000000000000..4647289a7bc4
--- /dev/null
+++ b/autodoc/source/display/html/hd_chlst.cxx
@@ -0,0 +1,589 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hd_chlst.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ceslot.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <ary/info/ci_attag.hxx>
+#include <ary/info/ci_text.hxx>
+#include <ary/info/all_dts.hxx>
+#include "hd_docu.hxx"
+#include "opageenv.hxx"
+#include "protarea.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+using html::Table;
+using html::TableRow;
+using html::TableCell;
+using html::Font;
+using html::SizeAttr;
+using html::BgColorAttr;
+using html::WidthAttr;
+
+
+const int ixPublic = 0;
+const int ixProtected = 1;
+const int ixPrivate = 2;
+
+struct ChildList_Display::S_AreaCo
+{
+ public:
+ ProtectionArea aArea;
+ Area_Result * pResult;
+
+ S_AreaCo(
+ Area_Result & o_rResult,
+ const char * i_sLabel,
+ const char * i_sTitle );
+ ~S_AreaCo();
+
+ void PerformResult();
+
+ private:
+ csi::xml::Element & Out() { return pResult->rOut; }
+};
+
+
+const ary::info::DocuText &
+ShortDocu( const ary::cpp::CodeEntity & i_rCe )
+{
+ static const ary::info::DocuText
+ aNull_;
+
+ const ary::doc::OldCppDocu *
+ pInfo = dynamic_cast< const ary::doc::OldCppDocu* >( i_rCe.Docu().Data() );
+ if (pInfo == 0)
+ return aNull_;
+
+ return pInfo->Short().CText();
+}
+
+
+ChildList_Display::ChildList_Display( OuputPage_Environment & io_rEnv )
+ : HtmlDisplay_Impl( io_rEnv ),
+ pShortDocu_Display( new Docu_Display(io_rEnv) ),
+ pActiveParentClass(0),
+ pActiveParentEnum(0),
+ // pSglArea,
+ // aMemberAreas,
+ peClassesFilter(0)
+{
+}
+
+ChildList_Display::ChildList_Display( OuputPage_Environment & io_rEnv,
+ const ary::cpp::Class & i_rClass )
+ : HtmlDisplay_Impl( io_rEnv ),
+ pShortDocu_Display( new Docu_Display(io_rEnv) ),
+ pActiveParentClass(&i_rClass),
+ pActiveParentEnum(0),
+ // pSglArea,
+ // aMemberAreas,
+ peClassesFilter(0)
+{
+}
+
+ChildList_Display::ChildList_Display( OuputPage_Environment & io_rEnv,
+ const ary::cpp::Enum & i_rEnum )
+ : HtmlDisplay_Impl( io_rEnv ),
+ pShortDocu_Display( new Docu_Display(io_rEnv) ),
+ pActiveParentClass(0),
+ pActiveParentEnum(&i_rEnum),
+ // pSglArea,
+ // aMemberAreas,
+ peClassesFilter(0)
+{
+}
+
+ChildList_Display::~ChildList_Display()
+{
+}
+
+void
+ChildList_Display::Run_Simple( Area_Result & o_rResult,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel,
+ const char * i_sListTitle )
+{
+ ary::Slot_AutoPtr
+ pSlot( ActiveParent().Create_Slot( i_nSlot ) );
+ if ( pSlot->Size() == 0 )
+ return;
+
+ pSglArea = new S_AreaCo( o_rResult,
+ i_sListLabel,
+ i_sListTitle );
+
+ pSlot->StoreAt(*this);
+
+ pSglArea->PerformResult();
+ pSglArea = 0;
+}
+
+void
+ChildList_Display::Run_GlobalClasses( Area_Result & o_rResult,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey i_eFilter )
+{
+ ary::Slot_AutoPtr
+ pSlot( ActiveParent().Create_Slot( i_nSlot ) );
+ if ( pSlot->Size() == 0 )
+ return;
+
+ pSglArea = new S_AreaCo( o_rResult,
+ i_sListLabel,
+ i_sListTitle );
+
+ SetClassesFilter(i_eFilter);
+ pSlot->StoreAt(*this);
+ UnsetClassesFilter();
+
+ pSglArea->PerformResult();
+ pSglArea = 0;
+}
+
+void
+ChildList_Display::Run_Members( Area_Result & o_rResult_public,
+ Area_Result & o_rResult_protected,
+ Area_Result & o_rResult_private,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel_public,
+ const char * i_sListLabel_protected,
+ const char * i_sListLabel_private,
+ const char * i_sListTitle )
+{
+ ary::Slot_AutoPtr
+ pSlot( ActiveParent().Create_Slot(i_nSlot) );
+ if ( pSlot->Size() == 0 )
+ return;
+
+ aMemberAreas[ixPublic] = new S_AreaCo( o_rResult_public,
+ i_sListLabel_public,
+ i_sListTitle );
+ aMemberAreas[ixProtected] = new S_AreaCo( o_rResult_protected,
+ i_sListLabel_protected,
+ i_sListTitle );
+ aMemberAreas[ixPrivate] = new S_AreaCo( o_rResult_private,
+ i_sListLabel_private,
+ i_sListTitle );
+
+ pSlot->StoreAt(*this);
+
+ aMemberAreas[ixPublic]->PerformResult();
+ aMemberAreas[ixProtected]->PerformResult();
+ aMemberAreas[ixPrivate]->PerformResult();
+
+ aMemberAreas[ixPublic] = 0;
+ aMemberAreas[ixProtected] = 0;
+ aMemberAreas[ixPrivate] = 0;
+}
+
+void
+ChildList_Display::Run_MemberClasses( Area_Result & o_rResult_public,
+ Area_Result & o_rResult_protected,
+ Area_Result & o_rResult_private,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel_public,
+ const char * i_sListLabel_protected,
+ const char * i_sListLabel_private,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey i_eFilter )
+{
+ ary::Slot_AutoPtr
+ pSlot( ActiveParent().Create_Slot(i_nSlot) );
+ if ( pSlot->Size() == 0 )
+ return;
+
+ aMemberAreas[ixPublic] = new S_AreaCo( o_rResult_public,
+ i_sListLabel_public,
+ i_sListTitle );
+ aMemberAreas[ixProtected] = new S_AreaCo( o_rResult_protected,
+ i_sListLabel_protected,
+ i_sListTitle );
+ aMemberAreas[ixPrivate] = new S_AreaCo( o_rResult_private,
+ i_sListLabel_private,
+ i_sListTitle );
+
+ SetClassesFilter(i_eFilter);
+ pSlot->StoreAt(*this);
+ UnsetClassesFilter();
+
+ aMemberAreas[ixPublic]->PerformResult();
+ aMemberAreas[ixProtected]->PerformResult();
+ aMemberAreas[ixPrivate]->PerformResult();
+
+ aMemberAreas[ixPublic] = 0;
+ aMemberAreas[ixProtected] = 0;
+ aMemberAreas[ixPrivate] = 0;
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Namespace & i_rData )
+{
+ Write_ListItem( i_rData.LocalName(),
+ Path2ChildNamespace(i_rData.LocalName()),
+ ShortDocu( i_rData ),
+ GetArea().GetTable() );
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Class & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ if (peClassesFilter)
+ {
+ if (*peClassesFilter != i_rData.ClassKey() )
+ return;
+ }
+
+ String sLink;
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ {
+ sLink = ClassFileName(i_rData.LocalName());
+
+ }
+ else
+ {
+ csv_assert( pActiveParentClass != 0 );
+ sLink = Path2Child( ClassFileName(i_rData.LocalName()), pActiveParentClass->LocalName() );
+ }
+
+ if (peClassesFilter)
+ {
+ Write_ListItem( i_rData.LocalName(),
+ sLink,
+ ShortDocu( i_rData ),
+ GetArea(i_rData.Protection())
+ .GetTable() );
+ }
+ else
+ {
+ Write_ListItem( i_rData.LocalName(),
+ sLink,
+ ShortDocu( i_rData ),
+ GetArea(i_rData.Protection())
+ .GetTable(i_rData.ClassKey()) );
+ }
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Enum & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ String sLink;
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ {
+ sLink = EnumFileName(i_rData.LocalName());
+ }
+ else
+ {
+ csv_assert( pActiveParentClass != 0 );
+ sLink = Path2Child( EnumFileName(i_rData.LocalName()),
+ pActiveParentClass->LocalName() );
+ }
+
+ Write_ListItem( i_rData.LocalName(),
+ sLink,
+ ShortDocu( i_rData ),
+ GetArea(i_rData.Protection()).GetTable() );
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Typedef & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ String sLink;
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ {
+ sLink = TypedefFileName(i_rData.LocalName());
+ }
+ else
+ {
+ csv_assert( pActiveParentClass != 0 );
+ sLink = Path2Child( TypedefFileName(i_rData.LocalName()),
+ pActiveParentClass->LocalName() );
+ }
+
+ Write_ListItem( i_rData.LocalName(),
+ sLink,
+ ShortDocu( i_rData ),
+ GetArea(i_rData.Protection()).GetTable() );
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Function & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ String sLinkPrePath;
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ {
+ const ary::loc::File &
+ rFile = Env().Gate().Locations().Find_File( i_rData.Location() );
+ sLinkPrePath = HtmlFileName( "o-", rFile.LocalName() );
+ }
+ else
+ {
+ csv_assert( pActiveParentClass != 0 );
+ sLinkPrePath = Path2Child( HtmlFileName( "o", "" ),
+ pActiveParentClass->LocalName() );
+ }
+
+ // Out
+ Table & rOut = GetArea(i_rData.Protection()).GetTable();
+ TableRow * dpRow = new TableRow;
+ rOut << dpRow;
+ TableCell & rCell1 = dpRow->AddCell();
+
+ rCell1
+ << SyntaxText_PreName( i_rData, Env().Gate() )
+ << new html::LineBreak;
+ rCell1
+ >> *new html::Link( OperationLink(
+ Env().Gate(),
+ i_rData.LocalName(),
+ i_rData.CeId(),
+ sLinkPrePath) )
+ << i_rData.LocalName();
+ rCell1
+ << SyntaxText_PostName( i_rData, Env().Gate() );
+ TableCell &
+ rCell2 = dpRow->AddCell();
+ rCell2
+ << new WidthAttr("50%")
+ << " ";
+
+ pShortDocu_Display->Assign_Out( rCell2 );
+ ShortDocu( i_rData ).StoreAt( *pShortDocu_Display );
+ pShortDocu_Display->Unassign_Out();
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::Variable & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ String sLinkPrePath;
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ {
+ const ary::loc::File &
+ rFile = Env().Gate().Locations().Find_File( i_rData.Location() );
+ sLinkPrePath = HtmlFileName( "d-", rFile.LocalName() );
+ }
+ else
+ {
+ csv_assert( pActiveParentClass != 0 );
+ sLinkPrePath = Path2Child( HtmlFileName( "d", "" ),
+ pActiveParentClass->LocalName() );
+ }
+
+ TableRow * dpRow = new TableRow;
+ GetArea(i_rData.Protection()).GetTable() << dpRow;
+
+ *dpRow << new html::BgColorAttr("white");
+ csi::xml::Element &
+ rCell1 = dpRow->AddCell();
+
+ dshelp::Get_LinkedTypeText( rCell1, Env(), i_rData.Type() );
+ rCell1
+ << " "
+ >> *new html::Link( DataLink(i_rData.LocalName(), sLinkPrePath.c_str()) )
+ >> *new html::Strong
+ << i_rData.LocalName()
+ << ";";
+
+ TableCell & rShortDocu = dpRow->AddCell();
+ pShortDocu_Display->Assign_Out( rShortDocu );
+ ShortDocu( i_rData ).StoreAt( *pShortDocu_Display );
+ pShortDocu_Display->Unassign_Out();
+}
+
+void
+ChildList_Display::do_Process( const ary::cpp::EnumValue & i_rData )
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ Table & rOut = GetArea().GetTable();
+
+ TableRow * dpRow = new TableRow;
+ rOut << dpRow;
+
+ *dpRow << new html::BgColorAttr("white");
+ dpRow->AddCell()
+ << new WidthAttr("20%")
+ << new xml::AnAttribute("valign", "top")
+ >> *new html::Label(i_rData.LocalName())
+ >> *new html::Bold
+ << i_rData.LocalName();
+
+ TableCell & rValueDocu = dpRow->AddCell();
+ pShortDocu_Display->Assign_Out( rValueDocu );
+ i_rData.Docu().Accept( *pShortDocu_Display );
+ pShortDocu_Display->Unassign_Out();
+}
+
+void
+ChildList_Display::do_StartSlot()
+{
+}
+
+void
+ChildList_Display::do_FinishSlot()
+{
+}
+
+const ary::cpp::Gate *
+ChildList_Display::inq_Get_ReFinder() const
+{
+ return & Env().Gate();
+}
+
+void
+ChildList_Display::Write_ListItem( const String & i_sLeftText,
+ const char * i_sLink,
+ const ary::info::DocuText & i_rRightText,
+ csi::xml::Element & o_rOut )
+{
+ TableRow * dpRow = new TableRow;
+ o_rOut << dpRow;
+
+ *dpRow << new html::BgColorAttr("white");
+ dpRow->AddCell()
+ << new WidthAttr("20%")
+ >> *new html::Link( i_sLink )
+ >> *new html::Bold
+ << i_sLeftText;
+
+ TableCell & rShortDocu = dpRow->AddCell();
+ pShortDocu_Display->Assign_Out( rShortDocu );
+ i_rRightText.StoreAt( *pShortDocu_Display );
+ pShortDocu_Display->Unassign_Out();
+}
+
+const ary::AryGroup &
+ChildList_Display::ActiveParent()
+{
+ return pActiveParentClass != 0
+ ? static_cast< const ary::AryGroup& >(*pActiveParentClass)
+ : pActiveParentEnum != 0
+ ? static_cast< const ary::AryGroup& >(*pActiveParentEnum)
+ : static_cast< const ary::AryGroup& >(*Env().CurNamespace());
+}
+
+ProtectionArea &
+ChildList_Display::GetArea()
+{
+ return pSglArea->aArea;
+}
+
+ProtectionArea &
+ChildList_Display::GetArea( ary::cpp::E_Protection i_eProtection )
+{
+ switch ( i_eProtection )
+ {
+ case ary::cpp::PROTECT_public:
+ return aMemberAreas[ixPublic]->aArea;
+ case ary::cpp::PROTECT_protected:
+ return aMemberAreas[ixProtected]->aArea;
+ case ary::cpp::PROTECT_private:
+ return aMemberAreas[ixPrivate]->aArea;
+ default:
+ return pSglArea->aArea;
+ }
+}
+
+
+//******************* ********************//
+
+ChildList_Display::
+S_AreaCo::S_AreaCo( Area_Result & o_rResult,
+ const char * i_sLabel,
+ const char * i_sTitle )
+ : aArea(i_sLabel, i_sTitle),
+ pResult(&o_rResult)
+{
+}
+
+ChildList_Display::
+S_AreaCo::~S_AreaCo()
+{
+}
+
+void
+ChildList_Display::
+S_AreaCo::PerformResult()
+{
+ bool bUsed = aArea.WasUsed_Area();
+ pResult->rChildrenExist = bUsed;
+ if ( bUsed )
+ {
+ Create_ChildListLabel( Out(), aArea.Label() );
+
+ if ( aArea.Size() == 1 )
+ {
+ Out() << aArea.ReleaseTable();
+ }
+ else
+ {
+ Table * pTable = aArea.ReleaseTable( ary::cpp::CK_class );
+ if (pTable != 0)
+ Out() << pTable;
+ pTable = aArea.ReleaseTable( ary::cpp::CK_struct );
+ if (pTable != 0)
+ Out() << pTable;
+ pTable = aArea.ReleaseTable( ary::cpp::CK_union );
+ if (pTable != 0)
+ Out() << pTable;
+ }
+ }
+}
diff --git a/autodoc/source/display/html/hd_chlst.hxx b/autodoc/source/display/html/hd_chlst.hxx
new file mode 100644
index 000000000000..d7d530ce934a
--- /dev/null
+++ b/autodoc/source/display/html/hd_chlst.hxx
@@ -0,0 +1,206 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_HD_CHLST_HXX
+#define ADC_DISPLAY_HTML_HD_CHLST_HXX
+
+// BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+#include "hdimpl.hxx"
+
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+ class EnumValue;
+ }
+ namespace info
+ {
+ class DocuText;
+ }
+}
+
+class Docu_Display;
+class ProtectionArea;
+
+class ChildList_Display : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Namespace>,
+ public csv::ConstProcessor<ary::cpp::Class>,
+ public csv::ConstProcessor<ary::cpp::Enum>,
+ public csv::ConstProcessor<ary::cpp::Typedef>,
+ public csv::ConstProcessor<ary::cpp::Function>,
+ public csv::ConstProcessor<ary::cpp::Variable>,
+ public csv::ConstProcessor<ary::cpp::EnumValue>,
+ private HtmlDisplay_Impl
+{
+ public:
+ struct Area_Result
+ {
+ bool & rChildrenExist;
+ csi::xml::Element & rOut;
+
+ Area_Result(
+ bool & o_rChildrenExist,
+ csi::xml::Element & o_rOut )
+ : rChildrenExist(o_rChildrenExist),
+ rOut(o_rOut) {}
+ };
+
+
+ ChildList_Display(
+ OuputPage_Environment &
+ io_rEnv );
+ ChildList_Display(
+ OuputPage_Environment &
+ io_rEnv,
+ const ary::cpp::Class &
+ i_rClass );
+ ChildList_Display(
+ OuputPage_Environment &
+ io_rEnv,
+ const ary::cpp::Enum &
+ i_rEnum );
+
+ virtual ~ChildList_Display();
+
+ void Run_Simple(
+ Area_Result & o_rResult,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel,
+ const char * i_sListTitle );
+ void Run_GlobalClasses(
+ Area_Result & o_rResult,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey
+ i_eFilter );
+ void Run_Members(
+ Area_Result & o_rResult_public,
+ Area_Result & o_rResult_protected,
+ Area_Result & o_rResult_private,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel_public,
+ const char * i_sListLabel_protected,
+ const char * i_sListLabel_private,
+ const char * i_sListTitle );
+ void Run_MemberClasses(
+ Area_Result & o_rResult_public,
+ Area_Result & o_rResult_protected,
+ Area_Result & o_rResult_private,
+ ary::SlotAccessId i_nSlot,
+ const char * i_sListLabel_public,
+ const char * i_sListLabel_protected,
+ const char * i_sListLabel_private,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey
+ i_eFilter );
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Namespace &
+ i_rData );
+ /** i_rData is shown only, if it passes two filters:
+ it must have the right protection, checked with pFilter,
+ and the right class key (class,struct,union), checked with
+ pClassFilter. A not exsting filter allows i_rData to be
+ displayed.
+ */
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Enum &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Typedef &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Function &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Variable &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::EnumValue &
+ i_rData );
+ private:
+ // Interface ary::Display:
+ virtual void do_StartSlot();
+ virtual void do_FinishSlot();
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+ // Locals
+ struct S_AreaCo;
+ void Write_ListItem(
+ const String & i_sLeftText,
+ const char * i_sLink,
+ const ary::info::DocuText &
+ i_rRightText,
+ csi::xml::Element & rOut );
+ const ary::AryGroup &
+ ActiveParent();
+ ProtectionArea & GetArea();
+ ProtectionArea & GetArea(
+ ary::cpp::E_Protection
+ i_eProtection );
+ void SetClassesFilter(
+ ary::cpp::E_ClassKey
+ i_eFilter )
+ { peClassesFilter = new ary::cpp::E_ClassKey(i_eFilter); }
+ void UnsetClassesFilter() { peClassesFilter = 0; }
+
+ // DATA
+ Dyn<Docu_Display> pShortDocu_Display;
+ const ary::cpp::Class *
+ pActiveParentClass;
+ const ary::cpp::Enum *
+ pActiveParentEnum;
+
+ Dyn<S_AreaCo> pSglArea;
+ Dyn<S_AreaCo> aMemberAreas[3];
+
+ Dyn<ary::cpp::E_ClassKey>
+ peClassesFilter;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/hd_docu.cxx b/autodoc/source/display/html/hd_docu.cxx
new file mode 100644
index 000000000000..5fa62b3ecb14
--- /dev/null
+++ b/autodoc/source/display/html/hd_docu.cxx
@@ -0,0 +1,486 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hd_docu.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <ary/info/all_tags.hxx>
+#include <ary/info/all_dts.hxx>
+#include <adc_cl.hxx>
+#include "html_kit.hxx"
+#include "opageenv.hxx"
+
+
+
+using namespace ary::info;
+using namespace csi;
+
+using html::DefList;
+using html::DefListTerm;
+using html::DefListDefinition;
+using html::Headline;
+using html::Link;
+
+
+const char *
+C_sTagHeadlines[ ary::info::C_eAtTag_NrOfClasses ] =
+ {
+ "ATTENTION!", "Author", "Changes", "Collaborators",
+ "Contact", // Contact may be unused
+ "Copyright", "Deprecated", "Description", "Date of Documentation",
+ "How to Derive from this Class",
+ "Heap object - owner is responsible for deletion.",
+ "Important Instances",
+ "Interface Only",
+ "Invariant", "Lifecycle",
+ "Multiplicity", "On Error", "Persistency", "Postcondition",
+ "Precondition",
+ "Responsibilities",
+ "Return", "Summary", "Todos", "Version",
+ "Base Classes", "Exceptions", "Implements", "Keywords", "Parameters",
+ "See Also", "Template Parameters",
+ "", "Since "
+ };
+
+
+
+Docu_Display::Docu_Display( OuputPage_Environment & io_rEnv )
+ : HtmlDisplay_Impl(io_rEnv),
+ bUseHtmlInDocuTokens(false),
+ pCurClassOverwrite(0)
+{
+}
+
+Docu_Display::~Docu_Display()
+{
+}
+
+void
+Docu_Display::Assign_Out( csi::xml::Element & o_rOut )
+{
+ Easy().Enter(o_rOut);
+}
+
+void
+Docu_Display::Unassign_Out()
+{
+ Easy().Leave();
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Namespace & i_rData )
+{
+ Process(i_rData.Docu());
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Class & i_rData )
+{
+ pCurClassOverwrite = &i_rData;
+ Process(i_rData.Docu());
+ pCurClassOverwrite = 0;
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Enum & i_rData )
+{
+ Process(i_rData.Docu());
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Typedef & i_rData )
+{
+ Process(i_rData.Docu());
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Function & i_rData )
+{
+ Process(i_rData.Docu());
+}
+
+void
+Docu_Display::do_Process( const ary::cpp::Variable & i_rData )
+{
+ Process(i_rData.Docu());
+}
+
+
+
+// -------------- Interface ary::info::DocuDisplay ------------------ //
+
+
+void
+Docu_Display::do_Process(const ary::doc::Documentation & i_rData)
+{
+ if (i_rData.Data() == 0)
+ return;
+
+ const ary::doc::OldCppDocu *
+ docdata = dynamic_cast< const ary::doc::OldCppDocu* >(i_rData.Data());
+ csv_assert(docdata != 0);
+
+ Start_DocuBlock();
+
+ if ( docdata->IsObsolete() )
+ {
+ CurOut()
+ >> *new html::DefListTerm
+ >> *new html::Strong
+ << "D E P R E C A T E D";
+
+ }
+
+ ary::doc::OldCppDocu::TagList::const_iterator
+ itEnd = docdata->Tags().end();
+ for ( ary::doc::OldCppDocu::TagList::const_iterator it = docdata->Tags().begin();
+ it != itEnd;
+ ++it )
+ {
+ (*it)->StoreAt( *this );
+ }
+
+ Finish_DocuBlock();
+}
+
+void
+Docu_Display::Display_StdTag( const StdTag & i_rData )
+{
+ csv_assert( uintt(i_rData.Std_Id()) < uintt(ary::info::C_eAtTag_NrOfClasses) );
+
+ const ary::info::DocuText::TokenList &
+ rText = i_rData.CText().Tokens();
+ typedef ary::info::DocuText::TokenList::const_iterator TokenIterator;
+
+ if ( rText.empty() )
+ return;
+ else if ( rText.size() < 3 )
+ {
+ bool bIsWhite = true;
+ for ( TokenIterator it = rText.begin();
+ it != rText.end();
+ ++it )
+ {
+ if (bIsWhite)
+ bIsWhite = (*it)->IsWhite();
+ }
+ if (bIsWhite)
+ return;
+ }
+
+ Write_TagTitle( C_sTagHeadlines[i_rData.Std_Id()] );
+ Write_TagContents( i_rData.CText() );
+}
+
+void
+Docu_Display::Display_BaseTag( const BaseTag & )
+{
+}
+
+void
+Docu_Display::Display_ExceptionTag( const ExceptionTag & )
+{
+}
+
+void
+Docu_Display::Display_ImplementsTag( const ImplementsTag & )
+{
+}
+
+void
+Docu_Display::Display_KeywordTag( const KeywordTag & )
+{
+}
+
+void
+Docu_Display::Display_ParameterTag( const ParameterTag & i_rData )
+{
+ Write_TagTitle( "Parameters" );
+
+ adcdisp::ExplanationTable
+ aParams( CurOut() >> *new DefListDefinition );
+
+ for ( const ParameterTag * pParam = &i_rData;
+ pParam != 0;
+ pParam = pParam->GetNext() ) // KORR_FUTURE
+ {
+ aParams.AddEntry( pParam->ParamName().c_str() );
+
+ Easy().Enter( aParams.Def() );
+ Write_Text( pParam->CText() );
+ Easy().Leave();
+ } // end for
+}
+
+void
+Docu_Display::Display_SeeTag( const SeeTag & i_rData )
+{
+ Write_TagTitle( "See Also" );
+
+ DefListDefinition * dpDef = new DefListDefinition;
+ CurOut() << dpDef;
+ Easy().Enter(*dpDef);
+
+ for ( std::vector< ary::QualifiedName >::const_iterator
+ it = i_rData.References().begin();
+ it != i_rData.References().end();
+ ++it )
+ {
+ Write_LinkableText( (*it) );
+ CurOut() << new html::LineBreak;
+ }
+
+ Easy().Leave();
+}
+
+void
+Docu_Display::Display_TemplateTag( const TemplateTag & i_rData )
+{
+ Write_TagTitle( "Template Parameters" );
+
+ adcdisp::ExplanationTable
+ aTplParams( CurOut() >> *new DefListDefinition );
+
+ for ( const TemplateTag * pTplParam = &i_rData;
+ pTplParam != 0;
+ pTplParam = pTplParam->GetNext() )
+ {
+ aTplParams.AddEntry( pTplParam->TplParamName().c_str() );
+
+ Easy().Enter( aTplParams.Def() );
+ Write_Text( pTplParam->CText() );
+ Easy().Leave();
+ } // end for
+}
+
+void
+Docu_Display::Display_LabelTag( const LabelTag & )
+{
+}
+
+void
+Docu_Display::Display_SinceTag( const ary::info::SinceTag & i_rData )
+{
+ if ( i_rData.Version().empty() )
+ {
+ return;
+ }
+
+ // Transform the value of the @since tag into the text to be displayed.
+ String sDisplay;
+ if ( autodoc::CommandLine::Get_().DoesTransform_SinceTag() )
+ {
+ sDisplay = autodoc::CommandLine::Get_()
+ .DisplayOf_SinceTagValue( i_rData.Version() );
+ }
+ else
+ {
+ sDisplay = i_rData.Version();
+ }
+
+ if (sDisplay.empty())
+ return;
+
+ Write_TagTitle( "Since " );
+
+ DefListDefinition * dpDef = new DefListDefinition;
+ CurOut() << dpDef;
+
+ Easy().Enter(*dpDef);
+ CurOut() << sDisplay;
+ Easy().Leave();
+}
+
+void
+Docu_Display::Display_DT_Text( const DT_Text & i_rData )
+{
+ Write_TextToken( i_rData.Text() );
+}
+
+void
+Docu_Display::Display_DT_MaybeLink( const DT_MaybeLink & i_rData )
+{
+ // KORR_FUTURE
+ Write_TextToken( i_rData.Text() );
+}
+
+void
+Docu_Display::Display_DT_Whitespace( const DT_Whitespace & i_rData )
+{
+ static char sSpace[300] =
+ " "
+ " "
+ " "
+ " "
+ " "
+ " ";
+ UINT8 nLength = i_rData.Length();
+ sSpace[nLength] = NULCH;
+ CurOut() << sSpace;
+ sSpace[nLength] = ' ';
+}
+
+void
+Docu_Display::Display_DT_Eol( const DT_Eol & )
+{
+ CurOut() << new html::Sbr;
+}
+
+void
+Docu_Display::Display_DT_Xml( const ary::info::DT_Xml & i_rData )
+{
+ CurOut() << new xml::XmlCode( i_rData.Text() );
+}
+
+const ary::cpp::Gate *
+Docu_Display::inq_Get_ReFinder() const
+{
+ return &Env().Gate();
+}
+
+void
+Docu_Display::Start_DocuBlock()
+{
+ DYN DefList * dpDefList = new DefList;
+ CurOut() << dpDefList;
+ Easy().Enter( *dpDefList );
+}
+
+void
+Docu_Display::Finish_DocuBlock()
+{
+ Easy().Leave();
+}
+
+void
+Docu_Display::Write_TagTitle( const char * i_sText,
+ const char * )
+{
+ if ( strcmp(i_sText,"ATTENTION!") == 0 )
+ {
+ CurOut()
+ >> *new html::DefListTerm
+ << new html::ClassAttr("attention")
+ << i_sText;
+ }
+ else
+ {
+ CurOut()
+ >> *new html::DefListTerm
+ << i_sText;
+ }
+}
+
+void
+Docu_Display::Write_TagContents( const DocuText & i_rDocuText )
+{
+ DefListDefinition * dpDef = new DefListDefinition;
+ CurOut() << dpDef;
+
+ Easy().Enter(*dpDef);
+ Write_Text(i_rDocuText);
+ Easy().Leave();
+}
+
+void
+Docu_Display::Write_Text( const ary::info::DocuText & i_rDocuText )
+{
+ if ( i_rDocuText.IsNoHtml() )
+ {
+ CurOut()
+ << new xml::XmlCode("<pre>");
+ bUseHtmlInDocuTokens = false;
+ }
+ else
+ {
+ bUseHtmlInDocuTokens = true;
+ }
+ i_rDocuText.StoreAt( *this );
+ if ( i_rDocuText.IsNoHtml() )
+ {
+ CurOut()
+ << new xml::XmlCode("</pre>");
+ }
+}
+
+void
+Docu_Display::Write_TextToken( const String & i_sText )
+{
+ if ( bUseHtmlInDocuTokens )
+ CurOut() << new xml::XmlCode(i_sText);
+ else
+ CurOut() << i_sText;
+}
+
+void
+Docu_Display::Write_LinkableText( const ary::QualifiedName & i_sQuName )
+{
+ const ary::cpp::CodeEntity *
+ pCe = FindUnambiguousCe( Env(), i_sQuName, pCurClassOverwrite );
+ if ( pCe != 0 )
+ {
+ csi::xml::Element *
+ pLink = new csi::html::Link( Link2Ce(Env(), *pCe) );
+ CurOut() << pLink;
+ Easy().Enter(*pLink);
+ Write_QualifiedName(i_sQuName);
+ Easy().Leave();
+ }
+ else
+ {
+ Write_QualifiedName(i_sQuName);
+ }
+ CurOut() << " ";
+}
+
+void
+Docu_Display::Write_QualifiedName( const ary::QualifiedName & i_sQuName )
+{
+ if ( i_sQuName.IsAbsolute() )
+ CurOut() << "::";
+ for ( ary::QualifiedName::namespace_iterator it = i_sQuName.first_namespace();
+ it != i_sQuName.end_namespace();
+ ++it )
+ {
+ CurOut() << (*it) << "::";
+ }
+ CurOut() << i_sQuName.LocalName();
+ if ( i_sQuName.IsFunction() )
+ CurOut() << "()";
+}
+
diff --git a/autodoc/source/display/html/hd_docu.hxx b/autodoc/source/display/html/hd_docu.hxx
new file mode 100644
index 000000000000..812cc7054718
--- /dev/null
+++ b/autodoc/source/display/html/hd_docu.hxx
@@ -0,0 +1,196 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_HD_DOCU_HXX
+#define ADC_DISPLAY_HTML_HD_DOCU_HXX
+
+// BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <ary/info/infodisp.hxx>
+#include <cosv/tpl/processor.hxx>
+#include "hdimpl.hxx"
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+ }
+
+ namespace doc
+ {
+ class Documentation;
+ }
+ namespace info
+ {
+ class DocuText;
+ }
+
+ class QualifiedName;
+}
+
+class OuputPage_Environment;
+
+
+class Docu_Display : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Namespace>,
+ public csv::ConstProcessor<ary::cpp::Class>,
+ public csv::ConstProcessor<ary::cpp::Enum>,
+ public csv::ConstProcessor<ary::cpp::Typedef>,
+ public csv::ConstProcessor<ary::cpp::Function>,
+ public csv::ConstProcessor<ary::cpp::Variable>,
+ public csv::ConstProcessor<ary::doc::Documentation>,
+ public ary::info::DocuDisplay,
+ private HtmlDisplay_Impl
+{
+ public:
+ Docu_Display(
+ OuputPage_Environment &
+ io_rEnv );
+ virtual ~Docu_Display();
+
+ void Assign_Out(
+ csi::xml::Element & o_rOut );
+ void Unassign_Out();
+
+ virtual void Display_StdTag(
+ const ary::info::StdTag &
+ i_rData );
+ virtual void Display_BaseTag(
+ const ary::info::BaseTag &
+ i_rData );
+ virtual void Display_ExceptionTag(
+ const ary::info::ExceptionTag &
+ i_rData );
+ virtual void Display_ImplementsTag(
+ const ary::info::ImplementsTag &
+ i_rData );
+ virtual void Display_KeywordTag(
+ const ary::info::KeywordTag &
+ i_rData );
+ virtual void Display_ParameterTag(
+ const ary::info::ParameterTag &
+ i_rData );
+ virtual void Display_SeeTag(
+ const ary::info::SeeTag &
+ i_rData );
+ virtual void Display_TemplateTag(
+ const ary::info::TemplateTag &
+ i_rData );
+ virtual void Display_LabelTag(
+ const ary::info::LabelTag &
+ i_rData );
+ virtual void Display_SinceTag(
+ const ary::info::SinceTag &
+ i_rData );
+
+ virtual void Display_DT_Text(
+ const ary::info::DT_Text &
+ i_rData );
+ virtual void Display_DT_MaybeLink(
+ const ary::info::DT_MaybeLink &
+ i_rData );
+ virtual void Display_DT_Whitespace(
+ const ary::info::DT_Whitespace &
+ i_rData );
+ virtual void Display_DT_Eol(
+ const ary::info::DT_Eol &
+ i_rData );
+ virtual void Display_DT_Xml(
+ const ary::info::DT_Xml &
+ i_rData );
+
+ using csv::ConstProcessor<ary::doc::Documentation>::Process;
+
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Namespace &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Enum &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Typedef &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Function &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Variable &
+ i_rData );
+ virtual void do_Process(
+ const ary::doc::Documentation &
+ i_rData );
+ // Interface ary::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+ // Locals
+ void Start_DocuBlock();
+ void Finish_DocuBlock();
+
+ void Write_TagTitle(
+ const char * i_sText,
+ const char * i_nFontSize = "+0" );
+ void Write_TagContents(
+ const ary::info::DocuText &
+ i_rDocuText );
+ void Write_Text(
+ const ary::info::DocuText &
+ i_rDocuText );
+ void Write_TextToken(
+ const String & i_sText );
+ void Write_LinkableText(
+ const ary::QualifiedName &
+ i_sQuName );
+ void Write_QualifiedName(
+ const ary::QualifiedName &
+ i_sQuName );
+
+ // DATA
+ bool bUseHtmlInDocuTokens;
+
+ /** This is used, if a class documentation is displayed,
+ because for links to members then the "current class"
+ is not the parent, but this class itself.
+ */
+ const ary::cpp::Class *
+ pCurClassOverwrite;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/hdimpl.cxx b/autodoc/source/display/html/hdimpl.cxx
new file mode 100644
index 000000000000..fdd23be5b2e6
--- /dev/null
+++ b/autodoc/source/display/html/hdimpl.cxx
@@ -0,0 +1,546 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hdimpl.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <stdlib.h>
+#include <stdio.h>
+#include <ary/ceslot.hxx>
+#include <ary/qualiname.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_de.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <udm/html/htmlitem.hxx>
+#include "cre_link.hxx"
+#include "hd_docu.hxx"
+#include "html_kit.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+
+
+//******************** HtmlDisplay_Impl *********************//
+
+HtmlDisplay_Impl::~HtmlDisplay_Impl()
+{
+}
+
+HtmlDisplay_Impl::HtmlDisplay_Impl( OuputPage_Environment & io_rEnv )
+ : pEnv(&io_rEnv)
+ // aWriteHelper
+{
+}
+
+
+//******************** Free Functions *********************//
+
+
+
+namespace dshelp
+{
+
+void
+DisplaySlot( ary::Display & o_rDisplay,
+ const ary::AryGroup & i_rGroup,
+ ary::SlotAccessId i_nSlot )
+{
+ ary::Slot_AutoPtr pSlot( i_rGroup.Create_Slot(i_nSlot) );
+ pSlot->StoreAt( o_rDisplay );
+}
+
+
+const char *
+PathUp( uintt i_nLevels )
+{
+ static char sResult[300];
+
+ sResult[0] = NULCH;
+ for ( uintt lev = 0; lev < i_nLevels; ++lev )
+ {
+ strcat( sResult, "../"); // SAFE STRCAT (#100211# - checked)
+ }
+ return sResult;
+}
+
+const char *
+PathPerLevelsUp( uintt i_nLevels,
+ const char * i_nPathBelowDestinationLevel )
+{
+ static char sResult[500];
+ strcpy( sResult, PathUp(i_nLevels) ); // SAFE STRCPY (#100211# - checked)
+ // KORR_FUTURE: Make it still safer here:
+ strcat( sResult, i_nPathBelowDestinationLevel ); // SAFE STRCAT (#100211# - checked)
+ return sResult;
+}
+
+
+const char *
+PathPerRoot( const OuputPage_Environment & i_rEnv,
+ const char * i_sPathFromRootDir )
+{
+ return PathPerLevelsUp( i_rEnv.Depth(), i_sPathFromRootDir );
+}
+
+const char *
+PathPerNamespace( const OuputPage_Environment & i_rEnv,
+ const char * i_sPathFromNamespaceDir )
+{
+ const ary::cpp::Namespace * pNsp = i_rEnv.CurNamespace();
+ if ( pNsp == 0 )
+ return "";
+
+ uintt nCount = i_rEnv.Depth() - (pNsp->Depth() + 1) ;
+ csv_assert( nCount < 100 );
+ return PathPerLevelsUp( nCount, i_sPathFromNamespaceDir );
+}
+
+const char *
+HtmlFileName( const char * i_sPrefix,
+ const char * i_sEntityName )
+{
+ // KORR_FUTURE: Make it still safer here:
+ static char sResult[300];
+ strcpy( sResult, i_sPrefix ); // SAFE STRCPY (#100211# - checked)
+ strcat( sResult, i_sEntityName ); // SAFE STRCAT (#100211# - checked)
+ strcat( sResult, ".html" ); // SAFE STRCAT (#100211# - checked)
+ return sResult;
+}
+
+const char *
+Path2Class( uintt i_nLevelsUp,
+ const char * i_sClassLocalName )
+{
+ return PathPerLevelsUp( i_nLevelsUp, ClassFileName(i_sClassLocalName) );
+}
+
+const char *
+Path2Child( const char * i_sFileName,
+ const char * i_sSubDir )
+{
+ static char sResult[400];
+ if ( i_sSubDir != 0 )
+ {
+ // KORR_FUTURE: Make it still safer here:
+ strcpy( sResult, i_sSubDir ); // SAFE STRCPY (#100211# - checked)
+ strcat( sResult, "/" ); // SAFE STRCAT (#100211# - checked)
+ }
+ else
+ {
+ sResult[0] = NULCH;
+ }
+
+ strcat( sResult, i_sFileName ); // SAFE STRCAT (#100211# - checked)
+ return sResult;
+}
+
+const char *
+Path2ChildNamespace( const char * i_sLocalName )
+{
+ return Path2Child( C_sHFN_Namespace, i_sLocalName );
+}
+
+String
+OperationLink( const ary::cpp::Gate & ,
+ const String & i_sOpName,
+ ary::cpp::Ce_id i_nOpId,
+ const char * i_sPrePath )
+{
+ StreamLock
+ slResult(3000);
+ StreamStr &
+ sResult = slResult();
+
+ sResult
+ << i_sPrePath
+ << "#"
+ << i_sOpName
+ << "-"
+ << i_nOpId.Value();
+
+
+
+ return sResult.c_str();
+}
+
+const char *
+DataLink( const String & i_sLocalName,
+ const char * i_sPrePath )
+{
+ StreamLock
+ slResult(3000);
+ StreamStr &
+ sResult = slResult();
+
+ sResult
+ << i_sPrePath
+ << "#"
+ << i_sLocalName;
+
+ return sResult.c_str();
+}
+
+void
+Get_LinkedTypeText( csi::xml::Element & o_rOut,
+ const OuputPage_Environment & i_rEnv,
+ ary::cpp::Type_id i_nId,
+ bool i_bWithAbsolutifier )
+{
+ if (NOT i_nId.IsValid())
+ return;
+
+ const char * sPreName = "";
+ const char * sName = "";
+ const char * sPostName = "";
+
+ bool bTypeExists = Get_TypeText( sPreName,
+ sName,
+ sPostName,
+ i_nId,
+ i_rEnv.Gate() );
+ if ( NOT bTypeExists )
+ return;
+
+ if ( NOT i_bWithAbsolutifier AND strncmp(sPreName,"::",2) == 0 )
+ sPreName+=2;
+
+ const ary::cpp::CodeEntity *
+ pCe = i_rEnv.Gate().Search_RelatedCe(i_nId);
+
+ String sLink;
+ if ( pCe != 0 )
+ {
+ sLink = Link2Ce(i_rEnv,*pCe);
+ }
+ else
+ {
+ if ( strstr(sPreName,"com::sun::star") != 0 )
+ {
+ static StreamStr aLink(400);
+ aLink.seekp(0);
+ aLink << PathPerRoot(i_rEnv, "../../common/ref");
+ if ( *sPreName != ':' )
+ aLink << '/';
+ for ( const char * s = sPreName;
+ *s != 0;
+ ++s )
+ {
+ if ( *s == ':' )
+ {
+ aLink << '/';
+ ++s;
+ }
+ else
+ {
+ aLink << *s;
+ }
+ } // end for
+ aLink << sName
+ << ".html";
+ sLink = aLink.c_str();
+ }
+ } // endif( pCe != 0 )
+
+ o_rOut
+ << sPreName;
+ csi::xml::Element &
+ o_Goon = sLink.length() > 0
+ ? o_rOut >> * new html::Link( sLink.c_str() )
+ : o_rOut;
+ o_Goon
+ << sName;
+ o_rOut
+ << sPostName;
+}
+
+void
+Create_ChildListLabel( csi::xml::Element & o_rParentElement,
+ const char * i_sLabel )
+{
+ if ( NOT csv::no_str(i_sLabel) )
+ {
+ o_rParentElement
+ >> *new html::Label(i_sLabel)
+ << " ";
+ }
+}
+
+DYN csi::html::Table &
+Create_ChildListTable( const char * i_sTitle )
+{
+ html::Table *
+ dpTable = new html::Table;
+ *dpTable
+ << new html::ClassAttr( "childlist")
+ << new xml::AnAttribute( "border", "1" )
+ << new xml::AnAttribute( "cellpadding", "5" )
+ << new xml::AnAttribute( "cellspacing", "0" )
+ << new html::WidthAttr( "100%" );
+
+ html::TableRow &
+ rRow = dpTable->AddRow();
+ rRow
+ << new html::ClassAttr("subtitle")
+ >> *new html::TableCell
+ << new xml::AnAttribute( "colspan","2" )
+ >> *new html::Headline(4)
+ << i_sTitle;
+ return *dpTable;
+}
+
+const char *
+Link2Ce( const OuputPage_Environment & i_rEnv,
+ const ary::cpp::CodeEntity & i_rCe )
+{
+ const uintt nMaxSize
+ = 3000;
+ static char sLink[nMaxSize];
+ static LinkCreator aLinkCreator( &sLink[0], nMaxSize );
+ sLink[0] = NULCH;
+
+ aLinkCreator.SetEnv(i_rEnv);
+ i_rCe.Accept(aLinkCreator);
+
+ return sLink;
+}
+
+const char *
+Link2CppDefinition( const OuputPage_Environment & i_rEnv,
+ const ary::cpp::DefineEntity & i_rDef )
+{
+ const uintt nMaxSize
+ = 1000;
+ static char sLink[nMaxSize];
+ static LinkCreator aLinkCreator( &sLink[0], nMaxSize );
+ sLink[0] = NULCH;
+
+ aLinkCreator.SetEnv(i_rEnv);
+ i_rDef.Accept(aLinkCreator);
+
+ return sLink;
+}
+
+const ary::cpp::CodeEntity *
+FindUnambiguousCe( const OuputPage_Environment & i_rEnv,
+ const ary::QualifiedName & i_rQuName,
+ const ary::cpp::Class * i_pJustDocumentedClass )
+{
+ if ( i_rEnv.CurNamespace() == 0 )
+ return 0;
+
+ const ary::cpp::CodeEntity * ret = 0;
+
+ if ( NOT i_rQuName.IsQualified() )
+ {
+ if ( i_pJustDocumentedClass != 0 )
+ ret = i_rEnv.Gate().Ces().Search_CeLocal( i_rQuName.LocalName(),
+ i_rQuName.IsFunction(),
+ *i_rEnv.CurNamespace(),
+ i_pJustDocumentedClass );
+ if (ret != 0)
+ return ret;
+
+ ret = i_rEnv.Gate().Ces().Search_CeLocal( i_rQuName.LocalName(),
+ i_rQuName.IsFunction(),
+ *i_rEnv.CurNamespace(),
+ i_rEnv.CurClass() );
+ }
+ if (ret != 0)
+ return ret;
+
+ return i_rEnv.Gate().Ces().Search_CeAbsolute( *i_rEnv.CurNamespace(),
+ i_rQuName );
+}
+
+void
+ShowDocu_On( csi::xml::Element & o_rOut,
+ Docu_Display & io_rDisplay,
+ const ary::cpp::CppEntity & i_rRE )
+{
+ if (i_rRE.Docu().Data() != 0)
+ {
+ io_rDisplay.Assign_Out( o_rOut );
+ io_rDisplay.Process(i_rRE.Docu());
+ io_rDisplay.Unassign_Out();
+ }
+}
+
+void
+WriteOut_TokenList( csi::xml::Element & o_rOut,
+ const StringVector & i_rTokens,
+ const char * i_sSeparator )
+{
+ if ( i_rTokens.size() > 0 )
+ {
+ StringVector::const_iterator
+ it = i_rTokens.begin();
+ StringVector::const_iterator
+ itEnd = i_rTokens.end();
+
+ o_rOut << *it;
+ for ( ++it; it != itEnd; ++it )
+ {
+ o_rOut << i_sSeparator << *it;
+ }
+ };
+
+}
+
+void
+EraseLeadingSpace( String & io_rStr )
+{
+ if ( *io_rStr.c_str() < 33 AND io_rStr.length() > 0 )
+ {
+ const unsigned char * pNew;
+ for ( pNew = (const unsigned char * ) io_rStr.c_str();
+ *pNew < 33 AND *pNew != 0;
+ ++pNew ) {}
+ String sNew( (const char*)pNew );
+ io_rStr = sNew;
+ }
+}
+
+void
+WriteOut_LinkedFunctionText( csi::xml::Element & o_rTitleOut,
+ adcdisp::ParameterTable & o_rParameters,
+ const ary::cpp::Function & i_rFunction,
+ const OuputPage_Environment & i_rEnv,
+ bool * o_bIsConst,
+ bool * o_bIsVirtual )
+{
+ // write pre-name:
+ const ary::cpp::FunctionFlags & rFlags = i_rFunction.Flags();
+ if ( rFlags.IsStaticLocal() OR rFlags.IsStaticMember() )
+ o_rTitleOut << "static ";
+ if ( rFlags.IsExplicit() )
+ o_rTitleOut << "explicit ";
+ if ( rFlags.IsMutable() )
+ o_rTitleOut << "mutable ";
+ if ( i_rFunction.Virtuality() != ary::cpp::VIRTUAL_none )
+ o_rTitleOut << "virtual ";
+// o_rTitleOut << new html::LineBreak;
+
+ Get_LinkedTypeText( o_rTitleOut, i_rEnv, i_rFunction.ReturnType() );
+
+ // write name:
+ o_rTitleOut
+ << " "
+ >> *new html::Strong
+ << i_rFunction.LocalName();
+ o_rTitleOut
+ << "(";
+
+
+ csi::xml::Element * pOutLast = &o_rTitleOut;
+
+ // write post-name:
+ FunctionParam_Iterator fit;
+ fit.Assign(i_rFunction);
+
+ if (fit)
+ {
+ o_rParameters.AddEntry();
+ Get_LinkedTypeText( o_rParameters.Type(), i_rEnv, fit.CurType() );
+ o_rParameters.Type() << " ";
+ o_rParameters.Name() << " " << fit.CurName();
+
+ for ( ++fit; fit; ++fit )
+ {
+ o_rParameters.Name() << ",";
+ o_rParameters.AddEntry();
+ Get_LinkedTypeText( o_rParameters.Type(), i_rEnv, fit.CurType() );
+ o_rParameters.Name() << fit.CurName();
+ }
+
+ pOutLast = &o_rParameters.Name();
+ o_rParameters.Name() << " ";
+ }
+
+ *pOutLast << ")";
+ if ( fit.IsFunctionConst() )
+ {
+ *pOutLast << " const";
+ if ( o_bIsConst != 0 )
+ *o_bIsConst = true;
+ }
+ if ( fit.IsFunctionVolatile() )
+ {
+ *pOutLast << " volatile";
+ if ( o_bIsVirtual != 0 )
+ *o_bIsVirtual = true;
+ }
+
+ // write Exceptions:
+ const std::vector< ary::cpp::Type_id > *
+ pThrow = i_rFunction.Exceptions();
+ if ( pThrow)
+ {
+ std::vector< ary::cpp::Type_id >::const_iterator
+ it = pThrow->begin();
+ std::vector< ary::cpp::Type_id >::const_iterator
+ it_end = pThrow->end();
+
+ if (it != it_end)
+ {
+ o_rParameters.AddEntry();
+ pOutLast = &o_rParameters.Name();
+
+ o_rParameters.Name() << " throw( ";
+ Get_LinkedTypeText(o_rParameters.Name(), i_rEnv, *it);
+
+ for ( ++it; it != it_end; ++it )
+ {
+ o_rParameters.Name() << ", ";
+ Get_LinkedTypeText(o_rParameters.Name(), i_rEnv, *it);
+ }
+ o_rParameters.Name() << " )";
+ }
+ else
+ {
+ *pOutLast << " throw()";
+ }
+ } // endif // pThrow
+
+ // abstractness:
+ if ( i_rFunction.Virtuality() == ary::cpp::VIRTUAL_abstract )
+ *pOutLast << " = 0";
+
+ // finish:
+ *pOutLast << ";";
+}
+
+
+
+} // namespace dshelp
diff --git a/autodoc/source/display/html/hdimpl.hxx b/autodoc/source/display/html/hdimpl.hxx
new file mode 100644
index 000000000000..ca882ec4152f
--- /dev/null
+++ b/autodoc/source/display/html/hdimpl.hxx
@@ -0,0 +1,247 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HDIMPL_HXX
+#define ADC_DISPLAY_HDIMPL_HXX
+
+// BASE CLASSES
+#include <udm/html/htmlitem.hxx>
+// USED SERVICES
+#include "easywri.hxx"
+#include <cosv/bstream.hxx>
+#include <ary/ary_disp.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_ce.hxx>
+#include "aryattrs.hxx" // For compatibility with earlier times, when those funtions were in this header.
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class CodeEntity;
+ class Class;
+ class DisplayGate;
+ class Function;
+ class DefineEntity;
+ class OperationSignature;
+ }
+
+ class QualifiedName;
+}
+namespace csi
+{
+ namespace xml
+ {
+ class Element;
+ }
+ namespace html
+ {
+ class Table;
+ }
+}
+
+namespace adcdisp
+{
+ class ParameterTable;
+}
+
+class OuputPage_Environment;
+class Docu_Display;
+
+class HtmlDisplay_Impl
+{
+ public:
+ ~HtmlDisplay_Impl();
+
+ const OuputPage_Environment &
+ Env() const { return *pEnv; }
+
+ // ACCESS
+ OuputPage_Environment &
+ Env() { return *pEnv; }
+ EasyWriter & Easy() { return aWriteHelper; }
+ csi::xml::Element & CurOut() { return aWriteHelper.Out(); }
+
+ protected:
+ HtmlDisplay_Impl(
+ OuputPage_Environment &
+ io_rEnv );
+ private:
+ // DATA
+ OuputPage_Environment *
+ pEnv;
+ EasyWriter aWriteHelper;
+};
+
+
+namespace dshelp
+{
+
+void DisplaySlot(
+ ary::Display & o_rDisplay,
+ const ary::AryGroup &
+ i_rGroup,
+ ary::SlotAccessId i_nSlot );
+
+
+const char * PathUp(
+ uintt i_nLevels );
+const char * PathPerLevelsUp(
+ uintt i_nLevels,
+ const char * i_nPathBelowDestinationLevel );
+
+const char * PathPerRoot(
+ const OuputPage_Environment &
+ i_rEnv,
+ const char * i_sPathFromRootDir );
+const char * PathPerNamespace(
+ const OuputPage_Environment &
+ i_rEnv,
+ const char * i_sPathFromNamespaceDir );
+
+void Create_ChildListLabel(
+ csi::xml::Element & o_rParentElement,
+ const char * i_sLabel );
+DYN csi::html::Table &
+ Create_ChildListTable(
+ const char * i_sTitle );
+
+const char * HtmlFileName(
+ const char * i_sPrefix,
+ const char * i_sEntityName );
+
+inline const char *
+ClassFileName( const char * i_sClassLocalName )
+ { return HtmlFileName( "c-", i_sClassLocalName); }
+inline const char *
+EnumFileName( const char * i_sEnumLocalName )
+ { return HtmlFileName( "e-", i_sEnumLocalName); }
+inline const char *
+TypedefFileName( const char * i_sTypedefLocalName )
+ { return HtmlFileName( "t-", i_sTypedefLocalName); }
+inline const char *
+FileFileName( const char * i_sFileLocalName )
+ { return HtmlFileName( "f-", i_sFileLocalName); }
+
+const char * Path2Class(
+ uintt i_nLevelsUp,
+ const char * i_sClassLocalName );
+
+const char * Path2Child(
+ const char * i_sFileName,
+ const char * i_sSubDir = 0 );
+
+const char * Path2ChildNamespace(
+ const char * i_sLocalName );
+
+String OperationLink(
+ const ary::cpp::Gate & i_gate,
+ const String & i_sOpName,
+ ary::cpp::Ce_id i_nOpId,
+ const char * i_sPrePath = "" );
+const char * DataLink(
+ const String & i_sLocalName,
+ const char * i_sPrePath = "" );
+
+inline String
+OperationLabel( const String & i_sOpName,
+ ary::cpp::Ce_id i_nOpId,
+ const ary::cpp::Gate & i_gate )
+ { return String(OperationLink(i_gate, i_sOpName, i_nOpId) + 1); } // Skip '#' in front.
+inline const char *
+DataLabel( const String & i_sLocalName )
+ { return DataLink(i_sLocalName) + 1; } // Skip '#' in front.
+
+
+void Get_LinkedTypeText(
+ csi::xml::Element & o_rOut,
+ const OuputPage_Environment &
+ i_rEnv,
+ ary::cpp::Type_id i_nId,
+ bool i_bWithAbsolutifier = true );
+
+
+const char * Link2Ce(
+ const OuputPage_Environment &
+ i_rEnv,
+ const ary::cpp::CodeEntity &
+ i_rCe );
+
+const char * Link2CppDefinition(
+ const OuputPage_Environment &
+ i_rEnv,
+ const ary::cpp::DefineEntity &
+ i_rDef );
+
+const ary::cpp::CodeEntity *
+ FindUnambiguousCe(
+ const OuputPage_Environment &
+ i_rEnv,
+ const ary::QualifiedName &
+ i_rQuName,
+ const ary::cpp::Class * i_pJustDocumentedClass );
+
+void ShowDocu_On(
+ csi::xml::Element & o_rOut,
+ Docu_Display & io_rDisplay,
+ const ary::cpp::CppEntity &
+ i_rRE );
+
+void WriteOut_TokenList(
+ csi::xml::Element & o_rOut,
+ const StringVector & i_rTokens,
+ const char * i_sSeparator );
+
+void EraseLeadingSpace(
+ String & io_rStr );
+
+/** @param o_bIsConst
+ *o_bIsConst will be set to true, if o_bIsConst != 0 and function is const.
+ If the function is not const, *o_bIsConst remains unchanged!
+
+ @param o_bIsVirtual
+ The same as o_bIsConst.
+*/
+void WriteOut_LinkedFunctionText(
+ csi::xml::Element & o_rTitleOut,
+ adcdisp::ParameterTable &
+ o_rParameters,
+ const ary::cpp::Function &
+ i_rFunction,
+ const OuputPage_Environment &
+ i_rEnv,
+ bool * o_bIsConst = 0,
+ bool * o_bIsVirtual = 0 );
+
+
+
+} // namespace dshelp
+
+using namespace dshelp;
+
+#endif
diff --git a/autodoc/source/display/html/html_kit.cxx b/autodoc/source/display/html/html_kit.cxx
new file mode 100644
index 000000000000..8b43373505fb
--- /dev/null
+++ b/autodoc/source/display/html/html_kit.cxx
@@ -0,0 +1,305 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "html_kit.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <stdio.h>
+#include <ary/cpp/c_slntry.hxx>
+#include "hdimpl.hxx"
+
+
+namespace adcdisp
+{
+
+
+using namespace csi::xml;
+using namespace csi::html;
+
+
+void
+PageTitle_Left::operator()( XmlElement & o_rOwner,
+ const char * i_sTypeTitle,
+ const String & i_sLocalName )
+{
+ o_rOwner
+ >> *new Headline(2)
+ << i_sTypeTitle
+ << " "
+ << i_sLocalName;
+}
+
+void
+PageTitle_Std::operator()( XmlElement & o_rOwner,
+ const char * i_sTypeTitle,
+ const String & i_sLocalName )
+{
+ o_rOwner
+ >> *new AnElement("div")
+ << new ClassAttr("title")
+ >> *new Headline(2)
+ << i_sTypeTitle
+ << " "
+ << i_sLocalName;
+}
+
+XmlElement &
+PageTitle_Std::operator()( XmlElement & o_rOwner )
+{
+ XmlElement & ret =
+ o_rOwner
+ >> *new AnElement("div")
+ << new ClassAttr("title")
+ >> *new Headline(2);
+ return ret;
+}
+
+void
+OperationTitle::operator()( XmlElement & o_owner,
+ const char * i_itemName,
+ ary::cpp::Ce_id i_id,
+ const ::ary::cpp::Gate & i_gate )
+{
+ o_owner
+ >> *new Label( OperationLabel(i_itemName, i_id, i_gate) )
+ << " ";
+ o_owner
+ << i_itemName;
+}
+
+
+void
+TemplateClause::operator()( XmlElement & o_rOwner,
+ const List_TplParams & i_rTplParams )
+{
+ if ( i_rTplParams.size() == 0 )
+ return;
+
+ Element & rOut =
+ o_rOwner
+ << new LineBreak
+ >> *new Paragraph
+ >> *new Strong
+ << "template< ";
+
+ List_TplParams::const_iterator
+ it = i_rTplParams.begin();
+ List_TplParams::const_iterator
+ itEnd = i_rTplParams.end();
+
+ rOut
+ << (*it).Name();
+ for ( ++it; it != itEnd; ++it )
+ {
+ rOut
+ << ", "
+ << (*it).Name();
+ } // end for
+ rOut << " >";
+}
+
+ExplanationList::ExplanationList( XmlElement & o_rOwner,
+ bool i_bMemberStyle )
+ : pList( new DefList),
+ pTerm(0),
+ pDefinition(0),
+ bMemberStyle(i_bMemberStyle)
+{
+ if (bMemberStyle)
+ *pList << new ClassAttr("member");
+
+ o_rOwner << pList;
+}
+
+void
+ExplanationList::AddEntry( const char * i_sTerm,
+ const char * i_sDifferentClass )
+{
+ DefListTerm & rNewTerm = pList->AddTerm();
+ if ( i_sDifferentClass != 0 )
+ {
+ rNewTerm << new ClassAttr(i_sDifferentClass);
+ }
+ else if (bMemberStyle)
+ {
+ rNewTerm << new ClassAttr("member");
+ }
+ if ( i_sTerm != 0 )
+ rNewTerm << i_sTerm;
+
+ pTerm = &rNewTerm;
+ pDefinition = &pList->AddDefinition();
+ if (bMemberStyle)
+ *pDefinition << new ClassAttr("member");
+}
+
+void
+ExplanationList::AddEntry_NoTerm()
+{
+ pTerm = 0;
+ pDefinition = &pList->AddDefinition();
+ if (bMemberStyle)
+ *pDefinition << new ClassAttr("member");
+}
+
+ExplanationTable::ExplanationTable( XmlElement & o_rOwner )
+ : pTable(0),
+ pTerm(0),
+ pDefinition(0)
+{
+ pTable = new Table("0", "100%", "3", "0");
+ *pTable << new AnAttribute("class", "expl-table");
+ o_rOwner << pTable;
+}
+
+void
+ExplanationTable::AddEntry( const char * i_sTerm,
+ const char * i_sDifferentStyle )
+{
+ TableRow &
+ rNewRow = pTable->AddRow();
+ TableCell &
+ rNewTerm = rNewRow.AddCell();
+ TableCell &
+ rNewDefinition = rNewRow.AddCell();
+
+ if ( i_sDifferentStyle == 0 )
+ {
+ rNewTerm << new WidthAttr("15%")
+ << new StyleAttr("vertical-align:top; font-weight:bold");
+ }
+ else
+ {
+ rNewTerm << new StyleAttr(i_sDifferentStyle);
+ }
+ if ( i_sTerm != 0 )
+ rNewTerm << i_sTerm;
+
+ pTerm = &rNewTerm;
+ pDefinition = & (rNewDefinition >> *new APureElement("pre"));
+}
+
+ParameterTable::ParameterTable( XmlElement & o_rOwner )
+ : pTable(0),
+ pTerm(0),
+ pDefinition(0)
+{
+ pTable = new Table;
+ *pTable << new AnAttribute("class", "param-table");
+ o_rOwner << pTable;
+}
+
+void
+ParameterTable::AddEntry()
+{
+ TableRow &
+ rNewRow = pTable->AddRow();
+ TableCell &
+ rNewTerm = rNewRow.AddCell();
+ TableCell &
+ rNewDefinition = rNewRow.AddCell();
+
+ pTerm = &rNewTerm;
+ pDefinition = &rNewDefinition;
+}
+
+FlagTable::FlagTable( XmlElement & o_rOwner,
+ uintt i_nNrOfColumns )
+{
+ pTable = new Table;
+ *pTable << new AnAttribute("class", "flag-table");
+ *pTable << new AnAttribute("border", "1");
+ *pTable << new AnAttribute("cellspacing", "0");
+ o_rOwner << pTable;
+
+ TableRow & rRow1 = pTable->AddRow();
+ TableRow & rRow2 = pTable->AddRow();
+
+ for ( uintt c = 0; c < i_nNrOfColumns; ++c )
+ {
+ TableCell & rCell1 = rRow1.AddCell();
+ int nWidth = 100 / i_nNrOfColumns;
+ static char sWidth[20];
+ sprintf( sWidth, "%d%%", nWidth ); // SAFE SPRINTF (#100211# - checked)
+
+ rCell1
+ << new WidthAttr( sWidth )
+ << new ClassAttr( "flagname" );
+ TableCell & rCell2 = rRow2.AddCell();
+ aCells.push_back( CellPair(&rCell1, &rCell2) );
+ } // end for
+}
+
+void
+FlagTable::SetColumn( uintt i_nColumnPosition,
+ const char * i_sColumnName,
+ bool i_bValue )
+{
+ csv_assert( i_nColumnPosition < aCells.size() );
+
+ TableCell &
+ rCell1 = *aCells[i_nColumnPosition].first;
+ TableCell &
+ rCell2 = *aCells[i_nColumnPosition].second;
+ rCell1
+ << i_sColumnName;
+ if (i_bValue)
+ {
+ rCell2
+ << new ClassAttr("flagyes")
+ << "YES";
+ }
+ else //
+ {
+ rCell2
+ << new ClassAttr("flagno")
+ << "NO";
+ } // endif
+}
+
+IndexList::IndexList( XmlElement & o_rOwner )
+ : pList( new DefList ),
+ pTerm(0),
+ pDefinition(0)
+{
+ o_rOwner << pList;
+}
+
+void
+IndexList::AddEntry()
+{
+ pTerm = &pList->AddTerm();
+ pDefinition = &pList->AddDefinition();
+}
+
+
+} // namespace adcdisp
+
+
+
diff --git a/autodoc/source/display/html/html_kit.hxx b/autodoc/source/display/html/html_kit.hxx
new file mode 100644
index 000000000000..ad321d05aac7
--- /dev/null
+++ b/autodoc/source/display/html/html_kit.hxx
@@ -0,0 +1,198 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_KIT_HXX
+#define ADC_DISPLAY_HTML_KIT_HXX
+
+// BASE CLASSES
+#include <udm/xml/xmlitem.hxx>
+#include <udm/html/htmlitem.hxx>
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ struct S_TplParam;
+ class OperationSignature;
+ class Gate;
+ }
+}
+
+
+
+
+namespace adcdisp
+{
+
+typedef csi::xml::Element XmlElement;
+
+class PageTitle_Left
+{
+ public:
+ void operator()(
+ XmlElement & o_rOwner,
+ const char * i_sTypeTitle,
+ const String & i_sLocalName );
+};
+
+class PageTitle_Std
+{
+ public:
+ void operator()(
+ XmlElement & o_rOwner,
+ const char * i_sTypeTitle,
+ const String & i_sLocalName );
+ XmlElement & operator()(
+ XmlElement & o_rOwner );
+};
+
+class OperationTitle
+{
+ public:
+ void operator()(
+ XmlElement & o_rOwner,
+ const char * i_sItemName,
+ ary::cpp::Ce_id i_nId,
+ const ::ary::cpp::Gate &
+ i_gate );
+};
+
+
+class TemplateClause
+{
+ public:
+ typedef std::vector< ary::cpp::S_TplParam> List_TplParams;
+
+ void operator()(
+ XmlElement & o_rOwner,
+ const List_TplParams &
+ i_rTplParams );
+};
+
+
+class ExplanationList
+{
+ public:
+ ExplanationList(
+ XmlElement & o_rOwner,
+ bool i_bMemberStyle = false );
+
+ void AddEntry(
+ const char * i_sTerm = 0,
+ const char * i_sDifferentClass = 0 );
+ void AddEntry_NoTerm();
+
+ XmlElement & Term() { return *pTerm; }
+ XmlElement & Def() { return *pDefinition; }
+
+ private:
+ csi::html::DefList* pList;
+ XmlElement * pTerm;
+ XmlElement * pDefinition;
+ bool bMemberStyle;
+};
+
+class ExplanationTable
+{
+ public:
+ ExplanationTable(
+ XmlElement & o_rOwner );
+
+ void AddEntry(
+ const char * i_sTerm = 0,
+ const char * i_sDifferentStyle = 0 );
+
+ XmlElement & Term() { return *pTerm; }
+ XmlElement & Def() { return *pDefinition; }
+
+ private:
+ csi::html::Table* pTable;
+ XmlElement * pTerm;
+ XmlElement * pDefinition;
+};
+
+class ParameterTable
+{
+ public:
+ ParameterTable(
+ XmlElement & o_rOwner );
+
+ void AddEntry();
+
+ XmlElement & Type() { return *pTerm; }
+ XmlElement & Name() { return *pDefinition; }
+
+ private:
+ csi::html::Table* pTable;
+ XmlElement * pTerm;
+ XmlElement * pDefinition;
+};
+
+class FlagTable
+{
+ public:
+ FlagTable(
+ XmlElement & o_rOwner,
+ uintt i_nNrOfColumns );
+
+ void SetColumn(
+ uintt i_nColumnPosition, /// Starting with 0.
+ const char * i_sColumnName,
+ bool i_bValue ); /// "YES" or "NO"
+ private:
+ typedef std::pair< csi::html::TableCell*, csi::html::TableCell* > CellPair;
+
+ // DATA
+ csi::html::Table* pTable;
+ std::vector<CellPair>
+ aCells;
+};
+
+class IndexList
+{
+ public:
+ IndexList(
+ XmlElement & o_rOwner );
+
+ void AddEntry();
+
+ XmlElement & Term() { return *pTerm; }
+ XmlElement & Def() { return *pDefinition; }
+
+ private:
+ csi::html::DefList* pList;
+ XmlElement * pTerm;
+ XmlElement * pDefinition;
+};
+
+
+
+
+} // namespace adcdisp
+#endif
diff --git a/autodoc/source/display/html/makefile.mk b/autodoc/source/display/html/makefile.mk
new file mode 100644
index 000000000000..58046760ebd7
--- /dev/null
+++ b/autodoc/source/display/html/makefile.mk
@@ -0,0 +1,78 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_html
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/aryattrs.obj \
+ $(OBJ)$/cfrstd.obj \
+ $(OBJ)$/chd_udk2.obj \
+ $(OBJ)$/cre_link.obj \
+ $(OBJ)$/dsply_cl.obj \
+ $(OBJ)$/dsply_da.obj \
+ $(OBJ)$/dsply_op.obj \
+ $(OBJ)$/easywri.obj \
+ $(OBJ)$/hd_chlst.obj \
+ $(OBJ)$/hd_docu.obj \
+ $(OBJ)$/hdimpl.obj \
+ $(OBJ)$/html_kit.obj \
+ $(OBJ)$/nav_main.obj \
+ $(OBJ)$/navibar.obj \
+ $(OBJ)$/outfile.obj \
+ $(OBJ)$/opageenv.obj \
+ $(OBJ)$/pagemake.obj \
+ $(OBJ)$/pm_aldef.obj \
+ $(OBJ)$/pm_base.obj \
+ $(OBJ)$/pm_class.obj \
+ $(OBJ)$/pm_help.obj \
+ $(OBJ)$/pm_index.obj \
+ $(OBJ)$/pm_namsp.obj \
+ $(OBJ)$/pm_start.obj \
+ $(OBJ)$/protarea.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/html/nav_main.cxx b/autodoc/source/display/html/nav_main.cxx
new file mode 100644
index 000000000000..e61099fc502f
--- /dev/null
+++ b/autodoc/source/display/html/nav_main.cxx
@@ -0,0 +1,377 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "nav_main.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_ce.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <udm/html/htmlitem.hxx>
+#include "hdimpl.hxx"
+#include "opageenv.hxx"
+#include "strconst.hxx"
+
+
+using namespace ::csi::html;
+using namespace ::csi::xml;
+
+
+const String sOverview("Overview");
+const String sNamespace("Namespace");
+const String sClass("Class");
+const String sTree("Tree");
+const String sProject("Project");
+const String sFile("File");
+const String sIndex("Index");
+const String sHelp("Help");
+
+
+
+//******************** MainItem and derived ones ***************//
+class MainItem
+{
+ public:
+ virtual ~MainItem() {}
+ void Write2(
+ TableRow & o_rOut );
+ private:
+ virtual void do_Write2(
+ TableRow & o_rOut ) = 0;
+};
+
+inline void
+MainItem::Write2( TableRow & o_rOut )
+ { do_Write2(o_rOut); }
+
+
+namespace
+{
+
+class MainRowItem : public MainItem
+{
+ public:
+ MainRowItem(
+ const String & i_sText,
+ const char * i_sLink,
+ const char * i_sTip );
+ ~MainRowItem();
+ private:
+ enum E_Style { eSelf, eNo, eStd };
+
+ virtual void do_Write2(
+ TableRow & o_rOut );
+ String sText;
+ String sLink;
+ String sTip;
+};
+
+MainRowItem::MainRowItem( const String & i_sText,
+ const char * i_sLink,
+ const char * i_sTip )
+ : sText(i_sText),
+ sLink(i_sLink),
+ sTip(i_sTip)
+{
+}
+
+MainRowItem::~MainRowItem()
+{
+}
+
+void
+MainRowItem::do_Write2( TableRow & o_rOut )
+{
+ TableCell & rCell = o_rOut.AddCell();
+
+ rCell
+ << new ClassAttr( "navimain" )
+ << new XmlCode("&nbsp;")
+ >> *new Link(sLink.c_str())
+ << sText.c_str();
+ rCell
+ << new XmlCode("&nbsp;");
+}
+
+
+class SelectedItem : public MainItem
+{
+ public:
+ SelectedItem(
+ const String & i_sText )
+ : sText(i_sText) {}
+ private:
+ virtual void do_Write2(
+ TableRow & o_rOut );
+ String sText;
+};
+
+void
+SelectedItem::do_Write2( TableRow & o_rOut )
+{
+ TableCell & rCell = o_rOut.AddCell();
+
+ rCell
+ << new ClassAttr( "navimainself" )
+ << new XmlCode("&nbsp;")
+ << sText.c_str()
+ << new XmlCode("&nbsp;");
+}
+
+class UnavailableItem : public MainItem
+{
+ public:
+ UnavailableItem(
+ const String & i_sText )
+ : sText(i_sText) {}
+ private:
+ virtual void do_Write2(
+ TableRow & o_rOut );
+ String sText;
+};
+
+void
+UnavailableItem::do_Write2( TableRow & o_rOut )
+{
+ TableCell & rCell = o_rOut.AddCell();
+
+ rCell
+ << new ClassAttr( "navimainnone" )
+ << new XmlCode("&nbsp;")
+ << sText.c_str()
+ << new XmlCode("&nbsp;");
+}
+
+} // anonymous namespace
+
+//************************ MainRow ***************************//
+
+MainRow::MainRow( const OuputPage_Environment & i_rEnv )
+ : // aItems,
+ pEnv(&i_rEnv)
+{
+}
+
+MainRow::~MainRow()
+{
+ csv::erase_container_of_heap_ptrs(aItems);
+}
+
+void
+MainRow::SetupItems_Overview()
+{
+ Create_ItemList_Global( eSelf, eStd, eStd );
+}
+
+void
+MainRow::SetupItems_AllDefs()
+{
+ Create_ItemList_Global( eStd, eStd, eStd );
+}
+
+void
+MainRow::SetupItems_Index()
+{
+ Create_ItemList_Global( eStd, eSelf, eStd );
+}
+
+void
+MainRow::SetupItems_Help()
+{
+ Create_ItemList_Global( eStd, eStd, eSelf );
+}
+
+void
+MainRow::SetupItems_Ce( const ary::cpp::CodeEntity & i_rCe )
+{
+ csv_assert( pEnv->CurNamespace() != 0 );
+ bool bIsNamespace = i_rCe.Id() == pEnv->CurNamespace()->Id();
+ bool bHasClass = pEnv->CurClass() != 0;
+ bool bIsClass = dynamic_cast< const ary::cpp::Class * >(&i_rCe) != 0;
+
+ Create_ItemList_InDirTree_Cpp(
+ ( bIsNamespace ? eSelf : eStd ),
+ ( bIsClass ? eSelf : bHasClass ? eStd : eNo ),
+ eNo, 0 );
+}
+
+void
+MainRow::SetupItems_FunctionGroup()
+{
+ Create_ItemList_InDirTree_Cpp(
+ eStd,
+ (pEnv->CurClass() != 0 ? eStd : eNo),
+ eNo, 0 );
+}
+
+void
+MainRow::SetupItems_DataGroup()
+{
+ SetupItems_FunctionGroup();
+}
+
+void
+MainRow::Write2( csi::xml::Element & o_rOut ) const
+{
+ Table * pTable = new Table;
+ o_rOut
+ >> *pTable
+ << new AnAttribute( "class", "navimain" )
+ << new AnAttribute( "border", "0" )
+ << new AnAttribute( "cellpadding", "1" )
+ << new AnAttribute( "cellspacing", "0" );
+ TableRow & rRow = pTable->AddRow();
+ rRow
+ << new AnAttribute( "align", "center" )
+ << new AnAttribute( "valign", "top" );
+ for ( ItemList::const_iterator it = aItems.begin();
+ it != aItems.end();
+ ++it )
+ {
+ (*it)->Write2( rRow );
+ }
+}
+
+void
+MainRow::Create_ItemList_Global( E_Style i_eOverview,
+ E_Style i_eIndex,
+ E_Style i_eHelp )
+{
+ if ( i_eOverview == eStd )
+ {
+ String sLinkOverview = ( i_eIndex == eSelf
+ ? dshelp::PathPerLevelsUp(
+ 1,
+ C_sHFN_Overview )
+ : C_sHFN_Overview );
+ Add_Item( i_eOverview, sOverview, sLinkOverview.c_str(), "" );
+ }
+ else
+ {
+ Add_Item( i_eOverview, sOverview, "", "" );
+ }
+
+ if ( i_eIndex == eSelf )
+ Add_Item( eStd, sNamespace, "../names/index.html", "" );
+ else
+ Add_Item( eStd, sNamespace, "names/index.html", "" );
+
+ Add_Item( eNo, sClass, "", "" );
+
+ if ( i_eIndex == eStd )
+ {
+ Add_Item( i_eIndex, sIndex, C_sPath_Index, "" );
+ }
+ else
+ {
+ Add_Item( i_eIndex, sIndex, "", "" );
+ }
+
+ if ( i_eHelp == eStd )
+ {
+ String sLinkHelp = ( i_eIndex == eSelf
+ ? PathPerLevelsUp(1,C_sHFN_Help)
+ : C_sHFN_Help );
+ Add_Item( i_eHelp, sHelp, sLinkHelp.c_str(), "" );
+ }
+ else
+ {
+ Add_Item( i_eHelp, sHelp, "", "" );
+ }
+}
+
+void
+MainRow::Create_ItemList_InDirTree_Cpp( E_Style i_eNsp,
+ E_Style i_eClass,
+ E_Style ,
+ const char * )
+{
+ String
+ sLinkOverview = PathPerRoot(*pEnv, C_sHFN_Overview);
+ Add_Item( eStd, sOverview, sLinkOverview.c_str(), "" );
+
+ if (i_eNsp == eStd)
+ {
+ String sLinkNamespace = PathPerNamespace(*pEnv, "index.html");
+ Add_Item( i_eNsp, sNamespace, sLinkNamespace.c_str(), "" );
+ }
+ else
+ {
+ Add_Item( i_eNsp, sNamespace, "", "" );
+ }
+
+ if (i_eClass == eStd)
+ {
+ csv_assert( pEnv->CurClass() != 0 );
+
+ StreamLock sLinkClass(300);
+ sLinkClass() << PathPerNamespace(*pEnv, "c-")
+ << pEnv->CurClass()->LocalName()
+ << ".html";
+ StreamLock sTipClass(300);
+ sTipClass() << "Class "
+ << pEnv->CurClass()->LocalName();
+ Add_Item( i_eClass, sClass, sLinkClass().c_str(), sTipClass().c_str() );
+ }
+ else
+ {
+ Add_Item( i_eClass, sClass, "", "" );
+ }
+
+
+ Add_Item( eStd, sIndex, PathPerRoot(*pEnv, C_sPath_Index), "" );
+ String
+ sLinkHelp = PathPerRoot(*pEnv, "help.html");
+ Add_Item( eStd, sHelp, sLinkHelp.c_str(), "" );
+}
+
+void
+MainRow::Add_Item( E_Style i_eStyle,
+ const String & i_sText,
+ const char * i_sLink,
+ const char * i_sTip )
+{
+ switch (i_eStyle)
+ {
+ case eStd: aItems.push_back( new MainRowItem(i_sText, i_sLink, i_sTip) );
+ break;
+ case eNo: aItems.push_back( new UnavailableItem(i_sText) );
+ break;
+ case eSelf: aItems.push_back( new SelectedItem(i_sText) );
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+
+
diff --git a/autodoc/source/display/html/nav_main.hxx b/autodoc/source/display/html/nav_main.hxx
new file mode 100644
index 000000000000..f05bebe47969
--- /dev/null
+++ b/autodoc/source/display/html/nav_main.hxx
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_NAV_MAIN_HXX
+#define ADC_DISPLAY_HTML_NAV_MAIN_HXX
+
+// USED SERVICES
+
+namespace ary
+{
+namespace cpp
+{
+ class CodeEntity;
+}
+namespace loc
+{
+ class File;
+}
+}
+namespace csi
+{
+namespace xml
+{
+ class Element;
+}
+}
+
+class OuputPage_Environment;
+class MainItem;
+
+
+
+
+class MainRow
+{
+ public:
+ MainRow(
+ const OuputPage_Environment &
+ i_rEnv );
+ ~MainRow();
+
+ void SetupItems_Overview();
+ void SetupItems_AllDefs();
+ void SetupItems_Index();
+ void SetupItems_Help();
+
+ void SetupItems_Ce(
+ const ary::cpp::CodeEntity &
+ i_rCe );
+ void SetupItems_FunctionGroup(); /// For class member methods.
+ void SetupItems_DataGroup(); /// For class member data.
+
+ void Write2(
+ csi::xml::Element & o_rOut ) const;
+ private:
+ // Local
+ enum E_Style
+ {
+ eSelf,
+ eNo,
+ eStd
+ };
+
+ /** @precond
+ Only combinations of 1 eSelf and 2 eStd are allowed
+ as arguments, here.
+ */
+ void Create_ItemList_Global(
+ E_Style i_eOverview,
+ E_Style i_eIndex,
+ E_Style i_eHelp );
+ void Create_ItemList_InDirTree_Cpp(
+ E_Style i_eNsp,
+ E_Style i_eClass,
+ E_Style i_eTree,
+ const char * i_sTreeLink );
+ void Add_Item(
+ E_Style i_eStyle,
+ const String & i_sText,
+ const char * i_sLink,
+ const char * i_sTip );
+ // DATA
+ typedef std::vector< DYN MainItem* > ItemList;
+
+
+ ItemList aItems;
+ const OuputPage_Environment *
+ pEnv;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/navibar.cxx b/autodoc/source/display/html/navibar.cxx
new file mode 100644
index 000000000000..06f3e9397b8e
--- /dev/null
+++ b/autodoc/source/display/html/navibar.cxx
@@ -0,0 +1,315 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "navibar.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include "nav_main.hxx"
+#include "opageenv.hxx"
+
+
+using namespace csi::xml;
+using namespace csi::html;
+
+
+namespace
+{
+
+//************************ SubRowItem ***************************//
+
+class SubRowItem
+{
+ public:
+ SubRowItem(
+ const char * i_sText,
+ const char * i_sLink,
+ bool i_bActive,
+ bool i_bFirstOfRow = false );
+ ~SubRowItem();
+
+ void Write2(
+ Element & o_rOut ) const;
+ private:
+ String sText;
+ String sLink;
+ bool bIsActive;
+ bool bFirstOfRow;
+};
+
+SubRowItem::SubRowItem( const char * i_sText,
+ const char * i_sLink,
+ bool i_bActive,
+ bool i_bFirstOfRow )
+ : sText(i_sText),
+ sLink(i_sLink),
+ bIsActive(i_bActive),
+ bFirstOfRow(i_bFirstOfRow)
+{
+ csv_assert( NOT csv::no_str(i_sLink) );
+}
+
+SubRowItem::~SubRowItem()
+{
+}
+
+void
+SubRowItem::Write2( Element & o_rOut ) const
+{
+ o_rOut << new Sbr;
+ if ( NOT bFirstOfRow )
+ o_rOut << new XmlCode( "|&nbsp;" );
+ else
+ o_rOut << new XmlCode( "&nbsp;" );
+
+ if ( bIsActive )
+ {
+ o_rOut
+ >> *new Link( sLink.c_str() )
+ >> *new AnElement( "font" )
+ << new AnAttribute("size","-2")
+ >> *new Bold
+ << sText.c_str();
+ }
+ else
+ {
+ o_rOut
+ >> *new AnElement( "font" )
+ << new AnAttribute("size","-2")
+ << sText.c_str();
+ }
+}
+
+
+
+//************************ SubRow ***************************//
+
+class SubRow
+{
+ public:
+ SubRow(
+ const char * i_sTitle );
+ ~SubRow();
+
+ void AddItem(
+ const char * i_sText,
+ const char * i_sLink,
+ bool i_bActive );
+ void Write2(
+ Table & o_rOut ) const;
+ private:
+ typedef std::vector< DYN SubRowItem * > List_Items;
+
+ List_Items aItemList;
+ String sTitle;
+};
+
+SubRow::SubRow( const char * i_sTitle )
+// : // aItemList,
+ // sTitle
+{
+ StreamStr sUp(i_sTitle,0);
+ sUp.to_upper();
+ sTitle = sUp.c_str();
+}
+
+SubRow::~SubRow()
+{
+ for ( List_Items::iterator it = aItemList.begin();
+ it != aItemList.end();
+ ++it )
+ {
+ delete (*it);
+ }
+}
+
+inline void
+SubRow::AddItem( const char * i_sText,
+ const char * i_sLink,
+ bool i_bActive )
+{
+ aItemList.push_back( new SubRowItem(i_sText, i_sLink, i_bActive, aItemList.empty()) );
+}
+
+void
+SubRow::Write2( Table & o_rOut ) const
+{
+ TableRow * pRow = new TableRow;
+ o_rOut << pRow;
+
+ if (sTitle.length() > 0)
+ {
+ Element & rCell1 = pRow->AddCell();
+ rCell1
+ << new WidthAttr("20%")
+ >> *new AnElement( "font" )
+ << new AnAttribute("size","-2")
+ << sTitle
+ << ":";
+ }
+
+ Element & rCell2 = pRow->AddCell();
+ for ( List_Items::const_iterator it = aItemList.begin();
+ it != aItemList.end();
+ ++it )
+ {
+ (*it)->Write2( rCell2 );
+ }
+}
+
+
+} // anonymous namespace
+
+
+
+//************************* CheshireCat ***********************//
+
+
+typedef std::vector< DYN SubRow * > List_SubRows;
+
+struct NavigationBar::CheshireCat
+{
+ MainRow aMainRow;
+ List_SubRows aSubRows;
+ const OuputPage_Environment *
+ pEnv;
+
+
+ CheshireCat(
+ const OuputPage_Environment &
+ i_rEnv );
+ ~CheshireCat();
+};
+
+NavigationBar::
+CheshireCat::CheshireCat( const OuputPage_Environment & i_rEnv )
+ : aMainRow( i_rEnv ),
+ pEnv( & i_rEnv )
+{
+}
+
+NavigationBar::
+CheshireCat::~CheshireCat()
+{
+ csv::erase_container_of_heap_ptrs( aSubRows );
+}
+
+
+//************************ NavigationBar *******************//
+
+NavigationBar::NavigationBar( const OuputPage_Environment & i_rEnv,
+ E_GlobalLocation i_eLocation )
+ : pi( new CheshireCat(i_rEnv) )
+{
+ switch (i_eLocation)
+ {
+ case LOC_Overview: pi->aMainRow.SetupItems_Overview(); break;
+ case LOC_AllDefs: pi->aMainRow.SetupItems_AllDefs(); break;
+ case LOC_Index: pi->aMainRow.SetupItems_Index(); break;
+ case LOC_Help: pi->aMainRow.SetupItems_Help(); break;
+ default:
+ csv_assert(false);
+ }
+}
+
+NavigationBar::NavigationBar( const OuputPage_Environment & i_rEnv,
+ const ary::cpp::CodeEntity & i_rCe )
+ : pi( new CheshireCat(i_rEnv) )
+{
+ pi->aMainRow.SetupItems_Ce( i_rCe );
+}
+
+NavigationBar::NavigationBar( const OuputPage_Environment & i_rEnv,
+ E_CeGatheringType i_eCeGatheringType )
+ : pi( new CheshireCat(i_rEnv) )
+{
+ switch (i_eCeGatheringType)
+ {
+ case CEGT_operations: pi->aMainRow.SetupItems_FunctionGroup(); break;
+ case CEGT_data: pi->aMainRow.SetupItems_DataGroup(); break;
+ default:
+ csv_assert(false);
+ }
+}
+
+NavigationBar::~NavigationBar()
+{
+ csv::erase_container_of_heap_ptrs( pi->aSubRows );
+}
+
+void
+NavigationBar::MakeSubRow( const char * i_sTitle )
+{
+ pi->aSubRows.push_back( new SubRow(i_sTitle) );
+}
+
+void
+NavigationBar::AddItem( const char * i_sName,
+ const char * i_sLink,
+ bool i_bValid )
+{
+ csv_assert( pi->aSubRows.size() > 0 );
+ StreamStr sName(i_sName, 0);
+ sName.to_upper();
+
+ StreamLock aSum(100);
+ pi->aSubRows.back()->AddItem( sName.c_str(),
+ aSum() << "#" << i_sLink << c_str,
+ i_bValid );
+}
+
+void
+NavigationBar::Write( Element & o_rOut,
+ bool i_bWithSubRows ) const
+{
+ pi->aMainRow.Write2( o_rOut );
+
+ const_cast< NavigationBar* >(this)->pSubRowsTable = new Table;
+ o_rOut << pSubRowsTable;
+ *pSubRowsTable
+ << new AnAttribute( "class", "navisub" )
+ << new AnAttribute( "cellpadding", "0" )
+ << new AnAttribute( "cellspacing", "3" );
+
+ if (i_bWithSubRows)
+ {
+ Write_SubRows();
+ }
+}
+
+void
+NavigationBar::Write_SubRows() const
+{
+ for ( List_SubRows::const_iterator it = pi->aSubRows.begin();
+ it != pi->aSubRows.end();
+ ++it )
+ {
+ (*it)->Write2( *pSubRowsTable );
+ }
+}
diff --git a/autodoc/source/display/html/navibar.hxx b/autodoc/source/display/html/navibar.hxx
new file mode 100644
index 000000000000..4b90985d29a4
--- /dev/null
+++ b/autodoc/source/display/html/navibar.hxx
@@ -0,0 +1,118 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_NAVIBAR_HXX
+#define ADC_DISPLAY_HTML_NAVIBAR_HXX
+
+// BASE CLASSES
+#include "hdimpl.hxx"
+
+namespace ary
+{
+namespace cpp
+{
+ class CodeEntity;
+}
+namespace loc
+{
+ class File;
+}
+}
+
+
+
+
+/** Creates a HTML navigation bar wth the following parts:
+
+ A main bar with fixed items.
+ Zero to several subbars with user defined items, depending of
+ the contents of the page.
+
+ The main bar contains those items:
+
+ Overview | Namespace | Class | Tree | Project | File | Index | Help
+*/
+class NavigationBar
+{
+ public:
+ enum E_GlobalLocation
+ {
+ LOC_Overview,
+ LOC_AllDefs,
+ LOC_Index,
+ LOC_Help
+ };
+ enum E_CeGatheringType
+ {
+ CEGT_operations,
+ CEGT_data
+ };
+
+ /// Used for Overview, Index and Help.
+ NavigationBar(
+ const OuputPage_Environment &
+ i_rEnv,
+ E_GlobalLocation i_eLocation );
+ /// Used for all Ces except operations and data.
+ NavigationBar(
+ const OuputPage_Environment &
+ i_rEnv,
+ const ary::cpp::CodeEntity &
+ i_rCe );
+ /** Used for operations and data.
+ */
+ NavigationBar(
+ const OuputPage_Environment &
+ i_rEnv,
+ E_CeGatheringType i_eCeGatheringType );
+ ~NavigationBar();
+
+ void MakeSubRow(
+ const char * i_sTitle );
+ void AddItem( /// Items are added to last made sub-row.
+ const char * i_sName,
+ const char * i_sLink,
+ bool i_bValid );
+ /** This writes the main bar and the pSubRowTable to o_rOut.
+ The pSubRowsTable stays in memory and can be filled later,
+ when all SubRow items are known.
+ */
+ void Write(
+ csi::xml::Element & o_rOut,
+ bool i_bWithSubRows = false ) const;
+ void Write_SubRows() const;
+
+ private:
+ struct CheshireCat;
+ Dyn<CheshireCat> pi;
+ csi::html::Table * pSubRowsTable;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/opageenv.cxx b/autodoc/source/display/html/opageenv.cxx
new file mode 100644
index 000000000000..49661f06d15f
--- /dev/null
+++ b/autodoc/source/display/html/opageenv.cxx
@@ -0,0 +1,489 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "opageenv.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+#include <ary/cpp/c_ce.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <udm/html/htmlitem.hxx>
+#include <estack.hxx>
+#include "hdimpl.hxx"
+#include "strconst.hxx"
+
+
+const String C_sCppDir( "names" );
+const String C_sIndexDir( "ix" );
+
+
+//************************ Implementation ********************//
+
+namespace
+{
+
+void CreateDirectory( const csv::ploc::Path & i_rPath );
+
+void
+CreateDirectory( const csv::ploc::Path & i_rPath )
+{
+ csv::ploc::Directory aDirectory(i_rPath);
+ if (NOT aDirectory.Exists())
+ aDirectory.PhysicalCreate();
+}
+
+//************************ CheshireCat ********************//
+
+struct InNamespaceTree
+{
+ enum E_Type
+ {
+ t_unknown,
+ t_namespace,
+ t_type,
+ t_operations,
+ t_data
+ };
+
+ EStack< const ary::cpp::Namespace * >
+ aNamespaces; /// never empty.
+ EStack< const ary::cpp::Class * >
+ aClasses; /// maybe empty.
+ const ary::cpp::CodeEntity *
+ pCe; /// CurFileCe, maybe 0
+ E_Type eType;
+
+ InNamespaceTree(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ ~InNamespaceTree();
+ void GoDown(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ void GoDown(
+ const ary::cpp::Class &
+ i_rClass );
+ void GoUp();
+};
+
+InNamespaceTree::InNamespaceTree( const ary::cpp::Namespace & i_rNsp )
+ : // aNamespaces,
+ // aClasses,
+ pCe(0),
+ eType(t_unknown)
+{
+ aNamespaces.push( &i_rNsp );
+}
+
+InNamespaceTree::~InNamespaceTree()
+{
+}
+
+void
+InNamespaceTree::GoDown( const ary::cpp::Namespace & i_rNsp )
+{
+ aNamespaces.push(&i_rNsp);
+ aClasses.erase_all();
+ pCe = 0;
+ eType = t_unknown;
+}
+
+void
+InNamespaceTree::GoDown( const ary::cpp::Class & i_rClass )
+{
+ aClasses.push(&i_rClass);
+ pCe = 0;
+ eType = t_unknown;
+}
+
+void
+InNamespaceTree::GoUp()
+{
+ if ( NOT aClasses.empty() )
+ aClasses.pop();
+ else
+ aNamespaces.pop();
+ pCe = 0;
+ eType = t_unknown;
+}
+
+struct InIndex
+{
+ char cLetter;
+
+ InIndex() : cLetter('A') {}
+};
+
+
+} // anonymous namespace
+
+
+
+
+
+struct OuputPage_Environment::CheshireCat
+{
+ csv::ploc::Path aOutputRoot;
+ csv::ploc::Path aMyPath;
+ csv::StreamStr aFileName;
+
+ const ary::cpp::Gate *
+ pGate;
+ const display::CorporateFrame *
+ pLayout;
+ intt nDepth;
+
+ Dyn<InNamespaceTree>
+ pInNamespace;
+ Dyn<InIndex> pInIndex;
+
+ CheshireCat(
+ const csv::ploc::Path &
+ io_rOutputDir,
+ const ary::cpp::Gate &
+ i_rGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ ~CheshireCat();
+ void AddQualifiedName2Path(
+ const ary::cpp::CodeEntity &
+ i_rCe,
+ bool i_bIncludeLocalName );
+
+ const Dyn<InNamespaceTree> &
+ NspEnv() const { return pInNamespace; }
+ Dyn<InNamespaceTree> &
+ NspEnv() { return pInNamespace; }
+ const ary::cpp::Namespace *
+ Namespace() const { return pInNamespace ? pInNamespace->aNamespaces.top() : 0; }
+ const ary::cpp::Class *
+ Class() const { return pInNamespace ? (pInNamespace->aClasses.empty() ? 0 : pInNamespace->aClasses.top()) : 0; }
+};
+
+OuputPage_Environment::
+CheshireCat::CheshireCat( const csv::ploc::Path & io_rOutputDir,
+ const ary::cpp::Gate & i_rGate,
+ const display::CorporateFrame & i_rLayout )
+ : aOutputRoot(io_rOutputDir),
+ aMyPath(io_rOutputDir),
+ aFileName(500),
+ pGate(&i_rGate),
+ pLayout(&i_rLayout),
+ nDepth(0),
+ pInNamespace(),
+ pInIndex()
+{
+}
+
+OuputPage_Environment::
+CheshireCat::~CheshireCat()
+{
+}
+
+void
+OuputPage_Environment::
+CheshireCat::AddQualifiedName2Path( const ary::cpp::CodeEntity & i_rCe,
+ bool i_bIncludeLocalName )
+{
+ if (NOT i_rCe.Owner().IsValid())
+ {
+ aMyPath.DirChain().PushBack( C_sCppDir );
+ return;
+ }
+
+ const ary::cpp::CodeEntity &
+ rParent = pGate->Ces().Find_Ce( i_rCe.Owner() );
+ AddQualifiedName2Path( rParent, true );
+
+ if ( i_bIncludeLocalName )
+ aMyPath.DirChain().PushBack( i_rCe.LocalName() );
+}
+
+
+
+//************************ OuputPage_Environment ********************//
+
+OuputPage_Environment::OuputPage_Environment( const csv::ploc::Path & io_rOutputDir,
+ const ary::cpp::Gate & i_rGate,
+ const display::CorporateFrame & i_rLayout )
+ : pi( new CheshireCat(io_rOutputDir, i_rGate, i_rLayout) )
+{
+}
+
+OuputPage_Environment::~OuputPage_Environment()
+{
+}
+
+void
+OuputPage_Environment::MoveDir_2Root()
+{
+ pi->NspEnv() = 0;
+ pi->pInIndex = 0;
+ pi->nDepth = 0;
+ while ( pi->aMyPath.DirChain().Size() > pi->aOutputRoot.DirChain().Size() )
+ pi->aMyPath.DirChain().PopBack();
+ pi->aMyPath.SetFile(String ::Null_());
+}
+
+void
+OuputPage_Environment::MoveDir_2Names()
+{
+ pi->NspEnv() = new InNamespaceTree( Gate().Ces().GlobalNamespace() );
+ pi->aMyPath.DirChain().PushBack( C_sCppDir );
+ pi->aMyPath.SetFile(String ::Null_());
+ ++pi->nDepth;
+
+ CreateDirectory( pi->aMyPath );
+}
+
+void
+OuputPage_Environment::MoveDir_Down2( const ary::cpp::Namespace & i_rNsp )
+{
+ csv_assert(i_rNsp.Depth() > 0);
+ csv_assert( pi->NspEnv() );
+ csv_assert( pi->Namespace()->CeId() == i_rNsp.Owner() );
+
+ pi->NspEnv()->GoDown( i_rNsp );
+ pi->aMyPath.DirChain().PushBack(i_rNsp.LocalName());
+ ++pi->nDepth;
+ pi->aMyPath.SetFile(String ::Null_());
+
+ CreateDirectory( pi->aMyPath );
+}
+
+void
+OuputPage_Environment::MoveDir_Down2( const ary::cpp::Class & i_rClass )
+{
+ csv_assert( pi->NspEnv() );
+ if ( i_rClass.Protection() == ary::cpp::PROTECT_global )
+ {
+ csv_assert( pi->Namespace()->CeId() == i_rClass.Owner() );
+ }
+ else
+ {
+ csv_assert( pi->Class() != 0 );
+ csv_assert( pi->Class()->CeId() == i_rClass.Owner() );
+ }
+
+ pi->NspEnv()->GoDown(i_rClass);
+ pi->aMyPath.DirChain().PushBack(i_rClass.LocalName());
+ pi->aMyPath.SetFile(String ::Null_());
+ ++pi->nDepth;
+
+ CreateDirectory( pi->aMyPath );
+}
+
+void
+OuputPage_Environment::MoveDir_2Index()
+{
+ MoveDir_2Root();
+ pi->pInIndex = new InIndex;
+ pi->aMyPath.DirChain().PushBack( String (C_sDIR_Index) );
+ pi->aMyPath.SetFile(String ::Null_());
+ pi->nDepth = 1;
+
+ CreateDirectory( pi->aMyPath );
+}
+
+void
+OuputPage_Environment::MoveDir_Up()
+{
+ if ( pi->nDepth == 1 )
+ {
+ MoveDir_2Root();
+ return;
+ }
+ else if ( pi->NspEnv() )
+ {
+ pi->NspEnv()->GoUp();
+ pi->aMyPath.DirChain().PopBack();
+ pi->aMyPath.SetFile(String ::Null_());
+ --pi->nDepth;
+ }
+}
+
+void
+OuputPage_Environment::SetFile_Css()
+{
+ pi->aMyPath.SetFile( C_sHFN_Css );
+}
+
+void
+OuputPage_Environment::SetFile_Overview()
+{
+ pi->aMyPath.SetFile( C_sHFN_Overview );
+}
+
+void
+OuputPage_Environment::SetFile_AllDefs()
+{
+ // Provisorium
+ pi->aMyPath.SetFile("def-all.html");
+}
+
+void
+OuputPage_Environment::SetFile_Index( char i_cLetter )
+{
+ csv_assert( 'A' <= i_cLetter AND i_cLetter <= 'Z' OR i_cLetter == '_' );
+
+ static StreamStr sIndexFileName(40);
+ sIndexFileName.seekp(0);
+ sIndexFileName << "index-";
+ if ( i_cLetter == '_' )
+ {
+ sIndexFileName << "27";
+ }
+ else
+ {
+ sIndexFileName << int(i_cLetter -'A' + 1);
+ }
+ sIndexFileName << ".html";
+
+ pi->aMyPath.SetFile( sIndexFileName.c_str() );
+}
+
+void
+OuputPage_Environment::SetFile_Help()
+{
+ pi->aMyPath.SetFile( C_sHFN_Help );
+}
+
+void
+OuputPage_Environment::SetFile_CurNamespace()
+{
+ csv_assert( pi->NspEnv() );
+ pi->aMyPath.SetFile("index.html");
+ pi->NspEnv()->pCe = pi->Namespace();
+ pi->NspEnv()->eType = InNamespaceTree::t_namespace;
+}
+
+void
+OuputPage_Environment::SetFile_Class( const ary::cpp::Class & i_rClass )
+{
+ csv_assert( pi->NspEnv() );
+ pi->aMyPath.SetFile( ClassFileName(i_rClass.LocalName()) );
+ pi->NspEnv()->pCe = &i_rClass;
+ pi->NspEnv()->eType = InNamespaceTree::t_type;
+}
+
+void
+OuputPage_Environment::SetFile_Enum( const ary::cpp::Enum & i_rEnum )
+{
+ csv_assert( pi->NspEnv() );
+ pi->aMyPath.SetFile( EnumFileName(i_rEnum.LocalName()) );
+ pi->NspEnv()->pCe = &i_rEnum;
+ pi->NspEnv()->eType = InNamespaceTree::t_type;
+}
+
+void
+OuputPage_Environment::SetFile_Typedef( const ary::cpp::Typedef & i_rTypedef )
+{
+ csv_assert( pi->NspEnv() );
+ pi->aMyPath.SetFile( TypedefFileName(i_rTypedef.LocalName()) );
+ pi->NspEnv()->pCe = &i_rTypedef;
+ pi->NspEnv()->eType = InNamespaceTree::t_type;
+}
+
+void
+OuputPage_Environment::SetFile_Operations( const ary::loc::File * i_pFile )
+{
+ csv_assert( pi->NspEnv() );
+ if ( CurClass() != 0 )
+ pi->aMyPath.SetFile( "o.html" );
+ else
+ {
+ csv_assert( i_pFile != 0 );
+ pi->aMyPath.SetFile( HtmlFileName("o-", i_pFile->LocalName()) );
+ }
+ pi->NspEnv()->pCe = 0;
+ pi->NspEnv()->eType = InNamespaceTree::t_operations;
+}
+
+void
+OuputPage_Environment::SetFile_Data( const ary::loc::File * i_pFile )
+{
+ csv_assert( pi->NspEnv() );
+ if ( CurClass() != 0 )
+ pi->aMyPath.SetFile( "d.html" );
+ else
+ {
+ csv_assert( i_pFile != 0 );
+ pi->aMyPath.SetFile( HtmlFileName("d-", i_pFile->LocalName()) );
+ }
+ pi->NspEnv()->pCe = 0;
+ pi->NspEnv()->eType = InNamespaceTree::t_data;
+}
+
+const ary::cpp::Namespace *
+OuputPage_Environment::CurNamespace() const
+{
+ return pi->Namespace();
+}
+
+const ary::cpp::Class *
+OuputPage_Environment::CurClass() const
+{
+ return pi->Class();
+}
+
+const csv::ploc::Path &
+OuputPage_Environment::CurPath() const
+{
+ return pi->aMyPath;
+}
+
+const ary::cpp::Gate &
+OuputPage_Environment::Gate() const
+{
+ return *pi->pGate;
+}
+
+const display::CorporateFrame &
+OuputPage_Environment::Layout() const
+{
+ return *pi->pLayout;
+}
+
+uintt
+OuputPage_Environment::Depth() const
+{
+ return static_cast<uintt>(pi->nDepth);
+}
+
+const String &
+OuputPage_Environment::RepositoryTitle() const
+{
+ return Gate().RepositoryTitle();
+}
diff --git a/autodoc/source/display/html/opageenv.hxx b/autodoc/source/display/html/opageenv.hxx
new file mode 100644
index 000000000000..953a615d0023
--- /dev/null
+++ b/autodoc/source/display/html/opageenv.hxx
@@ -0,0 +1,128 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_OPAGEENV_HXX
+#define ADC_DISPLAY_HTML_OPAGEENV_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+ // PARAMETERS
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Gate;
+
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ }
+ namespace loc
+ {
+ class File;
+ }
+}
+namespace display
+{
+ class CorporateFrame;
+}
+
+class OuputPage_Environment
+{
+ public:
+ // LIFECYCLE
+ OuputPage_Environment(
+ const csv::ploc::Path &
+ io_rOutputDir,
+ const ary::cpp::Gate &
+ i_rGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ ~OuputPage_Environment();
+
+ // OPERATIONS
+ void MoveDir_2Root();
+ void MoveDir_2Names();
+ void MoveDir_Down2( /// Only one level.
+ const ary::cpp::Namespace &
+ i_rNsp );
+ void MoveDir_Down2( /// Only one level.
+ const ary::cpp::Class &
+ i_rClass );
+ void MoveDir_2Index();
+ void MoveDir_Up();
+
+ void SetFile_Css();
+ void SetFile_Overview();
+ void SetFile_AllDefs();
+ void SetFile_Index(
+ char i_cLetter );
+ void SetFile_Help();
+ void SetFile_CurNamespace();
+ void SetFile_Class(
+ const ary::cpp::Class &
+ i_rClass );
+ void SetFile_Enum(
+ const ary::cpp::Enum &
+ i_rEnum );
+ void SetFile_Typedef(
+ const ary::cpp::Typedef &
+ i_typedef );
+ void SetFile_Operations(
+ const ary::loc::File *
+ i_pFile = 0 ); /// Only needed for global functions.
+ void SetFile_Data(
+ const ary::loc::File *
+ i_pFile = 0 ); /// Only needed for global variables.
+ // INQUIRY
+ const ary::cpp::Namespace *
+ CurNamespace() const;
+ const ary::cpp::Class *
+ CurClass() const;
+ const csv::ploc::Path &
+ CurPath() const;
+ const ary::cpp::Gate &
+ Gate() const;
+ const display::CorporateFrame &
+ Layout() const;
+ uintt Depth() const;
+ const String & RepositoryTitle() const;
+
+ private:
+ struct CheshireCat;
+ Dyn<CheshireCat> pi;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/outfile.cxx b/autodoc/source/display/html/outfile.cxx
new file mode 100644
index 000000000000..dcf999bf0a1f
--- /dev/null
+++ b/autodoc/source/display/html/outfile.cxx
@@ -0,0 +1,392 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "outfile.hxx"
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/file.hxx>
+#include <udm/html/htmlitem.hxx>
+#include <toolkit/out_position.hxx>
+#include "strconst.hxx"
+
+
+namespace
+{
+bool bUse_OOoFrameDiv = true;
+const String C_sOOoFrameDiv_CppId("adc-cppref");
+}
+
+
+using namespace csi;
+using csi::xml::AnAttribute;
+
+
+
+#define CRLF "\n"
+
+const char * const
+ C_sStdStyle =
+ "body { background-color:#ffffff; }"CRLF
+ "h1 { font-size:20pt; margin-top:3pt; margin-bottom:7pt; }"CRLF
+ "h2 { font-family:Arial; font-size:16pt; margin-top:3pt; margin-bottom:5pt; }"CRLF
+ "h3 { font-size:13pt; margin-top:2pt; margin-bottom:3pt; }"CRLF
+ "h4 { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "dl { margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "dl.member { margin-top:1pt; margin-bottom:1pt; background-color:#eeeeff; }"CRLF
+ "dt { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "dt.member { font-size:13pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "dt.simple { font-size:10pt; font-weight:normal; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "dd { font-size:10pt; margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "dd.member { font-size:10pt; margin-top:1pt; margin-bottom:1pt; background-color:#ffffff; }"CRLF
+ "p { font-size:10pt; margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "pre { font-family:monospace; font-size:10pt; margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "tr { font-size:10pt; }"CRLF
+ "td { font-size:10pt; }"CRLF
+ CRLF
+ "dt.attention { color:#dd0000; }"CRLF
+ CRLF
+ "div.title { text-align:center; line-height:26pt; background-color:#ccccff; }"CRLF
+ ".subtitle { background-color:#ccccff; }"CRLF
+ CRLF
+ "td.flagname { background-color:#eeeeff; font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ "td.flagyes { font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ "td.flagno { font-family:Arial; font-size:8pt; }"CRLF
+ "td.flagtext { font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ CRLF
+ "td.navimain, td.navimain a"CRLF
+ " { background-color:#eeeeff; color:#000000;"CRLF
+ " font-family:Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "td.navimainself"CRLF
+ " { background-color:#2222ad; color:#ffffff;"CRLF
+ " font-family:Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "td.navimainnone"CRLF
+ " { background-color:#eeeeff; color:#000000;"CRLF
+ " font-family:Arial; font-size:12pt; }"CRLF
+ CRLF
+ "div.define { font-family:Arial; background-color:#ccccff; }"CRLF
+ CRLF
+ ".nqclass { color:#008800; }"CRLF
+ CRLF
+ "h3.help { background-color:#eeeeff; margin-top:12pt; }"CRLF
+ CRLF
+ ".btpubl { color:#33ff33; }"CRLF
+ ".btprot { color:#cc9933; }"CRLF
+ ".btpriv { color:#ff6666; }"CRLF
+ ".btvpubl { color:#33ff33; font-style:italic; }"CRLF
+ ".btvprot { color:#cc9933; font-style:italic; }"CRLF
+ ".btvpriv { color:#ff6666; font-style:italic; }"CRLF
+ ".btself { font-weight:bold; }"CRLF
+ ;
+
+
+const char * const
+ C_sCssExplanations =
+ "/* Explanation of CSS classes:"CRLF
+ CRLF
+ "dl.member provides coloured frame for function descriptions."CRLF
+ "dd.member makes the content of this frame white"CRLF
+ CRLF
+ "dt.attention special colour for @attention remarks"CRLF
+ CRLF
+ "div.title HTML page headline"CRLF
+ ".subtitle headline of lists of members and similar"CRLF
+ CRLF
+ " These are for the flagtables in classes:"CRLF
+ "td.flagname Flag name."CRLF
+ "td.flagyes flag value \"yes\""CRLF
+ "td.flagno flag value \"no\""CRLF
+ "td.flagtext other flag value"CRLF
+ CRLF
+ CRLF
+ " These are for the main navigationbar:"CRLF
+ "td.navimain, td.navimain a"CRLF
+ " Links in navibar."CRLF
+ "td.navimainself Text in navibar which refers to current page."CRLF
+ "td.navimainnone Text which links to nothing."CRLF
+ CRLF
+ CRLF
+ "div.define Subtitles on the #define/macro descriptions page"CRLF
+ CRLF
+ ".nqclass special color for classes in the qualification"CRLF
+ " on top of type pages like in:"CRLF
+ " ::nsp1::nsp2::_ClassXY_::"CRLF
+ CRLF
+ "h3.help Subtitles on the help page"CRLF
+ CRLF
+ " These are for the base class tree on class pages:"CRLF
+ ".btpubl public base class"CRLF
+ ".btprot protected"CRLF
+ ".btpriv private"CRLF
+ ".btvpubl virtual public"CRLF
+ ".btvprot virtual protected"CRLF
+ ".btvpriv virtual private"CRLF
+ ".btself placeholder for currently displayed class"CRLF
+ CRLF
+ "*/"CRLF
+ ;
+
+
+const char * const
+ C_sStdStyle_withDivFrame =
+ "body { background-color:#ffffff; }"CRLF
+ "#adc-cppref h1 { font-size:20pt; margin-top:3pt; margin-bottom:7pt; }"CRLF
+ "#adc-cppref h2 { font-family:Arial; font-size:16pt; margin-top:3pt; margin-bottom:5pt; }"CRLF
+ "#adc-cppref h3 { font-size:13pt; margin-top:2pt; margin-bottom:3pt; }"CRLF
+ "#adc-cppref h4 { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dl { margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dl.member { margin-top:1pt; margin-bottom:1pt; background-color:#eeeeff; }"CRLF
+ "#adc-cppref dt { font-size:10pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dt.member { font-size:13pt; font-weight:bold; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dt.simple { font-size:10pt; font-weight:normal; margin-top:2pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dd { font-size:10pt; margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref dd.member { font-size:10pt; margin-top:1pt; margin-bottom:1pt; background-color:#ffffff; }"CRLF
+ "#adc-cppref p { font-size:10pt; margin-top:3pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref pre { font-family:monospace; font-size:10pt; margin-top:1pt; margin-bottom:1pt; }"CRLF
+ "#adc-cppref tr { font-size:10pt; }"CRLF
+ "#adc-cppref td { font-size:10pt; }"CRLF
+ CRLF
+ "#adc-cppref dt.attention { color:#dd0000; }"CRLF
+ CRLF
+ "#adc-cppref div.title { text-align:center; line-height:26pt; background-color:#ccccff; }"CRLF
+ "#adc-cppref .subtitle { background-color:#ccccff; }"CRLF
+ CRLF
+ "#adc-cppref td.flagname { background-color:#eeeeff; font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ "#adc-cppref td.flagyes { font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ "#adc-cppref td.flagno { font-family:Arial; font-size:8pt; }"CRLF
+ "#adc-cppref td.flagtext { font-family:Arial; font-size:8pt; font-weight:bold; }"CRLF
+ CRLF
+ "#adc-cppref td.navimain, #adc-cppref td.navimain a"CRLF
+ " { background-color:#eeeeff; color:#000000;"CRLF
+ " font-family:Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "#adc-cppref td.navimainself"CRLF
+ " { background-color:#2222ad; color:#ffffff;"CRLF
+ " font-family:Arial; font-size:12pt; font-weight:bold; }"CRLF
+ "#adc-cppref td.navimainnone"CRLF
+ " { background-color:#eeeeff; color:#000000;"CRLF
+ " font-family:Arial; font-size:12pt; }"CRLF
+ CRLF
+ "#adc-cppref div.define { font-family:Arial; background-color:#ccccff; }"CRLF
+ CRLF
+ "#adc-cppref .nqclass { color:#008800; }"CRLF
+ CRLF
+ "#adc-cppref h3.help { background-color:#eeeeff; margin-top:12pt; }"CRLF
+ CRLF
+ "#adc-cppref .btpubl { color:#33ff33; }"CRLF
+ "#adc-cppref .btprot { color:#cc9933; }"CRLF
+ "#adc-cppref .btpriv { color:#ff6666; }"CRLF
+ "#adc-cppref .btvpubl { color:#33ff33; font-style:italic; }"CRLF
+ "#adc-cppref .btvprot { color:#cc9933; font-style:italic; }"CRLF
+ "#adc-cppref .btvpriv { color:#ff6666; font-style:italic; }"CRLF
+ "#adc-cppref .btself { font-weight:bold; }"CRLF
+ ""CRLF
+ "#adc-cppref table { empty-cells:show; }"CRLF
+ ""CRLF
+ "#adc-cppref .childlist td, "CRLF
+ "#adc-cppref .commentedlinks td, "CRLF
+ "#adc-cppref .memberlist td, "CRLF
+ "#adc-cppref .subtitle td, "CRLF
+ "#adc-cppref .crosstitle td { border: .1pt solid #000000; }"CRLF
+ ""CRLF
+ "#adc-cppref .flag-table td { border: .1pt solid #cccccc; } "CRLF
+ ""CRLF
+ "#adc-cppref .title-table td, "CRLF
+ "#adc-cppref .table-in-method td, "CRLF
+ "#adc-cppref .table-in-data td, "CRLF
+ "#adc-cppref .navimain td, "CRLF
+ "#adc-cppref .navisub td, "CRLF
+ "#adc-cppref .expl-table td, "CRLF
+ "#adc-cppref .param-table td { border: none; }"CRLF
+ ;
+
+
+
+HtmlDocuFile::HtmlDocuFile()
+ : sFilePath(),
+ sTitle(),
+ sLocation(),
+ sCopyright(),
+ nDepthInOutputTree(0),
+ aBodyData(),
+ aBuffer(60000) // Grows dynamically when necessary.
+{
+}
+
+void
+HtmlDocuFile::SetLocation( const csv::ploc::Path & i_rFilePath,
+ uintt i_depthInOutputTree )
+{
+ static StreamStr sPath_(1000);
+ sPath_.seekp(0);
+ i_rFilePath.Get( sPath_ );
+
+ sFilePath = sPath_.c_str();
+ nDepthInOutputTree = i_depthInOutputTree;
+}
+
+void
+HtmlDocuFile::SetTitle( const char * i_sTitle )
+{
+ sTitle = i_sTitle;
+}
+
+void
+HtmlDocuFile::SetCopyright( const char * i_sCopyright )
+{
+ sCopyright = i_sCopyright;
+}
+
+void
+HtmlDocuFile::EmptyBody()
+{
+ aBodyData.SetContent(0);
+
+ if (bUse_OOoFrameDiv)
+ {
+ // Insert <div> tag to allow better formatting for OOo.
+ aBodyData
+ << new xml::XmlCode("<div id=\"")
+ << new xml::XmlCode(C_sOOoFrameDiv_CppId)
+ << new xml::XmlCode("\">\n\n");
+ }
+
+ aBodyData
+ >> *new html::Label( "_top_" )
+ << " ";
+}
+
+bool
+HtmlDocuFile::CreateFile()
+{
+ csv::File aFile(sFilePath, csv::CFM_CREATE);
+ if (NOT aFile.open())
+ {
+ Cerr() << "Can't create file " << sFilePath << "." << Endl();
+ return false;
+ }
+
+ WriteHeader(aFile);
+ WriteBody(aFile);
+
+ // Write end
+ static const char sCompletion[] = "\n</html>\n";
+ aFile.write( sCompletion );
+
+ aFile.close();
+ Cout() << '.' << Flush();
+ return true;
+}
+
+void
+HtmlDocuFile::WriteCssFile( const csv::ploc::Path & i_rFilePath )
+{
+ Cout() << "\nCreate css file ..." << Endl();
+
+ csv::File
+ aCssFile(i_rFilePath, csv::CFM_CREATE);
+ csv::OpenCloseGuard
+ aOpenGuard(aCssFile);
+ if (NOT aOpenGuard)
+ {
+ Cerr() << "Can't create file " << "cpp.css" << "." << Endl();
+ return;
+ }
+
+ aCssFile.write("/* Autodoc css file for C++ documentation */\n\n\n");
+
+ if (bUse_OOoFrameDiv)
+ aCssFile.write(C_sStdStyle_withDivFrame);
+ else
+ aCssFile.write(C_sStdStyle);
+
+ aCssFile.write("\n\n\n");
+ aCssFile.write(C_sCssExplanations);
+}
+
+void
+HtmlDocuFile::WriteHeader( csv::File & io_aFile )
+{
+ aBuffer.reset();
+
+ static const char s1[] =
+ "<html>\n<head>\n"
+ "<title>";
+ static const char s2[] =
+ "</title>\n"
+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
+ static const char s3[] =
+ "\">\n</head>\n";
+
+ aBuffer.write( s1 );
+ aBuffer.write( sTitle );
+ aBuffer.write( s2 );
+ aBuffer.write( output::get_UpLink(nDepthInOutputTree) );
+ aBuffer.write( C_sHFN_Css );
+ aBuffer.write( s3 );
+
+ io_aFile.write(aBuffer.c_str(), aBuffer.size());
+}
+
+void
+HtmlDocuFile::WriteBody( csv::File & io_aFile )
+{
+ aBuffer.reset();
+
+ aBodyData
+ >> *new html::Link( "#_top_" )
+ << new html::ClassAttr( "objchapter" )
+ << "Top of Page";
+
+ if ( sCopyright.length() > 0 )
+ {
+ aBodyData
+#ifndef COMPATIBLE_NETSCAPE_47
+ >> *new html::HorizontalLine
+ << new html::SizeAttr( "3" );
+#else
+ << new xml::XmlCode("<hr size=\"3\">");
+#endif
+
+ aBodyData
+ >> *new html::Paragraph
+ << new html::ClassAttr( "copyright" )
+ << new xml::AnAttribute( "align", "center" )
+ << new xml::XmlCode(sCopyright);
+ }
+
+ if (bUse_OOoFrameDiv)
+ {
+ // Insert <div> tag to allow better formatting for OOo.
+ aBodyData
+ << new xml::XmlCode("\n</div> <!-- id=\"")
+ << new xml::XmlCode(C_sOOoFrameDiv_CppId)
+ << new xml::XmlCode("\" -->\n");
+ }
+
+ aBodyData.WriteOut(aBuffer);
+ io_aFile.write(aBuffer.c_str(), aBuffer.size());
+}
diff --git a/autodoc/source/display/html/outfile.hxx b/autodoc/source/display/html/outfile.hxx
new file mode 100644
index 000000000000..7302baec7432
--- /dev/null
+++ b/autodoc/source/display/html/outfile.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_OUTFILE_HXX
+#define ADC_DISPLAY_HTML_OUTFILE_HXX
+
+// USED SERVICES
+#include <udm/html/htmlitem.hxx>
+#include <cosv/ploc.hxx>
+
+
+namespace csv
+{
+ class File;
+}
+
+
+
+
+class HtmlDocuFile
+{
+ public:
+ // LIFECYCLE
+ HtmlDocuFile();
+
+ void SetLocation(
+ const csv::ploc::Path &
+ i_rFilePath,
+ uintt i_depthInOutputTree );
+ void SetTitle(
+ const char * i_sTitle );
+ void SetCopyright(
+ const char * i_sCopyright );
+ void EmptyBody();
+
+ Html::Body & Body() { return aBodyData; }
+ bool CreateFile();
+
+ static void WriteCssFile(
+ const csv::ploc::Path &
+ i_rFilePath );
+ private:
+ void WriteHeader(
+ csv::File & io_aFile );
+ void WriteBody(
+ csv::File & io_aFile );
+
+ // DATA
+ String sFilePath;
+ String sTitle;
+ String sLocation;
+ String sCopyright;
+ uintt nDepthInOutputTree;
+
+ Html::Body aBodyData;
+ StreamStr aBuffer; // Output buffer, should be transfered into csv::File.
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/pagemake.cxx b/autodoc/source/display/html/pagemake.cxx
new file mode 100644
index 000000000000..4608fd5b4e0a
--- /dev/null
+++ b/autodoc/source/display/html/pagemake.cxx
@@ -0,0 +1,576 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pagemake.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <display/corframe.hxx>
+#include "hd_chlst.hxx"
+#include "hd_docu.hxx"
+#include "hdimpl.hxx"
+#include "html_kit.hxx"
+#include "navibar.hxx"
+#include "opageenv.hxx"
+#include "outfile.hxx"
+#include "pm_aldef.hxx"
+#include "pm_class.hxx"
+#include "pm_help.hxx"
+#include "pm_index.hxx"
+#include "pm_namsp.hxx"
+#include "pm_start.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+using csi::html::Link;
+using csi::html::HorizontalLine;
+
+
+const int C_nNrOfIndexLetters = 27;
+
+
+template <class SPECIAL_MAKER>
+inline void
+Make_SpecialPage( DYN SPECIAL_MAKER * let_dpMaker )
+{
+ Dyn< SPECIAL_MAKER > pMaker( let_dpMaker );
+ pMaker->MakePage();
+ pMaker = 0;
+}
+
+
+PageDisplay::PageDisplay( OuputPage_Environment & io_rEnv )
+ : HtmlDisplay_Impl( io_rEnv ),
+ pMyFile( new HtmlDocuFile )
+{
+}
+
+PageDisplay::~PageDisplay()
+{
+
+}
+
+void
+PageDisplay::Create_OverviewFile()
+{
+ Env().SetFile_Overview();
+ File().SetLocation( Env().CurPath(), 0 );
+
+ SetupFileOnCurEnv( C_sHFTitle_Overview );
+ Make_SpecialPage( new PageMaker_Overview(*this) );
+ Create_File();
+}
+
+void
+PageDisplay::Create_AllDefsFile()
+{
+ // This method is a provisorium, because later this will
+ // be spreaded over the files.
+
+ Env().MoveDir_2Root();
+ Env().SetFile_AllDefs();
+ File().SetLocation( Env().CurPath(), 0 );
+
+ SetupFileOnCurEnv( "Defines and Macros" );
+ Make_SpecialPage( new PageMaker_AllDefs(*this) );
+ Create_File();
+}
+
+void
+PageDisplay::Create_IndexFiles()
+{
+ Env().MoveDir_2Index();
+
+ for ( int i = 0; i < C_nNrOfIndexLetters; ++i )
+ Create_IndexFile(i);
+}
+
+void
+PageDisplay::Create_HelpFile()
+{
+ Env().SetFile_Help();
+ File().SetLocation( Env().CurPath(), 0 );
+
+ SetupFileOnCurEnv( C_sHFTitle_Help );
+ Make_SpecialPage( new PageMaker_Help(*this) );
+ Create_File();
+}
+
+void
+PageDisplay::Create_NamespaceFile()
+{
+ csv_assert( Env().CurNamespace() != 0 );
+ Env().SetFile_CurNamespace();
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+ if (Env().CurNamespace()->Owner().IsValid())
+ {
+ StreamLock sNsp(100);
+ SetupFileOnCurEnv( sNsp() << C_sHFTypeTitle_Namespace
+ << " "
+ << Env().CurNamespace()->LocalName()
+ << c_str );
+ }
+ else
+ {
+ SetupFileOnCurEnv( C_sHFTitle_GlobalNamespaceCpp );
+ }
+
+ Make_SpecialPage( new PageMaker_Namespace(*this) );
+
+ Create_File();
+}
+
+void
+PageDisplay::Setup_OperationsFile_for( const ary::loc::File & i_rFile )
+{
+ csv_assert( Env().CurNamespace() != 0 );
+ Env().SetFile_Operations(&i_rFile);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sOpFile(100);
+ SetupFileOnCurEnv( sOpFile() << "Global Functions in Namespace "
+ << Env().CurNamespace()->LocalName()
+ << " in Sourcefile "
+ << i_rFile.LocalName()
+ << c_str );
+ NavigationBar
+ aNavi( Env(),
+ NavigationBar::CEGT_operations );
+ aNavi.Write( CurOut() );
+ CurOut() << new HorizontalLine;
+
+ adcdisp::PageTitle_Std fTitle;
+ csi::xml::Element & rTitle = fTitle( CurOut() );
+ if (Env().CurNamespace()->Owner().IsValid())
+ {
+ rTitle << "Global Functions in Namespace "
+ << Env().CurNamespace()->LocalName();
+ }
+ else
+ {
+ rTitle << "Global Functions in Global Namespace C++";
+ }
+
+ rTitle << new html::LineBreak
+ << "in Sourcefile "
+ << i_rFile.LocalName();
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Setup_OperationsFile_for( const ary::cpp::Class & i_rClass )
+{
+ csv_assert( Env().CurNamespace() != 0 );
+ Env().SetFile_Operations(0);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sOpFile(100);
+ SetupFileOnCurEnv( sOpFile() << "Methods of Class "
+ << i_rClass.LocalName()
+ << c_str );
+ NavigationBar
+ aNavi( Env(),
+ NavigationBar::CEGT_operations );
+ aNavi.Write( CurOut() );
+ CurOut() << new HorizontalLine;
+
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), "Methods of Class", i_rClass.LocalName() );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Setup_DataFile_for( const ary::loc::File & i_rFile )
+{
+ csv_assert( Env().CurNamespace() != 0 );
+ Env().SetFile_Data(&i_rFile);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sDataFile(100);
+ SetupFileOnCurEnv( sDataFile() << "Global Data in Namespace "
+ << Env().CurNamespace()->LocalName()
+ << " in Sourcefile "
+ << i_rFile.LocalName()
+ << c_str );
+ NavigationBar
+ aNavi( Env(),
+ NavigationBar::CEGT_data );
+ aNavi.Write( CurOut() );
+ CurOut() << new HorizontalLine;
+
+ adcdisp::PageTitle_Std fTitle;
+ csi::xml::Element & rTitle = fTitle( CurOut() );
+ if ( Env().CurNamespace()->Owner().IsValid() )
+ {
+ rTitle << "Global Data in Namespace "
+ << Env().CurNamespace()->LocalName();
+ }
+ else
+ {
+ rTitle << "Global Data in Global Namespace C++";
+ }
+
+ rTitle
+ << new html::LineBreak
+ << "in Sourcefile "
+ << i_rFile.LocalName();
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Setup_DataFile_for( const ary::cpp::Class & i_rClass )
+{
+ csv_assert( Env().CurNamespace() != 0 );
+ Env().SetFile_Data(0);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sDataFile(100);
+ SetupFileOnCurEnv( sDataFile() << "Data of Class "
+ << i_rClass.LocalName()
+ << c_str );
+
+ NavigationBar
+ aNavi( Env(),
+ NavigationBar::CEGT_data );
+ aNavi.Write( CurOut() );
+ CurOut() << new HorizontalLine;
+
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), "Data of Class", i_rClass.LocalName() );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Create_File()
+{
+ Easy().Leave();
+ File().CreateFile();
+}
+
+void
+PageDisplay::do_Process(const ary::cpp::Class & i_rData)
+{
+ Env().SetFile_Class(i_rData);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ const char *
+ sTypeTitle = i_rData.ClassKey() == ary::cpp::CK_class
+ ? C_sHFTypeTitle_Class
+ : i_rData.ClassKey() == ary::cpp::CK_struct
+ ? C_sHFTypeTitle_Struct
+ : C_sHFTypeTitle_Union;
+ StreamLock sClassFile(60);
+ SetupFileOnCurEnv( sClassFile() << sTypeTitle
+ << " "
+ << i_rData.LocalName()
+ << c_str );
+
+ Make_SpecialPage( new PageMaker_Class(*this, i_rData) );
+
+ Create_File();
+}
+
+void
+PageDisplay::do_Process(const ary::cpp::Enum & i_rData)
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ Env().SetFile_Enum(i_rData);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sEnumFile(100);
+ SetupFileOnCurEnv( sEnumFile() << C_sHFTypeTitle_Enum
+ << " "
+ << i_rData.LocalName()
+ << c_str );
+ Write_NavBar_Enum(i_rData);
+ Write_TopArea_Enum(i_rData);
+ Write_DocuArea_Enum(i_rData);
+ Write_ChildList_Enum(i_rData);
+
+ Create_File();
+}
+
+void
+PageDisplay::do_Process(const ary::cpp::Typedef & i_rData)
+{
+ if ( Ce_IsInternal(i_rData) )
+ return;
+
+ Env().SetFile_Typedef(i_rData);
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+
+ StreamLock sTypedefFile(100);
+ SetupFileOnCurEnv( sTypedefFile() << C_sHFTypeTitle_Typedef
+ << " "
+ << i_rData.LocalName()
+ << c_str );
+ Write_NavBar_Typedef(i_rData);
+ Write_TopArea_Typedef(i_rData);
+ Write_DocuArea_Typedef(i_rData);
+
+
+ Create_File();
+}
+
+void
+PageDisplay::Write_NameChainWithLinks( const ary::cpp::CodeEntity & i_rCe )
+{
+ if ( Env().CurNamespace()->Id() != i_rCe.Id() )
+ {
+ RecursiveWrite_NamespaceLink( Env().CurNamespace() );
+ if ( Env().CurClass() != 0 )
+ {
+ CurOut() << new html::Sbr;
+ RecursiveWrite_ClassLink( Env().CurClass(), 1 );
+ }
+ }
+ else
+ {
+ RecursiveWrite_NamespaceLink( Env().CurNamespace()->Parent() );
+ }
+}
+
+const ary::cpp::Gate *
+PageDisplay::inq_Get_ReFinder() const
+{
+ return &Env().Gate();
+}
+
+void
+PageDisplay::RecursiveWrite_NamespaceLink( const ary::cpp::Namespace * i_pNamespace )
+{
+ if ( i_pNamespace == 0 )
+ {
+ return;
+ }
+ else if (NOT i_pNamespace->Owner().IsValid())
+ { // Global namespace:
+ StreamLock sNspDir(50);
+ CurOut()
+ >> *new Link( PathPerRoot(Env(),
+ sNspDir() << C_sDIR_NamespacesCpp
+ << "/"
+ << C_sHFN_Namespace
+ << c_str) )
+ << new xml::AnAttribute( "alt", C_sHFTitle_GlobalNamespaceCpp )
+ >> *new html::Font
+ << new html::SizeAttr("+1")
+ >> *new html::Bold
+ << "::";
+ CurOut()
+ << " ";
+ return;
+ }
+ else
+ {
+ RecursiveWrite_NamespaceLink( i_pNamespace->Parent() );
+ }
+
+ uintt nLevelDistance = Env().Depth() - ( i_pNamespace->Depth() + 1 );
+ csv_assert( nLevelDistance < 100 );
+ CurOut()
+ >> *new Link( PathPerLevelsUp(nLevelDistance, C_sHFN_Namespace) )
+ << new xml::AnAttribute( "alt", C_sHFTypeTitle_Namespace)
+ >> *new html::Font
+ << new html::SizeAttr("+1")
+ >> *new html::Bold
+ << i_pNamespace->LocalName();
+ CurOut()
+ >> *new html::Font
+ << new html::SizeAttr("+1")
+ << " :: ";
+}
+
+void
+PageDisplay::RecursiveWrite_ClassLink( const ary::cpp::Class * i_pClass,
+ uintt i_nLevelDistance )
+{
+ if ( i_pClass == 0 )
+ return;
+
+ if ( i_pClass->Protection() != ary::cpp::PROTECT_global )
+ {
+ RecursiveWrite_ClassLink(
+ dynamic_cast< const ary::cpp::Class* >(
+ Env().Gate().Ces().Search_Ce(i_pClass->Owner())),
+ i_nLevelDistance + 1 );
+ }
+
+ CurOut()
+ >> *new Link( Path2Class(i_nLevelDistance, i_pClass->LocalName()) )
+ << new html::ClassAttr("nqclass")
+ << i_pClass->LocalName()
+ << " :: ";
+}
+
+void
+PageDisplay::SetupFileOnCurEnv( const char * i_sTitle )
+{
+ File().SetLocation( Env().CurPath(), Env().Depth() );
+ File().SetTitle( i_sTitle );
+ File().SetCopyright( Env().Layout().CopyrightText() );
+ File().EmptyBody();
+
+ // This sets CurOut() to the contents of <body></body>
+ // in File() :
+ Easy().Enter( File().Body() );
+}
+
+void
+PageDisplay::Write_NavBar_Enum( const ary::cpp::Enum & i_rData )
+{
+ NavigationBar aNavi( Env(), i_rData );
+ aNavi.MakeSubRow("List of");
+ aNavi.AddItem( C_sTitle_EnumValues, C_sLabel_EnumValues, true );
+ aNavi.Write( CurOut(), true );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_TopArea_Enum( const ary::cpp::Enum & i_rData )
+{
+ Write_NameChainWithLinks( i_rData );
+
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), C_sHFTypeTitle_Enum, i_rData.LocalName() );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_DocuArea_Enum( const ary::cpp::Enum & i_rData )
+{
+ Docu_Display aDocuShow( Env() );
+
+ aDocuShow.Assign_Out(CurOut());
+ aDocuShow.Process(i_rData.Docu());
+ aDocuShow.Unassign_Out();
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_ChildList_Enum( const ary::cpp::Enum & i_rData )
+{
+ bool bChildrenExist = false;
+ ChildList_Display::Area_Result
+ aResult( bChildrenExist, CurOut() );
+
+ ChildList_Display aDisplay(Env(), i_rData);
+ aDisplay.Run_Simple( aResult,
+ ary::cpp::Enum::SLOT_Values,
+ C_sLabel_EnumValues,
+ C_sTitle_EnumValues );
+
+ if (NOT bChildrenExist)
+ CurOut() >> *new html::Headline(4) << "This enum has no values.";
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_NavBar_Typedef( const ary::cpp::Typedef & i_rData )
+{
+ NavigationBar aNavi( Env(), i_rData );
+ aNavi.Write( CurOut(), true );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_TopArea_Typedef( const ary::cpp::Typedef & i_rData )
+{
+ Write_NameChainWithLinks( i_rData );
+
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), C_sHFTypeTitle_Typedef, i_rData.LocalName() );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Write_DocuArea_Typedef( const ary::cpp::Typedef & i_rData )
+{
+ adcdisp::ExplanationList aDef( CurOut() );
+ aDef.AddEntry("Definition:");
+ xml::Element & rDef = aDef.Def();
+
+ ary::cpp::Type_id
+ nDefiningType = i_rData.DescribingType();
+
+ const ary::cpp::CodeEntity *
+ pRelatedCe = Env().Gate().Search_RelatedCe(nDefiningType);
+ if ( pRelatedCe != 0 )
+ {
+ const char * sTypeKey = Get_TypeKey(*pRelatedCe);
+ if ( NOT csv::no_str(sTypeKey) )
+ rDef << sTypeKey << " ";
+ }
+
+ dshelp::Get_LinkedTypeText( rDef, Env(), nDefiningType );
+
+ Docu_Display aDocuShow( Env() );
+
+ aDocuShow.Assign_Out(CurOut());
+ aDocuShow.Process(i_rData.Docu());
+ aDocuShow.Unassign_Out();
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageDisplay::Create_IndexFile( int i_nLetter )
+{
+ static char aLetters[C_nNrOfIndexLetters+1] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ_";
+ csv_assert( 0 <= i_nLetter AND i_nLetter < C_nNrOfIndexLetters );
+
+ char cCurLetter = aLetters[i_nLetter];
+ Env().SetFile_Index( cCurLetter );
+
+ static char sIndexFileTitle[] = "Global Index X";
+ const int nPositionOfLetterInTitle = 13;
+ sIndexFileTitle[nPositionOfLetterInTitle] = cCurLetter;
+ SetupFileOnCurEnv( sIndexFileTitle );
+
+ Make_SpecialPage( new PageMaker_Index(*this, cCurLetter ) );
+
+ Create_File();
+}
+
diff --git a/autodoc/source/display/html/pagemake.hxx b/autodoc/source/display/html/pagemake.hxx
new file mode 100644
index 000000000000..b8cc1c50a6ff
--- /dev/null
+++ b/autodoc/source/display/html/pagemake.hxx
@@ -0,0 +1,164 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PAGEMAKE_HXX
+#define ADC_DISPLAY_HTML_PAGEMAKE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+#include "hdimpl.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/cpp/c_namesp.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ }
+ namespace loc
+ {
+ class File;
+ }
+}
+
+
+class OuputPage_Environment;
+class HtmlDocuFile;
+
+
+
+class PageDisplay : public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Class>,
+ public csv::ConstProcessor<ary::cpp::Enum>,
+ public csv::ConstProcessor<ary::cpp::Typedef>,
+ public HtmlDisplay_Impl
+{
+ public:
+ PageDisplay(
+ OuputPage_Environment &
+ io_rEnv );
+ virtual ~PageDisplay();
+
+ void Create_OverviewFile();
+ void Create_AllDefsFile();
+ void Create_IndexFiles();
+ void Create_HelpFile();
+
+ void Create_NamespaceFile();
+
+ void Setup_OperationsFile_for(
+ const ary::loc::File &
+ i_rFile );
+ void Setup_OperationsFile_for(
+ const ary::cpp::Class &
+ i_rClass );
+ void Setup_DataFile_for(
+ const ary::loc::File &
+ i_rFile );
+ void Setup_DataFile_for(
+ const ary::cpp::Class &
+ i_rClass );
+ /// Used with Setup_OperatonsFile_for().
+ void Create_File();
+
+
+ // Interface for Children of SpecializedPageMaker:
+ void Write_NameChainWithLinks(
+ const ary::cpp::CodeEntity &
+ i_rCe );
+
+ // Necessary, to call Process() on this class.
+ using csv::ConstProcessor<ary::cpp::Class>::Process;
+ using csv::ConstProcessor<ary::cpp::Enum>::Process;
+ using csv::ConstProcessor<ary::cpp::Typedef>::Process;
+
+ private:
+ // Interface csv::ConstProcessor<>:
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Enum &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Typedef &
+ i_rData );
+ // Interface ary::cpp::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+ // Locals
+ HtmlDocuFile & File() { return *pMyFile; }
+ void RecursiveWrite_NamespaceLink(
+ const ary::cpp::Namespace *
+ i_pNamespace );
+ void RecursiveWrite_ClassLink(
+ const ary::cpp::Class *
+ i_pClass,
+ uintt i_nLevelDistance );
+ void SetupFileOnCurEnv(
+ const char * i_sTitle );
+ void Write_NavBar_Enum(
+ const ary::cpp::Enum &
+ i_rData );
+ void Write_TopArea_Enum(
+ const ary::cpp::Enum &
+ i_rData );
+ void Write_DocuArea_Enum(
+ const ary::cpp::Enum &
+ i_rData );
+ void Write_ChildList_Enum(
+ const ary::cpp::Enum &
+ i_rData );
+ void Write_NavBar_Typedef(
+ const ary::cpp::Typedef &
+ i_rData );
+ void Write_TopArea_Typedef(
+ const ary::cpp::Typedef &
+ i_rData );
+ void Write_DocuArea_Typedef(
+ const ary::cpp::Typedef &
+ i_rData );
+ void Create_IndexFile(
+ int i_nLetter );
+
+ // DATA
+ Dyn<HtmlDocuFile> pMyFile;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/pm_aldef.cxx b/autodoc/source/display/html/pm_aldef.cxx
new file mode 100644
index 000000000000..debe4681b0b8
--- /dev/null
+++ b/autodoc/source/display/html/pm_aldef.cxx
@@ -0,0 +1,245 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_aldef.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/cp_def.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <ary/getncast.hxx>
+#include "hd_docu.hxx"
+#include "html_kit.hxx"
+#include "navibar.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+using csi::html::HorizontalLine;
+using csi::html::Link;
+using csi::html::Label;
+using csi::html::AlignAttr;
+
+
+
+PageMaker_AllDefs::PageMaker_AllDefs( PageDisplay & io_rPage )
+ : SpecializedPageMaker(io_rPage),
+ pDocuDisplay( new Docu_Display(io_rPage.Env()) ),
+ pNavi(0)
+{
+}
+
+PageMaker_AllDefs::~PageMaker_AllDefs()
+{
+}
+
+void
+PageMaker_AllDefs::MakePage()
+{
+ pNavi = new NavigationBar( Env(), NavigationBar::LOC_AllDefs );
+ Write_NavBar();
+
+ Write_TopArea();
+
+ Write_DefinesList();
+ Write_MacrosList();
+
+ pNavi->Write_SubRows();
+}
+
+void
+PageMaker_AllDefs::Write_NavBar()
+{
+ pNavi->MakeSubRow( "" );
+ pNavi->AddItem( "Defines", "defines", true );
+ pNavi->AddItem( "Macros", "macros", true );
+ pNavi->Write( CurOut() );
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_AllDefs::Write_TopArea()
+{
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), "Defines and ", "Macros" );
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_AllDefs::Write_DocuArea()
+{
+ // Not needed.
+}
+
+void
+PageMaker_AllDefs::Write_DefinesList()
+{
+ CurOut()
+ << new html::LineBreak
+ << new html::LineBreak
+ >> *new xml::AnElement("div")
+ << new html::ClassAttr("define")
+ >> *new html::Label("defines")
+ >> *new html::Headline(3)
+ << "Defines";
+
+ ary::cpp::DefsResultList
+ aAllDefines = Env().Gate().Defs().AllDefines();
+ ary::cpp::DefsConstIterator
+ itEnd = aAllDefines.end();
+
+ if (aAllDefines.begin() != itEnd)
+ {
+ for ( ary::cpp::DefsConstIterator it = aAllDefines.begin();
+ it != itEnd;
+ ++it )
+ {
+ Write_Define(*it);
+ }
+ }
+ else
+ {
+ CurOut() << "None.";
+ }
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_AllDefs::Write_MacrosList()
+
+{
+ CurOut()
+ << new html::LineBreak
+ << new html::LineBreak
+ >> *new xml::AnElement("div")
+ << new html::ClassAttr("define")
+ >> *new html::Label("macros")
+ >> *new html::Headline(3)
+ << "Macros";
+
+ ary::cpp::DefsResultList
+ aAllMacros = Env().Gate().Defs().AllMacros();
+ ary::cpp::DefsConstIterator
+ itEnd = aAllMacros.end();
+
+ if (aAllMacros.begin() != itEnd)
+ {
+ for ( ary::cpp::DefsConstIterator it = aAllMacros.begin();
+ it != itEnd;
+ ++it )
+ {
+ Write_Macro(*it);
+ }
+ }
+ else
+ {
+ CurOut() << "None.";
+ }
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_AllDefs::Write_Define(De_id i_nId)
+{
+ csv_assert( ary::is_type<ary::cpp::Define>( Env().Gate().Defs().Find_Def(i_nId)) );
+ const ary::cpp::Define &
+ rDef = static_cast< const ary::cpp::Define& >( Env().Gate().Defs().Find_Def(i_nId) );
+
+ CurOut() << new html::HorizontalLine;
+
+ adcdisp::ExplanationList aDocu( CurOut(), true );
+ aDocu.AddEntry();
+
+ aDocu.Term()
+ >> *new html::Label( rDef.LocalName() )
+ << " ";
+ aDocu.Term()
+ << rDef.LocalName();
+
+ Write_DefsDocu( aDocu.Def(), rDef );
+}
+
+void
+PageMaker_AllDefs::Write_Macro(De_id i_nId)
+{
+ csv_assert( Env().Gate().Defs().Find_Def(i_nId).AryClass() == ary::cpp::Macro::class_id );
+ const ary::cpp::Macro &
+ rDef = static_cast< const ary::cpp::Macro& >( Env().Gate().Defs().Find_Def(i_nId) );
+
+ CurOut() << new html::HorizontalLine;
+
+ adcdisp::ExplanationList aDocu( CurOut(), true );
+ aDocu.AddEntry();
+
+ aDocu.Term()
+ >> *new html::Label( rDef.LocalName() )
+ << " ";
+ aDocu.Term()
+ << rDef.LocalName()
+ << "(";
+ WriteOut_TokenList( aDocu.Term(), rDef.Params(), ", " );
+ aDocu.Term()
+ << ")";
+
+ Write_DefsDocu( aDocu.Def(), rDef );
+}
+
+
+void
+PageMaker_AllDefs::Write_DefsDocu( csi::xml::Element & o_rOut,
+ const ary::cpp::DefineEntity & i_rTextReplacement )
+{
+ if ( i_rTextReplacement.DefinitionText().size() > 0 )
+ {
+ EraseLeadingSpace( *const_cast< String * >(
+ &(*i_rTextReplacement.DefinitionText().begin())
+ ) );
+ }
+
+ adcdisp::ExplanationTable rList( o_rOut );
+
+ rList.AddEntry( "Defined As" );
+ WriteOut_TokenList( rList.Def(), i_rTextReplacement.DefinitionText(), " " );
+
+ const ary::loc::File &
+ rFile = Env().Gate().Locations().Find_File( i_rTextReplacement.Location() );
+ rList.AddEntry( "In File" );
+ rList.Def() << rFile.LocalName();
+
+ ShowDocu_On( o_rOut, *pDocuDisplay, i_rTextReplacement );
+}
diff --git a/autodoc/source/display/html/pm_aldef.hxx b/autodoc/source/display/html/pm_aldef.hxx
new file mode 100644
index 000000000000..3971bd0c4a13
--- /dev/null
+++ b/autodoc/source/display/html/pm_aldef.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_ALDEF_HXX
+#define ADC_DISPLAY_HTML_PM_ALDEF_HXX
+
+// BASE CLASSES
+#include "pm_base.hxx"
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+using ary::cpp::De_id;
+
+namespace ary
+{
+ namespace cpp
+ {
+ class DefineEntity;
+ }
+}
+
+class Docu_Display;
+class NavigationBar;
+
+
+
+
+
+class PageMaker_AllDefs : public SpecializedPageMaker
+{
+ public:
+ PageMaker_AllDefs(
+ PageDisplay & io_rPage );
+
+ virtual ~PageMaker_AllDefs();
+
+ virtual void MakePage();
+
+ private:
+ typedef std::vector<De_id> List_Ids;
+ typedef List_Ids::const_iterator ids_iterator;
+
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+ virtual void Write_DefinesList();
+ virtual void Write_MacrosList();
+ void Write_Define(
+ De_id i_nId );
+ void Write_Macro(
+ De_id i_nId );
+ void Write_DefsDocu(
+ csi::xml::Element & o_rOut,
+ const ary::cpp::DefineEntity &
+ i_rTextReplacement );
+
+ // DATA
+ Dyn<Docu_Display> pDocuDisplay;
+ Dyn<NavigationBar> pNavi;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/pm_base.cxx b/autodoc/source/display/html/pm_base.cxx
new file mode 100644
index 000000000000..16ab7bb97ef8
--- /dev/null
+++ b/autodoc/source/display/html/pm_base.cxx
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_base.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+
+
+//******************** SpecializedPageMaker *********************//
+
+SpecializedPageMaker::SpecializedPageMaker( PageDisplay & io_rPage )
+ : pEnv( &io_rPage.Env() ),
+ pCurOut( &io_rPage.CurOut() ),
+ pPage( &io_rPage )
+{
+}
+
+void
+SpecializedPageMaker::Write_NavBar()
+{
+ // Dummy
+}
+
+void
+SpecializedPageMaker::Write_TopArea()
+{
+ // Dummy
+}
+
+void
+SpecializedPageMaker::Write_DocuArea()
+{
+ // Dummy
+}
+
+//void
+//SpecializedPageMaker::Write_ChildList( ary::SlotAccessId ,
+// const char * ,
+// const char * )
+//{
+// // Dummy
+//}
+
+csi::xml::Element &
+SpecializedPageMaker::CurOut()
+{
+ return Page().CurOut();
+}
+
diff --git a/autodoc/source/display/html/pm_base.hxx b/autodoc/source/display/html/pm_base.hxx
new file mode 100644
index 000000000000..9acc2186d5ad
--- /dev/null
+++ b/autodoc/source/display/html/pm_base.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_PM_BASE_HXX
+#define ADC_DISPLAY_PM_BASE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include "hdimpl.hxx"
+
+
+
+class OuputPage_Environment;
+namespace csi
+{
+ namespace xml
+ {
+ class Element;
+ }
+}
+class PageDisplay;
+
+
+/** Interface for making a special kind of HTML-Page
+*/
+class SpecializedPageMaker
+{
+ public:
+ virtual ~SpecializedPageMaker() {}
+
+ virtual void MakePage() = 0;
+
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+// virtual void Write_ChildList(
+// ary::SlotAccessId i_nSlot,
+// const char * i_nListTitle,
+// const char * i_nLabel );
+
+ protected:
+ SpecializedPageMaker(
+ PageDisplay & io_rPage );
+
+ OuputPage_Environment &
+ Env() const { return *pEnv; }
+ csi::xml::Element & CurOut();
+ PageDisplay & Page() { return *pPage; }
+
+ private:
+ OuputPage_Environment *
+ pEnv;
+ csi::xml::Element * pCurOut;
+ PageDisplay * pPage;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/pm_class.cxx b/autodoc/source/display/html/pm_class.cxx
new file mode 100644
index 000000000000..3e22eb5a91a9
--- /dev/null
+++ b/autodoc/source/display/html/pm_class.cxx
@@ -0,0 +1,811 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_class.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <ary/getncast.hxx>
+#include "hd_chlst.hxx"
+#include "hd_docu.hxx"
+#include "hdimpl.hxx"
+#include "html_kit.hxx"
+#include "navibar.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+using namespace adcdisp;
+
+using namespace csi;
+using csi::html::HorizontalLine;
+using csi::html::LineBreak;
+using csi::html::Link;
+using csi::html::Table;
+using csi::html::TableRow;
+using csi::html::TableCell;
+
+using ary::cpp::CesConstIterator;
+using ary::doc::OldCppDocu;
+
+const char * const C_sTitle_InnerClasses = "Classes";
+const char * const C_sTitle_InnerStructs = "Structs";
+const char * const C_sTitle_InnerUnions = "Unions";
+const char * const C_sTitle_Methods = "Methods";
+const char * const C_sTitle_StaticMethods = "Static Methods";
+const char * const C_sTitle_Data = "Data";
+const char * const C_sTitle_StaticData = "Static Data";
+
+const char * const C_sLabel_StaticOperations = "static_ops";
+const char * const C_sLabel_StaticVariables = "static_vars";
+
+const char * const C_sTitlePublic = "Public Members";
+const char * const C_sTitleProtected = "Protected Members";
+const char * const C_sTitlePrivate = "Private Members";
+const char * const C_sMprTitles[3] = { C_sTitlePublic,
+ C_sTitleProtected,
+ C_sTitlePrivate
+ };
+const char * const C_sSummaryTitlePublic = "Public Members";
+const char * const C_sSummaryTitleProtected = "Protected Members";
+const char * const C_sSummaryTitlePrivate = "Private Members";
+const char *
+ C_sMprSummaryTitles[3] =
+ { C_sSummaryTitlePublic, C_sSummaryTitleProtected, C_sSummaryTitlePrivate };
+const char *
+ C_sMprPrefixes[3] =
+ { "publ_", "prot_", "priv_" };
+const char *
+ C_sSummaryItems_Titles[PageMaker_Class::cl_MAX] =
+ { C_sTitle_InnerClasses, C_sTitle_InnerStructs, C_sTitle_InnerUnions,
+ C_sTitle_Enums, C_sTitle_Typedefs,
+ C_sTitle_Methods, C_sTitle_StaticMethods, C_sTitle_Data, C_sTitle_StaticData };
+const char *
+ C_sSummaryItems_Labels[PageMaker_Class::cl_MAX] =
+ { C_sLabel_Classes, C_sLabel_Structs, C_sLabel_Unions,
+ C_sLabel_Enums, C_sLabel_Typedefs,
+ C_sLabel_Operations, C_sLabel_StaticOperations,
+ C_sLabel_Variables, C_sLabel_StaticVariables };
+
+
+const ary::cpp::E_Protection
+ aProt[3] = { ary::cpp::PROTECT_public,
+ ary::cpp::PROTECT_protected,
+ ary::cpp::PROTECT_private };
+
+
+PageMaker_Class::PageMaker_Class( PageDisplay & io_rPage,
+ const ary::cpp::Class & i_rClass )
+ : SpecializedPageMaker(io_rPage),
+ pMe( &i_rClass ),
+ pChildDisplay( new ChildList_Display(io_rPage.Env(), i_rClass) ),
+ pNavi(0)
+ // pProtectionArea,
+ // bChildLists_Exist
+{
+ int i_max = 3 * cl_MAX;
+ for (int i = 0; i < i_max; i++)
+ {
+ bChildLists_Exist[i] = false;
+ } // end for
+}
+
+PageMaker_Class::~PageMaker_Class()
+{
+}
+
+void
+PageMaker_Class::MakePage()
+{
+ pNavi = new NavigationBar( Env(), Me() );
+
+ Write_NavBar();
+ Write_TopArea();
+ Write_DocuArea();
+ Write_ChildLists();
+
+ pNavi->Write_SubRows();
+ pNavi = 0;
+}
+
+void
+PageMaker_Class::Write_NavBar()
+{
+ NavigationBar aNavi( Env(), Me() );
+ pNavi->Write( CurOut() );
+ CurOut() << new HorizontalLine;
+}
+
+inline bool
+IsInterface(const ary::doc::Documentation & i_doc)
+{
+ const OldCppDocu *
+ doc = Get_CppDocu(i_doc);
+ return doc != 0
+ ? doc->IsInterface()
+ : false;
+}
+
+void
+PageMaker_Class::Write_TopArea()
+{
+ TemplateClause fTemplateClause;
+ PageTitle_Std fTitle;
+
+ Page().Write_NameChainWithLinks( Me() );
+
+ fTemplateClause( CurOut(), Me().TemplateParameters() );
+ fTitle( CurOut(), Get_ClassTypeKey(Me()), Me().LocalName() );
+
+ CurOut() << new HorizontalLine;
+
+ Write_BaseHierarchy();
+ Write_DerivedList();
+
+ CurOut() << new LineBreak;
+
+ adcdisp::FlagTable
+ aFlags( CurOut(), 4 );
+ aFlags.SetColumn( 0, "virtual",
+ Me().Virtuality() != ary::cpp::VIRTUAL_none );
+ aFlags.SetColumn( 1, "abstract",
+ Me().Virtuality() == ary::cpp::VIRTUAL_abstract );
+ aFlags.SetColumn( 2, "interface",
+ IsInterface(Me().Docu())
+ OR Me().Virtuality() == ary::cpp::VIRTUAL_abstract );
+ aFlags.SetColumn( 3, "template",
+ Me().TemplateParameters().size() > 0 );
+}
+
+void
+PageMaker_Class::Write_DocuArea()
+{
+ Docu_Display aDocuShow( Env() );
+
+ aDocuShow.Assign_Out(CurOut());
+ Me().Accept( aDocuShow );
+ aDocuShow.Unassign_Out();
+
+ ary::loc::File &
+ rFile = Env().Gate().Locations().Find_File( Me().Location() );
+
+ adcdisp::ExplanationList
+ aFileText( CurOut() );
+ aFileText.AddEntry("File");
+ aFileText.Def()
+ << rFile.LocalName();
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Class::Write_ChildLists()
+{
+ int i_max = 3 * cl_MAX;
+ for (int i = 0; i < i_max; i++)
+ {
+ bChildLists_Exist[i] = false;
+ } // end for
+
+ csi::html::DefListDefinition &
+ rPublic = Setup_MemberSegment_Out( mp_public );
+ csi::html::DefListDefinition &
+ rProtected = Setup_MemberSegment_Out( mp_protected );
+ csi::html::DefListDefinition &
+ rPrivate = Setup_MemberSegment_Out( mp_private );
+
+ Write_ChildList_forClasses( rPublic,
+ rProtected,
+ rPrivate,
+ C_sLabel_Classes,
+ C_sTitle_InnerClasses,
+ ary::cpp::CK_class );
+ Write_ChildList_forClasses( rPublic,
+ rProtected,
+ rPrivate,
+ C_sLabel_Structs,
+ C_sTitle_InnerStructs,
+ ary::cpp::CK_struct );
+ Write_ChildList_forClasses( rPublic,
+ rProtected,
+ rPrivate,
+ C_sLabel_Unions,
+ C_sTitle_InnerUnions,
+ ary::cpp::CK_union );
+
+ Write_ChildList( ary::cpp::Class::SLOT_Enums,
+ cl_Enums,
+ C_sLabel_Enums,
+ C_sTitle_Enums,
+ rPublic,
+ rProtected,
+ rPrivate );
+ Write_ChildList( ary::cpp::Class::SLOT_Typedefs,
+ cl_Typedefs,
+ C_sLabel_Typedefs,
+ C_sTitle_Typedefs,
+ rPublic,
+ rProtected,
+ rPrivate );
+
+ Write_ChildList( ary::cpp::Class::SLOT_Operations,
+ cl_Operations,
+ C_sLabel_Operations,
+ C_sTitle_Methods,
+ rPublic,
+ rProtected,
+ rPrivate );
+ Write_ChildList( ary::cpp::Class::SLOT_StaticOperations,
+ cl_StaticOperations,
+ C_sLabel_StaticOperations,
+ C_sTitle_StaticMethods,
+ rPublic,
+ rProtected,
+ rPrivate );
+ Write_ChildList( ary::cpp::Class::SLOT_Data,
+ cl_Data,
+ C_sLabel_Variables,
+ C_sTitle_Data,
+ rPublic,
+ rProtected,
+ rPrivate );
+ Write_ChildList( ary::cpp::Class::SLOT_StaticData,
+ cl_StaticData,
+ C_sLabel_StaticVariables,
+ C_sTitle_StaticData,
+ rPublic,
+ rProtected,
+ rPrivate );
+
+ Create_NaviSubRow(mp_public); // Also puts out or deletes pPublic.
+ Create_NaviSubRow(mp_protected); // Also puts out or deletes pProtected.
+ Create_NaviSubRow(mp_private); // Also puts out or deletes pPrivate.
+}
+
+void
+PageMaker_Class::Write_ChildList( ary::SlotAccessId i_nSlot,
+ E_ChidList i_eChildListIndex,
+ const char * i_sLabel,
+ const char * i_sListTitle,
+ csi::xml::Element & o_rPublic,
+ csi::xml::Element & o_rProtected,
+ csi::xml::Element & o_rPrivate )
+
+{
+ bool bPublic_ChildrenExist = false;
+ bool bProtected_ChildrenExist = false;
+ bool bPrivate_ChildrenExist = false;
+
+ ChildList_Display::Area_Result
+ aPublic_Result( bPublic_ChildrenExist, o_rPublic );
+ ChildList_Display::Area_Result
+ aProtected_Result( bProtected_ChildrenExist, o_rProtected );
+ ChildList_Display::Area_Result
+ aPrivate_Result( bPrivate_ChildrenExist, o_rPrivate );
+
+ String sLabelPublic = ChildListLabel(i_sLabel, mp_public);
+ String sLabelProtected = ChildListLabel(i_sLabel, mp_protected);
+ String sLabelPrivate = ChildListLabel(i_sLabel, mp_private);
+
+ pChildDisplay->Run_Members( aPublic_Result,
+ aProtected_Result,
+ aPrivate_Result,
+ i_nSlot,
+ sLabelPublic,
+ sLabelProtected,
+ sLabelPrivate,
+ i_sListTitle );
+
+ bChildLists_Exist[i_eChildListIndex]
+ = bPublic_ChildrenExist;
+ bChildLists_Exist[i_eChildListIndex + cl_MAX]
+ = bProtected_ChildrenExist;
+ bChildLists_Exist[i_eChildListIndex + 2*cl_MAX]
+ = bPrivate_ChildrenExist;
+
+ if (bPublic_ChildrenExist)
+ o_rPublic << new HorizontalLine;
+ if (bProtected_ChildrenExist)
+ o_rProtected << new HorizontalLine;
+ if (bPrivate_ChildrenExist)
+ o_rPrivate << new HorizontalLine;
+}
+
+void
+PageMaker_Class::Write_ChildList_forClasses( csi::xml::Element & o_rPublic,
+ csi::xml::Element & o_rProtected,
+ csi::xml::Element & o_rPrivate,
+ const char * i_sLabel,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey i_eFilter )
+{
+ bool bPublic_ChildrenExist = false;
+ bool bProtected_ChildrenExist = false;
+ bool bPrivate_ChildrenExist = false;
+
+ ChildList_Display::Area_Result
+ aPublic_Result( bPublic_ChildrenExist, o_rPublic );
+ ChildList_Display::Area_Result
+ aProtected_Result( bProtected_ChildrenExist, o_rProtected );
+ ChildList_Display::Area_Result
+ aPrivate_Result( bPrivate_ChildrenExist, o_rPrivate );
+
+ String sLabelPublic = ChildListLabel(i_sLabel, mp_public);
+ String sLabelProtected = ChildListLabel(i_sLabel, mp_protected);
+ String sLabelPrivate = ChildListLabel(i_sLabel, mp_private);
+
+ pChildDisplay->Run_MemberClasses( aPublic_Result,
+ aProtected_Result,
+ aPrivate_Result,
+ ary::cpp::Class::SLOT_NestedClasses,
+ sLabelPublic,
+ sLabelProtected,
+ sLabelPrivate,
+ i_sListTitle,
+ i_eFilter );
+
+ bChildLists_Exist[int(cl_NestedClasses)+int(i_eFilter)]
+ = bPublic_ChildrenExist;
+ bChildLists_Exist[int(cl_NestedClasses)+int(i_eFilter) + cl_MAX]
+ = bProtected_ChildrenExist;
+ bChildLists_Exist[int(cl_NestedClasses)+int(i_eFilter) + 2*cl_MAX]
+ = bPrivate_ChildrenExist;
+
+ if (bPublic_ChildrenExist)
+ o_rPublic << new HorizontalLine;
+ if (bProtected_ChildrenExist)
+ o_rProtected << new HorizontalLine;
+ if (bPrivate_ChildrenExist)
+ o_rPrivate << new HorizontalLine;
+}
+
+const char *
+PageMaker_Class::ChildListLabel( const char * i_sLabel, E_MemberProtection i_eMpr )
+{
+ static char sResult[100];
+ strcpy( sResult, C_sMprPrefixes[i_eMpr] ); // SAFE STRCPY (#100211# - checked)
+ strcat( sResult, i_sLabel ); // SAFE STRCAT (#100211# - checked)
+ return sResult;
+}
+
+csi::html::DefListDefinition &
+PageMaker_Class::Setup_MemberSegment_Out( E_MemberProtection i_eMpr )
+{
+ html::DefList * pDefList = new html::DefList;
+ pProtectionArea[i_eMpr] = pDefList;
+
+ pDefList->AddTerm()
+ << new html::ClassAttr("subtitle")
+ >> *new html::Label( C_sMprPrefixes[i_eMpr] )
+ >> *new html::Headline(3)
+ << C_sMprTitles[i_eMpr];
+ return pDefList->AddDefinition();
+}
+
+void
+PageMaker_Class::Create_NaviSubRow( E_MemberProtection i_eMpr )
+{
+ int nIndexAdd = int(cl_MAX) * int(i_eMpr);
+
+ bool bEmpty = true;
+ for (int e = 0; e < cl_MAX; e++)
+ {
+ if ( bChildLists_Exist[e + nIndexAdd] )
+ {
+ bEmpty = false;
+ break;
+ }
+ } // end for
+ if (bEmpty)
+ {
+ pProtectionArea[i_eMpr] = 0;
+ return;
+ }
+ else //
+ {
+ CurOut() << pProtectionArea[i_eMpr].Release();
+ } // endif
+
+ pNavi->MakeSubRow( C_sMprSummaryTitles[i_eMpr] );
+ for (int i = 0; i < cl_MAX; i++)
+ {
+ pNavi->AddItem( C_sSummaryItems_Titles[i],
+ ChildListLabel( C_sSummaryItems_Labels[i], i_eMpr ),
+ bChildLists_Exist[i+nIndexAdd] );
+ } // end for
+}
+
+void
+PageMaker_Class::Write_DerivedList()
+{
+ adcdisp::ExplanationList
+ aDeriveds( CurOut() );
+ aDeriveds.AddEntry( "Known Derived Classes" );
+
+ if ( Me().KnownDerivatives().Size() == 0 )
+ {
+ aDeriveds.Def() << "None.";
+ return;
+ }
+
+ typedef ary::List_Rid RidList;
+
+ CesConstIterator
+ itEnd = Me().KnownDerivatives().End();
+ for ( CesConstIterator it = Me().KnownDerivatives().Begin();
+ it != itEnd;
+ ++it )
+ {
+ const ary::cpp::CodeEntity &
+ rCe = Env().Gate().Ces().Find_Ce(*it);
+
+ aDeriveds.Def()
+ >> *new html::Link( Link2Ce(Env(),rCe) )
+ << rCe.LocalName();
+ aDeriveds.Def()
+ << new html::LineBreak;
+ } // end for
+}
+
+
+// ============== Creating a classes base hierarchy ====================== //
+
+
+namespace
+{
+
+class Node
+{
+ public:
+ Node(
+ const ary::cpp::Class &
+ i_rClass,
+ ary::cpp::Type_id i_nClassType,
+ const ary::cpp::Gate &
+ i_rGate,
+ intt i_nPositionOffset,
+ Node * io_pDerived = 0,
+ ary::cpp::E_Protection
+ i_eProtection = ary::cpp::PROTECT_global,
+ bool i_bVirtual = false );
+ ~Node();
+
+ void FillPositionList(
+ std::vector< const Node* > &
+ o_rPositionList ) const;
+ void Write2(
+ csi::xml::Element & o_rOut,
+ const OuputPage_Environment &
+ i_rEnv ) const;
+
+ intt BaseCount() const { return nCountBases; }
+ intt Position() const { return nPosition; }
+ int Xpos() const { return 3*Position(); }
+ int Ypos() const { return 2*Position(); }
+ const Node * Derived() const { return pDerived; }
+
+ private:
+ typedef std::vector< DYN Node* > BaseList;
+
+ void IncrBaseCount();
+
+ // DATA
+ BaseList aBases;
+ intt nCountBases;
+ Node * pDerived;
+
+ String sName;
+ const ary::cpp::Class *
+ pClass;
+ ary::cpp::Type_id nClassType;
+ ary::cpp::E_Protection
+ eProtection;
+ bool bVirtual;
+
+ intt nPosition;
+};
+
+void WriteNodeHierarchy(
+ csi::xml::Element & o_rOut,
+ const OuputPage_Environment &
+ i_rEnv,
+ const Node & i_rClass );
+
+const ary::cpp::Class *
+ HereFind_Class(
+ const ary::cpp::Gate &
+ i_rGate,
+ ary::cpp::Type_id i_nReferingTypeId );
+
+} // anonymous namespace
+
+void
+PageMaker_Class::Write_BaseHierarchy()
+{
+ adcdisp::ExplanationList aBases( CurOut() );
+ aBases.AddEntry( "Base Classes" );
+
+ if ( Me().BaseClasses().size() == 0 )
+ {
+ aBases.Def() << "None.";
+ }
+ else
+ {
+ Dyn< Node >
+ pBaseGraph( new Node(Me(), ary::cpp::Type_id(0), Env().Gate(), 0) );
+ WriteNodeHierarchy( aBases.Def(), Env(), *pBaseGraph );
+ }
+}
+
+
+
+namespace
+{
+
+void
+WriteNodeHierarchy( csi::xml::Element & o_rOut,
+ const OuputPage_Environment & i_rEnv,
+ const Node & i_rClass )
+{
+ typedef const Node * NodePtr;
+ typedef std::vector<NodePtr> NodeList;
+
+ NodeList aPositionList;
+ intt nSize = i_rClass.Position()+1;
+ aPositionList.reserve(nSize);
+ i_rClass.FillPositionList( aPositionList );
+
+ xml::Element &
+ rPre = o_rOut
+ >> *new xml::AnElement("pre")
+ << new html::StyleAttr("font-family:monospace;");
+
+ for ( int line = 0; line < nSize; ++line )
+ {
+ char * sLine1 = new char[2 + line*5];
+ char * sLine2 = new char[1 + line*5];
+ *sLine1 = '\0';
+ *sLine2 = '\0';
+
+ bool bBaseForThisLineReached = false;
+ for ( int col = 0; col < line; ++col )
+ {
+ intt nDerivPos = aPositionList[col]->Derived()->Position();
+
+ if ( nDerivPos >= line )
+ strcat(sLine1, " | ");
+ else
+ strcat(sLine1, " ");
+
+ if ( nDerivPos > line )
+ {
+ strcat(sLine2, " | ");
+ }
+ else if ( nDerivPos == line )
+ {
+ if (bBaseForThisLineReached)
+ strcat(sLine2, "--+--");
+ else
+ {
+ bBaseForThisLineReached = true;
+ strcat(sLine2, " +--");
+ }
+ }
+ else // nDerivPos < line
+ {
+ if (bBaseForThisLineReached)
+ strcat(sLine2, "-----");
+ else
+ strcat(sLine2, " ");
+ }
+ } // end for (col)
+ strcat(sLine1,"\n");
+ rPre
+ << sLine1
+ << sLine2;
+ delete [] sLine1;
+ delete [] sLine2;
+
+ aPositionList[line]->Write2( rPre, i_rEnv );
+ rPre << "\n";
+ } // end for (line)
+}
+
+const ary::cpp::Class *
+HereFind_Class( const ary::cpp::Gate & i_rGate,
+ ary::cpp::Type_id i_nReferingTypeId )
+{
+ const ary::cpp::CodeEntity *
+ pCe = i_rGate.Search_RelatedCe( i_nReferingTypeId );
+
+ if ( pCe != 0 )
+ {
+ if ( ary::is_type<ary::cpp::Class>(*pCe) )
+ {
+ return ary::ary_cast<ary::cpp::Class>(pCe);
+ }
+ else if ( ary::is_type<ary::cpp::Typedef>(*pCe) )
+ {
+ const ary::cpp::Typedef *
+ pTydef = ary::ary_cast<ary::cpp::Typedef>(pCe);
+ return HereFind_Class( i_rGate, pTydef->DescribingType() );
+ }
+ }
+
+ static const ary::cpp::Class aClassNull_( "Base class not found",
+ ary::cpp::Ce_id(0),
+ ary::cpp::PROTECT_global,
+ ary::loc::Le_id(0),
+ ary::cpp::CK_class );
+ return &aClassNull_;
+}
+
+
+
+//********************* Node ***********************//
+
+Node::Node( const ary::cpp::Class & i_rClass,
+ ary::cpp::Type_id i_nClassType,
+ const ary::cpp::Gate & i_rGate,
+ intt i_nPositionOffset,
+ Node * io_pDerived,
+ ary::cpp::E_Protection i_eProtection,
+ bool i_bVirtual )
+ : aBases(),
+ nCountBases(0),
+ pDerived(io_pDerived),
+ pClass(&i_rClass),
+ nClassType(i_nClassType),
+ eProtection(i_eProtection),
+ bVirtual(i_bVirtual),
+ nPosition(i_nPositionOffset)
+{
+ typedef ary::cpp::List_Bases BList;
+
+ for ( BList::const_iterator it = i_rClass.BaseClasses().begin();
+ it != i_rClass.BaseClasses().end();
+ ++it )
+ {
+ const ary::cpp::Class *
+ pBaseClass = HereFind_Class( i_rGate, (*it).nId );
+
+ Dyn<Node>
+ pBase( new Node(*pBaseClass,
+ (*it).nId,
+ i_rGate,
+ nPosition,
+ this,
+ (*it).eProtection,
+ (*it).eVirtuality == ary::cpp::VIRTUAL_virtual)
+ );
+ IncrBaseCount();
+ nPosition += pBase->BaseCount() + 1;
+ aBases.push_back( pBase.Release() );
+ } // end for
+}
+
+Node::~Node()
+{
+}
+
+void
+Node::FillPositionList( std::vector< const Node* > & o_rPositionList ) const
+{
+ for ( BaseList::const_iterator it = aBases.begin();
+ it != aBases.end();
+ ++it )
+ {
+ (*it)->FillPositionList(o_rPositionList);
+ } // end for
+
+ if( o_rPositionList.size() != uintt(Position()) )
+ {
+ csv_assert(false);
+ }
+ o_rPositionList.push_back(this);
+}
+
+void
+Node::Write2( csi::xml::Element & o_rOut,
+ const OuputPage_Environment & i_rEnv ) const
+{
+ if ( Derived() == 0 )
+ {
+ o_rOut
+ >> *new xml::AnElement("span")
+ << new html::ClassAttr("btself")
+ << pClass->LocalName();
+ return;
+ }
+
+ csi::xml::Element *
+ pOut = & ( o_rOut >> *new xml::AnElement("span") );
+ switch ( eProtection )
+ {
+ case ary::cpp::PROTECT_public:
+ if (bVirtual)
+ *pOut << new html::ClassAttr("btvpubl");
+ else
+ *pOut << new html::ClassAttr("btpubl");
+ break;
+ case ary::cpp::PROTECT_protected:
+ if (bVirtual)
+ *pOut << new html::ClassAttr("btvprot");
+ else
+ *pOut << new html::ClassAttr("btprot");
+ break;
+ case ary::cpp::PROTECT_private:
+ if (bVirtual)
+ *pOut << new html::ClassAttr("btvpriv");
+ else
+ *pOut << new html::ClassAttr("btpriv");
+ break;
+ default: // do nothing.
+ ;
+ } // end switch
+
+ csi::xml::Element & rOut = *pOut;
+
+ Get_LinkedTypeText( rOut, i_rEnv, nClassType, false );
+ rOut << " (";
+ if ( bVirtual )
+ rOut << "virtual ";
+ switch ( eProtection )
+ {
+ case ary::cpp::PROTECT_public:
+ rOut << "public)";
+ break;
+ case ary::cpp::PROTECT_protected:
+ rOut << "protected)";
+ break;
+ case ary::cpp::PROTECT_private:
+ rOut << "private)";
+ break;
+ default: // do nothing.
+ ;
+ } // end switch
+}
+
+void
+Node::IncrBaseCount()
+{
+ ++nCountBases;
+ if (pDerived != 0)
+ pDerived->IncrBaseCount();
+}
+
+
+} // anonymous namespace
+
+
diff --git a/autodoc/source/display/html/pm_class.hxx b/autodoc/source/display/html/pm_class.hxx
new file mode 100644
index 000000000000..a2a5b89e7205
--- /dev/null
+++ b/autodoc/source/display/html/pm_class.hxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_CLASS_HXX
+#define ADC_DISPLAY_HTML_PM_CLASS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "pm_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Class;
+ }
+}
+
+class ChildList_Display;
+class NavigationBar;
+
+
+class PageMaker_Class : public SpecializedPageMaker
+{
+ public:
+ enum E_ChidList
+ {
+ cl_NestedClasses = 0,
+ cl_NestedStructs,
+ cl_NestedUnions,
+ cl_Enums,
+ cl_Typedefs,
+ cl_Operations,
+ cl_StaticOperations,
+ cl_Data,
+ cl_StaticData,
+ cl_MAX
+ };
+ PageMaker_Class(
+ PageDisplay & io_rPage,
+ const ary::cpp::Class &
+ i_rClass );
+
+ virtual ~PageMaker_Class();
+
+ virtual void MakePage();
+
+ private:
+ enum E_MemberProtection { mp_public = 0, mp_protected, mp_private, mp_MAX };
+
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+ virtual void Write_ChildList(
+ ary::SlotAccessId i_nSlot,
+ E_ChidList i_eChildListIndex,
+ const char * i_sLabel,
+ const char * i_sListTitle,
+ csi::xml::Element & o_rPublic,
+ csi::xml::Element & o_rProtected,
+ csi::xml::Element & o_rPrivate );
+ void Write_ChildList_forClasses(
+ csi::xml::Element & o_rPublic,
+ csi::xml::Element & o_rProtected,
+ csi::xml::Element & o_rPrivate,
+ const char * i_sLabel,
+ const char * i_sListTitle,
+ ary::cpp::E_ClassKey
+ i_eFilter );
+ void Write_ChildLists();
+ static const char * ChildListLabel(
+ const char * i_sLabel,
+ E_MemberProtection i_eMpr );
+ csi::html::DefListDefinition &
+ Setup_MemberSegment_Out(
+ E_MemberProtection i_eMpr );
+ void Create_NaviSubRow(
+ E_MemberProtection i_eMpr );
+ void Write_BaseHierarchy();
+ void Write_DerivedList();
+
+ const ary::cpp::Class &
+ Me() const { return *pMe; }
+ // DATA
+ const ary::cpp::Class *
+ pMe;
+ Dyn<ChildList_Display>
+ pChildDisplay;
+ Dyn<NavigationBar> pNavi;
+
+ Dyn<csi::xml::Element>
+ pProtectionArea[mp_MAX];
+
+ bool bChildLists_Exist[3*cl_MAX];
+};
+
+
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/pm_help.cxx b/autodoc/source/display/html/pm_help.cxx
new file mode 100644
index 000000000000..2ad3b6fc32e2
--- /dev/null
+++ b/autodoc/source/display/html/pm_help.cxx
@@ -0,0 +1,232 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_help.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include "navibar.hxx"
+#include "html_kit.hxx"
+
+using namespace csi;
+using csi::html::Paragraph;
+using csi::html::HorizontalLine;
+using csi::html::Headline;
+using csi::html::AlignAttr;
+using csi::html::Bold;
+using csi::html::Link;
+using csi::html::Sbr;
+using csi::html::LineBreak;
+using csi::xml::Element;
+
+
+
+const String C_sHelpText(
+"<div style=\"font-size:10pt;\">\n"
+"<h3 class=\"help\">The Main Navigationbar</h3>\n"
+"<p> On top of every page, there is a main navigationbar on a lightly coloured\n"
+"background with the following items:<br>\n"
+"</p>\n"
+"<ul>\n"
+" <li>Overview - the start page for this document,</li>\n"
+" <li>Namespace - the lowest/deepest namespace of the language objects, described\n"
+"on the current page,</li>\n"
+" <li>Class - the class, struct or union, which owns the methods or data,\n"
+"described on the current page,</li>\n"
+" <li>Index - the global alphabetical index,</li>\n"
+" <li>Help - this page.</li>\n"
+"</ul>\n"
+" Each item in this&nbsp; bar can be in three different states:<br>\n"
+"<ul>\n"
+" <li>Link - the item is valid and you can get there,</li>\n"
+" <li>Simple - the item does not apply (if this page described a namespace,\n"
+"there would be no owning class),</li>\n"
+" <li>Reversed (white text on dark background) - this is the current page.</li>\n"
+"</ul>\n"
+"<h3 class=\"help\">Lower Navigationbars</h3>\n"
+" Just below the main navigation bar, there may be zero to three lower navigationbars\n"
+"on white background.<br>\n"
+"<br>\n"
+"Their items are dependent of the context, but they always link to paragraphs\n"
+"on the same, current page.<br>\n"
+"Available items appear as links. Unavailable items appear as simple text.<br>\n"
+"\n"
+"\n"
+"<h3 class=\"help\">Namespace Descriptions</h3>\n"
+"\n"
+"<dl>\n"
+"<dt class=\"simple\">Parent namespaces</dt>\n"
+" </dl>\n"
+" <dl>\n"
+" <dd>In front of the namespace title, there is a linked list of the parent\n"
+"namespaces. The global namespace is linked with the first \"::\",</dd>\n"
+" <dd>the namespaces between the global and the current one are linked\n"
+"by their names.<br>\n"
+" </dd>\n"
+" <dd> </dd>\n"
+" </dl>\n"
+"After the title, the documentation of the namespace follows (which is often\n"
+"missing, because the namespace name may be self-explaining).<br>\n"
+" <br>\n"
+"Below are the lists of nested namspaces and of the classes, functions and\n"
+"other program objects, that belong within this namespace.<br>\n"
+"Each of this lists is accessible by the lower navigationbar on top of the\n"
+"page.<br>\n"
+"\n"
+"<h3 class=\"help\">Class Descriptions</h3>\n"
+"\n"
+" <dl>\n"
+" <dt class=\"simple\">Parent namespaces and classes</dt>\n"
+" </dl>\n"
+" <dl>\n"
+" <dd>In front of the class title, there is a linked list of the\n"
+"parent namespaces or classes. The global namespace is linked with the first\n"
+"\"::\",</dd>\n"
+" <dd>the namespaces between the global and the current one are\n"
+"linked by their names. Enclosing classes are linked as well, but appear in\n"
+"<span class=\"nqclass\">green</font> color.&nbsp;</dd>\n"
+" <dd>So you see on the first glance, that this is a parent class,\n"
+"no namespace.<br>\n"
+" </dd>\n"
+" <dd><br>\n"
+" </dd>\n"
+" </dl>\n"
+"After the title, the bases and derivations of the class follow. <br>\n"
+"Base classes are displayed as a graph. The text around base classes can appear\n"
+"in different styles and colours:<br>\n"
+"<ul>\n"
+" <li><span class=\"btpubl\">Green</span> - public inherited,</li>\n"
+" <li><span class=\"btprot\">Orange</span> - protected inherited,</li>\n"
+" <li><span class=\"btpriv\">Red</span> - private inherited,</li>\n"
+" <li><span class=\"btvpubl\">italic</span> - a (public inherited) virtual base class.</li>\n"
+" <li><span class=\"btself\">Bold and black</span> without a link - the placeholder\n"
+"for the currently described class.<br>\n"
+" </li>\n"
+"</ul>\n"
+"There may be many derivations of a class, but only the known ones, which\n"
+"are described within this document also, are listed.<br>\n"
+"<br>\n"
+"Below the derivations is a little table with some properties of the class:<br>\n"
+"<ul>\n"
+" <li>virtual - the class owns at least one virtual method,</li>\n"
+" <li>abstract - the class owns at least one abstract method,</li>\n"
+" <li>interface - the class may or may be not abstract,\n"
+"but it is intended by its author to be used only as an interface and never\n"
+"to be instantiated,</li>\n"
+" <li>template - the class is a template class.<br>\n"
+" </li>\n"
+"</ul>\n"
+"Next comes further documentation of the class itself.<br>\n"
+"<br>\n"
+"Lastly, there are listed all members of the class. Public members come first,\n"
+"then protected, at last the private ones.<br>\n"
+"All member lists are accessible by the lower navigationbars on top of the\n"
+"page.<br>\n"
+"\n"
+"<h3 class=\"help\">Macros and Defines</h3>\n"
+"In C++ and C, there are also program constructs, which do not fit into the\n"
+"name tree, because they are #define'd: macros and definitions.<br>\n"
+"These may be documented, too. Those comments you find <a href=\"def-all.html\">\n"
+"here</a>\n"
+" or from the \"Overview\" start page.\n"
+"<h3 class=\"help\">Links to IDL-Documentation</h3>\n"
+"Some types, which appear as links, may refer to classes, enums or other\n"
+"entities, which are direct mappings of UNO-IDL entities.<br>\n"
+"In those cases the link doesn't lead to the C++ class, enum or whatever,\n"
+"but to the description of the IDL entity.\n"
+"<h3 class=\"help\">How to Link From Extern Documents</h3>\n"
+"If you wish to write an extern html document, which links to types within\n"
+"this C++ reference, you can do so, if your links have the following format:<br>\n"
+"<br>\n"
+"&lt;RootDirectory-of-this-Document&gt;/names/&lt;Namespace-A&gt;/&lt;Namespace-XY&gt;/EnclosingClass-nn&gt;/&lt;TypePreFix&gt;-&lt;MyTypeName&gt;.html<br>\n"
+"<br>\n"
+"&lt;TypePreFix&gt; can have the following values:<br>\n"
+"<ul>\n"
+"<li>c - class, struct or union</li>\n"
+"<li>e - enum</li>\n"
+"<li>t - typedef</li>\n"
+"</ul>\n"
+"If this document would be located in directory &nbsp;\"/doc/cpp/ref\", examples\n"
+"would look like this:<br>\n"
+"<br>\n"
+"&lt;a href=\"/doc/cpp/ref/names/osl/c-File.html\"&gt;class File&lt;/a&gt;<br>\n"
+"&lt;a href=\"/doc/cpp/ref/names/osl/FileBase/e-RC.html\"&gt;enum FileBase::RC&lt;/a&gt;<br>\n"
+"&lt;a href=\"/doc/cpp/ref/names/t-oslMutex.html\"&gt;typedef oslMutex&lt;/a&gt;<br>\n"
+"<br>\n"
+"Namespaces are described in the index.html file within their directory:<br>\n"
+"<br>\n"
+"&lt;a href=\"/doc/cpp/ref/names/cppu/index.html\"&gt;namespace cppu&lt;/a&gt;<br>\n"
+"</div>" );
+
+
+
+
+PageMaker_Help::PageMaker_Help( PageDisplay & io_rPage )
+ : SpecializedPageMaker(io_rPage),
+ pNavi(0)
+{
+}
+
+PageMaker_Help::~PageMaker_Help()
+{
+}
+
+void
+PageMaker_Help::MakePage()
+{
+ pNavi = new NavigationBar( Env(), NavigationBar::LOC_Help );
+ Write_NavBar();
+
+ Write_TopArea();
+ Write_DocuArea();
+}
+
+void
+PageMaker_Help::Write_NavBar()
+{
+ pNavi->Write( CurOut() );
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Help::Write_TopArea()
+{
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), "How to Use", "this Reference Document" );
+
+ CurOut() << new xml::XmlCode(C_sHelpText);
+}
+
+void
+PageMaker_Help::Write_DocuArea()
+{
+ CurOut() << new HorizontalLine;
+}
+
+
+
diff --git a/autodoc/source/display/html/pm_help.hxx b/autodoc/source/display/html/pm_help.hxx
new file mode 100644
index 000000000000..7266c402c991
--- /dev/null
+++ b/autodoc/source/display/html/pm_help.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_HELP_HXX
+#define ADC_DISPLAY_HTML_PM_HELP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "pm_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class NavigationBar;
+
+class PageMaker_Help : public SpecializedPageMaker
+{
+ public:
+ PageMaker_Help(
+ PageDisplay & io_rPage );
+
+ virtual ~PageMaker_Help();
+
+ virtual void MakePage();
+
+ private:
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+
+ // DATA
+ Dyn<NavigationBar> pNavi;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/pm_index.cxx b/autodoc/source/display/html/pm_index.cxx
new file mode 100644
index 000000000000..bb41a8fe8f58
--- /dev/null
+++ b/autodoc/source/display/html/pm_index.cxx
@@ -0,0 +1,317 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_index.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include "aryattrs.hxx"
+#include "hd_chlst.hxx"
+#include "hd_docu.hxx"
+#include "html_kit.hxx"
+#include "navibar.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+using namespace csi;
+using ary::GlobalId;
+
+
+
+
+namespace
+{
+
+inline const char *
+F_CK_Text( ary::cpp::E_ClassKey i_eCK )
+{
+ switch (i_eCK)
+ {
+ case ary::cpp::CK_class: return "class";
+ case ary::cpp::CK_struct: return "struct";
+ case ary::cpp::CK_union: return "union";
+ } // end switch
+ return "";
+}
+
+template <class CE>
+inline const char *
+F_OwnerType( const CE & i_rData, const ary::cpp::Gate & i_rGate )
+{
+ if ( i_rData.Protection() == ary::cpp::PROTECT_global )
+ return "namespace ";
+
+ const ary::cpp::Class *
+ pClass = dynamic_cast< const ary::cpp::Class* >(
+ i_rGate.Ces().Search_Ce(i_rData.Owner()) );
+ if (pClass != 0)
+ return F_CK_Text(pClass->ClassKey());
+ return "";
+}
+
+} // anonymous namespace
+
+PageMaker_Index::PageMaker_Index( PageDisplay & io_rPage,
+ char i_c )
+ : SpecializedPageMaker(io_rPage),
+ pNavi(0),
+ c(i_c),
+ pCurIndex(0)
+{
+}
+
+PageMaker_Index::~PageMaker_Index()
+{
+}
+
+void
+PageMaker_Index::MakePage()
+{
+ pNavi = new NavigationBar( Env(), NavigationBar::LOC_Index );
+
+ Write_NavBar();
+ Write_TopArea();
+ Write_CompleteAlphabeticalList();
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Namespace & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "namespace", "namespace" );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Class & i_rData )
+{
+ // KORR_FUTURE
+ // Really throw out all anonymous classes from index?
+
+ if ( strncmp(i_rData.LocalName().c_str()+1,"_Anonymous",10) == 0 )
+ return;
+
+ Write_CeIndexEntry( i_rData,
+ F_CK_Text(i_rData.ClassKey()),
+ F_OwnerType(i_rData, Env().Gate()) );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Enum & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "enum", F_OwnerType(i_rData, Env().Gate()) );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Typedef & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "typedef", F_OwnerType(i_rData, Env().Gate()) );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Function & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "function", F_OwnerType(i_rData, Env().Gate()) );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Variable & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "variable", F_OwnerType(i_rData, Env().Gate()) );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::EnumValue & i_rData )
+{
+ Write_CeIndexEntry( i_rData, "enum value", "" );
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Define & i_rData )
+{
+ String sFileName;
+
+ pCurIndex->AddEntry();
+ pCurIndex->Term()
+ >> *new html::Link( Link2CppDefinition(Env(), i_rData) )
+ >> *new html::Bold
+ << i_rData.LocalName();
+ pCurIndex->Term()
+ << " - define";
+ pCurIndex->Def() << " ";
+}
+
+void
+PageMaker_Index::do_Process( const ary::cpp::Macro & i_rData )
+{
+ String sFileName;
+
+ pCurIndex->AddEntry();
+ pCurIndex->Term()
+ >> *new html::Link( Link2CppDefinition(Env(), i_rData) )
+ >> *new html::Bold
+ << i_rData.LocalName();
+ pCurIndex->Term()
+ << " - macro";
+
+ pCurIndex->Def() << " ";
+}
+
+const ary::cpp::Gate *
+PageMaker_Index::inq_Get_ReFinder() const
+{
+ return &Env().Gate();
+}
+
+void
+PageMaker_Index::Write_NavBar()
+{
+ pNavi->Write( CurOut() );
+ CurOut() << new html::HorizontalLine;
+}
+
+
+const String C_sAlphabet(
+"<a href=\"index-1.html\"><B>A</B></a> <a href=\"index-2.html\"><B>B</B></a> <a href=\"index-3.html\"><B>C</B></a> <a href=\"index-4.html\"><B>D</B></a> <a href=\"index-5.html\"><B>E</B></a> "
+"<a href=\"index-6.html\"><B>F</B></a> <a href=\"index-7.html\"><B>G</B></a> <a href=\"index-8.html\"><B>H</B></a> <a href=\"index-9.html\"><B>I</B></a> <a href=\"index-10.html\"><B>J</B></a> "
+"<a href=\"index-11.html\"><B>K</B></a> <a href=\"index-12.html\"><B>L</B></a> <a href=\"index-13.html\"><B>M</B></a> <a href=\"index-14.html\"><B>N</B></a> <a href=\"index-15.html\"><B>O</B></a> "
+"<a href=\"index-16.html\"><B>P</B></a> <a href=\"index-17.html\"><B>Q</B></a> <a href=\"index-18.html\"><B>R</B></a> <a href=\"index-19.html\"><B>S</B></a> <a href=\"index-20.html\"><B>T</B></a> "
+"<a href=\"index-21.html\"><B>U</B></a> <a href=\"index-22.html\"><B>V</B></a> <a href=\"index-23.html\"><B>W</B></a> <a href=\"index-24.html\"><B>X</B></a> <a href=\"index-25.html\"><B>Y</B></a> "
+"<a href=\"index-26.html\"><B>Z</B></a> <a href=\"index-27.html\"><B>_</B></a>" );
+
+void
+PageMaker_Index::Write_TopArea()
+{
+ String sLetter(&c, 1);
+
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), "Global Index", sLetter );
+
+ CurOut() >>* new html::Paragraph
+ << new html::AlignAttr("center")
+ << new xml::XmlCode(C_sAlphabet);
+
+ CurOut() << new html::HorizontalLine;
+}
+
+void
+PageMaker_Index::Write_CompleteAlphabeticalList()
+{
+ std::vector<GlobalId>
+ aThisPagesItems;
+ const ary::cpp::Gate &
+ rGate = Env().Gate();
+
+ static char sBegin[] = "X";
+ static char sEnd[] = "Y";
+
+ switch ( c )
+ {
+ case 'Z': sBegin[0] = 'Z';
+ sEnd[0] = '_';
+ break;
+ case '_': sBegin[0] = '_';
+ sEnd[0] = '0';
+ break;
+ default: sBegin[0] = c;
+ sEnd[0] = char(c + 1);
+ break;
+ }
+
+ uintt
+ nCount = rGate.Get_AlphabeticalList( aThisPagesItems, sBegin, sEnd );
+ if (nCount > 0 )
+ {
+ adcdisp::IndexList
+ aIndex(CurOut());
+ pCurIndex = &aIndex;
+
+ std::vector<GlobalId>::const_iterator itEnd = aThisPagesItems.end();
+ for ( std::vector<GlobalId>::const_iterator it = aThisPagesItems.begin();
+ it != itEnd;
+ ++it )
+ {
+ const ary::Entity *
+ pRe = rGate.Search_Entity( *it );
+ if ( pRe != 0 )
+ pRe->Accept(*this);
+ } // end for
+
+ pCurIndex = 0;
+ } // endif (nCount > 0)
+}
+
+void
+PageMaker_Index::Write_CeIndexEntry( const ary::cpp::CodeEntity &
+ i_rCe,
+ const char * i_sType,
+ const char * i_sOwnerType )
+{
+ if ( Ce_IsInternal(i_rCe) )
+ return;
+
+ static csv::StreamStr aQualification(500);
+
+ const ary::cpp::CodeEntity &
+ rOwner = Env().Gate().Ces().Find_Ce(i_rCe.Owner());
+
+ pCurIndex->AddEntry();
+ pCurIndex->Term()
+ >> *new html::Link( Link2Ce(Env(), i_rCe) )
+ >> *new html::Bold
+ << i_rCe.LocalName();
+ pCurIndex->Term()
+ << " - "
+ << i_sType;
+
+ if ( rOwner.Owner().IsValid() )
+ {
+ aQualification.seekp(0);
+ Env().Gate().Ces().Get_QualifiedName( aQualification,
+ rOwner.LocalName(),
+ rOwner.Owner() );
+
+ pCurIndex->Term()
+ << " in "
+ << i_sOwnerType
+ << " "
+ << aQualification.c_str();
+ }
+
+ pCurIndex->Def() << " ";
+}
diff --git a/autodoc/source/display/html/pm_index.hxx b/autodoc/source/display/html/pm_index.hxx
new file mode 100644
index 000000000000..d2dcf8ed422c
--- /dev/null
+++ b/autodoc/source/display/html/pm_index.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_INDEX_HXX
+#define ADC_DISPLAY_HTML_PM_INDEX_HXX
+
+// BASE CLASSES
+#include "pm_base.hxx"
+#include <ary/ary_disp.hxx>
+#include <cosv/tpl/processor.hxx>
+// USED SERVICES
+namespace adcdisp
+{
+ class IndexList;
+}
+namespace ary
+{
+ namespace cpp
+ {
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+ class EnumValue;
+ class Define;
+ class Macro;
+ }
+}
+
+class NavigationBar;
+
+
+
+
+class PageMaker_Index : public SpecializedPageMaker,
+ public ary::Display,
+ public csv::ConstProcessor<ary::cpp::Namespace>,
+ public csv::ConstProcessor<ary::cpp::Class>,
+ public csv::ConstProcessor<ary::cpp::Enum>,
+ public csv::ConstProcessor<ary::cpp::Typedef>,
+ public csv::ConstProcessor<ary::cpp::Function>,
+ public csv::ConstProcessor<ary::cpp::Variable>,
+ public csv::ConstProcessor<ary::cpp::EnumValue>,
+ public csv::ConstProcessor<ary::cpp::Define>,
+ public csv::ConstProcessor<ary::cpp::Macro>
+{
+ public:
+ PageMaker_Index(
+ PageDisplay & io_rPage,
+ char i_c );
+
+ virtual ~PageMaker_Index();
+
+ virtual void MakePage();
+
+ private:
+ // Interface csv::ConstProcessor<>
+ virtual void do_Process(
+ const ary::cpp::Namespace &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Class &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Enum &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Typedef &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Function &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Variable &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::EnumValue &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Define &
+ i_rData );
+ virtual void do_Process(
+ const ary::cpp::Macro &
+ i_rData );
+ // Interface ary::cpp::Display:
+ virtual const ary::cpp::Gate *
+ inq_Get_ReFinder() const;
+ // Locals
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_CompleteAlphabeticalList();
+
+ void Write_CeIndexEntry(
+ const ary::cpp::CodeEntity &
+ i_rCe,
+ const char * i_sType,
+ const char * i_sOwnerType );
+
+ // DATA
+ Dyn<NavigationBar> pNavi;
+ char c;
+ adcdisp::IndexList *
+ pCurIndex;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/html/pm_namsp.cxx b/autodoc/source/display/html/pm_namsp.cxx
new file mode 100644
index 000000000000..ea13c237919f
--- /dev/null
+++ b/autodoc/source/display/html/pm_namsp.cxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_namsp.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include "hd_chlst.hxx"
+#include "hd_docu.hxx"
+#include "html_kit.hxx"
+#include "navibar.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+using csi::html::HorizontalLine;
+using csi::html::Link;
+using csi::html::Table;
+using csi::html::TableRow;
+using csi::html::TableCell;
+
+
+
+PageMaker_Namespace::PageMaker_Namespace( PageDisplay & io_rPage )
+ : SpecializedPageMaker(io_rPage),
+ pMe( io_rPage.Env().CurNamespace() ),
+ pChildDisplay( new ChildList_Display(io_rPage.Env()) ),
+ pNavi(0)
+{
+ csv_assert( pMe != 0 );
+}
+
+PageMaker_Namespace::~PageMaker_Namespace()
+{
+}
+
+void
+PageMaker_Namespace::MakePage()
+{
+ pNavi = new NavigationBar( Env(), Me() );
+
+ Write_NavBar();
+ Write_TopArea();
+ Write_DocuArea();
+
+ pNavi->MakeSubRow("");
+ Write_ChildList( ary::cpp::Namespace::SLOT_SubNamespaces, C_sTitle_SubNamespaces, C_sLabel_SubNamespaces );
+
+ Write_ChildLists_forClasses( C_sTitle_Classes,
+ C_sLabel_Classes,
+ ary::cpp::CK_class );
+ Write_ChildLists_forClasses( C_sTitle_Structs,
+ C_sLabel_Structs,
+ ary::cpp::CK_struct );
+ Write_ChildLists_forClasses( C_sTitle_Unions,
+ C_sLabel_Unions,
+ ary::cpp::CK_union );
+
+ Write_ChildList( ary::cpp::Namespace::SLOT_Enums, C_sTitle_Enums, C_sLabel_Enums );
+ Write_ChildList( ary::cpp::Namespace::SLOT_Typedefs, C_sTitle_Typedefs, C_sLabel_Typedefs );
+ Write_ChildList( ary::cpp::Namespace::SLOT_Operations, C_sTitle_Operations, C_sLabel_Operations );
+ Write_ChildList( ary::cpp::Namespace::SLOT_Constants, C_sTitle_Constants, C_sLabel_Constants );
+ Write_ChildList( ary::cpp::Namespace::SLOT_Variables, C_sTitle_Variables, C_sLabel_Variables );
+
+ pNavi->Write_SubRows();
+}
+
+void
+PageMaker_Namespace::Write_NavBar()
+{
+ pNavi->Write( CurOut() );
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Namespace::Write_TopArea()
+{
+ Page().Write_NameChainWithLinks( Me() );
+
+ adcdisp::PageTitle_Std fTitle;
+ xml::Element & rH3 = fTitle( CurOut() );
+ if ( Env().CurNamespace()->Owner().IsValid() )
+ {
+ rH3 << C_sHFTypeTitle_Namespace
+ << " "
+ << Env().CurNamespace()->LocalName();
+ }
+ else
+ {
+ rH3 << C_sHFTitle_GlobalNamespaceCpp;
+ }
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Namespace::Write_DocuArea()
+{
+ Docu_Display aDocuShow( Env() );
+
+ aDocuShow.Assign_Out(CurOut());
+ aDocuShow.Process(Me().Docu());
+ aDocuShow.Unassign_Out();
+
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Namespace::Write_ChildList( ary::SlotAccessId i_nSlot,
+ const char * i_sListTitle,
+ const char * i_sLabel )
+
+{
+ bool bChildrenExist = false;
+ ChildList_Display::Area_Result
+ aResult( bChildrenExist, CurOut() );
+
+ pChildDisplay->Run_Simple( aResult,
+ i_nSlot,
+ i_sLabel,
+ i_sListTitle );
+
+ pNavi->AddItem(i_sListTitle, i_sLabel, bChildrenExist);
+ if (bChildrenExist)
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Namespace::Write_ChildLists_forClasses( const char * i_sListTitle,
+ const char * i_sLabel,
+ ary::cpp::E_ClassKey i_eFilter )
+
+{
+ bool bChildrenExist = false;
+ ChildList_Display::Area_Result
+ aResult( bChildrenExist, CurOut() );
+
+ pChildDisplay->Run_GlobalClasses( aResult,
+ ary::cpp::Namespace::SLOT_Classes,
+ i_sLabel,
+ i_sListTitle,
+ i_eFilter );
+
+ pNavi->AddItem(i_sListTitle, i_sLabel, bChildrenExist);
+ if ( bChildrenExist )
+ CurOut() << new HorizontalLine;
+}
diff --git a/autodoc/source/display/html/pm_namsp.hxx b/autodoc/source/display/html/pm_namsp.hxx
new file mode 100644
index 000000000000..11501e4dc359
--- /dev/null
+++ b/autodoc/source/display/html/pm_namsp.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_NAMSP_HXX
+#define ADC_DISPLAY_HTML_PM_NAMSP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "pm_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class ChildList_Display;
+class NavigationBar;
+
+class PageMaker_Namespace : public SpecializedPageMaker
+{
+ public:
+ PageMaker_Namespace(
+ PageDisplay & io_rPage );
+
+ virtual ~PageMaker_Namespace();
+
+ virtual void MakePage();
+
+ private:
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+ virtual void Write_ChildList(
+ ary::SlotAccessId i_nSlot,
+ const char * i_nListTitle,
+ const char * i_nLabel );
+ void Write_ChildLists_forClasses(
+ const char * i_sListTitle,
+ const char * i_sLabel,
+ ary::cpp::E_ClassKey i_eFilter );
+
+ const ary::cpp::Namespace &
+ Me() const { return *pMe; }
+ // DATA
+ const ary::cpp::Namespace *
+ pMe;
+ Dyn<ChildList_Display>
+ pChildDisplay;
+ Dyn<NavigationBar> pNavi;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/pm_start.cxx b/autodoc/source/display/html/pm_start.cxx
new file mode 100644
index 000000000000..c5ff38f32eba
--- /dev/null
+++ b/autodoc/source/display/html/pm_start.cxx
@@ -0,0 +1,137 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pm_start.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary.hxx>
+#include "hd_chlst.hxx"
+#include "hd_docu.hxx"
+#include "navibar.hxx"
+#include "html_kit.hxx"
+#include "opageenv.hxx"
+#include "pagemake.hxx"
+#include "strconst.hxx"
+
+
+using namespace csi;
+using csi::html::Paragraph;
+using csi::html::HorizontalLine;
+using csi::html::AlignAttr;
+using csi::html::Bold;
+using csi::html::Link;
+using csi::html::Sbr;
+using csi::html::LineBreak;
+
+
+
+PageMaker_Overview::PageMaker_Overview( PageDisplay & io_rPage )
+ : SpecializedPageMaker(io_rPage),
+ pNavi(0)
+{
+}
+
+PageMaker_Overview::~PageMaker_Overview()
+{
+}
+
+void
+PageMaker_Overview::MakePage()
+{
+ pNavi = new NavigationBar( Env(), NavigationBar::LOC_Overview );
+ Write_NavBar();
+
+ Write_TopArea();
+ Write_DocuArea();
+}
+
+void
+PageMaker_Overview::Write_NavBar()
+{
+ pNavi->Write( CurOut() );
+ CurOut() << new HorizontalLine;
+}
+
+void
+PageMaker_Overview::Write_TopArea()
+{
+ adcdisp::PageTitle_Std fTitle;
+ fTitle( CurOut(), Env().RepositoryTitle(), "" );
+
+ CurOut()
+ >> *new Paragraph
+ << new html::StyleAttr("font-size:14pt;")
+ << "This is a reference documentation for the C++ source code."
+ << new LineBreak
+ << new LineBreak
+ << "Points to start:";
+
+ html::SimpleList &
+ rList = *new html::SimpleList;
+ CurOut() >> rList;
+
+ html::ListItem & rNamedObjsItem =
+ rList.AddItem();
+
+ StreamLock sNspDir(50);
+ rNamedObjsItem
+ << new html::StyleAttr("font-size:14pt;")
+ >> *new Link( sNspDir() << C_sDIR_NamespacesCpp
+ << "/"
+ << C_sHFN_Namespace
+ << c_str )
+ >> *new Bold
+ << "Named Objects";
+ rNamedObjsItem << " (classes, functions, namespaces, etc.)"
+ << new html::LineBreak;
+ rList.AddItem()
+ << new html::StyleAttr("font-size:14pt;")
+ >> *new Link( "def-all.html" )
+ >> *new Bold
+ << "Defines and Macros"
+ << new html::LineBreak;
+ StreamLock sIndexDir(50);
+ rList.AddItem()
+ << new html::StyleAttr("font-size:14pt;")
+ >> *new Link( sIndexDir() << C_sDIR_Index
+ << "/index-1.html"
+ << c_str )
+ >> *new Bold
+ << "Global Index"
+ << new html::LineBreak;
+}
+
+void
+PageMaker_Overview::Write_DocuArea()
+{
+ CurOut() << new HorizontalLine;
+}
+
+
+
diff --git a/autodoc/source/display/html/pm_start.hxx b/autodoc/source/display/html/pm_start.hxx
new file mode 100644
index 000000000000..96fe9d815efe
--- /dev/null
+++ b/autodoc/source/display/html/pm_start.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PM_START_HXX
+#define ADC_DISPLAY_HTML_PM_START_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "pm_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class NavigationBar;
+
+class PageMaker_Overview : public SpecializedPageMaker
+{
+ public:
+ PageMaker_Overview(
+ PageDisplay & io_rPage );
+
+ virtual ~PageMaker_Overview();
+
+ virtual void MakePage();
+
+ private:
+ virtual void Write_NavBar();
+ virtual void Write_TopArea();
+ virtual void Write_DocuArea();
+
+ // DATA
+ Dyn<NavigationBar> pNavi;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/protarea.cxx b/autodoc/source/display/html/protarea.cxx
new file mode 100644
index 000000000000..8c54212c29f4
--- /dev/null
+++ b/autodoc/source/display/html/protarea.cxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "protarea.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include "hdimpl.hxx"
+
+
+inline UINT8
+ProtectionArea::Index( ary::cpp::E_ClassKey i_eClassKey ) const
+{
+ return i_eClassKey == ary::cpp::CK_class
+ ? 0
+ : i_eClassKey == ary::cpp::CK_struct
+ ? 1
+ : 2;
+}
+
+
+
+ProtectionArea::ProtectionArea( const char * i_sLabel,
+ const char * i_sTitle )
+ : pSglTable( new S_Slot_Table(i_sTitle) ),
+ aClassesTables(),
+ sLabel(i_sLabel)
+{
+}
+
+ProtectionArea::~ProtectionArea()
+{
+
+}
+
+csi::html::Table &
+ProtectionArea::GetTable()
+{
+ csv_assert(pSglTable);
+
+ return pSglTable->GetTable();
+}
+
+csi::html::Table &
+ProtectionArea::GetTable( ary::cpp::E_ClassKey i_eClassKey )
+{
+ csv_assert(aClassesTables[Index(i_eClassKey)]);
+ return aClassesTables[Index(i_eClassKey)]->GetTable();
+}
+
+DYN csi::html::Table *
+ProtectionArea::ReleaseTable()
+{
+ csv_assert(pSglTable);
+ return pSglTable->ReleaseTable();
+}
+
+DYN csi::html::Table *
+ProtectionArea::ReleaseTable( ary::cpp::E_ClassKey i_eClassKey )
+{
+ csv_assert(aClassesTables[Index(i_eClassKey)]);
+ return aClassesTables[Index(i_eClassKey)]->ReleaseTable();
+}
+
+const char *
+ProtectionArea::Label() const
+{
+ return sLabel;
+}
+
+
+bool
+ProtectionArea::WasUsed_Area() const
+{
+ if ( pSglTable )
+ {
+ return pSglTable->WasUsed();
+ }
+
+ typedef const Dyn<ProtectionArea::S_Slot_Table> cdyntab;
+
+ // Workaround a maybe compiler bug in Solaris5-CC ?
+ // should normally work without the cast,
+ // because that is exactly the genuine type, given:
+ return static_cast< cdyntab& >(aClassesTables[0])->WasUsed()
+ OR static_cast< cdyntab& >(aClassesTables[1])->WasUsed()
+ OR static_cast< cdyntab& >(aClassesTables[2])->WasUsed();
+}
+
+//******************* S_Slot_Table **********************//
+
+ProtectionArea::
+S_Slot_Table::S_Slot_Table(const char * i_sTitle)
+ : sTableTitle(i_sTitle)
+{
+}
+
+ProtectionArea::
+S_Slot_Table::~S_Slot_Table()
+{
+}
+
+csi::html::Table &
+ProtectionArea::
+S_Slot_Table::GetTable()
+{
+ return pTable
+ ? *pTable
+ : *( pTable = &Create_ChildListTable(sTableTitle) );
+}
+
+
+
diff --git a/autodoc/source/display/html/protarea.hxx b/autodoc/source/display/html/protarea.hxx
new file mode 100644
index 000000000000..e09904fbc85e
--- /dev/null
+++ b/autodoc/source/display/html/protarea.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_PROTAREA_HXX
+#define ADC_DISPLAY_HTML_PROTAREA_HXX
+
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace csi
+{
+namespace html
+{
+ class Table;
+}
+}
+
+
+
+
+class ProtectionArea
+{
+ public:
+ ProtectionArea(
+ const char * i_sLabel,
+ const char * i_sTitle );
+ ~ProtectionArea();
+
+ csi::html::Table & GetTable();
+ csi::html::Table & GetTable(
+ ary::cpp::E_ClassKey
+ i_eClassKey );
+ DYN csi::html::Table * ReleaseTable();
+ DYN csi::html::Table * ReleaseTable(
+ ary::cpp::E_ClassKey
+ i_eClassKey );
+ const char * Label() const;
+
+ int Size() const { return pSglTable ? 1 : 3; }
+
+ bool WasUsed_Area() const;
+ private:
+ struct S_Slot_Table
+ {
+ const char * sTableTitle;
+ Dyn< csi::html::Table >
+ pTable;
+
+ S_Slot_Table(
+ const char * i_sTitle );
+ ~S_Slot_Table();
+ csi::html::Table & GetTable();
+ DYN csi::html::Table *
+ ReleaseTable() { return pTable.Release(); }
+ bool WasUsed() const { return pTable; }
+ };
+
+ UINT8 Index(
+ ary::cpp::E_ClassKey
+ i_eClassKey ) const;
+ // DATA
+ Dyn<S_Slot_Table> pSglTable;
+ Dyn<S_Slot_Table> aClassesTables[3];
+ const char * sLabel;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/html/strconst.hxx b/autodoc/source/display/html/strconst.hxx
new file mode 100644
index 000000000000..a9e5eaad2101
--- /dev/null
+++ b/autodoc/source/display/html/strconst.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_STRCONST_HXX
+#define ADC_DISPLAY_HTML_STRCONST_HXX
+
+
+const char * const C_sDIR_NamespacesCpp = "names";
+const char * const C_sDIR_Index = "index-files"; // Convention recognised by Javadoc
+
+const char * const C_sPath_Index = "index-files/index-1.html"; // Convention recognised by Javadoc
+
+const char * const C_sHFN_Css = "cpp.css";
+const char * const C_sHFN_Overview = "index.html";
+const char * const C_sHFN_Help = "help.html";
+
+const char * const C_sHFN_Namespace = "index.html";
+
+const char * const C_sTitle_SubNamespaces = "Nested Namespaces";
+const char * const C_sTitle_Classes = "Classes";
+const char * const C_sTitle_Structs = "Structs";
+const char * const C_sTitle_Unions = "Unions";
+const char * const C_sTitle_Enums = "Enums";
+const char * const C_sTitle_Typedefs = "Typedefs";
+const char * const C_sTitle_Operations = "Functions";
+const char * const C_sTitle_Constants = "Constants";
+const char * const C_sTitle_Variables = "Variables";
+const char * const C_sTitle_EnumValues = "Values";
+
+const char * const C_sLabel_SubNamespaces = "subnsps";
+const char * const C_sLabel_Classes = "classes";
+const char * const C_sLabel_Structs = "structs";
+const char * const C_sLabel_Unions = "unions";
+const char * const C_sLabel_Enums = "enums";
+const char * const C_sLabel_Typedefs = "tydefs";
+const char * const C_sLabel_Operations = "ops";
+const char * const C_sLabel_Constants = "consts";
+const char * const C_sLabel_Variables = "vars";
+const char * const C_sLabel_EnumValues = "envals";
+
+const char * const C_sHFTitle_Overview = "C++ Reference Documentation Overview";
+const char * const C_sHFTitle_Help = "How This Reference Document Is Organized";
+
+const char * const C_sHFTitle_GlobalNamespaceCpp = "Global Namespace in C++";
+const char * const C_sHFTypeTitle_Namespace = "namespace";
+const char * const C_sHFTypeTitle_Class = "class";
+const char * const C_sHFTypeTitle_Struct = "struct";
+const char * const C_sHFTypeTitle_Union = "union";
+const char * const C_sHFTypeTitle_Enum = "enum";
+const char * const C_sHFTypeTitle_Typedef = "typedef";
+
+
+#endif
+
diff --git a/autodoc/source/display/idl/hfi_constgroup.cxx b/autodoc/source/display/idl/hfi_constgroup.cxx
new file mode 100644
index 000000000000..accf58cf290e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_constgroup.cxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_constgroup.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_constgroup.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Constants("constants group");
+
+
+namespace
+{
+
+const String
+ C_sList_Constants("Constants");
+const String
+ C_sList_Constants_Label("Constants");
+const String
+ C_sList_ConstantDetails("Constants' Details");
+const String
+ C_sList_ConstantDetails_Label("ConstantDetails");
+
+enum E_SubListIndices
+{
+ sli_ConstantsSummary = 0,
+ sli_ConstantDetails = 1
+};
+
+
+} // anonymous namespace
+
+
+
+HF_IdlConstGroup::HF_IdlConstGroup( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlConstGroup::~HF_IdlConstGroup()
+{
+}
+
+void
+HF_IdlConstGroup::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Constants, i_ce);
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpConstants;
+ ary::idl::ifc_constgroup::attr::Get_Constants(dpConstants, i_ce);
+
+ if ( (*dpConstants).operator bool() )
+ {
+ produce_Members( *dpConstants,
+ C_sList_Constants,
+ C_sList_Constants_Label,
+ C_sList_ConstantDetails,
+ C_sList_ConstantDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ConstantsSummary);
+ pNaviSubRow->SwitchOn(sli_ConstantDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HF_NaviSubRow &
+HF_IdlConstGroup::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce,true); // true := avoid link to Use-page.
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Constants, C_sList_Constants_Label, false);
+ ret.AddItem(C_sList_ConstantDetails, C_sList_ConstantDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlConstGroup::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ HF_IdlConstant
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
+
diff --git a/autodoc/source/display/idl/hfi_constgroup.hxx b/autodoc/source/display/idl/hfi_constgroup.hxx
new file mode 100644
index 000000000000..9719d6c131cf
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_constgroup.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_CONSTGROUP_HXX
+#define ADC_DISPLAY_HFI_CONSTGROUP_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_IdlConstGroup : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlConstGroup(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlConstGroup();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Constants;
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_doc.cxx b/autodoc/source/display/idl/hfi_doc.cxx
new file mode 100644
index 000000000000..5647ecd753f0
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_doc.cxx
@@ -0,0 +1,191 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_doc.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary_i/d_token.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include "hfi_tag.hxx"
+#include "hi_ary.hxx"
+
+
+
+
+HF_IdlDocu::HF_IdlDocu( Environment & io_rEnv,
+ HF_DocEntryList & o_rOut )
+ : HtmlFactory_Idl( io_rEnv, &o_rOut.CurOut() ),
+ rOut(o_rOut)
+{
+}
+
+HF_IdlDocu::~HF_IdlDocu()
+{
+}
+
+void
+HF_IdlDocu::Produce_fromCodeEntity( const client & i_ce ) const
+{
+ const ce_info *
+ i_pDocu = Get_IdlDocu(i_ce.Docu());
+ if (i_pDocu != 0)
+ Produce_byDocuAndScope(*i_pDocu, &i_ce, i_ce);
+}
+
+void
+HF_IdlDocu::Produce_fromReference( const ce_info & i_rDocuForReference,
+ const client & i_rScopeGivingCe ) const
+{
+ Produce_byDocuAndScope(i_rDocuForReference, 0, i_rScopeGivingCe );
+}
+
+void
+HF_IdlDocu::Produce_byDocuAndScope( const ce_info & i_rDocu,
+ const client * i_pClient,
+ const client & i_rScopeGivingCe ) const
+{
+ bool bShort = NOT i_rDocu.Short().IsEmpty();
+ bool bDescr = NOT i_rDocu.Description().IsEmpty();
+
+ if ( i_rDocu.IsDeprecated()
+ OR (
+ (i_pClient != 0 ? i_pClient->SightLevel() == ary::idl::sl_File : false)
+ AND NOT i_rDocu.IsPublished()
+ )
+ OR i_rDocu.IsOptional() )
+ { // any usage restriction
+ rOut.Produce_Term("Usage Restrictions");
+
+ if ( i_rDocu.IsDeprecated() )
+ rOut.Produce_Definition() >> *new Html::Italic << "deprecated";
+ if ( (i_pClient != 0 ? i_pClient->SightLevel() == ary::idl::sl_File : false)
+ AND NOT i_rDocu.IsPublished() )
+ rOut.Produce_Definition() >> *new Html::Italic << "not published";
+ if ( i_rDocu.IsOptional() )
+ rOut.Produce_Definition() >> *new Html::Italic << "optional";
+
+ if ( i_rDocu.IsDeprecated() AND
+ // KORR_FUTURE
+ // Workaround, because DocuTex2::IsEmpty() does not
+ // calculate whitespace tokens only as empty.
+ i_rDocu.DeprecatedText().Tokens().size() > 1 )
+ {
+ rOut.Produce_Term("Deprecation Info");
+
+ HF_IdlDocuTextDisplay
+ aDescription( Env(), 0, i_rScopeGivingCe);
+ aDescription.Out().Enter( rOut.Produce_Definition() );
+ i_rDocu.DeprecatedText().DisplayAt( aDescription );
+ aDescription.Out().Leave();
+ }
+ } // end if (<any usage restriction>)
+
+ if ( bShort OR bDescr )
+ {
+ rOut.Produce_Term("Description");
+ HF_IdlDocuTextDisplay
+ aDescription( Env(), 0, i_rScopeGivingCe);
+ if (bShort)
+ {
+ aDescription.Out().Enter( rOut.Produce_Definition() );
+ i_rDocu.Short().DisplayAt( aDescription );
+ aDescription.Out().Leave();
+ }
+ if (bDescr)
+ {
+ aDescription.Out().Enter( rOut.Produce_Definition() );
+ i_rDocu.Description().DisplayAt( aDescription );
+ aDescription.Out().Leave();
+ }
+ }
+
+ std::vector< csi::dsapi::DT_SeeAlsoAtTag* >
+ aSeeAlsosWithoutText;
+ std::vector< csi::dsapi::DT_SeeAlsoAtTag* >
+ aSeeAlsosWithText;
+
+ for ( std::vector< ary::inf::AtTag2* >::const_iterator
+ iter = i_rDocu.Tags().begin();
+ iter != i_rDocu.Tags().end();
+ ++iter )
+ {
+ csi::dsapi::DT_SeeAlsoAtTag*
+ pSeeAlso = dynamic_cast< csi::dsapi::DT_SeeAlsoAtTag * >(*iter);
+ if (pSeeAlso != 0 )
+ {
+ if ( pSeeAlso->Text().IsEmpty() )
+ {
+ aSeeAlsosWithoutText.push_back(pSeeAlso);
+ }
+ else
+ {
+ aSeeAlsosWithText.push_back(pSeeAlso);
+ }
+ continue;
+ }
+
+ if ( strlen( (*iter)->Title() ) > 0 )
+ {
+ HF_IdlTag
+ aTag(Env(), i_rScopeGivingCe);
+ Xml::Element &
+ rTerm = rOut.Produce_Term();
+ aTag.Produce_byData( rTerm,
+ rOut.Produce_Definition(),
+ *(*iter) );
+ }
+ } // end for
+
+ if (aSeeAlsosWithoutText.size() > 0)
+ {
+ HF_IdlTag
+ aSeeAlsoTag(Env(), i_rScopeGivingCe);
+ Xml::Element &
+ rTerm = rOut.Produce_Term();
+ aSeeAlsoTag.Produce_byData( rTerm,
+ rOut.Produce_Definition(),
+ aSeeAlsosWithoutText );
+ }
+
+ for ( std::vector< csi::dsapi::DT_SeeAlsoAtTag* >::const_iterator
+ itSee2 = aSeeAlsosWithText.begin();
+ itSee2 != aSeeAlsosWithText.end();
+ ++itSee2 )
+ {
+ HF_IdlTag
+ aTag(Env(), i_rScopeGivingCe);
+ Xml::Element &
+ rTerm = rOut.Produce_Term();
+ aTag.Produce_byData( rTerm,
+ rOut.Produce_Definition(),
+ *(*itSee2) );
+ } // end for
+}
diff --git a/autodoc/source/display/idl/hfi_doc.hxx b/autodoc/source/display/idl/hfi_doc.hxx
new file mode 100644
index 000000000000..424d01cbc5e2
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_doc.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_DOC_HXX
+#define ADC_DISPLAY_HFI_DOC_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_DocEntryList;
+
+
+class HF_IdlDocu : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlDocu(
+ Environment & io_rEnv,
+ HF_DocEntryList & o_rOut );
+ virtual ~HF_IdlDocu();
+
+
+ /** Produces documentation by the CodeInfo accompanying
+ ->i_ce.
+ */
+ void Produce_fromCodeEntity(
+ const client & i_ce ) const;
+
+ /** Produces documentation by the CodeInfo accompanying
+ a link or reference to a CodeEntity.
+
+ @param i_rScopeGivingCe
+ Gives the scope from which links are to be calculated.
+ */
+ void Produce_fromReference(
+ const ce_info & i_rDocuForReference,
+ const client & i_rScopeGivingCe ) const;
+
+ private:
+ // Locals
+ /** Produces documentation.
+
+ @param i_rScopeGivingCe
+ Gives the scope from which links are to be calculated.
+ */
+ void Produce_byDocuAndScope(
+ const ce_info & i_rDocu,
+ const client * i_pClient, /// May be 0.
+ const client & i_rScopeGivingCe ) const;
+
+ // DATA
+ HF_DocEntryList & rOut;
+};
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_enum.cxx b/autodoc/source/display/idl/hfi_enum.cxx
new file mode 100644
index 000000000000..6532242ebc3c
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_enum.cxx
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_enum.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_enum.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Enum("enum");
+
+namespace
+{
+
+const String
+ C_sList_Values("Values");
+const String
+ C_sList_Values_Label("Values");
+const String
+ C_sList_ValueDetails("Values' Details");
+const String
+ C_sList_ValueDetails_Label("ValueDetails");
+
+enum E_SubListIndices
+{
+ sli_ValuesSummary = 0,
+ sli_ValueDetails = 1
+};
+
+} // anonymous namespace
+
+HF_IdlEnum::HF_IdlEnum( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlEnum::~HF_IdlEnum()
+{
+}
+
+void
+HF_IdlEnum::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Enum, i_ce);
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpValues;
+ ary::idl::ifc_enum::attr::Get_Values(dpValues, i_ce);
+ if ( (*dpValues).operator bool() )
+ {
+ produce_Members( *dpValues,
+ C_sList_Values,
+ C_sList_Values_Label,
+ C_sList_ValueDetails,
+ C_sList_ValueDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ValuesSummary);
+ pNaviSubRow->SwitchOn(sli_ValueDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HF_NaviSubRow &
+HF_IdlEnum::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Values, C_sList_Values_Label, false);
+ ret.AddItem(C_sList_ValueDetails, C_sList_ValueDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlEnum::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce) const
+{
+ HF_IdlEnumValue
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
diff --git a/autodoc/source/display/idl/hfi_enum.hxx b/autodoc/source/display/idl/hfi_enum.hxx
new file mode 100644
index 000000000000..e04827374a9e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_enum.hxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_ENUM_HXX
+#define ADC_DISPLAY_HFI_ENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlEnum : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlEnum(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlEnum();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Enum;
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_globalindex.cxx b/autodoc/source/display/idl/hfi_globalindex.cxx
new file mode 100644
index 000000000000..0e974d61fa42
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_globalindex.cxx
@@ -0,0 +1,275 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_globalindex.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/idl/i_module.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+namespace
+{
+
+/**
+*/
+enum E_Types
+{
+ t_service = 0,
+ t_interface = 1,
+ t_struct = 2,
+ t_exception = 3,
+ t_enum = 4,
+ t_typedef = 5,
+ t_constantsgroup = 6,
+ t_property = 7,
+ t_function = 8,
+ t_structelement = 9,
+ t_enumvalue = 10,
+ t_constant = 11,
+ t_module = 12,
+ t_singleton = 13,
+ t_attribute = 14,
+ t_siservice = 15,
+ t_sisingleton = 16,
+ t_MAX
+};
+
+String G_sDummy;
+
+
+/* RC-Ids for IDL types (see reposy.cxx):
+
+ Module 2000
+ Interface 2001
+ Function 2002
+ Service 2003
+ Property 2004
+
+ Enum 2005
+ EnumValue 2006
+ Typedef 2007
+ Struct 2008
+ StructElement 2009
+
+ Exception 2010
+ ConstantGroup 2011
+ Constant 2012
+ Singleton 2013
+ Attribute 2014
+ SglIfcService 2015
+ SglIfcSingleton 2016
+*/
+const int C_nNumberOfIdlTypes = 17;
+const char * C_sTypeNames[C_nNumberOfIdlTypes] =
+ { "module ", "interface ", "function ", "service ", "property ",
+ "enum ", "value ", "typedef ", "struct ", "field ",
+ "exception ", "constants group ", "constant ","singleton ", "attribute ",
+ "service", "singleton"
+ };
+const char * C_sOwnerNames[C_nNumberOfIdlTypes] =
+ { "module ", "module ", "interface ", "module ", "service ",
+ "module ", "enum ", "module ", "module ", "", // could be struct or exception
+ "module ", "module ", "constants group ", "module ", "interface ",
+ "module", "module"
+ };
+const intt C_nNamesArrayOffset = intt(ary::idl::Module::class_id);
+const int C_nIxField = 9;
+
+
+
+
+const char C_cAlphabet[] =
+"<a class=\"inverse\" href=\"index-1.html\"><B>A</B></a> <a class=\"inverse\" href=\"index-2.html\"><B>B</B></a> <a class=\"inverse\" href=\"index-3.html\"><B>C</B></a> <a class=\"inverse\" href=\"index-4.html\"><B>D</B></a> <a class=\"inverse\" href=\"index-5.html\"><B>E</B></a> "
+"<a class=\"inverse\" href=\"index-6.html\"><B>F</B></a> <a class=\"inverse\" href=\"index-7.html\"><B>G</B></a> <a class=\"inverse\" href=\"index-8.html\"><B>H</B></a> <a class=\"inverse\" href=\"index-9.html\"><B>I</B></a> <a class=\"inverse\" href=\"index-10.html\"><B>J</B></a> "
+"<a class=\"inverse\" href=\"index-11.html\"><B>K</B></a> <a class=\"inverse\" href=\"index-12.html\"><B>L</B></a> <a class=\"inverse\" href=\"index-13.html\"><B>M</B></a> <a class=\"inverse\" href=\"index-14.html\"><B>N</B></a> <a class=\"inverse\" href=\"index-15.html\"><B>O</B></a> "
+"<a class=\"inverse\" href=\"index-16.html\"><B>P</B></a> <a class=\"inverse\" href=\"index-17.html\"><B>Q</B></a> <a class=\"inverse\" href=\"index-18.html\"><B>R</B></a> <a class=\"inverse\" href=\"index-19.html\"><B>S</B></a> <a class=\"inverse\" href=\"index-20.html\"><B>T</B></a> "
+"<a class=\"inverse\" href=\"index-21.html\"><B>U</B></a> <a class=\"inverse\" href=\"index-22.html\"><B>V</B></a> <a class=\"inverse\" href=\"index-23.html\"><B>W</B></a> <a class=\"inverse\" href=\"index-24.html\"><B>X</B></a> <a class=\"inverse\" href=\"index-25.html\"><B>Y</B></a> "
+"<a class=\"inverse\" href=\"index-26.html\"><B>Z</B></a>";
+
+
+
+HF_IdlGlobalIndex::PageData G_PageData;
+
+} // end anonymous namespace
+
+
+inline void
+HF_IdlGlobalIndex::write_EntryItself( Xml::Element & o_destination,
+ const ary::idl::CodeEntity & i_ce,
+ const HF_IdlTypeText & i_typeLinkWriter ) const
+{
+ i_typeLinkWriter.Produce_IndexLink(o_destination, i_ce);
+ o_destination << " - ";
+}
+
+
+HF_IdlGlobalIndex::HF_IdlGlobalIndex( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlGlobalIndex::~HF_IdlGlobalIndex()
+{
+}
+
+void
+HF_IdlGlobalIndex::Produce_Page(ary::idl::alphabetical_index::E_Letter i_letter) const
+{
+ make_Navibar();
+
+ HF_TitleTable
+ aTitle(CurOut());
+ StreamLock sl(100);
+ aTitle.Produce_Title( sl()
+ << "Global Index "
+ << ( i_letter != ary::idl::alphabetical_index::non_alpha
+ ? char(int(i_letter)-'a'+'A')
+ : '_' )
+ << c_str );
+
+ // Letters Index
+ aTitle.Add_Row()
+ << new Xml::XmlCode(
+ "<p align=\"center\"><a href=\"index-1.html\"><b>A</b></a> <a href=\"index-2.html\"><b>B</b></a> <a href=\"index-3.html\"><b>C</b></a> <a href=\"index-4.html\"><b>D</b></a> <a href=\"index-5.html\"><b>E</b></a> <a href=\"index-6.html\"><b>F</b></a> <a href=\"index-7.html\"><b>G</b></a> <a href=\"index-8.html\"><b>H</b></a> <a href=\"index-9.html\"><b>I</b></a> <a href=\"index-10.html\"><b>J</b></a>"
+ " <a href=\"index-11.html\"><b>K</b></a> <a href=\"index-12.html\"><b>L</b></a> <a href=\"index-13.html\"><b>M</b></a> <a href=\"index-14.html\"><b>N</b></a> <a href=\"index-15.html\"><b>O</b></a> <a href=\"index-16.html\"><b>P</b></a> <a href=\"index-17.html\"><b>Q</b></a> <a href=\"index-18.html\"><b>R</b></a> <a href=\"index-19.html\"><b>S</b></a> <a href=\"index-20.html\"><b>T</b></a>"
+ " <a href=\"index-21.html\"><b>U</b></a> <a href=\"index-22.html\"><b>V</b></a> <a href=\"index-23.html\"><b>W</b></a> <a href=\"index-24.html\"><b>X</b></a> <a href=\"index-25.html\"><b>Y</b></a> <a href=\"index-26.html\"><b>Z</b></a> <a href=\"index-27.html\"><b>_</b></a></p>" );
+
+ Out().Enter(CurOut() >> *new Html::DefList);
+
+ csv::erase_container(G_PageData);
+ Env().Data().Get_IndexData(G_PageData, i_letter);
+
+ // Helper object to produce links to the index Entries.
+ HF_IdlTypeText aTypeLinkWriter(Env(),HF_IdlTypeText::use_for_javacompatible_index);
+
+ PageData::const_iterator itEnd = G_PageData.end();
+ for ( PageData::const_iterator iter = G_PageData.begin();
+ iter != itEnd;
+ ++iter )
+ {
+ produce_Line(iter, aTypeLinkWriter);
+ } // end for
+
+ Out().Leave();
+ CurOut() << new Html::HorizontalLine;
+}
+
+void
+HF_IdlGlobalIndex::make_Navibar() const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_IndexMainRow();
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlGlobalIndex::produce_Line( PageData::const_iterator i_entry,
+ const HF_IdlTypeText & i_typeLinkWriter) const
+{
+ const client &
+ rCe = Env().Data().Find_Ce(*i_entry);
+ if (NOT rCe.Owner().IsValid())
+ return; // Omit global namespace.
+
+ // The destination for the created output:
+ Xml::Element & rDT = CurOut() >> *new Html::DefListTerm;
+
+ /** The following code is intended to produce an output that
+ will be recognized by the context help system of Forte.
+ That is reached by making it similar to the indices, that
+ Javadoc produces.
+ If the link to the Entry contains a hashmark, the Forte-Help
+ requires following a link to the owner.
+ But if there is no hashmark, the following link must go to
+ the same Entry again. Doesn't make really sense :-(, but that's
+ like it is.
+ */
+ write_EntryItself(rDT,rCe,i_typeLinkWriter);
+ if (rCe.SightLevel() == ary::idl::sl_Member)
+ write_OwnerOfEntry(rDT,rCe,i_typeLinkWriter);
+ else
+ write_EntrySecondTime(rDT,rCe,i_typeLinkWriter);
+
+ // This produces an empty "<dd></dd>", which is also needed to reach
+ // similarity to the Javadoc index:
+ CurOut() << new Html::DefListDefinition;
+}
+
+void
+HF_IdlGlobalIndex::write_OwnerOfEntry( Xml::Element & o_destination,
+ const ary::idl::CodeEntity & i_ce,
+ const HF_IdlTypeText & i_typeLinkWriter ) const
+{
+ const client &
+ rOwner = Env().Data().Find_Ce(i_ce.Owner());
+
+ int nIx = int(i_ce.AryClass() - C_nNamesArrayOffset);
+ csv_assert(csv::in_range(0,nIx,C_nNumberOfIdlTypes));
+
+ o_destination << C_sTypeNames[nIx]
+ << "in ";
+ if (nIx != C_nIxField)
+ {
+ o_destination << C_sOwnerNames[nIx];
+ }
+ else
+ {
+ uintt
+ nOwnerIx = rOwner.AryClass() - C_nNamesArrayOffset;
+ csv_assert(
+ nOwnerIx < static_cast< unsigned int >(C_nNumberOfIdlTypes));
+ o_destination << C_sTypeNames[nOwnerIx];
+ }
+ i_typeLinkWriter.Produce_IndexOwnerLink(o_destination, rOwner);
+}
+
+void
+HF_IdlGlobalIndex::write_EntrySecondTime( Xml::Element & o_destination,
+ const ary::idl::CodeEntity & i_ce,
+ const HF_IdlTypeText & i_typeLinkWriter ) const
+{
+ int nIx = int(i_ce.AryClass() - C_nNamesArrayOffset);
+ csv_assert(csv::in_range(0,nIx,C_nNumberOfIdlTypes));
+
+ o_destination << C_sTypeNames[nIx]
+ << " ";
+ i_typeLinkWriter.Produce_IndexSecondEntryLink(o_destination, i_ce);
+}
diff --git a/autodoc/source/display/idl/hfi_globalindex.hxx b/autodoc/source/display/idl/hfi_globalindex.hxx
new file mode 100644
index 000000000000..45e953baaed5
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_globalindex.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_GLOBALINDEX_HXX
+#define ADC_DISPLAY_HFI_GLOBALINDEX_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_gate.hxx>
+
+
+class HF_IdlTypeText;
+
+class HF_IdlGlobalIndex : public HtmlFactory_Idl
+{
+ public:
+ typedef std::vector<ary::idl::Ce_id> PageData;
+
+ HF_IdlGlobalIndex(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlGlobalIndex();
+
+ void Produce_Page(
+ ary::idl::alphabetical_index::E_Letter
+ i_letter ) const;
+ private:
+ void make_Navibar() const; /// Called by @->Produce_Page()
+ void produce_Line( /// Called by @->Produce_Page()
+ PageData::const_iterator
+ i_entry,
+ const HF_IdlTypeText &
+ i_typeLinkWriter ) const;
+
+ void write_EntryItself( /// Called by @->produceLine()
+ Xml::Element & o_destination,
+ const ary::idl::CodeEntity &
+ i_entry,
+ const HF_IdlTypeText &
+ i_typeLinkWriter ) const;
+
+ void write_OwnerOfEntry( /// Called by @->produceLine()
+ Xml::Element & o_destination,
+ const ary::idl::CodeEntity &
+ i_entry,
+ const HF_IdlTypeText &
+ i_typeLinkWriter ) const;
+
+ void write_EntrySecondTime( /// Called by @->produceLine()
+ Xml::Element & o_destination,
+ const ary::idl::CodeEntity &
+ i_entry,
+ const HF_IdlTypeText &
+ i_typeLinkWriter ) const;
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/display/idl/hfi_hierarchy.cxx b/autodoc/source/display/idl/hfi_hierarchy.cxx
new file mode 100644
index 000000000000..d4db7f9028f1
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_hierarchy.cxx
@@ -0,0 +1,202 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_hierarchy.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <udm/html/htmlitem.hxx>
+#include <ary/stdconstiter.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include "hfi_interface.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_env.hxx"
+
+
+
+HF_IdlBaseNode::HF_IdlBaseNode( const TYPE & i_rType,
+ const GATE & i_rGate,
+ intt i_nPositionOffset,
+ HF_IdlBaseNode & io_rDerived )
+ : nType(i_rType.TypeId()),
+ aBases(),
+ nCountBases(0),
+ nPosition(i_nPositionOffset),
+ pDerived(&io_rDerived)
+{
+ Ce_id nCe = i_rGate.Types().Search_CeRelatedTo(nType);
+ if (nCe.IsValid())
+ {
+ GatherBases(i_rGate.Ces().Find_Ce(nCe), i_rGate);
+ }
+}
+
+HF_IdlBaseNode::~HF_IdlBaseNode()
+{
+}
+
+void
+HF_IdlBaseNode::FillPositionList( std::vector< const HF_IdlBaseNode* > & o_rPositionList ) const
+{
+ for ( BaseList::const_iterator it = aBases.begin();
+ it != aBases.end();
+ ++it )
+ {
+ (*it)->FillPositionList(o_rPositionList);
+ } // end for
+
+ o_rPositionList.push_back(this);
+}
+
+void
+HF_IdlBaseNode::GatherBases( const CE & i_rCe,
+ const GATE & i_rGate )
+{
+ ary::Dyn_StdConstIterator<ary::idl::CommentedRelation>
+ aHelp;
+ ary::idl::ifc_interface::attr::Get_Bases(aHelp,i_rCe);
+
+ for ( ary::StdConstIterator<ary::idl::CommentedRelation> & it = *aHelp;
+ it.operator bool();
+ ++it )
+ {
+ const TYPE &
+ rBaseType = i_rGate.Types().Find_Type((*it).Type());
+
+ Dyn<HF_IdlBaseNode>
+ pBaseNode( new HF_IdlBaseNode( rBaseType,
+ i_rGate,
+ nPosition,
+ *this )
+ );
+
+ intt nAddedBases = pBaseNode->BaseCount() + 1;
+ nCountBases += nAddedBases;
+ nPosition += nAddedBases;
+ aBases.push_back( pBaseNode.Release() );
+ } // end for
+}
+
+
+void
+Write_BaseHierarchy( csi::xml::Element & o_rOut,
+ HtmlEnvironment_Idl & i_env,
+ const ary::idl::CodeEntity & i_ce )
+{
+ csi::xml::Element &
+ rPre = o_rOut
+ >> *new csi::xml::AnElement("pre")
+ << new csi::html::StyleAttr("font-family:monospace;");
+
+ std::vector<uintt>
+ aSetColumns;
+ rPre
+ >> *new csi::html::Strong
+ << i_ce.LocalName();
+ rPre
+ << "\n";
+ Write_Bases( rPre,
+ i_env,
+ i_ce,
+ aSetColumns );
+ rPre
+ << "\n";
+
+}
+
+
+void
+Write_Bases( csi::xml::Element & o_out,
+ HtmlEnvironment_Idl & i_env,
+ const ary::idl::CodeEntity & i_rCe,
+ std::vector<uintt> & io_setColumns )
+{
+ ary::Dyn_StdConstIterator<ary::idl::CommentedRelation>
+ aHelp;
+ ary::idl::ifc_interface::attr::Get_Bases(aHelp,i_rCe);
+
+ for ( ary::StdConstIterator<ary::idl::CommentedRelation> & it = *aHelp;
+ it.operator bool();
+ // NO INCREMENT HERE, see below
+ )
+ {
+ ary::idl::Type_id
+ nType = (*it).Type();
+ ++it;
+ bool
+ bThereComesMore = it.operator bool();
+
+ ary::idl::Ce_id
+ nCe = i_env.Gate().Types().Search_CeRelatedTo(nType);
+ if (nCe.IsValid())
+ {
+ // KORR_FUTURE
+ // Rather check for id(!) of com::sun::star::uno::XInterface.
+ if (i_env.Gate().Ces().Find_Ce(nCe).LocalName() == "XInterface")
+ continue;
+ }
+
+ for (uintt i = 0; i < io_setColumns.size(); ++i)
+ {
+ if (io_setColumns[i] == 1)
+ o_out << new csi::xml::XmlCode("&#x2503");
+ else
+ o_out << " ";
+ o_out << " ";
+ }
+
+ if (bThereComesMore)
+ o_out << new csi::xml::XmlCode("&#x2523");
+ else
+ o_out << new csi::xml::XmlCode("&#x2517");
+ o_out << " ";
+
+ HF_IdlTypeText
+ aDisplay( i_env, o_out, true, i_env.CurPageCe());
+ aDisplay.Produce_byData(nType);
+ o_out << "\n";
+
+ if (nCe.IsValid())
+ {
+ io_setColumns.push_back(bThereComesMore ? 1 : 0);
+
+ const ary::idl::CodeEntity &
+ rCe = i_env.Gate().Ces().Find_Ce(nCe);
+ Write_Bases( o_out,
+ i_env,
+ rCe,
+ io_setColumns );
+ io_setColumns.pop_back();
+ }
+ } // end for
+}
diff --git a/autodoc/source/display/idl/hfi_hierarchy.hxx b/autodoc/source/display/idl/hfi_hierarchy.hxx
new file mode 100644
index 000000000000..e918a3345821
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_hierarchy.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_HIERARCHY_HXX
+#define ADC_DISPLAY_HFI_HIERARCHY_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_comrela.hxx>
+#include <ary/idl/i_types4idl.hxx>
+
+
+namespace csi
+{
+namespace xml
+{
+ class Element;
+}
+}
+
+
+class HF_IdlInterface;
+class HtmlEnvironment_Idl;
+
+
+
+/** Represents a node in an pyramidic inheritance hierarchy which shall be
+ displayed in text mode.
+*/
+class HF_IdlBaseNode
+{
+ public:
+ typedef ary::idl::CodeEntity CE;
+ typedef ary::idl::Type TYPE;
+ typedef ary::idl::Gate GATE;
+ typedef ary::idl::Ce_id Ce_id;
+ typedef ary::idl::Type_id Type_id;
+
+ /** @descr
+ The constructor recursively calls further constructors of
+ HF_IdlBaseNode for the bases of ->i_rType, if ->i_rType matches to a
+ ->CE.
+ So it builds up a complete hierarchy tree of all base classes
+ of ->i_pEntity.
+ */
+ HF_IdlBaseNode(
+ const TYPE & i_rType,
+ const GATE & i_rGate,
+ intt i_nPositionOffset,
+ HF_IdlBaseNode & io_rDerived );
+ ~HF_IdlBaseNode();
+
+ /** Recursively fills ->o_rPositionList with the instances of base
+ classes in the order in which they will be displayed.
+ */
+ void FillPositionList(
+ std::vector< const HF_IdlBaseNode* > &
+ o_rPositionList ) const;
+
+ Type_id Type() const { return nType; }
+ intt BaseCount() const { return nCountBases; }
+ intt Position() const { return nPosition; }
+ int Xpos() const { return 3*Position(); }
+ int Ypos() const { return 2*Position(); }
+ const HF_IdlBaseNode * Derived() const { return pDerived; }
+
+ private:
+ typedef std::vector< DYN HF_IdlBaseNode* > BaseList;
+
+ void GatherBases(
+ const CE & i_rCe,
+ const GATE & i_rGate );
+
+ // DATA
+ Type_id nType;
+ BaseList aBases;
+ intt nCountBases;
+ intt nPosition;
+ HF_IdlBaseNode * pDerived;
+};
+
+void Write_BaseHierarchy(
+ csi::xml::Element & o_rOut,
+ HtmlEnvironment_Idl &
+ i_env,
+ const ary::idl::CodeEntity &
+ i_rCe );
+
+void Write_Bases(
+ csi::xml::Element & o_rOut,
+ HtmlEnvironment_Idl &
+ i_env,
+ const ary::idl::CodeEntity &
+ i_rCe,
+ std::vector<uintt> &
+ io_setColumns );
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_interface.cxx b/autodoc/source/display/idl/hfi_interface.cxx
new file mode 100644
index 000000000000..8e7a637f12c8
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_interface.cxx
@@ -0,0 +1,357 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_interface.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ik_function.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_hierarchy.hxx"
+#include "hfi_method.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Interface("interface");
+
+namespace
+{
+
+const String
+ C_sBaseInterface("Base Interfaces");
+const String
+ C_sList_BaseComments("Comments on Base Interfaces");
+const String
+ C_sList_Methods("Methods' Summary");
+const String
+ C_sList_Methods_Label("MethodsSummary");
+const String
+ C_sDetails_Methods("Methods' Details");
+const String
+ C_sDetails_Methods_Label("MethodsDetails");
+
+const String
+ C_sList_Attributes("Attributes' Summary");
+const String
+ C_sList_Attributes_Label("AttributesSummary");
+const String
+ C_sList_AttributesDetails("Attributes' Details");
+const String
+ C_sList_AttributesDetails_Label("AttributesDetails");
+
+
+
+enum E_SubListIndices
+{
+ sli_MethodsSummay = 0,
+ sli_AttributesSummary = 1,
+ sli_MethodDetails = 2,
+ sli_AttributesDetails = 3
+};
+
+} //anonymous namespace
+
+
+
+
+HF_IdlInterface::HF_IdlInterface( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ eCurProducedMembers(mem_none)
+{
+}
+
+HF_IdlInterface::~HF_IdlInterface()
+{
+}
+
+void
+HF_IdlInterface::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+
+ produce_Title(aTitle, C_sCePrefix_Interface, i_ce);
+
+ produce_BaseHierarchy( aTitle.Add_Row(),
+ i_ce,
+ C_sBaseInterface );
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list dpFunctions;
+ ary::idl::ifc_interface::attr::Get_Functions(dpFunctions, i_ce);
+ if ( (*dpFunctions).operator bool() )
+ {
+ eCurProducedMembers = mem_Functions;
+
+ produce_Members( *dpFunctions,
+ C_sList_Methods,
+ C_sList_Methods_Label,
+ C_sDetails_Methods,
+ C_sDetails_Methods_Label,
+ HtmlFactory_Idl::viewtype_summary );
+ pNaviSubRow->SwitchOn(sli_MethodsSummay);
+ }
+
+ dyn_ce_list
+ dpAttributes;
+ ary::idl::ifc_interface::attr::Get_Attributes(dpAttributes, i_ce);
+ if ( (*dpAttributes).operator bool() )
+ {
+ eCurProducedMembers = mem_Attributes;
+
+ produce_Members( *dpAttributes,
+ C_sList_Attributes,
+ C_sList_Attributes_Label,
+ C_sList_AttributesDetails,
+ C_sList_AttributesDetails_Label,
+ HtmlFactory_Idl::viewtype_summary );
+ pNaviSubRow->SwitchOn(sli_AttributesSummary);
+ }
+
+ ary::idl::ifc_interface::attr::Get_Functions(dpFunctions, i_ce);
+ if ( (*dpFunctions).operator bool() )
+ {
+ eCurProducedMembers = mem_Functions;
+
+ produce_Members( *dpFunctions,
+ C_sList_Methods,
+ C_sList_Methods_Label,
+ C_sDetails_Methods,
+ C_sDetails_Methods_Label,
+ HtmlFactory_Idl::viewtype_details );
+ pNaviSubRow->SwitchOn(sli_MethodDetails);
+ }
+
+ ary::idl::ifc_interface::attr::Get_Attributes(dpAttributes, i_ce);
+ if ( (*dpAttributes).operator bool() )
+ {
+ eCurProducedMembers = mem_Attributes;
+
+ produce_Members( *dpAttributes,
+ C_sList_Attributes,
+ C_sList_Attributes_Label,
+ C_sList_AttributesDetails,
+ C_sList_AttributesDetails_Label,
+ HtmlFactory_Idl::viewtype_details );
+ pNaviSubRow->SwitchOn(sli_AttributesDetails);
+ }
+
+ eCurProducedMembers = mem_none;
+
+ pNaviSubRow->Produce_Row();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlInterface::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Methods, C_sList_Methods_Label, false);
+ ret.AddItem(C_sList_Attributes, C_sList_Attributes_Label, false);
+ ret.AddItem(C_sDetails_Methods, C_sDetails_Methods_Label, false);
+ ret.AddItem(C_sList_AttributesDetails, C_sList_AttributesDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlInterface::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ switch (eCurProducedMembers)
+ {
+ case mem_Functions:
+ break;
+ case mem_Attributes:
+ {
+ HF_IdlAttribute
+ aAttribute( Env(), o_table);
+ aAttribute.Produce_byData( i_ce );
+ return;
+ };
+ default: //Won't happen.
+ return;
+ } // end switch
+
+ typedef ary::idl::ifc_function::attr funcAttr;
+
+ HF_IdlMethod
+ aFunction( Env(),
+ o_table.Add_Row()
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_MDetail) );
+
+ ary::Dyn_StdConstIterator<ary::idl::Parameter>
+ pParameters;
+ funcAttr::Get_Parameters(pParameters, i_ce);
+
+ ary::Dyn_StdConstIterator<ary::idl::Type_id>
+ pExceptions;
+ funcAttr::Get_Exceptions(pExceptions, i_ce);
+
+ aFunction.Produce_byData( i_ce.LocalName(),
+ funcAttr::ReturnType(i_ce),
+ *pParameters,
+ *pExceptions,
+ funcAttr::IsOneway(i_ce),
+ funcAttr::HasEllipse(i_ce),
+ i_ce );
+}
+
+void
+HF_IdlInterface::produce_BaseHierarchy( Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const
+{
+ ary::Dyn_StdConstIterator<ary::idl::CommentedRelation>
+ pHelp;
+ ary::idl::ifc_interface::attr::Get_Bases(pHelp, i_ce);
+ if (NOT (*pHelp).operator bool())
+ return;
+
+ // Check for XInterface as only base:
+ ary::StdConstIterator<ary::idl::CommentedRelation> &
+ itTest = *pHelp;
+ ary::idl::Ce_id
+ nCe = Env().Gate().Types().Search_CeRelatedTo((*itTest).Type());
+ if (nCe.IsValid())
+ {
+ // KORR_FUTURE
+ // Rather check for id(!) of com::sun::star::uno::XInterface.
+ if (Env().Gate().Ces().Find_Ce(nCe).LocalName() == "XInterface")
+ {
+ ++itTest;
+ if (NOT itTest.operator bool())
+ return;
+ }
+ }
+
+ // Write hierarchy:
+
+ HF_DocEntryList
+ aDocList( o_screen );
+ aDocList.Produce_Term(i_sLabel);
+ Xml::Element &
+ rBaseList = aDocList.Produce_Definition();
+
+// NEW
+ Write_BaseHierarchy(rBaseList, Env(), i_ce);
+
+ // Write comments:
+ // KORR_FUTURE: Make sure, no empty table is constructed when comments list is empty.
+ HF_SubTitleTable
+ aBaseTable( aDocList.Produce_Definition(),
+ "",
+ C_sList_BaseComments,
+ 2,
+ HF_SubTitleTable::sublevel_3 );
+
+ ary::Dyn_StdConstIterator<ary::idl::CommentedRelation>
+ pBases;
+ ary::idl::ifc_interface::attr::Get_Bases(pBases, i_ce);
+ for ( ary::StdConstIterator<ary::idl::CommentedRelation> & it = *pBases;
+ it.operator bool();
+ ++it )
+ {
+ Xml::Element &
+ rRow = aBaseTable.Add_Row();
+
+ Xml::Element &
+ rTerm = rRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryLeft);
+ HF_IdlTypeText
+ aTypeDisplay( Env(), rTerm, false, 0);
+ aTypeDisplay.Produce_byData((*it).Type());
+
+ Xml::Element &
+ rDocu = rRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryRight);
+
+ HF_DocEntryList
+ aDocuList(rDocu);
+
+ if ((*it).Info() != 0)
+ {
+// aDocuList.Produce_Term("Comment on Base Reference");
+
+ HF_IdlDocu
+ aDocuDisplay(Env(), aDocuList);
+ aDocuDisplay.Produce_fromReference(*(*it).Info(), i_ce);
+ }
+ else
+ {
+ const client *
+ pCe = Env().Linker().Search_CeFromType((*it).Type());
+ const ce_info *
+ pShort = pCe != 0
+ ? Get_IdlDocu(pCe->Docu())
+ : (const ce_info *)(0);
+ if ( pShort != 0 )
+ {
+ aDocuList.Produce_NormalTerm("(referenced interface's summary:)");
+
+ Xml::Element &
+ rDef = aDocuList.Produce_Definition();
+ HF_IdlDocuTextDisplay
+ aShortDisplay( Env(), &rDef, *pCe);
+ pShort->Short().DisplayAt(aShortDisplay);
+ } // end if (pShort != 0)
+ } // endif ( (*i_commentedRef).Info() != 0 ) else
+ } // end for
+}
diff --git a/autodoc/source/display/idl/hfi_interface.hxx b/autodoc/source/display/idl/hfi_interface.hxx
new file mode 100644
index 000000000000..9f2c77c64a97
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_interface.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_INTERFACE_HXX
+#define ADC_DISPLAY_HFI_INTERFACE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+
+
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+class HF_IdlBaseNode;
+
+class HF_IdlInterface : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlInterface(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlInterface();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ // Locals
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+ void produce_BaseHierarchy(
+ Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const;
+
+ // Locals
+ enum E_CurProducedMembers
+ {
+ mem_none,
+ mem_Functions,
+ mem_Attributes
+ };
+
+ // DATA
+ mutable E_CurProducedMembers
+ eCurProducedMembers;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Interface;
+
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_linklist.cxx b/autodoc/source/display/idl/hfi_linklist.cxx
new file mode 100644
index 000000000000..3ab52ab4d722
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_linklist.cxx
@@ -0,0 +1,378 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_linklist.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+
+
+
+
+//******************* HF_CommentedLink_Table **********************************//
+
+HF_CommentedLink_Table::HF_CommentedLink_Table( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bBorder )
+ : HtmlFactory_Idl(io_rEnv,&o_rOut),
+ pTable( new Html::Table( (i_bBorder ? "1" : "0"), "100%", "5", "0") ),
+ pCurLinkColumn(0),
+ pCurCommentColumn(0)
+{
+ *pTable
+ << new Html::ClassAttr("commentedlinks");
+
+ CurOut()
+ >> *new Html::Label(i_sLabel)
+ << new Html::LineBreak;
+ CurOut()
+ << pTable;
+// HF_SubTitle aTitle(*pTable);
+// aTitle.Produce_it(i_sTitle);
+}
+
+HF_CommentedLink_Table::~HF_CommentedLink_Table()
+{
+}
+
+void
+HF_CommentedLink_Table::Add_Line()
+{
+ Html::TableRow &
+ rRow = pTable->AddRow();
+
+ pCurLinkColumn = & (rRow.AddCell()
+ << new Html::WidthAttr("30%")
+ << new Xml::AnAttribute("valign","top") );
+ pCurCommentColumn = & rRow.AddCell();
+}
+
+Xml::Element &
+HF_CommentedLink_Table::Cur_LinkColumn()
+{
+ csv_assert(pCurLinkColumn != 0);
+ return *pCurLinkColumn;
+}
+
+Xml::Element &
+HF_CommentedLink_Table::Cur_CommentColumn()
+{
+ csv_assert(pCurCommentColumn != 0);
+ return *pCurCommentColumn;
+}
+
+
+//******************* HF_MemberTable **********************************//
+
+HF_MemberTable::HF_MemberTable( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bInline )
+ : HtmlFactory_Idl(io_rEnv,&o_rOut),
+ pTable( new Html::Table("1", "100%", "5", "0") ),
+ pCurDeclaration(0),
+ pCurDescription(0),
+ bInline(i_bInline)
+{
+ *pTable
+ << new Html::ClassAttr("memberlist");
+
+ CurOut()
+ >> *new Html::Label(i_sLabel)
+ << new Html::LineBreak;
+ CurOut()
+ << pTable;
+// HF_SubTitle aTitle(*pTable);
+// aTitle.Produce_it(i_sTitle);
+}
+
+HF_MemberTable::~HF_MemberTable()
+{
+}
+
+void
+HF_MemberTable::Add_Line()
+{
+ if (bInline)
+ {
+ Html::TableRow & rRow = pTable->AddRow();
+
+ pCurDeclaration = &( rRow.AddCell()
+ << new Xml::AnAttribute("valign","top")
+ << new Html::WidthAttr("30%") );
+ pCurDescription = & rRow.AddCell();
+ }
+ else
+ {
+ Html::DefList *
+ pMemberSpace = new Html::DefList;
+ *pMemberSpace
+ << new Html::ClassAttr("member");
+
+ pTable->AddRow().AddCell() << pMemberSpace;
+
+ pCurDeclaration =
+ & ( *pMemberSpace
+ >> *new Html::DefListTerm
+ << new Html::ClassAttr("member") );
+ pCurDescription =
+ & ( *pMemberSpace
+ >> *new Html::DefListDefinition()
+ << new Html::ClassAttr("member") );
+ }
+}
+
+Xml::Element &
+HF_MemberTable::Cur_Declaration()
+{
+ csv_assert(pCurDeclaration != 0);
+ return *pCurDeclaration;
+}
+
+Xml::Element &
+HF_MemberTable::Cur_Description()
+{
+ csv_assert(pCurDescription != 0);
+ return *pCurDescription;
+}
+
+
+
+//******************* HF_IdlLinkList **********************************//
+
+HF_IdlLinkList::HF_IdlLinkList( Environment & io_rEnv,
+ Xml::Element * o_pOut )
+ : HtmlFactory_Idl(io_rEnv,o_pOut)
+{
+}
+
+HF_IdlLinkList::~HF_IdlLinkList()
+{
+}
+
+void
+HF_IdlLinkList::Produce_NamespaceMembers( const String & i_sTitle,
+ const String & i_sLabel,
+ const std::vector<ary::idl::Ce_id> & i_rList,
+ bool i_bNestedNamespaces ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+ std::vector<ary::idl::Ce_id>::const_iterator itEnd = i_rList.end();
+ for ( std::vector<ary::idl::Ce_id>::const_iterator it = i_rList.begin();
+ it != itEnd;
+ ++it )
+ {
+ static String sEntryName;
+ static String sEntryLink;
+ const ce_info *
+ pDocu = 0;
+ Get_EntryData_NamespaceMembers( sEntryName, sEntryLink, pDocu, *it, i_bNestedNamespaces );
+ aTableMaker.Add_Line();
+
+ aTableMaker.Cur_LinkColumn()
+ >> *new Html::Link(sEntryLink)
+ << sEntryName;
+
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( pDocu );
+ }
+ } // end for
+}
+
+void
+HF_IdlLinkList::Produce_GlobalLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+ for ( ; i_rList; ++i_rList )
+ {
+ aTableMaker.Add_Line();
+ HF_IdlTypeText
+ aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
+ aLinkText.Produce_byData(*i_rList);
+
+ const ce_info *
+ pDocu = Get_EntryDocu(*i_rList);
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( pDocu, *i_rList );
+ }
+ }
+}
+
+void
+HF_IdlLinkList::Produce_GlobalCommentedLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ comref_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+/*
+ for ( ; i_rList; ++i_rList )
+ {
+ aTableMaker.Add_Line();
+ HF_IdlTypeText
+ aLinkText( Env(), aTableMaker.Cur_LinkColumn(), true );
+ aLinkText.Produce_byData( (*i_rList).first );
+
+ HF_DocEntryList
+ aDocList( aTableMaker.Cur_CommentColumn() );
+ if ( (*i_rList).second != 0 )
+ {
+ HF_IdlDocu
+ aDocuDisplay( Env(), aDocList );
+ aDocuDisplay.Produce_byData( (*i_rList).second );
+ }
+ else
+ {
+ const ce_info *
+ pShort = Get_EntryDocu(
+ Env().Gate().Types().Search_CeRelatedTo(
+ (*i_rList).first) );
+ if ( pShort != 0 )
+ {
+ if (pShort->IsDeprecated())
+ {
+ aDocList.Produce_Term()
+ << "[ DEPRECATED ]";
+ }
+ if (pShort->IsOptional())
+ {
+ aDocList.Produce_Term()
+ << "[ OPTIONAL ]";
+ }
+
+ aDocList.Produce_Term()
+ << "Description";
+
+ HF_IdlDocuTextDisplay
+ aShortDisplay( Env(), &aDocList.Produce_Definition() );
+ aShortDisplay.Set_CurScopeTo(
+ Env().Gate().Types().Search_CeRelatedTo((*i_rList).first) );
+ pShort->Short().DisplayAt(aShortDisplay);
+ }
+ }
+ }
+*/
+}
+
+void
+HF_IdlLinkList::Produce_MemberLinks( const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const
+{
+ HF_CommentedLink_Table
+ aTableMaker( Env(), CurOut(),
+ i_sTitle, i_sLabel,
+ true );
+
+/*
+ for ( ; i_rList; ++i_rList )
+ {
+ const ary::idl::CodeEntity &
+ rCe = Env().Gate().Ces().Find_Ce(*i_rList);
+
+ aTableMaker.Add_Line();
+ aTableMaker.Cur_LinkColumn()
+ >> *new Html::Link(
+ StreamLock(200)() << "#" << rCe.LocalName() << c_str)
+ << rCe.LocalName();
+
+ const ce_info *
+ pDocu = rCe.Docu();
+ if ( pDocu != 0 )
+ {
+ HF_IdlShortDocu
+ aTextDisplay(Env(), aTableMaker.Cur_CommentColumn() );
+ aTextDisplay.Produce_byData( *pDocu );
+ }
+ } // end for
+*/
+}
+
+void
+HF_IdlLinkList::Get_EntryData_NamespaceMembers(
+ String & o_sEntryName,
+ String & o_sEntryLink,
+ const ce_info * & o_pDocu,
+ ce_id i_nMemberId,
+ bool i_bIsNestedNamespace ) const
+{
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(i_nMemberId);
+
+ o_sEntryName = rCe.LocalName();
+ o_sEntryLink = StreamLock(200)() << rCe.LocalName()
+ << ( i_bIsNestedNamespace
+ ? "/module-ix"
+ : "" )
+ << ".html"
+ << c_str;
+ o_pDocu = rCe.Docu();
+}
+
+const ary::doc::OldIdlDocu *
+HF_IdlLinkList::Get_EntryDocu(ce_id i_nMemberId) const
+{
+ if (i_nMemberId.IsValid())
+ return Env().Data().Find_Ce(i_nMemberId).Docu();
+ else
+ return 0;
+}
+
+
diff --git a/autodoc/source/display/idl/hfi_linklist.hxx b/autodoc/source/display/idl/hfi_linklist.hxx
new file mode 100644
index 000000000000..7a7e12679bca
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_linklist.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_LINKLIST_HXX
+#define ADC_DISPLAY_HFI_LINKLIST_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_comrela.hxx>
+#include <ary_i/ci_text2.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+
+
+
+
+class HF_CommentedLink_Table : public HtmlFactory_Idl
+{
+ public:
+ HF_CommentedLink_Table(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bBorder = false );
+ virtual ~HF_CommentedLink_Table();
+
+ void Add_Line();
+ Xml::Element & Cur_LinkColumn();
+ Xml::Element & Cur_CommentColumn();
+
+ private:
+ // DATA
+ Html::Table * pTable;
+ Xml::Element * pCurLinkColumn;
+ Xml::Element * pCurCommentColumn;
+};
+
+class HF_MemberTable : public HtmlFactory_Idl
+{
+ public:
+ HF_MemberTable(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_sTitle,
+ const String & i_sLabel,
+ bool i_bInline = false );
+ virtual ~HF_MemberTable();
+
+ void Add_Line();
+ Xml::Element & Cur_Declaration();
+ Xml::Element & Cur_Description();
+
+ private:
+ // DATA
+ Html::Table * pTable;
+ Xml::Element * pCurDeclaration;
+ Xml::Element * pCurDescription;
+ bool bInline;
+};
+
+
+
+
+class HF_IdlLinkList : public HtmlFactory_Idl
+{
+ public:
+ typedef ary::StdConstIterator<ary::idl::CommentedRelation>
+ comref_list;
+
+ HF_IdlLinkList(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut );
+ virtual ~HF_IdlLinkList();
+
+ void Produce_NamespaceMembers(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ const std::vector<ary::idl::Ce_id> &
+ i_rList,
+ bool i_bNestedNamespaces = false ) const;
+ void Produce_GlobalLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const;
+ void Produce_GlobalCommentedLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ comref_list & i_rList ) const;
+ void Produce_MemberLinks(
+ const String & i_sTitle,
+ const String & i_sLabel,
+ ce_list & i_rList ) const;
+ private:
+ void Get_EntryData_NamespaceMembers(
+ String & o_sEntryName,
+ String & o_sEntryLink,
+ const ce_info * & o_pDocuText,
+ ce_id i_nMemberId,
+ bool i_bIsNestedNamespace ) const;
+ const ce_info * Get_EntryDocu(
+ ce_id i_nMemberId ) const;
+};
+
+
+
+
+
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_method.cxx b/autodoc/source/display/idl/hfi_method.cxx
new file mode 100644
index 000000000000..a8c6e3e097ca
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_method.cxx
@@ -0,0 +1,357 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_method.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_param.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_funcdecl.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_globalindex.hxx"
+#include "hfi_typetext.hxx"
+
+
+
+
+
+HF_IdlMethod::HF_IdlMethod( Environment & io_rEnv,
+ Xml::Element & o_cell)
+ : HtmlFactory_Idl(io_rEnv,&o_cell)
+{
+}
+
+
+HF_IdlMethod::~HF_IdlMethod()
+{
+}
+
+
+void
+HF_IdlMethod::Produce_byData( const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ bool i_bEllipse,
+ const client & i_ce ) const
+{
+ CurOut()
+ >> *new Html::Label(i_sName)
+ << new Html::ClassAttr(C_sMemberTitle)
+ << i_sName;
+ enter_ContentCell();
+ write_Declaration( i_sName,
+ i_nReturnType,
+ i_rParams,
+ i_rExceptions,
+ i_bOneway,
+ i_bEllipse );
+ CurOut() << new Html::HorizontalLine;
+ write_Docu(CurOut(), i_ce);
+ leave_ContentCell();
+}
+
+#if 0 // old
+void
+HF_IdlMethod::write_Declaration( const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ bool i_bEllipse ) const
+{
+ HF_FunctionDeclaration
+ aDecl(CurOut()) ;
+ Xml::Element &
+ front = aDecl.Add_ReturnLine();
+
+ // Front:
+ if (i_bOneway)
+ front << "[oneway] ";
+ if (i_nReturnType.IsValid())
+ { // Normal function, but not constructors:
+ HF_IdlTypeText
+ aReturn(Env(), front, true);
+ aReturn.Produce_byData(i_nReturnType);
+ front
+ << new Html::LineBreak;
+
+ }
+ front
+ >> *new Html::Bold
+ << i_sName;
+
+ // Main line:
+ Xml::Element &
+ types = aDecl.Types();
+ Xml::Element &
+ names = aDecl.Names();
+ bool bParams = i_rParams.operator bool();
+ if (bParams)
+ {
+ front
+ << "(";
+ HF_IdlTypeText
+ aType( Env(), types, true );
+
+ write_Param( aType, names, (*i_rParams) );
+
+ for (++i_rParams; i_rParams; ++i_rParams)
+ {
+ types
+ << new Html::LineBreak;
+ names
+ << ","
+ << new Html::LineBreak;
+ write_Param( aType, names, (*i_rParams) );
+ } // end for
+
+ if (i_bEllipse)
+ {
+ names
+ << " ...";
+ }
+ names
+ << " )";
+ }
+ else
+ front
+ << "()";
+
+
+ if ( i_rExceptions.operator bool() )
+ {
+ Xml::Element &
+ rExcOut = aDecl.Add_RaisesLine("raises", NOT bParams);
+ HF_IdlTypeText
+ aExc(Env(), rExcOut, true);
+ aExc.Produce_byData(*i_rExceptions);
+
+ for (++i_rExceptions; i_rExceptions; ++i_rExceptions)
+ {
+ rExcOut
+ << ","
+ << new Html::LineBreak;
+ aExc.Produce_byData(*i_rExceptions);
+ } // end for
+
+ rExcOut << " );";
+ }
+ else
+ {
+ if (bParams)
+ aDecl.Names() << ";";
+ else
+ aDecl.Front() << ";";
+ }
+}
+#endif // 0 old
+
+void
+HF_IdlMethod::write_Declaration( const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ bool i_bEllipse ) const
+{
+ HF_FunctionDeclaration
+ aDecl(CurOut(), "raises") ;
+ Xml::Element &
+ rReturnLine = aDecl.ReturnCell();
+
+ // Return line:
+ if (i_bOneway)
+ rReturnLine << "[oneway] ";
+ if (i_nReturnType.IsValid())
+ { // Normal function, but not constructors:
+ HF_IdlTypeText
+ aReturn(Env(), rReturnLine, true);
+ aReturn.Produce_byData(i_nReturnType);
+ }
+
+ // Main line:
+ Xml::Element &
+ rNameCell = aDecl.NameCell();
+ rNameCell
+ >> *new Html::Bold
+ << i_sName;
+
+ Xml::Element *
+ pParamEnd = 0;
+
+ bool bParams = i_rParams.operator bool();
+ if (bParams)
+ {
+ rNameCell
+ << "(";
+
+ pParamEnd = write_Param( aDecl, *i_rParams );
+ for (++i_rParams; i_rParams; ++i_rParams)
+ {
+ *pParamEnd << ",";
+ pParamEnd = write_Param( aDecl, *i_rParams );
+ } // end for
+
+ if (i_bEllipse)
+ {
+ Xml::Element &
+ rParamType = aDecl.NewParamTypeCell();
+ rParamType
+ << " ...";
+ pParamEnd = &rParamType;
+ }
+ *pParamEnd
+ << " )";
+ }
+ else
+ {
+ rNameCell
+ << "()";
+ }
+
+ if ( i_rExceptions.operator bool() )
+ {
+ Xml::Element &
+ rExcOut = aDecl.ExceptionCell();
+ HF_IdlTypeText
+ aExc(Env(), rExcOut, true);
+ aExc.Produce_byData(*i_rExceptions);
+
+ for (++i_rExceptions; i_rExceptions; ++i_rExceptions)
+ {
+ rExcOut
+ << ","
+ << new Html::LineBreak;
+ aExc.Produce_byData(*i_rExceptions);
+ } // end for
+
+ rExcOut << " );";
+ }
+ else if (bParams)
+ {
+ *pParamEnd << ";";
+ }
+ else
+ {
+ rNameCell << ";";
+ }
+}
+
+#if 0 // old
+void
+HF_IdlMethod::write_Param( HF_IdlTypeText & o_type,
+ Xml::Element & o_names,
+ const ary::idl::Parameter & i_param ) const
+{
+ switch ( i_param.Direction() )
+ {
+ case ary::idl::param_in:
+ o_type.CurOut() << "[in] ";
+ break;
+ case ary::idl::param_out:
+ o_type.CurOut() << "[out] ";
+ break;
+ case ary::idl::param_inout:
+ o_type.CurOut() << "[inout] ";
+ break;
+ } // end switch
+
+ o_type.Produce_byData( i_param.Type() );
+ o_names
+ << i_param.Name();
+}
+#endif // 0 old
+
+Xml::Element *
+HF_IdlMethod::write_Param( HF_FunctionDeclaration & o_decl,
+ const ary::idl::Parameter & i_param ) const
+{
+ Xml::Element &
+ rTypeCell = o_decl.NewParamTypeCell();
+ Xml::Element &
+ rNameCell = o_decl.ParamNameCell();
+
+ switch ( i_param.Direction() )
+ {
+ case ary::idl::param_in:
+ rTypeCell << "[in] ";
+ break;
+ case ary::idl::param_out:
+ rTypeCell << "[out] ";
+ break;
+ case ary::idl::param_inout:
+ rTypeCell << "[inout] ";
+ break;
+ } // end switch
+
+ HF_IdlTypeText
+ aTypeWriter(Env(), rTypeCell, true);
+ aTypeWriter.Produce_byData( i_param.Type() );
+
+ rNameCell
+ << i_param.Name();
+ return &rNameCell;
+}
+
+const String sContentBorder("0");
+const String sContentWidth("96%");
+const String sContentPadding("5");
+const String sContentSpacing("0");
+
+const String sBgWhite("#ffffff");
+const String sCenter("center");
+
+void
+HF_IdlMethod::enter_ContentCell() const
+{
+
+ Xml::Element &
+ rContentCell = CurOut()
+ >> *new Html::Table( sContentBorder,
+ sContentWidth,
+ sContentPadding,
+ sContentSpacing )
+ << new Html::ClassAttr("table-in-method")
+ << new Html::BgColorAttr(sBgWhite)
+ << new Html::AlignAttr(sCenter)
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+ Out().Enter(rContentCell);
+}
+
+
+void
+HF_IdlMethod::leave_ContentCell() const
+{
+ Out().Leave();
+}
+
diff --git a/autodoc/source/display/idl/hfi_method.hxx b/autodoc/source/display/idl/hfi_method.hxx
new file mode 100644
index 000000000000..9f81e16c6d42
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_method.hxx
@@ -0,0 +1,104 @@
+ /*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_METHOD_HXX
+#define ADC_DISPLAY_HFI_METHOD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_param.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+typedef ary::doc::OldIdlDocu CodeInfo;
+#include "hfi_linklist.hxx"
+
+
+
+namespace csi
+{
+ namespace idl
+ {
+ class Parameter;
+ }
+}
+
+class HF_FunctionDeclaration;
+
+class HF_IdlMethod : public HtmlFactory_Idl
+{
+ public:
+ typedef ary::StdConstIterator<ary::idl::Parameter> param_list;
+
+ HF_IdlMethod(
+ Environment & io_rEnv,
+ Xml::Element & o_cell );
+ virtual ~HF_IdlMethod();
+
+ void Produce_byData(
+ const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ bool i_bEllipse,
+ const client & i_ce ) const;
+ private:
+ void write_Declaration(
+ const String & i_sName,
+ type_id i_nReturnType,
+ param_list & i_rParams,
+ type_list & i_rExceptions,
+ bool i_bOneway,
+ bool i_bEllipse ) const;
+// void write_Param(
+// HF_IdlTypeText & o_type,
+// Xml::Element & o_names,
+// const ary::idl::Parameter &
+// i_param ) const;
+
+ Xml::Element * write_Param(
+ HF_FunctionDeclaration &
+ o_decl,
+ const ary::idl::Parameter &
+ i_param ) const;
+ void enter_ContentCell() const;
+ void leave_ContentCell() const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_module.cxx b/autodoc/source/display/idl/hfi_module.cxx
new file mode 100644
index 000000000000..4ab40cfebf89
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_module.cxx
@@ -0,0 +1,299 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_module.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ik_module.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary/getncast.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Module("module");
+
+namespace
+{
+
+const String
+ C_sList_NestedModules("Nested Modules");
+const String
+ C_sList_NestedModules_Label("NestedModules");
+const String
+ C_sList_Services("Services");
+const String
+ C_sList_Singletons("Singletons");
+const String
+ C_sList_Interfaces("Interfaces");
+const String
+ C_sList_Structs("Structs");
+const String
+ C_sList_Exceptions("Exceptions");
+const String
+ C_sList_Enums("Enums");
+const String
+ C_sList_Typedefs("Typedefs");
+const String
+ C_sList_ConstGroups("Constant Groups");
+const String
+ C_sList_ConstGroups_Label("ConstantGroups");
+
+
+enum E_SubListIndices
+{ // In case of changes, also adapt make_Navibar() !!
+ sli_NestedModules = 0,
+ sli_Services = 1,
+ sli_Singletons = 2,
+ sli_Interfaces = 3,
+ sli_Structs = 4,
+ sli_Exceptions = 5,
+ sli_Enums = 6,
+ sli_Typedefs = 7,
+ sli_ConstGroups = 8
+};
+
+} //anonymous namespace
+
+
+HF_IdlModule::HF_IdlModule( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlModule::~HF_IdlModule()
+{
+}
+
+typedef ary::idl::ifc_module::attr ModuleAttr;
+
+
+void
+HF_IdlModule::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ if ( Env().CurPosition().Depth() > 0 )
+ {
+ aNameChain.Produce_CompleteChain_forModule(Env().CurPosition(), nameChainLinker);
+
+ StreamLock
+ sl(200);
+ aTitle.Produce_Title( sl()
+ << C_sCePrefix_Module
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ }
+ else
+ {
+ aTitle.Produce_Title( "Global Module" );
+ }
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+
+ // Write children lists:
+ ce_ptr_list aNestedModules;
+ ce_ptr_list aServices;
+ ce_ptr_list aInterfaces;
+ ce_ptr_list aStructs;
+ ce_ptr_list aExceptions;
+ ce_ptr_list aEnums;
+ ce_ptr_list aTypedefs;
+ ce_ptr_list aConstantGroups;
+ ce_ptr_list aSingletons;
+
+ ModuleAttr::Get_AllChildrenSeparated(
+ aNestedModules,
+ aServices,
+ aInterfaces,
+ aStructs,
+ aExceptions,
+ aEnums,
+ aTypedefs,
+ aConstantGroups,
+ aSingletons,
+ Env().Data().Ces(),
+ i_ce );
+
+ // Has this to be in the order of enum E_SubListIndices ???
+ if (produce_ChildList(C_sList_NestedModules, C_sList_NestedModules_Label, aNestedModules ))
+ pNaviSubRow->SwitchOn(sli_NestedModules);
+ if (produce_ChildList(C_sList_Services, C_sList_Services, aServices))
+ pNaviSubRow->SwitchOn(sli_Services);
+ if (produce_ChildList(C_sList_Singletons, C_sList_Singletons, aSingletons))
+ pNaviSubRow->SwitchOn(sli_Singletons);
+ if (produce_ChildList(C_sList_Interfaces, C_sList_Interfaces, aInterfaces))
+ pNaviSubRow->SwitchOn(sli_Interfaces);
+ if (produce_ChildList(C_sList_Structs, C_sList_Structs, aStructs))
+ pNaviSubRow->SwitchOn(sli_Structs);
+ if (produce_ChildList(C_sList_Exceptions, C_sList_Exceptions, aExceptions))
+ pNaviSubRow->SwitchOn(sli_Exceptions);
+ if (produce_ChildList(C_sList_Enums, C_sList_Enums, aEnums))
+ pNaviSubRow->SwitchOn(sli_Enums);
+ if (produce_ChildList(C_sList_Typedefs, C_sList_Typedefs, aTypedefs))
+ pNaviSubRow->SwitchOn(sli_Typedefs);
+ if (produce_ChildList(C_sList_ConstGroups, C_sList_ConstGroups_Label, aConstantGroups))
+ pNaviSubRow->SwitchOn(sli_ConstGroups);
+ pNaviSubRow->Produce_Row();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlModule::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_ModuleMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+
+ // Has to be in the order of E_SubListIndices:
+ ret.AddItem(C_sList_NestedModules, C_sList_NestedModules_Label, false);
+ ret.AddItem(C_sList_Services, C_sList_Services, false);
+ ret.AddItem(C_sList_Singletons, C_sList_Singletons, false);
+ ret.AddItem(C_sList_Interfaces, C_sList_Interfaces, false);
+ ret.AddItem(C_sList_Structs, C_sList_Structs, false);
+ ret.AddItem(C_sList_Exceptions, C_sList_Exceptions, false);
+ ret.AddItem(C_sList_Enums, C_sList_Enums, false);
+ ret.AddItem(C_sList_Typedefs, C_sList_Typedefs, false);
+ ret.AddItem(C_sList_ConstGroups, C_sList_ConstGroups_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+bool
+HF_IdlModule::produce_ChildList( const String & i_sName,
+ const String & i_sLabel,
+ const ce_ptr_list & i_list ) const
+{
+ if ( i_list.size() == 0 )
+ return false;
+
+ HF_SubTitleTable
+ aTable( CurOut(),
+ i_sLabel,
+ i_sName,
+ 2 );
+
+ ce_ptr_list::const_iterator
+ itEnd = i_list.end();
+ for ( ce_ptr_list::const_iterator it = i_list.begin();
+ it != itEnd;
+ ++it )
+ {
+ Xml::Element &
+ rRow = aTable.Add_Row();
+ produce_Link(rRow, *it);
+ produce_LinkDoc(rRow, *it);
+ } // end for
+
+ return true;
+}
+
+void
+HF_IdlModule::produce_Link( Xml::Element & o_row,
+ const client * i_ce ) const
+{
+ csv_assert(i_ce != 0);
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryLeft);
+
+ if ( NOT ary::is_type<ary::idl::Module>(*i_ce) )
+ {
+ HF_IdlTypeText
+ aText(Env(), rCell, true);
+ aText.Produce_byData(i_ce->CeId());
+ }
+ else
+ {
+ StreamLock slBuf(100);
+ rCell
+ >> *new Html::Link( slBuf() << i_ce->LocalName()
+ << "/module-ix.html"
+ << c_str )
+ << i_ce->LocalName();
+ }
+}
+
+void
+HF_IdlModule::produce_LinkDoc( Xml::Element & o_row,
+ const client * i_ce ) const
+{
+ csv_assert(i_ce != 0);
+
+ // We need the cell in any case, because, the rendering may be hurt else.
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryRight);
+
+ const client &
+ rCe = *i_ce;
+ const ce_info *
+ pShort = Get_IdlDocu(rCe.Docu());
+ if ( pShort == 0 )
+ return;
+
+
+ if (pShort->IsDeprecated())
+ {
+ rCell << "[ DEPRECATED ]" << new Html::LineBreak;
+ }
+ if (pShort->IsOptional())
+ {
+ rCell << "[ OPTIONAL ]" << new Html::LineBreak;
+ }
+
+ HF_IdlDocuTextDisplay
+ aShortDisplay(Env(), &rCell, *i_ce);
+ pShort->Short().DisplayAt(aShortDisplay);
+}
diff --git a/autodoc/source/display/idl/hfi_module.hxx b/autodoc/source/display/idl/hfi_module.hxx
new file mode 100644
index 000000000000..f1eab57050bf
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_module.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_MODULE_HXX
+#define ADC_DISPLAY_HFI_MODULE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_NaviSubRow;
+
+class HF_IdlModule : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlModule(
+ Environment & io_rEnv, // The CurDirectory() is the one of the here displayed Module.
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlModule();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ typedef std::vector< const ary::idl::CodeEntity* > ce_ptr_list;
+
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+ bool produce_ChildList(
+ const String & i_sName,
+ const String & i_sLabel,
+ const ce_ptr_list & i_list ) const;
+ void produce_Link(
+ Xml::Element & o_row,
+ const client * i_ce ) const;
+ void produce_LinkDoc(
+ Xml::Element & o_row,
+ const client * i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Module;
+
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_navibar.cxx b/autodoc/source/display/idl/hfi_navibar.cxx
new file mode 100644
index 000000000000..5a9f32dacb1b
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_navibar.cxx
@@ -0,0 +1,225 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_navibar.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <toolkit/hf_navi_main.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include "hfi_interface.hxx"
+#include "hfi_module.hxx"
+#include "hfi_service.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sLocalManualLinks("#devmanual");
+
+
+const String C_sTop = "Overview";
+const String C_sModule = "Module";
+const String C_sUse = "Use";
+const String C_sManual = "Devguide";
+const String C_sIndex = "Index";
+
+
+
+
+HF_IdlNavigationBar::HF_IdlNavigationBar( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlNavigationBar::~HF_IdlNavigationBar()
+{
+}
+
+void
+HF_IdlNavigationBar::Produce_CeMainRow( const client & i_ce,
+ bool i_bNoUsePage )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurModule() );
+ aNaviMain.Add_StdItem( C_sModule, rLink.c_str() );
+
+ if (i_bNoUsePage)
+ {
+ aNaviMain.Add_NoneItem( C_sUse );
+ }
+ else
+ {
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurXRefs(i_ce.LocalName()) );
+ aNaviMain.Add_StdItem( C_sUse, rLink.c_str() );
+ }
+
+ const StringVector &
+ rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if (rManualDescrs.size() == 2)
+ {
+ aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+ }
+ else if (rManualDescrs.size() > 2)
+ {
+ aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+ }
+ else
+ {
+ aNaviMain.Add_NoneItem( C_sManual );
+ }
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_CeXrefsMainRow( const client & i_ce )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_CurModule() );
+ aNaviMain.Add_StdItem( C_sModule, rLink.c_str() );
+
+ aNaviMain.Add_SelfItem( C_sUse );
+
+ const StringVector &
+ rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if (rManualDescrs.size() == 2)
+ {
+ aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+ }
+ else if (rManualDescrs.size() > 2)
+ {
+ aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+ }
+ else
+ {
+ aNaviMain.Add_NoneItem( C_sManual );
+ }
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_ModuleMainRow( const client & i_ce )
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ aNaviMain.Add_SelfItem( C_sModule );
+
+ aNaviMain.Add_NoneItem( C_sUse );
+
+ const StringVector &
+ rManualDescrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if (rManualDescrs.size() == 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, Env().Link2Manual( rManualDescrs.front() ));
+ }
+ else if (rManualDescrs.size() > 1)
+ {
+ aNaviMain.Add_StdItem(C_sManual, C_sLocalManualLinks);
+ }
+ else
+ {
+ aNaviMain.Add_NoneItem( C_sManual );
+ }
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().Linker().PositionOf_Index() );
+ aNaviMain.Add_StdItem( C_sIndex, rLink.c_str() );
+
+ aNaviMain.Produce_Row();
+}
+
+void
+HF_IdlNavigationBar::Produce_IndexMainRow()
+{
+ HF_NaviMainRow
+ aNaviMain( CurOut() );
+
+ StreamLock aLink(500);
+ StreamStr & rLink = aLink();
+
+ Env().Get_LinkTo( rLink.reset(),
+ Env().OutputTree().Overview() );
+ aNaviMain.Add_StdItem( C_sTop, rLink.c_str() );
+
+ aNaviMain.Add_NoneItem( C_sModule );
+ aNaviMain.Add_NoneItem( C_sUse );
+ aNaviMain.Add_NoneItem( C_sManual );
+
+ aNaviMain.Add_SelfItem( C_sIndex );
+
+ aNaviMain.Produce_Row();
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlNavigationBar::Add_SubRow()
+{
+ return *new HF_NaviSubRow( CurOut() );
+}
+
diff --git a/autodoc/source/display/idl/hfi_navibar.hxx b/autodoc/source/display/idl/hfi_navibar.hxx
new file mode 100644
index 000000000000..b84264d3ac25
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_navibar.hxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_NAVIBAR_HXX
+#define ADC_DISPLAY_HFI_NAVIBAR_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "hi_factory.hxx"
+ // PARAMETERS
+
+namespace ary
+{
+namespace idl
+{
+class CodeEntity;
+}
+}
+
+
+class HF_NaviSubRow;
+
+/** @resp
+ Creates a navigation bar for an IDL HTML documentation page.
+*/
+class HF_IdlNavigationBar : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlNavigationBar(
+ HtmlEnvironment_Idl &
+ io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlNavigationBar();
+
+ void Produce_CeMainRow(
+ const client & i_ce,
+ bool i_bNoUsePage = false );
+ void Produce_CeXrefsMainRow(
+ const client & i_ce );
+ void Produce_ModuleMainRow(
+ const client & i_ce );
+ void Produce_IndexMainRow();
+
+ /** Adds the subrow to the o_rOut argument of the constructor.
+ */
+ DYN HF_NaviSubRow & Add_SubRow();
+
+ private:
+ const ary::idl::CodeEntity *
+ pCe;
+};
+
+extern const String
+ C_sLocalManualLinks;
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_property.cxx b/autodoc/source/display/idl/hfi_property.cxx
new file mode 100644
index 000000000000..e92ddc201b25
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_property.cxx
@@ -0,0 +1,451 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_property.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_attribute.hxx>
+#include <ary/idl/ik_constant.hxx>
+#include <ary/idl/ik_enumvalue.hxx>
+#include <ary/idl/ik_property.hxx>
+#include <ary/idl/ik_structelem.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_typetext.hxx"
+#include "hfi_doc.hxx"
+#include "hfi_tag.hxx"
+#include "hi_env.hxx"
+#include "hi_ary.hxx"
+#include "hi_linkhelper.hxx"
+
+void
+HF_IdlDataMember::Produce_byData( const client & ce ) const
+{
+ write_Title(ce);
+ enter_ContentCell();
+ write_Declaration(ce);
+ write_Description(ce);
+ leave_ContentCell();
+}
+
+HF_IdlDataMember::HF_IdlDataMember( Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HtmlFactory_Idl( io_rEnv,
+ &(o_table.Add_Row()
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_MDetail))
+ )
+{
+}
+
+const String sContentBorder("0");
+const String sContentWidth("96%");
+const String sContentPadding("5");
+const String sContentSpacing("0");
+
+const String sBgWhite("#ffffff");
+const String sCenter("center");
+
+void
+HF_IdlDataMember::write_Title( const client & i_ce ) const
+{
+ CurOut()
+ >> *new Html::Label(i_ce.LocalName())
+ << new Html::ClassAttr(C_sMemberTitle)
+ << i_ce.LocalName();
+}
+
+void
+HF_IdlDataMember::write_Description( const client & i_ce ) const
+{
+ CurOut() << new Html::HorizontalLine;
+ write_Docu(CurOut(), i_ce);
+}
+
+void
+HF_IdlDataMember::enter_ContentCell() const
+{
+
+ Xml::Element &
+ rContentCell = CurOut()
+ >> *new Html::Table( sContentBorder,
+ sContentWidth,
+ sContentPadding,
+ sContentSpacing )
+ << new Html::ClassAttr("table-in-data")
+ << new Html::BgColorAttr(sBgWhite)
+ << new Html::AlignAttr(sCenter)
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+ Out().Enter(rContentCell);
+}
+
+
+void
+HF_IdlDataMember::leave_ContentCell() const
+{
+ Out().Leave();
+}
+
+
+HF_IdlProperty::~HF_IdlProperty()
+{
+}
+
+typedef ary::idl::ifc_property::attr PropertyAttr;
+
+void
+HF_IdlProperty::write_Declaration( const client & i_ce ) const
+{
+ if (PropertyAttr::HasAnyStereotype(i_ce))
+ {
+ CurOut() << "[ ";
+ if (PropertyAttr::IsReadOnly(i_ce))
+ CurOut() << "readonly ";
+ if (PropertyAttr::IsBound(i_ce))
+ CurOut() << "bound ";
+ if (PropertyAttr::IsConstrained(i_ce))
+ CurOut() << "constrained ";
+ if (PropertyAttr::IsMayBeAmbiguous(i_ce))
+ CurOut() << "maybeambiguous ";
+ if (PropertyAttr::IsMayBeDefault(i_ce))
+ CurOut() << "maybedefault ";
+ if (PropertyAttr::IsMayBeVoid(i_ce))
+ CurOut() << "maybevoid ";
+ if (PropertyAttr::IsRemovable(i_ce))
+ CurOut() << "removable ";
+ if (PropertyAttr::IsTransient(i_ce))
+ CurOut() << "transient ";
+ CurOut() << "] ";
+ } // end if
+
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData( PropertyAttr::Type(i_ce) );
+
+ CurOut() << " " >> *new Html::Bold << i_ce.LocalName();
+ CurOut() << ";";
+}
+
+
+
+
+HF_IdlAttribute::~HF_IdlAttribute()
+{
+}
+
+typedef ary::idl::ifc_attribute::attr AttributeAttr;
+
+void
+HF_IdlAttribute::write_Declaration( const client & i_ce ) const
+{
+ if (AttributeAttr::HasAnyStereotype(i_ce))
+ {
+ CurOut() << "[ ";
+ if (AttributeAttr::IsReadOnly(i_ce))
+ CurOut() << "readonly ";
+ if (AttributeAttr::IsBound(i_ce))
+ CurOut() << "bound ";
+ CurOut() << "] ";
+ }
+
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData( AttributeAttr::Type(i_ce) );
+
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_ce.LocalName();
+
+ dyn_type_list pGetExceptions;
+ dyn_type_list pSetExceptions;
+ AttributeAttr::Get_GetExceptions(pGetExceptions, i_ce);
+ AttributeAttr::Get_SetExceptions(pSetExceptions, i_ce);
+
+ bool bGetRaises = (*pGetExceptions).IsValid();
+ bool bSetRaises = (*pSetExceptions).IsValid();
+ bool bRaises = bGetRaises OR bSetRaises;
+ if (bRaises)
+ {
+ HF_DocEntryList aSub(CurOut());
+
+ if (bGetRaises)
+ {
+ Xml::Element &
+ rGet = aSub.Produce_Definition();
+ HF_IdlTypeText
+ aExc(Env(), rGet, true);
+ type_list & itExc = *pGetExceptions;
+
+ rGet << "get raises (";
+ aExc.Produce_byData(*itExc);
+ for (++itExc; itExc.operator bool(); ++itExc)
+ {
+ rGet
+ << ",";
+ aExc.Produce_byData(*itExc);
+ } // end for
+ rGet << ")";
+ if (NOT bSetRaises)
+ rGet << ";";
+ } // end if (bGetRaises)
+
+ if (bSetRaises)
+ {
+ Xml::Element &
+ rSet = aSub.Produce_Definition();
+ HF_IdlTypeText
+ aExc(Env(), rSet, true);
+ type_list & itExc = *pSetExceptions;
+
+ rSet << "set raises (";
+ aExc.Produce_byData(*itExc);
+ for (++itExc; itExc.operator bool(); ++itExc)
+ {
+ rSet
+ << ",";
+ aExc.Produce_byData(*itExc);
+ } // end for
+ rSet << ");";
+ } // end if (bSetRaises)
+ }
+ else
+ {
+ CurOut() << ";";
+ }
+}
+
+
+
+
+HF_IdlEnumValue::~HF_IdlEnumValue()
+{
+}
+
+typedef ary::idl::ifc_enumvalue::attr EnumValueAttr;
+
+void
+HF_IdlEnumValue::write_Declaration( const client & i_ce ) const
+{
+ CurOut()
+ >> *new Html::Bold
+ << i_ce.LocalName();
+
+ const String &
+ rValue = EnumValueAttr::Value(i_ce);
+ if ( NOT rValue.empty() )
+ { CurOut() << " " // << " = " // In the moment this is somehow in the value
+ << rValue;
+ // CurOut() << ","; // In the moment this is somehow in the value
+ }
+ else
+ CurOut() << ",";
+}
+
+
+HF_IdlConstant::~HF_IdlConstant()
+{
+}
+
+typedef ary::idl::ifc_constant::attr ConstantAttr;
+
+void
+HF_IdlConstant::write_Declaration( const client & i_ce ) const
+{
+ CurOut() << "const ";
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData(ConstantAttr::Type(i_ce));
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_ce.LocalName();
+ const String &
+ rValue = ConstantAttr::Value(i_ce);
+ CurOut() << " " // << " = " // In the moment this is somehow in the value
+ << rValue;
+ // << ";"; // In the moment this is somehow in the value
+}
+
+
+HF_IdlStructElement::~HF_IdlStructElement()
+{
+}
+
+typedef ary::idl::ifc_structelement::attr StructElementAttr;
+
+void
+HF_IdlStructElement::write_Declaration( const client & i_ce ) const
+{
+ HF_IdlTypeText
+ aType( Env(), CurOut(), true );
+ aType.Produce_byData(StructElementAttr::Type(i_ce));
+ CurOut()
+ << " "
+ >> *new Html::Bold
+ << i_ce.LocalName();
+ CurOut()
+ << ";";
+}
+
+HF_IdlCommentedRelationElement::~HF_IdlCommentedRelationElement()
+{
+}
+
+void
+HF_IdlCommentedRelationElement::produce_Summary( Environment & io_env,
+ Xml::Element & io_context,
+ const comref & i_commentedRef,
+ const client & i_rScopeGivingCe )
+{
+ csv_assert( i_commentedRef.Info() );
+
+ const ary::idl::Type_id aType = i_commentedRef.Type();
+ const ce_info & rDocu = *i_commentedRef.Info();
+
+ bool bShort = NOT rDocu.Short().IsEmpty();
+ bool bDescr = NOT rDocu.Description().IsEmpty();
+
+ if ( bShort )
+ {
+ HF_IdlDocuTextDisplay
+ aDescription(io_env, 0, i_rScopeGivingCe);
+
+ Xml::Element& rPara = io_context >> *new Html::Paragraph;
+ aDescription.Out().Enter( rPara );
+ rDocu.Short().DisplayAt( aDescription );
+
+ // if there's more than just the summary - i.e. a description, or usage restrictions, or tags -,
+ // then add a link to the details section
+ if ( bDescr OR rDocu.IsDeprecated() OR rDocu.IsOptional() OR NOT rDocu.Tags().empty() )
+ {
+ StreamLock aLocalLink(100);
+ aLocalLink() << "#" << get_LocalLinkName(io_env, i_commentedRef);
+
+ aDescription.Out().Out() << "(";
+ aDescription.Out().Out()
+ >> *new Html::Link( aLocalLink().c_str() )
+ << "details";
+ aDescription.Out().Out() << ")";
+ }
+
+ aDescription.Out().Leave();
+ }
+}
+
+void
+HF_IdlCommentedRelationElement::produce_LinkDoc( Environment & io_env,
+ const client & i_ce,
+ Xml::Element & io_context,
+ const comref & i_commentedRef,
+ const E_DocType i_docType )
+{
+ if ( i_commentedRef.Info() != 0 )
+ {
+ if ( i_docType == doctype_complete )
+ {
+ HF_DocEntryList aDocList(io_context);
+ HF_IdlDocu aDocuDisplay(io_env, aDocList);
+
+ aDocuDisplay.Produce_fromReference(*i_commentedRef.Info(), i_ce);
+ }
+ else
+ {
+ produce_Summary(io_env, io_context, i_commentedRef, i_ce);
+ }
+ }
+ else
+ {
+ HF_DocEntryList aDocList(io_context);
+
+ const client *
+ pCe = io_env.Linker().Search_CeFromType(i_commentedRef.Type());
+ const ce_info *
+ pShort = pCe != 0
+ ? Get_IdlDocu(pCe->Docu())
+ : (const ce_info *)(0);
+ if ( pShort != 0 )
+ {
+ aDocList.Produce_NormalTerm("(referenced entity's summary:)");
+ Xml::Element &
+ rDef = aDocList.Produce_Definition();
+ HF_IdlDocuTextDisplay
+ aShortDisplay( io_env, &rDef, *pCe);
+ pShort->Short().DisplayAt(aShortDisplay);
+ } // end if (pShort != 0)
+ } // endif ( (*i_commentedRef).Info() != 0 ) else
+}
+
+
+String
+HF_IdlCommentedRelationElement::get_LocalLinkName( Environment & io_env,
+ const comref & i_commentedRef )
+{
+ StringVector aModules;
+ String sLocalName;
+ ce_id nCe;
+ int nSequenceCount = 0;
+
+ const ary::idl::Type &
+ rType = io_env.Data().Find_Type(i_commentedRef.Type());
+ io_env.Data().Get_TypeText(aModules, sLocalName, nCe, nSequenceCount, rType);
+
+ // speaking strictly, this is not correct: If we have two interfaces with the same local
+ // name, but in different modules, then the link name will be ambiguous. However, this should
+ // be too seldom a case to really make the link names that ugly by adding the module information.
+ return sLocalName;
+}
+
+void
+HF_IdlCommentedRelationElement::write_Title( const client & /*i_ce*/ ) const
+{
+
+ Xml::Element &
+ rAnchor = CurOut()
+ >> *new Html::Label(get_LocalLinkName(Env(), m_relation))
+ << new Html::ClassAttr(C_sMemberTitle);
+
+ HF_IdlTypeText
+ aText(Env(), rAnchor, true);
+ aText.Produce_byData(m_relation.Type());
+}
+
+void
+HF_IdlCommentedRelationElement::write_Declaration( const client & /*i_ce*/ ) const
+{
+ // nothing to do here - an entity which is a commented relation does not have a declaration
+}
+
+void
+HF_IdlCommentedRelationElement::write_Description( const client & i_ce ) const
+{
+ produce_LinkDoc( Env(), i_ce, CurOut(), m_relation, doctype_complete );
+}
diff --git a/autodoc/source/display/idl/hfi_property.hxx b/autodoc/source/display/idl/hfi_property.hxx
new file mode 100644
index 000000000000..2d82e8badb4d
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_property.hxx
@@ -0,0 +1,182 @@
+ /*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_PROPERTY_HXX
+#define ADC_DISPLAY_HFI_PROPERTY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_comrela.hxx>
+
+class HF_SubTitleTable;
+
+class HF_IdlDataMember : public HtmlFactory_Idl
+{
+ public:
+ void Produce_byData(
+ const client & ce ) const;
+ protected:
+ HF_IdlDataMember(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table );
+ virtual ~HF_IdlDataMember() {}
+
+ private:
+ virtual void write_Title(
+ const client & i_ce ) const;
+
+ virtual void write_Declaration(
+ const client & i_ce ) const = 0;
+
+ virtual void write_Description(
+ const client & i_ce ) const;
+
+ void enter_ContentCell() const;
+ void leave_ContentCell() const;
+};
+
+
+
+class HF_IdlProperty : public HF_IdlDataMember
+{
+ public:
+ HF_IdlProperty(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlProperty();
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+class HF_IdlAttribute : public HF_IdlDataMember
+{
+ public:
+ HF_IdlAttribute(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlAttribute();
+
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+
+class HF_IdlEnumValue : public HF_IdlDataMember
+{
+ public:
+ HF_IdlEnumValue(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlEnumValue();
+
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+class HF_IdlConstant : public HF_IdlDataMember
+{
+ public:
+ HF_IdlConstant(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlConstant();
+
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+
+class HF_IdlStructElement : public HF_IdlDataMember
+{
+ public:
+ HF_IdlStructElement(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table )
+ : HF_IdlDataMember(io_rEnv, o_table) {}
+ virtual ~HF_IdlStructElement();
+
+ private:
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+};
+
+class HF_IdlCommentedRelationElement : public HF_IdlDataMember
+{
+ public:
+ HF_IdlCommentedRelationElement(
+ Environment & io_rEnv,
+ HF_SubTitleTable & o_table,
+ const ary::idl::CommentedRelation& i_relation )
+ : HF_IdlDataMember(io_rEnv, o_table)
+ , m_relation( i_relation )
+ {
+ }
+ virtual ~HF_IdlCommentedRelationElement();
+
+ typedef ::ary::idl::CommentedRelation comref;
+
+ static void produce_LinkDoc(
+ Environment & io_env,
+ const client & i_ce,
+ Xml::Element & io_context,
+ const comref & i_commentedRef,
+ const E_DocType i_docType );
+
+ private:
+ virtual void write_Title(
+ const client & i_ce ) const;
+ virtual void write_Declaration(
+ const client & i_ce ) const;
+ virtual void write_Description(
+ const client & i_ce ) const;
+ private:
+ static void produce_Summary( Environment & io_env,
+ Xml::Element & io_context,
+ const comref & i_commentedRef,
+ const client & i_rScopeGivingCe );
+
+ static String get_LocalLinkName( Environment & io_env,
+ const comref & i_commentedRef );
+
+ private:
+ const ary::idl::CommentedRelation& m_relation;
+};
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_service.cxx b/autodoc/source/display/idl/hfi_service.cxx
new file mode 100644
index 000000000000..a4d105fc0f86
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_service.cxx
@@ -0,0 +1,363 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_service.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_property.hxx>
+#include <ary/idl/ik_service.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+
+extern const String
+ C_sCePrefix_Service("service");
+
+namespace
+{
+
+const String
+ C_sList_IncludedServices("Services' Summary");
+const String
+ C_sList_IncludedServices_Heading("Included Services - Summary");
+const String
+ C_sList_IncludedServices_Label("ServicesSummary");
+const String
+ C_sList_IncludedServicesDetails("Services' Details");
+const String
+ C_sList_IncludedServicesDetails_Heading("Included Services - Details");
+const String
+ C_sList_IncludedServicesDetails_Label("ServicesDetails");
+const String
+ C_sList_ExportedInterfaces("Interfaces' Summary");
+const String
+ C_sList_ExportedInterfaces_Heading("Exported Interfaces - Summary");
+const String
+ C_sList_ExportedInterfaces_Label("InterfacesSummary");
+const String
+ C_sList_ExportedInterfacesDetails("Interfaces' Details");
+const String
+ C_sList_ExportedInterfacesDetails_Heading("Exported Interfaces - Details");
+const String
+ C_sList_ExportedInterfacesDetails_Label("InterfacesDetails");
+const String
+ C_sList_Properties("Properties' Summary");
+const String
+ C_sList_Properties_Label("PropertiesSummary");
+const String
+ C_sList_PropertiesDetails("Properties' Details");
+const String
+ C_sList_PropertiesDetails_Label("PropertiesDetails");
+
+
+enum E_SubListIndices
+{
+ sli_IncludedServicesSummary = 0,
+ sli_InterfacesSummary = 1,
+ sli_PropertiesSummary = 2,
+ sli_IncludedServicesDetails = 3,
+ sli_InterfacesDetails = 4,
+ sli_PropertiesDetails = 5
+};
+
+} //anonymous namespace
+
+
+HF_IdlService::HF_IdlService( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlService::~HF_IdlService()
+{
+
+}
+
+typedef ::ary::idl::ifc_service::attr
+ ServiceAttr;
+typedef ::ary::Dyn_StdConstIterator< ::ary::idl::CommentedRelation >
+ dyn_comref_list;
+
+void
+HF_IdlService::produce_CommentedRelations( const client & i_ce,
+ comref_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel,
+ const E_DocType i_docType ) const
+{
+ csv_assert( it_list );
+
+ bool bSummaryOnly = ( i_docType == doctype_summaryOnly );
+ HF_SubTitleTable aTable(
+ CurOut(),
+ bSummaryOnly ? i_summaryLabel : i_detailsLabel,
+ bSummaryOnly ? i_summaryTitle : i_detailsTitle,
+ 2 );
+
+ for ( ; it_list; ++it_list )
+ {
+ Xml::Element &
+ rRow = aTable.Add_Row();
+
+ if ( bSummaryOnly )
+ {
+ produce_Link(rRow, (*it_list).Type());
+ produce_LinkSummary(i_ce, rRow, *it_list);
+ }
+ else
+ {
+ HF_IdlCommentedRelationElement
+ aRelation( Env(), aTable, *it_list );
+ aRelation.Produce_byData( i_ce );
+ }
+ } // end for
+}
+
+void
+HF_IdlService::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Service, i_ce);
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ // produce ...
+ // - included services: summary
+ dyn_comref_list dpIncludedServices;
+ ServiceAttr::Get_IncludedServices(dpIncludedServices, i_ce);
+ if ( (*dpIncludedServices).operator bool() )
+ {
+ produce_CommentedRelations( i_ce, *dpIncludedServices,
+ C_sList_IncludedServices_Heading,
+ C_sList_IncludedServices_Label,
+ C_sList_IncludedServicesDetails_Heading,
+ C_sList_IncludedServicesDetails_Label,
+ doctype_summaryOnly );
+ pNaviSubRow->SwitchOn(sli_IncludedServicesSummary);
+ }
+
+ // - exported interfaces: summary
+ dyn_comref_list dpExportedInterfaces;
+ ServiceAttr::Get_ExportedInterfaces(dpExportedInterfaces, i_ce);
+ if ( (*dpExportedInterfaces).operator bool() )
+ {
+ produce_CommentedRelations( i_ce, *dpExportedInterfaces,
+ C_sList_ExportedInterfaces_Heading,
+ C_sList_ExportedInterfaces_Label,
+ C_sList_ExportedInterfacesDetails_Heading,
+ C_sList_ExportedInterfacesDetails_Label,
+ doctype_summaryOnly );
+ pNaviSubRow->SwitchOn(sli_InterfacesSummary);
+ }
+
+ // - supported properties: summary
+ dyn_ce_list dpProperties;
+ ServiceAttr::Get_Properties(dpProperties, i_ce);
+ if ( (*dpProperties).operator bool() )
+ {
+ produce_Members( *dpProperties,
+ C_sList_Properties,
+ C_sList_Properties_Label,
+ C_sList_PropertiesDetails,
+ C_sList_PropertiesDetails_Label,
+ viewtype_summary );
+ pNaviSubRow->SwitchOn(sli_PropertiesSummary);
+ }
+
+ // - included services: details
+ ServiceAttr::Get_IncludedServices(dpIncludedServices, i_ce);
+ if ( (*dpIncludedServices).operator bool() )
+ {
+ produce_CommentedRelations( i_ce, *dpIncludedServices,
+ C_sList_IncludedServices_Heading,
+ C_sList_IncludedServices_Label,
+ C_sList_IncludedServicesDetails_Heading,
+ C_sList_IncludedServicesDetails_Label,
+ doctype_complete );
+ pNaviSubRow->SwitchOn(sli_IncludedServicesDetails);
+ }
+
+ // - exported interfaces: details
+ ServiceAttr::Get_ExportedInterfaces(dpExportedInterfaces, i_ce);
+ if ( (*dpExportedInterfaces).operator bool() )
+ {
+ produce_CommentedRelations( i_ce, *dpExportedInterfaces,
+ C_sList_ExportedInterfaces_Heading,
+ C_sList_ExportedInterfaces_Label,
+ C_sList_ExportedInterfacesDetails_Heading,
+ C_sList_ExportedInterfacesDetails_Label,
+ doctype_complete );
+ pNaviSubRow->SwitchOn(sli_InterfacesDetails);
+ }
+
+ // supported properties: details
+ ServiceAttr::Get_Properties(dpProperties, i_ce);
+ if ( (*dpProperties).operator bool() )
+ {
+ produce_Members( *dpProperties,
+ C_sList_Properties,
+ C_sList_Properties_Label,
+ C_sList_PropertiesDetails,
+ C_sList_PropertiesDetails_Label,
+ viewtype_details );
+ pNaviSubRow->SwitchOn(sli_PropertiesDetails);
+ }
+
+ pNaviSubRow->Produce_Row();
+ CurOut() << new Xml::XmlCode("<br>&nbsp;");
+}
+
+typedef ary::idl::ifc_property::attr PropertyAttr;
+
+void
+HF_IdlService::produce_SummaryDeclaration( Xml::Element & o_row,
+ const client & i_property ) const
+{
+ // KORR_FUTURE
+ // Put this in to HF_IdlProperty!
+
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr( C_sCellStyle_SummaryLeft );
+
+ if (PropertyAttr::HasAnyStereotype(i_property))
+ {
+ rCell << "[ ";
+ if (PropertyAttr::IsReadOnly(i_property))
+ rCell << "readonly ";
+ if (PropertyAttr::IsBound(i_property))
+ rCell << "bound ";
+ if (PropertyAttr::IsConstrained(i_property))
+ rCell << "constrained ";
+ if (PropertyAttr::IsMayBeAmbiguous(i_property))
+ rCell << "maybeambiguous ";
+ if (PropertyAttr::IsMayBeDefault(i_property))
+ rCell << "maybedefault ";
+ if (PropertyAttr::IsMayBeVoid(i_property))
+ rCell << "maybevoid ";
+ if (PropertyAttr::IsRemovable(i_property))
+ rCell << "removable ";
+ if (PropertyAttr::IsTransient(i_property))
+ rCell << "transient ";
+ rCell << "] ";
+ } // end if
+
+ HF_IdlTypeText
+ aType( Env(), rCell, true );
+ aType.Produce_byData( PropertyAttr::Type(i_property) );
+
+ StreamLock aLocalLink(100);
+ aLocalLink() << "#" << i_property.LocalName();
+ rCell
+ << new Html::LineBreak
+ >> *new Html::Link( aLocalLink().c_str() )
+ << i_property.LocalName();
+}
+
+DYN HF_NaviSubRow &
+HF_IdlService::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_IncludedServices, C_sList_IncludedServices_Label, false);
+ ret.AddItem(C_sList_ExportedInterfaces, C_sList_ExportedInterfaces_Label, false);
+ ret.AddItem(C_sList_Properties, C_sList_Properties_Label, false);
+ ret.AddItem(C_sList_IncludedServicesDetails, C_sList_IncludedServicesDetails_Label, false);
+ ret.AddItem(C_sList_ExportedInterfacesDetails, C_sList_ExportedInterfacesDetails_Label, false);
+ ret.AddItem(C_sList_PropertiesDetails, C_sList_PropertiesDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlService::produce_Link( Xml::Element & o_row,
+ type_id i_type ) const
+{
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryLeft);
+ HF_IdlTypeText
+ aText(Env(), rCell, true);
+ aText.Produce_byData(i_type);
+}
+
+void
+HF_IdlService::produce_LinkSummary( const client & i_ce,
+ Xml::Element & o_row,
+ const comref & i_commentedRef ) const
+{
+ Xml::Element &
+ rCell = o_row
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_SummaryRight);
+
+ HF_IdlCommentedRelationElement::produce_LinkDoc( Env(), i_ce, rCell, i_commentedRef, doctype_summaryOnly );
+}
+
+void
+HF_IdlService::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ HF_IdlProperty
+ aProperty( Env(), o_table);
+ aProperty.Produce_byData( i_ce );
+}
+
+
+
diff --git a/autodoc/source/display/idl/hfi_service.hxx b/autodoc/source/display/idl/hfi_service.hxx
new file mode 100644
index 000000000000..35e290c67157
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_service.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_SERVICE_HXX
+#define ADC_DISPLAY_HFI_SERVICE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_comrela.hxx>
+
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+
+class HF_IdlService : public HtmlFactory_Idl
+{
+ public:
+ typedef ::ary::idl::CommentedRelation comref;
+ typedef ::ary::StdConstIterator< comref > comref_list;
+
+ HF_IdlService(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlService();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ // Overwritten from HtmlFactory_Idl:
+ virtual void produce_SummaryDeclaration(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+
+ // Locals
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+
+ void produce_Link(
+ Xml::Element & o_row,
+ type_id i_type ) const;
+ void produce_LinkSummary(
+ const client & i_ce,
+ Xml::Element & o_row,
+ const comref & i_commentedRef ) const;
+
+ void produce_MemberDetails( /// of property
+ HF_SubTitleTable & o_table,
+ const client & i_ce ) const;
+
+ void produce_CommentedRelations(
+ const client & i_ce,
+ comref_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel,
+ const E_DocType i_docType ) const;
+
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Service;
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_singleton.cxx b/autodoc/source/display/idl/hfi_singleton.cxx
new file mode 100644
index 000000000000..147fda4e2a19
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_singleton.cxx
@@ -0,0 +1,133 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_singleton.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_singleton.hxx>
+#include <ary/idl/ik_sisingleton.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+extern const String
+ C_sCePrefix_Singleton("singleton");
+
+const String
+ C_sAssociatedService("Associated Service");
+const String
+ C_sImplementedInterface("Supported Interface");
+
+
+
+HF_IdlSingleton::HF_IdlSingleton( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlSingleton::~HF_IdlSingleton()
+{
+
+}
+
+typedef ::ary::idl::ifc_singleton::attr SingletonAttr;
+typedef ::ary::idl::ifc_sglifcsingleton::attr SglIfcSingletonAttr;
+
+void
+HF_IdlSingleton::Produce_byData_ServiceBased( const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Singleton, i_ce);
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term(C_sAssociatedService);
+
+ HF_IdlTypeText
+ aAssociatedService( Env(), aTopList.Produce_Definition(), true );
+ aAssociatedService.Produce_byData( SingletonAttr::AssociatedService(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlSingleton::Produce_byData_InterfaceBased( const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Singleton, i_ce);
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term(C_sImplementedInterface);
+
+ HF_IdlTypeText
+ aImplementedInterface( Env(), aTopList.Produce_Definition(), true );
+ aImplementedInterface.Produce_byData( SglIfcSingletonAttr::BaseInterface(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlSingleton::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce,true); // true := avoid link to Use-page.
+
+ CurOut() << new Html::HorizontalLine();
+}
diff --git a/autodoc/source/display/idl/hfi_singleton.hxx b/autodoc/source/display/idl/hfi_singleton.hxx
new file mode 100644
index 000000000000..4cbb1dc00cff
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_singleton.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_SINGLETON_HXX
+#define ADC_DISPLAY_HFI_SINGLETON_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+class HF_NaviSubRow;
+
+
+class HF_IdlSingleton : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlSingleton(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlSingleton();
+
+ void Produce_byData_ServiceBased(
+ const client & i_ce ) const;
+ void Produce_byData_InterfaceBased(
+ const client & i_ce ) const;
+ private:
+ void make_Navibar(
+ const client & i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Singleton;
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_siservice.cxx b/autodoc/source/display/idl/hfi_siservice.cxx
new file mode 100644
index 000000000000..127f609ded9b
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_siservice.cxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_siservice.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_function.hxx>
+#include <ary/idl/ik_siservice.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_method.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_env.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+namespace
+{
+
+const String
+ C_sImplementedInterface("Supported Interface");
+
+const String
+ C_sList_Constructors("Constructors' Summary");
+const String
+ C_sList_Constructors_Label("ConstructorsSummary");
+const String
+ C_sDetails_Constructors("Constructors' Details");
+const String
+ C_sDetails_Constructors_Label("ConstructorsDetails");
+
+
+enum E_SubListIndices
+{
+ sli_ConstructorsSummary = 0,
+ sli_ConstructorsDetails = 1
+};
+
+} //anonymous namespace
+
+
+HF_IdlSglIfcService::HF_IdlSglIfcService( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlSglIfcService::~HF_IdlSglIfcService()
+{
+}
+
+typedef ::ary::idl::ifc_sglifcservice::attr SglIfcServiceAttr;
+
+void
+HF_IdlSglIfcService::Produce_byData( const client & i_ce ) const
+{
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Service, i_ce);
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term(C_sImplementedInterface);
+
+ HF_IdlTypeText
+ aImplementedInterface( Env(), aTopList.Produce_Definition(), true, &i_ce);
+ aImplementedInterface.Produce_byData( SglIfcServiceAttr::BaseInterface(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ dyn_ce_list
+ dpConstructors;
+ SglIfcServiceAttr::Get_Constructors(dpConstructors, i_ce);
+ if ( (*dpConstructors).operator bool() )
+ {
+ produce_Members( *dpConstructors,
+ C_sList_Constructors,
+ C_sList_Constructors_Label,
+ C_sDetails_Constructors,
+ C_sDetails_Constructors_Label );
+ pNaviSubRow->SwitchOn(sli_ConstructorsSummary);
+ pNaviSubRow->SwitchOn(sli_ConstructorsDetails);
+ }
+
+ pNaviSubRow->Produce_Row();
+ CurOut() << new Xml::XmlCode("<br>&nbsp;");
+}
+
+DYN HF_NaviSubRow &
+HF_IdlSglIfcService::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce, true);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Constructors, C_sList_Constructors_Label, false);
+ ret.AddItem(C_sDetails_Constructors, C_sDetails_Constructors_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+typedef ary::idl::ifc_function::attr funcAttr;
+
+void
+HF_IdlSglIfcService::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce ) const
+{
+ HF_IdlMethod
+ aConstructor( Env(),
+ o_table.Add_Row()
+ >> *new Html::TableCell
+ << new Html::ClassAttr(C_sCellStyle_MDetail) );
+
+ ary::Dyn_StdConstIterator<ary::idl::Parameter>
+ pParameters;
+ funcAttr::Get_Parameters(pParameters, i_ce);
+
+ ary::Dyn_StdConstIterator<ary::idl::Type_id>
+ pExceptions;
+ funcAttr::Get_Exceptions(pExceptions, i_ce);
+
+ aConstructor.Produce_byData( i_ce.LocalName(),
+ funcAttr::ReturnType(i_ce),
+ *pParameters,
+ *pExceptions,
+ funcAttr::IsOneway(i_ce),
+ funcAttr::HasEllipse(i_ce),
+ i_ce );
+}
diff --git a/autodoc/source/display/idl/hfi_siservice.hxx b/autodoc/source/display/idl/hfi_siservice.hxx
new file mode 100644
index 000000000000..c7a0b62e1b38
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_siservice.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_SISERVICE_HXX
+#define ADC_DISPLAY_HFI_SISERVICE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_comrela.hxx>
+
+class HF_NaviSubRow;
+class HF_SubTitleTable;
+
+class HF_IdlSglIfcService : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlSglIfcService(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlSglIfcService();
+
+ void Produce_byData(
+ const client & i_ce ) const;
+ private:
+ DYN HF_NaviSubRow & make_Navibar(
+ const client & i_ce ) const;
+
+ void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & i_ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+extern const String
+ C_sCePrefix_Service;
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_struct.cxx b/autodoc/source/display/idl/hfi_struct.cxx
new file mode 100644
index 000000000000..6c98f3a5cef0
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_struct.cxx
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_struct.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/ik_exception.hxx>
+#include <ary/idl/ik_struct.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_navi_sub.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_property.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCePrefix_Struct("struct");
+extern const String
+ C_sCePrefix_Exception("exception");
+
+
+namespace
+{
+
+const String
+ C_sBaseStruct("Base Hierarchy");
+const String
+ C_sBaseException("Base Hierarchy");
+
+const String
+ C_sList_Elements("Elements' Summary");
+const String
+ C_sList_Elements_Label("Elements");
+
+const String
+ C_sList_ElementDetails("Elements' Details");
+const String
+ C_sList_ElementDetails_Label("ElementDetails");
+
+enum E_SubListIndices
+{
+ sli_ElementsSummary = 0,
+ sli_ElementsDetails = 1
+};
+
+} // anonymous namespace
+
+
+
+HF_IdlStruct::HF_IdlStruct( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bIsException )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ bIsException(i_bIsException)
+{
+}
+
+HF_IdlStruct::~HF_IdlStruct()
+{
+}
+
+void
+HF_IdlStruct::Produce_byData( const client & i_ce ) const
+{
+ const ary::idl::Struct *
+ pStruct =
+ bIsException
+ ? 0
+ : static_cast< const ary::idl::Struct* >(&i_ce);
+ bool bIsTemplate =
+ pStruct != 0
+ ? pStruct->TemplateParameterType().IsValid()
+ : false;
+
+ Dyn<HF_NaviSubRow>
+ pNaviSubRow( &make_Navibar(i_ce) );
+
+ HF_TitleTable
+ aTitle(CurOut());
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+
+ // Title:
+ StreamLock
+ slAnnotations(200);
+ get_Annotations(slAnnotations(), i_ce);
+
+ StreamLock rTitle(200);
+ if (bIsTemplate)
+ rTitle() << "template ";
+ rTitle()
+ << (bIsException
+ ? C_sCePrefix_Exception
+ : C_sCePrefix_Struct)
+ << " "
+ << i_ce.LocalName();
+ if (bIsTemplate)
+ {
+ csv_assert(pStruct != 0);
+ rTitle()
+ << "<"
+ << pStruct->TemplateParameter()
+ << ">";
+ }
+ aTitle.Produce_Title(slAnnotations().c_str(), rTitle().c_str());
+
+ // Bases:
+ produce_Bases( aTitle.Add_Row(),
+ i_ce,
+ bIsException
+ ? C_sBaseException
+ : C_sBaseStruct );
+
+ // Docu:
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+
+ // Elements:
+ dyn_ce_list
+ dpElements;
+ if (bIsException)
+ ary::idl::ifc_exception::attr::Get_Elements(dpElements, i_ce);
+ else
+ ary::idl::ifc_struct::attr::Get_Elements(dpElements, i_ce);
+
+ if ( (*dpElements).operator bool() )
+ {
+ produce_Members( *dpElements,
+ C_sList_Elements,
+ C_sList_Elements_Label,
+ C_sList_ElementDetails,
+ C_sList_ElementDetails_Label );
+ pNaviSubRow->SwitchOn(sli_ElementsSummary);
+ pNaviSubRow->SwitchOn(sli_ElementsDetails);
+ }
+ pNaviSubRow->Produce_Row();
+}
+
+HtmlFactory_Idl::type_id
+HF_IdlStruct::inq_BaseOf( const client & i_ce ) const
+{
+ return bIsException
+ ? ary::idl::ifc_exception::attr::Base(i_ce)
+ : ary::idl::ifc_struct::attr::Base(i_ce);
+}
+
+HF_NaviSubRow &
+HF_IdlStruct::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ DYN HF_NaviSubRow &
+ ret = aNaviBar.Add_SubRow();
+ ret.AddItem(C_sList_Elements, C_sList_Elements_Label, false);
+ ret.AddItem(C_sList_ElementDetails, C_sList_ElementDetails_Label, false);
+
+ CurOut() << new Html::HorizontalLine();
+ return ret;
+}
+
+void
+HF_IdlStruct::produce_MemberDetails( HF_SubTitleTable & o_table,
+ const client & i_ce) const
+{
+ HF_IdlStructElement
+ aElement( Env(), o_table );
+ aElement.Produce_byData(i_ce);
+}
diff --git a/autodoc/source/display/idl/hfi_struct.hxx b/autodoc/source/display/idl/hfi_struct.hxx
new file mode 100644
index 000000000000..e3a98dddac1e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_struct.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_STRUCT_HXX
+#define ADC_DISPLAY_HFI_STRUCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+/** Is used to display ->ary::idl::Exception s as well as ->ary::idl::Struct s.
+*/
+class HF_IdlStruct : public HtmlFactory_Idl
+{
+ public:
+
+ HF_IdlStruct(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bIsException );
+ virtual ~HF_IdlStruct();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ // Interface HtmlFactory_Idl:
+ virtual type_id inq_BaseOf(
+ const client & i_ce ) const;
+ // Locals
+ HF_NaviSubRow & make_Navibar(
+ const client & ce ) const;
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & ce ) const;
+ // DATA
+ bool bIsException;
+};
+
+
+
+// IMPLEMENTATION
+
+
+extern const String
+ C_sCePrefix_Struct;
+extern const String
+ C_sCePrefix_Exception;
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_tag.cxx b/autodoc/source/display/idl/hfi_tag.cxx
new file mode 100644
index 000000000000..78c913db3b99
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_tag.cxx
@@ -0,0 +1,354 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_tag.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary_i/ci_text2.hxx>
+#include <ary_i/d_token.hxx>
+#include <toolkit/out_tree.hxx>
+#include <adc_cl.hxx>
+#include <adc_msg.hxx>
+#include "hfi_typetext.hxx"
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include "hi_linkhelper.hxx"
+
+
+using ary::inf::DocuTex2;
+
+
+inline void
+HF_IdlTag::Enter_TextOut( Xml::Element & o_rText ) const
+{
+ aTextOut.Out().Enter(o_rText);
+}
+
+inline void
+HF_IdlTag::Leave_TextOut() const
+{
+ aTextOut.Out().Leave();
+}
+
+inline void
+HF_IdlTag::PutText_Out( const ary::inf::DocuTex2 & i_rText ) const
+{
+ i_rText.DisplayAt( const_cast< HF_IdlDocuTextDisplay& >(aTextOut) );
+}
+
+
+
+HF_IdlTag::HF_IdlTag( Environment & io_rEnv,
+ const ary::idl::CodeEntity & i_rScopeGivingCe )
+ : HtmlFactory_Idl( io_rEnv, 0 ),
+ pTitleOut(0),
+ aTextOut(io_rEnv, 0, i_rScopeGivingCe)
+{
+}
+
+HF_IdlTag::~HF_IdlTag()
+{
+}
+
+void
+HF_IdlTag::Produce_byData( Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const ary::inf::AtTag2 & i_rTag ) const
+{
+ pTitleOut = &o_rTitle;
+ Enter_TextOut(o_rText);
+ i_rTag.DisplayAt( const_cast< HF_IdlTag& >(*this) );
+ Leave_TextOut();
+}
+
+void
+HF_IdlTag::Produce_byData( Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const std::vector< csi::dsapi::DT_SeeAlsoAtTag* > &
+ i_seeAlsoVector ) const
+{
+ o_rTitle << "See also";
+ for ( std::vector< csi::dsapi::DT_SeeAlsoAtTag* >::const_iterator
+ it = i_seeAlsoVector.begin();
+ it != i_seeAlsoVector.end();
+ ++it )
+ {
+ if (it != i_seeAlsoVector.begin())
+ {
+ o_rText << ", ";
+ }
+ HF_IdlTypeText
+ aLinkText(Env(), o_rText, true, &aTextOut.ScopeGivingCe());
+ aLinkText.Produce_byData( (*it)->LinkText() );
+ }
+}
+
+void
+HF_IdlTag::Display_StdAtTag( const csi::dsapi::DT_StdAtTag & i_rTag )
+{
+ if ( i_rTag.Text().IsEmpty() )
+ return;
+
+ csv_assert( pTitleOut != 0 );
+ *pTitleOut << i_rTag.Title();
+ PutText_Out( i_rTag.Text() );
+}
+
+void
+HF_IdlTag::Display_SeeAlsoAtTag( const csi::dsapi::DT_SeeAlsoAtTag & i_rTag )
+{
+ if ( i_rTag.Text().IsEmpty() )
+ return;
+
+ csv_assert( pTitleOut != 0 );
+ *pTitleOut << "See also";
+
+ HF_IdlTypeText aLinkText(Env(),aTextOut.CurOut(),true, &aTextOut.ScopeGivingCe());
+ aLinkText.Produce_byData( i_rTag.LinkText() );
+
+ aTextOut.CurOut() << new Html::LineBreak;
+ PutText_Out( i_rTag.Text() );
+}
+
+void
+HF_IdlTag::Display_ParameterAtTag( const csi::dsapi::DT_ParameterAtTag & i_rTag )
+{
+ csv_assert( pTitleOut != 0 );
+ StreamLock sl(100);
+ *pTitleOut
+ << ( sl() << "Parameter " << i_rTag.Title() << c_str );
+ PutText_Out( i_rTag.Text() );
+}
+
+void
+HF_IdlTag::Display_SinceAtTag( const csi::dsapi::DT_SinceAtTag & i_rTag )
+{
+ csv_assert(pTitleOut != 0);
+
+ if ( i_rTag.Text().IsEmpty() )
+ {
+ return;
+ }
+
+ // Transform the value of the @since tag into the text to be displayed.
+ String sDisplay =
+ autodoc::CommandLine::Get_().DisplayOf_SinceTagValue(
+ i_rTag.Text().TextOfFirstToken() );
+ if (sDisplay.empty())
+ return;
+
+ *pTitleOut << "Since ";
+ DocuTex2 aHelp;
+ aHelp.AddToken(* new csi::dsapi::DT_TextToken(sDisplay));
+ PutText_Out(aHelp);
+}
+
+
+//******************** HF_IdlShortDocu *********************/
+
+HF_IdlShortDocu::HF_IdlShortDocu( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl( io_rEnv, &o_rOut )
+{
+}
+
+HF_IdlShortDocu::~HF_IdlShortDocu()
+{
+}
+
+void
+HF_IdlShortDocu::Produce_byData( const ary::idl::CodeEntity & i_rCe )
+{
+ const ce_info *
+ pDocu = Get_IdlDocu(i_rCe.Docu());
+ if (pDocu == 0)
+ return;
+
+ const ce_info &
+ rDocu = *pDocu;
+ if ( rDocu.IsDeprecated() )
+ {
+ CurOut()
+ >> *new Html::Bold
+ << "[ DEPRECATED ]" << new Html::LineBreak;
+ }
+ if ( rDocu.IsOptional() )
+ {
+ CurOut()
+ >> *new Html::Bold
+ << "[ OPTIONAL ]" << new Html::LineBreak;
+ }
+
+ HF_IdlDocuTextDisplay
+ aText( Env(), &CurOut(), i_rCe);
+ rDocu.Short().DisplayAt(aText);
+}
+
+
+//******************** HF_IdlDocuTextDisplay *********************/
+
+
+HF_IdlDocuTextDisplay::HF_IdlDocuTextDisplay( Environment & io_rEnv,
+ Xml::Element * o_pOut,
+ const ary::idl::CodeEntity & i_rScopeGivingCe )
+ : HtmlFactory_Idl(io_rEnv, o_pOut),
+ sScope(),
+ sLinkToken(),
+ bGatherLink(false),
+ pScopeGivingCe(&i_rScopeGivingCe)
+{
+}
+
+HF_IdlDocuTextDisplay::~HF_IdlDocuTextDisplay()
+{
+}
+
+void
+HF_IdlDocuTextDisplay::Display_TextToken( const csi::dsapi::DT_TextToken & i_rToken )
+{
+ if (bGatherLink)
+ {
+ if (sLinkToken.length() == 0)
+ {
+ sLinkToken = i_rToken.GetText();
+ return;
+ }
+ else
+ {
+ if ( pScopeGivingCe == 0 )
+ { // only in original file
+ TheMessages().Out_TypeVsMemberMisuse(sLinkToken, Env().CurPageCe_AsText(), 0);
+ }
+
+ StopLinkGathering();
+ }
+ } // endif (bGatherLink)
+
+ CurOut() << new Xml::XmlCode( i_rToken.GetText() );
+}
+
+void
+HF_IdlDocuTextDisplay::Display_White()
+{
+ CurOut() << " ";
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupType( const csi::dsapi::DT_MupType & i_rToken )
+{
+ if (i_rToken.IsBegin())
+ {
+ StartLinkGathering(i_rToken.Scope());
+ }
+ else
+ {
+ if (bGatherLink)
+ {
+ CreateTypeLink();
+ StopLinkGathering();
+ }
+ }
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupMember( const csi::dsapi::DT_MupMember & i_rToken )
+{
+ if (i_rToken.IsBegin())
+ {
+ StartLinkGathering(i_rToken.Scope());
+ }
+ else
+ {
+ if (bGatherLink)
+ {
+ CreateMemberLink();
+ StopLinkGathering();
+ }
+ }
+}
+
+void
+HF_IdlDocuTextDisplay::Display_MupConst( const csi::dsapi::DT_MupConst & i_rToken )
+{
+ CurOut()
+ >> *new Html::Bold
+ << i_rToken.GetText();
+}
+
+void
+HF_IdlDocuTextDisplay::Display_Style( const csi::dsapi::DT_Style & i_rToken )
+{
+ CurOut() << new Xml::XmlCode( i_rToken.GetText() );
+}
+
+void
+HF_IdlDocuTextDisplay::Display_EOL()
+{
+ CurOut() << "\n";
+}
+
+void
+HF_IdlDocuTextDisplay::CreateTypeLink()
+{
+ if (strchr(sLinkToken,':') != 0)
+ {
+ TheMessages().Out_TypeVsMemberMisuse(sLinkToken, Env().CurPageCe_AsFile(".idl"), 0);
+ CurOut() << sLinkToken;
+ return;
+ }
+ HF_IdlTypeText aLink(Env(), CurOut(), true, &ScopeGivingCe());
+ aLink.Produce_LinkInDocu(sScope, sLinkToken, String::Null_());
+}
+
+void
+HF_IdlDocuTextDisplay::CreateMemberLink()
+{
+
+ HF_IdlTypeText aLink(Env(), CurOut(), true, &ScopeGivingCe());
+
+ const char *
+ sSplit = strchr(sLinkToken,':');
+
+ if (sSplit != 0)
+ {
+ String sCe(sLinkToken.c_str(), sSplit - sLinkToken.c_str());
+ String sMember(sSplit+2);
+
+ if (NOT sScope.empty() OR ScopeGivingCe().LocalName() != sCe )
+ aLink.Produce_LinkInDocu(sScope, sCe, sMember);
+ else
+ aLink.Produce_LocalLinkInDocu(sMember);
+ }
+ else
+ {
+ aLink.Produce_LocalLinkInDocu(sLinkToken);
+ }
+}
diff --git a/autodoc/source/display/idl/hfi_tag.hxx b/autodoc/source/display/idl/hfi_tag.hxx
new file mode 100644
index 000000000000..1d09d21f8c12
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_tag.hxx
@@ -0,0 +1,177 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TAG_HXX
+#define ADC_DISPLAY_HFI_TAG_HXX
+
+// BASE CLASSES
+#include "hi_factory.hxx"
+#include <ary_i/disdocum.hxx>
+// USED SERVICES
+#include <ary/idl/i_types4idl.hxx>
+#include <ary_i/ci_atag2.hxx>
+#include <ary_i/ci_text2.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+
+#include <toolkit/hf_docentry.hxx>
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+}
+}
+
+
+
+
+/** This class is an implementation of ary::inf::DocuText_Display
+ and will be used by that interface.
+*/
+class HF_IdlDocuTextDisplay : public HtmlFactory_Idl,
+ public ary::inf::DocuText_Display
+{
+ public:
+ HF_IdlDocuTextDisplay(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut,
+ const ary::idl::CodeEntity &
+ i_rScopeGivingCe );
+ virtual ~HF_IdlDocuTextDisplay();
+
+ const ary::idl::CodeEntity &
+ ScopeGivingCe() const { return *pScopeGivingCe; }
+ private:
+ virtual void Display_TextToken(
+ const csi::dsapi::DT_TextToken &
+ i_rToken );
+ virtual void Display_White();
+
+ virtual void Display_MupType(
+ const csi::dsapi::DT_MupType &
+ i_rToken );
+ virtual void Display_MupMember(
+ const csi::dsapi::DT_MupMember &
+ i_rToken );
+ virtual void Display_MupConst(
+ const csi::dsapi::DT_MupConst &
+ i_rToken );
+ virtual void Display_Style(
+ const csi::dsapi::DT_Style & i_rToken );
+ virtual void Display_EOL();
+
+ // Local
+ void StartLinkGathering(
+ const String & i_sScope )
+ { sLinkToken = ""; sScope = i_sScope; bGatherLink = true; }
+ void StopLinkGathering() { bGatherLink = false; }
+ /** @precond
+ The scope is in sScope, the name is in sLinkToken.
+ */
+ void CreateTypeLink();
+ /** @precond
+ The scope is in sScope, the qualified member-name is in sLinkToken.
+ */
+ void CreateMemberLink();
+
+ // DATA
+ String sScope;
+ String sLinkToken;
+ bool bGatherLink;
+ const ary::idl::CodeEntity *
+ pScopeGivingCe;
+};
+
+
+
+class HF_IdlShortDocu : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlShortDocu(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlShortDocu();
+
+ void Produce_byData(
+ const ary::idl::CodeEntity &
+ i_rCe );
+};
+
+
+
+class HF_IdlTag : public HtmlFactory_Idl,
+ public ary::inf::DocuTag_Display
+{
+ public:
+ HF_IdlTag(
+ Environment & io_rEnv,
+ const ary::idl::CodeEntity &
+ i_rScopeGivingCe );
+ virtual ~HF_IdlTag();
+
+ void Produce_byData(
+ Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const ary::inf::AtTag2 &
+ i_rTag ) const;
+ void Produce_byData(
+ Xml::Element & o_rTitle,
+ Xml::Element & o_rText,
+ const std::vector< csi::dsapi::DT_SeeAlsoAtTag* > &
+ i_seeAlsoVector ) const;
+ private:
+ virtual void Display_StdAtTag(
+ const csi::dsapi::DT_StdAtTag &
+ i_rToken );
+ virtual void Display_SeeAlsoAtTag(
+ const csi::dsapi::DT_SeeAlsoAtTag &
+ i_rToken );
+ virtual void Display_ParameterAtTag(
+ const csi::dsapi::DT_ParameterAtTag &
+ i_rToken );
+ virtual void Display_SinceAtTag(
+ const csi::dsapi::DT_SinceAtTag &
+ i_rToken );
+
+ void Enter_TextOut(
+ Xml::Element & o_rText ) const;
+ void Leave_TextOut() const;
+ void PutText_Out(
+ const ary::inf::DocuTex2 &
+ i_rText ) const;
+ // DATA
+ mutable Xml::Element *
+ pTitleOut;
+ mutable HF_IdlDocuTextDisplay
+ aTextOut;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/idl/hfi_typedef.cxx b/autodoc/source/display/idl/hfi_typedef.cxx
new file mode 100644
index 000000000000..3146be05468f
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typedef.cxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_typedef.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_typedef.hxx>
+#include <toolkit/hf_docentry.hxx>
+#include <toolkit/hf_linachain.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+HF_IdlTypedef::HF_IdlTypedef( Environment & io_rEnv,
+ Xml::Element & o_rOut )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut)
+{
+}
+
+HF_IdlTypedef::~HF_IdlTypedef()
+{
+}
+
+typedef ary::idl::ifc_typedef::attr TypedefAttr;
+
+void
+HF_IdlTypedef::Produce_byData( const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+
+ HF_LinkedNameChain
+ aNameChain(aTitle.Add_Row());
+
+ aNameChain.Produce_CompleteChain(Env().CurPosition(), nameChainLinker);
+ produce_Title(aTitle, C_sCePrefix_Typedef, i_ce);
+
+ HF_DocEntryList
+ aTopList( aTitle.Add_Row() );
+ aTopList.Produce_Term("Defining Type");
+
+ HF_IdlTypeText
+ aDefinition( Env(), aTopList.Produce_Definition(), true );
+ aDefinition.Produce_byData( TypedefAttr::DefiningType(i_ce) );
+
+ CurOut() << new Html::HorizontalLine;
+
+ write_Docu(aTitle.Add_Row(), i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlTypedef::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeMainRow(i_ce);
+
+ CurOut() << new Html::HorizontalLine();
+}
diff --git a/autodoc/source/display/idl/hfi_typedef.hxx b/autodoc/source/display/idl/hfi_typedef.hxx
new file mode 100644
index 000000000000..59c36baf3bb8
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typedef.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TYPEDEF_HXX
+#define ADC_DISPLAY_HFI_TYPEDEF_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlTypedef : public HtmlFactory_Idl
+{
+ public:
+ HF_IdlTypedef(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut );
+ virtual ~HF_IdlTypedef();
+
+ void Produce_byData(
+ const client & ce ) const;
+ private:
+ void make_Navibar(
+ const client & ce ) const;
+};
+
+
+
+// IMPLEMENTATION
+
+
+const String
+ C_sCePrefix_Typedef("typedef");
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_typetext.cxx b/autodoc/source/display/idl/hfi_typetext.cxx
new file mode 100644
index 000000000000..6927308e677e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typetext.cxx
@@ -0,0 +1,757 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_typetext.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <string.h>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ik_ce.hxx>
+#include <adc_cl.hxx>
+#include <adc_msg.hxx>
+#include "hi_linkhelper.hxx"
+
+
+
+
+
+
+inline const ary::idl::Module *
+HF_IdlTypeText::referingModule() const
+{
+ if (pReferingCe == 0)
+ return Env().Linker().Search_CurModule();
+ else
+ return &Env().Data().Find_Module(pReferingCe->NameRoom());
+}
+
+inline const HF_IdlTypeText::client *
+HF_IdlTypeText::referingCe() const
+{
+ return pReferingCe;
+}
+
+
+HF_IdlTypeText::HF_IdlTypeText( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bWithLink,
+ const client * i_pScopeGivingCe )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ pReferingCe( i_pScopeGivingCe ),
+ bWithLink(i_bWithLink)
+{
+}
+
+HF_IdlTypeText::HF_IdlTypeText( Environment & io_rEnv,
+ E_Index )
+ : HtmlFactory_Idl(io_rEnv, 0),
+ pReferingCe( 0 ),
+ bWithLink(true)
+{
+}
+
+HF_IdlTypeText::~HF_IdlTypeText()
+{
+}
+
+void
+HF_IdlTypeText::Produce_byData(ary::idl::Type_id i_idType) const
+{
+ StringVector aModule_;
+ String sName;
+ ce_id nCe;
+ int nSequenceCount = 0;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Type &
+ rType = Env().Data().Find_Type(i_idType);
+ Env().Data().Get_TypeText(aModule_, sName, nCe, nSequenceCount, rType);
+
+ if ( Env().Data().IsBuiltInOrRelated(rType) )
+ {
+ produce_BuiltIn(sName,nSequenceCount);
+ }
+ else
+ {
+ produce_FromStd( aModule_,
+ sName,
+ String::Null_(),
+ nSequenceCount,
+ (nCe.IsValid() ? exists_yes : exists_no),
+ rType.FirstEnclosedNonSequenceType(Env().Gate()).TemplateParameters() );
+ }
+}
+
+void
+HF_IdlTypeText::Produce_byData( ary::idl::Ce_id i_idCe ) const
+{
+ StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(i_idCe);
+ Env().Data().Get_CeText(aModule_, sCe, sMember, rCe);
+ produce_FromStd(aModule_, sCe, sMember, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_byData( const String & i_sFullName ) const
+{
+ if ( strncmp(i_sFullName,"http://", 7) == 0 )
+ {
+ CurOut()
+ >> *new Html::Link(i_sFullName)
+ << i_sFullName;
+ return;
+ }
+
+ StringVector aModule_;
+ String sCe,
+ sMember;
+ int nSequence = 0;
+ String sTypeText;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Module *
+ pScopeModule = referingModule();
+ if (pScopeModule == 0)
+ {
+ // SYNTAX_ERR, but rather logical error: Missing module.
+ CurOut() << i_sFullName;
+ // KORR_FUTURE
+ // How to put a message about this?
+ // errorOut_UnresolvedLink(i_sFullName);
+ return;
+ }
+
+ const char * sTypeStart = strrchr(i_sFullName,'<');
+ if ( sTypeStart != 0 )
+ {
+ const char * sTypeEnd = strchr(i_sFullName,'>');
+ if (sTypeEnd == 0)
+ { // SYNTAX_ERR
+ CurOut() << i_sFullName;
+ // KORR_FUTURE
+ // How to put a message about this?
+ // errorOut_UnresolvedLink(i_sFullName);
+ return;
+ }
+
+ nSequence = count_Sequences(i_sFullName);
+ sTypeStart++;
+ sTypeText.assign(sTypeStart, sTypeEnd-sTypeStart);
+ }
+ else
+ {
+ sTypeText = i_sFullName;
+ }
+
+ csv::erase_container(aModule_);
+ bool bFound = // KORR : Check the semantics of this, see if ce really exists, if it is a member?
+ Env().Data().Search_Ce( aModule_,
+ sCe,sMember,
+ sTypeText,
+ *pScopeModule );
+ if (NOT bFound)
+ {
+ if ( strchr(sTypeText,':') == 0
+ AND
+ *sTypeText.c_str() != 'X' ) // This is a HACK, make this correct!
+ {
+ Produce_LocalLinkInDocu(sTypeText);
+ return;
+ }
+ CurOut() << i_sFullName;
+ // KORR
+ // How to put a message about this?
+ // errorOut_UnresolvedLink(i_sFullName);
+ return;
+ }
+
+ produce_FromStd(aModule_, sCe, sMember, nSequence, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_LinkInDocu( const String & i_scope,
+ const String & i_name,
+ const String & i_member ) const
+{
+ StringVector aModule_;
+ String sName;
+ csv::erase_container(aModule_);
+
+ const ary::idl::Module *
+ pScopeModule = referingModule();
+ if (pScopeModule == 0)
+ {
+ // SYNTAX_ERR, but rather logical error: Missing module.
+ CurOut() << i_scope << "::" << i_name;
+ if (NOT i_member.empty())
+ CurOut() << "::" << i_member;
+ return;
+ }
+
+ bool
+ bFound = Env().Data().Search_CesModule( aModule_,
+ i_scope,
+ i_name,
+ *pScopeModule );
+ if (NOT bFound)
+ {
+ CurOut() << i_scope << "::" << i_name;
+ if (NOT i_member.empty())
+ CurOut() << "::" << i_member;
+ return;
+ }
+ produce_FromStd(aModule_, i_name, i_member, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_LocalLinkInDocu( const String & i_member ) const
+{
+ StringVector aModule_;
+ String sName;
+ csv::erase_container(aModule_);
+
+ csv_assert(referingCe() != 0);
+ if ( referingModule() == Env().Linker().Search_CurModule() )
+ {
+ StreamLock slLink(200);
+ if (referingCe()->SightLevel() == ary::idl::sl_Member)
+ {
+ slLink() << "#" << i_member;
+ }
+ else
+ {
+ slLink() << referingCe()->LocalName()
+ << ".html#"
+ << i_member;
+ }
+ CurOut()
+ >> *new Html::Link(slLink().c_str())
+ << i_member;
+ return;
+ }
+
+ String sDummyMember;
+ Env().Data().Get_CeText(aModule_, sName, sDummyMember, *referingCe());
+ produce_FromStd(aModule_, sName, i_member, 0, exists_yes);
+}
+
+void
+HF_IdlTypeText::Produce_IndexLink( Xml::Element & o_out,
+ const client & i_ce ) const
+{
+ StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ Out().Enter(o_out);
+
+ Env().Data().Get_CeText(aModule_, sCe, sMember, i_ce);
+ produce_IndexLink(aModule_, sCe, sMember, false);
+
+ Out().Leave();
+}
+
+void
+HF_IdlTypeText::Produce_IndexOwnerLink( Xml::Element & o_out,
+ const client & i_owner ) const
+{
+ StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ Out().Enter(o_out);
+
+ if (i_owner.Owner().IsValid())
+ {
+ Env().Data().Get_CeText(aModule_, sCe, sMember, i_owner);
+ produce_IndexLink(aModule_, sCe, sMember, true);
+ }
+ else
+ { // global namespace:
+
+ CurOut()
+ << "."
+ >> *new Html::Link("../module-ix.html")
+ << "global namespace";
+ }
+
+
+ Out().Leave();
+}
+
+void
+HF_IdlTypeText::Produce_IndexSecondEntryLink( Xml::Element & o_out,
+ const client & i_ce ) const
+{
+ StringVector aModule_;
+ String sCe;
+ String sMember;
+ csv::erase_container(aModule_);
+
+ Out().Enter(o_out);
+
+ Env().Data().Get_CeText(aModule_, sCe, sMember, i_ce);
+ produce_IndexLink(aModule_, sCe, sMember, true);
+ Out().Leave();
+}
+
+
+void
+HF_IdlTypeText::produce_FromStd( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ E_Existence i_ceExists,
+ const std::vector<ary::idl::Type_id> *
+ i_templateParameters ) const
+{
+ if (i_ceExists == exists_no)
+ {
+ if ( is_ExternLink(i_module) )
+ {
+ produce_ExternLink(i_module,i_ce,i_member,i_sequenceCount,i_templateParameters);
+ return;
+ }
+ errorOut_UnresolvedLink(i_module, i_ce, i_member);
+ }
+
+ output::Node &
+ rCeNode = Env().OutputTree().Provide_Node(i_module);
+ output::Position
+ aTargetPos(rCeNode);
+ bool
+ bShowModule = rCeNode != Env().CurPosition().RelatedNode()
+ ? i_module.size() > 0
+ : false;
+ bool
+ bUseMember = NOT i_member.empty();
+ bool
+ bLink2Module = i_ceExists == exists_yes;
+ bool
+ bLink2Ce = i_ceExists == exists_yes;
+ bool
+ bLink2Member = NOT Env().Is_MemberExistenceCheckRequired()
+ AND i_ceExists == exists_yes;
+ bool
+ bHasCeOrName = NOT i_ce.empty();
+
+ if (i_sequenceCount > 0)
+ start_Sequence(i_sequenceCount);
+
+ StreamLock aLink(300);
+ StreamStr & rLink = aLink();
+
+ // Produce output: module
+ if (bShowModule)
+ {
+ int nMax = i_module.size() - 1;
+ int nCount = 0;
+ StringVector::const_iterator
+ itm = i_module.begin();
+ for ( ;
+ nCount < nMax;
+ ++itm, ++nCount )
+ {
+ CurOut() << "::" << *itm;
+ }
+
+ CurOut() << "::";
+ if (bLink2Module)
+ {
+ aTargetPos.Set_File(output::ModuleFileName());
+ Env().Linker().Get_Link2Position(rLink, aTargetPos);
+ CurOut()
+ >> *new Html::Link( rLink.c_str() )
+ << *itm;
+ rLink.reset();
+ }
+ else
+ {
+ CurOut() << *itm;
+ }
+
+ if (bHasCeOrName)
+ CurOut() << "::";
+ } // end if (bShowModule)
+
+ // CodeEntity and member:
+ aTargetPos.Set_File( rLink << i_ce << ".html" << c_str );
+ rLink.reset();
+
+ if (bHasCeOrName)
+ {
+ if (bLink2Ce)
+ {
+ Env().Linker().Get_Link2Position(rLink, aTargetPos);
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_ce;
+ rLink.reset();
+ }
+ else
+ {
+ CurOut() << i_ce;
+ }
+
+ if (i_templateParameters != 0)
+ write_TemplateParameterList(*i_templateParameters);
+
+ if (bUseMember)
+ {
+ CurOut() << "::";
+
+ if (bLink2Member)
+ {
+ bool bFunction = strstr(i_member,"()") != 0;
+ String sMember( i_member );
+ if (bFunction)
+ sMember.assign(i_member.c_str(), sMember.length()-2);
+
+ Env().Linker().Get_Link2Member(rLink, aTargetPos, sMember);
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_member;
+ rLink.reset();
+ }
+ else
+ {
+ CurOut()
+ << i_member;
+ }
+ } // endif (bUseMember)
+ } // endif (bHasCeOrName)
+
+ if (i_sequenceCount > 0)
+ finish_Sequence(i_sequenceCount);
+}
+
+void
+HF_IdlTypeText::produce_BuiltIn( const String & i_type,
+ int i_sequenceCount ) const
+{
+ if (i_sequenceCount > 0)
+ start_Sequence(i_sequenceCount);
+ CurOut() << i_type;
+ if (i_sequenceCount > 0)
+ finish_Sequence(i_sequenceCount);
+}
+
+void
+HF_IdlTypeText::produce_IndexLink( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member,
+ bool i_bIsOwner ) const
+{
+ output::Node &
+ rCeNode = Env().OutputTree().Provide_Node(i_module);
+ output::Position
+ aTargetPos(rCeNode);
+ bool
+ bShowModule = i_bIsOwner OR (i_module.size() > 0 AND i_ce.empty());
+ bool
+ bShowNonModule = NOT bShowModule OR (i_bIsOwner AND NOT i_ce.empty());
+ bool
+ bUseMember = NOT i_member.empty();
+
+ StreamLock aLink(300);
+ StreamStr & rLink = aLink();
+
+ // Produce output: module
+ if (bShowModule)
+ {
+ if (i_bIsOwner)
+ {
+ int nMax = bShowNonModule ? i_module.size() : i_module.size() - 1;
+ int nCount = 0;
+ for ( StringVector::const_iterator itm = i_module.begin();
+ nCount < nMax;
+ ++itm, ++nCount )
+ {
+ CurOut() << "::" << *itm;
+ }
+ CurOut() << ":: .";
+ }
+
+ if (NOT bShowNonModule)
+ {
+ aTargetPos.Set_File(output::ModuleFileName());
+ Env().Linker().Get_Link2Position(rLink, aTargetPos);
+ CurOut()
+ >> *new Html::Link( rLink.c_str() )
+ >> *new Html::Bold
+ << i_module.back();
+ rLink.reset();
+ }
+ } // end if (bShowModule)
+
+ if (bShowNonModule)
+ {
+ aTargetPos.Set_File( rLink << i_ce << ".html" << c_str );
+ rLink.reset();
+
+ if (bUseMember)
+ {
+ bool bFunction = strstr(i_member,"()") != 0;
+ String sMember( i_member );
+ if (bFunction)
+ sMember.assign(i_member.c_str(), sMember.length()-2);
+ Env().Linker().Get_Link2Member(rLink, aTargetPos, sMember);
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ >> *new Html::Bold
+ << i_member;
+ rLink.reset();
+ }
+ else
+ {
+ Env().Linker().Get_Link2Position(rLink, aTargetPos);
+ if (i_bIsOwner)
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_ce;
+ }
+ else
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ >> *new Html::Bold
+ << i_ce;
+ }
+ rLink.reset();
+ }
+ } // endif (bHasCeOrName)
+}
+
+int
+HF_IdlTypeText::count_Sequences( const char * i_sFullType ) const
+{
+ int ret = 0;
+
+ for ( const char * pCount = i_sFullType;
+ *pCount != 0;
+ )
+ {
+ pCount = strstr(pCount,"sequence");
+ if (pCount != 0)
+ {
+ pCount += sizeof("sequence"); // = strlen(sequence) + 1 for '<'.
+ if ( *(pCount-1) == '\0' )
+ {
+ // SYNTAX_ERR
+ return 0;
+ }
+ ++ret;
+ }
+ } // end for
+
+ return ret;
+}
+
+void
+HF_IdlTypeText::start_Sequence( int i_count ) const
+{
+ csv_assert( i_count > 0 );
+ for (int i = 0; i < i_count; ++i )
+ {
+ CurOut() << "sequence< ";
+ }
+}
+
+void
+HF_IdlTypeText::finish_Sequence( int i_count ) const
+{
+ csv_assert( i_count > 0 );
+ for (int i = 0; i < i_count; ++i )
+ {
+ CurOut() << " >";
+ }
+}
+
+void
+HF_IdlTypeText::errorOut_UnresolvedLink( const char * i_name ) const
+{
+ StreamLock slFile(1000);
+
+ // KORR
+ // Handle links in cited documentation from other entities.
+ slFile() << Env().CurPageCe_AsText();
+ slFile().pop_back(5);
+ slFile() << ".idl";
+
+ // KORR
+ // Retrieve, correct line number.
+ TheMessages().Out_UnresolvedLink( i_name,
+ slFile().c_str(),
+ 0 );
+}
+
+void
+HF_IdlTypeText::errorOut_UnresolvedLink( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member ) const
+{
+ StreamLock slName(500);
+
+ if (i_module.size() > 0)
+ {
+ slName().operator_join(i_module.begin(), i_module.end(), "::");
+ if (NOT i_ce.empty())
+ slName() << "::";
+ }
+ if (NOT i_ce.empty())
+ {
+ slName() << i_ce;
+ if (NOT i_member.empty())
+ slName() << "::" << i_member;
+ }
+ errorOut_UnresolvedLink(slName().c_str());
+}
+
+bool
+HF_IdlTypeText::is_ExternLink( const StringVector & i_module ) const
+{
+ const autodoc::CommandLine &
+ rCmdLine = autodoc::CommandLine::Get_();
+ uintt nExtNspLength = rCmdLine.ExternNamespace().length();
+ if (nExtNspLength == 0)
+ return false;
+
+ StreamStr s(1000);
+ s << "::";
+ s.operator_join( i_module.begin(),
+ i_module.end(),
+ "::" );
+
+ if (s.length() < nExtNspLength)
+ return false;
+ return ( strncmp( rCmdLine.ExternNamespace().c_str(),
+ s.c_str(),
+ nExtNspLength ) == 0 );
+}
+
+void
+HF_IdlTypeText::produce_ExternLink( const StringVector & i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ const std::vector<ary::idl::Type_id> *
+ i_templateParameters ) const
+{
+ // KORR
+ // Look again at this code and take some time.
+
+ StreamLock aLink(1000);
+ StreamStr & rLink = aLink();
+
+ rLink << autodoc::CommandLine::Get_().ExternRoot();
+ rLink.operator_join( i_module.begin(),
+ i_module.end(),
+ "/" );
+ rLink << '/'
+ << i_ce
+ << ".html";
+ if (i_member.length() > 0)
+ rLink << "/#" << i_member;
+
+ if (i_sequenceCount > 0)
+ start_Sequence(i_sequenceCount);
+
+ // module
+ int nMax = i_module.size();
+ int nCount = 0;
+ StringVector::const_iterator
+ itm = i_module.begin();
+ for ( ;
+ nCount < nMax;
+ ++itm, ++nCount )
+ {
+ CurOut() << "::" << *itm;
+ }
+ CurOut() << "::";
+
+
+ // CodeEntity
+ if (i_member.length() == 0)
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_ce;
+ }
+ else
+ {
+ CurOut()
+ << i_ce;
+ }
+
+ if (i_templateParameters != 0)
+ write_TemplateParameterList(*i_templateParameters);
+
+ // Member
+ if (i_member.length() > 0)
+ {
+ CurOut()
+ >> *new Html::Link(rLink.c_str())
+ << i_member;
+ }
+
+ if (i_sequenceCount > 0)
+ finish_Sequence(i_sequenceCount);
+}
+
+void
+HF_IdlTypeText::write_TemplateParameterList(
+ const std::vector<ary::idl::Type_id> & i_templateParameters ) const
+{
+ if (i_templateParameters.size() == 0)
+ return;
+
+ HF_IdlTypeText
+ aTemplateParamWriter(Env(), CurOut(), true, pReferingCe);
+ CurOut() << "< ";
+ std::vector<ary::idl::Type_id>::const_iterator
+ it = i_templateParameters.begin();
+ aTemplateParamWriter.Produce_byData(*it);
+ for ( ++it; it != i_templateParameters.end(); ++it )
+ {
+ CurOut() << ", ";
+ aTemplateParamWriter.Produce_byData(*it);
+ }
+ CurOut() << " >";
+}
diff --git a/autodoc/source/display/idl/hfi_typetext.hxx b/autodoc/source/display/idl/hfi_typetext.hxx
new file mode 100644
index 000000000000..62766ed411e0
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_typetext.hxx
@@ -0,0 +1,158 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_TYPETEXT_HXX
+#define ADC_DISPLAY_HFI_TYPETEXT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlTypeText : public HtmlFactory_Idl
+{
+ public:
+ enum E_Index { use_for_javacompatible_index };
+
+ HF_IdlTypeText(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ bool i_bWithLink,
+ const client * i_pScopeGivingCe = 0 );
+ HF_IdlTypeText(
+ Environment & io_rEnv,
+ E_Index e );
+ virtual ~HF_IdlTypeText();
+
+ void Produce_byData(
+ ary::idl::Type_id i_idType ) const;
+ void Produce_byData(
+ ary::idl::Ce_id i_idCe ) const;
+ void Produce_byData(
+ const String & i_sFullName ) const;
+ void Produce_LinkInDocu(
+ const String & i_scope,
+ const String & i_name,
+ const String & i_member ) const;
+ void Produce_LocalLinkInDocu(
+ const String & i_member ) const;
+
+ /// Produce the first link for Java-help understood index entries.
+ void Produce_IndexLink(
+ Xml::Element & o_out,
+ const client & i_ce ) const;
+ /** Produce the second link for Java-help understood index entries.
+ For members this will be a link to their owner (this function is
+ used), else see @->Produce_IndexSecondEntryLink();
+ */
+ void Produce_IndexOwnerLink(
+ Xml::Element & o_out,
+ const client & i_owner ) const;
+ /** Produce the second link for Java-help understood index entries.
+ For non- members this will again be a link to to the entry itself
+ (this function is used), else see @->Produce_IndexOwnerLink();
+ */
+ void Produce_IndexSecondEntryLink(
+ Xml::Element & o_out,
+ const client & i_ce ) const;
+ private:
+ // Locals
+ enum E_Existence
+ {
+ exists_dontknow,
+ exists_yes,
+ exists_no
+ };
+
+ void produce_FromStd(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ E_Existence i_ceExists,
+ const std::vector<ary::idl::Type_id> *
+ i_templateParameters = 0 ) const;
+ void produce_BuiltIn(
+ const String & i_type,
+ int i_sequenceCount ) const;
+ void produce_IndexLink(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member,
+ bool i_bIsOwner ) const;
+ int count_Sequences(
+ const char * i_sFullType ) const;
+ void start_Sequence(
+ int i_count ) const;
+ void finish_Sequence(
+ int i_count ) const;
+ void errorOut_UnresolvedLink(
+ const char * i_name ) const;
+ void errorOut_UnresolvedLink(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member ) const;
+ bool is_ExternLink(
+ const StringVector &
+ i_module ) const;
+ void produce_ExternLink(
+ const StringVector &
+ i_module,
+ const String & i_ce,
+ const String & i_member,
+ int i_sequenceCount,
+ const std::vector<ary::idl::Type_id> *
+ i_templateParameters ) const;
+ void write_TemplateParameterList(
+ const std::vector<ary::idl::Type_id> &
+ i_templateParameters ) const;
+ const ary::idl::Module *
+ referingModule() const;
+ const client * referingCe() const;
+
+ // DATA
+ mutable const client *
+ pReferingCe;
+ bool bWithLink;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hfi_xrefpage.cxx b/autodoc/source/display/idl/hfi_xrefpage.cxx
new file mode 100644
index 000000000000..ecf4cb72ff43
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_xrefpage.cxx
@@ -0,0 +1,273 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hfi_xrefpage.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_navibar.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_env.hxx"
+
+
+namespace
+{
+
+const String
+ C_sTitleStart("uses of ");
+const String
+ C_sCRLF("\n");
+const String
+ C_sDevMan("References in Developers Guide");
+
+} // anonymous namespace
+
+
+
+HF_IdlXrefs::HF_IdlXrefs( Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_prefix,
+ const client & i_ce )
+ : HtmlFactory_Idl(io_rEnv, &o_rOut),
+ rContentDirectory(*new Html::Paragraph),
+ pClient(&i_ce)
+{
+ produce_Main(i_prefix, i_ce);
+}
+
+HF_IdlXrefs::~HF_IdlXrefs()
+{
+}
+
+void
+HF_IdlXrefs::Write_ManualLinks( const client & i_ce ) const
+{
+ const StringVector &
+ rLinks2Refs = i_ce.Secondaries().Links2RefsInManual();
+ if ( rLinks2Refs.size() == 0 )
+ {
+ rContentDirectory
+ << C_sDevMan
+ << new Html::LineBreak
+ << C_sCRLF;
+ return;
+ }
+
+
+ rContentDirectory
+ >> *new Html::Link("#devmanrefs")
+ << C_sDevMan
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ HF_SubTitleTable
+ aList(CurOut(), "devmanrefs", C_sDevMan, 1);
+ Xml::Element &
+ rOutCell = aList.Add_Row() >>* new Html::TableCell;
+
+ csv_assert(rLinks2Refs.size() % 2 == 0);
+ for ( StringVector::const_iterator it = rLinks2Refs.begin();
+ it != rLinks2Refs.end();
+ ++it )
+ {
+ Xml::Element &
+ rLink = rOutCell >> *new Html::Link( Env().Link2Manual(*it));
+ if ( (*(it+1)).empty() )
+
+ // HACK KORR_FUTURE
+ // Research what happens with manual links which contain normal characters
+ // in non-utf-8 texts. And research, why utfF-8 does not work here.
+ rLink << new Xml::XmlCode(*it);
+ else
+ // HACK KORR_FUTURE, see above.
+ rLink << new Xml::XmlCode( *(it+1) );
+ rOutCell
+ << new Html::LineBreak
+ << C_sCRLF;
+ ++it;
+ } // end for
+}
+
+void
+HF_IdlXrefs::Produce_List( const char * i_title,
+ const char * i_label,
+ ce_list & i_iterator ) const
+{
+ if (NOT i_iterator)
+ {
+ rContentDirectory
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+ return;
+ }
+
+ csv_assert(*i_label == '#');
+
+ rContentDirectory
+ >> *new Html::Link(i_label)
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ HF_SubTitleTable
+ aList(CurOut(), i_label+1, i_title, 1);
+ Xml::Element &
+ rOutCell = aList.Add_Row() >>* new Html::TableCell;
+ HF_IdlTypeText
+ aTypeWriter(Env(), rOutCell, true, pClient);
+ for ( ce_list & it = i_iterator; it; ++it )
+ {
+ aTypeWriter.Produce_byData(*it);
+ rOutCell << new Html::LineBreak;
+ } // end for
+}
+
+void
+HF_IdlXrefs::Produce_Tree( const char * i_title,
+ const char * i_label,
+ const client & i_ce,
+ F_GET_SUBLIST i_sublistcreator ) const
+{
+ dyn_ce_list pResult;
+ (*i_sublistcreator)(pResult, i_ce);
+
+ if (NOT (*pResult).operator bool())
+ {
+ rContentDirectory
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+ return;
+ }
+
+ csv_assert(*i_label == '#');
+
+ rContentDirectory
+ >> *new Html::Link(i_label)
+ << i_title
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ HF_SubTitleTable
+ aList(CurOut(), i_label+1, i_title, 1);
+ Xml::Element &
+ rOut = aList.Add_Row()
+ >>* new Html::TableCell
+ >> *new csi::xml::AnElement("pre")
+ << new csi::html::StyleAttr("font-family:monospace;");
+
+ recursive_make_ListInTree( rOut,
+ 0,
+ i_ce,
+ *pResult,
+ i_sublistcreator );
+}
+
+void
+HF_IdlXrefs::produce_Main( const String & i_prefix,
+ const client & i_ce ) const
+{
+ make_Navibar(i_ce);
+
+ HF_TitleTable
+ aTitle(CurOut());
+ StreamLock sl(200);
+ aTitle.Produce_Title( sl()
+ << C_sTitleStart
+ << i_prefix
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+
+ aTitle.Add_Row() << &rContentDirectory;
+ sl().reset();
+ rContentDirectory
+ >> *new Html::Link( sl() << i_ce.LocalName()
+ << ".html"
+ << c_str )
+ >> *new Html::Bold
+ << "back to "
+ << i_prefix
+ << " "
+ << i_ce.LocalName();
+ rContentDirectory
+ << new Html::LineBreak
+ << new Html::LineBreak
+ << C_sCRLF;
+
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlXrefs::make_Navibar( const client & i_ce ) const
+{
+ HF_IdlNavigationBar
+ aNaviBar(Env(), CurOut());
+ aNaviBar.Produce_CeXrefsMainRow(i_ce);
+ CurOut() << new Html::HorizontalLine();
+}
+
+void
+HF_IdlXrefs::recursive_make_ListInTree( Xml::Element & o_rDisplay,
+ uintt i_level,
+ const client & i_ce,
+ ce_list & i_iterator,
+ F_GET_SUBLIST i_sublistcreator ) const
+{
+ const char * sLevelIndentation = " ";
+
+ HF_IdlTypeText
+ aTypeWriter(Env(), o_rDisplay, true, &i_ce);
+ for ( ; i_iterator.operator bool(); ++i_iterator )
+ {
+ for (uintt i = 0; i < i_level; ++i)
+ {
+ o_rDisplay << sLevelIndentation;
+ } // end for
+
+ aTypeWriter.Produce_byData(*i_iterator);
+ o_rDisplay << C_sCRLF;
+
+ dyn_ce_list pResult;
+ const client & rCe = Env().Gate().Ces().Find_Ce(*i_iterator);
+ (*i_sublistcreator)(pResult, rCe);
+ if ( (*pResult).operator bool() )
+ {
+ recursive_make_ListInTree( o_rDisplay,
+ i_level + 1,
+ rCe,
+ *pResult,
+ i_sublistcreator );
+ }
+ } // end for
+}
diff --git a/autodoc/source/display/idl/hfi_xrefpage.hxx b/autodoc/source/display/idl/hfi_xrefpage.hxx
new file mode 100644
index 000000000000..2eed092c568e
--- /dev/null
+++ b/autodoc/source/display/idl/hfi_xrefpage.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFI_XREFPAGE_HXX
+#define ADC_DISPLAY_HFI_XREFPAGE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "hi_factory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_IdlXrefs : public HtmlFactory_Idl
+{
+ public:
+ typedef void (*F_GET_SUBLIST)(dyn_ce_list&, const client&);
+
+ HF_IdlXrefs(
+ Environment & io_rEnv,
+ Xml::Element & o_rOut,
+ const String & i_prefix,
+ const client & i_ce);
+ virtual ~HF_IdlXrefs();
+
+ /** @descr
+ Only lists which are tried to be produced by Produce_List() or
+ Produce_Tree(), will occur in the content directory of the page.
+ They will have links, if the list or tree has at least one element,
+ else the list is mentioned in the directory without link.
+
+ @param i_label [*i_label == '#']
+ */
+ void Produce_List(
+ const char * i_title,
+ const char * i_label,
+ ce_list & i_iterator ) const;
+ void Write_ManualLinks(
+ const client & i_ce ) const;
+ /** @descr
+ Only lists which are tried to be produced by Produce_List() or
+ Produce_Tree(), will occur in the content directory of the page.
+ They will have links, if the list or tree has at least one element,
+ else the list is mentioned in the directory without link.
+
+ @param i_label [*i_label == '#']
+ */
+ void Produce_Tree(
+ const char * i_title,
+ const char * i_label,
+ const client & i_ce,
+ F_GET_SUBLIST i_sublistcreator ) const;
+
+ private:
+ // Locals
+ void produce_Main(
+ const String & i_prefix,
+ const client & i_ce ) const;
+ void make_Navibar(
+ const client & i_ce ) const;
+ /// @return true if there are any elements in sub lists.
+ void recursive_make_ListInTree(
+ Xml::Element & o_rDisplay,
+ uintt i_level, /// 0 is highest
+ const client & i_ce,
+ ce_list & i_iterator,
+ F_GET_SUBLIST i_sublistcreator ) const;
+
+ // DATA
+ Xml::Element & rContentDirectory;
+ const client * pClient;
+};
+
+
+
+// IMPLEMENTATION
+
+#endif
diff --git a/autodoc/source/display/idl/hi_ary.cxx b/autodoc/source/display/idl/hi_ary.cxx
new file mode 100644
index 000000000000..ce8a4197911f
--- /dev/null
+++ b/autodoc/source/display/idl/hi_ary.cxx
@@ -0,0 +1,283 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hi_ary.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+
+
+inline const ary::idl::Gate &
+AryAccess::gate() const
+ { return rGate; }
+
+inline const ary::idl::CePilot &
+AryAccess::ces() const
+ { return rGate.Ces(); }
+
+inline const ary::idl::TypePilot &
+AryAccess::types() const
+ { return rGate.Types(); }
+
+inline const ary::idl::Module *
+AryAccess::find_SubModule( const ary::idl::Module & i_parent,
+ const String & i_name ) const
+{
+ ary::idl::Ce_id
+ nModule = i_parent.Search_Name(i_name);
+ return ces().Search_Module(nModule);
+}
+
+bool
+AryAccess::nextName( const char * & io_TextPtr,
+ String & o_name ) const
+{
+ if ( strncmp(io_TextPtr,"::", 2) == 0 )
+ io_TextPtr += 2;
+
+ const char * pEnd = strchr(io_TextPtr,':');
+ size_t nLen = pEnd == 0
+ ? strlen(io_TextPtr)
+ : pEnd - io_TextPtr;
+ o_name.assign(io_TextPtr, nLen);
+ io_TextPtr += nLen;
+
+ return nLen > 0;
+}
+
+
+
+AryAccess::AryAccess( const ary::idl::Gate & i_rGate )
+ : rGate(i_rGate)
+{
+}
+
+const ary::idl::Module &
+AryAccess::GlobalNamespace() const
+{
+ return ces().GlobalNamespace();
+}
+
+const ary::idl::Module &
+AryAccess::Find_Module( ary::idl::Ce_id i_ce ) const
+{
+ return ces().Find_Module(i_ce);
+}
+
+
+const ary::idl::CodeEntity &
+AryAccess::Find_Ce( ary::idl::Ce_id i_ce ) const
+{
+ return ces().Find_Ce(i_ce);
+}
+
+const ary::idl::Type &
+AryAccess::Find_Type( ary::idl::Type_id i_type ) const
+{
+ return types().Find_Type(i_type);
+}
+
+ary::idl::Ce_id
+AryAccess::CeFromType( ary::idl::Type_id i_type ) const
+{
+ return types().Search_CeRelatedTo(i_type);
+}
+
+bool
+AryAccess::IsBuiltInOrRelated( const ary::idl::Type & i_type ) const
+{
+ return types().IsBuiltInOrRelated(i_type);
+}
+
+bool
+AryAccess::Search_Ce( StringVector & o_module,
+ String & o_mainEntity,
+ String & o_memberEntity,
+ const char * i_sText,
+ const ary::idl::Module & i_referingScope ) const
+{
+ o_module.erase(o_module.begin(),o_module.end());
+ o_mainEntity = String::Null_();
+ o_memberEntity = String::Null_();
+
+ const ary::idl::Module * pModule = 0;
+
+ if ( strncmp(i_sText, "::", 2) == 0
+ OR strncmp(i_sText, "com::sun::star", 14) == 0 )
+ pModule = &GlobalNamespace();
+ else
+ {
+ pModule = &i_referingScope;
+ ces().Get_Text(o_module, o_mainEntity, o_memberEntity, *pModule);
+ }
+
+ const char * pNext = i_sText;
+ String sNextName;
+
+ // Find Module:
+ while ( nextName(pNext, sNextName) )
+ {
+ const ary::idl::Module *
+ pSub = find_SubModule(*pModule, sNextName);
+ if (pSub != 0)
+ {
+ pModule = pSub;
+ o_module.push_back(sNextName);
+ }
+ else
+ break;
+ }
+
+ // Find main CodeEntity:
+ if ( sNextName.length() == 0 )
+ return true;
+ const ary::idl::Ce_id
+ nCe = pModule->Search_Name(sNextName);
+ if (NOT nCe.IsValid())
+ return false;
+ o_mainEntity = sNextName;
+
+ // Find member:
+ if ( *pNext == 0 )
+ return true;
+ nextName(pNext, o_memberEntity);
+ if (strchr(o_memberEntity,':') != 0)
+ return false; // This must not happen in IDL
+
+#if 0
+// The following code avoids false links, but is rather expensive
+// in runtime time consumation.
+
+ const ary::idl::CodeEntity *
+ pCe = Find_Ce(nCe);
+ if (pCe == 0)
+ return false;
+
+ if ( NOT ary::idl::ifc_ce::attr::Search_Member(*pCe,o_memberEntity) )
+ return false;
+#endif
+
+ return true;
+}
+
+bool
+AryAccess::Search_CesModule( StringVector & o_module,
+ const String & i_scope,
+ const String & i_ce,
+ const ary::idl::Module & i_referingScope ) const
+{
+ o_module.erase(o_module.begin(),o_module.end());
+
+ const ary::idl::Module *
+ pModule = 0;
+
+ if ( strncmp(i_scope, "::", 2) == 0
+ OR strncmp(i_scope, "com::sun::star", 14) == 0 )
+ pModule = &GlobalNamespace();
+ else
+ {
+ pModule = &i_referingScope;
+ static String Dummy1;
+ static String Dummy2;
+ ces().Get_Text(o_module, Dummy1, Dummy2, *pModule);
+ }
+
+ const char * pNext = i_scope;
+ String sNextName;
+
+ // Find Module:
+ while ( nextName(pNext, sNextName) )
+ {
+ const ary::idl::Module *
+ pSub = find_SubModule(*pModule, sNextName);
+ if (pSub != 0)
+ {
+ pModule = pSub;
+ o_module.push_back(sNextName);
+ }
+ else
+ return false;
+ } // end while
+ return pModule->Search_Name(i_ce).IsValid();
+}
+
+const ary::idl::Module *
+AryAccess::Search_Module( const StringVector & i_nameChain ) const
+{
+ const ary::idl::Module * ret =
+ &GlobalNamespace();
+ for ( StringVector::const_iterator it = i_nameChain.begin();
+ it != i_nameChain.end();
+ ++it )
+ {
+ ret = find_SubModule(*ret, *it);
+ if (ret == 0)
+ break;
+ } // end for
+ return ret;
+}
+
+void
+AryAccess::Get_CeText( StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const ary::idl::CodeEntity & i_ce ) const
+{
+ ces().Get_Text(o_module, o_ce, o_member, i_ce);
+}
+
+void
+AryAccess::Get_TypeText( StringVector & o_module,
+ String & o_sCe,
+ ary::idl::Ce_id & o_nCe,
+ int & o_sequenceCount,
+ const ary::idl::Type & i_type ) const
+{
+ i_type.Get_Text(o_module, o_sCe, o_nCe, o_sequenceCount, gate());
+}
+
+void
+AryAccess::Get_IndexData( std::vector<ary::idl::Ce_id> & o_data,
+ ary::idl::alphabetical_index::E_Letter i_letter ) const
+{
+ rGate.Ces().Get_AlphabeticalIndex(o_data, i_letter);
+}
+
+
+const ary::idl::CePilot &
+AryAccess::Ces() const
+{
+ return rGate.Ces();
+}
diff --git a/autodoc/source/display/idl/hi_ary.hxx b/autodoc/source/display/idl/hi_ary.hxx
new file mode 100644
index 000000000000..a85dff4913dd
--- /dev/null
+++ b/autodoc/source/display/idl/hi_ary.hxx
@@ -0,0 +1,162 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_ARY_HXX
+#define ADC_DISPLAY_HI_ARY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <ary/idl/i_types4idl.hxx>
+ // PARAMETERS
+#include <ary/idl/i_gate.hxx>
+#include <ary/doc/d_docu.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+ class Gate;
+ class CePilot;
+ class TypePilot;
+}
+}
+namespace output
+{
+ class Position;
+}
+
+
+
+
+inline const ary::doc::OldIdlDocu *
+Get_IdlDocu(const ary::doc::Documentation & i_doc)
+{
+ return dynamic_cast< const ary::doc::OldIdlDocu* >(i_doc.Data());
+}
+
+
+
+
+
+/** A helper class to wrap the access to data in the Autodoc Repository.
+*/
+class AryAccess
+{
+ public:
+ // LIFECYCLE
+ AryAccess(
+ const ary::idl::Gate &
+ i_rGate );
+ // INQUIRY
+ const ary::idl::Module &
+ GlobalNamespace() const;
+ const ary::idl::Module &
+ Find_Module(
+ ary::idl::Ce_id i_ce ) const;
+ const ary::idl::CodeEntity &
+ Find_Ce(
+ ary::idl::Ce_id i_ce ) const;
+ const ary::idl::Type &
+ Find_Type(
+ ary::idl::Type_id i_type ) const;
+ ary::idl::Ce_id CeFromType(
+ ary::idl::Type_id i_type ) const;
+ bool IsBuiltInOrRelated(
+ const ary::idl::Type &
+ i_type ) const;
+ bool Search_Ce(
+ StringVector & o_module,
+ String & o_mainEntity,
+ String & o_memberEntity,
+ const char * i_sText,
+ const ary::idl::Module &
+ i_referingScope ) const;
+ bool Search_CesModule(
+ StringVector & o_module,
+ const String & i_scope,
+ const String & i_ce,
+ const ary::idl::Module &
+ i_referingScope ) const;
+ const ary::idl::Module *
+ Search_Module(
+ const StringVector &
+ i_nameChain ) const;
+
+ void Get_CeText(
+ StringVector & o_module,
+ String & o_ce,
+ String & o_member,
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ void Get_TypeText(
+ StringVector & o_module,
+ String & o_sCe,
+ ary::idl::Ce_id & o_nCe,
+ int & o_sequenceCount,
+ const ary::idl::Type &
+ i_type ) const;
+ void Get_IndexData(
+ std::vector<ary::idl::Ce_id> &
+ o_data,
+ ary::idl::alphabetical_index::E_Letter
+ i_letter ) const;
+
+ const ary::idl::CePilot &
+ Ces() const;
+ private:
+ const ary::idl::Module *
+ find_SubModule(
+ const ary::idl::Module &
+ i_parent,
+ const String & i_name ) const;
+
+ /// Gets "::"-separated names out of a string.
+ bool nextName(
+ const char * & io_TextPtr,
+ String & o_name ) const;
+
+
+ const ary::idl::Gate &
+ gate() const;
+ const ary::idl::CePilot &
+ ces() const;
+ const ary::idl::TypePilot &
+ types() const;
+ // DATA
+ const ary::idl::Gate &
+ rGate;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hi_display.cxx b/autodoc/source/display/idl/hi_display.cxx
new file mode 100644
index 000000000000..f1c2042e9e6d
--- /dev/null
+++ b/autodoc/source/display/idl/hi_display.cxx
@@ -0,0 +1,207 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <idl/hi_display.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/getncast.hxx>
+#include <toolkit/out_tree.hxx>
+#include <cfrstd.hxx>
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include "hi_main.hxx"
+
+
+extern const String C_sCssFilename_Idl;
+
+
+inline bool
+HtmlDisplay_Idl::IsModule( const ary::idl::CodeEntity & i_ce ) const
+{
+ return ary::is_type<ary::idl::Module>(i_ce);
+}
+
+inline const ary::idl::Module &
+HtmlDisplay_Idl::Module_Cast( const ary::idl::CodeEntity & i_ce ) const
+{
+ return ary::ary_cast<ary::idl::Module>(i_ce);
+}
+
+
+
+
+HtmlDisplay_Idl::HtmlDisplay_Idl()
+ : pCurPageEnv(),
+ pMainDisplay()
+{
+}
+
+HtmlDisplay_Idl::~HtmlDisplay_Idl()
+{
+}
+
+void
+HtmlDisplay_Idl::do_Run( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ SetRunData( i_sOutputDirectory, i_rAryGate, i_rLayout );
+
+ Create_StartFile();
+ Create_CssFile();
+ Create_FilesInNameTree();
+ Create_IndexFiles();
+ Create_FilesInProjectTree();
+ Create_PackageList();
+ Create_HelpFile();
+}
+
+void
+HtmlDisplay_Idl::SetRunData( const char * i_sOutputDirectory,
+ const ary::idl::Gate & i_rAryGate,
+ const display::CorporateFrame & i_rLayout )
+{
+ csv::ploc::Path aOutputDir( i_sOutputDirectory, true );
+ pCurPageEnv = new HtmlEnvironment_Idl( aOutputDir, i_rAryGate, i_rLayout );
+ pMainDisplay = new MainDisplay_Idl(*pCurPageEnv);
+}
+
+void
+HtmlDisplay_Idl::Create_StartFile()
+{
+}
+
+void
+HtmlDisplay_Idl::Create_FilesInNameTree()
+{
+ Cout() << "\nCreate files in subtree namespaces ..." << Endl();
+
+ const ary::idl::Module &
+ rGlobalNamespace = pCurPageEnv->Data().GlobalNamespace();
+ pCurPageEnv->Goto_Directory( pCurPageEnv->OutputTree().NamesRoot(), true );
+
+ RecursiveDisplay_Module(rGlobalNamespace);
+
+ Cout() << "... done." << Endl();
+}
+
+void
+HtmlDisplay_Idl::Create_IndexFiles()
+{
+ Cout() << "\nCreate files in subtree index ..." << Endl();
+ pCurPageEnv->Goto_Directory( pCurPageEnv->OutputTree().IndexRoot(), true );
+ pMainDisplay->WriteGlobalIndices();
+ Cout() << "... done.\n" << Endl();
+}
+
+typedef ary::Dyn_StdConstIterator<ary::idl::Ce_id> Dyn_CeIterator;
+typedef ary::StdConstIterator<ary::idl::Ce_id> CeIterator;
+
+void
+HtmlDisplay_Idl::RecursiveDisplay_Module( const ary::idl::Module & i_module )
+{
+ i_module.Accept(*pMainDisplay);
+
+ Dyn_CeIterator
+ aMembers;
+ i_module.Get_Names(aMembers);
+
+ for ( CeIterator & iter = *aMembers;
+ iter;
+ ++iter )
+ {
+ const ary::idl::CodeEntity &
+ rCe = pCurPageEnv->Data().Find_Ce(*iter);
+
+ if ( NOT IsModule(rCe) )
+ rCe.Accept(*pMainDisplay);
+ else
+ {
+ pCurPageEnv->Goto_DirectoryLevelDown( rCe.LocalName(), true );
+ RecursiveDisplay_Module( Module_Cast(rCe) );
+ pCurPageEnv->Goto_DirectoryLevelUp();
+ }
+ } // end for
+}
+
+void
+HtmlDisplay_Idl::Create_FilesInProjectTree()
+{
+}
+
+void
+HtmlDisplay_Idl::Create_PackageList()
+{
+#if 0
+ Cout() << "\nCreate package list ..." << std::flush;
+
+ pCurPageEnv->CurPosition() = pCurPageEnv->OutputTree().Root();
+
+ // KORR
+ // ...
+
+ Cout() << " done." << Endl();
+#endif // 0
+}
+
+void
+HtmlDisplay_Idl::Create_HelpFile()
+{
+}
+
+void
+HtmlDisplay_Idl::Create_CssFile()
+{
+ Cout() << "\nCreate css file ..." << Endl();
+
+ pCurPageEnv->Goto_Directory( pCurPageEnv->OutputTree().Root(), true );
+ pCurPageEnv->Set_CurFile( C_sCssFilename_Idl );
+
+ StreamLock
+ slCurFilePath(700);
+ pCurPageEnv->Get_CurFilePath(slCurFilePath());
+
+ csv::File
+ aCssFile(slCurFilePath().c_str(), csv::CFM_CREATE);
+ csv::OpenCloseGuard
+ aOpenGuard(aCssFile);
+ if (NOT aOpenGuard)
+ {
+ Cerr() << "Can't create file " << slCurFilePath().c_str() << "." << Endl();
+ return;
+ }
+
+ aCssFile.write("/* Autodoc css file for IDL documentation */\n\n\n");
+ aCssFile.write(pCurPageEnv->Layout().CssStyle());
+ aCssFile.write("\n\n\n");
+ aCssFile.write(pCurPageEnv->Layout().CssStylesExplanation());
+}
diff --git a/autodoc/source/display/idl/hi_env.cxx b/autodoc/source/display/idl/hi_env.cxx
new file mode 100644
index 000000000000..7dc6b8187ab9
--- /dev/null
+++ b/autodoc/source/display/idl/hi_env.cxx
@@ -0,0 +1,199 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hi_env.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+#include <cfrstd.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hi_ary.hxx"
+#include "hi_linkhelper.hxx"
+
+
+
+const String C_s_index_files("index-files");
+
+const String C_sUseFileSuffix("-use.html");
+const String C_IndexA_FileName("index-1.html");
+
+
+HtmlEnvironment_Idl::HtmlEnvironment_Idl( const csv::ploc::Path & i_rOutputDir,
+ const ary::idl::Gate & i_rGate,
+ const display::CorporateFrame & i_rLayout )
+ : aOutputRoot(i_rOutputDir),
+ pData(new AryAccess(i_rGate)),
+ pGate(&i_rGate),
+ pOutputTree(new output::Tree),
+ aCurPosition(pOutputTree->Root()),
+ pCurPageCe(0),
+ pLayout(&i_rLayout),
+ pLinker()
+{
+ StringVector aHelp;
+ pOutputTree->Set_NamesRoot(aHelp);
+
+ aHelp.push_back(output::IndexFilesDirName());
+ pOutputTree->Set_IndexRoot(aHelp);
+
+ (*aHelp.begin()) = String("com");
+ aHelp.push_back(String("sun"));
+ aHelp.push_back(String("star"));
+ pOutputTree->Set_Overview(aHelp, output::ModuleFileName() );
+
+ pLinker = new LinkHelper(*this);
+}
+
+HtmlEnvironment_Idl::~HtmlEnvironment_Idl()
+{
+}
+
+namespace
+{
+StringVector G_aChain;
+}
+
+void
+HtmlEnvironment_Idl::Goto_Directory( output::Position i_pos,
+ bool i_bCreateDirectoryIfNecessary )
+{
+ aCurPosition = i_pos;
+ aCurPath = aOutputRoot.MyPath();
+
+ aCurPosition.Get_Chain(G_aChain);
+ for ( StringVector::const_iterator it = G_aChain.begin();
+ it != G_aChain.end();
+ ++it )
+ {
+ aCurPath.DirChain() += *it;
+ }
+
+ if (i_bCreateDirectoryIfNecessary)
+ create_Directory(aCurPath);
+}
+
+void
+HtmlEnvironment_Idl::Goto_DirectoryLevelDown( const String & i_subDirName,
+ bool i_bCreateDirectoryIfNecessary )
+{
+ aCurPosition +=(i_subDirName);
+
+ aCurPath.SetFile(String::Null_());
+ aCurPath.DirChain() += i_subDirName;
+
+ if (i_bCreateDirectoryIfNecessary)
+ create_Directory(aCurPath);
+}
+
+void
+HtmlEnvironment_Idl::Goto_DirectoryLevelUp()
+{
+ aCurPosition -= 1;
+
+ aCurPath.SetFile(String::Null_());
+ aCurPath.DirChain() -= 1;
+}
+
+void
+HtmlEnvironment_Idl::Set_CurFile( const String & i_fileName )
+{
+ aCurPath.SetFile(i_fileName);
+}
+
+void
+HtmlEnvironment_Idl::create_Directory( const csv::ploc::Path & i_path )
+
+{
+ csv::ploc::Directory aCurDir(i_path);
+ if (NOT aCurDir.Exists())
+ aCurDir.PhysicalCreate();
+}
+
+inline bool
+IsAbsoluteLink(const char * i_link)
+{
+ const char
+ shttp[] = "http://";
+ const char
+ sfile[] = "file://";
+ const int
+ csize = sizeof shttp - 1;
+ csv_assert(csize == sizeof sfile - 1);
+
+ return strncmp(i_link,shttp,csize) == 0
+ OR strncmp(i_link,sfile,csize) == 0;
+}
+
+
+const char *
+HtmlEnvironment_Idl::Link2Manual( const String & i_link ) const
+{
+ if ( IsAbsoluteLink(i_link.c_str()) )
+ return i_link;
+
+ static StreamStr aLink_(200);
+ aLink_.reset();
+ String
+ sDvgRoot(pLayout->DevelopersGuideHtmlRoot());
+ if (sDvgRoot.empty())
+ sDvgRoot = "../DevelopersGuide";
+
+ // KORR_FUTURE
+ // Enhance performance by calculating this only one time:
+ if ( NOT IsAbsoluteLink(sDvgRoot.c_str()) )
+ aCurPosition.Get_LinkToRoot(aLink_);
+ aLink_ << sDvgRoot
+ << "/"
+ << i_link;
+ return aLink_.c_str();
+}
+
+String
+HtmlEnvironment_Idl::CurPageCe_AsText() const
+{
+ return CurPageCe_AsFile(".html");
+}
+
+String
+HtmlEnvironment_Idl::CurPageCe_AsFile(const char * i_sEnding) const
+{
+ if (pCurPageCe == 0)
+ return String::Null_();
+
+ static StringVector aModule_;
+ String sCe;
+ String sDummy;
+ Data().Get_CeText(aModule_, sCe, sDummy, *pCurPageCe);
+ StreamLock slCe(500);
+ if (aModule_.size() > 0)
+ slCe().operator_join(aModule_.begin(), aModule_.end(), "/");
+ if (NOT sCe.empty())
+ slCe() << "/" << sCe << i_sEnding;
+ return String(slCe().c_str());
+}
diff --git a/autodoc/source/display/idl/hi_env.hxx b/autodoc/source/display/idl/hi_env.hxx
new file mode 100644
index 000000000000..f671d6f46ce6
--- /dev/null
+++ b/autodoc/source/display/idl/hi_env.hxx
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_ENV_HXX
+#define ADC_DISPLAY_HI_ENV_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+#include <cosv/ploc_dir.hxx>
+ // PARAMETERS
+#include <toolkit/out_position.hxx>
+
+namespace ary
+{
+namespace idl
+{
+ class Gate;
+ class CodeEntity;
+}
+}
+namespace display
+{
+ class CorporateFrame;
+}
+namespace output
+{
+ class Tree;
+}
+
+class AryAccess;
+class LinkHelper;
+
+/** @resp
+ Provides enviroment information to the HTML factory
+ classes.
+
+ @descr
+ All information that is not included in the data, especially
+ about the layout of the output tree and the access to
+ information from the repository are provided here.
+
+ @see HtmlFactory
+*/
+class HtmlEnvironment_Idl
+{
+ public:
+ // LIFECYCLE
+ HtmlEnvironment_Idl(
+ const csv::ploc::Path &
+ io_rOutputDir,
+ const ary::idl::Gate &
+ i_rGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ ~HtmlEnvironment_Idl();
+
+ // OPERATIONS
+ void Goto_Directory(
+ output::Position i_pos,
+ bool i_bCreateDirectoryIfNecessary );
+ void Goto_DirectoryLevelDown(
+ const String & i_subDirName,
+ bool i_bCreateDirectoryIfNecessary );
+ void Goto_DirectoryLevelUp();
+ void Set_CurFile(
+ const String & i_fileName );
+ void Set_CurPageCe(
+ const ary::idl::CodeEntity *
+ i_ce )
+ { pCurPageCe = i_ce; }
+ // INQUIRY
+ const ary::idl::Gate &
+ Gate() const { return *pGate; }
+ const AryAccess & Data() const { return *pData; }
+ const char * Link2Manual(
+ const String & i_link ) const;
+
+ /// This may be reimplemented for removing dead links to members.
+ bool Is_MemberExistenceCheckRequired() const
+ { return false; }
+
+ /// @return Holds only the current directory, not the current file.
+ output::Position & CurPosition() const { return aCurPosition; }
+ void Get_CurFilePath(
+ StreamStr & o_buffer ) const
+ { o_buffer << aCurPath; }
+
+ const display::CorporateFrame &
+ Layout() const { return *pLayout; }
+ const LinkHelper & Linker() const { return *pLinker; }
+
+ void Get_LinkTo(
+ StreamStr & o_result,
+ output::Position i_destination )
+ { CurPosition().Get_LinkTo(o_result, i_destination); }
+ String CurPageCe_AsText() const;
+ String CurPageCe_AsFile(
+ const char * i_sEnding) const;
+ const ary::idl::CodeEntity *
+ CurPageCe() const { return pCurPageCe; }
+
+ // ACCESS
+ output::Tree & OutputTree() { return *pOutputTree; }
+
+ private:
+ // Local
+ void create_Directory(
+ const csv::ploc::Path &
+ i_path );
+
+ // DATA
+ csv::ploc::Directory
+ aOutputRoot;
+ csv::ploc::Path aCurPath;
+
+ Dyn<AryAccess> pData; /// @invariant *pData is valid.
+ const ary::idl::Gate *
+ pGate; /// @invariant pGate != 0.
+ Dyn<output::Tree> pOutputTree; /// @invariant *pOutputTree is valid.
+ mutable output::Position
+ aCurPosition;
+ const ary::idl::CodeEntity *
+ pCurPageCe;
+
+ const display::CorporateFrame *
+ pLayout;
+
+ Dyn<LinkHelper> pLinker;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/display/idl/hi_factory.cxx b/autodoc/source/display/idl/hi_factory.cxx
new file mode 100644
index 000000000000..78d71bf83525
--- /dev/null
+++ b/autodoc/source/display/idl/hi_factory.cxx
@@ -0,0 +1,321 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hi_factory.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_ce.hxx>
+#include <toolkit/hf_title.hxx>
+#include "hfi_doc.hxx"
+#include "hfi_navibar.hxx"
+#include "hfi_tag.hxx"
+#include "hfi_typetext.hxx"
+#include "hi_linkhelper.hxx"
+
+
+extern const String
+ C_sCellStyle_SummaryLeft("imsum_left");
+extern const String
+ C_sCellStyle_SummaryRight("imsum_right");
+extern const String
+ C_sCellStyle_MDetail("imdetail");
+extern const String
+ C_sMemberTitle("membertitle");
+
+
+namespace
+{
+
+const char C_sSpace[92] = " "
+ " "
+ " ";
+}
+
+
+void
+HtmlFactory_Idl::produce_SummaryDeclaration( Xml::Element & o_row,
+ const client & i_ce ) const
+{
+ produce_InternalLink(o_row, i_ce);
+}
+
+void
+HtmlFactory_Idl::produce_InternalLink( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ StreamLock aLocalLink(100);
+ aLocalLink() << "#" << i_ce.LocalName();
+
+ o_screen
+ >> *new Html::TableCell
+ << new Html::ClassAttr( C_sCellStyle_SummaryLeft )
+ >> *new Html::Link( aLocalLink().c_str() )
+ << i_ce.LocalName();
+}
+
+void
+HtmlFactory_Idl::produce_ShortDoc( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ Xml::Element &
+ rDetailsRowCell = o_screen
+ >> *new Html::TableCell
+ << new Html::ClassAttr( C_sCellStyle_SummaryRight );
+ HF_IdlShortDocu
+ aLinkDoc(Env(), rDetailsRowCell);
+ aLinkDoc.Produce_byData( i_ce );
+
+ rDetailsRowCell << new Xml::XmlCode("&nbsp;");
+}
+
+// KORR_FUTURE: Does not belong here (implementation inheritance)!
+void
+HtmlFactory_Idl::produce_Bases( Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const
+{
+ ary::idl::Type_id nBaseT = baseOf(i_ce);
+ if ( nBaseT.IsValid() )
+ {
+ HF_DocEntryList
+ aDocList( o_screen );
+ aDocList.Produce_Term(i_sLabel);
+
+ int nDepth = 0;
+ Xml::Element &
+ rBaseList = aDocList.Produce_Definition()
+ >> *new Xml::AnElement("pre")
+ << new Xml::AnAttribute("style","font-family:monospace;");
+ rBaseList
+ >> *new Html::Strong
+ << i_ce.LocalName();
+ rBaseList
+ << "\n";
+ recursive_ShowBases( rBaseList,
+ nBaseT,
+ nDepth );
+ }
+}
+
+void
+HtmlFactory_Idl::produce_Members( ce_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel,
+ const E_MemberViewType i_viewType ) const
+{
+ csv_assert( it_list );
+
+ Dyn< HF_SubTitleTable > pSummary;
+ if ( ( i_viewType == viewtype_summary )
+ || ( i_viewType == viewtype_complete )
+ )
+ {
+ pSummary = new HF_SubTitleTable(
+ CurOut(),
+ i_summaryLabel,
+ i_summaryTitle,
+ 2 );
+ }
+
+ Dyn< HF_SubTitleTable > pDetails;
+ if ( ( i_viewType == viewtype_details )
+ || ( i_viewType == viewtype_complete )
+ )
+ {
+ pDetails = new HF_SubTitleTable(
+ CurOut(),
+ i_detailsLabel,
+ i_detailsTitle,
+ 1 );
+ }
+
+ for ( ; it_list.operator bool(); ++it_list )
+ {
+ const ary::idl::CodeEntity &
+ rCe = Env().Data().Find_Ce(*it_list);
+
+ if ( pSummary )
+ {
+ Xml::Element &
+ rSummaryRow = pSummary->Add_Row();
+ produce_SummaryDeclaration(rSummaryRow, rCe);
+// produce_InternalLink(rSummaryRow, rCe);
+ produce_ShortDoc(rSummaryRow, rCe);
+ }
+
+ if ( pDetails )
+ produce_MemberDetails(*pDetails, rCe);
+ }
+}
+
+void
+HtmlFactory_Idl::produce_Title( HF_TitleTable & o_title,
+ const String & i_label,
+ const client & i_ce ) const
+{
+ StreamLock
+ slAnnotations(200);
+ get_Annotations(slAnnotations(), i_ce);
+ StreamLock
+ slTitle(200);
+ slTitle() << i_label << " " << i_ce.LocalName();
+ o_title.Produce_Title( slAnnotations().c_str(),
+ slTitle().c_str() );
+}
+
+void
+HtmlFactory_Idl::get_Annotations( StreamStr & o_out,
+ const client & i_ce ) const
+{
+ const ary::doc::OldIdlDocu *
+ doc = Get_IdlDocu(i_ce.Docu());
+ if (doc != 0)
+ {
+ if (doc->IsDeprecated())
+ o_out << "deprecated ";
+ if (NOT doc->IsPublished())
+ o_out << "unpublished ";
+ }
+
+ // KORR
+ // Need to display "unpublished", if there is no docu.
+}
+
+void
+HtmlFactory_Idl::write_Docu( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ const ary::doc::OldIdlDocu *
+ doc = Get_IdlDocu(i_ce.Docu());
+ if (doc != 0)
+ {
+ HF_DocEntryList
+ aDocuList( o_screen );
+ HF_IdlDocu
+ aDocu( Env(), aDocuList );
+ aDocu.Produce_fromCodeEntity(i_ce);
+ }
+
+ write_ManualLinks(o_screen, i_ce);
+}
+
+void
+HtmlFactory_Idl::write_ManualLinks( Xml::Element & o_screen,
+ const client & i_ce ) const
+{
+ const StringVector &
+ rLinks2Descrs = i_ce.Secondaries().Links2DescriptionInManual();
+ if ( rLinks2Descrs.size() == 0 )
+ return;
+
+ o_screen
+ >> *new Html::Label(C_sLocalManualLinks.c_str()+1) // Leave out the leading '#'.
+ << " ";
+ HF_DocEntryList
+ aDocuList( o_screen );
+ aDocuList.Produce_Term("Developers Guide");
+ csv_assert(rLinks2Descrs.size() % 2 == 0);
+ for ( StringVector::const_iterator it = rLinks2Descrs.begin();
+ it != rLinks2Descrs.end();
+ ++it )
+ {
+ Xml::Element &
+ rLink = aDocuList.Produce_Definition() >> *new Html::Link( Env().Link2Manual(*it));
+ if ( (*(it+1)).empty() )
+ // HACK KORR_FUTURE
+ // Research what happens with manual links which contain normal characters
+ // in non-utf-8 texts. And research, why utfF-8 does not work here.
+ rLink << new Xml::XmlCode(*it);
+ else
+ rLink << new Xml::XmlCode( *(it+1) );
+ ++it;
+ } // end for
+}
+
+void
+HtmlFactory_Idl::produce_MemberDetails( HF_SubTitleTable & ,
+ const client & ) const
+{
+ // Dummy, which does not need to do anything.
+}
+
+void
+HtmlFactory_Idl::recursive_ShowBases( Xml::Element & o_screen,
+ type_id i_baseType,
+ int & io_nDepth ) const
+{
+ // Show this base
+ ++io_nDepth;
+ const ary::idl::CodeEntity *
+ pCe = Env().Linker().Search_CeFromType(i_baseType);
+
+ csv_assert(io_nDepth > 0);
+ if (io_nDepth > 30)
+ io_nDepth = 30;
+ o_screen
+ << (C_sSpace + 93 - 3*io_nDepth)
+ << new csi::xml::XmlCode("&#x2517")
+ << " ";
+
+ if (pCe == 0)
+ {
+ HF_IdlTypeText
+ aText( Env(), o_screen, false );
+ aText.Produce_byData( i_baseType );
+ o_screen
+ << "\n";
+ --io_nDepth;
+ return;
+ }
+
+ HF_IdlTypeText
+ aBaseLink( Env(), o_screen, true );
+ aBaseLink.Produce_byData(pCe->CeId());
+ o_screen
+ << "\n";
+
+ // Bases
+ ary::idl::Type_id
+ nBaseT = baseOf(*pCe);
+ if (nBaseT.IsValid())
+ recursive_ShowBases(o_screen,nBaseT,io_nDepth);
+
+ --io_nDepth;
+ return;
+}
+
+HtmlFactory_Idl::type_id
+HtmlFactory_Idl::inq_BaseOf( const client & ) const
+{
+ // Unused dummy.
+ return type_id(0);
+}
+
diff --git a/autodoc/source/display/idl/hi_factory.hxx b/autodoc/source/display/idl/hi_factory.hxx
new file mode 100644
index 000000000000..d7a649bbfbb2
--- /dev/null
+++ b/autodoc/source/display/idl/hi_factory.hxx
@@ -0,0 +1,169 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_FACTORY_HXX
+#define ADC_DISPLAY_HI_FACTORY_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/stdconstiter.hxx>
+#include <ary/idl/i_types4idl.hxx>
+#include <toolkit/out_position.hxx>
+
+
+namespace ary
+{
+namespace idl
+{
+ class Module;
+}
+namespace doc
+{
+ class OldIdlDocu;
+}
+}
+
+
+class HtmlEnvironment_Idl;
+class LinkHelper;
+class HF_NaviSubRow;
+class HF_TitleTable;
+class HF_SubTitleTable;
+
+
+class HtmlFactory_Idl : public HtmlFactory<HtmlEnvironment_Idl>
+{
+ public:
+ enum E_MemberViewType
+ {
+ viewtype_summary, // the summary of the members
+ viewtype_details, // the details of the members
+ viewtype_complete // everything
+ };
+
+ enum E_DocType
+ {
+ doctype_summaryOnly, // only the summary
+ doctype_complete // the complete documentation
+ };
+
+ public:
+ typedef ary::idl::CodeEntity client;
+ typedef ary::idl::Ce_id ce_id;
+ typedef ary::idl::Type_id type_id;
+ typedef ary::doc::OldIdlDocu ce_info;
+
+ typedef ary::Dyn_StdConstIterator<ce_id> dyn_ce_list;
+ typedef ary::Dyn_StdConstIterator<type_id> dyn_type_list;
+ typedef ary::StdConstIterator<ce_id> ce_list;
+ typedef ary::StdConstIterator<type_id> type_list;
+
+ typedef HtmlEnvironment_Idl Environment;
+ typedef output::Position OutPosition;
+
+ protected:
+ HtmlFactory_Idl(
+ Environment & io_rEnv,
+ Xml::Element * o_pOut = 0 )
+ : HtmlFactory<Environment>(io_rEnv, o_pOut)
+ { }
+ virtual ~HtmlFactory_Idl() {}
+
+ /** The default version only calls ->produce_InternalLink().
+ This may be overwritten by derived classes.
+ */
+ virtual void produce_SummaryDeclaration(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+ void produce_InternalLink(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+ void produce_ShortDoc(
+ Xml::Element & o_row,
+ const client & i_ce ) const;
+
+ // KORR_FUTURE: Does not belong here (implementation inheritance)!
+ void produce_Bases(
+ Xml::Element & o_screen,
+ const client & i_ce,
+ const String & i_sLabel ) const;
+ void produce_Members(
+ ce_list & it_list,
+ const String & i_summaryTitle,
+ const String & i_summaryLabel,
+ const String & i_detailsTitle,
+ const String & i_detailsLabel,
+ const E_MemberViewType i_viewType = viewtype_complete ) const;
+
+ void produce_Title(
+ HF_TitleTable & o_title,
+ const String & i_label,
+ const client & i_ce ) const;
+ void get_Annotations(
+ StreamStr & o_out,
+ const client & i_ce ) const;
+
+ /// Writes complete docu in standard format.
+ void write_Docu(
+ Xml::Element & o_screen,
+ const client & i_ce ) const;
+
+ void write_ManualLinks(
+ Xml::Element & o_screen,
+ const client & i_ce ) const;
+ private:
+ // Dummy does nothing
+ virtual void produce_MemberDetails(
+ HF_SubTitleTable & o_table,
+ const client & i_ce ) const;
+ void recursive_ShowBases(
+ Xml::Element & o_screen,
+ type_id i_baseType,
+ int & io_nDepth ) const;
+ type_id baseOf(
+ const client & i_ce ) const
+ { return inq_BaseOf(i_ce); }
+ virtual type_id inq_BaseOf(
+ const client & i_ce ) const;
+};
+
+
+extern const String
+ C_sCellStyle_SummaryLeft;
+extern const String
+ C_sCellStyle_SummaryRight;
+extern const String
+ C_sCellStyle_MDetail;
+extern const String
+ C_sMemberTitle;
+
+
+#endif
diff --git a/autodoc/source/display/idl/hi_linkhelper.cxx b/autodoc/source/display/idl/hi_linkhelper.cxx
new file mode 100644
index 000000000000..1e3bff61b50c
--- /dev/null
+++ b/autodoc/source/display/idl/hi_linkhelper.cxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hi_linkhelper.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_module.hxx>
+
+
+
+
+const ary::idl::Module *
+LinkHelper::Search_CurModule() const
+{
+ return Search_Module( rEnv.CurPosition().RelatedNode() );
+}
+
+const ary::idl::Module *
+LinkHelper::Search_Module( output::Node & i_node ) const
+{
+ static StringVector aNames_;
+
+ output::Node::relative_id
+ nId = i_node.RelatedNameRoom();
+ if (nId == 0)
+ {
+ csv::erase_container(aNames_);
+ i_node.Get_Chain(aNames_);
+ const ary::idl::Module * pModule =
+ rEnv.Data().Search_Module(aNames_);
+ if ( pModule == 0 )
+ return 0;
+ nId = static_cast<output::Node::relative_id>(pModule->Id());
+ rEnv.CurPosition().RelatedNode().Set_RelatedNameRoom(nId);
+ }
+
+ return & rEnv.Data().Find_Module( ary::idl::Ce_id(nId) );
+}
+
+namespace
+{
+ const String C_sXrefsSuffix("-xref");
+}
+
+
+LinkHelper::OutPosition
+LinkHelper::PositionOf_CurXRefs( const String & i_ceName ) const
+{
+ StreamLock sl(100);
+ return OutPosition( rEnv.CurPosition(),
+ sl() << i_ceName
+ << C_sXrefsSuffix
+ << ".html"
+ << c_str );
+}
+
+const String &
+LinkHelper::XrefsSuffix() const
+{
+ return C_sXrefsSuffix;
+}
+
+
+String
+nameChainLinker( const char * )
+{
+ static const String
+ sModuleFileName_( output::ModuleFileName() );
+ return sModuleFileName_;
+}
diff --git a/autodoc/source/display/idl/hi_linkhelper.hxx b/autodoc/source/display/idl/hi_linkhelper.hxx
new file mode 100644
index 000000000000..26f50cca2f87
--- /dev/null
+++ b/autodoc/source/display/idl/hi_linkhelper.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_LINKHELPER_HXX
+#define ADC_DISPLAY_HI_LINKHELPER_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include "hi_ary.hxx"
+#include "hi_env.hxx"
+#include <toolkit/out_position.hxx>
+#include <toolkit/out_tree.hxx>
+
+
+class LinkHelper
+{
+ public:
+ typedef ary::idl::CodeEntity CE;
+ typedef output::Position OutPosition;
+
+ LinkHelper(
+ HtmlEnvironment_Idl &
+ io_rEnv )
+ : rEnv(io_rEnv) {}
+
+ OutPosition PositionOf_CurModule() const
+ { return OutPosition( rEnv.CurPosition(),
+ output::ModuleFileName()); }
+
+ OutPosition PositionOf_CurXRefs(
+ const String & i_ceName) const;
+ OutPosition PositionOf_Index() const
+ { OutPosition ret1 = rEnv.OutputTree().IndexRoot();
+ return OutPosition( ret1, String(output::IndexFile_A()) ); }
+
+
+ const ary::idl::Module *
+ Search_CurModule() const;
+ const ary::idl::Module *
+ Search_Module(
+ output::Node & i_node ) const;
+
+ const CE * Search_CeFromType(
+ ary::idl::Type_id i_type ) const;
+
+ void Get_Link2Position(
+ StreamStr & o_link,
+ OutPosition & i_pos ) const
+ { rEnv.CurPosition().Get_LinkTo(o_link, i_pos); }
+
+ void Get_Link2Member(
+ StreamStr & o_link,
+ OutPosition & i_ownerPos,
+ const String & i_memberName ) const
+ { Get_Link2Position(o_link, i_ownerPos);
+ o_link << "#" << i_memberName; }
+ const String & XrefsSuffix() const;
+
+ private:
+ // DATA
+ mutable HtmlEnvironment_Idl &
+ rEnv;
+};
+
+inline const ary::idl::CodeEntity *
+LinkHelper::Search_CeFromType( ary::idl::Type_id i_type ) const
+{
+ ary::idl::Ce_id nCe = rEnv.Data().CeFromType(i_type);
+ if (nCe.IsValid())
+ return &rEnv.Data().Find_Ce(nCe);
+ return 0;
+}
+
+
+
+String nameChainLinker(
+ const char * i_levelName );
+
+
+#endif
diff --git a/autodoc/source/display/idl/hi_main.cxx b/autodoc/source/display/idl/hi_main.cxx
new file mode 100644
index 000000000000..8a18d4a8564b
--- /dev/null
+++ b/autodoc/source/display/idl/hi_main.cxx
@@ -0,0 +1,764 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "hi_main.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+#include <cosv/ploc.hxx>
+#include <cosv/file.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/ik_ce.hxx>
+#include <ary/idl/ik_enum.hxx>
+#include <ary/idl/ik_typedef.hxx>
+#include <ary/idl/ik_interface.hxx>
+#include <ary/idl/ik_struct.hxx>
+#include <ary/idl/ik_exception.hxx>
+#include <ary/idl/i_constant.hxx>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/i_sisingleton.hxx>
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/i_module.hxx>
+#include <cfrstd.hxx>
+#include <toolkit/htmlfile.hxx>
+#include <toolkit/out_position.hxx>
+#include <toolkit/out_tree.hxx>
+#include "hfi_constgroup.hxx"
+#include "hfi_enum.hxx"
+#include "hfi_globalindex.hxx"
+#include "hfi_interface.hxx"
+#include "hfi_module.hxx"
+#include "hfi_struct.hxx"
+#include "hfi_service.hxx"
+#include "hfi_singleton.hxx"
+#include "hfi_siservice.hxx"
+#include "hfi_typedef.hxx"
+#include "hfi_xrefpage.hxx"
+#include "hi_env.hxx"
+#include "hi_linkhelper.hxx"
+
+
+using ::ary::idl::Ce_id;
+using ::ary::idl::Type_id;
+using ::ary::idl::ifc_ce::Dyn_CeIterator;
+
+
+
+extern const String C_sCssFilename_Idl("idl.css");
+
+/*
+typedef ::ary::Dyn_StdConstIterator< ::ary::idl::CommentedRelation>
+ Dyn_ComRefIterator;
+namespace read_module = ::ary::idl::ifc_module;
+namespace read_interface = ::ary::idl::ifc_interface;
+namespace read_service = ::ary::idl::ifc_service;
+namespace read_struct = ::ary::idl::ifc_struct;
+namespace read_exception = ::ary::idl::ifc_exception;
+namespace read_enum = ::ary::idl::ifc_enum;
+namespace read_typedef = ::ary::idl::ifc_typedef;
+namespace read_constgroup = ::ary::idl::ifc_constantsgroup;
+*/
+
+namespace
+{
+
+/** @resp
+ Inits (constructor) and creates (destructor) the current
+ html documentation file ( MainDisplay_Idl.pMyFile ).
+*/
+class Guard_CurFile
+{
+ public:
+ Guard_CurFile( /// For CodeEntities
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ const ary::idl::CodeEntity &
+ i_ce,
+ const String & i_titlePrefix );
+ Guard_CurFile( /// For Use pages
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ const String & i_fileName,
+ const String & i_titlePrefix );
+ Guard_CurFile( /// For Modules
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ const ary::idl::CodeEntity &
+ i_ce );
+ Guard_CurFile( /// For Indices
+ DocuFile_Html & io_client,
+ HtmlEnvironment_Idl &
+ io_env,
+ char i_letter );
+ ~Guard_CurFile();
+ private:
+ DocuFile_Html & rClient;
+ HtmlEnvironment_Idl &
+ rEnv;
+
+};
+
+/** @resp
+ Sets and releases the current factory pointer
+ ( MainDisplay_Idl.pCurFactory ).
+*/
+class Guard_CurFactoryPtr
+{
+ public:
+ Guard_CurFactoryPtr(
+ HtmlFactory_Idl *& io_client,
+ HtmlFactory_Idl & i_factory )
+ : rpClient(io_client)
+ { rpClient = &i_factory; }
+
+ ~Guard_CurFactoryPtr()
+ { rpClient = 0; }
+
+ private:
+ HtmlFactory_Idl *& rpClient;
+
+};
+
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ const ary::idl::CodeEntity & i_ce,
+ const String & i_titlePrefix )
+ : rClient(io_client),
+ rEnv(io_env)
+{ // For Ces
+ StreamLock sl(300);
+ io_env.Set_CurFile( sl() << i_ce.LocalName()
+ << ".html"
+ << c_str );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+
+ rClient.EmptyBody();
+ csv::ploc::Path
+ aLocation(aCurFilePath().c_str());
+ rClient.SetLocation(aLocation);
+ sl().reset();
+ rClient.SetTitle( sl() << i_titlePrefix
+ << " "
+ << i_ce.LocalName()
+ << c_str );
+ sl().reset();
+ rClient.SetRelativeCssPath(
+ sl() << io_env.CurPosition().LinkToRoot()
+ << C_sCssFilename_Idl
+ << c_str );
+
+ io_env.Set_CurPageCe(&i_ce);
+}
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ const String & i_fileName,
+ const String & i_titlePrefix )
+ : rClient(io_client),
+ rEnv(io_env)
+{ // For Use pages
+ StreamLock sl(300);
+ io_env.Set_CurFile( sl() << i_fileName
+ << ".html"
+ << c_str );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+ csv::ploc::Path
+ aLocation(aCurFilePath().c_str());
+
+ rClient.EmptyBody();
+ rClient.SetLocation(aLocation);
+ sl().reset();
+ rClient.SetTitle( sl() << i_titlePrefix << " " << i_fileName << c_str );
+ sl().reset();
+ rClient.SetRelativeCssPath(
+ sl() << io_env.CurPosition().LinkToRoot()
+ << C_sCssFilename_Idl
+ << c_str );
+
+ io_env.Set_CurPageCe(0);
+}
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ const ary::idl::CodeEntity & i_ce )
+ : rClient(io_client),
+ rEnv(io_env)
+{ // For Modules
+ io_env.Set_CurFile( output::ModuleFileName() );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+ csv::ploc::Path
+ aLocation(aCurFilePath().c_str());
+
+ rClient.EmptyBody();
+ rClient.SetLocation(aLocation);
+ StreamLock sl(300);
+ rClient.SetTitle( sl() << "Module " << io_env.CurPosition().Name() << c_str );
+ sl().reset();
+ rClient.SetRelativeCssPath(
+ sl() << io_env.CurPosition().LinkToRoot()
+ << C_sCssFilename_Idl
+ << c_str );
+
+ io_env.Set_CurPageCe(&i_ce);
+}
+
+Guard_CurFile::Guard_CurFile( DocuFile_Html & io_client,
+ HtmlEnvironment_Idl & io_env,
+ char i_letter )
+ : rClient(io_client),
+ rEnv(io_env)
+{ // For Index pages
+ StreamLock sl(300);
+ io_env.Set_CurFile( sl() << "index-"
+ << ( i_letter != '_'
+ ? int(i_letter)-'a'+1
+ : 27 )
+ << ".html"
+ << c_str );
+ StreamLock aCurFilePath(700);
+ io_env.Get_CurFilePath(aCurFilePath());
+ csv::ploc::Path
+ aLocation(aCurFilePath().c_str());
+
+ rClient.EmptyBody();
+ rClient.SetLocation(aLocation);
+ sl().reset();
+ rClient.SetTitle( sl() << "Global Index "
+ << ( i_letter != '_'
+ ? char(i_letter-'a'+'A')
+ : '_' )
+ << c_str );
+ sl().reset();
+ rClient.SetRelativeCssPath(
+ sl() << "../"
+ << C_sCssFilename_Idl
+ << c_str );
+}
+
+Guard_CurFile::~Guard_CurFile()
+{
+ rClient.CreateFile();
+ rEnv.Set_CurPageCe(0);
+}
+
+
+} // anonymous namespace
+
+
+
+
+MainDisplay_Idl::MainDisplay_Idl( HtmlEnvironment_Idl & io_rEnv )
+ : pEnv(&io_rEnv),
+ pMyFile(new DocuFile_Html),
+ pCurFactory(0)
+{
+// pMyFile->SetStyle( Env().Layout().CssStyle() );
+ pMyFile->SetCopyright( Env().Layout().CopyrightText() );
+}
+
+MainDisplay_Idl::~MainDisplay_Idl()
+{
+}
+
+
+void
+MainDisplay_Idl::WriteGlobalIndices()
+{
+ for ( const char * pLetter = "abcdefghijklmnopqrstuvwxyz_X"; *pLetter != 'X'; ++pLetter )
+ {
+ Guard_CurFile gFile( *pMyFile, Env(), *pLetter );
+
+ HF_IdlGlobalIndex aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_Page( ary::idl::alphabetical_index::E_Letter(*pLetter) );
+ } // end for
+}
+
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Module & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce );
+ HF_IdlModule aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Interface & i_ce )
+{
+ do_InterfaceDescr(i_ce);
+ do_Interface2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Service & i_ce )
+{
+ do_ServiceDescr(i_ce);
+ do_Service2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::SglIfcService & i_ce )
+{
+ do_SglIfcServiceDescr(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Struct & i_ce )
+{
+ do_StructDescr(i_ce);
+ do_Struct2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Exception & i_ce )
+{
+ do_ExceptionDescr(i_ce);
+ do_Exception2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Enum & i_ce )
+{
+ do_EnumDescr(i_ce);
+ do_Enum2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Typedef & i_ce )
+{
+ do_TypedefDescr(i_ce);
+ do_Typedef2s(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::ConstantsGroup & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Constants' Group" );
+ HF_IdlConstGroup aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::Singleton & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Singleton" );
+ HF_IdlSingleton aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData_ServiceBased(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Process( const ary::idl::SglIfcSingleton & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Singleton" );
+ HF_IdlSingleton aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData_InterfaceBased(i_ce);
+}
+
+void
+MainDisplay_Idl::do_InterfaceDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Interface" );
+ HF_IdlInterface aInterface( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aInterface);
+
+ aInterface.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_ServiceDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Service" );
+ HF_IdlService aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_SglIfcServiceDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Service" );
+ HF_IdlSglIfcService aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_StructDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Struct" );
+ HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), false );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_ExceptionDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Exception" );
+ HF_IdlStruct aFactory( *pEnv, pMyFile->Body(), true );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_EnumDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Enum" );
+ HF_IdlEnum aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_TypedefDescr( const ary::idl::CodeEntity & i_ce )
+{
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ i_ce,
+ "Typedef" );
+ HF_IdlTypedef aFactory( *pEnv, pMyFile->Body() );
+ Guard_CurFactoryPtr gFactory(pCurFactory,aFactory);
+
+ aFactory.Produce_byData(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Interface2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Interface" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Interface,
+ i_ce );
+
+
+ aUses.Produce_Tree(
+ "Derived Interfaces",
+ "#Deriveds",
+ i_ce,
+ &ary::idl::ifc_interface::xref::Get_Derivations );
+
+ Dyn_CeIterator pXrefList;
+
+ ary::idl::ifc_interface::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_ExportingServices(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Services which Support this Interface",
+ "#SupportingServices",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_ExportingSingletons(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Singletons which Support this Interface",
+ "#SupportingSingletons",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ ary::idl::ifc_interface::xref::Get_AsDataTypes(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Data Type",
+ "#DataTypes",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Service2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Service" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Service,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_service::xref::Get_IncludingServices(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Services which Include this Service",
+ "#IncludingServices",
+ *pXrefList );
+
+ ary::idl::ifc_service::xref::Get_InstantiatingSingletons(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Singletons which Instantiate this Service",
+ "#Singletons",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Struct2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Struct" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Struct,
+ i_ce );
+
+ aUses.Produce_Tree(
+ "Derived Structs",
+ "#Deriveds",
+ i_ce,
+ &ary::idl::ifc_struct::xref::Get_Derivations );
+
+ Dyn_CeIterator pXrefList;
+
+ ary::idl::ifc_struct::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ ary::idl::ifc_struct::xref::Get_AsDataTypes(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Data Type",
+ "#DataTypes",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Exception2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Exception" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Exception,
+ i_ce );
+
+ aUses.Produce_Tree(
+ "Derived Exceptions",
+ "#Deriveds",
+ i_ce,
+ &ary::idl::ifc_exception::xref::Get_Derivations );
+
+ Dyn_CeIterator pXrefList;
+
+ ary::idl::ifc_exception::xref::Get_RaisingFunctions(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Raising Functions",
+ "#Raisers",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Enum2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl()
+ << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Enum" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Enum,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_enum::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_enum::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_enum::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ ary::idl::ifc_enum::xref::Get_AsDataTypes(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Data Type",
+ "#DataTypes",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
+void
+MainDisplay_Idl::do_Typedef2s( const ary::idl::CodeEntity & i_ce )
+{
+ StreamLock sl(100);
+ String sUsesFileName(
+ sl() << i_ce.LocalName()
+ << Env().Linker().XrefsSuffix()
+ << c_str );
+ Guard_CurFile gFile( *pMyFile,
+ Env(),
+ sUsesFileName,
+ "Uses of Typedef" );
+ HF_IdlXrefs aUses( *pEnv,
+ pMyFile->Body(),
+ C_sCePrefix_Typedef,
+ i_ce );
+ Dyn_CeIterator pXrefList;
+ ary::idl::ifc_typedef::xref::Get_SynonymTypedefs(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Synonym Typedefs",
+ "#Synonyms",
+ *pXrefList );
+ ary::idl::ifc_typedef::xref::Get_AsReturns(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Return Type",
+ "#Returns",
+ *pXrefList );
+ ary::idl::ifc_typedef::xref::Get_AsParameters(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Parameter",
+ "#Parameters",
+ *pXrefList );
+ ary::idl::ifc_typedef::xref::Get_AsDataTypes(pXrefList,i_ce);
+ aUses.Produce_List(
+ "Uses as Data Type",
+ "#DataTypes",
+ *pXrefList );
+ aUses.Write_ManualLinks(i_ce);
+}
+
diff --git a/autodoc/source/display/idl/hi_main.hxx b/autodoc/source/display/idl/hi_main.hxx
new file mode 100644
index 000000000000..57b345a98df7
--- /dev/null
+++ b/autodoc/source/display/idl/hi_main.hxx
@@ -0,0 +1,178 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HFIDMAIN_HXX
+#define ADC_DISPLAY_HFIDMAIN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/tpl/processor.hxx>
+ // COMPONENTS
+#include "hi_factory.hxx"
+ // PARAMETERS
+
+
+class HtmlEnvironment_Idl;
+class HtmlFactory_Idl;
+class DocuFile_Html;
+
+namespace ary
+{
+namespace idl
+{
+
+ class Module;
+ class Service;
+ class SglIfcService;
+ class Interface;
+ class Struct;
+ class Exception;
+ class Enum;
+ class Typedef;
+ class ConstantsGroup;
+ class Singleton;
+ class SglIfcSingleton;
+
+} // namespace idl
+} // namespace ary
+
+
+class MainDisplay_Idl : public csv::ProcessorIfc,
+ public csv::ConstProcessor<ary::idl::Module>,
+ public csv::ConstProcessor<ary::idl::Service>,
+ public csv::ConstProcessor<ary::idl::SglIfcService>,
+ public csv::ConstProcessor<ary::idl::Interface>,
+ public csv::ConstProcessor<ary::idl::Struct>,
+ public csv::ConstProcessor<ary::idl::Exception>,
+ public csv::ConstProcessor<ary::idl::Enum>,
+ public csv::ConstProcessor<ary::idl::Typedef>,
+ public csv::ConstProcessor<ary::idl::ConstantsGroup>,
+ public csv::ConstProcessor<ary::idl::Singleton>,
+ public csv::ConstProcessor<ary::idl::SglIfcSingleton>
+{
+ public:
+ MainDisplay_Idl(
+ HtmlEnvironment_Idl &
+ io_rEnv );
+ virtual ~MainDisplay_Idl();
+
+ void WriteGlobalIndices();
+
+ void Display_NamedEntityHierarchy();
+
+ private:
+ // Interface csv::ProcessorIfc:
+ virtual void do_Process(
+ const ary::idl::Module & i_client );
+ virtual void do_Process(
+ const ary::idl::Service & i_client );
+ virtual void do_Process(
+ const ary::idl::SglIfcService &
+ i_client );
+ virtual void do_Process(
+ const ary::idl::Interface & i_client );
+ virtual void do_Process(
+ const ary::idl::Struct & i_client );
+ virtual void do_Process(
+ const ary::idl::Exception & i_client );
+ virtual void do_Process(
+ const ary::idl::Enum & i_client );
+ virtual void do_Process(
+ const ary::idl::Typedef & i_client );
+ virtual void do_Process(
+ const ary::idl::ConstantsGroup &
+ i_client );
+ virtual void do_Process(
+ const ary::idl::Singleton & i_client );
+ virtual void do_Process(
+ const ary::idl::SglIfcSingleton &
+ i_client );
+ // Locals
+ void do_ServiceDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_SglIfcServiceDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_InterfaceDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_StructDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_ExceptionDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_EnumDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_TypedefDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_SingletonDescr(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Service2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Interface2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Struct2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Exception2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Enum2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Typedef2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+ void do_Singleton2s(
+ const ary::idl::CodeEntity &
+ i_rData );
+
+ const HtmlEnvironment_Idl &
+ Env() const { return *pEnv; }
+ HtmlEnvironment_Idl &
+ Env() { return *pEnv; }
+ Xml::Element & CurHtmlOut() { return pCurFactory->CurOut(); }
+
+ // DATA
+ HtmlEnvironment_Idl *
+ pEnv;
+ Dyn<DocuFile_Html> pMyFile;
+ HtmlFactory_Idl * pCurFactory;
+};
+
+
+
+#endif
diff --git a/autodoc/source/display/idl/makefile.mk b/autodoc/source/display/idl/makefile.mk
new file mode 100644
index 000000000000..383983a1fb22
--- /dev/null
+++ b/autodoc/source/display/idl/makefile.mk
@@ -0,0 +1,77 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_idl
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/hfi_constgroup.obj \
+ $(OBJ)$/hfi_doc.obj \
+ $(OBJ)$/hfi_enum.obj \
+ $(OBJ)$/hfi_globalindex.obj \
+ $(OBJ)$/hfi_hierarchy.obj \
+ $(OBJ)$/hfi_interface.obj \
+ $(OBJ)$/hfi_method.obj \
+ $(OBJ)$/hfi_module.obj \
+ $(OBJ)$/hfi_navibar.obj \
+ $(OBJ)$/hfi_property.obj \
+ $(OBJ)$/hfi_service.obj \
+ $(OBJ)$/hfi_singleton.obj \
+ $(OBJ)$/hfi_siservice.obj \
+ $(OBJ)$/hfi_struct.obj \
+ $(OBJ)$/hfi_tag.obj \
+ $(OBJ)$/hfi_typedef.obj \
+ $(OBJ)$/hfi_typetext.obj \
+ $(OBJ)$/hfi_xrefpage.obj \
+ $(OBJ)$/hi_ary.obj \
+ $(OBJ)$/hi_display.obj \
+ $(OBJ)$/hi_env.obj \
+ $(OBJ)$/hi_factory.obj \
+ $(OBJ)$/hi_linkhelper.obj \
+ $(OBJ)$/hi_main.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/inc/cfrstd.hxx b/autodoc/source/display/inc/cfrstd.hxx
new file mode 100644
index 000000000000..5545fe854596
--- /dev/null
+++ b/autodoc/source/display/inc/cfrstd.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CFRSTD_HXX
+#define ADC_CFRSTD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <display/corframe.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+class StdFrame : public display::CorporateFrame
+{
+ public:
+ // LIFECYCLE
+ StdFrame();
+
+ // INQUIRY
+ virtual DYN Html_Image *
+ LogoSrc() const;
+ virtual const char *
+ LogoLink() const;
+ virtual const char *
+ CopyrightText() const;
+ virtual const char *
+ CssStyle() const;
+ virtual const char *
+ CssStylesExplanation() const;
+ virtual const char *
+ DevelopersGuideHtmlRoot() const;
+ virtual bool SimpleLinks() const;
+
+ // ACCESS
+ virtual void Set_DevelopersGuideHtmlRoot(
+ const String & i_directory );
+ virtual void Set_SimpleLinks();
+
+ private:
+ String sDevelopersGuideHtmlRoot;
+ bool bSimpleLinks;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
diff --git a/autodoc/source/display/inc/html/chd_udk2.hxx b/autodoc/source/display/inc/html/chd_udk2.hxx
new file mode 100644
index 000000000000..2177f22a90b6
--- /dev/null
+++ b/autodoc/source/display/inc/html/chd_udk2.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTML_CHD_UDK2_HXX
+#define ADC_DISPLAY_HTML_CHD_UDK2_HXX
+
+// BASE CLASSES
+#include <autodoc/dsp_html_std.hxx>
+// USED SERVICES
+#include <cosv/ploc.hxx>
+
+namespace ary
+{
+namespace cpp
+{
+ class Namespace;
+ class Gate;
+}
+}
+
+class OuputPage_Environment;
+
+
+
+
+class CppHtmlDisplay_Udk2 : public autodoc::HtmlDisplay_UdkStd
+{
+ public:
+ CppHtmlDisplay_Udk2();
+ ~CppHtmlDisplay_Udk2();
+ private:
+ // Interface CppHtmlDisplay_UdkStd:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+
+ // Local
+ void SetRunData(
+ const char * i_sOutputDirectory,
+ const ary::cpp::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+
+ void Create_Css_File();
+ void Create_Overview_File();
+ void Create_Help_File();
+ void Create_AllDefs_File();
+ void CreateFiles_InSubTree_Namespaces();
+ void CreateFiles_InSubTree_Index();
+
+ void RecursiveDisplay_Namespace(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ void DisplayFiles_InNamespace(
+ const ary::cpp::Namespace &
+ i_rNsp );
+ const ary::cpp::Gate &
+ Gate() const;
+ // DATA
+ Dyn<OuputPage_Environment>
+ pCurPageEnv;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/idl/hi_display.hxx b/autodoc/source/display/inc/idl/hi_display.hxx
new file mode 100644
index 000000000000..53650a8ce5a8
--- /dev/null
+++ b/autodoc/source/display/inc/idl/hi_display.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HI_DISPLAY_HXX
+#define ADC_DISPLAY_HI_DISPLAY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <autodoc/dsp_html_std.hxx>
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+ // PARAMETERS
+
+
+
+namespace ary
+{
+ namespace idl
+ {
+ class Module;
+ class CodeEntity;
+ } // namspace idl
+} // namspace csi
+
+
+class MainDisplay_Idl;
+class HtmlEnvironment_Idl;
+
+class HtmlDisplay_Idl : public autodoc::HtmlDisplay_Idl_Ifc
+{
+ public:
+ HtmlDisplay_Idl();
+ ~HtmlDisplay_Idl();
+ private:
+ // Interface HtmlDisplay_Idl_Ifc:
+ virtual void do_Run(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ void SetRunData(
+ const char * i_sOutputDirectory,
+ const ary::idl::Gate &
+ i_rAryGate,
+ const display::CorporateFrame &
+ i_rLayout );
+ void Create_StartFile();
+ void Create_FilesInNameTree();
+ void Create_IndexFiles();
+ void Create_FilesInProjectTree();
+ void Create_PackageList();
+ void Create_HelpFile();
+ void Create_CssFile();
+
+ /** @descr
+ - makes sure, the module's directory exists
+ - creates the module's docu file
+ - creates docu files for all members of the module
+ - does the same recursive for all sub-modules.
+ */
+ void RecursiveDisplay_Module(
+ const ary::idl::Module &
+ i_rNamespace );
+ bool IsModule(
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ const ary::idl::Module &
+ Module_Cast( /// @precond Cast must be valid.
+ const ary::idl::CodeEntity &
+ i_ce ) const;
+ // DATA
+ Dyn<HtmlEnvironment_Idl>
+ pCurPageEnv;
+ Dyn<MainDisplay_Idl>
+ pMainDisplay;
+};
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
diff --git a/autodoc/source/display/inc/toolkit/hf_docentry.hxx b/autodoc/source/display/inc/toolkit/hf_docentry.hxx
new file mode 100644
index 000000000000..83e447c615fa
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_docentry.hxx
@@ -0,0 +1,59 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_DOCENTRY_HXX
+#define ADC_DISPLAY_HF_DOCENTRY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "htmlfactory.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+/** @resp
+ Produces a list of <DT>..</DT> and <DD>.
+*/
+class HF_DocEntryList : public HtmlMaker
+{
+ public:
+
+ HF_DocEntryList(
+ Xml::Element & o_rOut );
+ virtual ~HF_DocEntryList();
+
+ Xml::Element & Produce_Term(
+ const char * i_sTerm = 0 );
+ Xml::Element & Produce_NormalTerm( /// Font will not be bold.
+ const char * i_sTerm = 0 );
+ Xml::Element & Produce_Definition();
+};
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx b/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx
new file mode 100644
index 000000000000..1b943dde3e19
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_funcdecl.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_FUNCDECL_HXX
+#define ADC_DISPLAY_HF_FUNCDECL_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+#if 0 // old
+/** @resp
+ Provides three cells to put in a function declaration.
+*/
+class HF_FunctionDeclaration : public HtmlMaker
+{
+ public:
+ HF_FunctionDeclaration(
+ Xml::Element & o_rParent );
+ virtual ~HF_FunctionDeclaration();
+
+ /// Inserts empty line in 2nd and 3rd cell and returns first.
+ Xml::Element & Add_ReturnLine();
+
+ /** Inserts empty line in 1st cell, "raises (" in 2nd
+ and returns 3rd.
+ */
+ Xml::Element & Add_RaisesLine(
+ const char * i_sRaisesText,
+ bool i_bSuppressExtraLine = false );
+
+ Xml::Element & Front() { return *pFront; }
+ Xml::Element & Types() { return *pTypes; }
+ Xml::Element & Names() { return *pNames; }
+
+ private:
+ Xml::Element * pFront;
+ Xml::Element * pTypes;
+ Xml::Element * pNames;
+};
+#endif // 0 old
+
+class HF_FunctionDeclaration : public HtmlMaker
+{
+ public:
+ HF_FunctionDeclaration(
+ Xml::Element & o_rParent,
+ const String & i_sRaisesText );
+ virtual ~HF_FunctionDeclaration();
+
+ // OPERATIONS
+ Xml::Element & ReturnCell();
+ Xml::Element & NameCell();
+ Xml::Element & NewParamTypeCell();
+ Xml::Element & ParamNameCell();
+ Xml::Element & ExceptionCell();
+
+ private:
+ Html::TableRow & ParameterLine();
+
+ // DATA
+ String sRaisesText;
+ Html::Table * pTable;
+ Xml::Element * pReturnCell;
+ Xml::Element * pNameCell;
+ Html::TableRow * pParameterLine;
+ Xml::Element * pLastParameterCell;
+ Xml::Element * pExceptionCell;
+};
+
+
+// IMPLEMENTATION
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/hf_linachain.hxx b/autodoc/source/display/inc/toolkit/hf_linachain.hxx
new file mode 100644
index 000000000000..fa780dbc778c
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_linachain.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_LINACHAIN_HXX
+#define ADC_DISPLAY_HF_LINACHAIN_HXX
+
+// BASE CLASSES
+#include "htmlfactory.hxx"
+#include "out_position.hxx"
+
+
+
+
+class HF_LinkedNameChain : public HtmlMaker
+{
+ public:
+ /** F_LinkMaker makes a link out of the name of the
+ parent position.
+
+ Returns true, if there is a link, false if not.
+ */
+ typedef String (*F_LinkMaker)(const char *);
+
+
+ HF_LinkedNameChain(
+ Xml::Element & o_rOut );
+ virtual ~HF_LinkedNameChain();
+
+ void Produce_CompleteChain(
+ const output::Position &
+ i_curPosition,
+ F_LinkMaker i_linkMaker ) const;
+ void Produce_CompleteChain_forModule(
+ const output::Position &
+ i_curPosition, /// current Module's node
+ F_LinkMaker i_linkMaker ) const;
+ private:
+ void produce_Level(
+ output::Node & i_levelNode,
+ const output::Position &
+ i_startPosition,
+ F_LinkMaker i_linkMaker ) const;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/hf_navi_main.hxx b/autodoc/source/display/inc/toolkit/hf_navi_main.hxx
new file mode 100644
index 000000000000..da4167d64dbe
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_main.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_NAVI_MAIN_HXX
+#define ADC_DISPLAY_HF_NAVI_MAIN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "htmlfactory.hxx"
+ // PARAMETERS
+
+
+class HF_MainItem;
+
+
+/** @task
+ Create a HTML navigation bar with lightly coloured background.
+
+ @descr
+ There are three kinds of items:
+ Item with link: Add_StdItem(),
+ Item without link: Add_NoneItem(),
+ Item that is current page: Add_SelfItem().
+*/
+class HF_NaviMainRow : public HtmlMaker
+{
+ public:
+ enum E_Style
+ {
+ eStd,
+ eSelf,
+ eNo
+ };
+ HF_NaviMainRow(
+ Xml::Element & o_out );
+ ~HF_NaviMainRow();
+
+ void Add_StdItem(
+ const char * i_sText,
+ const char * i_sLink );
+ void Add_SelfItem(
+ const char * i_sText );
+ void Add_NoneItem(
+ const char * i_sText );
+
+ void Produce_Row();
+
+ private:
+ // DATA
+ typedef std::vector< DYN HF_MainItem* > ItemList;
+
+ ItemList aItems;
+ Xml::Element * pRow;
+};
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx b/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx
new file mode 100644
index 000000000000..6d24a40eb530
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_navi_sub.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_NAVI_SUB_HXX
+#define ADC_DISPLAY_HFI_NAVI_SUB_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "htmlfactory.hxx"
+ // PARAMETERS
+
+
+class HF_NaviSubRow : public HtmlMaker
+{
+ public:
+ HF_NaviSubRow(
+ Xml::Element & o_rOut );
+ virtual ~HF_NaviSubRow();
+
+ void AddItem(
+ const String & i_sText,
+ const String & i_sLink,
+ bool i_bSwitchOn );
+ void SwitchOn(
+ int i_nIndex );
+ void Produce_Row();
+
+ private:
+ typedef std::pair<String,String> SubRow_Data;
+ typedef std::pair<SubRow_Data,bool> SubRow_Item;
+ typedef std::vector<SubRow_Item> SubRow;
+
+ /** Puts the row's table into the parent XML-element, but
+ doesn't write the items, because the actvity-status of
+ the subitems isn't known yet.
+ */
+ void Setup_Row();
+
+ // DATA
+ SubRow aRow;
+ Xml::Element * pMyRow;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/inc/toolkit/hf_title.hxx b/autodoc/source/display/inc/toolkit/hf_title.hxx
new file mode 100644
index 000000000000..b4c80a54cc13
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/hf_title.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HF_TITLE_HXX
+#define ADC_DISPLAY_HF_TITLE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <toolkit/htmlfactory.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class HF_TitleTable : public HtmlMaker
+{
+ public:
+ HF_TitleTable(
+ Xml::Element & o_rOut );
+ virtual ~HF_TitleTable();
+
+ void Produce_Title(
+ const char * i_title );
+ void Produce_Title(
+ const char * i_annotations,
+// const char * i_label,
+ const char * i_title );
+
+ /// @return a Html::TableCell reference.
+ Xml::Element & Add_Row();
+};
+
+
+class HF_SubTitleTable : public HtmlMaker
+{
+ public:
+ enum E_SubLevel
+ {
+ sublevel_1, /// Big title.
+ sublevel_2, /// Small title.
+ sublevel_3 /// No title.
+ };
+
+ /** @param i_nColumns [1 .. n]
+ @param i_nSubTitleLevel [1 .. 2]
+ 1 is a bit bigger than 2.
+ */
+
+ HF_SubTitleTable(
+ Xml::Element & o_rOut,
+ const String & i_label,
+ const String & i_title,
+ int i_nColumns,
+ E_SubLevel i_eSubTitleLevel = sublevel_1 );
+ virtual ~HF_SubTitleTable();
+
+ /// @return an Html::TableRow reference.
+ Xml::Element & Add_Row();
+};
+
+
+// IMPLEMENTATION
+
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/htmlfactory.hxx b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
new file mode 100644
index 000000000000..1e46ac7d94db
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfactory.hxx
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTMLFACTORY_HXX
+#define ADC_DISPLAY_HTMLFACTORY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "outputstack.hxx"
+ // PARAMETERS
+#include <udm/xml/xmlitem.hxx>
+#include <udm/html/htmlitem.hxx>
+
+namespace Xml = ::csi::xml;
+namespace Html = ::csi::html;
+
+/** @resp
+ Base class for HTML page creators (factories) for code entites or
+ similar items.
+*/
+template <class ENV>
+class HtmlFactory
+{
+ public:
+ // INQUIRY
+ ENV & Env() const { return *pEnv; }
+ Xml::Element & CurOut() const { return aDestination.Out(); }
+
+ // ACCESS
+ OutputStack & Out() const { return aDestination; }
+
+ protected:
+ HtmlFactory(
+ ENV & io_rEnv,
+ Xml::Element * o_pOut = 0 )
+ : pEnv(&io_rEnv) { if (o_pOut != 0) aDestination.Enter(*o_pOut); }
+ ~HtmlFactory() {}
+ private:
+ // DATA
+ ENV * pEnv;
+ mutable OutputStack aDestination;
+};
+
+
+/** @resp
+ Base class for HTML paragraph creators, which are to be put into
+ a parent HTML element.
+*/
+class HtmlMaker
+{
+ public:
+
+ // INQUIRY
+ Xml::Element & CurOut() const { return *pOut; }
+
+ protected:
+ HtmlMaker(
+ Xml::Element & o_rOut )
+ : pOut(&o_rOut) {}
+ private:
+ // DATA
+ Xml::Element * pOut;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/inc/toolkit/htmlfile.hxx b/autodoc/source/display/inc/toolkit/htmlfile.hxx
new file mode 100644
index 000000000000..771855ea7a31
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/htmlfile.hxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_HTMLFILE_HXX
+#define ADC_DISPLAY_HTMLFILE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <udm/html/htmlitem.hxx>
+ // PARAMETERS
+#include <cosv/ploc.hxx>
+
+namespace csv
+{
+ class File;
+}
+
+/** Represents an HTML output file.
+*/
+class DocuFile_Html
+{
+ public:
+ // LIFECYCLE
+ DocuFile_Html();
+
+ void SetLocation(
+ const csv::ploc::Path &
+ i_rFilePath );
+ void SetTitle(
+ const char * i_sTitle );
+ void SetRelativeCssPath(
+ const char * i_sCssFile_relativePath );
+ void SetCopyright(
+ const char * i_sCopyright );
+ void EmptyBody();
+
+ Html::Body & Body() { return aBodyData; }
+ bool CreateFile();
+
+ private:
+ void WriteHeader(
+ csv::File & io_aFile );
+ void WriteBody(
+ csv::File & io_aFile );
+ // DATA
+ String sFilePath;
+ String sTitle;
+ String sLocation;
+ String sStyle;
+ String sCssFile;
+ String sCopyright;
+
+ Html::Body aBodyData;
+ StreamStr aBuffer;
+};
+
+
+
+#endif
+
+
diff --git a/autodoc/source/display/inc/toolkit/out_node.hxx b/autodoc/source/display/inc/toolkit/out_node.hxx
new file mode 100644
index 000000000000..4f6385cf54fb
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_node.hxx
@@ -0,0 +1,129 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_OUT_NODE_HXX
+#define ADC_DISPLAY_OUT_NODE_HXX
+
+
+
+
+namespace output
+{
+
+
+/** @resp
+ Represents a tree of names where each node can have only one parent,
+ but a list of children.
+
+ @see Position
+ @see Tree
+*/
+class Node
+{
+ public:
+ typedef std::vector< Node* > List;
+ typedef UINT32 relative_id;
+
+ // LIFECYCLE
+ enum E_NullObject { null_object };
+
+ Node();
+ explicit Node(
+ E_NullObject );
+ ~Node();
+
+ // OPERATORS
+ bool operator==(
+ const Node & i_node ) const
+ { return pParent == i_node.pParent AND sName == i_node.sName; }
+ bool operator!=(
+ const Node & i_node ) const
+ { return NOT operator==(i_node); }
+
+ // OPERATIONS
+ /// Seek, and if not existent, create.
+ Node & Provide_Child(
+ const String & i_name );
+ /// Seek, and if not existent, create.
+ Node & Provide_Child(
+ const StringVector &
+ i_path )
+ { return provide_Child(i_path.begin(), i_path.end()); }
+ // INQUIRY
+ intt Depth() const { return nDepth; }
+
+ const String & Name() const { return sName; }
+ /// @return Id of a namespace or class etc. this directory represents.
+ relative_id RelatedNameRoom() const { return nNameRoomId; }
+ /// @return No delimiter at start, with delimiter at end.
+ void Get_Path(
+ StreamStr & o_result,
+ intt i_maxDepth = -1 ) const;
+ void Get_Chain(
+ StringVector & o_result,
+ intt i_maxDepth = -1 ) const;
+ // ACCESS
+ void Set_RelatedNameRoom(
+ relative_id i_nNameRoomId )
+ { nNameRoomId = i_nNameRoomId; }
+ Node * Parent() { return pParent; }
+ Node * Child(
+ const String & i_name )
+ { return find_Child(i_name); }
+ List & Children() { return aChildren; }
+
+ /// @return a reference to a Node with Depth() == -1.
+ static Node & Null_();
+
+ private:
+ // Local
+ Node(
+ const String & i_name,
+ Node & i_parent );
+
+ Node * find_Child(
+ const String & i_name );
+ Node & add_Child(
+ const String & i_name );
+ Node & provide_Child(
+ StringVector::const_iterator
+ i_next,
+ StringVector::const_iterator
+ i_end );
+ // Data
+ String sName;
+ Node * pParent;
+ List aChildren;
+ intt nDepth;
+ relative_id nNameRoomId;
+};
+
+
+
+
+} // namespace output
+#endif
diff --git a/autodoc/source/display/inc/toolkit/out_position.hxx b/autodoc/source/display/inc/toolkit/out_position.hxx
new file mode 100644
index 000000000000..214b91c15bab
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_position.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_OUT_POSITION_HXX
+#define ADC_DISPLAY_OUT_POSITION_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <toolkit/out_node.hxx>
+ // PARAMETERS
+
+
+
+namespace output
+{
+
+
+
+class Position
+{
+ public:
+ // LIFECYCLE
+ Position();
+ explicit Position(
+ Node & i_directory,
+ const String & i_file = String::Null_() );
+ Position(
+ const Position & i_directory,
+ const String & i_rDifferentFile );
+ ~Position();
+
+ // OPERATIONS
+ Position & operator=(
+ Node & i_node );
+ Position & operator+=(
+ const String & i_nodeName );
+ Position & operator-=(
+ intt i_levels );
+
+ // INQUIRY
+ bool IsValid() const { return pDirectory->Depth() >= 0; }
+ const String & Name() const { return pDirectory->Name(); }
+ const String & File() const { return sFile; }
+ intt Depth() const { return pDirectory->Depth(); }
+
+ void Get_Chain(
+ StringVector & o_result ) const
+ { pDirectory->Get_Chain(o_result); }
+ String LinkToRoot(
+ const String & i_localLabel = String::Null_() ) const;
+
+ void Get_LinkTo(
+ StreamStr & o_result,
+ const Position & i_destination,
+ const String & i_localLabel = String::Null_() ) const;
+ void Get_LinkToRoot(
+ StreamStr & o_result,
+ const String & i_localLabel = String::Null_() ) const;
+
+ static char Delimiter() { return '/'; }
+
+ // ACCESS
+ Node & RelatedNode() const { return *pDirectory; }
+
+ void Set(
+ Node & i_node,
+ const String & i_file = String::Null_() );
+ void Set_File(
+ const String & i_file );
+
+ private:
+ // DATA
+ String sFile;
+ Node * pDirectory;
+};
+
+
+/// @return No delimiter at start, with delimiter at end.
+const char * get_UpLink(
+ uintt i_depth );
+
+
+// IMPLEMENTATION
+
+inline void
+Position::Set_File( const String & i_file )
+ { sFile = i_file; }
+
+} // namespace output
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/out_tree.hxx b/autodoc/source/display/inc/toolkit/out_tree.hxx
new file mode 100644
index 000000000000..eaf1edffdf30
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/out_tree.hxx
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_OUT_TREE_HXX
+#define ADC_DISPLAY_OUT_TREE_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include "out_position.hxx"
+ // PARAMETERS
+
+
+namespace output
+{
+
+inline const char *
+ModuleFileName()
+{ return "module-ix.html"; }
+inline const char *
+IndexFilesDirName()
+{ return "index-files"; }
+inline const char *
+IndexFile_A()
+{ return "index-1.html"; }
+
+
+class Tree
+{
+ public:
+ // LIFECYCLE
+ Tree();
+ ~Tree();
+
+ // OPERATIONS
+ void Set_Overview(
+ const StringVector &
+ i_path,
+ const String & i_sFileName );
+ Node & Set_NamesRoot(
+ const StringVector &
+ i_path );
+ Node & Set_IndexRoot(
+ const StringVector &
+ i_path );
+ Node & Set_ProjectsRoot(
+ const StringVector &
+ i_path );
+ Node & Provide_Node(
+ const StringVector &
+ i_path );
+
+ // ACCESS
+ Node & RootNode() { return *pRoot; }
+ Node & NamesRootNode() { return *pNamesRoot; }
+ Node & IndexRootNode() { return *pIndexRoot; }
+ Node & ProjectsRootNode() { return *pProjectsRoot; }
+
+ Position Root() { return Position(*pRoot); }
+ Position Overview() { return aOverview; }
+ Position NamesRoot() { return Position(*pNamesRoot); }
+ Position IndexRoot() { return Position(*pIndexRoot); }
+ Position ProjectsRoot() { return Position(*pProjectsRoot); }
+
+ private:
+ // forbidden:
+ Tree(const Tree&);
+ Tree & operator=(const Tree&);
+
+ // DATA
+ Dyn<Node> pRoot;
+ Node * pNamesRoot;
+ Node * pIndexRoot;
+ Node * pProjectsRoot;
+ Position aOverview;
+};
+
+
+// IMPLEMENTATION
+
+inline Node &
+Tree::Provide_Node( const StringVector & i_path )
+ { return pRoot->Provide_Child(i_path); }
+
+
+inline void
+Tree::Set_Overview( const StringVector & i_path,
+ const String & i_sFileName )
+ { aOverview.Set(Provide_Node(i_path), i_sFileName); }
+
+inline Node &
+Tree::Set_NamesRoot( const StringVector & i_path )
+ { pNamesRoot = &Provide_Node(i_path);
+ return *pNamesRoot; }
+
+inline Node &
+Tree::Set_IndexRoot( const StringVector & i_path )
+ { pIndexRoot = &Provide_Node(i_path);
+ return *pIndexRoot; }
+
+inline Node &
+Tree::Set_ProjectsRoot( const StringVector & i_path )
+ { pProjectsRoot = &Provide_Node(i_path);
+ return *pProjectsRoot; }
+
+
+
+} // namespace output
+
+
+#endif
diff --git a/autodoc/source/display/inc/toolkit/outputstack.hxx b/autodoc/source/display/inc/toolkit/outputstack.hxx
new file mode 100644
index 000000000000..4c02065bd1e6
--- /dev/null
+++ b/autodoc/source/display/inc/toolkit/outputstack.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_OUTPUTSTACK_HXX
+#define ADC_DISPLAY_OUTPUTSTACK_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <estack.hxx>
+ // PARAMETERS
+#include <udm/xml/xmlitem.hxx>
+
+
+class OutputStack
+{
+ public:
+ // LIFECYCLE
+ OutputStack();
+ ~OutputStack();
+
+ // OPERATIONS
+ void Enter(
+ csi::xml::Element & io_rDestination );
+ void Leave();
+
+ // ACCESS
+ csi::xml::Element & Out() const; // CurOutputNode
+
+ private:
+ EStack< csi::xml::Element * >
+ aCurDestination; // The front element is the currently used.
+ // The later ones are the parents.
+};
+
+inline csi::xml::Element &
+OutputStack::Out() const
+{
+ csv_assert( aCurDestination.size() > 0 );
+ return *aCurDestination.top();
+}
+
+// IMPLEMENTATION
+
+
+#endif
+
+
diff --git a/autodoc/source/display/kernel/displfct.cxx b/autodoc/source/display/kernel/displfct.cxx
new file mode 100644
index 000000000000..149dbb375b68
--- /dev/null
+++ b/autodoc/source/display/kernel/displfct.cxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "displfct.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <html/chd_udk2.hxx>
+#include <idl/hi_display.hxx>
+#include <cfrstd.hxx>
+
+
+DYN DisplayToolsFactory * DisplayToolsFactory::dpTheInstance_ = 0;
+
+
+namespace autodoc
+{
+
+DisplayToolsFactory_Ifc &
+DisplayToolsFactory_Ifc::GetIt_()
+{
+ if ( DisplayToolsFactory::dpTheInstance_ == 0 )
+ DisplayToolsFactory::dpTheInstance_ = new DisplayToolsFactory;
+ return *DisplayToolsFactory::dpTheInstance_;
+}
+
+} // namespace autodoc
+
+
+DisplayToolsFactory::DisplayToolsFactory()
+{
+}
+
+DisplayToolsFactory::~DisplayToolsFactory()
+{
+}
+
+// DYN autodoc::TextDisplay_FunctionList_Ifc *
+// DisplayToolsFactory::Create_TextDisplay_FunctionList() const
+// {
+// return new CppTextDisplay_FunctionList;
+// }
+
+
+DYN autodoc::HtmlDisplay_UdkStd *
+DisplayToolsFactory::Create_HtmlDisplay_UdkStd() const
+{
+ return new CppHtmlDisplay_Udk2;
+}
+
+DYN autodoc::HtmlDisplay_Idl_Ifc *
+DisplayToolsFactory::Create_HtmlDisplay_Idl() const
+{
+ return new HtmlDisplay_Idl;
+}
+
+const display::CorporateFrame &
+DisplayToolsFactory::Create_StdFrame() const
+{
+ static StdFrame aFrame;
+ return aFrame;
+}
+
+
diff --git a/autodoc/source/display/kernel/displfct.hxx b/autodoc/source/display/kernel/displfct.hxx
new file mode 100644
index 000000000000..a6de4b44e447
--- /dev/null
+++ b/autodoc/source/display/kernel/displfct.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DISPLAY_DISPLFCT_HXX
+#define ADC_DISPLAY_DISPLFCT_HXX
+
+
+#include <autodoc/displaying.hxx>
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class DisplayToolsFactory : public autodoc::DisplayToolsFactory_Ifc
+{
+ public:
+ DisplayToolsFactory();
+ virtual ~DisplayToolsFactory();
+
+// virtual DYN autodoc::TextDisplay_FunctionList_Ifc *
+// Create_TextDisplay_FunctionList() const;
+
+ virtual DYN autodoc::HtmlDisplay_UdkStd *
+ Create_HtmlDisplay_UdkStd() const;
+ virtual DYN autodoc::HtmlDisplay_Idl_Ifc *
+ Create_HtmlDisplay_Idl() const;
+
+ virtual const display::CorporateFrame &
+ Create_StdFrame() const;
+ private:
+ static DYN DisplayToolsFactory *
+ dpTheInstance_;
+
+ friend class autodoc::DisplayToolsFactory_Ifc;
+};
+
+
+#endif
+
diff --git a/autodoc/source/display/kernel/makefile.mk b/autodoc/source/display/kernel/makefile.mk
new file mode 100644
index 000000000000..992456dcd667
--- /dev/null
+++ b/autodoc/source/display/kernel/makefile.mk
@@ -0,0 +1,55 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_kernel
+TARGETTYPE=CUI
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/displfct.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/toolkit/hf_docentry.cxx b/autodoc/source/display/toolkit/hf_docentry.cxx
new file mode 100644
index 000000000000..5d6f415a5223
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_docentry.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_docentry.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+HF_DocEntryList::HF_DocEntryList( Xml::Element & o_out )
+ : HtmlMaker( o_out >>* new Html::DefList )
+{
+}
+
+HF_DocEntryList::~HF_DocEntryList()
+{
+}
+
+Xml::Element &
+HF_DocEntryList::Produce_Term(const char * i_sTerm )
+{
+ Xml::Element &
+ ret = CurOut()
+ >> *new Html::DefListTerm
+ >> *new Html::Bold;
+ if ( NOT csv::no_str(i_sTerm))
+ ret
+ << i_sTerm;
+ return ret;
+}
+
+Xml::Element &
+HF_DocEntryList::Produce_NormalTerm(const char * i_sTerm)
+{
+ Xml::Element &
+ ret = CurOut()
+ >> *new Html::DefListTerm;
+ if ( NOT csv::no_str(i_sTerm))
+ ret
+ << i_sTerm;
+ return ret;
+}
+
+Xml::Element &
+HF_DocEntryList::Produce_Definition()
+{
+ return CurOut()
+ >> *new Html::DefListDefinition;
+}
diff --git a/autodoc/source/display/toolkit/hf_funcdecl.cxx b/autodoc/source/display/toolkit/hf_funcdecl.cxx
new file mode 100644
index 000000000000..1c015b539cf2
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_funcdecl.cxx
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_funcdecl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+const String C_sValignTop("top");
+const String C_sValignBottom("bottom");
+
+
+
+HF_FunctionDeclaration::HF_FunctionDeclaration( Xml::Element & o_rParent,
+ const String & i_sRaisesText )
+ : HtmlMaker(o_rParent),
+ sRaisesText(i_sRaisesText),
+ pTable(0),
+ pReturnCell(0),
+ pNameCell(0),
+ pParameterLine(0),
+ pLastParameterCell(0),
+ pExceptionCell(0)
+{
+ pTable = new Html::Table;
+ CurOut()
+ >> *pTable
+ << new Html::ClassAttr("table-in-method")
+ << new Xml::AnAttribute("border","0");
+}
+
+HF_FunctionDeclaration::~HF_FunctionDeclaration()
+{
+}
+
+Xml::Element &
+HF_FunctionDeclaration::ReturnCell()
+{
+ if (pReturnCell != 0)
+ return *pReturnCell;
+
+ pReturnCell = &( *pTable
+ >> *new Html::TableRow
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignTop)
+ << new Xml::AnAttribute("colspan", "3")
+ );
+ return *pReturnCell;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::NameCell()
+{
+ if (pNameCell != 0)
+ return *pNameCell;
+
+ pNameCell = &( ParameterLine()
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignTop)
+ );
+ pLastParameterCell = pNameCell;
+
+ return *pNameCell;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::NewParamTypeCell()
+{
+ if (pLastParameterCell != pNameCell)
+ {
+ pParameterLine = 0;
+ ParameterLine()
+ >> *new Html::TableCell;
+ }
+
+ Xml::Element &
+ rParamType = ParameterLine()
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignTop);
+ pLastParameterCell
+ = &( ParameterLine()
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignBottom)
+ << new Xml::XmlCode("&nbsp;")
+ );
+ return rParamType;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::ParamNameCell()
+{
+ csv_assert(pLastParameterCell != pNameCell);
+ return *pLastParameterCell;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::ExceptionCell()
+{
+ if (pExceptionCell != 0)
+ return *pExceptionCell;
+
+ Xml::Element &
+ rExceptionRow = *pTable
+ >> *new Html::TableRow;
+ rExceptionRow
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignTop)
+ << new Xml::AnAttribute("align", "right")
+ << sRaisesText
+ << "( ";
+
+ pExceptionCell = &( rExceptionRow
+ >> *new Html::TableCell
+ << new Html::VAlignAttr(C_sValignTop)
+ << new Xml::AnAttribute("colspan", "2")
+ );
+ return *pExceptionCell;
+}
+
+Html::TableRow &
+HF_FunctionDeclaration::ParameterLine()
+{
+ if (pParameterLine != 0)
+ return *pParameterLine;
+
+ pParameterLine = new Html::TableRow;
+ *pTable
+ >> *pParameterLine;
+
+ return *pParameterLine;
+}
+
+
+#if 0 // old
+HF_FunctionDeclaration::HF_FunctionDeclaration( Xml::Element & o_rParent )
+ : HtmlMaker(o_rParent),
+ pFront(0),
+ pTypes(0),
+ pNames(0)
+{
+ Xml::Element &
+ rRow = CurOut()
+ >> *new Html::Table
+ << new Xml::AnAttribute("border","0")
+ >> *new Html::TableRow;
+ pFront = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+ pTypes = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+ pNames = &(rRow >> *new Html::TableCell << new Html::VAlignAttr(C_sValignTop));
+}
+
+HF_FunctionDeclaration::~HF_FunctionDeclaration()
+{
+}
+
+Xml::Element &
+HF_FunctionDeclaration::Add_ReturnLine()
+{
+ (*pTypes) << new Xml::XmlCode("&nbsp;<br>\n");
+ (*pNames) << new Xml::XmlCode("&nbsp;<br>\n");
+ return *pFront;
+}
+
+Xml::Element &
+HF_FunctionDeclaration::Add_RaisesLine( const char * i_sRaisesText,
+ bool i_bSuppressExtraLine )
+{
+ if (NOT i_bSuppressExtraLine)
+ {
+ (*pTypes) << new Xml::XmlCode("&nbsp;<br>");
+ (*pNames) << new Xml::XmlCode("&nbsp;<br>\n");
+ }
+ (*pTypes)
+ << new Xml::XmlCode("<p class=\"raise\">")
+ << i_sRaisesText
+ << new Xml::XmlCode("( </p>\n");
+ return *pNames;
+}
+#endif // 0 old
diff --git a/autodoc/source/display/toolkit/hf_linachain.cxx b/autodoc/source/display/toolkit/hf_linachain.cxx
new file mode 100644
index 000000000000..fd83242e5247
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_linachain.cxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_linachain.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <toolkit/out_position.hxx>
+
+
+
+HF_LinkedNameChain::HF_LinkedNameChain( Xml::Element & o_rOut )
+ : HtmlMaker( o_rOut
+ >> *new Html::Paragraph
+ << new Html::ClassAttr("namechain") )
+{
+}
+
+HF_LinkedNameChain::~HF_LinkedNameChain()
+{
+}
+
+void
+HF_LinkedNameChain::Produce_CompleteChain( const output::Position & i_curPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ produce_Level(i_curPosition.RelatedNode(), i_curPosition, i_linkMaker);
+}
+
+void
+HF_LinkedNameChain::Produce_CompleteChain_forModule( const output::Position & i_curPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ if (i_curPosition.Depth() == 0)
+ return;
+ produce_Level(*i_curPosition.RelatedNode().Parent(), i_curPosition, i_linkMaker);
+}
+
+
+
+namespace
+{
+
+StreamStr aLinkBuf(200);
+
+}
+
+void
+HF_LinkedNameChain::produce_Level( output::Node & i_levelNode,
+ const output::Position & i_startPosition,
+ F_LinkMaker i_linkMaker ) const
+{
+ if ( i_levelNode.Depth() > 0 )
+ {
+ produce_Level( *i_levelNode.Parent(),
+ i_startPosition,
+ i_linkMaker );
+ }
+
+ aLinkBuf.reset();
+
+ String
+ sFileName = (*i_linkMaker)(i_levelNode.Name());
+ output::Position
+ aLevelPos(i_levelNode, sFileName);
+
+ i_startPosition.Get_LinkTo(aLinkBuf, aLevelPos);
+
+ if ( i_levelNode.Depth() > 0 )
+ {
+ CurOut()
+ >> *new Html::Link(aLinkBuf.c_str())
+ << new Html::ClassAttr("namechain")
+ << i_levelNode.Name();
+ CurOut() << " :: ";
+ }
+ else
+ {
+ CurOut()
+ >> *new Html::Link(aLinkBuf.c_str())
+ << new Html::ClassAttr("namechain")
+ << "::";
+ CurOut() << " ";
+ }
+}
diff --git a/autodoc/source/display/toolkit/hf_navi_main.cxx b/autodoc/source/display/toolkit/hf_navi_main.cxx
new file mode 100644
index 000000000000..69cfdf0ec746
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_navi_main.cxx
@@ -0,0 +1,238 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_navi_main.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+
+
+
+//******************** MainItem and derived ones ***************//
+class HF_MainItem : public HtmlMaker
+{
+ public:
+ virtual ~HF_MainItem() {}
+ void Produce_Item() const { do_ProduceItem(); }
+ protected:
+ HF_MainItem(
+ Xml::Element & o_out )
+ : HtmlMaker(o_out) {}
+ private:
+ virtual void do_ProduceItem() const = 0;
+};
+
+
+namespace
+{
+
+class StdItem : public HF_MainItem
+{
+ public:
+ StdItem(
+ Xml::Element & o_out,
+ const char * i_sText,
+ const char * i_sLink );
+
+ ~StdItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ String sText;
+ String sLink;
+};
+
+class SelfItem : public HF_MainItem
+{
+ public:
+ SelfItem(
+ Xml::Element & o_out,
+ const char * i_sText );
+ ~SelfItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ String sText;
+};
+
+class NoneItem : public HF_MainItem
+{
+ public:
+ NoneItem(
+ Xml::Element & o_out,
+ const char * i_sText );
+ ~NoneItem();
+ private:
+ virtual void do_ProduceItem() const;
+
+ // DATA
+ String sText;
+};
+
+} // anonymous namespace
+
+
+
+//******************** HF_NaviMainRow ***************//
+
+
+
+HF_NaviMainRow::HF_NaviMainRow( Xml::Element & o_out )
+ : HtmlMaker(o_out),
+ aItems(),
+ pRow(0)
+{
+ aItems.reserve(5);
+
+ pRow =
+ &( CurOut()
+ >> *new Html::Table
+ << new Html::ClassAttr("navimain")
+ << new Xml::AnAttribute( "border", "0" )
+ << new Xml::AnAttribute( "cellpadding", "3" )
+ >> *new Html::TableRow
+ );
+}
+
+HF_NaviMainRow::~HF_NaviMainRow()
+{
+ csv::erase_container_of_heap_ptrs(aItems);
+}
+
+void
+HF_NaviMainRow::Add_StdItem( const char * i_sText,
+ const char * i_sLink )
+{
+ aItems.push_back(new StdItem( *pRow,i_sText,i_sLink ));
+}
+
+void
+HF_NaviMainRow::Add_SelfItem( const char * i_sText )
+{
+ aItems.push_back(new SelfItem( *pRow,i_sText ));
+}
+
+void
+HF_NaviMainRow::Add_NoneItem( const char * i_sText )
+{
+ aItems.push_back(new NoneItem( *pRow,i_sText ));
+}
+
+void
+HF_NaviMainRow::Produce_Row()
+{
+ ItemList::iterator itEnd = aItems.end();
+ for ( ItemList::iterator iter = aItems.begin();
+ iter != itEnd;
+ ++iter )
+ {
+ (*iter)->Produce_Item();
+ }
+}
+
+
+
+
+//******************** MainItem and derived ones ***************//
+
+namespace
+{
+
+StdItem::StdItem( Xml::Element & o_out,
+ const char * i_sText,
+ const char * i_sLink )
+ : HF_MainItem(o_out),
+ sText(i_sText),
+ sLink(i_sLink)
+{
+}
+
+StdItem::~StdItem()
+{
+}
+
+void
+StdItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimain" )
+ >> *new Html::Link(sLink.c_str())
+ << new Html::ClassAttr( "navimain" )
+ << sText.c_str();
+}
+
+SelfItem::SelfItem( Xml::Element & o_out,
+ const char * i_sText )
+ : HF_MainItem(o_out),
+ sText(i_sText)
+{
+}
+
+SelfItem::~SelfItem()
+{
+}
+
+void
+SelfItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimainself" )
+ << sText.c_str();
+}
+
+NoneItem::NoneItem( Xml::Element & o_out,
+ const char * i_sText )
+ : HF_MainItem(o_out),
+ sText(i_sText)
+{
+}
+
+NoneItem::~NoneItem()
+{
+}
+
+void
+NoneItem::do_ProduceItem() const
+{
+ Xml::Element &
+ rCell = CurOut() >>* new Html::TableCell;
+ rCell
+ << new Html::ClassAttr( "navimainnone" )
+ << sText.c_str();
+}
+
+} // anonymous namespace
+
+
diff --git a/autodoc/source/display/toolkit/hf_navi_sub.cxx b/autodoc/source/display/toolkit/hf_navi_sub.cxx
new file mode 100644
index 000000000000..4c11e0e7e6df
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_navi_sub.cxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_navi_sub.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+HF_NaviSubRow::HF_NaviSubRow( Xml::Element & o_rOut )
+ : HtmlMaker(o_rOut),
+ aRow(),
+ pMyRow(0)
+{
+ Setup_Row();
+}
+
+HF_NaviSubRow::~HF_NaviSubRow()
+{
+}
+
+void
+HF_NaviSubRow::AddItem( const String & i_sText,
+ const String & i_sLink,
+ bool i_bSwitchOn )
+{
+ aRow.push_back( SubRow_Item( SubRow_Data(i_sText,i_sLink),
+ i_bSwitchOn ));
+}
+
+void
+HF_NaviSubRow::SwitchOn( int i_nIndex )
+{
+ if ( i_nIndex < int(aRow.size()) )
+ aRow[i_nIndex].second = true;
+}
+
+void
+HF_NaviSubRow::Setup_Row()
+{
+ Html::Table *
+ pTable = new Html::Table;
+ CurOut()
+ >> *pTable
+ << new Html::ClassAttr("navisub")
+ << new Xml::AnAttribute( "border", "0" )
+ << new Xml::AnAttribute( "cellpadding", "0" );
+ pMyRow = &pTable->AddRow();
+}
+
+void
+HF_NaviSubRow::Produce_Row()
+{
+ for ( SubRow::const_iterator it = aRow.begin();
+ it != aRow.end();
+ ++it )
+ {
+ Xml::Element &
+ rCell = *pMyRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr("navisub");
+ StreamLock sl(100);
+ Xml::Element &
+ rGoon = (*it).second
+ ? ( rCell
+ >> *new Html::Link( sl()
+ << "#"
+ << (*it).first.second
+ << c_str )
+ << new Html::ClassAttr("navisub")
+ )
+ : rCell;
+ rGoon
+ << (*it).first.first;
+ }
+}
+
+
diff --git a/autodoc/source/display/toolkit/hf_title.cxx b/autodoc/source/display/toolkit/hf_title.cxx
new file mode 100644
index 000000000000..bd6bbd2d5f89
--- /dev/null
+++ b/autodoc/source/display/toolkit/hf_title.cxx
@@ -0,0 +1,169 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/hf_title.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <stdlib.h>
+
+
+const String C_sTitleBorder("0");
+const String C_sTitleWidth("100%");
+const String C_sTitlePadding("5");
+const String C_sTitleSpacing("3");
+
+const String C_sSubTitleBorder("1");
+const String C_sSubTitleWidth("100%");
+const String C_sSubTitlePadding("5");
+const String C_sSubTitleSpacing("0");
+const String C_sColSpan("colspan");
+
+
+HF_TitleTable::HF_TitleTable( Xml::Element & o_rOut )
+ : HtmlMaker(o_rOut >> *new Html::Table( C_sTitleBorder,
+ C_sTitleWidth,
+ C_sTitlePadding,
+ C_sTitleSpacing )
+ << new Html::ClassAttr("title-table")
+ << new Html::StyleAttr("margin-bottom:6pt;") )
+{
+}
+
+HF_TitleTable::~HF_TitleTable()
+{
+}
+
+void
+HF_TitleTable::Produce_Title( const char * i_title )
+{
+ Add_Row()
+ << new Html::ClassAttr("title")
+ << i_title;
+}
+
+void
+HF_TitleTable::Produce_Title( const char * i_annotations,
+ const char * i_title )
+{
+ if (csv::no_str(i_annotations))
+ {
+ Produce_Title(i_title);
+ return;
+ }
+
+ Xml::Element &
+ rRow = Add_Row();
+ rRow
+ << new Html::ClassAttr("title");
+
+ Xml::Element &
+ rTable = rRow
+ >> *new Html::Table()
+ << new Html::ClassAttr("title-table")
+ << new Html::WidthAttr("99%");
+ Xml::Element &
+ rInnerRow = rTable
+ >> *new Html::TableRow;
+ rInnerRow
+ >> *new Html::TableCell
+ << new Html::WidthAttr("25%")
+ << new Html::ClassAttr("title2")
+ << i_annotations;
+ rInnerRow
+ >> *new Html::TableCell
+ << new Html::WidthAttr("50%")
+ << new Html::ClassAttr("title")
+ << i_title;
+ rInnerRow
+ >> *new Html::TableCell
+ << new Html::WidthAttr("*");
+}
+
+Xml::Element &
+HF_TitleTable::Add_Row()
+{
+ return CurOut()
+ >> *new Html::TableRow
+ >> *new Html::TableCell;
+}
+
+
+inline const char *
+get_SubTitleCssClass(HF_SubTitleTable::E_SubLevel i_eSubTitleLevel)
+{
+ return i_eSubTitleLevel == HF_SubTitleTable::sublevel_1
+ ? "subtitle"
+ : "crosstitle";
+}
+
+
+HF_SubTitleTable::HF_SubTitleTable( Xml::Element & o_rOut,
+ const String & i_label,
+ const String & i_title,
+ int i_nColumns,
+ E_SubLevel i_eSubTitleLevel )
+ : HtmlMaker( o_rOut
+ << new Html::Label(i_label)
+ >> *new Html::Table( C_sSubTitleBorder,
+ C_sSubTitleWidth,
+ C_sSubTitlePadding,
+ C_sSubTitleSpacing )
+ << new Html::ClassAttr(get_SubTitleCssClass(i_eSubTitleLevel)) )
+{
+ csv_assert(i_nColumns > 0);
+
+ if (i_eSubTitleLevel == sublevel_3)
+ return;
+
+ Xml::Element &
+ rCell = CurOut()
+ >> *new Html::TableRow
+ >> *new Html::TableCell
+ << new Html::ClassAttr(get_SubTitleCssClass(i_eSubTitleLevel)) ;
+
+ if (i_nColumns > 1)
+ {
+ StreamLock sl(20);
+ String sColumns = sl() << i_nColumns << c_str;
+ rCell
+ << new Xml::AnAttribute(C_sColSpan, sColumns);
+ }
+ rCell
+ << i_title;
+}
+
+HF_SubTitleTable::~HF_SubTitleTable()
+{
+}
+
+Xml::Element &
+HF_SubTitleTable::Add_Row()
+{
+ return CurOut() >> *new Html::TableRow;
+}
diff --git a/autodoc/source/display/toolkit/htmlfile.cxx b/autodoc/source/display/toolkit/htmlfile.cxx
new file mode 100644
index 000000000000..bb2bb35f0360
--- /dev/null
+++ b/autodoc/source/display/toolkit/htmlfile.cxx
@@ -0,0 +1,211 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/htmlfile.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/file.hxx>
+#include <udm/html/htmlitem.hxx>
+
+namespace
+{
+bool bUse_OOoFrameDiv = true;
+const String C_sOOoFrameDiv_IdlId("adc-idlref");
+}
+
+using namespace csi;
+using csi::xml::AnAttribute;
+
+DocuFile_Html::DocuFile_Html()
+ : sFilePath(),
+ sTitle(),
+ sLocation(),
+ sStyle(),
+ sCssFile(),
+ sCopyright(),
+ aBodyData(),
+ aBuffer(60000) // Grows dynamically, when necessary.
+{
+}
+
+void
+DocuFile_Html::SetLocation( const csv::ploc::Path & i_rFilePath )
+{
+ StreamLock sPath(1000);
+ i_rFilePath.Get( sPath() );
+
+ sFilePath = sPath().c_str();
+}
+
+void
+DocuFile_Html::SetTitle( const char * i_sTitle )
+{
+ sTitle = i_sTitle;
+}
+
+void
+DocuFile_Html::SetRelativeCssPath( const char * i_sCssFile_relativePath )
+{
+ sCssFile = i_sCssFile_relativePath;
+}
+
+void
+DocuFile_Html::SetCopyright( const char * i_sCopyright )
+{
+ sCopyright = i_sCopyright;
+}
+
+void
+DocuFile_Html::EmptyBody()
+{
+ aBodyData.SetContent(0);
+
+ if (bUse_OOoFrameDiv)
+ {
+ // Insert <div> tag to allow better formatting for OOo.
+ aBodyData
+ << new xml::XmlCode("<div id=\"")
+ << new xml::XmlCode(C_sOOoFrameDiv_IdlId)
+ << new xml::XmlCode("\">\n\n");
+ }
+
+ aBodyData
+ >> *new html::Label( "_top_" )
+ << " ";
+}
+
+bool
+DocuFile_Html::CreateFile()
+{
+ csv::File aFile(sFilePath, csv::CFM_CREATE);
+ if (NOT aFile.open())
+ {
+ Cerr() << "Can't create file " << sFilePath << "." << Endl();
+ return false;
+ }
+
+ WriteHeader(aFile);
+ WriteBody(aFile);
+
+ // Write end
+ static const char sCompletion[] = "\n</html>\n";
+ aFile.write( sCompletion );
+
+ aFile.close();
+ Cout() << '.' << Flush();
+ return true;
+}
+
+
+void
+DocuFile_Html::WriteHeader( csv::File & io_aFile )
+{
+ aBuffer.reset();
+
+ static const char s1[] =
+ "<html>\n<head>\n<title>";
+ static const char s2[] =
+ "</title>\n"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n";
+
+ aBuffer.write( s1 );
+ aBuffer.write( sTitle );
+ aBuffer.write( s2 );
+
+
+ if (NOT sCssFile.empty())
+ {
+ static const char s3[] =
+ "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
+ static const char s4[] =
+ "\">\n";
+
+ aBuffer.write(s3);
+ aBuffer.write(sCssFile);
+ aBuffer.write(s4);
+ }
+
+ if (NOT sStyle.empty())
+ {
+ static const char s5[] =
+ "<style>";
+ static const char s6[] =
+ "</style>\n";
+
+ aBuffer.write(s5);
+ aBuffer.write(sStyle);
+ aBuffer.write(s6);
+ }
+
+ static const char s7[] =
+ "</head>\n";
+ aBuffer.write(s7);
+
+ io_aFile.write(aBuffer.c_str(), aBuffer.size());
+}
+
+void
+DocuFile_Html::WriteBody( csv::File & io_aFile )
+{
+ aBuffer.reset();
+
+ aBodyData
+ >> *new html::Link( "#_top_" )
+ << "Top of Page";
+
+ if ( sCopyright.length() > 0 )
+ {
+ aBodyData
+ << new xml::XmlCode("<hr size=\"3\">");
+
+ aBodyData
+ >> *new html::Paragraph
+ << new html::ClassAttr( "copyright" )
+ << new xml::AnAttribute( "align", "center" )
+ << new xml::XmlCode(sCopyright);
+ }
+
+ if (bUse_OOoFrameDiv)
+ {
+ // Insert <div> tag to allow better formatting for OOo.
+ aBodyData
+ << new xml::XmlCode("\n</div> <!-- id=\"")
+ << new xml::XmlCode(C_sOOoFrameDiv_IdlId)
+ << new xml::XmlCode("\" -->\n");
+ }
+
+ aBodyData.WriteOut(aBuffer);
+ io_aFile.write(aBuffer.c_str(), aBuffer.size());
+}
+
+
+
+
+
+
+
diff --git a/autodoc/source/display/toolkit/makefile.mk b/autodoc/source/display/toolkit/makefile.mk
new file mode 100644
index 000000000000..ab374990eb7a
--- /dev/null
+++ b/autodoc/source/display/toolkit/makefile.mk
@@ -0,0 +1,64 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=display_toolkit
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/hf_docentry.obj \
+ $(OBJ)$/hf_funcdecl.obj \
+ $(OBJ)$/hf_linachain.obj \
+ $(OBJ)$/hf_navi_main.obj \
+ $(OBJ)$/hf_navi_sub.obj \
+ $(OBJ)$/hf_title.obj \
+ $(OBJ)$/htmlfile.obj \
+ $(OBJ)$/out_node.obj \
+ $(OBJ)$/out_position.obj \
+ $(OBJ)$/out_tree.obj \
+ $(OBJ)$/outputstack.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/display/toolkit/out_node.cxx b/autodoc/source/display/toolkit/out_node.cxx
new file mode 100644
index 000000000000..ac402e2a123b
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_node.cxx
@@ -0,0 +1,189 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/out_node.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+
+
+namespace output
+{
+
+
+namespace
+{
+
+struct Less_NodePtr
+{
+ bool operator()(
+ Node * p1,
+ Node * p2 ) const
+ { return p1->Name() < p2->Name(); }
+};
+
+struct Less_NodePtr C_Less_NodePtr;
+
+
+Node C_aNullNode(Node::null_object);
+
+
+} // namepace anonymous
+
+
+//********************** Node ***************************//
+
+
+Node::Node()
+ : sName(),
+ pParent(0),
+ aChildren(),
+ nDepth(0),
+ nNameRoomId(0)
+{
+}
+
+Node::Node( E_NullObject )
+ : sName(),
+ pParent(0),
+ aChildren(),
+ nDepth(-1),
+ nNameRoomId(0)
+{
+}
+
+Node::Node( const String & i_name,
+ Node & i_parent )
+ : sName(i_name),
+ pParent(&i_parent),
+ aChildren(),
+ nDepth(i_parent.Depth()+1),
+ nNameRoomId(0)
+{
+}
+
+Node::~Node()
+{
+ for ( List::iterator it = aChildren.begin();
+ it != aChildren.end();
+ ++it )
+ {
+ delete *it;
+ }
+}
+
+Node &
+Node::Provide_Child( const String & i_name )
+{
+ Node *
+ ret = find_Child(i_name);
+ if (ret != 0)
+ return *ret;
+ return add_Child(i_name);
+}
+
+void
+Node::Get_Path( StreamStr & o_result,
+ intt i_maxDepth ) const
+{
+ // Intentionally 'i_maxDepth != 0', so max_Depth == -1 sets no limit:
+ if (i_maxDepth != 0)
+ {
+ if (pParent != 0)
+ pParent->Get_Path(o_result, i_maxDepth-1);
+ o_result << sName << '/';
+ }
+}
+
+void
+Node::Get_Chain( StringVector & o_result,
+ intt i_maxDepth ) const
+{
+ if (i_maxDepth != 0)
+ {
+ // This is called also for the toplevel Node,
+ // but there happens nothing:
+ if (pParent != 0)
+ {
+ pParent->Get_Chain(o_result, i_maxDepth-1);
+ o_result.push_back(sName);
+ }
+ }
+}
+
+Node *
+Node::find_Child( const String & i_name )
+{
+ Node aSearch;
+ aSearch.sName = i_name;
+
+ List::const_iterator
+ ret = std::lower_bound( aChildren.begin(),
+ aChildren.end(),
+ &aSearch,
+ C_Less_NodePtr );
+ if ( ret != aChildren.end() ? (*ret)->Name() == i_name : false )
+ return *ret;
+
+ return 0;
+}
+
+Node &
+Node::add_Child( const String & i_name )
+{
+ DYN Node *
+ pNew = new Node(i_name,*this);
+ aChildren.insert( std::lower_bound( aChildren.begin(),
+ aChildren.end(),
+ pNew,
+ C_Less_NodePtr ),
+ pNew );
+ return *pNew;
+}
+
+Node &
+Node::provide_Child( StringVector::const_iterator i_next,
+ StringVector::const_iterator i_end )
+{
+ if (i_next == i_end)
+ return *this;
+ return Provide_Child(*i_next).provide_Child(i_next+1,i_end);
+}
+
+
+
+
+Node &
+Node::Null_()
+{
+ return C_aNullNode;
+}
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/out_position.cxx b/autodoc/source/display/toolkit/out_position.cxx
new file mode 100644
index 000000000000..735732014b80
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_position.cxx
@@ -0,0 +1,239 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/out_position.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+namespace output
+{
+
+
+
+namespace
+{
+
+const int C_nAssumedMaxLinkLength = 500;
+
+void move_ToParent(
+ Node * & io_node,
+ intt i_levels = 1 );
+
+void
+move_ToParent( Node * & io_node,
+ intt i_levels )
+{
+ for ( intt n = 0; n < i_levels; ++n )
+ {
+ csv_assert(io_node != 0);
+ io_node = io_node->Parent();
+ }
+}
+
+
+
+} // namepace anonymous
+
+
+
+Position::Position()
+ : sFile(),
+ pDirectory(&Node::Null_())
+{
+}
+
+
+Position::Position( Node & i_directory,
+ const String & i_file )
+ : sFile(i_file),
+ pDirectory(&i_directory)
+{
+}
+
+Position::Position( const Position & i_directory,
+ const String & i_sDifferentFile )
+ : sFile(i_sDifferentFile),
+ pDirectory(i_directory.pDirectory)
+{
+}
+
+
+Position::~Position()
+{
+}
+
+
+Position &
+Position::operator=( Node & i_node )
+{
+ pDirectory = &i_node;
+ sFile.clear();
+ return *this;
+}
+
+Position &
+Position::operator+=( const String & i_nodeName )
+{
+ csv_assert(pDirectory != 0);
+
+ pDirectory = &pDirectory->Provide_Child(i_nodeName);
+ sFile.clear();
+
+ return *this;
+}
+
+Position &
+Position::operator-=( intt i_levels )
+{
+ csv_assert(pDirectory != 0);
+
+ for ( intt i = i_levels; i > 0; --i )
+ {
+ pDirectory = pDirectory->Parent();
+ if (pDirectory == 0)
+ {
+ pDirectory = &Node::Null_();
+ i = 0;
+ }
+ }
+ sFile.clear();
+
+ return *this;
+}
+
+String
+Position::LinkToRoot( const String & ) const
+{
+ StreamLock sl(C_nAssumedMaxLinkLength);
+ return sl() << get_UpLink(Depth()) << c_str;
+}
+
+void
+Position::Get_LinkTo( StreamStr & o_result,
+ const Position & i_destination,
+ const String & i_localLabel ) const
+{
+ Node * p1 = pDirectory;
+ Node * p2 = i_destination.pDirectory;
+
+ intt diff = Depth() - i_destination.Depth();
+ intt pathLength1 = 0;
+ intt pathLength2 = 0;
+
+ if ( diff > 0 )
+ {
+ pathLength1 = diff;
+ move_ToParent(p1,pathLength1);
+ }
+ else if ( diff < 0 )
+ {
+ pathLength2 = -diff;
+ move_ToParent(p2,pathLength2);
+ }
+
+ while ( p1 != p2 )
+ {
+ move_ToParent(p1);
+ move_ToParent(p2);
+ ++pathLength1;
+ ++pathLength2;
+ }
+
+ o_result << get_UpLink(pathLength1);
+ i_destination.pDirectory->Get_Path(o_result, pathLength2);
+ o_result << i_destination.sFile;
+ if (i_localLabel.length())
+ o_result << "#" << i_localLabel;
+}
+
+void
+Position::Get_LinkToRoot( StreamStr & o_result,
+ const String & ) const
+{
+ o_result << get_UpLink(Depth());
+}
+
+void
+Position::Set( Node & i_node,
+ const String & i_file )
+{
+ sFile = i_file;
+ pDirectory = &i_node;
+}
+
+
+
+
+const char *
+get_UpLink(uintt i_depth)
+{
+ static const uintt
+ C_nMaxDepth = 30;
+ static const char
+ C_sUpLinkArray[3*C_nMaxDepth+1] =
+ "../../../../../../../../../../"
+ "../../../../../../../../../../"
+ "../../../../../../../../../../";
+ static const char *
+ C_sUpLink = &C_sUpLinkArray[0];
+
+ if ( i_depth <= C_nMaxDepth )
+ {
+ return C_sUpLink + 3*(C_nMaxDepth - i_depth);
+ }
+ else
+ { // not THREAD fast
+ static std::vector<char>
+ aRet;
+ uintt nNeededSize = i_depth * 3 + 1;
+
+ if (aRet.size() < nNeededSize)
+ {
+ aRet.resize(nNeededSize);
+ char * pEnd = &aRet[nNeededSize-1];
+ *pEnd = '\0';
+
+ for ( char * pFill = &(*aRet.begin());
+ pFill != pEnd;
+ pFill += 3 )
+ {
+ memcpy(pFill, C_sUpLink, 3);
+ }
+ } // end if
+
+ return &aRet[aRet.size() - 1 - 3*i_depth];
+ }
+}
+
+
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/out_tree.cxx b/autodoc/source/display/toolkit/out_tree.cxx
new file mode 100644
index 000000000000..73c7d2192e76
--- /dev/null
+++ b/autodoc/source/display/toolkit/out_tree.cxx
@@ -0,0 +1,53 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/out_tree.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+namespace output
+{
+
+Tree::Tree()
+ : pRoot(new Node),
+ pNamesRoot(pRoot.Ptr()),
+ pIndexRoot(pRoot.Ptr()),
+ pProjectsRoot(pRoot.Ptr()),
+ aOverview()
+{
+}
+
+Tree::~Tree()
+{
+}
+
+
+
+} // namespace output
diff --git a/autodoc/source/display/toolkit/outputstack.cxx b/autodoc/source/display/toolkit/outputstack.cxx
new file mode 100644
index 000000000000..19573dc4fe75
--- /dev/null
+++ b/autodoc/source/display/toolkit/outputstack.cxx
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <toolkit/outputstack.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+OutputStack::OutputStack()
+{
+}
+
+OutputStack::~OutputStack()
+{
+}
+
+void
+OutputStack::Enter( csi::xml::Element & io_rDestination )
+{
+ aCurDestination.push(&io_rDestination);
+}
+
+void
+OutputStack::Leave()
+{
+ csv_assert( NOT aCurDestination.empty() );
+ aCurDestination.pop();
+}
+
+
+
diff --git a/autodoc/source/exes/adc_uni/adc_cl.cxx b/autodoc/source/exes/adc_uni/adc_cl.cxx
new file mode 100644
index 000000000000..ff5ecf6ad923
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cl.cxx
@@ -0,0 +1,568 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adc_cl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <algorithm>
+#include <cosv/x.hxx>
+#include <cosv/file.hxx>
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/ary.hxx>
+#include <tools/tkpchars.hxx>
+#include <adc_msg.hxx>
+#include "adc_cmds.hxx"
+#include "adc_cmd_parse.hxx"
+#include "cmd_sincedata.hxx"
+
+
+namespace autodoc
+{
+
+CommandLine * CommandLine::pTheInstance_ = 0;
+
+const char * const C_sUserGuide =
+"\n\n\n"
+" General Use of Autodoc\n"
+" ----------------------\n"
+"\n"
+" Example for C++:\n"
+"\n"
+" -html <OutputDirectory> -name \"UDK 3.x anything\" -lg c++\n"
+" -p <ProjName> <ProjectRootDirectory>\n"
+" -t <SourceDir_relativeToProjectRoot>\n"
+"\n"
+" There may be several projects specified by -p.\n"
+"\n"
+"\n"
+" Example for IDL:\n"
+"\n"
+" -html <OutputDirectory> -name \"UDK 3.x anything\" -lg idl\n"
+" -t <SourceDir1> <SourceDir2>\n"
+"\n"
+" For both languages, instead of or in addition to -t may be\n"
+" used -d (no subdirectories) or -f (just one file). There can\n"
+" be multiple arguments after each of these options (-t -d -f).\n"
+"\n"
+"\n"
+" Replacing @since Tag Content\n"
+" ----------------------------\n"
+"\n"
+" In both languages you can give a transformation file to replace\n"
+" entries in @since tags by different entries.\n"
+" This file is given by the option\n"
+" -sincefile <TransformationFilePath>\n"
+" This option has to appear between the -html and the -lg option.\n"
+" Example:\n"
+" -html <OutputDirectory> -sincefile replacesince.txt\n"
+" -name \"UDK 3.x anything\" -lg idl -t <SourceDir>\n"
+"\n"
+"\n";
+
+
+#if 0 // FUTURE
+"\n\n\n"
+" Use of Autodoc\n"
+" --------------\n"
+"\n"
+" Basics:\n"
+"\n"
+" Autodoc may perform different tasks.\n"
+"\n"
+" Possible tasks are\n"
+" - parsing source code\n"
+" - creating HTML-output.\n"
+" On the command line each task starts with a specific\n"
+" option:\n"
+" '-parse' for parsing source code,\n"
+" '-html' for creating HTML.\n"
+" All command line options, related to one task, have to follow before\n"
+" the starting option of the next task.\n"
+"\n"
+" Within the task '-parse', there may be defined different projects.\n"
+" A project definition is started with '-p'.\n"
+" All not project specific options within the task '-parse' have to\n"
+" appear in front of the first '-p'.\n"
+" There can be no project at all. Then all options, available for\n"
+" projects, can be used like for one nameless default project, without using\n"
+" '-p', but these options still have to appear behind all other\n"
+" options of the task '-parse'.\n"
+"\n"
+"\n"
+" Legend:\n"
+"\n"
+" <SomeText> Describes an argument.\n"
+" 'SomeText' Within '...' is the literal value of an argument.\n"
+" + There can be multiple arguments.\n"
+" | Separator for alternative literal values of an argument.\n"
+"\n"
+"\n"
+" Syntax:\n"
+"\n"
+" -parse\n"
+" -name <RepositoryName>]\n"
+" -lg 'c++'|'idl'\n"
+" -extg <AdditonalExtensions>+\n"
+" -docg 'usehtml'\n"
+" -p <ProjectName> <ProjectRootDir>\n"
+" -l 'c++'|'idl'\n"
+" -ext <AdditonalExtensions>+\n"
+" -doc 'usehtml'\n"
+" -d <SourceDir_relative2ProjectRootDir_nosubdirs>+\n"
+" -t <SourceTree_relative2ProjectRootDir>+\n"
+" -f <SourceFile_relative2ProjectRootDir>+\n"
+" -html <OutputDir>\n"
+" -xlinks <Namespace> <ExternLinksRootDir>\n"
+" -i <CommandFilePath>\n"
+" -v <VerboseNr>\n"
+"\n"
+"\n"
+" Detailed Options Description:\n"
+"\n"
+" Option Arguments\n"
+" ----------------------------------------------------------\n"
+"\n"
+" -parse \n\n"
+" Starts the task \"Parse source code\".\n"
+" May be omitted, if it would be the first option on the\n"
+" command line.\n"
+"\n"
+" -name <RepositoryName>\n\n"
+" This name is used for naming the repository in\n"
+" human readable output. In future it may be used also for\n"
+" identifiing a repository in searches.\n"
+"\n"
+" -lg 'c++|'idl'\n\n"
+" Identifies the programming language to be parsed.\n"
+" 'c++': C++\n"
+" Files with extensions '.h', '.hxx' are parsed.\n"
+" 'idl': UNO-IDL\n"
+" Files with extensions '.idl' are parsed.\n"
+" Here the language is set globally for all projects.\n"
+" A project can override this by using '-l'.\n"
+"\n"
+" -extg <.AdditionalExtension>+\n\n"
+" Has to follow immediately behind '-lg'.\n"
+" Specifies additional extensions, that will be recognised as\n"
+" source code files of the previously specified programming\n"
+" language. Each extension has to start with '.'.\n"
+" It is possible to include extensionless files, too,\n"
+" by the argument '.'\n"
+" Here these extensions are set globally for all projects.\n"
+" A project can override this by using '-l' and '-ext'.\n"
+"\n"
+" -docg 'html'|'nohtml'\n\n"
+" Specifies the default for all comments in source code, so \n"
+" that HTML-tags are interpreted as such or else treated as\n"
+" regular text.\n"
+" Without this option, the default is 'nohtml'.\n"
+" Here the default is set globally for all projects.\n"
+" A project can override this by using '-doc'.\n"
+"\n"
+" -p <ProjectName> <ProjectRootDirectory>\n\n"
+" ProjectName is used in output as human readable identifier\n"
+" for the project. ProjectRootDirectory is the path,\n"
+" where the arguments of '-d', '-t' and '-f' are relative to.\n"
+" This option can be omitted, then there is no project name\n"
+" and all paths are relative to the current working directory.\n"
+"\n"
+" -l 'c++|'idl'\n\n"
+" Overrides -lg and -extg for the current project, which is\n"
+" specified by the last previous '-p'.\n"
+" For details see at option '-lg'.\n"
+"\n"
+" -ext <.AdditionalExtension>+\n\n"
+" Can be used only immediately behind '-l'.\n"
+" Overrides -extg for the current project, which is\n"
+" specified by the last previous '-p'.\n"
+" For details see at option '-extg'.\n"
+"\n"
+" -doc 'html'|'nohtml'\n\n"
+" Overrides -docg for the current project, which is\n"
+" specified by the last previous '-p'.\n"
+" For details see at option '-docg'.\n"
+"\n"
+" -d <SourceDir_relative2ProjectRootDir_nosubdirs>+\n\n"
+" For the current project all files in the given\n"
+" directories are parsed, which have valid extensions.\n"
+" Subdirectories are NOT parsed.\n"
+"\n"
+" -t <SourceTree_relative2ProjectRootDir>+\n\n"
+" For the current project all files in the given\n"
+" directories AND its subdirectories are parsed, which\n"
+" have valid extensions.\n"
+"\n"
+" -f <SourceFile_relative2ProjectRootDir>+\n\n"
+" For the current project and language the given files\n"
+" are parsed. It doesn't matter, if their extensions match\n"
+" the valid extensions.\n"
+"\n"
+" -html <OutputRootDir>\n\n"
+" Starts the task \"Create HTML output\".\n"
+"\n"
+" -xlinks <Namespace> <ExternLinksRootDir>\n\n"
+" This option allows, to create links to external\n"
+" HTML-documents.\n"
+" For all source code objects (like classes or functions)\n"
+" which belong in the given namespace, the given root\n"
+" directory is used as a base for links to them.\n"
+" Presently, this works only for C++-mappings of IDL-items.\n"
+" The given namespace has to be absolute.\n"
+"\n"
+" -i <CommandFilePath>\n\n"
+" This option is replaced by the contents of the given\n"
+" file. The file has to be ASCII and each option\n"
+" has to start in the first column of a new line.\n"
+" So each valid line starts with a '-'.\n"
+" Empty lines are allowed.\n"
+" Comment lines have to start with '#'\n"
+"\n"
+" -v <VerboseNumber>\n\n"
+" Show details during parsing:\n"
+" 2 shows each parsed letter,\n"
+" 4 shows stored objects.\n"
+" 1 shows recognised tokens.\n"
+" These bit-values can be combined.\n"
+" This option suppresses errors, because of\n"
+" missing output options (no '-html').\n";
+#endif // 0, FUTURE
+
+
+CommandLine::CommandLine()
+ : nDebugStyle(0),
+ pSinceTransformator(new command::SinceTagTransformationData),
+ aCommands(),
+ bInitOk(false),
+ pCommand_CreateHtml(0),
+ pReposy( & ary::Repository::Create_() ),
+ bCpp(false),
+ bIdl(false)
+{
+ csv_assert(pTheInstance_ == 0);
+ pTheInstance_ = this;
+}
+
+CommandLine::~CommandLine()
+{
+ csv::erase_container_of_heap_ptrs(aCommands);
+ pTheInstance_ = 0;
+}
+
+int
+CommandLine::Run() const
+{
+ Cout() << "\nAutodoc version 2.2.5"
+ << "\n---------------------"
+ << "\n" << Endl();
+
+ bool
+ ok = true;
+ for ( CommandList::const_iterator it = aCommands.begin();
+ ok AND it != aCommands.end();
+ ++it )
+ {
+ ok = (*it)->Run();
+ }
+
+ if (pCommand_CreateHtml != 0)
+ {
+ StreamStr aDiagnosticMessagesFile(700);
+ aDiagnosticMessagesFile
+ << pCommand_CreateHtml->OutputDir()
+ << csv::ploc::Delimiter()
+ << "Autodoc_DiagnosticMessages.txt";
+ TheMessages().WriteFile(aDiagnosticMessagesFile.c_str());
+ }
+
+ return ok ? 0 : 1;
+}
+
+CommandLine &
+CommandLine::Get_()
+{
+ csv_assert(pTheInstance_ != 0);
+ return *pTheInstance_;
+}
+
+bool
+CommandLine::DoesTransform_SinceTag() const
+{
+ return pSinceTransformator->DoesTransform();
+}
+
+//bool
+//CommandLine::Strip_SinceTagText( String & io_sSinceTagValue ) const
+//{
+// return pSinceTransformator->StripSinceTagText(io_sSinceTagValue);
+//}
+
+const String &
+CommandLine::DisplayOf_SinceTagValue( const String & i_sVersionNumber ) const
+{
+ return pSinceTransformator->DisplayOf(i_sVersionNumber);
+}
+
+void
+CommandLine::do_Init( int argc,
+ char * argv[] )
+{
+ try
+ {
+ bInitOk = false;
+ StringVector aParameters;
+
+ char * * itpEnd = &argv[0] + argc;
+ for ( char * * itp = &argv[1]; itp != itpEnd; ++itp )
+ {
+ if ( strncmp(*itp, "-I:", 3) != 0 )
+ aParameters.push_back(String(*itp));
+ else
+ load_IncludedCommands(aParameters, (*itp)+3);
+ }
+
+ StringVector::const_iterator itEnd = aParameters.end();
+ for ( StringVector::const_iterator it = aParameters.begin();
+ it != itEnd;
+ )
+ {
+ if ( *it == command::C_opt_Verbose )
+ do_clVerbose(it,itEnd);
+ else if ( *it == command::C_opt_LangAll
+ OR *it == command::C_opt_Name
+ OR *it == command::C_opt_DevmanFile )
+ do_clParse(it,itEnd);
+ else if (*it == command::C_opt_CreateHtml)
+ do_clCreateHtml(it,itEnd);
+ else if (*it == command::C_opt_SinceFile)
+ do_clSinceFile(it,itEnd);
+ else if (*it == command::C_opt_ExternNamespace)
+ {
+ sExternNamespace = *(++it);
+ ++it;
+ if ( strncmp(sExternNamespace.c_str(), "::", 2) != 0)
+ {
+ throw command::X_CommandLine(
+ "-extnsp needs an absolute qualified namespace, starting with \"::\"."
+ );
+ }
+ }
+ else if (*it == command::C_opt_ExternRoot)
+ {
+ ++it;
+ StreamLock sl(1000);
+ if ( csv::compare(*it, 0, "http://", 7) != 0 )
+ {
+ sl() << "http://" << *it;
+ }
+ if ( *(sl().end()-1) != '/')
+ sl() << '/';
+ sExternRoot = sl().c_str();
+
+ ++it;
+ }
+// else if (*it == command::C_opt_CreateXml)
+// do_clCreateXml(it,itEnd);
+// else if (command::C_opt_Load)
+// do_clLoad(it,itEnd);
+// else if (*it == command::C_opt_Save)
+// do_clSave(it,itEnd);
+ else if (*it == "-h" OR *it == "-?" OR *it == "?")
+ // Leads to displaying help, because bInitOk stays on false.
+ return;
+ else if ( *it == command::C_opt_Parse )
+ // Only for backwards compatibility.
+ // Just ignore "-parse".
+ ++it;
+ else
+ {
+ StreamLock sl(200);
+ throw command::X_CommandLine(
+ sl() << "Unknown commandline option \""
+ << *it
+ << "\"."
+ << c_str );
+ }
+ } // end for
+ sort_Commands();
+
+ bInitOk = true;
+
+ } // end try
+ catch ( command::X_CommandLine & xxx )
+ {
+ xxx.Report( Cerr() );
+ }
+ catch ( csv::Exception & xxx )
+ {
+ xxx.GetInfo( Cerr() );
+ }
+}
+
+void
+CommandLine::do_PrintUse() const
+{
+ Cout() << C_sUserGuide << Endl();
+}
+
+bool
+CommandLine::inq_CheckParameters() const
+{
+ if (NOT bInitOk OR aCommands.size() == 0)
+ return false;
+ return true;
+}
+
+void
+CommandLine::load_IncludedCommands( StringVector & out,
+ const char * i_filePath )
+{
+ CharacterSource
+ aIncludedCommands;
+ csv::File
+ aFile(i_filePath, csv::CFM_READ);
+ if (NOT aFile.open())
+ {
+ Cerr() << "Command include file \""
+ << i_filePath
+ << "\" not found."
+ << Endl();
+ throw command::X_CommandLine("Invalid file in option -I:<command-file>.");
+ }
+ aIncludedCommands.LoadText(aFile);
+ aFile.close();
+
+ bool bInToken = false;
+ StreamLock aTransmit(200);
+ for ( ; NOT aIncludedCommands.IsFinished(); aIncludedCommands.MoveOn() )
+ {
+ if (bInToken)
+ {
+ if (aIncludedCommands.CurChar() <= 32)
+ {
+ const char *
+ pToken = aIncludedCommands.CutToken();
+ bInToken = false;
+
+ if ( strncmp(pToken, "-I:", 3) != 0 )
+ {
+ aTransmit().seekp(0);
+ aTransmit() << pToken;
+ aTransmit().replace_all('\\', *csv::ploc::Delimiter());
+ aTransmit().replace_all('/', *csv::ploc::Delimiter());
+ out.push_back(String(aTransmit().c_str()));
+ }
+ else
+ load_IncludedCommands(out, pToken+3);
+ }
+ }
+ else
+ {
+ if (aIncludedCommands.CurChar() > 32)
+ {
+ aIncludedCommands.CutToken();
+ bInToken = true;
+ }
+ } // endif (bInToken) else
+
+ } // end while()
+}
+
+namespace
+{
+inline int
+v_nr(StringVector::const_iterator it)
+{
+ return int( *(*it).c_str() ) - int('0');
+}
+} // anonymous namespace
+
+void
+CommandLine::do_clVerbose( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it;
+ if ( it == itEnd ? true : v_nr(it) < 0 OR v_nr(it) > 7 )
+ throw command::X_CommandLine( "Missing or invalid number in -v option." );
+ nDebugStyle = v_nr(it);
+ ++it;
+}
+
+void
+CommandLine::do_clParse( opt_iter & it,
+ opt_iter itEnd )
+{
+ command::Command *
+ pCmd_Parse = new command::Parse;
+ pCmd_Parse->Init(it, itEnd);
+ aCommands.push_back(pCmd_Parse);
+}
+
+void
+CommandLine::do_clCreateHtml( opt_iter & it,
+ opt_iter itEnd )
+{
+ pCommand_CreateHtml = new command::CreateHtml;
+ pCommand_CreateHtml->Init(it, itEnd);
+ aCommands.push_back(pCommand_CreateHtml);
+}
+
+void
+CommandLine::do_clSinceFile( opt_iter & it,
+ opt_iter itEnd )
+{
+ pSinceTransformator->Init(it, itEnd);
+}
+
+
+namespace
+{
+
+struct Less_RunningRank
+{
+ bool operator()(
+ const command::Command * const &
+ i1,
+ const command::Command * const &
+ i2 ) const
+ { return i1->RunningRank() < i2->RunningRank(); }
+};
+
+} // anonymous namespace
+
+
+
+void
+CommandLine::sort_Commands()
+{
+ std::sort( aCommands.begin(),
+ aCommands.end(),
+ Less_RunningRank() );
+}
+
+} // namespace autodoc
diff --git a/autodoc/source/exes/adc_uni/adc_cmd.hxx b/autodoc/source/exes/adc_uni/adc_cmd.hxx
new file mode 100644
index 000000000000..d045da77ee84
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cmd.hxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADC_CMD_HXX
+#define ADC_ADC_CMD_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/comdline.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace autodoc
+{
+namespace command
+{
+
+/** Context for a command, which can be read from the command line.
+*/
+class Context
+{
+ public:
+ typedef StringVector::const_iterator opt_iter;
+
+ virtual ~Context() {}
+
+ void Init(
+ opt_iter & it,
+ opt_iter itEnd );
+ private:
+ virtual void do_Init(
+ opt_iter & it,
+ opt_iter itEnd ) = 0;
+};
+
+// IMPLEMENTATION
+inline void
+Context::Init( opt_iter & i_nCurArgsBegin,
+ opt_iter i_nEndOfAllArgs )
+
+{ do_Init(i_nCurArgsBegin, i_nEndOfAllArgs); }
+
+
+
+/** Interface for commands, autodoc is able to perform.
+*/
+class Command : public Context
+{
+ public:
+ /** Running ranks of the commands are to be maintained at one location:
+ Here!
+ */
+ enum E_Ranks
+ {
+ rank_Load = 10,
+ rank_Parse = 20,
+ rank_Save = 30,
+ rank_CreateHtml = 40,
+ rank_CreateXml = 50
+ };
+
+
+ bool Run() const;
+ int RunningRank() const;
+
+ private:
+ virtual bool do_Run() const = 0;
+ virtual int inq_RunningRank() const = 0;
+};
+
+// IMPLEMENTATION
+inline bool
+Command::Run() const
+{ return do_Run(); }
+inline int
+Command::RunningRank() const
+{ return inq_RunningRank(); }
+
+
+
+
+/** The exception thrown, if the command line is invalid.
+*/
+class X_CommandLine
+{
+ public:
+ X_CommandLine(
+ const char * i_sExplanation )
+ : sExplanation(i_sExplanation) {}
+
+ void Report(
+ std::ostream & o_rOut )
+ { o_rOut << "Error in command line: "
+ << sExplanation << Endl(); }
+ private:
+ String sExplanation;
+};
+
+
+
+
+} // namespace command
+} // namespace autodoc
+#endif
diff --git a/autodoc/source/exes/adc_uni/adc_cmd_parse.cxx b/autodoc/source/exes/adc_uni/adc_cmd_parse.cxx
new file mode 100644
index 000000000000..f3668d625ab8
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cmd_parse.cxx
@@ -0,0 +1,343 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "adc_cmd_parse.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <adc_cl.hxx>
+#include "adc_cmds.hxx"
+#include "cmd_run.hxx"
+
+
+
+namespace autodoc
+{
+namespace command
+{
+
+namespace
+{
+
+const String C_FileEnding_hxx("*.hxx");
+const String C_FileEnding_h("*.h");
+const String C_FileEnding_idl("*.idl");
+const String C_FileEnding_java("*.java");
+
+inline void
+CHECK( bool b, const String & text )
+{
+ if (NOT b)
+ throw X_CommandLine( text );
+}
+
+} // anonymous namespace
+
+
+
+//************************** S_LanguageInfo ***********************//
+
+S_LanguageInfo::~S_LanguageInfo()
+{
+}
+
+void
+S_LanguageInfo::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it; // Cur is language.
+ CHECKOPT( it != itEnd AND
+ ( *it == C_arg_Cplusplus OR
+ *it == C_arg_Idl OR
+ *it == C_arg_Java ),
+ "language",
+ C_opt_LangAll );
+
+ if ( *it == C_arg_Cplusplus ) {
+ eLanguage = cpp;
+ }
+ else if ( *it == C_arg_Idl ) {
+ eLanguage = idl;
+ }
+ else if ( *it == C_arg_Java ) {
+ eLanguage = java;
+ }
+ else {
+ csv_assert(false);
+ }
+
+ switch (eLanguage)
+ {
+ case cpp: aExtensions.push_back( C_FileEnding_hxx );
+ aExtensions.push_back( C_FileEnding_h );
+ CommandLine::Get_().Set_CppUsed();
+ break;
+ case idl: aExtensions.push_back( C_FileEnding_idl );
+ CommandLine::Get_().Set_IdlUsed();
+ break;
+ case java: aExtensions.push_back( C_FileEnding_java );
+ break;
+ default: // do nothing.
+ ;
+ }
+
+ ++it; // Cur is next option.
+}
+
+void
+S_LanguageInfo::InitExtensions( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it;
+ CHECKOPT( it != itEnd AND (*it).char_at(0) == '.',
+ "extensions",
+ C_opt_ExtensionsAll );
+
+ StreamLock slCheck(150);
+ slCheck() << C_opt_ExtensionsAll
+ << " used without previous "
+ << C_opt_LangAll;
+
+ CHECK( eLanguage != none,
+ slCheck().c_str() );
+
+ do {
+ aExtensions.push_back(*it);
+ ++it;
+ } while (it != itEnd AND (*it).char_at(0) == '.');
+}
+
+
+
+//************************** Parse ***********************//
+
+Parse::Parse()
+ : sRepositoryName(),
+ aGlobalLanguage(),
+ aProjects(),
+ sDevelopersManual_RefFilePath()
+{
+}
+
+Parse::~Parse()
+{
+ csv::erase_container_of_heap_ptrs(aProjects);
+}
+
+void
+Parse::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ for ( ; it != itEnd; )
+ {
+ if (*it == C_opt_Name)
+ do_clName(it, itEnd);
+ else if (*it == C_opt_LangAll)
+ aGlobalLanguage.Init(it, itEnd);
+ else if (*it == C_opt_ExtensionsAll)
+ aGlobalLanguage.InitExtensions(it, itEnd);
+ else if (*it == C_opt_DevmanFile)
+ do_clDevManual(it, itEnd);
+ else if (*it == C_opt_Project)
+ do_clProject(it, itEnd);
+ else if ( *it == C_opt_SourceTree
+ OR *it == C_opt_SourceDir
+ OR *it == C_opt_SourceFile )
+ do_clDefaultProject(it, itEnd);
+ else
+ break;
+ } // for
+}
+
+void
+Parse::do_clName( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it;
+ CHECKOPT( it != itEnd AND (*it).char_at(0) != '-',
+ "name",
+ C_opt_Name );
+ sRepositoryName = *it;
+ ++it;
+}
+
+void
+Parse::do_clDevManual( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it;
+ CHECKOPT( it != itEnd AND (*it).char_at(0) != '-',
+ "link file path",
+ C_opt_DevmanFile );
+ sDevelopersManual_RefFilePath = *it;
+ ++it;
+}
+
+void
+Parse::do_clProject( opt_iter & it,
+ opt_iter itEnd )
+{
+ if ( aProjects.size() == 1 )
+ {
+ if ( aProjects.front()->IsDefault() )
+ throw X_CommandLine( "Both, named projects and a default project, cannot be used together." );
+ }
+
+ S_ProjectData * dpProject = new S_ProjectData(aGlobalLanguage);
+ ++it;
+ dpProject->Init(it, itEnd);
+ aProjects.push_back(dpProject);
+}
+
+void
+Parse::do_clDefaultProject( opt_iter & it,
+ opt_iter itEnd )
+{
+ if ( aProjects.size() > 0 )
+ {
+ throw X_CommandLine( "Both, named projects and a default project, cannot be used together." );
+ }
+
+ S_ProjectData * dpProject = new S_ProjectData( aGlobalLanguage,
+ S_ProjectData::default_prj );
+ dpProject->Init(it, itEnd);
+ aProjects.push_back(dpProject);
+}
+
+bool
+Parse::do_Run() const
+{
+ run::Parser
+ aParser(*this);
+ return aParser.Perform();
+}
+
+int
+Parse::inq_RunningRank() const
+{
+ return static_cast<int>(rank_Parse);
+}
+
+
+
+//************************** S_Sources ***********************//
+
+void
+S_Sources::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ StringVector *
+ pList = 0;
+ csv_assert((*it)[0] == '-');
+
+ for ( ; it != itEnd; ++it)
+ {
+ if ((*it)[0] == '-')
+ {
+ if (*it == C_opt_SourceTree)
+ pList = &aTrees;
+ else if (*it == C_opt_SourceDir)
+ pList = &aDirectories;
+ else if (*it == C_opt_SourceFile)
+ pList = &aFiles;
+ else
+ return;
+ }
+ else
+ pList->push_back(*it);
+ } // end for
+}
+
+
+
+//************************** S_ProjectData ***********************//
+
+
+S_ProjectData::S_ProjectData( const S_LanguageInfo & i_globalLanguage )
+ : sName(),
+ aRootDirectory(),
+ aLanguage(i_globalLanguage),
+ aFiles(),
+ bIsDefault(false)
+{
+}
+
+S_ProjectData::S_ProjectData( const S_LanguageInfo & i_globalLanguage,
+ E_Default )
+ : sName(),
+ aRootDirectory("."),
+ aLanguage(i_globalLanguage),
+ aFiles(),
+ bIsDefault(true)
+{
+}
+
+S_ProjectData::~S_ProjectData()
+{
+}
+
+void
+S_ProjectData::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ if (NOT IsDefault())
+ {
+ CHECKOPT( it != itEnd AND (*it).char_at(0) != '-',
+ "name",
+ C_opt_Project );
+ sName = *it;
+ ++it;
+
+ CHECKOPT( it != itEnd AND (*it).char_at(0) != '-',
+ "root directory",
+ C_opt_Project );
+ aRootDirectory.Set((*it).c_str(), true);
+ ++it;
+ }
+
+ for ( ; it != itEnd; )
+ {
+ if ( *it == C_opt_SourceTree
+ OR *it == C_opt_SourceDir
+ OR *it == C_opt_SourceFile )
+ aFiles.Init(it, itEnd);
+// else if (*it == C_opt_Lang)
+// aLanguage.Init(it, itEnd);
+// else if (*it == C_opt_Extensions)
+// aLanguage.InitExtensions(it, itEnd);
+ else
+ break;
+ } // for
+}
+
+} // namespace command
+} // namespace autodoc
+
+
+
diff --git a/autodoc/source/exes/adc_uni/adc_cmd_parse.hxx b/autodoc/source/exes/adc_uni/adc_cmd_parse.hxx
new file mode 100644
index 000000000000..90799c3da286
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cmd_parse.hxx
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADC_CMD_PARSE_HXX
+#define ADC_ADC_CMD_PARSE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "adc_cmd.hxx"
+ // COMPONENTS
+#include <cosv/ploc.hxx>
+ // PARAMETERS
+
+namespace autodoc
+{
+namespace command
+{
+
+/** A command context which holds the currently parsed programing language
+ and its valid file extensions.
+*/
+struct S_LanguageInfo : public Context
+{
+ enum E_ProgrammingLanguage
+ {
+ none,
+ cpp,
+ idl,
+ java
+ };
+ S_LanguageInfo()
+ : eLanguage(none),
+ aExtensions() {}
+ ~S_LanguageInfo();
+
+ void InitExtensions(
+ opt_iter & it,
+ opt_iter itEnd );
+ // DATA
+ E_ProgrammingLanguage
+ eLanguage;
+ StringVector aExtensions; // An empty string is possible and means exactly that: files without extension.
+
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & it,
+ opt_iter itEnd );
+};
+
+
+class S_ProjectData;
+
+
+/** A command that parses source code into the Autodoc Repository.
+*/
+class Parse : public Command
+{
+ public:
+ typedef std::vector< DYN S_ProjectData * > ProjectList;
+ typedef ProjectList::const_iterator ProjectIterator;
+
+ Parse();
+ ~Parse();
+
+ // INQUIRY
+ const String & ReposyName() const;
+ const S_LanguageInfo &
+ GlobalLanguage() const;
+ ProjectIterator ProjectsBegin() const;
+ ProjectIterator ProjectsEnd() const;
+ const String & DevelopersManual_RefFilePath() const
+ { return sDevelopersManual_RefFilePath; }
+
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & i_nCurArgsBegin,
+ opt_iter i_nEndOfAllArgs );
+ // Interface Command:
+ virtual bool do_Run() const;
+ virtual int inq_RunningRank() const;
+
+ // Locals
+ void do_clName(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clDevManual(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clProject(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clDefaultProject(
+ opt_iter & it,
+ opt_iter itEnd );
+
+ // DATA
+ String sRepositoryName;
+ S_LanguageInfo aGlobalLanguage;
+
+ ProjectList aProjects;
+
+ String sDevelopersManual_RefFilePath;
+};
+
+inline const String &
+Parse::ReposyName() const
+ { return sRepositoryName; }
+inline const S_LanguageInfo &
+Parse::GlobalLanguage() const
+ { return aGlobalLanguage; }
+inline Parse::ProjectIterator
+Parse::ProjectsBegin() const
+ { return aProjects.begin(); }
+inline Parse::ProjectIterator
+Parse::ProjectsEnd() const
+ { return aProjects.end(); }
+//inline const String &
+//Parse::DevelopersManual_RefFilePath() const
+// { return sDevelopersManual_RefFilePath; }
+//inline const String &
+//Parse::DevelopersManual_HtmlRoot() const
+// { return sDevelopersManual_HtmlRoot; }
+
+
+struct S_Sources : public Context
+{
+ StringVector aTrees;
+ StringVector aDirectories;
+ StringVector aFiles;
+
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & it,
+ opt_iter itEnd );
+};
+
+class S_ProjectData : public Context
+{
+ public:
+ enum E_Default { default_prj };
+
+ S_ProjectData(
+ const S_LanguageInfo &
+ i_globalLanguage );
+ S_ProjectData(
+ const S_LanguageInfo &
+ i_globalLanguage,
+ E_Default unused );
+ ~S_ProjectData();
+
+ bool IsDefault() const { return bIsDefault; }
+ const String & Name() const { return sName; }
+ const csv::ploc::Path &
+ RootDirectory() const { return aRootDirectory; }
+ const S_LanguageInfo &
+ Language() const { return aLanguage; }
+ const S_Sources Sources() const { return aFiles; }
+
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & it,
+ opt_iter itEnd );
+ // Locals
+
+ // DATA
+ String sName;
+ csv::ploc::Path aRootDirectory;
+ S_LanguageInfo aLanguage;
+ S_Sources aFiles;
+ bool bIsDefault;
+};
+
+
+} // namespace command
+} // namespace autodoc
+
+
+#endif
diff --git a/autodoc/source/exes/adc_uni/adc_cmds.cxx b/autodoc/source/exes/adc_uni/adc_cmds.cxx
new file mode 100644
index 000000000000..bae3aeec19f9
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cmds.cxx
@@ -0,0 +1,177 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "adc_cmds.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary.hxx>
+#include <autodoc/displaying.hxx>
+#include <autodoc/dsp_html_std.hxx>
+#include <display/corframe.hxx>
+#include <adc_cl.hxx>
+
+
+namespace autodoc
+{
+namespace command
+{
+
+extern const String C_opt_Include("-I:");
+
+extern const String C_opt_Verbose("-v");
+
+extern const String C_opt_Parse("-parse");
+extern const String C_opt_Name("-name");
+extern const String C_opt_LangAll("-lg");
+extern const String C_opt_ExtensionsAll("-extg");
+extern const String C_opt_DevmanFile("-dvgfile");
+extern const String C_opt_SinceFile("-sincefile");
+
+extern const String C_arg_Cplusplus("c++");
+extern const String C_arg_Idl("idl");
+extern const String C_arg_Java("java");
+
+extern const String C_opt_Project("-p");
+//extern const String C_opt_Lang;
+//extern const String C_opt_Extensions;
+extern const String C_opt_SourceDir("-d");
+extern const String C_opt_SourceTree("-t");
+extern const String C_opt_SourceFile("-f");
+
+extern const String C_opt_CreateHtml("-html");
+extern const String C_opt_DevmanRoot("-dvgroot");
+
+//extern const String C_opt_CreateXml("-xml");
+//extern const String C_opt_Load("-load");
+//extern const String C_opt_Save("-save");
+
+extern const String C_opt_ExternNamespace("-extnsp");
+extern const String C_opt_ExternRoot("-extroot");
+
+
+
+//************************** CreateHTML ***********************//
+
+CreateHtml::CreateHtml()
+ : sOutputRootDirectory(),
+ sDevelopersManual_HtmlRoot()
+{
+}
+
+CreateHtml::~CreateHtml()
+{
+}
+
+void
+CreateHtml::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it;
+ CHECKOPT( it != itEnd && (*it).char_at(0) != '-',
+ "output directory", C_opt_CreateHtml );
+ sOutputRootDirectory = *it;
+
+ for ( ++it;
+ it != itEnd AND (*it == C_opt_DevmanRoot);
+ ++it )
+ {
+ if (*it == C_opt_DevmanRoot)
+ {
+ ++it;
+ CHECKOPT( it != itEnd AND (*it).char_at(0) != '-',
+ "HTML root directory of Developers Guide",
+ C_opt_DevmanRoot );
+ sDevelopersManual_HtmlRoot = *it;
+ }
+ } // end for
+}
+
+bool
+CreateHtml::do_Run() const
+{
+ if ( CommandLine::Get_().IdlUsed() )
+ run_Idl();
+ if ( CommandLine::Get_().CppUsed() )
+ run_Cpp();
+ return true;
+}
+
+int
+CreateHtml::inq_RunningRank() const
+{
+ return static_cast<int>(rank_CreateHtml);
+}
+
+void
+CreateHtml::run_Idl() const
+{
+ const ary::idl::Gate &
+ rGate = CommandLine::Get_().TheRepository().Gate_Idl();
+
+ Cout() << "Creating HTML-output into the directory "
+ << sOutputRootDirectory
+ << "."
+ << Endl();
+
+ const DisplayToolsFactory_Ifc &
+ rToolsFactory = DisplayToolsFactory_Ifc::GetIt_();
+ Dyn<autodoc::HtmlDisplay_Idl_Ifc>
+ pDisplay( rToolsFactory.Create_HtmlDisplay_Idl() );
+
+ DYN display::CorporateFrame & // KORR_FUTURE: Remove the need for const_cast
+ drFrame = const_cast< display::CorporateFrame& >(rToolsFactory.Create_StdFrame());
+ if (NOT DevelopersManual_HtmlRoot().empty())
+ drFrame.Set_DevelopersGuideHtmlRoot( DevelopersManual_HtmlRoot() );
+
+ pDisplay->Run( sOutputRootDirectory,
+ rGate,
+ drFrame );
+}
+
+void
+CreateHtml::run_Cpp() const
+{
+ const ary::Repository &
+ rReposy = CommandLine::Get_().TheRepository();
+ const ary::cpp::Gate &
+ rGate = rReposy.Gate_Cpp();
+
+ const DisplayToolsFactory_Ifc &
+ rToolsFactory = DisplayToolsFactory_Ifc::GetIt_();
+ Dyn< autodoc::HtmlDisplay_UdkStd >
+ pDisplay( rToolsFactory.Create_HtmlDisplay_UdkStd() );
+
+ pDisplay->Run( sOutputRootDirectory,
+ rGate,
+ rToolsFactory.Create_StdFrame() );
+}
+
+
+} // namespace command
+} // namespace autodoc
diff --git a/autodoc/source/exes/adc_uni/adc_cmds.hxx b/autodoc/source/exes/adc_uni/adc_cmds.hxx
new file mode 100644
index 000000000000..fb90babc2853
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_cmds.hxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADC_CMDS_HXX
+#define ADC_ADC_CMDS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "adc_cmd.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+namespace autodoc
+{
+namespace command
+{
+
+
+/** A command that produces HTML output from the Autodoc Repository.
+*/
+class CreateHtml : public Command
+{
+ public:
+ CreateHtml();
+ ~CreateHtml();
+
+ const String & OutputDir() const;
+ const String & DevelopersManual_HtmlRoot() const
+ { return sDevelopersManual_HtmlRoot; }
+
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & i_nCurArgsBegin,
+ opt_iter i_nEndOfAllArgs );
+ // Interface Command:
+ virtual bool do_Run() const;
+ virtual int inq_RunningRank() const;
+
+ // Locals
+ void run_Cpp() const;
+ void run_Idl() const;
+
+ // DATA
+ String sOutputRootDirectory;
+ String sDevelopersManual_HtmlRoot;
+};
+
+inline const String &
+CreateHtml::OutputDir() const
+ { return sOutputRootDirectory; }
+
+
+extern const String C_opt_Verbose;
+
+extern const String C_opt_Parse;
+extern const String C_opt_Name;
+extern const String C_opt_LangAll;
+extern const String C_opt_ExtensionsAll;
+extern const String C_opt_DevmanFile;
+extern const String C_opt_SinceFile;
+
+extern const String C_arg_Cplusplus;
+extern const String C_arg_Idl;
+extern const String C_arg_Java;
+
+extern const String C_opt_Project;
+//extern const String C_opt_Lang;
+//extern const String C_opt_Extensions;
+extern const String C_opt_SourceTree;
+extern const String C_opt_SourceDir;
+extern const String C_opt_SourceFile;
+
+extern const String C_opt_CreateHtml;
+extern const String C_opt_DevmanRoot;
+
+//extern const String C_opt_CreateXml;
+//extern const String C_opt_Load;
+//extern const String C_opt_Save;
+
+extern const String C_opt_ExternNamespace;
+extern const String C_opt_ExternRoot;
+
+
+inline void
+CHECKOPT( bool b, const char * miss, const String & opt )
+{
+ if ( NOT b )
+ {
+ StreamLock slMsg(100);
+ throw X_CommandLine( slMsg() << "Missing " << miss <<" after " << opt << "." << c_str );
+ }
+}
+
+} // namespace command
+} // namespace autodoc
+
+
+#endif
diff --git a/autodoc/source/exes/adc_uni/adc_msg.cxx b/autodoc/source/exes/adc_uni/adc_msg.cxx
new file mode 100644
index 000000000000..23c15c99790b
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/adc_msg.cxx
@@ -0,0 +1,208 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adc_msg.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <cosv/tpl/tpltools.hxx>
+
+
+namespace autodoc
+{
+
+
+Messages::Messages()
+ : aMissingDocs(),
+ aParseErrors(),
+ aInvalidConstSymbols(),
+ aUnresolvedLinks(),
+ aTypeVsMemberMisuses()
+{
+}
+
+Messages::~Messages()
+{
+}
+
+void
+Messages::WriteFile(const String & i_sOutputFilePath)
+{
+ csv::File
+ aOut(i_sOutputFilePath, csv::CFM_CREATE);
+ aOut.open();
+
+ // KORR_FUTURE Enable this when appropriate:
+ WriteParagraph( aOut,
+ aParseErrors,
+ "Incompletely Parsed Files",
+ "Stopped parsing at " );
+
+ WriteParagraph( aOut,
+ aMissingDocs,
+ "Entities Without Documentation",
+ " in " );
+
+ WriteParagraph( aOut,
+ aInvalidConstSymbols,
+ "Incorrectly Written Const Symbols",
+ " in " );
+
+ WriteParagraph( aOut,
+ aUnresolvedLinks,
+ "Unresolved Links",
+ " in\n " );
+
+ WriteParagraph( aOut,
+ aTypeVsMemberMisuses,
+ "Confusion or Misuse of <Type> vs. <Member>",
+ " in " );
+ aOut.close();
+}
+
+void
+Messages::Out_MissingDoc( const String & i_sEntity,
+ const String & i_sFile,
+ uintt i_nLine)
+{
+ AddValue( aMissingDocs,
+ i_sEntity,
+ i_sFile,
+ i_nLine );
+}
+
+void
+Messages::Out_ParseError( const String & i_sFile,
+ uintt i_nLine)
+{
+ aParseErrors[Location(i_sFile,i_nLine)] = String::Null_();
+}
+
+void
+Messages::Out_InvalidConstSymbol( const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine)
+{
+ AddValue( aInvalidConstSymbols,
+ i_sText,
+ i_sFile,
+ i_nLine );
+}
+
+void
+Messages::Out_UnresolvedLink( const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine)
+{
+ AddValue( aUnresolvedLinks,
+ i_sLinkText,
+ i_sFile,
+ i_nLine );
+}
+
+void
+Messages::Out_TypeVsMemberMisuse( const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine)
+{
+ AddValue( aTypeVsMemberMisuses,
+ i_sLinkText,
+ i_sFile,
+ i_nLine );
+}
+
+Messages &
+Messages::The_()
+{
+ static Messages TheMessages_;
+ return TheMessages_;
+}
+
+void
+Messages::AddValue( MessageMap & o_dest,
+ const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine )
+{
+ String &
+ rDest = o_dest[Location(i_sFile,i_nLine)];
+ StreamLock
+ slDest(2000);
+ if (NOT rDest.empty())
+ slDest() << rDest;
+ slDest() << "\n " << i_sText;
+ rDest = slDest().c_str();
+}
+
+void
+Messages::WriteParagraph( csv::File & o_out,
+ const MessageMap & i_source,
+ const String & i_title,
+ const String & )
+{
+ StreamStr aLine(2000);
+
+ // Write title of paragraph:
+ aLine << i_title
+ << "\n";
+ o_out.write(aLine.c_str());
+
+ aLine.seekp(0);
+ for (uintt i = i_title.size(); i > 0; --i)
+ {
+ aLine << '-';
+ }
+ aLine << "\n\n";
+ o_out.write(aLine.c_str());
+
+ // Write Content
+ MessageMap::const_iterator it = i_source.begin();
+ MessageMap::const_iterator itEnd = i_source.end();
+ for ( ; it != itEnd; ++it )
+ {
+ aLine.seekp(0);
+ aLine << (*it).first.sFile;
+ // Nobody wants to see this, if we don't know the line:
+ if ((*it).first.nLine != 0)
+ {
+ aLine << ", line "
+ << (*it).first.nLine;
+ }
+ if (NOT (*it).second.empty())
+ {
+ aLine << ':'
+ << (*it).second
+ << "\n";
+ }
+ o_out.write(aLine.c_str());
+ }
+ o_out.write("\n\n\n");
+}
+
+} // namespace autodoc
diff --git a/autodoc/source/exes/adc_uni/cmd_run.cxx b/autodoc/source/exes/adc_uni/cmd_run.cxx
new file mode 100644
index 000000000000..d20d9646d3d3
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/cmd_run.cxx
@@ -0,0 +1,613 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cmd_run.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <cosv/x.hxx>
+#include <ary/ary.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <autodoc/filecoli.hxx>
+#include <autodoc/parsing.hxx>
+#include <autodoc/prs_code.hxx>
+#include <autodoc/prs_docu.hxx>
+#include <parser/unoidl.hxx>
+#include <adc_cl.hxx>
+#include "adc_cmd_parse.hxx"
+#include "adc_cmds.hxx"
+
+namespace autodoc
+{
+namespace command
+{
+namespace run
+{
+
+Parser::Parser( const Parse & i_command )
+ : rCommand(i_command),
+ pCppParser(),
+ pCppDocuInterpreter(),
+ pIdlParser()
+{
+}
+
+Parser::~Parser()
+{
+}
+
+bool
+Parser::Perform()
+{
+ Cout() << "Parsing the repository "
+ << rCommand.ReposyName()
+ << " ..."
+ << Endl();
+ try
+ {
+ ::ary::Repository &
+ rAry = CommandLine::Get_().TheRepository();
+ rAry.Set_Title(rCommand.ReposyName());
+
+ Dyn< FileCollector_Ifc >
+ pFiles( ParseToolsFactory().Create_FileCollector(6000) );
+
+ bool bIDL = false;
+ bool bCpp = false;
+
+ command::Parse::ProjectIterator
+ itEnd = rCommand.ProjectsEnd();
+ for ( command::Parse::ProjectIterator it = rCommand.ProjectsBegin();
+ it != itEnd;
+ ++it )
+ {
+ uintt nCount = GatherFiles( *pFiles, *(*it) );
+ Cout() << nCount
+ << " files found to parse in project "
+ << (*it)->Name()
+ << "."
+ << Endl();
+
+ switch ( (*it)->Language().eLanguage )
+ {
+ case command::S_LanguageInfo::idl:
+ {
+ Get_IdlParser().Run(*pFiles);
+ bIDL = true;
+ } break;
+ case command::S_LanguageInfo::cpp:
+ {
+ Get_CppParser().Run( *pFiles );
+ bCpp = true;
+ } break;
+ default:
+ Cerr() << "Project in yet unimplemented language skipped."
+ << Endl();
+ }
+ } // end for
+
+ if (bCpp)
+ {
+ rAry.Gate_Cpp().Calculate_AllSecondaryInformation();
+ }
+ if (bIDL)
+ {
+ rAry.Gate_Idl().Calculate_AllSecondaryInformation(
+ rCommand.DevelopersManual_RefFilePath() );
+
+// ::ary::idl::SecondariesPilot &
+// rIdl2sPilot = rAry.Gate_Idl().Secondaries();
+//
+// rIdl2sPilot.CheckAllInterfaceBases( rAry.Gate_Idl() );
+// rIdl2sPilot.Connect_Types2Ces();
+// rIdl2sPilot.Gather_CrossReferences();
+//
+// if (NOT rCommand.DevelopersManual_RefFilePath().empty())
+// {
+// csv::File
+// aFile(rCommand.DevelopersManual_RefFilePath(), csv::CFM_READ);
+// if ( aFile.open() )
+// {
+// rIdl2sPilot.Read_Links2DevManual(aFile);
+// aFile.close();
+// }
+// }
+ } // endif (bIDL)
+
+ return true;
+
+ } // end try
+ catch (csv::Exception & xx)
+ {
+ xx.GetInfo(Cerr());
+ Cerr() << " program will exit." << Endl();
+
+ return false;
+ }
+}
+
+CodeParser_Ifc &
+Parser::Get_CppParser()
+{
+ if ( NOT pCppParser )
+ Create_CppParser();
+ return *pCppParser;
+}
+
+IdlParser &
+Parser::Get_IdlParser()
+{
+ if ( NOT pIdlParser )
+ Create_IdlParser();
+ return *pIdlParser;
+}
+
+void
+Parser::Create_CppParser()
+{
+ pCppParser = ParseToolsFactory().Create_Parser_Cplusplus();
+ pCppDocuInterpreter = ParseToolsFactory().Create_DocuParser_AutodocStyle();
+
+ pCppParser->Setup( CommandLine::Get_().TheRepository(),
+ *pCppDocuInterpreter );
+}
+
+void
+Parser::Create_IdlParser()
+{
+ pIdlParser = new IdlParser(CommandLine::Get_().TheRepository());
+}
+
+const ParseToolsFactory_Ifc &
+Parser::ParseToolsFactory()
+{
+ return ParseToolsFactory_Ifc::GetIt_();
+}
+
+uintt
+Parser::GatherFiles( FileCollector_Ifc & o_rFiles,
+ const S_ProjectData & i_rProject )
+{
+ uintt ret = 0;
+ o_rFiles.EraseAll();
+
+ typedef StringVector StrVector;
+ typedef StrVector::const_iterator StrIterator;
+ const S_Sources &
+ rSources = i_rProject.Sources();
+ const StrVector &
+ rExtensions = i_rProject.Language().aExtensions;
+
+ StrIterator it;
+ StrIterator itTreesEnd = rSources.aTrees.end();
+ StrIterator itDirsEnd = rSources.aDirectories.end();
+ StrIterator itFilesEnd = rSources.aFiles.end();
+ StrIterator itExt;
+ StrIterator itExtEnd = rExtensions.end();
+
+ csv::StreamStr aDir(500);
+ i_rProject.RootDirectory().Get( aDir );
+
+ uintt nProjectDir_AddPosition =
+ ( strcmp(aDir.c_str(),".\\") == 0 OR strcmp(aDir.c_str(),"./") == 0 )
+ ? 0
+ : uintt( aDir.tellp() );
+
+ for ( it = rSources.aDirectories.begin();
+ it != itDirsEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ for ( itExt = rExtensions.begin();
+ itExt != itExtEnd;
+ ++itExt )
+ {
+ ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+ *itExt,
+ FileCollector_Ifc::flat );
+ } // end for itExt
+ } // end for it
+ for ( it = rSources.aTrees.begin();
+ it != itTreesEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ for ( itExt = rExtensions.begin();
+ itExt != itExtEnd;
+ ++itExt )
+ {
+ ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+ *itExt,
+ FileCollector_Ifc::recursive );
+ } // end for itExt
+ } // end for it
+ for ( it = rSources.aFiles.begin();
+ it != itFilesEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ o_rFiles.AddFile( aDir.c_str() );
+ } // end for it
+ ret += rSources.aFiles.size();
+
+ return ret;
+}
+
+
+} // namespace run
+} // namespace command
+
+
+#if 0
+inline const ParseToolsFactory_Ifc &
+CommandRunner::ParseToolsFactory()
+ { return ParseToolsFactory_Ifc::GetIt_(); }
+
+
+inline const command::S_LanguageInfo &
+CommandRunner::Get_ProjectLanguage( const command::Parse & i_rCommand,
+ const command::S_ProjectData & i_rProject )
+{
+ if ( i_rProject.pLanguage )
+ return *i_rProject.pLanguage;
+ return *i_rCommand.GlobalLanguageInfo();
+}
+
+inline bool
+CommandRunner::HasParsedCpp() const
+ { return pCppParser; }
+inline bool
+CommandRunner::HasParsedIdl() const
+ { return pIdlParser; }
+
+
+
+
+
+CommandRunner::CommandRunner()
+ : pCommandLine(0),
+ pReposy(0),
+ pNewReposy(0),
+ nResultCode(0)
+{
+ Cout() << "\nAutodoc version 2.2.1"
+ << "\n-------------------"
+ << "\n" << Endl();
+}
+
+CommandRunner::~CommandRunner()
+{
+ ary::Repository::Destroy_();
+ Cout() << "\n" << Endl();
+}
+
+void
+CommandRunner::Run( const CommandLine & i_rCL )
+{
+ ary::Repository::Destroy_();
+// ary::Repository::Destroy_();
+ pReposy = 0;
+ pNewReposy = 0;
+ nResultCode = 0;
+ pCommandLine = &i_rCL;
+
+ pCommandLine->Run();
+}
+
+void
+CommandRunner::Parse()
+{
+ try
+ {
+
+ csv_assert( pCommandLine->Cmd_Parse() != 0 );
+ const command::Parse &
+ rCmd = *pCommandLine->Cmd_Parse();
+
+ Cout() << "Parsing the repository "
+ << rCmd.ReposyName()
+ << " ..."
+ << Endl();
+
+ if ( pReposy == 0 )
+ pReposy = & ary::Repository::Create_( rCmd.ReposyName(), 0 );
+ if ( pNewReposy == 0 )
+ pNewReposy = & ary::Repository::Create_( rCmd.ReposyName() );
+
+ Dyn< FileCollector_Ifc > pFiles;
+ pFiles = ParseToolsFactory().Create_FileCollector(6000);
+
+ bool bCpp = false;
+ bool bIDL = false;
+
+ command::Parse::ProjectIterator itEnd = rCmd.ProjectsEnd();
+ for ( command::Parse::ProjectIterator it = rCmd.ProjectsBegin();
+ it != itEnd;
+ ++it )
+ {
+
+ uintt nCount = GatherFiles( *pFiles, rCmd, *(*it) );
+ Cout() << nCount
+ << " files found to parse in project "
+ << (*it)->Name()
+ << "."
+ << Endl();
+
+
+ switch ( Get_ProjectLanguage(rCmd, *(*it)).eLanguage )
+ {
+ case command::S_LanguageInfo::cpp:
+ {
+ Get_CppParser().Run( (*it)->Name(),
+ (*it)->RootDirectory(),
+ *pFiles );
+ bCpp = true;
+ } break;
+ case command::S_LanguageInfo::idl:
+ {
+ Get_IdlParser().Run(*pFiles);
+ bIDL = true;
+ } break;
+ default:
+ Cerr() << "Project in yet unimplemented language skipped."
+ << Endl();
+ }
+ } // end for
+
+ if (bCpp)
+ pReposy->RwGate_Cpp().Connect_AllTypes_2_TheirRelated_CodeEntites();
+ if (bIDL)
+ {
+ pNewReposy->Gate_Idl().Secondaries().Connect_Types2Ces();
+ pNewReposy->Gate_Idl().Secondaries().Gather_CrossReferences();
+ }
+
+ } // end try
+ catch (csv::Exception & xx)
+ {
+ xx.GetInfo(Cerr());
+ Cerr() << " program will exit." << Endl();
+ nResultCode = 1;
+ }
+ catch (...)
+ {
+ Cerr() << "Unknown exception - program will exit." << Endl();
+ nResultCode = 1;
+ }
+}
+
+void
+CommandRunner::Load()
+{
+ Cout() << "This would load the repository from the directory "
+ << pCommandLine->Cmd_Load()->ReposyDir()
+ << "."
+ << Endl();
+}
+
+
+void
+CommandRunner::Save()
+{
+ Cout() << "This would save the repository into the directory "
+ << pCommandLine->Cmd_Save()->ReposyDir()
+ << "."
+ << Endl();
+}
+
+
+void
+CommandRunner::CreateHtml()
+{
+ Cout() << "Creating HTML-output into the directory "
+ << pCommandLine->Cmd_CreateHtml()->OutputDir()
+ << "."
+ << Endl();
+
+ if ( HasParsedCpp() )
+ CreateHtml_NewStyle();
+ if ( HasParsedIdl() )
+ CreateHtml_OldIdlStyle();
+}
+
+
+
+void
+CommandRunner::CreateXml()
+{
+ Cout() << "This would create the XML-output into the directory "
+ << pCommandLine->Cmd_CreateXml()->OutputDir()
+ << "."
+ << Endl();
+}
+
+CodeParser_Ifc &
+CommandRunner::Get_CppParser()
+{
+ if ( NOT pCppParser )
+ Create_CppParser();
+ return *pCppParser;
+}
+
+IdlParser &
+CommandRunner::Get_IdlParser()
+{
+ if ( NOT pIdlParser )
+ Create_IdlParser();
+ return *pIdlParser;
+}
+
+void
+CommandRunner::Create_CppParser()
+{
+ pCppParser = ParseToolsFactory().Create_Parser_Cplusplus();
+ pCppDocuInterpreter = ParseToolsFactory().Create_DocuParser_AutodocStyle();
+
+ pCppParser->Setup( *pReposy,
+ *pCppDocuInterpreter );
+}
+
+void
+CommandRunner::Create_IdlParser()
+{
+ pIdlParser = new IdlParser(*pNewReposy);
+}
+
+uintt
+CommandRunner::GatherFiles( FileCollector_Ifc & o_rFiles,
+ const command::Parse & i_rCommand,
+ const command::S_ProjectData & i_rProject )
+{
+ uintt ret = 0;
+ o_rFiles.EraseAll();
+
+ typedef StringVector StrVector;
+ typedef StrVector::const_iterator StrIterator;
+ const command::S_Sources &
+ rSources = i_rProject.aFiles;
+ const StrVector &
+ rExtensions = Get_ProjectLanguage(i_rCommand,i_rProject).aExtensions;
+
+ StrIterator it;
+ StrIterator itDirsEnd = rSources.aDirectories.end();
+ StrIterator itTreesEnd = i_rProject.aFiles.aTrees.end();
+ StrIterator itFilesEnd = i_rProject.aFiles.aFiles.end();
+ StrIterator itExt;
+ StrIterator itExtEnd = rExtensions.end();
+
+ csv::StreamStr aDir(500);
+ i_rProject.aRootDirectory.Get( aDir );
+
+ uintt nProjectDir_AddPosition =
+ ( strcmp(aDir.c_str(),".\\") == 0 OR strcmp(aDir.c_str(),"./") == 0 )
+ ? 0
+ : uintt( aDir.tellp() );
+
+ for ( it = rSources.aDirectories.begin();
+ it != itDirsEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ for ( itExt = rExtensions.begin();
+ itExt != itExtEnd;
+ ++itExt )
+ {
+ ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+ *itExt,
+ FileCollector_Ifc::flat );
+ } // end for itExt
+ } // end for it
+ for ( it = rSources.aTrees.begin();
+ it != itTreesEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ for ( itExt = rExtensions.begin();
+ itExt != itExtEnd;
+ ++itExt )
+ {
+ ret += o_rFiles.AddFilesFrom( aDir.c_str(),
+ *itExt,
+ FileCollector_Ifc::recursive );
+ } // end for itExt
+ } // end for it
+ for ( it = rSources.aFiles.begin();
+ it != itFilesEnd;
+ ++it )
+ {
+ aDir.seekp( nProjectDir_AddPosition );
+ aDir << *it;
+
+ o_rFiles.AddFile( aDir.c_str() );
+ } // end for it
+ ret += rSources.aFiles.size();
+
+ return ret;
+}
+
+void
+CommandRunner::CreateHtml_NewStyle()
+{
+ const ary::cpp::DisplayGate &
+ rGate = pReposy->DisplayGate_Cpp();
+
+ Dyn< autodoc::HtmlDisplay_UdkStd > pHtmlDisplay;
+ pHtmlDisplay = DisplayToolsFactory_Ifc::GetIt_()
+ .Create_HtmlDisplay_UdkStd();
+
+ pHtmlDisplay->Run( pCommandLine->Cmd_CreateHtml()->OutputDir(),
+ rGate,
+ DisplayToolsFactory_Ifc::GetIt_().Create_StdFrame() );
+}
+
+void
+CommandRunner::CreateHtml_OldIdlStyle()
+{
+ ary::idl::Gate &
+ rAryGate = pNewReposy->Gate_Idl();
+
+ // Read DevManualLinkFile:
+ // KORR_FUTURE
+ csv::File
+ aFile("devmanref.txt", csv::CFM_READ);
+ if ( aFile.open() )
+ {
+ rAryGate.Secondaries().Read_Links2DevManual(aFile);
+ aFile.close();
+ }
+
+ // New Style Output
+ Dyn<autodoc::HtmlDisplay_Idl_Ifc> pNewDisplay;
+ pNewDisplay = DisplayToolsFactory_Ifc::GetIt_()
+ .Create_HtmlDisplay_Idl();
+ pNewDisplay->Run( pCommandLine->Cmd_CreateHtml()->OutputDir(),
+ rAryGate,
+ DisplayToolsFactory_Ifc::GetIt_().Create_StdFrame() );
+}
+#endif // 0
+
+} // namespace autodoc
+
+
+
+
diff --git a/autodoc/source/exes/adc_uni/cmd_run.hxx b/autodoc/source/exes/adc_uni/cmd_run.hxx
new file mode 100644
index 000000000000..8216f77e4029
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/cmd_run.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CMD_RUN_HXX
+#define ADC_CMD_RUN_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/comdline.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+ class Repository;
+}
+
+namespace autodoc
+{
+ class FileCollector_Ifc;
+ class ParseToolsFactory_Ifc;
+ class CodeParser_Ifc;
+ class DocumentationParser_Ifc;
+ class IdlParser;
+
+
+namespace command
+{
+ class Parse;
+ class S_ProjectData;
+ struct S_LanguageInfo;
+
+namespace run
+{
+
+/** Performs an ::autodoc::command::Parse .
+*/
+class Parser
+{
+ public:
+ Parser(
+ const Parse & i_command );
+ ~Parser();
+
+ bool Perform();
+
+ private:
+ // Locals
+ CodeParser_Ifc & Get_CppParser();
+ IdlParser & Get_IdlParser();
+ void Create_CppParser();
+ void Create_IdlParser();
+ const ParseToolsFactory_Ifc &
+ ParseToolsFactory();
+ uintt GatherFiles(
+ FileCollector_Ifc & o_rFiles,
+ const S_ProjectData &
+ i_rProject );
+ // DATA
+ const Parse & rCommand;
+
+ Dyn<CodeParser_Ifc> pCppParser;
+ Dyn<DocumentationParser_Ifc>
+ pCppDocuInterpreter;
+ Dyn<IdlParser> pIdlParser;
+};
+
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace run
+} // namespace command
+} // namespace autodoc
+
+#endif
diff --git a/autodoc/source/exes/adc_uni/cmd_sincedata.cxx b/autodoc/source/exes/adc_uni/cmd_sincedata.cxx
new file mode 100644
index 000000000000..1f61d11b9ba5
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/cmd_sincedata.cxx
@@ -0,0 +1,129 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cmd_sincedata.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <cosv/tpl/tpltools.hxx>
+#include "adc_cmds.hxx"
+
+
+
+namespace autodoc
+{
+namespace command
+{
+
+SinceTagTransformationData::SinceTagTransformationData()
+ : aTransformationTable()
+{
+}
+
+SinceTagTransformationData::~SinceTagTransformationData()
+{
+}
+
+bool
+SinceTagTransformationData::DoesTransform() const
+{
+ return NOT aTransformationTable.empty();
+}
+
+const String &
+SinceTagTransformationData::DisplayOf( const String & i_versionNumber ) const
+{
+ if (DoesTransform())
+ {
+ StreamLock
+ sl(200);
+ sl() << i_versionNumber;
+ sl().strip_frontback_whitespace();
+ String
+ sVersionNumber(sl().c_str());
+
+ const String *
+ ret = csv::find_in_map(aTransformationTable, sVersionNumber);
+ return ret != 0
+ ? *ret
+ : String::Null_();
+ }
+ else
+ {
+ return i_versionNumber;
+ }
+}
+
+void
+SinceTagTransformationData::do_Init( opt_iter & it,
+ opt_iter itEnd )
+{
+ ++it; // Cur is since-file path.
+
+ CHECKOPT( it != itEnd ,
+ "file path",
+ C_opt_SinceFile );
+
+ csv::File aSinceFile(*it);
+ csv::OpenCloseGuard aSinceFileGuard(aSinceFile);
+ StreamStr sLine(200);
+
+ if (aSinceFileGuard)
+ {
+ for ( sLine.operator_read_line(aSinceFile);
+ NOT sLine.empty();
+ sLine.operator_read_line(aSinceFile) )
+ {
+
+ if (*sLine.begin() != '"')
+ continue;
+
+ const char * pVersion = sLine.c_str() + 1;
+ const char * pVersionEnd = strchr(pVersion, '"');
+ if (pVersionEnd == 0)
+ continue;
+ const char * pDisplay = strchr(pVersionEnd+1, '"');
+ if (pDisplay == 0)
+ continue;
+ ++pDisplay;
+ const char * pDisplayEnd = strchr(pDisplay, '"');
+ if (pDisplayEnd == 0)
+ continue;
+
+ aTransformationTable[ String(pVersion,pVersionEnd) ]
+ = String(pDisplay,pDisplayEnd);
+ sLine.clear();
+ } // end for
+ } // end if
+
+ ++it; // Cur is next option.
+}
+
+} // namespace command
+} // namespace autodoc
diff --git a/autodoc/source/exes/adc_uni/cmd_sincedata.hxx b/autodoc/source/exes/adc_uni/cmd_sincedata.hxx
new file mode 100644
index 000000000000..355c64c2d314
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/cmd_sincedata.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CMD_SINCEDATA_HXX
+#define ADC_CMD_SINCEDATA_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "adc_cmd.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+namespace autodoc
+{
+namespace command
+{
+
+
+/** Provides replacements for the contents of the @@since documentation tag.
+
+ Because the @@since tag is part of the source code, it allows only one kind
+ of version information there. If this is to be mapped for different products
+ (example: from OpenOffice.org versions in the @@since tag to StarOffice or
+ StarSuite products), the value of @@since needs a replacement, which is provided
+ by this class.
+
+*/
+class SinceTagTransformationData : public Context
+{
+ public:
+ /** The key of this map are the version numbers within @since.
+ The value is the string to display for each version number.
+ */
+ typedef std::map<String,String> Map_Version2Display;
+
+ // LIFECYCLE
+ SinceTagTransformationData();
+ virtual ~SinceTagTransformationData();
+
+ // INQUIRY
+ /// False, if no transformation table exists.
+ bool DoesTransform() const;
+
+ /** Gets the string to display for a version number.
+
+ @param i_sVersionNumber
+ Usually should be the result of ->StripSinceTagValue().
+ */
+ const String & DisplayOf(
+ const String & i_sVersionNumber ) const;
+ private:
+ // Interface Context:
+ virtual void do_Init(
+ opt_iter & i_nCurArgsBegin,
+ opt_iter i_nEndOfAllArgs );
+ // DATA
+ Map_Version2Display aTransformationTable;
+};
+
+
+} // namespace command
+} // namespace autodoc
+
+
+#endif
diff --git a/autodoc/source/exes/adc_uni/main.cxx b/autodoc/source/exes/adc_uni/main.cxx
new file mode 100644
index 000000000000..ff5523a9a137
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/main.cxx
@@ -0,0 +1,54 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+
+
+// NOT FULLY DECLARED SERVICES
+
+#include <adc_cl.hxx>
+#include "cmd_run.hxx"
+
+
+int
+#ifdef WNT
+ _cdecl
+#endif
+main( int argc,
+ char * argv[] )
+{
+ autodoc::CommandLine aCL;
+ aCL.Init(argc, argv);
+ if (NOT aCL.CheckParameters() )
+ return 1;
+
+ int ret = aCL.Run();
+ return ret;
+}
+
+
+
diff --git a/autodoc/source/exes/adc_uni/makefile.mk b/autodoc/source/exes/adc_uni/makefile.mk
new file mode 100644
index 000000000000..8baea0830233
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/makefile.mk
@@ -0,0 +1,104 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=autodoc
+TARGETTYPE=CUI
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+UWINAPILIB=$(0)
+LIBSALCPPRT=$(0)
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/adc_cl.obj \
+ $(OBJ)$/adc_cmd_parse.obj \
+ $(OBJ)$/adc_cmds.obj \
+ $(OBJ)$/adc_msg.obj \
+ $(OBJ)$/cmd_run.obj \
+ $(OBJ)$/cmd_sincedata.obj
+
+
+# --- Targets ------------------------------------------------------
+
+LIB1TARGET=$(LB)$/atdoc.lib
+LIB1FILES= \
+ $(LB)$/$(TARGET).lib $(LB)$/autodoc_tools.lib \
+ $(LB)$/ary_kernel.lib $(LB)$/ary_cpp.lib $(LB)$/ary_idl.lib \
+ $(LB)$/ary_info.lib $(LB)$/ary_loc.lib \
+ $(LB)$/parser_kernel.lib $(LB)$/parser_tokens.lib $(LB)$/parser_semantic.lib \
+ $(LB)$/parser_cpp.lib $(LB)$/parser_adoc.lib \
+ $(LB)$/display_kernel.lib $(LB)$/display_html.lib $(LB)$/display_idl.lib \
+ $(LB)$/display_toolkit.lib $(LB)$/parser2_tokens.lib \
+ $(LB)$/parser2_s2_luidl.lib $(LB)$/parser2_s2_dsapi.lib \
+ $(LB)$/ary2_cinfo.lib $(LB)$/ary_doc.lib
+
+
+
+APP1TARGET= $(TARGET)
+APP1STACK= 1000000
+APP1OBJS= $(OBJ)$/main.obj
+
+APP1RPATH=SDK
+
+.IF "$(GUI)"=="WNT"
+APP1STDLIBS= $(LIBSTLPORT) $(COSVLIB) $(UDMLIB)
+.ELSE
+.IF "$(OS)"=="MACOSX"
+# See <http://porting.openoffice.org/servlets/ReadMsg?list=mac&msgNo=6911>:
+APP1STDLIBS= $(LIBSTLPORT) -Wl,-all_load -ludm -lcosv
+.ELSE
+APP1STDLIBS= -lcosv -ludm
+.ENDIF
+.ENDIF
+
+APP1LIBS=$(LB)$/atdoc.lib
+
+DEPOBJFILES += $(APP1OBJS)
+
+APP1DEPN= $(LB)$/$(TARGET).lib $(LB)$/autodoc_tools.lib \
+ $(LB)$/ary_kernel.lib $(LB)$/ary_cpp.lib $(LB)$/ary_idl.lib \
+ $(LB)$/ary_info.lib $(LB)$/ary_loc.lib \
+ $(LB)$/parser_kernel.lib $(LB)$/parser_tokens.lib $(LB)$/parser_semantic.lib \
+ $(LB)$/parser_cpp.lib $(LB)$/parser_adoc.lib \
+ $(LB)$/display_kernel.lib $(LB)$/display_html.lib $(LB)$/display_idl.lib \
+ $(LB)$/display_toolkit.lib $(LB)$/parser2_tokens.lib \
+ $(LB)$/parser2_s2_luidl.lib $(LB)$/parser2_s2_dsapi.lib \
+ $(LB)$/ary2_cinfo.lib $(LB)$/ary_doc.lib
+
+
+.INCLUDE : target.mk
diff --git a/autodoc/source/exes/adc_uni/spec-CommandLine.txt b/autodoc/source/exes/adc_uni/spec-CommandLine.txt
new file mode 100644
index 000000000000..756b3184a2e4
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/spec-CommandLine.txt
@@ -0,0 +1,181 @@
+ Command Line Options
+ --------------------
+
+autodoc [-v <level>]
+ -html <out>
+ [-extroot <externroot> -extnsp <externnamespace>]
+ -lg <proglang>
+ [-t <sourcetree>[ <sourcetree> ...]
+ [-d <sourcedir>[ <sourcedir> ...]
+ [-f <sourcefile>[ <sourcefile> ...]
+
+
+ -html <OutputDirectory>
+ Directory where the output will be created.
+
+ -lg <ProgrammingLanguage>
+ Allowed values: "c++" or "idl"
+
+ -extroot <externroot>
+ Only together with "-lg idl" and -extnsp.
+ Links to code entities not found within the current parsed
+ code, will be linked there, but only if -extnsp is given and
+ the linked entity is in the given namespace.
+ <externroot> is a http link, it needs no "http://" at the
+ beginning nor slash at the end.
+
+ -extnsp <externnamespace>
+ Only together with "-lg idl" and -extroot.
+ If a code entity is not found in the current parsed code, but
+ dwells in the namespace (or its children) given here, it is
+ linked into the loction given by -extroot.
+ <externnamespace> is an absolute qualified namespace,
+ starting with "::".
+
+ -t <SourceTree>*
+ Directory with all subdirectories.
+
+ -d <SourceDirectory>*
+ Directory without subdirectories.
+
+ -f <SourceFile>*
+ Any file. Here also files with extensions not matching the
+ language are accepted.
+
+ -I:<ResponseFile>
+ Each line in the response file has to have one command line
+ option. No whitespace at start of line.
+
+ -C:<ConfigurationFile>
+ Format see below.
+
+ -v <VerboseLevel>
+ Only for debugging. Bits 1, 2 and 4 in any combination give
+ different output.
+
+ -h
+ Displays help.
+ -?
+ Displays help.
+
+
+
+
+
+ Command Line Options especially for the OpenOffice.org SDK
+ ----------------------------------------------------------
+
+ -dvgroot <DevelopersGuide>
+ Root directory of the SDK Developers Guide.
+
+ -dvgfile <ReferenceFile>
+ File with references to the SDK Developers Guide.
+
+ -sincefile <@since-AssociationFile>
+ File that maps OpenOffice versions to the wished displayed version names.
+
+ -idlref <IdlDocumentationRoot> <Namespace[,Namespace ...]>
+ Gives the outputdirectory of an IDL documentation, where
+ symbols not found in the currently parsed namespaces of C++
+ or Java can be found.
+
+
+
+ Configure File Format
+ ---------------------
+
+<AutodocConfiguration>
+ <RepositoryName></RepositoryName>
+ // Base name of the binary repository files.
+ // Has to be a valid file name.
+
+ <HtmlOutputTitle></HtmlOutputTitle>
+ // Title on the "welcome page" of the created HTML documentation.
+ // Can be any text.
+
+ <CppExtensions></CppExtensions>
+ // Overwrites the default. Default is: .hxx .h .hpp
+ // Format: File extensions with a dot in front, like ".hcc".
+
+ <IdlExtensions></IdlExtensions>
+ // Overwrites the default. Default is: .idl
+ // Format: File extensions with a dot in front, like ".txt".
+
+ <CppDocu html="(on|off) off"/>
+
+ <IdlDocu html="(on|off) on"/>
+
+</AutodocConfiguration>
+
+
+
+
+
+
+ Historical Command Line Options
+ -------------------------------
+
+autodoc.exe
+ [ -v <VerboseNr> ]
+ -html <OutputDirectory>
+ {
+ [ -parse ]
+ [ -name <RepositoryName> ]
+ -lg <ProgrammingLanguage>
+ {
+ [ -p <ProjectName> <ProjectRootDirectory> ]
+ {
+ -t <SourceDirectory>*
+ -d <SourceDirectory>*
+ -f <SourceFile>*
+ }+
+ }+
+ }
+
+Legend:
+ <Text>
+ command line parameter
+ [ ]
+ optional
+ { }
+ Block of connected options.
+ The sequence of not connected options does not matter. So the -html or -v options can be used before or after all the parsing options.
+ +
+ once or more times
+ *
+ none or more times
+
+
+Explanation of the Options
+ -v <VerboseNr> Only for debugging. Bits 1, 2 and 4 in any combination give different output.
+ -html <OutputDirectory>
+ Gives the directory, where a HTML version of the docu shall be generated.
+ -parse Starts the block, where all the parse options are given. This can be omitted, because the parse options are identifiable without it, but it may make a commandline more readable.
+ -name <RepositoryName> This name appears as title of the documentation (currently only in the in the C++ version).
+ -lg <ProgrammingLanguage>
+
+
+ Possible values are:
+
+ c++
+ This parses all files with the endings .hxx and .h .
+ idl
+ This parses all files with the ending .idl .
+
+ -p with -t/-d/-f: If there are more than one project, the -p option is required for each one.
+
+ The directory given wit the -p option is the root directory of the project.
+ If there is no -p option, the working directory is seen as root.
+
+ All paths given with -t/-d/-f are relative to that root directory. It is possible to use "." as argument for -t or -d.
+
+ Each of -t/-d/-f can have several arguments:
+ One could write "-f file1.hxx file2.hxx file_xyz.hxx"
+ After each -p (or after -lg, if there is no -p option), there has to be at least one of the following three:
+ -t Tree, which means: include subdirectories
+ -d Directory, which means: no subdirectories
+ -f File", which means: single file name with ending.
+ This option also allows to parse some files with an ending different from those, the -lg option implies.
+
+
+
diff --git a/autodoc/source/exes/adc_uni/spec-DevGuideReferenceFile.txt b/autodoc/source/exes/adc_uni/spec-DevGuideReferenceFile.txt
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/spec-DevGuideReferenceFile.txt
diff --git a/autodoc/source/exes/adc_uni/spec-SinceTag_Handling.txt b/autodoc/source/exes/adc_uni/spec-SinceTag_Handling.txt
new file mode 100644
index 000000000000..7cf264e76be3
--- /dev/null
+++ b/autodoc/source/exes/adc_uni/spec-SinceTag_Handling.txt
@@ -0,0 +1,49 @@
+ General Handling
+ ----------------
+
+- The developer inserts the OpenOffice.org version into the @since tag.
+
+- @since-Tag may contain any string which needs to end with a Version number.
+ The first cipher following immediately on a white space is interpreted as start of the version number.
+
+- The @since Tag must stay completely within one line to allow tool support for retargeting.
+
+- To replace @since entries in the generated documentation, one needs to use
+ the command line option
+
+ -sincefile <TransformationFile-path>
+
+ This option has to occur immediately after the -html option.
+ If this option is not given, the original text of the @since tag is
+ displayed.
+
+ If the TransformationFile does not contain a specific entry,
+ nothing is displayed for this entry.
+
+
+
+ Format of the @since Tag Transformation File
+ --------------------------------------------
+
+Example
+-------
+
+***** BEGIN OF FILE ******
+"1.1" "StarOffice 7.0"
+"2.0" "StarOffice 8.0"
+"2.1" "StarOffice 9.0"
+***** END OF FILE ******
+
+
+
+Rules and Restrictions
+----------------------
+
+* Each line contains two strings within "".
+ The first string is the OpenOffice.org version number which is found in the @since tag.
+ The second string is the string to display for this version.
+* No specific order among product versions is needed.
+* Empty lines and whitespaces are allowed, except:
+ - Non empty lines must not start with white space.
+ - Within OpenOffice.org version strings, no whitespace is allowed.
+* Whitespace within display strings is displayed as it is.
diff --git a/autodoc/source/inc/adc_cl.hxx b/autodoc/source/inc/adc_cl.hxx
new file mode 100644
index 000000000000..8bcec7df50ce
--- /dev/null
+++ b/autodoc/source/inc/adc_cl.hxx
@@ -0,0 +1,193 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADC_CL_HXX
+#define ADC_ADC_CL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/comdline.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+ class Repository;
+}
+
+namespace autodoc
+{
+namespace command
+{
+ class Command;
+ class CreateHtml;
+ class SinceTagTransformationData;
+}
+
+
+/** Reads and runs an Autodoc command line.
+*/
+class CommandLine : public csv::CommandLine_Ifc
+{
+ public:
+ // LIFECYCLE
+ CommandLine();
+ ~CommandLine();
+ // OPERATIONS
+ int Run() const;
+
+ // INQUIRY
+ // debugging
+ bool DebugStyle_ShowText() const;
+ bool DebugStyle_ShowStoredObjects() const;
+ bool DebugStyle_ShowTokens() const;
+
+ // @since tags
+ bool DoesTransform_SinceTag() const;
+
+// /// @see command::SinceTagTransformationData::StripSinceTagValue()
+// bool Strip_SinceTagText(
+// String & io_sSinceTagValue ) const;
+
+ /// @see command::SinceTagTransformationData::DisplayOf()
+ const String & DisplayOf_SinceTagValue(
+ const String & i_sVersionNumber ) const;
+
+ // extern IDL links
+ const String & ExternRoot() const { return sExternRoot; }
+ const String & ExternNamespace() const { return sExternNamespace; }
+
+ bool CppUsed() const { return bCpp; }
+ bool IdlUsed() const { return bIdl; }
+
+ // ACCESS
+ static CommandLine &
+ Get_();
+ void Set_ExternRoot(
+ const String & i_s )
+ { sExternRoot = i_s; }
+ void Set_ExternNamespace(
+ const String & i_s )
+ { sExternNamespace = i_s; }
+ ary::Repository & TheRepository() const { csv_assert(pReposy != 0);
+ return *pReposy; }
+ void Set_CppUsed() { bCpp = true; }
+ void Set_IdlUsed() { bIdl = true; }
+
+ private:
+ // Interface cosv::CommandLine_Ifc:
+ virtual void do_Init(
+ int argc,
+ char * argv[] );
+ virtual void do_PrintUse() const;
+ virtual bool inq_CheckParameters() const;
+
+ // Locals
+ typedef StringVector::const_iterator opt_iter;
+ typedef std::vector< DYN command::Command* > CommandList;
+
+ void load_IncludedCommands(
+ StringVector & out,
+ const char * i_filePath );
+
+ void do_clVerbose(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clParse(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clCreateHtml(
+ opt_iter & it,
+ opt_iter itEnd );
+ void do_clSinceFile(
+ opt_iter & it,
+ opt_iter itEnd );
+
+// void do_clCreateXml(
+// opt_iter & it,
+// opt_iter itEnd );
+// void do_clLoad(
+// opt_iter & it,
+// opt_iter itEnd );
+// void do_clSave(
+// opt_iter & it,
+// opt_iter itEnd );
+
+ void sort_Commands();
+
+ // DATA
+ uintt nDebugStyle;
+ Dyn<command::SinceTagTransformationData>
+ pSinceTransformator;
+
+ CommandList aCommands;
+ bool bInitOk;
+ command::CreateHtml *
+ pCommand_CreateHtml;
+
+ String sExternRoot;
+ String sExternNamespace;
+
+ mutable Dyn<ary::Repository>
+ pReposy;
+ bool bCpp;
+ bool bIdl;
+
+ static CommandLine *
+ pTheInstance_;
+};
+
+
+
+// IMPLEMENTATION
+inline bool
+CommandLine::DebugStyle_ShowText() const
+ { return (nDebugStyle & 2) != 0; }
+inline bool
+CommandLine::DebugStyle_ShowStoredObjects() const
+ { return (nDebugStyle & 4) != 0; }
+inline bool
+CommandLine::DebugStyle_ShowTokens() const
+ { return (nDebugStyle & 1) != 0; }
+
+} // namespace autodoc
+
+
+inline bool
+DEBUG_ShowText()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowText(); }
+inline bool
+DEBUG_ShowStoring()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowStoredObjects(); }
+inline bool
+DEBUG_ShowTokens()
+ { return autodoc::CommandLine::Get_().DebugStyle_ShowTokens(); }
+
+#endif
+
diff --git a/autodoc/source/inc/adc_msg.hxx b/autodoc/source/inc/adc_msg.hxx
new file mode 100644
index 000000000000..320b8bd96ebc
--- /dev/null
+++ b/autodoc/source/inc/adc_msg.hxx
@@ -0,0 +1,141 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADC_MSG_HXX
+#define ADC_ADC_MSG_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+namespace csv
+{
+ class File;
+}
+
+
+namespace autodoc
+{
+
+
+/** Gathers, sorts and displays (mainly diagnostic) messages to the
+ user of Autodoc.
+*/
+class Messages
+{
+ public:
+ // LIFECYCLE
+ Messages();
+ ~Messages();
+ // OPERATIONS
+ void WriteFile(
+ const String & i_sOutputFilePath);
+ // INQUIRY
+
+ // ACCESS
+ void Out_MissingDoc(
+ const String & i_sEntity,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_ParseError(
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_InvalidConstSymbol(
+ const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_UnresolvedLink(
+ const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine);
+ void Out_TypeVsMemberMisuse(
+ const String & i_sLinkText,
+ const String & i_sFile,
+ uintt i_nLine);
+
+ static Messages & The_();
+
+ private:
+ struct Location
+ {
+ String sFile;
+ uintt nLine;
+
+ Location(
+ const String & i_file,
+ uintt i_line)
+ : sFile(i_file),
+ nLine(i_line) {}
+ bool operator<(
+ const Location & i_other) const
+ { int cmp = csv::compare(sFile,i_other.sFile);
+ return cmp < 0
+ ? true
+ : cmp > 0
+ ? false
+ : nLine < i_other.nLine;
+ }
+ };
+
+ typedef std::map<Location,String> MessageMap;
+
+ // Locals
+ void AddValue(
+ MessageMap & o_dest,
+ const String & i_sText,
+ const String & i_sFile,
+ uintt i_nLine );
+ void WriteParagraph(
+ csv::File & o_out,
+ const MessageMap & i_source,
+ const String & i_title,
+ const String & i_firstIntermediateText );
+
+ // DATA
+ MessageMap aMissingDocs;
+ MessageMap aParseErrors;
+ MessageMap aInvalidConstSymbols;
+ MessageMap aUnresolvedLinks;
+ MessageMap aTypeVsMemberMisuses;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace autodoc
+
+inline autodoc::Messages &
+TheMessages()
+{
+ return autodoc::Messages::The_();
+}
+
+#endif
diff --git a/autodoc/source/inc/docu_node_ids.hxx b/autodoc/source/inc/docu_node_ids.hxx
new file mode 100644
index 000000000000..b06997755c2b
--- /dev/null
+++ b/autodoc/source/inc/docu_node_ids.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DOCU_NODE_IDS_HXX
+#define ADC_DOCU_NODE_IDS_HXX
+
+
+
+namespace ary
+{
+namespace doc
+{
+namespace nodetype
+{
+enum E_Ids
+{
+
+ nt_none,
+ nt_OldCppDocu,
+ nt_OldIdlDocu
+
+
+
+
+
+
+
+
+
+};
+} // namespace nodetype
+} // namespace doc
+} // namespace ary
+
+namespace docnt = ::ary::doc::nodetype;
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/estack.hxx b/autodoc/source/inc/estack.hxx
new file mode 100644
index 000000000000..a3972da9739b
--- /dev/null
+++ b/autodoc/source/inc/estack.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_ESTACK_HXX
+#define ARY_ESTACK_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <slist>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+template <class ELEM>
+class EStack : private std::slist<ELEM>
+{
+ private:
+ typedef std::slist<ELEM> base;
+ const base & Base() const { return *this; }
+ base & Base() { return *this; }
+
+ public:
+ typedef ELEM value_type;
+ typedef typename std::slist<ELEM>::size_type size_type;
+
+ // LIFECYCLE
+ EStack() {}
+ EStack(
+ const EStack & i_rStack )
+ : base( (const base &)(i_rStack) ) {}
+ ~EStack() {}
+ // OPERATORS
+ EStack & operator=(
+ const EStack & i_rStack )
+ { base::operator=( i_rStack.Base() );
+ return *this; }
+ bool operator==(
+ const EStack<ELEM> &
+ i_r2 ) const
+ { return std::operator==( Base(), this->i_rStack.Base() ); }
+ bool operator<(
+ const EStack<ELEM> &
+ i_r2 ) const
+ { return std::operator<( Base(), this->i_rStack.Base() ); }
+ // OPERATIONS
+ void push(
+ const value_type & i_rElem )
+ { base::push_front(i_rElem); }
+ void pop() { base::pop_front(); }
+ void erase_all() { while (NOT empty()) pop(); }
+
+ // INQUIRY
+ const value_type & top() const { return base::front(); }
+ size_type size() const { return base::size(); }
+ bool empty() const { return base::empty(); }
+
+ // ACCESS
+ value_type & top() { return base::front(); }
+};
+
+
+
+// IMPLEMENTATION
+
+
+#endif
+
diff --git a/autodoc/source/inc/luxenum.hxx b/autodoc/source/inc/luxenum.hxx
new file mode 100644
index 000000000000..42eb2953dabe
--- /dev/null
+++ b/autodoc/source/inc/luxenum.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef UDM_LUXENUM_HXX
+#define UDM_LUXENUM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <map>
+#include <algorithm>
+
+
+namespace lux
+{
+
+typedef std::map< intt, String > EnumValueMap;
+
+
+template <class DIFF>
+class Enum // : public Template_Base
+{
+ public:
+ // TYPES
+ typedef Enum< DIFF > self;
+
+ // LIFECYCLE
+ Enum(
+ DIFF i_nValue,
+ const char * i_sText )
+ : nValue(i_nValue) { Values_()[nValue] = i_sText;
+ // Sequence_().insert(
+ // std::lower_bound( Sequence_().begin(), Sequence_().end(), i_nValue ),
+ // i_nValue );
+ }
+ Enum(
+ DIFF i_nValue )
+ : nValue(i_nValue) { ; }
+ Enum(
+ intt i_nValue = 0 )
+ : nValue(i_nValue) { if ( NOT CheckIntt(i_nValue) ) { csv_assert(false); } }
+ Enum(
+ const self & i_rEnum )
+ : nValue(i_rEnum.nValue) {;}
+
+ self & operator=(
+ DIFF i_nValue )
+ { nValue = i_nValue; return *this; }
+ self & operator=(
+ intt i_nValue )
+ { if ( CheckIntt(i_nValue) ) {nValue = DIFF(i_nValue);}
+ else {csv_assert(false);} return *this; }
+ self & operator=(
+ const self & i_rEnum )
+ { nValue = i_rEnum.nValue; return *this; }
+ operator DIFF() const { return DIFF(nValue); }
+
+ DIFF operator()() const { return nValue; }
+ const String & Text() const { return Values_()[nValue]; }
+
+ private:
+ static EnumValueMap &
+ Values_();
+ bool CheckIntt(
+ intt i_nNumber )
+ { return Values_().find(i_nNumber) != Values_().end(); }
+ // DATA
+ intt nValue;
+};
+
+
+
+
+} // namespace lux
+#endif
+
diff --git a/autodoc/source/inc/manip.hxx b/autodoc/source/inc/manip.hxx
new file mode 100644
index 000000000000..9b7ae9fc07c6
--- /dev/null
+++ b/autodoc/source/inc/manip.hxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_MANIP_HXX
+#define ARY_MANIP_HXX
+
+template <class XY >
+class Manipulator
+{
+ public:
+ virtual ~Manipulator() {}
+
+ void operator()(
+ XY & io_r ) const
+ { op_fcall(io_r); }
+ private:
+ virtual void op_fcall(
+ XY & io_r ) const = 0;
+};
+
+template <class XY >
+class Const_Manipulator
+{
+ public:
+ virtual ~Const_Manipulator() {}
+
+ void operator()(
+ const XY & io_r ) const
+ { op_fcall(io_r); }
+ private:
+ virtual void op_fcall(
+ const XY & io_r ) const = 0;
+};
+
+
+#endif
+
diff --git a/autodoc/source/inc/precomp.h b/autodoc/source/inc/precomp.h
new file mode 100644
index 000000000000..8ff526108f60
--- /dev/null
+++ b/autodoc/source/inc/precomp.h
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef ADC_PRECOMP_H_06071998
+#define ADC_PRECOMP_H_06071998
+
+
+// For en/disabling csv_assertions:
+#ifndef DEBUG
+#define CSV_NO_ASSERTIONS
+#endif
+
+#include <cosv/csv_precomp.h>
+
+#include <vector>
+#include <map>
+#include <set>
+
+
+
+// Shortcuts to access csv::-types:
+using csv::String;
+using csv::StringVector;
+using csv::StreamStr;
+using csv::c_str;
+typedef csv::StreamStrLock StreamLock;
+
+
+
+inline std::ostream &
+Cout() { return std::cout; }
+inline std::ostream &
+Cerr() { return std::cerr; }
+
+inline csv::F_FLUSHING_FUNC
+Endl() { return csv::Endl; }
+inline csv::F_FLUSHING_FUNC
+Flush() { return csv::Flush; }
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/prprpr.hxx b/autodoc/source/inc/prprpr.hxx
new file mode 100644
index 000000000000..842900bb5950
--- /dev/null
+++ b/autodoc/source/inc/prprpr.hxx
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ARY_CPP_PRPRPR_HXX // PRePRocessorPRocessing
+#define ARY_CPP_PRPRPR_HXX
+
+
+
+// Implemented in autodoc/source/parser/cpp/defdescr.cxx .
+
+bool CheckForOperator(
+ bool & o_bStringify,
+ bool & o_bConcatenate,
+ const String & i_sTextItem );
+void Do_bConcatenate(
+ csv::StreamStr & o_rText,
+ bool & io_bConcatenate );
+void Do_bStringify_begin(
+ csv::StreamStr & o_rText,
+ bool i_bStringify );
+void Do_bStringify_end(
+ csv::StreamStr & o_rText,
+ bool & io_bStringify );
+bool HandleOperatorsBeforeTextItem( /// @return true, if text item is done here
+ csv::StreamStr & o_rText,
+ bool & io_bStringify,
+ bool & io_bConcatenate,
+ const String & i_sTextItem );
+
+
+
+
+#endif
diff --git a/autodoc/source/inc/tools/filecoll.hxx b/autodoc/source/inc/tools/filecoll.hxx
new file mode 100644
index 000000000000..75818d1b40eb
--- /dev/null
+++ b/autodoc/source/inc/tools/filecoll.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_FILECOLL_HXX
+#define ADC_FILECOLL_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <autodoc/filecoli.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+class FileCollector : public autodoc::FileCollector_Ifc
+{
+ public:
+ // LIFECYCLE
+ FileCollector(
+ uintt i_nRoughNrOfFiles = 0 );
+
+ // OPERATIONS
+ virtual uintt AddFilesFrom(
+ const char * i_sRootDir,
+ const char * i_sFilter,
+ E_SearchMode i_eSearchMode );
+ virtual uintt AddFile(
+ const char * i_sFilePath );
+ virtual void EraseAll();
+
+ // INQUIRY
+ virtual const_iterator
+ Begin() const;
+ virtual const_iterator
+ End() const;
+ virtual uintt Size() const;
+
+ private:
+ // DATA
+ StringVector aFoundFiles;
+};
+
+
+#endif
+
diff --git a/autodoc/source/inc/tools/tkpchars.hxx b/autodoc/source/inc/tools/tkpchars.hxx
new file mode 100644
index 000000000000..2ebe0d000e84
--- /dev/null
+++ b/autodoc/source/inc/tools/tkpchars.hxx
@@ -0,0 +1,170 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKPCHARS_HXX
+#define ADC_TKPCHARS_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETRS
+#include <adc_cl.hxx>
+#include <stack>
+
+
+
+/** @descr
+
+ dpSource:
+
+ 1||||||||||||||||||||||a||||||||||||b|||c||||||||||||||||||||...
+
+
+ 1 := first character of Sourcecode.
+ a := nLastTokenStart, there starts the last cut token.
+ b := nLastCut, there is a '\0'-char which marks the end of
+ the last cut token. The original character at b is stored
+ in cCharAtLastCut and will replace the '\0'-char, when the
+ next token is cut.
+ c := The current cursor position.
+
+
+ @needs cosv.lib
+
+ @use This class can be used by any parser to get the chars of a
+ text one by one and separate them to tokens.
+**/
+
+class CharacterSource
+{
+ public:
+ // LIFECYCLE
+ CharacterSource();
+ ~CharacterSource();
+
+ // OPERATIONS
+ /** Loads the complete contents of in_rSource into the classes private memory.
+ If in_rSource is a file, it has to be open of course.
+ After loading the text, the CurChar() is set on the begin of the text.
+ **/
+ void LoadText(
+ csv::bstream & io_rSource);
+
+ void InsertTextAtCurPos(
+ const char * i_sText2Insert );
+
+ /// @return CurChar() after moving forward one char.
+ char MoveOn();
+ /** @return
+ The token which starts at the char which was CurChar(), when
+ CutToken() was called the last time - or at the beginning of the text.
+ The token ends by the CurChar() being replaced by a '\0'.
+
+ Value is valid until the next call of CutToken() or ~CharacterSource().
+ **/
+ const char * CutToken();
+
+ // INQUIRY
+ char CurChar() const;
+ /// @return The result of the last CutToken(). Or NULL, if there was none yet.
+ const char * CurToken() const;
+
+ // INQUIRY
+ /// @return true, if
+ bool IsFinished() const;
+
+ private:
+ struct S_SourceState
+ {
+ DYN char * dpSource;
+ intt nSourceSize;
+
+ intt nCurPos;
+ intt nLastCut;
+ intt nLastTokenStart;
+ char cCharAtLastCut;
+
+ S_SourceState(
+ DYN char * dpSource,
+ intt nSourceSize,
+ intt nCurPos,
+ intt nLastCut,
+ intt nLastTokenStart,
+ char cCharAtLastCut );
+ };
+
+ void BeginSource();
+ intt CurPos() const;
+ char MoveOn_OverStack();
+
+ // DATA
+ std::stack< S_SourceState >
+ aSourcesStack;
+
+ DYN char * dpSource;
+ intt nSourceSize;
+
+ intt nCurPos;
+ intt nLastCut;
+ intt nLastTokenStart;
+ char cCharAtLastCut;
+};
+
+
+inline char
+CharacterSource::MoveOn()
+ {
+if (DEBUG_ShowText())
+{
+ Cerr() << char(dpSource[nCurPos+1]) << Flush();
+}
+ if ( nCurPos < nSourceSize-1 )
+ return dpSource[++nCurPos];
+ else if ( aSourcesStack.size() > 0 )
+ return MoveOn_OverStack();
+ else
+ return dpSource[nCurPos = nSourceSize];
+ }
+inline char
+CharacterSource::CurChar() const
+ { return nCurPos != nLastCut ? dpSource[nCurPos] : cCharAtLastCut; }
+inline const char *
+CharacterSource::CurToken() const
+ { return &dpSource[nLastTokenStart]; }
+inline bool
+CharacterSource::IsFinished() const
+ { return nCurPos >= nSourceSize; }
+inline intt
+CharacterSource::CurPos() const
+ { return nCurPos; }
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/mkinc/fullcpp.mk b/autodoc/source/mkinc/fullcpp.mk
new file mode 100644
index 000000000000..75b251643180
--- /dev/null
+++ b/autodoc/source/mkinc/fullcpp.mk
@@ -0,0 +1,54 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+
+
+# --- Settings -----------------------------------------------------
+# Has to be included AFTER settings.mk !
+
+
+# RTTI
+.IF "$(GUI)"=="WNT"
+CFLAGS+= -GR
+.ENDIF
+.IF "$(OS)"=="LINUX" || "$(OS)"=="FREEBSD" || "$(OS)"=="NETBSD" || $(COM) == "GCC"
+CFLAGSCXX+= -frtti
+.ENDIF
+
+
+
+# Precompiled Headers
+.IF "$(NP_LOCALBUILD)"!="" && "$(GUI)"=="WNT"
+
+PCH_NAME=autodoc
+.IF "$(debug)"==""
+CFLAGS+= -YX"precomp.h" -Fp$(PRJ)$/$(INPATH)$/misc$/$(PCH_NAME).pch
+.ELSE
+CFLAGS+= -YX"precomp.h" -Fp$(PRJ)$/$(INPATH)$/misc$/$(PCH_NAME).pcd
+.ENDIF
+
+.ENDIF # "$(NP_LOCALBUILD)"!="" && "$(GUI)"=="WNT"
diff --git a/autodoc/source/parser/adoc/a_rdocu.cxx b/autodoc/source/parser/adoc/a_rdocu.cxx
new file mode 100644
index 000000000000..9d225bb0ec15
--- /dev/null
+++ b/autodoc/source/parser/adoc/a_rdocu.cxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/a_rdocu.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <adoc/docu_pe.hxx>
+#include <adoc/adoc_tok.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <doc_deal.hxx>
+
+
+
+namespace adoc
+{
+
+
+DocuExplorer::DocuExplorer()
+ : pDocuDistributor(0),
+ pPE(new Adoc_PE),
+ bIsPassedFirstDocu(false)
+{
+}
+
+DocuExplorer::~DocuExplorer()
+{
+}
+
+void
+DocuExplorer::StartNewFile( DocuDealer & o_rDocuDistributor )
+{
+ pDocuDistributor = &o_rDocuDistributor;
+ bIsPassedFirstDocu = false;
+}
+
+
+void
+DocuExplorer::Process_Token( DYN adoc::Token & let_drToken )
+{
+ csv_assert(pDocuDistributor != 0);
+
+ let_drToken.Trigger(*pPE);
+ if ( pPE->IsComplete() )
+ {
+ ary::doc::OldCppDocu *
+ pDocu = pPE->ReleaseJustParsedDocu();
+ if ( pDocu != 0 )
+ {
+ if (bIsPassedFirstDocu)
+ pDocuDistributor->TakeDocu( *pDocu );
+ else
+ {
+ delete pDocu;
+ bIsPassedFirstDocu = true;
+ }
+ }
+ }
+
+ delete &let_drToken;
+}
+
+
+} // namespace adoc
+
diff --git a/autodoc/source/parser/adoc/adoc_tok.cxx b/autodoc/source/parser/adoc/adoc_tok.cxx
new file mode 100644
index 000000000000..37b3e9241fa4
--- /dev/null
+++ b/autodoc/source/parser/adoc/adoc_tok.cxx
@@ -0,0 +1,47 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/adoc_tok.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <adoc/atokdeal.hxx>
+#include <../cpp/c_dealer.hxx>
+
+
+namespace adoc {
+
+void
+Token::DealOut( ::TokenDealer & o_rDealer )
+{
+ o_rDealer.AsDistributor()->Deal_AdcDocu(*this);
+}
+
+
+} // namespace adoc
+
diff --git a/autodoc/source/parser/adoc/cx_a_std.cxx b/autodoc/source/parser/adoc/cx_a_std.cxx
new file mode 100644
index 000000000000..9bdb10be5f04
--- /dev/null
+++ b/autodoc/source/parser/adoc/cx_a_std.cxx
@@ -0,0 +1,516 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/cx_a_std.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <adoc/cx_a_sub.hxx>
+#include <x_parse.hxx>
+#include <tools/tkpchars.hxx>
+#include <adoc/tk_attag.hxx>
+#include <adoc/tk_docw.hxx>
+#include <tokens/tokdeal.hxx>
+
+
+
+namespace adoc {
+
+
+const intt C_nStatusSize = 128;
+const intt C_nCppInitialNrOfStati = 400;
+
+
+const uintt nF_fin_Error = 1;
+const uintt nF_fin_Ignore = 2;
+const uintt nF_fin_LineStart = 3;
+const uintt nF_fin_Eol = 4;
+const uintt nF_fin_Eof = 5;
+const uintt nF_fin_AnyWord = 6;
+const uintt nF_fin_Whitespace = 7;
+
+const uintt nF_goto_AtTag = 20;
+const uintt nF_goto_CheckStar = 21;
+
+DYN TextToken * TCF_DocWord(const char * text) { return new Tok_DocWord(text); }
+
+DYN TextToken * TCF_atstd_ATT(const char * ) { return new Tok_at_std(ary::info::atid_ATT); }
+DYN TextToken * TCF_atstd_author(const char * ) { return new Tok_at_std(ary::info::atid_author); }
+DYN TextToken * TCF_atstd_change(const char * ) { return new Tok_at_std(ary::info::atid_change); }
+DYN TextToken * TCF_atstd_collab(const char * ) { return new Tok_at_std(ary::info::atid_collab); }
+DYN TextToken * TCF_atstd_contact(const char * ) { return new Tok_at_std(ary::info::atid_contact); }
+DYN TextToken * TCF_atstd_copyright(const char * ) { return new Tok_at_std(ary::info::atid_copyright); }
+DYN TextToken * TCF_atstd_descr(const char * ) { return new Tok_at_std(ary::info::atid_descr); }
+DYN TextToken * TCF_atstd_docdate(const char * ) { return new Tok_at_std(ary::info::atid_docdate); }
+DYN TextToken * TCF_atstd_derive(const char * ) { return new Tok_at_std(ary::info::atid_derive); }
+DYN TextToken * TCF_atstd_instance(const char * ) { return new Tok_at_std(ary::info::atid_instance); }
+DYN TextToken * TCF_atstd_life(const char * ) { return new Tok_at_std(ary::info::atid_life); }
+DYN TextToken * TCF_atstd_multi(const char * ) { return new Tok_at_std(ary::info::atid_multi); }
+DYN TextToken * TCF_atstd_onerror(const char * ) { return new Tok_at_std(ary::info::atid_onerror); }
+DYN TextToken * TCF_atstd_persist(const char * ) { return new Tok_at_std(ary::info::atid_persist); }
+DYN TextToken * TCF_atstd_postcond(const char * ) { return new Tok_at_std(ary::info::atid_postcond); }
+DYN TextToken * TCF_atstd_precond(const char * ) { return new Tok_at_std(ary::info::atid_precond); }
+DYN TextToken * TCF_atstd_responsibility(const char * ) { return new Tok_at_std(ary::info::atid_resp); }
+DYN TextToken * TCF_atstd_return(const char * ) { return new Tok_at_std(ary::info::atid_return); }
+DYN TextToken * TCF_atstd_short(const char * ) { return new Tok_at_std(ary::info::atid_short); }
+DYN TextToken * TCF_atstd_todo(const char * ) { return new Tok_at_std(ary::info::atid_todo); }
+DYN TextToken * TCF_atstd_version(const char * ) { return new Tok_at_std(ary::info::atid_version); }
+
+DYN TextToken * TCF_at_base(const char *) { return new Tok_at_base; }
+DYN TextToken * TCF_at_exception(const char *) { return new Tok_at_exception; }
+DYN TextToken * TCF_at_impl(const char *) { return new Tok_at_impl; }
+DYN TextToken * TCF_at_interface(const char *) { return new Tok_at_interface; }
+DYN TextToken * TCF_at_key(const char *) { return new Tok_at_key; }
+DYN TextToken * TCF_at_param(const char *) { return new Tok_at_param; }
+DYN TextToken * TCF_at_see(const char *) { return new Tok_at_see; }
+DYN TextToken * TCF_at_template(const char *) { return new Tok_at_template; }
+DYN TextToken * TCF_at_internal(const char *) { return new Tok_at_internal; }
+DYN TextToken * TCF_at_obsolete(const char *) { return new Tok_at_obsolete; }
+DYN TextToken * TCF_at_module(const char *) { return new Tok_at_module; }
+DYN TextToken * TCF_at_file(const char *) { return new Tok_at_file; }
+DYN TextToken * TCF_at_gloss(const char *) { return new Tok_at_gloss; }
+DYN TextToken * TCF_at_global(const char *) { return new Tok_at_global; }
+DYN TextToken * TCF_at_include(const char *) { return new Tok_at_include; }
+DYN TextToken * TCF_at_label(const char *) { return new Tok_at_label; }
+DYN TextToken * TCF_at_since(const char *) { return new Tok_at_since; }
+DYN TextToken * TCF_at_HTML(const char *) { return new Tok_at_HTML; }
+DYN TextToken * TCF_at_NOHTML(const char *) { return new Tok_at_NOHTML; }
+DYN TextToken * TCF_Whitespace(const char * i_sText);
+DYN TextToken * TCF_EoDocu(const char *) { return new Tok_EoDocu; }
+DYN TextToken * TCF_EoLine(const char *) { return new Tok_Eol; }
+DYN TextToken * TCF_Eof(const char *) { return new Tok_Eof; }
+
+
+
+
+Context_AdocStd::Context_AdocStd()
+ : aStateMachine(C_nStatusSize, C_nCppInitialNrOfStati),
+ pDealer(0),
+ pParentContext(0),
+ pFollowUpContext(0),
+ pCx_LineStart(0),
+ pCx_CheckStar(0),
+ pCx_AtTagCompletion(0),
+ pNewToken(0),
+ bIsMultiline(false)
+{
+ pCx_LineStart = new Cx_LineStart(*this);
+ pCx_CheckStar = new Cx_CheckStar(*this);
+ pCx_AtTagCompletion = new Cx_AtTagCompletion(*this);
+
+ SetupStateMachine();
+}
+
+void
+Context_AdocStd::SetParentContext( TkpContext & io_rParentContext,
+ const char * )
+{
+ pFollowUpContext = pParentContext = &io_rParentContext;
+ pCx_CheckStar->Set_End_FollowUpContext(io_rParentContext);
+}
+
+Context_AdocStd::~Context_AdocStd()
+{
+}
+
+void
+Context_AdocStd::AssignDealer( TokenDealer & o_rDealer )
+{
+ pDealer = &o_rDealer;
+ pCx_LineStart->AssignDealer(o_rDealer);
+ pCx_CheckStar->AssignDealer(o_rDealer);
+ pCx_AtTagCompletion->AssignDealer(o_rDealer);
+}
+
+void
+Context_AdocStd::ReadCharChain( CharacterSource & io_rText )
+{
+ csv_assert(pParentContext != 0);
+ pNewToken = 0;
+
+ TextToken::F_CRTOK fTokenCreateFunction = 0;
+ StmBoundsStatus & rBound = aStateMachine.GetCharChain(fTokenCreateFunction, io_rText);
+
+ // !!!
+ // The order of the next two lines is essential, because
+ // pFollowUpContext may be changed by PerformStatusFunction() also,
+ // which then MUST override the previous assignment.
+ pFollowUpContext = rBound.FollowUpContext();
+ PerformStatusFunction(rBound.StatusFunctionNr(), fTokenCreateFunction, io_rText);
+}
+
+bool
+Context_AdocStd::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pNewToken.Release()->DealOut(*pDealer);
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Context_AdocStd::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Context_AdocStd::PerformStatusFunction( uintt i_nStatusSignal,
+ F_CRTOK i_fTokenCreateFunction,
+ CharacterSource & io_rText )
+{
+ switch (i_nStatusSignal)
+ {
+ case nF_fin_Error:
+ {
+ char cCC = io_rText.CurChar();
+ String sChar( &cCC, 1 );
+ throw X_Parser(X_Parser::x_InvalidChar, sChar, String ::Null_(), 0);
+ } // no break, because of throw
+ case nF_fin_Ignore:
+ io_rText.CutToken();
+ pNewToken = 0;
+ break;
+ case nF_fin_LineStart:
+ csv_assert(i_fTokenCreateFunction != 0);
+ pNewToken = (*i_fTokenCreateFunction)(io_rText.CutToken());
+ break;
+ case nF_fin_Eol:
+ io_rText.CutToken();
+ pDealer->Deal_Eol();
+ if ( bIsMultiline )
+ {
+ pNewToken = TCF_EoLine(0);
+ pFollowUpContext = pCx_LineStart.Ptr();
+ }
+ else
+ {
+ pNewToken = TCF_EoDocu(0);
+ pFollowUpContext = pParentContext;
+ }
+ break;
+ case nF_fin_Eof:
+ pNewToken = TCF_Eof(0);
+ break;
+ case nF_fin_AnyWord:
+ if (i_fTokenCreateFunction != 0)
+ pNewToken = (*i_fTokenCreateFunction)(io_rText.CutToken());
+ else
+ pNewToken = TCF_DocWord(io_rText.CutToken());
+ break;
+ case nF_fin_Whitespace:
+ pNewToken = TCF_Whitespace(io_rText.CutToken());
+ break;
+ case nF_goto_AtTag:
+ pNewToken = 0;
+ pCx_AtTagCompletion->SetCurToken(i_fTokenCreateFunction);
+ break;
+ case nF_goto_CheckStar:
+ pNewToken = 0;
+ pCx_CheckStar->SetCanBeEnd( bIsMultiline );
+ break;
+ default:
+ {
+ char cCC = io_rText.CurChar();
+ String sChar( &cCC, 1 );
+ throw X_Parser(X_Parser::x_InvalidChar, sChar, String::Null_(), 0);
+ }
+ } // end switch (i_nStatusSignal)
+}
+
+void
+Context_AdocStd::SetupStateMachine()
+{
+ // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
+// const INT16 bas = 0; // Base-Status
+ const INT16 wht = 1; // Whitespace-Status
+ const INT16 awd = 2; // Any-Word-Read-Status
+
+ // Kontextwechsel-Stati:
+ const INT16 goto_CheckStar = 3;
+ const INT16 goto_AtTag = 4;
+
+ // Tokenfinish-Stati:
+ const INT16 finError = 5;
+// const INT16 finIgnore = 6;
+ const INT16 finEol = 7;
+ const INT16 finEof = 8;
+ const INT16 finAnyWord = 9;
+ const INT16 finWhitespace = 10;
+
+ // Konstanten zur Benutzung in der Tabelle:
+ const INT16 fof = finEof;
+ const INT16 err = finError;
+ const INT16 faw = finAnyWord;
+// const INT16 fig = finIgnore;
+ const INT16 fwh = finWhitespace;
+
+ /// The '0's will be replaced by calls of AddToken().
+
+ const INT16 A_nTopStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht, 0,wht,wht, 0,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+ wht,awd,awd,awd,awd,awd,awd,awd,awd,awd, 0,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 63
+ 0,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht,fwh,wht,wht,fwh,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+ wht,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh, // ... 63
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh, // ... 95
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh // ... 127
+ };
+
+ const INT16 A_nWordStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+ err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+ faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 63
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+ err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+ faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 63
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nPunctDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err // 112 ...
+ };
+
+ DYN StmArrayStatus * dpStatusTop
+ = new StmArrayStatus( C_nStatusSize, A_nTopStatus, 0, true);
+ DYN StmArrayStatus * dpStatusWhite
+ = new StmArrayStatus( C_nStatusSize, A_nWhitespaceStatus, 0, true);
+ DYN StmArrayStatus * dpStatusWord
+ = new StmArrayStatus( C_nStatusSize, A_nWordStatus, TCF_DocWord, true);
+
+ DYN StmBoundsStatus * dpBst_goto_CheckStar
+ = new StmBoundsStatus( *this, *pCx_CheckStar, nF_goto_CheckStar, true );
+ DYN StmBoundsStatus * dpBst_goto_AtTag
+ = new StmBoundsStatus( *this, *pCx_AtTagCompletion, nF_goto_AtTag, true );
+
+ DYN StmBoundsStatus * dpBst_finError
+ = new StmBoundsStatus( *this, TkpContext::Null_(), nF_fin_Error, true );
+ DYN StmBoundsStatus * dpBst_finIgnore
+ = new StmBoundsStatus( *this, *this, nF_fin_Ignore, true);
+ DYN StmBoundsStatus * dpBst_finEol
+ = new StmBoundsStatus( *this, *pCx_LineStart, nF_fin_Eol, false);
+ DYN StmBoundsStatus * dpBst_finEof
+ = new StmBoundsStatus( *this, TkpContext::Null_(), nF_fin_Eof, false);
+ DYN StmBoundsStatus * dpBst_finAnyWord
+ = new StmBoundsStatus( *this, *this, nF_fin_AnyWord, true);
+ DYN StmBoundsStatus * dpBst_finWhitespace
+ = new StmBoundsStatus( *this, *this, nF_fin_Whitespace, true);
+
+ // dpMain aufbauen:
+ aStateMachine.AddStatus(dpStatusTop);
+ aStateMachine.AddStatus(dpStatusWhite);
+ aStateMachine.AddStatus(dpStatusWord);
+
+ aStateMachine.AddStatus(dpBst_goto_CheckStar);
+ aStateMachine.AddStatus(dpBst_goto_AtTag);
+
+ aStateMachine.AddStatus(dpBst_finError);
+ aStateMachine.AddStatus(dpBst_finIgnore);
+ aStateMachine.AddStatus(dpBst_finEol);
+ aStateMachine.AddStatus(dpBst_finEof);
+ aStateMachine.AddStatus(dpBst_finAnyWord);
+ aStateMachine.AddStatus(dpBst_finWhitespace);
+
+ aStateMachine.AddToken( "*", 0, A_nPunctDefStatus, goto_CheckStar );
+ aStateMachine.AddToken( "@ATT", TCF_atstd_ATT, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@att", TCF_atstd_ATT, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@ATTENTION",
+ TCF_atstd_ATT, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@attention",
+ TCF_atstd_ATT, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@author", TCF_atstd_author, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@change", TCF_atstd_change, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@collab", TCF_atstd_collab, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@collaborator",
+ TCF_atstd_collab, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@contact", TCF_atstd_contact, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@copyright",TCF_atstd_copyright, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@descr", TCF_atstd_descr, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@docdate", TCF_atstd_docdate, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@derive", TCF_atstd_derive, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@instance",TCF_atstd_instance, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@life", TCF_atstd_life, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@lifecycle",
+ TCF_atstd_life, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@multi", TCF_atstd_multi, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@multiplicity",
+ TCF_atstd_multi, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@onerror", TCF_atstd_onerror, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@persist", TCF_atstd_persist, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@postcond",TCF_atstd_postcond,A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@precond", TCF_atstd_precond, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@resp", TCF_atstd_responsibility,
+ A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@responsibility",
+ TCF_atstd_return, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@return", TCF_atstd_return, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@short", TCF_atstd_short, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@todo", TCF_atstd_todo, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@version", TCF_atstd_version, A_nAtTagDefStatus, goto_AtTag );
+
+ aStateMachine.AddToken( "@base", TCF_at_base, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@exception",TCF_at_exception, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@impl", TCF_at_impl, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@key", TCF_at_key, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@param", TCF_at_param, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@see", TCF_at_see, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@seealso", TCF_at_see, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@since", TCF_at_since, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@tpl", TCF_at_template, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@tplparam",
+ TCF_at_template, A_nAtTagDefStatus, goto_AtTag );
+
+ aStateMachine.AddToken( "@interface",TCF_at_interface, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@internal",TCF_at_internal, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@obsolete",TCF_at_obsolete, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@deprecated",TCF_at_obsolete, A_nAtTagDefStatus, goto_AtTag );
+
+ aStateMachine.AddToken( "@module", TCF_at_module, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@file", TCF_at_file, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@gloss", TCF_at_gloss, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@global#", TCF_at_global, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@include#",TCF_at_include, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@#", TCF_at_label, A_nAtTagDefStatus, goto_AtTag );
+
+ aStateMachine.AddToken( "@HTML", TCF_at_HTML, A_nAtTagDefStatus, goto_AtTag );
+ aStateMachine.AddToken( "@NOHTML", TCF_at_NOHTML, A_nAtTagDefStatus, goto_AtTag );
+
+ aStateMachine.AddToken( "\r\n", 0, A_nPunctDefStatus, finEol );
+ aStateMachine.AddToken( "\n", 0, A_nPunctDefStatus, finEol );
+ aStateMachine.AddToken( "\r", 0, A_nPunctDefStatus, finEol );
+};
+
+void
+Context_AdocStd::SetMode_IsMultiLine( bool i_bTrue )
+{
+ bIsMultiline = i_bTrue;
+}
+
+DYN TextToken *
+TCF_Whitespace(const char * i_sText)
+{
+ UINT8 nSize = static_cast<UINT8>(strlen(i_sText));
+ for ( const char * pTab = strchr(i_sText,'\t');
+ pTab != 0;
+ pTab = strchr(pTab+1,'\t') )
+ {
+ nSize += 3;
+ }
+
+ return new Tok_Whitespace(nSize);
+}
+
+
+} // namespace adoc
+
+
+/*
+@ATT[ENTION]
+@author
+@change[s]
+@collab[orators]
+@contact
+@copyright
+@descr
+@devstat[e]
+@docdate
+@derive
+@instance
+@life[cycle]
+@multi[plicity]
+@onerror
+@persist[ence]
+@postcond
+@precond
+@return
+@short
+@todo
+
+@module
+@file
+@gloss[ary]
+
+
+@base <BasisklassenName>
+@exception <ExceptionName>
+@impl[ements] <IDL-Construct>
+@key[words]|[s]
+@param <FunctionParameterName> [<Range of valid values>]
+@see[also]
+@templ[ate] <FormalTemplateParameterName>
+
+@internal
+@obsolete
+
+@#<Label>
+
+@global#<Label> Global comment.
+@include#<Label>
+
+
+*/
+
diff --git a/autodoc/source/parser/adoc/cx_a_sub.cxx b/autodoc/source/parser/adoc/cx_a_sub.cxx
new file mode 100644
index 000000000000..0fdec622b294
--- /dev/null
+++ b/autodoc/source/parser/adoc/cx_a_sub.cxx
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/cx_a_sub.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <tokens/parseinc.hxx>
+#include <x_parse.hxx>
+#include <adoc/tk_docw.hxx>
+
+
+namespace adoc {
+
+//************************ Cx_LineStart ************************//
+
+Cx_LineStart::Cx_LineStart( TkpContext & i_rFollowUpContext )
+ : pDealer(0),
+ pFollowUpContext(&i_rFollowUpContext)
+{
+}
+
+void
+Cx_LineStart::ReadCharChain( CharacterSource & io_rText )
+{
+ uintt nCount = 0;
+ for ( char cNext = io_rText.CurChar(); cNext == 32 OR cNext == 9; cNext = io_rText.MoveOn() )
+ {
+ if (cNext == 32)
+ nCount++;
+ else if (cNext == 9)
+ nCount += 4;
+ }
+ io_rText.CutToken();
+
+ if (nCount < 50)
+ pNewToken = new Tok_LineStart(UINT8(nCount));
+ else
+ pNewToken = new Tok_LineStart(0);
+}
+
+bool
+Cx_LineStart::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pNewToken.Release()->DealOut(*pDealer);
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_LineStart::FollowUpContext()
+{
+ return *pFollowUpContext;
+}
+
+
+//************************ Cx_CheckStar ************************//
+
+Cx_CheckStar::Cx_CheckStar( TkpContext & i_rFollowUpContext )
+ : pDealer(0),
+ pFollowUpContext(&i_rFollowUpContext),
+ pEnd_FollowUpContext(0),
+ bCanBeEnd(false),
+ bEndTokenFound(false)
+{
+}
+
+
+void
+Cx_CheckStar::ReadCharChain( CharacterSource & io_rText )
+{
+ bEndTokenFound = false;
+ if (bCanBeEnd)
+ {
+ char cNext = jumpOver(io_rText,'*');
+ if ( NULCH == cNext )
+ throw X_Parser(X_Parser::x_UnexpectedEOF, "", String::Null_(), 0);
+ if (cNext == '/')
+ {
+ io_rText.MoveOn();
+ pNewToken = new Tok_EoDocu;
+ bEndTokenFound = true;
+ }
+ else
+ {
+ pNewToken = new Tok_DocWord(io_rText.CutToken());
+ }
+ }
+ else
+ {
+ jumpToWhite(io_rText);
+ pNewToken = new Tok_DocWord(io_rText.CutToken());
+ }
+}
+
+bool
+Cx_CheckStar::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pNewToken.Release()->DealOut(*pDealer);
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_CheckStar::FollowUpContext()
+{
+ if (bEndTokenFound)
+ return *pEnd_FollowUpContext;
+ else
+ return *pFollowUpContext;
+}
+
+
+//************************ Cx_AtTagCompletion ************************//
+
+Cx_AtTagCompletion::Cx_AtTagCompletion( TkpContext & i_rFollowUpContext )
+ : pDealer(0),
+ pFollowUpContext(&i_rFollowUpContext)
+{
+}
+
+void
+Cx_AtTagCompletion::ReadCharChain( CharacterSource & io_rText )
+{
+ jumpToWhite(io_rText);
+ csv_assert(fCur_TokenCreateFunction != 0);
+ pNewToken = (*fCur_TokenCreateFunction)(io_rText.CutToken());
+}
+
+bool
+Cx_AtTagCompletion::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pNewToken.Release()->DealOut(*pDealer);
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_AtTagCompletion::FollowUpContext()
+{
+ return *pFollowUpContext;
+}
+
+
+
+
+} // namespace adoc
+
diff --git a/autodoc/source/parser/adoc/docu_pe.cxx b/autodoc/source/parser/adoc/docu_pe.cxx
new file mode 100644
index 000000000000..963a36cd6b14
--- /dev/null
+++ b/autodoc/source/parser/adoc/docu_pe.cxx
@@ -0,0 +1,403 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/docu_pe.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <ary/info/ci_attag.hxx>
+#include <ary/info/ci_text.hxx>
+#include <adoc/adoc_tok.hxx>
+#include <adoc/tk_attag.hxx>
+#include <adoc/tk_docw.hxx>
+
+
+namespace adoc
+{
+
+
+inline bool
+Adoc_PE::UsesHtmlInDocuText()
+{
+ return bUsesHtmlInDocuText;
+}
+
+
+
+
+Adoc_PE::Adoc_PE()
+ : pCurDocu(0),
+ pCurAtTag(0),
+ nLineCountInDocu(0),
+ nCurSpecialMeaningTokens(0),
+ nCurSubtractFromLineStart(0),
+ eCurTagState(ts_new),
+ eDocuState(ds_wait_for_short),
+ bIsComplete(false),
+ bUsesHtmlInDocuText(false)
+{
+}
+
+Adoc_PE::~Adoc_PE()
+{
+}
+
+void
+Adoc_PE::Hdl_at_std( const Tok_at_std & i_rTok )
+{
+ InstallAtTag(
+ CurDocu().Create_StdTag(i_rTok.Id()) );
+}
+
+void
+Adoc_PE::Hdl_at_base( const Tok_at_base & )
+{
+ InstallAtTag(
+ CurDocu().CheckIn_BaseTag() );
+}
+
+void
+Adoc_PE::Hdl_at_exception( const Tok_at_exception & )
+{
+ InstallAtTag(
+ CurDocu().CheckIn_ExceptionTag() );
+}
+
+void
+Adoc_PE::Hdl_at_impl( const Tok_at_impl & )
+{
+ InstallAtTag(
+ CurDocu().Create_ImplementsTag() );
+}
+
+void
+Adoc_PE::Hdl_at_key( const Tok_at_key & )
+{
+ InstallAtTag(
+ CurDocu().Create_KeywordTag() );
+}
+
+void
+Adoc_PE::Hdl_at_param( const Tok_at_param & )
+{
+ InstallAtTag(
+ CurDocu().CheckIn_ParameterTag() );
+}
+
+void
+Adoc_PE::Hdl_at_see( const Tok_at_see & )
+{
+ InstallAtTag(
+ CurDocu().CheckIn_SeeTag() );
+}
+
+void
+Adoc_PE::Hdl_at_template( const Tok_at_template & )
+{
+ InstallAtTag(
+ CurDocu().CheckIn_TemplateTag() );
+}
+
+void
+Adoc_PE::Hdl_at_interface( const Tok_at_interface & )
+{
+ CurDocu().Set_Interface();
+}
+
+void
+Adoc_PE::Hdl_at_internal( const Tok_at_internal & )
+{
+ CurDocu().Set_Internal();
+}
+
+void
+Adoc_PE::Hdl_at_obsolete( const Tok_at_obsolete & )
+{
+ CurDocu().Set_Obsolete();
+}
+
+void
+Adoc_PE::Hdl_at_module( const Tok_at_module & )
+{
+ // KORR_FUTURE
+
+// pCurAtTag = CurDocu().Assign2_ModuleTag();
+// nCurSpecialMeaningTokens = pCurAtTag->NrOfSpecialMeaningTokens();
+}
+
+void
+Adoc_PE::Hdl_at_file( const Tok_at_file & )
+{
+ // KORR_FUTURE
+
+// pCurAtTag = CurDocu().Assign2_FileTag();
+// nCurSpecialMeaningTokens = pCurAtTag->NrOfSpecialMeaningTokens();
+}
+
+void
+Adoc_PE::Hdl_at_gloss( const Tok_at_gloss & )
+{
+ // KORR_FUTURE
+
+// Create_GlossaryEntry();
+}
+
+void
+Adoc_PE::Hdl_at_global( const Tok_at_global & )
+{
+ // KORR_FUTURE
+// Create_GlobalTextComponent();
+}
+
+void
+Adoc_PE::Hdl_at_include( const Tok_at_include & )
+{
+ // KORR_FUTURE
+}
+
+void
+Adoc_PE::Hdl_at_label( const Tok_at_label & )
+{
+ InstallAtTag(
+ CurDocu().Create_LabelTag() );
+}
+
+void
+Adoc_PE::Hdl_at_since( const Tok_at_since & )
+{
+ InstallAtTag(
+ CurDocu().Create_SinceTag() );
+}
+
+void
+Adoc_PE::Hdl_at_HTML( const Tok_at_HTML & )
+{
+ bUsesHtmlInDocuText = true;
+}
+
+void
+Adoc_PE::Hdl_at_NOHTML( const Tok_at_NOHTML & )
+{
+ bUsesHtmlInDocuText = false;
+}
+
+void
+Adoc_PE::Hdl_DocWord( const Tok_DocWord & i_rTok )
+{
+ bool bIsSpecial = false;
+ if ( nCurSpecialMeaningTokens > 0 )
+ {
+ bIsSpecial = CurAtTag().Add_SpecialMeaningToken(
+ i_rTok.Text(),
+ CurAtTag().NrOfSpecialMeaningTokens()
+ - (--nCurSpecialMeaningTokens) );
+ }
+
+ if ( NOT bIsSpecial )
+ {
+ if ( eDocuState == ds_wait_for_short OR eDocuState == ds_1newline_after_short )
+ eDocuState = ds_in_short;
+ if (nLineCountInDocu == 0)
+ nLineCountInDocu = 1;
+
+ uintt nLength = i_rTok.Length();
+ if ( nLength > 2 )
+ {
+ bool bMaybeGlobalLink = strncmp( "::", i_rTok.Text(), 2 ) == 0;
+ bool bMayBeFunction = *(i_rTok.Text() + nLength - 2) == '('
+ AND *(i_rTok.Text() + nLength - 1) == ')';
+ if ( bMaybeGlobalLink OR bMayBeFunction )
+ {
+ CurAtTag().Add_PotentialLink( i_rTok.Text(),
+ bMaybeGlobalLink,
+ bMayBeFunction );
+ return;
+ }
+ }
+
+ CurAtTag().Add_Token( i_rTok.Text() );
+ eCurTagState = ts_std;
+ }
+}
+
+void
+Adoc_PE::Hdl_Whitespace( const Tok_Whitespace & i_rTok )
+{
+ if ( eCurTagState == ts_std )
+ {
+
+ CurAtTag().Add_Whitespace(i_rTok.Size());
+ }
+}
+
+void
+Adoc_PE::Hdl_LineStart( const Tok_LineStart & i_rTok )
+{
+ if ( pCurAtTag == 0 )
+ return;
+
+ if ( nLineCountInDocu == 2 )
+ {
+ nCurSubtractFromLineStart = i_rTok.Size();
+ eCurTagState = ts_std;
+ }
+ else if ( nLineCountInDocu > 2 )
+ {
+ if ( i_rTok.Size() > nCurSubtractFromLineStart )
+ {
+ CurAtTag().Add_Whitespace( i_rTok.Size()
+ - nCurSubtractFromLineStart );
+ }
+ // else do nothing, because there is no whitespace.
+ }
+}
+
+void
+Adoc_PE::Hdl_Eol( const Tok_Eol & )
+{
+ if ( pCurAtTag == 0 )
+ return;
+
+ nLineCountInDocu++;
+
+ if ( nCurSpecialMeaningTokens == 0 )
+ {
+ CurAtTag().Add_Eol();
+
+ switch ( eDocuState )
+ {
+ case ds_wait_for_short: break;
+ case ds_in_short: if ( nLineCountInDocu < 4 )
+ eDocuState = ds_1newline_after_short;
+ else
+ {
+ RenameCurShortTag();
+ eDocuState = ds_in_descr;
+ }
+ break;
+ case ds_1newline_after_short: FinishCurShortTag();
+ eDocuState = ds_in_descr;
+ break;
+ default:
+ ; // Do noting.
+ }
+ }
+ else
+ {
+ nCurSpecialMeaningTokens = 0;
+ }
+
+
+}
+
+void
+Adoc_PE::Hdl_EoDocu( const Tok_EoDocu & )
+{
+ bIsComplete = true;
+}
+
+DYN ary::doc::OldCppDocu *
+Adoc_PE::ReleaseJustParsedDocu()
+{
+ pCurAtTag = 0;
+ nLineCountInDocu = 0;
+ nCurSpecialMeaningTokens = 0;
+ nCurSubtractFromLineStart = 0;
+ eCurTagState = ts_new;
+ eDocuState = ds_wait_for_short;
+ bIsComplete = false;
+ return pCurDocu.Release();
+}
+
+void
+Adoc_PE::InstallAtTag( DYN ary::info::AtTag * let_dpTag,
+ bool i_bImplicit )
+{
+ pCurAtTag = let_dpTag;
+ if ( pCurAtTag != 0 )
+ {
+ nCurSpecialMeaningTokens = pCurAtTag->NrOfSpecialMeaningTokens();
+ pCurAtTag->Set_HtmlUseInDocuText( bUsesHtmlInDocuText );
+ }
+
+ eCurTagState = ts_new;
+ if ( NOT i_bImplicit )
+ eDocuState = ds_std;
+}
+
+ary::doc::OldCppDocu &
+Adoc_PE::CurDocu()
+{
+ if (NOT pCurDocu)
+ pCurDocu = new ary::doc::OldCppDocu;
+ return *pCurDocu;
+}
+
+ary::info::AtTag &
+Adoc_PE::CurAtTag()
+{
+ if (NOT pCurAtTag)
+ {
+ if ( int(eDocuState) < int(ds_in_descr) )
+ {
+ InstallAtTag(
+ CurDocu().Create_StdTag(ary::info::atid_short),
+ true );
+ }
+ else
+ {
+ InstallAtTag(
+ CurDocu().Create_StdTag(ary::info::atid_descr),
+ true );
+ }
+ }
+ return *pCurAtTag;
+}
+
+void
+Adoc_PE::RenameCurShortTag()
+{
+ CurDocu().Replace_AtShort_By_AtDescr();
+}
+
+void
+Adoc_PE::FinishCurShortTag()
+{
+ InstallAtTag(
+ CurDocu().Create_StdTag(ary::info::atid_descr),
+ true );
+}
+
+
+} // namespace adoc
+
+
+
+
+
diff --git a/autodoc/source/parser/adoc/makefile.mk b/autodoc/source/parser/adoc/makefile.mk
new file mode 100644
index 000000000000..48e4084ee401
--- /dev/null
+++ b/autodoc/source/parser/adoc/makefile.mk
@@ -0,0 +1,62 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser_adoc
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/adoc_tok.obj \
+ $(OBJ)$/a_rdocu.obj \
+ $(OBJ)$/cx_a_std.obj \
+ $(OBJ)$/cx_a_sub.obj \
+ $(OBJ)$/docu_pe.obj \
+ $(OBJ)$/prs_adoc.obj \
+ $(OBJ)$/tk_attag.obj \
+ $(OBJ)$/tk_docw.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser/adoc/prs_adoc.cxx b/autodoc/source/parser/adoc/prs_adoc.cxx
new file mode 100644
index 000000000000..81ae380629b8
--- /dev/null
+++ b/autodoc/source/parser/adoc/prs_adoc.cxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/prs_adoc.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <adoc/cx_a_std.hxx>
+
+
+
+namespace adoc
+{
+
+DocuParser_AutodocStyle::DocuParser_AutodocStyle()
+{
+}
+
+DocuParser_AutodocStyle::~DocuParser_AutodocStyle()
+{
+}
+
+DYN autodoc::TkpDocuContext *
+DocuParser_AutodocStyle::Create_DocuContext() const
+{
+ return new Context_AdocStd;
+}
+
+} // namespace adoc
+
+
+
diff --git a/autodoc/source/parser/adoc/tk_attag.cxx b/autodoc/source/parser/adoc/tk_attag.cxx
new file mode 100644
index 000000000000..49f71b82c7c7
--- /dev/null
+++ b/autodoc/source/parser/adoc/tk_attag.cxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/tk_attag.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <adoc/tokintpr.hxx>
+
+
+
+namespace adoc {
+
+#if 0
+#define EV_AtTagId( val, tex ) ENUM_VALUE(E_AtTagId, eATTAGID_##val, val, tex )
+
+EV_AtTagId(atid_ATT, "ATTENTION" );
+EV_AtTagId(atid_author, "Author" );
+EV_AtTagId(atid_change, "Change" );
+EV_AtTagId(atid_collab, "Collaborators" );
+EV_AtTagId(atid_contact, "Contact" );
+EV_AtTagId(atid_copyright, "Copyright (c)" );
+EV_AtTagId(atid_descr, "Description" );
+EV_AtTagId(atid_devstat, "Development State" );
+EV_AtTagId(atid_docdate, "Date of Documentation" );
+EV_AtTagId(atid_derive, "How to Derive from this class" );
+EV_AtTagId(atid_instance, "Instances" );
+EV_AtTagId(atid_life, "Lifecycle" );
+EV_AtTagId(atid_multi, "Multiplicity" );
+EV_AtTagId(atid_onerror, "On Error" );
+EV_AtTagId(atid_persist, "Persistence" );
+EV_AtTagId(atid_postcond, "Postcondition" );
+EV_AtTagId(atid_precond, "Precondition" );
+EV_AtTagId(atid_return, "Return" );
+EV_AtTagId(atid_short, "Summary" );
+EV_AtTagId(atid_since, "Valid Since" );
+EV_AtTagId(atid_todo, "Todo" );
+EV_AtTagId(atid_version, "Version" );
+#endif // 0
+
+void
+Tok_at_std::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_at_std(*this);
+}
+
+const char *
+Tok_at_std::Text() const
+{
+ // KORR_FUTURE
+ return "A Tag";
+
+// return eId.Text();
+}
+
+
+#define DEFINE_TOKEN_CLASS(name, text) \
+void \
+Tok_##name::Trigger( TokenInterpreter & io_rInterpreter ) const \
+{ io_rInterpreter.Hdl_##name(*this); } \
+const char * \
+Tok_##name::Text() const \
+{ return text; }
+
+DEFINE_TOKEN_CLASS(at_base, "Base Classes")
+DEFINE_TOKEN_CLASS(at_exception, "Exceptions")
+DEFINE_TOKEN_CLASS(at_impl, "Implements")
+DEFINE_TOKEN_CLASS(at_key, "Keywords")
+DEFINE_TOKEN_CLASS(at_param, "Parameters")
+DEFINE_TOKEN_CLASS(at_see, "See Also")
+DEFINE_TOKEN_CLASS(at_template, "Template Parameters")
+DEFINE_TOKEN_CLASS(at_interface, "Interface")
+DEFINE_TOKEN_CLASS(at_internal, "[ INTERNAL ]")
+DEFINE_TOKEN_CLASS(at_obsolete, "[ DEPRECATED ]")
+DEFINE_TOKEN_CLASS(at_module, "Module")
+DEFINE_TOKEN_CLASS(at_file, "File")
+DEFINE_TOKEN_CLASS(at_gloss, "Glossary")
+DEFINE_TOKEN_CLASS(at_global, "<global doc text>")
+DEFINE_TOKEN_CLASS(at_include, "<included text>")
+DEFINE_TOKEN_CLASS(at_label, "Label")
+DEFINE_TOKEN_CLASS(at_HTML, "")
+DEFINE_TOKEN_CLASS(at_NOHTML, "")
+DEFINE_TOKEN_CLASS(at_since, "Since");
+
+} // namespace adoc
+
diff --git a/autodoc/source/parser/adoc/tk_docw.cxx b/autodoc/source/parser/adoc/tk_docw.cxx
new file mode 100644
index 000000000000..0b8bc0051edd
--- /dev/null
+++ b/autodoc/source/parser/adoc/tk_docw.cxx
@@ -0,0 +1,128 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <adoc/tk_docw.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <adoc/tokintpr.hxx>
+
+
+
+namespace adoc {
+
+
+ static const char C_sSpace[300] =
+ " "
+ " "
+ " "
+ " "
+ " "
+ " ";
+
+
+//*********************** Tok_DocWord ******************//
+
+void
+Tok_DocWord::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_DocWord(*this);
+}
+
+const char *
+Tok_DocWord::Text() const
+{
+ return sText;
+}
+
+//*********************** Tok_Whitespace ******************//
+
+
+void
+Tok_Whitespace::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_Whitespace(*this);
+}
+
+const char *
+Tok_Whitespace::Text() const
+{
+ return C_sSpace + 299 - nSize;
+}
+
+
+
+//*********************** Tok_LineStart ******************//
+
+
+void
+Tok_LineStart::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_LineStart(*this);
+}
+
+const char *
+Tok_LineStart::Text() const
+{
+ return C_sSpace + 299 - nSize;
+}
+
+
+//*********************** Tok_Eol ******************//
+
+void
+Tok_Eol::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_Eol(*this);
+}
+
+const char *
+Tok_Eol::Text() const
+{
+ return "\n";
+}
+
+
+
+//*********************** Tok_EoDocu ******************//
+
+void
+Tok_EoDocu::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Hdl_EoDocu(*this);
+}
+
+const char *
+Tok_EoDocu::Text() const
+{
+ return "*/";
+}
+
+} // namespace adoc
+
+
diff --git a/autodoc/source/parser/cpp/all_toks.cxx b/autodoc/source/parser/cpp/all_toks.cxx
new file mode 100644
index 000000000000..db2af0ab0ad3
--- /dev/null
+++ b/autodoc/source/parser/cpp/all_toks.cxx
@@ -0,0 +1,151 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <all_toks.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cpp/ctokdeal.hxx>
+#include "c_dealer.hxx"
+#include "tokintpr.hxx"
+
+
+
+namespace cpp {
+
+
+void
+Token::DealOut( ::TokenDealer & o_rDealer )
+{
+ // KORR_FUTURE HACK (casting to derivation cpp::TokenDealer)
+ o_rDealer.AsDistributor()->Deal_CppCode(*this);
+}
+
+
+#define DEF_TOKEN_CLASS(name) \
+void \
+Tok_##name::Trigger( TokenInterpreter & io_rInterpreter ) const \
+{ io_rInterpreter.Hdl_##name(*this); } \
+INT16 \
+Tok_##name::TypeId() const { return Tid_##name; } \
+const char * \
+Tok_##name::Text() const { return #name; }
+
+#define DEF_TOKEN_CLASS_WITHTEXT(name, text ) \
+void \
+Tok_##name::Trigger( TokenInterpreter & io_rInterpreter ) const \
+{ io_rInterpreter.Hdl_##name(*this); } \
+INT16 \
+Tok_##name::TypeId() const { return Tid_##name; } \
+const char * \
+Tok_##name::Text() const { return text; }
+
+
+DEF_TOKEN_CLASS_WITHTEXT(Identifier,sText)
+DEF_TOKEN_CLASS_WITHTEXT(Operator,sText)
+
+DEF_TOKEN_CLASS(operator)
+DEF_TOKEN_CLASS(class)
+DEF_TOKEN_CLASS(struct)
+DEF_TOKEN_CLASS(union)
+DEF_TOKEN_CLASS(enum)
+DEF_TOKEN_CLASS(typedef)
+DEF_TOKEN_CLASS(public)
+DEF_TOKEN_CLASS(protected)
+DEF_TOKEN_CLASS(private)
+DEF_TOKEN_CLASS(template)
+DEF_TOKEN_CLASS(virtual)
+DEF_TOKEN_CLASS(friend)
+DEF_TOKEN_CLASS_WITHTEXT(Tilde,"~")
+DEF_TOKEN_CLASS(const)
+DEF_TOKEN_CLASS(volatile)
+DEF_TOKEN_CLASS(extern)
+DEF_TOKEN_CLASS(static)
+DEF_TOKEN_CLASS(mutable)
+DEF_TOKEN_CLASS(register)
+DEF_TOKEN_CLASS(inline)
+DEF_TOKEN_CLASS(explicit)
+DEF_TOKEN_CLASS(namespace)
+DEF_TOKEN_CLASS(using)
+DEF_TOKEN_CLASS(throw)
+DEF_TOKEN_CLASS_WITHTEXT(SwBracket_Left,"{")
+DEF_TOKEN_CLASS_WITHTEXT(SwBracket_Right,"}")
+DEF_TOKEN_CLASS_WITHTEXT(ArrayBracket_Left,"[")
+DEF_TOKEN_CLASS_WITHTEXT(ArrayBracket_Right,"]")
+DEF_TOKEN_CLASS_WITHTEXT(Bracket_Left,"(")
+DEF_TOKEN_CLASS_WITHTEXT(Bracket_Right,")")
+DEF_TOKEN_CLASS_WITHTEXT(DoubleColon,"::")
+DEF_TOKEN_CLASS_WITHTEXT(Semicolon,";")
+DEF_TOKEN_CLASS_WITHTEXT(Comma,",")
+DEF_TOKEN_CLASS_WITHTEXT(Colon,":")
+DEF_TOKEN_CLASS_WITHTEXT(Assign,"=")
+DEF_TOKEN_CLASS_WITHTEXT(Less,"<")
+DEF_TOKEN_CLASS_WITHTEXT(Greater,">")
+DEF_TOKEN_CLASS_WITHTEXT(Asterix,"*")
+DEF_TOKEN_CLASS_WITHTEXT(AmpersAnd,"&")
+DEF_TOKEN_CLASS_WITHTEXT(Ellipse,"...")
+DEF_TOKEN_CLASS(typename)
+
+DEF_TOKEN_CLASS_WITHTEXT(DefineName,sText)
+DEF_TOKEN_CLASS_WITHTEXT(MacroName,sText)
+DEF_TOKEN_CLASS_WITHTEXT(MacroParameter,sText)
+// DEF_TOKEN_CLASS_WITHTEXT(PreProDefinition,sText)
+
+void
+Tok_PreProDefinition::Trigger( TokenInterpreter & io_rInterpreter ) const
+{ io_rInterpreter.Hdl_PreProDefinition(*this); }
+
+INT16
+Tok_PreProDefinition::TypeId() const { return Tid_PreProDefinition; }
+
+const char *
+Tok_PreProDefinition::Text() const
+{
+ return sText;
+}
+
+
+
+DEF_TOKEN_CLASS_WITHTEXT(BuiltInType,sText)
+DEF_TOKEN_CLASS_WITHTEXT(TypeSpecializer,sText)
+DEF_TOKEN_CLASS_WITHTEXT(Constant,sText)
+
+const char *
+Tok_UnblockMacro::Text() const
+{
+ return sMacroName;
+}
+
+void
+Tok_UnblockMacro::DealOut( ::TokenDealer & o_rDealer )
+{
+ // KORR_FUTURE HACK (casting to derivation cpp::TokenDealer)
+ o_rDealer.AsDistributor()->Deal_Cpp_UnblockMacro(*this);
+}
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/all_toks.hxx b/autodoc/source/parser/cpp/all_toks.hxx
new file mode 100644
index 000000000000..485588d5fbc1
--- /dev/null
+++ b/autodoc/source/parser/cpp/all_toks.hxx
@@ -0,0 +1,219 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_ALL_TOKS_HXX
+#define ADC_CPP_ALL_TOKS_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_tok.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp {
+
+class Tok_Identifier : public cpp::Token
+{
+ public:
+ Tok_Identifier(
+ const char * i_sText ) : sText(i_sText) {}
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual INT16 TypeId() const;
+ virtual const char *
+ Text() const;
+ private:
+ String sText;
+};
+const INT16 Tid_Identifier = 1;
+
+/** == != <= >= && || !
+
+ new delete sizeof typeid
+ + - / % ^ | << >>
+ . -> ?
+ += -= *= /= %= &= |= ^= <<= >>=
+*/
+class Tok_Operator : public cpp::Token
+{
+ public:
+ Tok_Operator(
+ const char * i_sText ) : sText(i_sText) {}
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual INT16 TypeId() const;
+ virtual const char *
+ Text() const;
+ private:
+ String sText;
+};
+const INT16 Tid_Operator = 2;
+
+
+
+#define DECL_TOKEN_CLASS(name,tid) \
+class Tok_##name : public cpp::Token \
+{ public: \
+ virtual void Trigger( \
+ TokenInterpreter & io_rInterpreter ) const; \
+ virtual INT16 TypeId() const; \
+ virtual const char * \
+ Text() const; \
+}; \
+const INT16 Tid_##name = tid
+
+DECL_TOKEN_CLASS(operator,3);
+DECL_TOKEN_CLASS(class,4);
+DECL_TOKEN_CLASS(struct,5);
+DECL_TOKEN_CLASS(union,6);
+DECL_TOKEN_CLASS(enum,7);
+DECL_TOKEN_CLASS(typedef,8);
+DECL_TOKEN_CLASS(public,9);
+DECL_TOKEN_CLASS(protected,10);
+DECL_TOKEN_CLASS(private,11);
+DECL_TOKEN_CLASS(template,12);
+DECL_TOKEN_CLASS(virtual,13);
+DECL_TOKEN_CLASS(friend,14);
+DECL_TOKEN_CLASS(Tilde,15);
+DECL_TOKEN_CLASS(const,16);
+DECL_TOKEN_CLASS(volatile,17);
+DECL_TOKEN_CLASS(extern,18);
+DECL_TOKEN_CLASS(static,19);
+DECL_TOKEN_CLASS(mutable,20);
+DECL_TOKEN_CLASS(register,21);
+DECL_TOKEN_CLASS(inline,22);
+DECL_TOKEN_CLASS(explicit,23);
+DECL_TOKEN_CLASS(namespace,24);
+DECL_TOKEN_CLASS(using,25);
+DECL_TOKEN_CLASS(throw,26);
+DECL_TOKEN_CLASS(SwBracket_Left,27);
+DECL_TOKEN_CLASS(SwBracket_Right,28);
+DECL_TOKEN_CLASS(ArrayBracket_Left,29);
+DECL_TOKEN_CLASS(ArrayBracket_Right,30);
+DECL_TOKEN_CLASS(Bracket_Left,31);
+DECL_TOKEN_CLASS(Bracket_Right,32);
+DECL_TOKEN_CLASS(DoubleColon,33);
+DECL_TOKEN_CLASS(Semicolon,34);
+DECL_TOKEN_CLASS(Comma,35);
+DECL_TOKEN_CLASS(Colon,36);
+DECL_TOKEN_CLASS(Assign,37);
+DECL_TOKEN_CLASS(Less,38);
+DECL_TOKEN_CLASS(Greater,39);
+DECL_TOKEN_CLASS(Asterix,40);
+DECL_TOKEN_CLASS(AmpersAnd,41);
+DECL_TOKEN_CLASS(Ellipse,42);
+DECL_TOKEN_CLASS(typename,43);
+
+#undef DECL_TOKEN_CLASS
+
+#define DECL_TOKEN_CLASS_WITHTEXT(name,tid) \
+class Tok_##name : public cpp::Token \
+{ public: \
+ Tok_##name( \
+ const char * i_sText ) : sText(i_sText) {} \
+ virtual void Trigger( \
+ TokenInterpreter & io_rInterpreter ) const; \
+ virtual INT16 TypeId() const; \
+ virtual const char * \
+ Text() const; \
+ private: \
+ String sText; \
+}; \
+const INT16 Tid_##name = tid
+
+
+
+DECL_TOKEN_CLASS_WITHTEXT(DefineName,44);
+DECL_TOKEN_CLASS_WITHTEXT(MacroName,45);
+DECL_TOKEN_CLASS_WITHTEXT(MacroParameter,46);
+DECL_TOKEN_CLASS_WITHTEXT(PreProDefinition,47);
+
+/** char short int long float double wchar_t size_t
+*/
+DECL_TOKEN_CLASS_WITHTEXT(BuiltInType, 48);
+
+/** signed unsigned
+*/
+DECL_TOKEN_CLASS_WITHTEXT(TypeSpecializer, 49);
+DECL_TOKEN_CLASS_WITHTEXT(Constant, 50);
+
+
+
+/** This token does nothing in C++ code. It is added by the
+ internal macro-replacer to mark the position, where a
+ define or macro becomes valid again, which was until then
+ invalid, because the text was a replacement of this macro.
+ ( Avoiding endless recursive macro replacement. )
+*/
+class Tok_UnblockMacro : public ::TextToken
+{
+ public:
+ Tok_UnblockMacro(
+ const char * i_sMacroName ) : sMacroName(i_sMacroName) {}
+ virtual const char* Text() const;
+
+ virtual void DealOut(
+ ::TokenDealer & o_rDealer );
+ private:
+ String sMacroName;
+};
+
+
+
+#if 0 // just for viewing:
+class Tok_TypeKey : public cpp::Token // file-><type-PE>
+class Tok_Template : public cpp::Token // file
+class Tok_Namespace : public cpp::Token // file
+class Tok_Bracket : public cpp::Token // ueberall
+class Tok_Separator : public cpp::Token // ueberall
+
+class Tok_Identifier : public cpp::Token // ueberall
+class Tok_NameSeparator : public cpp::Token // Type, Name
+class Tok_BuiltInType : public cpp::Token // ueberall
+class Tok_ConVol : public cpp::Token // class-><FuVa>
+class Tok_StorageClass : public cpp::Token // file-><type>,<FuVa>
+class Tok_OperatorFunctionName : public cpp::Token // class
+
+class Tok_Protection : public cpp::Token // class
+class Tok_Virtual : public cpp::Token // class
+class Tok_Friend : public cpp::Token // class
+class Tok_Tilde : public cpp::Token // class, expression
+
+class Tok_Ellipse : public cpp::Token // function-ParaList
+class Tok_Assignment : public cpp::Token // VariableDeclaraton, Function, Parameter
+class Tok_Throw : public cpp::Token // function
+class Tok_LessMore : public cpp::Token
+class Tok_Operator : public cpp::Token // expression
+
+class Tok_Ignore : public cpp::Token
+class Tok_ContextChanger : public cpp::Token
+#endif // 0
+
+
+} // namespace cpp
+
+#endif
diff --git a/autodoc/source/parser/cpp/c_dealer.cxx b/autodoc/source/parser/cpp/c_dealer.cxx
new file mode 100644
index 000000000000..2917aab1bb6c
--- /dev/null
+++ b/autodoc/source/parser/cpp/c_dealer.cxx
@@ -0,0 +1,149 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "c_dealer.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/loc/locp_le.hxx>
+#include <ary/loc/loc_root.hxx>
+#include <ary/loc/loc_file.hxx>
+//#include <ary/docu.hxx>
+#include <adoc/a_rdocu.hxx>
+#include "all_toks.hxx"
+#include "c_rcode.hxx"
+
+
+namespace ary
+{
+namespace loc
+{
+ class Root;
+}
+}
+
+
+
+
+namespace cpp
+{
+
+Distributor::Distributor( ary::cpp::Gate & io_rAryGate )
+ : aCppPreProcessor(),
+ aCodeExplorer(io_rAryGate),
+ aDocuExplorer(),
+ pGate(&io_rAryGate),
+ pFileEventHandler(0),
+ pDocuDistributor(0)
+{
+ pFileEventHandler = & aCodeExplorer.FileEventHandler();
+ pDocuDistributor = & aCodeExplorer.DocuDistributor();
+}
+
+void
+Distributor::AssignPartners( CharacterSource & io_rSourceText,
+ const MacroMap & i_rValidMacros )
+{
+ aCppPreProcessor.AssignPartners(aCodeExplorer, io_rSourceText, i_rValidMacros);
+}
+
+Distributor::~Distributor()
+{
+}
+
+void
+Distributor::StartNewFile( const csv::ploc::Path & i_file )
+{
+ const csv::ploc::Root &
+ root_dir = i_file.RootDir();
+ StreamLock
+ sl(700);
+ root_dir.Get(sl());
+ csv::ploc::Path
+ root_path( sl().c_str(), true );
+ ary::loc::Le_id
+ root_id = pGate->Locations().CheckIn_Root(root_path).LeId();
+ ary::loc::File &
+ rFile = pGate->Locations().CheckIn_File(
+ i_file.File(),
+ i_file.DirChain(),
+ root_id );
+ pFileEventHandler->SetCurFile(rFile);
+
+ aCodeExplorer.StartNewFile();
+
+ csv_assert( pDocuDistributor != 0 );
+ aDocuExplorer.StartNewFile(*pDocuDistributor);
+}
+
+
+void
+Distributor::Deal_Eol()
+{
+ pFileEventHandler->Event_IncrLineCount();
+}
+
+void
+Distributor::Deal_Eof()
+{
+ // Do nothing yet.
+}
+
+void
+Distributor::Deal_Cpp_UnblockMacro( Tok_UnblockMacro & let_drToken )
+{
+ aCppPreProcessor.UnblockMacro(let_drToken.Text());
+ delete &let_drToken;
+}
+
+void
+Distributor::Deal_CppCode( cpp::Token & let_drToken )
+{
+ aCppPreProcessor.Process_Token(let_drToken);
+}
+
+void
+Distributor::Deal_AdcDocu( adoc::Token & let_drToken )
+{
+ aDocuExplorer.Process_Token(let_drToken);
+}
+
+Distributor *
+Distributor::AsDistributor()
+{
+ return this;
+}
+
+
+
+
+
+} // namespace cpp
+
+
diff --git a/autodoc/source/parser/cpp/c_dealer.hxx b/autodoc/source/parser/cpp/c_dealer.hxx
new file mode 100644
index 000000000000..a48c3281574d
--- /dev/null
+++ b/autodoc/source/parser/cpp/c_dealer.hxx
@@ -0,0 +1,108 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_C_DEALER_HXX
+#define ADC_CPP_C_DEALER_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cpp/ctokdeal.hxx>
+#include <adoc/atokdeal.hxx>
+#include <ary/info/docstore.hxx>
+ // COMPONENTS
+#include "preproc.hxx"
+#include "c_rcode.hxx"
+#include <adoc/a_rdocu.hxx>
+ // PARAMETERS
+
+namespace csv
+{
+ namespace ploc
+ {
+ class Path;
+ class DirectoryChain;
+ }
+}
+
+
+class TokenParser;
+
+
+namespace cpp
+{
+
+class PE_File;
+class DefineDescription;
+
+
+class Distributor : public cpp::TokenDealer, /// Handle C++ code tokens.
+ public adoc::TokenDealer /// Handle Autodoc documentation tokens.
+{
+ public:
+ typedef std::map< String, DefineDescription* > MacroMap;
+
+ // LIFECYCLE
+ Distributor(
+ ary::cpp::Gate & io_rGate );
+ ~Distributor();
+ // OPERATIONS
+ void AssignPartners(
+ CharacterSource & io_rSourceText,
+ const MacroMap & i_rValidMacros );
+ void StartNewFile(
+ const csv::ploc::Path &
+ i_file );
+ virtual void Deal_Eol();
+ virtual void Deal_Eof();
+
+ virtual void Deal_CppCode(
+ cpp::Token & let_drToken );
+ virtual void Deal_Cpp_UnblockMacro(
+ Tok_UnblockMacro & let_drToken );
+
+ virtual void Deal_AdcDocu(
+ adoc::Token & let_drToken );
+ virtual Distributor *
+ AsDistributor();
+ private:
+ // DATA
+ PreProcessor aCppPreProcessor;
+ CodeExplorer aCodeExplorer;
+ adoc::DocuExplorer aDocuExplorer;
+ ary::cpp::Gate * pGate;
+ FileScope_EventHandler *
+ pFileEventHandler;
+ DocuDealer * pDocuDistributor;
+};
+
+
+
+} // namespace cpp
+#endif
+
diff --git a/autodoc/source/parser/cpp/c_rcode.cxx b/autodoc/source/parser/cpp/c_rcode.cxx
new file mode 100644
index 000000000000..ceac10902070
--- /dev/null
+++ b/autodoc/source/parser/cpp/c_rcode.cxx
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "c_rcode.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_namesp.hxx>
+// #include <ary/cpp/c_groups.hxx>
+#include <ary/loc/locp_le.hxx>
+#include "cpp_pe.hxx"
+#include <adc_cl.hxx>
+#include <x_parse.hxx>
+#include "pe_file.hxx"
+
+const uintt C_nNO_TRY = uintt(-1);
+
+
+namespace cpp {
+
+
+CodeExplorer::CodeExplorer( ary::cpp::Gate & io_rAryGate )
+ : aGlobalParseContext(io_rAryGate),
+ // aEnvironments,
+ pPE_File(0),
+ pGate(&io_rAryGate),
+ dpCurToken(0)
+{
+ pPE_File = new PE_File( aGlobalParseContext );
+}
+
+CodeExplorer::~CodeExplorer()
+{
+}
+
+void
+CodeExplorer::StartNewFile()
+{
+ csv::erase_container(aEnvironments);
+
+ aEnvironments.push_back( pPE_File.MutablePtr() );
+ pPE_File->Enter(push);
+}
+
+void
+CodeExplorer::Process_Token( DYN cpp::Token & let_drToken )
+{
+if (DEBUG_ShowTokens())
+{
+ Cout() << let_drToken.Text() << Endl();
+}
+ dpCurToken = &let_drToken;
+ aGlobalParseContext.ResetResult();
+
+ do {
+ CurToken().Trigger( CurEnv() );
+ AcknowledgeResult();
+ } while ( dpCurToken );
+}
+
+void
+CodeExplorer::AcknowledgeResult()
+{
+ if (CurResult().eDone == done)
+ dpCurToken = 0;
+
+ switch ( CurResult().eStackAction )
+ {
+ case stay:
+ break;
+ case push:
+ CurEnv().Leave(push);
+ aEnvironments.push_back( &PushEnv() );
+ PushEnv().Enter(push);
+ break;
+ case pop_success:
+ CurEnv().Leave(pop_success);
+ aEnvironments.pop_back();
+ CurEnv().Enter(pop_success);
+ break;
+ case pop_failure:
+ {
+ Cpp_PE * pRecover = 0;
+ do {
+ CurEnv().Leave(pop_failure);
+ aEnvironments.pop_back();
+ if ( aEnvironments.empty() )
+ break;
+ pRecover = CurEnv().Handle_ChildFailure();
+ } while ( pRecover == 0 );
+ if ( pRecover != 0 )
+ {
+ aEnvironments.push_back(pRecover);
+ pRecover->Enter(push);
+ }
+ else
+ {
+ throw X_Parser( X_Parser::x_UnexpectedToken, CurToken().Text(), aGlobalParseContext.CurFileName(), aGlobalParseContext.LineCount() );
+ }
+ } break;
+ default:
+ csv_assert(false);
+ } // end switch(CurResult().eStackAction)
+}
+
+const Token &
+CodeExplorer::CurToken() const
+{
+ csv_assert(dpCurToken);
+
+ return *dpCurToken;
+}
+
+Cpp_PE &
+CodeExplorer::CurEnv() const
+{
+ csv_assert(aEnvironments.size() > 0);
+ csv_assert(aEnvironments.back() != 0);
+
+ return *aEnvironments.back();
+}
+
+Cpp_PE &
+CodeExplorer::PushEnv() const
+{
+ TokenProcessing_Result & rCurResult = const_cast< TokenProcessing_Result& >(aGlobalParseContext.CurResult());
+ Cpp_PE * ret = dynamic_cast< Cpp_PE* >(rCurResult.pEnv2Push);
+ csv_assert( ret != 0 );
+ return *ret;
+}
+
+
+
+} // namespace cpp
+
diff --git a/autodoc/source/parser/cpp/c_rcode.hxx b/autodoc/source/parser/cpp/c_rcode.hxx
new file mode 100644
index 000000000000..64d8b3137344
--- /dev/null
+++ b/autodoc/source/parser/cpp/c_rcode.hxx
@@ -0,0 +1,104 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_C_RCODE_HXX
+#define ADC_CPP_C_RCODE_HXX
+
+// BASE CLASSES
+#include <tokens/tokproct.hxx>
+// USED SERVICES
+#include <cosv/ploc.hxx>
+#include "cxt2ary.hxx"
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/loc/loc_types4loc.hxx>
+
+
+
+namespace ary
+{
+namespace cpp
+{
+ class Gate;
+}
+namespace doc
+{
+ class OldCppDocu;
+}
+}
+
+namespace cpp
+{
+ class PE_File;
+ class Token;
+ class Cpp_PE;
+
+
+
+
+class CodeExplorer : private TokenProcessing_Types
+
+{
+ public:
+ CodeExplorer(
+ ary::cpp::Gate & io_rAryGate );
+ ~CodeExplorer();
+
+ void StartNewFile();
+ void Process_Token(
+ DYN cpp::Token & let_drToken );
+ // ACCESS
+ FileScope_EventHandler &
+ FileEventHandler() { return aGlobalParseContext; }
+ DocuDealer & DocuDistributor() { return aGlobalParseContext; }
+
+ private:
+ typedef std::vector< cpp::Cpp_PE* > EnvironmentStack;
+
+ void AcknowledgeResult();
+ const Token & CurToken() const;
+ Cpp_PE & CurEnv() const;
+ Cpp_PE & PushEnv() const;
+ TokenProcessing_Result &
+ CurResult() { return aGlobalParseContext.CurResult(); }
+
+ // DATA
+ ContextForAry aGlobalParseContext;
+
+ EnvironmentStack aEnvironments;
+ Dyn<PE_File> pPE_File;
+
+ ary::cpp::Gate * pGate;
+ cpp::Token * dpCurToken;
+};
+
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cpp_pe.cxx b/autodoc/source/parser/cpp/cpp_pe.cxx
new file mode 100644
index 000000000000..05758989cbb3
--- /dev/null
+++ b/autodoc/source/parser/cpp/cpp_pe.cxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cpp_pe.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_oldcppdocu.hxx>
+#include "cpp_tok.hxx"
+
+
+
+
+namespace cpp {
+
+void
+Cpp_PE::SetTokenResult( E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push )
+{
+ rMyEnv.SetTokenResult( i_eDone,
+ i_eWhat2DoWithEnvStack,
+ i_pParseEnv2Push );
+}
+
+Cpp_PE::Cpp_PE( Cpp_PE * io_pParent )
+ : ParseEnvironment( io_pParent ),
+ rMyEnv( io_pParent->Env() )
+{
+ csv_assert(io_pParent != 0);
+}
+
+Cpp_PE::Cpp_PE( EnvData & i_rEnv )
+ : ParseEnvironment(0),
+ rMyEnv(i_rEnv)
+{
+}
+
+void
+Cpp_PE::StdHandlingOfSyntaxError( const char * )
+{
+ SetTokenResult(not_done, pop_failure);
+}
+
+
+Cpp_PE *
+Cpp_PE::Handle_ChildFailure()
+{
+ return 0;
+}
+
+} // namespace cpp
+
diff --git a/autodoc/source/parser/cpp/cpp_pe.hxx b/autodoc/source/parser/cpp/cpp_pe.hxx
new file mode 100644
index 000000000000..fb67cdd34616
--- /dev/null
+++ b/autodoc/source/parser/cpp/cpp_pe.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CPP_PE_HXX
+#define ADC_CPP_CPP_PE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <semantic/parseenv.hxx>
+#include "tokintpr.hxx"
+ // COMPONENTS
+#include "pev.hxx"
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+namespace cpp {
+
+class Cpp_PE : public ::ParseEnvironment,
+ public TokenInterpreter
+{
+ public:
+ typedef cpp::PeEnvironment EnvData;
+
+ void SetTokenResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push = 0 );
+
+ virtual Cpp_PE * Handle_ChildFailure(); // Defaulted to 0.
+
+ protected:
+ Cpp_PE(
+ Cpp_PE * io_pParent );
+ Cpp_PE(
+ EnvData & i_rEnv );
+
+ EnvData & Env() const;
+
+ void StdHandlingOfSyntaxError(
+ const char * i_sText );
+
+ private:
+ // DATA
+ EnvData & rMyEnv;
+};
+
+inline Cpp_PE::EnvData &
+Cpp_PE::Env() const
+ { return rMyEnv; }
+
+} // namespace cpp
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cpp_tok.hxx b/autodoc/source/parser/cpp/cpp_tok.hxx
new file mode 100644
index 000000000000..7dc5da1f15f5
--- /dev/null
+++ b/autodoc/source/parser/cpp/cpp_tok.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_TOK_HXX
+#define ADC_CPP_TOK_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/token.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace cpp {
+
+
+class TokenInterpreter;
+
+
+class Token : public TextToken
+{
+ public:
+ // LIFECYCLE
+ virtual ~Token() {}
+
+ // OPERATIONS
+ virtual INT16 TypeId() const = 0;
+ virtual void DealOut(
+ ::TokenDealer & o_rDealer );
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const = 0;
+};
+
+
+} // namespace cpp
+
+#endif
+
+
diff --git a/autodoc/source/parser/cpp/cx_base.cxx b/autodoc/source/parser/cpp/cx_base.cxx
new file mode 100644
index 000000000000..0b7f751b3bcc
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_base.cxx
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cx_base.hxx"
+
+// NOT FULLY DECLARED SERVICES
+#include <tokens/token.hxx>
+#include "c_dealer.hxx"
+
+
+
+namespace cpp {
+
+
+
+Cx_Base::Cx_Base( TkpContext * io_pFollowUpContext )
+ : pDealer(0),
+ pFollowUpContext(io_pFollowUpContext)
+ // pNewToken
+{
+}
+
+bool
+Cx_Base::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pNewToken.Release()->DealOut(Dealer());
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_Base::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Cx_Base::AssignDealer( Distributor & o_rDealer )
+{
+ pDealer = &o_rDealer;
+}
+
+
+} // namespace cpp
+
+
+
+
diff --git a/autodoc/source/parser/cpp/cx_base.hxx b/autodoc/source/parser/cpp/cx_base.hxx
new file mode 100644
index 000000000000..c6485ab4e5c1
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_base.hxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CX_BASE_HXX
+#define ADC_CPP_CX_BASE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class TextToken;
+
+
+namespace cpp
+{
+
+class Distributor;
+
+
+class Cx_Base : public ::TkpContext
+{
+ public:
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+
+ virtual void AssignDealer(
+ Distributor & o_rDealer );
+ protected:
+ // LIFECYCLE
+ Cx_Base(
+ TkpContext * io_pFollowUpContext );
+
+ void SetNewToken(
+ DYN ::TextToken * let_dpToken );
+ void SetFollowUpContext(
+ TkpContext * io_pContext );
+
+ Distributor & Dealer() const;
+
+ private:
+ // DATA
+ Distributor * pDealer;
+ TkpContext * pFollowUpContext;
+ Dyn< ::TextToken > pNewToken;
+};
+
+
+
+
+inline void
+Cx_Base::SetNewToken( DYN ::TextToken * let_dpToken )
+ { pNewToken = let_dpToken; }
+inline void
+Cx_Base::SetFollowUpContext( TkpContext * io_pContext )
+ { pFollowUpContext = io_pContext; }
+inline Distributor &
+Cx_Base::Dealer() const
+ { csv_assert(pDealer != 0);
+ return *pDealer; }
+
+
+
+
+
+} // namespace cpp
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cx_c_pp.cxx b/autodoc/source/parser/cpp/cx_c_pp.cxx
new file mode 100644
index 000000000000..0b69979a13f8
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_pp.cxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cx_c_pp.hxx"
+
+
+
+// NOT FULLY DECLARED SERVICES
+#include "c_dealer.hxx"
+#include <tokens/parseinc.hxx>
+#include <x_parse.hxx>
+#include "all_toks.hxx"
+
+
+namespace cpp
+{
+
+Context_Preprocessor::Context_Preprocessor( TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext),
+ pContext_Parent(&i_rFollowUpContext),
+ pContext_PP_MacroParams( 0 ),
+ pContext_PP_Definition( new Context_PP_Definition(i_rFollowUpContext) )
+{
+ pContext_PP_MacroParams = new Context_PP_MacroParams(*pContext_PP_Definition);
+}
+
+void
+Context_Preprocessor::ReadCharChain( CharacterSource & io_rText )
+{
+ jumpOverWhite( io_rText );
+ jumpToWhite( io_rText );
+ const char * sPP_Keyword = io_rText.CutToken();
+ if ( strcmp(sPP_Keyword, "define") == 0 )
+ ReadDefine(io_rText);
+ else
+ ReadDefault(io_rText);
+}
+
+void
+Context_Preprocessor::AssignDealer( Distributor & o_rDealer )
+{
+ Cx_Base::AssignDealer(o_rDealer);
+ pContext_PP_MacroParams->AssignDealer(o_rDealer);
+ pContext_PP_Definition->AssignDealer(o_rDealer);
+}
+
+void
+Context_Preprocessor::ReadDefault( CharacterSource & io_rText )
+{
+ int o_rCount_BackslashedLineBreaks = 0;
+ jumpToEol(io_rText,o_rCount_BackslashedLineBreaks);
+ for ( ; o_rCount_BackslashedLineBreaks > 0; --o_rCount_BackslashedLineBreaks )
+ Dealer().Deal_Eol();
+
+ if (io_rText.CurChar() != NULCH)
+ jumpOverEol(io_rText);
+ io_rText.CutToken();
+ Dealer().Deal_Eol();
+ SetNewToken(0);
+ SetFollowUpContext( pContext_Parent );
+}
+
+void
+Context_Preprocessor::ReadDefine( CharacterSource & io_rText )
+{
+ jumpOverWhite( io_rText );
+ io_rText.CutToken();
+
+ char cNext = '\0';
+ for ( cNext = io_rText.CurChar();
+ static_cast<UINT8>(cNext) > 32 AND cNext != '(';
+ cNext = io_rText.MoveOn() )
+ { }
+
+ bool bMacro = cNext == '(';
+
+ if ( NOT bMacro )
+ {
+ SetNewToken( new Tok_DefineName(io_rText.CutToken()) );
+ SetFollowUpContext( pContext_PP_Definition.Ptr() );
+ }
+ else
+ {
+ SetNewToken( new Tok_MacroName(io_rText.CutToken()) );
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetFollowUpContext( pContext_PP_MacroParams.Ptr() );
+ }
+}
+
+
+Context_PP_MacroParams::Context_PP_MacroParams( Cx_Base & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext),
+ pContext_PP_Definition(&i_rFollowUpContext)
+{
+}
+
+void
+Context_PP_MacroParams::ReadCharChain( CharacterSource & io_rText )
+{
+ uintt nLen;
+
+ jumpOverWhite( io_rText );
+ // KORR_FUTURE Handling line breaks within macro parameters:
+ char cSeparator = jumpTo( io_rText, ',', ')' );
+ csv_assert( cSeparator != 0 );
+
+ static char cBuf[500];
+ // KORR_FUTURE, make it still safer, here:
+ strcpy( cBuf, io_rText.CutToken() ); // SAFE STRCPY (#100211# - checked)
+ for ( nLen = strlen(cBuf);
+ nLen > 0 AND cBuf[nLen-1] < 33;
+ --nLen )
+ { }
+ cBuf[nLen] = '\0';
+ SetNewToken( new Tok_MacroParameter(cBuf) );
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ if ( cSeparator == ',')
+ SetFollowUpContext( this );
+ else // Must be ')'
+ SetFollowUpContext( pContext_PP_Definition );
+}
+
+Context_PP_Definition::Context_PP_Definition( TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext),
+ pContext_Parent(&i_rFollowUpContext)
+{
+}
+
+void
+Context_PP_Definition::ReadCharChain( CharacterSource & io_rText )
+{
+ int o_rCount_BackslashedLineBreaks = 0;
+ jumpToEol(io_rText,o_rCount_BackslashedLineBreaks);
+ for ( ; o_rCount_BackslashedLineBreaks > 0; --o_rCount_BackslashedLineBreaks )
+ Dealer().Deal_Eol();
+ SetNewToken( new Tok_PreProDefinition(io_rText.CutToken()) );
+ if (io_rText.CurChar() != NULCH)
+ jumpOverEol(io_rText);
+ Dealer().Deal_Eol();
+}
+
+
+} // namespace cpp
+
+
+
+
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/cx_c_pp.hxx b/autodoc/source/parser/cpp/cx_c_pp.hxx
new file mode 100644
index 000000000000..726a5e6de05d
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_pp.hxx
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CX_C_PP_HXX
+#define ADC_CPP_CX_C_PP_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+#include "cx_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace cpp
+{
+
+class Context_Preprocessor : public Cx_Base
+{
+ public:
+ Context_Preprocessor(
+ TkpContext & i_rFollowUpContext );
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual void AssignDealer(
+ Distributor & o_rDealer );
+ private:
+ // Locals
+ void ReadDefault(
+ CharacterSource & io_rText );
+ void ReadDefine(
+ CharacterSource & io_rText );
+
+ // DATA
+ TkpContext * pContext_Parent;
+ Dyn<Cx_Base> pContext_PP_MacroParams;
+ Dyn<Cx_Base> pContext_PP_Definition;
+};
+
+class Context_PP_MacroParams : public Cx_Base
+{
+ public:
+ Context_PP_MacroParams(
+ Cx_Base & i_rFollowUpContext );
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ private:
+ // DATA
+ Cx_Base * pContext_PP_Definition;
+};
+
+class Context_PP_Definition : public Cx_Base
+{
+ public:
+ Context_PP_Definition(
+ TkpContext & i_rFollowUpContext );
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+
+ private:
+ // DATA
+ TkpContext * pContext_Parent;
+};
+
+
+} // namespace cpp
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cx_c_std.cxx b/autodoc/source/parser/cpp/cx_c_std.cxx
new file mode 100644
index 000000000000..133cb393785c
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_std.cxx
@@ -0,0 +1,529 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cx_c_std.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include "all_toks.hxx"
+#include "cx_c_pp.hxx"
+#include "cx_c_sub.hxx"
+#include <tools/tkpchars.hxx>
+#include <tokens/tkpstama.hxx>
+#include <x_parse.hxx>
+#include "c_dealer.hxx"
+
+
+namespace cpp {
+
+
+const intt C_nCppInitialNrOfStati = 600;
+const intt C_nStatusSize = 128;
+
+
+
+const uintt nF_fin_Error = 1;
+const uintt nF_fin_CreateWithoutText = 2;
+const uintt nF_fin_CreateWithText = 3;
+const uintt nF_fin_Ignore = 4;
+const uintt nF_fin_EOL = 5;
+const uintt nF_fin_EOF = 6;
+const uintt nF_fin_Bezeichner = 7;
+
+const uintt nF_goto_Preprocessor = 10;
+const uintt nF_goto_Comment = 11;
+const uintt nF_goto_Docu = 12;
+const uintt nF_goto_Const = 13;
+const uintt nF_goto_UnblockMacro = 14;
+
+// Token create functions for the state machine:
+DYN TextToken * TCF_Identifier(const char * text) { return new Tok_Identifier(text); }
+
+DYN TextToken * TCF_operator(const char *) { return new Tok_operator; }
+DYN TextToken * TCF_class(const char *) { return new Tok_class; }
+DYN TextToken * TCF_struct(const char *) { return new Tok_struct; }
+DYN TextToken * TCF_union(const char *) { return new Tok_union; }
+DYN TextToken * TCF_enum(const char *) { return new Tok_enum; }
+DYN TextToken * TCF_typedef(const char *) { return new Tok_typedef; }
+DYN TextToken * TCF_public(const char *) { return new Tok_public; }
+DYN TextToken * TCF_protected(const char *) { return new Tok_protected; }
+DYN TextToken * TCF_private(const char *) { return new Tok_private; }
+DYN TextToken * TCF_template(const char *) { return new Tok_template; }
+DYN TextToken * TCF_virtual(const char *) { return new Tok_virtual; }
+DYN TextToken * TCF_friend(const char *) { return new Tok_friend; }
+DYN TextToken * TCF_Tilde(const char *) { return new Tok_Tilde; }
+DYN TextToken * TCF_const(const char *) { return new Tok_const; }
+DYN TextToken * TCF_volatile(const char *) { return new Tok_volatile; }
+DYN TextToken * TCF_extern(const char *) { return new Tok_extern; }
+DYN TextToken * TCF_static(const char *) { return new Tok_static; }
+DYN TextToken * TCF_mutable(const char *) { return new Tok_mutable; }
+DYN TextToken * TCF_register(const char *) { return new Tok_register; }
+DYN TextToken * TCF_inline(const char *) { return new Tok_inline; }
+DYN TextToken * TCF_explicit(const char *) { return new Tok_explicit; }
+DYN TextToken * TCF_namespace(const char *) { return new Tok_namespace; }
+DYN TextToken * TCF_using(const char *) { return new Tok_using; }
+DYN TextToken * TCF_throw(const char *) { return new Tok_throw; }
+DYN TextToken * TCF_SwBracketOpen(const char *) { return new Tok_SwBracket_Left; }
+DYN TextToken * TCF_SwBracketClose(const char *) { return new Tok_SwBracket_Right; }
+DYN TextToken * TCF_ArBracketOpen(const char *) { return new Tok_ArrayBracket_Left; }
+DYN TextToken * TCF_ArBracketClose(const char *) { return new Tok_ArrayBracket_Right; }
+DYN TextToken * TCF_BracketOpen(const char *) { return new Tok_Bracket_Left; }
+DYN TextToken * TCF_BracketClose(const char *) { return new Tok_Bracket_Right; }
+DYN TextToken * TCF_DblColon(const char *) { return new Tok_DoubleColon; }
+DYN TextToken * TCF_Semikolon(const char *) { return new Tok_Semicolon; }
+DYN TextToken * TCF_Komma(const char *) { return new Tok_Comma; }
+DYN TextToken * TCF_Colon(const char *) { return new Tok_Colon; }
+DYN TextToken * TCF_Zuweisung(const char *) { return new Tok_Assign; }
+DYN TextToken * TCF_Smaller(const char *) { return new Tok_Less; }
+DYN TextToken * TCF_Bigger(const char *) { return new Tok_Greater; }
+DYN TextToken * TCF_Stern(const char *) { return new Tok_Asterix; }
+DYN TextToken * TCF_Ampersand(const char *) { return new Tok_AmpersAnd; }
+DYN TextToken * TCF_Ellipse(const char *) { return new Tok_Ellipse; }
+DYN TextToken * TCF_typename(const char *) { return new Tok_typename; }
+
+ // Operators
+DYN TextToken * TCF_Operator(const char * text) { return new Tok_Operator(text); }
+
+DYN TextToken * TCF_BuiltInType(const char * text) { return new Tok_BuiltInType(text); }
+DYN TextToken * TCF_TypeModifier(const char * text) { return new Tok_TypeSpecializer(text); }
+
+DYN TextToken * TCF_Eof(const char *) { return new Tok_Eof; }
+
+
+
+Context_CppStd::Context_CppStd( DYN autodoc::TkpDocuContext & let_drContext_Docu )
+ : Cx_Base(0),
+ aStateMachine(C_nStatusSize,C_nCppInitialNrOfStati),
+ pDocuContext(&let_drContext_Docu),
+ pContext_Comment(0),
+ pContext_Preprocessor(0),
+ pContext_ConstString(0),
+ pContext_ConstChar(0),
+ pContext_ConstNumeric(0),
+ pContext_UnblockMacro(0)
+{
+ pDocuContext->SetParentContext(*this,"*/");
+
+ pContext_Comment = new Context_Comment(*this);
+ pContext_Preprocessor = new Context_Preprocessor(*this);
+ pContext_ConstString = new Context_ConstString(*this);
+ pContext_ConstChar = new Context_ConstChar(*this);
+ pContext_ConstNumeric = new Context_ConstNumeric(*this);
+ pContext_UnblockMacro = new Context_UnblockMacro(*this);
+
+ SetupStateMachine();
+}
+
+Context_CppStd::~Context_CppStd()
+{
+}
+
+void
+Context_CppStd::ReadCharChain( CharacterSource & io_rText )
+{
+ SetNewToken(0);
+
+ TextToken::F_CRTOK fTokenCreateFunction = 0;
+ StmBoundsStatus & rBound = aStateMachine.GetCharChain(fTokenCreateFunction, io_rText);
+
+ // !!!
+ // The order of the next two lines is essential, because
+ // pFollowUpContext may be changed by PerformStatusFunction() also,
+ // which then MUST override the previous assignment.
+ SetFollowUpContext(rBound.FollowUpContext());
+ PerformStatusFunction(rBound.StatusFunctionNr(), fTokenCreateFunction, io_rText);
+}
+
+void
+Context_CppStd::AssignDealer( Distributor & o_rDealer )
+{
+ Cx_Base::AssignDealer(o_rDealer);
+
+ pDocuContext->AssignDealer(o_rDealer);
+ pContext_Comment->AssignDealer(o_rDealer);
+ pContext_Preprocessor->AssignDealer(o_rDealer);
+ pContext_ConstString->AssignDealer(o_rDealer);
+ pContext_ConstChar->AssignDealer(o_rDealer);
+ pContext_ConstNumeric->AssignDealer(o_rDealer);
+ pContext_UnblockMacro->AssignDealer(o_rDealer);
+}
+
+void
+Context_CppStd::PerformStatusFunction( uintt i_nStatusSignal,
+ F_CRTOK i_fTokenCreateFunction,
+ CharacterSource & io_rText )
+{
+ switch (i_nStatusSignal)
+ {
+ case nF_fin_CreateWithoutText:
+ io_rText.CutToken();
+ csv_assert(i_fTokenCreateFunction != 0);
+ SetNewToken( (*i_fTokenCreateFunction)(0) );
+ break;
+ case nF_fin_CreateWithText:
+ csv_assert(i_fTokenCreateFunction != 0);
+ SetNewToken( (*i_fTokenCreateFunction)(io_rText.CutToken()) );
+ break;
+ case nF_fin_Ignore:
+ io_rText.CutToken();
+ SetNewToken(0);
+ break;
+ case nF_fin_EOL:
+ io_rText.CutToken();
+ SetNewToken(0);
+ Dealer().Deal_Eol();
+ break;
+ case nF_fin_EOF:
+ io_rText.CutToken();
+ SetNewToken( TCF_Eof(0) );
+ break;
+ case nF_fin_Bezeichner:
+ SetNewToken( TCF_Identifier(io_rText.CutToken()) );
+ break;
+
+ case nF_goto_Preprocessor:
+ io_rText.CutToken();
+ SetNewToken(0);
+ break;
+ case nF_goto_Comment:
+ SetNewToken(0);
+ pContext_Comment->SetMode_IsMultiLine( io_rText.CutToken()[1] == '*' );
+ break;
+ case nF_goto_Docu:
+ SetNewToken(0);
+ pDocuContext->SetMode_IsMultiLine( io_rText.CutToken()[1] == '*' );
+ break;
+ case nF_goto_Const:
+ SetNewToken(0);
+ break;
+ case nF_goto_UnblockMacro:
+ SetNewToken(0);
+ break;
+
+ case nF_fin_Error:
+ default:
+ {
+ char cCC = io_rText.CurChar();
+ String sCurChar( &cCC, 1 );
+ throw X_Parser( X_Parser::x_InvalidChar, sCurChar, String::Null_(), 0 );
+ }
+ } // end switch (i_nStatusSignal)
+}
+
+void
+Context_CppStd::SetupStateMachine()
+{
+ // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
+// const INT16 top = 0; // Top-Status
+ const INT16 wht = 1; // Whitespace-berlese-Status
+ const INT16 bez = 2; // Bezeichner-lese-Status
+
+ // Tokenfinish-Stati:
+ const INT16 finError = 3;
+ const INT16 finIgnore = 4;
+ const INT16 finBezeichner = 5;
+ const INT16 finKeyword = 6;
+ const INT16 finPunctuation = 7;
+ const INT16 finBiType = 8;
+ const INT16 finTypeModifier = 9;
+ const INT16 finEOL = 10;
+ const INT16 finEOF = 11;
+
+ // Kontextwechsel-Stati:
+ const INT16 gotoComment = 12;
+ const INT16 gotoDocu = 13;
+ const INT16 gotoPreprocessor = 14;
+ const INT16 gotoConstString = 15;
+ const INT16 gotoConstChar = 16;
+ const INT16 gotoConstNumeric = 17;
+ const INT16 gotoUnblockMacro = 18;
+
+ // Abbreviations to be used in status tables:
+ const INT16 err = finError;
+ const INT16 fig = finIgnore;
+ const INT16 fbz = finBezeichner;
+ const INT16 fof = finEOF;
+ const INT16 cst = gotoConstString;
+ const INT16 cch = gotoConstChar;
+ const INT16 cnr = gotoConstNumeric;
+
+
+ /// Zeros - '0' - will be replaced by AddToken().
+
+ const INT16 A_nTopStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht, 0,wht,wht, 0,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // 16 ...
+ wht, 0,cst, 0,err, 0, 0,cch, 0, 0, 0, 0, 0, 0, 0, 0,
+ cnr,cnr,cnr,cnr,cnr,cnr,cnr,cnr,cnr,cnr, 0, 0, 0, 0, 0, 0, // 48 ...
+ 0,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez, 0, 0, 0, 0,bez, // 80 ...
+ 0,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez, 0, 0, 0, 0,err, // 80 ...
+ };
+
+ const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht,fig,wht,wht,fig,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // 16 ...
+ wht,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 48 ...
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 80 ...
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,err
+ };
+
+ const INT16 A_nBezeichnerStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+ err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+ fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err
+ };
+
+
+ const INT16 A_nOperatorDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err
+ };
+
+ const INT16 A_nBezDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+ err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+ fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err
+ };
+
+ DYN StmArrayStatus * dpStatusTop
+ = new StmArrayStatus( C_nStatusSize, A_nTopStatus, 0, true);
+ DYN StmArrayStatus * dpStatusWhite
+ = new StmArrayStatus( C_nStatusSize, A_nWhitespaceStatus, 0, true);
+ DYN StmArrayStatus * dpStatusBez
+ = new StmArrayStatus( C_nStatusSize, A_nBezeichnerStatus, TCF_Identifier, true);
+
+ DYN StmBoundsStatus * dpBst_finError
+ = new StmBoundsStatus( *this, TkpContext::Null_(), nF_fin_Error, true );
+ DYN StmBoundsStatus * dpBst_finIgnore
+ = new StmBoundsStatus( *this, *this, nF_fin_Ignore, true );
+ DYN StmBoundsStatus * dpBst_finBezeichner
+ = new StmBoundsStatus( *this, *this, nF_fin_Bezeichner, true );
+ DYN StmBoundsStatus * dpBst_finKeyword
+ = new StmBoundsStatus( *this, *this, nF_fin_CreateWithoutText, false );
+ DYN StmBoundsStatus * dpBst_finPunctuation
+ = new StmBoundsStatus( *this, *this, nF_fin_CreateWithText, false );
+ DYN StmBoundsStatus * dpBst_finBiType
+ = new StmBoundsStatus( *this, *this, nF_fin_CreateWithText, false );
+ DYN StmBoundsStatus * dpBst_finTypeModifier
+ = new StmBoundsStatus( *this, *this, nF_fin_CreateWithText, false );
+ DYN StmBoundsStatus * dpBst_finEOL
+ = new StmBoundsStatus( *this, *this, nF_fin_EOL, false );
+ DYN StmBoundsStatus * dpBst_finEOF
+ = new StmBoundsStatus( *this, TkpContext::Null_(), nF_fin_EOF, false );
+
+ DYN StmBoundsStatus * dpBst_gotoComment
+ = new StmBoundsStatus( *this, *pContext_Comment, nF_goto_Comment, false );
+ DYN StmBoundsStatus * dpBst_gotoDocu
+ = new StmBoundsStatus( *this, *pDocuContext, nF_goto_Docu, false );
+ DYN StmBoundsStatus * dpBst_gotoPreprocessor
+ = new StmBoundsStatus( *this, *pContext_Preprocessor, nF_goto_Preprocessor, false );
+ DYN StmBoundsStatus * dpBst_gotoConstString
+ = new StmBoundsStatus( *this, *pContext_ConstString, nF_goto_Const, false );
+ DYN StmBoundsStatus * dpBst_gotoConstChar
+ = new StmBoundsStatus( *this, *pContext_ConstChar, nF_goto_Const, false );
+ DYN StmBoundsStatus * dpBst_gotoConstNumeric
+ = new StmBoundsStatus( *this, *pContext_ConstNumeric, nF_goto_Const, false );
+ DYN StmBoundsStatus * dpBst_gotoUnblockMacro
+ = new StmBoundsStatus( *this, *pContext_UnblockMacro, nF_goto_UnblockMacro, false );
+
+ // dpMain aufbauen:
+ aStateMachine.AddStatus(dpStatusTop);
+
+ aStateMachine.AddStatus(dpStatusWhite);
+ aStateMachine.AddStatus(dpStatusBez);
+
+ aStateMachine.AddStatus(dpBst_finError);
+ aStateMachine.AddStatus(dpBst_finIgnore);
+ aStateMachine.AddStatus(dpBst_finBezeichner);
+ aStateMachine.AddStatus(dpBst_finKeyword);
+ aStateMachine.AddStatus(dpBst_finPunctuation);
+ aStateMachine.AddStatus(dpBst_finBiType);
+ aStateMachine.AddStatus(dpBst_finTypeModifier);
+ aStateMachine.AddStatus(dpBst_finEOL);
+ aStateMachine.AddStatus(dpBst_finEOF);
+
+ aStateMachine.AddStatus(dpBst_gotoComment);
+ aStateMachine.AddStatus(dpBst_gotoDocu);
+ aStateMachine.AddStatus(dpBst_gotoPreprocessor);
+ aStateMachine.AddStatus(dpBst_gotoConstString);
+ aStateMachine.AddStatus(dpBst_gotoConstChar);
+ aStateMachine.AddStatus(dpBst_gotoConstNumeric);
+ aStateMachine.AddStatus(dpBst_gotoUnblockMacro);
+
+ // Identifier
+
+ // Keywords and other unique Tokens
+ aStateMachine.AddToken("operator",TCF_operator,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("class",TCF_class,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("struct",TCF_struct,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("union",TCF_union,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("enum",TCF_enum,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("typedef",TCF_typedef,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("public",TCF_public,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("protected",TCF_protected,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("private",TCF_private,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("template",TCF_template,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("virtual",TCF_virtual,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("friend",TCF_friend,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("~",TCF_Tilde,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("const",TCF_const,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("volatile",TCF_volatile,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("extern",TCF_extern,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("static",TCF_static,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("mutable",TCF_mutable,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("register",TCF_register,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("inline",TCF_inline,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("explicit",TCF_explicit,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("namespace",TCF_namespace,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("using",TCF_using,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("throw",TCF_throw,A_nBezDefStatus,finKeyword);
+ aStateMachine.AddToken("{",TCF_SwBracketOpen,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("}",TCF_SwBracketClose,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("[",TCF_ArBracketOpen,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("]",TCF_ArBracketClose,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("(",TCF_BracketOpen,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken(")",TCF_BracketClose,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("::",TCF_DblColon,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken(";",TCF_Semikolon,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken(",",TCF_Komma,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken(":",TCF_Colon,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("=",TCF_Zuweisung,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("<",TCF_Smaller,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken(">",TCF_Bigger,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("*",TCF_Stern,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("&",TCF_Ampersand,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("...",TCF_Ellipse,A_nOperatorDefStatus,finKeyword);
+ aStateMachine.AddToken("typename",TCF_typename,A_nOperatorDefStatus,finKeyword);
+
+ // Operators
+ aStateMachine.AddToken("==",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("!=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("<=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken(">=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("&&",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("||",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("!",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("new",TCF_Operator,A_nBezDefStatus,finPunctuation);
+ aStateMachine.AddToken("delete",TCF_Operator,A_nBezDefStatus,finPunctuation);
+ aStateMachine.AddToken("sizeof",TCF_Operator,A_nBezDefStatus,finPunctuation);
+ aStateMachine.AddToken("typeid",TCF_Operator,A_nBezDefStatus,finPunctuation);
+ aStateMachine.AddToken("+",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("-",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("/",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("%",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("^",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("|",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("<<",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken(">>",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken(".",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("->",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("?",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("+=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("-=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("*=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("/=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("%=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("&=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("|=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("^=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken("<<=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+ aStateMachine.AddToken(">>=",TCF_Operator,A_nOperatorDefStatus,finPunctuation);
+
+ // Builtin types
+ aStateMachine.AddToken("char", TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("short", TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("int", TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("long", TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("float", TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("double",TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("wchar_t",TCF_BuiltInType, A_nBezDefStatus, finBiType);
+ aStateMachine.AddToken("size_t",TCF_BuiltInType, A_nBezDefStatus, finBiType);
+
+ // Type modifiers
+ aStateMachine.AddToken("signed", TCF_TypeModifier, A_nBezDefStatus, finTypeModifier);
+ aStateMachine.AddToken("unsigned", TCF_TypeModifier, A_nBezDefStatus, finTypeModifier);
+
+ // To ignore
+ aStateMachine.AddToken("auto", 0, A_nBezDefStatus, finIgnore);
+ aStateMachine.AddToken("_cdecl", 0, A_nBezDefStatus, finIgnore);
+ aStateMachine.AddToken("__cdecl", 0, A_nBezDefStatus, finIgnore);
+ aStateMachine.AddToken("__stdcall", 0, A_nBezDefStatus, finIgnore);
+ aStateMachine.AddToken("__fastcall",0, A_nBezDefStatus, finIgnore);
+ aStateMachine.AddToken("/**/", 0, A_nOperatorDefStatus,finIgnore);
+
+ // Context changers
+ aStateMachine.AddToken("#", 0, A_nOperatorDefStatus, gotoPreprocessor);
+ aStateMachine.AddToken("#undef",0, A_nOperatorDefStatus, gotoPreprocessor);
+ aStateMachine.AddToken("#unblock-",
+ 0, A_nOperatorDefStatus, gotoUnblockMacro);
+ aStateMachine.AddToken("/*", 0, A_nOperatorDefStatus, gotoComment);
+ aStateMachine.AddToken("//", 0, A_nOperatorDefStatus, gotoComment);
+ aStateMachine.AddToken("/**", 0, A_nOperatorDefStatus, gotoDocu);
+ aStateMachine.AddToken("///", 0, A_nOperatorDefStatus, gotoDocu);
+
+ // Line ends
+ // regular
+ aStateMachine.AddToken("\r\n", 0, A_nOperatorDefStatus, finEOL);
+ aStateMachine.AddToken("\n", 0, A_nOperatorDefStatus, finEOL);
+ aStateMachine.AddToken("\r", 0, A_nOperatorDefStatus, finEOL);
+ // To ignore in some cases(may be only at preprocessor?), but
+ // linecount has to be incremented.
+ aStateMachine.AddToken("\\\r\n",0, A_nOperatorDefStatus, finEOL);
+ aStateMachine.AddToken("\\\n", 0, A_nOperatorDefStatus, finEOL);
+ aStateMachine.AddToken("\\\r", 0, A_nOperatorDefStatus, finEOL);
+};
+
+
+} // namespace cpp
+
diff --git a/autodoc/source/parser/cpp/cx_c_std.hxx b/autodoc/source/parser/cpp/cx_c_std.hxx
new file mode 100644
index 000000000000..b9c946c3c2a6
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_std.hxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CX_C_STD_HXX
+#define ADC_CPP_CX_C_STD_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+#include "cx_base.hxx"
+ // COMPONENTS
+#include <tokens/tkpstama.hxx>
+ // PARAMETERS
+
+
+
+namespace cpp {
+
+class Context_Comment;
+
+/**
+*/
+class Context_CppStd : public Cx_Base,
+ private StateMachineContext
+{
+ public:
+ // LIFECYCLE
+ Context_CppStd(
+ DYN autodoc::TkpDocuContext &
+ let_drContext_Docu );
+ ~Context_CppStd();
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual void AssignDealer(
+ Distributor & o_rDealer );
+ private:
+ // SERVICE FUNCTIONS
+ void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ StmArrayStatus::F_CRTOK
+ i_fTokenCreateFunction,
+ CharacterSource & io_rText );
+ void SetupStateMachine();
+
+ // DATA
+ StateMachine aStateMachine;
+
+ // Contexts
+ Dyn<autodoc::TkpDocuContext>
+ pDocuContext;
+
+ Dyn<Context_Comment>
+ pContext_Comment;
+ Dyn<Cx_Base> pContext_Preprocessor;
+ Dyn<Cx_Base> pContext_ConstString;
+ Dyn<Cx_Base> pContext_ConstChar;
+ Dyn<Cx_Base> pContext_ConstNumeric;
+ Dyn<Cx_Base> pContext_UnblockMacro;
+};
+
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cx_c_sub.cxx b/autodoc/source/parser/cpp/cx_c_sub.cxx
new file mode 100644
index 000000000000..266e5e2c6c53
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_sub.cxx
@@ -0,0 +1,157 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cx_c_sub.hxx"
+
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ctype.h>
+#include "c_dealer.hxx"
+#include <tokens/parseinc.hxx>
+#include <x_parse.hxx>
+#include "all_toks.hxx"
+
+
+namespace cpp {
+
+
+
+void
+Context_Comment::ReadCharChain( CharacterSource & io_rText )
+{
+ // KORR_FUTURE
+ // Counting of lines must be implemented.
+ if (bCurrentModeIsMultiline)
+ {
+ char cNext = NULCH;
+
+ do {
+ do {
+ cNext = jumpTo( io_rText,'*',char(10) );
+ if (cNext == NULCH)
+ throw X_Parser( X_Parser::x_UnexpectedEOF, "", String::Null_(), 0 );
+ else if ( cNext == char(10) )
+ {
+ jumpOverEol(io_rText);
+ Dealer().Deal_Eol();
+ }
+ } while ( cNext != '*');
+ cNext = jumpOver(io_rText,'*');
+ if (cNext == NULCH)
+ throw X_Parser( X_Parser::x_UnexpectedEOF, "", String::Null_(), 0 );
+ } while (cNext != '/');
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetNewToken(0);
+ }
+ else //
+ {
+ int o_rCount_BackslashedLineBreaks = 0;
+ jumpToEol(io_rText,o_rCount_BackslashedLineBreaks);
+ for ( ; o_rCount_BackslashedLineBreaks > 0; --o_rCount_BackslashedLineBreaks )
+ Dealer().Deal_Eol();
+
+ if (io_rText.CurChar() != NULCH)
+ jumpOverEol(io_rText);
+ io_rText.CutToken();
+ Dealer().Deal_Eol();
+ SetNewToken(0);
+ } // endif
+}
+
+
+void
+Context_ConstString::ReadCharChain( CharacterSource & io_rText )
+{
+ char cNext = io_rText.MoveOn();
+
+ while (cNext != '"')
+ { // Get one complete string constant: "...."
+ while (cNext != '"' AND cNext != '\\')
+ { // Get string till next '\\'
+ cNext = io_rText.MoveOn();
+ }
+ if (cNext == '\\')
+ {
+ io_rText.MoveOn();
+ cNext = io_rText.MoveOn();
+ }
+ }
+ io_rText.MoveOn();
+ SetNewToken(new Tok_Constant(io_rText.CutToken()));
+}
+
+void
+Context_ConstChar::ReadCharChain( CharacterSource & io_rText )
+{
+ char cNext = io_rText.MoveOn();
+
+ while (cNext != '\'')
+ { // Get one complete char constant: "...."
+ while (cNext != '\'' AND cNext != '\\')
+ { // Get string till next '\\'
+ cNext = io_rText.MoveOn();
+ }
+ if (cNext == '\\')
+ {
+ io_rText.MoveOn();
+ cNext = io_rText.MoveOn();
+ }
+ }
+ io_rText.MoveOn();
+ SetNewToken(new Tok_Constant(io_rText.CutToken()));
+}
+
+void
+Context_ConstNumeric::ReadCharChain(CharacterSource & io_rText)
+{
+ char cNext = 0;
+
+ do {
+ do {
+ cNext = static_cast<char>( tolower(io_rText.MoveOn()) );
+ } while ( (cNext != 'e' AND isalnum(cNext)) OR cNext == '.');
+ if (cNext == 'e')
+ {
+ cNext = io_rText.MoveOn();
+ if (cNext == '+' OR cNext == '-')
+ cNext = io_rText.MoveOn();
+ } // endif
+ } while (isalnum(cNext) OR cNext == '.'); // Reicht aus, wenn Zahlen korrekt geschrieben sind
+ SetNewToken(new Tok_Constant(io_rText.CutToken()));
+}
+
+void
+Context_UnblockMacro::ReadCharChain(CharacterSource & io_rText)
+{
+ jumpToWhite(io_rText);
+ SetNewToken(new Tok_UnblockMacro( io_rText.CutToken() + strlen("#unblock-") ));
+}
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/cx_c_sub.hxx b/autodoc/source/parser/cpp/cx_c_sub.hxx
new file mode 100644
index 000000000000..3bff9a6e52d8
--- /dev/null
+++ b/autodoc/source/parser/cpp/cx_c_sub.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CX_C_SUB_HXX
+#define ADC_CPP_CX_C_SUB_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+#include "cx_base.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace cpp {
+
+
+class Context_Comment : public Cx_Base
+{
+ public:
+ Context_Comment(
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetMode_IsMultiLine(
+ bool i_bTrue )
+ { bCurrentModeIsMultiline = i_bTrue; }
+ private:
+ bool bCurrentModeIsMultiline;
+};
+
+class Context_ConstString : public Cx_Base
+{
+ public:
+ Context_ConstString(
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_ConstChar : public Cx_Base
+{
+ public:
+ Context_ConstChar(
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_ConstNumeric : public Cx_Base
+{
+ public:
+ Context_ConstNumeric(
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_UnblockMacro : public Cx_Base
+{
+ public:
+ Context_UnblockMacro(
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(&i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/cxt2ary.cxx b/autodoc/source/parser/cpp/cxt2ary.cxx
new file mode 100644
index 000000000000..b78f4496b95f
--- /dev/null
+++ b/autodoc/source/parser/cpp/cxt2ary.cxx
@@ -0,0 +1,357 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "cxt2ary.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/entity.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/c_enuval.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/c_tydef.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/loc/loc_file.hxx>
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <ary/info/docstore.hxx>
+#include "icprivow.hxx"
+
+// Implementationheaders, only to be used in this file!
+#include "sfscope.hxx"
+#include "sownstck.hxx"
+#include "sdocdist.hxx"
+#include "srecover.hxx"
+
+
+
+
+
+namespace cpp
+{
+
+using ary::cpp::E_Protection;
+
+ContextForAry::ContextForAry( ary::cpp::Gate & io_rAryGate )
+ : pGate(&io_rAryGate),
+ aTokenResult(),
+ pFileScopeInfo( new S_FileScopeInfo ),
+ pOwnerStack( new S_OwnerStack ),
+ pDocuDistributor( new S_DocuDistributor ),
+ pRecoveryGuard( new S_RecoveryGuard )
+{
+ OpenNamespace( pGate->Ces().GlobalNamespace() );
+}
+
+ContextForAry::~ContextForAry()
+{
+}
+
+ary::loc::File &
+ContextForAry::inq_CurFile() const
+{
+ csv_assert(pFileScopeInfo->pCurFile != 0);
+
+ return *pFileScopeInfo->pCurFile;
+}
+
+ary::cpp::Namespace &
+ContextForAry::inq_CurNamespace() const
+{
+ return pOwnerStack->CurNamespace();
+}
+
+ary::cpp::Class *
+ContextForAry::inq_CurClass() const
+{
+ return pOwnerStack->CurClass();
+}
+
+ary::cpp::Enum *
+ContextForAry::inq_CurEnum() const
+{
+ return pOwnerStack->CurEnum();
+}
+
+
+ary::cpp::InputContext::Owner &
+ContextForAry::inq_CurOwner() const
+{
+ return pOwnerStack->CurOwner();
+}
+
+E_Protection
+ContextForAry::inq_CurProtection() const
+{
+ return pOwnerStack->CurProtection();
+}
+
+void
+ContextForAry::do_SetTokenResult( E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push )
+{
+ aTokenResult.eDone = i_eDone;
+ aTokenResult.eStackAction = i_eWhat2DoWithEnvStack;
+ aTokenResult.pEnv2Push = i_pParseEnv2Push;
+}
+
+void
+ContextForAry::do_OpenNamespace( ary::cpp::Namespace & io_rOpenedNamespace )
+{
+ pOwnerStack->OpenNamespace( io_rOpenedNamespace );
+}
+
+void
+ContextForAry::do_OpenExternC( bool )
+{
+ pOwnerStack->OpenExternC();
+ // KORR_FUTURE
+ // use i_bOnlyForOneDeclaration
+}
+
+void
+ContextForAry::do_OpenClass( ary::cpp::Class & io_rOpenedClass )
+{
+ pOwnerStack->OpenClass(io_rOpenedClass);
+ pDocuDistributor->SetCurrentlyStoredRe(io_rOpenedClass);
+}
+
+void
+ContextForAry::do_OpenEnum( ary::cpp::Enum & io_rOpenedEnum )
+{
+ pOwnerStack->OpenEnum(io_rOpenedEnum);
+ pDocuDistributor->SetCurrentlyStoredRe(io_rOpenedEnum);
+}
+
+void
+ContextForAry::do_CloseBlock()
+{
+ pOwnerStack->CloseBlock();
+}
+
+void
+ContextForAry::do_CloseClass()
+{
+ pOwnerStack->CloseClass();
+}
+
+void
+ContextForAry::do_CloseEnum()
+{
+ pOwnerStack->CloseEnum();
+}
+
+void
+ContextForAry::do_SetCurProtection( ary::cpp::E_Protection i_eProtection )
+{
+ pOwnerStack->SetCurProtection(i_eProtection);
+}
+
+void
+ContextForAry::do_OpenTemplate( const StringVector & i_rParameters )
+{
+ pFileScopeInfo->pCurTemplateParameters = new StringVector(i_rParameters);
+}
+
+DYN StringVector *
+ContextForAry::do_Get_CurTemplateParameters()
+{
+ return pFileScopeInfo->pCurTemplateParameters.Release();
+}
+
+void
+ContextForAry::do_Close_OpenTemplate()
+{
+ if (pFileScopeInfo->pCurTemplateParameters)
+ delete pFileScopeInfo->pCurTemplateParameters.Release();
+}
+
+void
+ContextForAry::do_Event_Class_FinishedBase( const String & )
+{
+ // KORR_FUTURE
+}
+
+void
+ContextForAry::do_Event_Store_Typedef( ary::cpp::Typedef & io_rTypedef )
+{
+ pDocuDistributor->SetCurrentlyStoredRe(io_rTypedef);
+}
+
+void
+ContextForAry::do_Event_Store_EnumValue( ary::cpp::EnumValue & io_rEnumValue )
+{
+ pDocuDistributor->SetCurrentlyStoredRe(io_rEnumValue);
+}
+
+void
+ContextForAry::do_Event_Store_CppDefinition( ary::cpp::DefineEntity & io_rDefinition )
+{
+ pDocuDistributor->SetCurrentlyStoredRe(io_rDefinition);
+}
+
+void
+ContextForAry::do_Event_EnterFunction_ParameterList()
+{
+ // KORR_FUTURE
+ // Inform pDocuDistributor about possibility of parameters' inline documentation.
+}
+
+void
+ContextForAry::do_Event_Function_FinishedParameter( const String & )
+{
+ // KORR_FUTURE
+}
+
+void
+ContextForAry::do_Event_LeaveFunction_ParameterList()
+{
+ // KORR_FUTURE
+}
+
+void
+ContextForAry::do_Event_EnterFunction_Implementation()
+{
+ // KORR_FUTURE
+}
+
+void
+ContextForAry::do_Event_LeaveFunction_Implementation()
+{
+ // KORR_FUTURE
+}
+
+void
+ContextForAry::do_Event_Store_Function( ary::cpp::Function & io_rFunction )
+{
+ pDocuDistributor->SetCurrentlyStoredRe(io_rFunction);
+}
+
+
+void
+ContextForAry::do_Event_Store_Variable( ary::cpp::Variable & io_rVariable )
+{
+ pDocuDistributor->SetCurrentlyStoredRe(io_rVariable);
+}
+
+void
+ContextForAry::do_TakeDocu( DYN ary::doc::OldCppDocu & let_drInfo )
+{
+ let_drInfo.Store2(*pDocuDistributor);
+}
+
+void
+ContextForAry::do_StartWaitingFor_Recovery()
+{
+ pRecoveryGuard->StartWaitingFor_Recovery();
+}
+
+ary::cpp::Gate &
+ContextForAry::inq_AryGate() const
+{
+ return * const_cast< ary::cpp::Gate* >(pGate);
+}
+
+const ary::cpp::InputContext &
+ContextForAry::inq_Context() const
+{
+ return *this;
+}
+
+String
+ContextForAry::inq_CurFileName() const
+{
+ return pFileScopeInfo->pCurFile != 0
+ ? pFileScopeInfo->pCurFile->LocalName()
+ : String::Null_();
+}
+
+uintt
+ContextForAry::inq_LineCount() const
+{
+ return pFileScopeInfo->nLineCount;
+}
+
+bool
+ContextForAry::inq_IsWaitingFor_Recovery() const
+{
+ return pRecoveryGuard->IsWithinRecovery();
+}
+
+bool
+ContextForAry::inq_IsExternC() const
+{
+ return pOwnerStack->IsExternC();
+}
+
+void
+ContextForAry::do_SetCurFile( ary::loc::File & io_rCurFile )
+{
+ pFileScopeInfo->pCurFile = &io_rCurFile;
+ pFileScopeInfo->nLineCount = 0;
+ pFileScopeInfo->pCurTemplateParameters = 0;
+
+ pOwnerStack->Reset();
+ pDocuDistributor->Reset();
+ pRecoveryGuard->Reset();
+}
+
+void
+ContextForAry::do_Event_IncrLineCount()
+{
+ ++pFileScopeInfo->nLineCount;
+ pDocuDistributor->Event_LineBreak();
+}
+
+void
+ContextForAry::do_Event_SwBracketOpen()
+{
+ pRecoveryGuard->Hdl_SwBracketOpen();
+}
+
+void
+ContextForAry::do_Event_SwBracketClose()
+{
+ pRecoveryGuard->Hdl_SwBracketClose();
+}
+
+void
+ContextForAry::do_Event_Semicolon()
+{
+ pRecoveryGuard->Hdl_Semicolon();
+}
+
+
+
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/cxt2ary.hxx b/autodoc/source/parser/cpp/cxt2ary.hxx
new file mode 100644
index 000000000000..977d526d0d31
--- /dev/null
+++ b/autodoc/source/parser/cpp/cxt2ary.hxx
@@ -0,0 +1,198 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CTX2ARY_HXX
+#define ADC_CPP_CTX2ARY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/inpcontx.hxx>
+#include <doc_deal.hxx>
+#include "pev.hxx"
+#include "fevnthdl.hxx"
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+}
+
+
+
+namespace cpp
+{
+
+
+/** @descr
+ This class provides information about the context of an
+ CodeEntity, which is going to be stored in the repository.
+ The information is used mainly by class ary::cpp::Gate.
+
+ Also it provides information for the parser about actual
+ state of several public variables.
+
+ @todo
+ Include events, which allow correct storing of inline
+ documentation after enum values, parameters,
+ base classes.
+*/
+class ContextForAry : public ary::cpp::InputContext,
+ public cpp::PeEnvironment,
+ public cpp::FileScope_EventHandler,
+ public DocuDealer
+{
+ public:
+ // LIFECYCLE
+ ContextForAry(
+ ary::cpp::Gate & io_rAryGate );
+ virtual ~ContextForAry();
+
+ // OPERATIONS
+ void ResetResult() { aTokenResult.Reset(); }
+
+ // INQUIRY
+ const TokenProcessing_Result &
+ CurResult() const { return aTokenResult; }
+ // ACCESS
+ TokenProcessing_Result &
+ CurResult() { return aTokenResult; }
+
+ private:
+ // Interface ary::cpp::InputContext:
+ virtual ary::loc::File &
+ inq_CurFile() const;
+ virtual ary::cpp::Namespace &
+ inq_CurNamespace() const;
+ virtual ary::cpp::Class *
+ inq_CurClass() const;
+ virtual ary::cpp::Enum *
+ inq_CurEnum() const;
+
+ virtual Owner & inq_CurOwner() const;
+ virtual ary::cpp::E_Protection
+ inq_CurProtection() const;
+
+ // Interface PeEnvironment
+ virtual void do_SetTokenResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push );
+ virtual void do_OpenNamespace(
+ ary::cpp::Namespace &
+ io_rOpenedNamespace );
+ virtual void do_OpenExternC(
+ bool i_bOnlyForOneDeclaration );
+ virtual void do_OpenClass(
+ ary::cpp::Class & io_rOpenedClass );
+ virtual void do_OpenEnum(
+ ary::cpp::Enum & io_rOpenedEnum );
+ virtual void do_CloseBlock();
+ virtual void do_CloseClass();
+ virtual void do_CloseEnum();
+ virtual void do_SetCurProtection(
+ ary::cpp::E_Protection
+ i_eProtection );
+ virtual void do_OpenTemplate(
+ const StringVector &
+ i_rParameters );
+ virtual DYN StringVector *
+ do_Get_CurTemplateParameters();
+ virtual void do_Close_OpenTemplate();
+ virtual void do_Event_Class_FinishedBase(
+ const String & i_sBaseName );
+
+ virtual void do_Event_Store_Typedef(
+ ary::cpp::Typedef & io_rTypedef );
+ virtual void do_Event_Store_EnumValue(
+ ary::cpp::EnumValue &
+ io_rEnumValue );
+ virtual void do_Event_Store_CppDefinition(
+ ary::cpp::DefineEntity &
+ io_rDefinition );
+ virtual void do_Event_EnterFunction_ParameterList();
+ virtual void do_Event_Function_FinishedParameter(
+ const String & i_sParameterName );
+ virtual void do_Event_LeaveFunction_ParameterList();
+ virtual void do_Event_EnterFunction_Implementation();
+ virtual void do_Event_LeaveFunction_Implementation();
+ virtual void do_Event_Store_Function(
+ ary::cpp::Function &
+ io_rFunction );
+ virtual void do_Event_Store_Variable(
+ ary::cpp::Variable &
+ io_rVariable );
+ virtual void do_TakeDocu(
+ DYN ary::doc::OldCppDocu &
+ let_drInfo );
+ virtual void do_StartWaitingFor_Recovery();
+ virtual ary::cpp::Gate &
+ inq_AryGate() const;
+ virtual const ary::cpp::InputContext &
+ inq_Context() const;
+ virtual String inq_CurFileName() const;
+ virtual uintt inq_LineCount() const;
+ virtual bool inq_IsWaitingFor_Recovery() const;
+ virtual bool inq_IsExternC() const;
+
+ // Interface FileScope_EventHandler
+ virtual void do_SetCurFile(
+ ary::loc::File & io_rCurFile );
+ virtual void do_Event_IncrLineCount();
+ virtual void do_Event_SwBracketOpen();
+ virtual void do_Event_SwBracketClose();
+ virtual void do_Event_Semicolon();
+
+ // Local types
+ struct S_FileScopeInfo;
+ struct S_OwnerStack;
+ struct S_DocuDistributor;
+ struct S_RecoveryGuard;
+
+ // DATA
+ ary::cpp::Gate * pGate;
+ TokenProcessing_Result
+ aTokenResult;
+ Dyn<S_FileScopeInfo>
+ pFileScopeInfo;
+ Dyn<S_OwnerStack> pOwnerStack;
+ Dyn<S_DocuDistributor>
+ pDocuDistributor;
+ Dyn<S_RecoveryGuard>
+ pRecoveryGuard;
+};
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/defdescr.cxx b/autodoc/source/parser/cpp/defdescr.cxx
new file mode 100644
index 000000000000..f69c433293fb
--- /dev/null
+++ b/autodoc/source/parser/cpp/defdescr.cxx
@@ -0,0 +1,225 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "defdescr.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <prprpr.hxx>
+
+
+
+
+namespace cpp
+{
+
+
+
+
+DefineDescription::DefineDescription( const String & i_sName,
+ const str_vector & i_rDefinition )
+ : sName(i_sName),
+ // aParams,
+ aDefinition(i_rDefinition),
+ eDefineType(type_define)
+{
+}
+
+DefineDescription::DefineDescription( const String & i_sName,
+ const str_vector & i_rParams,
+ const str_vector & i_rDefinition )
+ : sName(i_sName),
+ aParams(i_rParams),
+ aDefinition(i_rDefinition),
+ eDefineType(type_macro)
+{
+}
+
+DefineDescription::~DefineDescription()
+{
+}
+
+void
+DefineDescription::GetDefineText( csv::StreamStr & o_rText ) const
+{
+ if ( aDefinition.begin() == aDefinition.end() OR eDefineType != type_define )
+ return;
+
+
+ bool bSwitch_Stringify = false;
+ bool bSwitch_Concatenate = false;
+
+ for ( str_vector::const_iterator it = aDefinition.begin();
+ it != aDefinition.end();
+ ++it )
+ {
+ if ( HandleOperatorsBeforeTextItem( o_rText,
+ bSwitch_Stringify,
+ bSwitch_Concatenate,
+ *it ) )
+ {
+ continue;
+ }
+
+ o_rText << (*it);
+
+ Do_bStringify_end(o_rText, bSwitch_Stringify);
+ o_rText << " ";
+ }
+ o_rText.seekp(-1, csv::cur);
+}
+
+void
+DefineDescription::GetMacroText( csv::StreamStr & o_rText,
+ const StringVector & i_rGivenArguments ) const
+{
+ bool bSwitch_Stringify = false;
+ bool bSwitch_Concatenate = false;
+ intt nActiveParamNr = -1;
+
+ if ( aDefinition.begin() == aDefinition.end() OR eDefineType != type_macro )
+ return;
+
+ for ( str_vector::const_iterator it = aDefinition.begin();
+ it != aDefinition.end();
+ ++it )
+ {
+ if ( HandleOperatorsBeforeTextItem( o_rText,
+ bSwitch_Stringify,
+ bSwitch_Concatenate,
+ *it ) )
+ {
+ continue;
+ }
+
+ for ( str_vector::const_iterator param_it = aParams.begin();
+ param_it != aParams.end() AND nActiveParamNr == -1;
+ ++param_it )
+ {
+ if ( strcmp(*it, *param_it) == 0 )
+ nActiveParamNr = param_it - aParams.begin();
+ }
+ if ( nActiveParamNr == -1 )
+ {
+ o_rText << (*it);
+ }
+ else
+ {
+ o_rText << i_rGivenArguments[nActiveParamNr];
+ nActiveParamNr = -1;
+ }
+
+ Do_bStringify_end(o_rText, bSwitch_Stringify);
+ o_rText << " ";
+ }
+ o_rText.seekp(-1, csv::cur);
+}
+
+
+
+} // end namespace cpp
+
+
+
+
+
+bool
+CheckForOperator( bool & o_bStringify,
+ bool & o_bConcatenate,
+ const String & i_sTextItem )
+{
+ if ( strcmp(i_sTextItem, "##") == 0 )
+ {
+ o_bConcatenate = true;
+ return true;
+ }
+ else if ( strcmp(i_sTextItem, "#") == 0 )
+ {
+ o_bStringify = true;
+ return true;
+ }
+ return false;
+}
+
+void
+Do_bConcatenate( csv::StreamStr & o_rText,
+ bool & io_bConcatenate )
+{
+ if ( io_bConcatenate )
+ {
+ uintt nPos;
+ for ( nPos = o_rText.tellp() - 1;
+ nPos > 0 ? o_rText.c_str()[nPos] == ' ' : false;
+ --nPos ) ;
+ o_rText.seekp(nPos+1);
+ io_bConcatenate = false;
+ }
+}
+
+void
+Do_bStringify_begin( csv::StreamStr & o_rText,
+ bool i_bStringify )
+{
+ if ( i_bStringify )
+ {
+ o_rText << "\"";
+ }
+}
+
+void
+Do_bStringify_end( csv::StreamStr & o_rText,
+ bool & io_bStringify )
+{
+ if ( io_bStringify )
+ {
+ o_rText << "\"";
+ io_bStringify = false;
+ }
+}
+
+
+bool
+HandleOperatorsBeforeTextItem( csv::StreamStr & o_rText,
+ bool & io_bStringify,
+ bool & io_bConcatenate,
+ const String & i_sTextItem )
+{
+ if ( CheckForOperator( io_bStringify,
+ io_bConcatenate,
+ i_sTextItem) )
+ {
+ return true;
+ }
+ Do_bConcatenate(o_rText, io_bConcatenate);
+ Do_bStringify_begin(o_rText, io_bStringify);
+
+ return false;
+}
+
+
+
diff --git a/autodoc/source/parser/cpp/defdescr.hxx b/autodoc/source/parser/cpp/defdescr.hxx
new file mode 100644
index 000000000000..5b1d299ef428
--- /dev/null
+++ b/autodoc/source/parser/cpp/defdescr.hxx
@@ -0,0 +1,97 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_DEFDESCR_HXX
+#define ADC_CPP_DEFDESCR_HXX
+
+
+
+
+namespace cpp
+{
+
+/** Describes a C/C++ #define statement. May be a define or a macro, for which
+ two cases the two different constructors are to be used.
+
+ This class is used by cpp::PreProcessor.
+*/
+class DefineDescription
+{
+ public:
+ enum E_DefineType
+ {
+ type_define,
+ type_macro
+ };
+ typedef StringVector str_vector;
+
+ DefineDescription( /// Used for: #define DEFINE xyz
+ const String & i_sName,
+ const str_vector & i_rDefinition );
+ DefineDescription( /// Used for: #define MACRO(...) abc
+ const String & i_sName,
+ const str_vector & i_rParams,
+ const str_vector & i_rDefinition );
+ ~DefineDescription();
+
+ /// Only vaild if (eDefineType == type_define) else returns "".
+ void GetDefineText(
+ csv::StreamStr & o_rText ) const;
+
+ /// Only vaild if (eDefineType == type_macro) else returns "".
+ void GetMacroText(
+ csv::StreamStr & o_rText,
+ const StringVector &
+ i_rGivenArguments ) const;
+
+ uintt ParamCount() const;
+ E_DefineType DefineType() const;
+
+ private:
+ // DATA
+ String sName;
+ str_vector aParams;
+ str_vector aDefinition;
+ E_DefineType eDefineType;
+};
+
+
+
+
+// IMPLEMENTATION
+inline uintt
+DefineDescription::ParamCount() const
+ { return aParams.size(); }
+inline DefineDescription::E_DefineType
+DefineDescription::DefineType() const
+ { return eDefineType; }
+
+
+
+
+} // end namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/fevnthdl.hxx b/autodoc/source/parser/cpp/fevnthdl.hxx
new file mode 100644
index 000000000000..20283ace42d8
--- /dev/null
+++ b/autodoc/source/parser/cpp/fevnthdl.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_FEVNTHDL_HXX
+#define ADC_CPP_FEVNTHDL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace loc
+{
+ class File;
+}
+}
+
+
+
+
+namespace cpp
+{
+
+
+/** This is an interface, which accepts the file scope events that may
+ be important for parsing. It is implementation-dependant, where to
+ put or what to do with them.
+*/
+class FileScope_EventHandler
+{
+ public:
+ // LIFECYCLE
+ virtual ~FileScope_EventHandler() {}
+
+ // OPERATIONS
+ void SetCurFile(
+ ary::loc::File & io_rCurFile );
+ void Event_IncrLineCount();
+ void Event_SwBracketOpen();
+ void Event_SwBracketClose();
+ void Event_Semicolon();
+
+ private:
+ virtual void do_SetCurFile(
+ ary::loc::File & io_rCurFile ) = 0;
+ virtual void do_Event_IncrLineCount() = 0;
+ virtual void do_Event_SwBracketOpen() = 0;
+ virtual void do_Event_SwBracketClose() = 0;
+ virtual void do_Event_Semicolon() = 0;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+FileScope_EventHandler::SetCurFile( ary::loc::File & io_rCurFile )
+ { do_SetCurFile(io_rCurFile); }
+inline void
+FileScope_EventHandler::Event_IncrLineCount()
+ { do_Event_IncrLineCount(); }
+inline void
+FileScope_EventHandler::Event_SwBracketOpen()
+ { do_Event_SwBracketOpen(); }
+inline void
+FileScope_EventHandler::Event_SwBracketClose()
+ { do_Event_SwBracketClose(); }
+inline void
+FileScope_EventHandler::Event_Semicolon()
+ { do_Event_Semicolon(); }
+
+
+
+
+} // namespace cpp
+#endif
+
diff --git a/autodoc/source/parser/cpp/icprivow.cxx b/autodoc/source/parser/cpp/icprivow.cxx
new file mode 100644
index 000000000000..54c8e147e170
--- /dev/null
+++ b/autodoc/source/parser/cpp/icprivow.cxx
@@ -0,0 +1,192 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <icprivow.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_class.hxx>
+
+
+
+namespace cpp
+{
+
+
+
+//****************** Owner_Namespace ********************//
+Owner_Namespace::Owner_Namespace()
+ : pScope(0)
+{
+}
+
+void
+Owner_Namespace::SetAnotherNamespace( ary::cpp::Namespace & io_rScope )
+{
+ pScope = &io_rScope;
+}
+
+bool
+Owner_Namespace::HasClass( const String & i_sLocalName )
+{
+ return pScope->Search_LocalClass(i_sLocalName).IsValid();
+}
+
+void
+Owner_Namespace::do_Add_Class( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalClass(i_sLocalName, i_nId);
+}
+
+void
+Owner_Namespace::do_Add_Enum( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalEnum(i_sLocalName, i_nId);
+}
+
+void
+Owner_Namespace::do_Add_Typedef( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalTypedef(i_sLocalName, i_nId);
+}
+
+void
+Owner_Namespace::do_Add_Operation( const String & i_sLocalName,
+ Cid i_nId,
+ bool )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalOperation(i_sLocalName, i_nId);
+}
+
+void
+Owner_Namespace::do_Add_Variable( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool )
+{
+ csv_assert(pScope != 0);
+ if (i_bIsConst)
+ pScope->Add_LocalConstant(i_sLocalName, i_nId);
+ else
+ pScope->Add_LocalVariable(i_sLocalName, i_nId);
+}
+
+
+Cid
+Owner_Namespace::inq_CeId() const
+{
+ csv_assert(pScope != 0);
+ return pScope->CeId();
+}
+
+
+//****************** Owner_Class ********************//
+
+Owner_Class::Owner_Class()
+ : pScope(0)
+{
+}
+
+void
+Owner_Class::SetAnotherClass( ary::cpp::Class & io_rScope )
+{
+ pScope = &io_rScope;
+}
+
+bool
+Owner_Class::HasClass( const String & )
+{
+ return false;
+}
+
+void
+Owner_Class::do_Add_Class( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalClass(i_sLocalName, i_nId);
+}
+
+void
+Owner_Class::do_Add_Enum( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalEnum(i_sLocalName, i_nId);
+}
+
+void
+Owner_Class::do_Add_Typedef( const String & i_sLocalName,
+ Cid i_nId )
+{
+ csv_assert(pScope != 0);
+ pScope->Add_LocalTypedef(i_sLocalName, i_nId);
+}
+
+void
+Owner_Class::do_Add_Operation( const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStatic )
+{
+ csv_assert(pScope != 0);
+ if (i_bIsStatic)
+ pScope->Add_LocalStaticOperation(i_sLocalName, i_nId);
+ else
+ pScope->Add_LocalOperation(i_sLocalName, i_nId);
+}
+
+void
+Owner_Class::do_Add_Variable( const String & i_sLocalName,
+ Cid i_nId,
+ bool ,
+ bool i_bIsStatic )
+{
+ csv_assert(pScope != 0);
+ if (i_bIsStatic)
+ pScope->Add_LocalStaticData(i_sLocalName, i_nId);
+ else
+ pScope->Add_LocalData(i_sLocalName, i_nId);
+}
+
+Cid
+Owner_Class::inq_CeId() const
+{
+ csv_assert(pScope != 0);
+ return pScope->CeId();
+}
+
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/icprivow.hxx b/autodoc/source/parser/cpp/icprivow.hxx
new file mode 100644
index 000000000000..590d01c99935
--- /dev/null
+++ b/autodoc/source/parser/cpp/icprivow.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ARY_CPP_ICPRIVOW_HXX
+#define ARY_CPP_ICPRIVOW_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <ary/cpp/inpcontx.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp
+{
+
+
+
+typedef ary::cpp::Ce_id Cid;
+
+
+class Owner_Namespace : public ary::cpp::InputContext::Owner
+{
+ public:
+ Owner_Namespace();
+ void SetAnotherNamespace(
+ ary::cpp::Namespace &
+ io_rScope );
+ virtual bool HasClass(
+ const String & i_sLocalName );
+ private:
+ virtual void do_Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool );
+ virtual void do_Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic );
+ virtual Cid inq_CeId() const;
+
+ // DATA
+ ary::cpp::Namespace *
+ pScope;
+};
+
+class Owner_Class : public ary::cpp::InputContext::Owner
+{
+ public:
+ Owner_Class();
+ void SetAnotherClass(
+ ary::cpp::Class & io_rScope );
+
+ /** @attention Only a dummy for use at ary::cpp::Gate!
+ Will work nerver!
+ */
+ virtual bool HasClass(
+ const String & i_sLocalName );
+ private:
+ virtual void do_Add_Class(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Enum(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Typedef(
+ const String & i_sLocalName,
+ Cid i_nId );
+ virtual void do_Add_Operation(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsStaticMember );
+ virtual void do_Add_Variable(
+ const String & i_sLocalName,
+ Cid i_nId,
+ bool i_bIsConst,
+ bool i_bIsStatic );
+ virtual Cid inq_CeId() const;
+
+ // DATA
+ ary::cpp::Class * pScope;
+};
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/makefile.mk b/autodoc/source/parser/cpp/makefile.mk
new file mode 100644
index 000000000000..9729ee2d57b1
--- /dev/null
+++ b/autodoc/source/parser/cpp/makefile.mk
@@ -0,0 +1,87 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser_cpp
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/all_toks.obj \
+ $(OBJ)$/c_dealer.obj \
+ $(OBJ)$/c_rcode.obj \
+ $(OBJ)$/cpp_pe.obj \
+ $(OBJ)$/cx_base.obj \
+ $(OBJ)$/cx_c_pp.obj \
+ $(OBJ)$/cx_c_std.obj \
+ $(OBJ)$/cx_c_sub.obj \
+ $(OBJ)$/cxt2ary.obj \
+ $(OBJ)$/defdescr.obj \
+ $(OBJ)$/icprivow.obj \
+ $(OBJ)$/pe_base.obj \
+ $(OBJ)$/pe_class.obj \
+ $(OBJ)$/pe_defs.obj \
+ $(OBJ)$/pe_expr.obj \
+ $(OBJ)$/pe_enum.obj \
+ $(OBJ)$/pe_enval.obj \
+ $(OBJ)$/pe_file.obj \
+ $(OBJ)$/pe_funct.obj \
+ $(OBJ)$/pe_ignor.obj \
+ $(OBJ)$/pe_namsp.obj \
+ $(OBJ)$/pe_param.obj \
+ $(OBJ)$/pe_tpltp.obj \
+ $(OBJ)$/pe_type.obj \
+ $(OBJ)$/pe_tydef.obj \
+ $(OBJ)$/pe_vafu.obj \
+ $(OBJ)$/pe_vari.obj \
+ $(OBJ)$/preproc.obj \
+ $(OBJ)$/prs_cpp.obj \
+ $(OBJ)$/tkp_cpp.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_base.cxx b/autodoc/source/parser/cpp/pe_base.cxx
new file mode 100644
index 000000000000..dd81d7575ecc
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_base.cxx
@@ -0,0 +1,224 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_base.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_type.hxx>
+#include "pe_type.hxx"
+
+
+
+
+namespace cpp
+{
+
+
+static const PE_Base::Base aNullBase_;
+
+
+PE_Base::PE_Base( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati(new PeStatusArray<PE_Base>)
+ // aBaseIds,
+ // pSpType,
+ // pSpuBaseName
+{
+ Setup_StatusFunctions();
+ aBaseIds.reserve(4);
+
+ pSpType = new SP_Type(*this);
+ pSpuBaseName = new SPU_BaseName(*pSpType, 0, &PE_Base::SpReturn_BaseName);
+}
+
+
+PE_Base::~PE_Base()
+{
+}
+
+void
+PE_Base::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Base::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Base>::F_Tok F_Tok;
+ static F_Tok stateF_startOfNext[] = { &PE_Base::On_startOfNext_Identifier,
+ &PE_Base::On_startOfNext_public,
+ &PE_Base::On_startOfNext_protected,
+ &PE_Base::On_startOfNext_private,
+ &PE_Base::On_startOfNext_virtual,
+ &PE_Base::On_startOfNext_DoubleColon };
+ static INT16 stateT_startOfNext[] = { Tid_Identifier,
+ Tid_public,
+ Tid_protected,
+ Tid_private,
+ Tid_virtual,
+ Tid_DoubleColon };
+ static F_Tok stateF_inName[] = { &PE_Base::On_inName_Identifier,
+ &PE_Base::On_inName_virtual,
+ &PE_Base::On_inName_SwBracket_Left,
+ &PE_Base::On_inName_DoubleColon,
+ &PE_Base::On_inName_Comma };
+ static INT16 stateT_inName[] = { Tid_Identifier,
+ Tid_virtual,
+ Tid_SwBracket_Left,
+ Tid_DoubleColon,
+ Tid_Comma };
+
+ SEMPARSE_CREATE_STATUS(PE_Base, startOfNext, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Base, inName, Hdl_SyntaxError);
+}
+
+void
+PE_Base::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Base::InitData()
+{
+ pStati->SetCur(startOfNext);
+ csv::erase_container(aBaseIds);
+ aBaseIds.push_back(aNullBase_);
+}
+
+void
+PE_Base::TransferData()
+{
+ // Does nothing.
+}
+
+void
+PE_Base::SpReturn_BaseName()
+{
+ CurObject().nId = pSpuBaseName->Child().Result_Type().Id();
+
+ static StreamStr aBaseName(100);
+ aBaseName.seekp(0);
+ pSpuBaseName->Child().Result_Type().Get_Text( aBaseName, Env().AryGate() );
+
+ Env().Event_Class_FinishedBase(aBaseName.c_str());
+}
+
+void
+PE_Base::On_startOfNext_public(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inName);
+
+ CurObject().eProtection = ary::cpp::PROTECT_public;
+}
+
+void
+PE_Base::On_startOfNext_protected(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inName);
+
+ CurObject().eProtection = ary::cpp::PROTECT_protected;
+}
+
+void
+PE_Base::On_startOfNext_private(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inName);
+
+ CurObject().eProtection = ary::cpp::PROTECT_private;
+}
+
+void
+PE_Base::On_startOfNext_virtual(const char *)
+{
+ SetTokenResult(done, stay);
+
+ CurObject().eVirtuality = ary::cpp::VIRTUAL_virtual;
+}
+
+void
+PE_Base::On_startOfNext_Identifier(const char * )
+{
+ pSpuBaseName->Push(not_done);
+}
+
+void
+PE_Base::On_startOfNext_DoubleColon(const char *)
+{
+ pSpuBaseName->Push(not_done);
+}
+
+void
+PE_Base::On_inName_Identifier(const char * )
+{
+ pSpuBaseName->Push(not_done);
+}
+
+void
+PE_Base::On_inName_virtual(const char *)
+{
+ SetTokenResult(done, stay);
+
+ CurObject().eVirtuality = ary::cpp::VIRTUAL_virtual;
+}
+
+void
+PE_Base::On_inName_DoubleColon(const char *)
+{
+ pSpuBaseName->Push(not_done);
+}
+
+void
+PE_Base::On_inName_Comma(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(startOfNext);
+
+ aBaseIds.push_back( aNullBase_ );
+}
+
+void
+PE_Base::On_inName_SwBracket_Left(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+
+} // namespace cpp
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_base.hxx b/autodoc/source/parser/cpp/pe_base.hxx
new file mode 100644
index 000000000000..dc5225c63fa2
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_base.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_BASE_HXX
+#define ADC_CPP_PE_BASE_HXX
+
+// BASE CLASSES
+#include "cpp_pe.hxx"
+// USED SERVICES
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+
+
+
+namespace cpp
+{
+
+class PE_Type;
+
+class PE_Base : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ startOfNext,
+ inName,
+ size_of_states
+ };
+
+ typedef ary::cpp::List_Bases BaseList;
+ typedef ary::cpp::S_Classes_Base Base;
+
+ PE_Base(
+ Cpp_PE * i_pParent );
+ ~PE_Base();
+
+ const BaseList & Result_BaseIds() const;
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ private:
+ typedef SubPe< PE_Base, PE_Type > SP_Type;
+ typedef SubPeUse< PE_Base, PE_Type> SPU_BaseName;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void SpReturn_BaseName();
+
+ void On_startOfNext_Identifier(const char *);
+ void On_startOfNext_public(const char *);
+ void On_startOfNext_protected(const char *);
+ void On_startOfNext_private(const char *);
+ void On_startOfNext_virtual(const char *);
+ void On_startOfNext_DoubleColon(const char *);
+
+ void On_inName_Identifier(const char *);
+ void On_inName_virtual(const char *);
+ void On_inName_SwBracket_Left(const char *);
+ void On_inName_DoubleColon(const char *);
+ void On_inName_Comma(const char *);
+
+ Base & CurObject();
+
+ // DATA
+ Dyn< PeStatusArray<PE_Base> >
+ pStati;
+
+ Dyn<SP_Type> pSpType; /// till "{" incl.
+ Dyn<SPU_BaseName> pSpuBaseName;
+
+ BaseList aBaseIds;
+};
+
+
+
+// IMPLEMENTATION
+
+inline const PE_Base::BaseList &
+PE_Base::Result_BaseIds() const
+ { return aBaseIds; }
+
+
+inline PE_Base::Base &
+PE_Base::CurObject()
+ { return aBaseIds.back(); }
+
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/pe_class.cxx b/autodoc/source/parser/cpp/pe_class.cxx
new file mode 100644
index 000000000000..d9554bd35b59
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_class.cxx
@@ -0,0 +1,503 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_class.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <all_toks.hxx>
+#include "pe_base.hxx"
+#include "pe_defs.hxx"
+#include "pe_enum.hxx"
+#include "pe_tydef.hxx"
+#include "pe_vafu.hxx"
+#include "pe_ignor.hxx"
+
+
+namespace cpp {
+
+// using ary::Cid;
+
+PE_Class::PE_Class(Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Class> ),
+ // pSpBase,
+ // pSpTypedef,
+ // pSpVarFunc,
+ // pSpIgnore,
+ // pSpuBase,
+ // pSpuTypedef,
+ // pSpuVarFunc,
+ // pSpuUsing,
+ // pSpuIgnoreFailure,
+ // sLocalName,
+ eClassKey(ary::cpp::CK_class),
+ pCurObject(0),
+ // aBases,
+ eResult_KindOf(is_declaration)
+{
+ Setup_StatusFunctions();
+
+ pSpBase = new SP_Base(*this);
+ pSpTypedef = new SP_Typedef(*this);
+ pSpVarFunc = new SP_VarFunc(*this);
+ pSpIgnore = new SP_Ignore(*this);
+ pSpDefs = new SP_Defines(*this);
+
+ pSpuBase = new SPU_Base(*pSpBase, 0, &PE_Class::SpReturn_Base);
+ pSpuTypedef = new SPU_Typedef(*pSpTypedef, 0, 0);
+ pSpuVarFunc = new SPU_VarFunc(*pSpVarFunc, 0, 0);
+
+ pSpuTemplate= new SPU_Ignore(*pSpIgnore, 0, 0);
+ pSpuUsing = new SPU_Ignore(*pSpIgnore, 0, 0);
+ pSpuIgnoreFailure
+ = new SPU_Ignore(*pSpIgnore, 0, 0);
+ pSpuDefs = new SPU_Defines(*pSpDefs, 0, 0);
+}
+
+
+PE_Class::~PE_Class()
+{
+}
+
+void
+PE_Class::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+Cpp_PE *
+PE_Class::Handle_ChildFailure()
+{
+ SetCurSPU(pSpuIgnoreFailure.Ptr());
+ return &pSpuIgnoreFailure->Child();
+}
+
+void
+PE_Class::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Class>::F_Tok F_Tok;
+
+ static F_Tok stateF_start[] = { &PE_Class::On_start_class,
+ &PE_Class::On_start_struct,
+ &PE_Class::On_start_union };
+ static INT16 stateT_start[] = { Tid_class,
+ Tid_struct,
+ Tid_union };
+
+ static F_Tok stateF_expectName[] = { &PE_Class::On_expectName_Identifier,
+ &PE_Class::On_expectName_SwBracket_Left,
+ &PE_Class::On_expectName_Colon
+ };
+ static INT16 stateT_expectName[] = { Tid_Identifier,
+ Tid_SwBracket_Left,
+ Tid_Colon
+ };
+
+ static F_Tok stateF_gotName[] = { &PE_Class::On_gotName_SwBracket_Left,
+ &PE_Class::On_gotName_Semicolon,
+ &PE_Class::On_gotName_Colon };
+ static INT16 stateT_gotName[] = { Tid_SwBracket_Left,
+ Tid_Semicolon,
+ Tid_Colon };
+
+ static F_Tok stateF_bodyStd[] = { &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_ClassKey,
+ &PE_Class::On_bodyStd_ClassKey,
+ &PE_Class::On_bodyStd_ClassKey,
+
+ &PE_Class::On_bodyStd_enum,
+ &PE_Class::On_bodyStd_typedef,
+ &PE_Class::On_bodyStd_public,
+ &PE_Class::On_bodyStd_protected,
+ &PE_Class::On_bodyStd_private,
+
+ &PE_Class::On_bodyStd_template,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_friend,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+
+ &PE_Class::On_bodyStd_using,
+ &PE_Class::On_bodyStd_SwBracket_Right,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_DefineName,
+ &PE_Class::On_bodyStd_MacroName,
+
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc,
+ &PE_Class::On_bodyStd_VarFunc, };
+
+ static INT16 stateT_bodyStd[] = { Tid_Identifier,
+ Tid_operator,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+
+ Tid_enum,
+ Tid_typedef,
+ Tid_public,
+ Tid_protected,
+ Tid_private,
+
+ Tid_template,
+ Tid_virtual,
+ Tid_friend,
+ Tid_Tilde,
+ Tid_const,
+
+ Tid_volatile,
+ Tid_static,
+ Tid_mutable,
+ Tid_inline,
+ Tid_explicit,
+
+ Tid_using,
+ Tid_SwBracket_Right,
+ Tid_DoubleColon,
+ Tid_typename,
+ Tid_DefineName,
+
+ Tid_MacroName,
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_inProtection[] = { &PE_Class::On_inProtection_Colon };
+ static INT16 stateT_inProtection[] = { Tid_Colon };
+
+ static F_Tok stateF_afterDecl[] = { &PE_Class::On_afterDecl_Semicolon };
+ static INT16 stateT_afterDecl[] = { Tid_Semicolon };
+
+ SEMPARSE_CREATE_STATUS(PE_Class, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Class, expectName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Class, gotName, On_gotName_Return2Type);
+ SEMPARSE_CREATE_STATUS(PE_Class, bodyStd, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Class, inProtection, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Class, afterDecl, On_afterDecl_Return2Type);
+
+#if 0
+ static F_Tok stateF_inFriend[] = { On_inFriend_class,
+ On_inFriend_struct,
+ On_inFriend_union };
+ // Default: On_inFriend_Function
+ static INT16 stateT_inFriend[] = { Tid_class,
+ Tid_struct,
+ Tid_union };
+#endif // 0
+}
+
+void
+PE_Class::InitData()
+{
+ pStati->SetCur(start);
+ sLocalName.clear();
+ eClassKey = ary::cpp::CK_class;
+ pCurObject = 0;
+ csv::erase_container(aBases);
+ eResult_KindOf = is_declaration;
+}
+
+void
+PE_Class::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Class::Hdl_SyntaxError( const char * i_sText)
+{
+ if ( *i_sText == ';' )
+ {
+ Cerr() << Env().CurFileName() << ", line "
+ << Env().LineCount()
+ << ": Sourcecode warning: ';' as a toplevel declaration is deprecated."
+ << Endl();
+ SetTokenResult(done,stay);
+ return;
+ }
+
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Class::Init_CurObject()
+{
+ // KORR_FUTURE
+ // This will have to be done before parsing base classes, because of
+ // possible inline documentation for base classes.
+ pCurObject = & Env().AryGate().Ces().Store_Class( Env().Context(), sLocalName, eClassKey );
+
+ for ( PE_Base::BaseList::const_iterator it = aBases.begin();
+ it != aBases.end();
+ ++it )
+ {
+ pCurObject->Add_BaseClass( *it );
+ } // end for
+
+ Dyn< StringVector >
+ pTplParams( Env().Get_CurTemplateParameters() );
+ if ( pTplParams )
+ {
+ for ( StringVector::const_iterator it = pTplParams->begin();
+ it != pTplParams->end();
+ ++it )
+ {
+ pCurObject->Add_TemplateParameterType( *it, ary::cpp::Type_id(0) );
+ } // end for
+ }
+}
+
+void
+PE_Class::SpReturn_Base()
+{
+ aBases = pSpuBase->Child().Result_BaseIds();
+ pStati->SetCur(gotName);
+}
+
+void
+PE_Class::On_start_class( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectName);
+ eClassKey = ary::cpp::CK_class;
+}
+
+void
+PE_Class::On_start_struct( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectName);
+ eClassKey = ary::cpp::CK_struct;
+}
+
+void
+PE_Class::On_start_union( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectName);
+ eClassKey = ary::cpp::CK_union;
+}
+
+void
+PE_Class::On_expectName_Identifier( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(gotName);
+ sLocalName = i_sText;
+}
+
+void
+PE_Class::On_expectName_SwBracket_Left( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(bodyStd);
+
+ sLocalName = "";
+ Init_CurObject();
+ sLocalName = pCurObject->LocalName();
+
+ Env().OpenClass(*pCurObject);
+}
+
+void
+PE_Class::On_expectName_Colon( const char * )
+{
+ pStati->SetCur(gotName);
+ sLocalName = "";
+
+ pSpuBase->Push(done);
+}
+
+void
+PE_Class::On_gotName_SwBracket_Left( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(bodyStd);
+
+ Init_CurObject();
+ if ( sLocalName.empty() )
+ sLocalName = pCurObject->LocalName();
+
+ Env().OpenClass(*pCurObject);
+}
+
+void
+PE_Class::On_gotName_Semicolon( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+
+ eResult_KindOf = is_predeclaration;
+}
+
+void
+PE_Class::On_gotName_Colon( const char * )
+{
+ pSpuBase->Push(done);
+}
+
+void
+PE_Class::On_gotName_Return2Type( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+
+ eResult_KindOf = is_qualified_typename;
+}
+
+void
+PE_Class::On_bodyStd_VarFunc( const char * )
+{
+ pSpuVarFunc->Push(not_done);
+}
+
+void
+PE_Class::On_bodyStd_ClassKey( const char * )
+{
+ pSpuVarFunc->Push(not_done); // This is correct,
+ // classes are parsed via PE_Type.
+}
+
+void
+PE_Class::On_bodyStd_enum( const char * )
+{
+ pSpuVarFunc->Push(not_done); // This is correct,
+ // enums are parsed via PE_Type.
+}
+
+void
+PE_Class::On_bodyStd_typedef( const char * )
+{
+ pSpuTypedef->Push(not_done);
+}
+
+void
+PE_Class::On_bodyStd_public( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inProtection);
+
+ Env().SetCurProtection(ary::cpp::PROTECT_public);
+}
+
+void
+PE_Class::On_bodyStd_protected( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inProtection);
+
+ Env().SetCurProtection(ary::cpp::PROTECT_protected);
+}
+
+void
+PE_Class::On_bodyStd_private( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(inProtection);
+
+ Env().SetCurProtection(ary::cpp::PROTECT_private);
+}
+
+void
+PE_Class::On_bodyStd_template( const char * )
+{
+ pSpuTemplate->Push(done);
+}
+
+void
+PE_Class::On_bodyStd_friend( const char * )
+{
+ // KORR_FUTURE
+ pSpuUsing->Push(done);
+}
+
+void
+PE_Class::On_bodyStd_using( const char * )
+{
+ pSpuUsing->Push(done);
+}
+
+void
+PE_Class::On_bodyStd_SwBracket_Right( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterDecl);
+
+ Env().CloseClass();
+}
+
+void
+PE_Class::On_bodyStd_DefineName(const char * )
+{
+ pSpuDefs->Push(not_done);
+}
+
+void
+PE_Class::On_bodyStd_MacroName(const char * )
+{
+ pSpuDefs->Push(not_done);
+}
+
+
+void
+PE_Class::On_inProtection_Colon( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(bodyStd);
+}
+
+void
+PE_Class::On_afterDecl_Semicolon( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+ eResult_KindOf = is_declaration;
+}
+
+void
+PE_Class::On_afterDecl_Return2Type( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+ eResult_KindOf = is_implicit_declaration;
+}
+
+
+} // namespace cpp
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_class.hxx b/autodoc/source/parser/cpp/pe_class.hxx
new file mode 100644
index 000000000000..737bb3a4111d
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_class.hxx
@@ -0,0 +1,256 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_CLASS_HXX
+#define ADC_CPP_PE_CLASS_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // OTHER
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_slntry.hxx>
+#include "all_toks.hxx"
+
+namespace ary
+{
+namespace cpp
+{
+ class Class;
+}
+}
+
+
+namespace cpp
+{
+
+
+using ary::cpp::E_Protection;
+using ary::cpp::E_Virtuality;
+
+
+class PE_Base;
+class PE_Enum;
+class PE_Typedef;
+class PE_VarFunc;
+class PE_Ignore;
+class PE_Defines;
+
+
+class PE_Class : public cpp::Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start, /// before class, struct or union
+ expectName, /// after class, struct or union
+ gotName, /// after name, before : or {
+ bodyStd, /// after {
+ inProtection, /// after public, protected or private and before ":"
+ afterDecl, /// after ending }
+ size_of_states
+ };
+
+ enum E_KindOfResult
+ {
+ is_declaration, // normal
+ is_implicit_declaration, // like in: class Abc { public int n; } aAbc;
+ is_predeclaration, // like: class Abc;
+ is_qualified_typename // like in: class Abc * fx();
+
+ };
+
+ PE_Class(
+ Cpp_PE * i_pParent );
+ ~PE_Class();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ virtual Cpp_PE * Handle_ChildFailure();
+
+ E_KindOfResult Result_KindOf() const;
+ const String & Result_LocalName() const;
+ const String & Result_FirstNameSegment() const;
+
+ private:
+ typedef SubPe< PE_Class, PE_Base > SP_Base;
+// typedef SubPe< PE_Class, PE_Enum> SP_Enum;
+ typedef SubPe< PE_Class, PE_Typedef> SP_Typedef;
+ typedef SubPe< PE_Class, PE_VarFunc> SP_VarFunc;
+ typedef SubPe< PE_Class, PE_Ignore > SP_Ignore;
+ typedef SubPe< PE_Class, PE_Defines> SP_Defines;
+
+ typedef SubPeUse< PE_Class, PE_Base> SPU_Base;
+// typedef SubPeUse< PE_Class, PE_Enum> SPU_Enum;
+ typedef SubPeUse< PE_Class, PE_Typedef> SPU_Typedef;
+ typedef SubPeUse< PE_Class, PE_VarFunc> SPU_VarFunc;
+ typedef SubPeUse< PE_Class, PE_Ignore> SPU_Ignore;
+ typedef SubPeUse< PE_Class, PE_Defines> SPU_Defines;
+
+ typedef ary::cpp::List_Bases BaseList;
+ typedef ary::cpp::S_Classes_Base Base;
+ typedef ary::cpp::E_Protection E_Protection;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+ void Init_CurObject();
+
+ void SpReturn_Base();
+
+ void On_start_class( const char * );
+ void On_start_struct( const char * );
+ void On_start_union( const char * );
+
+ void On_expectName_Identifier( const char * );
+ void On_expectName_SwBracket_Left( const char * );
+ void On_expectName_Colon( const char * );
+
+ void On_gotName_SwBracket_Left( const char * );
+ void On_gotName_Semicolon( const char * );
+ void On_gotName_Colon( const char * );
+ void On_gotName_Return2Type( const char * );
+
+ void On_bodyStd_VarFunc( const char * );
+ void On_bodyStd_ClassKey( const char * );
+ void On_bodyStd_enum( const char * );
+ void On_bodyStd_typedef( const char * );
+ void On_bodyStd_public( const char * );
+ void On_bodyStd_protected( const char * );
+ void On_bodyStd_private( const char * );
+ void On_bodyStd_template( const char * );
+ void On_bodyStd_friend( const char * );
+ void On_bodyStd_using( const char * );
+ void On_bodyStd_SwBracket_Right( const char * );
+ void On_bodyStd_DefineName(const char * );
+ void On_bodyStd_MacroName(const char * );
+
+ void On_inProtection_Colon( const char * );
+
+ void On_afterDecl_Semicolon( const char * );
+ void On_afterDecl_Return2Type( const char * );
+
+ // DATA
+ Dyn< PeStatusArray<PE_Class> >
+ pStati;
+
+ Dyn<SP_Base> pSpBase;
+// Dyn<SP_Enum> pSpEnum;
+ Dyn<SP_Typedef> pSpTypedef;
+ Dyn<SP_VarFunc> pSpVarFunc;
+ Dyn<SP_Ignore> pSpIgnore;
+ Dyn<SP_Defines> pSpDefs;
+
+ Dyn<SPU_Base> pSpuBase;
+// Dyn<SPU_Enum> pSpuEnum;
+ Dyn<SPU_Typedef> pSpuTypedef;
+ Dyn<SPU_VarFunc> pSpuVarFunc;
+
+ Dyn<SPU_Ignore> pSpuTemplate;
+ Dyn<SPU_Ignore> pSpuUsing;
+ Dyn<SPU_Ignore> pSpuIgnoreFailure;
+ Dyn<SPU_Defines> pSpuDefs;
+
+
+
+ String sLocalName;
+ ary::cpp::E_ClassKey
+ eClassKey;
+ ary::cpp::Class * pCurObject;
+ BaseList aBases;
+
+ E_KindOfResult eResult_KindOf;
+};
+
+
+
+// IMPLEMENTATION
+
+inline PE_Class::E_KindOfResult
+PE_Class::Result_KindOf() const
+{
+ return eResult_KindOf;
+}
+
+inline const String &
+PE_Class::Result_LocalName() const
+{
+ return sLocalName;
+}
+
+inline const String &
+PE_Class::Result_FirstNameSegment() const
+{
+ return sLocalName;
+}
+
+
+
+
+} // namespace cpp
+
+
+#if 0 // Branches
+
+class struct union
+ -> Class
+ -> Predeclaration
+
+typedef
+ -> Typedef
+
+enum
+ -> Enum
+
+TypeDeclaration
+ -> Function In Class
+ -> Variable
+
+public, protected, private
+ -> Protection declaration
+
+friend
+ -> Friend Class
+ -> Friend Function
+
+virtual
+ -> Function In Class
+
+using
+ -> Using Declaration
+
+
+#endif // 0
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_defs.cxx b/autodoc/source/parser/cpp/pe_defs.cxx
new file mode 100644
index 000000000000..f3db23a51316
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_defs.cxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_defs.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_define.hxx>
+#include <ary/cpp/c_macro.hxx>
+#include <ary/cpp/cp_def.hxx>
+#include "all_toks.hxx"
+
+
+namespace cpp
+{
+
+
+PE_Defines::PE_Defines( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Defines> ),
+ // sName,
+ // aParameters,
+ // sDefinition,
+ bIsMacro(false)
+{
+ Setup_StatusFunctions();
+}
+
+
+PE_Defines::~PE_Defines()
+{
+}
+
+void
+PE_Defines::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Defines::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Defines>::F_Tok F_Tok;
+ static F_Tok stateF_expectName[] = { &PE_Defines::On_expectName_DefineName,
+ &PE_Defines::On_expectName_MacroName
+ };
+ static INT16 stateT_expectName[] = { Tid_DefineName,
+ Tid_MacroName
+ };
+
+ static F_Tok stateF_gotDefineName[] = { &PE_Defines::On_gotDefineName_PreProDefinition };
+ static INT16 stateT_gotDefineName[] = { Tid_PreProDefinition };
+
+ static F_Tok stateF_expectMacroParameters[] =
+ { &PE_Defines::On_expectMacroParameters_MacroParameter,
+ &PE_Defines::On_expectMacroParameters_PreProDefinition
+ };
+ static INT16 stateT_expectMacroParameters[] =
+ { Tid_MacroParameter,
+ Tid_PreProDefinition
+ };
+
+ SEMPARSE_CREATE_STATUS(PE_Defines, expectName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Defines, gotDefineName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Defines, expectMacroParameters, Hdl_SyntaxError);
+}
+
+void
+PE_Defines::InitData()
+{
+ pStati->SetCur(expectName);
+
+ sName.clear();
+ csv::erase_container( aParameters );
+ csv::erase_container( aDefinition );
+ bIsMacro = false;
+}
+
+void
+PE_Defines::TransferData()
+{
+ if (NOT bIsMacro)
+ {
+ if (aDefinition.empty() OR aDefinition.front().empty())
+ return;
+
+ ary::cpp::Define &
+ rNew = Env().AryGate().Defs().Store_Define(
+ Env().Context(), sName, aDefinition );
+ Env().Event_Store_CppDefinition(rNew);
+ }
+ else
+ {
+ ary::cpp::Macro &
+ rNew = Env().AryGate().Defs().Store_Macro(
+ Env().Context(), sName, aParameters, aDefinition );
+ Env().Event_Store_CppDefinition(rNew);
+ }
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Defines::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Defines::On_expectName_DefineName( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(gotDefineName);
+
+ sName = i_sText;
+ bIsMacro = false;
+}
+
+void
+PE_Defines::On_expectName_MacroName( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectMacroParameters);
+
+ sName = i_sText;
+ bIsMacro = true;
+}
+
+void
+PE_Defines::On_gotDefineName_PreProDefinition( const char * i_sText )
+{
+ SetTokenResult(done, pop_success);
+
+ aDefinition.push_back( String (i_sText) );
+}
+
+void
+PE_Defines::On_expectMacroParameters_MacroParameter( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ aParameters.push_back( String (i_sText) );
+}
+
+void
+PE_Defines::On_expectMacroParameters_PreProDefinition( const char * i_sText )
+{
+ SetTokenResult(done, pop_success);
+
+ aDefinition.push_back( String (i_sText) );
+}
+
+
+} // namespace cpp
+
diff --git a/autodoc/source/parser/cpp/pe_defs.hxx b/autodoc/source/parser/cpp/pe_defs.hxx
new file mode 100644
index 000000000000..82b87ad51cca
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_defs.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_DEFS_HXX
+#define ADC_CPP_PE_DEFS_HXX
+
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+
+
+namespace cpp
+{
+
+
+
+class PE_Defines : public cpp::Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ expectName,
+ gotDefineName,
+ expectMacroParameters,
+ size_of_states
+ };
+
+ PE_Defines(
+ Cpp_PE * i_pParent );
+ ~PE_Defines();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ private:
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void On_expectName_DefineName( const char * );
+ void On_expectName_MacroName( const char * );
+
+ void On_gotDefineName_PreProDefinition( const char * );
+
+ void On_expectMacroParameters_MacroParameter( const char * );
+ void On_expectMacroParameters_PreProDefinition( const char * );
+
+ // DATA
+ Dyn< PeStatusArray<PE_Defines> >
+ pStati;
+
+ String sName;
+ StringVector aParameters;
+ StringVector aDefinition;
+ bool bIsMacro;
+};
+
+
+
+} //namespace cpp
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_enum.cxx b/autodoc/source/parser/cpp/pe_enum.cxx
new file mode 100644
index 000000000000..5fda19e4484d
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_enum.cxx
@@ -0,0 +1,189 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_enum.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_enum.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <all_toks.hxx>
+#include "pe_enval.hxx"
+
+
+namespace cpp {
+
+
+PE_Enum::PE_Enum(Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Enum> ),
+ // pSpValue,
+ // pSpuValue,
+ // sLocalName,
+ pCurObject(0),
+ eResult_KindOf(is_declaration)
+{
+ Setup_StatusFunctions();
+
+ pSpValue = new SP_EnumValue(*this);
+ pSpuValue = new SPU_EnumValue(*pSpValue, 0, 0);
+}
+
+
+PE_Enum::~PE_Enum()
+{
+}
+
+void
+PE_Enum::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Enum::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Enum>::F_Tok F_Tok;
+ static F_Tok stateF_expectName[] = { &PE_Enum::On_expectName_Identifier,
+ &PE_Enum::On_expectName_SwBracket_Left
+ };
+ static INT16 stateT_expectName[] = { Tid_Identifier,
+ Tid_SwBracket_Left
+ };
+
+ static F_Tok stateF_gotName[] = { &PE_Enum::On_gotName_SwBracket_Left };
+ static INT16 stateT_gotName[] = { Tid_SwBracket_Left };
+
+ static F_Tok stateF_bodyStd[] = { &PE_Enum::On_bodyStd_Identifier,
+ &PE_Enum::On_bodyStd_SwBracket_Right };
+ static INT16 stateT_bodyStd[] = { Tid_Identifier,
+ Tid_SwBracket_Right };
+
+ static F_Tok stateF_afterBlock[] = { &PE_Enum::On_afterBlock_Semicolon };
+ static INT16 stateT_afterBlock[] = { Tid_Semicolon };
+
+ SEMPARSE_CREATE_STATUS(PE_Enum, expectName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Enum, gotName, On_gotName_Return2Type);
+ SEMPARSE_CREATE_STATUS(PE_Enum, bodyStd, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Enum, afterBlock, On_afterBlock_Return2Type);
+}
+
+void
+PE_Enum::InitData()
+{
+ pStati->SetCur(expectName);
+ pCurObject = 0;
+ sLocalName.clear();
+ eResult_KindOf = is_declaration;
+}
+
+void
+PE_Enum::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Enum::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Enum::On_expectName_Identifier( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(gotName);
+
+ sLocalName = i_sText;
+ pCurObject = & Env().AryGate().Ces().Store_Enum( Env().Context(), sLocalName );
+}
+
+void
+PE_Enum::On_expectName_SwBracket_Left( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(bodyStd);
+
+ sLocalName = "";
+ pCurObject = & Env().AryGate().Ces().Store_Enum( Env().Context(), sLocalName );
+ sLocalName = pCurObject->LocalName();
+
+ Env().OpenEnum(*pCurObject);
+}
+
+void
+PE_Enum::On_gotName_SwBracket_Left( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(bodyStd);
+ Env().OpenEnum(*pCurObject);
+}
+
+void
+PE_Enum::On_gotName_Return2Type( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+
+ eResult_KindOf = is_qualified_typename;
+}
+
+void
+PE_Enum::On_bodyStd_Identifier( const char * )
+{
+ pSpuValue->Push(not_done);
+}
+
+void
+PE_Enum::On_bodyStd_SwBracket_Right( const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterBlock);
+
+ Env().CloseEnum();
+}
+
+void
+PE_Enum::On_afterBlock_Semicolon( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+ eResult_KindOf = is_declaration;
+}
+
+void
+PE_Enum::On_afterBlock_Return2Type( const char * )
+{
+ SetTokenResult(not_done, pop_success);
+ eResult_KindOf = is_implicit_declaration;
+}
+
+} // namespace cpp
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_enum.hxx b/autodoc/source/parser/cpp/pe_enum.hxx
new file mode 100644
index 000000000000..eb6e0e25afe6
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_enum.hxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_ENUM_HXX
+#define ADC_CPP_PE_ENUM_HXX
+
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+// #include "all_toks.hxx"
+
+
+namespace cpp {
+
+
+class PE_EnumValue;
+
+class PE_Enum : public cpp::Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ expectName, /// after "enum"
+ gotName, /// after name, before : or {
+ bodyStd, /// after {
+ afterBlock, /// after ending }
+ size_of_states
+ };
+
+ enum E_KindOfResult
+ {
+ is_declaration, // normal
+ is_implicit_declaration, // like in: enum Abc { rot, gelb, blau } aAbc;
+ is_qualified_typename // like in: enum Abc * fx();
+
+ };
+ PE_Enum(
+ Cpp_PE * i_pParent );
+ ~PE_Enum();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ E_KindOfResult Result_KindOf() const;
+ const String & Result_LocalName() const;
+ const String & Result_FirstNameSegment() const;
+
+ private:
+ typedef SubPe< PE_Enum, PE_EnumValue > SP_EnumValue;
+ typedef SubPeUse< PE_Enum, PE_EnumValue> SPU_EnumValue;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void On_expectName_Identifier( const char * );
+ void On_expectName_SwBracket_Left( const char * );
+
+ void On_gotName_SwBracket_Left( const char * );
+ void On_gotName_Return2Type( const char * );
+
+ void On_bodyStd_Identifier( const char * );
+ void On_bodyStd_SwBracket_Right( const char * );
+
+ void On_afterBlock_Semicolon( const char * );
+ void On_afterBlock_Return2Type( const char * );
+
+ // DATA
+ Dyn< PeStatusArray<PE_Enum> >
+ pStati;
+ Dyn<SP_EnumValue> pSpValue;
+ Dyn<SPU_EnumValue> pSpuValue;
+
+ String sLocalName;
+ ary::cpp::Enum * pCurObject;
+
+ E_KindOfResult eResult_KindOf;
+};
+
+
+
+// IMPLEMENTATION
+inline PE_Enum::E_KindOfResult
+PE_Enum::Result_KindOf() const
+{
+ return eResult_KindOf;
+}
+
+inline const String &
+PE_Enum::Result_LocalName() const
+{
+ return sLocalName;
+}
+
+inline const String &
+PE_Enum::Result_FirstNameSegment() const
+{
+ return sLocalName;
+}
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_enval.cxx b/autodoc/source/parser/cpp/pe_enval.cxx
new file mode 100644
index 000000000000..cdf2038a8dc7
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_enval.cxx
@@ -0,0 +1,168 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_enval.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include "pe_expr.hxx"
+
+
+
+namespace cpp {
+
+
+PE_EnumValue::PE_EnumValue( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_EnumValue> )
+ // pSpExpression,
+ // pSpuInitExpression
+{
+ Setup_StatusFunctions();
+
+ pSpExpression = new SP_Expression(*this);
+ pSpuInitExpression = new SPU_Expression(*pSpExpression, 0, &PE_EnumValue::SpReturn_InitExpression);
+}
+
+PE_EnumValue::~PE_EnumValue()
+{
+}
+
+void
+PE_EnumValue::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_EnumValue::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_EnumValue>::F_Tok F_Tok;
+
+ static F_Tok stateF_start[] = { &PE_EnumValue::On_start_Identifier };
+ static INT16 stateT_start[] = { Tid_Identifier };
+
+ static F_Tok stateF_afterName[] = { &PE_EnumValue::On_afterName_SwBracket_Right,
+ &PE_EnumValue::On_afterName_Comma,
+ &PE_EnumValue::On_afterName_Assign };
+ static INT16 stateT_afterName[] = { Tid_SwBracket_Right,
+ Tid_Comma,
+ Tid_Assign };
+
+ static F_Tok stateF_expectFinish[] = { &PE_EnumValue::On_expectFinish_SwBracket_Right,
+ &PE_EnumValue::On_expectFinish_Comma };
+ static INT16 stateT_expectFinish[] = { Tid_SwBracket_Right,
+ Tid_Comma };
+
+ SEMPARSE_CREATE_STATUS(PE_EnumValue, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_EnumValue, afterName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_EnumValue, expectFinish, Hdl_SyntaxError);
+}
+
+void
+PE_EnumValue::InitData()
+{
+ pStati->SetCur(start);
+
+ sName.clear();
+ sInitExpression.clear();
+}
+
+void
+PE_EnumValue::TransferData()
+{
+ pStati->SetCur(size_of_states);
+
+ ary::cpp::EnumValue &
+ rEnVal = Env().AryGate().Ces().Store_EnumValue(
+ Env().Context(), sName, sInitExpression );
+ Env().Event_Store_EnumValue(rEnVal);
+}
+
+void
+PE_EnumValue::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_EnumValue::SpReturn_InitExpression()
+{
+ pStati->SetCur(expectFinish);
+
+ sInitExpression = pSpuInitExpression->Child().Result_Text();
+}
+
+void
+PE_EnumValue::On_start_Identifier(const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName);
+
+ sName = i_sText;
+}
+
+void
+PE_EnumValue::On_afterName_SwBracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_EnumValue::On_afterName_Comma(const char * )
+{
+ SetTokenResult(done, pop_success);
+}
+
+void
+PE_EnumValue::On_afterName_Assign(const char * )
+{
+ pSpuInitExpression->Push(done);
+}
+
+void
+PE_EnumValue::On_expectFinish_SwBracket_Right(const char * )
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_EnumValue::On_expectFinish_Comma(const char * )
+{
+ SetTokenResult(done, pop_success);
+}
+
+
+} // namespace cpp
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_enval.hxx b/autodoc/source/parser/cpp/pe_enval.hxx
new file mode 100644
index 000000000000..8f42b7e04316
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_enval.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_ENVAL_HXX
+#define ADC_CPP_PE_ENVAL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+
+
+namespace cpp {
+
+class PE_Expression;
+
+
+class PE_EnumValue : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start, // before name
+ afterName,
+ expectFinish, // after init-expression
+ size_of_states
+ };
+ PE_EnumValue(
+ Cpp_PE * i_pParent );
+ ~PE_EnumValue();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ private:
+ typedef SubPe< PE_EnumValue, PE_Expression > SP_Expression;
+ typedef SubPeUse< PE_EnumValue, PE_Expression> SPU_Expression;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError(const char *);
+
+ void SpReturn_InitExpression();
+
+ void On_start_Identifier(const char * );
+
+ void On_afterName_SwBracket_Right(const char * );
+ void On_afterName_Comma(const char * );
+ void On_afterName_Assign(const char * );
+
+ void On_expectFinish_SwBracket_Right(const char * );
+ void On_expectFinish_Comma(const char * );
+
+ // DATA
+ Dyn< PeStatusArray<PE_EnumValue> >
+ pStati;
+ Dyn<SP_Expression> pSpExpression;
+ Dyn<SPU_Expression> pSpuInitExpression;
+
+ String sName;
+ String sInitExpression;
+};
+
+
+
+
+} // namespace cpp
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_expr.cxx b/autodoc/source/parser/cpp/pe_expr.cxx
new file mode 100644
index 000000000000..d3b25bdf33df
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_expr.cxx
@@ -0,0 +1,204 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_expr.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace cpp {
+
+
+
+PE_Expression::PE_Expression( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Expression> ),
+ aResult_Text(100),
+ nBracketCounter(0)
+{
+ Setup_StatusFunctions();
+}
+
+
+PE_Expression::~PE_Expression()
+{
+}
+
+void
+PE_Expression::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+
+#if 0
+ switch (i_rTok.TypeId())
+ {
+ case Tid_SwBracket_Left: SetTokenResult(done, stay);
+ nBracketCounter++;
+ bBlockOpened = true;
+ break;
+ case Tid_SwBracket_Right: SetTokenResult(done, stay);
+ nBracketCounter--;
+ break;
+ case Tid_Semicolon: if (nBracketCounter == 0)
+ SetTokenResult(done, pop_success);
+ else
+ SetTokenResult(done, stay);
+ break;
+ default:
+ if ( bBlockOpened AND nBracketCounter == 0 )
+ {
+ SetTokenResult(not_done, pop_success);
+ }
+ else
+ {
+ SetTokenResult(done, stay);
+ }
+ } // end switch
+#endif // 0
+}
+
+void
+PE_Expression::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Expression>::F_Tok F_Tok;
+
+ static F_Tok stateF_std[] = { &PE_Expression::On_std_SwBracket_Left,
+ &PE_Expression::On_std_SwBracket_Right,
+ &PE_Expression::On_std_ArrayBracket_Left,
+ &PE_Expression::On_std_ArrayBracket_Right,
+ &PE_Expression::On_std_Bracket_Left,
+ &PE_Expression::On_std_Bracket_Right,
+ &PE_Expression::On_std_Semicolon,
+ &PE_Expression::On_std_Comma };
+ static INT16 stateT_std[] = { Tid_SwBracket_Left,
+ Tid_SwBracket_Right,
+ Tid_ArrayBracket_Left,
+ Tid_ArrayBracket_Right,
+ Tid_Bracket_Left,
+ Tid_Bracket_Right,
+ Tid_Semicolon,
+ Tid_Comma };
+
+ SEMPARSE_CREATE_STATUS(PE_Expression, std, On_std_Default);
+}
+
+void
+PE_Expression::InitData()
+{
+ pStati->SetCur(std);
+ aResult_Text.seekp(0);
+ nBracketCounter = 0;
+}
+
+void
+PE_Expression::TransferData()
+{
+ pStati->SetCur(size_of_states);
+ if ( aResult_Text.tellp() > 0)
+ aResult_Text.pop_back(1);
+}
+
+void
+PE_Expression::On_std_Default( const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ aResult_Text << i_sText << " ";
+}
+
+void
+PE_Expression::On_std_SwBracket_Left( const char *)
+{
+ SetTokenResult(done, stay);
+ nBracketCounter++;
+}
+
+void
+PE_Expression::On_std_SwBracket_Right( const char *)
+{
+ nBracketCounter--;
+ if ( nBracketCounter >= 0 )
+ SetTokenResult(done, stay);
+ else
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Expression::On_std_ArrayBracket_Left( const char *)
+{
+ SetTokenResult(done, stay);
+ nBracketCounter++;
+}
+
+void
+PE_Expression::On_std_ArrayBracket_Right( const char *)
+{
+ nBracketCounter--;
+ if ( nBracketCounter >= 0 )
+ SetTokenResult(done, stay);
+ else
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Expression::On_std_Bracket_Left( const char *)
+{
+ SetTokenResult(done, stay);
+ nBracketCounter++;
+}
+
+void
+PE_Expression::On_std_Bracket_Right( const char *)
+{
+ nBracketCounter--;
+ if ( nBracketCounter >= 0 )
+ SetTokenResult(done, stay);
+ else
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Expression::On_std_Semicolon( const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Expression::On_std_Comma( const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+
+} // namespace cpp
+
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_expr.hxx b/autodoc/source/parser/cpp/pe_expr.hxx
new file mode 100644
index 000000000000..24ff08e2fbb9
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_expr.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_EXPR_HXX
+#define ADC_CPP_PE_EXPR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+
+
+namespace cpp {
+
+
+class PE_Expression : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ std,
+ size_of_states
+ };
+ PE_Expression(
+ Cpp_PE * i_pParent );
+ ~PE_Expression();
+
+ const char * Result_Text() const;
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ private:
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void On_std_Default( const char *);
+
+ void On_std_SwBracket_Left( const char *);
+ void On_std_SwBracket_Right( const char *);
+ void On_std_ArrayBracket_Left( const char *);
+ void On_std_ArrayBracket_Right( const char *);
+ void On_std_Bracket_Left( const char *);
+ void On_std_Bracket_Right( const char *);
+ void On_std_Semicolon( const char *);
+ void On_std_Comma( const char *);
+
+ // DATA
+ Dyn< PeStatusArray<PE_Expression> >
+ pStati;
+
+ csv::StreamStr aResult_Text;
+
+ intt nBracketCounter;
+};
+
+
+
+// IMPLEMENTATION
+
+inline const char *
+PE_Expression::Result_Text() const
+{
+ return aResult_Text.c_str();
+}
+
+
+} // namespace cpp
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/cpp/pe_file.cxx b/autodoc/source/parser/cpp/pe_file.cxx
new file mode 100644
index 000000000000..c6d6935a57ad
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_file.cxx
@@ -0,0 +1,317 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_file.hxx"
+
+// NOT FULLY DECLARED SERVICES
+#include "pe_defs.hxx"
+#include "pe_enum.hxx"
+#include "pe_namsp.hxx"
+#include "pe_tpltp.hxx"
+#include "pe_tydef.hxx"
+#include "pe_vafu.hxx"
+#include "pe_ignor.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace cpp
+{
+
+PE_File::PE_File( cpp::PeEnvironment & io_rEnv)
+ : Cpp_PE(io_rEnv),
+ pEnv(&io_rEnv),
+ pStati( new PeStatusArray<PE_File> ),
+ // pSpNamespace,
+ // pSpTypedef,
+ // pSpVarFunc,
+ // pSpIgnore,
+ // pSpuNamespace,
+ // pSpuClass,
+ // pSpuTypedef,
+ // pSpuVarFunc,
+ // pSpuTemplate,
+ // pSpuUsing,
+ // pSpuIgnoreFailure,
+ bWithinSingleExternC(false)
+{
+ Setup_StatusFunctions();
+
+ pSpNamespace = new SP_Namespace(*this);
+ pSpTypedef = new SP_Typedef(*this);
+ pSpVarFunc = new SP_VarFunc(*this);
+ pSpTemplate = new SP_Template(*this);
+ pSpDefs = new SP_Defines(*this);
+ pSpIgnore = new SP_Ignore(*this);
+
+ pSpuNamespace = new SPU_Namespace(*pSpNamespace, 0, 0);
+ pSpuTypedef = new SPU_Typedef(*pSpTypedef, 0, 0);
+ pSpuVarFunc = new SPU_VarFunc(*pSpVarFunc, 0, &PE_File::SpReturn_VarFunc);
+ pSpuTemplate = new SPU_Template(*pSpTemplate, 0, &PE_File::SpReturn_Template);
+ pSpuDefs = new SPU_Defines(*pSpDefs, 0, 0);
+ pSpuUsing = new SPU_Ignore(*pSpIgnore, 0, 0);
+ pSpuIgnoreFailure
+ = new SPU_Ignore(*pSpIgnore, 0, 0);
+}
+
+PE_File::~PE_File()
+{
+}
+
+void
+PE_File::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+Cpp_PE *
+PE_File::Handle_ChildFailure()
+{
+ SetCurSPU(pSpuIgnoreFailure.Ptr());
+ return &pSpuIgnoreFailure->Child();
+}
+
+void
+PE_File::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_File>::F_Tok F_Tok;
+ static F_Tok stateF_std[] = { &PE_File::On_std_VarFunc,
+ &PE_File::On_std_ClassKey,
+ &PE_File::On_std_ClassKey,
+ &PE_File::On_std_ClassKey,
+ &PE_File::On_std_enum,
+
+ &PE_File::On_std_typedef,
+ &PE_File::On_std_template,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_extern,
+
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_namespace,
+ &PE_File::On_std_using,
+
+ &PE_File::On_std_SwBracketRight,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_DefineName,
+ &PE_File::On_std_MacroName,
+
+ &PE_File::On_std_VarFunc,
+ &PE_File::On_std_VarFunc };
+
+ static INT16 stateT_std[] = { Tid_Identifier,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+ Tid_enum,
+
+ Tid_typedef,
+ Tid_template,
+ Tid_const,
+ Tid_volatile,
+ Tid_extern,
+
+ Tid_static,
+ Tid_register,
+ Tid_inline,
+ Tid_namespace,
+ Tid_using,
+
+ Tid_SwBracket_Right,
+ Tid_DoubleColon,
+ Tid_typename,
+ Tid_DefineName,
+ Tid_MacroName,
+
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_in_extern[] = { &PE_File::On_in_extern_Constant };
+ static INT16 stateT_in_extern[] = { Tid_Constant };
+
+ static F_Tok stateF_in_externC[] = { &PE_File::On_in_externC_SwBracket_Left };
+ static INT16 stateT_in_externC[] = { Tid_SwBracket_Left };
+
+
+ SEMPARSE_CREATE_STATUS(PE_File, std, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_File, in_extern, On_in_extern_Ignore);
+ SEMPARSE_CREATE_STATUS(PE_File, in_externC, On_in_externC_NoBlock);
+}
+
+void
+PE_File::InitData()
+{
+ pStati->SetCur(std);
+}
+
+void
+PE_File::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_File::Hdl_SyntaxError( const char * i_sText)
+{
+ if ( *i_sText == ';' )
+ {
+ Cerr() << Env().CurFileName() << ", line "
+ << Env().LineCount()
+ << ": Sourcecode warning: ';' as a toplevel declaration is deprecated."
+ << Endl();
+ SetTokenResult(done,stay);
+ return;
+ }
+
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_File::SpReturn_VarFunc()
+{
+ if (bWithinSingleExternC)
+ {
+ access_Env().CloseBlock();
+ bWithinSingleExternC = false;
+ }
+}
+
+void
+PE_File::SpReturn_Template()
+{
+ access_Env().OpenTemplate( pSpuTemplate->Child().Result_Parameters() );
+}
+
+void
+PE_File::On_std_namespace(const char * )
+{
+ pSpuNamespace->Push(done);
+}
+
+void
+PE_File::On_std_ClassKey(const char * )
+{
+ pSpuVarFunc->Push(not_done); // This is correct,
+ // classes are parsed via PE_Type.
+}
+
+void
+PE_File::On_std_typedef(const char * )
+{
+ pSpuTypedef->Push(not_done);
+}
+
+void
+PE_File::On_std_enum(const char * )
+{
+ pSpuVarFunc->Push(not_done); // This is correct,
+ // enums are parsed via PE_Type.
+}
+
+void
+PE_File::On_std_VarFunc(const char * )
+{
+ pSpuVarFunc->Push(not_done);
+}
+
+void
+PE_File::On_std_template(const char * )
+{
+ pSpuTemplate->Push(done);
+}
+
+void
+PE_File::On_std_extern(const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(in_extern);
+}
+
+void
+PE_File::On_std_using(const char * )
+{
+ pSpuUsing->Push(done);
+}
+
+void
+PE_File::On_std_SwBracketRight(const char * )
+{
+ SetTokenResult(done,stay);
+ access_Env().CloseBlock();
+}
+
+void
+PE_File::On_std_DefineName(const char * )
+{
+ pSpuDefs->Push(not_done);
+}
+
+void
+PE_File::On_std_MacroName(const char * )
+{
+ pSpuDefs->Push(not_done);
+}
+
+void
+PE_File::On_in_extern_Constant(const char * )
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(in_externC);
+
+ access_Env().OpenExternC();
+}
+
+void
+PE_File::On_in_extern_Ignore(const char * )
+{
+ SetTokenResult(not_done, stay);
+ pStati->SetCur(std);
+}
+
+void
+PE_File::On_in_externC_SwBracket_Left(const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(std);
+}
+
+void
+PE_File::On_in_externC_NoBlock(const char * )
+{
+ SetTokenResult(not_done, stay);
+ pStati->SetCur(std);
+
+ bWithinSingleExternC = true;
+}
+
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/pe_file.hxx b/autodoc/source/parser/cpp/pe_file.hxx
new file mode 100644
index 000000000000..eb88a311e558
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_file.hxx
@@ -0,0 +1,209 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_FILE_HXX
+#define ADC_CPP_PE_FILE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+
+
+namespace cpp {
+
+ class PeEnvironment;
+
+ class PE_Namespace;
+ class PE_Enum;
+ class PE_Typedef;
+ class PE_VarFunc;
+ class PE_TemplateTop;
+ class PE_Defines;
+ class PE_Ignore;
+
+#if 0
+class PE_Template;
+class PE_Extern;
+#endif
+
+
+class PE_File : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ std, /// before class, struct or union
+ in_extern,
+ in_externC,
+ size_of_states
+ };
+
+ PE_File(
+ PeEnvironment & io_rEnv );
+ ~PE_File();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ virtual Cpp_PE * Handle_ChildFailure();
+
+ private:
+ typedef SubPe< PE_File, PE_Namespace> SP_Namespace;
+ typedef SubPe< PE_File, PE_Typedef> SP_Typedef;
+ typedef SubPe< PE_File, PE_VarFunc> SP_VarFunc;
+ typedef SubPe< PE_File, PE_TemplateTop> SP_Template;
+ typedef SubPe< PE_File, PE_Defines> SP_Defines;
+ typedef SubPe< PE_File, PE_Ignore > SP_Ignore;
+#if 0
+ typedef SubPe< PE_File, PE_Using> SP_Using;
+#endif // 0
+
+ typedef SubPeUse< PE_File, PE_Namespace> SPU_Namespace;
+ typedef SubPeUse< PE_File, PE_Typedef> SPU_Typedef;
+ typedef SubPeUse< PE_File, PE_VarFunc> SPU_VarFunc;
+ typedef SubPeUse< PE_File, PE_TemplateTop> SPU_Template;
+ typedef SubPeUse< PE_File, PE_Defines> SPU_Defines;
+ typedef SubPeUse< PE_File, PE_Ignore> SPU_Ignore;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void SpReturn_VarFunc();
+ void SpReturn_Template();
+
+ void On_std_namespace(const char * i_sText);
+ void On_std_ClassKey(const char * i_sText);
+ void On_std_typedef(const char * i_sText);
+ void On_std_enum(const char * i_sText);
+ void On_std_VarFunc(const char * i_sText);
+ void On_std_template(const char * i_sText);
+ void On_std_extern(const char * i_sText);
+ void On_std_using(const char * i_sText);
+ void On_std_SwBracketRight(const char * i_sText);
+
+ void On_std_DefineName(const char * i_sText);
+ void On_std_MacroName(const char * i_sText);
+
+ void On_in_extern_Constant(const char * i_sText);
+ void On_in_extern_Ignore(const char * i_sText);
+ void On_in_externC_SwBracket_Left(const char * i_sText);
+ void On_in_externC_NoBlock(const char * i_sText);
+
+ PeEnvironment & access_Env() { return *pEnv; }
+
+
+ // DATA
+ PeEnvironment * pEnv;
+
+ Dyn< PeStatusArray<PE_File> >
+ pStati;
+
+ Dyn<SP_Namespace> pSpNamespace;
+ Dyn<SP_Typedef> pSpTypedef;
+ Dyn<SP_VarFunc> pSpVarFunc;
+ Dyn<SP_Template> pSpTemplate;
+ Dyn<SP_Defines> pSpDefs;
+
+ Dyn<SP_Ignore> pSpIgnore;
+#if 0
+ SP_Using aSpUsing;
+#endif // 0
+
+ Dyn<SPU_Namespace> pSpuNamespace;
+ Dyn<SPU_Typedef> pSpuTypedef;
+ Dyn<SPU_VarFunc> pSpuVarFunc;
+ Dyn<SPU_Template> pSpuTemplate;
+ Dyn<SPU_Defines> pSpuDefs;
+
+ Dyn<SPU_Ignore> pSpuUsing;
+ Dyn<SPU_Ignore> pSpuIgnoreFailure;
+
+ bool bWithinSingleExternC; /** After 'extern "C"' without following '{',
+ waiting for the next function or variable to
+ set back to false.
+ */
+};
+
+} // namespace cpp
+
+
+
+#if 0 // Branches
+
+namespace
+ -> Named Namespace declaration
+ -> Unnamed Namespace declaration
+ -> Namespace alias definition
+
+class struct union
+ -> Class
+ -> Predeclaration
+
+typedef
+ -> Typedef
+
+enum
+ -> Enum
+
+extern
+ -> Extern-"C"
+ -> TypeDeclaration
+
+TypeDeclaration
+ -> FunctionDecl
+ -> FunctionDef
+ -> Variable
+
+template
+ -> TemplateClass
+ -> TemplateFunction
+ -> TemplateFunction/Method-Implementation
+ -> TemplatePredeclaration
+
+}
+ -> End of Namespace
+ -> End of Extern-"C"
+
+asm
+ -> AssemblerDeclaration
+
+using
+ -> Using-Declaration
+ -> Using-Directive
+
+#endif // 0
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_funct.cxx b/autodoc/source/parser/cpp/pe_funct.cxx
new file mode 100644
index 000000000000..14bff991cb4d
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_funct.cxx
@@ -0,0 +1,610 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_funct.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_funct.hxx>
+#include <ary/cpp/c_type.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include <ary/cpp/inpcontx.hxx>
+#include "pe_type.hxx"
+#include "pe_param.hxx"
+
+
+
+
+namespace cpp
+{
+
+
+inline void
+PE_Function::PerformFinishingPunctuation()
+{
+ SetTokenResult(not_done,pop_success);
+}
+
+
+PE_Function::PE_Function( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Function> ),
+ // pSpParameter,
+ // pSpuParameter,
+ // pSpType,
+ // pSpuException,
+ // pSpuCastOperatorType,
+ nResult(0),
+ bResult_WithImplementation(false),
+ aName(60),
+ eVirtuality(ary::cpp::VIRTUAL_none),
+ eConVol(ary::cpp::CONVOL_none),
+ // aFlags,
+ nReturnType(0),
+ // aParameters
+ // aExceptions,
+ bThrow(false),
+ nBracketCounterInImplementation(0)
+{
+ Setup_StatusFunctions();
+
+ pSpParameter = new SP_Parameter(*this);
+ pSpType = new SP_Type(*this);
+
+ pSpuParameter = new SPU_Parameter(*pSpParameter, 0, &PE_Function::SpReturn_Parameter);
+ pSpuException = new SPU_Type(*pSpType, 0, &PE_Function::SpReturn_Exception);
+ pSpuCastOperatorType = new SPU_Type(*pSpType, &PE_Function::SpInit_CastOperatorType, &PE_Function::SpReturn_CastOperatorType);
+}
+
+PE_Function::~PE_Function()
+{
+
+}
+
+void
+PE_Function::Init_Std( const String & i_sName,
+ ary::cpp::Type_id i_nReturnType,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags i_aFlags )
+{
+ aName << i_sName;
+ eVirtuality = i_bVirtual ? ary::cpp::VIRTUAL_virtual : ary::cpp::VIRTUAL_none;
+ aFlags = i_aFlags;
+ nReturnType = i_nReturnType;
+ pStati->SetCur(afterName);
+}
+
+void
+PE_Function::Init_Ctor( const String & i_sName,
+ ary::cpp::FunctionFlags i_aFlags )
+{
+ aName << i_sName;
+ eVirtuality = ary::cpp::VIRTUAL_none;
+ aFlags = i_aFlags;
+ nReturnType = 0;
+ pStati->SetCur(afterName);
+}
+
+void
+PE_Function::Init_Dtor( const String & i_sName,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags i_aFlags )
+{
+ aName << "~" << i_sName;
+ eVirtuality = i_bVirtual ? ary::cpp::VIRTUAL_virtual : ary::cpp::VIRTUAL_none;
+ aFlags = i_aFlags;
+ nReturnType = 0;
+ pStati->SetCur(afterName);
+}
+
+void
+PE_Function::Init_CastOperator( bool i_bVirtual,
+ ary::cpp::FunctionFlags i_aFlags )
+{
+ aName << "operator ";
+ eVirtuality = i_bVirtual ? ary::cpp::VIRTUAL_virtual : ary::cpp::VIRTUAL_none;
+ aFlags = i_aFlags;
+ nReturnType = 0;
+ pStati->SetCur(afterCastOperator);
+}
+
+void
+PE_Function::Init_NormalOperator( ary::cpp::Type_id i_nReturnType,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags i_aFlags )
+{
+ aName << "operator";
+ eVirtuality = i_bVirtual ? ary::cpp::VIRTUAL_virtual : ary::cpp::VIRTUAL_none;
+ aFlags = i_aFlags;
+ nReturnType = i_nReturnType;
+ pStati->SetCur(afterStdOperator);
+}
+
+ary::cpp::Ce_id
+PE_Function::Result_Id() const
+{
+ return nResult;
+}
+
+void
+PE_Function::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Function::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Function>::F_Tok F_Tok;
+
+ static F_Tok stateF_afterStdOperator[] =
+ { &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_LeftBracket,
+ &PE_Function::On_afterOperator_Std_LeftBracket,
+ &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_Operator,
+ &PE_Function::On_afterOperator_Std_Operator };
+ static INT16 stateT_afterStdOperator[] =
+ { Tid_Operator,
+ Tid_ArrayBracket_Left,
+ Tid_Bracket_Left,
+ Tid_Comma,
+ Tid_Assign,
+ Tid_Less,
+ Tid_Greater,
+ Tid_Asterix,
+ Tid_AmpersAnd };
+
+ static F_Tok stateF_afterStdOperatorLeftBracket[] =
+ { &PE_Function::On_afterStdOperatorLeftBracket_RightBracket,
+ &PE_Function::On_afterStdOperatorLeftBracket_RightBracket };
+ static INT16 stateT_afterStdOperatorLeftBracket[] =
+ { Tid_ArrayBracket_Right,
+ Tid_Bracket_Right };
+
+ static F_Tok stateF_afterCastOperator[] =
+ { &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type,
+ &PE_Function::On_afterOperator_Cast_Type };
+ static INT16 stateT_afterCastOperator[] =
+ { Tid_Identifier,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+ Tid_enum,
+ Tid_const,
+ Tid_volatile,
+ Tid_DoubleColon,
+ Tid_typename,
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_afterName[] = { &PE_Function::On_afterName_Bracket_Left };
+ static INT16 stateT_afterName[] = { Tid_Bracket_Left };
+
+ static F_Tok stateF_expectParameterSeparator[] =
+ { &PE_Function::On_expectParameterSeparator_BracketRight,
+ &PE_Function::On_expectParameterSeparator_Comma };
+ static INT16 stateT_expectParameterSeparator[] =
+ { Tid_Bracket_Right,
+ Tid_Comma };
+
+ static F_Tok stateF_afterParameters[] = { &PE_Function::On_afterParameters_const,
+ &PE_Function::On_afterParameters_volatile,
+ &PE_Function::On_afterParameters_throw,
+ &PE_Function::On_afterParameters_SwBracket_Left,
+ &PE_Function::On_afterParameters_Semicolon,
+ &PE_Function::On_afterParameters_Comma,
+ &PE_Function::On_afterParameters_Colon,
+ &PE_Function::On_afterParameters_Assign };
+ static INT16 stateT_afterParameters[] = { Tid_const,
+ Tid_volatile,
+ Tid_throw,
+ Tid_SwBracket_Left,
+ Tid_Semicolon,
+ Tid_Comma,
+ Tid_Colon,
+ Tid_Assign };
+
+ static F_Tok stateF_afterThrow[] = { &PE_Function::On_afterThrow_Bracket_Left };
+ static INT16 stateT_afterThrow[] = { Tid_Bracket_Left };
+
+ static F_Tok stateF_expectExceptionSeparator[] =
+ { &PE_Function::On_expectExceptionSeparator_BracketRight,
+ &PE_Function::On_expectExceptionSeparator_Comma };
+ static INT16 stateT_expectExceptionSeparator[] =
+ { Tid_Bracket_Right,
+ Tid_Comma };
+
+ static F_Tok stateF_afterExceptions[] = { &PE_Function::On_afterExceptions_SwBracket_Left,
+ &PE_Function::On_afterExceptions_Semicolon,
+ &PE_Function::On_afterExceptions_Comma,
+ &PE_Function::On_afterExceptions_Colon,
+ &PE_Function::On_afterExceptions_Assign };
+ static INT16 stateT_afterExceptions[] = { Tid_SwBracket_Left,
+ Tid_Semicolon,
+ Tid_Comma,
+ Tid_Colon,
+ Tid_Assign };
+
+ static F_Tok stateF_expectZero[] = { &PE_Function::On_expectZero_Constant };
+ static INT16 stateT_expectZero[] = { Tid_Constant };
+
+ static F_Tok stateF_inImplementation[] =
+ { &PE_Function::On_inImplementation_SwBracket_Left,
+ &PE_Function::On_inImplementation_SwBracket_Right };
+ static INT16 stateT_inImplementation[] =
+ { Tid_SwBracket_Left,
+ Tid_SwBracket_Right };
+
+ SEMPARSE_CREATE_STATUS(PE_Function, afterStdOperator, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterStdOperatorLeftBracket, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterCastOperator, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, expectParameterSeparator, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterParameters, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterThrow, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, expectExceptionSeparator, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, afterExceptions, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, expectZero, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Function, inImplementation, On_inImplementation_Default );
+}
+
+void
+PE_Function::InitData()
+{
+ pStati->SetCur( afterName ),
+ nResult = 0;
+ bResult_WithImplementation = false;
+ aName.seekp(0);
+ eVirtuality = ary::cpp::VIRTUAL_none;
+ eConVol = ary::cpp::CONVOL_none;
+ aFlags.Reset();
+ nReturnType = 0;
+ csv::erase_container(aParameters);
+ csv::erase_container(aExceptions);
+ bThrow = false;
+}
+
+void
+PE_Function::TransferData()
+{
+ String sName( aName.c_str() );
+ ary::cpp::Function *
+ pFunction = Env().AryGate().Ces().Store_Operation(
+ Env().Context(),
+ sName,
+ nReturnType,
+ aParameters,
+ eVirtuality,
+ eConVol,
+ aFlags,
+ bThrow,
+ aExceptions );
+ if (pFunction != 0)
+ {
+ // KORR_FUTURE: How to handle differing documentation?
+
+ Dyn< StringVector >
+ pTplParams ( Env().Get_CurTemplateParameters() );
+ if ( pTplParams )
+ {
+ for ( StringVector::const_iterator it = pTplParams->begin();
+ it != pTplParams->end();
+ ++it )
+ {
+ pFunction->Add_TemplateParameterType( *it, ary::cpp::Type_id(0) );
+ } // end for
+ }
+
+ Env().Event_Store_Function(*pFunction);
+ }
+
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Function::Hdl_SyntaxError(const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Function::SpInit_CastOperatorType()
+{
+ pSpuCastOperatorType->Child().Init_AsCastOperatorType();
+}
+
+void
+PE_Function::SpReturn_Parameter()
+{
+ pStati->SetCur(expectParameterSeparator);
+
+ ary::cpp::Type_id nParamType = pSpuParameter->Child().Result_FrontType();
+ if ( nParamType.IsValid() ) // Check, if there was a parameter, or only the closing ')'.
+ {
+ aParameters.push_back( pSpuParameter->Child().Result_ParamInfo() );
+ }
+}
+
+void
+PE_Function::SpReturn_Exception()
+{
+ pStati->SetCur(expectExceptionSeparator);
+
+ ary::cpp::Type_id
+ nException = pSpuException->Child().Result_Type().TypeId();
+ if ( nException.IsValid() AND pSpuException->Child().Result_KindOf() == PE_Type::is_type )
+ {
+ aExceptions.push_back( nException );
+ }
+}
+
+void
+PE_Function::SpReturn_CastOperatorType()
+{
+ pStati->SetCur(afterName);
+
+ Env().AryGate().Types().Get_TypeText(
+ aName, pSpuCastOperatorType->Child().Result_Type().TypeId() );
+}
+
+void
+PE_Function::On_afterOperator_Std_Operator(const char * i_sText)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterName);
+
+ if ( 'a' <= *i_sText AND *i_sText <= 'z' )
+ aName << ' ';
+ aName << i_sText;
+}
+
+void
+PE_Function::On_afterOperator_Std_LeftBracket(const char * i_sText)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterStdOperatorLeftBracket);
+
+ aName << i_sText;
+}
+
+void
+PE_Function::On_afterStdOperatorLeftBracket_RightBracket(const char * i_sText)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterName);
+
+ aName << i_sText;
+}
+
+void
+PE_Function::On_afterOperator_Cast_Type(const char *)
+{
+ pSpuCastOperatorType->Push(not_done);
+}
+
+void
+PE_Function::On_afterName_Bracket_Left(const char *)
+{
+ pSpuParameter->Push(done);
+}
+
+void
+PE_Function::On_expectParameterSeparator_BracketRight(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterParameters);
+}
+
+void
+PE_Function::On_expectParameterSeparator_Comma(const char *)
+{
+ pSpuParameter->Push(done);
+}
+
+void
+PE_Function::On_afterParameters_const(const char *)
+{
+ SetTokenResult(done,stay);
+ eConVol = static_cast<E_ConVol>(
+ static_cast<int>(eConVol) | static_cast<int>(ary::cpp::CONVOL_const) );
+}
+
+void
+PE_Function::On_afterParameters_volatile(const char *)
+{
+ SetTokenResult(done,stay);
+ eConVol = static_cast<E_ConVol>(
+ static_cast<int>(eConVol) | static_cast<int>(ary::cpp::CONVOL_volatile) );
+}
+
+void
+PE_Function::On_afterParameters_throw(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterThrow);
+ bThrow = true;
+}
+
+void
+PE_Function::On_afterParameters_SwBracket_Left(const char *)
+{
+ EnterImplementation(1);
+}
+
+void
+PE_Function::On_afterParameters_Semicolon(const char *)
+{
+ PerformFinishingPunctuation();
+}
+
+void
+PE_Function::On_afterParameters_Comma(const char *)
+{
+ PerformFinishingPunctuation();
+}
+
+void
+PE_Function::On_afterParameters_Colon(const char *)
+{
+ EnterImplementation(0);
+}
+
+void
+PE_Function::On_afterParameters_Assign(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(expectZero);
+}
+
+void
+PE_Function::On_afterThrow_Bracket_Left(const char *)
+{
+ pSpuException->Push(done);
+}
+
+void
+PE_Function::On_expectExceptionSeparator_BracketRight(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterExceptions);
+}
+
+void
+PE_Function::On_expectExceptionSeparator_Comma(const char *)
+{
+ pSpuException->Push(done);
+}
+
+void
+PE_Function::On_afterExceptions_SwBracket_Left(const char *)
+{
+ EnterImplementation(1);
+}
+
+void
+PE_Function::On_afterExceptions_Semicolon(const char *)
+{
+ PerformFinishingPunctuation();
+}
+
+void
+PE_Function::On_afterExceptions_Comma(const char *)
+{
+ PerformFinishingPunctuation();
+}
+
+void
+PE_Function::On_afterExceptions_Colon(const char *)
+{
+ EnterImplementation(0);
+}
+
+void
+PE_Function::On_afterExceptions_Assign(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(expectZero);
+}
+
+void
+PE_Function::On_expectZero_Constant(const char * i_sText)
+{
+ if ( strcmp(i_sText,"0") != 0 )
+ Hdl_SyntaxError(i_sText);
+
+ SetTokenResult(done,stay);
+ pStati->SetCur(afterExceptions);
+
+ eVirtuality = ary::cpp::VIRTUAL_abstract;
+}
+
+void
+PE_Function::On_inImplementation_SwBracket_Left(const char *)
+{
+ SetTokenResult(done,stay);
+ nBracketCounterInImplementation++;
+}
+
+void
+PE_Function::On_inImplementation_SwBracket_Right(const char *)
+{
+ nBracketCounterInImplementation--;
+ if (nBracketCounterInImplementation == 0)
+ {
+ SetTokenResult(done,pop_success);
+ }
+ else
+ {
+ SetTokenResult(done,stay);
+ }
+}
+
+void
+PE_Function::On_inImplementation_Default(const char *)
+{
+ SetTokenResult(done,stay);
+}
+
+void
+PE_Function::EnterImplementation( intt i_nBracketCountStart )
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(inImplementation);
+
+ bResult_WithImplementation = true;
+ nBracketCounterInImplementation = i_nBracketCountStart;
+ if ( Env().Context().CurClass() != 0 )
+ {
+ aFlags.SetInline();
+ }
+}
+
+
+
+} // namespace cpp
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_funct.hxx b/autodoc/source/parser/cpp/pe_funct.hxx
new file mode 100644
index 000000000000..9bbd56329b01
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_funct.hxx
@@ -0,0 +1,281 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_FUNCT_HXX
+#define ADC_CPP_PE_FUNCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace cpp
+{
+class Function;
+struct S_VariableInfo;
+}
+}
+
+namespace cpp
+{
+
+class PE_Type;
+class PE_Parameter;
+
+class PE_Function : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ afterStdOperator, // if initializes as operator
+ afterStdOperatorLeftBracket,
+ // if initializes as operator with ( or [
+ afterCastOperator, // if initializes as operator
+ afterName, // undecided
+ expectParameterSeparator, //
+ afterParameters, // before const, volatile throw or = 0.
+ afterThrow, // expect (
+ expectExceptionSeparator, //
+ afterExceptions, // = 0 oder ; oder ,
+ expectZero, // after '='
+ inImplementation, // after {
+ size_of_states
+ };
+ typedef ary::cpp::E_Protection E_Protection;
+ typedef ary::cpp::E_Virtuality E_Virtuality;
+ typedef ary::cpp::E_ConVol E_ConVol;
+
+ PE_Function(
+ Cpp_PE * i_pParent );
+ ~PE_Function();
+
+ void Init_Std(
+ const String & i_sName,
+ ary::cpp::Type_id i_nReturnType,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags
+ i_aFlags );
+ void Init_Ctor(
+ const String & i_sName,
+ ary::cpp::FunctionFlags
+ i_aFlags );
+ void Init_Dtor(
+ const String & i_sName,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags
+ i_aFlags );
+ void Init_CastOperator(
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags
+ i_aFlags );
+ void Init_NormalOperator(
+ ary::cpp::Type_id i_nReturnType,
+ bool i_bVirtual,
+ ary::cpp::FunctionFlags
+ i_aFlags );
+
+ ary::cpp::Ce_id Result_Id() const;
+ bool Result_WithImplementation() const;
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ private:
+ typedef SubPe< PE_Function, PE_Type > SP_Type;
+ typedef SubPeUse< PE_Function, PE_Type > SPU_Type;
+ typedef SubPe< PE_Function, PE_Parameter> SP_Parameter;
+ typedef SubPeUse<PE_Function, PE_Parameter> SPU_Parameter;
+
+ typedef std::vector<ary::cpp::S_Parameter> ParameterList;
+ typedef std::vector<ary::cpp::Type_id> ExceptionTypeList;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError(const char * i_sText);
+
+ void SpInit_CastOperatorType();
+
+ void SpReturn_Parameter();
+ void SpReturn_Exception();
+ void SpReturn_CastOperatorType();
+
+ void On_afterOperator_Std_Operator(const char * i_sText); // Operator+() etc.
+ void On_afterOperator_Std_LeftBracket(const char * i_sText); // operator [] or ()
+ void On_afterStdOperatorLeftBracket_RightBracket(const char * i_sText);
+ void On_afterOperator_Cast_Type(const char * i_sText); // Type
+
+ void On_afterName_Bracket_Left(const char * i_sText);
+
+ void On_expectParameterSeparator_BracketRight(const char * i_sText);
+ void On_expectParameterSeparator_Comma(const char * i_sText);
+
+ void On_afterParameters_const(const char * i_sText);
+ void On_afterParameters_volatile(const char * i_sText);
+ void On_afterParameters_throw(const char * i_sText);
+ void On_afterParameters_SwBracket_Left(const char * i_sText);
+ void On_afterParameters_Semicolon(const char * i_sText);
+ void On_afterParameters_Comma(const char * i_sText);
+ void On_afterParameters_Colon(const char * i_sText);
+ void On_afterParameters_Assign(const char * i_sText);
+
+ void On_afterThrow_Bracket_Left(const char * i_sText);
+
+ void On_expectExceptionSeparator_BracketRight(const char * i_sText);
+ void On_expectExceptionSeparator_Comma(const char * i_sText);
+
+ void On_afterExceptions_SwBracket_Left(const char * i_sText);
+ void On_afterExceptions_Semicolon(const char * i_sText);
+ void On_afterExceptions_Comma(const char * i_sText);
+ void On_afterExceptions_Colon(const char * i_sText);
+ void On_afterExceptions_Assign(const char * i_sText);
+
+ void On_expectZero_Constant(const char * i_sText);
+
+ void On_inImplementation_SwBracket_Left(const char * i_sText);
+ void On_inImplementation_SwBracket_Right(const char * i_sText);
+ void On_inImplementation_Default(const char * i_sText);
+
+ void PerformFinishingPunctuation();
+ void EnterImplementation(
+ intt i_nBracketCountStart ); /// 1 normally, 0 in initialisation section of c'tors.
+
+ // DATA
+ Dyn< PeStatusArray<PE_Function> >
+ pStati;
+
+ Dyn< SP_Parameter > pSpParameter;
+ Dyn< SPU_Parameter> pSpuParameter;
+ Dyn< SP_Type > pSpType;
+ Dyn< SPU_Type > pSpuException;
+ Dyn< SPU_Type > pSpuCastOperatorType; // in "operator int()" or "operator ThatClass *()"
+
+ ary::cpp::Ce_id nResult;
+ bool bResult_WithImplementation; // Necessary for the parent ParseEnvironment
+ // to know, there is no semicolon or comma following.
+ // Pre results
+ StreamStr aName;
+ E_Virtuality eVirtuality;
+ E_ConVol eConVol;
+ ary::cpp::FunctionFlags
+ aFlags;
+ ary::cpp::Type_id nReturnType;
+ ParameterList aParameters;
+ ExceptionTypeList aExceptions;
+ bool bThrow; // Indicates, if there is a throw - important, if there are 0 exceptions listed.
+ intt nBracketCounterInImplementation;
+};
+
+
+
+
+// IMPLEMENTATION
+inline bool
+PE_Function::Result_WithImplementation() const
+ { return bResult_WithImplementation; }
+
+
+
+
+} // namespace cpp
+#endif
+
+
+
+
+
+/* // Overview of Stati
+
+Undecided
+---------
+
+start // vor und whrend storage class specifiern
+
+->Typ
+
+expectName // Typ ist da
+
+afterName
+
+
+
+
+Variable
+--------
+
+start // vor und whrend storage class specifiern
+
+->Typ
+
+expectName // Typ ist da -> im Falle von '(': notyetimplemented
+afterName
+
+expectSize // after [
+expectFinish
+ // vor ; oder ,
+expectNextVarName // anders als bei expectName kann hier auch * oder & kommen
+
+
+
+
+
+Function
+--------
+
+start // vor und whrend storage class specifiern
+
+->Typ
+
+expectName // Typ ist da
+expectBracket // Nach Name
+expectParameter // nach ( oder ,
+-> Parameter
+after Parameters // before const, volatile throw or = 0.
+after throw // expect (
+expectException // after (
+after exceptions // = 0 oder ; oder ,
+
+
+expectNextVarName // anders als bei expectName kann hier auch * oder & kommen
+
+
+
+
+
+
+
+*/
diff --git a/autodoc/source/parser/cpp/pe_ignor.cxx b/autodoc/source/parser/cpp/pe_ignor.cxx
new file mode 100644
index 000000000000..685c4baff783
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_ignor.cxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_ignor.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+
+
+namespace cpp {
+
+
+
+PE_Ignore::PE_Ignore( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ nBracketCounter(0),
+ bBlockOpened(false)
+{
+ Setup_StatusFunctions();
+}
+
+
+PE_Ignore::~PE_Ignore()
+{
+}
+
+void
+PE_Ignore::Call_Handler( const cpp::Token & i_rTok )
+{
+ if ( NOT bBlockOpened )
+ {
+ switch (i_rTok.TypeId())
+ {
+ case Tid_SwBracket_Left: SetTokenResult(done, stay);
+ nBracketCounter++;
+ bBlockOpened = true;
+ break;
+ case Tid_Semicolon: SetTokenResult(done, pop_success);
+ break;
+ default:
+ SetTokenResult(done, stay);
+ } // end switch
+ }
+ else if ( nBracketCounter > 0 )
+ {
+ SetTokenResult(done, stay);
+
+ switch (i_rTok.TypeId())
+ {
+ case Tid_SwBracket_Left: nBracketCounter++;
+ break;
+ case Tid_SwBracket_Right: nBracketCounter--;
+ break;
+ } // end switch
+ }
+ else if ( i_rTok.TypeId() == Tid_Semicolon )
+ {
+ SetTokenResult(done, pop_success);
+ }
+ else
+ {
+ SetTokenResult(not_done, pop_success);
+ }
+}
+
+void
+PE_Ignore::Setup_StatusFunctions()
+{
+ // Does nothing.
+}
+
+void
+PE_Ignore::InitData()
+{
+ nBracketCounter = 0;
+ bBlockOpened = false;
+}
+
+void
+PE_Ignore::TransferData()
+{
+ // Does nothing.
+}
+
+
+} // namespace cpp
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_ignor.hxx b/autodoc/source/parser/cpp/pe_ignor.hxx
new file mode 100644
index 000000000000..2a8c6baf44fd
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_ignor.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_IGNOR_HXX
+#define ADC_CPP_PE_IGNOR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cpp_pe.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace cpp {
+
+
+class PE_Ignore : public Cpp_PE
+{
+ public:
+ PE_Ignore(
+ Cpp_PE * i_pParent );
+ ~PE_Ignore();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ private:
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+
+ // DATA
+ uintt nBracketCounter;
+ bool bBlockOpened;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace cpp
+
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/cpp/pe_namsp.cxx b/autodoc/source/parser/cpp/pe_namsp.cxx
new file mode 100644
index 000000000000..673c19f55349
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_namsp.cxx
@@ -0,0 +1,163 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <pe_namsp.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <all_toks.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <semantic/callf.hxx>
+#include "x_parse.hxx"
+
+
+
+
+namespace cpp
+{
+
+PE_Namespace::PE_Namespace( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Namespace> ),
+ // sLocalname
+ bPush(false)
+{
+ Setup_StatusFunctions();
+}
+
+PE_Namespace::~PE_Namespace()
+{
+}
+
+void
+PE_Namespace::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Namespace>::F_Tok F_Tok;
+ static F_Tok stateF_start[] = { &PE_Namespace::On_start_Identifier,
+ &PE_Namespace::On_start_SwBracket_Left };
+ static INT16 stateT_start[] = { Tid_Identifier,
+ Tid_SwBracket_Left };
+ static F_Tok stateF_gotName[] = { &PE_Namespace::On_gotName_SwBracket_Left,
+ &PE_Namespace::On_gotName_Assign };
+ static INT16 stateT_gotName[] = { Tid_SwBracket_Left,
+ Tid_Assign };
+ static F_Tok stateF_expectSemicolon[] = { &PE_Namespace::On_expectSemicolon_Semicolon };
+ static INT16 stateT_expectSemicolon[] = { Tid_Semicolon };
+
+ SEMPARSE_CREATE_STATUS(PE_Namespace, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Namespace, gotName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Namespace, expectSemicolon, Hdl_SyntaxError);
+}
+
+void
+PE_Namespace::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Namespace::InitData()
+{
+ pStati->SetCur(start);
+ sLocalName = "";
+ bPush = false;
+}
+
+void
+PE_Namespace::TransferData()
+{
+ if (bPush)
+ {
+ ary::cpp::Namespace &
+ rNew = Env().AryGate().Ces().CheckIn_Namespace(
+ Env().Context(),
+ sLocalName );
+ Env().OpenNamespace(rNew);
+ }
+}
+
+void
+PE_Namespace::Hdl_SyntaxError( const char * i_sText)
+{
+ throw X_Parser( X_Parser::x_UnexpectedToken,
+ i_sText != 0 ? i_sText : "",
+ Env().CurFileName(),
+ Env().LineCount() );
+}
+
+void
+PE_Namespace::On_start_Identifier(const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(gotName);
+
+ sLocalName = i_sText;
+}
+
+void
+PE_Namespace::On_start_SwBracket_Left(const char * )
+{
+ SetTokenResult(done, pop_success);
+ pStati->SetCur(size_of_states);
+
+ sLocalName = ""; // Anonymous namespace, a name is created in
+ // Gate().CheckIn_Namespace() .
+
+ bPush = true;
+}
+
+void
+PE_Namespace::On_gotName_SwBracket_Left(const char * )
+{
+ SetTokenResult(done, pop_success);
+ pStati->SetCur(size_of_states);
+
+ bPush = true;
+}
+
+void
+PE_Namespace::On_gotName_Assign(const char * )
+{
+ // KORR_FUTURE
+ Hdl_SyntaxError(0);
+}
+
+void
+PE_Namespace::On_expectSemicolon_Semicolon(const char * )
+{
+ SetTokenResult(done,pop_success);
+ pStati->SetCur(size_of_states);
+}
+
+} // namespace cpp
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_namsp.hxx b/autodoc/source/parser/cpp/pe_namsp.hxx
new file mode 100644
index 000000000000..4809dcceceb5
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_namsp.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_NAMSP_HXX
+#define ADC_CPP_PE_NAMSP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_pe.hxx>
+ // PARAMETERS
+
+namespace ary
+{
+namespace cpp
+{
+class Namespace;
+}
+}
+
+
+namespace cpp
+{
+
+
+class PE_Namespace : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ gotName,
+ expectSemicolon, /// after namespace assignment
+ size_of_states
+ };
+ PE_Namespace(
+ Cpp_PE * i_pParent );
+ ~PE_Namespace();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ ary::cpp::Namespace *
+ Result_OpenedNamespace() const;
+ private:
+ void Setup_StatusFunctions();
+
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void On_start_Identifier(const char * i_sText);
+ void On_start_SwBracket_Left(const char * i_sText);
+ void On_gotName_SwBracket_Left(const char * i_sText);
+ void On_gotName_Assign(const char * i_sText);
+ void On_expectSemicolon_Semicolon(const char * i_sText);
+
+ // DATA
+ Dyn< PeStatusArray<PE_Namespace> >
+ pStati;
+
+ String sLocalName;
+ bool bPush;
+};
+
+
+
+
+} // namespace cpp
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_param.cxx b/autodoc/source/parser/cpp/pe_param.cxx
new file mode 100644
index 000000000000..5b70505d0964
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_param.cxx
@@ -0,0 +1,280 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_param.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include "pe_type.hxx"
+#include "pe_vari.hxx"
+
+
+namespace cpp {
+
+
+
+//*********************** PE_Parameter ***********************//
+
+
+PE_Parameter::PE_Parameter( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Parameter> )
+ // pSpType,
+ // pSpuType,
+ // pSpVariable,
+ // pSpuVariable,
+ // aResultParamInfo
+{
+ Setup_StatusFunctions();
+
+ pSpType = new SP_Type(*this);
+ pSpuType = new SPU_Type(*pSpType, &PE_Parameter::SpInit_Type, &PE_Parameter::SpReturn_Type);
+ pSpVariable = new SP_Variable(*this);
+ pSpuVariable = new SPU_Variable(*pSpVariable, &PE_Parameter::SpInit_Variable, &PE_Parameter::SpReturn_Variable);
+}
+
+PE_Parameter::~PE_Parameter()
+{
+}
+
+void
+PE_Parameter::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Parameter::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Parameter>::F_Tok F_Tok;
+ static F_Tok stateF_start[] = { &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Bracket_Right,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Ellipse,
+
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type,
+ &PE_Parameter::On_start_Type };
+ static INT16 stateT_start[] = { Tid_Identifier,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+ Tid_enum,
+
+ Tid_const,
+ Tid_volatile,
+ Tid_Bracket_Right,
+ Tid_DoubleColon,
+ Tid_Ellipse,
+
+ Tid_typename,
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_expectName[] = { &PE_Parameter::On_expectName_Identifier,
+ &PE_Parameter::On_expectName_ArrayBracket_Left,
+ &PE_Parameter::On_expectName_Bracket_Right,
+ &PE_Parameter::On_expectName_Comma,
+ &PE_Parameter::On_afterName_Assign };
+ static INT16 stateT_expectName[] = { Tid_Identifier,
+ Tid_ArrayBracket_Left,
+ Tid_Bracket_Right,
+ Tid_Comma,
+ Tid_Assign };
+ static F_Tok stateF_afterName[] = { &PE_Parameter::On_afterName_ArrayBracket_Left,
+ &PE_Parameter::On_afterName_Bracket_Right,
+ &PE_Parameter::On_afterName_Comma,
+ &PE_Parameter::On_afterName_Assign };
+ static INT16 stateT_afterName[] = { Tid_ArrayBracket_Left,
+ Tid_Bracket_Right,
+ Tid_Comma,
+ Tid_Assign };
+ static F_Tok stateF_finished[] = { &PE_Parameter::On_finished_Comma,
+ &PE_Parameter::On_finished_Bracket_Right };
+ static INT16 stateT_finished[] = { Tid_Bracket_Right,
+ Tid_Comma };
+
+ SEMPARSE_CREATE_STATUS(PE_Parameter, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Parameter, expectName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Parameter, afterName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Parameter, finished, Hdl_SyntaxError);
+}
+
+
+void
+PE_Parameter::InitData()
+{
+ pStati->SetCur(start);
+ aResultParamInfo.Empty();
+}
+
+void
+PE_Parameter::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Parameter::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Parameter::SpInit_Type()
+{
+ // Does nothing.
+}
+
+void
+PE_Parameter::SpInit_Variable()
+{
+ // Does nothing.
+}
+
+void
+PE_Parameter::SpReturn_Type()
+{
+ aResultParamInfo.nType = pSpuType->Child().Result_Type().Id();
+ pStati->SetCur(expectName);
+}
+
+void
+PE_Parameter::SpReturn_Variable()
+{
+ if (pSpuVariable->Child().Result_Pattern() > 0)
+ {
+ aResultParamInfo.sSizeExpression = pSpuVariable->Child().Result_SizeExpression();
+ aResultParamInfo.sInitExpression = pSpuVariable->Child().Result_InitExpression();
+ }
+}
+
+void
+PE_Parameter::On_start_Type(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_Parameter::On_start_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Parameter::On_start_Ellipse(const char *)
+{
+ SetTokenResult(done, pop_success);
+
+ aResultParamInfo.nType = Env().AryGate().Types().Tid_Ellipse();
+}
+
+void
+PE_Parameter::On_expectName_Identifier(const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName);
+
+ aResultParamInfo.sName = i_sText;
+}
+
+void
+PE_Parameter::On_expectName_ArrayBracket_Left(const char * i_sText)
+{
+ On_afterName_ArrayBracket_Left(i_sText);
+}
+
+void
+PE_Parameter::On_expectName_Bracket_Right(const char * i_sText)
+{
+ On_afterName_Bracket_Right(i_sText);
+}
+
+void
+PE_Parameter::On_expectName_Comma(const char * i_sText)
+{
+ On_afterName_Comma(i_sText);
+}
+
+void
+PE_Parameter::On_afterName_ArrayBracket_Left(const char *)
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_Parameter::On_afterName_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Parameter::On_afterName_Comma(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Parameter::On_afterName_Assign(const char *)
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_Parameter::On_finished_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Parameter::On_finished_Comma(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+
+} // namespace cpp
+
+
+
+
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_param.hxx b/autodoc/source/parser/cpp/pe_param.hxx
new file mode 100644
index 000000000000..07c602d6aee1
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_param.hxx
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_PARAM_HXX
+#define ADC_CPP_PE_PARAM_HXX
+
+// BASE CLASSES
+#include "cpp_pe.hxx"
+// USED SERVICES
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+
+
+
+
+namespace cpp
+{
+ class PE_Type;
+ class PE_Variable;
+
+
+
+
+class PE_Parameter : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ expectName,
+ afterName,
+ finished,
+ size_of_states
+ };
+ typedef ary::cpp::S_Parameter S_ParamInfo;
+
+ explicit PE_Parameter(
+ Cpp_PE * i_pParent );
+ ~PE_Parameter();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ ary::cpp::Type_id Result_FrontType() const;
+ const S_ParamInfo & Result_ParamInfo() const;
+
+ private:
+ typedef SubPe< PE_Parameter, PE_Type > SP_Type;
+ typedef SubPeUse< PE_Parameter, PE_Type > SPU_Type;
+ typedef SubPe< PE_Parameter, PE_Variable > SP_Variable;
+ typedef SubPeUse< PE_Parameter, PE_Variable > SPU_Variable;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void SpInit_Type(); // Type and Ignore.
+ void SpInit_Variable();
+ void SpReturn_Type();
+ void SpReturn_Variable();
+
+ void On_start_Type(const char * i_sText);
+ void On_start_Bracket_Right(const char * i_sText);
+ void On_start_Ellipse(const char * i_sText);
+
+ void On_expectName_Identifier(const char * i_sText);
+ void On_expectName_ArrayBracket_Left(const char * i_sText);
+ void On_expectName_Bracket_Right(const char * i_sText);
+ void On_expectName_Comma(const char * i_sText);
+
+ void On_afterName_ArrayBracket_Left(const char * i_sText);
+ void On_afterName_Bracket_Right(const char * i_sText);
+ void On_afterName_Comma(const char * i_sText);
+ void On_afterName_Assign(const char * i_sText);
+
+ void On_finished_Bracket_Right(const char * i_sText);
+ void On_finished_Comma(const char * i_sText);
+
+ // DATA
+ Dyn< PeStatusArray<PE_Parameter> >
+ pStati;
+
+ Dyn<SP_Type> pSpType;
+ Dyn<SPU_Type> pSpuType;
+ Dyn<SP_Variable> pSpVariable;
+ Dyn<SPU_Variable> pSpuVariable;
+
+ S_ParamInfo aResultParamInfo;
+};
+
+
+
+
+// IMPLEMENTATION
+inline ary::cpp::Type_id
+PE_Parameter::Result_FrontType() const
+{
+ return aResultParamInfo.nType;
+}
+
+inline const PE_Parameter::S_ParamInfo &
+PE_Parameter::Result_ParamInfo() const
+{
+ return aResultParamInfo;
+}
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/pe_tpltp.cxx b/autodoc/source/parser/cpp/pe_tpltp.cxx
new file mode 100644
index 000000000000..0993b7e587a8
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_tpltp.cxx
@@ -0,0 +1,175 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_tpltp.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+
+
+
+namespace cpp {
+
+
+
+PE_TemplateTop::PE_TemplateTop( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_TemplateTop> ),
+ // aResult_Parameters,
+ bCurIsConstant(false)
+{
+ Setup_StatusFunctions();
+}
+
+
+PE_TemplateTop::~PE_TemplateTop()
+{
+}
+
+void
+PE_TemplateTop::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_TemplateTop::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_TemplateTop>::F_Tok F_Tok;
+
+ static F_Tok stateF_start[] = { &PE_TemplateTop::On_start_Less };
+ static INT16 stateT_start[] = { Tid_Less };
+
+ static F_Tok stateF_expect_qualifier[]= { &PE_TemplateTop::On_expect_qualifier_ClassOrTypename,
+ &PE_TemplateTop::On_expect_qualifier_Greater,
+ &PE_TemplateTop::On_expect_qualifier_ClassOrTypename };
+ static INT16 stateT_expect_qualifier[]= { Tid_class,
+ Tid_Greater,
+ Tid_typename };
+
+ static F_Tok stateF_expect_name[] = { &PE_TemplateTop::On_expect_name_Identifier };
+ static INT16 stateT_expect_name[] = { Tid_Identifier };
+
+ static F_Tok stateF_expect_separator[]= { &PE_TemplateTop::On_expect_separator_Comma,
+ &PE_TemplateTop::On_expect_separator_Greater };
+ static INT16 stateT_expect_separator[]= { Tid_Comma,
+ Tid_Greater };
+
+ SEMPARSE_CREATE_STATUS(PE_TemplateTop, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_TemplateTop, expect_qualifier, On_expect_qualifier_Other);
+ SEMPARSE_CREATE_STATUS(PE_TemplateTop, expect_name, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_TemplateTop, expect_separator, Hdl_SyntaxError);
+}
+
+void
+PE_TemplateTop::InitData()
+{
+ pStati->SetCur(start);
+ csv::erase_container(aResult_Parameters);
+ bCurIsConstant = false;
+}
+
+void
+PE_TemplateTop::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_TemplateTop::Hdl_SyntaxError(const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_TemplateTop::On_start_Less( const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expect_qualifier);
+}
+
+void
+PE_TemplateTop::On_expect_qualifier_ClassOrTypename( const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expect_name);
+}
+
+void
+PE_TemplateTop::On_expect_qualifier_Greater(const char *)
+{
+ SetTokenResult(done, pop_success);
+}
+
+void
+PE_TemplateTop::On_expect_qualifier_Other( const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expect_name);
+
+ bCurIsConstant = true;
+}
+
+void
+PE_TemplateTop::On_expect_name_Identifier( const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expect_separator);
+
+ StreamLock sl(50);
+ if ( NOT bCurIsConstant )
+ {
+ String sText( sl() << "typename " << i_sText << c_str );
+ aResult_Parameters.push_back(sText);
+ }
+ else //
+ {
+ String sText( sl() << "constant " << i_sText << c_str );
+ aResult_Parameters.push_back(sText);
+ bCurIsConstant = false;
+ } // endif
+}
+
+void
+PE_TemplateTop::On_expect_separator_Comma( const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expect_qualifier);
+}
+
+void
+PE_TemplateTop::On_expect_separator_Greater( const char *)
+{
+ SetTokenResult(done, pop_success);
+}
+
+
+
+
+} // namespace cpp
diff --git a/autodoc/source/parser/cpp/pe_tpltp.hxx b/autodoc/source/parser/cpp/pe_tpltp.hxx
new file mode 100644
index 000000000000..31f352a7ae56
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_tpltp.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_TPLTP_HXX
+#define ADC_CPP_PE_TPLTP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+
+
+namespace cpp {
+
+
+
+class PE_TemplateTop : public cpp::Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ expect_qualifier,
+ expect_name,
+ expect_separator,
+ size_of_states
+ };
+ PE_TemplateTop(
+ Cpp_PE * i_pParent );
+ ~PE_TemplateTop();
+
+ const StringVector &
+ Result_Parameters() const;
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ private:
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError(const char *);
+
+
+ void On_start_Less(const char *);
+
+ void On_expect_qualifier_ClassOrTypename(const char *);
+ void On_expect_qualifier_Greater(const char *);
+ void On_expect_qualifier_Other(const char *);
+
+ void On_expect_name_Identifier(const char *);
+
+ void On_expect_separator_Comma(const char *);
+ void On_expect_separator_Greater(const char *);
+
+ // DATA
+ Dyn< PeStatusArray<PE_TemplateTop> >
+ pStati;
+
+ StringVector
+ aResult_Parameters;
+ bool bCurIsConstant;
+};
+
+
+
+// IMPLEMENTATION
+
+inline const StringVector &
+PE_TemplateTop::Result_Parameters() const
+ { return aResult_Parameters; }
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/pe_tydef.cxx b/autodoc/source/parser/cpp/pe_tydef.cxx
new file mode 100644
index 000000000000..9361a5bc7740
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_tydef.cxx
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_tydef.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_type.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <all_toks.hxx>
+#include "pe_type.hxx"
+
+
+namespace cpp {
+
+
+PE_Typedef::PE_Typedef(Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Typedef> ),
+ // pSpType,
+ // pSpuType,
+ // sName
+ nType(0)
+{
+ Setup_StatusFunctions();
+
+ pSpType = new SP_Type(*this);
+ pSpuType = new SPU_Type(*pSpType, 0, &PE_Typedef::SpReturn_Type);
+}
+
+PE_Typedef::~PE_Typedef()
+{
+}
+
+void
+PE_Typedef::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Typedef::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Typedef>::F_Tok F_Tok;
+ static F_Tok stateF_start[] = { &PE_Typedef::On_start_typedef };
+ static INT16 stateT_start[] = { Tid_typedef };
+
+ static F_Tok stateF_expectName[] = { &PE_Typedef::On_expectName_Identifier };
+ static INT16 stateT_expectName[] = { Tid_Identifier };
+
+ static F_Tok stateF_afterName[] = { &PE_Typedef::On_afterName_Semicolon };
+ static INT16 stateT_afterName[] = { Tid_Semicolon };
+
+ SEMPARSE_CREATE_STATUS(PE_Typedef, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Typedef, expectName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Typedef, afterName, Hdl_SyntaxError);
+}
+
+void
+PE_Typedef::InitData()
+{
+ pStati->SetCur(start);
+
+ sName.clear();
+ nType = 0;
+}
+
+void
+PE_Typedef::TransferData()
+{
+ pStati->SetCur(size_of_states);
+
+ ary::cpp::Typedef &
+ rTypedef = Env().AryGate().Ces().Store_Typedef(
+ Env().Context(), sName, nType );
+ Env().Event_Store_Typedef(rTypedef);
+}
+
+void
+PE_Typedef::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Typedef::SpReturn_Type()
+{
+ pStati->SetCur(expectName);
+
+ nType = pSpuType->Child().Result_Type().Id();
+}
+
+void
+PE_Typedef::On_start_typedef( const char * )
+{
+ pSpuType->Push(done);
+}
+
+void
+PE_Typedef::On_expectName_Identifier( const char * i_sText )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName);
+
+ sName = i_sText;
+}
+
+void
+PE_Typedef::On_afterName_Semicolon( const char * )
+{
+ SetTokenResult(done, pop_success);
+}
+
+} // namespace cpp
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_tydef.hxx b/autodoc/source/parser/cpp/pe_tydef.hxx
new file mode 100644
index 000000000000..7a09eb01333b
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_tydef.hxx
@@ -0,0 +1,90 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_TYDEF_HXX
+#define ADC_CPP_PE_TYDEF_HXX
+
+// BASE CLASSES
+#include "cpp_pe.hxx"
+// USED SERVICES
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+
+
+namespace cpp
+{
+ class PE_Type;
+
+
+
+
+class PE_Typedef : public cpp::Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ expectName,
+ afterName,
+ size_of_states
+ };
+ PE_Typedef(
+ Cpp_PE * i_pParent );
+ ~PE_Typedef();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+ private:
+ typedef SubPe< PE_Typedef, PE_Type > SP_Type;
+ typedef SubPeUse< PE_Typedef, PE_Type> SPU_Type;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void SpReturn_Type();
+
+ void On_start_typedef( const char * );
+ void On_expectName_Identifier( const char * );
+ void On_afterName_Semicolon( const char * );
+
+ // DATA
+ Dyn< PeStatusArray<PE_Typedef> >
+ pStati;
+ Dyn<SP_Type> pSpType;
+ Dyn<SPU_Type> pSpuType;
+
+ String sName;
+ ary::cpp::Type_id nType;
+};
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/pe_type.cxx b/autodoc/source/parser/cpp/pe_type.cxx
new file mode 100644
index 000000000000..bf1eb2c69c7e
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_type.cxx
@@ -0,0 +1,554 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_type.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/cpp/inpcontx.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_namesp.hxx>
+#include <ary/cpp/cp_type.hxx>
+#include "pe_class.hxx"
+#include "pe_enum.hxx"
+#include <x_parse.hxx>
+
+
+
+class NullType : public ary::cpp::Type
+{
+ private:
+ virtual void do_Accept(
+ csv::ProcessorIfc & io_processor ) const;
+ virtual ary::ClassId
+ get_AryClass() const;
+ virtual bool inq_IsConst() const;
+ virtual void inq_Get_Text(
+ StreamStr & o_rPreName,
+ StreamStr & o_rName,
+ StreamStr & o_rPostName,
+ const ary::cpp::Gate &
+ i_rGate ) const;
+};
+
+void
+NullType::do_Accept(csv::ProcessorIfc & ) const
+{
+ // Does nothing.
+}
+
+ary::ClassId
+NullType::get_AryClass() const
+{
+ return 0;
+}
+
+bool
+NullType::inq_IsConst() const
+{
+ return true;
+}
+
+void
+NullType::inq_Get_Text( StreamStr & ,
+ StreamStr & ,
+ StreamStr & ,
+ const ary::cpp::Gate & ) const
+{
+ // Does nothing.
+}
+
+
+
+
+namespace cpp
+{
+
+
+inline bool
+PE_Type::IsType() const
+ { return eResult_KindOf == is_type; }
+
+
+PE_Type::PE_Type( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Type> ),
+ pSpType(0),
+ pSpuType_TemplateParameter(0),
+ // pSpClass,
+ // pSpuClass,
+ // pSpEnum,
+ // pSpuEnum,
+ pType(0),
+ pCurTemplate_ParameterList(0),
+ // sOwningClassName,
+ // sParsedClass_Name,
+ pResult_Type(0),
+ eResult_KindOf(is_none),
+ bIsCastOperatorType(false)
+{
+ Setup_StatusFunctions();
+
+ pSpType = new SP_Type(*this);
+ pSpClass = new SP_Class(*this);
+ pSpEnum = new SP_Enum(*this);
+
+ pSpuType_TemplateParameter
+ = new SPU_Type( *pSpType, 0,
+ &PE_Type::SpReturn_Type_TemplateParameter );
+ pSpuClass = new SPU_Class( *pSpClass, 0,
+ & PE_Type::SpReturn_Class );
+ pSpuEnum = new SPU_Enum( *pSpEnum, 0,
+ & PE_Type::SpReturn_Enum );
+}
+
+PE_Type::~PE_Type()
+{
+}
+
+void
+PE_Type::Init_AsCastOperatorType()
+{
+ bIsCastOperatorType = true;
+}
+
+void
+PE_Type::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Type::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Type>::F_Tok F_Tok;
+ static F_Tok stateF_start[] = { &PE_Type::On_start_Identifier,
+ &PE_Type::On_start_class,
+ &PE_Type::On_start_class,
+ &PE_Type::On_start_class,
+ &PE_Type::On_start_enum,
+ &PE_Type::On_start_const,
+ &PE_Type::On_start_volatile,
+ &PE_Type::On_start_Bracket_Right,
+ &PE_Type::On_start_DoubleColon,
+ &PE_Type::On_start_typename,
+ &PE_Type::On_start_BuiltInType,
+ &PE_Type::On_start_TypeSpecializer };
+ static INT16 stateT_start[] = { Tid_Identifier,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+ Tid_enum,
+ Tid_const,
+ Tid_volatile,
+ Tid_Bracket_Right,
+ Tid_DoubleColon,
+ Tid_typename,
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_expect_namesegment[] = { &PE_Type::On_expect_namesegment_Identifier,
+ &PE_Type::On_expect_namesegment_Identifier };
+ static INT16 stateT_expect_namesegment[] = { Tid_Identifier,
+ Tid_BuiltInType };
+
+ static F_Tok stateF_after_namesegment[] = { &PE_Type::On_after_namesegment_const,
+ &PE_Type::On_after_namesegment_volatile,
+ &PE_Type::On_after_namesegment_Bracket_Left,
+ &PE_Type::On_after_namesegment_DoubleColon,
+ &PE_Type::On_after_namesegment_Less,
+ &PE_Type::On_after_namesegment_Asterix,
+ &PE_Type::On_after_namesegment_AmpersAnd };
+ static INT16 stateT_after_namesegment[] = { Tid_const,
+ Tid_volatile,
+ Tid_Bracket_Left,
+ Tid_DoubleColon,
+ Tid_Less,
+ Tid_Asterix,
+ Tid_AmpersAnd };
+
+ static F_Tok stateF_afterclass_expect_semicolon[] =
+ { &PE_Type::On_afterclass_expect_semicolon_Semicolon };
+ static INT16 stateT_afterclass_expect_semicolon[] =
+ { Tid_Semicolon };
+
+ static F_Tok stateF_within_template[] = { &PE_Type::On_within_template_Comma,
+ &PE_Type::On_within_template_Greater,
+ &PE_Type::On_within_template_Constant };
+ static INT16 stateT_within_template[] = { Tid_Comma,
+ Tid_Greater,
+ Tid_Constant };
+
+ static F_Tok stateF_within_indirection[] = { &PE_Type::On_within_indirection_const,
+ &PE_Type::On_within_indirection_volatile,
+ &PE_Type::On_within_indirection_Asterix,
+ &PE_Type::On_within_indirection_AmpersAnd };
+ static INT16 stateT_within_indirection[] = { Tid_const,
+ Tid_volatile,
+ Tid_Asterix,
+ Tid_AmpersAnd };
+
+ SEMPARSE_CREATE_STATUS(PE_Type, start, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Type, expect_namesegment, On_EndOfType);
+ SEMPARSE_CREATE_STATUS(PE_Type, after_namesegment, On_EndOfType);
+ SEMPARSE_CREATE_STATUS(PE_Type, afterclass_expect_semicolon, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Type, within_template, On_within_template_TypeStart);
+ SEMPARSE_CREATE_STATUS(PE_Type, within_indirection, On_EndOfType);
+}
+
+void
+PE_Type::InitData()
+{
+ pStati->SetCur(start);
+
+ ary::cpp::Ce_id
+ scope_id = Env().Context().CurClass() != 0
+ ? Env().Context().CurClass()->CeId()
+ : Env().Context().CurNamespace().CeId();
+
+ pType = new ary::cpp::UsedType(scope_id);
+ pCurTemplate_ParameterList = 0;
+ sOwningClassName
+ = Env().Context().CurClass() != 0
+ ? Env().Context().CurClass()->LocalName().c_str()
+ : "";
+ sParsedClass_Name.clear();
+ pResult_Type = 0;
+ eResult_KindOf = is_type;
+ bIsCastOperatorType = false;
+}
+
+void
+PE_Type::TransferData()
+{
+ pStati->SetCur(size_of_states);
+
+ if ( IsType() )
+ pResult_Type = & Env().AryGate().Types().CheckIn_UsedType(
+ Env().Context(),
+ *pType.Release() );
+ else
+ pResult_Type = new NullType;
+}
+
+void
+PE_Type::Hdl_SyntaxError( const char * i_sText )
+{
+ StdHandlingOfSyntaxError( i_sText );
+}
+
+void
+PE_Type::SpReturn_Type_TemplateParameter()
+{
+ if ( pSpuType_TemplateParameter->Child().Result_KindOf() != is_type )
+ throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
+
+ pCurTemplate_ParameterList->AddParam_Type(
+ pSpuType_TemplateParameter->Child().Result_Type().TypeId() );
+}
+
+void
+PE_Type::SpReturn_Class()
+{
+ switch ( pSpuClass->Child().Result_KindOf() )
+ {
+ case PE_Class::is_declaration:
+ pStati->SetCur(afterclass_expect_semicolon);
+ eResult_KindOf = is_explicit_class_declaration;
+ break;
+ case PE_Class::is_implicit_declaration:
+ pStati->SetCur(after_namesegment);
+ pType->Add_NameSegment(
+ pSpuClass->Child().Result_LocalName() );
+ break;
+ case PE_Class::is_predeclaration:
+ pStati->SetCur(afterclass_expect_semicolon);
+ eResult_KindOf = is_class_predeclaration;
+ break;
+ case PE_Class::is_qualified_typename:
+ pStati->SetCur(after_namesegment);
+ pType->Add_NameSegment(
+ pSpuClass->Child().Result_FirstNameSegment() );
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_Type::SpReturn_Enum()
+{
+ switch ( pSpuEnum->Child().Result_KindOf() )
+ {
+ case PE_Enum::is_declaration:
+ pStati->SetCur(afterclass_expect_semicolon);
+ eResult_KindOf = is_explicit_enum_declaration;
+ break;
+ case PE_Enum::is_implicit_declaration:
+ pStati->SetCur(after_namesegment);
+ pType->Add_NameSegment(
+ pSpuEnum->Child().Result_LocalName() );
+ break;
+ case PE_Enum::is_qualified_typename:
+ pStati->SetCur(after_namesegment);
+ pType->Add_NameSegment(
+ pSpuEnum->Child().Result_FirstNameSegment() );
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_Type::On_EndOfType(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Type::On_start_Identifier( const char * i_sText )
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(after_namesegment);
+
+ pType->Add_NameSegment(i_sText);
+}
+
+void
+PE_Type::On_start_class(const char *)
+{
+ pSpuClass->Push(not_done);
+}
+
+void
+PE_Type::On_start_enum(const char *)
+{
+ pSpuEnum->Push(done);
+}
+
+void
+PE_Type::On_start_const(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Const();
+}
+
+void
+PE_Type::On_start_volatile(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Volatile();
+}
+
+void
+PE_Type::On_start_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done,pop_success);
+
+ eResult_KindOf = is_none;
+}
+
+void
+PE_Type::On_start_DoubleColon(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Absolute();
+}
+
+void
+PE_Type::On_start_BuiltInType(const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(after_namesegment);
+ pType->Set_BuiltIn(i_sText);
+}
+
+void
+PE_Type::On_start_TypeSpecializer(const char * i_sText)
+{
+ SetTokenResult(done,stay);
+ if (*i_sText == 'u') {
+ pType->Set_Unsigned();
+ }
+ else if (*i_sText == 's') {
+ pType->Set_Signed();
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_Type::On_start_typename(const char *)
+{
+ SetTokenResult(done,stay);
+}
+
+void
+PE_Type::On_expect_namesegment_Identifier(const char * i_sText)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(after_namesegment);
+ pType->Add_NameSegment(i_sText);
+}
+
+void
+PE_Type::On_after_namesegment_const(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Const();
+}
+
+void
+PE_Type::On_after_namesegment_volatile(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Volatile();
+}
+
+void
+PE_Type::On_after_namesegment_Bracket_Left(const char * i_sText)
+{
+ if ( bIsCastOperatorType )
+ {
+ SetTokenResult(not_done, pop_success);
+ }
+ else if ( pType->LocalName() == sOwningClassName )
+ {
+ SetTokenResult(not_done,pop_success);
+ eResult_KindOf = is_constructor;
+
+ }
+ else //
+ {
+ On_EndOfType(i_sText);
+ } // endif
+}
+
+void
+PE_Type::On_after_namesegment_DoubleColon(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(expect_namesegment);
+}
+
+void
+PE_Type::On_after_namesegment_Less(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(within_template);
+
+ pCurTemplate_ParameterList = & pType->Enter_Template();
+}
+
+void
+PE_Type::On_after_namesegment_Asterix(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(within_indirection);
+ pType->Add_PtrLevel();
+}
+
+void
+PE_Type::On_after_namesegment_AmpersAnd(const char *)
+{
+ SetTokenResult(done,pop_success);
+ pType->Set_Reference();
+}
+
+void
+PE_Type::On_afterclass_expect_semicolon_Semicolon(const char *)
+{
+ csv_assert( NOT IsType() );
+ SetTokenResult(not_done,pop_success);
+}
+
+void
+PE_Type::On_within_template_Comma(const char *)
+{
+ SetTokenResult(done,stay);
+}
+
+void
+PE_Type::On_within_template_Greater(const char *)
+{
+ SetTokenResult(done,stay);
+ pStati->SetCur(after_namesegment);
+
+ pCurTemplate_ParameterList = 0;
+}
+
+void
+PE_Type::On_within_template_Constant(const char * i_sText)
+{
+ // KORR_FUTURE
+ Cerr() << "Templates with constants as parameters are not yet supported by Autodoc" << Endl();
+ Hdl_SyntaxError(i_sText);
+}
+
+void
+PE_Type::On_within_template_TypeStart(const char *)
+{
+ pSpuType_TemplateParameter->Push(not_done);
+}
+
+void
+PE_Type::On_within_indirection_const(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Const();
+}
+
+void
+PE_Type::On_within_indirection_volatile(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Set_Volatile();
+}
+
+void
+PE_Type::On_within_indirection_Asterix(const char *)
+{
+ SetTokenResult(done,stay);
+ pType->Add_PtrLevel();
+}
+
+void
+PE_Type::On_within_indirection_AmpersAnd(const char *)
+{
+ SetTokenResult(done,pop_success);
+ pType->Set_Reference();
+}
+
+} // namespace cpp
+
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_type.hxx b/autodoc/source/parser/cpp/pe_type.hxx
new file mode 100644
index 000000000000..8bd3dfb093b4
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_type.hxx
@@ -0,0 +1,185 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_TYPE_HXX
+#define ADC_CPP_PE_TYPE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <ary/cpp/usedtype.hxx>
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+
+
+
+namespace cpp {
+
+class PE_Class;
+class PE_Enum;
+class PE_Expression;
+
+class PE_Type : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ expect_namesegment,
+ after_namesegment,
+ afterclass_expect_semicolon,
+ within_template,
+ within_indirection,
+ size_of_states
+ };
+ enum E_KindOfResult
+ {
+ is_none,
+ is_type,
+ is_constructor,
+ is_explicit_class_declaration,
+ is_class_predeclaration,
+ is_explicit_enum_declaration
+ };
+
+ PE_Type(
+ Cpp_PE * i_pParent );
+ ~PE_Type();
+
+ void Init_AsCastOperatorType();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ E_KindOfResult Result_KindOf() const;
+ const ary::cpp::Type &
+ Result_Type() const;
+ private:
+ typedef SubPe< PE_Type, PE_Type > SP_Type;
+ typedef SubPe< PE_Type, PE_Class > SP_Class;
+ typedef SubPe< PE_Type, PE_Enum > SP_Enum;
+ typedef SubPeUse< PE_Type, PE_Type > SPU_Type;
+ typedef SubPeUse< PE_Type, PE_Class > SPU_Class;
+ typedef SubPeUse< PE_Type, PE_Enum > SPU_Enum;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError( const char *);
+
+ void SpReturn_Type_TemplateParameter();
+ void SpReturn_Class();
+ void SpReturn_Enum();
+
+ void On_EndOfType(const char *);
+
+ void On_start_Identifier(const char *);
+ void On_start_class(const char *);
+ void On_start_enum(const char *);
+ void On_start_const(const char *);
+ void On_start_volatile(const char *);
+ void On_start_Bracket_Right(const char *);
+ void On_start_DoubleColon(const char *);
+ void On_start_BuiltInType(const char *);
+ void On_start_TypeSpecializer(const char *);
+ void On_start_typename(const char *);
+
+ void On_expect_namesegment_Identifier(const char *);
+
+ void On_after_namesegment_const(const char *);
+ void On_after_namesegment_volatile(const char *);
+ void On_after_namesegment_Bracket_Left(const char *);
+ void On_after_namesegment_DoubleColon(const char *);
+ void On_after_namesegment_Less(const char *);
+ void On_after_namesegment_Asterix(const char *);
+ void On_after_namesegment_AmpersAnd(const char *);
+
+ void On_afterclass_expect_semicolon_Semicolon(const char *);
+
+ void On_within_template_Comma(const char *);
+ void On_within_template_Greater(const char *);
+ void On_within_template_Constant(const char *);
+ void On_within_template_TypeStart(const char *);
+
+ void On_within_indirection_const(const char *);
+ void On_within_indirection_volatile(const char *);
+ void On_within_indirection_Asterix(const char *);
+ void On_within_indirection_AmpersAnd(const char *);
+
+ bool IsType() const;
+
+ // DATA
+ Dyn< PeStatusArray<PE_Type> >
+ pStati;
+
+ Dyn<SP_Type> pSpType;
+ Dyn<SPU_Type> pSpuType_TemplateParameter;
+ Dyn<SP_Class> pSpClass;
+ Dyn<SPU_Class> pSpuClass;
+ Dyn<SP_Enum> pSpEnum;
+ Dyn<SPU_Enum> pSpuEnum;
+
+ Dyn<ary::cpp::UsedType>
+ pType;
+ ary::cpp::ut::List_TplParameter *
+ pCurTemplate_ParameterList;
+ String sOwningClassName;
+ String sParsedClass_Name;
+
+ const ary::cpp::Type *
+ pResult_Type;
+ E_KindOfResult eResult_KindOf;
+ bool bIsCastOperatorType;
+};
+
+
+
+// IMPLEMENTATION
+
+
+inline const ary::cpp::Type &
+PE_Type::Result_Type() const
+ { csv_assert(pResult_Type != 0);
+ return *pResult_Type; }
+inline PE_Type::E_KindOfResult
+PE_Type::Result_KindOf() const
+ { return eResult_KindOf; }
+
+
+} // namespace cpp
+
+
+#endif
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_vafu.cxx b/autodoc/source/parser/cpp/pe_vafu.cxx
new file mode 100644
index 000000000000..08026c1f00a0
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_vafu.cxx
@@ -0,0 +1,649 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_vafu.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <ary/cpp/c_class.hxx>
+#include <ary/cpp/c_vari.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+#include <ary/cpp/cp_ce.hxx>
+#include <ary/cpp/inpcontx.hxx>
+#include "pe_type.hxx"
+#include "pe_vari.hxx"
+#include "pe_funct.hxx"
+#include "pe_ignor.hxx"
+#include <x_parse.hxx>
+
+
+
+
+namespace cpp {
+
+
+
+//*********************** PE_VarFunc ***********************//
+
+
+PE_VarFunc::PE_VarFunc( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_VarFunc> ),
+ // pSpType,
+ // pSpuType,
+ // pSpVariable,
+ // pSpuVariable,
+ // pSpFunction,
+ // pSpuFunctionStd,
+ // pSpuFunctionCtor,
+ // pSpuFunctionDtor,
+ // pSpuFunctionCastOperator,
+ // pSpuFunctionNormalOperator
+ // pSpIgnore,
+ // pSpuIgnore,
+ nCounter_TemplateBrackets(0),
+ bInDestructor(false),
+ // aResultIds,
+ nResultFrontType(0),
+ eResultType(result_unknown),
+ bVirtual(false),
+ bStatic(false),
+ bExtern(false),
+ bExternC(false),
+ bMutable(false),
+ bInline(false),
+ bRegister(false),
+ bExplicit(false)
+{
+ Setup_StatusFunctions();
+
+ pSpType = new SP_Type(*this);
+ pSpuType = new SPU_Type(*pSpType, 0, &PE_VarFunc::SpReturn_Type);
+ pSpVariable = new SP_Variable(*this);
+ pSpuVariable = new SPU_Variable(*pSpVariable, 0, &PE_VarFunc::SpReturn_Variable);
+ pSpFunction = new SP_Function(*this);
+ pSpuFunctionStd = new SPU_Function(*pSpFunction, &PE_VarFunc::SpInit_FunctionStd, &PE_VarFunc::SpReturn_FunctionStd);
+ pSpuFunctionCtor = new SPU_Function(*pSpFunction, &PE_VarFunc::SpInit_FunctionCtor, &PE_VarFunc::SpReturn_FunctionStd);
+ pSpuFunctionDtor = new SPU_Function(*pSpFunction, &PE_VarFunc::SpInit_FunctionDtor, &PE_VarFunc::SpReturn_FunctionStd);
+ pSpuFunctionCastOperator
+ = new SPU_Function(*pSpFunction, &PE_VarFunc::SpInit_FunctionCastOperator, &PE_VarFunc::SpReturn_FunctionStd);
+ pSpuFunctionNormalOperator
+ = new SPU_Function(*pSpFunction, &PE_VarFunc::SpInit_FunctionNormalOperator, &PE_VarFunc::SpReturn_FunctionStd);
+ pSpIgnore = new SP_Ignore(*this);
+ pSpuIgnore = new SPU_Ignore(*pSpIgnore, 0, &PE_VarFunc::SpReturn_Ignore);
+}
+
+PE_VarFunc::~PE_VarFunc()
+{
+}
+
+void
+PE_VarFunc::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_VarFunc::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_VarFunc>::F_Tok F_Tok;
+
+ static F_Tok stateF_start[] = { &PE_VarFunc::On_start_Identifier,
+ &PE_VarFunc::On_start_operator,
+ &PE_VarFunc::On_start_TypeKey,
+ &PE_VarFunc::On_start_TypeKey,
+ &PE_VarFunc::On_start_TypeKey,
+ &PE_VarFunc::On_start_TypeKey,
+ &PE_VarFunc::On_start_virtual,
+ &PE_VarFunc::On_start_Tilde,
+ &PE_VarFunc::On_start_const,
+ &PE_VarFunc::On_start_volatile,
+ &PE_VarFunc::On_start_extern,
+ &PE_VarFunc::On_start_static,
+ &PE_VarFunc::On_start_mutable,
+ &PE_VarFunc::On_start_register,
+ &PE_VarFunc::On_start_inline,
+ &PE_VarFunc::On_start_explicit,
+ &PE_VarFunc::On_start_Bracket_Right,
+ &PE_VarFunc::On_start_Identifier,
+ &PE_VarFunc::On_start_typename,
+ &PE_VarFunc::On_start_Identifier,
+ &PE_VarFunc::On_start_Identifier };
+ static INT16 stateT_start[] = { Tid_Identifier,
+ Tid_operator,
+ Tid_class,
+ Tid_struct,
+ Tid_union,
+ Tid_enum,
+ Tid_virtual,
+ Tid_Tilde,
+ Tid_const,
+ Tid_volatile,
+ Tid_extern,
+ Tid_static,
+ Tid_mutable,
+ Tid_register,
+ Tid_inline,
+ Tid_explicit,
+ Tid_Bracket_Right,
+ Tid_DoubleColon,
+ Tid_typename,
+ Tid_BuiltInType,
+ Tid_TypeSpecializer };
+
+ static F_Tok stateF_expectCtor[] = { &PE_VarFunc::On_expectCtor_Bracket_Left };
+ static INT16 stateT_expectCtor[] = { Tid_Bracket_Left };
+
+ static F_Tok stateF_afterClassDecl[] = { &PE_VarFunc::On_afterClassDecl_Semicolon };
+ static INT16 stateT_afterClassDecl[] = { Tid_Semicolon };
+
+ static F_Tok stateF_expectName[] = { &PE_VarFunc::On_expectName_Identifier,
+ &PE_VarFunc::On_expectName_operator,
+ &PE_VarFunc::On_expectName_Bracket_Left };
+ static INT16 stateT_expectName[] = { Tid_Identifier,
+ Tid_operator,
+ Tid_Bracket_Left };
+
+ static F_Tok stateF_afterName[] = { &PE_VarFunc::On_afterName_ArrayBracket_Left,
+ &PE_VarFunc::On_afterName_Bracket_Left,
+ &PE_VarFunc::On_afterName_DoubleColon,
+ &PE_VarFunc::On_afterName_Semicolon,
+ &PE_VarFunc::On_afterName_Comma,
+ &PE_VarFunc::On_afterName_Assign,
+ &PE_VarFunc::On_afterName_Less };
+ static INT16 stateT_afterName[] = { Tid_ArrayBracket_Left,
+ Tid_Bracket_Left,
+ Tid_DoubleColon,
+ Tid_Semicolon,
+ Tid_Comma,
+ Tid_Assign,
+ Tid_Less };
+
+ static F_Tok stateF_afterName_inErraneousTemplate[] =
+ { &PE_VarFunc::On_afterName_inErraneousTemplate_Less,
+ &PE_VarFunc::On_afterName_inErraneousTemplate_Greater };
+ static INT16 stateT_afterName_inErraneousTemplate[] =
+ { Tid_Less,
+ Tid_Greater };
+
+ static F_Tok stateF_finished[] = { &PE_VarFunc::On_finished_Semicolon,
+ &PE_VarFunc::On_finished_Comma };
+ static INT16 stateT_finished[] = { Tid_Semicolon,
+ Tid_Comma };
+
+ static F_Tok stateF_finishedIncludingFunctionImplementation[] =
+ { &PE_VarFunc::On_finishedIncludingFunctionImplementation_Default
+ };
+ static INT16 stateT_finishedIncludingFunctionImplementation[] =
+ { Tid_BuiltInType // Just to have one entry, but it is default handled, too.
+ };
+
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, start, Hdl_UnknownToken);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, expectCtor, Hdl_UnknownToken);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, afterClassDecl, Hdl_UnknownToken);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, expectName, Hdl_UnknownToken);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, afterName, Hdl_UnknownToken);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, afterName_inErraneousTemplate, On_afterName_inErraneousTemplate_Default);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, finished, On_finished_Default);
+ SEMPARSE_CREATE_STATUS(PE_VarFunc, finishedIncludingFunctionImplementation, On_finishedIncludingFunctionImplementation_Default);
+}
+
+void
+PE_VarFunc::InitData()
+{
+ pStati->SetCur(start);
+ csv::erase_container(aResultIds);
+
+ nCounter_TemplateBrackets = 0;
+ bInDestructor = false;
+
+ nResultFrontType = 0;
+ eResultType = result_unknown;
+ sName.clear();
+ bVirtual = ary::cpp::VIRTUAL_none;
+ bStatic = false;
+ bExtern = false;
+ bExternC = false;
+ bMutable = false;
+ bInline = false;
+ bRegister = false;
+ bExplicit = false;
+}
+
+void
+PE_VarFunc::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_VarFunc::Hdl_UnknownToken( const char *)
+{
+ pSpuIgnore->Push(not_done);
+}
+
+void
+PE_VarFunc::SpInit_FunctionStd()
+{
+ if ( nResultFrontType.IsValid() AND sName.length() > 0 )
+ {
+ pSpuFunctionStd->Child().Init_Std(
+ sName,
+ nResultFrontType,
+ bVirtual,
+ CreateFunctionFlags() );
+ }
+ else
+ {
+ throw X_Parser( X_Parser::x_UnexpectedToken,
+ "",
+ Env().CurFileName(),
+ Env().LineCount() );
+ }
+}
+
+void
+PE_VarFunc::SpInit_FunctionCtor()
+{
+ ary::cpp::Class * pOwnerClass = Env().Context().CurClass();
+ csv_assert( pOwnerClass != 0 );
+ pSpuFunctionStd->Child().Init_Ctor( pOwnerClass->LocalName(),
+ CreateFunctionFlags() );
+}
+
+void
+PE_VarFunc::SpInit_FunctionDtor()
+{
+ pSpuFunctionStd->Child().Init_Dtor( sName,
+ bVirtual,
+ CreateFunctionFlags() );
+}
+
+void
+PE_VarFunc::SpInit_FunctionCastOperator()
+{
+ pSpuFunctionStd->Child().Init_CastOperator( bVirtual,
+ CreateFunctionFlags() );
+}
+
+void
+PE_VarFunc::SpInit_FunctionNormalOperator()
+{
+ pSpuFunctionStd->Child().Init_NormalOperator( nResultFrontType,
+ bVirtual,
+ CreateFunctionFlags() );
+}
+
+void
+PE_VarFunc::SpReturn_Type()
+{
+ switch ( pSpuType->Child().Result_KindOf() )
+ {
+ case PE_Type::is_type:
+ pStati->SetCur(expectName);
+ nResultFrontType
+ = pSpuType->Child().Result_Type().Id();
+ break;
+ case PE_Type::is_constructor:
+ pStati->SetCur(expectCtor);
+ eResultType = result_function;
+ break;
+ case PE_Type::is_explicit_class_declaration:
+ case PE_Type::is_explicit_enum_declaration:
+ pStati->SetCur(afterClassDecl);
+ eResultType = result_ignore;
+ break;
+ case PE_Type::is_class_predeclaration:
+ pStati->SetCur(afterClassDecl);
+ eResultType = result_ignore;
+ break;
+ default:
+ ;
+ }
+}
+
+void
+PE_VarFunc::SpReturn_Variable()
+{
+ typedef ary::cpp::VariableFlags VarFlags;
+
+ if ( NOT bExtern )
+ {
+ VarFlags aFlags( UINT16(
+ ( bStatic AND Env().Context().CurClass() == 0 ? VarFlags::f_static_local : 0 )
+ | ( bStatic AND Env().Context().CurClass() != 0 ? VarFlags::f_static_member : 0 )
+ | ( bMutable ? VarFlags::f_mutable : 0 ) )
+ );
+
+// ary::S_InitData aData( 0, Env().CurCeSpace().Id(), i_sName, 0 );
+ ary::cpp::Variable & rCurParsedVariable
+ = Env().AryGate().Ces().Store_Variable( Env().Context(),
+ sName,
+ nResultFrontType,
+ aFlags,
+ pSpuVariable->Child().Result_SizeExpression(),
+ pSpuVariable->Child().Result_InitExpression() );
+ Env().Event_Store_Variable(rCurParsedVariable);
+ aResultIds.push_back( rCurParsedVariable.CeId() );
+ eResultType = result_variable;
+ }
+ else if (bExtern)
+ {
+ eResultType = result_ignore;
+ }
+
+ pStati->SetCur(finished);
+}
+
+void
+PE_VarFunc::SpReturn_FunctionStd()
+{
+ if ( (NOT bExtern) OR bExternC )
+ {
+ aResultIds.push_back(pSpuFunctionStd->Child().Result_Id());
+ eResultType = result_function;
+ }
+ else
+ {
+ eResultType = result_ignore;
+ }
+
+ if ( NOT pSpuFunctionStd->Child().Result_WithImplementation() )
+ pStati->SetCur(finished);
+ else
+ pStati->SetCur(finishedIncludingFunctionImplementation);
+}
+
+void
+PE_VarFunc::SpReturn_Ignore()
+{
+ pStati->SetCur(finished);
+}
+
+void
+PE_VarFunc::On_start_Identifier(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_VarFunc::On_start_operator(const char *)
+{
+ pSpuFunctionCastOperator->Push(done);
+}
+
+void
+PE_VarFunc::On_start_TypeKey(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_VarFunc::On_start_virtual(const char *)
+{
+ SetTokenResult(done, stay);
+ bVirtual = true;
+}
+
+void
+PE_VarFunc::On_start_Tilde(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectName);
+
+ bInDestructor = true;
+}
+
+void
+PE_VarFunc::On_start_const(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_VarFunc::On_start_volatile(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_VarFunc::On_start_extern(const char *)
+{
+ SetTokenResult(done, stay);
+ bExtern = true;
+}
+
+void
+PE_VarFunc::On_start_static(const char *)
+{
+ SetTokenResult(done, stay);
+ bStatic = true;
+}
+
+void
+PE_VarFunc::On_start_mutable(const char *)
+{
+ SetTokenResult(done, stay);
+ bMutable = true;
+}
+
+void
+PE_VarFunc::On_start_register(const char *)
+{
+ SetTokenResult(done, stay);
+ bRegister = true;
+}
+
+void
+PE_VarFunc::On_start_inline(const char *)
+{
+ SetTokenResult(done, stay);
+
+ bInline = true;
+}
+
+void
+PE_VarFunc::On_start_explicit(const char *)
+{
+ SetTokenResult(done, stay);
+ bExplicit = true;
+}
+
+void
+PE_VarFunc::On_start_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_VarFunc::On_start_typename(const char *)
+{
+ pSpuType->Push(not_done);
+}
+
+void
+PE_VarFunc::On_expectCtor_Bracket_Left(const char *)
+{
+ pSpuFunctionCtor->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterClassDecl_Semicolon(const char *)
+{
+ SetTokenResult(done, pop_success);
+}
+
+void
+PE_VarFunc::On_expectName_Identifier(const char * i_sText)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName);
+ sName = i_sText;
+}
+
+void
+PE_VarFunc::On_expectName_operator(const char *)
+{
+ pSpuFunctionNormalOperator->Push(done);
+}
+
+void
+PE_VarFunc::On_expectName_Bracket_Left(const char *)
+{
+ // Function pointer declaration
+ pSpuIgnore->Push(not_done);
+ // TODO
+}
+
+
+void
+PE_VarFunc::On_afterName_ArrayBracket_Left(const char *)
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterName_Bracket_Left(const char *)
+{
+ if ( NOT bInDestructor)
+ pSpuFunctionStd->Push(not_done);
+ else
+ pSpuFunctionDtor->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterName_DoubleColon(const char *)
+{
+ pSpuIgnore->Push(done); // This seems to be only an implementation.
+
+ // This may have been a template.
+ // In that case, the declaration needs to be closed.
+ Env().Close_OpenTemplate();
+}
+
+void
+PE_VarFunc::On_afterName_Semicolon(const char *)
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterName_Comma(const char *)
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterName_Assign(const char * )
+{
+ pSpuVariable->Push(not_done);
+}
+
+void
+PE_VarFunc::On_afterName_Less(const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName_inErraneousTemplate);
+
+ nCounter_TemplateBrackets = 1;
+}
+
+void
+PE_VarFunc::On_afterName_inErraneousTemplate_Less(const char * )
+{
+ SetTokenResult(done, stay);
+
+ nCounter_TemplateBrackets++;
+}
+
+void
+PE_VarFunc::On_afterName_inErraneousTemplate_Greater(const char * )
+{
+ SetTokenResult(done, stay);
+
+ nCounter_TemplateBrackets--;
+ if ( nCounter_TemplateBrackets == 0 )
+ pStati->SetCur(afterName);
+}
+
+void
+PE_VarFunc::On_afterName_inErraneousTemplate_Default(const char * )
+{
+ SetTokenResult(done, stay);
+}
+
+void
+PE_VarFunc::On_finished_Semicolon(const char * ) // Should be Semicolon !!!
+{
+ SetTokenResult(done, pop_success);
+}
+
+void
+PE_VarFunc::On_finished_Comma(const char * )
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(expectName);
+}
+
+void
+PE_VarFunc::On_finished_Default(const char * )
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_VarFunc::On_finishedIncludingFunctionImplementation_Default(const char * )
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+ary::cpp::FunctionFlags
+PE_VarFunc::CreateFunctionFlags()
+{
+ typedef ary::cpp::FunctionFlags FuncFlags;
+
+ return FuncFlags( UINT16(
+ ( bStatic AND Env().Context().CurClass() == 0 ? FuncFlags::f_static_local : 0 )
+ | ( bStatic AND Env().Context().CurClass() != 0 ? FuncFlags::f_static_member : 0 )
+ | ( bExtern ? FuncFlags::f_extern : 0 )
+ | ( Env().IsExternC() ? FuncFlags::f_externC : 0 )
+ | ( bMutable ? FuncFlags::f_mutable : 0 )
+ | ( bInline ? FuncFlags::f_inline : 0 )
+ | ( bRegister ? FuncFlags::f_register : 0 )
+ | ( bExplicit ? FuncFlags::f_explicit : 0 ) )
+ );
+
+}
+
+
+} // namespace cpp
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_vafu.hxx b/autodoc/source/parser/cpp/pe_vafu.hxx
new file mode 100644
index 000000000000..df151a3ca18d
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_vafu.hxx
@@ -0,0 +1,289 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+#ifndef ADC_CPP_PE_VAFU_HXX
+#define ADC_CPP_PE_VAFU_HXX
+
+// BASE CLASSES
+#include "cpp_pe.hxx"
+// USED SERVICES
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+
+
+
+namespace cpp
+{
+
+class PE_Type;
+class PE_Variable;
+class PE_Function;
+class PE_Ignore;
+
+
+
+
+class PE_VarFunc : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ start,
+ expectCtor,
+ afterClassDecl, // Also used for after enum declaration.
+ expectName,
+ afterName,
+ afterName_inErraneousTemplate,
+ finished,
+ finishedIncludingFunctionImplementation,
+ size_of_states
+ };
+ enum E_ResultType
+ {
+ result_unknown = 0,
+ result_ignore, /// Used for class and enum declarations and predeclarations and for extern variables and functions.
+ result_variable,
+ result_function
+ };
+
+ typedef ary::cpp::E_Protection E_Protection;
+
+
+ PE_VarFunc(
+ Cpp_PE * i_pParent );
+ ~PE_VarFunc();
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ const std::vector<ary::cpp::Ce_id> &
+ Result_Ids() const;
+ ary::cpp::Type_id Result_FrontType() const;
+ const StringVector &
+ Result_Names() const;
+ E_ResultType Result_CeType() const;
+
+ private:
+ typedef SubPe< PE_VarFunc, PE_Type > SP_Type;
+ typedef SubPeUse< PE_VarFunc, PE_Type > SPU_Type;
+ typedef SubPe< PE_VarFunc, PE_Variable > SP_Variable;
+ typedef SubPeUse< PE_VarFunc, PE_Variable > SPU_Variable;
+ typedef SubPe< PE_VarFunc, PE_Function > SP_Function;
+ typedef SubPeUse< PE_VarFunc, PE_Function > SPU_Function;
+ typedef SubPe< PE_VarFunc, PE_Ignore > SP_Ignore;
+ typedef SubPeUse< PE_VarFunc, PE_Ignore > SPU_Ignore;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_UnknownToken( const char *);
+
+ void SpInit_FunctionStd();
+ void SpInit_FunctionCtor();
+ void SpInit_FunctionDtor();
+ void SpInit_FunctionCastOperator();
+ void SpInit_FunctionNormalOperator();
+ void SpReturn_Type();
+ void SpReturn_Variable();
+ void SpReturn_FunctionStd();
+ void SpReturn_Ignore();
+
+ void On_start_Identifier(const char * i_sText);
+ void On_start_operator(const char * i_sText);
+ void On_start_TypeKey(const char * i_sText);
+ void On_start_virtual(const char * i_sText);
+ void On_start_Tilde(const char * i_sText);
+ void On_start_const(const char * i_sText);
+ void On_start_volatile(const char * i_sText);
+ void On_start_extern(const char * i_sText);
+ void On_start_static(const char * i_sText);
+ void On_start_mutable(const char * i_sText);
+ void On_start_register(const char * i_sText);
+ void On_start_inline(const char * i_sText);
+ void On_start_explicit(const char * i_sText);
+ void On_start_Bracket_Right(const char * i_sText);
+ void On_start_typename(const char * i_sText);
+
+ void On_expectCtor_Bracket_Left(const char * i_sText);
+
+ void On_afterClassDecl_Semicolon(const char * i_sText);
+
+ void On_expectName_Identifier(const char * i_sText);
+ void On_expectName_operator(const char * i_sText);
+ void On_expectName_Bracket_Left(const char * i_sText);
+
+ void On_afterName_ArrayBracket_Left(const char * i_sText);
+ void On_afterName_Bracket_Left(const char * i_sText);
+ void On_afterName_DoubleColon(const char * i_sText);
+ void On_afterName_Semicolon(const char * i_sText);
+ void On_afterName_Comma(const char * i_sText);
+ void On_afterName_Assign(const char * i_sText);
+ void On_afterName_Less(const char * i_sText);
+
+ void On_afterName_inErraneousTemplate_Less(const char * i_sText);
+ void On_afterName_inErraneousTemplate_Greater(const char * i_sText);
+ void On_afterName_inErraneousTemplate_Default(const char * i_sText);
+
+ void On_finished_Semicolon(const char * i_sText);
+ void On_finished_Comma(const char * i_sText);
+ void On_finished_Default(const char * i_sText);
+
+ void On_finishedIncludingFunctionImplementation_Default(const char * i_sText);
+
+ ary::cpp::FunctionFlags
+ CreateFunctionFlags();
+
+ // DATA
+ Dyn< PeStatusArray<PE_VarFunc> >
+ pStati;
+
+ Dyn<SP_Type> pSpType;
+ Dyn<SPU_Type> pSpuType;
+ Dyn<SP_Variable> pSpVariable;
+ Dyn<SPU_Variable> pSpuVariable;
+ Dyn<SP_Function> pSpFunction;
+ Dyn<SPU_Function> pSpuFunctionStd;
+ Dyn<SPU_Function> pSpuFunctionCtor;
+ Dyn<SPU_Function> pSpuFunctionDtor;
+ Dyn<SPU_Function> pSpuFunctionCastOperator;
+ Dyn<SPU_Function> pSpuFunctionNormalOperator;
+ Dyn<SP_Ignore> pSpIgnore;
+ Dyn<SPU_Ignore> pSpuIgnore;
+
+ intt nCounter_TemplateBrackets;
+ bool bInDestructor;
+
+ std::vector<ary::cpp::Ce_id>
+ aResultIds;
+ ary::cpp::Type_id nResultFrontType;
+ E_ResultType eResultType;
+
+ // Pre-Results
+ String sName;
+
+ bool bVirtual;
+ bool bStatic;
+ bool bExtern;
+ bool bExternC;
+ bool bMutable;
+ bool bInline;
+ bool bRegister;
+ bool bExplicit;
+};
+
+
+
+// IMPLEMENTATION
+
+inline const std::vector<ary::cpp::Ce_id> &
+PE_VarFunc::Result_Ids() const
+ { return aResultIds; }
+inline ary::cpp::Type_id
+PE_VarFunc::Result_FrontType() const
+ { return nResultFrontType; }
+inline PE_VarFunc::E_ResultType
+PE_VarFunc::Result_CeType() const
+ { return eResultType; }
+
+
+
+} // namespace cpp
+
+
+
+
+#endif
+
+
+/* // Overview of Stati
+
+Undecided
+---------
+
+start // vor und whrend storage class specifiern
+ any ->stay
+ operaator ->goto Function
+
+->Typ
+
+expectName
+ Identifier ->stay
+ operator ->goto Function
+
+afterName ->goto Variable or Function
+
+
+
+
+Variable
+--------
+
+start // vor und whrend storage class specifiern
+
+->Typ
+
+expectName // Typ ist da -> im Falle von '(': notyetimplemented
+afterName
+
+expectSize // after [
+expectFinish
+ // vor ; oder ,
+expectNextVarName // anders als bei expectName kann hier auch * oder & kommen
+
+
+
+
+
+Function
+--------
+
+start // vor und whrend storage class specifiern
+
+->Typ
+
+expectName // Typ ist da
+expectBracket // Nach Name
+expectParameter // nach ( oder ,
+-> Parameter
+after Parameters // before const, volatile throw or = 0.
+after throw // expect (
+expectException // after (
+after exceptions // = 0 oder ; oder ,
+
+
+expectNextVarName // anders als bei expectName kann hier auch * oder & kommen
+
+
+
+
+
+
+
+*/
diff --git a/autodoc/source/parser/cpp/pe_vari.cxx b/autodoc/source/parser/cpp/pe_vari.cxx
new file mode 100644
index 000000000000..a3accd3963c2
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_vari.cxx
@@ -0,0 +1,187 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "pe_vari.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include "pe_expr.hxx"
+
+
+
+
+namespace cpp {
+
+
+PE_Variable::PE_Variable( Cpp_PE * i_pParent )
+ : Cpp_PE(i_pParent),
+ pStati( new PeStatusArray<PE_Variable> )
+ // pSpExpression,
+ // pSpuArraySizeExpression,
+ // pSpuInitExpression,
+ // sResultSizeExpression,
+ // sResultInitExpression
+{
+ Setup_StatusFunctions();
+
+ pSpExpression = new SP_Expression(*this);
+
+ pSpuArraySizeExpression = new SPU_Expression(*pSpExpression, 0, &PE_Variable::SpReturn_ArraySizeExpression);
+ pSpuInitExpression = new SPU_Expression(*pSpExpression, 0, &PE_Variable::SpReturn_InitExpression);
+}
+
+PE_Variable::~PE_Variable()
+{
+}
+
+void
+PE_Variable::Call_Handler( const cpp::Token & i_rTok )
+{
+ pStati->Cur().Call_Handler(i_rTok.TypeId(), i_rTok.Text());
+}
+
+void
+PE_Variable::Setup_StatusFunctions()
+{
+ typedef CallFunction<PE_Variable>::F_Tok F_Tok;
+
+ static F_Tok stateF_afterName[] = { &PE_Variable::On_afterName_ArrayBracket_Left,
+ &PE_Variable::On_afterName_Semicolon,
+ &PE_Variable::On_afterName_Comma,
+ &PE_Variable::On_afterName_Assign };
+ static INT16 stateT_afterName[] = { Tid_ArrayBracket_Left,
+ Tid_Semicolon,
+ Tid_Comma,
+ Tid_Assign };
+ static F_Tok stateF_afterSize[] = { &PE_Variable::On_afterSize_ArrayBracket_Right };
+ static INT16 stateT_afterSize[] = { Tid_ArrayBracket_Right };
+ static F_Tok stateF_expectFinish[] = { &PE_Variable::On_expectFinish_Bracket_Right,
+ &PE_Variable::On_expectFinish_Semicolon,
+ &PE_Variable::On_expectFinish_Comma };
+ static INT16 stateT_expectFinish[] = { Tid_Bracket_Right,
+ Tid_Semicolon,
+ Tid_Comma };
+
+ SEMPARSE_CREATE_STATUS(PE_Variable, afterName, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Variable, afterSize, Hdl_SyntaxError);
+ SEMPARSE_CREATE_STATUS(PE_Variable, expectFinish, Hdl_SyntaxError);
+}
+
+void
+PE_Variable::InitData()
+{
+ pStati->SetCur(afterName);
+
+ sResultSizeExpression.clear();
+ sResultInitExpression.clear();
+}
+
+void
+PE_Variable::TransferData()
+{
+ pStati->SetCur(size_of_states);
+}
+
+void
+PE_Variable::Hdl_SyntaxError( const char * i_sText)
+{
+ StdHandlingOfSyntaxError(i_sText);
+}
+
+void
+PE_Variable::SpReturn_ArraySizeExpression()
+{
+ pStati->SetCur(afterSize);
+
+ sResultSizeExpression = pSpuArraySizeExpression->Child().Result_Text();
+}
+
+void
+PE_Variable::SpReturn_InitExpression()
+{
+ pStati->SetCur(expectFinish);
+
+ sResultInitExpression = pSpuInitExpression->Child().Result_Text();
+}
+
+void
+PE_Variable::On_afterName_ArrayBracket_Left(const char *)
+{
+ pSpuArraySizeExpression->Push(done);
+}
+
+void
+PE_Variable::On_afterName_Semicolon(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Variable::On_afterName_Comma(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Variable::On_afterName_Assign(const char *)
+{
+ pSpuInitExpression->Push(done);
+}
+
+void
+PE_Variable::On_afterSize_ArrayBracket_Right(const char *)
+{
+ SetTokenResult(done, stay);
+ pStati->SetCur(afterName);
+}
+
+void
+PE_Variable::On_expectFinish_Semicolon(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Variable::On_expectFinish_Comma(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+void
+PE_Variable::On_expectFinish_Bracket_Right(const char *)
+{
+ SetTokenResult(not_done, pop_success);
+}
+
+
+} // namespace cpp
+
+
+
+
diff --git a/autodoc/source/parser/cpp/pe_vari.hxx b/autodoc/source/parser/cpp/pe_vari.hxx
new file mode 100644
index 000000000000..00087600ec3a
--- /dev/null
+++ b/autodoc/source/parser/cpp/pe_vari.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PE_VARI_HXX
+#define ADC_CPP_PE_VARI_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cpp_pe.hxx"
+ // COMPONENTS
+#include <semantic/callf.hxx>
+#include <semantic/sub_peu.hxx>
+#include <ary/cpp/c_types4cpp.hxx>
+#include <ary/cpp/c_vfflag.hxx>
+ // PARAMETERS
+
+
+namespace cpp {
+
+class PE_Expression;
+
+
+class PE_Variable : public Cpp_PE
+{
+ public:
+ enum E_State
+ {
+ afterName, //
+ afterSize, // after ]
+ expectFinish, // after InitExpression
+ size_of_states
+ };
+ PE_Variable(
+ Cpp_PE * i_pParent );
+ ~PE_Variable();
+
+ /** @return
+ Bit 0x0001 != 0, if there is a size and
+ bit 0x0002 != 0, if there is an initialisation.
+ */
+ UINT16 Result_Pattern() const;
+ const String & Result_SizeExpression() const;
+ const String & Result_InitExpression() const;
+
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok );
+
+ private:
+ typedef SubPe< PE_Variable, PE_Expression > SP_Expression;
+ typedef SubPeUse< PE_Variable, PE_Expression> SPU_Expression;
+
+ void Setup_StatusFunctions();
+ virtual void InitData();
+ virtual void TransferData();
+ void Hdl_SyntaxError(const char *);
+
+ void SpReturn_ArraySizeExpression();
+ void SpReturn_InitExpression();
+
+ void On_afterName_ArrayBracket_Left(const char * i_sText);
+ void On_afterName_Semicolon(const char * i_sText);
+ void On_afterName_Comma(const char * i_sText);
+ void On_afterName_Assign(const char * i_sText);
+
+ void On_afterSize_ArrayBracket_Right(const char * i_sText);
+
+ void On_expectFinish_Semicolon(const char * i_sText);
+ void On_expectFinish_Comma(const char * i_sText);
+ void On_expectFinish_Bracket_Right(const char * i_sText);
+
+ // DATA
+ Dyn< PeStatusArray<PE_Variable> >
+ pStati;
+
+ Dyn<SP_Expression> pSpExpression;
+ Dyn<SPU_Expression> pSpuArraySizeExpression;
+ Dyn<SPU_Expression> pSpuInitExpression;
+
+ String sResultSizeExpression;
+ String sResultInitExpression;
+};
+
+
+
+// IMPLEMENTATION
+
+
+inline UINT16
+PE_Variable::Result_Pattern() const
+ { return ( sResultSizeExpression.length() > 0 ? 1 : 0 )
+ + ( sResultInitExpression.length() > 0 ? 2 : 0 ); }
+inline const String &
+PE_Variable::Result_SizeExpression() const
+ { return sResultSizeExpression; }
+inline const String &
+PE_Variable::Result_InitExpression() const
+ { return sResultInitExpression; }
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/pev.hxx b/autodoc/source/parser/cpp/pev.hxx
new file mode 100644
index 000000000000..5394dcd0fc21
--- /dev/null
+++ b/autodoc/source/parser/cpp/pev.hxx
@@ -0,0 +1,304 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PEV_HXX
+#define ADC_CPP_PEV_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+ namespace cpp
+ {
+ class Gate;
+ class InputContext;
+
+ class Namespace;
+ class Class;
+ class Enum;
+ class Typedef;
+ class Function;
+ class Variable;
+ class EnumValue;
+
+ class DefineEntity;
+ }
+
+ class Documentation;
+}
+
+
+namespace cpp
+{
+
+
+class PeEnvironment : protected TokenProcessing_Types
+{
+ public:
+ // INQUIRY
+ virtual ~PeEnvironment() {}
+
+ // OPERATIONS
+ // Token results
+ void SetTokenResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push = 0 );
+
+ // Owner stack
+ void OpenNamespace(
+ ary::cpp::Namespace &
+ io_rOpenedNamespace );
+ void OpenExternC(
+ bool i_bOnlyForOneDeclaration = false );
+ void OpenClass(
+ ary::cpp::Class & io_rOpenedClass );
+ void OpenEnum(
+ ary::cpp::Enum & io_rOpenedEnum );
+ void CloseBlock(); /// Handles a '}' on file scope.
+ void CloseClass();
+ void CloseEnum();
+ void SetCurProtection( /// Handles 'public:', 'protected:' and 'private:' on class scope.
+ ary::cpp::E_Protection
+ i_eProtection );
+ void OpenTemplate(
+ const StringVector &
+ i_rParameters );
+ /// Removes parameters from this object.
+ DYN StringVector * Get_CurTemplateParameters();
+ /// Checks, if a template is still open, and if yes, closes it.
+ void Close_OpenTemplate();
+
+ // Special events
+ void Event_Class_FinishedBase(
+ const String & i_sParameterName );
+
+ void Event_Store_Typedef(
+ ary::cpp::Typedef & io_rTypedef );
+ void Event_Store_EnumValue(
+ ary::cpp::EnumValue &
+ io_rEnumValue );
+ void Event_Store_CppDefinition(
+ ary::cpp::DefineEntity &
+ io_rDefinition );
+
+ void Event_EnterFunction_ParameterList();
+ void Event_Function_FinishedParameter(
+ const String & i_sParameterName );
+ void Event_LeaveFunction_ParameterList();
+ void Event_EnterFunction_Implementation();
+ void Event_LeaveFunction_Implementation();
+
+ void Event_Store_Function(
+ ary::cpp::Function &
+ io_rFunction );
+ void Event_Store_Variable(
+ ary::cpp::Variable &
+ io_rVariable );
+ // Error recovery
+ void StartWaitingFor_Recovery();
+
+ // INQUIRY
+ ary::cpp::Gate & AryGate() const;
+ const ary::cpp::InputContext &
+ Context() const;
+ String CurFileName() const;
+ uintt LineCount() const;
+ bool IsWaitingFor_Recovery() const;
+ bool IsExternC() const;
+
+ private:
+ virtual void do_SetTokenResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push ) = 0;
+ virtual void do_OpenNamespace(
+ ary::cpp::Namespace &
+ io_rOpenedNamespace ) = 0;
+ virtual void do_OpenExternC(
+ bool i_bOnlyForOneDeclaration ) = 0;
+ virtual void do_OpenClass(
+ ary::cpp::Class & io_rOpenedClass ) = 0;
+ virtual void do_OpenEnum(
+ ary::cpp::Enum & io_rOpenedEnum ) = 0;
+ virtual void do_CloseBlock() = 0;
+ virtual void do_CloseClass() = 0;
+ virtual void do_CloseEnum() = 0;
+ virtual void do_SetCurProtection(
+ ary::cpp::E_Protection
+ i_eProtection ) = 0;
+ virtual void do_OpenTemplate(
+ const StringVector &
+ i_rParameters ) = 0;
+ virtual DYN StringVector *
+ do_Get_CurTemplateParameters() = 0;
+ virtual void do_Close_OpenTemplate() = 0;
+ virtual void do_Event_Class_FinishedBase(
+ const String & i_sBaseName ) = 0;
+
+ virtual void do_Event_Store_Typedef(
+ ary::cpp::Typedef & io_rTypedef ) = 0;
+ virtual void do_Event_Store_EnumValue(
+ ary::cpp::EnumValue &
+ io_rEnumValue ) = 0;
+ virtual void do_Event_Store_CppDefinition(
+ ary::cpp::DefineEntity &
+ io_rDefinition ) = 0;
+ virtual void do_Event_EnterFunction_ParameterList() = 0;
+ virtual void do_Event_Function_FinishedParameter(
+ const String & i_sParameterName ) = 0;
+ virtual void do_Event_LeaveFunction_ParameterList() = 0;
+ virtual void do_Event_EnterFunction_Implementation() = 0;
+ virtual void do_Event_LeaveFunction_Implementation() = 0;
+ virtual void do_Event_Store_Function(
+ ary::cpp::Function &
+ io_rFunction ) = 0;
+ virtual void do_Event_Store_Variable(
+ ary::cpp::Variable &
+ io_rVariable ) = 0;
+ virtual void do_StartWaitingFor_Recovery() = 0;
+ virtual ary::cpp::Gate &
+ inq_AryGate() const = 0;
+ virtual const ary::cpp::InputContext &
+ inq_Context() const = 0;
+ virtual String inq_CurFileName() const = 0;
+ virtual uintt inq_LineCount() const = 0;
+ virtual bool inq_IsWaitingFor_Recovery() const = 0;
+ virtual bool inq_IsExternC() const = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+inline void
+PeEnvironment::SetTokenResult( E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ ParseEnvironment * i_pParseEnv2Push )
+ { do_SetTokenResult(i_eDone, i_eWhat2DoWithEnvStack, i_pParseEnv2Push); }
+inline void
+PeEnvironment::OpenNamespace( ary::cpp::Namespace & io_rOpenedNamespace )
+ { do_OpenNamespace(io_rOpenedNamespace); }
+inline void
+PeEnvironment::OpenExternC( bool i_bOnlyForOneDeclaration )
+ { do_OpenExternC(i_bOnlyForOneDeclaration); }
+inline void
+PeEnvironment::OpenClass( ary::cpp::Class & io_rOpenedClass )
+ { do_OpenClass(io_rOpenedClass); }
+inline void
+PeEnvironment::OpenEnum( ary::cpp::Enum & io_rOpenedEnum )
+ { do_OpenEnum(io_rOpenedEnum); }
+inline void
+PeEnvironment::CloseBlock()
+ { do_CloseBlock(); }
+inline void
+PeEnvironment::CloseClass()
+ { do_CloseClass(); }
+inline void
+PeEnvironment::CloseEnum()
+ { do_CloseEnum(); }
+inline void
+PeEnvironment::SetCurProtection( ary::cpp::E_Protection i_eProtection )
+ { do_SetCurProtection(i_eProtection); }
+inline void
+PeEnvironment::OpenTemplate( const StringVector & i_rParameters )
+ { do_OpenTemplate(i_rParameters); }
+inline DYN StringVector *
+PeEnvironment::Get_CurTemplateParameters()
+ { return do_Get_CurTemplateParameters(); }
+inline void
+PeEnvironment::Close_OpenTemplate()
+ { do_Close_OpenTemplate(); }
+inline void
+PeEnvironment::Event_Class_FinishedBase( const String & i_sBaseName )
+ { do_Event_Class_FinishedBase(i_sBaseName); }
+inline void
+PeEnvironment::Event_Store_Typedef( ary::cpp::Typedef & io_rTypedef )
+ { do_Event_Store_Typedef(io_rTypedef); }
+inline void
+PeEnvironment::Event_Store_EnumValue( ary::cpp::EnumValue & io_rEnumValue )
+ { do_Event_Store_EnumValue(io_rEnumValue); }
+inline void
+PeEnvironment::Event_Store_CppDefinition( ary::cpp::DefineEntity & io_rDefinition )
+ { do_Event_Store_CppDefinition(io_rDefinition); }
+inline void
+PeEnvironment::Event_EnterFunction_ParameterList()
+ { do_Event_EnterFunction_ParameterList(); }
+inline void
+PeEnvironment::Event_Function_FinishedParameter( const String & i_sParameterName )
+ { do_Event_Function_FinishedParameter(i_sParameterName); }
+inline void
+PeEnvironment::Event_LeaveFunction_ParameterList()
+ { do_Event_LeaveFunction_ParameterList(); }
+inline void
+PeEnvironment::Event_EnterFunction_Implementation()
+ { do_Event_EnterFunction_Implementation(); }
+inline void
+PeEnvironment::Event_LeaveFunction_Implementation()
+ { do_Event_LeaveFunction_Implementation(); }
+inline void
+PeEnvironment::Event_Store_Function( ary::cpp::Function & io_rFunction )
+ { do_Event_Store_Function(io_rFunction); }
+inline void
+PeEnvironment::Event_Store_Variable( ary::cpp::Variable & io_rVariable )
+ { do_Event_Store_Variable(io_rVariable); }
+inline void
+PeEnvironment::StartWaitingFor_Recovery()
+ { do_StartWaitingFor_Recovery(); }
+inline ary::cpp::Gate &
+PeEnvironment::AryGate() const
+ { return inq_AryGate(); }
+inline const ary::cpp::InputContext &
+PeEnvironment::Context() const
+ { return inq_Context(); }
+inline String
+PeEnvironment::CurFileName() const
+ { return inq_CurFileName(); }
+inline uintt
+PeEnvironment::LineCount() const
+ { return inq_LineCount(); }
+inline bool
+PeEnvironment::IsWaitingFor_Recovery() const
+ { return inq_IsWaitingFor_Recovery(); }
+inline bool
+PeEnvironment::IsExternC() const
+ { return inq_IsExternC(); }
+
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/preproc.cxx b/autodoc/source/parser/cpp/preproc.cxx
new file mode 100644
index 000000000000..332645114b7c
--- /dev/null
+++ b/autodoc/source/parser/cpp/preproc.cxx
@@ -0,0 +1,231 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "preproc.hxx"
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/tpl/tpltools.hxx>
+#include "all_toks.hxx"
+#include "defdescr.hxx"
+#include <tools/tkpchars.hxx>
+#include "c_rcode.hxx"
+
+
+namespace cpp
+{
+
+
+PreProcessor::F_TOKENPROC PreProcessor::aTokProcs[PreProcessor::state_MAX] =
+ {
+ &PreProcessor::On_plain,
+ &PreProcessor::On_expect_macro_bracket_left,
+ &PreProcessor::On_expect_macro_param
+ };
+
+
+PreProcessor::PreProcessor()
+ : pCppExplorer(0),
+ pSourceText(0),
+ pCurValidDefines(0),
+ // aTokens,
+ eState(plain),
+ pCurMacro(0),
+ dpCurMacroName(0),
+ // aCurMacroParams,
+ aCurParamText(60000),
+ nBracketInParameterCounter(0)
+ // aBlockedMacroNames
+{
+}
+
+PreProcessor::~PreProcessor()
+{
+}
+
+void
+PreProcessor::AssignPartners( CodeExplorer & o_rCodeExplorer,
+ CharacterSource & o_rCharSource,
+ const MacroMap & i_rCurValidDefines )
+{
+ pCppExplorer = &o_rCodeExplorer;
+ pSourceText = &o_rCharSource;
+ pCurValidDefines = &i_rCurValidDefines;
+}
+
+void
+PreProcessor::Process_Token( cpp::Token & let_drToken )
+{
+ csv_assert(pCppExplorer != 0); // Implies pSourceText and pCurValidDefines.
+
+ (this->*aTokProcs[eState])(let_drToken);
+}
+
+void
+PreProcessor::On_plain( cpp::Token & let_drToken )
+{
+ if ( let_drToken.TypeId() == Tid_Identifier )
+ {
+ if (CheckForDefine(let_drToken))
+ return;
+ }
+
+ pCppExplorer->Process_Token(let_drToken);
+}
+
+void
+PreProcessor::On_expect_macro_bracket_left( cpp::Token & let_drToken )
+{
+ if ( let_drToken.TypeId() == Tid_Bracket_Left )
+ {
+ aCurParamText.seekp(0);
+ eState = expect_macro_param;
+ }
+ else
+ {
+ pCppExplorer->Process_Token(*dpCurMacroName);
+ dpCurMacroName = 0;
+ pCppExplorer->Process_Token(let_drToken);
+ eState = plain;
+ }
+}
+
+void
+PreProcessor::On_expect_macro_param( cpp::Token & let_drToken )
+{
+ if ( let_drToken.TypeId() == Tid_Bracket_Left )
+ nBracketInParameterCounter++;
+ else if ( let_drToken.TypeId() == Tid_Bracket_Right )
+ {
+ if ( nBracketInParameterCounter > 0 )
+ nBracketInParameterCounter--;
+ else
+ {
+ if ( NOT csv::no_str(aCurParamText.c_str()) )
+ {
+ aCurMacroParams.push_back( String(aCurParamText.c_str()) );
+ }
+ csv_assert( aCurMacroParams.size() == pCurMacro->ParamCount() );
+
+ InterpretMacro();
+ eState = plain;
+ return;
+ }
+ }
+ else if ( let_drToken.TypeId() == Tid_Comma AND nBracketInParameterCounter == 0 )
+ {
+ aCurMacroParams.push_back( String (aCurParamText.c_str()) );
+ aCurParamText.seekp(0);
+ return;
+ }
+
+ // KORR_FUTURE:
+ // If in future whitespace is parsed also, that should match exactly and the
+ // safety spaces, " ", here should be removed.
+ aCurParamText << let_drToken.Text() << " ";
+}
+
+bool
+PreProcessor::CheckForDefine( cpp::Token & let_drToken )
+{
+ String sTokenText(let_drToken.Text());
+ pCurMacro = csv::value_from_map( *pCurValidDefines, sTokenText );
+ if (pCurMacro == 0 )
+ return false;
+ for ( StringVector::const_iterator it = aBlockedMacroNames.begin();
+ it != aBlockedMacroNames.end();
+ ++it )
+ {
+ if ( strcmp( (*it).c_str(), let_drToken.Text() ) == 0 )
+ return false;
+ }
+
+ if ( pCurMacro->DefineType() == DefineDescription::type_define )
+ {
+ delete &let_drToken;
+
+ aCurParamText.seekp(0);
+ pCurMacro->GetDefineText(aCurParamText);
+
+ if ( aCurParamText.tellp() > 1 )
+ pSourceText->InsertTextAtCurPos(aCurParamText.c_str());
+ }
+ else // ( pCurMacro->DefineType() == DefineDescription::type_macro )
+ {
+ dpCurMacroName = &let_drToken;
+ eState = expect_macro_bracket_left;
+ csv::erase_container( aCurMacroParams );
+ aCurParamText.seekp(0);
+ nBracketInParameterCounter = 0;
+ } // endif
+
+ return true;
+}
+
+void
+PreProcessor::UnblockMacro( const char * i_sMacroName )
+{
+ for ( StringVector::iterator it = aBlockedMacroNames.begin();
+ it != aBlockedMacroNames.end();
+ ++it )
+ {
+ if ( strcmp( (*it), i_sMacroName ) == 0 )
+ {
+ aBlockedMacroNames.erase(it);
+ break;
+ }
+ } /// end for
+}
+
+void
+PreProcessor::InterpretMacro()
+{
+ aCurParamText.seekp(0);
+ pCurMacro->GetMacroText(aCurParamText, aCurMacroParams);
+
+ if ( NOT csv::no_str(aCurParamText.c_str()) )
+ {
+ aCurParamText.seekp(-1, csv::cur);
+ aCurParamText << " #unblock-" << dpCurMacroName->Text() << " ";
+
+ pSourceText->InsertTextAtCurPos(aCurParamText.c_str());
+ String sCurMacroName(dpCurMacroName->Text());
+ aBlockedMacroNames.insert( aBlockedMacroNames.begin(), sCurMacroName );
+ }
+
+ delete dpCurMacroName;
+ dpCurMacroName = 0;
+ pCurMacro = 0;
+ csv::erase_container(aCurMacroParams);
+ aCurParamText.seekp(0);
+}
+
+
+} // end namespace cpp
+
+
diff --git a/autodoc/source/parser/cpp/preproc.hxx b/autodoc/source/parser/cpp/preproc.hxx
new file mode 100644
index 000000000000..93c6f9cd425f
--- /dev/null
+++ b/autodoc/source/parser/cpp/preproc.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PREPROC_HXX
+#define ADC_CPP_PREPROC_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+#include <deque>
+ // PARAMETERS
+
+class CharacterSource;
+
+
+namespace cpp
+{
+
+class Token;
+class CodeExplorer;
+class DefineDescription;
+
+
+class PreProcessor
+{
+ public:
+ typedef std::map< String, DefineDescription* > MacroMap;
+
+ // LIFECYCLE
+ PreProcessor();
+ ~PreProcessor();
+ // OPERATONS
+ void AssignPartners(
+ CodeExplorer & o_rCodeExplorer,
+ CharacterSource & o_rCharSource,
+ const MacroMap & i_rCurValidDefines );
+ void Process_Token(
+ cpp::Token & let_drToken );
+ void UnblockMacro(
+ const char * i_sMacroName );
+ private:
+ public: // Necessary for instantiation of static variable:
+ enum E_State
+ {
+ plain = 0,
+ expect_macro_bracket_left,
+ expect_macro_param,
+ state_MAX
+ };
+ typedef void (PreProcessor::* F_TOKENPROC )(cpp::Token &);
+ void On_plain( cpp::Token & );
+ void On_expect_macro_bracket_left( cpp::Token & );
+ void On_expect_macro_param( cpp::Token & );
+
+ private: // Reprivate again:
+ typedef std::deque< DYN cpp::Token * > TokenQueue;
+ typedef StringVector List_MacroParams;
+
+
+ bool CheckForDefine(
+ cpp::Token & let_drToken );
+ void InterpretMacro();
+
+ // DATA
+ static F_TOKENPROC aTokProcs[state_MAX];
+ // Referenced extern objects
+ CodeExplorer * pCppExplorer;
+ CharacterSource * pSourceText;
+ const MacroMap * pCurValidDefines;
+
+ // internal data
+ TokenQueue aTokens;
+
+ E_State eState;
+
+ DefineDescription * pCurMacro;
+ DYN Token * dpCurMacroName;
+ List_MacroParams aCurMacroParams;
+ csv::StreamStr aCurParamText;
+
+ intt nBracketInParameterCounter;
+ StringVector aBlockedMacroNames;
+};
+
+
+
+} // end namespace cpp
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/prs_cpp.cxx b/autodoc/source/parser/cpp/prs_cpp.cxx
new file mode 100644
index 000000000000..615fe016e620
--- /dev/null
+++ b/autodoc/source/parser/cpp/prs_cpp.cxx
@@ -0,0 +1,248 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <cpp/prs_cpp.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/file.hxx>
+#include <ary/ary.hxx>
+#include <ary/cpp/c_gate.hxx>
+#include <autodoc/prs_docu.hxx>
+#include <autodoc/filecoli.hxx>
+#include <autodoc/x_parsing.hxx>
+#include <tools/tkpchars.hxx>
+#include <adc_cl.hxx>
+#include "c_dealer.hxx"
+#include "defdescr.hxx"
+#include "tkp_cpp.hxx"
+
+
+// Helper function
+static bool Local_LoadFile(
+ CharacterSource & o_rTextBuffer,
+ const String & i_rFullFilePath );
+
+
+
+
+namespace cpp
+{
+
+// This class is used for the UDK as workaround for the missing
+// feature of parsing #define s.
+
+class Udk_MacroMap
+{
+ public:
+ typedef std::map< String , DefineDescription* > Data;
+
+ Udk_MacroMap();
+ ~Udk_MacroMap();
+
+ const Data & GetData() const { return aData; }
+
+ private:
+ Data aData;
+};
+
+struct S_RunningData
+{
+ CharacterSource aFileContent;
+ ary::cpp::Gate & rCppGate;
+ Udk_MacroMap aMacros;
+ Distributor aDealer;
+ TokenParser_Cpp aTkp;
+
+ S_RunningData(
+ ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc &
+ i_rDocumentationInterpreter );
+};
+
+
+
+
+Cpluplus_Parser::Cpluplus_Parser()
+// : pRunningData
+{
+}
+
+Cpluplus_Parser::~Cpluplus_Parser()
+{
+}
+
+void
+Cpluplus_Parser::Setup( ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc & i_rDocumentationInterpreter )
+{
+ pRunningData = new S_RunningData(o_rRepository, i_rDocumentationInterpreter);
+}
+
+void
+Cpluplus_Parser::Run( const autodoc::FileCollector_Ifc & i_rFiles )
+{
+ for ( autodoc::FileCollector_Ifc::const_iterator iter = i_rFiles.Begin();
+ iter != i_rFiles.End();
+ ++iter )
+ {
+ csv::ploc::Path
+ aFilePath(*iter);
+
+ try
+ {
+ if ( NOT Local_LoadFile(pRunningData->aFileContent, *iter) )
+ continue;
+ for ( pRunningData->aTkp.StartNewFile(aFilePath);
+ pRunningData->aTkp.HasMore();
+ pRunningData->aTkp.GetNextToken() )
+ ;
+ }
+ catch (autodoc::X_Parser_Ifc & rX_Parse)
+ {
+ if ( DEBUG_ShowStoring() OR DEBUG_ShowText() )
+ Cerr() << rX_Parse << Endl();
+ }
+ catch (...)
+ {
+ if ( DEBUG_ShowStoring() OR DEBUG_ShowText() )
+ Cerr() << "Error: Unknown exception." << Endl();
+ }
+ } // end for (iter)
+}
+
+S_RunningData::S_RunningData( ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc & i_rDocumentationInterpreter )
+ : aFileContent(),
+ rCppGate( o_rRepository.Gate_Cpp() ),
+ aMacros(),
+ aDealer(o_rRepository.Gate_Cpp()),
+ aTkp( * i_rDocumentationInterpreter.Create_DocuContext() )
+{
+ aDealer.AssignPartners( aFileContent,
+ aMacros.GetData() );
+ aTkp.AssignPartners( aFileContent, aDealer );
+}
+
+
+Udk_MacroMap::Udk_MacroMap()
+{
+ String sSAL_CALL("SAL_CALL");
+ String sSAL_CALL_ELLIPSE("SAL_CALL_ELLIPSE");
+ String sSAL_NO_VTABLE("SAL_NO_VTABLE");
+ String sREGISTRY_CALLTYPE("REGISTRY_CALLTYPE");
+ String sSAL_THROW("SAL_THROW");
+ String sSAL_THROW_EXTERN_C("SAL_THROW_EXTERN_C");
+
+ String s__DEF_COMPIMPLHELPER_A("__DEF_COMPIMPLHELPER_A");
+ String s__DEF_COMPIMPLHELPER_B("__DEF_COMPIMPLHELPER_B");
+ String s__DEF_COMPIMPLHELPER("__DEF_COMPIMPLHELPER");
+
+ String s__DEF_IMPLHELPER_PRE("__DEF_IMPLHELPER_PRE");
+ String s__IFC_WRITEOFFSET("__IFC_WRITEOFFSET");
+ String s__DEF_IMPLHELPER_POST("__DEF_IMPLHELPER_POST");
+
+ String sSAL_EXCEPTION_DLLPUBLIC_EXPORT("SAL_EXCEPTION_DLLPUBLIC_EXPORT");
+ String sSAL_EXCEPTION_DLLPRIVATE("SAL_EXCEPTION_DLLPRIVATE");
+
+
+ StringVector aEmpty;
+
+ StringVector aParamsSAL_THROW;
+ aParamsSAL_THROW.push_back( String ("exc") );
+ StringVector aDefSAL_THROW;
+ aDefSAL_THROW.push_back( String ("throw") );
+ aDefSAL_THROW.push_back( String ("exc") );
+
+ StringVector aCompImplHelperParams;
+ aCompImplHelperParams.push_back(String ("N"));
+
+
+ // filling up the list
+
+
+ aData[sSAL_CALL] = new DefineDescription(sSAL_CALL, aEmpty);
+ aData[sSAL_CALL_ELLIPSE] = new DefineDescription(sSAL_CALL_ELLIPSE, aEmpty);
+ aData[sSAL_NO_VTABLE] = new DefineDescription(sSAL_NO_VTABLE, aEmpty);
+ aData[sREGISTRY_CALLTYPE] = new DefineDescription(sREGISTRY_CALLTYPE, aEmpty);
+
+ aData[sSAL_THROW] = new DefineDescription(sSAL_THROW, aParamsSAL_THROW, aDefSAL_THROW);
+ aData[sSAL_THROW_EXTERN_C] = new DefineDescription(sSAL_THROW_EXTERN_C, aEmpty, aEmpty);
+
+ aData[s__DEF_COMPIMPLHELPER_A]
+ = new DefineDescription( s__DEF_COMPIMPLHELPER_A, aCompImplHelperParams, aEmpty);
+ aData[s__DEF_COMPIMPLHELPER_B]
+ = new DefineDescription(s__DEF_COMPIMPLHELPER_B, aCompImplHelperParams, aEmpty);
+ aData[s__DEF_COMPIMPLHELPER]
+ = new DefineDescription(s__DEF_COMPIMPLHELPER, aCompImplHelperParams, aEmpty);
+
+ aData[s__DEF_IMPLHELPER_PRE]
+ = new DefineDescription(s__DEF_IMPLHELPER_PRE, aCompImplHelperParams, aEmpty);
+ aData[s__IFC_WRITEOFFSET]
+ = new DefineDescription(s__IFC_WRITEOFFSET, aCompImplHelperParams, aEmpty);
+ aData[s__DEF_IMPLHELPER_POST]
+ = new DefineDescription(s__DEF_IMPLHELPER_POST, aCompImplHelperParams, aEmpty);
+
+ aData[sSAL_EXCEPTION_DLLPUBLIC_EXPORT]
+ = new DefineDescription(sSAL_EXCEPTION_DLLPUBLIC_EXPORT, aEmpty);
+ aData[sSAL_EXCEPTION_DLLPRIVATE]
+ = new DefineDescription(sSAL_EXCEPTION_DLLPRIVATE, aEmpty);
+}
+
+Udk_MacroMap::~Udk_MacroMap()
+{
+ for ( Data::iterator it = aData.begin(); it != aData.end(); ++it )
+ {
+ delete (*it).second;
+ }
+}
+
+
+
+} // namespace cpp
+
+
+bool
+Local_LoadFile( CharacterSource & o_rTextBuffer,
+ const String & i_rFullFilePath )
+{
+ Cout() << "Parse " << i_rFullFilePath << " ..." << Endl();
+
+ csv::File aFile( i_rFullFilePath, csv::CFM_READ );
+ if (NOT aFile.open())
+ {
+ Cerr() << " could not be opened.\n" << Endl();
+ return false;
+ }
+ o_rTextBuffer.LoadText(aFile);
+ aFile.close();
+ return true;
+}
+
+
+
diff --git a/autodoc/source/parser/cpp/sdocdist.hxx b/autodoc/source/parser/cpp/sdocdist.hxx
new file mode 100644
index 000000000000..f8d87931a4df
--- /dev/null
+++ b/autodoc/source/parser/cpp/sdocdist.hxx
@@ -0,0 +1,158 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SDOCDIST_HXX
+#define ADC_CPP_SDOCDIST_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cxt2ary.hxx"
+#include <ary/info/docstore.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp
+{
+
+using ary::Documentation;
+
+/** Implementation struct for cpp::ContextForAry.
+*/
+
+struct ContextForAry::S_DocuDistributor : public ary::info::DocuStore
+{
+ public:
+ S_DocuDistributor() : pCurRe(0) {}
+ ~S_DocuDistributor() {}
+
+ void Reset() { pCurRe = 0; pLastStoredDocu = 0; }
+
+ void SetCurrentlyStoredRe(
+ ary::cpp::CppEntity &
+ io_rRe );
+ void Event_LineBreak();
+
+ private:
+ // Interface ary::info::DocuStore
+ virtual void do_Store2CurFile(
+ DYN ary::doc::Node& let_drDocu );
+ virtual void do_Store2CurNamespace(
+ DYN ary::doc::Node& let_drDocu );
+
+ virtual void do_Store2ConnectedDeclaration(
+ DYN ary::doc::Node& let_drDocu );
+
+ virtual void do_Store2Glossary(
+ DYN ary::doc::Node& let_drDocu,
+ const String & i_sExplainedTerm );
+ virtual void do_Store2GlobalTexts(
+ DYN ary::doc::Node& let_drDocu,
+ ary::info::GlobalTextId
+ i_nId );
+ // DATA
+ ary::cpp::CppEntity *
+ pCurRe;
+ Dyn<ary::doc::Node> pLastStoredDocu;
+};
+
+
+// IMPLEMENTATION
+
+/* The implementation is in header, though not all inline, because this file
+ is included in cxt2ary.cxx only!
+*/
+
+
+void
+ContextForAry::
+S_DocuDistributor::SetCurrentlyStoredRe( ary::cpp::CppEntity & io_rRe )
+{
+ pCurRe = &io_rRe;
+ if ( pLastStoredDocu )
+ pCurRe->Set_Docu( *pLastStoredDocu.Release() );
+}
+
+inline void
+ContextForAry::
+S_DocuDistributor::Event_LineBreak()
+{
+ pCurRe = 0;
+}
+
+void
+ContextForAry::
+S_DocuDistributor::do_Store2CurFile( DYN ary::doc::Node & let_drDocu )
+{
+ // KORR_FUTURE
+ delete &let_drDocu;
+}
+
+void
+ContextForAry::
+S_DocuDistributor::do_Store2CurNamespace( DYN ary::doc::Node & let_drDocu )
+{
+ // KORR_FUTURE
+ delete &let_drDocu;
+}
+
+void
+ContextForAry::
+S_DocuDistributor::do_Store2ConnectedDeclaration( DYN ary::doc::Node & let_drDocu )
+{
+ if ( pCurRe != 0 )
+ pCurRe->Set_Docu(let_drDocu);
+ else
+ pLastStoredDocu = &let_drDocu;
+}
+
+void
+ContextForAry::
+S_DocuDistributor::do_Store2Glossary( DYN ary::doc::Node & let_drDocu,
+ const String & // i_sExplainedTerm
+ )
+{
+ // KORR_FUTURE
+ delete &let_drDocu;
+}
+
+void
+ContextForAry::
+S_DocuDistributor::do_Store2GlobalTexts( DYN ary::doc::Node & let_drDocu,
+ ary::info::GlobalTextId // i_nId
+ )
+{
+ // KORR_FUTURE
+ delete &let_drDocu;
+}
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/sfscope.hxx b/autodoc/source/parser/cpp/sfscope.hxx
new file mode 100644
index 000000000000..1e7a70af009b
--- /dev/null
+++ b/autodoc/source/parser/cpp/sfscope.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SFSCOPE_HXX
+#define ADC_CPP_SFSCOPE_HXX
+
+// USED SERVICES
+#include "cxt2ary.hxx"
+
+
+
+
+namespace cpp
+{
+
+
+/** Implementation struct for cpp::ContextForAry.
+*/
+struct ContextForAry::S_FileScopeInfo
+{
+ ary::loc::File * pCurFile;
+ uintt nLineCount;
+ Dyn<StringVector> pCurTemplateParameters;
+
+ S_FileScopeInfo();
+};
+
+
+
+
+// IMPLEMENTATION
+inline
+ContextForAry::
+S_FileScopeInfo::S_FileScopeInfo()
+ : pCurFile(0),
+ nLineCount(0),
+ pCurTemplateParameters(0)
+{
+}
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/cpp/sownstck.hxx b/autodoc/source/parser/cpp/sownstck.hxx
new file mode 100644
index 000000000000..32c3f9f40a42
--- /dev/null
+++ b/autodoc/source/parser/cpp/sownstck.hxx
@@ -0,0 +1,325 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SOWNSTCK_HXX
+#define ADC_CPP_SOWNSTCK_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cxt2ary.hxx"
+ // COMPONENTS
+#include <ary/cpp/c_types4cpp.hxx>
+#include <estack.hxx>
+ // PARAMETERS
+#include <ary/cpp/c_namesp.hxx>
+#include <x_parse.hxx>
+
+
+namespace cpp
+{
+
+using ary::cpp::E_Protection;
+
+
+/** Implementation struct for cpp::ContextForAry.
+*/
+struct ContextForAry::S_OwnerStack
+{
+ public:
+ S_OwnerStack();
+ void SetGlobalNamespace(
+ ary::cpp::Namespace &
+ io_rGlobalNamespace );
+ ~S_OwnerStack();
+
+ void Reset();
+
+ void OpenNamespace(
+ ary::cpp::Namespace &
+ io_rOpenedNamespace );
+ void OpenExternC();
+ void OpenClass(
+ ary::cpp::Class & io_rOpenedClass );
+ void OpenEnum(
+ ary::cpp::Enum & io_rOpenedEnum );
+ void CloseBlock();
+ void CloseClass();
+ void CloseEnum();
+ void SetCurProtection(
+ ary::cpp::E_Protection
+ i_eProtection );
+ ary::cpp::Namespace &
+ CurNamespace() const;
+ ary::cpp::Class * CurClass() const;
+ ary::cpp::Enum * CurEnum() const;
+
+ Owner & CurOwner() const;
+ ary::cpp::E_Protection
+ CurProtection() const;
+ bool IsExternC() const { return nExternC > 0; }
+
+ private:
+ typedef std::pair< ary::cpp::Class*, E_Protection > ClassEnv;
+ typedef EStack< ary::cpp::Namespace* > Stack_Namespaces;
+ typedef EStack< ClassEnv > Stack_Classes;
+ typedef ary::cpp::InputContext::Owner Ifc_Owner;
+
+ void SetOwner_2CurNamespace();
+ void SetOwner_2CurClass();
+ void SetOwner_2None();
+
+ // DATA
+ Stack_Namespaces aStack_Namespaces;
+ Stack_Classes aStack_Classes;
+ ary::cpp::Enum * pCurEnum;
+ uintt nExternC; /// This is a number, for the case that extern "C" blocks are nested.
+
+ Dyn<Owner_Namespace>
+ pOwner_Namespace;
+ Dyn<Owner_Class> pOwner_Class;
+ Ifc_Owner * pOwner_Cur;
+};
+
+
+// IMPLEMENTATION
+
+/* The implementation is in header, though not inline, because this file is included
+ in cxt2ary.cxx only!
+*/
+
+inline ary::cpp::Namespace &
+ContextForAry::
+S_OwnerStack::CurNamespace() const
+{
+ csv_assert( aStack_Namespaces.size() > 0 );
+ return *aStack_Namespaces.top();
+}
+
+inline ary::cpp::Class *
+ContextForAry::
+S_OwnerStack::CurClass() const
+{
+ return aStack_Classes.size() > 0
+ ? aStack_Classes.top().first
+ : (ary::cpp::Class *) 0;
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::SetOwner_2CurNamespace()
+{
+ csv_assert( aStack_Namespaces.size() > 0 );
+ pOwner_Cur = pOwner_Namespace.MutablePtr();
+ pOwner_Namespace->SetAnotherNamespace( CurNamespace() );
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::SetOwner_2CurClass()
+{
+ csv_assert( aStack_Classes.size() > 0 );
+ pOwner_Cur = pOwner_Class.MutablePtr();
+ pOwner_Class->SetAnotherClass( *CurClass() );
+}
+
+ContextForAry::
+S_OwnerStack::S_OwnerStack()
+ : // aStack_Namespaces,
+ // aStack_Classes,
+ pCurEnum(0),
+ nExternC(0),
+ pOwner_Namespace(new Owner_Namespace),
+ pOwner_Class(new Owner_Class),
+ pOwner_Cur(0)
+{
+}
+
+void
+ContextForAry::
+S_OwnerStack::Reset()
+{
+ while ( aStack_Namespaces.top()->Owner().IsValid() )
+ aStack_Namespaces.pop();
+ while ( NOT aStack_Classes.empty() )
+ aStack_Classes.pop();
+ pCurEnum = 0;
+ nExternC = 0;
+ SetOwner_2CurNamespace();
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::SetGlobalNamespace( ary::cpp::Namespace & io_rGlobalNamespace )
+{
+ csv_assert( aStack_Namespaces.size() == 0 );
+ aStack_Namespaces.push(&io_rGlobalNamespace);
+ SetOwner_2CurNamespace();
+}
+
+ContextForAry::
+S_OwnerStack::~S_OwnerStack()
+{
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::OpenNamespace( ary::cpp::Namespace & io_rOpenedNamespace )
+{
+ csv_assert( aStack_Namespaces.size() > 0 OR io_rOpenedNamespace.Parent() == 0 );
+ aStack_Namespaces.push(&io_rOpenedNamespace);
+ SetOwner_2CurNamespace();
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::OpenExternC()
+{
+ ++nExternC;
+// SetOwner_2None();
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::SetCurProtection( ary::cpp::E_Protection i_eProtection )
+{
+ csv_assert( aStack_Classes.size() > 0 );
+ aStack_Classes.top().second = i_eProtection;
+}
+
+inline ary::cpp::Enum *
+ContextForAry::
+S_OwnerStack::CurEnum() const
+{
+ return pCurEnum;
+}
+
+
+inline ary::cpp::InputContext::Owner &
+ContextForAry::
+S_OwnerStack::CurOwner() const
+{
+ csv_assert( pOwner_Cur != 0 );
+ return *pOwner_Cur;
+}
+
+inline E_Protection
+ContextForAry::
+S_OwnerStack::CurProtection() const
+{
+ return aStack_Classes.size() > 0
+ ? aStack_Classes.top().second
+ : ary::cpp::PROTECT_global;
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::SetOwner_2None()
+{
+ pOwner_Cur = 0;
+}
+
+void
+ContextForAry::
+S_OwnerStack::OpenClass( ary::cpp::Class & io_rOpenedClass )
+{
+ E_Protection eDefaultProtection
+ = io_rOpenedClass.ClassKey() == ary::cpp::CK_class
+ ? ary::cpp::PROTECT_private
+ : ary::cpp::PROTECT_public;
+ aStack_Classes.push( ClassEnv(&io_rOpenedClass, eDefaultProtection) );
+ SetOwner_2CurClass();
+}
+
+inline void
+ContextForAry::
+S_OwnerStack::OpenEnum( ary::cpp::Enum & io_rOpenedEnum )
+{
+ csv_assert( pCurEnum == 0 );
+ pCurEnum = &io_rOpenedEnum;
+ SetOwner_2None();
+}
+
+void
+ContextForAry::
+S_OwnerStack::CloseBlock()
+{
+ if (nExternC > 0)
+ {
+ --nExternC;
+ }
+ else
+ {
+ // csv_assert( aStack_Classes.size() == 0 );
+ if ( aStack_Classes.size() > 0 )
+ throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
+
+ csv_assert( pCurEnum == 0 );
+ aStack_Namespaces.pop();
+
+ // csv_assert( aStack_Namespaces.size() > 0 );
+ if( aStack_Namespaces.size() == 0 )
+ throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
+
+ }
+ SetOwner_2CurNamespace();
+}
+
+void
+ContextForAry::
+S_OwnerStack::CloseClass()
+{
+ // csv_assert( aStack_Classes.size() > 0 );
+ if ( aStack_Classes.size() == 0 )
+ throw X_Parser(X_Parser::x_UnspecifiedSyntaxError, "", String::Null_(), 0);
+
+ aStack_Classes.pop();
+ if ( aStack_Classes.size() > 0 )
+ SetOwner_2CurClass();
+ else
+ SetOwner_2CurNamespace();
+}
+
+void
+ContextForAry::
+S_OwnerStack::CloseEnum()
+{
+ csv_assert( pCurEnum != 0 );
+ pCurEnum = 0;
+ if ( aStack_Classes.size() > 0 )
+ SetOwner_2CurClass();
+ else
+ SetOwner_2CurNamespace();
+}
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/srecover.hxx b/autodoc/source/parser/cpp/srecover.hxx
new file mode 100644
index 000000000000..e497404c08e9
--- /dev/null
+++ b/autodoc/source/parser/cpp/srecover.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SRECOVER_HXX
+#define ADC_CPP_SRECOVER_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include "cxt2ary.hxx"
+#include <ary/info/docstore.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp
+{
+
+/** Implementation struct for cpp::ContextForAry.
+*/
+struct ContextForAry::S_RecoveryGuard
+{
+ public:
+ S_RecoveryGuard();
+ ~S_RecoveryGuard();
+
+ void Reset() { bIsWithinRecovery = false; nBlockBracketsCounter = 0; }
+
+ void StartWaitingFor_Recovery();
+
+ void Hdl_SwBracketOpen();
+ void Hdl_SwBracketClose();
+ void Hdl_Semicolon();
+
+ bool IsWithinRecovery() const;
+
+ private:
+ // DATA
+ bool bIsWithinRecovery;
+ intt nBlockBracketsCounter;
+};
+
+
+
+// IMPLEMENTATION
+
+/* The implementation is in header, though not all inline, because this file
+ is included in cxt2ary.cxx only!
+*/
+
+ContextForAry::
+S_RecoveryGuard::S_RecoveryGuard()
+ : bIsWithinRecovery(false),
+ nBlockBracketsCounter(0)
+{
+}
+
+ContextForAry::
+S_RecoveryGuard::~S_RecoveryGuard()
+{
+}
+
+inline void
+ContextForAry::
+S_RecoveryGuard::StartWaitingFor_Recovery()
+{
+ bIsWithinRecovery = true;
+ nBlockBracketsCounter = 0;
+}
+
+void
+ContextForAry::
+S_RecoveryGuard::Hdl_SwBracketOpen()
+{
+ if ( bIsWithinRecovery )
+ ++nBlockBracketsCounter;
+}
+
+void
+ContextForAry::
+S_RecoveryGuard::Hdl_SwBracketClose()
+{
+ if ( bIsWithinRecovery )
+ --nBlockBracketsCounter;
+}
+
+inline void
+ContextForAry::
+S_RecoveryGuard::Hdl_Semicolon()
+{
+ if (bIsWithinRecovery AND nBlockBracketsCounter == 0)
+ bIsWithinRecovery = false;
+}
+
+inline bool
+ContextForAry::
+S_RecoveryGuard::IsWithinRecovery() const
+{
+ return bIsWithinRecovery;
+}
+
+
+
+} // namespace cpp
+
+
+#endif
+
diff --git a/autodoc/source/parser/cpp/tkp_cpp.cxx b/autodoc/source/parser/cpp/tkp_cpp.cxx
new file mode 100644
index 000000000000..fa3b456880e0
--- /dev/null
+++ b/autodoc/source/parser/cpp/tkp_cpp.cxx
@@ -0,0 +1,92 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "tkp_cpp.hxx"
+
+// NOT FULLY DECLARED SERVICES
+#include "cx_c_std.hxx"
+#include "c_dealer.hxx"
+
+
+namespace cpp {
+
+
+
+
+TokenParser_Cpp::TokenParser_Cpp( DYN autodoc::TkpDocuContext & let_drDocuContext )
+ : pBaseContext( new Context_CppStd( let_drDocuContext ) ),
+ pCurContext(0),
+ pDealer(0),
+ pCharacterSource(0)
+{
+ SetStartContext();
+}
+
+TokenParser_Cpp::~TokenParser_Cpp()
+{
+}
+
+void
+TokenParser_Cpp::AssignPartners( CharacterSource & io_rCharacterSource,
+ cpp::Distributor & o_rDealer )
+{
+ pDealer = &o_rDealer;
+ pBaseContext->AssignDealer(o_rDealer);
+ pCharacterSource = &io_rCharacterSource;
+}
+
+void
+TokenParser_Cpp::StartNewFile( const csv::ploc::Path & i_file )
+{
+ csv_assert(pDealer != 0);
+ pDealer->StartNewFile(i_file);
+
+ csv_assert(pCharacterSource != 0);
+ Start(*pCharacterSource);
+}
+
+void
+TokenParser_Cpp::SetStartContext()
+{
+ pCurContext = pBaseContext.Ptr();
+}
+
+void
+TokenParser_Cpp::SetCurrentContext( TkpContext & io_rContext )
+{
+ pCurContext = &io_rContext;
+}
+
+TkpContext &
+TokenParser_Cpp::CurrentContext()
+{
+ return *pCurContext;
+}
+
+} // namespace cpp
+
diff --git a/autodoc/source/parser/cpp/tkp_cpp.hxx b/autodoc/source/parser/cpp/tkp_cpp.hxx
new file mode 100644
index 000000000000..36405ebadc49
--- /dev/null
+++ b/autodoc/source/parser/cpp/tkp_cpp.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKP_CPP_HXX
+#define ADC_TKP_CPP_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkp.hxx>
+ // COMPONENTS
+ // PARAMETRS
+
+namespace autodoc
+{
+ class TkpDocuContext;
+}
+
+namespace csv
+{
+ namespace ploc
+ {
+ class Path;
+ class DirectoryChain;
+ }
+}
+
+
+namespace cpp {
+
+class Context_CppStd;
+class DefineDescription;
+class Distributor;
+
+
+/** This is a TokenParser which is able to parse tokens from
+ C++ source code.
+*/
+class TokenParser_Cpp : public TokenParser
+{
+ public:
+ typedef std::map< String, DefineDescription* > MacroMap;
+
+ // LIFECYCLE
+ TokenParser_Cpp(
+ DYN autodoc::TkpDocuContext &
+ let_drDocuContext );
+ virtual ~TokenParser_Cpp();
+
+ // OPERATIONS
+ void AssignPartners(
+ CharacterSource & io_rCharacterSource,
+ cpp::Distributor & o_rDealer );
+ void StartNewFile(
+ const csv::ploc::Path &
+ i_file );
+ private:
+ virtual void SetStartContext();
+ virtual void SetCurrentContext(
+ TkpContext & io_rContext );
+ virtual TkpContext &
+ CurrentContext();
+ // DATA
+ Dyn<Context_CppStd> pBaseContext;
+ TkpContext * pCurContext;
+ Distributor * pDealer;
+ CharacterSource * pCharacterSource;
+};
+
+
+} // namespace cpp
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/cpp/tokintpr.hxx b/autodoc/source/parser/cpp/tokintpr.hxx
new file mode 100644
index 000000000000..898339a48021
--- /dev/null
+++ b/autodoc/source/parser/cpp/tokintpr.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_TOKINTPR_HXX
+#define ADC_CPP_TOKINTPR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <all_toks.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp {
+
+
+
+#define DECL_TOK_HANDLER(token) \
+ void Hdl_##token( \
+ const Tok_##token & i_rTok ) { Call_Handler(i_rTok); }
+
+class TokenInterpreter
+{
+ public:
+ virtual ~TokenInterpreter() {}
+
+ DECL_TOK_HANDLER(Identifier)
+ DECL_TOK_HANDLER(Operator)
+ DECL_TOK_HANDLER(operator)
+ DECL_TOK_HANDLER(class)
+ DECL_TOK_HANDLER(struct)
+ DECL_TOK_HANDLER(union)
+ DECL_TOK_HANDLER(enum)
+ DECL_TOK_HANDLER(typedef)
+ DECL_TOK_HANDLER(public)
+ DECL_TOK_HANDLER(protected)
+ DECL_TOK_HANDLER(private)
+ DECL_TOK_HANDLER(template)
+ DECL_TOK_HANDLER(virtual)
+ DECL_TOK_HANDLER(friend)
+ DECL_TOK_HANDLER(Tilde)
+ DECL_TOK_HANDLER(const)
+ DECL_TOK_HANDLER(volatile)
+ DECL_TOK_HANDLER(extern)
+ DECL_TOK_HANDLER(static)
+ DECL_TOK_HANDLER(mutable)
+ DECL_TOK_HANDLER(register)
+ DECL_TOK_HANDLER(inline)
+ DECL_TOK_HANDLER(explicit)
+ DECL_TOK_HANDLER(namespace)
+ DECL_TOK_HANDLER(using)
+ DECL_TOK_HANDLER(throw)
+ DECL_TOK_HANDLER(SwBracket_Left)
+ DECL_TOK_HANDLER(SwBracket_Right)
+ DECL_TOK_HANDLER(ArrayBracket_Left)
+ DECL_TOK_HANDLER(ArrayBracket_Right)
+ DECL_TOK_HANDLER(Bracket_Left)
+ DECL_TOK_HANDLER(Bracket_Right)
+ DECL_TOK_HANDLER(DoubleColon)
+ DECL_TOK_HANDLER(Semicolon)
+ DECL_TOK_HANDLER(Comma)
+ DECL_TOK_HANDLER(Colon)
+ DECL_TOK_HANDLER(Assign)
+ DECL_TOK_HANDLER(Less)
+ DECL_TOK_HANDLER(Greater)
+ DECL_TOK_HANDLER(Asterix)
+ DECL_TOK_HANDLER(AmpersAnd)
+ DECL_TOK_HANDLER(Ellipse)
+ DECL_TOK_HANDLER(typename)
+ DECL_TOK_HANDLER(DefineName)
+ DECL_TOK_HANDLER(MacroName)
+ DECL_TOK_HANDLER(MacroParameter)
+ DECL_TOK_HANDLER(PreProDefinition)
+ DECL_TOK_HANDLER(BuiltInType)
+ DECL_TOK_HANDLER(TypeSpecializer)
+ DECL_TOK_HANDLER(Constant)
+
+ protected:
+ virtual void Call_Handler(
+ const cpp::Token & i_rTok ) = 0;
+};
+
+#undef DECL_TOK_HANDLER
+
+
+// IMPLEMENTATION
+
+
+} // namespace cpp
+
+
+#endif
diff --git a/autodoc/source/parser/inc/adoc/a_rdocu.hxx b/autodoc/source/parser/inc/adoc/a_rdocu.hxx
new file mode 100644
index 000000000000..a58b80da1ec9
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/a_rdocu.hxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_A_RDOCU_HXX
+#define ADC_ADOC_A_RDOCU_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+class DocuDealer;
+
+
+
+namespace adoc
+{
+
+class Token;
+class Adoc_PE;
+
+class DocuExplorer
+
+{
+ public:
+ DocuExplorer();
+ ~DocuExplorer();
+ void StartNewFile(
+ DocuDealer & o_rDocuDistributor );
+
+ void Process_Token(
+ DYN adoc::Token & let_drToken );
+ private:
+ DocuDealer * pDocuDistributor;
+ Dyn<Adoc_PE> pPE;
+ bool bIsPassedFirstDocu;
+};
+
+
+} // namespace adoc
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/adoc/adoc_tok.hxx b/autodoc/source/parser/inc/adoc/adoc_tok.hxx
new file mode 100644
index 000000000000..dc1d372d99b3
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/adoc_tok.hxx
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_ADOC_TOK_HXX
+#define ADC_ADOC_ADOC_TOK_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/token.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace adoc {
+
+
+class TokenInterpreter;
+
+
+class Token : public TextToken
+{
+ public:
+ // LIFECYCLE
+ virtual ~Token() {}
+
+ // OPERATIONS
+ virtual void DealOut(
+ ::TokenDealer & o_rDealer );
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const = 0;
+};
+
+
+} // namespace adoc
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/adoc/atokdeal.hxx b/autodoc/source/parser/inc/adoc/atokdeal.hxx
new file mode 100644
index 000000000000..b3e98dba2d0d
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/atokdeal.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_ATOKDEAL_HXX
+#define ADC_ADOC_ATOKDEAL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tokdeal.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace adoc
+{
+
+class Token;
+
+class TokenDealer : virtual public ::TokenDealer
+{
+ public:
+
+ virtual void Deal_AdcDocu(
+ adoc::Token & let_drToken ) = 0;
+};
+
+
+} // namespace adoc
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/cx_a_std.hxx b/autodoc/source/parser/inc/adoc/cx_a_std.hxx
new file mode 100644
index 000000000000..b0f9bb0ce881
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/cx_a_std.hxx
@@ -0,0 +1,105 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_CX_A_STD_HXX
+#define ADC_ADOC_CX_A_STD_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+ // COMPONENTS
+#include <tokens/tkpstama.hxx>
+ // PARAMETERS
+
+class TextToken;
+
+
+namespace adoc {
+
+class Cx_LineStart;
+class Cx_CheckStar;
+class Cx_AtTagCompletion;
+
+
+/**
+@descr
+*/
+class Context_AdocStd : public autodoc::TkpDocuContext,
+ private StateMachineContext
+{
+ public:
+ // LIFECYCLE
+ Context_AdocStd();
+ virtual void SetParentContext(
+ TkpContext & io_rParentContext,
+ const char * i_sMultiLineEndToken );
+ ~Context_AdocStd();
+
+ // OPERATIONS
+ virtual void AssignDealer(
+ TokenDealer & o_rDealer );
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+ virtual void SetMode_IsMultiLine(
+ bool i_bTrue );
+ // INQUIRY
+ virtual TkpContext &
+ FollowUpContext();
+ private:
+ // SERVICE FUNCTIONS
+ virtual void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ F_CRTOK i_fTokenCreateFunction,
+ CharacterSource & io_rText );
+
+ void SetupStateMachine();
+
+ // DATA
+ StateMachine aStateMachine;
+ TokenDealer * pDealer;
+
+ // Contexts
+ TkpContext * pParentContext;
+ TkpContext * pFollowUpContext;
+ Dyn<Cx_LineStart> pCx_LineStart;
+ Dyn<Cx_CheckStar> pCx_CheckStar;
+ Dyn<Cx_AtTagCompletion>
+ pCx_AtTagCompletion;
+
+ // Temporary data, used during ReadCharChain()
+ Dyn<TextToken> pNewToken;
+ bool bIsMultiline;
+};
+
+
+} // namespace adoc
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/cx_a_sub.hxx b/autodoc/source/parser/inc/adoc/cx_a_sub.hxx
new file mode 100644
index 000000000000..e447ce416c65
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/cx_a_sub.hxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_CX_A_SUB_HXX
+#define ADC_ADOC_CX_A_SUB_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+ // COMPONENTS
+#include <tokens/tkpstama.hxx>
+ // PARAMETERS
+#include <tokens/token.hxx>
+
+
+namespace adoc {
+
+
+
+
+class Cx_LineStart : public TkpContext
+{
+ public:
+ Cx_LineStart(
+ TkpContext & i_rFollowUpContext );
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+
+ void SetCurToken(
+ TextToken::F_CRTOK i_fTokenCreateFunction )
+ { fCur_TokenCreateFunction = i_fTokenCreateFunction; }
+ void AssignDealer(
+ TokenDealer & o_rDealer )
+ { pDealer = &o_rDealer; }
+ private:
+ // DATA
+ TokenDealer * pDealer;
+ TkpContext * pFollowUpContext;
+
+ Dyn<TextToken> pNewToken;
+
+ TextToken::F_CRTOK fCur_TokenCreateFunction;
+};
+
+
+/**
+@descr
+*/
+
+class Cx_CheckStar : public TkpContext
+{
+ public:
+ // LIFECYCLE
+ Cx_CheckStar(
+ TkpContext & i_rFollowUpContext );
+ void Set_End_FollowUpContext(
+ TkpContext & i_rEnd_FollowUpContext )
+ { pEnd_FollowUpContext = &i_rEnd_FollowUpContext; }
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+
+ void SetCanBeEnd(
+ bool i_bCanBeEnd )
+ { bCanBeEnd = i_bCanBeEnd; }
+ virtual TkpContext &
+ FollowUpContext();
+ void AssignDealer(
+ TokenDealer & o_rDealer )
+ { pDealer = &o_rDealer; }
+ private:
+ // DATA
+ TokenDealer * pDealer;
+ TkpContext * pFollowUpContext;
+ TkpContext * pEnd_FollowUpContext;
+
+ Dyn<TextToken> pNewToken;
+
+ bool bCanBeEnd;
+ bool bEndTokenFound;
+};
+
+
+class Cx_AtTagCompletion : public TkpContext
+{
+ public:
+ Cx_AtTagCompletion(
+ TkpContext & i_rFollowUpContext );
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+
+ void SetCurToken(
+ TextToken::F_CRTOK i_fTokenCreateFunction )
+ { fCur_TokenCreateFunction = i_fTokenCreateFunction; }
+ void AssignDealer(
+ TokenDealer & o_rDealer )
+ { pDealer = &o_rDealer; }
+ private:
+ // DATA
+ TokenDealer * pDealer;
+ TkpContext * pFollowUpContext;
+
+ Dyn<TextToken> pNewToken;
+
+ TextToken::F_CRTOK fCur_TokenCreateFunction;
+};
+
+
+} // namespace adoc
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/docu_pe.hxx b/autodoc/source/parser/inc/adoc/docu_pe.hxx
new file mode 100644
index 000000000000..166eeb02fd24
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/docu_pe.hxx
@@ -0,0 +1,192 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DOCU_PE_HXX
+#define ADC_DOCU_PE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <adoc/tokintpr.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace doc
+{
+ class OldCppDocu;
+}
+namespace info
+{
+ class AtTag;
+}
+}
+
+
+
+namespace adoc
+{
+
+
+class Adoc_PE : public TokenInterpreter
+{
+ public:
+ Adoc_PE();
+ ~Adoc_PE();
+
+ virtual void Hdl_at_std(
+ const Tok_at_std & i_rTok );
+ virtual void Hdl_at_base(
+ const Tok_at_base & i_rTok );
+ virtual void Hdl_at_exception(
+ const Tok_at_exception &
+ i_rTok );
+ virtual void Hdl_at_impl(
+ const Tok_at_impl & i_rTok );
+ virtual void Hdl_at_key(
+ const Tok_at_key & i_rTok );
+ virtual void Hdl_at_param(
+ const Tok_at_param &
+ i_rTok );
+ virtual void Hdl_at_see(
+ const Tok_at_see & i_rTok );
+ virtual void Hdl_at_template(
+ const Tok_at_template &
+ i_rTok );
+ virtual void Hdl_at_interface(
+ const Tok_at_interface &
+ i_rTok );
+ virtual void Hdl_at_internal(
+ const Tok_at_internal &
+ i_rTok );
+ virtual void Hdl_at_obsolete(
+ const Tok_at_obsolete &
+ i_rTok );
+ virtual void Hdl_at_module(
+ const Tok_at_module &
+ i_rTok );
+ virtual void Hdl_at_file(
+ const Tok_at_file & i_rTok );
+ virtual void Hdl_at_gloss(
+ const Tok_at_gloss &
+ i_rTok );
+ virtual void Hdl_at_global(
+ const Tok_at_global &
+ i_rTok );
+ virtual void Hdl_at_include(
+ const Tok_at_include &
+ i_rTok );
+ virtual void Hdl_at_label(
+ const Tok_at_label &
+ i_rTok );
+ virtual void Hdl_at_since(
+ const Tok_at_since &
+ i_rTok );
+ virtual void Hdl_at_HTML(
+ const Tok_at_HTML &
+ i_rTok );
+ virtual void Hdl_at_NOHTML(
+ const Tok_at_NOHTML &
+ i_rTok );
+
+ virtual void Hdl_DocWord(
+ const Tok_DocWord & i_rTok );
+
+ virtual void Hdl_Whitespace(
+ const Tok_Whitespace &
+ i_rTok );
+ virtual void Hdl_LineStart(
+ const Tok_LineStart &
+ i_rTok );
+ virtual void Hdl_Eol(
+ const Tok_Eol & i_rTok );
+
+ virtual void Hdl_EoDocu(
+ const Tok_EoDocu & i_rTok );
+
+
+ DYN ary::doc::OldCppDocu *
+ ReleaseJustParsedDocu();
+
+ bool IsComplete() const;
+
+ private:
+ void InstallAtTag(
+ DYN ary::info::AtTag *
+ let_dpTag,
+ bool i_bImplicit = false ); /// True for implicit @short and @descr.
+ ary::doc::OldCppDocu &
+ CurDocu();
+ ary::info::AtTag & CurAtTag();
+ bool UsesHtmlInDocuText();
+
+ void RenameCurShortTag();
+ void FinishCurShortTag();
+
+
+ // DATA
+ enum E_TagState
+ {
+ ts_new,
+ ts_std
+ };
+ enum E_DocuState
+ {
+ ds_wait_for_short = 0,
+ ds_in_short,
+ ds_1newline_after_short,
+ ds_in_descr,
+ ds_std
+ };
+
+ Dyn<ary::doc::OldCppDocu>
+ pCurDocu;
+ ary::info::AtTag * pCurAtTag;
+ uintt nLineCountInDocu;
+ UINT8 nCurSpecialMeaningTokens;
+ UINT8 nCurSubtractFromLineStart;
+ E_TagState eCurTagState;
+ E_DocuState eDocuState;
+ bool bIsComplete;
+ bool bUsesHtmlInDocuText;
+};
+
+
+// IMPLEMENTATION
+inline bool
+Adoc_PE::IsComplete() const
+{
+ return bIsComplete;
+}
+
+
+
+
+} // namespace adoc
+#endif
diff --git a/autodoc/source/parser/inc/adoc/prs_adoc.hxx b/autodoc/source/parser/inc/adoc/prs_adoc.hxx
new file mode 100644
index 000000000000..ac4758be371f
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/prs_adoc.hxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_PRS_ADOC_HXX
+#define ADC_ADOC_PRS_ADOC_HXX
+
+
+
+#include <autodoc/prs_docu.hxx>
+
+namespace adoc
+{
+
+
+class DocuParser_AutodocStyle : public autodoc::DocumentationParser_Ifc
+{
+ public:
+ DocuParser_AutodocStyle();
+ virtual ~DocuParser_AutodocStyle();
+
+ virtual DYN autodoc::TkpDocuContext *
+ Create_DocuContext() const;
+};
+
+
+
+} // namespace adoc
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/tk_attag.hxx b/autodoc/source/parser/inc/adoc/tk_attag.hxx
new file mode 100644
index 000000000000..f5f87a4c21cc
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/tk_attag.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_TK_ATTAG_HXX
+#define ADC_ADOC_TK_ATTAG_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <adoc/adoc_tok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/info/inftypes.hxx>
+
+namespace adoc {
+
+typedef ary::info::E_AtTagId E_AtTagId;
+
+
+class Tok_at_std : public Token
+{
+ public:
+ Tok_at_std(
+ E_AtTagId i_nId )
+ : eId(i_nId) {}
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ E_AtTagId Id() const { return eId; }
+
+ private:
+ E_AtTagId eId;
+};
+
+
+#define DECL_TOKEN_CLASS(name) \
+class Tok_##name : public Token \
+{ public: \
+ virtual void Trigger( \
+ TokenInterpreter & io_rInterpreter ) const; \
+ virtual const char * \
+ Text() const; \
+}
+
+
+DECL_TOKEN_CLASS(at_base);
+DECL_TOKEN_CLASS(at_exception);
+DECL_TOKEN_CLASS(at_impl);
+DECL_TOKEN_CLASS(at_key);
+DECL_TOKEN_CLASS(at_param);
+DECL_TOKEN_CLASS(at_see);
+DECL_TOKEN_CLASS(at_template);
+DECL_TOKEN_CLASS(at_interface);
+DECL_TOKEN_CLASS(at_internal);
+DECL_TOKEN_CLASS(at_obsolete);
+DECL_TOKEN_CLASS(at_module);
+DECL_TOKEN_CLASS(at_file);
+DECL_TOKEN_CLASS(at_gloss);
+DECL_TOKEN_CLASS(at_global);
+DECL_TOKEN_CLASS(at_include);
+DECL_TOKEN_CLASS(at_label);
+DECL_TOKEN_CLASS(at_HTML);
+DECL_TOKEN_CLASS(at_NOHTML);
+DECL_TOKEN_CLASS(at_since);
+
+
+#undef DECL_TOKEN_CLASS
+
+
+
+} // namespace adoc
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/tk_docw.hxx b/autodoc/source/parser/inc/adoc/tk_docw.hxx
new file mode 100644
index 000000000000..dc20a63a4332
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/tk_docw.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_TK_DOCW_HXX
+#define ADC_ADOC_TK_DOCW_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <adoc/adoc_tok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace adoc {
+
+
+class Tok_DocWord : public Token
+{
+ public:
+ // Spring and Fall
+ Tok_DocWord(
+ const char * i_sText )
+ : sText(i_sText) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ uintt Length() const { return sText.length(); }
+
+ private:
+ // DATA
+ String sText;
+};
+
+class Tok_Whitespace : public Token
+{
+ public:
+ // Spring and Fall
+ Tok_Whitespace(
+ UINT8 i_nSize )
+ : nSize(i_nSize) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ UINT8 Size() const { return nSize; }
+
+ private:
+ // DATA
+ UINT8 nSize;
+};
+
+class Tok_LineStart : public Token
+{
+ public:
+ // Spring and Fall
+ Tok_LineStart(
+ UINT8 i_nSize )
+ : nSize(i_nSize) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ UINT8 Size() const { return nSize; }
+
+ private:
+ // DATA
+ UINT8 nSize;
+};
+
+class Tok_Eol : public Token
+{ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+class Tok_EoDocu : public Token
+{ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+
+} // namespace adoc
+
+#endif
+
diff --git a/autodoc/source/parser/inc/adoc/tokintpr.hxx b/autodoc/source/parser/inc/adoc/tokintpr.hxx
new file mode 100644
index 000000000000..6c2ff2bc0204
--- /dev/null
+++ b/autodoc/source/parser/inc/adoc/tokintpr.hxx
@@ -0,0 +1,117 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_ADOC_TOKINTPR_HXX
+#define ADC_ADOC_TOKINTPR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace adoc {
+
+
+class Tok_at_std;
+class Tok_at_base;
+class Tok_at_exception;
+class Tok_at_impl;
+class Tok_at_key;
+class Tok_at_param;
+class Tok_at_see;
+class Tok_at_template;
+class Tok_at_interface;
+class Tok_at_internal;
+class Tok_at_obsolete;
+class Tok_at_module;
+class Tok_at_file;
+class Tok_at_gloss;
+class Tok_at_global;
+class Tok_at_include;
+class Tok_at_label;
+class Tok_at_since;
+class Tok_at_HTML; // Sets default to: Use HTML in DocuText
+class Tok_at_NOHTML; // Sets default to: Don't use HTML in DocuText
+
+class Tok_DocWord;
+class Tok_LineStart;
+class Tok_Whitespace;
+class Tok_Eol;
+class Tok_EoDocu;
+
+
+#define DECL_TOK_HANDLER(token) \
+ virtual void Hdl_##token( \
+ const Tok_##token & i_rTok ) = 0
+
+
+
+class TokenInterpreter
+{
+ public:
+ virtual ~TokenInterpreter() {}
+
+ DECL_TOK_HANDLER(at_std);
+ DECL_TOK_HANDLER(at_base);
+ DECL_TOK_HANDLER(at_exception);
+ DECL_TOK_HANDLER(at_impl);
+ DECL_TOK_HANDLER(at_key);
+ DECL_TOK_HANDLER(at_param);
+ DECL_TOK_HANDLER(at_see);
+ DECL_TOK_HANDLER(at_template);
+ DECL_TOK_HANDLER(at_interface);
+ DECL_TOK_HANDLER(at_internal);
+ DECL_TOK_HANDLER(at_obsolete);
+ DECL_TOK_HANDLER(at_module);
+ DECL_TOK_HANDLER(at_file);
+ DECL_TOK_HANDLER(at_gloss);
+ DECL_TOK_HANDLER(at_global);
+ DECL_TOK_HANDLER(at_include);
+ DECL_TOK_HANDLER(at_label);
+ DECL_TOK_HANDLER(at_since);
+ DECL_TOK_HANDLER(at_HTML);
+ DECL_TOK_HANDLER(at_NOHTML);
+ DECL_TOK_HANDLER(DocWord);
+ DECL_TOK_HANDLER(Whitespace);
+ DECL_TOK_HANDLER(LineStart);
+ DECL_TOK_HANDLER(Eol);
+ DECL_TOK_HANDLER(EoDocu);
+};
+
+#undef DECL_TOK_HANDLER
+
+
+// IMPLEMENTATION
+
+
+} // namespace adoc
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/cpp/ctokdeal.hxx b/autodoc/source/parser/inc/cpp/ctokdeal.hxx
new file mode 100644
index 000000000000..676bb8b40240
--- /dev/null
+++ b/autodoc/source/parser/inc/cpp/ctokdeal.hxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CTOKDEAL_HXX
+#define ADC_CPP_CTOKDEAL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tokdeal.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace cpp
+{
+
+class Token;
+class Tok_UnblockMacro;
+
+
+class TokenDealer : virtual public ::TokenDealer
+{
+ public:
+
+ virtual void Deal_CppCode(
+ cpp::Token & let_drToken ) = 0;
+
+ /** This is to be used only by the internal macro expander
+ ( ::cpp::PreProcessor ).
+ These tokens are inserted into the source text temporary to make clear,
+ where a specific macro replacement ends and therefore the macro's name
+ becomes valid again.
+
+ @see ::cpp::Tok_UnblockMacro
+ @see ::cpp::PreProcessor
+ */
+ virtual void Deal_Cpp_UnblockMacro(
+ Tok_UnblockMacro & let_drToken ) = 0;
+};
+
+
+
+} // namespace cpp
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/cpp/prs_cpp.hxx b/autodoc/source/parser/inc/cpp/prs_cpp.hxx
new file mode 100644
index 000000000000..1b324eeebd18
--- /dev/null
+++ b/autodoc/source/parser/inc/cpp/prs_cpp.hxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_PRS_CPP_HXX
+#define ADC_CPP_PRS_CPP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <autodoc/prs_code.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp
+{
+
+struct S_RunningData;
+
+class Cpluplus_Parser : public autodoc::CodeParser_Ifc
+{
+ public:
+ Cpluplus_Parser();
+ virtual ~Cpluplus_Parser();
+
+
+ virtual void Setup(
+ ary::Repository & o_rRepository,
+ const autodoc::DocumentationParser_Ifc &
+ i_rDocumentationInterpreter );
+
+ virtual void Run(
+ const autodoc::FileCollector_Ifc &
+ i_rFiles );
+ private:
+ Dyn<S_RunningData> pRunningData;
+};
+
+
+
+
+} // namespace cpp
+#endif
diff --git a/autodoc/source/parser/inc/doc_deal.hxx b/autodoc/source/parser/inc/doc_deal.hxx
new file mode 100644
index 000000000000..5ff17ee2264d
--- /dev/null
+++ b/autodoc/source/parser/inc/doc_deal.hxx
@@ -0,0 +1,89 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DOC_DEAL_HXX
+#define ADC_DOC_DEAL_HXX
+
+// BASE CLASSES
+#include <tokens/tokproct.hxx>
+// USED SERVICES
+#include <ary/cpp/c_types4cpp.hxx>
+
+namespace ary
+{
+namespace doc
+{
+ class OldCppDocu;
+}
+}
+
+
+
+
+class DocuDealer
+{
+ public:
+ // INQUIRY
+ virtual ~DocuDealer() {}
+
+ // OPERATIONS
+ /** @descr
+ This distributes the let_drDocu to the matching ary::RepositoryEntity .
+
+ If the docu is not inline, it will be saved and later given to the next
+ ary::CodeEntity. Or it will be discarded, if there does not come a matching
+ ary::CodeEntity .
+
+ If the docu is inline after a function header or after an enum value
+ or after a function parameter or after a base class, it will be stored
+ together with the matching function, enum value, parameter or base class.
+
+ If the documentation is @file or @project or @glos(sary) it will be
+ stored at the matching ary::cpp::FileGroup, ary::cpp::ProjectGroup
+ or ary::Glossary.
+ */
+ void TakeDocu(
+ DYN ary::doc::OldCppDocu &
+ let_drInfo );
+ private:
+ virtual void do_TakeDocu(
+ DYN ary::doc::OldCppDocu &
+ let_drInfo ) = 0;
+};
+
+
+
+
+// IMPLEMENTATION
+inline void
+DocuDealer::TakeDocu( DYN ary::doc::OldCppDocu & let_drInfo )
+ { do_TakeDocu(let_drInfo); }
+
+
+
+
+#endif
diff --git a/autodoc/source/parser/inc/semantic/callf.hxx b/autodoc/source/parser/inc/semantic/callf.hxx
new file mode 100644
index 000000000000..a76da81e280c
--- /dev/null
+++ b/autodoc/source/parser/inc/semantic/callf.hxx
@@ -0,0 +1,287 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_CALLF_HXX
+#define ADC_CPP_CALLF_HXX
+
+// USED SERVICES
+
+
+
+
+/** This represents a function to be called, if a specific kind of token
+ arrives in the semantic parser.
+
+ @descr This class is only to be used as member of PeStatus<PE>.
+ @template PE
+ The owning ParseEnvironment.
+ @see PeStatus, ParseEnvironment
+*/
+template <class PE>
+class CallFunction
+{
+ public:
+ typedef void (PE::*F_Tok)(const char *);
+
+ CallFunction(
+ F_Tok i_f2Call,
+ INT16 i_nTokType );
+
+ F_Tok GetF() const;
+ INT16 TokType() const;
+
+ private:
+ // DATA
+ F_Tok f2Call;
+ INT16 nTokType;
+};
+
+
+/** One state within a ParseEnvironment.
+
+ @template PE
+ The owning ParseEnvironment.
+*/
+template <class PE>
+class PeStatus
+{
+ public:
+ typedef typename CallFunction<PE>::F_Tok F_Tok;
+
+ PeStatus(
+ PE & i_rMyPE,
+ uintt i_nSize,
+ F_Tok * i_pFuncArray,
+ INT16 * i_pTokTypeArray,
+ F_Tok i_pDefault );
+ virtual ~PeStatus();
+
+ virtual void Call_Handler(
+ INT16 i_nTokTypeId,
+ const char * i_sTokenText ) const;
+
+ private:
+ bool CheckForCall(
+ uintt i_nPos,
+ INT16 i_nTokTypeId,
+ const char * i_sTokenText ) const;
+
+ PE * pMyPE;
+ std::vector< CallFunction<PE> >
+ aBranches;
+ F_Tok fDefault;
+};
+
+
+template <class PE>
+class PeStatusArray
+{
+ public:
+ typedef typename PE::E_State State;
+
+ PeStatusArray();
+ void InsertState(
+ State i_ePosition,
+ DYN PeStatus<PE> & let_drState );
+ ~PeStatusArray();
+
+ const PeStatus<PE> &
+ operator[](
+ State i_ePosition ) const;
+
+ void SetCur(
+ State i_eCurState );
+ const PeStatus<PE> &
+ Cur() const;
+
+ private:
+ DYN PeStatus<PE> * aStati[PE::size_of_states];
+ State eState;
+};
+
+
+
+// IMPLEMENTATION
+
+
+// CallFunction
+
+template <class PE>
+CallFunction<PE>::CallFunction( F_Tok i_f2Call,
+ INT16 i_nTokType )
+ : f2Call(i_f2Call),
+ nTokType(i_nTokType)
+{
+}
+
+template <class PE>
+inline typename CallFunction<PE>::F_Tok
+CallFunction<PE>::GetF() const
+{
+ return f2Call;
+}
+
+template <class PE>
+inline INT16
+CallFunction<PE>::TokType() const
+{
+ return nTokType;
+}
+
+
+
+// PeStatus
+
+template <class PE>
+PeStatus<PE>::PeStatus( PE & i_rMyPE,
+ uintt i_nSize,
+ F_Tok * i_pFuncArray,
+ INT16 * i_pTokTypeArray,
+ F_Tok i_fDefault )
+ : pMyPE(&i_rMyPE),
+ fDefault(i_fDefault)
+{
+ aBranches.reserve(i_nSize);
+ for ( uintt i = 0; i < i_nSize; ++i )
+ {
+// csv_assert(i > 0 ? i_pTokTypeArray[i] > i_pTokTypeArray[i-1] : true);
+ aBranches.push_back( CallFunction<PE>( i_pFuncArray[i], i_pTokTypeArray[i]) );
+ } // end for
+}
+
+template <class PE>
+PeStatus<PE>::~PeStatus()
+{
+
+}
+
+template <class PE>
+void
+PeStatus<PE>::Call_Handler( INT16 i_nTokTypeId,
+ const char * i_sTokenText ) const
+{
+ uintt nSize = aBranches.size();
+ uintt nPos = nSize / 2;
+
+ if ( i_nTokTypeId < aBranches[nPos].TokType() )
+ {
+ for ( --nPos; intt(nPos) >= 0; --nPos )
+ {
+ if (CheckForCall(nPos, i_nTokTypeId, i_sTokenText))
+ return;
+ }
+ }
+ else
+ {
+ for ( ; nPos < nSize; ++nPos )
+ {
+ if (CheckForCall(nPos, i_nTokTypeId, i_sTokenText))
+ return;
+ }
+ }
+
+ (pMyPE->*fDefault)(i_sTokenText);
+}
+
+template <class PE>
+bool
+PeStatus<PE>::CheckForCall( uintt i_nPos,
+ INT16 i_nTokTypeId,
+ const char * i_sTokenText ) const
+{
+ if ( aBranches[i_nPos].TokType() == i_nTokTypeId )
+ {
+ (pMyPE->*aBranches[i_nPos].GetF())(i_sTokenText);
+ return true;
+ }
+ return false;
+}
+
+// PeStatusArray
+
+template <class PE>
+PeStatusArray<PE>::PeStatusArray()
+ : eState(PE::size_of_states)
+{
+ memset(aStati, 0, sizeof aStati);
+}
+
+template <class PE>
+void
+PeStatusArray<PE>::InsertState( State i_ePosition,
+ DYN PeStatus<PE> & let_drState )
+{
+ csv_assert(aStati[i_ePosition] == 0);
+ aStati[i_ePosition] = &let_drState;
+}
+
+template <class PE>
+PeStatusArray<PE>::~PeStatusArray()
+{
+ int i_max = PE::size_of_states;
+ for (int i = 0; i < i_max; i++)
+ {
+ delete aStati[i];
+ } // end for
+}
+
+template <class PE>
+inline const PeStatus<PE> &
+PeStatusArray<PE>::operator[]( State i_ePosition ) const
+{
+ csv_assert( uintt(i_ePosition) < PE::size_of_states );
+ csv_assert( aStati[i_ePosition] != 0 );
+ return *aStati[i_ePosition];
+}
+
+template <class PE>
+inline void
+PeStatusArray<PE>::SetCur( State i_eCurState )
+{
+ eState = i_eCurState;
+}
+
+
+template <class PE>
+const PeStatus<PE> &
+PeStatusArray<PE>::Cur() const
+{
+ return (*this)[eState];
+}
+
+#define SEMPARSE_CREATE_STATUS(penv, state, default_function) \
+ pStati->InsertState( state, \
+ *new PeStatus<penv>( \
+ *this, \
+ sizeof( stateT_##state ) / sizeof (INT16), \
+ stateF_##state, \
+ stateT_##state, \
+ &penv::default_function ) )
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/semantic/parseenv.hxx b/autodoc/source/parser/inc/semantic/parseenv.hxx
new file mode 100644
index 000000000000..d6ba3daf661a
--- /dev/null
+++ b/autodoc/source/parser/inc/semantic/parseenv.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSEENV_HXX
+#define ADC_PARSEENV_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace info
+{
+class CodeInfo;
+} // namespace info
+} // namespace ary)
+
+
+
+class SubPeUseIfc;
+
+
+class ParseEnvironment : protected TokenProcessing_Types
+{
+ public:
+ virtual ~ParseEnvironment() {}
+
+ // Parsing
+ void Enter(
+ E_EnvStackAction i_eWayOfEntering );
+ void Leave(
+ E_EnvStackAction i_eWayOfLeaving );
+ void SetCurSPU(
+ const SubPeUseIfc * i_pCurSPU );
+
+ ParseEnvironment * Parent() const;
+
+
+ // ACCESS
+ protected:
+ ParseEnvironment(
+ ParseEnvironment * i_pParent );
+ const SubPeUseIfc * CurSubPeUse() const;
+ private:
+ virtual void InitData() = 0;
+ virtual void TransferData() = 0;
+
+ ParseEnvironment * pParent;
+ const SubPeUseIfc * pCurSubPe;
+};
+
+class SubPeUseIfc
+{
+ public:
+ virtual ~SubPeUseIfc() {}
+
+ virtual void InitParse() const = 0;
+ virtual void GetResults() const = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+inline void
+ParseEnvironment::SetCurSPU( const SubPeUseIfc * i_pCurSPU )
+ { pCurSubPe = i_pCurSPU; }
+
+inline ParseEnvironment *
+ParseEnvironment::Parent() const
+ { return pParent; }
+
+inline const SubPeUseIfc *
+ParseEnvironment::CurSubPeUse() const
+ { return pCurSubPe; }
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/semantic/sub_pe.hxx b/autodoc/source/parser/inc/semantic/sub_pe.hxx
new file mode 100644
index 000000000000..84775f2e9425
--- /dev/null
+++ b/autodoc/source/parser/inc/semantic/sub_pe.hxx
@@ -0,0 +1,112 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SUB_PE_HXX
+#define ADC_CPP_SUB_PE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+class ParseEnvironment;
+
+template <class PE, class SUB>
+class SubPe
+{
+ public:
+ typedef SubPe< PE, SUB > self;
+
+ SubPe(
+ PE & i_rParent );
+ PE & Parent() const;
+ SUB & Child() const;
+
+ ParseEnvironment & Get() const;
+
+ private:
+ SUB & CreateChild() const;
+
+ PE & rParent;
+ Dyn<SUB> pChild;
+};
+
+
+
+// IMPLEMENTATION
+
+
+// SubPe
+
+template <class PE, class SUB>
+SubPe<PE,SUB>::SubPe( PE & i_rParent )
+ : rParent(i_rParent)
+{
+}
+
+template <class PE, class SUB>
+PE &
+SubPe<PE,SUB>::Parent() const
+{
+ return rParent;
+}
+
+template <class PE, class SUB>
+inline SUB &
+SubPe<PE,SUB>::Child() const
+{
+ return pChild ? *pChild.MutablePtr() : CreateChild();
+}
+
+template <class PE, class SUB>
+ParseEnvironment &
+SubPe<PE,SUB>::Get() const
+{
+ return Child();
+}
+
+template <class PE, class SUB>
+SUB &
+SubPe<PE,SUB>::CreateChild() const
+{
+ self * pThis = const_cast< self* >(this);
+
+ SUB * pNewChild = new SUB( &rParent);
+
+ pThis->pChild = pNewChild;
+
+ return *pChild.MutablePtr();
+}
+
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/semantic/sub_peu.hxx b/autodoc/source/parser/inc/semantic/sub_peu.hxx
new file mode 100644
index 000000000000..c939f295c373
--- /dev/null
+++ b/autodoc/source/parser/inc/semantic/sub_peu.hxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_SUB_PEU_HXX
+#define ADC_CPP_SUB_PEU_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <semantic/parseenv.hxx>
+#include <tokens/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <semantic/sub_pe.hxx>
+
+
+
+template <class PE, class SUB>
+class SubPeUse : public SubPeUseIfc,
+ private TokenProcessing_Types
+{
+ public:
+ typedef void (PE::*F_INIT)();
+ typedef void (PE::*F_RETURN)();
+
+ SubPeUse(
+ SubPe<PE,SUB> & i_rSubPeCreator,
+ F_INIT i_fInit,
+ F_RETURN i_fReturn );
+ ~SubPeUse();
+
+ void Push(
+ E_TokenDone i_eDone );
+ virtual void InitParse() const;
+ virtual void GetResults() const;
+
+ PE & Parent() const;
+ SUB & Child() const;
+
+ private:
+ // DATA
+ SubPe<PE,SUB> & rSubPeCreator;
+ F_INIT fInit;
+ F_RETURN fReturn;
+};
+
+
+// IMPLEMENTATION
+
+
+template <class PE, class SUB>
+SubPeUse<PE,SUB>::SubPeUse( SubPe<PE,SUB> & i_rSubPeCreator,
+ F_INIT i_fInit,
+ F_RETURN i_fReturn )
+ : rSubPeCreator(i_rSubPeCreator),
+ fInit(i_fInit),
+ fReturn(i_fReturn)
+{
+}
+
+template <class PE, class SUB>
+SubPeUse<PE,SUB>::~SubPeUse()
+{
+}
+
+template <class PE, class SUB>
+void
+SubPeUse<PE,SUB>::Push( E_TokenDone i_eDone )
+{
+ Parent().SetTokenResult( i_eDone, push, &rSubPeCreator.Get() );
+ Parent().SetCurSPU(this);
+}
+
+template <class PE, class SUB>
+void
+SubPeUse<PE,SUB>::InitParse() const
+{
+ if (fInit != 0)
+ (Parent().*fInit)();
+}
+
+template <class PE, class SUB>
+void
+SubPeUse<PE,SUB>::GetResults() const
+{
+ if (fReturn != 0)
+ (Parent().*fReturn)();
+}
+
+template <class PE, class SUB>
+inline PE &
+SubPeUse<PE,SUB>::Parent() const
+{
+ return rSubPeCreator.Parent();
+}
+
+template <class PE, class SUB>
+inline SUB &
+SubPeUse<PE,SUB>::Child() const
+{
+ return rSubPeCreator.Child();
+}
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/tokens/parseinc.hxx b/autodoc/source/parser/inc/tokens/parseinc.hxx
new file mode 100644
index 000000000000..c1a20a2a11e3
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/parseinc.hxx
@@ -0,0 +1,203 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSEINC_HXX
+#define ADC_PARSEINC_HXX
+
+
+#include <tools/tkpchars.hxx>
+
+inline char
+jumpOver( CharacterSource & io_rText,
+ char in_c )
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext == in_c;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpTo( CharacterSource & io_rText,
+ char in_c )
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != in_c AND cNext != 0;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpTo( CharacterSource & io_rText,
+ char in_c1,
+ char in_c2 )
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != in_c1 AND cNext != in_c2 AND cNext != 0;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpTo( CharacterSource & io_rText,
+ char in_c1,
+ char in_c2,
+ char in_c3 )
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != in_c1 AND cNext != in_c2 AND cNext != in_c3 AND cNext != 0;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpTo( CharacterSource & io_rText,
+ char in_c1,
+ char in_c2,
+ char in_c3,
+ char in_c4 )
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != in_c1 AND cNext != in_c2 AND cNext != in_c3
+ AND cNext != in_c4 AND cNext != 0;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpOverWhite(CharacterSource & io_rText)
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ static_cast<UINT8>(cNext) < 33
+ AND cNext != 0 AND cNext != 13 AND cNext != 10;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpToWhite(CharacterSource & io_rText)
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ static_cast<UINT8>(cNext) > 32;
+ cNext = io_rText.MoveOn() )
+ { }
+
+ return cNext;
+}
+
+inline char
+jumpToEol(CharacterSource & io_rText, int & o_rCount_BackslashedLineBreaks )
+{
+ o_rCount_BackslashedLineBreaks = 0;
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != 13 AND cNext != 10 AND cNext != NULCH;
+ cNext = io_rText.MoveOn() )
+ {
+ if ( cNext == '\\')
+ {
+ cNext = io_rText.MoveOn();
+ if ( cNext == 13 )
+ io_rText.MoveOn();
+ if ( cNext == 10 )
+ ++o_rCount_BackslashedLineBreaks;
+ }
+ }
+ return cNext;
+}
+
+inline char
+jumpToEol(CharacterSource & io_rText)
+{
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ cNext != 13 AND cNext != 10 AND cNext != NULCH;
+ cNext = io_rText.MoveOn() )
+ {
+ if ( cNext == '\\')
+ io_rText.MoveOn();
+ }
+ return cNext;
+}
+
+inline char
+jumpOverEol(CharacterSource & io_rText)
+{
+ char cNext = io_rText.CurChar();
+
+ if (cNext == 13)
+ io_rText.MoveOn();
+ if (cNext == 10)
+ io_rText.MoveOn();
+ return cNext;
+}
+
+
+inline char // Finds a matching closing bracket after the opening one is passed
+jumpToMatchingBracket( CharacterSource & io_rText,
+ char in_cBegin,
+ char in_cEnd )
+{
+ intt nCounter = 1;
+ char cNext;
+ for ( cNext = io_rText.CurChar();
+ nCounter - (cNext == in_cEnd ? 1 : 0) > 0 AND cNext != NULCH;
+ cNext = io_rText.MoveOn() )
+ {
+ if (cNext == in_cEnd)
+ nCounter++;
+ else if (cNext == in_cBegin)
+ nCounter--;
+ }
+
+ return cNext;
+}
+
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/tokens/stmstarr.hxx b/autodoc/source/parser/inc/tokens/stmstarr.hxx
new file mode 100644
index 000000000000..d95ac2b6aa1c
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/stmstarr.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTARR_HXX
+#define ADC_STMSTARR_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/stmstate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <tokens/token.hxx>
+
+
+class StmArrayStatus : public StmStatus
+{
+ public:
+ typedef TextToken::F_CRTOK F_CRTOK;
+
+ // LIFECYCLE
+ StmArrayStatus(
+ intt i_nStatusSize,
+ const INT16 * in_aArrayModel,
+ F_CRTOK i_fTokenCreateFunction,
+ bool in_bIsDefault );
+ ~StmArrayStatus();
+
+ // INQUIRY
+ StmStatus::Branch NextBy(
+ intt in_nFollowersIndex) const;
+ F_CRTOK TokenCreateFunction() const
+ { return fTokenCreateFunction; }
+ virtual bool IsADefault() const;
+
+ // ACCESS
+ virtual StmArrayStatus *
+ AsArray();
+ bool SetBranch(
+ intt in_nBranchIx,
+ StmStatus::Branch in_nBranch );
+ void SetTokenCreateFunction(
+ F_CRTOK i_fTokenCreateFunction );
+ private:
+ StmStatus::Branch * dpBranches;
+ intt nNrOfBranches;
+ F_CRTOK fTokenCreateFunction;
+ bool bIsADefault;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+StmArrayStatus::SetTokenCreateFunction( F_CRTOK i_fTokenCreateFunction )
+ { fTokenCreateFunction = i_fTokenCreateFunction; }
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/stmstate.hxx b/autodoc/source/parser/inc/tokens/stmstate.hxx
new file mode 100644
index 000000000000..59c40733de74
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/stmstate.hxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTATE_HXX
+#define ADC_STMSTATE_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+class StmArrayStatus;
+class StmBoundsStatus;
+
+/** A StmStatus is a state within a StateMachine.
+ There are two kinds of it. Either its an array of pointers to
+ other states within the state machine - an ArrayStatus.
+
+ Or it is a BoundsStatus, which shows, the token cannot be
+ followed further within the StateMachine.
+**/
+class StmStatus // := "State machine status"
+{
+ public:
+ typedef intt Branch; /// Values >= 0 give a next #Status' ID.
+ /// Values <= 0 tell, that a token is finished.
+ /// a value < 0 returns the status back to an upper level state machine.
+ // LIFECYCLE
+ virtual ~StmStatus() {}
+
+ // OPERATIONS
+ virtual StmArrayStatus *
+ AsArray();
+ virtual StmBoundsStatus *
+ AsBounds();
+
+ // INQUIRY
+ virtual bool IsADefault() const = 0;
+};
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/stmstfin.hxx b/autodoc/source/parser/inc/tokens/stmstfin.hxx
new file mode 100644
index 000000000000..67e8e4525f5a
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/stmstfin.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTFIN_HXX
+#define ADC_STMSTFIN_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/stmstate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class TkpContext;
+class StateMachineContext;
+
+/**
+**/
+class StmBoundsStatus : public StmStatus
+{
+ public:
+ // LIFECYCLE
+ StmBoundsStatus(
+ StateMachineContext &
+ o_rOwner,
+ TkpContext & i_rFollowUpContext,
+ uintt i_nStatusFunctionNr,
+ bool i_bIsDefault );
+ // INQUIRY
+ TkpContext * FollowUpContext();
+ uintt StatusFunctionNr() const;
+ virtual bool IsADefault() const;
+
+ // ACCESS
+ virtual StmBoundsStatus *
+ AsBounds();
+
+ private:
+ StateMachineContext *
+ pOwner;
+ TkpContext * pFollowUpContext;
+ uintt nStatusFunctionNr;
+ bool bIsDefault;
+};
+
+inline TkpContext *
+StmBoundsStatus::FollowUpContext()
+ { return pFollowUpContext; }
+inline uintt
+StmBoundsStatus::StatusFunctionNr() const
+ { return nStatusFunctionNr; }
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/tkp.hxx b/autodoc/source/parser/inc/tokens/tkp.hxx
new file mode 100644
index 000000000000..6623230e9603
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/tkp.hxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKP_HXX
+#define ADC_TKP_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+class CharacterSource;
+class TkpContext;
+ // PARAMETRS
+
+
+
+/** This is the interface for parser classes, which get a sequence of tokens from
+ a text.
+
+ Start() starts to parse the text from the given i_rSource.
+ GetNextToken() returns a Token on the heap as long as there are
+ still characters in the text left. This can be checked by
+ HasMore().
+
+ The algorithms for parsing tokens from the text are an issue of
+ the derived classes.
+*/
+#if 0
+/**
+ Parsing can be interrupted for a different source by PushSource().
+ The parsing before interruption is continued after PopSource().
+*/
+#endif // 0
+
+class TokenParser
+{
+ public:
+ // LIFECYCLE
+ TokenParser();
+ virtual ~TokenParser() {}
+
+ // OPERATIONS
+ /** Start parsing a character source. Any previously parsed sources
+ are discarded.
+ */
+ virtual void Start(
+ CharacterSource &
+ i_rSource );
+
+ /** @short Gets the next identifiable token out of the
+ source code.
+ */
+ void GetNextToken();
+
+ /// @return true, if there are more tokens to parse.
+ bool HasMore() const { return bHasMore; }
+
+ private:
+ void InitSource(
+ CharacterSource &
+ i_rSource );
+
+ virtual void SetStartContext() = 0;
+ virtual void SetCurrentContext(
+ TkpContext & io_rContext ) = 0;
+ virtual TkpContext &
+ CurrentContext() = 0;
+ // DATA
+ CharacterSource * pChars;
+ bool bHasMore;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/tkpcontx.hxx b/autodoc/source/parser/inc/tokens/tkpcontx.hxx
new file mode 100644
index 000000000000..becc5c356051
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/tkpcontx.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKPCONTX_HXX
+#define ADC_TKPCONTX_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <tokens/token.hxx>
+class CharacterSource;
+class TkpNullContext;
+
+/** @task
+ Specifies a context within which tokens are interpreted in a special
+ way. For example in parsing C++ there could be a context for code,
+ one for comments and a third one for preprocessor statements, because
+ each of these would give the same token different meanings.
+
+ The three functions
+ ReadCharChain()
+ PassNewToken()
+ FollowUpContext()
+ have to be called in this sequence.
+
+**/
+class TkpContext
+{
+ public:
+ // LIFECYCLE
+ virtual ~TkpContext() {}
+
+ // OPERATIONS
+ /** @descr
+ The functions starts to parse with the CurChar() of io_rText.
+ It leaves io_rText.CurChar() at the first char of the following Token or
+ the following Context.
+
+ This function returns, when a context has parsed some characterss
+ and completed a token OR left the context.
+ If the token is to be ignored, it is cut from io_rText.
+
+ If the token is to be parsed further in a different context,
+ it is NOT cut from io_rText.
+
+ After this function PassNewToken() has to be called.
+
+ If the function has found a valid and complete token, PassNewToken()
+ passes the parsed token to the internally known receiver and
+ returns true. The token is cut from io_rText.
+ **/
+ virtual void ReadCharChain(
+ CharacterSource & io_rText ) = 0;
+ /** Has to pass the parsed token to a known receiver.
+ If the token is to be parsed further in a different context,
+ PassNewToken() returns false, but the token is NOT cut from io_rText.
+
+ @return true, if a token was passed.
+ false, if the token was not parsed completely by this context
+ or if the token is to be ignored.
+ */
+ virtual bool PassNewToken() = 0;
+ virtual TkpContext &
+ FollowUpContext() = 0;
+
+ static TkpNullContext &
+ Null_();
+};
+
+class StateMachineContext
+{
+ public:
+ typedef TextToken::F_CRTOK F_CRTOK;
+
+ virtual ~StateMachineContext() {}
+
+ /// Is used by StmBoundsStatus only.
+ virtual void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ F_CRTOK i_fTokenCreateFunction,
+ CharacterSource & io_rText ) = 0;
+};
+
+class TkpNullContext : public TkpContext
+{
+ public:
+ ~TkpNullContext();
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+};
+
+namespace autodoc
+{
+
+class TkpDocuContext : public TkpContext
+{
+ public:
+ virtual void SetParentContext(
+ TkpContext & io_rParentContext,
+ const char * i_sMultiLineEndToken ) = 0;
+ virtual void AssignDealer(
+ TokenDealer & o_rDealer ) = 0;
+ virtual void SetMode_IsMultiLine(
+ bool i_bTrue ) = 0;
+};
+
+} // namespace autodoc
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/tkpstama.hxx b/autodoc/source/parser/inc/tokens/tkpstama.hxx
new file mode 100644
index 000000000000..47d443275e8f
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/tkpstama.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKPSTAMA_HXX
+#define ADC_TKPSTAMA_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcontx.hxx>
+ // COMPONENTS
+#include <tokens/stmstarr.hxx>
+#include <tokens/stmstfin.hxx>
+
+/** @descr
+ This state-machine models state transitions from one state to another
+ per indices of branches. If the indices represent ascii-char-values,
+ the state-machine can be used for recognising tokens of text.
+
+ The state-machine can be a status itself.
+
+ StateMachine needs the array-size of all stati as a guess, how many stati
+ the state machine will contain, when at work.
+
+
+**/
+class StateMachine
+{
+ public:
+ // Types
+ typedef StmStatus::Branch Branch;
+ typedef StmStatus * * StatusList;
+
+ //# Interface self
+ // LIFECYCLE
+ StateMachine(
+ intt in_nStatusSize,
+ intt in_nInitial_StatusListSize ); /// The user of the constructor should guess
+ /// the approximate number of stati here to
+ /// avoid multiple reallocations.
+ /// @#AddStatus
+ intt AddStatus( /// @return the new #Status' ID
+ DYN StmStatus * let_dpStatus);
+ /// @#AddToken
+ void AddToken(
+ const char * in_sToken,
+ TextToken::F_CRTOK in_fTokenCreateFunction,
+ const INT16 * in_aBranches,
+ INT16 in_nBoundsStatus );
+ ~StateMachine();
+
+
+ // OPERATIONS
+ StmBoundsStatus &
+ GetCharChain(
+ TextToken::F_CRTOK &
+ o_nTokenCreateFunction,
+ CharacterSource & io_rText );
+ private:
+ // SERVICE FUNCTIONS
+ StmStatus & Status(
+ intt in_nStatusNr) const;
+ StmArrayStatus &
+ CurrentStatus() const;
+ StmBoundsStatus *
+ BoundsStatus() const;
+
+ /// Sets the PeekedStatus.
+ void Peek(
+ intt in_nBranch);
+
+ void ResizeStati(); // Adds space for 32 stati.
+
+ // DATA
+ StatusList pStati; /// List of Status, implemented as simple C-array of length #nStatiSpace
+ /// with nStatiLength valid members (beginning from zero).
+ intt nCurrentStatus;
+ intt nPeekedStatus;
+
+ intt nStatusSize; /// Size of the branch array of a single status.
+
+ intt nNrofStati; /// Nr of Stati so far.
+ intt nStatiSpace; /// Size of allocated array for #pStati (size in items).
+};
+
+
+
+/** @#AddToken
+ @descr
+ Adds a token, which will be recogniszeds by the
+ statemachine.
+
+
+**/
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/tokdeal.hxx b/autodoc/source/parser/inc/tokens/tokdeal.hxx
new file mode 100644
index 000000000000..0ab4155a42e3
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/tokdeal.hxx
@@ -0,0 +1,77 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TOKDEAL_HXX
+#define ADC_TOKDEAL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace cpp
+{
+ class Distributor;
+}
+
+
+class TokenDealer
+
+{
+ public:
+ virtual ~TokenDealer() {}
+
+ virtual void Deal_Eol() = 0;
+ virtual void Deal_Eof() = 0;
+ virtual cpp::Distributor *
+ AsDistributor() = 0;
+};
+
+
+#if 0
+class TokenDealer
+
+{
+ public:
+ virtual void Deal_IdlCode(
+ idl::Token & let_drToken );
+ virtual void Deal_UdkDocu(
+ udoc::Token & let_drToken );
+ virtual void Deal_JavaCode(
+ java::Token & let_drToken );
+ virtual void Deal_SBasicCode(
+ sbasic::Token & let_drToken );
+};
+
+#endif // 0
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/tokens/token.hxx b/autodoc/source/parser/inc/tokens/token.hxx
new file mode 100644
index 000000000000..82d70b066fdf
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/token.hxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TOKEN_HXX
+#define ADC_TOKEN_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETRS
+
+
+class TokenDealer;
+
+/**
+*/
+class TextToken
+{
+ public:
+ typedef TextToken * (*F_CRTOK)(const char*);
+
+ // LIFECYCLE
+ virtual ~TextToken() {}
+
+
+ // INQUIRY
+ virtual const char* Text() const = 0;
+
+ virtual void DealOut(
+ ::TokenDealer & o_rDealer ) = 0;
+};
+
+class Tok_Eof : public TextToken
+{
+ virtual void DealOut( // Implemented in tokdeal.cxx
+ TokenDealer & o_rDealer );
+ virtual const char* Text() const;
+};
+
+#endif
+
+
diff --git a/autodoc/source/parser/inc/tokens/tokproct.hxx b/autodoc/source/parser/inc/tokens/tokproct.hxx
new file mode 100644
index 000000000000..940b7482ff8c
--- /dev/null
+++ b/autodoc/source/parser/inc/tokens/tokproct.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CPP_TOKPROCT_HXX
+#define ADC_CPP_TOKPROCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+class ParseEnvironment;
+
+/** is a parent class for classes, which take part in parsing tokens semantically.
+ It provides some types for them.
+*/
+class TokenProcessing_Types
+{
+ public:
+ enum E_TokenDone
+ {
+ not_done = 0,
+ done = 1
+ };
+
+ enum E_EnvStackAction
+ {
+ stay, // same parse environment
+ push, // push sub environment
+ pop_success, // return to parent environment, parsing was successful
+ pop_failure // return to parent environment, but an error occured.
+ };
+
+ struct TokenProcessing_Result
+ {
+ E_TokenDone eDone;
+ E_EnvStackAction eStackAction;
+ ParseEnvironment * pEnv2Push;
+
+ TokenProcessing_Result()
+ : eDone(not_done), eStackAction(stay), pEnv2Push(0) {}
+ void Reset() { eDone = not_done; eStackAction = stay; pEnv2Push = 0; }
+ };
+
+ enum E_ParseResult
+ {
+ res_error,
+ res_complete,
+ res_predeclaration
+ };
+};
+
+
+
+#endif
+
diff --git a/autodoc/source/parser/inc/x_docu.hxx b/autodoc/source/parser/inc/x_docu.hxx
new file mode 100644
index 000000000000..bc75b96f5743
--- /dev/null
+++ b/autodoc/source/parser/inc/x_docu.hxx
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_X_DOCU_HXX
+#define ADC_X_DOCU_HXX
+
+// BASE CLASSES
+#include <autodoc/x_parsing.hxx>
+
+
+
+
+class X_Docu : public autodoc::X_Parser_Ifc
+{
+ public:
+ // LIFECYCLE
+ X_Docu(
+ const char * i_tag,
+ const char * i_explanation );
+ ~X_Docu();
+ // INQUIRY
+ virtual E_Event GetEvent() const;
+ virtual void GetInfo(
+ std::ostream & o_rOutputMedium ) const;
+
+ private:
+ String sTagName;
+ String sExplanation;
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/parser/inc/x_parse.hxx b/autodoc/source/parser/inc/x_parse.hxx
new file mode 100644
index 000000000000..7ccfa80056e7
--- /dev/null
+++ b/autodoc/source/parser/inc/x_parse.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_X_PARSE_HXX
+#define ADC_X_PARSE_HXX
+
+// BASE CLASSES
+#include <autodoc/x_parsing.hxx>
+
+
+
+
+class X_Parser : public autodoc::X_Parser_Ifc
+{
+ public:
+ // LIFECYCLE
+ X_Parser(
+ E_Event i_eEvent,
+ const char * i_sObject,
+ const String & i_sCausingFile_FullPath,
+ uintt i_nCausingLineNr );
+ ~X_Parser();
+ // INQUIRY
+ virtual E_Event GetEvent() const;
+ virtual void GetInfo(
+ std::ostream & o_rOutputMedium ) const;
+
+ private:
+ E_Event eEvent;
+ String sObject;
+ String sCausingFile_FullPath;
+ uintt nCausingLineNr;
+
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/parser/kernel/makefile.mk b/autodoc/source/parser/kernel/makefile.mk
new file mode 100644
index 000000000000..9baf8ab1c6ef
--- /dev/null
+++ b/autodoc/source/parser/kernel/makefile.mk
@@ -0,0 +1,58 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser_kernel
+TARGETTYPE=CUI
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/parsefct.obj \
+ $(OBJ)$/x_docu.obj \
+ $(OBJ)$/x_parse.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser/kernel/parsefct.cxx b/autodoc/source/parser/kernel/parsefct.cxx
new file mode 100644
index 000000000000..6f041ef8415e
--- /dev/null
+++ b/autodoc/source/parser/kernel/parsefct.cxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include "parsefct.hxx"
+
+
+// NOT FULLY DECLARED SERVICES
+#include <cpp/prs_cpp.hxx>
+#include <adoc/prs_adoc.hxx>
+#include <tools/filecoll.hxx>
+
+
+DYN ParseToolsFactory * ParseToolsFactory::dpTheInstance_ = 0;
+
+
+namespace autodoc
+{
+
+ParseToolsFactory_Ifc &
+ParseToolsFactory_Ifc::GetIt_()
+{
+ if ( ParseToolsFactory::dpTheInstance_ == 0 )
+ ParseToolsFactory::dpTheInstance_ = new ParseToolsFactory;
+ return *ParseToolsFactory::dpTheInstance_;
+}
+
+} // namespace autodoc
+
+
+ParseToolsFactory::ParseToolsFactory()
+{
+}
+
+ParseToolsFactory::~ParseToolsFactory()
+{
+}
+
+DYN autodoc::CodeParser_Ifc *
+ParseToolsFactory::Create_Parser_Cplusplus() const
+{
+ return new cpp::Cpluplus_Parser;
+}
+
+DYN autodoc::DocumentationParser_Ifc *
+ParseToolsFactory::Create_DocuParser_AutodocStyle() const
+{
+ return new adoc::DocuParser_AutodocStyle;
+}
+
+DYN autodoc::FileCollector_Ifc *
+ParseToolsFactory::Create_FileCollector( uintt i_nEstimatedNrOfFiles ) const
+{
+ return new FileCollector(i_nEstimatedNrOfFiles);
+}
+
+
diff --git a/autodoc/source/parser/kernel/parsefct.hxx b/autodoc/source/parser/kernel/parsefct.hxx
new file mode 100644
index 000000000000..0710e48ac1dc
--- /dev/null
+++ b/autodoc/source/parser/kernel/parsefct.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSER_PARSEFCT_HXX
+#define ADC_PARSER_PARSEFCT_HXX
+
+
+#include <autodoc/parsing.hxx>
+
+
+/** Interface for parsing code of a programming language and
+ delivering the information into an Autodoc Repository.
+**/
+class ParseToolsFactory : public autodoc::ParseToolsFactory_Ifc
+{
+ public:
+ ParseToolsFactory();
+ virtual ~ParseToolsFactory();
+
+ virtual DYN autodoc::CodeParser_Ifc *
+ Create_Parser_Cplusplus() const;
+ virtual DYN autodoc::DocumentationParser_Ifc *
+ Create_DocuParser_AutodocStyle() const;
+ virtual DYN autodoc::FileCollector_Ifc *
+ Create_FileCollector(
+ uintt i_nEstimatedNrOfFiles ) const;
+ private:
+ static DYN ParseToolsFactory *
+ dpTheInstance_;
+
+ friend class autodoc::ParseToolsFactory_Ifc;
+};
+
+
+#endif
+
diff --git a/autodoc/source/parser/kernel/x_docu.cxx b/autodoc/source/parser/kernel/x_docu.cxx
new file mode 100644
index 000000000000..a811c5dca2e4
--- /dev/null
+++ b/autodoc/source/parser/kernel/x_docu.cxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <x_docu.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+
+
+X_Docu::X_Docu( const char * i_tag,
+ const char * i_explanation )
+ : sTagName(i_tag),
+ sExplanation(i_explanation)
+{
+}
+
+X_Docu::~X_Docu()
+{
+}
+
+X_Docu::E_Event
+X_Docu::GetEvent() const
+{
+ return x_Any;
+}
+
+void
+X_Docu::GetInfo( std::ostream & o_rOutputMedium ) const
+{
+ o_rOutputMedium
+ << "Error in tag '"
+ << sTagName
+ << "': "
+ << sExplanation
+ << Endl();
+}
diff --git a/autodoc/source/parser/kernel/x_parse.cxx b/autodoc/source/parser/kernel/x_parse.cxx
new file mode 100644
index 000000000000..74c3e520d0d0
--- /dev/null
+++ b/autodoc/source/parser/kernel/x_parse.cxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <x_parse.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+
+
+X_Parser::X_Parser( E_Event i_eEvent,
+ const char * i_sObject,
+ const String & i_sCausingFile_FullPath,
+ uintt i_nCausingLineNr )
+ : eEvent(i_eEvent),
+ sObject(i_sObject),
+ sCausingFile_FullPath(i_sCausingFile_FullPath),
+ nCausingLineNr(i_nCausingLineNr)
+{
+}
+
+X_Parser::~X_Parser()
+{
+}
+
+X_Parser::E_Event
+X_Parser::GetEvent() const
+{
+ return eEvent;
+}
+
+void
+X_Parser::GetInfo( std::ostream & o_rOutputMedium ) const
+{
+ o_rOutputMedium << "Error in file "
+ << sCausingFile_FullPath
+ << " in line "
+ << nCausingLineNr
+ << ": ";
+
+
+ switch (eEvent)
+ {
+ case x_InvalidChar:
+ o_rOutputMedium << "Unknown character '"
+ << sObject
+ << "'";
+ break;
+ case x_UnexpectedToken:
+ o_rOutputMedium << "Unexpected token \""
+ << sObject
+ << "\"";
+ break;
+ case x_UnexpectedEOF:
+ o_rOutputMedium << "Unexpected end of file.";
+ break;
+ case x_UnspecifiedSyntaxError:
+ o_rOutputMedium << "Unspecified syntax problem in file.";
+ break;
+ case x_Any:
+ default:
+ o_rOutputMedium << "Unspecified parsing exception.";
+ } // end switch
+ o_rOutputMedium << Endl();
+}
+
+
+std::ostream &
+operator<<( std::ostream & o_rOut,
+ const autodoc::X_Parser_Ifc & i_rException )
+{
+ i_rException.GetInfo(o_rOut);
+ return o_rOut;
+}
diff --git a/autodoc/source/parser/semantic/makefile.mk b/autodoc/source/parser/semantic/makefile.mk
new file mode 100644
index 000000000000..da7e8f154b43
--- /dev/null
+++ b/autodoc/source/parser/semantic/makefile.mk
@@ -0,0 +1,58 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser_semantic
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/parseenv.obj
+
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser/semantic/parseenv.cxx b/autodoc/source/parser/semantic/parseenv.cxx
new file mode 100644
index 000000000000..4478f720189e
--- /dev/null
+++ b/autodoc/source/parser/semantic/parseenv.cxx
@@ -0,0 +1,86 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <semantic/parseenv.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/doc/d_oldcppdocu.hxx>
+#include <x_parse.hxx>
+
+
+void
+ParseEnvironment::Enter( E_EnvStackAction i_eWayOfEntering )
+{
+ switch (i_eWayOfEntering)
+ {
+ case push:
+ InitData();
+ if ( Parent() != 0 )
+ {
+ csv_assert( Parent()->CurSubPeUse() != 0 );
+ Parent()->CurSubPeUse()->InitParse();
+ }
+ break;
+ case pop_success:
+ break;
+ case pop_failure:
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+void
+ParseEnvironment::Leave( E_EnvStackAction i_eWayOfLeaving )
+{
+ switch (i_eWayOfLeaving)
+ {
+ case push:
+ break;
+ case pop_success:
+ TransferData();
+ if ( Parent() != 0 )
+ {
+ csv_assert( Parent()->CurSubPeUse() != 0 );
+ Parent()->CurSubPeUse()->GetResults();
+ }
+ break;
+ case pop_failure:
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+ParseEnvironment::ParseEnvironment( ParseEnvironment * i_pParent )
+ : pParent(i_pParent),
+ // pDocu,
+ pCurSubPe(0)
+{
+}
diff --git a/autodoc/source/parser/tokens/makefile.mk b/autodoc/source/parser/tokens/makefile.mk
new file mode 100644
index 000000000000..beb3207154fb
--- /dev/null
+++ b/autodoc/source/parser/tokens/makefile.mk
@@ -0,0 +1,62 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=garden
+TARGET=parser_tokens
+TARGETTYPE=CUI
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/stmstarr.obj \
+ $(OBJ)$/stmstate.obj \
+ $(OBJ)$/stmstfin.obj \
+ $(OBJ)$/tkpstama.obj \
+ $(OBJ)$/tkp.obj \
+ $(OBJ)$/tkpcontx.obj \
+ $(OBJ)$/tokdeal.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser/tokens/stmstarr.cxx b/autodoc/source/parser/tokens/stmstarr.cxx
new file mode 100644
index 000000000000..e029b3c11f45
--- /dev/null
+++ b/autodoc/source/parser/tokens/stmstarr.cxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstarr.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <x_parse.hxx>
+
+
+
+StmArrayStatus::StmArrayStatus( intt i_nStatusSize,
+ const INT16 * in_aArrayModel,
+ F_CRTOK i_fTokenCreateFunction,
+ bool in_bIsDefault )
+ : dpBranches(new StmStatus::Branch[i_nStatusSize]),
+ nNrOfBranches(i_nStatusSize),
+ fTokenCreateFunction(i_fTokenCreateFunction),
+ bIsADefault(in_bIsDefault)
+{
+ if (in_aArrayModel != 0)
+ {
+ intt count = 0;
+ for (const INT16 * get = in_aArrayModel; count < nNrOfBranches; count++, get++)
+ dpBranches[count] = *get;
+ }
+ else //
+ {
+ memset(dpBranches, 0, nNrOfBranches);
+ } // endif
+}
+
+StmArrayStatus::~StmArrayStatus()
+{
+ delete [] dpBranches;
+}
+
+bool
+StmArrayStatus::SetBranch( intt in_nBranchIx,
+ StmStatus::Branch in_nBranch )
+{
+ if ( csv::in_range(intt(0), in_nBranchIx, intt(nNrOfBranches) ) )
+ {
+ dpBranches[in_nBranchIx] = in_nBranch;
+ return true;
+ }
+ return false;
+}
+
+
+StmStatus::Branch
+StmArrayStatus::NextBy(intt in_nIndex) const
+{
+ if (in_nIndex < 0)
+ throw X_Parser(X_Parser::x_InvalidChar, "", String::Null_(), 0);
+
+ return in_nIndex < nNrOfBranches
+ ? dpBranches[in_nIndex]
+ : dpBranches[nNrOfBranches - 1];
+}
+
+
+bool
+StmArrayStatus::IsADefault() const
+{
+ return bIsADefault;
+}
+
+StmArrayStatus *
+StmArrayStatus::AsArray()
+{
+ return this;
+}
+
diff --git a/autodoc/source/parser/tokens/stmstate.cxx b/autodoc/source/parser/tokens/stmstate.cxx
new file mode 100644
index 000000000000..991cad13cb85
--- /dev/null
+++ b/autodoc/source/parser/tokens/stmstate.cxx
@@ -0,0 +1,46 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstate.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+
+StmArrayStatus *
+StmStatus::AsArray()
+{
+ return 0;
+}
+
+StmBoundsStatus *
+StmStatus::AsBounds()
+{
+ return 0;
+}
+
+
diff --git a/autodoc/source/parser/tokens/stmstfin.cxx b/autodoc/source/parser/tokens/stmstfin.cxx
new file mode 100644
index 000000000000..c6999e596e58
--- /dev/null
+++ b/autodoc/source/parser/tokens/stmstfin.cxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstfin.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <tokens/tkpcontx.hxx>
+
+
+StmBoundsStatus::StmBoundsStatus( StateMachineContext &
+ o_rOwner,
+ TkpContext & i_rFollowUpContext,
+ uintt i_nStatusFunctionNr,
+ bool i_bIsDefault )
+ : pOwner(&o_rOwner),
+ pFollowUpContext(&i_rFollowUpContext),
+ nStatusFunctionNr(i_nStatusFunctionNr),
+ bIsDefault(i_bIsDefault)
+{
+}
+
+bool
+StmBoundsStatus::IsADefault() const
+{
+ return bIsDefault;
+}
+
+StmBoundsStatus *
+StmBoundsStatus::AsBounds()
+{
+ return this;
+}
+
+
+
diff --git a/autodoc/source/parser/tokens/tkp.cxx b/autodoc/source/parser/tokens/tkp.cxx
new file mode 100644
index 000000000000..900fdccefd43
--- /dev/null
+++ b/autodoc/source/parser/tokens/tkp.cxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkp.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <tools/tkpchars.hxx>
+#include <tokens/tkpcontx.hxx>
+
+
+
+TokenParser::TokenParser()
+ : pChars(0),
+ bHasMore(false)
+{
+}
+
+void
+TokenParser::Start( CharacterSource & i_rSource )
+{
+ InitSource(i_rSource);
+}
+
+void
+TokenParser::GetNextToken()
+{
+ csv_assert(pChars != 0);
+
+ bHasMore = NOT pChars->IsFinished();
+
+ for ( bool bDone = NOT bHasMore; NOT bDone; )
+ {
+ CurrentContext().ReadCharChain(*pChars);
+ bDone = CurrentContext().PassNewToken();
+ SetCurrentContext(CurrentContext().FollowUpContext());
+ }
+}
+
+void
+TokenParser::InitSource( CharacterSource & i_rSource )
+{
+ pChars = &i_rSource;
+ bHasMore = true;
+ SetStartContext();
+}
+
+
diff --git a/autodoc/source/parser/tokens/tkpcontx.cxx b/autodoc/source/parser/tokens/tkpcontx.cxx
new file mode 100644
index 000000000000..cbaab756c038
--- /dev/null
+++ b/autodoc/source/parser/tokens/tkpcontx.cxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkpcontx.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+
+
+TkpNullContext G_aNullContext;
+
+TkpNullContext &
+TkpContext::Null_()
+{
+ return G_aNullContext;
+}
+
+TkpNullContext::~TkpNullContext()
+{
+}
+
+void
+TkpNullContext::ReadCharChain( CharacterSource & )
+{
+}
+
+bool
+TkpNullContext::PassNewToken()
+{
+ return false;
+}
+
+TkpContext &
+TkpNullContext::FollowUpContext()
+{
+ return *this;
+}
+
+
+
+
+
+
diff --git a/autodoc/source/parser/tokens/tkpstama.cxx b/autodoc/source/parser/tokens/tkpstama.cxx
new file mode 100644
index 000000000000..9cf964601798
--- /dev/null
+++ b/autodoc/source/parser/tokens/tkpstama.cxx
@@ -0,0 +1,177 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkpstama.hxx>
+
+// NOT FULLY DECLARED SERVICES
+// #include <srcfind.hxx>
+#include <tokens/stmstarr.hxx>
+//#include <parseinc.hxx>
+#include <tools/tkpchars.hxx>
+
+
+const intt C_nStatuslistResizeValue = 32;
+const intt C_nTopStatus = 0;
+
+StateMachine::StateMachine( intt in_nStatusSize,
+ intt in_nInitial_StatusListSize )
+ : pStati(new StmStatus*[in_nInitial_StatusListSize]),
+ nCurrentStatus(C_nTopStatus),
+ nPeekedStatus(C_nTopStatus),
+ nStatusSize(in_nStatusSize),
+ nNrofStati(0),
+ nStatiSpace(in_nInitial_StatusListSize)
+{
+ csv_assert(in_nStatusSize > 0);
+ csv_assert(in_nInitial_StatusListSize > 0);
+
+ memset(pStati, 0, sizeof(StmStatus*) * nStatiSpace);
+}
+
+intt
+StateMachine::AddStatus(StmStatus * let_dpStatus)
+{
+ if (nNrofStati == nStatiSpace)
+ {
+ ResizeStati();
+ }
+ pStati[nNrofStati] = let_dpStatus;
+ return nNrofStati++;
+}
+
+void
+StateMachine::AddToken( const char * in_sToken,
+ TextToken::F_CRTOK in_fTokenCreateFunction,
+ const INT16 * in_aBranches,
+ INT16 in_nBoundsStatus )
+{
+ if (csv::no_str(in_sToken))
+ return;
+
+ // Durch existierende Stati durchhangeln:
+ nCurrentStatus = 0;
+ nPeekedStatus = 0;
+
+ for ( const char * pChar = in_sToken;
+ *pChar != NULCH;
+ ++pChar )
+ {
+ Peek(*pChar);
+ StmStatus & rPst = Status(nPeekedStatus);
+ if ( rPst.IsADefault() OR rPst.AsBounds() != 0 )
+ {
+ nPeekedStatus = AddStatus( new StmArrayStatus(nStatusSize, in_aBranches, 0, false ) );
+ CurrentStatus().SetBranch( *pChar, nPeekedStatus );
+ }
+ nCurrentStatus = nPeekedStatus;
+ } // end for
+ StmArrayStatus & rLastStatus = CurrentStatus();
+ rLastStatus.SetTokenCreateFunction(in_fTokenCreateFunction);
+ for (intt i = 0; i < nStatusSize; i++)
+ {
+ if (Status(rLastStatus.NextBy(i)).AsBounds() != 0)
+ rLastStatus.SetBranch(i,in_nBoundsStatus);
+ } // end for
+}
+
+StateMachine::~StateMachine()
+{
+ for (intt i = 0; i < nNrofStati; i++)
+ {
+ delete pStati[i];
+ }
+ delete [] pStati;
+}
+
+StmBoundsStatus &
+StateMachine::GetCharChain( TextToken::F_CRTOK & o_nTokenCreateFunction,
+ CharacterSource & io_rText )
+{
+ nCurrentStatus = C_nTopStatus;
+
+ Peek(io_rText.CurChar());
+ while (BoundsStatus() == 0)
+ {
+ nCurrentStatus = nPeekedStatus;
+ Peek(io_rText.MoveOn());
+ }
+ o_nTokenCreateFunction = CurrentStatus().TokenCreateFunction();
+
+ return *BoundsStatus();
+}
+
+void
+StateMachine::ResizeStati()
+{
+ intt nNewSize = nStatiSpace + C_nStatuslistResizeValue;
+ intt i = 0;
+ StatusList pNewStati = new StmStatus*[nNewSize];
+
+ for ( ; i < nNrofStati; i++)
+ {
+ pNewStati[i] = pStati[i];
+ }
+ memset( pNewStati+i,
+ 0,
+ (nNewSize-i) * sizeof(StmStatus*) );
+
+ delete [] pStati;
+ pStati = pNewStati;
+ nStatiSpace = nNewSize;
+}
+
+StmStatus &
+StateMachine::Status(intt in_nStatusNr) const
+{
+ csv_assert( csv::in_range(intt(0), in_nStatusNr, intt(nNrofStati)) );
+ return *pStati[in_nStatusNr];
+}
+
+StmArrayStatus &
+StateMachine::CurrentStatus() const
+{
+ StmArrayStatus * pCurSt = Status(nCurrentStatus).AsArray();
+
+ csv_assert(pCurSt != 0);
+// if(pCurSt == 0)
+// csv_assert(false);
+ return *pCurSt;
+}
+
+StmBoundsStatus *
+StateMachine::BoundsStatus() const
+{
+ return Status(nPeekedStatus).AsBounds();
+}
+
+void
+StateMachine::Peek(intt in_nBranch)
+{
+ StmArrayStatus & rSt = CurrentStatus();
+ nPeekedStatus = rSt.NextBy(in_nBranch);
+}
diff --git a/autodoc/source/parser/tokens/tokdeal.cxx b/autodoc/source/parser/tokens/tokdeal.cxx
new file mode 100644
index 000000000000..4f4273b36aba
--- /dev/null
+++ b/autodoc/source/parser/tokens/tokdeal.cxx
@@ -0,0 +1,50 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tokdeal.hxx>
+#include <tokens/token.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+
+
+
+void
+Tok_Eof::DealOut( TokenDealer & o_rDealer )
+{
+ o_rDealer.Deal_Eof();
+};
+
+const char *
+Tok_Eof::Text() const
+{
+ return "";
+}
+
+
+
diff --git a/autodoc/source/parser_i/idl/cx_idlco.cxx b/autodoc/source/parser_i/idl/cx_idlco.cxx
new file mode 100644
index 000000000000..3ba1a41891af
--- /dev/null
+++ b/autodoc/source/parser_i/idl/cx_idlco.cxx
@@ -0,0 +1,545 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/cx_idlco.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/cx_sub.hxx>
+#include <s2_dsapi/cx_dsapi.hxx>
+#include <tools/tkpchars.hxx>
+#include <tokens/tkpstam2.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tokrecv.hxx>
+#include <x_parse2.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+const intt C_nCppInitialNrOfStati = 400;
+const intt C_nStatusSize = 128;
+
+
+
+const uintt nF_fin_Error = 1;
+const uintt nF_fin_Ignore = 2;
+const uintt nF_fin_Identifier = 3;
+const uintt nF_fin_Keyword = 4;
+const uintt nF_fin_Punctuation = 5;
+const uintt nF_fin_EOL = 6;
+const uintt nF_fin_EOF = 7;
+
+const uintt nF_goto_MLDocu = 10;
+const uintt nF_goto_SLDocu = 11;
+const uintt nF_goto_MLComment = 12;
+const uintt nF_goto_SLComment = 13;
+const uintt nF_goto_Praeprocessor = 14;
+const uintt nF_goto_Assignment = 15;
+
+
+
+const UINT16 nTok_bty_any = 100 + TokBuiltInType::bty_any;
+const UINT16 nTok_bty_boolean = 100 + TokBuiltInType::bty_boolean;
+const UINT16 nTok_bty_byte = 100 + TokBuiltInType::bty_byte;
+const UINT16 nTok_bty_char = 100 + TokBuiltInType::bty_char;
+const UINT16 nTok_bty_double = 100 + TokBuiltInType::bty_double;
+const UINT16 nTok_bty_hyper = 100 + TokBuiltInType::bty_hyper;
+const UINT16 nTok_bty_long = 100 + TokBuiltInType::bty_long;
+const UINT16 nTok_bty_short = 100 + TokBuiltInType::bty_short;
+const UINT16 nTok_bty_string = 100 + TokBuiltInType::bty_string;
+const UINT16 nTok_bty_void = 100 + TokBuiltInType::bty_void;
+const UINT16 nTok_bty_ellipse = 100 + TokBuiltInType::bty_ellipse;
+
+const UINT16 nTok_tmod_unsigned = 200 + TokTypeModifier::tmod_unsigned;
+const UINT16 nTok_tmod_sequence = 200 + TokTypeModifier::tmod_sequence;
+
+const UINT16 nTok_ph_in = 250 + TokParameterHandling::ph_in;
+const UINT16 nTok_ph_out = 250 + TokParameterHandling::ph_out;
+const UINT16 nTok_ph_inout = 250 + TokParameterHandling::ph_inout;
+
+const UINT16 nTok_mt_attribute = 300 + TokMetaType::mt_attribute;
+const UINT16 nTok_mt_constants = 300 + TokMetaType::mt_constants;
+const UINT16 nTok_mt_enum = 300 + TokMetaType::mt_enum;
+const UINT16 nTok_mt_exception = 300 + TokMetaType::mt_exception;
+const UINT16 nTok_mt_ident = 300 + TokMetaType::mt_ident;
+const UINT16 nTok_mt_interface = 300 + TokMetaType::mt_interface;
+const UINT16 nTok_mt_module = 300 + TokMetaType::mt_module;
+const UINT16 nTok_mt_property = 300 + TokMetaType::mt_property;
+const UINT16 nTok_mt_service = 300 + TokMetaType::mt_service;
+const UINT16 nTok_mt_singleton = 300 + TokMetaType::mt_singleton;
+const UINT16 nTok_mt_struct = 300 + TokMetaType::mt_struct;
+const UINT16 nTok_mt_typedef = 300 + TokMetaType::mt_typedef;
+const UINT16 nTok_mt_uik = 300 + TokMetaType::mt_uik;
+
+const UINT16 nTok_ste_bound = 400 + TokStereotype::ste_bound;
+const UINT16 nTok_ste_constrained = 400 + TokStereotype::ste_constrained;
+const UINT16 nTok_ste_const = 400 + TokStereotype::ste_const;
+const UINT16 nTok_ste_maybeambiguous = 400 + TokStereotype::ste_maybeambiguous;
+const UINT16 nTok_ste_maybedefault = 400 + TokStereotype::ste_maybedefault;
+const UINT16 nTok_ste_maybevoid = 400 + TokStereotype::ste_maybevoid;
+const UINT16 nTok_ste_oneway = 400 + TokStereotype::ste_oneway;
+const UINT16 nTok_ste_optional = 400 + TokStereotype::ste_optional;
+const UINT16 nTok_ste_readonly = 400 + TokStereotype::ste_readonly;
+const UINT16 nTok_ste_removable = 400 + TokStereotype::ste_removable;
+const UINT16 nTok_ste_virtual = 400 + TokStereotype::ste_virtual;
+const UINT16 nTok_ste_transient = 400 + TokStereotype::ste_transient;
+const UINT16 nTok_ste_published = 400 + TokStereotype::ste_published;
+
+const UINT16 nTok_raises = 501;
+const UINT16 nTok_needs = 502;
+const UINT16 nTok_observes = 503;
+
+const UINT16 nTok_assignment = 550;
+
+const UINT16 nTok_ignore = 600;
+const UINT16 nTok_none_MLCommentBegin = 601;
+const UINT16 nTok_none_SLCommentBegin = 602;
+const UINT16 nTok_none_MLDocuBegin = 603;
+const UINT16 nTok_none_SLDocuBegin = 604;
+const UINT16 nTok_none_PraeprocessorBegin = 605;
+
+
+const UINT16 nTok_punct_BracketOpen = 700 + TokPunctuation::BracketOpen;
+const UINT16 nTok_punct_BracketClose = 700 + TokPunctuation::BracketClose;
+const UINT16 nTok_punct_ArrayBracketOpen = 700 + TokPunctuation::ArrayBracketOpen;
+const UINT16 nTok_punct_ArrayBracketClose = 700 + TokPunctuation::ArrayBracketClose;
+const UINT16 nTok_punct_CurledBracketOpen = 700 + TokPunctuation::CurledBracketOpen;
+const UINT16 nTok_punct_CurledBracketClose = 700 + TokPunctuation::CurledBracketClose;
+const UINT16 nTok_punct_Semicolon = 700 + TokPunctuation::Semicolon;
+const UINT16 nTok_punct_Colon = 700 + TokPunctuation::Colon;
+const UINT16 nTok_punct_DoubleColon = 700 + TokPunctuation::DoubleColon;
+const UINT16 nTok_punct_Comma = 700 + TokPunctuation::Comma;
+const UINT16 nTok_punct_Minus = 700 + TokPunctuation::Minus;
+const UINT16 nTok_punct_Fullstop = 700 + TokPunctuation::Fullstop;
+const UINT16 nTok_punct_Lesser = 700 + TokPunctuation::Lesser;
+const UINT16 nTok_punct_Greater = 700 + TokPunctuation::Greater;
+
+const UINT16 nTok_EOL = 801;
+const UINT16 nTok_EOF = 802;
+
+
+
+Context_UidlCode::Context_UidlCode( Token_Receiver & o_rReceiver,
+ DYN TkpDocuContext & let_drContext_Docu )
+ : aStateMachine(C_nStatusSize,C_nCppInitialNrOfStati),
+ pReceiver(&o_rReceiver),
+ pDocuContext(&let_drContext_Docu),
+ dpContext_MLComment(0),
+ dpContext_SLComment(0),
+ dpContext_Preprocessor(0),
+ dpContext_Assignment(0),
+ pNewToken(0),
+ pFollowUpContext(0)
+{
+ dpContext_MLComment = new Context_MLComment(o_rReceiver,*this),
+ dpContext_SLComment = new Context_SLComment(o_rReceiver,*this),
+ dpContext_Preprocessor = new Context_Praeprocessor(o_rReceiver,*this),
+ dpContext_Assignment = new Context_Assignment(o_rReceiver,*this),
+
+ pDocuContext->SetParentContext(*this,"*/");
+ SetupStateMachine();
+}
+
+Context_UidlCode::~Context_UidlCode()
+{
+}
+
+void
+Context_UidlCode::ReadCharChain( CharacterSource & io_rText )
+{
+ pNewToken = 0;
+
+ UINT16 nTokenId = 0;
+ StmBoundsStatu2 & rBound = aStateMachine.GetCharChain(nTokenId, io_rText);
+
+ // !!!
+ // The order of the next two lines is essential, because
+ // pFollowUpContext may be changed by PerformStatusFunction() also,
+ // which then MUST override the previous assignment.
+ pFollowUpContext = rBound.FollowUpContext();
+ PerformStatusFunction(rBound.StatusFunctionNr(), nTokenId, io_rText);
+}
+
+bool
+Context_UidlCode::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pReceiver->Receive(*pNewToken.Release());
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Context_UidlCode::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Context_UidlCode::PerformStatusFunction( uintt i_nStatusSignal,
+ UINT16 i_nTokenId,
+ CharacterSource & io_rText )
+{
+ switch (i_nStatusSignal)
+ {
+ case nF_fin_Error:
+ // KORR_FUTURE
+ throw X_AutodocParser(X_AutodocParser::x_InvalidChar);
+ // no break, because of throw
+ case nF_fin_Ignore:
+ pNewToken = 0;
+ io_rText.CutToken();
+ break;
+ case nF_fin_Identifier:
+ pNewToken = new TokIdentifier(io_rText.CutToken());
+ break;
+ case nF_fin_Keyword:
+ io_rText.CutToken();
+ switch ( i_nTokenId / 50 )
+ {
+ case 2:
+ pNewToken = new TokBuiltInType(i_nTokenId - 100);
+ break;
+ case 4:
+ pNewToken = new TokTypeModifier(i_nTokenId - 200);
+ break;
+ case 5:
+ pNewToken = new TokParameterHandling(i_nTokenId - 250);
+ break;
+ case 6:
+ pNewToken = new TokMetaType(i_nTokenId - 300);
+ break;
+ case 8:
+ pNewToken = new TokStereotype(i_nTokenId - 400);
+ break;
+ case 10:
+ switch (i_nTokenId-500)
+ {
+ case 1:
+ pNewToken = new TokRaises;
+ break;
+ case 2:
+ pNewToken = new TokNeeds;
+ break;
+ case 3:
+ pNewToken = new TokObserves;
+ break;
+ default:
+ csv_assert(false);
+ }
+ break;
+ default:
+ csv_assert(false);
+ } // end switch ( i_nTokenId / 50 )
+ break;
+ case nF_fin_Punctuation:
+ io_rText.CutToken();
+ if (i_nTokenId == nTok_punct_DoubleColon)
+ pNewToken = new TokNameSeparator;
+ else
+ pNewToken = new TokPunctuation(i_nTokenId - 700);
+ break;
+ case nF_fin_EOL:
+ io_rText.CutToken();
+ pNewToken = new Tok_EOL;
+ pReceiver->Increment_CurLine();
+ break;
+ case nF_fin_EOF:
+ pNewToken = new Tok_EOF;
+ break;
+ case nF_goto_MLDocu:
+ while ( io_rText.CurChar() == '*')
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ pDocuContext->SetMode_IsMultiLine(true);
+ break;
+ case nF_goto_SLDocu:
+ io_rText.CutToken();
+ pDocuContext->SetMode_IsMultiLine(false);
+ break;
+ case nF_goto_MLComment:
+ break;
+ case nF_goto_SLComment:
+ break;
+ case nF_goto_Praeprocessor:
+ break;
+ case nF_goto_Assignment:
+ break;
+ default:
+ csv_assert(false);
+ } // end switch (i_nStatusSignal)
+}
+
+void
+Context_UidlCode::SetupStateMachine()
+{
+ // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
+// const INT16 top = 0; // Top-Status
+ const INT16 wht = 1; // Whitespace-berlese-Status
+ const INT16 bez = 2; // Bezeichner-lese-Status
+
+ // Tokenfinish-Stati:
+ const INT16 finErr = 3;
+ const INT16 finIgn = 4;
+ const INT16 finBez = 5;
+ const INT16 finKeyw = 6;
+ const INT16 finPunct = 7;
+ const INT16 finEOL = 8;
+ const INT16 finEOF = 9;
+
+ // Kontextwechsel-Stati:
+ const INT16 gotoMld = 10;
+ const INT16 gotoSld = 11;
+ const INT16 gotoMlc = 12;
+ const INT16 gotoSlc = 13;
+ const INT16 gotoPrp = 14;
+ const INT16 gotoAsg = 15;
+
+ // Konstanten zur Benutzung in der Tabelle:
+ const INT16 err = finErr;
+ const INT16 fbz = finBez;
+ const INT16 fig = finIgn;
+ const INT16 fof = finEOF;
+// const INT16 fkw = finKeyw;
+// const INT16 fpc = finPunct;
+
+ /// Die '0'en werden spaeter durch AddToken() ersetzt.
+
+ const INT16 A_nTopStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht, 0,wht,wht, 0,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // 16 ...
+ wht,err,wht, 0,err,err,err,err, 0, 0,err,err, 0, 0, 0,err,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,err,err,err,err,err,err, // 48 ...
+ err,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez, 0,err, 0,err,bez, // 80 ...
+ err,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez, 0,err, 0,err,err, // 112 ...
+ };
+
+ const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht,fig,wht,wht,fig,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // 16 ...
+ wht,fig,wht,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 48 ...
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig, // 80 ...
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,
+ fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,fig,err // 112 ...
+ };
+
+ const INT16 A_nBezeichnerStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+ err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+ fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err // 112 ...
+ };
+
+ const INT16 A_nPunctDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err // 112 ...
+ };
+
+ const INT16 A_nKeywordDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fbz,err,err,err,err,err,err,err,err,fbz,fbz,fbz,fbz,fbz,err,err,
+ err,err,err,err,err,err,err,err,err,err,fbz,err,err,err,err,err, // 16 ...
+ fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,fbz,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,fbz,fbz, // 48 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,bez, // 80 ...
+ fbz,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,
+ bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,bez,fbz,fbz,fbz,fbz,err // 112 ...
+ };
+
+ DYN StmArrayStatu2 * dpStatusTop
+ = new StmArrayStatu2( C_nStatusSize, A_nTopStatus, 0, true);
+ DYN StmArrayStatu2 * dpStatusWhite
+ = new StmArrayStatu2( C_nStatusSize, A_nWhitespaceStatus, 0, true);
+ DYN StmArrayStatu2 * dpStatusBez
+ = new StmArrayStatu2( C_nStatusSize, A_nBezeichnerStatus, 0, true);
+
+ DYN StmBoundsStatu2 * dpBst_finErr
+ = new StmBoundsStatu2( *this, TkpContext_Null2_(), nF_fin_Error, true );
+ DYN StmBoundsStatu2 * dpBst_finIgn
+ = new StmBoundsStatu2( *this, *this, nF_fin_Ignore, true );
+ DYN StmBoundsStatu2 * dpBst_finBez
+ = new StmBoundsStatu2( *this, *this, nF_fin_Identifier, true );
+ DYN StmBoundsStatu2 * dpBst_finKeyw
+ = new StmBoundsStatu2( *this, *this, nF_fin_Keyword, false );
+ DYN StmBoundsStatu2 * dpBst_finPunct
+ = new StmBoundsStatu2( *this, *this, nF_fin_Punctuation, false );
+ DYN StmBoundsStatu2 * dpBst_finEOL
+ = new StmBoundsStatu2( *this, *this, nF_fin_EOL, false );
+ DYN StmBoundsStatu2 * dpBst_finEOF
+ = new StmBoundsStatu2( *this, TkpContext_Null2_(), nF_fin_EOF, false );
+
+ DYN StmBoundsStatu2 * dpBst_gotoMld
+ = new StmBoundsStatu2( *this, *pDocuContext, nF_goto_MLDocu, false );
+ DYN StmBoundsStatu2 * dpBst_gotoSld
+ = new StmBoundsStatu2( *this, *pDocuContext, nF_goto_SLDocu, false );
+ DYN StmBoundsStatu2 * dpBst_gotoMlc
+ = new StmBoundsStatu2( *this, *dpContext_MLComment, nF_goto_MLComment, false );
+ DYN StmBoundsStatu2 * dpBst_gotoSlc
+ = new StmBoundsStatu2( *this, *dpContext_SLComment, nF_goto_SLComment, false );
+ DYN StmBoundsStatu2 * dpBst_gotoPrp
+ = new StmBoundsStatu2( *this, *dpContext_Preprocessor, nF_goto_Praeprocessor, false );
+ DYN StmBoundsStatu2 * dpBst_gotoAsg
+ = new StmBoundsStatu2( *this, *dpContext_Assignment, nF_goto_Assignment, false );
+
+ // dpMain aufbauen:
+ aStateMachine.AddStatus(dpStatusTop);
+
+ aStateMachine.AddStatus(dpStatusWhite);
+ aStateMachine.AddStatus(dpStatusBez);
+
+ aStateMachine.AddStatus(dpBst_finErr);
+ aStateMachine.AddStatus(dpBst_finIgn);
+ aStateMachine.AddStatus(dpBst_finBez);
+ aStateMachine.AddStatus(dpBst_finKeyw);
+ aStateMachine.AddStatus(dpBst_finPunct);
+ aStateMachine.AddStatus(dpBst_finEOL);
+ aStateMachine.AddStatus(dpBst_finEOF);
+
+ aStateMachine.AddStatus(dpBst_gotoMld);
+ aStateMachine.AddStatus(dpBst_gotoSld);
+ aStateMachine.AddStatus(dpBst_gotoMlc);
+ aStateMachine.AddStatus(dpBst_gotoSlc);
+ aStateMachine.AddStatus(dpBst_gotoPrp);
+ aStateMachine.AddStatus(dpBst_gotoAsg);
+
+ aStateMachine.AddToken("any", nTok_bty_any, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("attribute", nTok_mt_attribute, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("boolean", nTok_bty_boolean, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("bound", nTok_ste_bound, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("byte", nTok_bty_byte, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("char", nTok_bty_char, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("const", nTok_ste_const, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("constants", nTok_mt_constants, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("constrained",
+ nTok_ste_constrained, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("double", nTok_bty_double, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("enum", nTok_mt_enum, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("exception", nTok_mt_exception, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("hyper", nTok_bty_hyper, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("ident", nTok_mt_ident, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("in", nTok_ph_in, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("inout", nTok_ph_inout, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("interface", nTok_mt_interface, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("long", nTok_bty_long, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybeambiguous",
+ nTok_ste_maybeambiguous,A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybedefault",
+ nTok_ste_maybedefault, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("maybevoid", nTok_ste_maybevoid, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("module", nTok_mt_module, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("needs", nTok_needs, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("observes", nTok_observes, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("oneway", nTok_ste_oneway, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("optional", nTok_ste_optional, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("out", nTok_ph_out, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("property", nTok_mt_property, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("published", nTok_ste_published, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("raises", nTok_raises, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("readonly", nTok_ste_readonly, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("removable", nTok_ste_removable, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("sequence", nTok_tmod_sequence, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("service", nTok_mt_service, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("short", nTok_bty_short, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("singleton", nTok_mt_singleton, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("string", nTok_bty_string, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("struct", nTok_mt_struct, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("transient", nTok_ste_transient, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("typedef", nTok_mt_typedef, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("uik", nTok_mt_uik, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("unsigned", nTok_tmod_unsigned, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("virtual", nTok_ste_virtual, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("void", nTok_bty_void, A_nKeywordDefStatus, finKeyw);
+ aStateMachine.AddToken("...", nTok_bty_ellipse, A_nPunctDefStatus, finKeyw);
+
+ aStateMachine.AddToken("=", nTok_assignment, A_nPunctDefStatus, gotoAsg);
+
+ aStateMachine.AddToken("(", nTok_punct_BracketOpen, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(")", nTok_punct_BracketClose,A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("[", nTok_punct_ArrayBracketOpen,
+ A_nPunctDefStatus, finIgn);
+ aStateMachine.AddToken("]", nTok_punct_ArrayBracketClose,
+ A_nPunctDefStatus, finIgn);
+ aStateMachine.AddToken("{", nTok_punct_CurledBracketOpen,
+ A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("}", nTok_punct_CurledBracketClose,
+ A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("<", nTok_punct_Lesser, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(">", nTok_punct_Greater, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(";", nTok_punct_Semicolon, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(":", nTok_punct_Colon, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("::", nTok_punct_DoubleColon, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(",", nTok_punct_Comma, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("-", nTok_punct_Minus, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken(".", nTok_punct_Fullstop, A_nPunctDefStatus, finPunct);
+ aStateMachine.AddToken("/**", nTok_none_MLDocuBegin, A_nPunctDefStatus, gotoMld);
+ aStateMachine.AddToken("///", nTok_none_SLDocuBegin, A_nPunctDefStatus, gotoSld);
+ aStateMachine.AddToken("/*", nTok_none_MLCommentBegin,
+ A_nPunctDefStatus, gotoMlc);
+ aStateMachine.AddToken("//", nTok_none_SLCommentBegin,
+ A_nPunctDefStatus, gotoSlc);
+ aStateMachine.AddToken("/**/", nTok_ignore, A_nPunctDefStatus, finIgn);
+ aStateMachine.AddToken("#", nTok_none_PraeprocessorBegin,
+ A_nPunctDefStatus, gotoPrp);
+ aStateMachine.AddToken("\r\n", nTok_EOL, A_nPunctDefStatus, finEOL);
+ aStateMachine.AddToken("\r", nTok_EOL, A_nPunctDefStatus, finEOL);
+ aStateMachine.AddToken("\n", nTok_EOL, A_nPunctDefStatus, finEOL);
+ aStateMachine.AddToken("\n\r", nTok_EOL, A_nPunctDefStatus, finEOL);
+};
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/cx_sub.cxx b/autodoc/source/parser_i/idl/cx_sub.cxx
new file mode 100644
index 000000000000..146be0cf9c62
--- /dev/null
+++ b/autodoc/source/parser_i/idl/cx_sub.cxx
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/cx_sub.hxx>
+
+
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/tokrecv.hxx>
+#include <../../parser/inc/tokens/parseinc.hxx>
+#include <x_parse2.hxx>
+#include <s2_luidl/tk_const.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+bool
+Cx_Base::PassNewToken()
+{
+ if (pNewToken)
+ {
+ rReceiver.Receive(*pNewToken.Release());
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_Base::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Context_MLComment::ReadCharChain( CharacterSource & io_rText )
+{
+ char cNext = NULCH;
+
+ do {
+ do {
+ cNext = jumpTo(io_rText,'*','\n');
+ if (cNext == '\n')
+ {
+ Receiver().Increment_CurLine();
+ cNext = io_rText.MoveOn();
+ }
+ else if (cNext == NULCH)
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ } while (cNext != '*');
+
+ cNext = jumpOver(io_rText,'*');
+ if (cNext == NULCH)
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ } while (cNext != '/');
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken(0);
+}
+
+void
+Context_SLComment::ReadCharChain( CharacterSource & io_rText )
+{
+ jumpToEol(io_rText);
+ if (io_rText.CurChar() != NULCH)
+ jumpOverEol(io_rText);
+ io_rText.CutToken();
+ SetToken(0);
+
+ Receiver().Increment_CurLine();
+}
+
+void
+Context_Praeprocessor::ReadCharChain( CharacterSource & io_rText )
+{
+ jumpToEol(io_rText);
+ if (io_rText.CurChar() != NULCH)
+ jumpOverEol(io_rText);
+ io_rText.CutToken();
+ SetToken(0);
+
+ Receiver().Increment_CurLine();
+}
+
+void
+Context_Assignment::ReadCharChain( CharacterSource & io_rText )
+{
+ // KORR_FUTURE
+ // How to handle new lines within this, so he y get realised by
+ // ParserInfo?
+
+ char cNext = NULCH;
+ do {
+ if ( (cNext = jumpTo(io_rText,';',',','"','}')) == NULCH )
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ if (cNext == '"')
+ {
+ cNext = io_rText.MoveOn();
+ while (cNext != '"')
+ {
+ if ( (cNext = jumpTo(io_rText,'"','\\')) == NULCH )
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ if (cNext == '\\')
+ io_rText.MoveOn();
+ }
+ cNext = io_rText.MoveOn();
+ } // endif (cNext == '"')
+ } while (cNext != ';' AND cNext != ',' AND cNext != '}');
+
+ if (cNext == ',' OR cNext == ';')
+ io_rText.MoveOn();
+ SetToken(new TokAssignment(io_rText.CutToken()));
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/distrib.cxx b/autodoc/source/parser_i/idl/distrib.cxx
new file mode 100644
index 000000000000..55e6fc6d0e79
--- /dev/null
+++ b/autodoc/source/parser_i/idl/distrib.cxx
@@ -0,0 +1,264 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/distrib.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/doc/d_oldidldocu.hxx>
+#include <parser/parserinfo.hxx>
+#include <s2_luidl/tkp_uidl.hxx>
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_dsapi/docu_pe2.hxx>
+#include <adc_cl.hxx>
+#include <x_parse2.hxx>
+
+
+
+const uintt C_nNO_TRY = uintt(-1);
+
+
+namespace csi
+{
+namespace uidl
+{
+
+TokenDistributor::TokenDistributor( ary::Repository & io_rRepository,
+ ParserInfo & io_rParserInfo )
+ : pTokenSource(0),
+ aDocumentation(io_rParserInfo),
+ aProcessingData( io_rRepository, aDocumentation, io_rParserInfo )
+{
+}
+
+TokenDistributor::~TokenDistributor()
+{
+}
+
+void
+TokenDistributor::TradeToken()
+{
+ bool bGoon = true;
+ while (bGoon AND NOT aProcessingData.NextTokenExists())
+ {
+ bGoon = pTokenSource->GetNextToken();
+ }
+ if (bGoon)
+ aProcessingData.ProcessCurToken();
+}
+
+TokenDistributor::ProcessingData::ProcessingData(
+ ary::Repository & io_rRepository,
+ Documentation & i_rDocuProcessor,
+ ParserInfo & io_rParserInfo )
+ : // aEnvironments
+ // aTokenQueue
+ // itCurToken
+ // aCurResult
+ nTryCount(0),
+ bFinished(false),
+ rRepository(io_rRepository),
+ rParserInfo(io_rParserInfo),
+ pDocuProcessor(&i_rDocuProcessor),
+ bPublishedRecentlyOn(false)
+{
+ itCurToken = aTokenQueue.end();
+}
+
+TokenDistributor::ProcessingData::~ProcessingData()
+{
+}
+
+void
+TokenDistributor::ProcessingData::SetTopParseEnvironment( UnoIDL_PE & io_pTopParseEnvironment )
+{
+ csv::erase_container(aEnvironments);
+ aEnvironments.push_back( EnvironmentInfo( &io_pTopParseEnvironment, 0 ) );
+ io_pTopParseEnvironment.EstablishContacts(0,rRepository,aCurResult);
+}
+
+void
+TokenDistributor::ProcessingData::Receive( DYN csi::uidl::Token & let_drToken )
+{
+ aTokenQueue.push_back( &let_drToken );
+ itCurToken = aTokenQueue.end()-1;
+}
+
+void
+TokenDistributor::ProcessingData::Increment_CurLine()
+{
+ rParserInfo.Increment_CurLine();
+}
+
+void
+TokenDistributor::ProcessingData::ProcessCurToken()
+{
+
+if (DEBUG_ShowTokens())
+{
+ Cout() << (*itCurToken)->Text() << Endl();
+}
+
+ aCurResult.reset();
+
+ CurEnvironment().ProcessToken( CurToken() );
+ AcknowledgeResult();
+}
+
+
+UnoIDL_PE &
+TokenDistributor::ProcessingData::CurEnvironment() const
+{
+ csv_assert(aEnvironments.size() > 0);
+ csv_assert(aEnvironments.back().first != 0);
+
+ return *aEnvironments.back().first;
+}
+
+bool
+TokenDistributor::ProcessingData::NextTokenExists() const
+{
+ return itCurToken != aTokenQueue.end();
+}
+
+void
+TokenDistributor::ProcessingData::AcknowledgeResult()
+{
+ if (aCurResult.eDone == done)
+ ++itCurToken;
+
+ switch ( aCurResult.eStackAction )
+ {
+ case stay:
+ if (aCurResult.eDone != done)
+ {
+ csv_assert(false);
+ }
+ break;
+ case push_sure:
+ CurEnv().Leave(push_sure);
+ aEnvironments.push_back( EnvironmentInfo(&PushEnv(), C_nNO_TRY) );
+ PushEnv().Enter(push_sure);
+ PushEnv().SetDocu(pDocuProcessor->ReleaseLastParsedDocu());
+ if (bPublishedRecentlyOn)
+ {
+ PushEnv().SetPublished();
+ bPublishedRecentlyOn = false;
+ }
+
+ break;
+ case push_try:
+ Cout() << "TestInfo: Environment tried." << Endl();
+ CurEnv().Leave(push_try);
+ aEnvironments.push_back( EnvironmentInfo(&PushEnv(), CurTokenPosition()) );
+ nTryCount++;
+ PushEnv().Enter(push_try);
+ break;
+ case pop_success:
+ CurEnv().Leave(pop_success);
+ if ( CurEnv_TriedTokenPosition() > 0 )
+ DecrementTryCount();
+ aEnvironments.pop_back();
+ CurEnv().Enter(pop_success);
+ break;
+ case pop_failure:
+ {
+ CurEnv().Leave(pop_failure);
+ if (aCurResult.eDone == done)
+ {
+ csv_assert(false);
+ }
+
+ if ( CurEnv_TriedTokenPosition() == C_nNO_TRY )
+ throw X_AutodocParser( X_AutodocParser::x_UnexpectedToken, (*itCurToken)->Text() );
+
+ itCurToken = aTokenQueue.begin() + CurEnv_TriedTokenPosition();
+ DecrementTryCount();
+ aEnvironments.pop_back();
+ CurEnv().Enter(pop_failure);
+ } break;
+ default:
+ csv_assert(false);
+ } // end switch(aCurResult.eStackAction)
+}
+
+void
+TokenDistributor::ProcessingData::DecrementTryCount()
+{
+ nTryCount--;
+ if (nTryCount == 0)
+ {
+ aTokenQueue.erase(aTokenQueue.begin(), itCurToken);
+ itCurToken = aTokenQueue.begin();
+ }
+}
+
+TokenDistributor::
+Documentation::Documentation(ParserInfo & io_rParserInfo)
+ : pDocuParseEnv(new csi::dsapi::SapiDocu_PE(io_rParserInfo)),
+ rParserInfo(io_rParserInfo),
+ pMostRecentDocu(0),
+ bIsPassedFirstDocu(false)
+{
+}
+
+TokenDistributor::
+Documentation::~Documentation()
+{
+}
+
+void
+TokenDistributor::
+Documentation::Receive( DYN csi::dsapi::Token & let_drToken )
+{
+ csv_assert(pDocuParseEnv);
+
+ pDocuParseEnv->ProcessToken(let_drToken);
+ if ( pDocuParseEnv->IsComplete() )
+ {
+ pMostRecentDocu = pDocuParseEnv->ReleaseJustParsedDocu();
+ if (NOT bIsPassedFirstDocu)
+ {
+ pMostRecentDocu = 0; // Deletes the most recent docu.
+ bIsPassedFirstDocu = true;
+ }
+ }
+}
+
+void
+TokenDistributor::
+Documentation::Increment_CurLine()
+{
+ rParserInfo.Increment_CurLine();
+}
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/makefile.mk b/autodoc/source/parser_i/idl/makefile.mk
new file mode 100644
index 000000000000..7449548742b6
--- /dev/null
+++ b/autodoc/source/parser_i/idl/makefile.mk
@@ -0,0 +1,84 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser2_s2_luidl
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+
+OBJFILES= \
+ $(OBJ)$/cx_idlco.obj \
+ $(OBJ)$/cx_sub.obj \
+ $(OBJ)$/distrib.obj \
+ $(OBJ)$/parsenv2.obj \
+ $(OBJ)$/pe_attri.obj \
+ $(OBJ)$/pe_const.obj \
+ $(OBJ)$/pe_enum2.obj \
+ $(OBJ)$/pe_evalu.obj \
+ $(OBJ)$/pe_excp.obj \
+ $(OBJ)$/pe_file2.obj \
+ $(OBJ)$/pe_func2.obj \
+ $(OBJ)$/pe_iface.obj \
+ $(OBJ)$/pe_property.obj \
+ $(OBJ)$/pe_selem.obj \
+ $(OBJ)$/pe_servi.obj \
+ $(OBJ)$/pe_singl.obj \
+ $(OBJ)$/pe_struc.obj \
+ $(OBJ)$/pe_tydf2.obj \
+ $(OBJ)$/pe_type2.obj \
+ $(OBJ)$/pe_vari2.obj \
+ $(OBJ)$/pestate.obj \
+ $(OBJ)$/semnode.obj \
+ $(OBJ)$/tk_const.obj \
+ $(OBJ)$/tk_ident.obj \
+ $(OBJ)$/tk_keyw.obj \
+ $(OBJ)$/tk_punct.obj \
+ $(OBJ)$/tkp_uidl.obj \
+ $(OBJ)$/unoidl.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser_i/idl/parsenv2.cxx b/autodoc/source/parser_i/idl/parsenv2.cxx
new file mode 100644
index 000000000000..026eb3fa4b31
--- /dev/null
+++ b/autodoc/source/parser_i/idl/parsenv2.cxx
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/parsenv2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary.hxx>
+#include <ary/getncast.hxx>
+#include <ary/qualiname.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_ce.hxx>
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <parser/parserinfo.hxx>
+#include <adc_msg.hxx>
+#include <s2_luidl/uidl_tok.hxx>
+#include <x_parse2.hxx>
+
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+UnoIDL_PE::~UnoIDL_PE()
+{
+}
+
+void
+UnoIDL_PE::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ pRepository = &io_rRepository;
+ aMyNode.EstablishContacts(io_pParentPE, io_rRepository.Gate_Idl(), o_rResult);
+}
+
+//void
+//UnoIDL_PE::EstablishContacts( UnoIDL_PE * io_pParentPE,
+// ary::idl::Gate & io_rGate,
+// TokenProcessing_Result & o_rResult )
+//{
+// aMyNode.EstablishContacts(io_pParentPE, io_rGate, o_rResult);
+//}
+
+void
+UnoIDL_PE::Enter( E_EnvStackAction i_eWayOfEntering )
+{
+ switch (i_eWayOfEntering)
+ {
+ case push_sure:
+ InitData();
+ break;
+ case push_try:
+ csv_assert(false);
+ break;
+ case pop_success:
+ ReceiveData();
+ break;
+ case pop_failure:
+ throw X_AutodocParser(X_AutodocParser::x_Any);
+ // no break because of throw
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+void
+UnoIDL_PE::Leave( E_EnvStackAction i_eWayOfLeaving )
+{
+ switch (i_eWayOfLeaving)
+ {
+ case push_sure:
+ break;
+ case push_try:
+ csv_assert(false);
+ break;
+ case pop_success:
+ TransferData();
+ break;
+ case pop_failure:
+ throw X_AutodocParser(X_AutodocParser::x_Any);
+ // no break because of throw
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+void
+UnoIDL_PE::SetDocu( DYN ary::doc::OldIdlDocu * let_dpDocu )
+{
+ pDocu = let_dpDocu;
+}
+
+void
+UnoIDL_PE::SetPublished()
+{
+ if (NOT pDocu)
+ {
+ pDocu = new ary::doc::OldIdlDocu;
+ }
+ pDocu->SetPublished();
+}
+
+void
+UnoIDL_PE::SetOptional()
+{
+ if (NOT pDocu)
+ {
+ pDocu = new ary::doc::OldIdlDocu;
+ }
+ pDocu->SetOptional();
+}
+
+void
+UnoIDL_PE::PassDocuAt( ary::idl::CodeEntity & io_rCe )
+{
+ if (pDocu)
+ {
+ io_rCe.Set_Docu(*pDocu.Release());
+ }
+ else if // KORR_FUTURE
+ // Re-enable doc-warning for Enum Values, as soon as there is a
+ // @option -no-doc-for-enumvalues.
+ ( NOT ary::is_type<ary::idl::Module>(io_rCe)
+ AND NOT ary::is_type<ary::idl::Enum>(io_rCe) )
+ {
+ TheMessages().Out_MissingDoc(
+ io_rCe.LocalName(),
+ ParseInfo().CurFile(),
+ ParseInfo().CurLine() );
+ }
+}
+
+void
+UnoIDL_PE::InitData()
+{
+ // Needs not anything to do.
+}
+
+void
+UnoIDL_PE::ReceiveData()
+{
+ // Needs not anything to do.
+}
+
+const ary::idl::Module &
+UnoIDL_PE::CurNamespace() const
+{
+ if ( Parent() != 0 )
+ return Parent()->CurNamespace();
+ else
+ {
+ csv_assert(false);
+ return *(const ary::idl::Module*)0;
+ }
+}
+
+const ParserInfo &
+UnoIDL_PE::ParseInfo() const
+{
+ if ( Parent() != 0 )
+ return Parent()->ParseInfo();
+ else
+ {
+ csv_assert(false);
+ return *(const ParserInfo*)0;
+ }
+}
+
+UnoIDL_PE::UnoIDL_PE()
+ : aMyNode(),
+ pDocu(),
+ pRepository(0)
+{
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_attri.cxx b/autodoc/source/parser_i/idl/pe_attri.cxx
new file mode 100644
index 000000000000..3ea90dac747c
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_attri.cxx
@@ -0,0 +1,294 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_attri.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_attribute.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/pe_vari2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+PE_Attribute::PE_Attribute( const Ce_id & i_rCurOwner )
+ : eState(e_none),
+ pCurOwner(&i_rCurOwner),
+ pPE_Variable(0),
+ pPE_Exception(0),
+ pCurAttribute(0),
+ nCurParsedType(0),
+ sCurParsedName(),
+ bReadOnly(false),
+ bBound(false)
+{
+ pPE_Variable = new PE_Variable(nCurParsedType, sCurParsedName);
+ pPE_Exception = new PE_Type(nCurParsedType);
+}
+
+void
+PE_Attribute::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Variable->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Exception->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Attribute::~PE_Attribute()
+{
+}
+
+void
+PE_Attribute::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Attribute::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ SetResult(not_done, push_sure, pPE_Variable.Ptr());
+ eState = in_variable;
+ break;
+ case in_raise_std:
+ if (strcmp(i_rToken.Text(),"get") == 0)
+ {
+ SetResult(done, stay);
+ eState = in_get;
+ }
+ else if (strcmp(i_rToken.Text(),"set") == 0)
+ {
+ SetResult(done, stay);
+ eState = in_set;
+ }
+ else
+ {
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ }
+ break;
+ case in_get:
+ case in_set:
+ SetResult(not_done, push_sure, pPE_Exception.Ptr());
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ } // end switch
+}
+
+void
+PE_Attribute::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ if (eState != e_start)
+ {
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ return;
+ }
+
+ switch (i_rToken.Id())
+ {
+ case TokStereotype::ste_readonly:
+ bReadOnly = true;
+ break;
+ case TokStereotype::ste_bound:
+ bBound = true;
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ return;
+ } // end switch
+
+ SetResult(done, stay);
+}
+
+void
+PE_Attribute::Process_MetaType( const TokMetaType & i_rToken )
+{
+ if (eState != e_start OR i_rToken.Id() != TokMetaType::mt_attribute)
+ {
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ return;
+ }
+
+ SetResult(done, stay);
+}
+
+void
+PE_Attribute::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ SetResult(done, stay);
+ break;
+ case expect_end:
+ switch(i_rToken.Id())
+ {
+ case TokPunctuation::Semicolon:
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ case TokPunctuation::Comma:
+ SetResult(not_done, pop_failure);
+ Cerr() << "Autodoc does not support comma separated attributes, because those are discouraged by IDL policies." << Endl();
+ break;
+ case TokPunctuation::CurledBracketOpen:
+ SetResult(done, stay);
+ eState = in_raise_std;
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ } // end switch
+ break;
+ case in_raise_std:
+ SetResult(done, stay);
+ if (i_rToken.Id() == TokPunctuation::CurledBracketClose)
+ {
+ eState = expect_end;
+ }
+ break;
+ case in_get:
+ case in_set:
+ SetResult(done, stay);
+ if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ eState = in_raise_std;
+ }
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_Attribute::Process_Raises()
+{
+ if (eState == in_get OR eState == in_set)
+ {
+ SetResult(done, stay);
+ }
+ else
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Attribute::Process_Default()
+{
+ if (eState == e_start)
+ {
+ SetResult(not_done, push_sure, pPE_Variable.Ptr());
+ eState = in_variable;
+ }
+ else if (eState == in_get OR eState == in_set)
+ SetResult(not_done, push_sure, pPE_Exception.Ptr());
+ else
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Attribute::InitData()
+{
+ eState = e_start;
+
+ pCurAttribute = 0;
+ nCurParsedType = 0;
+ sCurParsedName = "";
+ bReadOnly = false;
+ bBound = false;
+}
+
+void
+PE_Attribute::TransferData()
+{
+ eState = e_none;
+}
+
+void
+PE_Attribute::ReceiveData()
+{
+ switch (eState)
+ {
+ case in_variable:
+ csv_assert(pCurOwner->IsValid());
+ pCurAttribute = &Gate().Ces().Store_Attribute(
+ *pCurOwner,
+ sCurParsedName,
+ nCurParsedType,
+ bReadOnly,
+ bBound );
+ PassDocuAt(*pCurAttribute);
+ nCurParsedType = 0;
+ eState = expect_end;
+ break;
+ case in_get:
+ csv_assert(pCurAttribute != 0);
+ pCurAttribute->Add_GetException(nCurParsedType);
+ nCurParsedType = 0;
+ break;
+ case in_set:
+ csv_assert(pCurAttribute != 0);
+ pCurAttribute->Add_SetException(nCurParsedType);
+ nCurParsedType = 0;
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+
+UnoIDL_PE &
+PE_Attribute::MyPE()
+{
+ return *this;
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_const.cxx b/autodoc/source/parser_i/idl/pe_const.cxx
new file mode 100644
index 000000000000..d75272c9b06a
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_const.cxx
@@ -0,0 +1,280 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_const.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_constant.hxx>
+#include <ary/idl/i_constgroup.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/pe_evalu.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Constant::On_Default
+
+PE_Constant::F_TOK
+PE_Constant::aDispatcher[PE_Constant::e_STATES_MAX][PE_Constant::tt_MAX] =
+ { { DF, DF, DF }, // e_none
+ { DF, &PE_Constant::On_expect_name_Identifier,
+ DF }, // expect_name
+ { DF, DF, &PE_Constant::On_expect_curl_bracket_open_Punctuation }, // expect_curl_bracket_open
+ { &PE_Constant::On_expect_const_Stereotype,
+ DF, &PE_Constant::On_expect_const_Punctuation }, // expect_const
+ { DF, &PE_Constant::On_expect_value_Identifier,
+ DF }, // expect_value
+ { DF, DF, &PE_Constant::On_expect_finish_Punctuation } // expect_finish
+ };
+
+
+
+inline void
+PE_Constant::CallHandler( const char * i_sTokenText,
+ E_TokenType i_eTokenType )
+ { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); }
+
+
+
+
+PE_Constant::PE_Constant()
+ : eState(e_none),
+ sData_Name(),
+ nDataId(0),
+ pPE_Type(0),
+ nType(0),
+ pPE_Value(0),
+ sName(),
+ sAssignment()
+{
+ pPE_Type = new PE_Type(nType);
+ pPE_Value = new PE_Value(sName, sAssignment, true);
+}
+
+void
+PE_Constant::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Value->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Constant::~PE_Constant()
+{
+}
+
+void
+PE_Constant::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Constant::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_identifier);
+}
+
+void
+PE_Constant::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_punctuation);
+}
+
+void
+PE_Constant::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_stereotype);
+}
+
+void
+PE_Constant::On_expect_name_Identifier(const char * i_sText)
+{
+ sName = i_sText;
+
+ SetResult(done,stay);
+ eState = expect_curl_bracket_open;
+}
+
+void
+PE_Constant::On_expect_curl_bracket_open_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == '{')
+ {
+ sData_Name = sName;
+
+ ary::idl::ConstantsGroup &
+ rCe = Gate().Ces().
+ Store_ConstantsGroup(CurNamespace().CeId(),sData_Name);
+ PassDocuAt(rCe);
+ nDataId = rCe.CeId();
+
+ SetResult(done,stay);
+ eState = expect_const;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Constant::On_expect_const_Stereotype(const char *)
+{
+ SetResult( done, push_sure, pPE_Type.Ptr() );
+}
+
+void
+PE_Constant::On_expect_const_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == '}')
+ {
+ SetResult(done,stay);
+ eState = expect_finish;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Constant::On_expect_value_Identifier(const char *)
+{
+ SetResult( not_done, push_sure, pPE_Value.Ptr() );
+}
+
+void
+PE_Constant::On_expect_finish_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == ';')
+ {
+ SetResult(done,pop_success);
+ eState = e_none;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Constant::On_Default(const char * )
+{
+ SetResult(not_done,pop_failure);
+ eState = e_none;
+}
+
+void
+PE_Constant::EmptySingleConstData()
+{
+ nType = 0;
+ sName = "";
+ sAssignment = "";
+}
+
+void
+PE_Constant::CreateSingleConstant()
+{
+ ary::idl::Constant &
+ rCe = Gate().Ces().Store_Constant( nDataId,
+ sName,
+ nType,
+ sAssignment );
+ pPE_Type->PassDocuAt(rCe);
+}
+
+void
+PE_Constant::InitData()
+{
+ eState = expect_name;
+
+ sData_Name.clear();
+ nDataId = 0;
+
+ EmptySingleConstData();
+}
+
+void
+PE_Constant::ReceiveData()
+{
+ switch (eState)
+ {
+ case expect_const:
+ eState = expect_value;
+ break;
+ case expect_value:
+ {
+ if (sName.length() == 0 OR sAssignment.length() == 0 OR NOT nType.IsValid())
+ {
+ Cerr() << "Constant without value found." << Endl();
+ eState = expect_const;
+ break;
+ }
+
+ CreateSingleConstant();
+ EmptySingleConstData();
+ eState = expect_const;
+ } break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ } // end switch
+}
+
+void
+PE_Constant::TransferData()
+{
+ csv_assert(nDataId.IsValid());
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Constant::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_enum2.cxx b/autodoc/source/parser_i/idl/pe_enum2.cxx
new file mode 100644
index 000000000000..afd3c86627d8
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_enum2.cxx
@@ -0,0 +1,251 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_enum2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_enum.hxx>
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_evalu.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Enum::On_Default
+
+PE_Enum::F_TOK
+PE_Enum::aDispatcher[PE_Enum::e_STATES_MAX][PE_Enum::tt_MAX] =
+ { { DF, DF }, // e_none
+ { &PE_Enum::On_expect_name_Identifier,
+ DF }, // expect_name
+ { DF, &PE_Enum::On_expect_curl_bracket_open_Punctuation }, // expect_curl_bracket_open
+ { &PE_Enum::On_expect_value_Identifier,
+ &PE_Enum::On_expect_value_Punctuation }, // expect_value
+ { DF, &PE_Enum::On_expect_finish_Punctuation } // expect_finish
+ };
+
+
+
+inline void
+PE_Enum::CallHandler( const char * i_sTokenText,
+ E_TokenType i_eTokenType )
+ { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); }
+
+
+
+
+PE_Enum::PE_Enum()
+ : eState(e_none),
+ sData_Name(),
+ nDataId(0),
+ pPE_Value(0),
+ sName(),
+ sAssignment()
+{
+ pPE_Value = new PE_Value(sName, sAssignment, false);
+}
+
+void
+PE_Enum::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Value->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Enum::~PE_Enum()
+{
+}
+
+void
+PE_Enum::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Enum::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_identifier);
+}
+
+void
+PE_Enum::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_punctuation);
+}
+
+void
+PE_Enum::On_expect_name_Identifier(const char * i_sText)
+{
+ sName = i_sText;
+
+ SetResult(done,stay);
+ eState = expect_curl_bracket_open;
+}
+
+void
+PE_Enum::On_expect_curl_bracket_open_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == '{')
+ {
+ sData_Name = sName;
+ ary::idl::Enum &
+ rCe = Gate().Ces().Store_Enum(CurNamespace().CeId(), sData_Name);
+ PassDocuAt(rCe);
+ nDataId = rCe.CeId();
+
+ SetResult(done,stay);
+ eState = expect_value;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Enum::On_expect_value_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == '}' )
+ {
+ SetResult(done,stay);
+ eState = expect_finish;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Enum::On_expect_value_Identifier(const char *)
+{
+ SetResult( not_done, push_sure, pPE_Value.Ptr() );
+}
+
+void
+PE_Enum::On_expect_finish_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == ';')
+ {
+ SetResult(done,pop_success);
+ eState = e_none;
+ }
+ else
+ {
+ On_Default(i_sText);
+ }
+}
+
+void
+PE_Enum::On_Default(const char * )
+{
+ SetResult(not_done,pop_failure);
+ eState = e_none;
+}
+
+void
+PE_Enum::EmptySingleValueData()
+{
+ sName = "";
+ sAssignment = "";
+}
+
+void
+PE_Enum::CreateSingleValue()
+{
+ ary::idl::EnumValue &
+ rCe = Gate().Ces().Store_EnumValue( nDataId, sName, sAssignment );
+ pPE_Value->PassDocuAt(rCe);
+}
+
+void
+PE_Enum::InitData()
+{
+ eState = expect_name;
+
+ sData_Name.clear();
+ nDataId = 0;
+
+ EmptySingleValueData();
+}
+
+void
+PE_Enum::ReceiveData()
+{
+ switch (eState)
+ {
+ case expect_value:
+ {
+ if (sName.length() == 0)
+ {
+ On_Default("");
+ break;
+ }
+
+ CreateSingleValue();
+ EmptySingleValueData();
+ } break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ } // end switch
+}
+
+void
+PE_Enum::TransferData()
+{
+ csv_assert(sData_Name.length() > 0);
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Enum::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_evalu.cxx b/autodoc/source/parser_i/idl/pe_evalu.cxx
new file mode 100644
index 000000000000..14bcfd024e32
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_evalu.cxx
@@ -0,0 +1,182 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_evalu.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_enumvalue.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_const.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Value::On_Default
+
+PE_Value::F_TOK
+PE_Value::aDispatcher[PE_Value::e_STATES_MAX][PE_Value::tt_MAX] =
+ { { DF, DF, DF }, // e_none
+ { &PE_Value::On_expect_name_Identifier,
+ DF, DF }, // expect_name
+ { DF, &PE_Value::On_got_name_Punctuation,
+ &PE_Value::On_got_name_Assignment } // got_name
+ };
+
+
+
+inline void
+PE_Value::CallHandler( const char * i_sTokenText,
+ E_TokenType i_eTokenType )
+ { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); }
+
+
+
+
+
+PE_Value::PE_Value( String & o_rName,
+ String & o_rAssignment,
+ bool i_bIsConst )
+ : eState(e_none),
+ pName(&o_rName),
+ pAssignment(&o_rAssignment),
+ bIsConst(i_bIsConst)
+{
+}
+
+void
+PE_Value::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+}
+
+PE_Value::~PE_Value()
+{
+}
+
+void
+PE_Value::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Value::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_identifier);
+}
+
+void
+PE_Value::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_punctuation);
+}
+
+void
+PE_Value::Process_Assignment( const TokAssignment & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_assignment);
+}
+
+void
+PE_Value::On_expect_name_Identifier(const char * i_sText)
+{
+ *pName = i_sText;
+ SetResult(done,stay);
+ eState = got_name;
+}
+
+void
+PE_Value::On_got_name_Punctuation(const char * i_sText)
+{
+ if ( (i_sText[0] == ',' AND NOT IsConst())
+ OR (i_sText[0] == ';' AND IsConst()) )
+ {
+ SetResult(done,pop_success);
+ eState = e_none;
+ }
+ else if (i_sText[0] == '}' AND NOT IsConst())
+ {
+ SetResult(not_done,pop_success);
+ eState = e_none;
+ }
+ else
+ On_Default(i_sText);
+}
+
+void
+PE_Value::On_got_name_Assignment(const char * i_sText)
+{
+ *pAssignment = i_sText;
+ SetResult(done,pop_success);
+ eState = e_none;
+}
+
+void
+PE_Value::On_Default(const char * )
+{
+ SetResult(not_done,pop_failure);
+}
+
+void
+PE_Value::InitData()
+{
+ eState = expect_name;
+
+ *pName = "";
+ *pAssignment = "";
+}
+
+void
+PE_Value::TransferData()
+{
+ csv_assert(pName->length() > 0);
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Value::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_excp.cxx b/autodoc/source/parser_i/idl/pe_excp.cxx
new file mode 100644
index 000000000000..8b09f4a03ba4
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_excp.cxx
@@ -0,0 +1,298 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_excp.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_exception.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/pe_selem.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_Exception::PE_Exception()
+ // : aWork,
+ // pStati
+{
+ pStati = new S_Stati(*this);
+}
+
+void
+PE_Exception::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ Work().pPE_Element->EstablishContacts(this,io_rRepository,o_rResult);
+ Work().pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Exception::~PE_Exception()
+{
+}
+
+void
+PE_Exception::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*Stati().pCurStatus);
+}
+
+
+void
+PE_Exception::InitData()
+{
+ Work().InitData();
+ Stati().pCurStatus = &Stati().aWaitForName;
+}
+
+void
+PE_Exception::TransferData()
+{
+ if (NOT Work().bIsPreDeclaration)
+ {
+ csv_assert(Work().sData_Name.size() > 0);
+ csv_assert(Work().nCurStruct.IsValid());
+ }
+ Stati().pCurStatus = &Stati().aNone;
+}
+
+void
+PE_Exception::ReceiveData()
+{
+ Stati().pCurStatus->On_SubPE_Left();
+}
+
+PE_Exception::S_Work::S_Work()
+ : sData_Name(),
+ bIsPreDeclaration(false),
+ nCurStruct(0),
+ pPE_Element(0),
+ nCurParsed_ElementRef(0),
+ pPE_Type(0),
+ nCurParsed_Base(0)
+
+{
+ pPE_Element = new PE_StructElement(nCurParsed_ElementRef,nCurStruct);
+ pPE_Type = new PE_Type(nCurParsed_Base);
+}
+
+void
+PE_Exception::S_Work::InitData()
+{
+ sData_Name.clear();
+ bIsPreDeclaration = false;
+ nCurStruct = 0;
+
+ nCurParsed_ElementRef = 0;
+ nCurParsed_Base = 0;
+}
+
+void
+PE_Exception::S_Work::Prepare_PE_QualifiedName()
+{
+ nCurParsed_ElementRef = 0;
+}
+
+void
+PE_Exception::S_Work::Prepare_PE_Element()
+{
+ nCurParsed_Base = 0;
+}
+
+void
+PE_Exception::S_Work::Data_Set_Name( const char * i_sName )
+{
+ sData_Name = i_sName;
+}
+
+PE_Exception::S_Stati::S_Stati(PE_Exception & io_rStruct)
+ : aNone(io_rStruct),
+ aWaitForName(io_rStruct),
+ aGotName(io_rStruct),
+ aWaitForBase(io_rStruct),
+ aGotBase(io_rStruct),
+ aWaitForElement(io_rStruct),
+ aWaitForFinish(io_rStruct),
+ pCurStatus(0)
+{
+ pCurStatus = &aNone;
+}
+
+
+//*********************** Stati ***************************//
+
+
+UnoIDL_PE &
+PE_Exception::PE_StructState::MyPE()
+{
+ return rStruct;
+}
+
+
+void
+PE_Exception::State_WaitForName::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ Work().Data_Set_Name(i_rToken.Text());
+ MoveState( Stati().aGotName );
+ SetResult(done,stay);
+}
+
+void
+PE_Exception::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() != TokPunctuation::Semicolon )
+ {
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::Colon:
+ MoveState( Stati().aWaitForBase );
+ SetResult(done,push_sure,Work().pPE_Type.Ptr());
+ Work().Prepare_PE_QualifiedName();
+ break;
+ case TokPunctuation::CurledBracketOpen:
+ PE().store_Exception();
+ MoveState( Stati().aWaitForElement );
+ SetResult(done,stay);
+ break;
+ default:
+ SetResult(not_done,pop_failure);
+ } // end switch
+ }
+ else
+ {
+ Work().sData_Name.clear();
+ SetResult(done,pop_success);
+ }
+}
+
+void
+PE_Exception::State_WaitForBase::On_SubPE_Left()
+{
+ MoveState(Stati().aGotBase);
+}
+
+void
+PE_Exception::State_GotBase::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() == TokPunctuation::CurledBracketOpen )
+ {
+ PE().store_Exception();
+ MoveState( Stati().aWaitForElement );
+ SetResult(done,stay);
+ }
+ else
+ {
+ SetResult(not_done,pop_failure);
+ }
+}
+
+void
+PE_Exception::State_WaitForElement::Process_Identifier( const TokIdentifier & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr() );
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Exception::State_WaitForElement::Process_NameSeparator()
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Exception::State_WaitForElement::Process_BuiltInType( const TokBuiltInType & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Exception::State_WaitForElement::Process_TypeModifier(const TokTypeModifier & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Exception::State_WaitForElement::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() == TokPunctuation::CurledBracketClose )
+ {
+ MoveState( Stati().aWaitForFinish );
+ SetResult( done, stay );
+ }
+ else
+ {
+ SetResult( not_done, pop_failure );
+ }
+}
+
+void
+PE_Exception::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ MoveState( Stati().aNone );
+ SetResult( done, pop_success );
+ }
+ else
+ {
+ SetResult( not_done, pop_failure );
+ }
+}
+
+void
+PE_Exception::store_Exception()
+{
+ ary::idl::Exception &
+ rCe = Gate().Ces().Store_Exception(
+ CurNamespace().CeId(),
+ Work().sData_Name,
+ Work().nCurParsed_Base );
+ PassDocuAt(rCe);
+ Work().nCurStruct = rCe.Id();
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_file2.cxx b/autodoc/source/parser_i/idl/pe_file2.cxx
new file mode 100644
index 000000000000..872e5550201a
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_file2.cxx
@@ -0,0 +1,318 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_file2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/distrib.hxx>
+#include <s2_luidl/pe_servi.hxx>
+#include <s2_luidl/pe_iface.hxx>
+#include <s2_luidl/pe_singl.hxx>
+#include <s2_luidl/pe_struc.hxx>
+#include <s2_luidl/pe_excp.hxx>
+#include <s2_luidl/pe_const.hxx>
+#include <s2_luidl/pe_enum2.hxx>
+#include <s2_luidl/pe_tydf2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_File::PE_File( TokenDistributor & i_rTokenAdmin,
+ const ParserInfo & i_parseInfo )
+ : pTokenAdmin(&i_rTokenAdmin),
+ pPE_Service(new PE_Service),
+ pPE_Singleton(new PE_Singleton),
+ pPE_Interface(new PE_Interface),
+ pPE_Struct(new PE_Struct),
+ pPE_Exception(new PE_Exception),
+ pPE_Constant(new PE_Constant),
+ pPE_Enum(new PE_Enum),
+ pPE_Typedef(new PE_Typedef),
+ pCurNamespace(0),
+ pParseInfo(&i_parseInfo),
+ eState(e_none),
+ nBracketCount_inDefMode(0)
+{
+}
+
+void
+PE_File::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Service->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Singleton->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Interface->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Struct->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Exception->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Constant->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Enum->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Typedef->EstablishContacts(this,io_rRepository,o_rResult);
+
+ pCurNamespace = &Gate().Ces().GlobalNamespace();
+}
+
+PE_File::~PE_File()
+{
+}
+
+void
+PE_File::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_File::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ switch (eState)
+ {
+ case wait_for_module:
+ {
+ csv_assert(pCurNamespace != 0);
+
+ ary::idl::Module & rCe = Gate().Ces().CheckIn_Module(pCurNamespace->CeId(), i_rToken.Text());
+ pCurNamespace = &rCe;
+
+ // Get docu out of normal:
+ SetDocu(pTokenAdmin->ReleaseLastParsedDocu());
+ PassDocuAt(rCe);
+
+ csv_assert(pCurNamespace != 0);
+
+ SetResult(done, stay);
+ eState = wait_for_module_bracket;
+ } break;
+ case on_default:
+ SetResult(done, stay);
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_File::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (eState)
+ {
+ case e_std:
+ if (i_rToken.Id() == TokPunctuation::CurledBracketClose)
+ {
+ csv_assert(pCurNamespace != 0);
+
+ pCurNamespace = &Gate().Ces().Find_Module(pCurNamespace->Owner());
+
+ SetResult(done, stay);
+ eState = wait_for_module_semicolon;
+ }
+ else
+ {
+ csv_assert(false);
+ }
+ break;
+ case wait_for_module_bracket:
+ if (i_rToken.Id() == TokPunctuation::CurledBracketOpen)
+ {
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else
+ {
+ csv_assert(false);
+ }
+ break;
+ case wait_for_module_semicolon:
+ if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else
+ {
+ csv_assert(false);
+ }
+ break;
+ case on_default:
+ if (i_rToken.Id() == TokPunctuation::CurledBracketClose)
+ {
+ nBracketCount_inDefMode--;
+ }
+ else if (i_rToken.Id() == TokPunctuation::CurledBracketOpen)
+ {
+ nBracketCount_inDefMode++;
+ }
+ else if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ if (nBracketCount_inDefMode <= 0)
+ {
+ eState = e_std;
+ }
+ }
+ SetResult(done, stay);
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_File::Process_MetaType( const TokMetaType & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case TokMetaType::mt_service:
+ eState = in_sub_pe;
+ SetResult( not_done, push_sure, pPE_Service.Ptr());
+ break;
+ case TokMetaType::mt_singleton:
+ eState = in_sub_pe;
+ SetResult( not_done, push_sure, pPE_Singleton.Ptr());
+ break;
+ case TokMetaType::mt_uik:
+ Cerr() << "Syntax error: [uik ....] is obsolete now." << Endl();
+ SetResult( not_done, pop_failure);
+ break;
+ case TokMetaType::mt_interface:
+ eState = in_sub_pe;
+ SetResult( not_done, push_sure, pPE_Interface.Ptr());
+ break;
+ case TokMetaType::mt_module:
+ eState = wait_for_module;
+ SetResult( done, stay );
+ break;
+ case TokMetaType::mt_struct:
+ eState = in_sub_pe;
+ SetResult( done, push_sure, pPE_Struct.Ptr());
+ break;
+ case TokMetaType::mt_exception:
+ eState = in_sub_pe;
+ SetResult( done, push_sure, pPE_Exception.Ptr());
+ break;
+ case TokMetaType::mt_constants:
+ eState = in_sub_pe;
+ SetResult( done, push_sure, pPE_Constant.Ptr());
+ break;
+ case TokMetaType::mt_enum:
+ eState = in_sub_pe;
+ SetResult( done, push_sure, pPE_Enum.Ptr());
+ break;
+ case TokMetaType::mt_typedef:
+ eState = in_sub_pe;
+ SetResult( done, push_sure, pPE_Typedef.Ptr());
+ break;
+
+ default:
+ Process_Default();
+ } // end switch
+}
+
+void
+PE_File::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ if (i_rToken.Id() == TokStereotype::ste_published)
+ {
+ pTokenAdmin->Set_PublishedOn();
+
+ SetResult(done, stay);
+ }
+ else
+ {
+ Process_Default();
+ }
+}
+
+void
+PE_File::Process_Default()
+{
+ if (eState != on_default)
+ {
+ eState = on_default;
+ nBracketCount_inDefMode = 0;
+ }
+ SetResult(done, stay);
+}
+
+const ary::idl::Module &
+PE_File::CurNamespace() const
+{
+ csv_assert(pCurNamespace);
+ return *pCurNamespace;
+}
+
+const ParserInfo &
+PE_File::ParseInfo() const
+{
+ csv_assert(pParseInfo);
+ return *pParseInfo;
+}
+
+void
+PE_File::InitData()
+{
+ eState = e_std;
+}
+
+void
+PE_File::TransferData()
+{
+ eState = e_none;
+}
+
+void
+PE_File::ReceiveData()
+{
+ eState = e_std;
+}
+
+
+UnoIDL_PE &
+PE_File::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
+
diff --git a/autodoc/source/parser_i/idl/pe_func2.cxx b/autodoc/source/parser_i/idl/pe_func2.cxx
new file mode 100644
index 000000000000..ed25be5f763d
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_func2.cxx
@@ -0,0 +1,445 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_func2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_function.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/pe_vari2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <x_parse2.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_Function::PE_Function( const RParent & i_rCurInterface )
+ : eState(e_none),
+ sData_Name(),
+ nData_ReturnType(0),
+ bData_Oneway(false),
+ pCurFunction(0),
+ pCurParent(&i_rCurInterface),
+ pPE_Type(0),
+ nCurParsedType(0),
+ sName(),
+ pPE_Variable(0),
+ eCurParsedParam_Direction(ary::idl::param_in),
+ nCurParsedParam_Type(0),
+ sCurParsedParam_Name(),
+ bIsForConstructors(false)
+{
+ pPE_Type = new PE_Type(nCurParsedType);
+ pPE_Variable = new PE_Variable(nCurParsedParam_Type, sCurParsedParam_Name);
+}
+
+PE_Function::PE_Function( const RParent & i_rCurService,
+ E_Constructor )
+ : eState(expect_name),
+ sData_Name(),
+ nData_ReturnType(0),
+ bData_Oneway(false),
+ pCurFunction(0),
+ pCurParent(&i_rCurService),
+ pPE_Type(0),
+ nCurParsedType(0),
+ sName(),
+ pPE_Variable(0),
+ eCurParsedParam_Direction(ary::idl::param_in),
+ nCurParsedParam_Type(0),
+ sCurParsedParam_Name(),
+ bIsForConstructors(true)
+{
+ pPE_Type = new PE_Type(nCurParsedType);
+ pPE_Variable = new PE_Variable(nCurParsedParam_Type, sCurParsedParam_Name);
+}
+
+void
+PE_Function::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Variable->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Function::~PE_Function()
+{
+}
+
+void
+PE_Function::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Function::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ if (eState == e_start)
+ {
+ switch (i_rToken.Id())
+ {
+ case TokStereotype::ste_oneway:
+ bData_Oneway = true;
+ SetResult(done, stay);
+ break;
+ default:
+ OnDefault();
+ } // end switch
+ }
+ else
+ OnDefault();
+}
+
+void
+PE_Function::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ GoIntoReturnType();
+ break;
+ case expect_name:
+ sData_Name = i_rToken.Text();
+ SetResult(done,stay);
+ eState = expect_params_list;
+
+ if (NOT bIsForConstructors)
+ {
+ pCurFunction = &Gate().Ces().Store_Function(
+ *pCurParent,
+ sData_Name,
+ nData_ReturnType,
+ bData_Oneway );
+ }
+ else
+ {
+ pCurFunction = &Gate().Ces().Store_ServiceConstructor(
+ *pCurParent,
+ sData_Name );
+ }
+ PassDocuAt(*pCurFunction);
+ break;
+ case expect_parameter_variable:
+ GoIntoParameterVariable();
+ break;
+ case expect_exception:
+ GoIntoException();
+ break;
+ default:
+ OnDefault();
+ }
+}
+
+void
+PE_Function::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ SetResult(done,stay);
+ break;
+ case expect_params_list:
+ if (i_rToken.Id() != TokPunctuation::BracketOpen)
+ {
+ OnDefault();
+ return;
+ }
+ SetResult(done,stay);
+ eState = expect_parameter;
+ break;
+ case expect_parameter:
+ if (i_rToken.Id() == TokPunctuation::BracketClose)
+ {
+ SetResult(done,stay);
+ eState = params_finished;
+ }
+ else
+ {
+ OnDefault();
+ return;
+ }
+ break;
+ case expect_parameter_separator:
+ if (i_rToken.Id() == TokPunctuation::Comma)
+ {
+ SetResult(done,stay);
+ eState = expect_parameter;
+ }
+ else if (i_rToken.Id() == TokPunctuation::BracketClose)
+ {
+ SetResult(done,stay);
+ eState = params_finished;
+ }
+ else
+ {
+ OnDefault();
+ return;
+ }
+ break;
+ case params_finished:
+ case exceptions_finished:
+ if (i_rToken.Id() != TokPunctuation::Semicolon)
+ {
+ OnDefault();
+ return;
+ }
+ SetResult(done,pop_success);
+ eState = e_none;
+ break;
+ case expect_exceptions_list:
+ if (i_rToken.Id() != TokPunctuation::BracketOpen)
+ {
+ OnDefault();
+ return;
+ }
+ SetResult(done,stay);
+ eState = expect_exception;
+ break;
+ case expect_exception_separator:
+ if (i_rToken.Id() == TokPunctuation::Comma)
+ {
+ SetResult(done,stay);
+ eState = expect_exception;
+ }
+ else if (i_rToken.Id() == TokPunctuation::BracketClose)
+ {
+ SetResult(done,stay);
+ eState = exceptions_finished;
+ }
+ else
+ {
+ OnDefault();
+ return;
+ }
+ break;
+ default:
+ OnDefault();
+ }
+}
+
+void
+PE_Function::Process_BuiltInType( const TokBuiltInType & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ GoIntoReturnType();
+ break;
+ case expect_parameter_variable:
+ GoIntoParameterVariable();
+ break;
+ case expect_parameter_separator:
+ if (i_rToken.Id() != TokBuiltInType::bty_ellipse)
+ {
+ OnDefault();
+ }
+ else
+ {
+ pCurFunction->Set_Ellipse();
+ SetResult(done,stay);
+ // eState stays the same, because we wait for the closing ")" now.
+ }
+ break;
+ case expect_exception:
+ GoIntoException();
+ break;
+ default:
+ OnDefault();
+ } // end switch
+}
+
+void
+PE_Function::Process_ParameterHandling( const TokParameterHandling & i_rToken )
+{
+ if (eState != expect_parameter)
+ {
+ OnDefault();
+ return;
+ }
+
+ switch (i_rToken.Id())
+ {
+ case TokParameterHandling::ph_in:
+ eCurParsedParam_Direction = ary::idl::param_in;
+ break;
+ case TokParameterHandling::ph_out:
+ eCurParsedParam_Direction = ary::idl::param_out;
+ break;
+ case TokParameterHandling::ph_inout:
+ eCurParsedParam_Direction = ary::idl::param_inout;
+ break;
+ default:
+ csv_assert(false);
+ }
+ SetResult(done,stay);
+ eState = expect_parameter_variable;
+}
+
+void
+PE_Function::Process_Raises()
+{
+ if (eState != params_finished)
+ {
+ OnDefault();
+ return;
+ }
+ SetResult(done,stay);
+ eState = expect_exceptions_list;
+}
+
+void
+PE_Function::Process_Default()
+{
+ switch (eState)
+ {
+ case e_start:
+ GoIntoReturnType();
+ break;
+ case expect_parameter_variable:
+ GoIntoParameterVariable();
+ break;
+ case expect_exception:
+ GoIntoException();
+ break;
+ default:
+ OnDefault();
+ } // end switch
+}
+
+void
+PE_Function::GoIntoReturnType()
+{
+ SetResult(not_done, push_sure, pPE_Type.Ptr());
+ eState = in_return_type;
+}
+
+void
+PE_Function::GoIntoParameterVariable()
+{
+ SetResult(not_done, push_sure, pPE_Variable.Ptr());
+ eState = in_parameter_variable;
+}
+
+void
+PE_Function::GoIntoException()
+{
+ SetResult(not_done, push_sure, pPE_Type.Ptr());
+ eState = in_exception;
+}
+
+void
+PE_Function::OnDefault()
+{
+ throw X_AutodocParser(X_AutodocParser::x_Any);
+}
+
+void
+PE_Function::InitData()
+{
+ eState = e_start;
+
+ sData_Name.clear();
+ nData_ReturnType = 0;
+ bData_Oneway = false;
+ pCurFunction = 0;
+
+ nCurParsedType = 0;
+ eCurParsedParam_Direction = ary::idl::param_in;
+ nCurParsedParam_Type = 0;
+ sCurParsedParam_Name.clear();
+
+ if (bIsForConstructors)
+ {
+ eState = expect_name;
+ }
+}
+
+void
+PE_Function::ReceiveData()
+{
+ switch (eState)
+ {
+ case in_return_type:
+ nData_ReturnType = nCurParsedType;
+ nCurParsedType = 0;
+ eState = expect_name;
+ break;
+ case in_parameter_variable:
+ csv_assert(pCurFunction != 0);
+ pCurFunction->Add_Parameter(
+ sCurParsedParam_Name,
+ nCurParsedParam_Type,
+ eCurParsedParam_Direction );
+ sCurParsedParam_Name = "";
+ nCurParsedParam_Type = 0;
+ eCurParsedParam_Direction = ary::idl::param_in;
+ eState = expect_parameter_separator;
+ break;
+ case in_exception:
+ csv_assert(pCurFunction != 0);
+ pCurFunction->Add_Exception(nCurParsedType);
+ eState = expect_exception_separator;
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+void
+PE_Function::TransferData()
+{
+ pCurFunction = 0;
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Function::MyPE()
+{
+ return *this;
+}
+
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_iface.cxx b/autodoc/source/parser_i/idl/pe_iface.cxx
new file mode 100644
index 000000000000..789af536cb3a
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_iface.cxx
@@ -0,0 +1,467 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_iface.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_interface.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_func2.hxx>
+#include <s2_luidl/pe_attri.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <adc_cl.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Interface::On_Default
+
+PE_Interface::F_TOK
+PE_Interface::aDispatcher[PE_Interface::e_STATES_MAX][PE_Interface::tt_MAX] =
+ { { DF, DF, DF, DF, DF }, // e_none
+ { &PE_Interface::On_need_uik_MetaType,
+ DF, DF, DF, DF }, // need_uik
+ { DF, &PE_Interface::On_uik_Identifier,
+ &PE_Interface::On_uik_Punctuation,
+ DF, DF }, // uik
+ { &PE_Interface::On_need_ident_MetaType,
+ DF, DF, DF, DF }, // need_ident
+ { DF, &PE_Interface::On_ident_Identifier,
+ &PE_Interface::On_ident_Punctuation,
+ DF, DF }, // ident
+ { &PE_Interface::On_need_interface_MetaType,
+ DF, DF, DF, DF }, // need_interface
+ { DF, &PE_Interface::On_need_name_Identifer,
+ DF, DF, DF }, // need_name
+ { DF, DF, &PE_Interface::On_wait_for_base_Punctuation,
+ DF, DF }, // wait_for_base
+ { DF, DF, DF, DF, DF }, // in_base
+ { DF, DF, &PE_Interface::On_need_curlbr_open_Punctuation,
+ DF, DF }, // need_curlbr_open
+ { &PE_Interface::On_std_Metatype,
+ &PE_Interface::On_std_GotoFunction,
+ &PE_Interface::On_std_Punctuation,
+ &PE_Interface::On_std_GotoFunction,
+ &PE_Interface::On_std_Stereotype }, // e_std
+ { DF, DF, DF, DF, DF }, // in_function
+ { DF, DF, DF, DF, DF }, // in_attribute
+ { DF, DF, &PE_Interface::On_need_finish_Punctuation,
+ DF, DF }, // need_finish
+ { DF, DF, DF, DF, DF } // in_base_interface
+ };
+
+
+
+inline void
+PE_Interface::CallHandler( const char * i_sTokenText,
+ E_TokenType i_eTokenType )
+ { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); }
+
+
+
+PE_Interface::PE_Interface()
+ : eState(e_none),
+ sData_Name(),
+ bIsPreDeclaration(false),
+ pCurInterface(0),
+ nCurInterface(0),
+ pPE_Function(0),
+ pPE_Attribute(0),
+ pPE_Type(0),
+ nCurParsed_Base(0),
+ bOptionalMember(false)
+{
+ pPE_Function = new PE_Function(nCurInterface);
+ pPE_Type = new PE_Type(nCurParsed_Base);
+ pPE_Attribute = new PE_Attribute(nCurInterface);
+}
+
+void
+PE_Interface::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Function->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Attribute->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Interface::~PE_Interface()
+{
+}
+
+void
+PE_Interface::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+
+void
+PE_Interface::Process_MetaType( const TokMetaType & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_metatype );
+}
+
+void
+PE_Interface::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_identifier );
+}
+
+void
+PE_Interface::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_punctuation );
+}
+
+void
+PE_Interface::Process_NameSeparator()
+{
+ CallHandler( "", tt_startoftype );
+}
+
+void
+PE_Interface::Process_BuiltInType( const TokBuiltInType & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_startoftype );
+}
+
+void
+PE_Interface::Process_TypeModifier( const TokTypeModifier & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_startoftype );
+}
+
+void
+PE_Interface::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ CallHandler( i_rToken.Text(), tt_stereotype );
+}
+
+void
+PE_Interface::Process_Default()
+{
+ SetResult(done, stay);
+}
+
+
+void
+PE_Interface::On_need_uik_MetaType(const char *)
+{
+ // Deprecated, data will be ignored
+ SetResult(done, stay);
+ eState = uik;
+}
+
+void
+PE_Interface::On_uik_Identifier(const char *)
+{
+ // Deprecated, data will be ignored
+ SetResult(done, stay);
+}
+
+void
+PE_Interface::On_uik_Punctuation(const char * i_sText)
+{
+ // Deprecated, data will be ignored
+ SetResult(done, stay);
+ if (strcmp(",",i_sText) == 0)
+ {
+ eState = need_ident;
+ }
+}
+
+void
+PE_Interface::On_need_ident_MetaType(const char *)
+{
+ SetResult(done, stay);
+ eState = ident;
+}
+
+void
+PE_Interface::On_ident_Identifier(const char *)
+{
+ SetResult(done, stay);
+}
+
+void
+PE_Interface::On_ident_Punctuation(const char * i_sText)
+{
+ SetResult(done, stay);
+ if (strcmp(")",i_sText) == 0)
+ {
+ eState = need_interface;
+ }
+}
+
+void
+PE_Interface::On_need_interface_MetaType(const char *)
+{
+ SetResult(done, stay);
+ eState = need_name;
+}
+
+void
+PE_Interface::On_need_name_Identifer(const char * i_sText)
+{
+ SetResult(done, stay);
+ sData_Name = i_sText;
+ eState = wait_for_base;
+}
+
+void
+PE_Interface::On_wait_for_base_Punctuation(const char * i_sText)
+{
+ if (i_sText[0] != ';')
+ {
+ switch (i_sText[0])
+ {
+ case ':':
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_base;
+ break;
+ case '{':
+ store_Interface();
+
+ SetResult(done,stay);
+ eState = e_std;
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ } // end switch
+ }
+ else
+ {
+ bIsPreDeclaration = true;
+ SetResult(done, pop_success);
+ eState = e_none;
+ }
+}
+
+void
+PE_Interface::On_need_curlbr_open_Punctuation(const char * i_sText)
+{
+ if (i_sText[0] == '{')
+ {
+ store_Interface();
+
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+
+void
+PE_Interface::On_std_Metatype(const char * i_sText)
+{
+ if (strcmp(i_sText,"attribute") == 0)
+ On_std_GotoAttribute(i_sText);
+ else if (strcmp(i_sText,"interface") == 0)
+ On_std_GotoBaseInterface(i_sText);
+ else
+ On_std_GotoFunction(i_sText);
+}
+
+void
+PE_Interface::On_std_Punctuation(const char * i_sText)
+{
+ switch (i_sText[0])
+ {
+ case '}':
+ SetResult(done, stay);
+ eState = need_finish;
+ break;
+ case ';': // Appears after base interface declarations.
+ SetResult(done, stay);
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ } // end switch
+}
+
+void
+PE_Interface::On_std_Stereotype(const char * i_sText)
+{
+ if (strcmp(i_sText,"oneway") == 0)
+ On_std_GotoFunction(i_sText);
+ else if ( strcmp(i_sText,"readonly") == 0
+ OR strcmp(i_sText,"bound") == 0 )
+ On_std_GotoAttribute(i_sText);
+ else if (strcmp(i_sText,"optional") == 0)
+ {
+ bOptionalMember = true;
+ SetResult(done, stay);
+ }
+ else
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Interface::On_std_GotoFunction(const char * )
+{
+ SetResult(not_done, push_sure, pPE_Function.Ptr());
+ eState = in_function;
+}
+
+void
+PE_Interface::On_std_GotoAttribute(const char * )
+{
+ SetResult(not_done, push_sure, pPE_Attribute.Ptr());
+ eState = in_attribute;
+}
+
+void
+PE_Interface::On_std_GotoBaseInterface(const char * )
+{
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_base_interface;
+}
+
+void
+PE_Interface::On_need_finish_Punctuation(const char * i_sText)
+{
+ switch (i_sText[0])
+ {
+ case ';':
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ } // end switch
+}
+
+void
+PE_Interface::On_Default(const char *)
+{
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Interface::InitData()
+{
+ eState = need_interface;
+
+ sData_Name.clear();
+ bIsPreDeclaration = false;
+ pCurInterface = 0;
+ nCurInterface = 0;
+ nCurParsed_Base = 0;
+ bOptionalMember = false;
+}
+
+void
+PE_Interface::TransferData()
+{
+ if (NOT bIsPreDeclaration)
+ {
+ csv_assert(sData_Name.size() > 0);
+ csv_assert(nCurInterface.IsValid());
+ }
+ else
+ {
+ sData_Name.clear();
+ pCurInterface = 0;
+ nCurInterface = 0;
+ }
+
+ eState = e_none;
+}
+
+void
+PE_Interface::ReceiveData()
+{
+ switch (eState)
+ {
+ case in_base:
+ eState = need_curlbr_open;
+ break;
+ case in_function:
+ eState = e_std;
+ break;
+ case in_attribute:
+ eState = e_std;
+ break;
+ case in_base_interface:
+ if (bOptionalMember)
+ {
+ pPE_Type->SetOptional();
+ bOptionalMember = false;
+ }
+ pCurInterface->Add_Base(
+ nCurParsed_Base,
+ pPE_Type->ReleaseDocu());
+ nCurParsed_Base = 0;
+ eState = e_std;
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+UnoIDL_PE &
+PE_Interface::MyPE()
+{
+ return *this;
+}
+
+void
+PE_Interface::store_Interface()
+{
+ pCurInterface = & Gate().Ces().Store_Interface(
+ CurNamespace().CeId(),
+ sData_Name,
+ nCurParsed_Base );
+ nCurInterface = pCurInterface->CeId();
+ PassDocuAt(*pCurInterface);
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_property.cxx b/autodoc/source/parser_i/idl/pe_property.cxx
new file mode 100644
index 000000000000..0e585b27e9a7
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_property.cxx
@@ -0,0 +1,238 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_property.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_vari2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+PE_Property::PE_Property( const Ce_id & i_rCurOwner )
+ : eState(e_none),
+ pCurOwner(&i_rCurOwner),
+ pPE_Variable(0),
+ nCurParsedType(0),
+ sCurParsedName(),
+ bIsOptional(false),
+ aStereotypes()
+{
+ pPE_Variable = new PE_Variable(nCurParsedType, sCurParsedName);
+}
+
+void
+PE_Property::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Variable->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Property::~PE_Property()
+{
+}
+
+void
+PE_Property::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Property::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case TokStereotype::ste_optional:
+ bIsOptional = true;
+ break;
+ case TokStereotype::ste_readonly:
+ aStereotypes.Set_Flag(Stereotypes::readonly);
+ break;
+ case TokStereotype::ste_bound:
+ aStereotypes.Set_Flag(Stereotypes::bound);
+ break;
+ case TokStereotype::ste_constrained:
+ aStereotypes.Set_Flag(Stereotypes::constrained);
+ break;
+ case TokStereotype::ste_maybeambiguous:
+ aStereotypes.Set_Flag(Stereotypes::maybeambiguous);
+ break;
+ case TokStereotype::ste_maybedefault:
+ aStereotypes.Set_Flag(Stereotypes::maybedefault);
+ break;
+ case TokStereotype::ste_maybevoid:
+ aStereotypes.Set_Flag(Stereotypes::maybevoid);
+ break;
+ case TokStereotype::ste_removable:
+ aStereotypes.Set_Flag(Stereotypes::removable);
+ break;
+ case TokStereotype::ste_transient:
+ aStereotypes.Set_Flag(Stereotypes::transient);
+ break;
+
+ default:
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+ return;
+ }
+
+ SetResult(done, stay);
+}
+
+void
+PE_Property::Process_MetaType( const TokMetaType & i_rToken )
+{
+ if (eState == e_start)
+ {
+ if ( i_rToken.Id() == TokMetaType::mt_property )
+ {
+ SetResult(done, stay);
+ eState = expect_variable;
+ return;
+ }
+ } // endif (eState == e_start)
+
+ SetResult(not_done, pop_failure);
+ eState = e_none;
+}
+
+void
+PE_Property::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (eState)
+ {
+ case e_start:
+ SetResult(done, stay);
+ break;
+ case expect_variable:
+ if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ SetResult(done, pop_success);
+ eState = e_none;
+ }
+ else if (i_rToken.Id() == TokPunctuation::Comma)
+ SetResult(done, stay);
+ else
+ SetResult(not_done, pop_failure);
+ break;
+ default:
+ csv_assert(false);
+ }
+}
+
+void
+PE_Property::Process_Default()
+{
+ if (eState == expect_variable)
+ {
+ SetResult(not_done, push_sure, pPE_Variable.Ptr());
+ eState = in_variable;
+ }
+ else
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Property::InitData()
+{
+ eState = e_start;
+
+ nCurParsedType = 0;
+ sCurParsedName = "";
+
+ // bIsOptional and
+ // aStereotypes
+ // may be preset by the PE_Service-(or PE_Interface-)parent
+ // with PresetOptional() or
+ // PresetStereotype()
+ // - therefore it must not be set here!
+}
+
+void
+PE_Property::TransferData()
+{
+ if (bIsOptional)
+ {
+ SetOptional();
+ bIsOptional = false;
+ }
+
+ ary::idl::CodeEntity *
+ pCe = 0;
+ csv_assert(pCurOwner->IsValid());
+
+ pCe = &Gate().Ces().Store_Property( *pCurOwner,
+ sCurParsedName,
+ nCurParsedType,
+ aStereotypes );
+
+ csv_assert(pCe != 0);
+ PassDocuAt(*pCe);
+
+ nCurParsedType = 0;
+ sCurParsedName.clear();
+ aStereotypes = Stereotypes();
+
+ eState = e_none;
+}
+
+void
+PE_Property::ReceiveData()
+{
+ eState = expect_variable;
+}
+
+
+UnoIDL_PE &
+PE_Property::MyPE()
+{
+ return *this;
+}
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_selem.cxx b/autodoc/source/parser_i/idl/pe_selem.cxx
new file mode 100644
index 000000000000..40d052b8b267
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_selem.cxx
@@ -0,0 +1,205 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_selem.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/i_structelem.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+namespace
+{
+ const String C_sNone;
+}
+
+PE_StructElement::PE_StructElement( RStructElement & o_rResult,
+ const RStruct & i_rCurStruct,
+ const String & i_rCurStructTemplateParam )
+ : eState(e_none),
+ pResult(&o_rResult),
+ pCurStruct(&i_rCurStruct),
+ bIsExceptionElement(false),
+ pPE_Type(0),
+ nType(0),
+ sName(),
+ pCurStructTemplateParam(&i_rCurStructTemplateParam)
+{
+ pPE_Type = new PE_Type(nType);
+}
+
+PE_StructElement::PE_StructElement( RStructElement & o_rResult,
+ const RStruct & i_rCurExc )
+ : eState(e_none),
+ pResult(&o_rResult),
+ pCurStruct(&i_rCurExc),
+ bIsExceptionElement(true),
+ pPE_Type(0),
+ nType(0),
+ sName(),
+ pCurStructTemplateParam(&C_sNone)
+{
+ pPE_Type = new PE_Type(nType);
+}
+
+void
+PE_StructElement::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_StructElement::~PE_StructElement()
+{
+}
+
+void
+PE_StructElement::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_StructElement::Process_Default()
+{
+ if (eState == expect_type)
+ {
+ SetResult( not_done, push_sure, pPE_Type.Ptr() );
+ eState = expect_name;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_StructElement::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ csv_assert(*i_rToken.Text() != 0);
+
+ if (eState == expect_type)
+ {
+ if ( *pCurStructTemplateParam == i_rToken.Text() )
+ {
+ nType = lhf_FindTemplateParamType();
+ SetResult( done, stay );
+ eState = expect_name;
+ }
+ else // No template parameter type existing, or not matching:
+ {
+ SetResult( not_done, push_sure, pPE_Type.Ptr() );
+ eState = expect_name;
+ }
+ }
+ else if (eState == expect_name)
+ {
+ sName = i_rToken.Text();
+ SetResult( done, stay );
+ eState = expect_finish;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_StructElement::Process_Punctuation( const TokPunctuation &)
+{
+ csv_assert(eState == expect_finish);
+
+ SetResult( done, pop_success );
+}
+
+void
+PE_StructElement::InitData()
+{
+ eState = expect_type;
+
+ nType = 0;
+ sName = "";
+}
+
+void
+PE_StructElement::TransferData()
+{
+ csv_assert(pResult != 0 AND pCurStruct != 0);
+
+ ary::idl::StructElement *
+ pCe = 0;
+ if (bIsExceptionElement)
+ {
+ pCe = & Gate().Ces().Store_ExceptionMember(
+ *pCurStruct,
+ sName,
+ nType );
+ }
+ else
+ {
+ pCe = & Gate().Ces().Store_StructMember(
+ *pCurStruct,
+ sName,
+ nType );
+ }
+ *pResult = pCe->CeId();
+ PassDocuAt(*pCe);
+
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_StructElement::MyPE()
+{
+ return *this;
+}
+
+ary::idl::Type_id
+PE_StructElement::lhf_FindTemplateParamType() const
+{
+ const ary::idl::CodeEntity &
+ rCe = Gate().Ces().Find_Ce(*pCurStruct);
+ const ary::idl::Struct &
+ rStruct = static_cast< const ary::idl::Struct& >(rCe);
+ return rStruct.TemplateParameterType();
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_servi.cxx b/autodoc/source/parser_i/idl/pe_servi.cxx
new file mode 100644
index 000000000000..eb8bf0f7ede4
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_servi.cxx
@@ -0,0 +1,393 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_servi.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_service.hxx>
+#include <ary/idl/i_siservice.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_func2.hxx>
+#include <s2_luidl/pe_property.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+PE_Service::PE_Service()
+ : eState(e_none),
+ sData_Name(),
+ bIsPreDeclaration(false),
+ pCurService(0),
+ pCurSiService(0),
+ nCurService(0),
+ pPE_Property(0),
+ nCurParsed_Property(0),
+ pPE_Type(0),
+ nCurParsed_Type(0),
+ pPE_Constructor(0),
+ bOptionalMember(false)
+{
+ pPE_Property = new PE_Property(nCurService);
+ pPE_Type = new PE_Type(nCurParsed_Type);
+ pPE_Constructor = new PE_Function(nCurService, PE_Function::constructor);
+}
+
+void
+PE_Service::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Property->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+ pPE_Constructor->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Service::~PE_Service()
+{
+}
+
+void
+PE_Service::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+
+void
+PE_Service::Process_MetaType( const TokMetaType & i_rToken )
+{
+ switch ( i_rToken.Id() )
+ {
+ case TokMetaType::mt_service:
+ if (eState == need_name)
+ SetResult(done, stay );
+ else if (eState == e_std)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_service_type;
+ }
+ else
+ On_Default();
+ break;
+ case TokMetaType::mt_interface:
+ if (eState == e_std)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_ifc_type;
+ }
+ else
+ On_Default();
+ break;
+ case TokMetaType::mt_property:
+ if (eState == e_std)
+ {
+ StartProperty();
+ }
+ else
+ On_Default();
+ break;
+ default:
+ // KORR_FUTURE:
+ // Should throw syntax error warning.
+ ;
+ } // end switch
+}
+
+void
+PE_Service::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ if (eState == need_name)
+ {
+ sData_Name = i_rToken.Text();
+ SetResult(done, stay);
+ eState = need_curlbr_open;
+ }
+ else if (eState == e_std_sib)
+ {
+ SetResult(not_done, push_sure, pPE_Constructor.Ptr());
+ }
+ else
+ On_Default();
+}
+
+void
+PE_Service::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::Colon:
+ if (eState == need_curlbr_open)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = need_base_interface;
+ }
+ else
+ On_Default();
+ break;
+
+ case TokPunctuation::CurledBracketOpen:
+ if (eState == need_curlbr_open)
+ {
+ pCurService = &Gate().Ces().Store_Service(
+ CurNamespace().CeId(),
+ sData_Name );
+ nCurService = pCurService->CeId();
+ PassDocuAt(*pCurService);
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else if (eState == need_curlbr_open_sib)
+ {
+ SetResult(done, stay);
+ eState = e_std_sib;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::CurledBracketClose:
+ if (eState == e_std OR eState == e_std_sib)
+ {
+ SetResult(done, stay);
+ eState = need_finish;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::Comma:
+ if (eState == expect_ifc_separator)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_ifc_type;
+ }
+ else if (eState == expect_service_separator)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_service_type;
+ }
+ else if (eState == e_std)
+ {
+ SetResult(done, stay);
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::Semicolon:
+ switch (eState)
+ {
+ case need_curlbr_open:
+ sData_Name.clear();
+ bIsPreDeclaration = true;
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ case need_curlbr_open_sib:
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ case expect_ifc_separator:
+ case expect_service_separator:
+ SetResult(done, stay);
+ eState = e_std;
+ break;
+ case need_finish:
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ case at_ignore:
+ SetResult(done, stay);
+ eState = e_std;
+ break;
+ default:
+ On_Default();
+ } // end switch
+ break;
+ default:
+ On_Default();
+ } // end switch
+}
+
+void
+PE_Service::Process_Stereotype( const TokStereotype & i_rToken )
+{
+ if (i_rToken.Id() == TokStereotype::ste_optional)
+ {
+ bOptionalMember = true;
+ SetResult(done, stay);
+ }
+ else if ( eState == e_std )
+ {
+ StartProperty();
+ }
+ else
+ On_Default();
+}
+
+void
+PE_Service::Process_Needs()
+{
+ SetResult(done,stay);
+ eState = at_ignore;
+}
+
+void
+PE_Service::Process_Observes()
+{
+ SetResult(done,stay);
+ eState = at_ignore;
+}
+
+void
+PE_Service::Process_Default()
+{
+ On_Default();
+}
+
+
+void
+PE_Service::On_Default()
+{
+ if (eState == at_ignore)
+ SetResult(done, stay);
+ else
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Service::InitData()
+{
+ eState = need_name;
+ sData_Name.clear();
+ bIsPreDeclaration = false;
+ pCurService = 0;
+ pCurSiService = 0;
+ nCurService = 0;
+ nCurParsed_Property = 0;
+ nCurParsed_Type = 0;
+ bOptionalMember = false;
+}
+
+void
+PE_Service::TransferData()
+{
+ if (NOT bIsPreDeclaration)
+ {
+ csv_assert(sData_Name.size() > 0);
+ csv_assert( (pCurService != 0) != (pCurSiService != 0) );
+ }
+
+ eState = e_none;
+}
+
+void
+PE_Service::ReceiveData()
+{
+ switch (eState)
+ {
+ case in_property:
+ eState = e_std;
+ break;
+ case in_ifc_type:
+ if (bOptionalMember)
+ {
+ pPE_Type->SetOptional();
+ }
+ pCurService->AddRef_SupportedInterface(
+ nCurParsed_Type,
+ pPE_Type->ReleaseDocu());
+ nCurParsed_Type = 0;
+ eState = expect_ifc_separator;
+ break;
+ case in_service_type:
+ if (bOptionalMember)
+ {
+ pPE_Type->SetOptional();
+ }
+ pCurService->AddRef_IncludedService(
+ nCurParsed_Type,
+ pPE_Type->ReleaseDocu());
+ nCurParsed_Type = 0;
+ eState = expect_service_separator;
+ break;
+ case need_base_interface:
+ pCurSiService = &Gate().Ces().Store_SglIfcService(
+ CurNamespace().CeId(),
+ sData_Name,
+ nCurParsed_Type );
+ nCurService = pCurSiService->CeId();
+ PassDocuAt(*pCurSiService);
+
+ nCurParsed_Type = 0;
+ eState = need_curlbr_open_sib;
+ break;
+ case e_std_sib:
+ break;
+ default:
+ csv_assert(false);
+ }
+
+ bOptionalMember = false;
+}
+
+
+UnoIDL_PE &
+PE_Service::MyPE()
+{
+ return *this;
+}
+
+void
+PE_Service::StartProperty()
+{
+ SetResult(not_done, push_sure, pPE_Property.Ptr());
+ eState = in_property;
+
+ if (bOptionalMember)
+ {
+ pPE_Property->PresetOptional();
+ bOptionalMember = false;
+ }
+}
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_singl.cxx b/autodoc/source/parser_i/idl/pe_singl.cxx
new file mode 100644
index 000000000000..f41d938f915f
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_singl.cxx
@@ -0,0 +1,272 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_singl.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_singleton.hxx>
+#include <ary/idl/i_sisingleton.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+#if 0
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Singleton::On_Default
+
+
+PE_Singleton::F_TOK
+PE_Singleton::aDispatcher[PE_Singleton::e_STATES_MAX][PE_Singleton::tt_MAX] =
+ { { DF, DF, DF }, // e_none
+ { DF, &PE_Singleton::On_need_name_Identifer,
+ DF }, // need_name
+ { DF, DF, &PE_Singleton::On_need_curlbr_open_Punctuation,
+ }, // need_curlbr_open
+ { &PE_Singleton::On_std_GotoService,
+ DF, &PE_Singleton::On_std_Punctuation,
+ }, // e_std
+ { DF, DF, DF }, // in_service
+ { DF, DF, &PE_Interface::On_need_finish_Punctuation,
+ } // need_finish
+ };
+#endif // 0
+
+
+PE_Singleton::PE_Singleton()
+ : eState(e_none),
+ sData_Name(),
+ bIsPreDeclaration(false),
+ pCurSingleton(0),
+ pCurSiSingleton(0),
+ pPE_Type(0),
+ nCurParsed_Type(0)
+{
+ pPE_Type = new PE_Type(nCurParsed_Type);
+}
+
+void
+PE_Singleton::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Singleton::~PE_Singleton()
+{
+}
+
+void
+PE_Singleton::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+
+void
+PE_Singleton::Process_MetaType( const TokMetaType & i_rToken )
+{
+ switch ( i_rToken.Id() )
+ {
+ case TokMetaType::mt_service:
+ if (eState == e_std)
+ {
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_service;
+ }
+ else
+ On_Default();
+ break;
+ case TokMetaType::mt_singleton:
+ if (eState == need_name)
+ SetResult(done, stay);
+ else
+ On_Default();
+ break;
+ default:
+ // KORR_FUTURE
+ // Should throw syntax error warning
+ ;
+
+ } // end switch
+}
+
+void
+PE_Singleton::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ if (eState == need_name)
+ {
+ sData_Name = i_rToken.Text();
+ SetResult(done, stay);
+ eState = need_curlbr_open;
+ }
+ else
+ On_Default();
+}
+
+void
+PE_Singleton::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::CurledBracketOpen:
+ if (eState == need_curlbr_open)
+ {
+ pCurSingleton = &Gate().Ces().Store_Singleton(
+ CurNamespace().CeId(),
+ sData_Name );
+ PassDocuAt(*pCurSingleton);
+ SetResult(done, stay);
+ eState = e_std;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::CurledBracketClose:
+ if (eState == e_std)
+ {
+ SetResult(done, stay);
+ eState = need_finish;
+ }
+ else
+ On_Default();
+ break;
+ case TokPunctuation::Semicolon:
+ switch (eState)
+ {
+ case e_std: SetResult(done, stay);
+ break;
+ case need_finish:
+ SetResult(done, pop_success);
+ eState = e_none;
+ break;
+ default:
+ On_Default();
+ } // end switch
+ break;
+ case TokPunctuation::Colon:
+ switch (eState)
+ {
+ case need_curlbr_open:
+ SetResult(done, push_sure, pPE_Type.Ptr());
+ eState = in_base_interface;
+ break;
+ default:
+ On_Default();
+ } // end switch
+ break;
+ default:
+ On_Default();
+ } // end switch
+}
+
+void
+PE_Singleton::Process_Default()
+{
+ On_Default();
+}
+
+
+void
+PE_Singleton::On_Default()
+{
+ SetResult(not_done, pop_failure);
+}
+
+void
+PE_Singleton::InitData()
+{
+ eState = need_name;
+ sData_Name.clear();
+ bIsPreDeclaration = false;
+ pCurSingleton = 0;
+ pCurSiSingleton = 0;
+ nCurParsed_Type = 0;
+}
+
+void
+PE_Singleton::TransferData()
+{
+ if (NOT bIsPreDeclaration)
+ {
+ csv_assert(sData_Name.size() > 0);
+ csv_assert( (pCurSingleton != 0) != (pCurSiSingleton != 0) );
+ }
+
+ eState = e_none;
+}
+
+void
+PE_Singleton::ReceiveData()
+{
+ switch (eState)
+ {
+ case in_service:
+ pCurSingleton->Set_Service(nCurParsed_Type);
+ nCurParsed_Type = 0;
+ eState = e_std;
+ break;
+ case in_base_interface:
+ pCurSiSingleton = &Gate().Ces().Store_SglIfcSingleton(
+ CurNamespace().CeId(),
+ sData_Name,
+ nCurParsed_Type );
+ PassDocuAt(*pCurSiSingleton);
+ nCurParsed_Type = 0;
+ eState = need_finish;
+ break;
+ default:
+ csv_assert(false);
+ } // end switch
+}
+
+UnoIDL_PE &
+PE_Singleton::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_struc.cxx b/autodoc/source/parser_i/idl/pe_struc.cxx
new file mode 100644
index 000000000000..23e44643ff47
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_struc.cxx
@@ -0,0 +1,327 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_struc.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_struct.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/pe_selem.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_Struct::PE_Struct()
+ // : aWork,
+ // pStati
+{
+ pStati = new S_Stati(*this);
+}
+
+void
+PE_Struct::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ Work().pPE_Element->EstablishContacts(this,io_rRepository,o_rResult);
+ Work().pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Struct::~PE_Struct()
+{
+}
+
+void
+PE_Struct::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*Stati().pCurStatus);
+}
+
+
+void
+PE_Struct::InitData()
+{
+ Work().InitData();
+ Stati().pCurStatus = &Stati().aWaitForName;
+}
+
+void
+PE_Struct::TransferData()
+{
+ if (NOT Work().bIsPreDeclaration)
+ {
+ csv_assert(Work().sData_Name.size() > 0);
+ csv_assert(Work().nCurStruct.IsValid());
+ }
+ Stati().pCurStatus = &Stati().aNone;
+}
+
+void
+PE_Struct::ReceiveData()
+{
+ Stati().pCurStatus->On_SubPE_Left();
+}
+
+PE_Struct::S_Work::S_Work()
+ : sData_Name(),
+ sData_TemplateParam(),
+ bIsPreDeclaration(false),
+ nCurStruct(0),
+ pPE_Element(0),
+ nCurParsed_ElementRef(0),
+ pPE_Type(0),
+ nCurParsed_Base(0)
+
+{
+ pPE_Element = new PE_StructElement(nCurParsed_ElementRef,nCurStruct,sData_TemplateParam);
+ pPE_Type = new PE_Type(nCurParsed_Base);
+}
+
+void
+PE_Struct::S_Work::InitData()
+{
+ sData_Name.clear();
+ sData_TemplateParam.clear();
+ bIsPreDeclaration = false;
+ nCurStruct = 0;
+ nCurParsed_ElementRef = 0;
+ nCurParsed_Base = 0;
+}
+
+void
+PE_Struct::S_Work::Prepare_PE_QualifiedName()
+{
+ nCurParsed_ElementRef = 0;
+}
+
+void
+PE_Struct::S_Work::Prepare_PE_Element()
+{
+ nCurParsed_Base = 0;
+}
+
+void
+PE_Struct::S_Work::Data_Set_Name( const char * i_sName )
+{
+ sData_Name = i_sName;
+}
+
+void
+PE_Struct::S_Work::Data_Set_TemplateParam( const char * i_sTemplateParam )
+{
+ sData_TemplateParam = i_sTemplateParam;
+}
+
+PE_Struct::S_Stati::S_Stati(PE_Struct & io_rStruct)
+ : aNone(io_rStruct),
+ aWaitForName(io_rStruct),
+ aGotName(io_rStruct),
+ aWaitForTemplateParam(io_rStruct),
+ aWaitForTemplateEnd(io_rStruct),
+ aWaitForBase(io_rStruct),
+ aGotBase(io_rStruct),
+ aWaitForElement(io_rStruct),
+ aWaitForFinish(io_rStruct),
+ pCurStatus(0)
+{
+ pCurStatus = &aNone;
+}
+
+
+//*********************** Stati ***************************//
+
+
+UnoIDL_PE &
+PE_Struct::PE_StructState::MyPE()
+{
+ return rStruct;
+}
+
+
+void
+PE_Struct::State_WaitForName::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ Work().Data_Set_Name(i_rToken.Text());
+ MoveState( Stati().aGotName );
+ SetResult(done,stay);
+}
+
+void
+PE_Struct::State_GotName::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() != TokPunctuation::Semicolon )
+ {
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::Colon:
+ MoveState( Stati().aWaitForBase );
+ SetResult(done,push_sure,Work().pPE_Type.Ptr());
+ Work().Prepare_PE_QualifiedName();
+ break;
+ case TokPunctuation::CurledBracketOpen:
+ PE().store_Struct();
+ MoveState( Stati().aWaitForElement );
+ SetResult(done,stay);
+ break;
+ case TokPunctuation::Lesser:
+ MoveState( Stati().aWaitForTemplateParam );
+ SetResult(done,stay);
+ break;
+ default:
+ SetResult(not_done,pop_failure);
+ } // end switch
+ }
+ else
+ {
+ Work().sData_Name.clear();
+ SetResult(done,pop_success);
+ }
+}
+
+void
+PE_Struct::State_WaitForTemplateParam::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ Work().Data_Set_TemplateParam(i_rToken.Text());
+ MoveState( Stati().aWaitForTemplateEnd );
+ SetResult(done,stay);
+}
+
+void
+PE_Struct::State_WaitForTemplateEnd::Process_Punctuation( const TokPunctuation & )
+{
+ // Assume: TokPunctuation::Greater
+ MoveState( Stati().aGotName );
+ SetResult(done,stay);
+}
+
+void
+PE_Struct::State_WaitForBase::On_SubPE_Left()
+{
+ MoveState(Stati().aGotBase);
+}
+
+void
+PE_Struct::State_GotBase::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() == TokPunctuation::CurledBracketOpen )
+ {
+ PE().store_Struct();
+ MoveState( Stati().aWaitForElement );
+ SetResult(done,stay);
+ }
+ else
+ {
+ SetResult(not_done,pop_failure);
+ }
+}
+
+void
+PE_Struct::State_WaitForElement::Process_Identifier( const TokIdentifier & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr() );
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Struct::State_WaitForElement::Process_NameSeparator()
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Struct::State_WaitForElement::Process_BuiltInType( const TokBuiltInType & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Struct::State_WaitForElement::Process_TypeModifier(const TokTypeModifier & )
+{
+ SetResult( not_done, push_sure, Work().pPE_Element.Ptr());
+ Work().Prepare_PE_Element();
+}
+
+void
+PE_Struct::State_WaitForElement::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if ( i_rToken.Id() == TokPunctuation::CurledBracketClose )
+ {
+ MoveState( Stati().aWaitForFinish );
+ SetResult( done, stay );
+ }
+ else
+ {
+ SetResult( not_done, pop_failure );
+ }
+}
+
+void
+PE_Struct::State_WaitForFinish::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if (i_rToken.Id() == TokPunctuation::Semicolon)
+ {
+ MoveState( Stati().aNone );
+ SetResult( done, pop_success );
+ }
+ else
+ {
+ SetResult( not_done, pop_failure );
+ }
+}
+
+void
+PE_Struct::store_Struct()
+{
+ ary::idl::Struct &
+ rCe = Gate().Ces().Store_Struct(
+ CurNamespace().CeId(),
+ Work().sData_Name,
+ Work().nCurParsed_Base,
+ Work().sData_TemplateParam );
+ PassDocuAt(rCe);
+ Work().nCurStruct = rCe.CeId();
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_tydf2.cxx b/autodoc/source/parser_i/idl/pe_tydf2.cxx
new file mode 100644
index 000000000000..e7b7b117ba9f
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_tydf2.cxx
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_tydf2.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_typedef.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+#include <s2_luidl/tk_const.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+#ifdef DF
+#undef DF
+#endif
+#define DF &PE_Typedef::On_Default
+
+PE_Typedef::F_TOK
+PE_Typedef::aDispatcher[PE_Typedef::e_STATES_MAX][PE_Typedef::tt_MAX] =
+ { { DF, DF, DF }, // e_none
+ { &PE_Typedef::On_expect_description_Any,
+ &PE_Typedef::On_expect_description_Any,
+ DF }, // expect_description
+ { DF, &PE_Typedef::On_expect_name_Identifier,
+ DF }, // expect_name
+ { DF, DF, &PE_Typedef::On_got_name_Punctuation } // got_name
+ };
+
+
+
+inline void
+PE_Typedef::CallHandler( const char * i_sTokenText,
+ E_TokenType i_eTokenType )
+ { (this->*aDispatcher[eState][i_eTokenType])(i_sTokenText); }
+
+
+
+
+
+PE_Typedef::PE_Typedef()
+ : eState(e_none),
+ pPE_Type(0),
+ nType(0),
+ sName()
+{
+ pPE_Type = new PE_Type(nType);
+}
+
+void
+PE_Typedef::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Typedef::~PE_Typedef()
+{
+}
+
+void
+PE_Typedef::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Typedef::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_identifier);
+}
+
+void
+PE_Typedef::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ CallHandler(i_rToken.Text(), tt_punctuation);
+}
+
+void
+PE_Typedef::Process_Default()
+{
+ CallHandler("", tt_any);
+}
+
+void
+PE_Typedef::On_expect_description_Any(const char *)
+{
+ SetResult(not_done,push_sure, pPE_Type.Ptr());
+}
+
+void
+PE_Typedef::On_expect_name_Identifier(const char * i_sText)
+{
+ sName = i_sText;
+ SetResult(done,stay);
+ eState = got_name;
+}
+
+void
+PE_Typedef::On_got_name_Punctuation(const char * i_sText)
+{
+ if ( i_sText[0] == ';' )
+ {
+ SetResult(done,pop_success);
+ eState = e_none;
+ }
+ else
+ On_Default(i_sText);
+}
+
+void
+PE_Typedef::On_Default(const char * )
+{
+ SetResult(not_done,pop_failure);
+}
+
+void
+PE_Typedef::InitData()
+{
+ eState = expect_description;
+ nType = 0;
+ sName = "";
+}
+
+void
+PE_Typedef::ReceiveData()
+{
+ eState = expect_name;
+}
+
+void
+PE_Typedef::TransferData()
+{
+ ary::idl::Typedef &
+ rCe = Gate().Ces().Store_Typedef(CurNamespace().CeId(), sName, nType);
+ PassDocuAt(rCe);
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Typedef::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pe_type2.cxx b/autodoc/source/parser_i/idl/pe_type2.cxx
new file mode 100644
index 000000000000..9ceb955576ec
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_type2.cxx
@@ -0,0 +1,314 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_type2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_type.hxx>
+#include <ary/idl/ip_type.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/uidl_tok.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+
+/** Implementation Concept for Parsing a Type
+
+Example Type:
+ sequence < ::abc::TName< TplType > > AnyName;
+
+Status Changes:
+
+expect_type:
+ sequence -> expect_type
+ < -> expect_type
+ :: -> expect_quname_part
+ abc -> expect_quname_separator
+ :: -> expect_quname_part
+ TName -> expect_quname_separator
+ < -> in_template_type (process in nested PE_Type instance)
+
+ expect_type:
+ TplType ->expect_quname_separator
+ > -> e_none (finish, '>' not handled)
+
+ > -> expect_quname_separator
+ > -> expect_quname_separator (not finish, because sequencecounter > 0)
+ AnyName -> e_none (finish)
+*/
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_Type::PE_Type( ary::idl::Type_id & o_rResult )
+ : pResult(&o_rResult),
+ nIsSequenceCounter(0),
+ nSequenceDownCounter(0),
+ bIsUnsigned(false),
+ sFullType(),
+ eState(e_none),
+ sLastPart(),
+ pPE_TemplateType(0), // @attention Recursion, only initiate, if needed!
+ nTemplateType(0),
+ aTemplateParameters()
+{
+}
+
+PE_Type::~PE_Type()
+{
+}
+
+void
+PE_Type::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+void
+PE_Type::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ sLastPart = i_rToken.Text();
+ eState = expect_quname_separator;
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_part)
+ {
+ sLastPart = i_rToken.Text();
+ eState = expect_quname_separator;
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_separator)
+ {
+ Finish();
+ }
+}
+
+void
+PE_Type::Process_NameSeparator()
+{
+ if (eState == expect_type)
+ {
+ sFullType.Init(true);
+ eState = expect_quname_part;
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_separator)
+ {
+ sFullType += sLastPart;
+ eState = expect_quname_part;
+ SetResult(done, stay);
+ }
+}
+
+void
+PE_Type::Process_Punctuation( const TokPunctuation & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ csv_assert(i_rToken.Id() == TokPunctuation::Lesser);
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_separator)
+ {
+ switch (i_rToken.Id())
+ {
+ case TokPunctuation::Lesser:
+ eState = in_template_type;
+ SetResult( done, push_sure, &MyTemplateType() );
+ break;
+
+ case TokPunctuation::Greater:
+ if (nSequenceDownCounter > 0)
+ {
+ nSequenceDownCounter--;
+ SetResult(done, stay);
+ }
+ else
+ {
+ Finish();
+ }
+ break;
+
+ default:
+ Finish();
+ } // end switch
+ }
+ else if (eState == in_template_type)
+ {
+ aTemplateParameters.push_back(nTemplateType);
+ nTemplateType = 0;
+
+ if (i_rToken.Id() == TokPunctuation::Greater)
+ {
+ eState = expect_quname_separator;
+ SetResult(done, stay);
+ }
+ else if (i_rToken.Id() == TokPunctuation::Comma)
+ {
+ SetResult(done, push_sure, &MyTemplateType());
+ }
+ else
+ {
+ csv_assert(false);
+ Finish();
+ }
+ }
+}
+
+void
+PE_Type::Process_BuiltInType( const TokBuiltInType & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ sLastPart = i_rToken.Text();
+ eState = expect_quname_separator;
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_part)
+ {
+ // Can this happen?
+
+ sLastPart = i_rToken.Text();
+ eState = expect_quname_separator;
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_separator)
+ {
+ // Can this happen?
+
+ Finish();
+ }
+}
+
+void
+PE_Type::Process_TypeModifier( const TokTypeModifier & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ switch ( i_rToken.Id() )
+ {
+ case TokTypeModifier::tmod_unsigned:
+ bIsUnsigned = true;
+ break;
+ case TokTypeModifier::tmod_sequence:
+ nIsSequenceCounter++;
+ nSequenceDownCounter++;
+ break;
+ default:
+ csv_assert(false);
+ }
+ SetResult(done, stay);
+ }
+ else if (eState == expect_quname_separator)
+ {
+ // Can this happen?
+
+ Finish();
+ }
+}
+
+void
+PE_Type::Process_Default()
+{
+ Finish();
+}
+
+void
+PE_Type::Finish()
+{
+ csv_assert(nSequenceDownCounter == 0);
+
+ sFullType.SetLocalName(sLastPart);
+ SetResult(not_done, pop_success);
+}
+
+PE_Type &
+PE_Type::MyTemplateType()
+{
+ if (NOT pPE_TemplateType)
+ {
+ pPE_TemplateType = new PE_Type(nTemplateType);
+ pPE_TemplateType->EstablishContacts( this,
+ MyRepository(),
+ TokenResult() );
+ }
+ return *pPE_TemplateType;
+}
+
+void
+PE_Type::InitData()
+{
+ eState = expect_type;
+
+ nIsSequenceCounter = 0;
+ nSequenceDownCounter = 0;
+ bIsUnsigned = false;
+ sFullType.Empty();
+ sLastPart.clear();
+ nTemplateType = 0;
+ csv::erase_container(aTemplateParameters);
+}
+
+void
+PE_Type::TransferData()
+{
+ if (bIsUnsigned)
+ {
+ StreamLock sl(40);
+ String sName( sl() << "unsigned " << sFullType.LocalName() << c_str );
+ sFullType.SetLocalName(sName);
+ }
+
+ const ary::idl::Type &
+ result = Gate().Types().CheckIn_Type( sFullType,
+ nIsSequenceCounter,
+ CurNamespace().CeId(),
+ &aTemplateParameters );
+ *pResult = result.TypeId();
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Type::MyPE()
+{
+ return *this;
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/pe_vari2.cxx b/autodoc/source/parser_i/idl/pe_vari2.cxx
new file mode 100644
index 000000000000..c294da7f507b
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pe_vari2.cxx
@@ -0,0 +1,173 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pe_vari2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_property.hxx>
+#include <ary/idl/ip_ce.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/pe_type2.hxx>
+#include <s2_luidl/tk_keyw.hxx>
+#include <s2_luidl/tk_ident.hxx>
+#include <s2_luidl/tk_punct.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+PE_Variable::PE_Variable( ary::idl::Type_id & i_rResult_Type,
+ String & i_rResult_Name )
+ : eState(e_none),
+ pResult_Type(&i_rResult_Type),
+ pResult_Name(&i_rResult_Name),
+ pPE_Type(0)
+{
+ pPE_Type = new PE_Type(i_rResult_Type);
+}
+
+void
+PE_Variable::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result & o_rResult )
+{
+ UnoIDL_PE::EstablishContacts(io_pParentPE,io_rRepository,o_rResult);
+ pPE_Type->EstablishContacts(this,io_rRepository,o_rResult);
+}
+
+PE_Variable::~PE_Variable()
+{
+}
+
+void
+PE_Variable::ProcessToken( const Token & i_rToken )
+{
+ i_rToken.Trigger(*this);
+}
+
+
+void
+PE_Variable::Process_Default()
+{
+ if (eState == expect_type)
+ {
+ SetResult( not_done, push_sure, pPE_Type.Ptr() );
+ }
+ else{
+ csv_assert(false);
+ }
+}
+
+void
+PE_Variable::Process_Identifier( const TokIdentifier & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ SetResult( not_done, push_sure, pPE_Type.Ptr() );
+ }
+ else if (eState == expect_name)
+ {
+ *pResult_Name = i_rToken.Text();
+ SetResult( done, stay );
+ eState = expect_finish;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_Variable::Process_Punctuation( const TokPunctuation & )
+{
+ if (eState == expect_finish)
+ {
+ SetResult( not_done, pop_success );
+ eState = e_none;
+ }
+ else if (eState == expect_name)
+ {
+ SetResult( not_done, pop_success );
+ eState = e_none;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_Variable::Process_BuiltInType( const TokBuiltInType & i_rToken )
+{
+ if (eState == expect_type)
+ {
+ SetResult( not_done, push_sure, pPE_Type.Ptr() );
+ }
+ else if (eState == expect_name AND i_rToken.Id() == TokBuiltInType::bty_ellipse)
+ {
+ SetResult( not_done, pop_success );
+ eState = e_none;
+ }
+ else {
+ csv_assert(false);
+ }
+}
+
+void
+PE_Variable::InitData()
+{
+ eState = expect_type;
+
+ *pResult_Type = 0;
+ *pResult_Name = "";
+}
+
+void
+PE_Variable::ReceiveData()
+{
+ eState = expect_name;
+}
+
+void
+PE_Variable::TransferData()
+{
+ eState = e_none;
+}
+
+UnoIDL_PE &
+PE_Variable::MyPE()
+{
+ return *this;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/pestate.cxx b/autodoc/source/parser_i/idl/pestate.cxx
new file mode 100644
index 000000000000..9a80b8c4a0d4
--- /dev/null
+++ b/autodoc/source/parser_i/idl/pestate.cxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/pestate.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/parsenv2.hxx>
+
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+void
+ParseEnvState::Process_Identifier( const TokIdentifier & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_NameSeparator()
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Punctuation( const TokPunctuation & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_BuiltInType( const TokBuiltInType & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_TypeModifier( const TokTypeModifier & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_MetaType( const TokMetaType & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Stereotype( const TokStereotype & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_ParameterHandling( const TokParameterHandling & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Raises()
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Needs()
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Observes()
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_Assignment( const TokAssignment & )
+{
+ Process_Default();
+}
+
+void
+ParseEnvState::Process_EOL()
+{
+ MyPE().SetResult(done,stay);
+}
+
+
+void
+ParseEnvState::On_SubPE_Left()
+{
+}
+
+void
+ParseEnvState::Process_Default()
+{
+ if (bDefaultIsError)
+ MyPE().SetResult(not_done, pop_failure);
+ else // ignore:
+ MyPE().SetResult(done, stay);
+}
+
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/semnode.cxx b/autodoc/source/parser_i/idl/semnode.cxx
new file mode 100644
index 000000000000..1549d5eb0f24
--- /dev/null
+++ b/autodoc/source/parser_i/idl/semnode.cxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/semnode.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/ary.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/idl/i_module.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <s2_luidl/parsenv2.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+SemanticNode::SemanticNode()
+ : pParentPE(0),
+ pAryGate(0),
+ pTokenResult(0)
+{
+}
+
+void
+SemanticNode::EstablishContacts( UnoIDL_PE * io_pParentPE,
+ ary::idl::Gate & io_rGate,
+ TokenProcessing_Result & o_rResult )
+{
+ pParentPE = io_pParentPE;
+ pAryGate = &io_rGate;
+ pTokenResult = &o_rResult;
+}
+
+SemanticNode::~SemanticNode()
+{
+}
+
+void
+SemanticNode::SetTokenResult( E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ UnoIDL_PE * i_pParseEnv2Push )
+{
+ csv_assert(pTokenResult != 0);
+
+ pTokenResult->eDone = i_eDone;
+ pTokenResult->eStackAction = i_eWhat2DoWithEnvStack;
+ pTokenResult->pEnv2Push = i_pParseEnv2Push;
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/tk_const.cxx b/autodoc/source/parser_i/idl/tk_const.cxx
new file mode 100644
index 000000000000..d342ffc1f847
--- /dev/null
+++ b/autodoc/source/parser_i/idl/tk_const.cxx
@@ -0,0 +1,57 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/tk_const.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/tokintpr.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+void
+TokAssignment::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Assignment(*this);
+}
+
+const char *
+TokAssignment::Text() const
+{
+ return sText;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/tk_ident.cxx b/autodoc/source/parser_i/idl/tk_ident.cxx
new file mode 100644
index 000000000000..2a284b701e55
--- /dev/null
+++ b/autodoc/source/parser_i/idl/tk_ident.cxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/tk_ident.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/tokintpr.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+void
+TokIdentifier::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Identifier(*this);
+}
+
+const char *
+TokIdentifier::Text() const
+{
+ return sText;
+}
+
+void
+TokNameSeparator::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_NameSeparator();
+}
+
+const char *
+TokNameSeparator::Text() const
+{
+ return "::";
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/tk_keyw.cxx b/autodoc/source/parser_i/idl/tk_keyw.cxx
new file mode 100644
index 000000000000..1e8076a515f2
--- /dev/null
+++ b/autodoc/source/parser_i/idl/tk_keyw.cxx
@@ -0,0 +1,225 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/tk_keyw.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/tokintpr.hxx>
+
+
+using csi::uidl::TokBuiltInType;
+using csi::uidl::TokTypeModifier;
+using csi::uidl::TokMetaType;
+using csi::uidl::TokStereotype;
+using csi::uidl::TokParameterHandling;
+
+
+lux::EnumValueMap G_aTokBuiltInType_EV_TokenId_Values;
+TokBuiltInType::EV_TokenId ev_bty_none(TokBuiltInType::e_none,"");
+TokBuiltInType::EV_TokenId ev_bty_any(TokBuiltInType::bty_any,"any");
+TokBuiltInType::EV_TokenId ev_bty_boolean(TokBuiltInType::bty_boolean,"boolean");
+TokBuiltInType::EV_TokenId ev_bty_byte(TokBuiltInType::bty_byte,"byte");
+TokBuiltInType::EV_TokenId ev_bty_char(TokBuiltInType::bty_char,"char");
+TokBuiltInType::EV_TokenId ev_bty_double(TokBuiltInType::bty_double,"double");
+TokBuiltInType::EV_TokenId ev_bty_hyper(TokBuiltInType::bty_hyper,"hyper");
+TokBuiltInType::EV_TokenId ev_bty_long(TokBuiltInType::bty_long,"long");
+TokBuiltInType::EV_TokenId ev_bty_short(TokBuiltInType::bty_short,"short");
+TokBuiltInType::EV_TokenId ev_bty_string(TokBuiltInType::bty_string,"string");
+TokBuiltInType::EV_TokenId ev_bty_void(TokBuiltInType::bty_void,"void");
+TokBuiltInType::EV_TokenId ev_bty_ellipse(TokBuiltInType::bty_ellipse,"...");
+
+
+lux::EnumValueMap G_aTokTypeModifier_EV_TokenId_Values;
+TokTypeModifier::EV_TokenId ev_tmod_none(TokTypeModifier::e_none,"");
+TokTypeModifier::EV_TokenId ev_tmod_unsigned(TokTypeModifier::tmod_unsigned,"unsigned");
+TokTypeModifier::EV_TokenId ev_tmod_sequence(TokTypeModifier::tmod_sequence,"sequence");
+
+
+lux::EnumValueMap G_aTokMetaType_EV_TokenId_Values;
+TokMetaType::EV_TokenId ev_mt_none(TokMetaType::e_none,"");
+TokMetaType::EV_TokenId ev_mt_attribute(TokMetaType::mt_attribute,"attribute");
+TokMetaType::EV_TokenId ev_mt_constants(TokMetaType::mt_constants,"constants");
+TokMetaType::EV_TokenId ev_mt_enum(TokMetaType::mt_enum,"enum");
+TokMetaType::EV_TokenId ev_mt_exception(TokMetaType::mt_exception,"exception");
+TokMetaType::EV_TokenId ev_mt_ident(TokMetaType::mt_ident,"ident");
+TokMetaType::EV_TokenId ev_mt_interface(TokMetaType::mt_interface,"interface");
+TokMetaType::EV_TokenId ev_mt_module(TokMetaType::mt_module,"module");
+TokMetaType::EV_TokenId ev_mt_property(TokMetaType::mt_property,"property");
+TokMetaType::EV_TokenId ev_mt_service(TokMetaType::mt_service,"service");
+TokMetaType::EV_TokenId ev_mt_singleton(TokMetaType::mt_singleton,"singleton");
+TokMetaType::EV_TokenId ev_mt_struct(TokMetaType::mt_struct,"struct");
+TokMetaType::EV_TokenId ev_mt_typedef(TokMetaType::mt_typedef,"typedef");
+TokMetaType::EV_TokenId ev_mt_uik(TokMetaType::mt_uik,"uik");
+
+
+lux::EnumValueMap G_aTokStereotype_EV_TokenId_Values;
+TokStereotype::EV_TokenId ev_ste_none(TokStereotype::e_none,"");
+TokStereotype::EV_TokenId ev_ste_bound(TokStereotype::ste_bound,"bound");
+TokStereotype::EV_TokenId ev_ste_const(TokStereotype::ste_const,"const");
+TokStereotype::EV_TokenId ev_ste_constrained(TokStereotype::ste_constrained,"constrained");
+TokStereotype::EV_TokenId ev_ste_maybeambiguous(TokStereotype::ste_maybeambiguous,"maybeambiguous");
+TokStereotype::EV_TokenId ev_ste_maybedefault(TokStereotype::ste_maybedefault,"maybedefault");
+TokStereotype::EV_TokenId ev_ste_maybevoid(TokStereotype::ste_maybevoid,"maybevoid");
+TokStereotype::EV_TokenId ev_ste_oneway(TokStereotype::ste_oneway,"oneway");
+TokStereotype::EV_TokenId ev_ste_optional(TokStereotype::ste_optional,"optional");
+TokStereotype::EV_TokenId ev_ste_readonly(TokStereotype::ste_readonly,"readonly");
+TokStereotype::EV_TokenId ev_ste_removable(TokStereotype::ste_removable,"removable");
+TokStereotype::EV_TokenId ev_ste_virtual(TokStereotype::ste_virtual,"virtual");
+TokStereotype::EV_TokenId ev_ste_transient(TokStereotype::ste_transient,"transient");
+TokStereotype::EV_TokenId ev_ste_published(TokStereotype::ste_published,"published");
+
+
+lux::EnumValueMap G_aTokParameterHandling_EV_TokenId_Values;
+TokParameterHandling::EV_TokenId ev_ph_none(TokParameterHandling::e_none,"");
+TokParameterHandling::EV_TokenId ev_ph_in(TokParameterHandling::ph_in,"in");
+TokParameterHandling::EV_TokenId ev_ph_out(TokParameterHandling::ph_out,"out");
+TokParameterHandling::EV_TokenId ev_ph_inout(TokParameterHandling::ph_inout,"inout");
+
+
+namespace lux
+{
+
+template<> EnumValueMap &
+TokBuiltInType::EV_TokenId::Values_() { return G_aTokBuiltInType_EV_TokenId_Values; }
+template<> EnumValueMap &
+TokTypeModifier::EV_TokenId::Values_() { return G_aTokTypeModifier_EV_TokenId_Values; }
+template<> EnumValueMap &
+TokMetaType::EV_TokenId::Values_() { return G_aTokMetaType_EV_TokenId_Values; }
+template<> EnumValueMap &
+TokStereotype::EV_TokenId::Values_() { return G_aTokStereotype_EV_TokenId_Values; }
+template<> EnumValueMap &
+TokParameterHandling::EV_TokenId::Values_() { return G_aTokParameterHandling_EV_TokenId_Values; }
+
+} // namespace lux
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+void
+TokBuiltInType::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_BuiltInType(*this);
+}
+
+const char *
+TokBuiltInType::Text() const
+{
+ return eTag.Text();
+}
+
+void
+TokTypeModifier::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_TypeModifier(*this);
+}
+
+const char *
+TokTypeModifier::Text() const
+{
+ return eTag.Text();
+}
+
+void
+TokMetaType::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_MetaType(*this);
+}
+
+const char *
+TokMetaType::Text() const
+{
+ return eTag.Text();
+}
+
+void
+TokStereotype::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Stereotype(*this);
+}
+
+const char *
+TokStereotype::Text() const
+{
+ return eTag.Text();
+}
+
+void
+TokParameterHandling::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_ParameterHandling(*this);
+}
+
+const char *
+TokParameterHandling::Text() const
+{
+ return eTag.Text();
+}
+
+void
+TokRaises::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Raises();
+}
+
+const char *
+TokRaises::Text() const
+{
+ return "raises";
+}
+
+void
+TokNeeds::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Needs();
+}
+
+const char *
+TokNeeds::Text() const
+{
+ return "needs";
+}
+void
+TokObserves::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Observes();
+}
+
+const char *
+TokObserves::Text() const
+{
+ return "observes";
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/tk_punct.cxx b/autodoc/source/parser_i/idl/tk_punct.cxx
new file mode 100644
index 000000000000..40627196f89e
--- /dev/null
+++ b/autodoc/source/parser_i/idl/tk_punct.cxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/tk_punct.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <parser/parserinfo.hxx>
+#include <s2_luidl/tokintpr.hxx>
+
+
+using csi::uidl::TokPunctuation;
+
+
+lux::EnumValueMap G_aTokPunctuation_EV_TokenId_Values;
+TokPunctuation::EV_TokenId ev_none(TokPunctuation::e_none,"");
+TokPunctuation::EV_TokenId BracketOpen(TokPunctuation::BracketOpen,"(");
+TokPunctuation::EV_TokenId BracketClose(TokPunctuation::BracketClose,")");
+TokPunctuation::EV_TokenId ArrayBracketOpen(TokPunctuation::ArrayBracketOpen,"[");
+TokPunctuation::EV_TokenId ArrayBracketClose(TokPunctuation::ArrayBracketClose,"]");
+TokPunctuation::EV_TokenId CurledBracketOpen(TokPunctuation::CurledBracketOpen,"{");
+TokPunctuation::EV_TokenId CurledBracketClose(TokPunctuation::CurledBracketClose,"}");
+TokPunctuation::EV_TokenId Semicolon(TokPunctuation::Semicolon,";");
+TokPunctuation::EV_TokenId Colon(TokPunctuation::Colon,":");
+TokPunctuation::EV_TokenId DoubleColon(TokPunctuation::DoubleColon,"::");
+TokPunctuation::EV_TokenId Comma(TokPunctuation::Comma,",");
+TokPunctuation::EV_TokenId Minus(TokPunctuation::Minus,"-");
+TokPunctuation::EV_TokenId Fullstop(TokPunctuation::Fullstop,".");
+TokPunctuation::EV_TokenId Lesser(TokPunctuation::Lesser,"<");
+TokPunctuation::EV_TokenId Greater(TokPunctuation::Greater,">");
+
+
+
+
+namespace lux
+{
+template<> EnumValueMap &
+TokPunctuation::EV_TokenId::Values_() { return G_aTokPunctuation_EV_TokenId_Values; }
+}
+
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+void
+TokPunctuation::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Punctuation(*this);
+}
+
+const char *
+TokPunctuation::Text() const
+{
+ return eTag.Text();
+}
+
+void
+Tok_EOL::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_EOL();
+}
+
+const char *
+Tok_EOL::Text() const
+{
+ return "\r\n";
+}
+
+void
+Tok_EOF::Trigger( TokenInterpreter & ) const
+{
+ csv_assert(false);
+// io_rInterpreter.Process_EOF();
+}
+
+const char *
+Tok_EOF::Text() const
+{
+ return "";
+}
+
+
+} // namespace uidl
+} // namespace csi
diff --git a/autodoc/source/parser_i/idl/tkp_uidl.cxx b/autodoc/source/parser_i/idl/tkp_uidl.cxx
new file mode 100644
index 000000000000..9969e9b34364
--- /dev/null
+++ b/autodoc/source/parser_i/idl/tkp_uidl.cxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_luidl/tkp_uidl.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <s2_luidl/cx_idlco.hxx>
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+TokenParser_Uidl::TokenParser_Uidl( Token_Receiver & o_rUidlReceiver,
+ DYN ::TkpDocuContext & let_drDocuContext )
+ : pBaseContext(new Context_UidlCode(o_rUidlReceiver, let_drDocuContext)),
+ pCurContext(0)
+{
+ SetStartContext();
+}
+
+TokenParser_Uidl::~TokenParser_Uidl()
+{
+}
+
+void
+TokenParser_Uidl::SetStartContext()
+{
+ pCurContext = pBaseContext.Ptr();
+}
+
+void
+TokenParser_Uidl::SetCurrentContext( TkpContext & io_rContext )
+{
+ pCurContext = &io_rContext;
+}
+
+TkpContext &
+TokenParser_Uidl::CurrentContext()
+{
+ return *pCurContext;
+}
+
+} // namespace uidl
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idl/unoidl.cxx b/autodoc/source/parser_i/idl/unoidl.cxx
new file mode 100644
index 000000000000..34ad8064e3a9
--- /dev/null
+++ b/autodoc/source/parser_i/idl/unoidl.cxx
@@ -0,0 +1,176 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <parser/unoidl.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <stdlib.h>
+#include <cosv/file.hxx>
+#include <ary/ary.hxx>
+#include <ary/idl/i_gate.hxx>
+#include <ary/doc/d_oldidldocu.hxx>
+#include <../parser/inc/x_docu.hxx>
+#include <parser/parserinfo.hxx>
+#include <tools/filecoll.hxx>
+#include <tools/tkpchars.hxx>
+#include <s2_luidl/tkp_uidl.hxx>
+#include <s2_luidl/distrib.hxx>
+#include <s2_luidl/pe_file2.hxx>
+#include <s2_dsapi/cx_dsapi.hxx>
+#include <adc_msg.hxx>
+#include <x_parse2.hxx>
+
+
+
+namespace autodoc
+{
+
+
+class FileParsePerformers
+{
+ public:
+ FileParsePerformers(
+ ary::Repository &
+ io_rRepository,
+ ParserInfo & io_rParserInfo );
+
+ void ParseFile(
+ const char * i_sFullPath );
+
+ void ConnectLinks();
+
+ private:
+ CharacterSource aFileLoader;
+ Dyn<csi::uidl::TokenParser_Uidl>
+ pTokens;
+ csi::uidl::TokenDistributor
+ aDistributor;
+ Dyn<csi::uidl::PE_File>
+ pFileParseEnvironment;
+ ary::Repository &
+ rRepository;
+ ParserInfo & rParserInfo;
+};
+
+
+IdlParser::IdlParser( ary::Repository & io_rRepository )
+ : pRepository(&io_rRepository)
+{
+}
+
+void
+IdlParser::Run( const autodoc::FileCollector_Ifc & i_rFiles )
+{
+ Dyn<FileParsePerformers>
+ pFileParsePerformers(
+ new FileParsePerformers(*pRepository,
+ static_cast< ParserInfo& >(*this)) );
+
+ FileCollector::const_iterator iEnd = i_rFiles.End();
+ for ( FileCollector::const_iterator iter = i_rFiles.Begin();
+ iter != iEnd;
+ ++iter )
+ {
+ Cout() << (*iter) << " ..."<< Endl();
+
+ try
+ {
+ pFileParsePerformers->ParseFile(*iter);
+ }
+ catch (X_AutodocParser &)
+ {
+ /// Ignore and goon
+ TheMessages().Out_ParseError(CurFile(), CurLine());
+ pFileParsePerformers
+ = new FileParsePerformers(*pRepository,
+ static_cast< ParserInfo& >(*this));
+ }
+ catch (X_Docu & xd)
+ {
+ // Currently thic catches only wrong since tags, while since tags are
+ // transformed. In this case the program shall be terminated.
+ Cerr() << xd << Endl();
+ exit(1);
+ }
+ catch (...)
+ {
+ Cout() << "Unknown error." << Endl();
+ exit(0);
+// pFileParsePerformers = new FileParsePerformers( *pRepository );
+ }
+ }
+
+ pFileParsePerformers->ConnectLinks();
+}
+
+FileParsePerformers::FileParsePerformers( ary::Repository & io_rRepository,
+ ParserInfo & io_rParserInfo )
+ : pTokens(0),
+ aDistributor(io_rRepository, io_rParserInfo),
+ rRepository( io_rRepository ),
+ rParserInfo(io_rParserInfo)
+{
+ DYN csi::dsapi::Context_Docu *
+ dpDocuContext
+ = new csi::dsapi::Context_Docu( aDistributor.DocuTokens_Receiver() );
+ pTokens = new csi::uidl::TokenParser_Uidl( aDistributor.CodeTokens_Receiver(), *dpDocuContext );
+ pFileParseEnvironment
+ = new csi::uidl::PE_File(aDistributor,rParserInfo);
+
+ aDistributor.SetTokenProvider(*pTokens);
+ aDistributor.SetTopParseEnvironment(*pFileParseEnvironment);
+}
+
+void
+FileParsePerformers::ParseFile( const char * i_sFullPath )
+{
+ csv::File aFile(i_sFullPath);
+
+ aFile.open( csv::CFM_READ );
+ csv_assert( aFile.is_open() );
+ aFileLoader.LoadText(aFile);
+ aFile.close();
+
+ rParserInfo.Set_CurFile(i_sFullPath, true); // true = count lines
+ pTokens->Start(aFileLoader);
+ aDistributor.Reset();
+
+ do {
+ aDistributor.TradeToken();
+ } while ( NOT aFileLoader.IsFinished() );
+}
+
+void
+FileParsePerformers::ConnectLinks()
+{
+ // KORR_FUTURE ?
+// rRepository.RwGate_Idl().ConnectAdditionalLinks();
+}
+
+} // namespace autodoc
diff --git a/autodoc/source/parser_i/idoc/cx_docu2.cxx b/autodoc/source/parser_i/idoc/cx_docu2.cxx
new file mode 100644
index 000000000000..9cd8eddd0b76
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/cx_docu2.cxx
@@ -0,0 +1,267 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/cx_docu2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <../../parser/inc/tokens/parseinc.hxx>
+#include <s2_dsapi/tokrecv.hxx>
+#include <s2_dsapi/tk_html.hxx>
+#include <s2_dsapi/tk_xml.hxx>
+#include <s2_dsapi/tk_docw2.hxx>
+#include <x_parse2.hxx>
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+
+bool
+Cx_Base::PassNewToken()
+{
+ if (pNewToken)
+ {
+ rReceiver.Receive(*pNewToken.Release());
+
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Cx_Base::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Cx_Base::Handle_DocuSyntaxError( CharacterSource & io_rText )
+{
+ // KORR_FUTURE
+ // Put this into Error Log File
+
+ Cerr() << "Error: Syntax error in documentation within "
+ << "this text:\n\""
+ << io_rText.CutToken()
+ << "\"."
+ << Endl();
+ SetToken( new Tok_Word(io_rText.CurToken()) );
+}
+
+void
+Cx_EoHtml::ReadCharChain( CharacterSource & io_rText )
+{
+ if ( NULCH == jumpTo(io_rText,'>') )
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ io_rText.MoveOn();
+ SetToken(new Tok_HtmlTag(io_rText.CutToken(),bToken_IsStartOfParagraph));
+}
+
+void
+Cx_EoXmlConst::ReadCharChain( CharacterSource & io_rText )
+{
+ char c = jumpTo(io_rText,'>','*');
+ if ( NULCH == c OR '*' == c )
+ {
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken(new Tok_XmlConst(eTokenId));
+}
+
+void
+Cx_EoXmlLink_BeginTag::ReadCharChain( CharacterSource & io_rText )
+{
+ String sScope;
+ String sDim;
+
+ do {
+ char cReached = jumpTo(io_rText,'"','>','*');
+ switch (cReached)
+ {
+ case '"':
+ {
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ char c = jumpTo(io_rText,'"','*', '>');
+ if ( NULCH == c OR '*' == c OR '>' == c)
+ {
+ if ( '>' == c )
+ io_rText.MoveOn();
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+
+ const char * pAttribute = io_rText.CutToken();
+ if ( *pAttribute != '[' )
+ sScope = pAttribute;
+ else
+ sDim = pAttribute;
+
+ io_rText.MoveOn();
+ break;
+ }
+ case '>':
+ break;
+ case '*':
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ default:
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ } // end switch
+ } while ( io_rText.CurChar() != '>' );
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken( new Tok_XmlLink_BeginTag(eTokenId, sScope.c_str(), sDim.c_str()) );
+}
+
+void
+Cx_EoXmlLink_EndTag::ReadCharChain( CharacterSource & io_rText )
+{
+ char c = jumpTo(io_rText,'>','*');
+ if ( NULCH == c OR '*' == c )
+ {
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken(new Tok_XmlLink_EndTag(eTokenId));
+}
+
+void
+Cx_EoXmlFormat_BeginTag::ReadCharChain( CharacterSource & io_rText )
+{
+ String sDim;
+
+ char cReached = jumpTo(io_rText,'"','>','*');
+ switch (cReached)
+ {
+ case '"':
+ {
+ io_rText.MoveOn();
+ io_rText.CutToken();
+
+ char c = jumpTo(io_rText,'"','*','>');
+ if ( NULCH == c OR '*' == c OR '>' == c )
+ {
+ if ('>' == c )
+ io_rText.MoveOn();
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+
+ sDim = io_rText.CutToken();
+
+ c = jumpTo(io_rText,'>','*');
+ if ( NULCH == c OR '*' == c )
+ {
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+ break;
+ }
+ case '>':
+ break;
+ case '*':
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ default:
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ } // end switch
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken(new Tok_XmlFormat_BeginTag(eTokenId, sDim));
+}
+
+void
+Cx_EoXmlFormat_EndTag::ReadCharChain( CharacterSource & io_rText )
+{
+ char c = jumpTo(io_rText,'>','*');
+ if ( NULCH == c OR '*' == c )
+ {
+ Handle_DocuSyntaxError(io_rText);
+ return;
+ }
+
+ io_rText.MoveOn();
+ io_rText.CutToken();
+ SetToken(new Tok_XmlFormat_EndTag(eTokenId));
+}
+
+void
+Cx_CheckStar::ReadCharChain( CharacterSource & io_rText )
+{
+ bEndTokenFound = false;
+ if (bIsEnd)
+ {
+ char cNext = jumpOver(io_rText,'*');
+ if ( NULCH == cNext )
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ if (cNext == '/')
+ {
+ io_rText.MoveOn();
+ SetToken(new Tok_DocuEnd);
+ bEndTokenFound = true;
+ }
+ else
+ {
+ SetToken( new Tok_Word(io_rText.CutToken()) );
+ }
+ }
+ else
+ {
+ jumpToWhite(io_rText);
+ SetToken( new Tok_Word(io_rText.CutToken()) );
+ }
+}
+
+TkpContext &
+Cx_CheckStar::FollowUpContext()
+{
+ if (bEndTokenFound)
+ return *pEnd_FollowUpContext;
+ else
+ return Cx_Base::FollowUpContext();
+}
+
+} // namespace dsapi
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idoc/cx_dsapi.cxx b/autodoc/source/parser_i/idoc/cx_dsapi.cxx
new file mode 100644
index 000000000000..a4d845bb0088
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/cx_dsapi.cxx
@@ -0,0 +1,533 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/cx_dsapi.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <x_parse2.hxx>
+#include <tools/tkpchars.hxx>
+#include <s2_dsapi/tk_atag2.hxx>
+#include <s2_dsapi/tk_docw2.hxx>
+#include <s2_dsapi/tk_xml.hxx>
+#include <s2_dsapi/cx_docu2.hxx>
+#include <s2_dsapi/tokrecv.hxx>
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+const intt C_nStatusSize = 128;
+const intt C_nCppInitialNrOfStati = 400;
+
+
+const uintt nF_fin_Error = 1;
+const uintt nF_fin_Ignore = 2;
+const uintt nF_fin_Eof = 3;
+const uintt nF_fin_AnyWord = 4;
+const uintt nF_fin_AtTag = 5;
+const uintt nF_fin_EndSign = 6;
+const uintt nF_goto_EoHtml = 7;
+const uintt nF_goto_EoXmlConst = 8;
+const uintt nF_goto_EoXmlLink_BeginTag = 9;
+const uintt nF_goto_EoXmlLink_EndTag = 10;
+const uintt nF_goto_EoXmlFormat_BeginTag = 11;
+const uintt nF_goto_EoXmlFormat_EndTag = 12;
+const uintt nF_goto_CheckStar = 13;
+const uintt nF_fin_Comma = 14;
+const uintt nF_fin_White = 15;
+
+const UINT16 nTok_at_author = 100 + Tok_AtTag::author;
+const UINT16 nTok_at_see = 100 + Tok_AtTag::see;
+const UINT16 nTok_at_param = 100 + Tok_AtTag::param;
+const UINT16 nTok_at_return = 100 + Tok_AtTag::e_return;
+const UINT16 nTok_at_throws = 100 + Tok_AtTag::e_throw;
+const UINT16 nTok_at_example = 100 + Tok_AtTag::example;
+const UINT16 nTok_at_deprecated = 100 + Tok_AtTag::deprecated;
+const UINT16 nTok_at_suspicious = 100 + Tok_AtTag::suspicious;
+const UINT16 nTok_at_missing = 100 + Tok_AtTag::missing;
+const UINT16 nTok_at_incomplete = 100 + Tok_AtTag::incomplete;
+const UINT16 nTok_at_version = 100 + Tok_AtTag::version;
+const UINT16 nTok_at_guarantees = 100 + Tok_AtTag::guarantees;
+const UINT16 nTok_at_exception = 100 + Tok_AtTag::exception;
+const UINT16 nTok_at_since = 100 + Tok_AtTag::since;
+
+const UINT16 nTok_const_TRUE = 200 + Tok_XmlConst::e_true;
+const UINT16 nTok_const_FALSE = 200 + Tok_XmlConst::e_false;
+const UINT16 nTok_const_NULL = 200 + Tok_XmlConst::e_null;
+const UINT16 nTok_const_void = 200 + Tok_XmlConst::e_void;
+
+const UINT16 nTok_link_typeB = 300 + Tok_XmlLink_BeginTag::type;
+const UINT16 nTok_link_typeE = 325 + Tok_XmlLink_EndTag::type;
+const UINT16 nTok_link_memberB = 300 + Tok_XmlLink_BeginTag::member;
+const UINT16 nTok_link_membeE = 325 + Tok_XmlLink_EndTag::member;
+const UINT16 nTok_link_constB = 300 + Tok_XmlLink_BeginTag::e_const;
+const UINT16 nTok_link_constE = 325 + Tok_XmlLink_EndTag::e_const;
+
+const UINT16 nTok_format_listingB = 350 + Tok_XmlFormat_BeginTag::listing;
+const UINT16 nTok_format_listingE = 375 + Tok_XmlFormat_EndTag::listing;
+const UINT16 nTok_format_codeB = 350 + Tok_XmlFormat_BeginTag::code;
+const UINT16 nTok_format_codeE = 375 + Tok_XmlFormat_EndTag::code;
+const UINT16 nTok_format_atomB = 350 + Tok_XmlFormat_BeginTag::atom;
+const UINT16 nTok_format_atomE = 375 + Tok_XmlFormat_EndTag::atom;
+
+
+const UINT16 nTok_html_parastart = 400;
+
+const UINT16 nTok_MLDocuEnd = 501;
+const UINT16 nTok_EOL = 502;
+
+
+Context_Docu::Context_Docu( Token_Receiver & o_rReceiver )
+ : aStateMachine(C_nStatusSize, C_nCppInitialNrOfStati),
+ pReceiver(&o_rReceiver),
+ pParentContext(0),
+ pCx_EoHtml(0),
+ pCx_EoXmlConst(0),
+ pCx_EoXmlLink_BeginTag(0),
+ pCx_EoXmlLink_EndTag(0),
+ pCx_EoXmlFormat_BeginTag(0),
+ pCx_EoXmlFormat_EndTag(0),
+ pCx_CheckStar(0),
+ pNewToken(0),
+ pFollowUpContext(0),
+ bIsMultiline(false)
+{
+ pCx_EoHtml = new Cx_EoHtml(o_rReceiver, *this);
+ pCx_EoXmlConst = new Cx_EoXmlConst(o_rReceiver, *this);
+ pCx_EoXmlLink_BeginTag = new Cx_EoXmlLink_BeginTag(o_rReceiver, *this);
+ pCx_EoXmlLink_EndTag = new Cx_EoXmlLink_EndTag(o_rReceiver, *this);
+ pCx_EoXmlFormat_BeginTag = new Cx_EoXmlFormat_BeginTag(o_rReceiver, *this);
+ pCx_EoXmlFormat_EndTag = new Cx_EoXmlFormat_EndTag(o_rReceiver, *this);
+ pCx_CheckStar = new Cx_CheckStar(*pReceiver,*this);
+
+ SetupStateMachine();
+}
+
+void
+Context_Docu::SetParentContext( TkpContext & io_rParentContext,
+ const char * )
+{
+ pFollowUpContext = pParentContext = &io_rParentContext;
+ pCx_CheckStar->Set_End_FolloUpContext(io_rParentContext);
+}
+
+Context_Docu::~Context_Docu()
+{
+}
+
+void
+Context_Docu::ReadCharChain( CharacterSource & io_rText )
+{
+ csv_assert(pParentContext != 0);
+
+ pNewToken = 0;
+
+ UINT16 nTokenId = 0;
+ StmBoundsStatu2 & rBound = aStateMachine.GetCharChain(nTokenId, io_rText);
+
+ // !!!
+ // The order of the next two lines is essential, because
+ // pFollowUpContext may be changed by PerformStatusFunction() also,
+ // which then MUST override the previous assignment.
+ pFollowUpContext = rBound.FollowUpContext();
+ PerformStatusFunction(rBound.StatusFunctionNr(), nTokenId, io_rText);
+}
+
+bool
+Context_Docu::PassNewToken()
+{
+ if (pNewToken)
+ {
+ pReceiver->Receive(*pNewToken.Release());
+ return true;
+ }
+ return false;
+}
+
+TkpContext &
+Context_Docu::FollowUpContext()
+{
+ csv_assert(pFollowUpContext != 0);
+ return *pFollowUpContext;
+}
+
+void
+Context_Docu::PerformStatusFunction( uintt i_nStatusSignal,
+ UINT16 i_nTokenId,
+ CharacterSource & io_rText )
+{
+ switch (i_nStatusSignal)
+ {
+ case nF_fin_White:
+ io_rText.CutToken();
+ pNewToken = new Tok_White;
+ break;
+ case nF_fin_Error:
+ throw X_AutodocParser(X_AutodocParser::x_InvalidChar);
+ // no break because of throw
+ case nF_fin_Ignore:
+ pNewToken = 0;
+ io_rText.CutToken();
+ break;
+ case nF_fin_Eof:
+ if (bIsMultiline)
+ throw X_AutodocParser(X_AutodocParser::x_UnexpectedEOF);
+ else
+ io_rText.CutToken();
+ pNewToken = new Tok_EOF;
+ break;
+ case nF_fin_AnyWord:
+ pNewToken = new Tok_Word(io_rText.CutToken());
+ break;
+ case nF_fin_AtTag:
+ io_rText.CutToken();
+ pNewToken = new Tok_AtTag( i_nTokenId - 100 );
+ break;
+ case nF_fin_Comma:
+ io_rText.CutToken();
+ pNewToken = new Tok_Comma;
+ break;
+ case nF_fin_EndSign:
+ io_rText.CutToken();
+ switch (i_nTokenId)
+ {
+ case nTok_MLDocuEnd:
+ if (bIsMultiline)
+ {
+ pNewToken = new Tok_DocuEnd;
+ pFollowUpContext = pParentContext;
+ }
+ else
+ {
+ pNewToken = new Tok_Word(io_rText.CutToken());
+ pFollowUpContext = this;
+ }
+ break;
+ case nTok_EOL:
+ if (bIsMultiline)
+ {
+ pNewToken = new Tok_EOL;
+ pFollowUpContext = this;
+ }
+ else
+ {
+ pNewToken = new Tok_DocuEnd;
+ pFollowUpContext = pParentContext;
+ }
+ pReceiver->Increment_CurLine();
+ break;
+ default:
+ csv_assert(false);
+ }
+ break;
+ case nF_goto_EoHtml:
+ pCx_EoHtml->SetIfIsStartOfParagraph(i_nTokenId == nTok_html_parastart);
+ break;
+ case nF_goto_EoXmlConst:
+ pCx_EoXmlConst->SetTokenId(i_nTokenId - 200);
+ break;
+ case nF_goto_EoXmlLink_BeginTag:
+ pCx_EoXmlLink_BeginTag->SetTokenId(i_nTokenId - 300);
+ break;
+ case nF_goto_EoXmlLink_EndTag:
+ pCx_EoXmlLink_EndTag->SetTokenId(i_nTokenId - 325);
+ break;
+ case nF_goto_EoXmlFormat_BeginTag:
+ pCx_EoXmlFormat_BeginTag->SetTokenId(i_nTokenId - 350);
+ break;
+ case nF_goto_EoXmlFormat_EndTag:
+ pCx_EoXmlFormat_EndTag->SetTokenId(i_nTokenId - 375);
+ break;
+ case nF_goto_CheckStar:
+ pCx_CheckStar->SetIsEnd( bIsMultiline );
+ break;
+ default:
+ csv_assert(false);
+ } // end switch (i_nStatusSignal)
+}
+
+void
+Context_Docu::SetupStateMachine()
+{
+ // Besondere Array-Stati (kein Tokenabschluss oder Kontextwechsel):
+// const INT16 bas = 0; // Base-Status
+ const INT16 wht = 1; // Whitespace-overlook-Status
+ const INT16 awd = 2; // Any-Word-Read-Status
+
+ // Kontextwechsel-Stati:
+ const INT16 goto_EoHtml = 3;
+ const INT16 goto_EoXmlConst = 4;
+ const INT16 goto_EoXmlLink_BeginTag = 5;
+ const INT16 goto_EoXmlLink_EndTag = 6;
+ const INT16 goto_EoXmlFormat_BeginTag = 7;
+ const INT16 goto_EoXmlFormat_EndTag = 8;
+ const INT16 goto_CheckStar = 9;
+
+ // Tokenfinish-Stati:
+ const INT16 finError = 10;
+// const INT16 finIgnore = 11;
+ const INT16 finEof = 12;
+ const INT16 finAnyWord = 13;
+ const INT16 finAtTag = 14;
+ const INT16 finEndSign = 15;
+// const INT16 finComma = 16;
+ const INT16 finWhite = 17;
+
+ // Konstanten zur Benutzung in der Tabelle:
+ const INT16 ght = goto_EoHtml;
+/*
+ const INT16 gxc = goto_EoXmlConst;
+ const INT16 glb = goto_EoXmlLink_TagBegin;
+ const INT16 gle = goto_EoXmlLink_TagEnd;
+ const INT16 gfb = goto_EoXmlFormat_TagBegin;
+ const INT16 gfe = goto_EoXmlFormat_TagEnd;
+*/
+ const INT16 err = finError;
+ const INT16 faw = finAnyWord;
+// const INT16 fig = finIgnore;
+// const INT16 fes = finEndSign;
+ const INT16 fof = finEof;
+// const INT16 fat = finAtTag;
+ const INT16 fwh = finWhite;
+
+ /// The '0's will be replaced by calls of AddToken().
+
+ const INT16 A_nTopStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht, 0,wht,wht, 0,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+ wht,awd,awd,awd,awd,awd,awd,awd,awd,awd, 0,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, 0,awd,awd,awd, // ... 63
+ 0,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nWhitespaceStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {fof,err,err,err,err,err,err,err,err,wht,fwh,wht,wht,fwh,err,err,
+ err,err,err,err,err,err,err,err,err,err,fof,err,err,err,err,err, // ... 31
+ wht,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh, // ... 63
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh, // ... 95
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,
+ fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh,fwh // ... 127
+ };
+
+ const INT16 A_nWordStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+ err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+ faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd, // ... 63
+ faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nAtTagDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {faw,err,err,err,err,err,err,err,err,faw,faw,faw,faw,faw,err,err,
+ err,err,err,err,err,err,err,err,err,err,faw,err,err,err,err,err, // ... 31
+ faw,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,faw,awd,faw,awd,awd,awd, // ... 63
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd, // ... 95
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,
+ awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd,awd // ... 127
+ };
+
+ const INT16 A_nHtmlDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {ght,err,err,err,err,err,err,err,err,ght,ght,ght,ght,ght,err,err,
+ err,err,err,err,err,err,err,err,err,err,ght,err,err,err,err,err, // ... 31
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght, // ... 63
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght, // ... 95
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,
+ ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght,ght // ... 127
+ };
+
+ const INT16 A_nPunctDefStatus[C_nStatusSize] =
+ // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+ {err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 16 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 48 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err, // 80 ...
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,
+ err,err,err,err,err,err,err,err,err,err,err,err,err,err,err,err // 112 ...
+ };
+
+ DYN StmArrayStatu2 * dpStatusTop
+ = new StmArrayStatu2( C_nStatusSize, A_nTopStatus, 0, true);
+ DYN StmArrayStatu2 * dpStatusWhite
+ = new StmArrayStatu2( C_nStatusSize, A_nWhitespaceStatus, 0, true);
+ DYN StmArrayStatu2 * dpStatusWord
+ = new StmArrayStatu2( C_nStatusSize, A_nWordStatus, 0, true);
+
+ DYN StmBoundsStatu2 * dpBst_goto_EoHtml
+ = new StmBoundsStatu2( *this, *pCx_EoHtml, nF_goto_EoHtml, true );
+ DYN StmBoundsStatu2 * dpBst_goto_EoXmlConst
+ = new StmBoundsStatu2( *this, *pCx_EoXmlConst, nF_goto_EoXmlConst, true );
+ DYN StmBoundsStatu2 * dpBst_goto_EoXmlLink_BeginTag
+ = new StmBoundsStatu2( *this, *pCx_EoXmlLink_BeginTag, nF_goto_EoXmlLink_BeginTag, true );
+ DYN StmBoundsStatu2 * dpBst_goto_EoXmlLink_EndTag
+ = new StmBoundsStatu2( *this, *pCx_EoXmlLink_EndTag, nF_goto_EoXmlLink_EndTag, true );
+ DYN StmBoundsStatu2 * dpBst_goto_EoXmlFormat_BeginTag
+ = new StmBoundsStatu2( *this, *pCx_EoXmlFormat_BeginTag, nF_goto_EoXmlFormat_BeginTag, true );
+ DYN StmBoundsStatu2 * dpBst_goto_EoXmlFormat_EndTag
+ = new StmBoundsStatu2( *this, *pCx_EoXmlFormat_EndTag, nF_goto_EoXmlFormat_EndTag, true );
+ DYN StmBoundsStatu2 * dpBst_goto_CheckStar
+ = new StmBoundsStatu2( *this, *pCx_CheckStar, nF_goto_CheckStar, true );
+
+
+ DYN StmBoundsStatu2 * dpBst_finError
+ = new StmBoundsStatu2( *this, TkpContext_Null2_(), nF_fin_Error, true );
+ DYN StmBoundsStatu2 * dpBst_finIgnore
+ = new StmBoundsStatu2( *this, *this, nF_fin_Ignore, true);
+ DYN StmBoundsStatu2 * dpBst_finEof
+ = new StmBoundsStatu2( *this, TkpContext_Null2_(), nF_fin_Eof, false);
+ DYN StmBoundsStatu2 * dpBst_finAnyWord
+ = new StmBoundsStatu2( *this, *this, nF_fin_AnyWord, true);
+ DYN StmBoundsStatu2 * dpBst_finAtTag
+ = new StmBoundsStatu2( *this, *this, nF_fin_AtTag, false);
+ DYN StmBoundsStatu2 * dpBst_finEndSign
+ = new StmBoundsStatu2( *this, *pParentContext, nF_fin_EndSign, false);
+ DYN StmBoundsStatu2 * dpBst_fin_Comma
+ = new StmBoundsStatu2( *this, *this, nF_fin_Comma, false );
+ DYN StmBoundsStatu2 * dpBst_finWhite
+ = new StmBoundsStatu2( *this, *this, nF_fin_White, false);
+
+
+ // dpMain aufbauen:
+ aStateMachine.AddStatus(dpStatusTop);
+ aStateMachine.AddStatus(dpStatusWhite);
+ aStateMachine.AddStatus(dpStatusWord);
+
+ aStateMachine.AddStatus(dpBst_goto_EoHtml);
+ aStateMachine.AddStatus(dpBst_goto_EoXmlConst);
+ aStateMachine.AddStatus(dpBst_goto_EoXmlLink_BeginTag);
+ aStateMachine.AddStatus(dpBst_goto_EoXmlLink_EndTag);
+ aStateMachine.AddStatus(dpBst_goto_EoXmlFormat_BeginTag);
+ aStateMachine.AddStatus(dpBst_goto_EoXmlFormat_EndTag);
+ aStateMachine.AddStatus(dpBst_goto_CheckStar);
+
+ aStateMachine.AddStatus(dpBst_finError);
+ aStateMachine.AddStatus(dpBst_finIgnore);
+ aStateMachine.AddStatus(dpBst_finEof);
+ aStateMachine.AddStatus(dpBst_finAnyWord);
+ aStateMachine.AddStatus(dpBst_finAtTag);
+ aStateMachine.AddStatus(dpBst_finEndSign);
+ aStateMachine.AddStatus(dpBst_fin_Comma);
+ aStateMachine.AddStatus(dpBst_finWhite);
+
+
+ aStateMachine.AddToken( "@author", nTok_at_author, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@param", nTok_at_param, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@throws", nTok_at_throws, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@see", nTok_at_see, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@since", nTok_at_since, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@example", nTok_at_example, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@return", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@returns", nTok_at_return, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@deprecated",
+ nTok_at_deprecated, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@suspicious",
+ nTok_at_suspicious, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@missing", nTok_at_missing, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@incomplete",
+ nTok_at_incomplete, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@version", nTok_at_version, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@guarantees",
+ nTok_at_guarantees, A_nAtTagDefStatus, finAtTag );
+ aStateMachine.AddToken( "@exception",
+ nTok_at_exception, A_nAtTagDefStatus, finAtTag );
+
+ aStateMachine.AddToken( "<", 0, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "*", 0, A_nPunctDefStatus, goto_CheckStar );
+// aStateMachine.AddToken( ",", 0, A_nPunctDefStatus, finComma );
+
+ aStateMachine.AddToken( "<type", nTok_link_typeB, A_nHtmlDefStatus, goto_EoXmlLink_BeginTag );
+ aStateMachine.AddToken( "</type", nTok_link_typeE, A_nHtmlDefStatus, goto_EoXmlLink_EndTag );
+ aStateMachine.AddToken( "<member", nTok_link_memberB, A_nHtmlDefStatus, goto_EoXmlLink_BeginTag );
+ aStateMachine.AddToken( "</member", nTok_link_membeE, A_nHtmlDefStatus, goto_EoXmlLink_EndTag );
+ aStateMachine.AddToken( "<const", nTok_link_constB, A_nHtmlDefStatus, goto_EoXmlLink_BeginTag );
+ aStateMachine.AddToken( "</const", nTok_link_constE, A_nHtmlDefStatus, goto_EoXmlLink_EndTag );
+
+ aStateMachine.AddToken( "<listing", nTok_format_listingB,A_nHtmlDefStatus, goto_EoXmlFormat_BeginTag );
+ aStateMachine.AddToken( "</listing",nTok_format_listingE,A_nHtmlDefStatus, goto_EoXmlFormat_EndTag );
+ aStateMachine.AddToken( "<code", nTok_format_codeB, A_nHtmlDefStatus, goto_EoXmlFormat_BeginTag );
+ aStateMachine.AddToken( "</code", nTok_format_codeE, A_nHtmlDefStatus, goto_EoXmlFormat_EndTag );
+ aStateMachine.AddToken( "<atom", nTok_format_atomB, A_nHtmlDefStatus, goto_EoXmlFormat_BeginTag );
+ aStateMachine.AddToken( "</atom", nTok_format_atomE, A_nHtmlDefStatus, goto_EoXmlFormat_EndTag );
+
+ aStateMachine.AddToken( "<TRUE/", nTok_const_TRUE, A_nHtmlDefStatus, goto_EoXmlConst );
+ aStateMachine.AddToken( "<true/", nTok_const_TRUE, A_nHtmlDefStatus, goto_EoXmlConst );
+ aStateMachine.AddToken( "<FALSE/", nTok_const_FALSE, A_nHtmlDefStatus, goto_EoXmlConst );
+ aStateMachine.AddToken( "<false/", nTok_const_FALSE, A_nHtmlDefStatus, goto_EoXmlConst );
+ aStateMachine.AddToken( "<NULL/", nTok_const_NULL, A_nHtmlDefStatus, goto_EoXmlConst );
+ aStateMachine.AddToken( "<void/", nTok_const_void, A_nHtmlDefStatus, goto_EoXmlConst );
+
+ aStateMachine.AddToken( "<p", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<pre", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<dl", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<ul", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<ol", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<table", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<P", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<PRE", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<DL", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<UL", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<OL", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+ aStateMachine.AddToken( "<TABLE", nTok_html_parastart, A_nHtmlDefStatus, goto_EoHtml );
+
+ aStateMachine.AddToken( "\r\n", nTok_EOL, A_nPunctDefStatus, finEndSign );
+ aStateMachine.AddToken( "\n", nTok_EOL, A_nPunctDefStatus, finEndSign );
+ aStateMachine.AddToken( "\r", nTok_EOL, A_nPunctDefStatus, finEndSign );
+};
+
+void
+Context_Docu::SetMode_IsMultiLine( bool i_bTrue )
+{
+ bIsMultiline = i_bTrue;
+}
+
+
+} // namespace dsapi
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idoc/docu_pe2.cxx b/autodoc/source/parser_i/idoc/docu_pe2.cxx
new file mode 100644
index 000000000000..084dbbf0660c
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/docu_pe2.cxx
@@ -0,0 +1,606 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/docu_pe2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <ary/doc/d_oldidldocu.hxx>
+#include <ary_i/d_token.hxx>
+#include <parser/parserinfo.hxx>
+#include <adc_cl.hxx>
+#include <adc_msg.hxx>
+#include <../parser/inc/x_docu.hxx>
+#include <s2_dsapi/dsapitok.hxx>
+#include <s2_dsapi/tk_atag2.hxx>
+#include <s2_dsapi/tk_html.hxx>
+#include <s2_dsapi/tk_docw2.hxx>
+#include <s2_dsapi/tk_xml.hxx>
+
+
+#ifdef UNX
+#define strnicmp strncasecmp
+#endif
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+const char * AtTagTitle(
+ const Tok_AtTag & i_rToken );
+
+
+SapiDocu_PE::SapiDocu_PE(ParserInfo & io_rPositionInfo)
+ : pDocu(0),
+ eState(e_none),
+ pPositionInfo(&io_rPositionInfo),
+ fCurTokenAddFunction(&SapiDocu_PE::AddDocuToken2Void),
+ pCurAtTag(0),
+ sCurDimAttribute(),
+ sCurAtSeeType_byXML(200)
+{
+}
+
+SapiDocu_PE::~SapiDocu_PE()
+{
+}
+
+void
+SapiDocu_PE::ProcessToken( DYN csi::dsapi::Token & let_drToken )
+{
+ if (IsComplete())
+ {
+ pDocu = 0;
+ eState = e_none;
+ }
+
+ if ( eState == e_none )
+ {
+ pDocu = new ary::doc::OldIdlDocu;
+ eState = st_short;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2Short;
+ }
+
+ csv_assert(pDocu);
+
+ let_drToken.Trigger(*this);
+ delete &let_drToken;
+}
+
+void
+SapiDocu_PE::Process_AtTag( const Tok_AtTag & i_rToken )
+{
+ if (NOT pCurAtTag)
+ {
+ eState = st_attags;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
+ }
+ else
+ {
+ csv_assert(eState == st_attags);
+ pDocu->AddAtTag(*pCurAtTag.Release());
+ }
+
+ if (i_rToken.Id() == Tok_AtTag::param)
+ {
+ pCurAtTag = new DT_ParameterAtTag;
+ fCurTokenAddFunction = &SapiDocu_PE::SetCurParameterAtTagName;
+ }
+ else if (i_rToken.Id() == Tok_AtTag::see)
+ {
+ pCurAtTag = new DT_SeeAlsoAtTag;
+ fCurTokenAddFunction = &SapiDocu_PE::SetCurSeeAlsoAtTagLinkText;
+ }
+ else if (i_rToken.Id() == Tok_AtTag::deprecated)
+ {
+ pDocu->SetDeprecated();
+ pCurAtTag = new DT_StdAtTag(""); // Dummy that will not be used.
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2Deprecated;
+ }
+ else if (i_rToken.Id() == Tok_AtTag::since)
+ {
+ pCurAtTag = new DT_SinceAtTag;
+ fCurTokenAddFunction = &SapiDocu_PE::SetCurSinceAtTagVersion;
+ }
+ else
+ {
+ pCurAtTag = new DT_StdAtTag( AtTagTitle(i_rToken) );
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
+ }
+}
+
+void
+SapiDocu_PE::Process_HtmlTag( const Tok_HtmlTag & i_rToken )
+{
+ if (eState == st_short AND i_rToken.IsParagraphStarter())
+ {
+ eState = st_description;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2Description;
+ }
+
+ // Workaround special for some errors in API docu:
+ if ( strnicmp("<true",i_rToken.Text(),5 ) == 0 )
+ {
+ if ( strcmp("<TRUE/>",i_rToken.Text()) != 0 )
+ TheMessages().Out_InvalidConstSymbol( i_rToken.Text(),
+ pPositionInfo->CurFile(),
+ pPositionInfo->CurLine() );
+ (this->*fCurTokenAddFunction)( *new DT_TextToken("<b>true</b>") );
+ return;
+ }
+ else if ( strnicmp("<false",i_rToken.Text(),6 ) == 0 )
+ {
+ if ( strcmp("<FALSE/>",i_rToken.Text()) != 0 )
+ TheMessages().Out_InvalidConstSymbol( i_rToken.Text(),
+ pPositionInfo->CurFile(),
+ pPositionInfo->CurLine() );
+ (this->*fCurTokenAddFunction)( *new DT_TextToken("<b>false</b>") );
+ return;
+ }
+ else if ( strnicmp("<NULL",i_rToken.Text(),5 ) == 0 )
+ {
+ if ( strcmp("<NULL/>",i_rToken.Text()) != 0 )
+ TheMessages().Out_InvalidConstSymbol( i_rToken.Text(),
+ pPositionInfo->CurFile(),
+ pPositionInfo->CurLine() );
+ (this->*fCurTokenAddFunction)( *new DT_TextToken("<b>null</b>") );
+ return;
+ }
+ else if ( strnicmp("<void",i_rToken.Text(),5 ) == 0 )
+ {
+ if ( strcmp("<void/>",i_rToken.Text()) != 0 )
+ TheMessages().Out_InvalidConstSymbol( i_rToken.Text(),
+ pPositionInfo->CurFile(),
+ pPositionInfo->CurLine() );
+ (this->*fCurTokenAddFunction)( *new DT_TextToken("<b>void</b>") );
+ return;
+ }
+
+ (this->*fCurTokenAddFunction)( *new DT_Style(i_rToken.Text(),false) );
+}
+
+void
+SapiDocu_PE::Process_XmlConst( const Tok_XmlConst & i_rToken )
+{
+ (this->*fCurTokenAddFunction)(*new DT_MupConst(i_rToken.Text()));
+}
+
+void
+SapiDocu_PE::Process_XmlLink_BeginTag( const Tok_XmlLink_BeginTag & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case Tok_XmlLink_Tag::e_const:
+ (this->*fCurTokenAddFunction)(*new DT_Style("<b>",false));
+ break;
+ case Tok_XmlLink_Tag::member:
+ (this->*fCurTokenAddFunction)(*new DT_MupMember(i_rToken.Scope()));
+ break;
+ case Tok_XmlLink_Tag::type:
+ (this->*fCurTokenAddFunction)(*new DT_MupType(i_rToken.Scope()));
+ break;
+ default:
+ // Do nothing.
+ ;
+ }
+
+ if ( i_rToken.Dim().length() > 0 )
+ sCurDimAttribute = i_rToken.Dim();
+ else
+ sCurDimAttribute.clear();
+}
+
+void
+SapiDocu_PE::Process_XmlLink_EndTag( const Tok_XmlLink_EndTag & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case Tok_XmlLink_Tag::e_const:
+ (this->*fCurTokenAddFunction)(*new DT_Style("</b>",false));
+ break;
+ case Tok_XmlLink_Tag::member:
+ (this->*fCurTokenAddFunction)(*new DT_MupMember(true));
+ break;
+ case Tok_XmlLink_Tag::type:
+ (this->*fCurTokenAddFunction)(*new DT_MupType(true));
+ break;
+ default:
+ // Do nothing.
+ ;
+ }
+ if ( sCurDimAttribute.length() > 0 )
+ {
+ (this->*fCurTokenAddFunction)( *new DT_TextToken(sCurDimAttribute.c_str()) );
+ sCurDimAttribute.clear();
+ }
+}
+
+void
+SapiDocu_PE::Process_XmlFormat_BeginTag( const Tok_XmlFormat_BeginTag & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case Tok_XmlFormat_Tag::code:
+ (this->*fCurTokenAddFunction)(*new DT_Style("<code>",false));
+ break;
+ case Tok_XmlFormat_Tag::listing:
+ (this->*fCurTokenAddFunction)(*new DT_Style("<pre>",true));
+ break;
+ case Tok_XmlFormat_Tag::atom:
+ (this->*fCurTokenAddFunction)(*new DT_Style("<code>",true));
+ break;
+ default:
+ // Do nothing.
+ ;
+ }
+ if ( i_rToken.Dim().length() > 0 )
+ sCurDimAttribute = i_rToken.Dim();
+ else
+ sCurDimAttribute.clear();
+}
+
+void
+SapiDocu_PE::Process_XmlFormat_EndTag( const Tok_XmlFormat_EndTag & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case Tok_XmlFormat_Tag::code:
+ (this->*fCurTokenAddFunction)(*new DT_Style("</code>",false));
+ break;
+ case Tok_XmlFormat_Tag::listing:
+ (this->*fCurTokenAddFunction)(*new DT_Style("</pre>",true));
+ break;
+ case Tok_XmlFormat_Tag::atom:
+ (this->*fCurTokenAddFunction)(*new DT_Style("</code>",true));
+ break;
+ default:
+ // Do nothing.
+ ;
+ }
+ if ( sCurDimAttribute.length() > 0 )
+ {
+ (this->*fCurTokenAddFunction)( *new DT_TextToken(sCurDimAttribute.c_str()) );
+ sCurDimAttribute.clear();
+ }
+}
+
+void
+SapiDocu_PE::Process_Word( const Tok_Word & i_rToken )
+{
+ (this->*fCurTokenAddFunction)(*new DT_TextToken(i_rToken.Text()));
+}
+
+void
+SapiDocu_PE::Process_Comma()
+{
+ csv_assert(1==7);
+// (this->*fCurTokenAddFunction)(*new DT_Comma(i_rToken.Text()));
+}
+
+void
+SapiDocu_PE::Process_DocuEnd()
+{
+ eState = st_complete;
+ if (pCurAtTag)
+ pDocu->AddAtTag(*pCurAtTag.Release());
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2Void;
+}
+
+void
+SapiDocu_PE::Process_EOL()
+{
+ (this->*fCurTokenAddFunction)(*new DT_EOL);
+}
+
+void
+SapiDocu_PE::Process_White()
+{
+ (this->*fCurTokenAddFunction)(*new DT_White);
+}
+
+DYN ary::doc::OldIdlDocu *
+SapiDocu_PE::ReleaseJustParsedDocu()
+{
+ if (IsComplete())
+ {
+ eState = e_none;
+ return pDocu.Release();
+ }
+ return 0;
+}
+
+
+bool
+SapiDocu_PE::IsComplete() const
+{
+ return eState == st_complete;
+}
+
+void
+SapiDocu_PE::AddDocuToken2Void( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ delete &let_drNewToken;
+}
+
+void
+SapiDocu_PE::AddDocuToken2Short( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pDocu);
+ pDocu->AddToken2Short(let_drNewToken);
+}
+
+void
+SapiDocu_PE::AddDocuToken2Description( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pDocu);
+ pDocu->AddToken2Description(let_drNewToken);
+}
+
+void
+SapiDocu_PE::AddDocuToken2Deprecated( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pDocu);
+ pDocu->AddToken2DeprecatedText(let_drNewToken);
+}
+
+void
+SapiDocu_PE::AddDocuToken2CurAtTag( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+ pCurAtTag->AddToken(let_drNewToken);
+}
+
+void
+SapiDocu_PE::SetCurParameterAtTagName( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ if (let_drNewToken.IsWhiteOnly())
+ {
+ delete &let_drNewToken;
+ return;
+ }
+
+ csv_assert(pCurAtTag);
+ DT_TextToken * dpText = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+ if (dpText != 0)
+ pCurAtTag->SetName(dpText->GetText());
+ else
+ pCurAtTag->SetName("parameter ?");
+ delete &let_drNewToken;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
+}
+
+void
+SapiDocu_PE::SetCurSeeAlsoAtTagLinkText( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+
+ if (let_drNewToken.IsWhiteOnly())
+ {
+ delete &let_drNewToken;
+ return;
+ }
+
+ DT_TextToken * pText = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+ if (pText != 0)
+ pCurAtTag->SetName(pText->GetText());
+ else
+ {
+ DT_MupType *
+ pTypeBegin = dynamic_cast< DT_MupType* >(&let_drNewToken);
+ DT_MupMember *
+ pMemberBegin = dynamic_cast< DT_MupMember* >(&let_drNewToken);
+ if (pTypeBegin != 0 OR pMemberBegin != 0)
+ {
+ sCurAtSeeType_byXML.reset();
+
+ sCurAtSeeType_byXML
+ << ( pTypeBegin != 0
+ ? pTypeBegin->Scope()
+ : pMemberBegin->Scope() );
+
+ if (sCurAtSeeType_byXML.tellp() > 0)
+ {
+ sCurAtSeeType_byXML
+ << "::";
+ }
+ delete &let_drNewToken;
+ fCurTokenAddFunction = &SapiDocu_PE::SetCurSeeAlsoAtTagLinkText_2;
+ return;
+ }
+ else
+ {
+ pCurAtTag->SetName("? (no identifier found)");
+ }
+ }
+ delete &let_drNewToken;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
+}
+
+void
+SapiDocu_PE::SetCurSeeAlsoAtTagLinkText_2( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+
+ if (let_drNewToken.IsWhiteOnly())
+ {
+ delete &let_drNewToken;
+ return;
+ }
+
+ DT_TextToken *
+ pText = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+ if (pText != 0)
+ {
+ sCurAtSeeType_byXML
+ << pText->GetText();
+ pCurAtTag->SetName(sCurAtSeeType_byXML.c_str());
+ }
+ else
+ {
+ pCurAtTag->SetName("? (no identifier found)");
+ }
+ sCurAtSeeType_byXML.reset();
+ delete &let_drNewToken;
+ fCurTokenAddFunction = &SapiDocu_PE::SetCurSeeAlsoAtTagLinkText_3;
+}
+
+void
+SapiDocu_PE::SetCurSeeAlsoAtTagLinkText_3( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+
+ if (let_drNewToken.IsWhiteOnly())
+ {
+ delete &let_drNewToken;
+ return;
+ }
+
+ /// Could emit warning, but don't because this parser is obsolete.
+// Tok_XmlLink_BeginTag *
+// pLinkEnd = dynamic_cast< Tok_XmlLink_EndTag* >(&let_drNewToken);
+// if (pLinkEnd == 0)
+// {
+// warn_aboutMissingClosingTag();
+// }
+
+ delete &let_drNewToken;
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2CurAtTag;
+}
+
+
+
+void
+SapiDocu_PE::SetCurSinceAtTagVersion( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+
+ DT_TextToken * pToken = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+ if (pToken == 0)
+ {
+ delete &let_drNewToken;
+ return;
+ }
+
+ const String
+ sVersion(pToken->GetText());
+ const char
+ cFirst = *sVersion.begin();
+ const char
+ cCiphersend = '9' + 1;
+ const autodoc::CommandLine &
+ rCommandLine = autodoc::CommandLine::Get_();
+
+
+ if ( rCommandLine.DoesTransform_SinceTag())
+ {
+ // The @since version number shall be interpreted,
+
+ if ( NOT csv::in_range('0', cFirst, cCiphersend) )
+ {
+ // But this is a non-number-part, so we wait for
+ // the next one.
+ delete &let_drNewToken;
+ return;
+ }
+ else if (rCommandLine.DisplayOf_SinceTagValue(sVersion).empty())
+ {
+ // This is the numbered part, but we don't know it.
+ delete &let_drNewToken;
+
+ StreamLock
+ sl(200);
+ sl()
+ << "Since-value '"
+ << sVersion
+ << "' not found in translation table.";
+ throw X_Docu("since", sl().c_str());
+ }
+ }
+
+ // Either since tags are not specially interpreted, or
+ // we got a known one.
+ pCurAtTag->AddToken(let_drNewToken);
+ fCurTokenAddFunction = &SapiDocu_PE::AddDocuToken2SinceAtTag;
+}
+
+void
+SapiDocu_PE::AddDocuToken2SinceAtTag( DYN ary::inf::DocuToken & let_drNewToken )
+{
+ csv_assert(pCurAtTag);
+ String &
+ sValue = pCurAtTag->Access_Text().Access_TextOfFirstToken();
+ StreamLock
+ sHelp(1000);
+
+ DT_TextToken *
+ pToken = dynamic_cast< DT_TextToken* >(&let_drNewToken);
+ if (pToken != 0)
+ {
+ sValue = sHelp() << sValue << pToken->GetText() << c_str;
+ }
+ else if (dynamic_cast< DT_White* >(&let_drNewToken) != 0)
+ {
+ sValue = sHelp() << sValue << " " << c_str;
+ }
+ delete &let_drNewToken;
+}
+
+const char *
+AtTagTitle( const Tok_AtTag & i_rToken )
+{
+ switch (i_rToken.Id())
+ {
+ case Tok_AtTag::author: return "";
+ case Tok_AtTag::see: return "See also";
+ case Tok_AtTag::param: return "Parameters";
+ case Tok_AtTag::e_return: return "Returns";
+ case Tok_AtTag::e_throw: return "Throws";
+ case Tok_AtTag::example: return "Example";
+ case Tok_AtTag::deprecated: return "Deprecated";
+ case Tok_AtTag::suspicious: return "";
+ case Tok_AtTag::missing: return "";
+ case Tok_AtTag::incomplete: return "";
+ case Tok_AtTag::version: return "";
+ case Tok_AtTag::guarantees: return "Guarantees";
+ case Tok_AtTag::exception: return "Exception";
+ case Tok_AtTag::since: return "Since version";
+ default:
+ // See below.
+ ;
+ }
+ return i_rToken.Text();
+}
+
+
+
+} // namespace dsapi
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idoc/makefile.mk b/autodoc/source/parser_i/idoc/makefile.mk
new file mode 100644
index 000000000000..c4e760bd2973
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/makefile.mk
@@ -0,0 +1,62 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=autodoc
+TARGET=parser2_s2_dsapi
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/cx_docu2.obj \
+ $(OBJ)$/cx_dsapi.obj \
+ $(OBJ)$/docu_pe2.obj \
+ $(OBJ)$/tk_atag2.obj \
+ $(OBJ)$/tk_docw2.obj \
+ $(OBJ)$/tk_html.obj \
+ $(OBJ)$/tk_xml.obj
+
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser_i/idoc/tk_atag2.cxx b/autodoc/source/parser_i/idoc/tk_atag2.cxx
new file mode 100644
index 000000000000..5454e31ad839
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/tk_atag2.cxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/tk_atag2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <s2_dsapi/tokintpr.hxx>
+
+
+
+using csi::dsapi::Tok_AtTag;
+
+lux::EnumValueMap G_aTokAtTag_EV_TokenId_Values;
+Tok_AtTag::EV_TokenId ev_none2(Tok_AtTag::e_none,"");
+Tok_AtTag::EV_TokenId ev_author(Tok_AtTag::author,"@author");
+Tok_AtTag::EV_TokenId ev_see(Tok_AtTag::see,"@see");
+Tok_AtTag::EV_TokenId ev_param(Tok_AtTag::param,"@param");
+Tok_AtTag::EV_TokenId ev_e_return(Tok_AtTag::e_return,"@return");
+Tok_AtTag::EV_TokenId ev_e_throw(Tok_AtTag::e_throw,"@throws");
+Tok_AtTag::EV_TokenId ev_example(Tok_AtTag::example,"@example");
+Tok_AtTag::EV_TokenId ev_deprecated(Tok_AtTag::deprecated,"@deprecated");
+Tok_AtTag::EV_TokenId ev_suspicious(Tok_AtTag::suspicious,"@suspicious");
+Tok_AtTag::EV_TokenId ev_missing(Tok_AtTag::missing,"@missing");
+Tok_AtTag::EV_TokenId ev_incomplete(Tok_AtTag::incomplete,"@incomplete");
+Tok_AtTag::EV_TokenId ev_version(Tok_AtTag::version,"@version");
+Tok_AtTag::EV_TokenId ev_guarantees(Tok_AtTag::guarantees,"@guarantees");
+Tok_AtTag::EV_TokenId ev_exception(Tok_AtTag::exception,"@exception");
+Tok_AtTag::EV_TokenId ev_since(Tok_AtTag::since,"@since");
+
+
+namespace lux
+{
+template<> EnumValueMap &
+Tok_AtTag::EV_TokenId::Values_() { return G_aTokAtTag_EV_TokenId_Values; }
+}
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+void
+Tok_AtTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_AtTag(*this);
+}
+
+const char *
+Tok_AtTag::Text() const
+{
+ return eTag.Text();
+}
+
+} // namespace dsapi
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idoc/tk_docw2.cxx b/autodoc/source/parser_i/idoc/tk_docw2.cxx
new file mode 100644
index 000000000000..56e0a935ac38
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/tk_docw2.cxx
@@ -0,0 +1,119 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/tk_docw2.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <s2_dsapi/tokintpr.hxx>
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+void
+Tok_Word::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Word(*this);
+}
+
+const char *
+Tok_Word::Text() const
+{
+ return sText;
+}
+
+void
+Tok_Comma::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_Comma();
+}
+
+const char *
+Tok_Comma::Text() const
+{
+ return ",";
+}
+
+void
+Tok_DocuEnd::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_DocuEnd();
+}
+
+const char *
+Tok_DocuEnd::Text() const
+{
+ return "*/";
+}
+
+void
+Tok_EOL::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_EOL();
+}
+
+const char *
+Tok_EOL::Text() const
+{
+ return "\r\n";
+}
+
+void
+Tok_EOF::Trigger( TokenInterpreter & ) const
+{
+ csv_assert(false);
+}
+
+const char *
+Tok_EOF::Text() const
+{
+ return "";
+}
+
+void
+Tok_White::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_White();
+}
+
+const char *
+Tok_White::Text() const
+{
+ return " ";
+}
+
+
+
+
+} // namespace dsapi
+} // namespace csi
+
diff --git a/autodoc/source/parser_i/idoc/tk_html.cxx b/autodoc/source/parser_i/idoc/tk_html.cxx
new file mode 100644
index 000000000000..bfb44a3789e8
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/tk_html.cxx
@@ -0,0 +1,58 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/tk_html.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <s2_dsapi/tokintpr.hxx>
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+void
+Tok_HtmlTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_HtmlTag(*this);
+}
+
+const char *
+Tok_HtmlTag::Text() const
+{
+ return sTag;
+}
+
+
+} // namespace dsapi
+} // namespace csi
+
+
diff --git a/autodoc/source/parser_i/idoc/tk_xml.cxx b/autodoc/source/parser_i/idoc/tk_xml.cxx
new file mode 100644
index 000000000000..9626fdb330ed
--- /dev/null
+++ b/autodoc/source/parser_i/idoc/tk_xml.cxx
@@ -0,0 +1,174 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <s2_dsapi/tk_xml.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <s2_dsapi/tokintpr.hxx>
+
+using csi::dsapi::Tok_XmlConst;
+using csi::dsapi::Tok_XmlLink_Tag;
+using csi::dsapi::Tok_XmlFormat_Tag;
+
+
+lux::EnumValueMap G_aTok_XmlConst_EV_TokenId_Values;
+Tok_XmlConst::EV_TokenId ev_consts_none(Tok_XmlConst::e_none,"");
+Tok_XmlConst::EV_TokenId ev_e_true(Tok_XmlConst::e_true,"true");
+Tok_XmlConst::EV_TokenId ev_e_false(Tok_XmlConst::e_false,"false");
+Tok_XmlConst::EV_TokenId ev_e_null(Tok_XmlConst::e_null,"NULL");
+Tok_XmlConst::EV_TokenId ev_e_void(Tok_XmlConst::e_void,"void");
+
+lux::EnumValueMap G_aTok_XmlLink_Tag_EV_TokenId_Values;
+Tok_XmlLink_Tag::EV_TokenId ev_linktags_none(Tok_XmlLink_Tag::e_none,"");
+Tok_XmlLink_Tag::EV_TokenId ev_e_const(Tok_XmlLink_Tag::e_const,"const");
+Tok_XmlLink_Tag::EV_TokenId ev_member(Tok_XmlLink_Tag::member,"member");
+Tok_XmlLink_Tag::EV_TokenId ev_type(Tok_XmlLink_Tag::type,"type");
+
+lux::EnumValueMap G_aTok_XmlFormat_Tag_EV_TokenId_Values;
+Tok_XmlFormat_Tag::EV_TokenId ev_formattags_none(Tok_XmlFormat_Tag::e_none,"");
+Tok_XmlFormat_Tag::EV_TokenId ev_code(Tok_XmlFormat_Tag::code,"code");
+Tok_XmlFormat_Tag::EV_TokenId ev_listing(Tok_XmlFormat_Tag::listing,"listing");
+Tok_XmlFormat_Tag::EV_TokenId ev_atom(Tok_XmlFormat_Tag::atom,"code");
+
+
+namespace lux
+{
+
+template<> EnumValueMap &
+Tok_XmlConst::EV_TokenId::Values_() { return G_aTok_XmlConst_EV_TokenId_Values; }
+template<> EnumValueMap &
+Tok_XmlLink_Tag::EV_TokenId::Values_() { return G_aTok_XmlLink_Tag_EV_TokenId_Values; }
+template<> EnumValueMap &
+Tok_XmlFormat_Tag::EV_TokenId::Values_() { return G_aTok_XmlFormat_Tag_EV_TokenId_Values; }
+
+} // namespace lux
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+void
+Tok_XmlConst::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_XmlConst(*this);
+}
+
+const char *
+Tok_XmlConst::Text() const
+{
+ return eTag.Text();
+}
+
+void
+Tok_XmlLink_BeginTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_XmlLink_BeginTag(*this);
+}
+
+const char *
+Tok_XmlLink_BeginTag::Text() const
+{
+ static StreamStr ret(120);
+ ret.seekp(0);
+ if (sScope.length() > 0)
+ {
+ ret << "<"
+ << eTag.Text()
+ << " scope=\""
+ << sScope
+ << "\">";
+ }
+ else
+ {
+ ret << "<"
+ << eTag.Text()
+ << ">";
+ }
+ return ret.c_str();
+}
+
+void
+Tok_XmlLink_EndTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_XmlLink_EndTag(*this);
+}
+
+const char *
+Tok_XmlLink_EndTag::Text() const
+{
+ static StreamStr ret(120);
+ ret.seekp(0);
+ ret << "</"
+ << eTag.Text()
+ << ">";
+ return ret.c_str();
+}
+
+void
+Tok_XmlFormat_BeginTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_XmlFormat_BeginTag(*this);
+}
+
+const char *
+Tok_XmlFormat_BeginTag::Text() const
+{
+ static StreamStr ret(120);
+ ret.seekp(0);
+ ret << "<"
+ << eTag.Text()
+ << ">";
+ return ret.c_str();
+}
+
+void
+Tok_XmlFormat_EndTag::Trigger( TokenInterpreter & io_rInterpreter ) const
+{
+ io_rInterpreter.Process_XmlFormat_EndTag(*this);
+}
+
+const char *
+Tok_XmlFormat_EndTag::Text() const
+{
+ static StreamStr ret(120);
+ ret.seekp(0);
+ ret << "</"
+ << eTag.Text()
+ << ">";
+ return ret.c_str();
+}
+
+
+} // namespace dsapi
+} // namespace csi
+
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/cx_docu2.hxx b/autodoc/source/parser_i/inc/s2_dsapi/cx_docu2.hxx
new file mode 100644
index 000000000000..e344ffca62e6
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/cx_docu2.hxx
@@ -0,0 +1,233 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_CX_DOCU2_HXX
+#define DSAPI_CX_DOCU2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcont2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <s2_dsapi/tk_xml.hxx>
+
+namespace csi
+{
+namespace dsapi
+{
+
+class Token_Receiver;
+
+
+/**
+@descr
+*/
+
+class Cx_Base : public ::TkpContext
+{
+ public:
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+ protected:
+ // LIFECYCLE
+ Cx_Base(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : rReceiver(o_rReceiver),
+ pFollowUpContext(&i_rFollowUpContext)
+ // pNewToken
+ { }
+ protected:
+ void SetToken(
+ DYN Token * let_dpToken )
+ { pNewToken = let_dpToken; }
+ void Handle_DocuSyntaxError(
+ CharacterSource & io_rText );
+
+ private:
+ // DATA
+ Token_Receiver & rReceiver;
+ TkpContext * pFollowUpContext;
+ Dyn<Token> pNewToken;
+};
+
+
+class Cx_EoHtml : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoHtml(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetIfIsStartOfParagraph(
+ bool i_bNextTokenProperty )
+ { bToken_IsStartOfParagraph = i_bNextTokenProperty; }
+
+ private:
+ bool bToken_IsStartOfParagraph;
+};
+
+class Cx_EoXmlConst : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoXmlConst(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetTokenId(
+ lux::Enum< Tok_XmlConst::E_TokenId >
+ i_eTokenId )
+ { eTokenId = i_eTokenId; }
+ private:
+ Tok_XmlConst::EV_TokenId
+ eTokenId;
+};
+
+class Cx_EoXmlLink_BeginTag : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoXmlLink_BeginTag(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetTokenId(
+ Tok_XmlLink_BeginTag::EV_TokenId
+ i_eTokenId )
+ { eTokenId = i_eTokenId; }
+ private:
+ Tok_XmlLink_BeginTag::EV_TokenId
+ eTokenId;
+};
+
+class Cx_EoXmlLink_EndTag : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoXmlLink_EndTag(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetTokenId(
+ Tok_XmlLink_EndTag::EV_TokenId
+ i_eTokenId )
+ { eTokenId = i_eTokenId; }
+ private:
+ Tok_XmlLink_EndTag::E_TokenId
+ eTokenId;
+};
+
+class Cx_EoXmlFormat_BeginTag : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoXmlFormat_BeginTag(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetTokenId(
+ lux::Enum< Tok_XmlFormat_BeginTag::E_TokenId >
+ i_eTokenId )
+ { eTokenId = i_eTokenId; }
+ private:
+ lux::Enum< Tok_XmlFormat_BeginTag::E_TokenId >
+ eTokenId;
+};
+
+class Cx_EoXmlFormat_EndTag : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_EoXmlFormat_EndTag(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetTokenId(
+ lux::Enum< Tok_XmlFormat_EndTag::E_TokenId >
+ i_eTokenId )
+ { eTokenId = i_eTokenId; }
+ private:
+ lux::Enum< Tok_XmlFormat_EndTag::E_TokenId >
+ eTokenId;
+};
+
+class Cx_CheckStar : public Cx_Base
+{
+ public:
+ // LIFECYCLE
+ Cx_CheckStar(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext),
+ bIsEnd(false), bEndTokenFound(false)
+ { }
+ void Set_End_FolloUpContext(
+ TkpContext & i_rEnd_FollowUpContext )
+ { pEnd_FollowUpContext = &i_rEnd_FollowUpContext; }
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ void SetIsEnd(
+ bool i_bIsEnd )
+ { bIsEnd = i_bIsEnd; }
+ virtual TkpContext &
+ FollowUpContext();
+ private:
+ TkpContext * pEnd_FollowUpContext;
+ bool bIsEnd;
+ bool bEndTokenFound;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/cx_dsapi.hxx b/autodoc/source/parser_i/inc/s2_dsapi/cx_dsapi.hxx
new file mode 100644
index 000000000000..567a7362f5a7
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/cx_dsapi.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_CX_DSAPI_HXX
+#define ADC_CX_DSAPI_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcont2.hxx>
+ // COMPONENTS
+#include <cosv/tpl/dyn.hxx>
+#include <tokens/tkpstam2.hxx>
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+class Token_Receiver;
+class Token;
+
+class Cx_EoHtml;
+class Cx_EoXmlConst;
+class Cx_EoXmlLink_BeginTag;
+class Cx_EoXmlLink_EndTag;
+class Cx_EoXmlFormat_BeginTag;
+class Cx_EoXmlFormat_EndTag;
+class Cx_CheckStar;
+
+/**
+@descr
+*/
+class Context_Docu : public TkpDocuContext,
+ private StateMachineContext
+{
+ public:
+ // LIFECYCLE
+ Context_Docu(
+ Token_Receiver & o_rReceiver );
+ virtual void SetParentContext(
+ TkpContext & io_rParentContext,
+ const char * i_sMultiLineEndToken );
+
+ ~Context_Docu();
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+
+ virtual bool PassNewToken();
+ virtual void SetMode_IsMultiLine(
+ bool i_bTrue );
+
+ // INQUIRY
+ virtual TkpContext &
+ FollowUpContext();
+ private:
+ // SERVICE FUNCTIONS
+ virtual void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ UINT16 i_nTokenId,
+ CharacterSource & io_rText );
+
+ void SetupStateMachine();
+
+ // DATA
+ StateMachin2 aStateMachine;
+ Token_Receiver * pReceiver;
+
+ // Contexts
+ TkpContext * pParentContext;
+ String sMultiLineEndToken;
+
+ Dyn<Cx_EoHtml> pCx_EoHtml;
+ Dyn<Cx_EoXmlConst> pCx_EoXmlConst;
+ Dyn<Cx_EoXmlLink_BeginTag>
+ pCx_EoXmlLink_BeginTag;
+ Dyn<Cx_EoXmlLink_EndTag>
+ pCx_EoXmlLink_EndTag;
+ Dyn<Cx_EoXmlFormat_BeginTag>
+ pCx_EoXmlFormat_BeginTag;
+ Dyn<Cx_EoXmlFormat_EndTag>
+ pCx_EoXmlFormat_EndTag;
+ Dyn<Cx_CheckStar> pCx_CheckStar;
+
+ // Temporary data, used during ReadCharChain()
+ Dyn<Token> pNewToken;
+ ::TkpContext * pFollowUpContext;
+ bool bIsMultiline;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx b/autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx
new file mode 100644
index 000000000000..2d1757bbb308
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/docu_pe2.hxx
@@ -0,0 +1,174 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DSAPI_DOCU_PE2_HXX
+#define ADC_DSAPI_DOCU_PE2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_dsapi/tokintpr.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+class ParserInfo;
+
+namespace ary
+{
+namespace doc
+{
+ class OldIdlDocu;
+}
+
+namespace inf
+{
+ class DocuToken;
+} // namespace info
+} // namespace ary
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Token;
+class DT_AtTag;
+
+class SapiDocu_PE : public TokenInterpreter
+{
+ public:
+ SapiDocu_PE(
+ ParserInfo & io_rPositionInfo );
+ ~SapiDocu_PE();
+
+ void ProcessToken(
+ DYN csi::dsapi::Token &
+ let_drToken );
+
+ virtual void Process_AtTag(
+ const Tok_AtTag & i_rToken );
+ virtual void Process_HtmlTag(
+ const Tok_HtmlTag & i_rToken );
+ virtual void Process_XmlConst(
+ const Tok_XmlConst &
+ i_rToken );
+ virtual void Process_XmlLink_BeginTag(
+ const Tok_XmlLink_BeginTag &
+ i_rToken );
+ virtual void Process_XmlLink_EndTag(
+ const Tok_XmlLink_EndTag &
+ i_rToken );
+ virtual void Process_XmlFormat_BeginTag(
+ const Tok_XmlFormat_BeginTag &
+ i_rToken );
+ virtual void Process_XmlFormat_EndTag(
+ const Tok_XmlFormat_EndTag &
+ i_rToken );
+ virtual void Process_Word(
+ const Tok_Word & i_rToken );
+ virtual void Process_Comma();
+ virtual void Process_DocuEnd();
+ virtual void Process_EOL();
+ virtual void Process_White();
+
+
+ DYN ary::doc::OldIdlDocu *
+ ReleaseJustParsedDocu();
+
+ bool IsComplete() const;
+
+ private:
+ enum E_State
+ {
+ e_none = 0,
+ st_short,
+ st_description,
+ st_attags,
+ st_complete
+ };
+
+ typedef void ( SapiDocu_PE::*F_TokenAdder )( DYN ary::inf::DocuToken & let_drNewToken );
+
+ void AddDocuToken2Void(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void AddDocuToken2Short(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void AddDocuToken2Description(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void AddDocuToken2Deprecated(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void AddDocuToken2CurAtTag(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void SetCurParameterAtTagName(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void SetCurSeeAlsoAtTagLinkText(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void SetCurSeeAlsoAtTagLinkText_2(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void SetCurSeeAlsoAtTagLinkText_3(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void SetCurSinceAtTagVersion(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+ void AddDocuToken2SinceAtTag(
+ DYN ary::inf::DocuToken &
+ let_drNewToken );
+
+ // DATA
+ Dyn<ary::doc::OldIdlDocu>
+ pDocu;
+ E_State eState;
+ ParserInfo * pPositionInfo;
+ F_TokenAdder fCurTokenAddFunction;
+
+ Dyn<DT_AtTag> pCurAtTag;
+ String sCurDimAttribute;
+ StreamStr sCurAtSeeType_byXML;
+};
+
+} // namespace dsapi
+} // namespace csi
+
+
+// IMPLEMENTATION
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/dsapitok.hxx b/autodoc/source/parser_i/inc/s2_dsapi/dsapitok.hxx
new file mode 100644
index 000000000000..e4311cf90e24
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/dsapitok.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_DSAPITOK_HXX
+#define DSAPI_DSAPITOK_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/token2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class TokenInterpreter;
+
+
+class Token : public TextToken
+{
+ public:
+ // LIFECYCLE
+ virtual ~Token() {}
+
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const = 0;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tk_atag2.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tk_atag2.hxx
new file mode 100644
index 000000000000..c62f78f614fd
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tk_atag2.hxx
@@ -0,0 +1,88 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_TK_ATAG2_HXX
+#define DSAPI_TK_ATAG2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_dsapi/dsapitok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <luxenum.hxx>
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Tok_AtTag : public Token
+{
+ public:
+ // TYPE
+ enum E_TokenId
+ {
+ e_none = 0,
+ author = 1,
+ see = 2,
+ param = 3,
+ e_return = 4,
+ e_throw = 5,
+ example = 6,
+ deprecated = 7,
+ suspicious = 8,
+ missing = 9,
+ incomplete = 10,
+ version = 11,
+ guarantees = 12,
+ exception = 13,
+ since = 14
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ // Spring and Fall
+ Tok_AtTag(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ EV_TokenId eTag;
+};
+
+} // namespace dsapi
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tk_docw2.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tk_docw2.hxx
new file mode 100644
index 000000000000..769ec51a3f90
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tk_docw2.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_TK_DOCW2_HXX
+#define DSAPI_TK_DOCW2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_dsapi/dsapitok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Tok_Word : public Token
+{
+ public:
+ // Spring and Fall
+ Tok_Word(
+ const char * i_sText )
+ : sText(i_sText) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+
+ private:
+ // DATA
+ String sText;
+};
+
+class Tok_Comma : public Token
+{
+ public:
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+};
+
+class Tok_DocuEnd : public Token
+{
+ public:
+ // Spring and Fall
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+};
+
+class Tok_EOL : public Token
+{
+ public:
+ // Spring and Fall
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+};
+
+class Tok_EOF : public Token
+{
+ public:
+ // Spring and Fall
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+};
+
+class Tok_White : public Token
+{
+ public:
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+};
+
+
+
+} // namespace dsapi
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tk_html.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tk_html.hxx
new file mode 100644
index 000000000000..687a117d3b88
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tk_html.hxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_TK_HTML_HXX
+#define DSAPI_TK_HTML_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_dsapi/dsapitok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Tok_HtmlTag : public Token
+{
+ public:
+ // Spring and Fall
+ Tok_HtmlTag(
+ const char * i_sTag,
+ bool i_bIsParagraphStarter )
+ : sTag(i_sTag),
+ bIsParagraphStarter(i_bIsParagraphStarter)
+ {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ bool IsParagraphStarter() const
+ { return bIsParagraphStarter; }
+
+ private:
+ String sTag;
+ bool bIsParagraphStarter;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tk_xml.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tk_xml.hxx
new file mode 100644
index 000000000000..08002ce9e1ad
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tk_xml.hxx
@@ -0,0 +1,201 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_TK_XML_HXX
+#define DSAPI_TK_XML_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_dsapi/dsapitok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <luxenum.hxx>
+
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Tok_XmlTag : public Token
+{
+ public:
+};
+
+class Tok_XmlConst : public Tok_XmlTag
+{
+ public:
+ // TYPE
+ enum E_TokenId
+ {
+ e_none = 0,
+ e_true = 1,
+ e_false = 2,
+ e_null = 3,
+ e_void = 4
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ // Spring and Fall
+ Tok_XmlConst(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class Tok_XmlLink_Tag : public Tok_XmlTag
+{
+ public:
+ // TYPE
+ enum E_TokenId
+ {
+ e_none = 0,
+ e_const = 1,
+ member = 2,
+ type = 3
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+};
+
+class Tok_XmlLink_BeginTag : public Tok_XmlLink_Tag
+{
+ public:
+ // Spring and Fall
+ Tok_XmlLink_BeginTag(
+ EV_TokenId i_eTag,
+ const String & i_sScope,
+ const String & i_sDim )
+ : eTag(i_eTag),
+ sScope(i_sScope),
+ sDim(i_sDim) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+ const String & Scope() const { return sScope; }
+ const String & Dim() const { return sDim; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+ String sScope;
+ String sDim;
+};
+
+class Tok_XmlLink_EndTag : public Tok_XmlLink_Tag
+{
+ public:
+ // Spring and Fall
+ Tok_XmlLink_EndTag(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class Tok_XmlFormat_Tag : public Tok_XmlTag
+{
+ public:
+ // TYPE
+ enum E_TokenId
+ {
+ e_none = 0,
+ code = 1,
+ listing = 2,
+ atom = 3
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+};
+
+class Tok_XmlFormat_BeginTag : public Tok_XmlFormat_Tag
+{
+ public:
+ // Spring and Fall
+ Tok_XmlFormat_BeginTag(
+ EV_TokenId i_eTag,
+ const String & i_sDim )
+ : eTag(i_eTag),
+ sDim(i_sDim) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+ const String & Dim() const { return sDim; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+ String sDim;
+};
+
+class Tok_XmlFormat_EndTag : public Tok_XmlFormat_Tag
+{
+ public:
+ // Spring and Fall
+ Tok_XmlFormat_EndTag(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char* Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tokintpr.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tokintpr.hxx
new file mode 100644
index 000000000000..2132f2688f31
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tokintpr.hxx
@@ -0,0 +1,94 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_DSAPI_TOKINTPR_HXX
+#define ADC_DSAPI_TOKINTPR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Tok_AtTag;
+class Tok_XmlConst;
+class Tok_XmlLink_BeginTag;
+class Tok_XmlLink_EndTag;
+class Tok_XmlFormat_BeginTag;
+class Tok_XmlFormat_EndTag;
+class Tok_Word;
+class Tok_HtmlTag;
+
+class TokenInterpreter
+{
+ public:
+ virtual ~TokenInterpreter() {}
+
+ virtual void Process_AtTag(
+ const Tok_AtTag & i_rToken ) = 0;
+ virtual void Process_HtmlTag(
+ const Tok_HtmlTag & i_rToken ) = 0;
+ virtual void Process_XmlConst(
+ const Tok_XmlConst &
+ i_rToken ) = 0;
+ virtual void Process_XmlLink_BeginTag(
+ const Tok_XmlLink_BeginTag &
+ i_rToken ) = 0;
+ virtual void Process_XmlLink_EndTag(
+ const Tok_XmlLink_EndTag &
+ i_rToken ) = 0;
+ virtual void Process_XmlFormat_BeginTag(
+ const Tok_XmlFormat_BeginTag &
+ i_rToken ) = 0;
+ virtual void Process_XmlFormat_EndTag(
+ const Tok_XmlFormat_EndTag &
+ i_rToken ) = 0;
+ virtual void Process_Word(
+ const Tok_Word & i_rToken ) = 0;
+ virtual void Process_Comma() = 0;
+ virtual void Process_DocuEnd() = 0;
+ virtual void Process_EOL() = 0;
+ virtual void Process_White() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace dsapi
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_dsapi/tokrecv.hxx b/autodoc/source/parser_i/inc/s2_dsapi/tokrecv.hxx
new file mode 100644
index 000000000000..cf9a0e7daa51
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_dsapi/tokrecv.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef DSAPI_TOKRECV_HXX
+#define DSAPI_TOKRECV_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace dsapi
+{
+
+
+class Token;
+/**
+@descr
+*/
+class Token_Receiver
+{
+ public:
+ virtual ~Token_Receiver() {}
+ virtual void Receive(
+ DYN Token & let_drToken ) = 0;
+ virtual void Increment_CurLine() = 0;
+};
+
+
+} // namespace dsapi
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/cx_idlco.hxx b/autodoc/source/parser_i/inc/s2_luidl/cx_idlco.hxx
new file mode 100644
index 000000000000..b1871cdc62d2
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/cx_idlco.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_CX_IDLCO_HXX
+#define LUIDL_CX_IDLCO_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcont2.hxx>
+ // COMPONENTS
+#include <tokens/tkpstam2.hxx>
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class Token_Receiver;
+class Token;
+
+/**
+*/
+class Context_UidlCode : public TkpContext,
+ private StateMachineContext
+{
+ public:
+ // LIFECYCLE
+ Context_UidlCode(
+ Token_Receiver & o_rReceiver,
+ DYN TkpDocuContext &
+ let_drContext_Docu );
+ ~Context_UidlCode();
+ // OPERATORS
+
+ // OPERATIONS
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+
+ // INQUIRY
+ virtual TkpContext &
+ FollowUpContext();
+ private:
+ // SERVICE FUNCTIONS
+ void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ UINT16 i_nTokenId,
+ CharacterSource & io_rText );
+ void SetupStateMachine();
+
+ // DATA
+ StateMachin2 aStateMachine;
+ Token_Receiver * pReceiver;
+
+ // Contexts
+ Dyn<TkpDocuContext> pDocuContext;
+
+ Dyn<TkpContext> dpContext_MLComment;
+ Dyn<TkpContext> dpContext_SLComment;
+ Dyn<TkpContext> dpContext_Preprocessor;
+ Dyn<TkpContext> dpContext_Assignment;
+
+ // Temporary data, used during ReadCharChain()
+ Dyn<Token> pNewToken;
+ ::TkpContext * pFollowUpContext;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
diff --git a/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx b/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx
new file mode 100644
index 000000000000..1c16b28a83c5
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/cx_sub.hxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_LUIDL_CX_SUB_HXX
+#define ADC_LUIDL_CX_SUB_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcont2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+#include "uidl_tok.hxx"
+
+namespace csi
+{
+namespace uidl
+{
+
+class Token_Receiver;
+class Token;
+
+
+class Cx_Base : public ::TkpContext
+{
+ public:
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+ protected:
+ // LIFECYCLE
+ Cx_Base(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : rReceiver(o_rReceiver),
+ pFollowUpContext(&i_rFollowUpContext),
+ pNewToken()
+ {}
+ protected:
+ void SetToken(
+ DYN Token * let_dpToken )
+ { pNewToken = let_dpToken; }
+ Token_Receiver & Receiver() { return rReceiver; }
+
+ private:
+ // DATA
+ Token_Receiver & rReceiver;
+ TkpContext * pFollowUpContext;
+ Dyn<Token> pNewToken;
+};
+
+
+
+/**
+@descr
+*/
+
+class Context_MLComment : public Cx_Base
+{
+ public:
+ Context_MLComment(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_SLComment : public Cx_Base
+{
+ public:
+ Context_SLComment(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_Praeprocessor : public Cx_Base
+{
+ public:
+ Context_Praeprocessor(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+class Context_Assignment : public Cx_Base
+{
+ public:
+ Context_Assignment(
+ Token_Receiver & o_rReceiver,
+ TkpContext & i_rFollowUpContext )
+ : Cx_Base(o_rReceiver, i_rFollowUpContext) {}
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx b/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx
new file mode 100644
index 000000000000..398cfa041ca0
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/distrib.hxx
@@ -0,0 +1,272 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_DISTRIB_HXX
+#define LUIDL_DISTRIB_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/tokrecv.hxx>
+#include <s2_dsapi/tokrecv.hxx>
+#include <s2_luidl/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class ParserInfo;
+
+namespace ary
+{
+ class Repository;
+
+namespace doc
+{
+ class OldIdlDocu;
+} // namespace inf
+} // namespace ary)
+
+
+
+namespace csi
+{
+namespace dsapi
+{
+ class Token_Receiver;
+ class SapiDocu_PE;
+}
+
+
+
+namespace uidl
+{
+
+
+typedef std::vector< DYN Token * > TokenQueue;
+typedef TokenQueue::iterator TokenIterator;
+
+class TokenParser_Uidl;
+class UnoIDL_PE;
+class Token;
+
+
+class TokenDistributor : private TokenProcessing_Types
+
+{
+ public:
+ TokenDistributor(
+ ary::Repository & io_rRepository,
+ ParserInfo & io_rParserInfo );
+ void SetTokenProvider(
+ TokenParser_Uidl & io_rTokenSource );
+ void SetTopParseEnvironment(
+ UnoIDL_PE & io_pTopParseEnvironment );
+ ~TokenDistributor();
+
+
+ void Reset() { aDocumentation.Reset(); }
+ /** calls pTokenSource->GetNextToken() and checks the incoming tokens, until a
+ usable token is found. This token will be forwarded to
+ pTopParseEnv;
+ */
+ void TradeToken();
+
+ csi::uidl::Token_Receiver &
+ CodeTokens_Receiver();
+ csi::dsapi::Token_Receiver &
+ DocuTokens_Receiver();
+
+ /** Used from PE_File, if there is a docu to get without
+ an environment to push (this is the case for modules).
+ */
+ DYN ary::doc::OldIdlDocu *
+ ReleaseLastParsedDocu()
+ { return aDocumentation.ReleaseLastParsedDocu(); }
+
+ /** Used from PE_File, if the term "published" was parsed.
+ The next opened parse environment will be set to be published
+ (call ->UnoIDL_PE::SetPublished()).
+ */
+ void Set_PublishedOn()
+ { aProcessingData.Set_PublishedOn(); }
+
+
+ private:
+ class Documentation;
+ class ProcessingData;
+ friend class ProcessingData;
+
+ class ProcessingData : public csi::uidl::Token_Receiver,
+ private TokenProcessing_Types
+ {
+ public:
+ ProcessingData(
+ ary::Repository & io_rRepository,
+ Documentation & i_rDocuProcessor,
+ ParserInfo & io_rParserInfo );
+ ~ProcessingData();
+ void SetTopParseEnvironment(
+ UnoIDL_PE & io_pTopParseEnvironment );
+
+
+ /** is called from pTokenSource before finishing a ::TokenParse2::GetNextToken()
+ call and passes the just parsed token to this class.
+ */
+ virtual void Receive(
+ DYN csi::uidl::Token &
+ let_drToken );
+ virtual void Increment_CurLine();
+
+ void ProcessCurToken();
+
+ UnoIDL_PE & CurEnvironment() const;
+ bool NextTokenExists() const;
+ void Set_PublishedOn()
+ { bPublishedRecentlyOn = true; }
+
+ private:
+ typedef uintt TokenQ_Position;
+ typedef std::pair< UnoIDL_PE *, TokenQ_Position > EnvironmentInfo;
+ typedef std::vector< EnvironmentInfo > EnvironmentStack;
+
+ void AcknowledgeResult();
+ const csi::uidl::Token &
+ CurToken() const;
+ UnoIDL_PE & CurEnv() const;
+ UnoIDL_PE & PushEnv() const;
+ uintt CurTokenPosition() const;
+ uintt CurEnv_TriedTokenPosition() const;
+ void DecrementTryCount();
+
+ EnvironmentStack aEnvironments;
+ TokenQueue aTokenQueue;
+ TokenIterator itCurToken;
+ TokenProcessing_Result
+ aCurResult;
+ uintt nTryCount;
+ bool bFinished;
+ ary::Repository &
+ rRepository;
+ ParserInfo & rParserInfo;
+ Documentation * pDocuProcessor;
+ bool bPublishedRecentlyOn;
+ };
+
+ class Documentation : public csi::dsapi::Token_Receiver
+ {
+ public:
+ Documentation(
+ ParserInfo & io_rParserInfo);
+ ~Documentation();
+
+ void Reset() { bIsPassedFirstDocu = false; }
+
+ virtual void Receive(
+ DYN csi::dsapi::Token &
+ let_drToken );
+ virtual void Increment_CurLine();
+ DYN ary::doc::OldIdlDocu *
+ ReleaseLastParsedDocu()
+ { return pMostRecentDocu.Release(); }
+ private:
+ Dyn<csi::dsapi::SapiDocu_PE>
+ pDocuParseEnv;
+ ParserInfo & rParserInfo;
+ Dyn<ary::doc::OldIdlDocu>
+ pMostRecentDocu;
+ bool bIsPassedFirstDocu;
+ };
+
+ // DATA
+ TokenParser_Uidl * pTokenSource;
+ Documentation aDocumentation;
+ ProcessingData aProcessingData;
+};
+
+
+
+// IMPLEMENTATION
+
+inline void
+TokenDistributor::SetTokenProvider( TokenParser_Uidl & io_rTokenSource )
+ { pTokenSource = &io_rTokenSource; }
+
+inline void
+TokenDistributor::SetTopParseEnvironment( UnoIDL_PE & io_pTopParseEnvironment )
+ { aProcessingData.SetTopParseEnvironment(io_pTopParseEnvironment); }
+
+inline csi::uidl::Token_Receiver &
+TokenDistributor::CodeTokens_Receiver()
+ { return aProcessingData; }
+
+inline csi::dsapi::Token_Receiver &
+TokenDistributor::DocuTokens_Receiver()
+ { return aDocumentation; }
+
+inline const csi::uidl::Token &
+TokenDistributor::ProcessingData::CurToken() const
+{
+ csv_assert( itCurToken != aTokenQueue.end() );
+ csv_assert( *itCurToken != 0 );
+ return *(*itCurToken);
+}
+
+inline UnoIDL_PE &
+TokenDistributor::ProcessingData::CurEnv() const
+{
+ csv_assert( aEnvironments.size() > 0 );
+ csv_assert( aEnvironments.back().first != 0 );
+ return *aEnvironments.back().first;
+}
+
+inline UnoIDL_PE &
+TokenDistributor::ProcessingData::PushEnv() const
+{
+ csv_assert( aCurResult.pEnv2Push != 0 );
+ return *aCurResult.pEnv2Push;
+}
+
+inline uintt
+TokenDistributor::ProcessingData::CurTokenPosition() const
+{
+ return itCurToken - aTokenQueue.begin();
+}
+
+inline uintt
+TokenDistributor::ProcessingData::CurEnv_TriedTokenPosition() const
+{
+ csv_assert( aEnvironments.size() > 0 );
+ return aEnvironments.back().second;
+}
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx b/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx
new file mode 100644
index 000000000000..129721f0b9ff
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/parsenv2.hxx
@@ -0,0 +1,142 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PARSENV2_HXX
+#define LUIDL_PARSENV2_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/tokproct.hxx>
+ // COMPONENTS
+#include <s2_luidl/semnode.hxx>
+ // PARAMETERS
+#include <ary/idl/i_types4idl.hxx>
+#include <ary/idl/i_module.hxx>
+
+
+
+class ParserInfo;
+
+namespace ary
+{
+ class QualifiedName;
+ class Repository;
+
+namespace doc
+{
+ class OldIdlDocu;
+}
+
+namespace idl
+{
+ class CodeEntity;
+}
+}
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class Token;
+class SemanticNode;
+
+
+class UnoIDL_PE : virtual protected TokenProcessing_Types
+{
+ public:
+ virtual ~UnoIDL_PE();
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+// virtual void EstablishContacts(
+// UnoIDL_PE * io_pParentPE,
+// ary::idl::Gate &
+// io_rGate,
+// TokenProcessing_Result &
+// o_rResult );
+ virtual void Enter(
+ E_EnvStackAction i_eWayOfEntering );
+ virtual void Leave(
+ E_EnvStackAction i_eWayOfLeaving );
+ virtual void ProcessToken(
+ const Token & i_rToken ) = 0;
+
+ void SetDocu(
+ DYN ary::doc::OldIdlDocu *
+ let_dpDocu );
+ void SetPublished();
+ void SetOptional();
+ void PassDocuAt(
+ ary::idl::CodeEntity &
+ io_rCe );
+
+ UnoIDL_PE * Parent() const { return aMyNode.Parent(); }
+
+ void SetResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ UnoIDL_PE * i_pParseEnv2Push = 0 )
+ { aMyNode.SetTokenResult( i_eDone, i_eWhat2DoWithEnvStack, i_pParseEnv2Push ); }
+ virtual const ary::idl::Module &
+ CurNamespace() const;
+ virtual const ParserInfo &
+ ParseInfo() const;
+ ary::idl::Gate & Gate() const { return aMyNode.AryGate(); }
+ TokenProcessing_Result &
+ TokenResult() const { return aMyNode.TokenResult(); }
+ DYN ary::doc::OldIdlDocu *
+ ReleaseDocu() { return pDocu.Release(); }
+ protected:
+ UnoIDL_PE();
+ ary::Repository & MyRepository() { csv_assert(pRepository != 0);
+ return *pRepository; }
+ private:
+ virtual void InitData();
+ virtual void TransferData() = 0;
+ virtual void ReceiveData();
+
+ SemanticNode aMyNode;
+ Dyn<ary::doc::OldIdlDocu>
+ pDocu;
+ ary::Repository * pRepository;
+};
+
+
+
+
+} // namespace uidl
+} // namespace csi
+#endif
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx
new file mode 100644
index 000000000000..069919562b2e
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_attri.hxx
@@ -0,0 +1,135 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_ATTRI_HXX
+#define ADC_UIDL_PE_ATTRI_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include <ary/idl/i_property.hxx>
+ // PARAMETERS
+#include <ary/idl/i_gate.hxx>
+
+
+namespace ary
+{
+ namespace idl
+ {
+ class Attribute;
+ }
+}
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class PE_Variable;
+class PE_Type;
+
+class PE_Attribute : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ typedef ary::idl::Ce_id Ce_id;
+ typedef ary::idl::Type_id Type_id;
+
+ PE_Attribute(
+ const Ce_id & i_rCurOwner );
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual ~PE_Attribute();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Raises();
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none,
+ e_start,
+ in_variable,
+ expect_end,
+ in_raise_std, /// before 'get', 'set', ';' or '}'
+ in_get,
+ in_set
+ };
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ E_State eState;
+ const Ce_id * pCurOwner;
+
+ Dyn<PE_Variable> pPE_Variable;
+ Dyn<PE_Type> pPE_Exception;
+
+ // object-data
+ ary::idl::Attribute *
+ pCurAttribute;
+ Type_id nCurParsedType;
+ String sCurParsedName;
+ bool bReadOnly;
+ bool bBound;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx
new file mode 100644
index 000000000000..dea5edfa4e98
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_const.hxx
@@ -0,0 +1,145 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_CONST_HXX
+#define LUIDL_PE_CONST_HXX
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace udm {
+class Agent_Struct;
+} // namespace udm
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class ConstantsGroup;
+
+class PE_Type;
+class PE_Value;
+
+class PE_Constant : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Constant();
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Constant();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+
+ private:
+ enum E_State
+ {
+ e_none,
+ expect_name,
+ expect_curl_bracket_open,
+ expect_const,
+ expect_value,
+ expect_finish,
+ e_STATES_MAX
+ };
+ enum E_TokenType
+ {
+ tt_stereotype,
+ tt_identifier,
+ tt_punctuation,
+ tt_MAX
+ };
+ typedef void (PE_Constant::*F_TOK)(const char *);
+
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+
+ void On_expect_name_Identifier(const char * i_sText);
+ void On_expect_curl_bracket_open_Punctuation(const char * i_sText);
+ void On_expect_const_Stereotype(const char * i_sText);
+ void On_expect_const_Punctuation(const char * i_sText);
+ void On_expect_value_Identifier(const char * i_sText);
+ void On_expect_finish_Punctuation(const char * i_sText);
+ void On_Default(const char * );
+
+ void EmptySingleConstData();
+ void CreateSingleConstant();
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+
+ String sData_Name;
+ ary::idl::Ce_id nDataId;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nType;
+
+ Dyn<PE_Value> pPE_Value;
+ String sName;
+ String sAssignment;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx
new file mode 100644
index 000000000000..1706f7edb9c6
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_enum2.hxx
@@ -0,0 +1,131 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_ENUM2_HXX
+#define ADC_UIDL_PE_ENUM2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+// class Enum;
+
+class PE_Value;
+
+class PE_Enum : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Enum();
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Enum();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+
+ private:
+ enum E_State
+ {
+ e_none,
+ expect_name,
+ expect_curl_bracket_open,
+ expect_value,
+ expect_finish,
+ e_STATES_MAX
+ };
+ enum E_TokenType
+ {
+ tt_identifier,
+ tt_punctuation,
+ tt_MAX
+ };
+ typedef void (PE_Enum::*F_TOK)(const char *);
+
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+
+ void On_expect_name_Identifier(const char * i_sText);
+ void On_expect_curl_bracket_open_Punctuation(const char * i_sText);
+ void On_expect_value_Punctuation(const char * i_sText);
+ void On_expect_value_Identifier(const char * i_sText);
+ void On_expect_finish_Punctuation(const char * i_sText);
+ void On_Default(const char * );
+
+ void EmptySingleValueData();
+ void CreateSingleValue();
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+
+ String sData_Name;
+ ary::idl::Ce_id nDataId;
+
+ Dyn<PE_Value> pPE_Value;
+ String sName;
+ String sAssignment;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx
new file mode 100644
index 000000000000..510df9ac5da1
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_evalu.hxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_EVALU_HXX
+#define LUIDL_PE_EVALU_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace udm {
+class Agent_Struct;
+} // namespace udm
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Value : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Value(
+ String & o_rName,
+ String & o_rAssignment,
+ bool i_bIsConst );
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Value();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Assignment(
+ const TokAssignment &
+ i_rToken );
+ private:
+ enum E_State
+ {
+ e_none = 0,
+ expect_name,
+ got_name,
+ e_STATES_MAX
+ };
+ enum E_TokenType /// @ATTENTION Do not change existing values (except of tt_MAX) !!! Else array-indices will break.
+ {
+ tt_identifier = 0,
+ tt_punctuation = 1,
+ tt_assignment = 2,
+ tt_MAX
+ };
+ typedef void (PE_Value::*F_TOK)(const char *);
+
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+
+ void On_expect_name_Identifier(const char * i_sText);
+ void On_got_name_Punctuation(const char * i_sText);
+ void On_got_name_Assignment(const char * i_sText);
+ void On_Default(const char * );
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ bool IsConst() const { return bIsConst; }
+
+ static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+ String * pName;
+ String * pAssignment;
+ bool bIsConst;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx
new file mode 100644
index 000000000000..a0e7fa62d8f2
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_excp.hxx
@@ -0,0 +1,259 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_EXCP_HXX
+#define LUIDL_PE_EXCP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include <s2_luidl/semnode.hxx>
+#include <ary/qualiname.hxx>
+ // PARAMETERS
+
+
+
+namespace csi
+{
+namespace prl
+{
+ class TNamespace;
+}
+}
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class Exception;
+class StructElement;
+class PE_StructElement;
+class PE_Type;
+
+
+class PE_Exception : public UnoIDL_PE
+{
+ public:
+ PE_Exception();
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Exception();
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ private:
+ struct S_Work
+ {
+ S_Work();
+
+ void InitData();
+ void Prepare_PE_QualifiedName();
+ void Prepare_PE_Element();
+ void Data_Set_Name(
+ const char * i_sName );
+ // DATA
+ String sData_Name;
+ bool bIsPreDeclaration;
+ ary::idl::Ce_id nCurStruct;
+
+ Dyn<PE_StructElement>
+ pPE_Element;
+ ary::idl::Ce_id nCurParsed_ElementRef;
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsed_Base;
+ };
+
+ struct S_Stati;
+ class PE_StructState;
+ friend struct S_Stati;
+ friend class PE_StructState;
+
+
+ class PE_StructState : public ParseEnvState
+ {
+ public:
+
+ protected:
+ PE_StructState(
+ PE_Exception & i_rStruct )
+ : rStruct(i_rStruct) {}
+ void MoveState(
+ ParseEnvState & i_rState ) const;
+ void SetResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ UnoIDL_PE * i_pParseEnv2Push = 0 ) const
+ { rStruct.SetResult(i_eDone, i_eWhat2DoWithEnvStack, i_pParseEnv2Push); }
+
+ S_Stati & Stati() const { return *rStruct.pStati; }
+ S_Work & Work() const { return rStruct.aWork; }
+ PE_Exception & PE() const { return rStruct; }
+
+ private:
+ virtual UnoIDL_PE & MyPE();
+ // DATA
+ PE_Exception & rStruct;
+ };
+
+ class State_None : public PE_StructState
+ {
+ public:
+ State_None(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ };
+ class State_WaitForName : public PE_StructState
+ { // -> Name
+ public:
+ State_WaitForName(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ };
+ class State_GotName : public PE_StructState
+ { // -> : { ;
+ public:
+ State_GotName(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForBase : public PE_StructState
+ { // -> Base
+ public:
+ State_WaitForBase(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void On_SubPE_Left();
+ };
+ class State_GotBase : public PE_StructState
+ { // -> {
+ public:
+ State_GotBase(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForElement : public PE_StructState
+ { // -> Typ }
+ public:
+ State_WaitForElement(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_NameSeparator();
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+// virtual void On_SubPE_Left();
+ };
+ class State_WaitForFinish : public PE_StructState
+ { // -> ;
+ public:
+ State_WaitForFinish(
+ PE_Exception & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+
+ struct S_Stati
+ {
+ S_Stati(
+ PE_Exception & io_rStruct );
+ void SetState(
+ ParseEnvState & i_rNextState )
+ { pCurStatus = &i_rNextState; }
+
+ State_None aNone;
+ State_WaitForName aWaitForName;
+ State_GotName aGotName;
+ State_WaitForBase aWaitForBase;
+ State_GotBase aGotBase;
+ State_WaitForElement
+ aWaitForElement;
+ State_WaitForFinish aWaitForFinish;
+
+ ParseEnvState * pCurStatus;
+ };
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+
+ public:
+
+ void store_Exception();
+
+ private:
+
+ S_Stati & Stati() { return *pStati; }
+ S_Work & Work() { return aWork; }
+
+ // DATA
+ S_Work aWork;
+ Dyn<S_Stati> pStati;
+};
+
+
+inline void
+PE_Exception::PE_StructState::MoveState(
+ ParseEnvState & i_rState ) const
+ { rStruct.Stati().SetState(i_rState); }
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx
new file mode 100644
index 000000000000..970f57b94573
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_file2.hxx
@@ -0,0 +1,140 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_FILE2_HXX
+#define LUIDL_PE_FILE2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace ary
+{
+namespace idl
+{
+class Module;
+} // namespace idl
+} // namespace ary
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class TokenDistributor;
+class PE_Service;
+class PE_Singleton;
+class PE_Interface;
+class PE_Struct;
+class PE_Exception;
+class PE_Constant;
+class PE_Enum;
+class PE_Typedef;
+
+
+class PE_File : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_File(
+ TokenDistributor & i_rTokenAdmin,
+ const ParserInfo & i_parseInfo );
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_File();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none,
+ e_std,
+ wait_for_module,
+ wait_for_module_bracket,
+ wait_for_module_semicolon,
+ in_sub_pe,
+ on_default
+ };
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+ virtual UnoIDL_PE & MyPE();
+ virtual const ary::idl::Module &
+ CurNamespace() const;
+ virtual const ParserInfo &
+ ParseInfo() const;
+ // DATA
+ TokenDistributor * pTokenAdmin;
+ Dyn<PE_Service> pPE_Service;
+ Dyn<PE_Singleton> pPE_Singleton;
+ Dyn<PE_Interface> pPE_Interface;
+ Dyn<PE_Struct> pPE_Struct;
+ Dyn<PE_Exception> pPE_Exception;
+ Dyn<PE_Constant> pPE_Constant;
+ Dyn<PE_Enum> pPE_Enum;
+ Dyn<PE_Typedef> pPE_Typedef;
+
+ const ary::idl::Module *
+ pCurNamespace;
+ const ParserInfo * pParseInfo;
+
+ E_State eState;
+ uintt nBracketCount_inDefMode;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx
new file mode 100644
index 000000000000..8ea280c7ee01
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_func2.hxx
@@ -0,0 +1,167 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_FUNC2_HXX
+#define ADC_UIDL_PE_FUNC2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+// #include <ary/idl/i_gate.hxx>
+// #include <ary/idl/ip_ce.hxx>
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include <ary/idl/i_param.hxx>
+ // PARAMETERS
+
+namespace ary
+{
+ namespace idl
+ {
+ class Function;
+ }
+}
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Type;
+class PE_Variable;
+
+class PE_Function : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ typedef ary::idl::Ce_id RParent;
+ typedef ary::idl::Ce_id RFunction;
+
+ enum E_Constructor { constructor };
+
+ /// Constructor for interfaces.
+ PE_Function(
+ const RParent & i_rCurInterface );
+
+ /// Constructor for single interface based services.
+ PE_Function(
+ const RParent & i_rCurService,
+ E_Constructor i_eCtorMarker );
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual ~PE_Function();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_ParameterHandling(
+ const TokParameterHandling &
+ i_rToken );
+ virtual void Process_Raises();
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none,
+ e_start,
+ in_return_type,
+ expect_name,
+ expect_params_list,
+ expect_parameter,
+ expect_parameter_variable,
+ in_parameter_variable,
+ expect_parameter_separator,
+ params_finished,
+ expect_exceptions_list,
+ expect_exception,
+ in_exception,
+ expect_exception_separator,
+ exceptions_finished
+ };
+
+ void GoIntoReturnType();
+ void GoIntoParameterVariable();
+ void GoIntoException();
+ void OnDefault();
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ E_State eState;
+
+ String sData_Name;
+ ary::idl::Type_id nData_ReturnType;
+ bool bData_Oneway;
+ ary::idl::Function *
+ pCurFunction;
+
+ const RParent * pCurParent;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsedType; // ReturnType or Exception
+
+ String sName;
+
+ Dyn<PE_Variable> pPE_Variable;
+ ary::idl::E_ParameterDirection
+ eCurParsedParam_Direction;
+ ary::idl::Type_id nCurParsedParam_Type;
+ String sCurParsedParam_Name;
+ bool bIsForConstructors;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx
new file mode 100644
index 000000000000..83a441eebbc4
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_iface.hxx
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_IFACE_HXX
+#define ADC_UIDL_PE_IFACE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+namespace idl
+{
+ class Interface;
+}
+}
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+class PE_Function;
+class PE_Attribute;
+class PE_Type;
+
+class PE_Interface : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Interface();
+ virtual ~PE_Interface();
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_NameSeparator();
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_Default();
+
+ private:
+ enum E_State /// @ATTENTION Do not change existing values (except of e_STATES_MAX) !!! Else array-indices will break.
+ {
+ e_none = 0,
+ need_uik,
+ uik,
+ need_ident,
+ ident,
+ need_interface,
+ need_name,
+ wait_for_base,
+ in_base, // in header, after ":"
+ need_curlbr_open,
+ e_std,
+ in_function,
+ in_attribute,
+ need_finish,
+ in_base_interface, // in body, after "interface"
+ e_STATES_MAX
+ };
+ enum E_TokenType /// @ATTENTION Do not change existing values (except of tt_MAX) !!! Else array-indices will break.
+ {
+ tt_metatype = 0,
+ tt_identifier = 1,
+ tt_punctuation = 2,
+ tt_startoftype = 3,
+ tt_stereotype = 4,
+ tt_MAX
+ };
+ typedef void (PE_Interface::*F_TOK)(const char *);
+
+
+ void On_need_uik_MetaType(const char * i_sText);
+ void On_uik_Identifier(const char * i_sText);
+ void On_uik_Punctuation(const char * i_sText);
+ void On_need_ident_MetaType(const char * i_sText);
+ void On_ident_Identifier(const char * i_sText);
+ void On_ident_Punctuation(const char * i_sText);
+ void On_need_interface_MetaType(const char * i_sText);
+ void On_need_name_Identifer(const char * i_sText);
+ void On_wait_for_base_Punctuation(const char * i_sText);
+ void On_need_curlbr_open_Punctuation(const char * i_sText);
+ void On_std_Metatype(const char * i_sText);
+ void On_std_Punctuation(const char * i_sText);
+ void On_std_Stereotype(const char * i_sText);
+ void On_std_GotoFunction(const char * i_sText);
+ void On_std_GotoAttribute(const char * i_sText);
+ void On_std_GotoBaseInterface(const char * i_sText);
+ void On_need_finish_Punctuation(const char * i_sText);
+ void On_Default(const char * i_sText);
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+ virtual UnoIDL_PE & MyPE();
+
+ void store_Interface();
+
+ // DATA
+ static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+ String sData_Name;
+ bool bIsPreDeclaration;
+ ary::idl::Interface *
+ pCurInterface;
+ ary::idl::Ce_id nCurInterface;
+
+ Dyn<PE_Function> pPE_Function;
+ Dyn<PE_Attribute> pPE_Attribute;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsed_Base;
+ bool bOptionalMember;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_modul.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_modul.hxx
new file mode 100644
index 000000000000..00bc7bcaa5be
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_modul.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_MODUL_HXX
+#define LUIDL_PE_MODUL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <semantic/semnode.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+class PE_Module : public ::ParseEnvironment
+{
+ public:
+
+ virtual void Enter(
+ E_EnvStackAction i_eWayOfEntering );
+ virtual void Leave(
+ E_EnvStackAction i_eWayOfLeaving );
+
+ private:
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_property.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_property.hxx
new file mode 100644
index 000000000000..b5969d471a0f
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_property.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_PROPERTY_HXX
+#define ADC_UIDL_PE_PROPERTY_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include <ary/idl/i_property.hxx>
+ // PARAMETERS
+#include <ary/idl/i_gate.hxx>
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class PE_Variable;
+
+class PE_Property : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ typedef ary::idl::Ce_id Ce_id;
+ typedef ary::idl::Type_id Type_id;
+ typedef ary::idl::Property::Stereotypes Stereotypes;
+
+
+ PE_Property(
+ const Ce_id & i_rCurOwner );
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual ~PE_Property();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Default();
+
+ void PresetOptional() { bIsOptional = true; }
+ void PresetStereotypes(
+ Stereotypes::E_Flags
+ i_eFlag )
+ { aStereotypes.Set_Flag(i_eFlag); }
+ private:
+ enum E_State
+ {
+ e_none,
+ e_start,
+ expect_variable,
+ in_variable
+ };
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ E_State eState;
+ const Ce_id * pCurOwner;
+
+ Dyn<PE_Variable> pPE_Variable;
+
+ // object-data
+ Type_id nCurParsedType;
+ String sCurParsedName;
+ bool bIsOptional;
+ Stereotypes aStereotypes;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx
new file mode 100644
index 000000000000..792d6940b327
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_selem.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_SELEM_HXX
+#define LUIDL_PE_SELEM_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/idl/i_gate.hxx>
+
+
+namespace udm {
+class Agent_Struct;
+} // namespace udm
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Type;
+class StructElement;
+class Struct;
+
+class PE_StructElement : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ typedef ary::idl::Ce_id RStructElement;
+ typedef ary::idl::Ce_id RStruct;
+
+ PE_StructElement( /// Use for Struct-elements
+ RStructElement & o_rResult,
+ const RStruct & i_rCurStruct,
+ const String & i_rCurStructTemplateParam );
+ PE_StructElement( /// Use for Exception-elements
+ RStructElement & o_rResult,
+ const RStruct & i_rCurExc );
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_StructElement();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Default();
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+
+ private:
+ enum E_State
+ {
+ e_none,
+ expect_type,
+ expect_name,
+ expect_finish
+ };
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ ary::idl::Type_id lhf_FindTemplateParamType() const;
+
+ // DATA
+ E_State eState;
+ RStructElement * pResult;
+ const RStruct * pCurStruct;
+ bool bIsExceptionElement;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nType;
+ String sName;
+ const String * pCurStructTemplateParam;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx
new file mode 100644
index 000000000000..2b0ebf25a0ed
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_servi.hxx
@@ -0,0 +1,149 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_SERVI_HXX
+#define ADC_UIDL_PE_SERVI_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+ namespace idl
+ {
+ class Service;
+ class SglIfcService;
+ }
+}
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Property;
+class PE_Type;
+class PE_Function;
+
+
+class PE_Service : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Service();
+ virtual ~PE_Service();
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_Needs();
+ virtual void Process_Observes();
+ virtual void Process_Default();
+
+ private:
+ void On_Default();
+
+ enum E_State
+ {
+ e_none = 0,
+ need_name,
+ need_curlbr_open,
+ e_std,
+ in_property,
+ in_ifc_type,
+ in_service_type,
+ expect_ifc_separator,
+ expect_service_separator,
+ at_ignore,
+ need_finish,
+ need_base_interface, /// After ":".
+ need_curlbr_open_sib, /// After base interface in single interface based service.
+ e_std_sib, /// Standard in single interface based service.
+ e_STATES_MAX
+ };
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+ virtual UnoIDL_PE & MyPE();
+
+ void StartProperty();
+
+
+ // DATA
+ E_State eState;
+ String sData_Name;
+ bool bIsPreDeclaration;
+ ary::idl::Service * pCurService;
+ ary::idl::SglIfcService *
+ pCurSiService;
+ ary::idl::Ce_id nCurService; // Needed for PE_Attribute.
+
+ Dyn<PE_Property> pPE_Property;
+ ary::idl::Ce_id nCurParsed_Property;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsed_Type;
+
+ Dyn<PE_Function> pPE_Constructor;
+
+ bool bOptionalMember;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx
new file mode 100644
index 000000000000..5b1507d9e8ca
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_singl.hxx
@@ -0,0 +1,150 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_SINGL_HXX
+#define LUIDL_PE_SINGL_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace ary
+{
+ namespace idl
+ {
+ class Singleton;
+ class SglIfcSingleton;
+ }
+}
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Type;
+
+
+class PE_Singleton : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Singleton();
+ virtual ~PE_Singleton();
+
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none = 0,
+ need_name,
+ need_curlbr_open,
+ e_std,
+ in_service,
+ need_finish,
+ in_base_interface,
+ e_STATES_MAX
+ };
+
+
+#if 0
+ enum E_TokenType /// @ATTENTION Do not change existing values (except of tt_MAX) !!! Else array-indices will break.
+ {
+ tt_metatype = 0,
+ tt_identifier = 1,
+ tt_punctuation = 2,
+ tt_startoftype = 3,
+ tt_MAX
+ };
+ typedef void (PE_Singleton::*F_TOK)(const char *);
+
+
+ void On_need_singleton_MetaType(const char * i_sText);
+ void On_need_name_Identifer(const char * i_sText);
+ void On_need_curlbr_open_Punctuation(const char * i_sText);
+ void On_std_GotoService(const char * i_sText);
+ void On_std_Punctuation(const char * i_sText);
+ void On_need_finish_Punctuation(const char * i_sText);
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+#endif // 0
+
+ void On_Default();
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+// static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+ String sData_Name;
+ bool bIsPreDeclaration;
+ ary::idl::Singleton *
+ pCurSingleton;
+ ary::idl::SglIfcSingleton *
+ pCurSiSingleton;
+
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsed_Type;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx
new file mode 100644
index 000000000000..7fefde39dd0a
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_struc.hxx
@@ -0,0 +1,285 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_STRUC_HXX
+#define LUIDL_PE_STRUC_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include <s2_luidl/semnode.hxx>
+#include <ary/qualiname.hxx>
+ // PARAMETERS
+
+
+
+namespace csi
+{
+namespace prl
+{
+ class TNamespace;
+}
+}
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class Struct;
+class StructElement;
+class PE_StructElement;
+class PE_Type;
+
+
+class PE_Struct : public UnoIDL_PE
+{
+ public:
+ PE_Struct();
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Struct();
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ private:
+ struct S_Work
+ {
+ S_Work();
+
+ void InitData();
+ void Prepare_PE_QualifiedName();
+ void Prepare_PE_Element();
+ void Data_Set_Name(
+ const char * i_sName );
+ void Data_Set_TemplateParam(
+ const char * i_sTemplateParam );
+
+ String sData_Name;
+ String sData_TemplateParam;
+ bool bIsPreDeclaration;
+ ary::idl::Ce_id nCurStruct;
+
+ Dyn<PE_StructElement>
+ pPE_Element;
+ ary::idl::Ce_id nCurParsed_ElementRef;
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nCurParsed_Base;
+ };
+
+ struct S_Stati;
+ class PE_StructState;
+ friend struct S_Stati;
+ friend class PE_StructState;
+
+
+ class PE_StructState : public ParseEnvState
+ {
+ public:
+
+ protected:
+ PE_StructState(
+ PE_Struct & i_rStruct )
+ : rStruct(i_rStruct) {}
+ void MoveState(
+ ParseEnvState & i_rState ) const;
+ void SetResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ UnoIDL_PE * i_pParseEnv2Push = 0 ) const
+ { rStruct.SetResult(i_eDone, i_eWhat2DoWithEnvStack, i_pParseEnv2Push); }
+
+ S_Stati & Stati() const { return *rStruct.pStati; }
+ S_Work & Work() const { return rStruct.aWork; }
+ PE_Struct & PE() const { return rStruct; }
+
+ private:
+ virtual UnoIDL_PE & MyPE();
+ // DATA
+ PE_Struct & rStruct;
+ };
+
+ class State_None : public PE_StructState
+ {
+ public:
+ State_None(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ };
+ class State_WaitForName : public PE_StructState
+ { // -> Name
+ public:
+ State_WaitForName(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ };
+ class State_GotName : public PE_StructState
+ { // -> : { ; <
+ public:
+ State_GotName(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForTemplateParam : public PE_StructState
+ { // -> Template parameter identifier
+ public:
+ State_WaitForTemplateParam(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ };
+ class State_WaitForTemplateEnd : public PE_StructState
+ { // -> >
+ public:
+ State_WaitForTemplateEnd(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForBase : public PE_StructState
+ { // -> Base
+ public:
+ State_WaitForBase(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void On_SubPE_Left();
+ };
+ class State_GotBase : public PE_StructState
+ { // -> {
+ public:
+ State_GotBase(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForElement : public PE_StructState
+ { // -> Typ }
+ public:
+ State_WaitForElement(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_NameSeparator();
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+ class State_WaitForFinish : public PE_StructState
+ { // -> ;
+ public:
+ State_WaitForFinish(
+ PE_Struct & i_rStruct )
+ : PE_StructState(i_rStruct) {}
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ };
+
+ struct S_Stati
+ {
+ S_Stati(
+ PE_Struct & io_rStruct );
+ void SetState(
+ ParseEnvState & i_rNextState )
+ { pCurStatus = &i_rNextState; }
+
+ State_None aNone;
+ State_WaitForName aWaitForName;
+ State_GotName aGotName;
+ State_WaitForTemplateParam
+ aWaitForTemplateParam;
+ State_WaitForTemplateEnd
+ aWaitForTemplateEnd;
+ State_WaitForBase aWaitForBase;
+ State_GotBase aGotBase;
+ State_WaitForElement
+ aWaitForElement;
+ State_WaitForFinish aWaitForFinish;
+
+ ParseEnvState * pCurStatus;
+ };
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual void ReceiveData();
+
+ public:
+
+ void store_Struct();
+
+ private:
+
+ S_Stati & Stati() { return *pStati; }
+ S_Work & Work() { return aWork; }
+
+ // DATA
+ S_Work aWork;
+ Dyn<S_Stati> pStati;
+};
+
+
+inline void
+PE_Struct::PE_StructState::MoveState(
+ ParseEnvState & i_rState ) const
+ { rStruct.Stati().SetState(i_rState); }
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx
new file mode 100644
index 000000000000..8f3e247ac289
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_tydf2.hxx
@@ -0,0 +1,124 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_PE_TYDF2_HXX
+#define LUIDL_PE_TYDF2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+
+
+namespace csi
+{
+namespace uidl
+{
+
+class PE_Type;
+
+
+class PE_Typedef : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Typedef();
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~PE_Typedef();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none = 0,
+ expect_description,
+ expect_name,
+ got_name,
+ e_STATES_MAX
+ };
+ enum E_TokenType /// @ATTENTION Do not change existing values (except of tt_MAX) !!! Else array-indices will break.
+ {
+ tt_any = 0,
+ tt_identifier,
+ tt_punctuation,
+ tt_MAX
+ };
+ typedef void (PE_Typedef::*F_TOK)(const char *);
+
+
+ void CallHandler(
+ const char * i_sTokenText,
+ E_TokenType i_eTokenType );
+
+ void On_expect_description_Any(const char * i_sText);
+ void On_expect_name_Identifier(const char * i_sText);
+ void On_got_name_Punctuation(const char * i_sText);
+ void On_Default(const char * );
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ static F_TOK aDispatcher[e_STATES_MAX][tt_MAX];
+
+ E_State eState;
+ Dyn<PE_Type> pPE_Type;
+ ary::idl::Type_id nType;
+ String sName;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx
new file mode 100644
index 000000000000..f5af7cd3f75c
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_type2.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PE_TYPE2_HXX
+#define ADC_PE_TYPE2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include<s2_luidl/parsenv2.hxx>
+#include<s2_luidl/pestate.hxx>
+ // COMPONENTS
+#include<ary/qualiname.hxx>
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class PE_Type : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Type(
+ ary::idl::Type_id & o_rResult );
+ virtual ~PE_Type();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_NameSeparator();
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken );
+ virtual void Process_Default();
+
+ private:
+ enum E_State
+ {
+ e_none = 0,
+ expect_type,
+ expect_quname_part,
+ expect_quname_separator,
+ in_template_type
+ };
+
+ void Finish();
+ PE_Type & MyTemplateType();
+
+ virtual void InitData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ ary::idl::Type_id * pResult;
+
+ uintt nIsSequenceCounter;
+ uintt nSequenceDownCounter;
+ bool bIsUnsigned;
+ ary::QualifiedName sFullType;
+
+ E_State eState;
+ String sLastPart;
+
+ Dyn<PE_Type> pPE_TemplateType; /// @attention Recursion, only initiate, if needed!
+ ary::idl::Type_id nTemplateType;
+ std::vector<ary::idl::Type_id>
+ aTemplateParameters;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx b/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx
new file mode 100644
index 000000000000..8c186b7c685b
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pe_vari2.hxx
@@ -0,0 +1,107 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_PE_VARI2_HXX
+#define ADC_UIDL_PE_VARI2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/parsenv2.hxx>
+#include <s2_luidl/pestate.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class PE_Type;
+
+
+class PE_Variable : public UnoIDL_PE,
+ public ParseEnvState
+{
+ public:
+ PE_Variable(
+ ary::idl::Type_id & i_rResult_Type,
+ String & i_rResult_Name );
+ virtual void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::Repository &
+ io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ virtual ~PE_Variable();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ virtual void Process_Default();
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ private:
+ enum E_State
+ {
+ e_none,
+ expect_type,
+ expect_name,
+ expect_finish
+ };
+
+ virtual void InitData();
+ virtual void ReceiveData();
+ virtual void TransferData();
+ virtual UnoIDL_PE & MyPE();
+
+ // DATA
+ E_State eState;
+ ary::idl::Type_id * pResult_Type;
+ String * pResult_Name;
+
+ Dyn<PE_Type> pPE_Type;
+};
+
+
+
+} // namespace uidl
+} // namespace csi
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/pestate.hxx b/autodoc/source/parser_i/inc/s2_luidl/pestate.hxx
new file mode 100644
index 000000000000..6aa929fbd488
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/pestate.hxx
@@ -0,0 +1,106 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PESTATE_HXX
+#define ADC_PESTATE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include<s2_luidl/tokintpr.hxx>
+#include<s2_luidl/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokIdentifier;
+class TokBuiltInType;
+class TokPunctuation;
+class Tok_Documentation;
+
+class ParseEnvState : public TokenInterpreter,
+ virtual protected TokenProcessing_Types
+{
+ public:
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken );
+ virtual void Process_NameSeparator();
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken );
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken );
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken );
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken );
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken );
+ virtual void Process_ParameterHandling(
+ const TokParameterHandling &
+ i_rToken );
+ virtual void Process_Raises();
+ virtual void Process_Needs();
+ virtual void Process_Observes();
+ virtual void Process_Assignment(
+ const TokAssignment &
+ i_rToken );
+ virtual void Process_EOL();
+
+ virtual void On_SubPE_Left();
+
+ virtual void Process_Default();
+
+ protected:
+ ParseEnvState() : bDefaultIsError(true) {}
+ void SetDefault2Ignore() { bDefaultIsError = false; }
+
+ private:
+ virtual UnoIDL_PE & MyPE() = 0;
+ bool bDefaultIsError;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx b/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx
new file mode 100644
index 000000000000..f551ad1e8575
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/semnode.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_SEMNODE_HXX
+#define ADC_SEMNODE_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/tokproct.hxx>
+ // COMPONENTS
+ // PARAMETERS
+#include <ary/qualiname.hxx>
+// #include <udm/ref.hxx>
+
+
+namespace ary
+{
+ class QualifiedName;
+ class Repository;
+
+namespace idl
+{
+ class Gate;
+ class Module;
+} // namespace idl
+} // namespace ary
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class Struct;
+class Token;
+
+
+/** is an implementation class for UnoIDL_PE s
+*/
+class SemanticNode : private TokenProcessing_Types
+{
+ public:
+ SemanticNode();
+ void EstablishContacts(
+ UnoIDL_PE * io_pParentPE,
+ ary::idl::Gate & io_rRepository,
+ TokenProcessing_Result &
+ o_rResult );
+ ~SemanticNode();
+
+ void SetTokenResult(
+ E_TokenDone i_eDone,
+ E_EnvStackAction i_eWhat2DoWithEnvStack,
+ UnoIDL_PE * i_pParseEnv2Push = 0 );
+ UnoIDL_PE * Parent() const { return pParentPE; }
+ ary::idl::Gate & AryGate() const { return *pAryGate; }
+ TokenProcessing_Result &
+ TokenResult() const { return *pTokenResult; }
+
+ private:
+ // DATA
+ UnoIDL_PE * pParentPE;
+ ary::idl::Gate * pAryGate;
+ TokenProcessing_Result *
+ pTokenResult;
+};
+
+
+/*
+class Trying_PE
+{
+ public:
+ virtual ~Trying_PE() {}
+
+ protected:
+ Trying_PE();
+
+ virtual void ProcessToken(
+ const Token & i_rToken );
+
+ void StartTry(
+ UnoIDL_PE & i_rFirstTry );
+ void Add2Try(
+ UnoIDL_PE & i_rTry );
+ bool AmITrying() const;
+ UnoIDL_PE * NextTry() const;
+ void FinishTry();
+
+ private:
+ std::vector<UnoIDL_PE*>
+ aTryableSubEnvironments;
+ uintt nTryCounter;
+};
+
+*/
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/smp_uidl.hxx b/autodoc/source/parser_i/inc/s2_luidl/smp_uidl.hxx
new file mode 100644
index 000000000000..255bf244cd9c
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/smp_uidl.hxx
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_SMP_HXX
+#define ADC_SMP_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/tok_recv.hxx>
+#include <s2_dsapi/tok_recv.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+/** is an implementation class for ParseEnvironment
+*/
+class SemanticParser : public csi::uidl::Token_Receiver,
+ public csi::dsapi::Token_Receiver
+{
+ public:
+ typedef std::deque< DYN TextToken * > TokenQueue;
+
+ ~SemanticParser();
+
+
+ void Receive(
+ DYN csi::uidl::Token &
+ let_drToken );
+ void Receive(
+ DYN csi::dsapi::Token &
+ let_drToken );
+
+ private:
+ // DATA
+ TokenQueue aTokenQueue;
+
+
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tk_const.hxx b/autodoc/source/parser_i/inc/s2_luidl/tk_const.hxx
new file mode 100644
index 000000000000..44db10611d82
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tk_const.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_TK_CONST_HXX
+#define ADC_UIDL_TK_CONST_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/uidl_tok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokAssignment : public Token
+{
+ public:
+ TokAssignment(
+ const char * i_sText )
+ : sText(i_sText) {}
+
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ private:
+ // DATA
+ String sText;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tk_ident.hxx b/autodoc/source/parser_i/inc/s2_luidl/tk_ident.hxx
new file mode 100644
index 000000000000..ba46da292512
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tk_ident.hxx
@@ -0,0 +1,75 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_TK_IDENT_HXX
+#define ADC_UIDL_TK_IDENT_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/uidl_tok.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokIdentifier : public Token
+{
+ public:
+ TokIdentifier(
+ const char * i_sText )
+ : sText(i_sText) {}
+
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ private:
+ // DATA
+ String sText;
+};
+
+class TokNameSeparator : public Token
+{
+ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx b/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx
new file mode 100644
index 000000000000..f8e4268e9f3b
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tk_keyw.hxx
@@ -0,0 +1,251 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_TK_KEYW_HXX
+#define ADC_UIDL_TK_KEYW_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/uidl_tok.hxx>
+ // COMPONENTS
+#include <luxenum.hxx>
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokKeyword : public Token
+{
+};
+
+
+class TokBuiltInType : public TokKeyword
+{
+ public:
+ enum E_TokenId
+ {
+ e_none = 0,
+ bty_any = 1,
+ bty_boolean = 2,
+ bty_byte = 3,
+ bty_char = 4,
+ bty_double = 5,
+ bty_hyper = 6,
+ bty_long = 7,
+ bty_short = 8,
+ bty_string = 9,
+ bty_void = 10,
+ bty_ellipse = 11
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ TokBuiltInType(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+
+class TokTypeModifier : public TokKeyword
+{
+ public:
+ enum E_TokenId
+ {
+ e_none = 0,
+ tmod_unsigned = 1,
+ tmod_sequence
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ TokTypeModifier(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class TokMetaType : public TokKeyword
+{
+ public:
+ enum E_TokenId
+ {
+ e_none = 0,
+ mt_attribute = 1,
+ mt_constants,
+ mt_enum,
+ mt_exception,
+ mt_ident,
+ mt_interface,
+ mt_module,
+ mt_property,
+ mt_service,
+ mt_singleton,
+ mt_struct,
+ mt_typedef,
+ mt_uik
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ TokMetaType(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+ E_TokenId Id() const { return eTag; }
+
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class TokStereotype : public TokKeyword
+{
+ public:
+ // TYPES
+ enum E_TokenId
+ {
+ e_none = 0,
+ ste_bound = 1,
+ ste_const,
+ ste_constrained,
+ ste_maybeambiguous,
+ ste_maybedefault,
+ ste_maybevoid,
+ ste_oneway,
+ ste_optional,
+ ste_readonly,
+ ste_removable,
+ ste_virtual,
+ ste_transient,
+ ste_published
+ };
+
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ TokStereotype(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char *
+ Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class TokParameterHandling : public TokKeyword
+{
+ public:
+ // TYPES
+ enum E_TokenId
+ {
+ e_none = 0,
+ ph_in,
+ ph_out,
+ ph_inout
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+ TokParameterHandling(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char *
+ Text() const;
+ E_TokenId Id() const { return eTag; }
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class TokRaises : public TokKeyword
+{
+ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+class TokNeeds : public TokKeyword
+{
+ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+class TokObserves : public TokKeyword
+{
+ public:
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ virtual const char *
+ Text() const;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tk_punct.hxx b/autodoc/source/parser_i/inc/s2_luidl/tk_punct.hxx
new file mode 100644
index 000000000000..f0e777e447b6
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tk_punct.hxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_TK_PUNCT_HXX
+#define ADC_UIDL_TK_PUNCT_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <s2_luidl/uidl_tok.hxx>
+ // COMPONENTS
+#include <luxenum.hxx>
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokPunctuation : public Token
+{
+ public:
+ // TYPES
+ enum E_TokenId
+ {
+ e_none = 0,
+ BracketOpen = 1, // (
+ BracketClose = 2, // )
+ ArrayBracketOpen = 3, // [
+ ArrayBracketClose = 4, // ]
+ CurledBracketOpen = 5, // {
+ CurledBracketClose = 6, // }
+ Semicolon = 7, // ;
+ Colon = 8, // :
+ DoubleColon = 9, // ::
+ Comma = 10, // ,
+ Minus = 11, // -
+ Fullstop = 12, // .
+ Lesser = 13, // <
+ Greater = 14 // >
+ };
+ typedef lux::Enum<E_TokenId> EV_TokenId;
+
+
+ TokPunctuation(
+ EV_TokenId i_eTag )
+ : eTag(i_eTag) {}
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char *
+ Text() const;
+ EV_TokenId Id() const { return eTag; }
+
+
+ private:
+ // DATA
+ EV_TokenId eTag;
+};
+
+class Tok_EOL : public Token
+{
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char *
+ Text() const;
+};
+
+class Tok_EOF : public Token
+{
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const;
+ // INQUIRY
+ virtual const char *
+ Text() const;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tkp_uidl.hxx b/autodoc/source/parser_i/inc/s2_luidl/tkp_uidl.hxx
new file mode 100644
index 000000000000..2a25820bf248
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tkp_uidl.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKP_UIDL_HXX
+#define ADC_TKP_UIDL_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkp2.hxx>
+ // COMPONENTS
+ // PARAMETRS
+
+class TkpDocuContext;
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+
+class Token_Receiver;
+class Context_UidlCode;
+
+
+/** This is a TokenParser which is able to parse tokens from
+ C++ source code.
+*/
+class TokenParser_Uidl : public TokenParse2
+{
+ public:
+ // LIFECYCLE
+ TokenParser_Uidl(
+ Token_Receiver & o_rUidlReceiver,
+ DYN TkpDocuContext &
+ let_drDocuContext );
+ virtual ~TokenParser_Uidl();
+
+ // OPERATIONS
+ private:
+ virtual ::TkpContext &
+ CurrentContext();
+
+ virtual void SetStartContext();
+ virtual void SetCurrentContext(
+ TkpContext & io_rContext );
+ // DATA
+ Dyn<Context_UidlCode>
+ pBaseContext;
+ ::TkpContext * pCurContext;
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tokintpr.hxx b/autodoc/source/parser_i/inc/s2_luidl/tokintpr.hxx
new file mode 100644
index 000000000000..110bf59b8fb5
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tokintpr.hxx
@@ -0,0 +1,98 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_LUIDL_TOKINTPR_HXX
+#define ADC_LUIDL_TOKINTPR_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokIdentifier;
+class TokPunctuation;
+class TokBuiltInType;
+class TokTypeModifier;
+class TokMetaType;
+class TokStereotype;
+class TokParameterHandling;
+class TokAssignment;
+class Tok_Documentation;
+
+
+class TokenInterpreter
+{
+ public:
+ virtual ~TokenInterpreter() {}
+
+ virtual void Process_Identifier(
+ const TokIdentifier &
+ i_rToken ) = 0;
+ virtual void Process_NameSeparator() = 0; // ::
+ virtual void Process_Punctuation(
+ const TokPunctuation &
+ i_rToken ) = 0;
+ virtual void Process_BuiltInType(
+ const TokBuiltInType &
+ i_rToken ) = 0;
+ virtual void Process_TypeModifier(
+ const TokTypeModifier &
+ i_rToken ) = 0;
+ virtual void Process_MetaType(
+ const TokMetaType & i_rToken ) = 0;
+ virtual void Process_Stereotype(
+ const TokStereotype &
+ i_rToken ) = 0;
+ virtual void Process_ParameterHandling(
+ const TokParameterHandling &
+ i_rToken ) = 0;
+ virtual void Process_Raises() = 0;
+ virtual void Process_Needs() = 0;
+ virtual void Process_Observes() = 0;
+ virtual void Process_Assignment(
+ const TokAssignment &
+ i_rToken ) = 0;
+ virtual void Process_EOL() = 0;
+};
+
+
+
+// IMPLEMENTATION
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx b/autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx
new file mode 100644
index 000000000000..fa31d63db7ca
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tokproct.hxx
@@ -0,0 +1,93 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TOKPROCT_HXX
+#define ADC_TOKPROCT_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class UnoIDL_PE;
+
+
+/** is a parent class for classes, which take part in parsing tokens semantically.
+ It provides some types for them.
+*/
+class TokenProcessing_Types
+{
+ public:
+ enum E_TokenDone
+ {
+ not_done = 0,
+ done = 1
+ };
+
+ enum E_EnvStackAction
+ {
+ stay, // same parse environment
+ push_sure, // push sub environment, which must be the correct one
+ push_try, // push sub environment, which is tried, if it may be the right one
+ pop_success, // return to parent environment, parsing was successful
+ pop_failure // return to parent environment, but an error occured.
+ };
+
+ struct TokenProcessing_Result
+ {
+ E_TokenDone eDone;
+ E_EnvStackAction eStackAction;
+ UnoIDL_PE * pEnv2Push;
+
+ TokenProcessing_Result()
+ : eDone(not_done), eStackAction(stay), pEnv2Push(0) {}
+ void reset() { eDone = not_done; eStackAction = stay; pEnv2Push = 0; }
+ };
+
+ enum E_ParseResult
+ {
+ res_error,
+ res_complete,
+ res_predeclaration
+ };
+};
+
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/tokrecv.hxx b/autodoc/source/parser_i/inc/s2_luidl/tokrecv.hxx
new file mode 100644
index 000000000000..e1ed8bddeeef
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/tokrecv.hxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef LUIDL_TOKRECV_HXX
+#define LUIDL_TOKRECV_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class Token;
+
+/**
+@descr
+*/
+class Token_Receiver
+{
+ public:
+ virtual ~Token_Receiver() {}
+ virtual void Receive(
+ DYN Token & let_drToken ) = 0;
+ virtual void Increment_CurLine() = 0;
+};
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/s2_luidl/uidl_tok.hxx b/autodoc/source/parser_i/inc/s2_luidl/uidl_tok.hxx
new file mode 100644
index 000000000000..d2b613710b20
--- /dev/null
+++ b/autodoc/source/parser_i/inc/s2_luidl/uidl_tok.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_UIDL_TOK_HXX
+#define ADC_UIDL_TOK_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/token2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class ParserInfo;
+
+namespace csi
+{
+namespace uidl
+{
+
+
+class TokenInterpreter;
+
+class Token : public TextToken
+{
+ public:
+ // LIFECYCLE
+ virtual ~Token() {}
+
+ // OPERATIONS
+ virtual void Trigger(
+ TokenInterpreter & io_rInterpreter ) const = 0;
+};
+
+} // namespace uidl
+} // namespace csi
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/semantic/parsenv2.hxx b/autodoc/source/parser_i/inc/semantic/parsenv2.hxx
new file mode 100644
index 000000000000..c13b58f5f89d
--- /dev/null
+++ b/autodoc/source/parser_i/inc/semantic/parsenv2.hxx
@@ -0,0 +1,51 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_PARSEENV2_HXX
+#define ADC_PARSEENV2_HXX
+
+
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+#include <queue>
+
+
+
+class ParseEnvironment
+{
+ public:
+ virtual ~ParseEnvironment();
+
+ virtual void Enter() = 0;
+};
+
+
+#endif
+
diff --git a/autodoc/source/parser_i/inc/tokens/stmstar2.hxx b/autodoc/source/parser_i/inc/tokens/stmstar2.hxx
new file mode 100644
index 000000000000..9e248a3538a8
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/stmstar2.hxx
@@ -0,0 +1,83 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTAR2_HXX
+#define ADC_STMSTAR2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/stmstat2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+ // SERVICES
+
+
+class StmArrayStatu2 : public StmStatu2
+{
+ public:
+ // LIFECYCLE
+ StmArrayStatu2(
+ intt i_nStatusSize,
+ const INT16 * in_aArrayModel,
+ uintt i_nTokenId,
+ bool in_bIsDefault );
+ ~StmArrayStatu2();
+
+ // INQUIRY
+ StmStatu2::Branch NextBy(
+ intt in_nFollowersIndex) const;
+ UINT16 TokenId() const { return nTokenId; }
+ virtual bool IsADefault() const;
+
+ // ACCESS
+ virtual StmArrayStatu2 *
+ AsArray();
+ bool SetBranch(
+ intt in_nBranchIx,
+ StmStatu2::Branch
+ in_nBranch );
+ void SetTokenId(
+ UINT16 in_nTokenId );
+ private:
+ StmStatu2::Branch * dpBranches;
+ intt nNrOfBranches;
+ UINT16 nTokenId;
+ bool bIsADefault;
+};
+
+
+// IMPLEMENTATION
+
+inline void
+StmArrayStatu2::SetTokenId( UINT16 in_nTokenId )
+ { nTokenId = in_nTokenId; }
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/stmstat2.hxx b/autodoc/source/parser_i/inc/tokens/stmstat2.hxx
new file mode 100644
index 000000000000..7117d7202df4
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/stmstat2.hxx
@@ -0,0 +1,68 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTAT2_HXX
+#define ADC_STMSTAT2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+class StmArrayStatu2;
+class StmBoundsStatu2;
+
+/** A StmStatu2 is a state within a StateMachin2.
+ There are two kinds of it. Either its an array of pointers to
+ other states within the state machine - an ArrayStatus.
+
+ Or it is a BoundsStatus, which shows, the token cannot be
+ followed further within the StateMachin2.
+**/
+class StmStatu2 // := "State machine status"
+{
+ public:
+ typedef intt Branch; /// Values >= 0 give a next #Status' ID.
+ /// Values <= 0 tell, that a token is finished.
+ /// a value < 0 returns the status back to an upper level state machine.
+ // LIFECYCLE
+ virtual ~StmStatu2() {}
+
+ // OPERATIONS
+ virtual StmArrayStatu2 *
+ AsArray();
+ virtual StmBoundsStatu2 *
+ AsBounds();
+
+ // INQUIRY
+ virtual bool IsADefault() const = 0;
+};
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/stmstfi2.hxx b/autodoc/source/parser_i/inc/tokens/stmstfi2.hxx
new file mode 100644
index 000000000000..dc50159ff0cf
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/stmstfi2.hxx
@@ -0,0 +1,80 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_STMSTFI2_HXX
+#define ADC_STMSTFI2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/stmstat2.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class TkpContext;
+class StateMachineContext;
+
+/**
+**/
+class StmBoundsStatu2 : public StmStatu2
+{
+ public:
+ // LIFECYCLE
+ StmBoundsStatu2(
+ StateMachineContext &
+ o_rOwner,
+ TkpContext & i_rFollowUpContext,
+ uintt i_nStatusFunctionNr,
+ bool i_bIsDefault );
+ // INQUIRY
+ TkpContext * FollowUpContext();
+ uintt StatusFunctionNr() const;
+ virtual bool IsADefault() const;
+
+ // ACCESS
+ virtual StmBoundsStatu2 *
+ AsBounds();
+
+ private:
+ StateMachineContext *
+ pOwner;
+ TkpContext * pFollowUpContext;
+ uintt nStatusFunctionNr;
+ bool bIsDefault;
+};
+
+inline TkpContext *
+StmBoundsStatu2::FollowUpContext()
+ { return pFollowUpContext; }
+inline uintt
+StmBoundsStatu2::StatusFunctionNr() const
+ { return nStatusFunctionNr; }
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/tkp2.hxx b/autodoc/source/parser_i/inc/tokens/tkp2.hxx
new file mode 100644
index 000000000000..5f3be22d0147
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/tkp2.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKP2_HXX
+#define ADC_TKP2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+class CharacterSource;
+class TkpContext;
+ // PARAMETRS
+
+
+
+/** This is the interface for parser classes, which get a sequence of Token s from
+ a text.
+
+ Start() starts to parse the text from the given i_rSource.
+ GetNextToken() returns a Token on the heap as long as there are
+ still characters in the text left. The last time GetNextToken()
+ returns NULL.
+
+ The algorithms for parsing tokens from the text are an issue of
+ the derived classes.
+*/
+class TokenParse2
+{
+ public:
+ // LIFECYCLE
+ TokenParse2();
+ virtual ~TokenParse2() {}
+
+ // OPERATIONS
+ virtual void Start(
+ CharacterSource &
+ i_rSource );
+
+ /** @short Gets the next identifiable token out of the
+ source code.
+ @return true, if there was passed a valid token.
+ false, if the parsed stream is finished or
+ an error occured.
+ */
+ bool GetNextToken();
+
+ private:
+ virtual void SetStartContext() = 0;
+ virtual void SetCurrentContext(
+ TkpContext & io_rContext ) = 0;
+ virtual TkpContext &
+ CurrentContext() = 0;
+ // DATA
+ CharacterSource * pChars;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/tkpcont2.hxx b/autodoc/source/parser_i/inc/tokens/tkpcont2.hxx
new file mode 100644
index 000000000000..96f92030b9de
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/tkpcont2.hxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKPCONT2_HXX
+#define ADC_TKPCONT2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETERS
+class CharacterSource;
+class TkpNullContext;
+class TkpNullContex2;
+
+/** @task
+ Specifies a context within which tokens are interpreted in a special
+ way. For example in parsing C++ there could be a context for code,
+ one for comments and a third one for preprocessor statements, because
+ each of these would give the same token different meanings.
+**/
+class TkpContext
+{
+ public:
+ // LIFECYCLE
+ virtual ~TkpContext() {}
+
+ // OPERATIONS
+ /** @descr
+ The functions starts to parse with the CurToken() of io_rText.
+ It leaves io_rText at the first char of the following Token or
+ the following Context.
+
+ This function returns, when a context has parsed some characterss
+ and completed a token OR left the context.
+ If the token is to be ignored, PassNewToken() returns false
+ and cuts the token from io_rText.
+ If the token is to be parsed further in a different context,
+ PassNewToken() returns false, but the token is
+ NOT cut from io_rText.
+
+ If the function has found a valid and complete token, PassNewToken()
+ passes the parsed token to the internally known receiver and
+ returns true. The token is cut from io_rText.
+ **/
+ virtual void ReadCharChain(
+ CharacterSource & io_rText ) = 0;
+ /** Has to pass the parsed token to a known receiver.
+ @return true, if a token was passed.
+ false, if no token was parsed complete by this context.
+ */
+ virtual bool PassNewToken() = 0;
+ virtual TkpContext &
+ FollowUpContext() = 0;
+
+ static TkpNullContext &
+ Null_();
+};
+
+TkpNullContex2 & TkpContext_Null2_();
+
+class StateMachineContext
+{
+ public:
+ virtual ~StateMachineContext() {}
+
+ /// Is used by StmBoundsStatu2 only.
+ virtual void PerformStatusFunction(
+ uintt i_nStatusSignal,
+ UINT16 i_nTokenId,
+ CharacterSource & io_rText ) = 0;
+};
+
+class TkpNullContex2 : public TkpContext
+{
+ public:
+ ~TkpNullContex2();
+
+ virtual void ReadCharChain(
+ CharacterSource & io_rText );
+ virtual bool PassNewToken();
+ virtual TkpContext &
+ FollowUpContext();
+};
+
+class TkpDocuContext : public TkpContext
+{
+ public:
+ virtual void SetParentContext(
+ TkpContext & io_rParentContext,
+ const char * i_sMultiLineEndToken ) = 0;
+ virtual void SetMode_IsMultiLine(
+ bool i_bTrue ) = 0;
+};
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/tkpstam2.hxx b/autodoc/source/parser_i/inc/tokens/tkpstam2.hxx
new file mode 100644
index 000000000000..e6f76f7ee552
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/tkpstam2.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TKPSTAM2_HXX
+#define ADC_TKPSTAM2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <tokens/tkpcont2.hxx>
+ // COMPONENTS
+#include <tokens/stmstar2.hxx>
+#include <tokens/stmstfi2.hxx>
+
+/** @descr
+ This state-machine models state transitions from one state to another
+ per indices of branches. If the indices represent ascii-char-values,
+ the state-machine can be used for recognising tokens of text.
+
+ The state-machine can be a status itself.
+
+ StateMachin2 needs the array-size of all stati as a guess, how many stati
+ the state machine will contain, when at work.
+
+
+**/
+class StateMachin2
+{
+ public:
+ // Types
+ typedef StmStatu2::Branch Branch;
+ typedef StmStatu2 * * StatusList;
+
+ //# Interface self
+ // LIFECYCLE
+ StateMachin2(
+ intt in_nStatusSize,
+ intt in_nInitial_StatusListSize ); /// The user of the constructor should guess
+ /// the approximate number of stati here to
+ /// avoid multiple reallocations.
+ /// @#AddStatus
+ intt AddStatus( /// @return the new #Status' ID
+ DYN StmStatu2 * let_dpStatus);
+ /// @#AddToken
+ void AddToken(
+ const char * in_sToken,
+ UINT16 in_nTokenId,
+ const INT16 * in_aBranches,
+ INT16 in_nBoundsStatus );
+ ~StateMachin2();
+
+ // OPERATIONS
+ StmBoundsStatu2 &
+ GetCharChain(
+ UINT16 & o_nTokenId,
+ CharacterSource & io_rText );
+ private:
+ // SERVICE FUNCTIONS
+ StmStatu2 & Status(
+ intt in_nStatusNr) const;
+ StmArrayStatu2 &
+ CurrentStatus() const;
+ StmBoundsStatu2 *
+ BoundsStatus() const;
+
+ /// Sets the PeekedStatus.
+ void Peek(
+ intt in_nBranch);
+
+ void ResizeStati(); // Adds space for 32 stati.
+
+ // DATA
+ StatusList pStati; /// List of Status, implemented as simple C-array of length #nStatiSpace
+ /// with nStatiLength valid members (beginning from zero).
+ intt nCurrentStatus;
+ intt nPeekedStatus;
+
+ intt nStatusSize; /// Size of the branch array of a single status.
+
+ intt nNrofStati; /// Nr of Stati so far.
+ intt nStatiSpace; /// Size of allocated array for #pStati (size in items).
+};
+
+
+
+/** @#AddToken
+ @descr
+ Adds a token, which will be recogniszeds by the
+ statemachine.
+
+
+**/
+
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/tokens/token2.hxx b/autodoc/source/parser_i/inc/tokens/token2.hxx
new file mode 100644
index 000000000000..a980d28e8c93
--- /dev/null
+++ b/autodoc/source/parser_i/inc/tokens/token2.hxx
@@ -0,0 +1,63 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_TOKEN2_HXX
+#define ADC_TOKEN2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+ // COMPONENTS
+ // PARAMETRS
+
+
+
+/** This is the interface for parser classes, which get a sequence of Token s from
+ a text.
+
+ Start() starts to parse the text from the given i_rSource.
+ GetNextToken() returns a Token on the heap as long as there are
+ still characters in the text left. The last time GetNextToken()
+ returns NULL.
+
+ The algorithms for parsing tokens from the text are an issue of
+ the derived classes.
+*/
+class TextToken
+{
+ public:
+ // LIFECYCLE
+ virtual ~TextToken() {}
+
+
+ // INQUIRY
+ virtual const char* Text() const = 0;
+};
+
+
+#endif
+
+
diff --git a/autodoc/source/parser_i/inc/x_parse2.hxx b/autodoc/source/parser_i/inc/x_parse2.hxx
new file mode 100644
index 000000000000..2cbb1a92ee20
--- /dev/null
+++ b/autodoc/source/parser_i/inc/x_parse2.hxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef ADC_X_PARSE2_HXX
+#define ADC_X_PARSE2_HXX
+
+// USED SERVICES
+ // BASE CLASSES
+#include <cosv/x.hxx>
+ // COMPONENTS
+ // PARAMETERS
+
+
+class X_AutodocParser : public csv::Exception
+{
+ public:
+ // TYPES
+ enum E_Type
+ {
+ x_Any = 0,
+ x_InvalidChar,
+ x_UnexpectedToken,
+ x_UnexpectedEOF
+ };
+ // LIFECYCLE
+ X_AutodocParser(
+ E_Type i_eType,
+ const char * i_sName = "" )
+ : eType(i_eType), sName(i_sName) {}
+ // INQUIRY
+ virtual void GetInfo(
+ std::ostream & o_rOutputMedium ) const;
+
+ private:
+ E_Type eType;
+ String sName;
+
+};
+
+
+
+
+#endif
diff --git a/autodoc/source/parser_i/tokens/makefile.mk b/autodoc/source/parser_i/tokens/makefile.mk
new file mode 100644
index 000000000000..9674e6684827
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/makefile.mk
@@ -0,0 +1,63 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+
+PRJNAME=garden
+TARGET=parser2_tokens
+TARGETTYPE=CUI
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/stmstar2.obj \
+ $(OBJ)$/stmstat2.obj \
+ $(OBJ)$/stmstfi2.obj \
+ $(OBJ)$/tkpstam2.obj \
+ $(OBJ)$/tkp2.obj \
+ $(OBJ)$/tkpcont2.obj \
+ $(OBJ)$/x_parse2.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/parser_i/tokens/stmstar2.cxx b/autodoc/source/parser_i/tokens/stmstar2.cxx
new file mode 100644
index 000000000000..dcc2220ae7f0
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/stmstar2.cxx
@@ -0,0 +1,102 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstar2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <x_parse2.hxx>
+
+
+
+StmArrayStatu2::StmArrayStatu2( intt i_nStatusSize,
+ const INT16 * in_aArrayModel,
+ uintt i_nTokenId,
+ bool in_bIsDefault )
+ : dpBranches(new StmStatu2::Branch[i_nStatusSize]),
+ nNrOfBranches(i_nStatusSize),
+ nTokenId(UINT16(i_nTokenId)),
+ bIsADefault(in_bIsDefault)
+{
+ // KORR_FUTURE: Interface of StmArrayStatu2() has to be changed.
+ csv_assert(i_nTokenId < 64536);
+
+ if (in_aArrayModel != 0)
+ {
+ intt count = 0;
+ for (const INT16 * get = in_aArrayModel; count < nNrOfBranches; count++, get++)
+ dpBranches[count] = *get;
+ }
+ else //
+ {
+ memset(dpBranches, 0, nNrOfBranches);
+ } // endif
+}
+
+StmArrayStatu2::~StmArrayStatu2()
+{
+ delete [] dpBranches;
+}
+
+bool
+StmArrayStatu2::SetBranch( intt in_nBranchIx,
+ StmStatu2::Branch in_nBranch )
+{
+ if ( csv::in_range(intt(0), in_nBranchIx, intt(nNrOfBranches) ) )
+ {
+ dpBranches[in_nBranchIx] = in_nBranch;
+ return true;
+ }
+ return false;
+}
+
+
+StmStatu2::Branch
+StmArrayStatu2::NextBy(intt in_nIndex) const
+{
+ if (in_nIndex < 0)
+ throw X_AutodocParser(X_AutodocParser::x_InvalidChar);
+
+ return in_nIndex < nNrOfBranches
+ ? dpBranches[in_nIndex]
+ : dpBranches[nNrOfBranches - 1];
+}
+
+
+bool
+StmArrayStatu2::IsADefault() const
+{
+ return bIsADefault;
+}
+
+StmArrayStatu2 *
+StmArrayStatu2::AsArray()
+{
+ return this;
+}
+
diff --git a/autodoc/source/parser_i/tokens/stmstat2.cxx b/autodoc/source/parser_i/tokens/stmstat2.cxx
new file mode 100644
index 000000000000..a97891c42b39
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/stmstat2.cxx
@@ -0,0 +1,46 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstat2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+
+StmArrayStatu2 *
+StmStatu2::AsArray()
+{
+ return 0;
+}
+
+StmBoundsStatu2 *
+StmStatu2::AsBounds()
+{
+ return 0;
+}
+
+
diff --git a/autodoc/source/parser_i/tokens/stmstfi2.cxx b/autodoc/source/parser_i/tokens/stmstfi2.cxx
new file mode 100644
index 000000000000..c583f36ea246
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/stmstfi2.cxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/stmstfi2.hxx>
+
+
+// NOT FULLY DECLARED SERVICES
+#include <tokens/tkpcont2.hxx>
+
+
+StmBoundsStatu2::StmBoundsStatu2( StateMachineContext &
+ o_rOwner,
+ TkpContext & i_rFollowUpContext,
+ uintt i_nStatusFunctionNr,
+ bool i_bIsDefault )
+ : pOwner(&o_rOwner),
+ pFollowUpContext(&i_rFollowUpContext),
+ nStatusFunctionNr(i_nStatusFunctionNr),
+ bIsDefault(i_bIsDefault)
+{
+}
+
+bool
+StmBoundsStatu2::IsADefault() const
+{
+ return bIsDefault;
+}
+
+StmBoundsStatu2 *
+StmBoundsStatu2::AsBounds()
+{
+ return this;
+}
+
+
+
diff --git a/autodoc/source/parser_i/tokens/tkp2.cxx b/autodoc/source/parser_i/tokens/tkp2.cxx
new file mode 100644
index 000000000000..beeb46d237c0
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/tkp2.cxx
@@ -0,0 +1,62 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkp2.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <tools/tkpchars.hxx>
+#include <tokens/tkpcont2.hxx>
+
+TokenParse2::TokenParse2()
+ : pChars(0)
+{
+}
+
+void
+TokenParse2::Start( CharacterSource & i_rSource )
+{
+ pChars = &i_rSource;
+ SetStartContext();
+}
+
+bool
+TokenParse2::GetNextToken()
+{
+ csv_assert(pChars != 0);
+
+ bool bDone = false;
+ while ( NOT bDone AND NOT pChars->IsFinished() )
+ {
+ CurrentContext().ReadCharChain(*pChars);
+ bDone = CurrentContext().PassNewToken();
+ SetCurrentContext(CurrentContext().FollowUpContext());
+ }
+ return bDone;
+}
+
+
diff --git a/autodoc/source/parser_i/tokens/tkpcont2.cxx b/autodoc/source/parser_i/tokens/tkpcont2.cxx
new file mode 100644
index 000000000000..44502fc296a2
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/tkpcont2.cxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkpcont2.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+
+
+TkpNullContex2 G_aNullContex2;
+
+TkpNullContex2 &
+TkpContext_Null2_()
+{
+ return G_aNullContex2;
+}
+
+TkpNullContex2::~TkpNullContex2()
+{
+}
+
+void
+TkpNullContex2::ReadCharChain( CharacterSource & )
+{
+}
+
+bool
+TkpNullContex2::PassNewToken()
+{
+ return false;
+}
+
+TkpContext &
+TkpNullContex2::FollowUpContext()
+{
+ return *this;
+}
+
+
+
diff --git a/autodoc/source/parser_i/tokens/tkpstam2.cxx b/autodoc/source/parser_i/tokens/tkpstam2.cxx
new file mode 100644
index 000000000000..0edc9070b385
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/tkpstam2.cxx
@@ -0,0 +1,174 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tokens/tkpstam2.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <tokens/stmstar2.hxx>
+#include <tools/tkpchars.hxx>
+
+
+const intt C_nStatuslistResizeValue = 32;
+const intt C_nTopStatus = 0;
+
+StateMachin2::StateMachin2( intt in_nStatusSize,
+ intt in_nInitial_StatusListSize )
+ : pStati(new StmStatu2*[in_nInitial_StatusListSize]),
+ nCurrentStatus(C_nTopStatus),
+ nPeekedStatus(C_nTopStatus),
+ nStatusSize(in_nStatusSize),
+ nNrofStati(0),
+ nStatiSpace(in_nInitial_StatusListSize)
+{
+ csv_assert(in_nStatusSize > 0);
+ csv_assert(in_nInitial_StatusListSize > 0);
+
+ memset(pStati, 0, sizeof(StmStatu2*) * nStatiSpace);
+}
+
+intt
+StateMachin2::AddStatus(StmStatu2 * let_dpStatus)
+{
+ if (nNrofStati == nStatiSpace)
+ {
+ ResizeStati();
+ }
+ pStati[nNrofStati] = let_dpStatus;
+ return nNrofStati++;
+}
+
+void
+StateMachin2::AddToken( const char * in_sToken,
+ UINT16 in_nTokenId,
+ const INT16 * in_aBranches,
+ INT16 in_nBoundsStatus )
+{
+ if (csv::no_str(in_sToken))
+ return;
+
+ // Durch existierende Stati durchhangeln:
+ nCurrentStatus = 0;
+ nPeekedStatus = 0;
+
+ for ( const char * pChar = in_sToken;
+ *pChar != NULCH;
+ ++pChar )
+ {
+ Peek(*pChar);
+ StmStatu2 & rPst = Status(nPeekedStatus);
+ if ( rPst.IsADefault() OR rPst.AsBounds() != 0 )
+ {
+ nPeekedStatus = AddStatus( new StmArrayStatu2(nStatusSize, in_aBranches, 0, false ) );
+ CurrentStatus().SetBranch( *pChar, nPeekedStatus );
+ }
+ nCurrentStatus = nPeekedStatus;
+ } // end for
+ StmArrayStatu2 & rLastStatus = CurrentStatus();
+ rLastStatus.SetTokenId(in_nTokenId);
+ for (intt i = 0; i < nStatusSize; i++)
+ {
+ if (Status(rLastStatus.NextBy(i)).AsBounds() != 0)
+ rLastStatus.SetBranch(i,in_nBoundsStatus);
+ } // end for
+}
+
+StateMachin2::~StateMachin2()
+{
+ for (intt i = 0; i < nNrofStati; i++)
+ {
+ delete pStati[i];
+ }
+ delete [] pStati;
+}
+
+StmBoundsStatu2 &
+StateMachin2::GetCharChain( UINT16 & o_nTokenId,
+ CharacterSource & io_rText )
+{
+ nCurrentStatus = C_nTopStatus;
+ Peek(io_rText.CurChar());
+ while (BoundsStatus() == 0)
+ {
+ nCurrentStatus = nPeekedStatus;
+ Peek(io_rText.MoveOn());
+ }
+ o_nTokenId = CurrentStatus().TokenId();
+
+ return *BoundsStatus();
+}
+
+void
+StateMachin2::ResizeStati()
+{
+ intt nNewSize = nStatiSpace + C_nStatuslistResizeValue;
+ intt i = 0;
+ StatusList pNewStati = new StmStatu2*[nNewSize];
+
+ for ( ; i < nNrofStati; i++)
+ {
+ pNewStati[i] = pStati[i];
+ }
+ memset( pNewStati+i,
+ 0,
+ (nNewSize-i) * sizeof(StmStatu2*) );
+
+ delete [] pStati;
+ pStati = pNewStati;
+ nStatiSpace = nNewSize;
+}
+
+StmStatu2 &
+StateMachin2::Status(intt in_nStatusNr) const
+{
+ csv_assert( csv::in_range(intt(0), in_nStatusNr, intt(nNrofStati)) );
+ return *pStati[in_nStatusNr];
+}
+
+StmArrayStatu2 &
+StateMachin2::CurrentStatus() const
+{
+ StmArrayStatu2 * pCurSt = Status(nCurrentStatus).AsArray();
+ if (pCurSt == 0)
+ {
+ csv_assert(false);
+ }
+ return *pCurSt;
+}
+
+StmBoundsStatu2 *
+StateMachin2::BoundsStatus() const
+{
+ return Status(nPeekedStatus).AsBounds();
+}
+
+void
+StateMachin2::Peek(intt in_nBranch)
+{
+ StmArrayStatu2 & rSt = CurrentStatus();
+ nPeekedStatus = rSt.NextBy(in_nBranch);
+}
diff --git a/autodoc/source/parser_i/tokens/x_parse2.cxx b/autodoc/source/parser_i/tokens/x_parse2.cxx
new file mode 100644
index 000000000000..6bdf7f352d9e
--- /dev/null
+++ b/autodoc/source/parser_i/tokens/x_parse2.cxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <x_parse2.hxx>
+
+// NOT FULLY DECLARED SERVICES
+
+ enum E_Type
+ {
+ x_Any = 0,
+ x_InvalidChar,
+ x_UnexpectedEOF
+ };
+void
+X_AutodocParser::GetInfo( std::ostream & o_rOutputMedium ) const
+{
+ switch (eType)
+ {
+ case x_Any:
+ o_rOutputMedium << "Unspecified parsing exception ." << Endl();
+ break;
+ case x_InvalidChar:
+ o_rOutputMedium << "Unknown character during parsing." << Endl();
+ break;
+ case x_UnexpectedToken:
+ o_rOutputMedium << "Unexpected token " << sName << " found." << Endl();
+ break;
+ case x_UnexpectedEOF:
+ o_rOutputMedium << "Unexpected end of file found." << Endl();
+ break;
+ default:
+ o_rOutputMedium << "Unknown exception during parsing." << Endl();
+ }
+}
+
+
diff --git a/autodoc/source/tools/filecoll.cxx b/autodoc/source/tools/filecoll.cxx
new file mode 100644
index 000000000000..5c2286a18b1e
--- /dev/null
+++ b/autodoc/source/tools/filecoll.cxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tools/filecoll.hxx>
+
+
+// NOT FULLY DEFINED SERVICES
+#include <cosv/ploc_dir.hxx>
+
+#include <stdio.h>
+
+
+FileCollector::FileCollector( uintt i_nRoughNrOfFiles )
+ // : aFoundFiles
+{
+ if (i_nRoughNrOfFiles > 0)
+ aFoundFiles.reserve(i_nRoughNrOfFiles);
+}
+
+uintt
+FileCollector::AddFilesFrom( const char * i_sRootDir,
+ const char * i_sFilter,
+ E_SearchMode i_eSearchMode )
+{
+ uintt nSizeAtStart = aFoundFiles.size();
+
+ if (csv::no_str(i_sFilter) OR csv::no_str(i_sRootDir))
+ {
+ Cout() << "Warning: The filter contains no files." << Endl();
+ return 0;
+ }
+
+ csv::ploc::Directory aDir(i_sRootDir);
+ if (NOT aDir.Exists())
+ {
+ Cerr() << "Warning: The path for the files to be parsed could not be found:\n"
+ << i_sRootDir
+ << Endl();
+ return 0;
+ }
+
+ Cout() << "." << Flush();
+ aDir.GetContainedFiles(aFoundFiles, i_sFilter);
+
+ if (i_eSearchMode == recursive)
+ {
+ StreamStr aPath(1020);
+ aPath << i_sRootDir << csv::ploc::Delimiter();
+ uintt nSubDirStart = aPath.tellp();
+
+ StringVector aSubDirs;
+ aDir.GetContainedDirectories(aSubDirs);
+
+ for ( const_iterator iter = aSubDirs.begin();
+ iter != aSubDirs.end();
+ ++iter )
+ {
+ aPath.seekp(nSubDirStart);
+ aPath << (*iter);
+ AddFilesFrom( aPath.c_str(), i_sFilter, i_eSearchMode );
+ }
+ }
+
+ return aFoundFiles.size() - nSizeAtStart;
+}
+
+uintt
+FileCollector::AddFile( const char * i_sFilePath )
+{
+ FILE * pFile = fopen( i_sFilePath, "r" );
+ if ( pFile == 0 )
+ {
+ Cerr() << "Warning: The path for the file to be parsed could not be found:\n"
+ << i_sFilePath
+ << Endl();
+ return 0;
+ }
+
+ fclose(pFile);
+ aFoundFiles.push_back(i_sFilePath);
+ return 1;
+}
+
+void
+FileCollector::EraseAll()
+{
+ csv::erase_container(aFoundFiles);
+}
+
+FileCollector::const_iterator
+FileCollector::Begin() const
+{
+ return aFoundFiles.begin();
+}
+
+FileCollector::const_iterator
+FileCollector::End() const
+{
+ return aFoundFiles.end();
+}
+
+uintt
+FileCollector::Size() const
+{
+ return aFoundFiles.size();
+}
+
diff --git a/autodoc/source/tools/makefile.mk b/autodoc/source/tools/makefile.mk
new file mode 100644
index 000000000000..31d48edc0898
--- /dev/null
+++ b/autodoc/source/tools/makefile.mk
@@ -0,0 +1,58 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=autodoc
+TARGET=autodoc_tools
+TARGETTYPE=CUI
+
+
+# --- Settings -----------------------------------------------------
+
+ENABLE_EXCEPTIONS=true
+PRJINC=$(PRJ)$/source
+
+
+.INCLUDE : settings.mk
+.INCLUDE : $(PRJ)$/source$/mkinc$/fullcpp.mk
+
+
+
+# --- Files --------------------------------------------------------
+
+OBJFILES= \
+ $(OBJ)$/filecoll.obj \
+ $(OBJ)$/tkpchars.obj
+
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+
diff --git a/autodoc/source/tools/tkpchars.cxx b/autodoc/source/tools/tkpchars.cxx
new file mode 100644
index 000000000000..4538edf1a311
--- /dev/null
+++ b/autodoc/source/tools/tkpchars.cxx
@@ -0,0 +1,159 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <precomp.h>
+#include <tools/tkpchars.hxx>
+
+// NOT FULLY DECLARED SERVICES
+#include <cosv/bstream.hxx>
+#include <cosv/x.hxx>
+
+
+
+CharacterSource::CharacterSource()
+ : dpSource(new char[2]),
+ nSourceSize(0),
+ nCurPos(0),
+ nLastCut(0),
+ nLastTokenStart(0),
+ cCharAtLastCut(0)
+{
+ dpSource[nSourceSize] = NULCH;
+ dpSource[nSourceSize+1] = NULCH;
+}
+
+CharacterSource::~CharacterSource()
+{
+ delete [] dpSource;
+}
+
+void
+CharacterSource::LoadText(csv::bstream & io_rSource)
+{
+ if (dpSource != 0)
+ delete [] dpSource;
+
+ io_rSource.seek(0, csv::end);
+ nSourceSize = intt(io_rSource.position());
+ io_rSource.seek(0);
+
+ dpSource = new char[nSourceSize+1];
+
+ intt nCount = (intt) io_rSource.read(dpSource,nSourceSize);
+ if (nCount != nSourceSize)
+ throw csv::X_Default("IO-Error: Could not load file completely.");
+
+ dpSource[nSourceSize] = NULCH;
+
+ BeginSource();
+}
+
+/// KORR_FUTURE: So far, this works only when tokens do not cross inserted text boundaries.
+void
+CharacterSource::InsertTextAtCurPos( const char * i_sText2Insert )
+{
+ if ( i_sText2Insert == 0 ? true : strlen(i_sText2Insert) == 0 )
+ return;
+
+ aSourcesStack.push( S_SourceState(
+ dpSource,
+ nSourceSize,
+ nCurPos,
+ nLastCut,
+ nLastTokenStart,
+ cCharAtLastCut ) );
+
+ nSourceSize = strlen(i_sText2Insert);
+ dpSource = new char[nSourceSize+1];
+ strcpy( dpSource, i_sText2Insert); // SAFE STRCPY (#100211# - checked)
+
+ BeginSource();
+}
+
+const char *
+CharacterSource::CutToken()
+{
+ dpSource[nLastCut] = cCharAtLastCut;
+ nLastTokenStart = nLastCut;
+ nLastCut = CurPos();
+ cCharAtLastCut = dpSource[nLastCut];
+ dpSource[nLastCut] = NULCH;
+
+ return &dpSource[nLastTokenStart];
+}
+
+void
+CharacterSource::BeginSource()
+{
+ nCurPos = 0;
+ nLastCut = 0;
+ nLastTokenStart = 0;
+ cCharAtLastCut = dpSource[nLastCut];
+ dpSource[nLastCut] = NULCH;
+}
+
+// KORR_FUTURE: So far, this works only when tokens do not cross inserted text boundaries.
+char
+CharacterSource::MoveOn_OverStack()
+{
+ while ( aSourcesStack.size() > 0 AND nCurPos >= nSourceSize-1 )
+ {
+ S_SourceState & aState = aSourcesStack.top();
+ delete [] dpSource;
+
+ dpSource = aState.dpSource;
+ nSourceSize = aState.nSourceSize;
+ nCurPos = aState.nCurPos;
+ nLastCut = aState.nLastCut;
+ nLastTokenStart = aState.nLastTokenStart;
+ cCharAtLastCut = aState.cCharAtLastCut;
+
+ aSourcesStack.pop();
+ }
+
+ if ( nLastCut < nCurPos )
+ CutToken();
+
+ return CurChar();
+}
+
+CharacterSource::
+S_SourceState::S_SourceState( DYN char * dpSource_,
+ intt nSourceSize_,
+ intt nCurPos_,
+ intt nLastCut_,
+ intt nLastTokenStart_,
+ char cCharAtLastCut_ )
+ : dpSource(dpSource_),
+ nSourceSize(nSourceSize_),
+ nCurPos(nCurPos_),
+ nLastCut(nLastCut_),
+ nLastTokenStart(nLastTokenStart_),
+ cCharAtLastCut(cCharAtLastCut_)
+{
+}
+
diff --git a/automation/inc/automation/automation.hxx b/automation/inc/automation/automation.hxx
new file mode 100644
index 000000000000..38babd58849e
--- /dev/null
+++ b/automation/inc/automation/automation.hxx
@@ -0,0 +1,52 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef AUTOMATION_HXX
+#define AUTOMATION_HXX
+
+class ImplRemoteControl;
+
+class RemoteControl
+{
+ ImplRemoteControl* pImpl;
+public:
+ RemoteControl();
+ ~RemoteControl();
+};
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ typedef void ( *pfunc_CreateRemoteControl)();
+ typedef void ( *pfunc_DestroyRemoteControl)();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // AUTOMATION_HXX
diff --git a/automation/inc/automation/commdefines.hxx b/automation/inc/automation/commdefines.hxx
new file mode 100644
index 000000000000..98ebf308c3a7
--- /dev/null
+++ b/automation/inc/automation/commdefines.hxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#include <automation/commtypes.hxx>
+#include <osl/endian.h>
+
+#ifndef MAKEDWORD
+#define MAKEDWORD(wl, wh) ((comm_DWORD)((wl) & 0xFFFF) | (((comm_DWORD)(wh) & 0xFFFF) << 16))
+#endif
+#ifndef LOWORD
+#define LOWORD(d) ((comm_WORD)((comm_DWORD)(d) & 0xFFFF))
+#endif
+#ifndef HIWORD
+#define HIWORD(d) ((comm_WORD)(((comm_DWORD)(d) >> 16) & 0xFFFF))
+#endif
+#ifndef MAKEWORD
+#define MAKEWORD(bl, bh) ((comm_WORD)((bl) & 0xFF) | (((comm_WORD)(bh) & 0xFF) << 8))
+#endif
+#ifndef LOBYTE
+#define LOBYTE(w) ((comm_BYTE)((comm_WORD)(w) & 0xFF))
+#endif
+#ifndef HIBYTE
+#define HIBYTE(w) ((comm_BYTE)(((comm_WORD)(w) >> 8) & 0xFF))
+#endif
+#ifndef MAKEBYTE
+#define MAKEBYTE(nl, nh) ((comm_BYTE)(((nl) & 0x0F) | (((nh) & 0x0F) << 4)))
+#endif
+#ifndef LONIBBLE
+#define LONIBBLE(b) ((comm_BYTE)((b) & 0x0F))
+#endif
+#ifndef HINIBBLE
+#define HINIBBLE(b) ((comm_BYTE)(((b) >> 4) & 0x0F))
+#endif
+
+#ifndef SWAPWORD
+#define SWAPWORD(w) MAKEWORD(HIBYTE(w),LOBYTE(w))
+#endif
+#ifndef SWAPDWORD
+#define SWAPDWORD(d) MAKEDWORD(SWAPWORD(HIWORD(d)),SWAPWORD(LOWORD(d)))
+#endif
+
+#ifdef OSL_BIGENDIAN
+#ifndef NETWORD
+#define NETWORD(w) (comm_WORD)(w)
+#endif
+#ifndef NETDWORD
+#define NETDWORD(d) (comm_DWORD)(d)
+#endif
+#endif // OSL_BIGENDIAN
+
+#ifdef OSL_LITENDIAN
+#ifndef NETWORD
+#define NETWORD(w) MAKEWORD(HIBYTE(w),LOBYTE(w))
+#endif
+#ifndef NETDWORD
+#define NETDWORD(d) MAKEDWORD(NETWORD(HIWORD(d)),NETWORD(LOWORD(d)))
+#endif
+#endif // OSL_LITENDIAN
+
+/**
+ Es gibt zwei arten von Datenpaketen
+ die erste enthlt in den ersten 4 Byte die Lngenangabe und in den Darauffolgenden die Daten
+ Die Lngenangabe bezieht sich nur auf die Daten ohne die Lngenangabe selbst.
+
+ Die Zweite Art von Datenpaketen enthlt Header mit weitere Informationen
+ wie unten beschrieben.
+
+ Umgeschaltet wird mit dem Boolean bUseMultiChannel im Konstruktor des Managers.
+**/
+/**
+Defines fr Header Typen:
+
+Allgemeiner Header:
+ Byte Lnge Inhalt
+ 0..3 4 Lnge des Paketes ohne diese 4 Byte
+ 4 1 Prfsumme ber die Lnge. Stimmt sie nicht wird die Verbindung geschlossen
+ 5..6 2 Lnge des Headers ohne diese 2 Byte
+ 7..8 2 Typ des Headers
+
+CH_SimpleMultiChannel:
+ 9..10 2 Channel
+CH_Handshake Internal Use ONLY
+ Keine Weiteren Daten!
+
+**/
+typedef comm_UINT16 CMProtocol;
+
+#define CM_PROTOCOL_OLDSTYLE (CMProtocol)0x0001
+#define CM_PROTOCOL_MARS (CMProtocol)0x0001
+#define CM_PROTOCOL_BROADCASTER (CMProtocol)0x0002
+#define CM_PROTOCOL_USER_START (CMProtocol)0x0100
+
+typedef comm_USHORT HandshakeType;
+typedef comm_USHORT CommunicationOption;
+
+#define CH_NoHeader 0x0000
+#define CH_SimpleMultiChannel 0x0001
+#define CH_Handshake 0x0002
+
+#define CH_REQUEST_HandshakeAlive ((HandshakeType)0x0101) /// Fordert eine Alive Antwort an
+#define CH_RESPONSE_HandshakeAlive ((HandshakeType)0x0102) /// Alive Antwort
+
+/**
+ Announce supported options:
+ Client announces available options
+ Server returns subset of these options (note that the sbset can be the entire set also)
+**/
+#define CH_SUPPORT_OPTIONS ((HandshakeType)0x0103)
+#define OPT_USE_SHUTDOWN_PROTOCOL ((CommunicationOption)0x0001)
+
+/// these are for making sure all Data is read prior to shutting sown the link
+#define CH_REQUEST_ShutdownLink ((HandshakeType)0x0104) /// Request to Shutdown this link
+#define CH_ShutdownLink ((HandshakeType)0x0105) /// Shutdown this link
+
+#define CH_SetApplication ((HandshakeType)0x0106) /// Set Description of Client
+
diff --git a/automation/inc/automation/commtypes.hxx b/automation/inc/automation/commtypes.hxx
new file mode 100644
index 000000000000..ad8443518e85
--- /dev/null
+++ b/automation/inc/automation/commtypes.hxx
@@ -0,0 +1,100 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to supply the types and defines for Environment independent
+ * building of the packethandler
+ * Only adaption of this file should be necessary. Else it is a bug!
+ * Eather including apropriate files or defining the types when not available in the environment
+ *
+ ************************************************************************/
+
+/** defines al least types
+ comm_BYTE
+ comm_WORD;
+ comm_DWORD;
+ comm_BOOL
+ comm_ULONG
+ comm_USHORT
+ comm_UINT16
+ comm_UINT32
+ comm_UniChar
+**/
+
+#ifndef _COMMTYPES_HXX
+#define _COMMTYPES_HXX
+
+#include <sal/types.h>
+typedef sal_Unicode comm_UniChar;
+
+// this is a trick to be sure the SO types are unknown, so the compiler will yell at us in case we use them
+#ifndef _SOLAR_H
+#define NO_SOLAR
+#endif
+
+#ifdef NO_SOLAR
+#define BYTE BYTE_hidden
+#define BOOL BOOL_hidden
+#define ULONG ULONG_hidden
+#define USHORT USHORT_hidden
+#define UINT16 UINT16_hidden
+#define UINT32 UINT32_hidden
+
+#endif
+
+//#define DBG_ASSERT( cond, text )
+//#define DBG_ERROR( text )
+#include <tools/debug.hxx>
+
+#include <tools/solar.h>
+typedef BYTE comm_BYTE;
+typedef BOOL comm_BOOL;
+typedef sal_uInt32 comm_ULONG;
+typedef sal_uInt16 comm_USHORT;
+typedef UINT16 comm_UINT16;
+typedef UINT32 comm_UINT32;
+
+#ifdef NO_SOLAR
+#undef BYTE
+#undef BOOL
+#undef ULONG
+#undef USHORT
+#undef UINT16
+#undef UINT32
+
+#endif
+
+typedef sal_uInt16 comm_WORD;
+typedef sal_uInt32 comm_DWORD;
+
+class SmartId;
+class String;
+#define comm_String String
+
+#endif
diff --git a/automation/inc/automation/communi.hxx b/automation/inc/automation/communi.hxx
new file mode 100644
index 000000000000..36a6660f1a6d
--- /dev/null
+++ b/automation/inc/automation/communi.hxx
@@ -0,0 +1,180 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _COMMUNI_HXX
+#define _COMMUNI_HXX
+
+#include <svl/svarray.hxx>
+#include <vos/thread.hxx>
+#include <vos/mutex.hxx>
+#include <vcl/timer.hxx>
+#include <automation/simplecm.hxx>
+
+class SvStream;
+class SvMemoryStream;
+//class Application;
+
+class CommunicationManagerServerAcceptThread;
+SV_DECL_PTRARR_SORT( CommunicationLinkList, CommunicationLink*, 1, 10 )
+
+class MultiCommunicationManager : public CommunicationManager
+{
+public:
+ MultiCommunicationManager( BOOL bUseMultiChannel = FALSE );
+ virtual ~MultiCommunicationManager();
+ virtual BOOL StopCommunication(); // Hlt alle CommunicationLinks an
+ virtual BOOL IsLinkValid( CommunicationLink* pCL );
+ virtual USHORT GetCommunicationLinkCount();
+ virtual CommunicationLinkRef GetCommunicationLink( USHORT nNr );
+
+ void DoQuickShutdown( BOOL bQuickShutdown = TRUE) { bGracefullShutdown = !bQuickShutdown; }
+
+protected:
+ virtual void CallConnectionOpened( CommunicationLink* pCL );
+ virtual void CallConnectionClosed( CommunicationLink* pCL );
+ CommunicationLinkList *ActiveLinks;
+ CommunicationLinkList *InactiveLinks; /// Hier sind die CommunicationLinks drin, die sich noch nicht selbst abgemeldet haben.
+ /// allerdings schon ein StopCommunication gekriegt haben, bzw ein ConnectionTerminated
+ virtual void DestroyingLink( CommunicationLink *pCL ); // Link trgt sich im Destruktor aus
+
+ BOOL bGracefullShutdown;
+};
+
+class CommunicationManagerServer : public MultiCommunicationManager
+{
+public:
+ CommunicationManagerServer( BOOL bUseMultiChannel = FALSE ):MultiCommunicationManager( bUseMultiChannel ){;}
+};
+
+class CommunicationManagerClient : public MultiCommunicationManager, public ICommunicationManagerClient
+{
+public:
+ CommunicationManagerClient( BOOL bUseMultiChannel = FALSE );
+};
+
+class CommunicationLinkViaSocket : public SimpleCommunicationLinkViaSocket, public NAMESPACE_VOS(OThread)
+{
+public:
+ CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
+ virtual ~CommunicationLinkViaSocket();
+
+ virtual BOOL IsCommunicationError();
+ virtual BOOL DoTransferDataStream( SvStream *pDataStream, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );
+
+ // Diese sind Virtuelle Links!!!!
+ virtual long ConnectionClosed( void* = NULL );
+ virtual long DataReceived( void* = NULL );
+
+ virtual BOOL StopCommunication();
+
+ void SetPutDataReceivedHdl( Link lPutDataReceived ){ mlPutDataReceived = lPutDataReceived; }
+ Link GetDataReceivedLink () {Link aLink = LINK( this, CommunicationLinkViaSocket, DataReceived ); return aLink;}
+ DECL_LINK( PutDataReceivedHdl, CommunicationLinkViaSocket* );
+
+protected:
+ virtual void SAL_CALL run();
+
+ virtual BOOL ShutdownCommunication();
+ ULONG nConnectionClosedEventId;
+ ULONG nDataReceivedEventId;
+ NAMESPACE_VOS(OMutex) aMConnectionClosed; // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+ NAMESPACE_VOS(OMutex) aMDataReceived; // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+ virtual void WaitForShutdown();
+
+ DECL_LINK( ShutdownLink, void* );
+ Timer aShutdownTimer;
+ BOOL bShutdownStarted;
+ BOOL bDestroying;
+ Link mlPutDataReceived;
+};
+
+class CommunicationManagerServerViaSocket : public CommunicationManagerServer
+{
+ friend class CommunicationManagerServerAcceptThread;
+public:
+ using CommunicationManager::StartCommunication;
+
+ CommunicationManagerServerViaSocket( ULONG nPort, USHORT nMaxCon, BOOL bUseMultiChannel = FALSE );
+ virtual ~CommunicationManagerServerViaSocket();
+
+ virtual BOOL StartCommunication();
+ virtual BOOL StopCommunication();
+
+protected:
+ ULONG nPortToListen;
+ USHORT nMaxConnections;
+
+private:
+ CommunicationManagerServerAcceptThread *pAcceptThread;
+ void AddConnection( CommunicationLink *pNewConnection );
+};
+
+class CommunicationManagerServerAcceptThread: public NAMESPACE_VOS(OThread)
+{
+public:
+ CommunicationManagerServerAcceptThread( CommunicationManagerServerViaSocket* pServer, ULONG nPort, USHORT nMaxCon = CM_UNLIMITED_CONNECTIONS );
+ virtual ~CommunicationManagerServerAcceptThread();
+ CommunicationLinkRef GetNewConnection(){ CommunicationLinkRef xTemp = xmNewConnection; xmNewConnection.Clear(); return xTemp; }
+
+protected:
+ virtual void SAL_CALL run();
+
+private:
+ CommunicationManagerServerViaSocket* pMyServer;
+ NAMESPACE_VOS(OAcceptorSocket) *pAcceptorSocket;
+ ULONG nPortToListen;
+ USHORT nMaxConnections;
+ ULONG nAddConnectionEventId;
+ NAMESPACE_VOS(OMutex) aMAddConnection; // Notwendig, da Event verarbeitet werden kann bevor Variable gesetzt ist
+ void CallInfoMsg( InfoString aMsg ){ pMyServer->CallInfoMsg( aMsg ); }
+ CM_InfoType GetInfoType(){ return pMyServer->GetInfoType(); }
+
+ // Diese beiden werden zum Transport der Connection vom Thread zum Mainthread verwendet.
+ CommunicationLinkRef xmNewConnection;
+ DECL_LINK( AddConnection, void* );
+};
+
+class CommunicationManagerClientViaSocket : public CommunicationManagerClient, CommonSocketFunctions
+{
+public:
+ using CommunicationManager::StartCommunication;
+
+ CommunicationManagerClientViaSocket( ByteString aHost, ULONG nPort, BOOL bUseMultiChannel = FALSE );
+ CommunicationManagerClientViaSocket( BOOL bUseMultiChannel = FALSE );
+ virtual ~CommunicationManagerClientViaSocket();
+
+ virtual BOOL StartCommunication(){ return StartCommunication( aHostToTalk, nPortToTalk );}
+ virtual BOOL StartCommunication( ByteString aHost, ULONG nPort ){ return DoStartCommunication( this, (ICommunicationManagerClient*) this, aHost, nPort );}
+
+private:
+ ByteString aHostToTalk;
+ ULONG nPortToTalk;
+protected:
+ virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS ){ return new CommunicationLinkViaSocket( pCM, pCS ); }
+};
+
+#endif
diff --git a/automation/inc/automation/simplecm.hxx b/automation/inc/automation/simplecm.hxx
new file mode 100644
index 000000000000..018fdceba7d7
--- /dev/null
+++ b/automation/inc/automation/simplecm.hxx
@@ -0,0 +1,393 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SIMPLECM_HXX
+#define _SIMPLECM_HXX
+
+#include <tools/link.hxx>
+#include <tools/string.hxx>
+#include <tools/stream.hxx>
+#include <vos/socket.hxx>
+#include <tools/debug.hxx>
+#include <tools/datetime.hxx>
+
+#include <automation/commdefines.hxx>
+
+// CM steht fr CommunicationManager
+#define CM_UNLIMITED_CONNECTIONS 0xffff
+
+typedef USHORT CM_NameType;
+#define CM_DOTTED ( (CM_NameType) 01 )
+#define CM_FQDN ( (CM_NameType) 02 )
+
+typedef USHORT CM_InfoType;
+// nur eines dieser 3 defines darf verwendet werden
+#define CM_NO_TEXT ( (CM_InfoType) 01 )
+#define CM_SHORT_TEXT ( (CM_InfoType) 02 )
+#define CM_VERBOSE_TEXT ( (CM_InfoType) 03 )
+
+#define CM_OPEN ( (CM_InfoType) 0x0004 )
+#define CM_CLOSE ( (CM_InfoType) 0x0008 )
+#define CM_RECEIVE ( (CM_InfoType) 0x0010 )
+#define CM_SEND ( (CM_InfoType) 0x0020 )
+#define CM_ERROR ( (CM_InfoType) 0x0040 )
+#define CM_MISC ( (CM_InfoType) 0x0080 )
+
+#define CM_USER_1 ( (CM_InfoType) 0x0100 )
+#define CM_USER_2 ( (CM_InfoType) 0x0200 )
+#define CM_USER_3 ( (CM_InfoType) 0x0400 )
+#define CM_USER_4 ( (CM_InfoType) 0x0800 )
+
+#define CM_ALL ( CM_OPEN | CM_CLOSE | CM_RECEIVE | CM_SEND | CM_ERROR | CM_MISC )
+#define CM_NONE ( 0 )
+
+#define CByteString( constAsciiStr ) ByteString( RTL_CONSTASCII_STRINGPARAM ( constAsciiStr ) )
+
+#define INFO_MSG( Short, Long, Type, CLink ) \
+{ \
+ if ( (Type & GetInfoType()) > 0 ) \
+ { \
+ switch ( GetInfoType() & 03 ) \
+ { \
+ case CM_NO_TEXT: \
+ { \
+ ByteString aByteString; \
+ CallInfoMsg( InfoString( aByteString, Type, CLink ) ); \
+ } \
+ break; \
+ case CM_SHORT_TEXT: \
+ { \
+ ByteString aByteString( Short ); \
+ CallInfoMsg( InfoString( aByteString, Type, CLink ) ); \
+ } \
+ break; \
+ case CM_VERBOSE_TEXT: \
+ { \
+ ByteString aByteString( Long ); \
+ CallInfoMsg( InfoString( aByteString, Type, CLink ) ); \
+ } \
+ break; \
+ default: \
+ break; \
+ } \
+ } \
+}\
+
+class CommunicationLink;
+
+/*#undef PRV_SV_DECL_REF_LOCK
+#define PRV_SV_DECL_REF_LOCK(ClassName, Ref) \
+protected: \
+ ClassName * pObj; \
+public: \
+PRV_SV_DECL_REF_SIGNATURE(ClassName, Ref) \
+ inline ClassName##Ref( void * pObjP ){ClassName##Ref ((ClassName *) pObjP);} \
+*/
+
+SV_DECL_REF( CommunicationLink )
+
+class InfoString : public ByteString
+{
+public:
+ InfoString( ByteString &nMsg, CM_InfoType nIT, CommunicationLink *pCL = NULL ): ByteString( nMsg ), nInfoType( nIT ), pCommLink( pCL ) {;}
+ CM_InfoType GetInfoType(){ return nInfoType; }
+ CommunicationLinkRef GetCommunicationLink(){ return pCommLink; }
+private:
+ CM_InfoType nInfoType;
+ CommunicationLinkRef pCommLink;
+};
+
+class PacketHandler;
+class CommunicationManager;
+class SingleCommunicationManager;
+class MultiCommunicationManager;
+class CommunicationManagerServerAcceptThread;
+class CommunicationLink : public SvRefBase
+{
+protected:
+ friend class CommunicationManager;
+ friend class SingleCommunicationManager;
+ friend class MultiCommunicationManager;
+ friend class CommunicationManagerServerAcceptThread;
+ // Darf nicht abgerumt werden zwischen Empfang des Streams und ende des Callbacks
+
+protected: // so da nur ber Ref gelscht werden kann
+ virtual ~CommunicationLink();
+ void InvalidateManager() { pMyManager = NULL; }
+
+ PacketHandler* pPacketHandler;
+
+public:
+ CommunicationLink( CommunicationManager *pMan );
+
+ virtual BOOL StopCommunication()=0;
+ virtual BOOL IsCommunicationError()=0;
+ CommunicationManager* GetCommunicationManager(){ return pMyManager; }
+
+// Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
+ virtual ByteString GetCommunicationPartner( CM_NameType eType )=0;
+
+// Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
+ virtual ByteString GetMyName( CM_NameType eType )=0;
+
+// Liefert einen neuen Stream zum Versenden von Daten.
+ virtual SvStream* GetBestCommunicationStream()=0;
+
+ /** will call virtual function DoTransferDataStream to do actual work
+ Purpos is to allow housekeeping
+ **/
+ BOOL TransferDataStream( SvStream *pDataStream, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );
+
+ // Liefert die ID, die vom Sender angegeben wurde.
+ // Dadurch lassen sich virtuelle Kommunikationen ber einen physikalischen Link realisiren.
+ // Da die Kommunikation zu lteren Versionen kompatibel bleiben mu, mu der Empfnger raten,
+ // die neue oder die alte verwendet wird, da sich der Kopf eines Auftrages dann ndert.
+ UINT16 GetProtocol(){ return nServiceProtocol; }
+
+ // Der Stream wird hier bergeben. Der Aufrufer ist fr dessen Lschung zustndig
+ // Die Methode MUSS gerufen werden, da sonst keine weiteren Daten empfangen werden.
+ SvStream* GetServiceData(){ SvStream *pTemp = pServiceData; pServiceData = NULL; return pTemp; }
+
+ /// Ermglicht das Auslsen des nchsten Callbacks. Wird auch Implizit gerufen.
+ void FinishCallback(){ bIsInsideCallback = FALSE; }
+
+ /// Syncrones Empfangen der Daten. Nur fr Kommandozeile, sonst leer implementiert
+ virtual BOOL ReceiveDataStream(){ return FALSE; }
+
+ /// Statistics
+ DateTime GetStart() { return aStart; }
+ ULONG GetTotalBytes() { return nTotalBytes; }
+ DateTime GetLastAccess() { return aLastAccess; }
+ const ByteString& GetApplication() { return maApplication; }
+ virtual void SetApplication( const ByteString& aApp );
+
+protected:
+ void CallInfoMsg( InfoString aMsg );
+ CM_InfoType GetInfoType();
+ CommunicationManager *pMyManager;
+// Diese Methoden werden im Main Kontext gerufen und an den Manager weitergereicht.
+ virtual DECL_LINK( ConnectionClosed, void* = NULL );
+ virtual DECL_LINK( DataReceived, void* = NULL );
+
+ virtual BOOL DoTransferDataStream( SvStream *pDataStream, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );
+
+ SvStream *pServiceData;
+ UINT16 nServiceProtocol;
+ UINT16 nServiceHeaderType;
+
+ /// Verhindert das vorzeitige Auslsen des nchsten Callbacks.
+ void StartCallback(){ bIsInsideCallback = TRUE; }
+ BOOL bIsInsideCallback;
+
+ virtual BOOL SendHandshake( HandshakeType aHandshakeType, SvStream* pData = NULL)=0;
+
+ virtual BOOL ShutdownCommunication() = 0; /// Really stop the Communication
+
+ /// Statistics
+ DateTime aStart;
+ ULONG nTotalBytes;
+ DateTime aLastAccess;
+
+private:
+ ByteString maApplication;
+
+#if OSL_DEBUG_LEVEL > 1
+public:
+ // misc (debuging) purposes
+ BOOL bFlag;
+ ULONG nSomething;
+#endif
+
+};
+
+SV_IMPL_REF( CommunicationLink );
+
+class CommonSocketFunctions;
+class CommunicationManager
+{
+ friend class CommunicationLink;
+ friend class CommonSocketFunctions;
+public:
+ CommunicationManager( BOOL bUseMultiChannel = FALSE );
+ virtual ~CommunicationManager();
+
+ virtual BOOL StartCommunication()=0;
+ virtual BOOL StartCommunication( String aApp, String aParams );
+ virtual BOOL StartCommunication( ByteString aHost, ULONG nPort );
+ virtual BOOL StopCommunication()=0; // Hlt alle CommunicationLinks an
+ virtual BOOL IsCommunicationRunning() { return bIsCommunicationRunning; }
+// virtual BOOL IsCommunicationError();
+
+// Der Name oder die IP-Adresse oder sonstwas um den Communikationspartner zu identifizieren
+ virtual ByteString GetMyName( CM_NameType eType );
+
+ virtual BOOL IsLinkValid( CommunicationLink* pCL )=0; // Notwendig fr call im Destruktor
+
+ virtual USHORT GetCommunicationLinkCount()=0;
+ virtual CommunicationLinkRef GetCommunicationLink( USHORT nNr )=0;
+
+ // Liefert den letzten neuen Link oder NULL wenn dieser schon wieder geschlossen ist.
+ CommunicationLinkRef GetLastNewLink() { return xLastNewLink; }
+
+ void SetConnectionOpenedHdl( Link lConnectionOpened ){ mlConnectionOpened = lConnectionOpened; }
+ void SetConnectionClosedHdl( Link lConnectionClosed ){ mlConnectionClosed = lConnectionClosed; }
+ void SetDataReceivedHdl( Link lDataReceived ){ mlDataReceived = lDataReceived; }
+ void SetInfoMsgHdl( Link lInfoMsg ){ mlInfoMsg = lInfoMsg; }
+
+ void SetInfoType( CM_InfoType nIT ){ nInfoType = nIT; }
+ CM_InfoType GetInfoType(){ return nInfoType; }
+
+ BOOL IsMultiChannel(){ return bIsMultiChannel; }
+ void SetApplication( const ByteString& aApp, BOOL bRunningLinks = FALSE );
+ const ByteString& GetApplication() { return maApplication; }
+
+protected:
+ // Diese Methoden werden innerhalb gerufen. Sie erledigen eventuelles Housekeeping
+ // und rufen dann die entsprechende Methode
+ virtual void CallConnectionOpened( CommunicationLink* pCL );
+ virtual void CallConnectionClosed( CommunicationLink* pCL );
+ void CallDataReceived( CommunicationLink* pCL );
+ void CallInfoMsg( InfoString aMsg );
+
+ CM_InfoType nInfoType;
+
+ // Diese Routinen rufen den Link oder sind berladen
+ virtual void ConnectionOpened( CommunicationLink* pCL ){ mlConnectionOpened.Call( pCL ); }
+ virtual void ConnectionClosed( CommunicationLink* pCL ){ mlConnectionClosed.Call( pCL ); }
+ virtual void DataReceived( CommunicationLink* pCL ){ mlDataReceived.Call( pCL ); }
+ virtual void InfoMsg( InfoString aMsg ){ mlInfoMsg.Call( &aMsg ); }
+
+ BOOL bIsCommunicationRunning;
+
+ virtual void DestroyingLink( CommunicationLink *pCL )=0; // Link trgt sich im Destruktor aus
+
+private:
+ ByteString maApplication;
+ Link mlConnectionOpened;
+ Link mlConnectionClosed;
+ Link mlDataReceived;
+ Link mlInfoMsg;
+ CommunicationLinkRef xLastNewLink;
+
+ BOOL bIsMultiChannel;
+};
+
+class SingleCommunicationManager : public CommunicationManager
+{
+public:
+ SingleCommunicationManager( BOOL bUseMultiChannel = FALSE );
+ virtual ~SingleCommunicationManager();
+ virtual BOOL StopCommunication(); // Hlt alle CommunicationLinks an
+ virtual BOOL IsLinkValid( CommunicationLink* pCL );
+ virtual USHORT GetCommunicationLinkCount();
+ virtual CommunicationLinkRef GetCommunicationLink( USHORT nNr );
+
+protected:
+ virtual void CallConnectionOpened( CommunicationLink* pCL );
+ virtual void CallConnectionClosed( CommunicationLink* pCL );
+ CommunicationLinkRef xActiveLink;
+ CommunicationLink *pInactiveLink;
+ virtual void DestroyingLink( CommunicationLink *pCL ); // Link trgt sich im Destruktor aus
+};
+
+class ICommunicationManagerClient
+{
+ friend class CommonSocketFunctions;
+protected:
+ virtual BOOL RetryConnect() { return FALSE; } // Kann dann eventuell die Applikation starten
+};
+
+class TCPIO;
+class SimpleCommunicationLinkViaSocket : public CommunicationLink
+{
+public:
+ virtual BOOL IsCommunicationError();
+ virtual BOOL StopCommunication();
+
+ virtual ByteString GetCommunicationPartner( CM_NameType eType );
+ virtual ByteString GetMyName( CM_NameType eType );
+ virtual SvStream* GetBestCommunicationStream();
+ virtual void SetApplication( const ByteString& aApp );
+
+private:
+ ByteString aCommunicationPartner;
+ ByteString aMyName;
+
+ TCPIO* pTCPIO;
+ NAMESPACE_VOS(OStreamSocket) *pStreamSocket;
+
+protected:
+ SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
+ virtual ~SimpleCommunicationLinkViaSocket();
+
+ NAMESPACE_VOS(OStreamSocket)* GetStreamSocket() { return pStreamSocket; }
+ void SetStreamSocket( NAMESPACE_VOS(OStreamSocket)* pSocket );
+
+ SvStream *pReceiveStream;
+ BOOL DoReceiveDataStream(); /// Recieve DataPacket from Socket
+ virtual BOOL SendHandshake( HandshakeType aHandshakeType, SvStream* pData = NULL);
+ void SetFinalRecieveTimeout();
+ BOOL bIsRequestShutdownPending;
+ virtual void WaitForShutdown()=0;
+ void SetNewPacketAsCurrent();
+};
+
+class SimpleCommunicationLinkViaSocketWithReceiveCallbacks : public SimpleCommunicationLinkViaSocket
+{
+public:
+ SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket );
+ ~SimpleCommunicationLinkViaSocketWithReceiveCallbacks();
+ virtual BOOL ReceiveDataStream();
+protected:
+ virtual BOOL ShutdownCommunication(); /// Really stop the Communication
+ virtual void WaitForShutdown();
+};
+
+class CommonSocketFunctions
+{
+public:
+ BOOL DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort );
+protected:
+ virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS )=0;
+};
+
+class SingleCommunicationManagerClientViaSocket : public SingleCommunicationManager, public ICommunicationManagerClient, CommonSocketFunctions
+{
+public:
+ using CommunicationManager::StartCommunication;
+
+ SingleCommunicationManagerClientViaSocket( ByteString aHost, ULONG nPort, BOOL bUseMultiChannel = FALSE );
+ SingleCommunicationManagerClientViaSocket( BOOL bUseMultiChannel = FALSE );
+ virtual BOOL StartCommunication(){ return DoStartCommunication( this, (ICommunicationManagerClient*) this, aHostToTalk, nPortToTalk );}
+ virtual BOOL StartCommunication( ByteString aHost, ULONG nPort ){ return DoStartCommunication( this, (ICommunicationManagerClient*) this, aHost, nPort );}
+private:
+ ByteString aHostToTalk;
+ ULONG nPortToTalk;
+protected:
+ virtual CommunicationLink *CreateCommunicationLink( CommunicationManager *pCM, NAMESPACE_VOS(OConnectorSocket) *pCS ){ return new SimpleCommunicationLinkViaSocketWithReceiveCallbacks( pCM, pCS ); }
+};
+
+#endif
diff --git a/automation/inc/makefile.mk b/automation/inc/makefile.mk
new file mode 100644
index 000000000000..782b6a805b9b
--- /dev/null
+++ b/automation/inc/makefile.mk
@@ -0,0 +1,47 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..
+
+PRJNAME=automation
+TARGET=inc
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+# --- Targets -------------------------------------------------------
+
+.INCLUDE : target.mk
+
+.IF "$(ENABLE_PCH)"!=""
+ALLTAR : \
+ $(SLO)$/precompiled.pch \
+ $(SLO)$/precompiled_ex.pch
+
+.ENDIF # "$(ENABLE_PCH)"!=""
+
diff --git a/automation/inc/pch/precompiled_automation.cxx b/automation/inc/pch/precompiled_automation.cxx
new file mode 100644
index 000000000000..9ceb299f199c
--- /dev/null
+++ b/automation/inc/pch/precompiled_automation.cxx
@@ -0,0 +1,29 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include "precompiled_automation.hxx"
+
diff --git a/automation/inc/pch/precompiled_automation.hxx b/automation/inc/pch/precompiled_automation.hxx
new file mode 100644
index 000000000000..ac38a7ce5cc8
--- /dev/null
+++ b/automation/inc/pch/precompiled_automation.hxx
@@ -0,0 +1,32 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): Generated on 2006-09-01 17:49:30.061723
+
+#ifdef PRECOMPILED_HEADERS
+#endif
+
diff --git a/automation/packimages/makefile.mk b/automation/packimages/makefile.mk
new file mode 100644
index 000000000000..928155039773
--- /dev/null
+++ b/automation/packimages/makefile.mk
@@ -0,0 +1,63 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..
+PRJNAME=automation
+TARGET=packimages
+RSCCUSTOMIMG*=$(PRJ)$/util
+
+# point to an existing directory as default that poses no threat
+# to a "find" that looks for "*.png"
+RSCCUSTOMIMG*=$(PRJNAME)$/util
+
+# point to an existing directory as default that poses no threat
+# to a "find" that looks for "*.png"
+RSCCUSTOMIMG*=$(PRJNAME)$/util
+
+.INCLUDE: settings.mk
+
+.INCLUDE: target.mk
+
+ALLTAR : \
+ $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))$/images_tt.zip
+
+#solarenv = j:\so-cwsserv04\gh7\SRC680\src.m50\solenv
+#outpath = wntmsci10
+#common_outdir = common
+#solarresdir = j:\so-cwsserv04\gh7\SRC680\wntmsci10\res.m50
+
+
+$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))$/images_tt.zip .PHONY:
+ @echo ------------------------------
+ @echo Making: $@
+ $(COPY) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SOLARRESDIR))$/img$/stt*.ilst $(MISC)
+ $(COPY) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SOLARRESDIR))$/img$/svt*.ilst $(MISC)
+ $(COPY) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SOLARRESDIR))$/img$/fps*.ilst $(MISC)
+ $(COPY) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SOLARRESDIR))$/img$/vcl*.ilst $(MISC)
+ $(COPY) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(SOLARRESDIR))$/img$/sb*.ilst $(MISC)
+ -$(MKDIR) $(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))
+ $(PERL) $(SOLARENV)$/bin$/packimages.pl -g $(SOLARSRC)$/$(RSCDEFIMG) -m $(SOLARSRC)$/$(RSCDEFIMG) -c $(RSCCUSTOMIMG) -l $(MISC) -o $@
+
diff --git a/automation/prj/build.lst b/automation/prj/build.lst
new file mode 100644
index 000000000000..b019873f07d9
--- /dev/null
+++ b/automation/prj/build.lst
@@ -0,0 +1,11 @@
+au automation : basic fpicker NULL
+au automation usr1 - all au_mkout NULL
+au automation\inc nmake - all au_inc NULL
+au automation\source\simplecm nmake - all au_scom au_inc NULL
+au automation\source\communi nmake - all au_comm au_inc NULL
+au automation\source\app nmake - all au_app au_inc NULL
+au automation\source\server nmake - all au_server au_inc NULL
+au automation\source\testtool nmake - all au_tt au_inc NULL
+au automation\source\miniapp nmake - all au_mini au_inc NULL
+au automation\packimages nmake - all au_pack NULL
+au automation\util nmake - all au_util au_scom au_comm au_app au_mini au_server au_tt NULL
diff --git a/automation/prj/d.lst b/automation/prj/d.lst
new file mode 100644
index 000000000000..c83a2284e34b
--- /dev/null
+++ b/automation/prj/d.lst
@@ -0,0 +1,27 @@
+mkdir: %COMMON_DEST%\bin%_EXT%\hid
+mkdir: %_DEST%\inc%_EXT%\automation
+
+#..\%COMMON_OUTDIR%\misc\*.hid %COMMON_DEST%\bin%_EXT%\hid\*.hid
+..\util\manually_added_ids.hid %COMMON_DEST%\bin%_EXT%\hid\manually_added_ids.hid
+..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+..\%__SRC%\lib\lib* %_DEST%\lib%_EXT%\*
+..\%__SRC%\lib\ists.lib %_DEST%\lib%_EXT%\ists.lib
+..\%__SRC%\lib\isimplecm.lib %_DEST%\lib%_EXT%\isimplecm.lib
+..\%__SRC%\lib\icommuni.lib %_DEST%\lib%_EXT%\icommuni.lib
+
+..\inc\automation\automation.hxx %_DEST%\inc%_EXT%\automation\automation.hxx
+..\inc\automation\commdefines.hxx %_DEST%\inc%_EXT%\automation\commdefines.hxx
+..\inc\automation\commtypes.hxx %_DEST%\inc%_EXT%\automation\commtypes.hxx
+..\inc\automation\communi.hxx %_DEST%\inc%_EXT%\automation\communi.hxx
+..\inc\automation\simplecm.hxx %_DEST%\inc%_EXT%\automation\simplecm.hxx
+
+..\%__SRC%\bin\testtool.exe %_DEST%\bin%_EXT%\testtool.bin
+..\%__SRC%\bin\testtool %_DEST%\bin%_EXT%\testtool.bin
+..\%__SRC%\inc\classes %_DEST%\bin%_EXT%\classes
+..\%__SRC%\inc\keycodes %_DEST%\bin%_EXT%\keycodes
+..\%__SRC%\inc\res_type %_DEST%\bin%_EXT%\res_type
+
+..\%COMMON_OUTDIR%\bin\images_tt.zip %COMMON_DEST%\bin%_EXT%\images_tt.zip
+
+..\%__SRC%\bin\testtoolrc %_DEST%\lib%_EXT%\testtoolrc
+..\%__SRC%\bin\testtool.ini %_DEST%\bin%_EXT%\testtool.ini
diff --git a/automation/prj/l10n b/automation/prj/l10n
new file mode 100644
index 000000000000..69f0d9e5e24e
--- /dev/null
+++ b/automation/prj/l10n
@@ -0,0 +1 @@
+#i49922# In this module en-US and de are used as source language
diff --git a/automation/source/app/makefile.mk b/automation/source/app/makefile.mk
new file mode 100644
index 000000000000..8a430b3c3a96
--- /dev/null
+++ b/automation/source/app/makefile.mk
@@ -0,0 +1,52 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=app
+
+# --- Settings ------------------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Allgemein ------------------------------------------------------------
+
+CXXFILES = \
+ testbasi.cxx
+
+
+OBJFILES = \
+ $(OBJ)$/testbasi.obj
+
+
+LIBTARGET = NO
+
+
+# --- Targets ------------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/automation/source/app/testbasi.cxx b/automation/source/app/testbasi.cxx
new file mode 100644
index 000000000000..292cd70b34a4
--- /dev/null
+++ b/automation/source/app/testbasi.cxx
@@ -0,0 +1,161 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <basic/sbx.hxx>
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+#include <basic/testtool.hxx>
+#include "testbasi.hxx"
+//#include "app.hxx"
+//#include "basic.hrc"
+//#include "appbased.hxx"
+#define P_FEHLERLISTE TestToolObj::pFehlerListe
+
+//#include "status.hxx"
+//#include "basic.hrc"
+
+//#include "object.hxx"
+
+#include <testapp.hxx>
+#include <testtool.hxx>
+#ifndef _SB_INTERN_HXX
+//#include "sbintern.hxx"
+#endif
+
+//#include "comm_bas.hxx"
+//#include "processw.hxx"
+
+TYPEINIT1(TTBasic,MyBasic)
+
+/*class MyFactory : public SbxFactory
+{
+public:
+ virtual SbxBase* Create( UINT16 nSbxId, UINT32 = SBXCR_SBX );
+};
+
+static SampleObjectFac aFac1;
+static MyFactory aFac2;
+static CommunicationFactory aComManFac;
+static ProcessFactory aProcessFac;
+static short nInst = 0;
+
+SbxBase* MyFactory::Create( UINT16 nSbxId, UINT32 nCr )
+{
+ if( nCr == SBXCR_TEST && nSbxId == SBXID_MYBASIC )
+ return new MyBasic;
+ else
+ return NULL;
+} */
+
+TTBasic::TTBasic() : MyBasic()
+{
+// Eigenes Objekt reinbraten
+ TestToolObj* pTTO = new TestToolObj( CUniString("App"), this );
+ pTTO->SetLogHdl( GenLogHdl() );
+ pTTO->SetWinInfoHdl( GenWinInfoHdl() );
+ pTTO->SetModuleWinExistsHdl( GenModuleWinExistsHdl() );
+ pTTO->SetWriteStringHdl( GenWriteStringHdl() );
+ pTTO->SetCErrorHdl( LINK( this, TTBasic, CErrorImpl ) );
+
+ StartListeningTT( pTTO->GetTTBroadcaster() );
+
+ pTestObject = pTTO;
+ pTestObject->SetFlag( SBX_EXTSEARCH );
+ Insert( pTestObject );
+}
+
+MyBasic* TTBasic::CreateMyBasic()
+{
+ return new TTBasic();
+}
+
+void TTBasic::LoadIniFile()
+{
+ ((TestToolObj*)pTestObject)->LoadIniFile();
+}
+
+SbTextType TTBasic::GetSymbolType( const String &rSymbol, BOOL bWasTTControl )
+{
+ return ((TestToolObj*)pTestObject)->GetSymbolType( rSymbol, bWasTTControl );
+}
+
+
+TTBasic::~TTBasic()
+{
+}
+
+IMPL_LINK( TTBasic, CErrorImpl, ErrorEntry*, pData )
+{
+ return CError( pData->nError, pData->aText, pData->nLine, pData->nCol1, pData->nCol2 );
+}
+
+BOOL TTBasic::Compile( SbModule* p )
+{
+ p->SetComment( ((TestToolObj*)pTestObject)->GetRevision(p->GetSource()) );
+ SbModule* pOldModule = GetCompileModule();
+ SetCompileModule( p );
+ p->SetSource( ((TestToolObj*)pTestObject)->PreCompile(p->GetSource()) );
+ SetCompileModule( pOldModule );
+ if ( ((TestToolObj*)pTestObject)->WasPrecompilerError() )
+ return FALSE;
+ return MyBasic::Compile( p );
+}
+
+const String TTBasic::GetSpechialErrorText()
+{
+ String nErrorText;
+ if ( pTestObject && IS_ERROR() && GetErrorCode() == GET_ERROR()->nError )
+ {
+ nErrorText = GenRealString( GET_ERROR()->aText );
+ nErrorText.AppendAscii( ": " );
+ nErrorText += String::CreateFromInt64( GET_ERROR()->nError );
+ }
+ else
+ {
+ nErrorText = GetErrorText();
+ }
+ return nErrorText;
+}
+
+void TTBasic::ReportRuntimeError( AppBasEd *pEditWin )
+{
+ SbxVariableRef aDummy = new SbxVariable;
+ aDummy->SetUserData( 24 ); // ID_MaybeAddErr
+ ((TestToolObj*)pTestObject)->Notify( pTestObject->GetBroadcaster(), SbxHint( SBX_HINT_DATAWANTED, aDummy ) );
+ aDummy->SetUserData( 18 ); // ID_ExceptLog
+ ((TestToolObj*)pTestObject)->Notify( pTestObject->GetBroadcaster(), SbxHint( SBX_HINT_DATAWANTED, aDummy ) );
+ MyBasic::ReportRuntimeError( pEditWin );
+}
+
+void TTBasic::DebugFindNoErrors( BOOL bDebugFindNoErrors )
+{
+ ((TestToolObj*)pTestObject)->DebugFindNoErrors( bDebugFindNoErrors );
+}
diff --git a/automation/source/app/testbasi.hxx b/automation/source/app/testbasi.hxx
new file mode 100644
index 000000000000..882b697f1cf3
--- /dev/null
+++ b/automation/source/app/testbasi.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _TTBASIC_HXX
+#define _TTBASIC_HXX
+
+#include <basic/sbstar.hxx>
+#include <basic/mybasic.hxx>
+
+class ErrorEntry;
+
+#define SBXID_TTBASIC 0x5454 // TTBasic: TT
+
+#define SBXCR_TEST2 0x54534554L // TEST
+
+class TTBasic : public MyBasic
+{
+public:
+ SBX_DECL_PERSIST_NODATA(SBXCR_TEST2,SBXID_TTBASIC,1);
+ TYPEINFO();
+ TTBasic();
+ ~TTBasic();
+ BOOL Compile( SbModule* );
+ static MyBasic* CreateMyBasic();
+
+ // nicht mit #ifdefs klammern, da diese Headerdatei fr testtool und basic
+ // gleichermaen verwendet wird.
+ DECL_LINK( CErrorImpl, ErrorEntry* );
+// SbxObject *pTestObject; // fr das Testtool; ansonsten NULL
+
+ void LoadIniFile();
+ SbTextType GetSymbolType( const String &Symbol, BOOL bWasTTControl ); // Besimmt den erweiterten Symboltyp fr das Syntaxhighlighting
+ virtual const String GetSpechialErrorText();
+ virtual void ReportRuntimeError( AppBasEd *pEditWin );
+ virtual void DebugFindNoErrors( BOOL bDebugFindNoErrors );
+};
+
+SV_DECL_IMPL_REF(TTBasic)
+
+#endif
diff --git a/automation/source/communi/communi.cxx b/automation/source/communi/communi.cxx
new file mode 100644
index 000000000000..e62e060ba89c
--- /dev/null
+++ b/automation/source/communi/communi.cxx
@@ -0,0 +1,596 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <stdio.h>
+#if OSL_DEBUG_LEVEL > 1
+#define DEBUGPRINTF(x) { printf(x); fflush( stdout ); }
+#else
+#define DEBUGPRINTF(x)
+#endif
+#include <tools/debug.hxx>
+#include <vcl/svapp.hxx>
+#include <vos/socket.hxx>
+#include <tools/stream.hxx>
+#include <vcl/timer.hxx>
+#include <tools/fsys.hxx>
+
+#include <automation/communi.hxx>
+
+
+/* Um den Destruktor protected zu machen wurde unten das delete entfernt.
+ Die Methode wird ohnehin hucht benutzt.
+// delete *((AE*)pData+n);
+*/
+
+#undef SV_IMPL_PTRARR_SORT
+#define SV_IMPL_PTRARR_SORT( nm,AE )\
+_SV_IMPL_SORTAR_ALG( nm,AE )\
+ void nm::DeleteAndDestroy( USHORT nP, USHORT nL ) { \
+ if( nL ) {\
+ DBG_ASSERT( nP < nA && nP + nL <= nA, "ERR_VAR_DEL" );\
+ for( USHORT n=nP; n < nP + nL; n++ ) \
+ DBG_ERROR("Das Element der Liste wurde nicht gelscht"); \
+ SvPtrarr::Remove( nP, nL ); \
+ } \
+ } \
+_SV_SEEK_PTR( nm, AE )
+
+
+
+
+SV_IMPL_PTRARR_SORT( CommunicationLinkList, CommunicationLink* );
+
+NAMESPACE_VOS(OMutex) *pMPostUserEvent=NULL; // Notwendig, da nicht threadfest
+
+CommunicationLinkViaSocket::CommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
+: SimpleCommunicationLinkViaSocket( pMan, pSocket )
+, nConnectionClosedEventId( 0 )
+, nDataReceivedEventId( 0 )
+, bShutdownStarted( FALSE )
+, bDestroying( FALSE )
+{
+ SetPutDataReceivedHdl(LINK( this, CommunicationLinkViaSocket, PutDataReceivedHdl ));
+ if ( !pMPostUserEvent )
+ pMPostUserEvent = new NAMESPACE_VOS(OMutex);
+ // this is necassary to prevent the running thread from sending the close event
+ // before the open event has been sent.
+ StartCallback();
+
+ create();
+}
+
+CommunicationLinkViaSocket::~CommunicationLinkViaSocket()
+{
+ bDestroying = TRUE;
+ StopCommunication();
+ while ( nConnectionClosedEventId || nDataReceivedEventId )
+ GetpApp()->Yield();
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
+ if ( nConnectionClosedEventId )
+ {
+ GetpApp()->RemoveUserEvent( nConnectionClosedEventId );
+ nConnectionClosedEventId = 0;
+ INFO_MSG( CByteString("Event gelscht"),
+ CByteString( "ConnectionClosedEvent aus Queue gelscht"),
+ CM_MISC, NULL );
+ }
+ }
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
+ if ( nDataReceivedEventId )
+ {
+ GetpApp()->RemoveUserEvent( nDataReceivedEventId );
+ nDataReceivedEventId = 0;
+ delete GetServiceData();
+ INFO_MSG( CByteString("Event gelscht"),
+ CByteString( "DataReceivedEvent aus Queue gelscht"),
+ CM_MISC, NULL );
+ }
+ }
+}
+
+BOOL CommunicationLinkViaSocket::ShutdownCommunication()
+{
+ if ( isRunning() )
+ {
+
+ terminate();
+ if ( GetStreamSocket() )
+ GetStreamSocket()->shutdown();
+
+ if ( GetStreamSocket() ) // Mal wieder nach oben verschoben, da sonst nicht vom Read runtergesprungen wird.
+ GetStreamSocket()->close();
+
+ resume(); // So da das run auch die Schleife verlassen kann
+
+ join();
+
+ NAMESPACE_VOS(OStreamSocket) *pTempSocket = GetStreamSocket();
+ SetStreamSocket( NULL );
+ delete pTempSocket;
+
+// ConnectionClosed(); Wird am Ende des Thread gerufen
+
+ }
+ else
+ {
+ join();
+ }
+
+ return TRUE;
+}
+
+BOOL CommunicationLinkViaSocket::StopCommunication()
+{
+ if ( !bShutdownStarted )
+ {
+ return SimpleCommunicationLinkViaSocket::StopCommunication();
+ }
+ else
+ {
+ WaitForShutdown();
+ return TRUE;
+ }
+}
+
+
+IMPL_LINK( CommunicationLinkViaSocket, ShutdownLink, void*, EMPTYARG )
+{
+ if ( !IsCommunicationError() )
+ ShutdownCommunication();
+ return 0;
+}
+
+
+void CommunicationLinkViaSocket::WaitForShutdown()
+{
+ if ( !bShutdownStarted )
+ {
+ aShutdownTimer.SetTimeout( 30000 ); // Should be 30 Seconds
+ aShutdownTimer.SetTimeoutHdl( LINK( this, CommunicationLinkViaSocket, ShutdownLink ) );
+ aShutdownTimer.Start();
+ bShutdownStarted = TRUE;
+ }
+ if ( bDestroying )
+ {
+ while ( pMyManager && aShutdownTimer.IsActive() )
+ {
+ if ( IsCommunicationError() )
+ return;
+ GetpApp()->Yield();
+ }
+ ShutdownCommunication();
+ }
+}
+
+BOOL CommunicationLinkViaSocket::IsCommunicationError()
+{
+ return !isRunning() || SimpleCommunicationLinkViaSocket::IsCommunicationError();
+}
+
+void CommunicationLinkViaSocket::run()
+{
+ BOOL bWasError = FALSE;
+ while ( schedule() && !bWasError && GetStreamSocket() )
+ {
+ if ( bWasError |= !DoReceiveDataStream() )
+ continue;
+
+ TimeValue sNochEins = {0, 1000000};
+ while ( schedule() && bIsInsideCallback ) // solange der letzte Callback nicht beendet ist
+ sleep( sNochEins );
+ SetNewPacketAsCurrent();
+ StartCallback();
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
+ NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
+ mlPutDataReceived.Call(this);
+ }
+ }
+ TimeValue sNochEins = {0, 1000000};
+ while ( schedule() && bIsInsideCallback ) // solange der letzte Callback nicht beendet ist
+ sleep( sNochEins );
+
+ StartCallback();
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
+ NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
+ nConnectionClosedEventId = GetpApp()->PostUserEvent( LINK( this, CommunicationLinkViaSocket, ConnectionClosed ) );
+ }
+}
+
+BOOL CommunicationLinkViaSocket::DoTransferDataStream( SvStream *pDataStream, CMProtocol nProtocol )
+{
+ if ( !isRunning() )
+ return FALSE;
+
+ return SimpleCommunicationLinkViaSocket::DoTransferDataStream( pDataStream, nProtocol );
+}
+
+/// Dies ist ein virtueller Link!!!
+long CommunicationLinkViaSocket::ConnectionClosed( void* EMPTYARG )
+{
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMConnectionClosed );
+ nConnectionClosedEventId = 0; // Achtung!! alles andere mu oben gemacht werden.
+ }
+ ShutdownCommunication();
+ return CommunicationLink::ConnectionClosed( );
+}
+
+/// Dies ist ein virtueller Link!!!
+long CommunicationLinkViaSocket::DataReceived( void* EMPTYARG )
+{
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMDataReceived );
+ nDataReceivedEventId = 0; // Achtung!! alles andere mu oben gemacht werden.
+ }
+ return CommunicationLink::DataReceived( );
+}
+
+IMPL_LINK( CommunicationLinkViaSocket, PutDataReceivedHdl, CommunicationLinkViaSocket*, EMPTYARG )
+{
+ nDataReceivedEventId = GetpApp()->PostUserEvent( LINK( this, CommunicationLink, DataReceived ) );
+ return 0;
+}
+
+
+
+MultiCommunicationManager::MultiCommunicationManager( BOOL bUseMultiChannel )
+: CommunicationManager( bUseMultiChannel )
+, bGracefullShutdown( TRUE )
+{
+ ActiveLinks = new CommunicationLinkList;
+ InactiveLinks = new CommunicationLinkList;
+}
+
+MultiCommunicationManager::~MultiCommunicationManager()
+{
+ StopCommunication();
+
+ if ( bGracefullShutdown ) // first try to collect all callbacks for closing channels
+ {
+ Timer aTimeout;
+ aTimeout.SetTimeout( 40000 );
+ aTimeout.Start();
+ USHORT nLinkCount = 0;
+ USHORT nNewLinkCount = 0;
+ while ( aTimeout.IsActive() )
+ {
+ GetpApp()->Yield();
+ nNewLinkCount = GetCommunicationLinkCount();
+ if ( nNewLinkCount == 0 )
+ aTimeout.Stop();
+ if ( nNewLinkCount != nLinkCount )
+ {
+ aTimeout.Start();
+ nLinkCount = nNewLinkCount;
+ }
+ }
+ }
+
+ // Alles weghauen, was nicht rechtzeitig auf die Bume gekommen ist
+ // Was bei StopCommunication brig geblieben ist, da es sich asynchron austragen wollte
+ USHORT i = ActiveLinks->Count();
+ while ( i-- )
+ {
+ CommunicationLinkRef rTempLink = ActiveLinks->GetObject( i );
+ ActiveLinks->Remove( i );
+ rTempLink->InvalidateManager();
+ rTempLink->ReleaseReference();
+ }
+ delete ActiveLinks;
+
+ /// Die Links zwischen ConnectionClosed und Destruktor.
+ /// Hier NICHT gerefcounted, da sie sich sonst im Kreis festhaten wrden,
+ /// da die Links sich erst in ihrem Destruktor austragen
+ i = InactiveLinks->Count();
+ while ( i-- )
+ {
+ CommunicationLinkRef rTempLink = InactiveLinks->GetObject( i );
+ InactiveLinks->Remove( i );
+ rTempLink->InvalidateManager();
+ }
+ delete InactiveLinks;
+}
+
+BOOL MultiCommunicationManager::StopCommunication()
+{
+ // Alle Verbindungen abbrechen
+ // ConnectionClosed entfernt die Links aus der Liste. Je nach Implementation syncron
+ // oder asyncron. Daher Von oben nach unten Abrumen, so da sich nichts verschiebt.
+ USHORT i = ActiveLinks->Count();
+ int nFail = 0;
+ while ( i )
+ {
+ if ( !ActiveLinks->GetObject(i-1)->StopCommunication() )
+ nFail++; // Hochzhlen, da Verbindung sich nicht (sofort) beenden lsst.
+ i--;
+ }
+
+ return nFail == 0;
+}
+
+BOOL MultiCommunicationManager::IsLinkValid( CommunicationLink* pCL )
+{
+ if ( ActiveLinks->Seek_Entry( pCL ) )
+ return TRUE;
+ else
+ return FALSE;
+}
+
+USHORT MultiCommunicationManager::GetCommunicationLinkCount()
+{
+ return ActiveLinks->Count();
+}
+
+CommunicationLinkRef MultiCommunicationManager::GetCommunicationLink( USHORT nNr )
+{
+ return ActiveLinks->GetObject( nNr );
+}
+
+void MultiCommunicationManager::CallConnectionOpened( CommunicationLink* pCL )
+{
+ CommunicationLinkRef rHold(pCL); // Hlt den Zeiger bis zum Ende des calls
+ ActiveLinks->C40_PTR_INSERT(CommunicationLink, pCL);
+ rHold->AddRef();
+
+ CommunicationManager::CallConnectionOpened( pCL );
+}
+
+void MultiCommunicationManager::CallConnectionClosed( CommunicationLink* pCL )
+{
+ CommunicationLinkRef rHold(pCL); // Hlt denm Zeiger bis zum Ende des calls
+
+ CommunicationManager::CallConnectionClosed( pCL );
+
+ USHORT nPos;
+ if ( ActiveLinks->Seek_Entry( pCL, &nPos ) )
+ {
+ InactiveLinks->C40_PTR_INSERT(CommunicationLink, pCL); // Ohne Reference
+ ActiveLinks->Remove( nPos );
+ }
+ pCL->ReleaseReference();
+
+ bIsCommunicationRunning = ActiveLinks->Count() > 0;
+// delete pCL;
+#if OSL_DEBUG_LEVEL > 1
+ rHold->bFlag = TRUE;
+#endif
+}
+
+void MultiCommunicationManager::DestroyingLink( CommunicationLink *pCL )
+{
+ USHORT nPos;
+ if ( InactiveLinks->Seek_Entry( pCL, &nPos ) )
+ InactiveLinks->Remove( nPos );
+ pCL->InvalidateManager();
+}
+
+
+
+CommunicationManagerClient::CommunicationManagerClient( BOOL bUseMultiChannel )
+: MultiCommunicationManager( bUseMultiChannel )
+{
+ ByteString aApplication("Something inside ");
+ aApplication.Append( ByteString( DirEntry( Application::GetAppFileName() ).GetName(), gsl_getSystemTextEncoding() ) );
+ SetApplication( aApplication );
+}
+
+
+
+CommunicationManagerServerViaSocket::CommunicationManagerServerViaSocket( ULONG nPort, USHORT nMaxCon, BOOL bUseMultiChannel )
+: CommunicationManagerServer( bUseMultiChannel )
+, nPortToListen( nPort )
+, nMaxConnections( nMaxCon )
+, pAcceptThread( NULL )
+{
+}
+
+CommunicationManagerServerViaSocket::~CommunicationManagerServerViaSocket()
+{
+ StopCommunication();
+}
+
+BOOL CommunicationManagerServerViaSocket::StartCommunication()
+{
+ if ( !pAcceptThread )
+ pAcceptThread = new CommunicationManagerServerAcceptThread( this, nPortToListen, nMaxConnections );
+ return TRUE;
+}
+
+
+BOOL CommunicationManagerServerViaSocket::StopCommunication()
+{
+ // Erst den Acceptor anhalten
+ delete pAcceptThread;
+ pAcceptThread = NULL;
+
+ // Dann alle Verbindungen kappen
+ return CommunicationManagerServer::StopCommunication();
+}
+
+
+void CommunicationManagerServerViaSocket::AddConnection( CommunicationLink *pNewConnection )
+{
+ CallConnectionOpened( pNewConnection );
+}
+
+
+CommunicationManagerServerAcceptThread::CommunicationManagerServerAcceptThread( CommunicationManagerServerViaSocket* pServer, ULONG nPort, USHORT nMaxCon )
+: pMyServer( pServer )
+, pAcceptorSocket( NULL )
+, nPortToListen( nPort )
+, nMaxConnections( nMaxCon )
+, nAddConnectionEventId( 0 )
+, xmNewConnection( NULL )
+{
+ if ( !pMPostUserEvent )
+ pMPostUserEvent = new NAMESPACE_VOS(OMutex);
+ create();
+}
+
+
+CommunicationManagerServerAcceptThread::~CommunicationManagerServerAcceptThread()
+{
+#ifndef aUNX // Weil das Accept nicht abgebrochen werden kann, so terminiert wenigstens das Prog
+ // #62855# pl: gilt auch bei anderen Unixen
+ // die richtige Loesung waere natuerlich, etwas auf die pipe zu schreiben,
+ // was der thread als Abbruchbedingung erkennt
+ // oder wenigstens ein kill anstatt join
+ terminate();
+ if ( pAcceptorSocket )
+ pAcceptorSocket->close(); // Dann das Accept unterbrechen
+
+ join(); // Warten bis fertig
+
+ if ( pAcceptorSocket )
+ {
+ delete pAcceptorSocket;
+ pAcceptorSocket = NULL;
+ }
+#else
+ DEBUGPRINTF ("Destructor CommunicationManagerServerAcceptThread bersprungen!!!! (wegen Solaris BUG)\n");
+#endif
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
+ if ( nAddConnectionEventId )
+ {
+ GetpApp()->RemoveUserEvent( nAddConnectionEventId );
+ nAddConnectionEventId = 0;
+ CommunicationLinkRef xNewConnection = GetNewConnection();
+ INFO_MSG( CByteString("Event gelscht"),
+ CByteString( "AddConnectionEvent aus Queue gelscht"),
+ CM_MISC, xNewConnection );
+ xNewConnection->InvalidateManager();
+ xNewConnection.Clear(); // sollte das Objekt hier lschen
+ }
+ }
+}
+
+void CommunicationManagerServerAcceptThread::run()
+{
+ if ( !nPortToListen )
+ return;
+
+ pAcceptorSocket = new NAMESPACE_VOS(OAcceptorSocket)();
+ NAMESPACE_VOS(OInetSocketAddr) Addr;
+ Addr.setPort( nPortToListen );
+ pAcceptorSocket->setReuseAddr( 1 );
+ if ( !pAcceptorSocket->bind( Addr ) )
+ {
+ return;
+ }
+ if ( !pAcceptorSocket->listen( nMaxConnections ) )
+ {
+ return;
+ }
+
+
+ NAMESPACE_VOS(OStreamSocket) *pStreamSocket = NULL;
+
+ while ( schedule() )
+ {
+ pStreamSocket = new NAMESPACE_VOS(OStreamSocket);
+ switch ( pAcceptorSocket->acceptConnection( *pStreamSocket ) )
+ {
+ case NAMESPACE_VOS(ISocketTypes::TResult_Ok):
+ {
+ pStreamSocket->setTcpNoDelay( 1 );
+
+ TimeValue sNochEins = {0, 100};
+ while ( schedule() && xmNewConnection.Is() ) // Solange die letzte Connection nicht abgeholt wurde warten wir
+ sleep( sNochEins );
+ xmNewConnection = new CommunicationLinkViaSocket( pMyServer, pStreamSocket );
+ xmNewConnection->StartCallback();
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
+ NAMESPACE_VOS(OGuard) aGuard2( *pMPostUserEvent );
+ nAddConnectionEventId = GetpApp()->PostUserEvent( LINK( this, CommunicationManagerServerAcceptThread, AddConnection ) );
+ }
+ }
+ break;
+ case NAMESPACE_VOS(ISocketTypes::TResult_TimedOut):
+ delete pStreamSocket;
+ pStreamSocket = NULL;
+ break;
+ case NAMESPACE_VOS(ISocketTypes::TResult_Error):
+ delete pStreamSocket;
+ pStreamSocket = NULL;
+ break;
+
+ case NAMESPACE_VOS(ISocketTypes::TResult_Interrupted):
+ case NAMESPACE_VOS(ISocketTypes::TResult_InProgress):
+ break; // -Wall not handled...
+ }
+ }
+}
+
+
+IMPL_LINK( CommunicationManagerServerAcceptThread, AddConnection, void*, EMPTYARG )
+{
+ {
+ NAMESPACE_VOS(OGuard) aGuard( aMAddConnection );
+ nAddConnectionEventId = 0;
+ }
+ pMyServer->AddConnection( xmNewConnection );
+ xmNewConnection.Clear();
+ return 1;
+}
+
+
+#define GETSET(aVar, KeyName, Dafault) \
+ aVar = aConf.ReadKey(KeyName,"No Entry"); \
+ if ( aVar == "No Entry" ) \
+ { \
+ aVar = Dafault; \
+ aConf.WriteKey(KeyName, aVar); \
+ }
+
+
+CommunicationManagerClientViaSocket::CommunicationManagerClientViaSocket( ByteString aHost, ULONG nPort, BOOL bUseMultiChannel )
+: CommunicationManagerClient( bUseMultiChannel )
+, aHostToTalk( aHost )
+, nPortToTalk( nPort )
+{
+}
+
+CommunicationManagerClientViaSocket::CommunicationManagerClientViaSocket( BOOL bUseMultiChannel )
+: CommunicationManagerClient( bUseMultiChannel )
+, aHostToTalk( "" )
+, nPortToTalk( 0 )
+{
+}
+
+CommunicationManagerClientViaSocket::~CommunicationManagerClientViaSocket()
+{
+}
+
+
diff --git a/automation/source/communi/makefile.mk b/automation/source/communi/makefile.mk
new file mode 100644
index 000000000000..1d01badab455
--- /dev/null
+++ b/automation/source/communi/makefile.mk
@@ -0,0 +1,44 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=communi
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/communi.obj
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/automation/source/inc/cmdbasestream.hxx b/automation/source/inc/cmdbasestream.hxx
new file mode 100644
index 000000000000..d103dd071e43
--- /dev/null
+++ b/automation/source/inc/cmdbasestream.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _CMDBASESTREAM_HXX_
+#define _CMDBASESTREAM_HXX_
+
+#include <automation/commtypes.hxx>
+#include "icommstream.hxx"
+
+class CmdBaseStream
+{
+protected:
+ ICommStream* pCommStream;
+ CmdBaseStream();
+ virtual ~CmdBaseStream();
+
+public:
+
+ void GenError( SmartId *pUId, comm_String *pString );
+
+ void GenReturn( comm_USHORT nRet, comm_ULONG nNr );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_String *pString );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr, comm_String *pString, comm_BOOL bBool );
+
+// MacroRecorder
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_BOOL bBool );
+ void GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_ULONG nNr );
+
+ void Read ( comm_USHORT &nNr );
+ void Read ( comm_ULONG &nNr );
+ void Read (comm_UniChar* &aString, comm_USHORT &nLenInChars );
+ void Read ( comm_BOOL &bBool );
+ comm_USHORT GetNextType();
+
+ void Write( comm_USHORT nNr );
+ void Write( comm_ULONG nNr );
+ void Write( const comm_UniChar* aString, comm_USHORT nLenInChars );
+ void Write( comm_BOOL bBool );
+
+// Complex Datatypes to be handled system dependent
+ virtual void Read ( comm_String *&pString );
+ virtual void Read ( SmartId* &pId );
+
+ virtual void Write( comm_String *pString );
+ virtual void Write( SmartId* pId );
+};
+
+#endif
diff --git a/automation/source/inc/icommstream.hxx b/automation/source/inc/icommstream.hxx
new file mode 100644
index 000000000000..efc1315bc9b1
--- /dev/null
+++ b/automation/source/inc/icommstream.hxx
@@ -0,0 +1,64 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _AUTOMATION_ICOMMSTREAM_HXX_
+#define _AUTOMATION_ICOMMSTREAM_HXX_
+
+#include <automation/commtypes.hxx>
+
+class ICommStream
+{
+public:
+
+ ICommStream(){}
+ virtual ~ICommStream(){}
+
+ virtual ICommStream& operator>>( comm_USHORT& rUShort )=0;
+ virtual ICommStream& operator>>( comm_ULONG& rULong )=0;
+ virtual ICommStream& operator>>( comm_BOOL& rChar )=0;
+
+ virtual ICommStream& operator<<( comm_USHORT nUShort )=0;
+ virtual ICommStream& operator<<( comm_ULONG nULong )=0;
+ virtual ICommStream& operator<<( comm_BOOL nChar )=0;
+
+ virtual comm_ULONG Read( void* pData, comm_ULONG nSize )=0;
+ virtual comm_ULONG Write( const void* pData, comm_ULONG nSize )=0;
+
+ virtual comm_BOOL IsEof() const=0;
+ virtual comm_ULONG SeekRel( long nPos )=0;
+
+};
+
+#endif
diff --git a/automation/source/inc/rcontrol.hxx b/automation/source/inc/rcontrol.hxx
new file mode 100644
index 000000000000..829dd320beb6
--- /dev/null
+++ b/automation/source/inc/rcontrol.hxx
@@ -0,0 +1,496 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _RCONTROL_HXX
+#define _RCONTROL_HXX
+
+
+#define UID_ACTIVE 0
+
+
+#define SI_IPCCommandBlock 1
+#define SI_SocketCommandBlock SI_IPCCommandBlock // Zumindest erstmal
+#define SI_DirectCommandBlock 2
+#define SIControl 3
+#define SISlot 4
+#define SIFlow 5
+#define SICommand 6
+#define SIUnoSlot 7
+#define SIStringControl 8
+
+#define SIReturnBlock 11
+#define SIReturn 12
+#define SIReturnError 13
+
+// Typisierung im Stream
+#define BinUSHORT 11
+#define BinULONG 14
+#define BinString 12
+#define BinBool 13
+#define BinSbxValue 15
+
+
+// Classes
+// !!!Diese Defines duerfen niemals geaendert werden!!!
+#define C_NoType -1
+// Maximale 32 einfache Controls
+#define C_TabControl 0
+#define C_RadioButton 1
+#define C_CheckBox 2
+#define C_TriStateBox 3
+#define C_Edit 4
+#define C_MultiLineEdit 5
+#define C_MultiListBox 6
+#define C_ListBox 7
+#define C_ComboBox 8
+#define C_PushButton 9
+
+#define C_SpinField 10
+#define C_PatternField 11
+#define C_NumericField 12
+#define C_MetricField 13
+#define C_CurrencyField 14
+#define C_DateField 15
+#define C_TimeField 16
+
+#define C_ImageRadioButton 17
+#define C_NumericBox 18
+#define C_MetricBox 19
+#define C_CurrencyBox 20
+#define C_DateBox 21
+#define C_TimeBox 22
+
+#define C_ImageButton 23
+#define C_MenuButton 24
+#define C_MoreButton 25
+
+// Maximale 7 Container
+#define C_TabPage 32
+#define C_ModalDlg 33
+#define C_FloatWin 34
+#define C_ModelessDlg 35
+#define C_WorkWin 36
+#define C_DockingWin 37
+
+// Diese Defines koennen geaendert werden
+#define C_MessBox 40
+#define C_InfoBox 41
+#define C_WarningBox 42
+#define C_ErrorBox 43
+#define C_QueryBox 44
+
+#define C_TabDlg 45
+#define C_SingleTabDlg 46
+
+#define C_Window 47
+
+
+#define C_PatternBox 60
+#define C_ToolBox 61
+#define C_ValueSet 62
+#define C_Control 63
+#define C_TreeListBox 64 // Hurray the TreeListBox finally got its own Window Type
+
+#define C_OkButton 65
+#define C_CancelButton 66
+#define C_ButtonDialog 67
+
+#define C_Dialog 68
+
+
+
+
+#define M_WITH_RETURN 0x0200 // Die Variable wird zum Aufnehmen des Wertes gespeichert
+#define M_KEY_STRING 0x0400 // Key Befehle werden umgewandelt i.e. "<return><up>"
+#define M_SOFFICE 0x0800 // Command valid for Star/Open Office
+#define M_MOZILLA 0x1000 // Command valid for Mozilla
+// for MacroRecorder
+#define M_RET_NUM_CONTROL 0x2000 // decode ULong as Control (For Tabpages, Toolboxes, ... )
+
+// Methoden
+#define M_Select 21
+#define M_SetNoSelection 22
+#define M_SetText 23
+#define M_More 24
+#define M_Less 25
+#define M_ToMin 26
+#define M_ToMax 27
+#define M_Check 28
+#define M_UnCheck 29
+#define M_TriState 30
+#define M_SetPage 31
+#define M_Click 32
+
+#define M_Close 33 // Push Buttons on Dialog (Auch More Button)
+#define M_Cancel 34
+#define M_OK 35
+#define M_Help 36
+#define M_Default 37 // Push defaultbutton on Dialog
+
+#define M_Yes 38
+#define M_No 39
+#define M_Repeat 40
+
+#define M_Open 41
+#define M_Pick 42
+#define M_Move 43
+#define M_Size 44
+#define M_Minimize 45
+#define M_Maximize 46
+#define M_Dock 47
+#define M_Undock 48
+
+
+
+#define M_TypeKeys ( M_KEY_STRING | 50 )
+#define M_MouseDown 51
+#define M_MouseUp 52
+#define M_MouseMove 53
+#define M_MouseDoubleClick 54
+#define M_SnapShot 55
+#define M_SetNextToolBox 56
+#define M_OpenContextMenu 57
+#define M_MultiSelect 58
+
+// Filedialog
+#define M_SetPath 60
+#define M_SetCurFilter 61
+
+// Printdialog
+#define M_SetPrinter 70
+#define M_CheckRange 71
+#define M_SetRangeText 72
+#define M_SetFirstPage 73
+#define M_SetLastPage 74
+#define M_CheckCollate 75
+#define M_SetPageId 76
+#define M_SetPageNr 77
+
+#define M_AnimateMouse 78
+#define M_TearOff 79
+
+#define M_FadeIn 80
+#define M_FadeOut 81
+#define M_Pin 82
+
+#define M_UseMenu 83 // Use the menu of the next possible parent of given Window
+
+#define M_OpenMenu 84 // MenuButtons and Menus in ToolBoxes
+
+#define M_Restore 85 // Window Control together with M_Maximize and M_Minimize
+
+#define M_DisplayPercent 200 // Zum Anzeigen der Prozente des Windows
+
+#define M_LAST_NO_RETURN 200
+
+#if ( M_LAST_NO_RETURN >= M_WITH_RETURN )
+#error "Bereich berschritten"
+#endif
+
+#define M_Exists ( M_WITH_RETURN | 1 )
+#define M_NotExists ( M_WITH_RETURN | 2 )
+#define M_IsEnabled ( M_WITH_RETURN | 3 )
+#define M_IsVisible ( M_WITH_RETURN | 4 )
+#define M_IsWritable ( M_WITH_RETURN | 5 )
+
+#define M_GetPage ( M_WITH_RETURN | 6 )
+#define M_IsChecked ( M_WITH_RETURN | 7 )
+#define M_IsTristate ( M_WITH_RETURN | 8 )
+#define M_GetState ( M_WITH_RETURN | 9 )
+#define M_GetText ( M_WITH_RETURN | 10 )
+#define M_GetSelCount ( M_WITH_RETURN | 11 )
+#define M_GetSelIndex ( M_WITH_RETURN | 12 )
+#define M_GetSelText ( M_WITH_RETURN | 13 )
+#define M_GetItemCount ( M_WITH_RETURN | 14 )
+#define M_GetItemText ( M_WITH_RETURN | 15 )
+#define M_IsOpen ( M_WITH_RETURN | 16 )
+#define M_Caption ( M_WITH_RETURN | 17 )
+#define M_IsMax ( M_WITH_RETURN | 18 )
+#define M_IsDocked ( M_WITH_RETURN | 19 )
+#define M_GetRT ( M_WITH_RETURN | 20 )
+#define M_GetPageId ( M_WITH_RETURN | 21 )
+#define M_GetPageCount ( M_WITH_RETURN | 22 )
+#define M_GetPosX ( M_WITH_RETURN | 23 )
+#define M_GetPosY ( M_WITH_RETURN | 24 )
+#define M_GetSizeX ( M_WITH_RETURN | 25 )
+#define M_GetSizeY ( M_WITH_RETURN | 26 )
+#define M_GetNextToolBox ( M_WITH_RETURN | 27 )
+#define M_GetButtonCount ( M_WITH_RETURN | 28 )
+#define M_GetButtonId ( M_WITH_RETURN | 29 )
+
+#define M_IsFadeIn ( M_WITH_RETURN | 30 )
+#define M_IsPin ( M_WITH_RETURN | 31 )
+
+// Statusbar
+#define M_StatusGetText ( M_WITH_RETURN | 32 )
+#define M_StatusIsProgress ( M_WITH_RETURN | 33 )
+#define M_StatusGetItemCount ( M_WITH_RETURN | 34 )
+#define M_StatusGetItemId ( M_WITH_RETURN | 35 )
+
+//
+#define M_GetMouseStyle ( M_WITH_RETURN | 36 )
+
+// support for Messagebox with checkbox
+#define M_GetCheckBoxText ( M_WITH_RETURN | 37 )
+
+// Scrollbars
+#define M_HasScrollBar ( M_WITH_RETURN | 38 )
+#define M_IsScrollBarEnabled ( M_WITH_RETURN | 39 )
+
+// Dieser befehl wird nur intern im Controller (sts library) verwendet. Sie tauchen nicht im Testtool auf!
+#define _M_IsEnabled ( M_WITH_RETURN | 50 )
+
+
+#define M_GetFixedTextCount ( M_WITH_RETURN | 51 )
+#define M_GetFixedText ( M_WITH_RETURN | 52 )
+
+
+#define M_IsMin ( M_WITH_RETURN | 53 )
+#define M_IsRestore ( M_WITH_RETURN | 54 )
+
+#define M_GetItemType ( M_WITH_RETURN | 55 )
+
+// Commands for (Edit)BrowseBox
+#define M_GetColumnCount ( M_WITH_RETURN | 56 )
+#define M_GetRowCount ( M_WITH_RETURN | 57 )
+#define M_IsEditing ( M_WITH_RETURN | 58 )
+
+#define M_IsItemEnabled ( M_WITH_RETURN | 59 )
+
+//#define M_SOFFICE 0x0800 // Command valid for Star/Open Office
+//#define M_MOZILLA 0x1000 // Command valid for Mozilla
+
+
+// RemoteCommands
+#define RC_AppAbort ( M_SOFFICE | M_MOZILLA | 1 )
+#define RC_SetClipboard ( M_SOFFICE | M_MOZILLA | 2 )
+#define RC_NoDebug ( M_SOFFICE | M_MOZILLA | 3 )
+#define RC_Debug ( M_SOFFICE | M_MOZILLA | 4 )
+#define RC_GPF ( M_SOFFICE | M_MOZILLA | 5 )
+#define RC_DisplayHid ( M_SOFFICE | M_MOZILLA | 6 )
+#define RC_AppDelay ( M_SOFFICE | M_MOZILLA | 7 )
+#define RC_UseBindings ( M_SOFFICE | 8 )
+#define RC_Profile ( M_SOFFICE | M_MOZILLA | 9 )
+// (Popup)Menu
+#define RC_MenuSelect ( M_SOFFICE | M_MOZILLA | 10 )
+#define RC_SetControlType ( M_SOFFICE | 11 )
+// RemoteFileAccess
+#define RC_Kill ( M_SOFFICE | 12 )
+#define RC_RmDir ( M_SOFFICE | 13 )
+#define RC_MkDir ( M_SOFFICE | 14 )
+#define RC_FileCopy ( M_SOFFICE | 15 )
+#define RC_Name ( M_SOFFICE | 16 )
+
+#define RC_CaptureAssertions (M_SOFFICE | M_MOZILLA | 17 )
+#define RC_Assert ( M_SOFFICE | M_MOZILLA | 18 )
+
+#define RC_MenuOpen ( M_SOFFICE | M_MOZILLA | 19 )
+
+#define RC_TypeKeysDelay ( M_SOFFICE | M_MOZILLA | 20 )
+
+#define RC_ShowBar ( M_MOZILLA | 21 )
+
+#define RC_LoadURL ( M_MOZILLA | 22 )
+
+#define RC_CloseSysDialog ( M_SOFFICE | 23 )
+
+#define RC_SAXRelease ( M_SOFFICE | 24 )
+
+#define RC_RecordMacro ( M_SOFFICE | 25 )
+
+#define RC_ActivateDocument ( M_SOFFICE | 26 )
+
+#define RC_CatchGPF ( M_SOFFICE | 27 )
+
+#define _RC_LAST_NO_RETURN 27
+
+#if ( _RC_LAST_NO_RETURN >= M_WITH_RETURN )
+#error "Bereich berschritten"
+#endif
+
+// Befehle mit Returnwert
+#define RC_GetClipboard ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 1 )
+#define RC_WinTree ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 2 )
+#define RC_ResetApplication ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 3 )
+#define RC_GetNextCloseWindow ( M_SOFFICE | M_WITH_RETURN | 4 )
+#define RC_ApplicationBusy ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 5 )
+// (Popup)Menu
+#define RC_MenuGetItemCount ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 6 )
+#define RC_MenuGetItemId ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 7 )
+#define RC_MenuGetItemPos ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 8 )
+#define RC_MenuIsSeperator ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 9 )
+#define RC_MenuIsItemChecked ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 10 )
+#define RC_MenuIsItemEnabled ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 11 )
+#define RC_MenuGetItemText ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 12 )
+// RemoteFileAccess
+#define RC_Dir ( M_SOFFICE | M_WITH_RETURN | 18 )
+#define RC_FileLen ( M_SOFFICE | M_WITH_RETURN | 19 )
+#define RC_FileDateTime ( M_SOFFICE | M_WITH_RETURN | 20 )
+
+#define RC_Translate ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 21 )
+#define RC_GetMouseStyle ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 22 )
+#define RC_UnpackStorage ( M_SOFFICE | M_WITH_RETURN | 23 )
+
+#define RC_IsBarVisible ( M_MOZILLA | M_WITH_RETURN | 24 )
+
+#define RC_MenuGetItemCommand ( M_SOFFICE | M_MOZILLA | M_WITH_RETURN | 25 )
+
+#define RC_ExistsSysDialog ( M_SOFFICE | M_WITH_RETURN | 26 )
+
+#define RC_SAXCheckWellformed ( M_SOFFICE | M_WITH_RETURN | 27 )
+#define RC_SAXReadFile ( M_SOFFICE | M_WITH_RETURN | 28 )
+
+#define RC_SAXGetNodeType ( M_SOFFICE | M_WITH_RETURN | 29 )
+#define RC_SAXGetElementName ( M_SOFFICE | M_WITH_RETURN | 30 )
+#define RC_SAXGetChars ( M_SOFFICE | M_WITH_RETURN | 31 )
+#define RC_SAXGetChildCount ( M_SOFFICE | M_WITH_RETURN | 32 )
+#define RC_SAXGetAttributeCount ( M_SOFFICE | M_WITH_RETURN | 33 )
+#define RC_SAXGetAttributeName ( M_SOFFICE | M_WITH_RETURN | 34 )
+#define RC_SAXGetAttributeValue ( M_SOFFICE | M_WITH_RETURN | 35 )
+#define RC_SAXSeekElement ( M_SOFFICE | M_WITH_RETURN | 36 )
+#define RC_SAXHasElement ( M_SOFFICE | M_WITH_RETURN | 37 )
+#define RC_SAXGetElementPath ( M_SOFFICE | M_WITH_RETURN | 38 )
+
+#define RC_GetDocumentCount ( M_SOFFICE | M_WITH_RETURN | 39 )
+
+#define RC_GetSystemLanguage ( M_SOFFICE | M_WITH_RETURN | 40 )
+
+#define RC_IsProduct ( M_SOFFICE | M_WITH_RETURN | 41 )
+
+#define RC_MenuHasSubMenu ( M_SOFFICE | M_WITH_RETURN | 42 )
+
+#define RC_UsePostEvents ( M_SOFFICE | M_WITH_RETURN | 43 )
+
+#define RC_WaitSlot ( M_SOFFICE | M_WITH_RETURN | 44 )
+
+// Flow Control
+#define F_EndCommandBlock 101 // Initiiert Rckmeldung des Status
+#define F_Sequence 102 // bergibt Sequence Nummer (1. in jedem Stream)
+
+// Return codes
+#define RET_Sequence 132 // bergibt Sequence Nummer (1. in jedem Stream)
+#define RET_Value 133 // bergibt Return-wert
+#define RET_WinInfo 134 // Information ber aktuelles Fenster/Control
+#define RET_ProfileInfo 135 // Profile Information
+#define RET_DirectLoging 136 // Direktes bertragen von Informationen in das Log
+#define RET_MacroRecorder 137 // MakroRecorder Befehl bertragen
+
+
+
+// Subcodes die in nUId geliefert werden
+// fr F_ProfileInfo
+#define S_ProfileReset 201 // nNr1 = Anzahl Borders
+ // Achtung!! Diese Defines mssen aufeinanderfolgende Nummern haben!!
+#define S_ProfileBorder1 202 // nNr1 = Border1 in ms
+#define S_ProfileBorder2 203 // nNr1 = Border2 in ms
+#define S_ProfileBorder3 204 // nNr1 = Border3 in ms
+#define S_ProfileBorder4 205 // nNr1 = Border4 in ms
+ // Achtung Ende
+#define S_ProfileTime 210 // nNr1 = remote Zeit des Befehls
+#define S_ProfileDump 211 // Gibt die daten aus.
+
+// fr F_DirectLoging
+#define S_AssertError 220
+#define S_AssertWarning 221
+#define S_AssertTrace 222
+#define S_QAError 223
+
+
+
+// Konstanten die im Basic zur Verfgung stehen sollen
+
+// Verschiedene Typen von Controls fr den Befehl SetControlType
+// !!!!!!!!!!! Mssen alle bei SetControlType eingetragen werden !!!!!!!!!!!!
+#define CONST_CTBrowseBox 100
+#define CONST_CTValueSet 103
+#define CONST_CTORoadmap 104
+#define CONST_CTIExtensionListBox 105
+#define CONST_CTUnknown 199
+
+// Konstanten fr das ALignment des gesuchten Splitters
+#define CONST_ALIGN_LEFT 120
+#define CONST_ALIGN_TOP 121
+#define CONST_ALIGN_RIGHT 122
+#define CONST_ALIGN_BOTTOM 123
+
+/// What dialog to use in RC_CloseSysDialog or RC_ExistsSysDialog
+#define CONST_FilePicker 301
+#define CONST_FolderPicker 302
+
+/// NodeTypes of the SAX Parser
+#define CONST_NodeTypeCharacter 555
+#define CONST_NodeTypeElement 556
+#define CONST_NodeTypeComment 557
+
+/// ItemTypes for TreeListBox and maybe others
+#define CONST_ItemTypeText 602
+#define CONST_ItemTypeBMP 601
+#define CONST_ItemTypeCheckbox 600
+#define CONST_ItemTypeContextBMP 603
+#define CONST_ItemTypeUnknown 604
+
+/// Return values for WaitSlot
+#define CONST_WSTimeout 701
+#define CONST_WSAborted 702
+#define CONST_WSFinished 703
+
+// Beschreibt die Parametertypen als Bitfeld Reihenfolge immer!
+// wie hier Aufgelistet
+#define PARAM_NONE 0x0000
+#define PARAM_USHORT_1 0x0001
+#define PARAM_USHORT_2 0x0002
+#define PARAM_USHORT_3 0x0100 // Nicht in der Reihe!!
+#define PARAM_USHORT_4 0x0200 // Nicht in der Reihe!!
+#define PARAM_ULONG_1 0x0004
+#define PARAM_ULONG_2 0x0008
+#define PARAM_STR_1 0x0010
+#define PARAM_STR_2 0x0020
+#define PARAM_BOOL_1 0x0040
+#define PARAM_BOOL_2 0x0080
+#define PARAM_SBXVALUE_1 0x0400 // hier mit 0x0400 Weiter!!! Siehe Oben!
+
+// Zustzliche Beschreibung!! wird auch mit dem Rest verodert
+//#define PARAM_STR_RAW 0x8000 // Der Zeichensatz der Strings wird nicht konvertiert(fr Fareastern)
+
+
+#define ERR_SEND_TIMEOUT 100
+#define ERR_EXEC_TIMEOUT 101
+#define ERR_RESTART_FAIL 102
+#define ERR_RESTART 103
+#define ERR_NO_WIN 104 // Keine *.Win Dateien gefunden
+#define ERR_NO_SID 105 // Keine *.Sid Dateien gefunden
+#define ERR_NO_FILE 106 // Datei nicht gefunden
+
+#endif
diff --git a/automation/source/inc/sttresid.hxx b/automation/source/inc/sttresid.hxx
new file mode 100644
index 000000000000..4bfa73cdc2c9
--- /dev/null
+++ b/automation/source/inc/sttresid.hxx
@@ -0,0 +1,42 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _STTRESID_HXX_
+#define _STTRESID_HXX_
+
+#include <tools/resmgr.hxx>
+#include <tools/resid.hxx>
+
+class SttResId : public ResId
+{
+ static ResMgr* getSttResMgr();
+ public:
+ SttResId( sal_uInt32 nId ) : ResId( nId, *getSttResMgr() ) {}
+};
+
+
+#endif
diff --git a/automation/source/inc/svcommstream.hxx b/automation/source/inc/svcommstream.hxx
new file mode 100644
index 000000000000..545f8adc7887
--- /dev/null
+++ b/automation/source/inc/svcommstream.hxx
@@ -0,0 +1,56 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <tools/stream.hxx>
+
+#include <automation/commtypes.hxx>
+#include "icommstream.hxx"
+
+
+class SvCommStream : public ICommStream
+{
+protected:
+ SvStream* pStream;
+public:
+
+ SvCommStream( SvStream* pIO );
+ ~SvCommStream();
+
+ ICommStream& operator>>( comm_USHORT& rUShort );
+ ICommStream& operator>>( comm_ULONG& rULong );
+ ICommStream& operator>>( comm_BOOL& rChar );
+
+ ICommStream& operator<<( comm_USHORT nUShort );
+ ICommStream& operator<<( comm_ULONG nULong );
+ ICommStream& operator<<( comm_BOOL nChar );
+
+ comm_ULONG Read( void* pData, comm_ULONG nSize );
+ comm_ULONG Write( const void* pData, comm_ULONG nSize );
+
+ comm_BOOL IsEof() const;
+ comm_ULONG SeekRel( long nPos );
+};
diff --git a/automation/source/inc/testapp.hxx b/automation/source/inc/testapp.hxx
new file mode 100644
index 000000000000..14b9e30362d0
--- /dev/null
+++ b/automation/source/inc/testapp.hxx
@@ -0,0 +1,195 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef TESTAPP_HXX
+#define TESTAPP_HXX
+
+#include <basic/sbmod.hxx>
+#include <basic/testtool.hxx>
+#include <vcl/smartid.hxx>
+
+class CommunicationLink;
+class CommunicationManagerClientViaSocketTT;
+class CNames;
+class ControlItemUId;
+class CRevNames;
+//class SbxTransportVariableRef;
+class ControlsRef;
+class CmdStream;
+class FloatingLoadConf;
+class TestToolObj;
+class ControlDef;
+
+class SbxTransportMethod;
+class Application;
+
+class SotStorage;
+
+class ImplTestToolObj;
+class MyBasic;
+
+class ErrorEntry
+{
+public:
+ ErrorEntry(ULONG nNr, String aStr = String()) : nError(nNr),aText(aStr),nLine(0),nCol1(0),nCol2(0) {}
+ ErrorEntry(ULONG nNr, String aStr, xub_StrLen l, xub_StrLen c1, xub_StrLen c2 )
+ : nError(nNr),aText(aStr),nLine(l),nCol1(c1),nCol2(c2) {}
+ ULONG nError;
+ String aText;
+ xub_StrLen nLine;
+ xub_StrLen nCol1;
+ xub_StrLen nCol2;
+};
+
+SV_DECL_PTRARR_DEL(CErrors, ErrorEntry*, 1, 1)
+
+struct ControlDefLoad {
+ const char* Kurzname;
+ ULONG nUId;
+};
+
+class TestToolObj: public SbxObject
+{
+ friend class TTBasic;
+ friend class Controls;
+public:
+ TestToolObj( String aName, String aFilePath ); // Alle Dateien in FilePath, Kein IPC
+ TestToolObj( String aName, MyBasic* pBas ); // Pfade aus INI, IPC benutzen
+ ~TestToolObj();
+ void LoadIniFile(); // Laden der IniEinstellungen, die durch den ConfigDialog gendert werden knnen
+ void DebugFindNoErrors( BOOL bDebugFindNoErrors );
+
+private:
+ BOOL bWasPrecompilerError; // True wenn beim letzten Precompile ein Fehler auftrat
+ BOOL CError( ULONG, const String&, xub_StrLen, xub_StrLen, xub_StrLen );
+ void CalcPosition( String const &aSource, xub_StrLen nPos, xub_StrLen &l, xub_StrLen &c );
+ xub_StrLen ImplSearch( const String &aSource, const xub_StrLen nStart, const xub_StrLen nEnd, const String &aSearch, const xub_StrLen nSearchStart = 0 );
+ xub_StrLen PreCompilePart( String &aSource, xub_StrLen nStart, xub_StrLen nEnd, String aFinalErrorLabel, USHORT &nLabelCount );
+ void PreCompileDispatchParts( String &aSource, String aStart, String aEnd, String aFinalLable );
+public:
+ String GetRevision(String const &aSourceIn); // find Revision in the sourcecode
+ String PreCompile(String const &aSourceIn); // try catch; testcase endcase ..
+ BOOL WasPrecompilerError(); // True wenn beim letzten Precompile ein Fehler auftrat
+ void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
+ virtual SbxVariable* Find( const String&, SbxClassType );
+// String aKeyPlusClasses; // Pfad fr keycodes & classes & res_type (Aus Configdatei)
+ DECL_LINK( ReturnResultsLink, CommunicationLink* );
+ BOOL ReturnResults( SvStream *pIn ); // Rcklieferung des Antwortstreams ber IPC oder TCP/IP oder direkt
+
+ void SetLogHdl( const Link& rLink ) { aLogHdl = rLink; }
+ const Link& GetLogHdl() const { return aLogHdl; }
+
+ void SetWinInfoHdl( const Link& rLink ) { aWinInfoHdl = rLink; }
+ const Link& GetWinInfoHdl() const { return aWinInfoHdl; }
+
+ void SetModuleWinExistsHdl( const Link& rLink ) { aModuleWinExistsHdl = rLink; }
+ const Link& GetModuleWinExistsHdl() const { return aModuleWinExistsHdl; }
+
+ void SetCErrorHdl( const Link& rLink ) { aCErrorHdl = rLink; }
+ const Link& GetCErrorHdl() const { return aCErrorHdl; }
+
+ void SetWriteStringHdl( const Link& rLink ) { aWriteStringHdl = rLink; }
+ const Link& GetWriteStringHdl() const { return aWriteStringHdl; }
+
+ SfxBroadcaster& GetTTBroadcaster();
+
+private:
+ ImplTestToolObj *pImpl; // Alles was von der Implementation abhngt
+ static const CErrors* GetFehlerListe() { return pFehlerListe; }
+ BOOL bUseIPC;
+ Link aLogHdl; // Zum Logen der Fehlermeldungen im Testtool
+ Link aWinInfoHdl; // Anzeigen der Windows/Controls der zu testenden App
+ Link aModuleWinExistsHdl; // Prft ob das Modul schon im Editor geladen ist
+ Link aCErrorHdl; // Melden von Compilererror
+ Link aWriteStringHdl; // Schreiben von text (e.g. MakroRecorder)
+ BOOL bReturnOK; // Bricht WaitForAnswer ab
+ CRevNames *pShortNames; // Aktuell verwendete Controls, zur gewinnung des Namens aus Fehlermeldung
+ ULONG nSequence; // Sequence um Antwort und Anfrage zu syncronisieren
+ SmartId aNextReturnId; // Id des Returnwertes i.e. UId
+ void ReplaceNumbers(String &aText); // Zahlen im String mit speziellem Format in Namen umwandeln
+
+ String aLastRecordedKontext;// Keeps the last kontext recorded by the Macro Recorder
+
+#define FLAT TRUE
+ String ProgPath; // Dateiname der zu Testenden APP; Gesetzt ber Start
+ String aLogFileName; // Momentaner Logfilename (Wie Programmdatei aber mit .res)
+ BOOL IsBlock; // Innerhalb Begin/EndBlock
+ BOOL SingleCommandBlock; // Implizit um jedes kommando ein Begin/EndBlock
+ CmdStream *In;
+
+ void AddName(String &aBisher, String &aNeu ); // Name eventuell mit / anhngen
+ void AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem ); //
+ CNames *m_pControls;
+ CNames *m_pNameKontext; // Zeigt auf den aktuellen Namenskontext, der ber 'Kontext' gesetzt wurde
+ CNames *m_pSIds;
+ CNames *m_pReverseSlots; // Slots mit Kurznamen nach Nummer
+ CNames *m_pReverseControls; // Controls mit Kurznamen nach Nummer
+ CNames *m_pReverseControlsSon;// Controls mit Kurznamen nach Nummer nach Fenstern (Son)
+ CNames *m_pReverseUIds; // Langnamen nach Nummer
+
+
+ USHORT nMyVar; // Wievielte Var aus Pool ist dran
+
+ void InitTestToolObj();
+ CommunicationManagerClientViaSocketTT *pCommunicationManager;
+ void SendViaSocket();
+
+ BOOL Load( String aFileName, SbModule *pMod );
+
+ void ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, BOOL bIsFlat = FALSE );
+ void ReadFlat( String Filename, CNames *&pNames, BOOL bSortByName );
+ BOOL ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pControls );
+ BOOL WriteNamesBin( String Filename, CNames *pSIds, CNames *pControls );
+ void ReadHidLstByNumber();
+ void SortControlsByNumber( BOOL bIncludeActive = FALSE );
+
+ String GetMethodName( ULONG nMethodId );
+ String GetKeyName( USHORT nKeyCode );
+
+ void WaitForAnswer ();
+ DECL_LINK( IdleHdl, Application* );
+ DECL_LINK( CallDialogHandler, Application* );
+ String aDialogHandlerName;
+ USHORT nWindowHandlerCallLevel;
+
+ USHORT nIdleCount;
+ // wenn DialogHandler gesetzt wird er im IdleHandler inkrementiert und
+ // in WaitForAnswer rckgesetzt. bersteigt er einen gewissen wert, gehe ich davon aus,
+ // da WaitForAnswer still ligt und rufe die DialogHander Sub im BASIC auf.
+
+ void BeginBlock();
+ void EndBlock();
+
+ SbTextType GetSymbolType( const String &rSymbol, BOOL bWasControl );
+ static ControlDefLoad const arR_Cmds[];
+ static CNames *pRCommands;
+
+ static CErrors *pFehlerListe; // Hier werden die Fehler des Testtools gespeichert
+
+};
+
+#endif
diff --git a/automation/source/inc/testtool.hxx b/automation/source/inc/testtool.hxx
new file mode 100644
index 000000000000..33c9e225b684
--- /dev/null
+++ b/automation/source/inc/testtool.hxx
@@ -0,0 +1,72 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef SVTOOLS_TESTTOOL_HXX
+#define SVTOOLS_TESTTOOL_HXX
+
+#include <tools/solar.h>
+#include <tools/link.hxx>
+#include <vcl/timer.hxx>
+
+class Application;
+class SvStream;
+
+class StatementFlow;
+class CommunicationManager;
+class CommunicationLink;
+#if OSL_DEBUG_LEVEL > 1
+class EditWindow;
+#endif
+class ImplRC;
+
+class ImplRemoteControl
+{
+ friend class StatementFlow;
+
+ BOOL m_bIdleInserted;
+ AutoTimer m_aIdleTimer;
+ BOOL m_bInsideExecutionLoop;
+#if OSL_DEBUG_LEVEL > 1
+ EditWindow *m_pDbgWin;
+#endif
+
+public:
+ ImplRemoteControl();
+ ~ImplRemoteControl();
+ BOOL QueCommands( ULONG nServiceId, SvStream *pIn );
+ SvStream* GetReturnStream();
+
+ DECL_LINK( IdleHdl, Application* );
+ DECL_LINK( CommandHdl, Application* );
+
+ DECL_LINK( QueCommandsEvent, CommunicationLink* );
+
+protected:
+ CommunicationManager *pServiceMgr;
+ SvStream *pRetStream;
+};
+
+#endif // SVTOOLS_TESTTOOL_HXX
diff --git a/automation/source/miniapp/editwin.cxx b/automation/source/miniapp/editwin.cxx
new file mode 100644
index 000000000000..f00917e6d2e5
--- /dev/null
+++ b/automation/source/miniapp/editwin.cxx
@@ -0,0 +1,127 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#include "editwin.hxx"
+#include <tools/stream.hxx>
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+
+BOOL GHEditWindow::Close()
+{
+ if (aInhalt.IsModified())
+ {
+ }
+ delete(this);
+ return TRUE;
+}
+
+void GHEditWindow::Resize()
+{
+ aInhalt.SetPosSizePixel(Point(1,1),GetOutputSizePixel());
+}
+
+GHEditWindow::GHEditWindow(Window * pParent, String aName, WinBits iWstyle)
+: FloatingWindow(pParent)
+, aInhalt(this,iWstyle)
+{
+ SetOutputSizePixel( Size( 120,80 ) );
+ Show();
+ Resize();
+ aInhalt.Show();
+ SetText(aName);
+}
+
+void GHEditWindow::Clear()
+{
+ aInhalt.SetText(String());
+}
+
+void GHEditWindow::AddText( String aNew, BOOL bMoveToEnd)
+{
+ String aOld = aInhalt.GetText();
+
+ aOld += aNew;
+ aOld.ConvertLineEnd();
+ aInhalt.SetText(aOld);
+ if (bMoveToEnd)
+ aInhalt.SetSelection(Selection(SELECTION_MAX,SELECTION_MAX));
+}
+
+
+EditFileWindow::EditFileWindow(Window * pParent, String aName, WinBits iWstyle)
+: GHEditWindow(pParent, aName, iWstyle)
+, aFileName(aName)
+{
+ LoadFile();
+}
+
+void EditFileWindow::LoadFile()
+{
+
+ SvFileStream Stream;
+ String All,Line;
+
+ Stream.Open(aFileName, STREAM_STD_READ);
+
+ if (!Stream.IsOpen())
+ {
+ AddText(CUniString("could not open ").Append(aFileName).AppendAscii("\n"));
+ aFileName.Erase();
+ return;
+ }
+
+ while (!Stream.IsEof())
+ {
+
+ Stream.ReadByteStringLine( Line, RTL_TEXTENCODING_UTF8 );
+
+ All += Line;
+ All += '\n';
+
+ }
+
+ All.ConvertLineEnd();
+
+ AddText(All,FALSE);
+
+}
+
+BOOL EditFileWindow::Close()
+{
+
+ if (aInhalt.IsModified() && QueryBox(this,WB_DEF_YES | WB_YES_NO_CANCEL, String(aFileName).AppendAscii("\nhas been changed.\n\nSave file?")).Execute())
+ {
+
+ }
+ return GHEditWindow::Close();
+}
+
diff --git a/automation/source/miniapp/editwin.hxx b/automation/source/miniapp/editwin.hxx
new file mode 100644
index 000000000000..8fbf04227382
--- /dev/null
+++ b/automation/source/miniapp/editwin.hxx
@@ -0,0 +1,70 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _editwin
+#define _editwin
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+#include <vcl/floatwin.hxx>
+#include <svtools/svmedit.hxx>
+
+class GHEditWindow : public FloatingWindow
+{
+
+protected:
+
+ MultiLineEdit aInhalt;
+
+ virtual BOOL Close(); // derived
+ void Resize();
+
+public:
+
+ GHEditWindow();
+ GHEditWindow(Window * pParent, String aName = CUniString("Neues Fenster"), WinBits iWstyle = WB_STDWORK);
+
+ void Clear();
+ void AddText( String aNew, BOOL bMoveToEnd = TRUE);
+};
+
+
+
+class EditFileWindow : public GHEditWindow
+{
+
+ String aFileName;
+ virtual BOOL Close(); // derived
+ void LoadFile();
+
+public:
+ EditFileWindow(Window * pParent, String aName = CUniString("Neue Datei"), WinBits iWstyle = WB_STDWORK);
+
+};
+
+#endif
+
diff --git a/automation/source/miniapp/hid.lst b/automation/source/miniapp/hid.lst
new file mode 100644
index 000000000000..99964dba02e8
--- /dev/null
+++ b/automation/source/miniapp/hid.lst
@@ -0,0 +1,27 @@
+MENU_CLIENT 256
+IDM_FILE 1
+IDM_FILE_OPEN_TEST 2
+IDM_FILE_EXIT 3
+IDM_FILE_EXIT_HELP 0
+IDM_FILE_OPEN_TEST_HELP 1
+IDM_FILE_HELP 3
+GROSSER_TEST_DLG 256
+IDM_TEST 5
+IDM_TEST_GROSS 6
+IDM_SYS_DLG 7
+IDM_TEST_WINTREE 8
+
+
+
+UID_GROSSER_TEST_DLG 101
+UID_CheckBox 202
+UID_TriStateBox 303
+UID_OKButton 404
+UID_TimeField 505
+UID_MultiLineEdit 606
+UID_RadioButton1 707
+UID_RadioButton2 708
+UID_MultiListBox 809
+UID_ComboBox 910
+UID_DateBox 1011
+
diff --git a/automation/source/miniapp/makefile.mk b/automation/source/miniapp/makefile.mk
new file mode 100644
index 000000000000..14a6d1ff0e1d
--- /dev/null
+++ b/automation/source/miniapp/makefile.mk
@@ -0,0 +1,54 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=miniapp
+
+# --- Settings ------------------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Allgemein ------------------------------------------------------------
+
+OBJFILES = \
+ $(OBJ)$/testapp.obj \
+ $(OBJ)$/editwin.obj \
+ $(OBJ)$/servres.obj
+
+
+EXCEPTIONSFILES= \
+ $(OBJ)$/testapp.obj
+
+SRS1NAME=$(TARGET)
+SRC1FILES = \
+ servres.src
+
+# --- Targets ------------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/automation/source/miniapp/servres.cxx b/automation/source/miniapp/servres.cxx
new file mode 100644
index 000000000000..a708e026a2a6
--- /dev/null
+++ b/automation/source/miniapp/servres.cxx
@@ -0,0 +1,60 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <string.h>
+
+#include "servres.hrc"
+#include "servuid.hxx"
+#include "servres.hxx"
+
+
+ModalDialogGROSSER_TEST_DLG::ModalDialogGROSSER_TEST_DLG( Window * pParent, const ResId & rResId, BOOL bFreeRes )
+ : ModalDialog( pParent, rResId ),
+ aCheckBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aTriStateBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aOKButton1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aTimeField1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aMultiLineEdit1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aGroupBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aRadioButton1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aRadioButton2( this, ResId( 2, *rResId.GetResMgr() ) ),
+ aMultiListBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aComboBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aDateBox1( this, ResId( 1, *rResId.GetResMgr() ) ),
+ aFixedText1( this, ResId( 1, *rResId.GetResMgr() ) )
+{
+ if( bFreeRes ) FreeResource();
+}
+
+MenuMENU_CLIENT::MenuMENU_CLIENT( const ResId & rResId, BOOL )
+ : MenuBar( rResId )
+{
+ // No subresources, automatic free resource
+}
+
diff --git a/automation/source/miniapp/servres.hrc b/automation/source/miniapp/servres.hrc
new file mode 100644
index 000000000000..2f95a34a60b6
--- /dev/null
+++ b/automation/source/miniapp/servres.hrc
@@ -0,0 +1,40 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+/* StarView ressource header file */
+#define MENU_CLIENT 256
+#define IDM_FILE 1
+#define IDM_FILE_OPEN_TEST 2
+#define IDM_FILE_EXIT 3
+#define IDM_FILE_EXIT_HELP 4
+#define IDM_FILE_OPEN_TEST_HELP 1
+#define IDM_FILE_HELP 3
+#define GROSSER_TEST_DLG 256
+#define IDM_TEST 5
+#define IDM_TEST_GROSS 6
+#define IDM_SYS_DLG 7
+#define IDM_TEST_WINTREE 8
+
diff --git a/automation/source/miniapp/servres.hxx b/automation/source/miniapp/servres.hxx
new file mode 100644
index 000000000000..848779a39fa7
--- /dev/null
+++ b/automation/source/miniapp/servres.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#include <svtools/svmedit.hxx>
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _COMBOBOX_HXX //autogen
+#include <vcl/combobox.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _MENU_HXX //autogen
+#include <vcl/menu.hxx>
+#endif
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+
+class ModalDialogGROSSER_TEST_DLG : public ModalDialog
+{
+protected:
+ CheckBox aCheckBox1;
+ TriStateBox aTriStateBox1;
+ OKButton aOKButton1;
+ TimeField aTimeField1;
+ MultiLineEdit aMultiLineEdit1;
+ GroupBox aGroupBox1;
+ RadioButton aRadioButton1;
+ RadioButton aRadioButton2;
+ MultiListBox aMultiListBox1;
+ ComboBox aComboBox1;
+ DateBox aDateBox1;
+ FixedText aFixedText1;
+public:
+ ModalDialogGROSSER_TEST_DLG( Window * pParent, const ResId & rResId, BOOL bFreeRes = TRUE );
+};
+
+class MenuMENU_CLIENT : public MenuBar
+{
+protected:
+public:
+ MenuMENU_CLIENT( const ResId & rResId, BOOL bFreeRes = TRUE );
+};
+
diff --git a/automation/source/miniapp/servres.src b/automation/source/miniapp/servres.src
new file mode 100644
index 000000000000..426be8b81532
--- /dev/null
+++ b/automation/source/miniapp/servres.src
@@ -0,0 +1,233 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#include "servres.hrc"
+#include "servuid.hxx"
+ModalDialog GROSSER_TEST_DLG
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ HelpID = UID_GROSSER_TEST_DLG ;
+ Pos = MAP_APPFONT ( 14 , 7 ) ;
+ Size = MAP_APPFONT ( 273 , 110 ) ;
+ Text = "Groer Testdialog" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ CheckBox 1
+ {
+ HelpID = UID_CheckBox ;
+ Pos = MAP_APPFONT ( 9 , 17 ) ;
+ Size = MAP_APPFONT ( 55 , 12 ) ;
+ Text = "CheckBox" ;
+ TabStop = TRUE ;
+ };
+ TriStateBox 1
+ {
+ HelpID = UID_TriStateBox ;
+ Pos = MAP_APPFONT ( 9 , 29 ) ;
+ Size = MAP_APPFONT ( 62 , 12 ) ;
+ Text = "TriStateBox" ;
+ TabStop = TRUE ;
+ };
+ OKButton 1
+ {
+ HelpID = 1 ;
+ Pos = MAP_APPFONT ( 132 , 92 ) ;
+ Size = MAP_APPFONT ( 64 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ TimeField 1
+ {
+ Border = TRUE ;
+ HelpID = UID_TimeField ;
+ Pos = MAP_APPFONT ( 9 , 92 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ TabStop = TRUE ;
+ Spin = TRUE ;
+ };
+ MultiLineEdit 1
+ {
+ Border = TRUE ;
+ HelpID = UID_MultiLineEdit ;
+ Pos = MAP_APPFONT ( 172 , 6 ) ;
+ Size = MAP_APPFONT ( 94 , 48 ) ;
+ Text = "MultiLineEdit" ;
+ TabStop = TRUE ;
+ VScroll = TRUE ;
+ };
+ GroupBox 1
+ {
+ Pos = MAP_APPFONT ( 9 , 42 ) ;
+ Size = MAP_APPFONT ( 58 , 44 ) ;
+ Text = "GroupBox" ;
+ Group = TRUE ;
+ };
+ RadioButton 2
+ {
+ HelpID = UID_RadioButton2 ;
+ Pos = MAP_APPFONT ( 16 , 68 ) ;
+ Size = MAP_APPFONT ( 40 , 12 ) ;
+ Text = "Radio2" ;
+ TabStop = TRUE ;
+ };
+ RadioButton 1
+ {
+ HelpID = UID_RadioButton1 ;
+ Pos = MAP_APPFONT ( 16 , 54 ) ;
+ Size = MAP_APPFONT ( 42 , 12 ) ;
+ Text = "Radio1" ;
+ TabStop = TRUE ;
+ };
+ MultiListBox 1
+ {
+ Border = TRUE ;
+ HelpID = UID_MultiListBox ;
+ Pos = MAP_APPFONT ( 76 , 6 ) ;
+ Size = MAP_APPFONT ( 86 , 48 ) ;
+ TabStop = TRUE ;
+ StringList =
+ {
+ < "MultiListBox" ; Default ; > ;
+ < "Zeile 2" ; Default ; > ;
+ < "Zeile 3" ; Default ; > ;
+ < "Zeile 4" ; Default ; > ;
+ < "Zeile 5" ; Default ; > ;
+ < "Zeile 6" ; Default ; > ;
+ < "Zeile 7" ; Default ; > ;
+ < "Zeile 8" ; Default ; > ;
+ < "Zeile 9" ; Default ; > ;
+ < "Zeile 10" ; Default ; > ;
+ };
+ };
+ ComboBox 1
+ {
+ HelpID = UID_ComboBox ;
+ Pos = MAP_APPFONT ( 76 , 58 ) ;
+ Size = MAP_APPFONT ( 86 , 55 ) ;
+ Text = "ComboBox" ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ AutoHScroll = TRUE ;
+ StringList =
+ {
+ "ComboBox" ;
+ "Erster" ;
+ "Zweiter" ;
+ "Dritter" ;
+ };
+ };
+ DateBox 1
+ {
+ HelpID = UID_DateBox ;
+ Pos = MAP_APPFONT ( 76 , 72 ) ;
+ Size = MAP_APPFONT ( 86 , 54 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ AutoHScroll = TRUE ;
+ StringList =
+ {
+ "1.1.91" ;
+ "2.2.92" ;
+ "3.3.93" ;
+ };
+ };
+ FixedText 1
+ {
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 19 , 6 ) ;
+ Size = MAP_APPFONT ( 39 , 9 ) ;
+ Text = "FixedText" ;
+ Center = TRUE ;
+ };
+ CancelButton 1
+ {
+ Pos = MAP_APPFONT ( 202 , 92 ) ;
+ Size = MAP_APPFONT ( 64 , 12 ) ;
+ TabStop = TRUE ;
+ };
+};
+Menu MENU_CLIENT
+{
+ ItemList =
+ {
+ MenuItem
+ {
+ Identifier = IDM_FILE ;
+ HelpID = IDM_FILE_HELP ;
+ Text = "~File" ;
+ SubMenu = Menu
+ {
+ ItemList =
+ {
+ MenuItem
+ {
+ Identifier = IDM_FILE_OPEN_TEST ;
+ HelpID = IDM_FILE_OPEN_TEST_HELP ;
+ Text = "~Open Test Window" ;
+ };
+ MenuItem
+ {
+ Identifier = 4 ;
+ Separator = TRUE ;
+ };
+ MenuItem
+ {
+ Identifier = IDM_FILE_EXIT ;
+ HelpID = IDM_FILE_EXIT_HELP ;
+ Text = "~Beenden" ;
+ AccelKey = KeyCode
+ {
+ Code = KEY_F4 ;
+ Modifier2 = TRUE ;
+ };
+ };
+ };
+ };
+ };
+ MenuItem
+ {
+ Identifier = IDM_TEST ;
+ Text = "~Test" ;
+ SubMenu = Menu
+ {
+ ItemList =
+ {
+ MenuItem
+ {
+ Identifier = IDM_TEST_GROSS ;
+ Text = "~Groer Testdialog" ;
+ };
+ MenuItem
+ {
+ Identifier = IDM_SYS_DLG ;
+ Text = "~Sysdialoge" ;
+ };
+ };
+ };
+ };
+ };
+};
+
diff --git a/automation/source/miniapp/servuid.hxx b/automation/source/miniapp/servuid.hxx
new file mode 100644
index 000000000000..7d66c5473fac
--- /dev/null
+++ b/automation/source/miniapp/servuid.hxx
@@ -0,0 +1,37 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#define UID_GROSSER_TEST_DLG 101
+#define UID_CheckBox 202
+#define UID_TriStateBox 303
+#define UID_OKButton 404
+#define UID_TimeField 505
+#define UID_MultiLineEdit 606
+#define UID_RadioButton1 707
+#define UID_RadioButton2 708
+#define UID_MultiListBox 809
+#define UID_ComboBox 910
+#define UID_DateBox 1011
diff --git a/automation/source/miniapp/test.bas b/automation/source/miniapp/test.bas
new file mode 100644
index 000000000000..6d00e892fcb3
--- /dev/null
+++ b/automation/source/miniapp/test.bas
@@ -0,0 +1,126 @@
+'encoding UTF-8 Do not remove or change this line!
+sub main
+' cMassentest
+' DisplayHid
+ cTestdialog
+ cSysDlgTest
+ cFileOpenTest
+ SidWintree
+
+ FileExit
+end sub
+
+testcase cMassentest
+
+DisplayHid
+resetapplication
+FileDialog
+kontext "GrosserTestDlg"
+dim c,t,lang,i
+c = 0
+lang = "0123456789abcdef"
+lang = lang + lang
+lang = lang + lang
+lang = lang + lang
+lang = lang + lang
+lang = lang + lang
+lang = lang + lang
+
+lang = lang + lang
+lang = lang + lang
+nodebug
+while 1
+ c = c + 1
+ t = str(c)
+ MultiLineEdit.SetText t
+ CheckBox.check lang
+ CheckBox.uncheck lang
+ for i = 1 to 200 : next
+ beep
+wend
+
+endcase
+
+
+testcase cFileOpenTest
+
+ FileOpenTest
+ setclipboard wintree
+ kontext
+ active.cancel
+
+endcase
+
+
+testcase cSysDlgTest
+
+ SysDialogs
+ setclipboard wintree
+ kontext
+ active.yes
+ setclipboard wintree
+ active.ok
+ active.Cancel
+
+ SysDialogs
+ active.Cancel
+ active.ok
+
+endcase
+
+testcase cTestdialog
+
+ FileDialog
+
+ kontext "GrosserTestDlg"
+ CheckBox.uncheck
+ TriStateBox.tristate
+ 'OKButton
+' TimeField.settext("fhsdjk")
+ MultiLineEdit.SetText "Das war der Text: '"+MultiLineEdit.GetText+"'"
+ RadioButton1.check
+ RadioButton2.check
+' MultiListBox.select 2
+ ComboBox.select("Dritter")
+ DateBox.select("1.1.91")
+
+ GrosserTestDlg.ok
+
+endcase
+
+
+sub LoadIncludeFiles
+
+ start "miniapp.exe", "-enableautomation"
+
+ use "test.win"
+ use "test.sid"
+
+ testexit
+
+end sub
+
+sub testenter
+end sub
+
+sub testexit
+
+ dim xx
+ xx = resetapplication
+ if xx > "" then warnlog xx
+
+end sub
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/automation/source/miniapp/test.sid b/automation/source/miniapp/test.sid
new file mode 100644
index 000000000000..3af8966aa06b
--- /dev/null
+++ b/automation/source/miniapp/test.sid
@@ -0,0 +1,5 @@
+FileOpenTest IDM_FILE_OPEN_TEST
+FileExit IDM_FILE_EXIT
+FileDialog IDM_TEST_GROSS
+SidWintree IDM_TEST_WINTREE
+SysDialogs IDM_SYS_DLG
diff --git a/automation/source/miniapp/test.win b/automation/source/miniapp/test.win
new file mode 100644
index 000000000000..224ca5ad2d44
--- /dev/null
+++ b/automation/source/miniapp/test.win
@@ -0,0 +1,13 @@
+*active
+*GrosserTestDlg UID_GROSSER_TEST_DLG
+CheckBox UID_CheckBox
+TriStateBox UID_TriStateBox
+OKButton UID_OKButton
+TimeField UID_TimeField
+MultiLineEdit UID_MultiLineEdit
+RadioButton1 UID_RadioButton1
+RadioButton2 UID_RadioButton2
+MultiListBox UID_MultiListBox
+ComboBox UID_ComboBox
+DateBox UID_DateBox
+
diff --git a/automation/source/miniapp/testapp.cxx b/automation/source/miniapp/testapp.cxx
new file mode 100644
index 000000000000..0a29fcc7e6e1
--- /dev/null
+++ b/automation/source/miniapp/testapp.cxx
@@ -0,0 +1,350 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <svtools/filedlg.hxx>
+#include <stdio.h>
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#include <tools/debug.hxx>
+#include <svtools/testtool.hxx>
+#include <svtools/ttprops.hxx>
+#include <rtl/ustring.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <osl/process.h>
+#include <ucbhelper/contentbroker.hxx>
+#include <ucbhelper/configurationkeys.hxx>
+#include <comphelper/regpathhelper.hxx>
+#include <comphelper/processfactory.hxx>
+#include <cppuhelper/servicefactory.hxx>
+#include <com/sun/star/registry/XImplementationRegistration.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/ucb/XContentProviderManager.hpp>
+
+#include "servres.hrc"
+#include "servres.hxx"
+#include "testapp.hxx"
+
+using namespace comphelper;
+using namespace cppu;
+using namespace rtl;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::registry;
+using namespace com::sun::star::ucb;
+
+static ResMgr* pAppMgr = NULL;
+
+MainWindow::MainWindow(MyApp *pAppl)
+: WorkWindow(NULL, WB_STDWORK)
+, pApp(pAppl)
+{}
+
+IMPL_LINK(MainWindow,MenuSelectHdl,MenuBar*,aMenu)
+{
+
+ return pApp->GetDispatcher()->ExecuteFunction(aMenu->GetCurItemId());
+
+}
+
+void MainWindow::FileOpen()
+{
+ FileDialog Dlg(this,WB_OPEN );
+
+ Dlg.AddFilter(CUniString("Alle Dateien"), CUniString("*.*"));
+ Dlg.SetCurFilter (CUniString("*.*"));
+
+ if (Dlg.Execute() == RET_OK)
+ {
+ new EditFileWindow(this,Dlg.GetPath());
+ }
+}
+
+
+void MainWindow::TestGross()
+{
+ ModalDialogGROSSER_TEST_DLG Dlg(this,ResId(GROSSER_TEST_DLG, *pAppMgr));
+
+ if (Dlg.Execute() == RET_OK)
+ {
+ }
+}
+
+
+BOOL MainWindow::Close()
+{
+ WorkWindow::Close();
+ FileExit();
+ return TRUE;
+}
+
+void MainWindow::FileExit()
+{
+/* WriteSTBProfile();*/
+
+// if (pApp->CloseAll())
+ pApp->Quit();
+}
+
+
+void MainWindow::Tree(GHEditWindow *aEditWin, Window *pBase, USHORT Indent)
+{
+ String sIndent,aText;
+ sIndent.Expand(5*Indent);
+
+ aText = pBase->GetText();
+ aText.SearchAndReplaceAllAscii("\n",CUniString("\\n"));
+
+ aEditWin->AddText(String(sIndent).AppendAscii("Text: ").Append(aText).AppendAscii("\n"));
+ aEditWin->AddText(String(sIndent).AppendAscii("Help: ").Append(String::CreateFromInt64(pBase->GetHelpId())).AppendAscii(":").Append(pBase->GetQuickHelpText()).AppendAscii(":").Append(pBase->GetHelpText()).AppendAscii("\n"));
+
+ USHORT i;
+ for (i = 0 ; i < pBase->GetChildCount() ; i++)
+ {
+ Tree(aEditWin,pBase->GetChild(i),Indent+1);
+ }
+}
+
+void MainWindow::WinTree()
+{
+
+ GHEditWindow * aEditWin = new GHEditWindow(this,CUniString("Window Tree"));
+ Tree(aEditWin,this,0);
+
+}
+
+void MainWindow::SysDlg()
+{
+ switch (QueryBox(this,WB_YES_NO_CANCEL | WB_DEF_YES, CUniString("Want to open another Dialog?")).Execute())
+ {
+ case RET_YES:
+ while ( WarningBox(this,WB_OK_CANCEL | WB_DEF_OK,CUniString("Well this is the last box now!")).Execute() == RET_OK ) ;
+ break;
+ case RET_NO:
+ break;
+ case RET_CANCEL:InfoBox(this,CUniString("Oh well..")).Execute();
+ break;
+ }
+
+/*
+
+#define WB_OK ((WinBits)0x0010)
+#define WB_OK_CANCEL ((WinBits)0x0020)
+#define WB_YES_NO ((WinBits)0x0040)
+#define WB_YES_NO_CANCEL ((WinBits)0x0080)
+#define WB_RETRY_CANCEL ((WinBits)0x0100)
+
+#define WB_DEF_OK ((WinBits)0x0200)
+#define WB_DEF_CANCEL ((WinBits)0x0400)
+#define WB_DEF_RETRY ((WinBits)0x0800)
+#define WB_DEF_YES ((WinBits)0x1000)
+#define WB_DEF_NO ((WinBits)0x2000)
+
+#define RET_OK TRUE
+#define RET_CANCEL FALSE
+#define RET_YES 2
+#define RET_NO 3
+#define RET_RETRY 4
+*/
+}
+
+MyApp aApp;
+
+MyApp::MyApp()
+{
+ pMainWin = NULL;
+}
+
+void MyApp::Property( ApplicationProperty& rProp )
+{
+ TTProperties* pTTProperties = PTR_CAST( TTProperties, &rProp );
+ if ( pTTProperties )
+ {
+ pTTProperties->nPropertyVersion = TT_PROPERTIES_VERSION;
+ switch ( pTTProperties->nActualPR )
+ {
+/* case TT_PR_SLOTS:
+ {
+ pTTProperties->nSidOpenUrl = SID_OPENURL;
+ pTTProperties->nSidFileName = SID_FILE_NAME;
+ pTTProperties->nSidNewDocDirect = SID_NEWDOCDIRECT;
+ pTTProperties->nSidCopy = SID_COPY;
+ pTTProperties->nSidPaste = SID_PASTE;
+ pTTProperties->nSidSourceView = SID_SOURCEVIEW;
+ pTTProperties->nSidSelectAll = SID_SELECTALL;
+ pTTProperties->nSidReferer = SID_REFERER;
+ pTTProperties->nActualPR = 0;
+ }
+ break;*/
+ case TT_PR_DISPATCHER:
+ {
+ PlugInDispatcher* pDispatcher = GetDispatcher();
+ if ( !pDispatcher )
+ pTTProperties->nActualPR = TT_PR_ERR_NODISPATCHER;
+ else
+ {
+ pDispatcher->SetExecuteMode(EXECUTEMODE_DIALOGASYNCHRON);
+ if ( pDispatcher->ExecuteFunction(
+ pTTProperties->mnSID, pTTProperties->mppArgs, pTTProperties->mnMode )
+ == EXECUTE_NO )
+ pTTProperties->nActualPR = TT_PR_ERR_NOEXECUTE;
+ else
+ pTTProperties->nActualPR = 0;
+ }
+ }
+ break;
+/* case TT_PR_IMG:
+ {
+ SvDataMemberObjectRef aDataObject = new SvDataMemberObject();
+ SvData* pDataBmp = new SvData( FORMAT_BITMAP );
+ pDataBmp->SetData( pTTProperties->mpBmp );
+ aDataObject->Append( pDataBmp );
+ aDataObject->CopyClipboard();
+ pTTProperties->nActualPR = 0;
+ }
+ break;*/
+ default:
+ {
+ pTTProperties->nPropertyVersion = 0;
+ }
+ }
+ return;
+ }
+}
+
+
+USHORT MyDispatcher::ExecuteFunction( USHORT nSID, SfxPoolItem** ppArgs, USHORT nMode)
+{
+ (void) ppArgs; /* avoid warning about unused parameter */
+ (void) nMode; /* avoid warning about unused parameter */
+
+ switch (nSID)
+ {
+ case IDM_FILE_EXIT: pMainWin->FileExit(); break;
+ case IDM_FILE_OPEN_TEST: pMainWin->FileOpen(); break;
+ case IDM_TEST_GROSS: pMainWin->TestGross(); break;
+ case IDM_TEST_WINTREE: pMainWin->WinTree(); break;
+ case IDM_SYS_DLG: pMainWin->SysDlg(); break;
+ default:
+ {
+ DBG_ERROR1("Dispatcher kennt Funktion nicht %s",ByteString::CreateFromInt64(nSID).GetBuffer());
+ return EXECUTE_NO;
+ }
+
+ }
+ return EXECUTE_YES;
+}
+
+PlugInDispatcher* MyApp::GetDispatcher()
+{
+ return pMyDispatcher;
+}
+
+Reference< XContentProviderManager > InitializeUCB( void )
+{
+ OUString path;
+ if( osl_Process_E_None != osl_getExecutableFile( (rtl_uString**)&path ) )
+ {
+ InfoBox( NULL, String::CreateFromAscii( "Couldn't retrieve directory of executable" ) ).Execute();
+ exit( 1 );
+ }
+ OSL_ASSERT( path.lastIndexOf( '/' ) >= 0 );
+
+
+ ::rtl::OUStringBuffer bufServices( path.copy( 0, path.lastIndexOf( '/' )+1 ) );
+ bufServices.appendAscii("services.rdb");
+ OUString services = bufServices.makeStringAndClear();
+
+ ::rtl::OUStringBuffer bufTypes( path.copy( 0, path.lastIndexOf( '/' )+1 ) );
+ bufTypes.appendAscii("types.rdb");
+ OUString types = bufTypes.makeStringAndClear();
+
+
+ Reference< XMultiServiceFactory > xSMgr;
+ try
+ {
+ xSMgr = createRegistryServiceFactory( types, services, sal_True );
+ }
+ catch( com::sun::star::uno::Exception & exc )
+ {
+ fprintf( stderr, "Couldn't bootstrap uno servicemanager for reason : %s\n" ,
+ OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ).getStr() );
+ InfoBox( NULL, String( exc.Message ) ).Execute();
+ throw ;
+ }
+
+
+ //////////////////////////////////////////////////////////////////////
+ // set global factory
+ setProcessServiceFactory( xSMgr );
+
+// Create unconfigured Ucb:
+ Sequence< Any > aArgs;
+ ucbhelper::ContentBroker::initialize( xSMgr, aArgs );
+ Reference< XContentProviderManager > xUcb =
+ ucbhelper::ContentBroker::get()->getContentProviderManagerInterface();
+
+ Reference< XContentProvider > xFileProvider
+ ( xSMgr->createInstance( OUString::createFromAscii( "com.sun.star.ucb.FileContentProvider" ) ), UNO_QUERY );
+ xUcb->registerContentProvider( xFileProvider, OUString::createFromAscii( "file" ), sal_True );
+
+ return xUcb;
+}
+
+void MyApp::Main()
+{
+ Reference< XContentProviderManager > xUcb = InitializeUCB();
+ LanguageType aRequestedLanguage;
+ aRequestedLanguage = LanguageType( LANGUAGE_GERMAN );
+
+ AllSettings aSettings = GetSettings();
+ aSettings.SetUILanguage( aRequestedLanguage );
+ aSettings.SetLanguage( aRequestedLanguage );
+ SetSettings( aSettings );
+ pAppMgr = CREATEVERSIONRESMGR( tma );
+
+ MainWindow MainWin(this);
+ pMainWin = &MainWin;
+
+ MenuBar aMenu(ResId(MENU_CLIENT,*pAppMgr));
+ MainWin.SetMenuBar( &aMenu );
+ aMenu.GetPopupMenu( IDM_FILE )->SetSelectHdl(LINK(&MainWin, MainWindow, MenuSelectHdl));
+ aMenu.GetPopupMenu( IDM_TEST )->SetSelectHdl(LINK(&MainWin, MainWindow, MenuSelectHdl));
+
+ MyDispatcher MyDsp(pMainWin);
+ pMyDispatcher = &MyDsp;
+
+ MainWin.SetText(CUniString("Star Division Test Tool Client Window"));
+ MainWin.Show();
+
+ RemoteControl aRC;
+
+ Execute();
+}
+
diff --git a/automation/source/miniapp/testapp.hxx b/automation/source/miniapp/testapp.hxx
new file mode 100644
index 000000000000..31a480a0173e
--- /dev/null
+++ b/automation/source/miniapp/testapp.hxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _TESTAPP_HXX
+#define _TESTAPP_HXX
+
+#include <vcl/svapp.hxx>
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _EDIT_HXX //autogen
+#include <vcl/edit.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _COMBOBOX_HXX //autogen
+#include <vcl/combobox.hxx>
+#endif
+#ifndef _FIXED_HXX //autogen
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _MENU_HXX //autogen
+#include <vcl/menu.hxx>
+#endif
+#ifndef _WRKWIN_HXX //autogen
+#include <vcl/wrkwin.hxx>
+#endif
+#include <svl/poolitem.hxx>
+
+
+#include "editwin.hxx"
+
+
+#define EXECUTE_NO 0
+#define EXECUTE_POSSIBLE 1
+#define EXECUTE_YES 2
+#define EXECUTEMODE_ASYNCHRON 1
+#define EXECUTEMODE_DIALOGASYNCHRON 2
+
+
+class MyApp;
+class MainWindow : public WorkWindow
+{
+ MyApp *pApp;
+
+public:
+ MainWindow(MyApp *pAppl);
+ virtual BOOL Close(); // derived
+
+ void FileExit();
+ void FileOpen();
+ void TestGross();
+ void Tree(GHEditWindow *aEditWin, Window *pBase, USHORT Indent);
+ void WinTree();
+ void SysDlg();
+ DECL_LINK(MenuSelectHdl,MenuBar*);
+
+};
+#define PlugInDispatcher MyDispatcher
+class MyDispatcher
+{
+ MainWindow *pMainWin;
+
+public:
+ MyDispatcher(MainWindow *MainWin) : pMainWin(MainWin) {};
+ virtual ~MyDispatcher() {};
+ virtual USHORT ExecuteFunction( USHORT nSID, SfxPoolItem** ppArgs = 0, USHORT nMode = 0);
+ virtual void SetExecuteMode( USHORT nMode )
+ {
+ (void) nMode; /* avoid warning about unused parameter */
+ }; // Ist hier sowieso egal
+};
+
+class MyApp : public Application
+{
+ PopupMenu *MyMenu;
+ Timer aCommandTimer;
+ PlugInDispatcher *pMyDispatcher;
+
+public:
+ MyApp();
+ void Main();
+
+ virtual void Property( ApplicationProperty& );
+ virtual PlugInDispatcher* GetDispatcher();
+
+ MainWindow *pMainWin;
+};
+
+// -----------------------------------------------------------------------
+
+extern MyApp aApp;
+
+#endif
+
diff --git a/automation/source/mozillaserver/makefile.mk b/automation/source/mozillaserver/makefile.mk
new file mode 100644
index 000000000000..fee12e3e6649
--- /dev/null
+++ b/automation/source/mozillaserver/makefile.mk
@@ -0,0 +1,153 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=xxx
+USE_DEFFILE=TRUE
+NO_BSYMBOLIC=TRUE
+ENABLE_EXCEPTIONS=TRUE
+LIBTARGET=NO
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# ------------------------------------------------------------------
+
+PACKAGE := com$/sun$/star$/testtool
+TARGET := com_sun_star_testtool
+
+
+#RDB=$(SOLARBINDIR)$/applicat.rdb
+RDB=$(BIN)$/mozillatesttool.rdb
+
+
+GENJAVACLASSFILES = \
+ $(CLASSDIR)$/$(PACKAGE)$/XAction.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XActionControl.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XActionCommand.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XActionControl.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XActionFlow.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XResult.class \
+ $(CLASSDIR)$/$(PACKAGE)$/ResultType.class \
+ $(CLASSDIR)$/$(PACKAGE)$/XMozillaTesttoolServer.class
+
+
+TYPES={$(subst,.class, $(subst,$/,. $(subst,$(CLASSDIR)$/,-T $(GENJAVACLASSFILES))))}
+GENJAVAFILES = {$(subst,.class,.java $(subst,$/class, $(GENJAVACLASSFILES)))}
+#JAVAFILES= $(GENJAVAFILES)
+
+
+
+UNOUCRDEP=$(RDB)
+UNOUCRRDB=$(RDB)
+
+UNOUCROUT=$(OUT)$/inc
+INCPRE+=$(OUT)$/inc
+
+UNOTYPES= \
+ com.sun.star.uno.TypeClass \
+ com.sun.star.uno.XAggregation \
+ com.sun.star.uno.XWeak \
+ com.sun.star.lang.XTypeProvider \
+ com.sun.star.lang.XServiceInfo \
+ com.sun.star.lang.XSingleServiceFactory \
+ com.sun.star.lang.XMultiServiceFactory \
+ com.sun.star.lang.XComponent \
+ com.sun.star.lang.XMain \
+ com.sun.star.loader.XImplementationLoader \
+ com.sun.star.registry.XRegistryKey \
+ com.sun.star.bridge.XUnoUrlResolver \
+ com.sun.star.container.XSet \
+ com.sun.star.testtool.XAction \
+ com.sun.star.testtool.XActionControl \
+ com.sun.star.testtool.XActionCommand \
+ com.sun.star.testtool.XActionControl \
+ com.sun.star.testtool.XActionFlow \
+ com.sun.star.testtool.XResult \
+ com.sun.star.testtool.ResultType \
+ com.sun.star.testtool.XMozillaTesttoolServer
+
+
+
+#SLOFILES= \
+# $(SLO)$/iserverproxy.obj \
+# $(SLO)$/broadcastclient.obj \
+# $(SLO)$/genericinformation.obj \
+# $(SLO)$/informationclient.obj
+
+# ---- test ----
+
+#LIB1TARGET=$(SLB)$/iserverproxy.lib
+#LIB1OBJFILES=$(SLOFILES)
+
+#SHL1TARGET=iserverproxy
+#SHL1STDLIBS= \
+# $(VOSLIB) $(OSLLIB) $(RTLLIB) $(TOOLSLIB) \
+# $(CPPULIB) \
+# $(CPPUHELPERLIB) \
+# $(UNOLIB) \
+# $(SVTOOLLIB) \
+# $(SALLIB) \
+# $(BOOTSTRP)
+
+#SHL1LIBS= $(LIB1TARGET) $(LB)$/ico.lib
+#SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+#DEF1NAME= $(SHL1TARGET)
+#DEF1EXPORTFILE= exports.dxp
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
+
+ALLTAR : $(GENJAVAFILES)
+
+ALLIDLFILES= \
+ mozillatesttoolserver.idl \
+ xmozillatesttoolserver.idl
+
+$(RDB): $(ALLIDLFILES)
+ $(TOUCH) $@
+ $(RM) $@
+ unoidl -I$(PRJ) -I$(SOLARIDLDIR) -Burd -OH$(BIN) $?
+ $(REGMERGE) $@ /UCR $(BIN)$/{$(ALLIDLFILES:f:s/.idl/.urd/)}
+ $(REGMERGE) $@ / $(SOLARBINDIR)$/applicat.rdb
+ $(REGCOMP) -register -r $@ -c $(DLLPRE)connectr$(DLLPOST)
+ $(REGCOMP) -register -r $@ -c $(DLLPRE)acceptor$(DLLPOST)
+ $(REGCOMP) -register -r $@ -c $(DLLPRE)brdgfctr$(DLLPOST)
+ $(REGCOMP) -register -r $@ -c $(DLLPRE)remotebridge$(DLLPOST)
+ $(TOUCH) $@
+
+
+$(GENJAVAFILES): $(RDB)
+ @echo Types: $(TYPES)
+ @echo Javafiles: $(GENJAVAFILES)
+ $(JAVAMAKER) -BUCR -O$(OUT) $(TYPES) $(RDB)
+
+
diff --git a/automation/source/mozillaserver/mozillatesttoolserver.idl b/automation/source/mozillaserver/mozillatesttoolserver.idl
new file mode 100644
index 000000000000..5b5b5acc1e16
--- /dev/null
+++ b/automation/source/mozillaserver/mozillatesttoolserver.idl
@@ -0,0 +1,52 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_testtool_MozillaTesttoolServer_idl__
+#define __com_sun_star_testtool_MozillaTesttoolServer_idl__
+
+#include <xmozillatesttoolserver.idl>
+
+//=============================================================================
+
+module com { module sun { module star { module testtool {
+
+//=============================================================================
+/**
+ * This service provides the ability to control Mozilla
+ *<BR>
+ */
+service MozillaTesttoolServer
+{
+ /** resolve objects via this interface.
+ */
+ interface com::sun::star::testtool::XMozillaTesttoolServer;
+};
+
+//=============================================================================
+
+}; }; }; };
+
+#endif
diff --git a/automation/source/mozillaserver/xmozillatesttoolserver.idl b/automation/source/mozillaserver/xmozillatesttoolserver.idl
new file mode 100644
index 000000000000..51755a67a35d
--- /dev/null
+++ b/automation/source/mozillaserver/xmozillatesttoolserver.idl
@@ -0,0 +1,157 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __com_sun_star_testtool_XMozillaTesttoolServer_idl__
+#define __com_sun_star_testtool_XMozillaTesttoolServer_idl__
+
+#include <com/sun/star/uno/XInterface.idl>
+#include <com/sun/star/lang/IllegalArgumentException.idl>
+#include <com/sun/star/connection/NoConnectException.idl>
+
+//=============================================================================
+
+module com { module sun { module star { module testtool {
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2423753-33D6-11D1-AABE00A0-259D5623), ident( "XMozillaTesttoolServer", 1.0 ) ]
+interface XAction : com::sun::star::uno::XInterface
+{
+ /** execute one command
+ <BR>
+ */
+ void execute();
+
+};
+
+//=============================================================================
+
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2423753-33D6-11D1-AABE00A0-259D5623), ident( "XMozillaTesttoolServer", 1.0 ) ]
+interface XActionControl : XAction
+{
+ /** execute one command
+ <BR>
+ */
+ void execute();
+
+};
+
+//=============================================================================
+
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2423753-33D6-11D1-AABE00A0-259D5623), ident( "XMozillaTesttoolServer", 1.0 ) ]
+interface XActionCommand : XAction
+{
+ /** execute one command
+ <BR>
+ */
+ void execute();
+
+};
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2423743-33D6-11D1-AABE00A0-259D5623), ident( "XActionFlow", 1.0 ) ]
+interface XActionFlow : XAction
+{
+ /** execute one command
+ <BR>
+ */
+ void execute();
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+//=============================================================================
+
+module com { module sun { module star { module testtool {
+
+
+enum ResultType
+ {
+ SEQUENCE, /// command with SEQUENCE has been executed
+ ERROR, /// An error has ocured
+ RESULT, /// Result of a request
+ ASSERTION, /// An Assertion has been captured
+ UI_INFO /// Info about the UserInterfaace
+ };
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2426453-33D6-11D1-AABE00A0-259D5623), ident( "XResult", 1.0 ) ]
+interface XResult : com::sun::star::uno::XInterface
+{
+ /** execute one command
+ <BR>
+ */
+ void SetResultType( [in] ResultType aType );
+ ResultType GetResultType();
+
+ void SetValue( [in] any Value );
+ any GetValue();
+};
+
+//=============================================================================
+
+}; }; }; };
+
+//=============================================================================
+
+module com { module sun { module star { module testtool {
+
+//=============================================================================
+/** Service com.sun.star.devtools.IServerProxy implements this interface.
+ */
+[ uik(E2446735-33D6-11D1-AABE00A0-259D5623), ident( "XMozillaTesttoolServer", 1.0 ) ]
+interface XMozillaTesttoolServer : com::sun::star::uno::XInterface
+{
+ /** Control the Mozilla Browser
+ <BR>
+ */
+ [oneway] void execute( [in] XAction aAction );
+// sequence < XResult > getResults( [in] boolean bBlock ); /// bBoch = TRUE means to wait for at least 1 result
+
+};
+
+//=============================================================================
+
+}; }; }; };
+
+
+#endif
diff --git a/automation/source/server/XMLParser.cxx b/automation/source/server/XMLParser.cxx
new file mode 100644
index 000000000000..6e6c3dc859a7
--- /dev/null
+++ b/automation/source/server/XMLParser.cxx
@@ -0,0 +1,695 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <tools/stream.hxx>
+#include "statemnt.hxx"
+#include "rcontrol.hxx"
+#include "retstrm.hxx"
+#include <basic/svtmsg.hrc>
+
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+
+#include <com/sun/star/xml/sax/XParser.hpp>
+#include <com/sun/star/xml/sax/SAXException.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/io/XInputStream.hpp>
+#include <com/sun/star/util/XCloneable.hpp>
+#include <comphelper/processfactory.hxx>
+#include <cppuhelper/implbase2.hxx>
+#include <cppuhelper/implbase1.hxx>
+#include <com/sun/star/xml/sax/SAXParseException.hpp>
+
+using namespace com::sun::star::xml::sax;
+using namespace com::sun::star::io;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::util;
+using namespace rtl;
+
+class SVInputStream : public cppu::WeakImplHelper1< XInputStream >
+{
+ SvStream* pStream;
+public:
+ SVInputStream( SvStream* pSt ):pStream( pSt ){};
+ ~SVInputStream(){ delete pStream; pStream=NULL; }
+
+ // Methods XInputStream
+ virtual sal_Int32 SAL_CALL readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL skipBytes( sal_Int32 nBytesToSkip ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+ virtual sal_Int32 SAL_CALL available( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL closeInput( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException);
+};
+
+
+sal_Int32 SAL_CALL SVInputStream::readBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nBytesToRead ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+ aData.realloc( nBytesToRead );
+ sal_Int32 nRead = pStream->Read( aData.getArray(), nBytesToRead );
+ aData.realloc( nRead );
+ return nRead;
+}
+
+sal_Int32 SAL_CALL SVInputStream::readSomeBytes( ::com::sun::star::uno::Sequence< sal_Int8 >& aData, sal_Int32 nMaxBytesToRead ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+ return readBytes( aData, nMaxBytesToRead );
+}
+
+void SAL_CALL SVInputStream::skipBytes( sal_Int32 nBytesToSkip ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::BufferSizeExceededException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+ if ( nBytesToSkip > 0 )
+ pStream->SeekRel( nBytesToSkip );
+}
+
+sal_Int32 SAL_CALL SVInputStream::available( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+ ULONG nCurrent = pStream->Tell();
+ ULONG nSize = pStream->Seek( STREAM_SEEK_TO_END );
+ ULONG nAvailable = nSize - nCurrent;
+ pStream->Seek( nCurrent );
+ return nAvailable;
+}
+
+void SAL_CALL SVInputStream::closeInput( ) throw (::com::sun::star::io::NotConnectedException, ::com::sun::star::io::IOException, ::com::sun::star::uno::RuntimeException)
+{
+// pStream->Close(); // automatically done in destructor
+ delete pStream;
+ pStream = NULL;
+}
+
+class Node;
+SV_DECL_REF(Node)
+
+enum NodeType { NODE_CHARACTER = CONST_NodeTypeCharacter,
+ NODE_ELEMENT = CONST_NodeTypeElement,
+ NODE_COMMENT = CONST_NodeTypeComment };
+
+class Node : public SvRefBase
+{
+ NodeType aNodeType;
+ Node* pParent; // Use pointer to prevent cyclic references resulting in undeleted objects
+
+protected:
+ Node( NodeType aType ): aNodeType( aType ), pParent( NULL ){};
+ virtual ~Node();
+
+public:
+ NodeType GetNodeType() { return aNodeType; }
+ void SetParent( NodeRef xNewParent );
+ NodeRef GetParent();
+};
+
+SV_IMPL_REF(Node)
+// generate NodeRefMemberList
+SV_DECL_IMPL_REF_LIST( NodeRef, Node* )
+
+Node::~Node()
+{
+}
+
+void Node::SetParent( NodeRef xNewParent )
+{
+ pParent = &xNewParent;
+}
+
+NodeRef Node::GetParent()
+{
+ return NodeRef( pParent );
+}
+
+class CharacterNode : public Node
+{
+ String aCharacters;
+public:
+ CharacterNode( const String& aChars ): Node( NODE_CHARACTER ), aCharacters( aChars ){};
+
+ String GetCharacters() { return aCharacters; }
+};
+
+class ElementNode : public Node
+{
+ String aNodeName;
+ Reference < XAttributeList > xAttributeList;
+ NodeRefMemberList aDocumentNodeList;
+public:
+ ElementNode( const String& aName, Reference < XAttributeList > xAttributes );
+ void AppendNode( NodeRef xNewNode );
+ ULONG GetChildCount(){ return aDocumentNodeList.Count(); }
+ NodeRef GetChild( USHORT nIndex ){ return aDocumentNodeList.GetObject( nIndex ); }
+ Reference < XAttributeList > GetAttributes(){ return xAttributeList; }
+
+ String GetNodeName() { return aNodeName; }
+};
+
+ElementNode::ElementNode( const String& aName, Reference < XAttributeList > xAttributes )
+: Node( NODE_ELEMENT )
+, aNodeName( aName )
+{
+ if ( xAttributes.is() )
+ {
+ Reference < XCloneable > xAttributeCloner( xAttributes, UNO_QUERY );
+ if ( xAttributeCloner.is() )
+ xAttributeList = Reference < XAttributeList > ( xAttributeCloner->createClone() , UNO_QUERY );
+ else
+ {
+ DBG_ERROR("Unable to clone AttributeList");
+ }
+ }
+};
+
+void ElementNode::AppendNode( NodeRef xNewNode )
+{
+ aDocumentNodeList.Insert ( xNewNode, LIST_APPEND );
+ xNewNode->SetParent( this );
+}
+
+// XIndexAccess
+
+
+
+
+
+enum ParseAction { COLLECT_DATA, COLLECT_DATA_IGNORE_WHITESPACE, PARSE_ONLY };
+
+class SAXParser : public cppu::WeakImplHelper2< XErrorHandler, XDocumentHandler >
+{
+ String aFilename;
+ Reference < XParser > xParser;
+
+ // XErrorHandler
+ void AddToList( const sal_Char* cuType, const ::com::sun::star::uno::Any& aSAXParseException );
+ String aErrors;
+
+ NodeRef xTreeRoot;
+ NodeRef xCurrentNode;
+ ULONG nTimestamp;
+ ParseAction aAction;
+
+public:
+ SAXParser( const String &rFilename );
+ ~SAXParser();
+
+ // Access Methods
+ NodeRef GetCurrentNode(){ return xCurrentNode; }
+ void SetCurrentNode( NodeRef xCurrent ){ xCurrentNode = xCurrent; }
+ NodeRef GetRootNode(){ return xTreeRoot; }
+ ULONG GetTimestamp(){ return nTimestamp; }
+ void Touch(){ nTimestamp = Time::GetSystemTicks(); }
+
+ // Methods SAXParser
+ BOOL Parse( ParseAction aAct );
+ String GetErrors(){ return aErrors; }
+
+ // Methods XErrorHandler
+ virtual void SAL_CALL error( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL fatalError( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL warning( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+
+ // Methods XDocumentHandler
+ virtual void SAL_CALL startDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL startElement( const ::rtl::OUString& aName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL endElement( const ::rtl::OUString& aName ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL characters( const ::rtl::OUString& aChars ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL ignorableWhitespace( const ::rtl::OUString& aWhitespaces ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL processingInstruction( const ::rtl::OUString& aTarget, const ::rtl::OUString& aData ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setDocumentLocator( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator >& xLocator ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException);
+};
+
+
+SAXParser::SAXParser( const String &rFilename )
+: aFilename( rFilename )
+{
+ Touch();
+}
+
+SAXParser::~SAXParser()
+{
+ xParser.clear();
+}
+
+BOOL SAXParser::Parse( ParseAction aAct )
+{
+ aAction = aAct;
+ Touch();
+ SvStream* pStream = new SvFileStream( aFilename, STREAM_STD_READ );
+ if ( pStream->GetError() )
+ return FALSE;
+
+ InputSource sSource;
+ sSource.aInputStream = new SVInputStream( pStream ); // is refcounted and hence deletet appropriately
+ sSource.sPublicId = OUString( aFilename );
+
+ xParser = Reference < XParser > ( ::comphelper::getProcessServiceFactory()->createInstance( CUniString("com.sun.star.xml.sax.Parser") ), UNO_QUERY );
+ if ( xParser.is() )
+ {
+ xParser->setErrorHandler( ( XErrorHandler*) this );
+ if ( aAction == COLLECT_DATA || aAction == COLLECT_DATA_IGNORE_WHITESPACE )
+ xParser->setDocumentHandler( ( XDocumentHandler*) this );
+
+ try
+ {
+ xParser->parseStream ( sSource );
+ }
+ catch( class SAXParseException & rPEx)
+ {
+#ifdef DBG_ERROR
+ String aMemo( rPEx.Message );
+ aMemo = String( aMemo );
+#endif
+ }
+ catch( class Exception & rEx)
+ {
+#ifdef DBG_ERROR
+ String aMemo( rEx.Message );
+ aMemo = String( aMemo );
+#endif
+ }
+ xParser->setErrorHandler( NULL ); // otherwile Object holds itself
+ if ( aAction == COLLECT_DATA || aAction == COLLECT_DATA_IGNORE_WHITESPACE )
+ xParser->setDocumentHandler( NULL ); // otherwile Object holds itself
+ }
+ else
+ return FALSE;
+ return TRUE;
+}
+
+
+// Helper Methods XErrorHandler
+void SAXParser::AddToList( const sal_Char* cuType, const ::com::sun::star::uno::Any& aSAXParseException )
+{
+ SAXParseException aException;
+ aSAXParseException >>= aException;
+
+ aErrors.Append( String( aException.PublicId ) );
+ aErrors.AppendAscii( "(" );
+ aErrors.Append( String::CreateFromInt64( aException.LineNumber ) );
+ aErrors.AppendAscii( ":" );
+ aErrors.Append( String::CreateFromInt64( aException.ColumnNumber ) );
+ aErrors.AppendAscii( ") : " );
+ aErrors.AppendAscii( cuType );
+ aErrors.AppendAscii( ": " );
+ aErrors.Append( String( aException.Message ) );
+ aErrors.AppendAscii( "\n" );
+}
+
+// Methods XErrorHandler
+void SAL_CALL SAXParser::error( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ AddToList( "error", aSAXParseException );
+}
+
+void SAL_CALL SAXParser::fatalError( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ AddToList( "fatal error", aSAXParseException );
+}
+
+void SAL_CALL SAXParser::warning( const ::com::sun::star::uno::Any& aSAXParseException ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ AddToList( "warning", aSAXParseException );
+}
+
+
+// Methods XDocumentHandler
+void SAXParser::startDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ xTreeRoot = new ElementNode( CUniString("/"), Reference < XAttributeList > (NULL) );
+ xCurrentNode = xTreeRoot;
+ Touch();
+}
+
+void SAXParser::endDocument( ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+}
+
+void SAXParser::startElement( const ::rtl::OUString& aName, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttribs ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ NodeRef xNewNode = new ElementNode ( String(aName), xAttribs );
+ ((ElementNode*)(&xCurrentNode))->AppendNode( xNewNode );
+ xCurrentNode = xNewNode;
+}
+
+void SAXParser::endElement( const ::rtl::OUString& aName ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ (void) aName; /* avoid warning about unused parameter */
+ xCurrentNode = xCurrentNode->GetParent();
+}
+
+void SAXParser::characters( const ::rtl::OUString& aChars ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ if ( aAction == COLLECT_DATA_IGNORE_WHITESPACE )
+ { // check for whitespace
+ BOOL bAllWhitespace = TRUE;
+ for ( int i = 0 ; bAllWhitespace && i < aChars.getLength() ; i++ )
+ if ( aChars[i] != 10 // LF
+ && aChars[i] != 13 // CR
+ && aChars[i] != ' ' // Blank
+ && aChars[i] != '\t' ) // Tab
+ bAllWhitespace = FALSE;
+ if ( bAllWhitespace )
+ return;
+ }
+ NodeRef xNewNode = new CharacterNode ( String(aChars) );
+ ((ElementNode*)(&xCurrentNode))->AppendNode( xNewNode );
+}
+
+void SAXParser::ignorableWhitespace( const ::rtl::OUString& aWhitespaces ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ (void) aWhitespaces; /* avoid warning about unused parameter */
+}
+
+void SAXParser::processingInstruction( const ::rtl::OUString& aTarget, const ::rtl::OUString& aData ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ (void) aTarget; /* avoid warning about unused parameter */
+ (void) aData; /* avoid warning about unused parameter */
+}
+
+void SAXParser::setDocumentLocator( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XLocator >& xLocator ) throw (::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException)
+{
+ (void) xLocator; /* avoid warning about unused parameter */
+#if OSL_DEBUG_LEVEL > 1
+ ::rtl::OUString aTester;
+ aTester = xLocator->getPublicId();
+ aTester = xLocator->getSystemId();
+#endif
+}
+
+
+
+
+void StatementCommand::HandleSAXParser()
+{
+ static Reference < XReference > xParserKeepaliveReference; // this is to keep the Object alive only
+ static SAXParser* pSAXParser;
+
+ // We need spechial prerequisites for these!
+
+ ElementNode* pElementNode = NULL;
+ switch ( nMethodId )
+ {
+ case RC_SAXGetNodeType:
+ case RC_SAXGetAttributeCount:
+ case RC_SAXGetAttributeName:
+ case RC_SAXGetAttributeValue:
+ case RC_SAXGetChildCount:
+ case RC_SAXGetElementName:
+ case RC_SAXGetChars:
+
+ case RC_SAXSeekElement:
+ case RC_SAXHasElement:
+ case RC_SAXGetElementPath:
+ {
+ if ( xParserKeepaliveReference.is() && pSAXParser->GetCurrentNode().Is() )
+ {
+ if ( pSAXParser->GetCurrentNode()->GetNodeType() == NODE_ELEMENT )
+ {
+ NodeRef xNode=pSAXParser->GetCurrentNode();
+ pElementNode = (ElementNode*)(&xNode);
+ }
+ }
+ else
+ {
+ ReportError( GEN_RES_STR1( S_NO_SAX_PARSER, RcString( nMethodId ) ) );
+ return;
+ }
+
+ }
+ }
+
+ switch ( nMethodId )
+ {
+ case RC_SAXCheckWellformed:
+ {
+ if( (nParams & PARAM_STR_1) )
+ {
+ xParserKeepaliveReference.clear();
+ pSAXParser = new SAXParser( aString1 );
+ xParserKeepaliveReference = ( XReference* )pSAXParser;
+ if ( !xParserKeepaliveReference.is() )
+ ReportError( GEN_RES_STR1( S_NO_SAX_PARSER, RcString( nMethodId ) ) );
+ else
+ {
+ if ( !pSAXParser->Parse( PARSE_ONLY ) )
+ ReportError( GEN_RES_STR1( S_NO_SAX_PARSER, RcString( nMethodId ) ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, pSAXParser->GetErrors() );
+ }
+
+ xParserKeepaliveReference.clear();
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+
+ case RC_SAXReadFile:
+ {
+ if( (nParams & PARAM_STR_1) )
+ {
+ ParseAction aAction;
+ if( (nParams & PARAM_BOOL_1) && bBool1 )
+ aAction = COLLECT_DATA;
+ else
+ aAction = COLLECT_DATA_IGNORE_WHITESPACE;
+
+ xParserKeepaliveReference.clear();
+ pSAXParser = new SAXParser( aString1 );
+ xParserKeepaliveReference = ( XReference* )pSAXParser;
+ if ( !xParserKeepaliveReference.is() )
+ ReportError( GEN_RES_STR1( S_NO_SAX_PARSER, RcString( nMethodId ) ) );
+ else
+ {
+
+ if ( !pSAXParser->Parse( aAction ) )
+ ReportError( GEN_RES_STR1( S_NO_SAX_PARSER, RcString( nMethodId ) ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, pSAXParser->GetErrors() );
+ }
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_SAXGetNodeType:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)pSAXParser->GetCurrentNode()->GetNodeType() );
+ }
+ break;
+ case RC_SAXGetAttributeCount:
+ case RC_SAXGetAttributeName:
+ case RC_SAXGetAttributeValue:
+ case RC_SAXGetChildCount:
+ case RC_SAXGetElementName:
+ {
+ if ( pElementNode )
+ {
+ Reference < XAttributeList > xAttributeList = pElementNode->GetAttributes();
+ switch ( nMethodId )
+ {
+ case RC_SAXGetElementName:
+ pRet->GenReturn ( RET_Value, aSmartMethodId, pElementNode->GetNodeName() );
+ break;
+ case RC_SAXGetChildCount:
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)pElementNode->GetChildCount() );
+ break;
+ case RC_SAXGetAttributeCount:
+ if ( xAttributeList.is() )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)xAttributeList->getLength() );
+ else
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)0 );
+ break;
+ case RC_SAXGetAttributeName:
+ {
+ if( (nParams & PARAM_USHORT_1) && ValueOK( aSmartMethodId, RcString( nMethodId ), nNr1, xAttributeList.is()?xAttributeList->getLength():0 ) )
+ {
+ String aRet( xAttributeList->getNameByIndex( nNr1-1 ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aRet );
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_SAXGetAttributeValue:
+ // Number or String
+ {
+ if( (nParams & PARAM_USHORT_1) && ValueOK( aSmartMethodId, RcString( nMethodId ), nNr1, xAttributeList.is()?xAttributeList->getLength():0 ) )
+ {
+ String aRet( xAttributeList->getValueByIndex( nNr1-1 ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aRet );
+ }
+ else if( (nParams & PARAM_STR_1) && xAttributeList.is() )
+ {
+ String aRet( xAttributeList->getValueByName( aString1 ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aRet );
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+
+ default:
+ ReportError( GEN_RES_STR1( S_INTERNAL_ERROR, RcString( nMethodId ) ) );
+ }
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_SAXGetChars:
+ {
+ if ( pSAXParser->GetCurrentNode()->GetNodeType() == NODE_CHARACTER )
+ {
+ NodeRef xNode=pSAXParser->GetCurrentNode();
+ CharacterNode* aCharacterNode = (CharacterNode*)(&xNode);
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aCharacterNode->GetCharacters() );
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+
+ case RC_SAXSeekElement:
+ case RC_SAXHasElement:
+ // Number or String
+ {
+ BOOL bCheckOnly = nMethodId == RC_SAXHasElement;
+
+ if( (nParams & PARAM_USHORT_1) && !(nParams & PARAM_STR_1) )
+ {
+ if ( nNr1 == 0 )
+ {
+ if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, pSAXParser->GetCurrentNode()->GetParent().Is() );
+ else if ( pSAXParser->GetCurrentNode()->GetParent().Is() )
+ pSAXParser->SetCurrentNode( pSAXParser->GetCurrentNode()->GetParent() );
+ }
+ else if ( !pElementNode )
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ else if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, ValueOK( aSmartMethodId, String(), nNr1, pElementNode->GetChildCount() ) );
+ else if ( ValueOK( aSmartMethodId, RcString( nMethodId ), nNr1, pElementNode->GetChildCount() ) )
+ pSAXParser->SetCurrentNode( pElementNode->GetChild( nNr1-1 ) );
+ }
+ else if( (nParams & PARAM_STR_1) )
+ {
+ if ( aString1.EqualsAscii( "/" ) )
+ {
+ if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)TRUE );
+ else
+ pSAXParser->SetCurrentNode( pSAXParser->GetRootNode() );
+ }
+ else if ( aString1.Copy(0,2).EqualsAscii( "*:" ) )
+ {
+ ULONG nTimestamp = (ULONG)aString1.GetToken( 1, ':' ).ToInt64();
+ ULONG nPointer = (ULONG)aString1.GetToken( 2, ':' ).ToInt64();
+ if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)(pSAXParser->GetTimestamp() == nTimestamp) );
+ else
+ if ( pSAXParser->GetTimestamp() == nTimestamp )
+ {
+ {
+ Node* pNode = (Node*)nPointer;
+ pSAXParser->SetCurrentNode( NodeRef( pNode ) );
+ }
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ else if ( pElementNode )
+ {
+ USHORT nNthOccurance;
+ if( (nParams & PARAM_USHORT_1) )
+ nNthOccurance = nNr1;
+ else
+ nNthOccurance = 1;
+
+ USHORT i;
+ NodeRef xNew;
+ for ( i = 0 ; i < pElementNode->GetChildCount() && !xNew.Is() ; i++ )
+ {
+ xNew = pElementNode->GetChild( i );
+ if ( xNew->GetNodeType() == NODE_ELEMENT )
+ {
+ ElementNode* pNewElement = (ElementNode*)(&xNew);
+ if ( aString1.Equals( pNewElement->GetNodeName() ) )
+ {
+ if ( nNthOccurance > 1 )
+ {
+ xNew.Clear();
+ nNthOccurance--;
+ }
+ }
+ else
+ xNew.Clear();
+ }
+ else
+ xNew.Clear();
+ }
+ if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, xNew.Is() );
+ else
+ if ( xNew.Is() )
+ pSAXParser->SetCurrentNode( xNew );
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ else
+ if ( bCheckOnly )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)FALSE );
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_SAXGetElementPath:
+ {
+ DBG_ASSERT( sizeof( ULONG ) == sizeof ( void* ), "Pointertype has different size than ULONG");
+ String aPath;
+ aPath.AppendAscii( "*:" );
+ aPath.Append( String::CreateFromInt64( pSAXParser->GetTimestamp() ) );
+ aPath.AppendAscii( ":" );
+ NodeRef xNode=pSAXParser->GetCurrentNode();
+ Node* pNode = (Node*)(&xNode);
+ aPath.Append( String::CreateFromInt64( (ULONG)pNode ) );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aPath );
+ }
+ break;
+
+ case RC_SAXRelease:
+ {
+ xParserKeepaliveReference.clear();
+ }
+ break;
+ default:
+ ReportError( GEN_RES_STR1( S_INTERNAL_ERROR, RcString( nMethodId ) ) );
+ }
+}
+
diff --git a/automation/source/server/cmdbasestream.cxx b/automation/source/server/cmdbasestream.cxx
new file mode 100644
index 000000000000..718bc52dad70
--- /dev/null
+++ b/automation/source/server/cmdbasestream.cxx
@@ -0,0 +1,301 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+#include <osl/endian.h>
+
+#include "cmdbasestream.hxx"
+#include "rcontrol.hxx"
+
+CmdBaseStream::CmdBaseStream()
+: pCommStream( NULL )
+{
+}
+
+CmdBaseStream::~CmdBaseStream()
+{
+}
+
+void CmdBaseStream::GenError (SmartId *pUId, comm_String *pString )
+{
+ Write(comm_USHORT(SIReturnError));
+ Write(pUId);
+ Write(pString);
+}
+
+void CmdBaseStream::GenReturn (comm_USHORT nRet, comm_ULONG nUId )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(nUId);
+ Write(comm_USHORT(PARAM_NONE)); // Typ der folgenden Parameter
+}
+
+void CmdBaseStream::GenReturn (comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_ULONG_1)); // Typ der folgenden Parameter
+ Write(nNr);
+}
+
+void CmdBaseStream::GenReturn (comm_USHORT nRet, SmartId *pUId, comm_String *pString )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_STR_1)); // Typ der folgenden Parameter
+ Write(pString);
+}
+
+void CmdBaseStream::GenReturn (comm_USHORT nRet, SmartId *pUId, comm_BOOL bBool )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_BOOL_1)); // Typ der folgenden Parameter
+ Write(bBool);
+}
+
+void CmdBaseStream::GenReturn (comm_USHORT nRet, SmartId *pUId, comm_ULONG nNr, comm_String *pString, comm_BOOL bBool )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_ULONG_1|PARAM_STR_1|PARAM_BOOL_1)); // Typ der folgenden Parameter
+ Write(nNr);
+ Write(pString);
+ Write(bBool);
+}
+
+// MacroRecorder
+void CmdBaseStream::GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_USHORT_1)); // Typ der folgenden Parameter
+ Write(nMethod);
+}
+
+void CmdBaseStream::GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_USHORT_1|PARAM_STR_1)); // Typ der folgenden Parameter
+ Write(nMethod);
+ Write(pString);
+}
+
+void CmdBaseStream::GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_String *pString, comm_BOOL bBool )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_USHORT_1|PARAM_STR_1|PARAM_BOOL_1)); // Typ der folgenden Parameter
+ Write(nMethod);
+ Write(pString);
+ Write(bBool);
+}
+
+void CmdBaseStream::GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_BOOL bBool )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_USHORT_1|PARAM_BOOL_1)); // Typ der folgenden Parameter
+ Write(nMethod);
+ Write(bBool);
+}
+
+void CmdBaseStream::GenReturn( comm_USHORT nRet, SmartId *pUId, comm_USHORT nMethod, comm_ULONG nNr )
+{
+ Write(comm_USHORT(SIReturn));
+ Write(nRet);
+ Write(pUId);
+ Write(comm_USHORT(PARAM_USHORT_1|PARAM_ULONG_1)); // Typ der folgenden Parameter
+ Write(nMethod);
+ Write(nNr);
+}
+
+
+
+void CmdBaseStream::Read (comm_USHORT &nNr)
+{
+ comm_USHORT nId;
+ *pCommStream >> nId;
+ if (pCommStream->IsEof()) return;
+#ifdef DBG_UTIL
+ if (nId != BinUSHORT) DBG_ERROR1( "Falscher Typ im Stream: Erwartet USHORT, gefunden :%hu", nId );
+#endif
+ *pCommStream >> nNr;
+}
+
+void CmdBaseStream::Read (comm_ULONG &nNr)
+{
+ comm_USHORT nId;
+ *pCommStream >> nId;
+ if (pCommStream->IsEof()) return;
+#ifdef DBG_UTIL
+ if (nId != BinULONG) DBG_ERROR1( "Falscher Typ im Stream: Erwartet ULONG, gefunden :%hu", nId );
+#endif
+ *pCommStream >> nNr;
+}
+
+void CmdBaseStream::Read (comm_UniChar* &aString, comm_USHORT &nLenInChars )
+{
+ comm_USHORT nId;
+ *pCommStream >> nId;
+#ifdef DBG_UTIL
+ if (nId != BinString) DBG_ERROR1( "Falscher Typ im Stream: Erwartet String, gefunden :%hu", nId );
+#endif
+
+ *pCommStream >> nLenInChars;
+
+ aString = new comm_UniChar [nLenInChars];
+ pCommStream->Read( aString, ((comm_ULONG)nLenInChars) * sizeof( comm_UniChar ) );
+#ifdef OSL_BIGENDIAN
+ // we have to change the byteorder
+ comm_USHORT n;
+ for ( n = 0 ; n < nLenInChars ; n++ )
+ aString[ n ] = aString[ n ] >> 8 | aString[ n ] << 8;
+#endif
+}
+
+void CmdBaseStream::Read (comm_BOOL &bBool)
+{
+ comm_USHORT nId;
+ *pCommStream >> nId;
+#ifdef DBG_UTIL
+ if (nId != BinBool) DBG_ERROR1( "Falscher Typ im Stream: Erwartet BOOL, gefunden :%hu", nId );
+#endif
+ *pCommStream >> bBool;
+}
+
+comm_USHORT CmdBaseStream::GetNextType()
+{
+ comm_USHORT nId;
+ *pCommStream >> nId;
+ pCommStream->SeekRel(-2);
+ return nId;
+}
+
+
+void CmdBaseStream::Write( comm_USHORT nNr )
+{
+ *pCommStream << comm_USHORT( BinUSHORT );
+ *pCommStream << nNr;
+}
+
+void CmdBaseStream::Write( comm_ULONG nNr )
+{
+ *pCommStream << comm_USHORT( BinULONG );
+ *pCommStream << nNr;
+}
+
+void CmdBaseStream::Write( const comm_UniChar* aString, comm_USHORT nLenInChars )
+{
+ *pCommStream << comm_USHORT(BinString);
+
+ comm_USHORT n;
+
+ // remove BiDi and zero-width-markers 0x200B - 0x200F
+ // remove BiDi and paragraph-markers 0x2028 - 0x202E
+
+ comm_UniChar* aNoBiDiString;
+ aNoBiDiString = new comm_UniChar [nLenInChars];
+ comm_USHORT nNewLenInChars = 0;
+ for ( n = 0 ; n < nLenInChars ; n++ )
+ {
+ comm_UniChar c = aString[ n ];
+ if ( ((c >= 0x200B) && (c <= 0x200F))
+ ||((c >= 0x2028) && (c <= 0x202E)) )
+ { //Ignore character
+ }
+ else
+ {
+ aNoBiDiString[ nNewLenInChars ] = c;
+ nNewLenInChars++;
+ }
+ }
+
+ *pCommStream << nNewLenInChars;
+
+#ifdef OSL_BIGENDIAN
+ // we have to change the byteorder
+ comm_UniChar* aNewString;
+ aNewString = new comm_UniChar [nNewLenInChars];
+ for ( n = 0 ; n < nNewLenInChars ; n++ )
+ aNewString[ n ] = aNoBiDiString[ n ] >> 8 | aNoBiDiString[ n ] << 8;
+ pCommStream->Write( aNewString, ((comm_ULONG)nNewLenInChars) * sizeof( comm_UniChar ) );
+ delete [] aNewString;
+#else
+ pCommStream->Write( aNoBiDiString, ((comm_ULONG)nNewLenInChars) * sizeof( comm_UniChar ) );
+#endif
+
+ delete [] aNoBiDiString;
+}
+
+void CmdBaseStream::Write( comm_BOOL bBool )
+{
+ *pCommStream << comm_USHORT( BinBool );
+ *pCommStream << bBool;
+}
+
+void CmdBaseStream::Read ( comm_String* &pString )
+{
+ (void) pString; /* avoid warning about unused parameter */
+ DBG_ERROR("Read ( comm_String* &pString ) Not Implemented");
+}
+void CmdBaseStream::Read ( SmartId* &pId )
+{
+ (void) pId; /* avoid warning about unused parameter */
+ DBG_ERROR("Read ( SmartId* &pId ) Not Implemented");
+}
+
+void CmdBaseStream::Write( comm_String *pString )
+{
+ (void) pString; /* avoid warning about unused parameter */
+ DBG_ERROR("Write( comm_String *pString ) Not Implemented");
+}
+void CmdBaseStream::Write( SmartId* pId )
+{
+ (void) pId; /* avoid warning about unused parameter */
+ DBG_ERROR("Write( SmartId* pId ) Not Implemented");
+}
+
diff --git a/automation/source/server/editwin.cxx b/automation/source/server/editwin.cxx
new file mode 100644
index 000000000000..0bcb35a8b306
--- /dev/null
+++ b/automation/source/server/editwin.cxx
@@ -0,0 +1,164 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#if OSL_DEBUG_LEVEL > 1
+#include <vcl/svapp.hxx>
+#include "editwin.hxx"
+
+
+class ImpWorkWindow : public WorkWindow
+{
+public:
+ MultiLineEdit m_aInhalt;
+ ImpWorkWindow( WorkWindow *pParent, const UniString &rName, WinBits );
+ ~ImpWorkWindow();
+ void Resize();
+};
+
+ImpWorkWindow::ImpWorkWindow( WorkWindow *pParent, const String &rName, WinBits iWstyle )
+: WorkWindow( pParent , WB_SIZEMOVE )
+, m_aInhalt( this, iWstyle )
+{
+ m_aInhalt.Show();
+ SetText(rName);
+ SetPosSizePixel( Point( 1,40 ), Size(500,150) );
+ Resize();
+}
+
+ImpWorkWindow::~ImpWorkWindow()
+{
+ Hide();
+}
+
+void ImpWorkWindow::Resize()
+{
+ m_aInhalt.SetPosSizePixel( Point(), GetOutputSizePixel() );
+}
+
+BOOL EditWindow::Close()
+{
+ if ( pImpWorkWindow )
+ {
+ delete pImpWorkWindow;
+ pImpWorkWindow = NULL;
+ }
+ return TRUE;
+}
+
+void EditWindow::Show()
+{
+ if ( Check() )
+ pImpWorkWindow->Show();
+ else
+ bShowWin = TRUE;
+}
+
+void EditWindow::Hide()
+{
+ if ( Check() )
+ pImpWorkWindow->Hide();
+ else
+ bShowWin = FALSE;
+}
+
+EditWindow::EditWindow( WorkWindow *pParent, const String &rName, WinBits iWstyle )
+: pImpWorkWindow(NULL)
+, pMemParent(pParent)
+, aMemName(rName)
+, iMemWstyle(iWstyle)
+, nTextLen(0)
+, bQuiet(FALSE)
+{
+}
+
+EditWindow::~EditWindow()
+{
+ Close();
+}
+
+BOOL EditWindow::Check()
+{
+ if ( ! pImpWorkWindow && Application::IsInExecute() )
+ {
+ pImpWorkWindow = new ImpWorkWindow( pMemParent, aMemName, iMemWstyle );
+ pImpWorkWindow->m_aInhalt.SetText( aMemPreWinText );
+ nTextLen = aMemPreWinText.Len();
+ aMemPreWinText.Erase();
+ if ( bShowWin )
+ pImpWorkWindow->Show();
+ return TRUE;
+ }
+ return pImpWorkWindow != NULL;
+}
+
+void EditWindow::Clear()
+{
+ if ( Check() )
+ {
+ pImpWorkWindow->m_aInhalt.SetText( String() );
+ nTextLen = 0;
+ }
+ aMemPreWinText.Erase();
+}
+
+void EditWindow::AddText( const sal_Char* rNew )
+{
+ AddText( UniString::CreateFromAscii( rNew ) );
+}
+
+void EditWindow::AddText( const String &rNew )
+{
+ if ( bQuiet ) return;
+
+ String aText = rNew;
+ aText.ConvertLineEnd();
+
+ if ( Check() )
+ {
+ if ( nTextLen > 5000 )
+ {
+ pImpWorkWindow->m_aInhalt.SetText( pImpWorkWindow->m_aInhalt.GetText().Erase(0,1000) );
+ nTextLen = pImpWorkWindow->m_aInhalt.GetText().Len(); // Absolut, um Fehler sonstwo auszubgeln
+ }
+
+
+ pImpWorkWindow->m_aInhalt.SetSelection( Selection( SELECTION_MAX, SELECTION_MAX ) );
+ pImpWorkWindow->m_aInhalt.ReplaceSelected( aText );
+ nTextLen = nTextLen + aText.Len();
+ pImpWorkWindow->m_aInhalt.SetSelection( Selection( SELECTION_MAX, SELECTION_MAX ) );
+ }
+ else
+ {
+ aMemPreWinText += aText;
+ }
+}
+
+#endif
+
diff --git a/automation/source/server/editwin.hxx b/automation/source/server/editwin.hxx
new file mode 100644
index 000000000000..021982333d39
--- /dev/null
+++ b/automation/source/server/editwin.hxx
@@ -0,0 +1,74 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _EDITWIN_HXX
+#define _EDITWIN_HXX
+
+#if OSL_DEBUG_LEVEL > 1
+
+#ifndef _WRKWIN_HXX //autogen
+#include <vcl/wrkwin.hxx>
+#endif
+
+#ifndef _EDIT_HXX //autogen
+#include <svtools/svmedit.hxx>
+#endif
+
+class ImpWorkWindow;
+
+class EditWindow
+{
+protected:
+ ImpWorkWindow *pImpWorkWindow;
+ BOOL check();
+
+ WorkWindow *pMemParent;
+ String aMemName;
+ WinBits iMemWstyle;
+
+ String aMemPreWinText;
+ BOOL bShowWin;
+
+ xub_StrLen nTextLen; // aus Performanzgrnden eigene Lnge mitfhren
+
+public:
+ EditWindow( WorkWindow *pParent, const UniString &rName = UniString( RTL_CONSTASCII_USTRINGPARAM ( "Debug" ) ), WinBits iWstyle = WB_HSCROLL | WB_VSCROLL );
+ virtual ~EditWindow();
+
+ void Clear();
+ void Show();
+ void Hide();
+ void AddText( const String &rNew );
+ void AddText( const sal_Char* rNew );
+
+ virtual BOOL Close(); // derived
+ BOOL bQuiet;
+ BOOL Check();
+};
+
+#endif
+#endif
+
diff --git a/automation/source/server/makefile.mk b/automation/source/server/makefile.mk
new file mode 100644
index 000000000000..bced075be72a
--- /dev/null
+++ b/automation/source/server/makefile.mk
@@ -0,0 +1,71 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=server
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES = \
+ $(SLO)$/XMLParser.obj \
+ $(SLO)$/recorder.obj \
+ $(SLO)$/svcommstream.obj \
+ $(SLO)$/cmdbasestream.obj \
+ $(SLO)$/scmdstrm.obj \
+ $(SLO)$/statemnt.obj \
+ $(SLO)$/sta_list.obj \
+ $(SLO)$/editwin.obj \
+ $(SLO)$/server.obj \
+ $(SLO)$/retstrm.obj \
+ $(SLO)$/profiler.obj
+
+
+OBJFILES = \
+ $(OBJ)$/cmdbasestream.obj \
+ $(OBJ)$/svcommstream.obj
+
+EXCEPTIONSFILES = \
+ $(SLO)$/statemnt.obj \
+ $(SLO)$/server.obj \
+ $(SLO)$/XMLParser.obj
+
+NOOPTFILES = $(SLO)$/statemnt.obj
+
+.IF "$(OS)"=="SOLARIS"
+SLOFILES += $(SLO)$/prof_usl.obj
+.ELSE
+SLOFILES += $(SLO)$/prof_nul.obj
+.ENDIF
+
+# --- Tagets -------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/automation/source/server/prof_nul.cxx b/automation/source/server/prof_nul.cxx
new file mode 100644
index 000000000000..c8f70eb06821
--- /dev/null
+++ b/automation/source/server/prof_nul.cxx
@@ -0,0 +1,96 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+
+#include "profiler.hxx"
+#include "rcontrol.hxx"
+#include <basic/ttstrhlp.hxx>
+
+struct SysdepProfileSnapshot
+{
+ // Hier stehen alle Felder zum Speichern eines Snapshot
+};
+
+
+struct SysdepStaticData
+{
+ // Hier steht alles, was whrend des Profiles stndig gebraucht wird
+};
+
+
+void TTProfiler::InitSysdepProfiler()
+{
+ if ( !pSysDepStatic ) // Sollte immer so sein!!
+ pSysDepStatic = new SysdepStaticData;
+ // Hier initialisieren
+
+};
+
+void TTProfiler::DeinitSysdepProfiler()
+{
+ if ( pSysDepStatic ) // Sollte immer so sein!!
+ {
+ // Hier aufrumen und eventuell Speicher freigeben
+
+ delete pSysDepStatic;
+ }
+};
+
+SysdepProfileSnapshot *TTProfiler::NewSysdepSnapshotData()
+{
+ return new SysdepProfileSnapshot;
+};
+
+void TTProfiler::DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfileSnapshot )
+{
+ delete pSysdepProfileSnapshot;
+};
+
+
+// Titelzeile fr Logdatei
+String TTProfiler::GetSysdepProfileHeader()
+{
+ return String(CUniString("(noch) keine weiteren Daten Implementiert"));
+};
+
+
+// Zustand merken
+void TTProfiler::GetSysdepProfileSnapshot( SysdepProfileSnapshot *, USHORT )
+{};
+
+
+// Informationszeile zusammenbauen
+String TTProfiler::GetSysdepProfileLine( SysdepProfileSnapshot *, SysdepProfileSnapshot * )
+{
+ return String();
+};
+
+
+
diff --git a/automation/source/server/prof_usl.cxx b/automation/source/server/prof_usl.cxx
new file mode 100644
index 000000000000..91048e0c6c75
--- /dev/null
+++ b/automation/source/server/prof_usl.cxx
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+
+#include <procfs.h>
+#include <tools/stream.hxx>
+#include "profiler.hxx"
+
+
+struct SysdepProfileSnapshot
+{
+ pstatus mpstatus;
+ psinfo mpsinfo;
+ prusage mprusage;
+};
+
+
+struct SysdepStaticData
+{
+ // Hier steht alles, was whrend des Profiles stndig gebraucht wird
+};
+
+
+void TTProfiler::InitSysdepProfiler()
+{
+ if ( !pSysDepStatic ) // Sollte immer so sein!!
+ pSysDepStatic = new SysdepStaticData;
+ // Hier initialisieren
+
+};
+
+void TTProfiler::DeinitSysdepProfiler()
+{
+ if ( pSysDepStatic ) // Sollte immer so sein!!
+ {
+ // Hier aufrumen und eventuell Speicher freigeben
+
+ delete pSysDepStatic;
+ }
+};
+
+SysdepProfileSnapshot *TTProfiler::NewSysdepSnapshotData()
+{
+ return new SysdepProfileSnapshot;
+};
+
+void TTProfiler::DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfileSnapshot )
+{
+ delete pSysdepProfileSnapshot;
+};
+
+
+// Titelzeile fr Logdatei
+String TTProfiler::GetSysdepProfileHeader()
+{
+ return String::CreateFromAscii(" Size(Kb) ResidentSZ rtime ktime utime total");
+};
+
+
+// Zustand merken
+void TTProfiler::GetSysdepProfileSnapshot( SysdepProfileSnapshot *pSysdepProfileSnapshot, USHORT )
+{
+ SvFileStream aStream( String::CreateFromAscii("/proc/self/psinfo"), STREAM_READ ); // Das ist ein expliziter Pfad fr UNXSOL!
+ if ( aStream.IsOpen() )
+ {
+ aStream.Read( &(pSysdepProfileSnapshot->mpsinfo), sizeof( psinfo ) );
+ aStream.Close();
+ }
+ SvFileStream anotherStream( String::CreateFromAscii("/proc/self/status"), STREAM_READ ); // Das ist ein expliziter Pfad fr UNXSOL!
+ if ( anotherStream.IsOpen() )
+ {
+ anotherStream.Read( &(pSysdepProfileSnapshot->mpstatus), sizeof( pstatus ) );
+ anotherStream.Close();
+ }
+ SvFileStream YetAnotherStream( String::CreateFromAscii("/proc/self/usage"), STREAM_READ ); // Das ist ein expliziter Pfad fr UNXSOL!
+ if ( YetAnotherStream.IsOpen() )
+ {
+ YetAnotherStream.Read( &(pSysdepProfileSnapshot->mprusage), sizeof( prusage ) );
+ YetAnotherStream.Close();
+ }
+};
+
+#define DIFF2( aFirst, aSecond, Membername ) ( aSecond.Membername - aFirst.Membername )
+#define CALC_MS( nSec, nNSec ) ( nSec * 1000 + (nNSec+500000) / 1000000 )
+#define DIFF_MS( pStart, pEnd, Member ) ( CALC_MS( pEnd->Member.tv_sec, pEnd->Member.tv_nsec ) - CALC_MS( pStart->Member.tv_sec, pStart->Member.tv_nsec ) )
+// Informationszeile zusammenbauen
+String TTProfiler::GetSysdepProfileLine( SysdepProfileSnapshot *pStart, SysdepProfileSnapshot *pStop )
+{
+ String aProfile;
+
+ aProfile += Pad( String::CreateFromInt64(pStop->mpsinfo.pr_size), 9);
+ aProfile += Pad( String::CreateFromInt64(pStop->mpsinfo.pr_rssize), 11);
+
+
+ aProfile += Pad( String::CreateFromInt64(DIFF_MS( pStart, pStop, mprusage.pr_rtime ) / AVER( pStart, pStop, mprusage.pr_count )), 7 );
+
+
+ ULONG d_utime = DIFF_MS( pStart, pStop, mpstatus.pr_utime ) + DIFF_MS( pStart, pStop, mpstatus.pr_cutime );
+ ULONG d_stime = DIFF_MS( pStart, pStop, mpstatus.pr_stime ) + DIFF_MS( pStart, pStop, mpstatus.pr_cstime );
+
+ aProfile += Pad( String::CreateFromInt64(d_utime), 7 );
+ aProfile += Pad( String::CreateFromInt64(d_stime), 7 );
+ aProfile += Pad( String::CreateFromInt64(d_utime + d_stime), 7 );
+
+ return aProfile;
+};
+
+
+
diff --git a/automation/source/server/profiler.cxx b/automation/source/server/profiler.cxx
new file mode 100644
index 000000000000..150b0d1ec5ef
--- /dev/null
+++ b/automation/source/server/profiler.cxx
@@ -0,0 +1,264 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+
+#include <tools/time.hxx>
+#include <tools/string.hxx>
+#include <unotools/localedatawrapper.hxx>
+#include <vcl/svapp.hxx>
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+
+
+#include "profiler.hxx"
+
+
+TTProfiler::TTProfiler()
+: mpStart( NULL )
+, mpEnd( NULL )
+, bIsProfileIntervalStarted( FALSE )
+, bIsProfilingPerCommand( FALSE )
+, bIsPartitioning( FALSE )
+, bIsAutoProfiling( FALSE )
+, pSysDepStatic( NULL )
+{
+ InitSysdepProfiler();
+ mpStart = new ProfileSnapshot;
+ mpStart->pSysdepProfileSnapshot = NewSysdepSnapshotData();
+ mpEnd = new ProfileSnapshot;
+ mpEnd->pSysdepProfileSnapshot = NewSysdepSnapshotData();
+ StartProfileInterval();
+}
+
+TTProfiler::~TTProfiler()
+{
+ if ( IsAutoProfiling() )
+ StopAutoProfiling();
+ if ( mpStart )
+ {
+ if ( mpStart->pSysdepProfileSnapshot )
+ DeleteSysdepSnapshotData( mpStart->pSysdepProfileSnapshot );
+ delete mpStart;
+ mpStart = NULL;
+ }
+ if ( mpEnd )
+ {
+ if ( mpEnd->pSysdepProfileSnapshot )
+ DeleteSysdepSnapshotData( mpEnd->pSysdepProfileSnapshot );
+ delete mpEnd;
+ mpEnd = NULL;
+ }
+ DeinitSysdepProfiler();
+}
+
+
+String TTProfiler::GetProfileHeader()
+{
+ UniString aReturn;
+ aReturn += '\n';
+ if ( !IsAutoProfiling() )
+ aReturn.AppendAscii("Befehl").Append(TabString(36));
+
+ aReturn.AppendAscii(" Zeitdauer");
+ aReturn.AppendAscii(" Ticks in %");
+ aReturn.Append( GetSysdepProfileHeader() );
+ aReturn.AppendAscii("\n");
+ return aReturn;
+}
+
+
+void TTProfiler::StartProfileInterval( BOOL bReadAnyway )
+{
+ if ( !bIsProfileIntervalStarted || bReadAnyway )
+ {
+ GetProfileSnapshot( mpStart );
+ GetSysdepProfileSnapshot( mpStart->pSysdepProfileSnapshot, PROFILE_START );
+ bIsProfileIntervalStarted = TRUE;
+ }
+}
+
+String TTProfiler::GetProfileLine( ProfileSnapshot *pStart, ProfileSnapshot *pEnd )
+{
+ String aProfileString;
+
+ aProfileString += Pad(GetpApp()->GetAppLocaleDataWrapper().getDuration( DIFF( pStart, pEnd, aTime) , TRUE, TRUE ), 12);
+
+ ULONG nProcessTicks = DIFF( pStart, pEnd, nProcessTicks );
+ ULONG nSystemTicks = DIFF( pStart, pEnd, nSystemTicks );
+ if ( nSystemTicks )
+ {
+ aProfileString += Pad(UniString::CreateFromInt32( (100 * nProcessTicks) / nSystemTicks ), 11);
+ aProfileString += '%';
+ }
+ else
+ aProfileString += Pad(CUniString("?? "), 12);
+
+ return aProfileString;
+}
+
+
+String TTProfiler::GetProfileLine( String &aPrefix )
+{
+ String aProfileString;
+ if ( IsProfilingPerCommand() || IsAutoProfiling() )
+ {
+ aProfileString = aPrefix;
+ aProfileString += TabString(35);
+
+
+ aProfileString += GetProfileLine( mpStart, mpEnd );
+ aProfileString += GetSysdepProfileLine( mpStart->pSysdepProfileSnapshot, mpEnd->pSysdepProfileSnapshot );
+ aProfileString += '\n';
+ }
+
+ return aProfileString;
+}
+
+
+void TTProfiler::EndProfileInterval()
+{
+ GetProfileSnapshot( mpEnd );
+ GetSysdepProfileSnapshot( mpEnd->pSysdepProfileSnapshot, PROFILE_END );
+ bIsProfileIntervalStarted = FALSE;
+}
+
+
+void TTProfiler::GetProfileSnapshot( ProfileSnapshot *pProfileSnapshot )
+{
+ pProfileSnapshot->aTime = Time();
+ pProfileSnapshot->nProcessTicks = Time::GetProcessTicks();
+ pProfileSnapshot->nSystemTicks = Time::GetSystemTicks();
+}
+
+
+void TTProfiler::StartProfilingPerCommand() // Jeden Befehl mitschneiden
+{
+ bIsProfilingPerCommand = TRUE;
+}
+
+void TTProfiler::StopProfilingPerCommand()
+{
+ bIsProfilingPerCommand = FALSE;
+}
+
+void TTProfiler::StartPartitioning()
+{
+ bIsPartitioning = TRUE;
+}
+
+void TTProfiler::StopPartitioning()
+{
+ bIsPartitioning = TRUE;
+}
+
+ULONG TTProfiler::GetPartitioningTime()
+{
+ return DIFF( mpStart, mpEnd, nSystemTicks );
+}
+
+
+
+void TTProfiler::StartAutoProfiling( ULONG nMSec )
+{
+ if ( !bIsAutoProfiling )
+ {
+ pAutoStart = new ProfileSnapshot;
+ pAutoStart->pSysdepProfileSnapshot = NewSysdepSnapshotData();
+ pAutoEnd = new ProfileSnapshot;
+ pAutoEnd->pSysdepProfileSnapshot = NewSysdepSnapshotData();
+ GetProfileSnapshot( pAutoStart );
+ GetSysdepProfileSnapshot( pAutoStart->pSysdepProfileSnapshot, PROFILE_START );
+ SetTimeout( nMSec );
+ bIsAutoProfiling = TRUE;
+ Start();
+ }
+
+}
+
+void TTProfiler::Timeout()
+{
+ GetProfileSnapshot( pAutoEnd );
+ GetSysdepProfileSnapshot( pAutoEnd->pSysdepProfileSnapshot, PROFILE_END );
+ String aLine;
+
+ aLine += GetProfileLine( pAutoStart, pAutoEnd );
+ aLine += GetSysdepProfileLine( pAutoStart->pSysdepProfileSnapshot, pAutoEnd->pSysdepProfileSnapshot );
+ aLine += '\n';
+
+ aAutoProfileBuffer += aLine;
+
+ ProfileSnapshot *pTemp = pAutoStart; // Tauschen, so da jetziges Ende nchsten Start wird
+ pAutoStart = pAutoEnd;
+ pAutoEnd = pTemp;
+
+ Start(); // Timer neu starten
+}
+
+String TTProfiler::GetAutoProfiling()
+{
+ String aTemp(aAutoProfileBuffer);
+ aAutoProfileBuffer.Erase();
+ return aTemp;
+}
+
+void TTProfiler::StopAutoProfiling()
+{
+ if ( bIsAutoProfiling )
+ {
+ Stop();
+ bIsAutoProfiling = FALSE;
+ }
+}
+
+
+
+//String TTProfiler::Hex( ULONG nNr )
+String TTProfiler::Dec( ULONG nNr )
+{
+ String aRet(UniString::CreateFromInt32(nNr));
+ if ( nNr < 100 )
+ {
+ aRet = Pad( aRet, 3);
+ aRet.SearchAndReplaceAll(' ','0');
+ }
+ aRet.Insert( ',', aRet.Len() - 2 );
+ return aRet;
+}
+
+String TTProfiler::Pad( const String aS, xub_StrLen nLen )
+{
+ if ( nLen > aS.Len() )
+ return UniString().Fill( nLen - aS.Len() ).Append( aS );
+ else
+ return CUniString(" ").Append( aS );
+}
+
+
diff --git a/automation/source/server/profiler.hxx b/automation/source/server/profiler.hxx
new file mode 100644
index 000000000000..e5c3b6d02a15
--- /dev/null
+++ b/automation/source/server/profiler.hxx
@@ -0,0 +1,137 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+
+
+#define AVER( pFirst, pSecond, Membername ) (( pFirst->Membername + pSecond->Membername ) / 2 )
+#define DIFF( pFirst, pSecond, Membername ) ( pSecond->Membername - pFirst->Membername )
+#define S_SAFEDIV( a,b ) ((b)==0?CUniString("#DIV"):UniString::CreateFromInt32( (ULONG) ((a)/(b))))
+#define S_SAFEDIV_DEC( a,b ) ((b)==0?CUniString("#DIV"):Dec((ULONG) ((a)/(b))))
+
+#include <tools/time.hxx>
+#include <tools/string.hxx>
+#include <vcl/timer.hxx>
+
+#define PROFILE_START 0x01
+#define PROFILE_END 0x02
+
+
+struct SysdepProfileSnapshot;
+struct SysdepStaticData; // Nicht wirklich statisch, sondern statisch ber mehrere Snapshots
+
+struct ProfileSnapshot
+{
+ Time aTime;
+ SysdepProfileSnapshot *pSysdepProfileSnapshot;
+ ULONG nProcessTicks;
+ ULONG nSystemTicks;
+};
+
+
+class TTProfiler : private Timer
+{
+public:
+ TTProfiler();
+ ~TTProfiler();
+
+ String GetProfileHeader(); // Titelzeile fr Logdatei
+ void StartProfileInterval( BOOL bReadAnyway = FALSE ); // Zustand merken
+ void EndProfileInterval(); // Informationszeile zusammenbauen
+ String GetProfileLine( String &aPrefix );
+
+
+ void StartProfilingPerCommand(); // Jeden Befehl mitschneiden
+ void StopProfilingPerCommand();
+ BOOL IsProfilingPerCommand() { return bIsProfilingPerCommand; }
+
+ void StartPartitioning();
+ void StopPartitioning();
+ BOOL IsPartitioning() { return bIsPartitioning; }
+ ULONG GetPartitioningTime();
+
+ void StartAutoProfiling( ULONG nMSec ); // Automatisch alle nMSec Milisekunden sampeln
+ String GetAutoProfiling(); // Aktuelle `Sammlung` abholen
+ void StopAutoProfiling(); // Sampeln beenden
+ BOOL IsAutoProfiling() { return bIsAutoProfiling; }
+
+private:
+
+ void GetProfileSnapshot( ProfileSnapshot *pProfileSnapshot );
+
+ // Informationszeile zusammenbauen
+ String GetProfileLine( ProfileSnapshot *pStart, ProfileSnapshot *pStop );
+
+
+ ProfileSnapshot *mpStart;
+ ProfileSnapshot *mpEnd;
+ BOOL bIsProfileIntervalStarted;
+
+
+
+//
+ BOOL bIsProfilingPerCommand;
+ BOOL bIsPartitioning;
+
+
+// Fr das Automatische Profiling in festen Intervallen
+
+ ProfileSnapshot *pAutoStart;
+ ProfileSnapshot *pAutoEnd;
+ BOOL bIsAutoProfiling;
+ String aAutoProfileBuffer;
+
+ virtual void Timeout();
+
+
+// Einige Hilfsfunktionen
+
+// String Hex( ULONG nNr );
+ String Dec( ULONG nNr ); // Ergebnis = nNr / 100 mit 2 Dezimalen
+ String Pad( const String aS, xub_StrLen nLen ); // Fgt blanks links an den String an
+
+/* Ab hier werden die Methoden Systemabhngig in den entsprechenden cxx implementiert
+ Sie werden von den oberen Methoden gerufen.
+*/
+
+ SysdepStaticData *pSysDepStatic;
+
+ void InitSysdepProfiler();
+ void DeinitSysdepProfiler();
+
+ SysdepProfileSnapshot *NewSysdepSnapshotData();
+ void DeleteSysdepSnapshotData( SysdepProfileSnapshot *pSysdepProfileSnapshot );
+
+ // Titelzeile fr Logdatei
+ String GetSysdepProfileHeader();
+
+ // Zustand merken
+ void GetSysdepProfileSnapshot( SysdepProfileSnapshot *pSysdepProfileSnapshot, USHORT nMode = PROFILE_START | PROFILE_END );
+
+ // Informationszeile zusammenbauen
+ String GetSysdepProfileLine( SysdepProfileSnapshot *pStart, SysdepProfileSnapshot *pStop );
+};
+
diff --git a/automation/source/server/recorder.cxx b/automation/source/server/recorder.cxx
new file mode 100644
index 000000000000..6c941032f104
--- /dev/null
+++ b/automation/source/server/recorder.cxx
@@ -0,0 +1,1095 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <osl/mutex.hxx>
+
+#include <vcl/window.hxx>
+#include <vcl/vclevent.hxx>
+#include <vcl/button.hxx>
+#include <vcl/edit.hxx>
+#include <vcl/spinfld.hxx>
+#include <vcl/msgbox.hxx>
+#include <vcl/toolbox.hxx>
+#include <vcl/lstbox.hxx>
+#include <vcl/sound.hxx>
+#include <vcl/combobox.hxx>
+#include <vcl/floatwin.hxx>
+#include <basic/ttstrhlp.hxx>
+#include "statemnt.hxx"
+#include "retstrm.hxx"
+#include "rcontrol.hxx"
+#include "recorder.hxx"
+
+#include <comphelper/uieventslogger.hxx>
+
+MacroRecorder* MacroRecorder::pMacroRecorder = NULL;
+
+MacroRecorder::MacroRecorder()
+: pLastWin( NULL )
+, pEditModify( NULL )
+, pActionParent( NULL )
+, aKeyUniqueID()
+, pKeyWin( NULL )
+, bKeyFollowFocus( FALSE )
+, m_bRecord( FALSE )
+, m_bLog( FALSE )
+{
+ aHookRefresh.SetTimeout( 500 );
+ aHookRefresh.SetTimeoutHdl( LINK( this, MacroRecorder, HookRefreshHdl) );
+ aHookRefresh.Start();
+ aEventListenerHdl = LINK( this, MacroRecorder, EventListener );
+ AddEventHooks();
+}
+
+MacroRecorder::~MacroRecorder()
+{
+ aHookRefresh.Stop();
+ RemoveEventHooks();
+}
+
+void MacroRecorder::AddEventHooks()
+{
+ Window *pTopLevel = Application::GetFirstTopLevelWindow();
+ while ( pTopLevel )
+ {
+ Window *pParent = pTopLevel;
+ while ( pParent->GetParent() )
+ pParent = pParent->GetParent();
+
+ pParent->RemoveChildEventListener( aEventListenerHdl ); // might be instrumented already
+ pParent->AddChildEventListener( aEventListenerHdl );
+
+ pTopLevel = Application::GetNextTopLevelWindow( pTopLevel );
+ }
+}
+
+void MacroRecorder::RemoveEventHooks()
+{
+ Window *pTopLevel = Application::GetFirstTopLevelWindow();
+ while ( pTopLevel )
+ {
+ pTopLevel->RemoveChildEventListener( aEventListenerHdl );
+ pTopLevel = Application::GetNextTopLevelWindow( pTopLevel );
+ }
+}
+
+IMPL_LINK( MacroRecorder, HookRefreshHdl, void*, EMPTYARG )
+{
+ AddEventHooks();
+ return 0;
+}
+
+void MacroRecorder::LogVCL( SmartId aParentID, USHORT nVCLWindowType, SmartId aID, String aMethod, USHORT nParam )
+{
+ ::comphelper::UiEventsLogger::logVcl( aParentID.GetText(), nVCLWindowType, aID.GetText(), aMethod, nParam );
+}
+
+void MacroRecorder::LogVCL( SmartId aParentID, USHORT nVCLWindowType, SmartId aID, String aMethod )
+{
+ ::comphelper::UiEventsLogger::logVcl( aParentID.GetText(), nVCLWindowType, aID.GetText(), aMethod );
+}
+
+Window* MacroRecorder::GetParentWithID( Window* pThis )
+{
+ Window *pOverlap = pThis->GetWindow( WINDOW_OVERLAP );
+ while ( pOverlap != pThis && !pThis->GetSmartUniqueOrHelpId().HasAny() && pThis->GET_REAL_PARENT() )
+ pThis = pThis->GET_REAL_PARENT();
+ return pThis;
+}
+
+SmartId MacroRecorder::GetParentID( Window* pThis )
+{
+ if ( pThis->GetParent() )
+ return pThis->GetParent()->GetSmartUniqueOrHelpId();
+ else
+ return SmartId();
+}
+
+IMPL_LINK( MacroRecorder, EventListener, VclSimpleEvent*, pEvent )
+{
+ BOOL bSendData = FALSE;
+
+ if ( pEvent->ISA( VclWindowEvent ) )
+ {
+ VclWindowEvent* pWinEvent = ( VclWindowEvent* ) pEvent;
+ Window* pWin = pWinEvent->GetWindow();
+ ULONG nEventID = pWinEvent->GetId();
+#if OSL_DEBUG_LEVEL > 1
+ if ( nEventID >= 1001 && nEventID != VCLEVENT_WINDOW_KEYUP )
+ nEventID = pWinEvent->GetId(); // Just something to set a breakpoint
+ else
+ return 0;
+#endif
+
+// check for different action after collecting keys
+ // send if there_is_something_to_send
+ // and eather event_is_not_of_interest
+ // or ( new_window and new_window_is_interesting ) ( ignore interesting events to uninteresting window )
+
+ if ( aKeyString.Len()
+ && ( ( nEventID != VCLEVENT_WINDOW_KEYINPUT
+ && nEventID != VCLEVENT_WINDOW_MOUSEMOVE
+ && nEventID != VCLEVENT_WINDOW_COMMAND
+ && nEventID != VCLEVENT_WINDOW_KEYUP )
+ || ( pKeyWin != pWin
+ && ( pWin->GetType() == WINDOW_CONTROL || pWin->GetType() == WINDOW_WINDOW )
+ )
+ )
+ )
+ {
+ if ( m_bRecord )
+ {
+ // we cannot access pKeyWin since it might have dissapeared
+ if ( bKeyFollowFocus )
+ StatementList::pRet->GenReturn( RET_MacroRecorder, aKeyUniqueID, (USHORT)M_TypeKeys, aKeyString, bKeyFollowFocus );
+ else
+ StatementList::pRet->GenReturn( RET_MacroRecorder, aKeyUniqueID, (USHORT)M_TypeKeys, aKeyString );
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::pRet->GenReturn( RET_MacroRecorder, aKeyUniqueID, (USHORT)M_TypeKeys, String::CreateFromInt32( nEventID ) );
+#endif
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+// HACK Too many KeyEvents generated LogVCL( SmartId(), 0, aKeyUniqueID, CUniString("TypeKeys"), aKeyString.Len() );
+ }
+ // cleanup
+ aKeyString.Erase();
+ pKeyWin = NULL;
+ bKeyFollowFocus = FALSE;
+ }
+
+ switch ( pWin->GetType() )
+ {
+ case WINDOW_TABPAGE:
+ switch( nEventID )
+ {
+ case VCLEVENT_WINDOW_ACTIVATE:
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, SmartId(), (comm_USHORT)(M_SetPage|M_RET_NUM_CONTROL), static_cast<comm_ULONG>(pWin->GetSmartUniqueOrHelpId().GetNum()) ); //GetNum() ULONG != comm_ULONG on 64bit
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( SmartId(), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("SetPage") );
+ }
+ break;
+ }
+ break;
+ case WINDOW_RADIOBUTTON:
+ case WINDOW_IMAGERADIOBUTTON:
+ switch( nEventID )
+ {
+ case VCLEVENT_BUTTON_CLICK: // VCLEVENT_RADIOBUTTON_TOGGLE
+ {
+ if ( ((RadioButton*)pWin)->IsChecked() )
+ {
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), (comm_USHORT)M_Check );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Check") );
+ }
+ }
+ }
+ break;
+ }
+ break;
+ case WINDOW_CHECKBOX:
+ case WINDOW_TRISTATEBOX:
+ switch( nEventID )
+ {
+ case VCLEVENT_BUTTON_CLICK: //VCLEVENT_CHECKBOX_TOGGLE:
+ {
+ comm_USHORT nMethod;
+ String aMethod;
+ switch ( ((TriStateBox*)pWin)->GetState() )
+ {
+ case STATE_CHECK: nMethod = M_Check; aMethod = CUniString("Check"); break;
+ case STATE_NOCHECK: nMethod = M_UnCheck; aMethod = CUniString("UnCheck"); break;
+ case STATE_DONTKNOW: nMethod = M_TriState; aMethod = CUniString("TriState"); break;
+ default: nMethod = M_Check;
+ DBG_ERROR( "Unknown state in TriStateBox::GetState()" );
+ }
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), nMethod );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), aMethod );
+ }
+ }
+ break;
+ }
+ break;
+ case WINDOW_EDIT:
+ case WINDOW_MULTILINEEDIT:
+ switch( nEventID )
+ {
+ case VCLEVENT_EDIT_MODIFY:
+ pEditModify = pWin;
+ aEditModifyString = ((Edit*)pWin)->GetText();
+ break;
+ }
+ break;
+ case WINDOW_MULTILISTBOX:
+ switch( nEventID )
+ {
+ case VCLEVENT_LISTBOX_SELECT:
+ Sound::Beep();
+ }
+ case WINDOW_LISTBOX:
+ switch( nEventID )
+ {
+// case VCLEVENT_LISTBOX_DOUBLECLICK:
+ case VCLEVENT_LISTBOX_SELECT:
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), (comm_USHORT)M_Select, comm_ULONG( ((ListBox*)pWin)->GetSelectEntryPos() +1 ) );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Select"), ((ListBox*)pWin)->GetSelectEntryPos() );
+ }
+ break;
+ }
+ break;
+ case WINDOW_COMBOBOX:
+ case WINDOW_PATTERNBOX:
+ case WINDOW_NUMERICBOX:
+ case WINDOW_METRICBOX:
+ case WINDOW_CURRENCYBOX:
+ case WINDOW_DATEBOX:
+ case WINDOW_TIMEBOX:
+ switch( nEventID )
+ {
+ case VCLEVENT_EDIT_MODIFY:
+ pEditModify = pWin;
+ aEditModifyString = ((Edit*)pWin)->GetText();
+ break;
+ case VCLEVENT_COMBOBOX_SELECT:
+ {
+ pEditModify = NULL;
+ aEditModifyString.Erase();
+
+ USHORT nPos = ((ComboBox*)pWin)->GetEntryPos(((ComboBox*)pWin)->GetText());
+ if ( m_bRecord )
+ {
+ if ( nPos == COMBOBOX_ENTRY_NOTFOUND )
+ Sound::Beep();
+ else
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), (comm_USHORT)M_Select, (comm_ULONG) nPos+1 );
+ bSendData = TRUE;
+ }
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Select"), nPos );
+ }
+ }
+ }
+ break;
+ case WINDOW_PUSHBUTTON:
+ case WINDOW_OKBUTTON:
+ case WINDOW_CANCELBUTTON:
+ case WINDOW_IMAGEBUTTON:
+ case WINDOW_MOREBUTTON:
+ case WINDOW_HELPBUTTON:
+ switch( nEventID )
+ {
+ case VCLEVENT_BUTTON_CLICK:
+ Window* pParent = pWin->GetParent();
+ BOOL bDone = FALSE;
+ if ( pParent->IsDialog() && !pWin->GetSmartUniqueOrHelpId().HasAny() )
+ {
+ switch ( pParent->GetType() )
+ {
+ case WINDOW_MESSBOX:
+ case WINDOW_INFOBOX:
+ case WINDOW_WARNINGBOX:
+ case WINDOW_ERRORBOX:
+ case WINDOW_QUERYBOX:
+ case WINDOW_BUTTONDIALOG:
+ {
+ comm_USHORT nMethod;
+ String aMethod;
+ ButtonDialog* pBD = (ButtonDialog*)pParent;
+
+ // we have to find the current Button ID ourselves since it is not generated at this point :-(
+ USHORT nCurrentButtonId = 0xffff; // Some wild value to wak up people
+ USHORT i;
+ for ( i = 0; i < pBD->GetButtonCount() ; i++ )
+ {
+ if ( pBD->GetPushButton( pBD->GetButtonId(i) ) == pWin )
+ {
+ nCurrentButtonId = pBD->GetButtonId(i);
+ break;
+ }
+ }
+
+ switch ( nCurrentButtonId )
+ {
+ case BUTTONID_OK: nMethod = M_OK; aMethod = CUniString("OK"); break;
+ case BUTTONID_CANCEL: nMethod = M_Cancel; aMethod = CUniString("Cancel"); break;
+ case BUTTONID_YES: nMethod = M_Yes; aMethod = CUniString("Yes"); break;
+ case BUTTONID_NO: nMethod = M_No; aMethod = CUniString("No"); break;
+ case BUTTONID_RETRY: nMethod = M_Repeat; aMethod = CUniString("Repeat"); break;
+ case BUTTONID_HELP: nMethod = M_Help; aMethod = CUniString("Help"); break;
+ default: nMethod = M_Click; aMethod = CUniString("Click");
+ }
+ if ( m_bRecord )
+ {
+ if ( nMethod != M_Click )
+ StatementList::pRet->GenReturn( RET_MacroRecorder, SmartId( 0 ), nMethod );
+ else
+ StatementList::pRet->GenReturn( RET_MacroRecorder, SmartId( 0 ), nMethod, (comm_ULONG)nCurrentButtonId );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ if ( nMethod != M_Click )
+ LogVCL( SmartId(), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), aMethod );
+ else
+ LogVCL( SmartId(), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), aMethod, nCurrentButtonId );
+ bDone = TRUE;
+ }
+ }
+ break;
+ default:
+ {
+ comm_USHORT nMethod;
+ String aMethod;
+ switch ( pWin->GetType() )
+ {
+ case WINDOW_OKBUTTON: nMethod = M_OK; aMethod = CUniString("OK"); break;
+ case WINDOW_CANCELBUTTON: nMethod = M_Cancel; aMethod = CUniString("Cancel"); break;
+ case WINDOW_HELPBUTTON: nMethod = M_Help; aMethod = CUniString("Help"); break;
+ default: nMethod = M_Default;aMethod = CUniString("Unknown Button");
+ DBG_ERROR( "Unknown Button" );
+ }
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pParent->GetSmartUniqueOrHelpId(), nMethod );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), aMethod );
+ bDone = TRUE;
+ }
+ }
+ break;
+ }
+ }
+ if ( m_bRecord )
+ {
+ if ( !bSendData && pWin->GetSmartUniqueOrHelpId().HasAny() )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), (comm_USHORT)M_Click );
+ bSendData = TRUE;
+ }
+ }
+ if ( m_bLog )
+ {
+ if ( !bDone )
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Click") );
+ }
+ }
+ break;
+/* case C_MoreButton:
+ switch( nEventID )
+ {
+ case M_IsOpen :
+ pRet->GenReturn ( RET_Value, nUId, ((MoreButton*)pControl)->GetState());
+ break;
+ case M_Click :
+ ((MoreButton*)pControl)->Click();
+ break;
+ case M_Open :
+ ((MoreButton*)pControl)->SetState(TRUE);
+ break;
+ case M_Close :
+ ((MoreButton*)pControl)->SetState(FALSE);
+ break;
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "MoreButton" ) );
+ break;
+ }
+ break;*/
+ case WINDOW_SPINFIELD:
+ case WINDOW_PATTERNFIELD:
+ case WINDOW_NUMERICFIELD:
+ case WINDOW_METRICFIELD:
+ case WINDOW_CURRENCYFIELD:
+ case WINDOW_DATEFIELD:
+ case WINDOW_TIMEFIELD:
+ switch( nEventID )
+ {
+ case VCLEVENT_SPINFIELD_UP:
+ case VCLEVENT_SPINFIELD_DOWN:
+ case VCLEVENT_SPINFIELD_FIRST:
+ case VCLEVENT_SPINFIELD_LAST:
+ {
+ pEditModify = NULL;
+ aEditModifyString.Erase();
+
+ comm_USHORT nMethod;
+ String aMethod;
+ switch ( nEventID )
+ {
+ case VCLEVENT_SPINFIELD_UP: nMethod = M_More; aMethod = CUniString("More"); break;
+ case VCLEVENT_SPINFIELD_DOWN: nMethod = M_Less; aMethod = CUniString("Less"); break;
+ case VCLEVENT_SPINFIELD_FIRST: nMethod = M_ToMin; aMethod = CUniString("ToMin"); break;
+ case VCLEVENT_SPINFIELD_LAST: nMethod = M_ToMax; aMethod = CUniString("ToMax"); break;
+ default: nMethod = M_ToMin; aMethod = CUniString("Unknown");
+ DBG_ERROR( "Unknown EventID in Spinfield" );
+ }
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), nMethod );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), aMethod );
+ }
+ }
+ break;
+ case VCLEVENT_EDIT_MODIFY:
+ pEditModify = pWin;
+ aEditModifyString = ((SpinField*)pWin)->GetText();
+ break;
+ }
+ break;
+
+ case WINDOW_MENUBUTTON:
+ switch( nEventID )
+ {
+ case VCLEVENT_BUTTON_CLICK:
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), (comm_USHORT)M_Click );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Click") );
+ }
+ break;
+/* Keyevent or Timeout
+ case M_Open :
+ {
+ MouseEvent aMEvnt;
+ Point aPt( pControl->GetSizePixel().Width() / 2, pControl->GetSizePixel().Height() / 2 );
+ aMEvnt = MouseEvent( aPt,1,MOUSE_SIMPLECLICK,MOUSE_LEFT );
+ ImplMouseButtonDown( pControl, aMEvnt );
+
+ ULONG nStart = Time::GetSystemTicks();
+ ULONG nDelay = pControl->GetSettings().GetMouseSettings().GetActionDelay();
+ while ( ( Time::GetSystemTicks() - nStart ) < nDelay + 100 )
+ SafeReschedule();
+
+ ImplMouseButtonUp ( pControl, aMEvnt );
+ }
+ break;*/
+ }
+ break;
+ case WINDOW_TOOLBOX:
+ {
+ ToolBox *pTB = ((ToolBox*)pWin);
+ switch( nEventID )
+ {
+ case VCLEVENT_TOOLBOX_SELECT:
+ { // a Button has been clicked
+ // so this cannot be a tearoff or OpenMenu anymore
+ pActionParent = NULL;
+ // compare to 1 for floating ToolBoxes
+ if ( m_bRecord )
+ {
+ if ( !pWin->GetSmartUniqueOrHelpId().HasAny() || pWin->GetSmartUniqueOrHelpId().Matches( 1 ) )
+ // generate direct Button access
+ StatementList::pRet->GenReturn( RET_MacroRecorder, SmartId( pTB->GetItemCommand( pTB->GetCurItemId() ) ), (comm_USHORT)(M_Click) );
+ else
+ // access via Toolbox
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pTB->GetSmartUniqueOrHelpId(), (comm_USHORT)(M_Click|M_RET_NUM_CONTROL), static_cast<comm_ULONG>(pTB->GetHelpId( pTB->GetCurItemId() )) ); // GetHelpId() ULONG != comm_ULONG on 64bit
+ bSendData = TRUE;
+ }
+/* not needed if ( m_bLog )
+ {
+ }*/
+ }
+ break;
+ case VCLEVENT_TOOLBOX_CLICK: /// ATTENTION this is called during initialisation of toolbox. whoever 'invented' this
+ pActionParent = pTB;
+ break;
+// case VCLEVENT_WINDOW_SHOW: // not usable ATM. see above
+// if ( pActionParent )
+// { // a new toolbox opens up, might be a tearoff
+// if ( pActionParent != pWin )
+// { // it IS a tearoff not an undock
+// // compare to 1 for floating ToolBoxes
+// if ( m_bRecord )
+// {
+// if ( !pWin->GetSmartUniqueOrHelpId().HasAny() || pWin->GetSmartUniqueOrHelpId().Matches( 1 ) )
+// // generate direct Button access
+// StatementList::pRet->GenReturn( RET_MacroRecorder, SmartId( pActionParent->GetHelpId( pActionParent->GetCurItemId() ) ), (comm_USHORT)(M_TearOff) );
+// else
+// // access via Toolbox
+// StatementList::pRet->GenReturn( RET_MacroRecorder, pActionParent->GetSmartUniqueOrHelpId(), (comm_USHORT)(M_TearOff|M_RET_NUM_CONTROL), static_cast<comm_ULONG>(pActionParent->GetHelpId( pActionParent->GetCurItemId() )) ); // GetHelpId() ULONG != comm_ULONG on 64bit
+// bSendData = TRUE;
+// }
+// if ( m_bLog )
+// {
+// LogVCL( pActionParent->GetSmartUniqueOrHelpId(), pWin->GetType(), SmartId( pActionParent->GetHelpId( pActionParent->GetCurItemId() ) ), CUniString("TearOff") );
+// }
+// }
+// pActionParent = NULL;
+// }
+// break;
+ case VCLEVENT_TOOLBOX_DEACTIVATE:
+ pActionParent = NULL;
+ break;
+ }
+ }
+ break;
+/* ToolBox *pTB = ((ToolBox*)pControl);
+ if ( pTB->GetUniqueOrHelpId() != nUId ) // Also Button auf der ToolBox gefunden
+ {
+ if ( nParams == PARAM_NONE )
+ { // Wir flschen einen Parameter
+ nParams = PARAM_USHORT_1;
+ nNr1 = nUId;
+ }
+ else
+ ReportError( nUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ }
+
+#define FIND_HELP\
+{\
+ if( nParams == PARAM_USHORT_1 )\
+ nLNr1 = nNr1;\
+ for ( nNr1 = 0; nNr1 < pTB->GetItemCount() && nLNr1 != pTB->GetHelpId(pTB->GetItemId(nNr1)) ; nNr1++ ) {}\
+ bBool1 = nLNr1 == pTB->GetHelpId(pTB->GetItemId(nNr1));\
+ if ( !bBool1 )\
+ ReportError( nUId, GEN_RES_STR1( S_HELPID_ON_TOOLBOX_NOT_FOUND, MethodString( nMethodId ) ) );\
+ else\
+ {\
+ if ( !pTB->IsItemEnabled( pTB->GetItemId(nNr1) ) && nMethodId != _M_IsEnabled )\
+ {\
+ ReportError( nUId, GEN_RES_STR1( S_BUTTON_DISABLED_ON_TOOLBOX, MethodString( nMethodId ) ) );\
+ bBool1 = FALSE;\
+ }\
+ else if ( !pTB->IsItemVisible( pTB->GetItemId(nNr1) ) )\
+ {\
+ ReportError( nUId, GEN_RES_STR1( S_BUTTON_HIDDEN_ON_TOOLBOX, MethodString( nMethodId ) ) );\
+ bBool1 = FALSE;\
+ }\
+ else\
+ {\
+ if ( pTB->GetItemRect(pTB->GetItemId(nNr1)).IsEmpty() )\
+ {\
+ USHORT nLine = pTB->GetCurLine();\
+ do\
+ {\
+ pTB->ShowLine( FALSE );\
+ for ( int i = 1 ; i < 30 ; i++ )\
+ SafeReschedule();\
+ }\
+ while ( pTB->GetCurLine() != nLine && pTB->GetItemRect(pTB->GetItemId(nNr1)).IsEmpty() );\
+ pTB->Invalidate( pTB->GetScrollRect() );\
+ }\
+ if ( pTB->GetItemRect(pTB->GetItemId(nNr1)).IsEmpty() )\
+ {\
+ ReportError( nUId, GEN_RES_STR1( S_CANNOT_MAKE_BUTTON_VISIBLE_IN_TOOLBOX, MethodString( nMethodId ) ) );\
+ bBool1 = FALSE;\
+ }\
+ }\
+ }\
+}\
+
+ switch( nEventID )
+ {
+ case M_SetNextToolBox :
+ if ( (nParams & PARAM_STR_1) )
+ pTB->SetNextToolBox( aString1 );
+ else
+ pTB->SetNextToolBox( pTB->GetNextToolBox() );
+ pTB->NextToolBox();
+ break;
+ case M_GetNextToolBox :
+ pRet->GenReturn ( RET_Value, nUId, (String)pTB->GetNextToolBox());
+ break;
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ToolBox" ) );
+ break;
+ }
+ }
+ break;
+*/
+ case WINDOW_CONTROL:
+ case WINDOW_WINDOW:
+ switch( nEventID )
+ {
+ case VCLEVENT_WINDOW_COMMAND:
+ break;
+ case VCLEVENT_WINDOW_KEYINPUT:
+ {
+ const KeyEvent *pKeyEvent = ((KeyEvent*)pWinEvent->GetData());
+ const KeyCode aKeyCode = pKeyEvent->GetKeyCode();
+ if ( pKeyEvent )
+ {
+ pKeyWin = pWin;
+ Window *pIdWin = GetParentWithID( pWin );
+ if ( pIdWin != pWin )
+ bKeyFollowFocus = TRUE;
+ aKeyUniqueID = pIdWin->GetSmartUniqueOrHelpId();
+ if ( m_bLog )
+ {
+// HACK Too many KeyEvents generated if ( aKeyString.Len() == 0 )
+// HACK Too many KeyEvents generated LogVCL( SmartId(), 0, aKeyUniqueID, CUniString("TypeKeysStart") );
+ }
+ if ( ( !aKeyCode.IsMod1() && !aKeyCode.IsMod2() ) &&
+ (( aKeyCode.GetGroup() == KEYGROUP_NUM) ||
+ ( aKeyCode.GetGroup() == KEYGROUP_ALPHA) ||
+ ( aKeyCode.GetCode() == KEY_SPACE) ||
+ ( aKeyCode.GetCode() == KEY_ADD) ||
+ ( aKeyCode.GetCode() == KEY_SUBTRACT) ||
+ ( aKeyCode.GetCode() == KEY_MULTIPLY) ||
+ ( aKeyCode.GetCode() == KEY_DIVIDE) ||
+ ( aKeyCode.GetCode() == KEY_POINT) ||
+ ( aKeyCode.GetCode() == KEY_COMMA) ||
+ ( aKeyCode.GetCode() == KEY_EQUAL) ||
+ ( aKeyCode.GetCode() == 0) ) )
+ {
+ DBG_ASSERT( pKeyEvent->GetCharCode(), "no charcode found" );
+ aKeyString += pKeyEvent->GetCharCode();
+ }
+ else
+ { // not a regular key, transfer KeyCode
+ aKeyString += sal_Unicode(1); // mask it
+ // extra for '>' which is coded as <SHIFT GREATER>
+ if ( pKeyEvent->GetCharCode() == '>' )
+ aKeyString += sal_Unicode( KEY_GREATER | (aKeyCode.GetAllModifier() & ~KEY_SHIFT) );
+ else
+ aKeyString += sal_Unicode( aKeyCode.GetCode() | aKeyCode.GetAllModifier() );
+ }
+ }
+ }
+ break;
+
+ case VCLEVENT_WINDOW_MOUSEMOVE:
+ case VCLEVENT_WINDOW_MOUSEBUTTONDOWN:
+ case VCLEVENT_WINDOW_MOUSEBUTTONUP:
+ {
+ }
+ break;
+
+
+ }
+ break;
+ case WINDOW_DOCKINGWINDOW:
+// switch( nEventID )
+ {
+// case 1 .. 0xffff:
+ DBG_TRACE3( "TT_VCLMessage %u %u %X",nEventID, pWin->GetType(), pWin );
+// BOOL bx = ((DockingWindow*)pWin)->IsFloatingMode();
+// break;
+/* case M_Dock :
+ if ( ((DockingWindow*)pControl)->IsFloatingMode() )
+ ((DockingWindow*)pControl)->SetFloatingMode(FALSE);
+ else
+ ReportError( nUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_FLOATING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_Undock :
+ if ( !((DockingWindow*)pControl)->IsFloatingMode() )
+ ((DockingWindow*)pControl)->SetFloatingMode(TRUE);
+ else
+ ReportError( nUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_FLOATING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_IsDocked :
+ pRet->GenReturn ( RET_Value, nUId, (comm_BOOL) !((DockingWindow*)pControl)->IsFloatingMode());
+ break;
+ case M_Close:
+ //nWindowWaitUId = nUId;
+ DBG_ASSERT( nUId == pControl->GetUniqueOrHelpId(), "nUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((DockingWindow*)pControl)->Close();
+ break;
+ case M_Size:
+ case M_Move:
+ case M_IsMax :
+ case M_Minimize :
+ case M_Maximize :
+ if ( ((DockingWindow*)pControl)->IsFloatingMode() )
+ {
+ pControl = ((DockingWindow*)pControl)->GetFloatingWindow();
+ goto FloatWin;
+ }
+ else
+ ReportError( nUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_DOCKING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ goto MoreDialog;
+
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "DockingWindow" ) );
+ break;*/
+ }
+ break;
+
+
+
+
+
+
+ case WINDOW_FLOATINGWINDOW:
+ {
+ DBG_TRACE3( "TT_VCLMessage %u %u %X",nEventID, pWin->GetType(), pWin );
+// FloatingWindow *pFW = ((FloatingWindow*)pWin);
+/* switch( nEventID )
+ {
+
+// M_OpenMenu an einem ToolboxButton
+ case VCLEVENT_WINDOW_SHOW:
+ if ( pActionParent )
+ { // a new FloatingWindow opens up, so we assume an OpenMenu
+ // compare to 1 for floating ToolBoxes
+ if ( ( pActionParent->GetUniqueOrHelpId() == 0 || pActionParent->GetUniqueOrHelpId() == 1 ) )
+ // generate direct Button access
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pActionParent->GetHelpId( pActionParent->GetCurItemId() ), (comm_USHORT)(M_OpenMenu) );
+ else
+ // access via Toolbox
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pActionParent->GetUniqueOrHelpId(), (comm_USHORT)(M_OpenMenu|M_RET_NUM_CONTROL), pActionParent->GetHelpId( pActionParent->GetCurItemId() ) );
+ bSendData = TRUE;
+ }
+ break;
+
+ }
+ */ }
+ break;
+/*
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_IsMax :
+ pRet->GenReturn ( RET_Value, nUId, (comm_BOOL)!((FloatingWindow*)pControl)->IsRollUp());
+ break;
+ case M_Minimize :
+ ((FloatingWindow*)pControl)->RollUp();
+ break;
+ case M_Maximize :
+ ((FloatingWindow*)pControl)->RollDown();
+ break;
+ case M_Size:
+ {
+ if ( pControl->GetStyle() & WB_SIZEABLE )
+ {
+ pControl->SetSizePixel(Size(nNr1,nNr2));
+ pControl->Resize();
+ }
+ else
+ ReportError( nUId, GEN_RES_STR1( S_SIZE_NOT_CHANGEABLE, MethodString( nMethodId ) ) );
+ break;
+ }
+ case M_Close:
+ DBG_ASSERT( nUId == pControl->GetUniqueOrHelpId(), "nUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((FloatingWindow*)pControl)->Close();
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ case M_Move:
+ goto MoreDialog;
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "FloatingWin" ) );
+ break;
+ }
+ break;*/
+
+
+
+
+
+
+
+
+/*
+ case C_ModelessDlg:
+ case C_Dlg:
+ case C_TabDlg:
+ MoreDialog:
+ switch( nEventID )
+ {
+
+ // (Rect GetRect)
+
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_Close:
+ DBG_ASSERT( nUId == pControl->GetUniqueOrHelpId(), "nUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((SystemWindow*)pControl)->Close();
+ break;
+ case M_Move:
+ {
+ pControl->SetPosPixel(Point(nNr1,nNr2));
+ break;
+ }
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "Dialog" ) );
+ break;
+ }
+ break;*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+ case C_WorkWin:
+ switch( nEventID )
+ {
+ case M_Close:
+ DBG_ASSERT( nUId == pControl->GetUniqueOrHelpId(), "nUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((WorkWindow*)pControl)->Close();
+ break;
+ case M_Size:
+ case M_Move:
+ goto FloatWin;
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ goto MoreDialog;
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "WorkWindow" ) );
+ break;
+ }
+ break;
+ */
+
+
+/* case C_TabPage:
+ switch( nEventID )
+ {
+ }
+ break;*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+ case C_MessBox:
+ case C_InfoBox:
+ case C_WarningBox:
+ case C_ErrorBox:
+ case C_QueryBox:
+ {
+ BOOL bDone = TRUE;
+ MessBox* pMB = (MessBox*)pControl;
+ switch( nEventID )
+ {
+ case M_GetCheckBoxText:
+ pRet->GenReturn ( RET_Value, nUId, pMB->GetCheckBoxText() );
+ break;
+ case M_IsChecked :
+ pRet->GenReturn ( RET_Value, nUId, comm_BOOL( pMB->GetCheckBoxState() == STATE_CHECK) );
+ break;
+ case M_GetState :
+ pRet->GenReturn ( RET_Value, nUId, comm_ULONG( pMB->GetCheckBoxState() ));
+ break;
+ case M_Check :
+ pMB->SetCheckBoxState( STATE_CHECK );
+ break;
+ case M_UnCheck :
+ pMB->SetCheckBoxState( STATE_NOCHECK );
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, nUId, pMB->GetMessText());
+ break;
+
+ default:
+ bDone = FALSE;
+ break;
+ }
+ if ( bDone )
+ break; // break the case here else continue at C_ButtonDialog
+ }
+ case C_ButtonDialog:
+ {
+ ButtonDialog* pBD = (ButtonDialog*)pControl;
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Working MessBox: " );
+ if (pControl->IsVisible())
+ m_pDbgWin->AddText("*(Visible)\n");
+ else
+ m_pDbgWin->AddText("*(nicht Visible)\n");
+#endif
+ switch( nEventID )
+ {
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, nUId, pControl->GetText());
+ break;
+ case M_Click:
+ if ( nParams & PARAM_USHORT_1 )
+ {
+ if ( pBD->GetPushButton( nNr1 ) )
+ {
+ if ( nNr1 != BUTTONID_HELP )
+ {
+ SET_WINP_CLOSING(pControl);
+ }
+ pBD->GetPushButton( nNr1 )->Click();
+ }
+ else
+ ReportError( nUId, GEN_RES_STR2( S_NO_DEFAULT_BUTTON, UniString::CreateFromInt32( nNr1 ), MethodString( nMethodId ) ) );
+ }
+ else
+ ReportError( nUId, GEN_RES_STR1( S_BUTTONID_REQUIRED, MethodString( nMethodId ) ) );
+ break;
+ case M_GetButtonCount :
+ pRet->GenReturn ( RET_Value, nUId, comm_ULONG(pBD->GetButtonCount()));
+ break;
+ case M_GetButtonId :
+ if ( ValueOK(nUId, MethodString( nMethodId ),nNr1,pBD->GetButtonCount()) )
+ pRet->GenReturn ( RET_Value, nUId, comm_ULONG(pBD->GetButtonId(nNr1-1)));
+ break;
+ default:
+ ReportError( nUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "MessageBox" ) );
+ break;
+ }
+ break;
+
+
+ */
+
+
+ }
+
+
+ switch( nEventID )
+ {
+ case VCLEVENT_CONTROL_LOSEFOCUS:
+ if ( pEditModify == pWin )
+ {
+ if ( m_bRecord )
+ {
+ StatementList::pRet->GenReturn( RET_MacroRecorder, pWin->GetSmartUniqueOrHelpId(), M_SetText, aEditModifyString );
+ bSendData = TRUE;
+ }
+ if ( m_bLog )
+ {
+ LogVCL( GetParentID( pWin ), pWin->GetType(), pWin->GetSmartUniqueOrHelpId(), CUniString("Modify") );
+ }
+ pEditModify = NULL;
+ aEditModifyString.Erase(); //could be somewhat lengthy
+ }
+ break;
+ }
+
+ pLastWin = pWin;
+
+ } // if
+ else if ( pEvent->ISA( VclMenuEvent ) )
+ {
+// VclMenuEvent* pMenuEvent = ( VclMenuEvent* ) pEvent;
+ }
+
+
+ if ( bSendData )
+ new StatementFlow( NULL, F_EndCommandBlock ); // Kommando zum Senden erzeugen und in que eintragen
+
+ return 0;
+}
+
+
+
+static ::osl::Mutex * getRecorderMutex()
+{
+ static ::osl::Mutex * pMutex = NULL;
+ if(pMutex==NULL)
+ {
+ ::osl::MutexGuard aGuard(::osl::Mutex::getGlobalMutex());
+ if(pMutex==NULL)
+ pMutex = new ::osl::Mutex();
+ }
+ return pMutex;
+}
+
+
+void MacroRecorder::CheckDelete()
+{
+ ::osl::MutexGuard aGuard( getRecorderMutex() );
+ if ( !m_bRecord && !m_bLog )
+ {
+ pMacroRecorder = NULL;
+ delete this;
+ }
+}
+
+
+MacroRecorder* MacroRecorder::GetMacroRecorder()
+{
+ ::osl::MutexGuard aGuard( getRecorderMutex() );
+ if ( !pMacroRecorder )
+ pMacroRecorder = new MacroRecorder;
+
+ return pMacroRecorder;
+}
+
+BOOL MacroRecorder::HasMacroRecorder()
+{
+ ::osl::MutexGuard aGuard( getRecorderMutex() );
+ return pMacroRecorder != NULL;
+}
+
diff --git a/automation/source/server/recorder.hxx b/automation/source/server/recorder.hxx
new file mode 100644
index 000000000000..baa6355848ff
--- /dev/null
+++ b/automation/source/server/recorder.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#include <tools/string.hxx>
+#include <tools/link.hxx>
+#include <vcl/smartid.hxx>
+#include <vcl/timer.hxx>
+
+class ToolBox;
+class Window;
+class VclSimpleEvent;
+
+class MacroRecorder
+{
+private:
+ Window* GetParentWithID( Window* pThis );
+ SmartId GetParentID( Window* pThis );
+
+ Link aEventListenerHdl;
+ DECL_LINK( EventListener, VclSimpleEvent* );
+
+ Window* pLastWin;
+ Window* pEditModify;
+ String aEditModifyString;
+
+ ToolBox *pActionParent; // toolbox from which a tearoff or OpenMenu might happen
+
+ // record keys
+ String aKeyString;
+ SmartId aKeyUniqueID; // has to be remembered seperately since Window might be gone when needed
+ Window* pKeyWin;
+ BOOL bKeyFollowFocus;
+
+ AutoTimer aHookRefresh;
+ void AddEventHooks();
+ void RemoveEventHooks();
+ DECL_LINK( HookRefreshHdl, void* );
+
+ void LogVCL( SmartId aParentID, USHORT nVCLWindowType, SmartId aID, String aMethod, USHORT aParam );
+ void LogVCL( SmartId aParentID, USHORT nVCLWindowType, SmartId aID, String aMethod );
+
+ static MacroRecorder *pMacroRecorder;
+
+ MacroRecorder();
+ ~MacroRecorder();
+ void CheckDelete();
+
+ // Actions to perform
+ BOOL m_bRecord;
+ BOOL m_bLog;
+
+public:
+
+ void SetActionRecord( BOOL bRecord = TRUE ) { m_bRecord = bRecord; CheckDelete(); };
+ void SetActionLog( BOOL bLog = TRUE ) { m_bLog = bLog; CheckDelete(); };
+
+ static MacroRecorder* GetMacroRecorder();
+ static BOOL HasMacroRecorder();
+};
+
diff --git a/automation/source/server/retstrm.cxx b/automation/source/server/retstrm.cxx
new file mode 100644
index 000000000000..13a9e9b72258
--- /dev/null
+++ b/automation/source/server/retstrm.cxx
@@ -0,0 +1,122 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <tools/stream.hxx>
+
+#include "retstrm.hxx"
+#include "rcontrol.hxx"
+#include "svcommstream.hxx"
+
+
+RetStream::RetStream()
+{
+ pSammel = new SvMemoryStream();
+ pCommStream = new SvCommStream( pSammel );
+// SetCommStream( pCommStream );
+}
+
+RetStream::~RetStream()
+{
+ delete pCommStream;
+ delete pSammel;
+}
+
+void RetStream::GenError ( SmartId aUId, String aString )
+{
+ CmdBaseStream::GenError ( &aUId, &aString );
+}
+
+void RetStream::GenReturn ( USHORT nRet, SmartId aUId, String aString )
+{
+ CmdBaseStream::GenReturn ( nRet, &aUId, &aString );
+}
+
+void RetStream::GenReturn ( USHORT nRet, SmartId aUId, SbxValue &aValue )
+{
+ Write(USHORT(SIReturn));
+ Write(nRet);
+ Write(&aUId);
+ Write(USHORT(PARAM_SBXVALUE_1)); // Typ der folgenden Parameter
+ Write(aValue);
+}
+
+void RetStream::GenReturn ( USHORT nRet, SmartId aUId, comm_ULONG nNr, String aString, BOOL bBool )
+{
+ CmdBaseStream::GenReturn ( nRet, &aUId, nNr, &aString, bBool );
+}
+
+void RetStream::GenReturn( USHORT nRet, SmartId aUId, comm_USHORT nMethod, String aString )
+{
+ CmdBaseStream::GenReturn ( nRet, &aUId, nMethod, &aString );
+}
+
+void RetStream::GenReturn( USHORT nRet, SmartId aUId, comm_USHORT nMethod, String aString, BOOL bBool )
+{
+ CmdBaseStream::GenReturn ( nRet, &aUId, nMethod, &aString, bBool );
+}
+
+
+void RetStream::Write( String *pString )
+{
+ CmdBaseStream::Write( pString->GetBuffer(), pString->Len() );
+}
+
+void RetStream::Write( SbxValue &aValue )
+{
+ *pSammel << USHORT( BinSbxValue );
+ aValue.Store( *pSammel );
+}
+
+void RetStream::Write( SmartId* pId )
+{
+ DBG_ASSERT( !pId->HasString() || !pId->HasNumeric(), "SmartId contains Number and String. using String only." );
+ if ( pId->HasString() )
+ {
+ String aTmp( pId->GetStr() );
+ Write( &aTmp );
+ }
+ else
+ Write( static_cast<comm_ULONG>(pId->GetNum()) ); ////GetNum() ULONG != comm_ULONG on 64bit
+}
+
+
+SvStream* RetStream::GetStream()
+{
+ return pSammel;
+}
+
+void RetStream::Reset ()
+{
+ delete pCommStream;
+ delete pSammel;
+ pSammel = new SvMemoryStream();
+ pCommStream = new SvCommStream( pSammel );
+// SetCommStream( pCommStream );
+}
+
diff --git a/automation/source/server/retstrm.hxx b/automation/source/server/retstrm.hxx
new file mode 100644
index 000000000000..888d1717422c
--- /dev/null
+++ b/automation/source/server/retstrm.hxx
@@ -0,0 +1,84 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _RETSTRM_HXX
+#define _RETSTRM_HXX
+
+#include <basic/sbxvar.hxx>
+#include <vcl/smartid.hxx>
+#include "cmdbasestream.hxx"
+
+class SvStream;
+
+class RetStream: public CmdBaseStream
+{
+
+public:
+ RetStream();
+ ~RetStream();
+
+ using CmdBaseStream::GenError;
+// void GenError( comm_ULONG nError, const comm_UniChar* aString, comm_USHORT nLenInChars ){CmdBaseStream::GenError( nError, aString, nLenInChars );}
+// new
+ void GenError( SmartId aUId, String aString );
+
+ using CmdBaseStream::GenReturn;
+ void GenReturn( comm_USHORT nRet, comm_ULONG nNr ){CmdBaseStream::GenReturn( nRet, nNr );}
+ void GenReturn( comm_USHORT nRet, SmartId aUId, comm_ULONG nNr ){CmdBaseStream::GenReturn( nRet, &aUId, nNr );}
+ void GenReturn( comm_USHORT nRet, SmartId aUId, comm_BOOL bBool ){CmdBaseStream::GenReturn( nRet, &aUId, bBool );}
+// MacroRecorder
+ void GenReturn( comm_USHORT nRet, SmartId aUId, comm_USHORT nMethod ){CmdBaseStream::GenReturn( nRet, &aUId, nMethod );}
+ void GenReturn( comm_USHORT nRet, SmartId aUId, comm_USHORT nMethod, comm_BOOL bBool ){CmdBaseStream::GenReturn( nRet, &aUId, nMethod, bBool );}
+ void GenReturn( comm_USHORT nRet, SmartId aUId, comm_USHORT nMethod, comm_ULONG nNr ){CmdBaseStream::GenReturn( nRet, &aUId, nMethod, nNr );}
+
+// new
+ void GenReturn( USHORT nRet, SmartId aUId, String aString );
+ void GenReturn( USHORT nRet, SmartId aUId, SbxValue &aValue );
+ void GenReturn( USHORT nRet, SmartId aUId, comm_ULONG nNr, String aString, BOOL bBool );
+// MacroRecorder
+ void GenReturn( USHORT nRet, SmartId aUId, comm_USHORT nMethod, String aString );
+ void GenReturn( USHORT nRet, SmartId aUId, comm_USHORT nMethod, String aString, BOOL bBool );
+
+ void Reset();
+ SvStream* GetStream();
+
+
+
+ using CmdBaseStream::Write;
+ void Write( comm_USHORT nNr ){CmdBaseStream::Write( nNr );}
+ void Write( comm_ULONG nNr ){CmdBaseStream::Write( nNr );}
+ void Write( comm_BOOL bBool ){CmdBaseStream::Write( bBool );}
+// new
+ void Write( SbxValue &aValue );
+
+// Complex Datatypes to be handled system dependent
+ virtual void Write( SmartId* pId );
+ virtual void Write( String *pString );
+
+ SvStream *pSammel;
+};
+
+#endif
diff --git a/automation/source/server/scmdstrm.cxx b/automation/source/server/scmdstrm.cxx
new file mode 100644
index 000000000000..0c4485f46a6b
--- /dev/null
+++ b/automation/source/server/scmdstrm.cxx
@@ -0,0 +1,215 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <svl/intitem.hxx>
+#include <svl/stritem.hxx>
+#include <svl/eitem.hxx>
+#include "scmdstrm.hxx"
+#include "svcommstream.hxx"
+#include "rcontrol.hxx"
+
+#if OSL_DEBUG_LEVEL > 1
+#include "editwin.hxx"
+#include "statemnt.hxx"
+#endif
+
+SCmdStream::SCmdStream(SvStream *pIn)
+{
+ pSammel = pIn;
+ pCommStream = new SvCommStream( pSammel );
+// SetCommStream( pCommStream );
+}
+
+SCmdStream::~SCmdStream()
+{
+ delete pCommStream;
+}
+
+void SCmdStream::Read (String* &pString)
+{
+ if ( !pString )
+ pString = new String();
+ comm_UniChar* pStr;
+ USHORT nLenInChars;
+ CmdBaseStream::Read( pStr, nLenInChars );
+
+ *pString = String( pStr, nLenInChars );
+ delete [] pStr;
+}
+
+void SCmdStream::Read (String &aString)
+{
+ comm_UniChar* pStr;
+ USHORT nLenInChars;
+ CmdBaseStream::Read( pStr, nLenInChars );
+
+ aString = String( pStr, nLenInChars );
+ delete [] pStr;
+}
+
+void SCmdStream::Read ( SfxPoolItem *&pItem )
+{
+ USHORT nType;
+ USHORT nId;
+ Read(nId);
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "Parameter: " );
+ StatementList::m_pDbgWin->AddText( String::CreateFromInt32( nId ) );
+ StatementList::m_pDbgWin->AddText( " " );
+#endif
+ Read( nType );
+ switch (nType)
+ {
+ case BinUSHORT:
+ {
+ comm_USHORT nNr;
+ Read (nNr );
+ pItem = new SfxUInt16Item(nId,nNr);
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "USHORT:" );
+ StatementList::m_pDbgWin->AddText( String::CreateFromInt32( nNr ) );
+#endif
+ }
+ break;
+ case BinULONG:
+ {
+ comm_ULONG nNr;
+ Read (nNr );
+ pItem = new SfxUInt32Item(nId,nNr);
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "ULONG:" );
+ StatementList::m_pDbgWin->AddText( String::CreateFromInt64( nNr ) );
+#endif
+ }
+ break;
+ case BinString:
+ {
+ String aString;
+ Read (aString);
+
+ pItem = new SfxStringItem(nId,aString);
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "String:" );
+ StatementList::m_pDbgWin->AddText( aString );
+#endif
+ }
+ break;
+ case BinBool:
+ {
+ comm_BOOL bBool;
+ Read (bBool);
+ pItem = new SfxBoolItem(nId,bBool);
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "BOOL:" );
+ StatementList::m_pDbgWin->AddText( bBool ? "TRUE" : "FALSE" );
+#endif
+ }
+ break;
+ default:
+ DBG_ERROR1( "Ungltiger Typ im Stream:%hu", nType );
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "Ungltiger Typ !!!! " );
+#endif
+ break;
+ }
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "\n" );
+#endif
+}
+
+void SCmdStream::Read ( ::com::sun::star::beans::PropertyValue &rItem )
+{
+ USHORT nType;
+ String aId;
+ Read(aId);
+ rItem.Name = rtl::OUString( aId );
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "Parameter: " );
+ StatementList::m_pDbgWin->AddText( aId );
+ StatementList::m_pDbgWin->AddText( " " );
+#endif
+ nType = GetNextType();
+ switch (nType)
+ {
+ case BinUSHORT:
+ {
+ comm_USHORT nNr;
+ Read (nNr );
+ rItem.Value <<= nNr;
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "USHORT:" );
+ StatementList::m_pDbgWin->AddText( String::CreateFromInt32( nNr ) );
+#endif
+ }
+ break;
+ case BinULONG:
+ {
+ comm_ULONG nNr;
+ Read (nNr );
+ rItem.Value <<= nNr;
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "ULONG:" );
+ StatementList::m_pDbgWin->AddText( String::CreateFromInt64( nNr ) );
+#endif
+ }
+ break;
+ case BinString:
+ {
+ String aString;
+ Read (aString);
+ rItem.Value <<= ::rtl::OUString( aString );
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "String:" );
+ StatementList::m_pDbgWin->AddText( aString );
+#endif
+ }
+ break;
+ case BinBool:
+ {
+ comm_BOOL bBool;
+ Read (bBool);
+ rItem.Value <<= bBool;
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "BOOL:" );
+ StatementList::m_pDbgWin->AddText( bBool ? "TRUE" : "FALSE" );
+#endif
+ }
+ break;
+ default:
+ DBG_ERROR1( "Ungltiger Typ im Stream:%hu", nType );
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "Ungltiger Typ !!!! " );
+#endif
+ break;
+ }
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "\n" );
+#endif
+}
+
diff --git a/automation/source/server/scmdstrm.hxx b/automation/source/server/scmdstrm.hxx
new file mode 100644
index 000000000000..0e71b2723801
--- /dev/null
+++ b/automation/source/server/scmdstrm.hxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SCMDSTRM_HXX
+#define _SCMDSTRM_HXX
+
+#include <tools/solar.h>
+#include <com/sun/star/beans/PropertyValue.hpp>
+
+#include "cmdbasestream.hxx"
+
+class SvStream;
+class SfxPoolItem;
+class String;
+class ICommStream;
+
+class SCmdStream: public CmdBaseStream
+{
+ SvStream *pSammel;
+
+public:
+ SCmdStream( SvStream *pIn );
+ ~SCmdStream();
+
+ using CmdBaseStream::Read;
+ void Read ( comm_USHORT &nNr ){CmdBaseStream::Read ( nNr );}
+ void Read ( comm_ULONG &nNr ){CmdBaseStream::Read ( nNr );}
+// void Read ( comm_UniChar* &aString, comm_USHORT &nLenInChars ){CmdBaseStream::Read ( aString, nLenInChars );}
+ void Read ( comm_BOOL &bBool ){CmdBaseStream::Read ( bBool );}
+// new
+ void Read ( String &aString );
+ void Read ( SfxPoolItem *&pItem );
+ void Read ( ::com::sun::star::beans::PropertyValue &rItem );
+
+ virtual void Read (String* &pString);
+};
+
+#endif
diff --git a/automation/source/server/server.cxx b/automation/source/server/server.cxx
new file mode 100644
index 000000000000..e4e59251dd63
--- /dev/null
+++ b/automation/source/server/server.cxx
@@ -0,0 +1,978 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+// do not use Application Idle but AutoTimer instead
+#define TIMERIDLE
+
+#define NO_JPEG
+
+#ifndef NO_JPEG
+#include <svtools/jpeg.hxx>
+#endif
+#include <vcl/timer.hxx>
+#include <vcl/wrkwin.hxx>
+#include <osl/diagnose.h>
+#include <osl/mutex.hxx>
+
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#include <tools/stream.hxx>
+#include <tools/config.hxx>
+
+#include <vos/socket.hxx>
+
+#if 1
+#include <svtools/ttprops.hxx>
+#include <basic/ttstrhlp.hxx>
+#include <svl/stritem.hxx>
+#include <svtools/stringtransfer.hxx>
+#include <vcl/sound.hxx>
+#include "testtool.hrc"
+#include <vcl/bitmap.hxx>
+// Hat keinen Includeschutz
+#include <svtools/svtdata.hxx>
+//#ifndef _DTRANS_HXX //autogen
+//#include <so2/dtrans.hxx>
+//#endif
+#endif // 1
+#include <rtl/textenc.h>
+#include <rtl/uri.h>
+#include <rtl/uri.hxx>
+#include "statemnt.hxx"
+#include "scmdstrm.hxx"
+#include "rcontrol.hxx"
+#include "server.hxx"
+#include "testtool.hxx"
+#include "automation/automation.hxx"
+#include "recorder.hxx"
+
+#include "basic/svtmsg.hrc"
+
+#ifdef DBG_UTIL
+void TestToolDebugPrint( const sal_Char *pString )
+{
+ if ( !DbgFilterMessage( pString ) )
+ StatementList::DirectLog( S_AssertError, UniString( pString, RTL_TEXTENCODING_UTF8 ) );
+}
+void SAL_CALL osl_TestToolDebugPrint( const sal_Char *pString )
+{
+ TestToolDebugPrint( pString );
+}
+#endif
+
+
+ULONG RemoteControlCommunicationManager::nPortIs = TT_PORT_NOT_INITIALIZED;
+USHORT RemoteControlCommunicationManager::nComm = 0;
+BOOL RemoteControlCommunicationManager::bQuiet = FALSE;
+
+#if OSL_DEBUG_LEVEL > 1
+RemoteControlCommunicationManager::RemoteControlCommunicationManager( EditWindow * pDbgWin )
+#else
+RemoteControlCommunicationManager::RemoteControlCommunicationManager()
+#endif
+: CommunicationManagerServerViaSocket( GetPort(), 1, TRUE )
+#if OSL_DEBUG_LEVEL > 1
+, m_pDbgWin( pDbgWin )
+#endif
+, pTimer( NULL )
+{
+ bIsPortValid = ( GetPort() != 0 );
+ if ( bQuiet )
+ {
+ SetInfoType( CM_NO_TEXT );
+ }
+ else
+ {
+ SetInfoType( CM_SHORT_TEXT | CM_ALL );
+ ByteString aByteString;
+ InfoMsg( InfoString( aByteString, CM_ALL ) ); // Anzeigen, da wir da sind
+ }
+}
+
+RemoteControlCommunicationManager::~RemoteControlCommunicationManager()
+{
+ if ( pTimer )
+ delete pTimer;
+ DoQuickShutdown();
+}
+
+void RemoteControlCommunicationManager::ConnectionOpened( CommunicationLink* pCL )
+{
+ StatementFlow::pCommLink = pCL;
+ CommunicationManagerServerViaSocket::ConnectionOpened( pCL );
+}
+
+
+void RemoteControlCommunicationManager::ConnectionClosed( CommunicationLink* pCL )
+{
+ StatementFlow::pCommLink = NULL;
+ CommunicationManagerServerViaSocket::ConnectionClosed( pCL );
+}
+
+
+IMPL_LINK( RemoteControlCommunicationManager, SetWinCaption, Timer*, EMPTYARG )
+{
+ if ( pTimer )
+ {
+ delete pTimer;
+ pTimer = NULL;
+ }
+
+ if ( StatementList::GetFirstDocFrame() )
+ {
+ if ( !aOriginalWinCaption.Len() )
+ aOriginalWinCaption = StatementList::GetFirstDocFrame()->GetText();
+ StatementList::GetFirstDocFrame()->SetText(String(aOriginalWinCaption).AppendAscii(" TT").Append(aAdditionalWinCaption).AppendAscii("[").Append(UniString::CreateFromInt32(nPortToListen)).AppendAscii("]"));
+ }
+ else
+ { // Dann Probieren wir es eben in 1 Sekunde nochmal
+ pTimer = new Timer(); // Wird im Link gelscht
+ pTimer->SetTimeout( 1000 );
+ pTimer->SetTimeoutHdl( LINK( this, RemoteControlCommunicationManager, SetWinCaption ) );
+ pTimer->Start();
+ }
+ return 0;
+}
+
+void RemoteControlCommunicationManager::InfoMsg( InfoString aMsg )
+{
+ if ( !bIsPortValid )
+ return;
+ aAdditionalWinCaption = UniString( aMsg, RTL_TEXTENCODING_ASCII_US );
+ SetWinCaption();
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( UniString( (ByteString)aMsg, RTL_TEXTENCODING_ASCII_US ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+}
+
+ULONG RemoteControlCommunicationManager::GetPort()
+{
+ if ( TT_PORT_NOT_INITIALIZED == nPortIs )
+ { // Read Config
+
+ USHORT i;
+ // are we to be automated at all?
+ BOOL bAutomate = FALSE;
+ for ( i = 0 ; i < Application::GetCommandLineParamCount() ; i++ )
+ {
+ if ( Application::GetCommandLineParam( i ).EqualsIgnoreCaseAscii("/enableautomation")
+ || Application::GetCommandLineParam( i ).EqualsIgnoreCaseAscii("-enableautomation"))
+ {
+ bAutomate = TRUE;
+ break;
+ }
+ }
+
+// if started within Portal determin location of testtool.ini/rc by analysing the commandline
+// /userid:demo1[/export/home/user/demo1]
+// -userid:demo1[/export/home/user/demo1]
+ String aIniFileDir;
+ for ( i = 0 ; i < Application::GetCommandLineParamCount() ; i++ )
+ {
+ if ( Application::GetCommandLineParam( i ).Copy(0,8).EqualsIgnoreCaseAscii("/userid:")
+ || Application::GetCommandLineParam( i ).Copy(0,8).EqualsIgnoreCaseAscii("-userid:") )
+ {
+ rtl::OUString aEncHome
+ = Application::GetCommandLineParam(i).GetBuffer();
+
+ rtl::OUString aDecHome = rtl::Uri::decode(aEncHome,
+ rtl_UriDecodeWithCharset,
+ RTL_TEXTENCODING_UTF8);
+
+ aIniFileDir = aDecHome;
+ aIniFileDir.Erase( 0, aIniFileDir.Search('[')+1 );
+ aIniFileDir.Erase( aIniFileDir.Search(']') );
+ }
+ }
+
+ if ( ! aIniFileDir.Len() )
+ aIniFileDir = Config::GetDefDirectory();
+
+ Config aConf(Config::GetConfigName( aIniFileDir, CUniString("testtool") ));
+ aConf.SetGroup("Communication");
+
+ ByteString aNoTesttoolKey( ByteString("Exclude_").Append( ByteString( Application::GetAppFileName(), RTL_TEXTENCODING_UTF8 ) ) );
+// -notesttool
+ for ( i = 0 ; i < Application::GetCommandLineParamCount() ; i++ )
+ {
+ if ( Application::GetCommandLineParam( i ).CompareIgnoreCaseToAscii("-notesttool") == COMPARE_EQUAL )
+ aConf.WriteKey( aNoTesttoolKey, "something" );
+ }
+
+ nPortIs = aConf.ReadKey("TTPort","0").ToInt32();
+
+ // noch prfen ob dieses Office getestet werden soll.
+ if ( !bAutomate || aConf.ReadKey( aNoTesttoolKey, "" ) != "" )
+ nPortIs = 0;
+
+ nComm = (USHORT)aConf.ReadKey("Comm","0").ToInt32();
+ if ( nComm )
+ aConf.DeleteKey("Comm");
+
+ bQuiet = ( aConf.ReadKey("Quiet","no").CompareIgnoreCaseToAscii("yes") == COMPARE_EQUAL );
+ }
+ return nPortIs;
+}
+
+#if OSL_DEBUG_LEVEL > 1
+#define MIN_IDLE 10000 // Ruhe vor dem Sturm min 10 Sekunden
+#else
+#define MIN_IDLE 60000 // Ruhe vor dem Sturm min 1 Minuten
+#endif
+
+class ExtraIdle : public AutoTimer
+{
+ virtual void Timeout();
+
+ USHORT nStep;
+ ImplRemoteControl *pRemoteControl;
+public:
+ ExtraIdle( ImplRemoteControl *pRC );
+};
+
+
+ExtraIdle::ExtraIdle( ImplRemoteControl *pRC )
+: nStep( 0 )
+, pRemoteControl (pRC )
+{
+ SetTimeout( 120000 ); // 2 Minuten
+#if OSL_DEBUG_LEVEL > 1
+ SetTimeout( 40000 ); // 40 Sekunden
+#endif
+ Start();
+}
+
+void ExtraIdle::Timeout()
+{
+ if ( !StatementList::pTTProperties )
+ StatementList::pTTProperties = new TTProperties();
+
+ if ( !StatementList::pTTProperties->GetSlots() )
+ {
+ delete this;
+ return;
+ }
+
+ // Mssen wir selbst idlen?
+#if OSL_DEBUG_LEVEL > 1
+ ULONG nLastInputInterval = Application::GetLastInputInterval();
+ BOOL bIsInModalMode = Application::IsInModalMode();
+ if ( bIsInModalMode || nLastInputInterval < MIN_IDLE )
+#else
+ if ( Application::IsInModalMode() || Application::GetLastInputInterval() < MIN_IDLE )
+#endif
+ {
+ if ( nStep ) // Schon angefangen? dann abbrechen, sonst spter nochmal
+ {
+ if ( nStep < 15 )
+ {
+ Sound::Beep();
+ Sound::Beep();
+ }
+#if OSL_DEBUG_LEVEL < 2
+ delete this;
+#endif
+ }
+#if OSL_DEBUG_LEVEL > 1
+ if ( nStep < 15 )
+ {
+ Sound::Beep();
+ Sound::Beep();
+ }
+#endif
+ return;
+ }
+
+ if ( StatementList::pFirst ) // Verarbeitung neu aufsetzen
+ {
+ GetpApp()->PostUserEvent( LINK( pRemoteControl, ImplRemoteControl, CommandHdl ) );
+ return;
+ }
+
+
+ switch ( nStep++ ) // Probieren ob wir noch was machen knnen
+ {
+ case 0:
+ {
+ SfxPoolItem *pItem = new SfxStringItem((USHORT)StatementList::pTTProperties->nSidNewDocDirect, CUniString("swriter/web") );
+ new StatementSlot( StatementList::pTTProperties->nSidNewDocDirect, pItem );
+ SetTimeout(30000);
+ return;
+ }
+ case 1:
+ {
+ new StatementSlot( StatementList::pTTProperties->nSidSourceView );
+#if OSL_DEBUG_LEVEL > 1
+ SetTimeout(7000);
+#else
+ SetTimeout(1500);
+#endif
+ return;
+ }
+ case 2:
+ {
+ new StatementSlot( StatementList::pTTProperties->nSidSelectAll );
+ return;
+ }
+ case 3:
+ {
+
+#if OSL_DEBUG_LEVEL > 1
+//#define TT_NO_DECRYPT
+#define TT_CODE
+#else
+#define TT_CODE
+#endif
+
+#ifdef TT_NO_DECRYPT
+ String aStr =
+ ""
+ ;
+
+#else
+ ByteString aStr =
+ "\n"
+ "VRQJ`ob\n"
+ "YEZO\n"
+ "ob\n"
+ "UmRo`\n"
+ "5J~O2o5+90~5,6xW$+5:c9o0UXRm`Y UQ~JP~X]`Y\\|%Y`Yo]~O||2[pP0Y1J,|V),,7:,+|JS+U*[/O|K\n"
+ "|KaLYNV~]]2W/]*Y9|`*Y,P=[5P|U\n"
+ "]}mqbw`zZU\\L\n"
+ "LZdYWo9\n"
+ "/J\n"
+ "U~[QoZ\n"
+ "Rqd~V\n"
+ ",)1~00\n"
+ "\n"
+ ")0~*2=\n"
+ "++2\\5&K|~5n9r~9/*9<*~051*Q|0~0rY|~./97~Q*7,Z9<|KY0:=K*<=w~qY`IbOKzLwN,`7b,V~]E`]b\\ORE~\n"
+ "\n"
+ "Vq~bR`W;a+Y\\J=LKJa+W*I/PbR~JLUX[|b~`Z2P/R*[9a~W=9~/9p8=a*P=J0OZ~7L`JbL=P<WbaLQbPO]JYKbD\n"
+ "aY`J5J:b~7=2~+9)9W1,50b9X3P0`YbYVJ`Jb \\`Z]`Vb\n"
+ "VRQJ`b"
+ ;
+#endif
+
+#ifdef TT_CODE
+ for ( USHORT i = 0 ; i < aStr.Len() ; i++ )
+ {
+ if ( aStr.GetChar(i) < 32 || aStr.GetChar(i) > 126 )
+ {
+ // do nothing
+ }
+ else
+ {
+ aStr.SetChar( i, aStr.GetChar(i) - 32 );
+ aStr.SetChar( i, 126 - aStr.GetChar(i) );
+ }
+
+ if ( i > (aStr.Len() / 2) && (i&1) )
+ {
+ sal_Char c = aStr.GetChar(i);
+ aStr.SetChar( i, aStr.GetChar(aStr.Len()-i-1) );
+ aStr.SetChar( aStr.Len()-i-1, c );
+ }
+ }
+#endif
+
+ ::svt::OStringTransfer::CopyString( UniString( aStr, RTL_TEXTENCODING_ASCII_US ), StatementList::GetFirstDocFrame() );
+
+ new StatementSlot( StatementList::pTTProperties->nSidPaste );
+ return;
+ }
+ case 4:
+ {
+ new StatementSlot( StatementList::pTTProperties->nSidSourceView );
+ return;
+ }
+ case 5:
+ {
+ new StatementSlot( StatementList::pTTProperties->nSidSelectAll );
+ new StatementSlot( StatementList::pTTProperties->nSidCopy );
+ new StatementSlot( StatementList::pTTProperties->nSidPaste );
+ return;
+ }
+ case 6:
+ {
+ ByteString aTr("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+-");
+ ByteString aData =
+"P-S-0U04Fihixh00l0004b0b300-PS0g30428333y243q334j44426a6a65576c8k97aJecf7feccedg2inj3ghlshde5krk+lno"
+"PpqpBfjsgusp1unp-po-PS0gm044x465e6b6L6boygeg-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo-ooo"
+"-ooo-ooo-oo-1M04020Y30J0o080B040R040M-N0M700l010l000k000000000006000N011I112r222M-N0gJ40D000U001R011"
+"0110500vr0001014p148mcg1R4koV18s95cwkAE2V8gImM5kgQY9WcosCw22I556p669I99aoaadrddd6eeeNghhIhhiriik6lll"
+"NlmmImoprppp6qqqNsttItturuuw6xxxNxyyHyAA6BBBNBCCHCEE6FFFNFGGHGII6JJJNJKKHKMM6NNNNNOOHOQQ6RRRNRSSCSUU"
+"NUVVIVVWpWWYIYYZrZZZ6+++M-N0Q700R000l000l000g00000006000N011I112r222M-N0kJ40C0003110d1110110r00t6000"
+"Q041l18cF14gtk1ous48Acw295gAlEIMv28cxkY5FosQE2595dU9sY56q669N9aaCaddNdeeIeghrhhh6iiiNkllIllmrmmo6ppp"
+"NpqqIqstrttt6uuuIwwxrxxx6yyyIAABrBBB6CCCIEEFrFFF6GGGIIIJrJJJ6KKKIMMNrNNN6OOOIQQRrRRR6SSSIUUVrVVV6WWW"
+"IYYZrZZZ6+++U-S0d3009004Q040Of0TPU5QGjFCdPoji85WiqEopkCag321kP8dW4yO4KRlNi9iwzeTKup+Yk0lrdcicCEeLtVQ"
+"z1IFeROmSJBa7VYMYY-0EWGkJWH6LpAVdrUepM7ScEpkTBkenX3YGuoFVU0IGk+dSzPpv0N6U07eTPFgid-YtvOD2ws5C96qDgIL"
+"vhsoWmBPAozc+KgPjiVuW0TJnrt6PqF63p2VJEJ6A+l33JqESWh0G4yn1JkcaaEBnw17xmaf0q4BGkVy40Jj+FAyioG3KEukCtP1"
+"OAdOe4ASVCPuUrQDFsqBoRWN6jqxOBfH-30WbgyZy+HtyI6xNVvt3M0lnfscjA8rBUeoRXifTPCceY6t46AR9ooG2jVzdmo+PQ6R"
+"cAEDd7VE3GvUyDJzn2e0yyzypEdnCzUZorT029pk4LHJYsRQmR5smaW9EuCbt2A2s2Nd9ZKAkcJSWoTGPV5p6d1PZCiYt6kVETBB"
+"K7zNWhRK7kMBCag7zELQ2e6HWHM+BwO4nJA-30uF2a2WgcgndWuk6gPbha0D5WFPq902KmjNwyg5xkVQvgd9W9SCfiFd95Ndh9yj"
+"Odd7k38da3xWqtwcHPOEb7AvIPqAdRbz3XNNEYFu7bS9Iz-0UVQJc-gtgPCQ7cledmoGTULsGpjeu0TzkJi2tusMDnR4cisDw2rz"
+"Vhs36hPC0oSH7V-UMAjVIC3dRFwNoc20a0+Culnm3q9QQJsgt00IeEoRXCh3jUg3eO8yGBOpFwYap5OrpoAfMeR6Q8L0sUIgI7B3"
+"Oy9q5WMBAxg5PYnBSxZlywhwDlb45Il6Y+F-NaH62MEoByaq02d2aaEz5Bwx45DqfEC4ACqd4FYjI9IbAgqH7uFopm+JQRSHrSNd"
+"ct0dwNo+FAUaD926b3wtUoRIPJ-MTLLiQcC92bTBue9RkDqqYRcXxn06S9Jm6Qhpk9IjH8JLyIinJj3EAF7bTH9jkf170OvzuO2j"
+"I2jenHhQvnKoDSHSmWenEhfEHkVgekpfIOhkBhqLVaEvb83EyfD2Awrbk5+lwyvOne6yBA36rdrmna4xFOsvqGxRcgcJy-lXnjCn"
+"eeWhGvqAbmSf7LcDwqykK9jqADpRqkXSq7MB7ZOHSgJhNitiw3i6y9LYjRNlq4Lc-00zCNL3CThC65Ajjlw8550bAbqa0d0Jz3BT"
+"kH6EDgQhRUhjtyK9y9CjraNEw9ERUq6MmYa989nsRqsPxo+zi2IbOfxy9q3lFL-QSWn5qwp7nTFUwVe-XaDxnGfWOIYXXfIkILs-"
+"lWPSm51tjj967w11u-YylxUO++EfuLsmr1c3jLdgcDYmK9roIAmz1t1vAalje3oyXDp335xkQ24rS1JhdokOn5cWpizqiE5bsbg4"
+"4gWkfJ2IEVnSoWmj8eNeAFuoT0wzWWm9UgmDKRH2INGJy6OHTwn7zawsiPo796yQd6OsPORlTrUR-bEMLPj8nZdMwyX-Jb8npd2-"
+"zV9JMRdNarUy1aF0tiihB0o+kQh5iy9r9BMqhPjf+WckJ9WWqmSQTEqAl+zwgw-+vH5WomSNVjbDLchO9Ae-ggdQGPcb+7Dq0X-d"
+"XsFHj76-a0eUqKlN6cgHMKgKSmv8xcMVnCIPAnqR0SsThTWe8GSgo3pTGWTgBrtb1X2OfHMHsi8D3gkpPwKvoxoEuSJcTmD2kiAS"
+"Pk3wl5C5NZDe9OrZMdDg6VQpDybXJ7EWLCdwsPoTGqhcGOGvrJ2WgFuuem+wP1ZGhkpee9rU7CTad9q9DxVgNzGWk+lGid6rKswa"
+"1+Uc57RmFASpo3qbaGvuMReTLCWXsocM6lvXmSZHAhhaaV7EHH9sJglnrUlniII4I0gVZHFLys8VKKb2yKbAYHeSY3VlmgRywmqd"
+"UXugq90wSsh0poya0qEAF9CjjadQumckue1unyK1sdcUwyxQOcARlHjLWYd3lS2ozCTQ48zZXesU66bAUfTdoXoOInm7MpPgwiDp"
+"XDqJrEMEChxb747KzIHfxSdi++EwdRNK7RHEmgVhqiZkW1WqBEnjst6Oz08ztIPVknfPjq8NDB4h9g1sD+l1xQNzHNg+Jb1Vmii6"
+"1dP-57LPdOhlWSTKYaCmzwAhGqyOlPrY9zXZodpZuoL2kjTBLBxaeGcM+NONZcN7GqIqFcNlhVgMXKHsd-WEBBR957ZZn7hk-mbb"
+"FGxWLzaiHE6t48mXupNDlxi6d1w-yaPlmczA0gTsEhqRrsEbj48ProNvyivlaY06bdYSvGN7IOBc1ezBJiFd5OTz+RbzIsqJpCsJ"
+"BOTSLjAdwXCzq-XExGbygb3X2oURVXxTB4q0e6euBRnXkIJuTM7SfQfQkdEEjN7J56t3oxP6B0cA4lgSDhURzsDzrkk0ECxfwaU3"
+"ovagJuvzx07aksPdxkQ8aqEy618F-4wjCr3hZq8gq3gu7RJ4ovXa86R7ZskSYJC01o2OpfvJh0WqpYiIuE0zBqpI3kTJQZ0Or5ku"
+"9RzhbzbV1AU0BzJ5vPTOBRIOIAiJiBiOdI8fR3dcWle3xCder+W6QELyr6NaldJipQCeAMwRr5mpzZESGAhuU3BDdkCh5ENgMUE-"
+"sWotoCfnOwT7tJlXLHODk8K7Z4zYCG9Dh2fQazDE0JqBDruomfatotGADn25BCDpk6GI6SSftpUd71Qr1JBrgOr33aWswl983Uk7"
+"cq9Em7vGtACekHlvOOVJfbdh76nNHzuQ1Z1oBvuU9l-dAg+-QWWFQ18D8U+zmYn1jypyarIXSrcIb67wLDTFXWm8F9XPmFWRBD3d"
+"WukVJwhGNV5ZHVE1wCudY07ZIEAd1kgzgPcRSxFhRhFpXsnESjJhUNCA3DlrARwzz+llg0xpVHrJiddYT36P453qxpOmIE9e6-qJ"
+"h4ipfTTt8f2Kq4mdWniErPtI+wrN-edvCQFtPdrL+tpV6EpPRXgmHnjRhV0eWWzqxdRZacX98CME3pvwDYWkO8TOUlcNQSKTU1iF"
+"FC9WIBA8PulsCFVNH1qJwZxYYcaX6CGNnR7vHiIBDsTE51J4b4fYucNYFG9V5mCUdrJT57tHk9eghSOfgeHZDxuvQt8619pwKma7"
+"3Nl00EFklZOk+APRmKviL+iyiG1sWfA3E0xUPznlQgvsHJRzD9u0TzHsB6tIMKLmOxvVHG9knpHerjAXNqIp7jwZzvYXIyW8kw8g"
+"3ycECFaB2Y2U0l00NE7l2Aca2y5uhk+QJygN0857SQMVSEXjy+Q84nQjkTh1GAtFACtdHRhwQ6FhQMLjFu6zyxuFycbQA7qNSsiy"
+"90wlAaUBBtFhxMV0TPd8DbVScjJoMSAYMh6GhAHnKOZsbdqvwtHKdZWZ9HQbdmVOt0xnnK5Ju9KfwhuHMZIoPt73BqspII6qBobB"
+"5kfcwm183j4fwapcs50EoGgz2UZGuK88agfskePeYt9DOQD3qxxfuJ5lZUFHa8aqFJIT6MG2Kwtwuu0zBqTz8x5DYM7PDh29F9FU"
+"1ge-wqqIMqmXlpbO65sila1be1yRGABAbw2njF5txZEAaqEyEo9FUPqnKQ4y1NQqSXkCpsqpO06UUCyBBzaDjawwoHkKOT1-zqpz"
+"FU7JNudONE3fuYk83U9thALoAIeG6FKizOLgU4AcDcszCmGZgylUI-Edd9mAKL9nJe+YdiYxl7uX4mATdO30KcuDrRoTxBbiHbuA"
+"qlorQn1D0opRuIhzVLm8+z8QRFlNA0683M1QYE+Lhka+kaIDvE8RHQHel4bOsMFp6lmV6D3cNhQvpG1sECm02a5tgF52reEBaYEw"
+"OhD+RQiFedTm3OQg5iq2c04kidOoDgaPNGs1VitbrhIvAuzStaWksap3jp9UrAN1O-0nAECIfSP0QHVkGWtduz6XSmJ7MsLPmPJ3"
+"hRjY7DtZXWjvtHcj9ooAXcPsI+3YgG951n7urnyB1kbQV+ZdlAbI11Y3orBMB+le8goi66fWyEX9FHpFEL32jNqSghzvyEC1227-"
+"p5t8vx19mYHbOghy5K7voWUAXsjX2gwzicmKiNJR9OrHppAbVEVzVjOuYWmwCpGWFW1DlaoOc03PWkgqvVeezQY8IiM9Rptnniwf"
+"Xa1XnMPo6ES0MHE5nwC8tT65VVw3C2peCu720i6oVvevcoMGeP3PVgvBkudifs0GNH7AaOGVFhrbE68B8sq6AH8BFvXhZfzdhb1f"
+"Y1p-GVyr3qECy393zFEq0wHg2Vls4OiVD-J0d7JFKsuhUPgdykTCWhbqkdvwUUyg7qXPvdeC09AUAszRcVsk5iihIr1+N-0ATkGU"
+"i6GPwTlzw-dALNmjbVjHOSAsWaihe303RxAmD4akSPWkjgtot17BTZfaSgaNH+ESoUGJ3GgPJqD8UBsAShIF-X0wwyFpDkTwESHg"
+"jNwUF9EpszCwj1myzqZG9hIp76G1ymz7BuZF0T5pdA1GMG8AGuRbXEtJMkHsDJoztG06Jqm-khFPydXg-VB1k+l9AMwzzvtCDacK"
+"k22WU1fByYcDpmW0Y9YF-zeZDDcQJVF8tT8cNNjt9GdIF3103ZFP8oulWCfnXETCKz3YQFsm3qOUu6GJ-lb2foo1WJqGpcCbyPmy"
+"Ib95rQLJnk56YC1KmN5zMJ831cVsERyvdPOSW8kg-2uk8m3J4zgAWAhvvBOofIjFb5yNf0shVv-JJ9f49ZFcQ+LKDFKX3iNV1E-G"
+"MxeEwbi-uGP8BGO4vGgV0IFbgswumfhk14OF3q+1qwRFpq4hr1s6zQEAgoVAW3QE4tsQpYW3JkcqDcnSOjbePZeFrFMor-o3UG2F"
+"jmw8667eXk3UiM9vq5EpyrbQxexsJ3tKy7w6lGsumfMWIlcSglkLUzicysuPgqT5Wuzn8MkGvTYve2UyunErUnD-+Qwr0rDo1tOG"
+"bbtcNNeFInx5rDK3DHahjTON3d3oTpePxioVK3sRLDh185yKMzTQv812ADCFcwvFHbetPF41f7kot00O2OMUkw4OPvuTRkhdAhgd"
+"il2SM9bunNaNHqh9Ov8Qv3SKEl1O-BwzjYF0VWjkxycswQFqQotUPw+Q-6FrCPFWvaF2CP2F319stMfD-8bHsd87KZfQ9ChereG4"
+"Z8XP8dNMipn-evkOVVFqfgN16dO8Ya9nqGFIpIW1Ljv7wOAzdZFsm5C1EuQoKzwyXDO0BDjceBsyTt40H0upG8D1N1ZP66OPIeQy"
+"oXQwI63e+NnuYA0687-d6N6rDscj+VHn2R0RUXQFZ2+EANqcqvan4y0Erpl01fAfmLaI8pmOgsRUDvuF5e9YnWNhxtSzS4fsjj1J"
+"1EIGpcw0WfiaOul1s19ZIECoLBx-#S";
+
+
+//#if OSL_DEBUG_LEVEL > 1
+// SvFileStream aStream( "d:\\gh_writeback.jpg" , STREAM_STD_READWRITE | STREAM_TRUNC );
+//#else
+ SvMemoryStream aStream;
+//#endif
+ xub_StrLen c;
+ xub_StrLen cRest = 0;
+
+ xub_StrLen nIndex;
+ for ( nIndex = 0 ; nIndex < aData.Len() ; nIndex++ )
+ {
+ if ( ( nIndex & 3 ) == 0 )
+ {
+ cRest = aData.GetChar( nIndex );
+ cRest = aTr.Search( (sal_Char)cRest );
+ }
+ else
+ {
+ c = aData.GetChar( nIndex );
+ c = aTr.Search( (sal_Char)c );
+
+ c <<= 2;
+ c |= ( ( cRest & 0x30 ) >> 4 );
+ cRest <<= 2;
+
+ aStream << sal_Char(c);
+ }
+ }
+
+ aStream.Seek(0);
+#ifndef NO_JPEG
+ Graphic aGraphic;
+ if ( ImportJPEG( aStream, aGraphic, NULL ) )
+ {
+ Bitmap *pBmp = new Bitmap( aGraphic.GetBitmap() );
+ StatementList::pTTProperties->Img( pBmp );
+ delete pBmp;
+ }
+ else
+#endif
+ {
+ ::svt::OStringTransfer::CopyString( CUniString("\nSorry! no bitmap"), StatementList::GetFirstDocFrame() );
+ }
+
+/***********************************************************************
+// USHORT nBC = pBmp->GetBitCount();
+// pBmp->Scale( 0.02, 0.02 );
+// nBC = pBmp->GetBitCount();
+// SvMemoryStream aStream;
+ SvFileStream aStream( "d:\gh_small50.jpg", STREAM_STD_READ );
+
+ aStream.Seek( 0 );
+ xub_StrLen c;
+ String aOut;
+ String aDreierGruppe;
+ xub_StrLen cRest=0;
+ aStream >> c;
+ while ( !aStream.IsEof() )
+ {
+ cRest <<= 2; // Im ersten Durchgang egal, da immer 0
+ cRest |= ( c & 0x03 );
+ c >>= 2;
+ aDreierGruppe += aTr.GetChar( c );
+
+ if ( aDreierGruppe.Len() == 3 )
+ {
+ aOut += aTr.GetChar( cRest );
+ aOut += aDreierGruppe;
+ cRest = 0;
+ aDreierGruppe = "";
+ }
+ aStream >> c;
+ }
+ if ( aDreierGruppe.Len() )
+ {
+ aOut += cRest;
+ aOut += aDreierGruppe;
+ }
+ ::svt::OStringTransfer::CopyString( aOut );
+**********************************************************************************/
+
+ new StatementSlot( StatementList::pTTProperties->nSidPaste );
+ return;
+ }
+ case 7:
+ {
+ new StatementSlot( 20384 ); // FN_TOOL_ANKER_CHAR aus SW?
+ return;
+ }
+ }
+
+ // Wir sind am Ende
+
+#if OSL_DEBUG_LEVEL < 2
+ delete this;
+#endif
+}
+
+IMPL_LINK( ImplRemoteControl, IdleHdl, Application*, EMPTYARG )
+{
+ if( StatementList::pFirst )
+ {
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "* " );
+ #endif
+ GetpApp()->PostUserEvent( LINK( this, ImplRemoteControl, CommandHdl ) );
+ }
+ return 0;
+}
+
+
+
+IMPL_LINK( ImplRemoteControl, CommandHdl, Application*, EMPTYARG )
+{
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Entering CommandHdl\n" );
+#endif
+
+ if ( StatementList::MaybeResetSafeReschedule() )
+ {
+ StatementList::bExecuting = FALSE; // Wird nacher im SafeReschedule wieder zurckgesetzt
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "SafeReschedule has been reset\n" );
+#endif
+ }
+
+ if ( ( StatementList::bReadingCommands && !StatementList::bDying ) ||
+ ( StatementList::bExecuting ) ||
+ ( StatementList::IsInReschedule() ) )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ if ( StatementList::bReadingCommands )
+ m_pDbgWin->AddText( "Reading Commands " );
+ if ( StatementList::bExecuting )
+ m_pDbgWin->AddText( "In Execute " );
+ if ( StatementList::IsInReschedule() )
+ {
+ m_pDbgWin->AddText( "In Reschedule FocusWindow: 0x" );
+ m_pDbgWin->AddText(
+ String::CreateFromInt64(
+ sal::static_int_cast< sal_Int64 >(
+ reinterpret_cast< sal_IntPtr >(GetpApp()->GetFocusWindow())),
+ 16 ));
+ m_pDbgWin->AddText( " " );
+ }
+ m_pDbgWin->AddText( "Leaving CommandHdl\n" );
+#endif
+ return 0; // Garnicht erst irgendwelchen bldsinn machen
+ }
+
+ while( StatementList::pFirst && ( !StatementList::bReadingCommands || StatementList::bDying ) )
+ // Schleift hier bis Befehl nicht zurckkommt,
+ // Wird dann rekursiv ber IdleHdl und PostUserEvent aufgerufen.
+ {
+ m_bInsideExecutionLoop = TRUE;
+#ifdef TIMERIDLE
+ m_aIdleTimer.Stop();
+ m_aIdleTimer.Start();
+#endif
+ StatementList *pC = StatementList::pFirst;
+
+// MessBox MB( pMainWin, WB_DEF_OK|WB_OK, "Pause ...", "... und Weiter" );
+// MB.Execute();
+
+ if ( !StatementList::bCatchGPF )
+ {
+ if (!pC->CheckWindowWait() || !pC->Execute())
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Leaving CommandHdl\n" );
+#endif
+ return 0; // So dass die App nochmal ne chance bekommt
+ }
+ }
+ else
+ {
+ try
+ {
+ if (!pC->CheckWindowWait() || !pC->Execute())
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Leaving CommandHdl\n" );
+#endif
+ return 0; // So dass die App nochmal ne chance bekommt
+ }
+ }
+ catch( ... )
+ {
+ if ( !StatementFlow::bUseIPC )
+ throw; // aus der Hilfe heraus nicht leise abbrechen
+
+ try
+ {
+ ModelessDialog *pDlg = new ModelessDialog(NULL);
+ pDlg->SetOutputSizePixel(Size(150,0));
+ pDlg->SetText( String ( TTProperties::GetSvtResId( TT_GPF ) ) );
+ pDlg->Show();
+ DBG_ERROR("GPF");
+ pC->ReportError( GEN_RES_STR0( S_GPF_ABORT ) );
+ StatementList::bDying = TRUE;
+ while ( StatementList::pFirst ) // Kommandos werden bersprungen
+ StatementList::NormalReschedule();
+ delete pDlg;
+ }
+ catch ( ... )
+ {
+ Application::Quit();
+ }
+ Application::Quit();
+ }
+ }
+
+/* #i46293# remove reschedules
+ for (int xx = 1;xx < 20;xx++)
+ StatementList::NormalReschedule();
+*/
+ m_bInsideExecutionLoop = FALSE;
+ }
+
+ StatementList::aWindowWaitUId = SmartId(); // Warten rcksetzen, da handler sowieso verlassen wird
+
+/* if( StatementList::pFirst && !StatementList::bReadingCommands )
+ // Abfrage ntig, da andere CommandHdl aktiv sein knnen oder
+ // neue Commands gelesen werden knnen
+ {
+ delete StatementList::pFirst; // Lscht die gesamte Liste !!
+ StatementList::pFirst = NULL;
+ StatementList::pCurrent = NULL; // Nur zur Sicherheit, sollte hier sowieso NULL sein
+ }*/
+
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Leaving CommandHdl\n" );
+#endif
+ return 0;
+}
+
+IMPL_LINK( ImplRemoteControl, QueCommandsEvent, CommunicationLink*, pCL )
+{
+ SvStream *pTemp = pCL->GetServiceData();
+ QueCommands( SI_IPCCommandBlock, pTemp );
+ delete pTemp;
+ return 0;
+}
+
+BOOL ImplRemoteControl::QueCommands( ULONG nServiceId, SvStream *pIn )
+{
+// return TRUE;
+ USHORT nId;
+
+ if( !m_bIdleInserted )
+ {
+#ifdef TIMERIDLE
+ m_aIdleTimer.SetTimeoutHdl( LINK( this, ImplRemoteControl, IdleHdl ) );
+ m_aIdleTimer.SetTimeout( 500 );
+ m_aIdleTimer.Start();
+#else
+ GetpApp()->InsertIdleHdl( LINK( this, ImplRemoteControl, IdleHdl ), 1 );
+#endif
+ m_bIdleInserted = TRUE;
+ }
+
+
+ StatementList::bReadingCommands = TRUE;
+
+#if OSL_DEBUG_LEVEL > 1
+ if (!m_pDbgWin->bQuiet)
+ m_pDbgWin->Show();
+ m_pDbgWin->AddText( "Reading " );
+ m_pDbgWin->AddText( String::CreateFromInt64( nServiceId ) );
+ m_pDbgWin->AddText( " :\n" );
+#endif
+
+ if( nServiceId != SI_IPCCommandBlock && nServiceId != SI_DirectCommandBlock )
+ {
+ DBG_ERROR1( "Ungltiger Request :%i", (int)nServiceId );
+ return FALSE;
+ }
+
+ SCmdStream *pCmdStream = new SCmdStream(pIn);
+
+ pCmdStream->Read( nId );
+ while( !pIn->IsEof() )
+ {
+ switch( nId )
+ {
+ case SICommand:
+ {
+ new StatementCommand( pCmdStream ); // Wird im Konstruktor an Liste angehngt
+ break;
+ }
+ case SIControl:
+ case SIStringControl:
+ {
+ new StatementControl( pCmdStream, nId ); // Wird im Konstruktor an Liste angehngt
+ break;
+ }
+ case SISlot:
+ {
+ new StatementSlot( pCmdStream ); // Wird im Konstruktor an Liste angehngt
+ break;
+ }
+ case SIUnoSlot:
+ {
+ new StatementUnoSlot( pCmdStream ); // Wird im Konstruktor an Liste angehngt
+ break;
+ }
+ case SIFlow:
+ {
+ new StatementFlow( nServiceId, pCmdStream, this ); // Wird im Konstruktor an Liste angehngt
+ break;
+ }
+ default:
+ DBG_ERROR1( "Unbekannter Request Nr:%i", nId );
+ break;
+ }
+ if( !pIn->IsEof() )
+ pCmdStream->Read( nId );
+ else {
+ DBG_ERROR( "truncated input stream" );
+ }
+ }
+
+ StatementList::bReadingCommands = FALSE;
+
+ delete pCmdStream;
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Done Reading " );
+ m_pDbgWin->AddText( String::CreateFromInt64( nServiceId ) );
+ m_pDbgWin->AddText( " :\n" );
+#endif
+ if ( !m_bInsideExecutionLoop )
+ {
+#ifdef DEBUG
+ m_pDbgWin->AddText( "Posting Event for CommandHdl.\n" );
+#endif
+
+ GetpApp()->PostUserEvent( LINK( this, ImplRemoteControl, CommandHdl ) );
+ }
+#ifdef DEBUG
+ else
+ m_bInsideExecutionLoop = TRUE;
+#endif
+ return TRUE;
+} // BOOL ImplRemoteControl::QueCommands( ULONG nServiceId, SvStream *pIn )
+
+
+SvStream* ImplRemoteControl::GetReturnStream()
+{
+ SvStream* pTemp = pRetStream;
+ pRetStream = NULL;
+ return pTemp;
+}
+
+ImplRemoteControl::ImplRemoteControl()
+: m_bIdleInserted( FALSE )
+, m_bInsideExecutionLoop( FALSE )
+#if OSL_DEBUG_LEVEL > 1
+, m_pDbgWin(NULL)
+#endif
+, pRetStream(NULL)
+{
+#if OSL_DEBUG_LEVEL > 1
+ if ( RemoteControlCommunicationManager::GetPort() != TT_NO_PORT_DEFINED || RemoteControlCommunicationManager::nComm )
+ {
+ m_pDbgWin = new EditWindow( NULL, CUniString("Debug Window"), WB_VSCROLL );
+ m_pDbgWin->bQuiet = TRUE;
+ m_pDbgWin->Hide();
+ StatementList::m_pDbgWin = m_pDbgWin;
+ }
+#endif
+ if ( RemoteControlCommunicationManager::GetPort() == TT_NO_PORT_DEFINED )
+ pServiceMgr = NULL;
+ else
+ {
+#if OSL_DEBUG_LEVEL > 1
+ pServiceMgr = new RemoteControlCommunicationManager( m_pDbgWin );
+#else
+ pServiceMgr = new RemoteControlCommunicationManager();
+#endif
+ pServiceMgr->SetDataReceivedHdl( LINK( this, ImplRemoteControl, QueCommandsEvent ) );
+ pServiceMgr->StartCommunication();
+
+#ifdef DBG_UTIL
+ DbgSetPrintTestTool( TestToolDebugPrint );
+ // first change it, so we get the original Pointer
+ StatementCommand::pOriginal_osl_DebugMessageFunc = osl_setDebugMessageFunc( osl_TestToolDebugPrint );
+ if ( DbgGetErrorOut() != DBG_OUT_TESTTOOL )
+ osl_setDebugMessageFunc( StatementCommand::pOriginal_osl_DebugMessageFunc );
+#endif
+ }
+ if ( RemoteControlCommunicationManager::nComm )
+ new ExtraIdle( this ); // Setzt die Bearbeitung wieder auf
+}
+
+ImplRemoteControl::~ImplRemoteControl()
+{
+ if ( MacroRecorder::HasMacroRecorder() )
+ MacroRecorder::GetMacroRecorder()->SetActionRecord( FALSE ); // Will delete MacroRecorder if necessary
+
+
+ StatementList::bDying = TRUE;
+#if OSL_DEBUG_LEVEL > 1
+ if ( m_pDbgWin )
+ m_pDbgWin->bQuiet = TRUE; // Keine Ausgabe mehr im Debugwindow
+#endif
+
+#ifdef DBG_UTIL
+ // Zurcksetzen, so da nachfolgende Assertions nicht verloren gehen
+ DbgSetPrintTestTool( NULL );
+ osl_setDebugMessageFunc( StatementCommand::pOriginal_osl_DebugMessageFunc );
+#endif
+
+ if ( StatementList::pFirst )
+ { // Es sind noch Kommandos da, also auch eine Mglichkeit zurckzusenden.
+ StatementList::pFirst->ReportError( GEN_RES_STR0( S_APP_SHUTDOWN ) );
+ while ( StatementList::pFirst ) // Kommandos werden bersprungen
+ StatementList::NormalReschedule(); // Fehler zurckgeschickt
+ }
+
+ if ( pServiceMgr )
+ pServiceMgr->StopCommunication();
+
+ if ( GetTTSettings()->pDisplayHidWin )
+ {
+ delete (Window*)(GetTTSettings()->pDisplayHidWin);
+ GetTTSettings()->pDisplayHidWin = NULL;
+ }
+ if ( GetTTSettings()->pTranslateWin )
+ {
+ delete (Window*)(GetTTSettings()->pTranslateWin);
+ GetTTSettings()->pTranslateWin = NULL;
+ }
+#if OSL_DEBUG_LEVEL > 1
+ delete m_pDbgWin;
+#endif
+ if( m_bIdleInserted )
+ {
+#ifdef TIMERIDLE
+ m_aIdleTimer.Stop();
+#else
+ GetpApp()->RemoveIdleHdl( LINK( this, ImplRemoteControl, IdleHdl ) );
+#endif
+ m_bIdleInserted = FALSE;
+ }
+ delete pServiceMgr;
+}
+
+RemoteControl::RemoteControl()
+{
+ pImpl = new ImplRemoteControl;
+}
+
+RemoteControl::~RemoteControl()
+{
+ delete pImpl;
+}
+
+static ::osl::Mutex aMutex;
+static RemoteControl* pRemoteControl = 0;
+extern "C" void CreateRemoteControl()
+{
+ if ( !pRemoteControl )
+ {
+ ::osl::MutexGuard aGuard( aMutex );
+ if ( !pRemoteControl )
+ pRemoteControl = new RemoteControl();
+ }
+}
+
+extern "C" void DestroyRemoteControl()
+{
+ ::osl::MutexGuard aGuard( aMutex );
+ delete pRemoteControl;
+ pRemoteControl = 0;
+}
+
+extern "C" void CreateEventLogger()
+{
+ MacroRecorder::GetMacroRecorder()->SetActionLog();
+}
+
+extern "C" void DestroyEventLogger()
+{
+ MacroRecorder::GetMacroRecorder()->SetActionLog( FALSE ); // Will delete MacroRecorder if necessary
+}
+
diff --git a/automation/source/server/server.hxx b/automation/source/server/server.hxx
new file mode 100644
index 000000000000..099973bee6bb
--- /dev/null
+++ b/automation/source/server/server.hxx
@@ -0,0 +1,81 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _SERVER_HXX
+#define _SERVER_HXX
+
+/*#include <vos/thread.hxx>
+#ifndef _STD_NO_NAMESPACE
+namespace vos
+{
+#endif
+ class OAcceptorSocket;
+#ifndef _STD_NO_NAMESPACE
+}
+#endif
+*/
+
+#include "editwin.hxx"
+#include <automation/communi.hxx>
+
+#define TT_PORT_NOT_INITIALIZED ULONG(0xFFFFFFFF) // Eigentlich ja noch mehr, aber soll mal reichen
+#define TT_NO_PORT_DEFINED 0
+
+class RemoteControlCommunicationManager : public CommunicationManagerServerViaSocket
+{
+#if OSL_DEBUG_LEVEL > 1
+ EditWindow *m_pDbgWin;
+#endif
+ String aOriginalWinCaption;
+ String aAdditionalWinCaption;
+ BOOL bIsPortValid;
+ DECL_LINK( SetWinCaption, Timer* = NULL);
+ Timer* pTimer;
+ virtual void InfoMsg( InfoString aMsg );
+ static ULONG nPortIs;
+ static BOOL bQuiet;
+
+public:
+#if OSL_DEBUG_LEVEL > 1
+ RemoteControlCommunicationManager( EditWindow * pDbgWin );
+#else
+ RemoteControlCommunicationManager();
+#endif
+ ~RemoteControlCommunicationManager();
+
+ virtual void ConnectionOpened( CommunicationLink* pCL );
+ virtual void ConnectionClosed( CommunicationLink* pCL );
+
+ static ULONG GetPort();
+ static USHORT nComm;
+
+#if OSL_DEBUG_LEVEL > 1
+// virtual void DataReceived( CommunicationLink* pCL );
+#endif
+
+};
+
+#endif
diff --git a/automation/source/server/sta_list.cxx b/automation/source/server/sta_list.cxx
new file mode 100644
index 000000000000..7f346c298563
--- /dev/null
+++ b/automation/source/server/sta_list.cxx
@@ -0,0 +1,1223 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <tools/time.hxx>
+#include <vcl/splitwin.hxx>
+#include <vcl/wrkwin.hxx>
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+#include "statemnt.hxx"
+
+#ifndef _RETSRTM_HXX
+#include "retstrm.hxx"
+#endif
+#include "rcontrol.hxx"
+
+#if OSL_DEBUG_LEVEL > 1
+#include "editwin.hxx"
+#endif
+
+#include "profiler.hxx"
+#include <vcl/floatwin.hxx>
+#include <vcl/toolbox.hxx>
+
+// only needed for dynamic_cast in wintree
+#include <svtools/editbrowsebox.hxx>
+#include <svtools/valueset.hxx>
+#include <svtools/roadmap.hxx>
+#include <svtools/extensionlistbox.hxx>
+
+#define WINDOW_ANYTYPE WINDOW_BASE
+
+
+TTProfiler *StatementList::pProfiler = NULL;
+StatementList *StatementList::pFirst = NULL;
+BOOL StatementList::bReadingCommands = FALSE;
+BOOL StatementList::bIsInReschedule = FALSE;
+USHORT StatementList::nModalCount = 0;
+Window *StatementList::pLastFocusWindow = NULL;
+BOOL StatementList::bWasDragManager = FALSE;
+BOOL StatementList::bWasPopupMenu = FALSE;
+BOOL StatementList::bBasicWasRunning = FALSE;
+RetStream *StatementList::pRet = NULL;
+BOOL StatementList::IsError = FALSE;
+BOOL StatementList::bDying = FALSE;
+BOOL StatementList::bExecuting = FALSE;
+StatementList *StatementList::pCurrentProfileStatement = NULL;
+BOOL StatementList::bUsePostEvents = TRUE;
+#if OSL_DEBUG_LEVEL > 1
+EditWindow *StatementList::m_pDbgWin;
+#endif
+
+
+SmartId StatementList::aWindowWaitUId = SmartId();
+Window *StatementList::pWindowWaitPointer = NULL;
+SmartId StatementList::aWindowWaitOldHelpId = SmartId();
+SmartId StatementList::aWindowWaitOldUniqueId = SmartId();
+USHORT StatementList::nUseBindings = 0;
+
+SmartId StatementList::aSubMenuId1 = SmartId(); // Untermens bei PopupMenus
+SmartId StatementList::aSubMenuId2 = SmartId(); // erstmal 2-Stufig
+SmartId StatementList::aSubMenuId3 = SmartId(); // and now even 3 levels #i31512#
+SystemWindow *StatementList::pMenuWindow = NULL;
+TTProperties *StatementList::pTTProperties = NULL;
+
+USHORT StatementList::nMinTypeKeysDelay = 0; // Verzgerung der einzelnen Anschlge fr TypeKeys
+USHORT StatementList::nMaxTypeKeysDelay = 0;
+BOOL StatementList::bDoTypeKeysDelay = FALSE;
+
+Window* StatementList::pFirstDocFrame = NULL;
+
+BOOL StatementList::bIsSlotInExecute = FALSE;
+
+BOOL StatementList::bCatchGPF = TRUE;
+
+
+IMPL_GEN_RES_STR;
+
+
+static TTSettings* pTTSettings = NULL;
+
+TTSettings* GetTTSettings()
+{
+ if ( !pTTSettings )
+ {
+ pTTSettings = new TTSettings;
+
+ // DisplayHID
+ pTTSettings->pDisplayInstance = NULL;
+ pTTSettings->pDisplayHidWin = NULL;
+ pTTSettings->Old = NULL;
+ pTTSettings->Act = NULL;
+ pTTSettings->aOriginalCaption.Erase();
+
+ // Translate
+ pTTSettings->pTranslateWin = NULL;
+ pTTSettings->bToTop = TRUE;
+ }
+
+ return pTTSettings;
+}
+
+
+
+
+#define IS_WINP_CLOSING(pWin) (pWin->GetSmartHelpId().Matches( 4321 ) && pWin->GetSmartUniqueId().Matches( 1234 ))
+
+/*
+UniString GEN_RES_STR0( ULONG nResId ) { return ResString( nResId ); }
+UniString GEN_RES_STR1( ULONG nResId, const UniString &Text1 ) { return GEN_RES_STR0( nResId ).Append( ArgString( 1, Text1 ) ); }
+UniString GEN_RES_STR2( ULONG nResId, const UniString &Text1, const UniString &Text2 ) { return GEN_RES_STR1( nResId, Text1 ).Append( ArgString( 2, Text2 ) ); }
+UniString GEN_RES_STR3( ULONG nResId, const UniString &Text1, const UniString &Text2, const UniString &Text3 ) { return GEN_RES_STR2( nResId, Text1, Text2 ).Append( ArgString( 3, Text3 ) );}
+*/
+StatementList::StatementList()
+: nRetryCount(MAX_RETRIES)
+, bStatementInQue(FALSE)
+{
+ if (!pRet)
+ pRet = new RetStream; // so Spt wie mglich, aber dennoch Zentral und auf jeden Fall rechtzeitig, da pRet private ist.
+}
+
+void StatementList::InitProfile()
+{
+ if ( pProfiler )
+ {
+ if ( pProfiler->IsProfilingPerCommand() || pProfiler->IsPartitioning() )
+ pProfiler->StartProfileInterval( pCurrentProfileStatement != this );
+
+#if OSL_DEBUG_LEVEL > 1
+ if ( pCurrentProfileStatement != NULL && pCurrentProfileStatement != this )
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), CUniString("InitProfile von anderem Statement gerufen ohne SendProfile\n") );
+#endif
+ pCurrentProfileStatement = this;
+ }
+}
+
+void StatementList::SendProfile( String aText )
+{
+ if ( pProfiler )
+ {
+ if ( pCurrentProfileStatement == this )
+ {
+ if ( pProfiler->IsProfilingPerCommand() || pProfiler->IsPartitioning() )
+ pProfiler->EndProfileInterval();
+
+ if ( pProfiler->IsProfilingPerCommand() )
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetProfileLine( aText ) );
+
+ if ( pProfiler->IsPartitioning() )
+ pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileTime ), static_cast<comm_ULONG>(pProfiler->GetPartitioningTime()) ); // GetPartitioningTime() ULONG != comm_ULONG on 64bit
+ }
+
+ if ( pProfiler->IsAutoProfiling() )
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetAutoProfiling() );
+
+#if OSL_DEBUG_LEVEL > 1
+ if ( pCurrentProfileStatement == NULL )
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), CUniString("SendProfile ohne InitProfile\n") );
+#endif
+ pCurrentProfileStatement = NULL;
+ }
+}
+
+void StatementList::QueStatement(StatementList *pAfterThis)
+{
+ DBG_ASSERT(!bStatementInQue,"QueStatement fr bereits eingetragenes Statement -> Abgebrochen");
+ if ( bStatementInQue )
+ return;
+
+ bStatementInQue = TRUE;
+ if ( pAfterThis )
+ {
+ if ( pAfterThis->bStatementInQue )
+ {
+ pNext = pAfterThis->pNext;
+ pAfterThis->pNext = this;
+ }
+ else
+ { // pAfterThis not in que -> already dequed -> add to front of list
+ pNext = pFirst;
+ pFirst = this;
+ }
+ }
+ else // am Ende einfgen
+ {
+ pNext = NULL;
+ if( !pFirst )
+ pFirst = this;
+ else
+ {
+ StatementList *pList;
+ pList = pFirst;
+ while( pList->pNext )
+ pList = pList->pNext;
+ pList->pNext = this;
+ }
+ }
+}
+
+void StatementList::Advance()
+{ // pFirst ist static!
+ pFirst = pNext;
+ bStatementInQue = FALSE;
+ pNext = NULL;
+}
+
+
+StatementList::~StatementList()
+{
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Deleting \n" );
+#endif
+ DBG_ASSERT(!bReadingCommands,"Deleting commands while reading them!");
+}
+
+Window* StatementList::GetDocWin( USHORT nNr )
+{
+ Window* pBase = Application::GetFirstTopLevelWindow();
+
+ while ( pBase )
+ {
+ if ( IsDocWin( pBase ) )
+ {
+ if ( !nNr )
+ return pBase;
+ nNr--;
+ }
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return NULL;
+}
+
+USHORT StatementList::GetDocFrameCount()
+{
+ Window* pBase = Application::GetFirstTopLevelWindow();
+ USHORT nCount = 0;
+
+ while ( pBase )
+ {
+ if ( IsDocFrame( pBase ) )
+ nCount++;
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return nCount;
+}
+
+USHORT StatementList::GetDocWinCount()
+{
+ Window* pBase = Application::GetFirstTopLevelWindow();
+ USHORT nCount = 0;
+
+ while ( pBase )
+ {
+ if ( IsDocWin( pBase ) )
+ nCount++;
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return nCount;
+}
+
+Window* StatementList::SearchAllWin( Window *pBase, Search &aSearch, BOOL MaybeBase )
+{
+
+ if ( !pBase && !aSearch.HasSearchFlag( SEARCH_NO_TOPLEVEL_WIN ) )
+ {
+ BOOL bSearchFocusFirst = aSearch.HasSearchFlag( SEARCH_FOCUS_FIRST );
+
+ Window *pControl = NULL;
+ if ( bSearchFocusFirst )
+ {
+ // first test Parent of Focus Window
+ pBase = Application::GetFocusWindow();
+ if ( pBase )
+ {
+ DBG_ASSERT( WinPtrValid( pBase ), "GetFocusWindow is no valid WindowPointer" );
+ Window *pPParent = pBase;
+ while ( pPParent->GET_REAL_PARENT() )
+ pPParent = pPParent->GET_REAL_PARENT();
+
+// if ( !IsFirstDocFrame( pPParent ) )
+// {
+ // get overlap window. Will be dialog else document itself
+ pBase = pBase->GetWindow( WINDOW_OVERLAP );
+
+ // set flag to find disabled elements.
+ // This is better than an enabled one on another Window
+ aSearch.AddSearchFlags( SEARCH_FIND_DISABLED );
+
+ // search on current Dialog first
+ pControl = SearchAllWin( pBase, aSearch );
+
+ // search on current Document
+ if ( !pControl && pBase != pPParent )
+ pControl = SearchAllWin( pPParent, aSearch );
+
+ aSearch.RemoveSearchFlags( SEARCH_FIND_DISABLED );
+
+ if ( pControl )
+ return pControl;
+// }
+ }
+ }
+
+ pBase = Application::GetFirstTopLevelWindow();
+
+ // Skip FirstDocFrame
+// if ( bSearchFocusFirst && IsFirstDocFrame( pBase ) )
+// pBase = Application::GetNextTopLevelWindow( pBase );
+
+ while ( pBase )
+ {
+ pControl = SearchAllWin( pBase, aSearch );
+ if ( pControl )
+ return pControl;
+
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ // Skip FirstDocFrame
+// if ( bSearchFocusFirst && IsFirstDocFrame( pBase ) )
+// pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return NULL;
+ }
+
+
+ Window *pResult = NULL;
+ pResult = SearchClientWin( pBase, aSearch, MaybeBase );
+ if ( pResult )
+ return pResult;
+
+// if ( pBase->GetType() != WINDOW_BORDERWINDOW )
+// return NULL;
+
+ if ( !aSearch.HasSearchFlag( SEARCH_NOOVERLAP ) )
+ {
+ if ( pBase->GetWindow( WINDOW_FIRSTOVERLAP ) )
+ pResult = SearchAllWin( pBase->GetWindow( WINDOW_FIRSTOVERLAP ), aSearch );
+
+ if ( !pResult && pBase->GetWindow( WINDOW_NEXT ) )
+ pResult = SearchAllWin( pBase->GetWindow( WINDOW_NEXT ), aSearch );
+ }
+
+ return pResult;
+}
+
+
+Window* StatementList::SearchClientWin( Window *pBase, Search &aSearch, BOOL MaybeBase )
+{
+ if ( !pBase )
+ return NULL;
+
+ if ( MaybeBase && aSearch.IsWinOK( pBase ) )
+ return pBase;
+
+ Window *pResult = NULL;
+
+ USHORT i;
+ for( i = 0 ; i < pBase->GetChildCount() && !pResult; i++ )
+ pResult = SearchClientWin( pBase->GetChild(i), aSearch );
+
+ return pResult;
+}
+
+
+BOOL SearchUID::IsWinOK( Window *pWin )
+{
+ if ( aUId.Matches( pWin->GetSmartUniqueOrHelpId() ) )
+ {
+ if ( ( pWin->IsEnabled() || HasSearchFlag( SEARCH_FIND_DISABLED ) ) && pWin->IsVisible() )
+ return TRUE;
+ else
+ {
+ if ( !pMaybeResult )
+ pMaybeResult = pWin;
+ return FALSE;
+ }
+ }
+ else if ( pWin->GetType() == WINDOW_TOOLBOX ) // Buttons and Controls on ToolBox.
+ {
+ ToolBox *pTB = ((ToolBox*)pWin);
+ USHORT i;
+ for ( i = 0; i < pTB->GetItemCount() ; i++ )
+ {
+ if ( aUId.Matches( pTB->GetItemCommand(pTB->GetItemId( i )) ) || aUId.Matches( pTB->GetHelpId(pTB->GetItemId( i )) ) )
+ { // ID matches.
+ Window *pItemWin;
+ pItemWin = pTB->GetItemWindow( pTB->GetItemId( i ) );
+
+ if ( bSearchButtonOnToolbox && pTB->GetItemType( i ) == TOOLBOXITEM_BUTTON && !pItemWin )
+ { // We got a Control, see if its valid also.
+ // Same as above.
+ if ( ( pTB->IsEnabled() || HasSearchFlag( SEARCH_FIND_DISABLED ) ) && pTB->IsVisible() )
+ { // We got a Button, see if its valid also.
+ if ( ( pTB->IsItemEnabled(pTB->GetItemId(i)) || HasSearchFlag( SEARCH_FIND_DISABLED ) )
+ && pTB->IsItemVisible(pTB->GetItemId(i)) )
+ return TRUE; // We got a Button.
+ else
+ { // better a disabled Button on a valid ToolBox than an invalid ToolBox as below
+ pMaybeResult = pTB;
+ return FALSE;
+ }
+ }
+ else if ( !pMaybeResult )
+ { // invalid ToolBox
+ pMaybeResult = pTB;
+ return FALSE;
+ }
+ }
+ if ( pItemWin )
+ { // We got a Control, see if its valid also.
+ // Same as above.
+ if ( ( pItemWin->IsEnabled() || HasSearchFlag( SEARCH_FIND_DISABLED ) ) && pItemWin->IsVisible() )
+ {
+ if ( !pAlternateResult ) // only take the first found ItemWindow #i35365
+ pAlternateResult = pItemWin; // since we cannot return a Window here
+ return FALSE; // continue searching to prefer a window with the right ID #i32292
+ }
+ else if ( !pMaybeResult )
+ {
+ pMaybeResult = pItemWin;
+ return FALSE;
+ }
+ }
+ }
+ }
+ return FALSE;
+ }
+ else
+ return FALSE;
+}
+
+Window* StatementList::SearchTree( SmartId aUId ,BOOL bSearchButtonOnToolbox )
+{
+ SearchUID aSearch(aUId,bSearchButtonOnToolbox);
+
+ Window *pResult = SearchAllWin( NULL, aSearch );
+ if ( pResult )
+ return pResult;
+ else if ( aSearch.GetAlternateResultWin() )
+ return aSearch.GetAlternateResultWin();
+ else
+ return aSearch.GetMaybeWin();
+}
+
+
+BOOL SearchWinPtr::IsWinOK( Window *pWin )
+{
+ return pWin == pTest;
+}
+
+BOOL StatementList::WinPtrValid(Window *pTest)
+{
+ SearchWinPtr aSearch( pTest );
+ return SearchAllWin( NULL, aSearch ) != NULL;
+}
+
+
+BOOL SearchRT::IsWinOK( Window *pWin )
+{
+ if ( pWin->IsVisible() && pWin->GetType() == mnRT )
+ {
+ mnCount++;
+ if ( mnSkip )
+ {
+ mnSkip--;
+ return FALSE;
+ }
+ else
+ return TRUE;
+ }
+ return FALSE;
+}
+
+Window* StatementList::GetWinByRT( Window *pBase, WindowType nRT, BOOL MaybeBase, USHORT nSkip, BOOL bSearchAll )
+{
+ SearchRT aSearch( nRT, 0, nSkip );
+ if ( bSearchAll )
+ aSearch.AddSearchFlags( SEARCH_FOCUS_FIRST | SEARCH_FIND_DISABLED );
+ else
+ aSearch.AddSearchFlags( SEARCH_NOOVERLAP | SEARCH_NO_TOPLEVEL_WIN );
+
+ return SearchAllWin( pBase, aSearch, MaybeBase );
+}
+
+USHORT StatementList::CountWinByRT( Window *pBase, WindowType nRT, BOOL MaybeBase )
+{
+ SearchRT aSearch( nRT, SEARCH_NOOVERLAP | SEARCH_NO_TOPLEVEL_WIN, 0xFFFF );
+
+ SearchAllWin( pBase, aSearch, MaybeBase );
+ return aSearch.GetCount();
+}
+
+BOOL SearchScroll::IsWinOK( Window *pWin )
+{
+ if ( SearchRT::IsWinOK( pWin ) )
+ {
+ DBG_ASSERT( pWin->GetStyle() & ( WB_HORZ | WB_VERT ), "Nither WB_HORZ nor WB_VERT set on ScrollBar");
+ return (( pWin->GetStyle() & WB_HORZ ) && ( nDirection == CONST_ALIGN_BOTTOM ))
+ || (( pWin->GetStyle() & WB_VERT ) && ( nDirection == CONST_ALIGN_RIGHT ));
+ }
+ return FALSE;
+}
+
+ScrollBar* StatementList::GetScrollBar( Window *pBase, USHORT nDirection, BOOL MaybeBase )
+{
+ SearchScroll aSearch( nDirection, SEARCH_NOOVERLAP | SEARCH_NO_TOPLEVEL_WIN );
+
+ return (ScrollBar*)SearchAllWin( pBase, aSearch, MaybeBase );
+}
+
+
+BOOL SearchPopupFloatingWin::IsWinOK( Window *pWin )
+{
+ return pWin->IsVisible() && pWin->GetType() == WINDOW_FLOATINGWINDOW && ((FloatingWindow*)pWin)->IsInPopupMode();
+}
+
+Window* StatementList::GetPopupFloatingWin( BOOL MaybeBase )
+{
+ SearchPopupFloatingWin aSearch;
+
+ return SearchAllWin( NULL, aSearch, MaybeBase );
+}
+
+
+Menu* StatementList::GetMatchingMenu( Window* pWin, Menu* pBaseMenu )
+{
+ if ( pBaseMenu )
+ {
+ if ( pBaseMenu->GetWindow() == pWin )
+ return pBaseMenu;
+
+ USHORT i;
+// while ( pBaseMenu )
+// {
+ i = 0;
+ while ( i < pBaseMenu->GetItemCount() )
+ {
+ PopupMenu* pPopup = pBaseMenu->GetPopupMenu( pBaseMenu->GetItemId( i ) );
+ if ( pPopup && pPopup->GetWindow() )
+ {
+ if ( pPopup->GetWindow() == pWin )
+ return pPopup;
+ else
+ {
+ pBaseMenu = pPopup;
+ i = 0;
+ }
+ }
+ else
+ i++;
+ }
+// }
+ }
+ else
+ {
+ if ( PopupMenu::GetActivePopupMenu() )
+ {
+ Menu* pMenu = GetMatchingMenu( pWin, PopupMenu::GetActivePopupMenu() );
+ if ( pMenu )
+ return pMenu;
+ }
+
+ USHORT nSkip = 0;
+ Window* pMenuBarWin = NULL;
+ while ( (pMenuBarWin = GetWinByRT( NULL, WINDOW_MENUBARWINDOW, TRUE, nSkip++, TRUE )) != NULL )
+ {
+ Window* pParent = pMenuBarWin->GET_REAL_PARENT();
+ if ( pParent && pParent->GetType() == WINDOW_BORDERWINDOW && pParent->IsVisible() )
+ {
+ Menu* pMenu = NULL;
+ // find Menu of MenuBarWindow
+ USHORT nCount;
+ for ( nCount = 0 ; nCount < pParent->GetChildCount() ; nCount++ )
+ {
+ if ( pParent->GetChild( nCount )->GetType() == WINDOW_WORKWINDOW )
+ pMenu = ((WorkWindow*)(pParent->GetChild( nCount )))->GetMenuBar();
+ }
+ if ( pMenu )
+ {
+ // check for menu bar in Task Window
+ if ( pMenuBarWin == pWin )
+ return pMenu;
+
+ // search submenues
+ pMenu = GetMatchingMenu( pWin, pMenu );
+ if ( pMenu )
+ return pMenu;
+ }
+ }
+ }
+ }
+ return NULL;
+}
+
+
+BOOL SearchActive::IsWinOK( Window *pWin )
+{
+// return pWin->IsVisible() && ( (nRT == WINDOW_ANYTYPE && IsDialog(pWin) ) || pWin->GetType() == nRT ) && (nRT == WINDOW_FILEDIALOG || nRT == WINDOW_PATHDIALOG || nRT == WINDOW_PRINTDIALOG || nRT == WINDOW_PRINTERSETUPDIALOG || nRT == WINDOW_COLORDIALOG || ((SystemWindow*)pWin)->IsActive());
+ // only matches ResID due to problems with UNIX Window Managers
+ return pWin->IsVisible() && ( (nRT == WINDOW_ANYTYPE && IsDialog(pWin) ) || pWin->GetType() == nRT );
+}
+
+Window* StatementList::GetActive( WindowType nRT, BOOL MaybeBase )
+{
+ SearchActive aSearch( nRT );
+
+ return SearchAllWin( NULL, aSearch, MaybeBase );
+}
+
+BOOL SearchFadeSplitWin::IsWinOK( Window *pWin )
+{
+#if OSL_DEBUG_LEVEL > 1
+ if ( pWin->GetType() == WINDOW_SPLITWINDOW )
+ {
+ BOOL bResult;
+ WindowAlign aAlign;
+ bResult = pWin->IsVisible();
+ bResult = ((SplitWindow*)pWin)->IsFadeInButtonVisible();
+ bResult = ((SplitWindow*)pWin)->IsFadeOutButtonVisible();
+ bResult = ((SplitWindow*)pWin)->IsAutoHideButtonVisible();
+ aAlign = ((SplitWindow*)pWin)->GetAlign();
+ }
+#endif
+ return pWin->IsVisible() && ( pWin->GetType() == WINDOW_SPLITWINDOW )
+ && (((SplitWindow*)pWin)->IsFadeInButtonVisible() || ((SplitWindow*)pWin)->IsFadeOutButtonVisible() )
+ /*&& ((SplitWindow*)pWin)->IsAutoHideButtonVisible()*/ && ((SplitWindow*)pWin)->GetAlign() == nAlign;
+}
+
+Window* StatementList::GetFadeSplitWin( Window *pBase, WindowAlign nAlign, BOOL MaybeBase )
+{
+ SearchFadeSplitWin aSearch( nAlign );
+
+ if ( GetpApp()->GetAppWindow() == pBase && pBase->GetType() != WINDOW_BORDERWINDOW )
+ pBase = pBase->GetWindow( WINDOW_OVERLAP );
+
+ return SearchAllWin( pBase, aSearch, MaybeBase );
+}
+
+Window* StatementList::GetMouseWin()
+{
+ Window *pBase = Application::GetFirstTopLevelWindow();
+ Window *pControl = NULL;
+ while ( pBase )
+ {
+ Window *pBaseFrame = pBase->GetWindow( WINDOW_OVERLAP );
+
+ Point aP = pBaseFrame->GetPointerPosPixel();
+ pControl = pBaseFrame->FindWindow( aP );
+ if ( pControl )
+ return pControl;
+
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return NULL;
+}
+
+Window* StatementList::GetFocus( WindowType nRT, BOOL MaybeBase )
+{
+
+ if ( nRT == WINDOW_TABCONTROL )
+ {
+ Window *pResult = GetActive( WINDOW_TABDIALOG, MaybeBase);
+ for( USHORT i = 0 ; pResult && i < pResult->GetChildCount(); i++ )
+ if ( pResult->GetChild(i)->GetType() == nRT )
+ return pResult->GetChild(i);
+ }
+
+ return NULL;
+}
+
+Window* StatementList::GetAnyActive( BOOL MaybeBase )
+{
+ Window *pControl;
+
+ pControl = GetActive( WINDOW_MESSBOX, MaybeBase);
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_INFOBOX, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_WARNINGBOX, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_ERRORBOX, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_QUERYBOX, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_BUTTONDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_FILEDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_PATHDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_PRINTDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_PRINTERSETUPDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetActive( WINDOW_COLORDIALOG, MaybeBase);
+ }
+ if ( !pControl )
+ {
+ pControl = GetFocus( WINDOW_TABCONTROL, MaybeBase);
+ }
+
+ return pControl;
+}
+
+void StatementList::SetFirstDocFrame( Window* pWin )
+{
+ DBG_ASSERT( IsDocFrame( pWin ), "Non Document Frame set as first Document Frame" );
+ pFirstDocFrame = pWin;
+}
+
+Window* StatementList::GetFirstDocFrame()
+{
+
+ if ( pFirstDocFrame && !WinPtrValid( pFirstDocFrame ) )
+ pFirstDocFrame = NULL;
+ if ( pFirstDocFrame && !pFirstDocFrame->IsVisible() )
+ pFirstDocFrame = NULL;
+ if ( pFirstDocFrame && !IsDocFrame( pFirstDocFrame ) )
+ pFirstDocFrame = NULL;
+ if ( !pFirstDocFrame )
+ {
+ Window* pBase = Application::GetFirstTopLevelWindow();
+ while ( pBase && !IsDocFrame( pBase ) )
+ pBase = Application::GetNextTopLevelWindow( pBase );
+
+ if ( pBase )
+ SetFirstDocFrame( pBase );
+
+ if ( !pBase ) // find just something
+ {
+ pBase = Application::GetFirstTopLevelWindow();
+ while ( pBase && !pBase->IsVisible() )
+ pBase = Application::GetNextTopLevelWindow( pBase );
+
+ return pBase; // just for now, later we will hopefully have a Window
+ }
+ }
+ return pFirstDocFrame;
+}
+
+BOOL StatementList::IsFirstDocFrame( Window* pWin )
+{
+ return pWin && ( pWin == GetFirstDocFrame() || ( GetFirstDocFrame() && pWin == GetFirstDocFrame()->GetWindow( WINDOW_CLIENT ) ) ) && ( GetFirstDocFrame() && IsDocFrame( GetFirstDocFrame() ) );
+}
+
+MenuBar* StatementList::GetDocFrameMenuBar( Window* pWin )
+{
+ if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
+ {
+ USHORT nCount;
+ for ( nCount = 0 ; nCount < pWin->GetChildCount() ; nCount++ )
+ {
+ if ( pWin->GetChild( nCount )->GetType() == WINDOW_WORKWINDOW )
+ return ((WorkWindow*)(pWin->GetChild( nCount )))->GetMenuBar();
+ }
+ }
+ return NULL;
+}
+
+// a Doc Frame is a Document or the Backing Window
+BOOL StatementList::IsDocFrame( Window* pWin )
+{
+ if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
+ {
+ USHORT nCount;
+ BOOL bHasWorkWindow = FALSE;
+ BOOL bHasMenuBar = FALSE;
+ // #91724# it is now necessary to sort out the IME WIndow in Solaris as well.
+ // so now we check for existence of WINDOW_WORKWINDOW and newly for
+ // WINDOW_MENUBARWINDOW which contains the Menu and the close/min/max buttons
+ for ( nCount = 0 ; nCount < pWin->GetChildCount() ; nCount++ )
+ {
+ if ( pWin->GetChild( nCount )->GetType() == WINDOW_WORKWINDOW )
+ bHasWorkWindow = TRUE;
+ if ( pWin->GetChild( nCount )->GetType() == WINDOW_MENUBARWINDOW )
+ bHasMenuBar = TRUE;
+ }
+ return bHasWorkWindow && bHasMenuBar;
+ }
+ return FALSE;
+}
+
+// a Doc Win is a real document (not the Backing Window)
+BOOL StatementList::IsDocWin( Window* pWin )
+{
+ if ( pWin && IsDocFrame( pWin ) )
+ {
+ if ( GetDocFrameCount() != 1 )
+ return TRUE;
+ else
+ {
+ // check for the close button to see if we are the last one or only the backing Window
+ if ( GetDocFrameMenuBar( pWin ) )
+ return GetDocFrameMenuBar( pWin )->HasCloser();
+ }
+ }
+ return FALSE;
+}
+
+BOOL StatementList::IsIMEWin( Window* pWin ) // Input Window for CJK under Solaris
+{
+ if ( pWin && pWin->IsVisible() && pWin->GetType() == WINDOW_BORDERWINDOW )
+ {
+ USHORT nCount;
+ BOOL bHasWorkWindow = FALSE;
+ BOOL bHasWindow = FALSE;
+ // #91724# it is now necessary to sort out the IME WIndow in Solaris as well.
+ // so now we check for existence of WINDOW_WORKWINDOW and newly for
+ // WINDOW_WINDOW which contains the Menu and the close/min/max buttons
+ for ( nCount = 0 ; nCount < pWin->GetChildCount() ; nCount++ )
+ if ( pWin->GetChild( nCount )->GetType() == WINDOW_WORKWINDOW )
+ bHasWorkWindow = TRUE;
+ for ( nCount = 0 ; nCount < pWin->GetChildCount() ; nCount++ )
+ if ( pWin->GetChild( nCount )->GetType() == WINDOW_WINDOW )
+ bHasWindow = TRUE;
+ return bHasWorkWindow && !bHasWindow;
+ }
+ return FALSE;
+}
+
+UniString StatementList::Tree(Window *pBase, int Indent)
+{
+
+ String aReturn, aSep;
+ if ( !pBase )
+ {
+ aSep.AssignAscii("============================\n");
+ aSep.ConvertLineEnd();
+ pBase = Application::GetFirstTopLevelWindow();
+ while ( pBase )
+ {
+ Window *pBaseFrame = pBase->GetWindow( WINDOW_OVERLAP );
+
+ aReturn += aSep;
+ aReturn += Tree( pBaseFrame, Indent+1 );
+
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+ return aReturn;
+ }
+
+
+ aSep.AssignAscii("----------------------------\n");
+ aSep.ConvertLineEnd();
+
+ aReturn += ClientTree( pBase, Indent );
+
+ if ( pBase->GetWindow( WINDOW_FIRSTOVERLAP ) )
+ {
+ aReturn += aSep;
+ aReturn += Tree( pBase->GetWindow( WINDOW_FIRSTOVERLAP ), Indent+1 );
+ }
+
+ if ( pBase->GetWindow( WINDOW_NEXT ) )
+ {
+ aReturn += aSep;
+ aReturn += Tree( pBase->GetWindow( WINDOW_NEXT ), Indent );
+ }
+
+ return aReturn;
+}
+
+String StatementList::ClientTree(Window *pBase, int Indent)
+{
+#if OSL_DEBUG_LEVEL > 1
+#define WRITE(Text) { m_pDbgWin->AddText(Text); aReturn += Text; }
+#define WRITEc(Text) { m_pDbgWin->AddText(Text); aReturn.AppendAscii(Text); }
+#else
+#define WRITE(Text) { aReturn += Text; }
+#define WRITEc(Text) { aReturn.AppendAscii(Text); }
+#endif
+
+ String sIndent,aText,aReturn;
+ sIndent.Expand(sal::static_int_cast< xub_StrLen >(2*Indent));
+
+ aText = pBase->GetText();
+
+
+ UniString t1,t2;t1 = CUniString("\n"); t2 = CUniString("\\n");
+ aText.SearchAndReplaceAll(t1,t2 );
+
+ WRITE(sIndent);
+
+ if (pBase->IsDialog())
+ {
+ WRITEc("*(Dialog(TH))");
+ }
+ if (IsDialog( pBase ))
+ {
+ WRITEc("*(Dialog(GH))");
+ }
+ if (pBase->HasFocus())
+ {
+ WRITEc("*(Focus)");
+ }
+ if (!pBase->IsEnabled())
+ {
+ WRITEc("*(Disab)");
+ }
+ if (pBase->IsVisible())
+ {
+ WRITEc("*(Visible)");
+ }
+ if ( IsDialog(pBase) && ((SystemWindow*)pBase)->IsActive() )
+ {
+ WRITEc("*(Active)");
+ }
+ if ( pBase->GetStyle() & WB_CLOSEABLE )
+ {
+ WRITEc("*(Closable)");
+ }
+ if ( pBase->GetType() == WINDOW_DOCKINGWINDOW &&
+ ((((DockingWindow*)pBase)->GetFloatStyle()) & WB_CLOSEABLE) )
+ {
+ WRITEc("*(Closable Docking in Floatingstyle)");
+ }
+ if ( pBase->GetStyle() & WB_DOCKABLE )
+ {
+ WRITEc("*(Dockable)");
+ }
+ if ( pBase->GetType() == WINDOW_SPLITWINDOW &&
+ (((SplitWindow*)pBase)->IsFadeInButtonVisible() || ((SplitWindow*)pBase)->IsFadeOutButtonVisible()) )
+ {
+ WRITEc("*(FadeIn/Out)");
+ }
+ WRITEc("Text: ");
+ WRITE(aText);
+ WRITEc("\n");
+
+ WRITE(sIndent);
+ WRITEc("UId : ");
+ WRITE(UIdString(pBase->GetSmartUniqueOrHelpId()));
+ WRITEc(":0x");
+ WRITE(
+ String::CreateFromInt64(
+ sal::static_int_cast< sal_Int64 >(
+ reinterpret_cast< sal_IntPtr >(pBase)),
+ 16 ));
+ WRITEc(":");
+ WRITE(pBase->GetQuickHelpText());
+ WRITEc(":");
+ WRITE(pBase->GetHelpText());
+ WRITEc("\n");
+
+ WRITE(sIndent);
+ WRITEc("RTyp: ");
+ WRITE(MakeStringNumber(TypeKenn,pBase->GetType()));
+ if ( pBase->GetType() == WINDOW_CONTROL )
+ {
+ if ( dynamic_cast< svt::EditBrowseBox* >(pBase) )
+ WRITEc("/BrowseBox")
+ else if ( dynamic_cast< ValueSet* >(pBase) )
+ WRITEc("/ValueSet")
+ else if ( dynamic_cast< svt::ORoadmap* >(pBase) )
+ WRITEc("/RoadMap")
+ else if ( dynamic_cast< svt::IExtensionListBox* >(pBase) )
+ WRITEc("/ExtensionListBox")
+ else
+ WRITEc("/Unknown")
+ }
+ WRITEc("\n");
+
+ aReturn.ConvertLineEnd();
+ USHORT i;
+ for (i = 0 ; i < pBase->GetChildCount() ; i++)
+ {
+ aReturn += ClientTree(pBase->GetChild(i),Indent+1);
+ }
+ return aReturn;
+}
+
+
+BOOL StatementList::CheckWindowWait()
+{
+ static Time StartTime = Time(0L); // Abbruch wenn Fenster absolut nicht schliesst.
+ if ( StartTime == Time(0L) )
+ StartTime = Time();
+
+ if ( pWindowWaitPointer )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Waiting for Window to close ... " );
+#endif
+ if ( WinPtrValid(pWindowWaitPointer) && IS_WINP_CLOSING(pWindowWaitPointer) )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( aWindowWaitUId.GetText().AppendAscii(" Still Open. RType=") );
+ m_pDbgWin->AddText( String::CreateFromInt32( pWindowWaitPointer->GetType() ).AppendAscii("\n") );
+#endif
+
+ // Ist die Zeit schonn abgelaufen?
+ if ( StartTime + Time(0,0,10) < Time() ) // 10 Sekunden reichen wohl
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Close timed out. Going on!! " );
+#endif
+ pWindowWaitPointer->SetSmartHelpId(aWindowWaitOldHelpId, SMART_SET_ALL);
+ pWindowWaitPointer->SetSmartUniqueId(aWindowWaitOldUniqueId, SMART_SET_ALL);
+
+ aWindowWaitUId = SmartId();
+ pWindowWaitPointer = NULL;
+ StartTime = Time(0L);
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+ pWindowWaitPointer = NULL;
+ aWindowWaitUId = SmartId();
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Closed, Going on.\n" );
+#endif
+ }
+ StartTime = Time(0L);
+ return TRUE;
+}
+
+void StatementList::ReportError(String aMessage)
+{
+ ReportError ( SmartId(), aMessage );
+}
+
+void StatementList::ReportError(SmartId aUId, String aMessage)
+{
+ pRet->GenError ( aUId, aMessage );
+ IsError = TRUE;
+}
+
+void StatementList::ReportError(String aMessage, ULONG nWhatever)
+{
+ ReportError ( aMessage.AppendAscii(" ").Append(UniString::CreateFromInt32(nWhatever)));
+}
+
+void StatementList::DirectLog( ULONG nType, String aMessage )
+{
+ if ( pRet )
+ pRet->GenReturn( RET_DirectLoging, SmartId(nType), aMessage );
+}
+
+
+#define CALL_EVENT_WITH_NOTIFY( EventType, Event, WinP, Method ) \
+{ \
+ if ( StatementList::WinPtrValid( WinP ) ) \
+ { \
+ NotifyEvent aNEvt( EventType, WinP, &Event ); \
+ if ( !WinP->PreNotify( aNEvt ) ) \
+ WinP->Method( Event ); \
+ } \
+}
+
+void ImplKeyInput( Window* pWin, KeyEvent &aKEvnt, BOOL bForceDirect )
+{
+
+ if ( StatementList::bUsePostEvents && !bForceDirect )
+ {
+ if ( StatementList::WinPtrValid( pWin ) )
+ {
+ ULONG nID1;
+ ULONG nID2;
+ nID1 = Application::PostKeyEvent( VCLEVENT_WINDOW_KEYINPUT, pWin, &aKEvnt );
+ nID2 = Application::PostKeyEvent( VCLEVENT_WINDOW_KEYUP, pWin, &aKEvnt );
+ // wait after posting both events so deleting pWin will remove the second event also
+ ImplEventWait( nID1 );
+ ImplEventWait( nID2 );
+ }
+ }
+ else
+ {
+ if ( !Application::CallAccel( aKEvnt.GetKeyCode() ) )
+ {
+ CALL_EVENT_WITH_NOTIFY( EVENT_KEYINPUT, aKEvnt, pWin, KeyInput )
+
+ KeyCode aCode = aKEvnt.GetKeyCode();
+ if ( (aCode.GetCode() == KEY_CONTEXTMENU) || ((aCode.GetCode() == KEY_F10) && aCode.IsShift()) )
+ {
+ if ( StatementList::WinPtrValid( pWin ) )
+ {
+ Point aPos;
+ // simulate mouseposition at center of window
+ Size aSize = pWin->GetOutputSize();
+ aPos = Point( aSize.getWidth()/2, aSize.getHeight()/2 );
+
+ CommandEvent aEvent( aPos, COMMAND_CONTEXTMENU, FALSE );
+ ImplCommand( pWin, aEvent );
+ }
+ }
+ }
+
+ CALL_EVENT_WITH_NOTIFY( EVENT_KEYUP, aKEvnt, pWin, KeyUp )
+ }
+};
+
+void ImplMouseMove( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect )
+{
+ if ( StatementList::bUsePostEvents && !bForceDirect )
+ {
+ if ( StatementList::WinPtrValid( pWin ) )
+ {
+ ULONG nID;
+ nID = Application::PostMouseEvent( VCLEVENT_WINDOW_MOUSEMOVE, pWin, &aMEvnt );
+ ImplEventWait( nID );
+ }
+ }
+ else
+ {
+ // DragManager* pDragManager = DragManager::GetDragManager();
+ // if ( pDragManager )
+ // pDragManager->MouseMove( aMEvnt, pWin );
+ // else
+ if ( pWin->IsTracking() )
+ {
+ TrackingEvent aTEvt( aMEvnt );
+ pWin->Tracking( aTEvt );
+ }
+ else
+ CALL_EVENT_WITH_NOTIFY( EVENT_MOUSEMOVE, aMEvnt, pWin, MouseMove )
+ }
+};
+
+void ImplMouseButtonDown( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect )
+{
+ if ( StatementList::bUsePostEvents && !bForceDirect )
+ {
+ if ( StatementList::WinPtrValid( pWin ) )
+ {
+ ULONG nID;
+ nID = Application::PostMouseEvent( VCLEVENT_WINDOW_MOUSEBUTTONDOWN, pWin, &aMEvnt );
+ ImplEventWait( nID );
+ }
+ }
+ else
+ {
+ CALL_EVENT_WITH_NOTIFY( EVENT_MOUSEBUTTONDOWN, aMEvnt, pWin, MouseButtonDown )
+ }
+};
+
+void ImplMouseButtonUp( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect )
+{
+ if ( StatementList::bUsePostEvents && !bForceDirect )
+ {
+ if ( StatementList::WinPtrValid( pWin ) )
+ {
+ ULONG nID;
+ nID = Application::PostMouseEvent( VCLEVENT_WINDOW_MOUSEBUTTONUP, pWin, &aMEvnt );
+ ImplEventWait( nID );
+ }
+ }
+ else
+ {
+ // DragManager* pDragManager = DragManager::GetDragManager();
+ // if ( pDragManager )
+ // pDragManager->ButtonUp( aMEvnt, pWin );
+ // else
+ if ( pWin->IsTracking() )
+ {
+ // siehe #64693 die Position ist fr Toolboxen relevant
+ // #60020 Jetzt hoffentlich kein GPF mehr
+ // Zuerst Tracking beenden ohne Event
+ pWin->EndTracking( ENDTRACK_DONTCALLHDL );
+ // dann eigenen Event mit richtigem Maus-Event senden
+ TrackingEvent aTEvt( aMEvnt, ENDTRACK_END );
+ pWin->Tracking( aTEvt );
+ }
+ else
+ CALL_EVENT_WITH_NOTIFY( EVENT_MOUSEBUTTONUP, aMEvnt, pWin, MouseButtonUp )
+ }
+};
+
+void ImplEventWait( ULONG nID )
+{
+ while ( !Application::IsProcessedMouseOrKeyEvent( nID ) )
+ Application::Yield();
+}
+
+void ImplCommand( Window* pWin, CommandEvent &aCmdEvnt )
+{
+ CALL_EVENT_WITH_NOTIFY( EVENT_COMMAND, aCmdEvnt, pWin, Command )
+};
+
diff --git a/automation/source/server/statemnt.cxx b/automation/source/server/statemnt.cxx
new file mode 100644
index 000000000000..68ff61bbaa0d
--- /dev/null
+++ b/automation/source/server/statemnt.cxx
@@ -0,0 +1,6600 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#include <com/sun/star/frame/XFramesSupplier.hpp>
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/uieventslogger.hxx>
+
+#include <vcl/wintypes.hxx>
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#include <vcl/menubtn.hxx>
+#include <svtools/svtreebx.hxx>
+#include <svtools/brwbox.hxx>
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _DOCKWIN_HXX //autogen
+#include <vcl/dockwin.hxx>
+#endif
+#ifndef _FLOATWIN_HXX //autogen
+#include <vcl/floatwin.hxx>
+#endif
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _COMBOBOX_HXX //autogen
+#include <vcl/combobox.hxx>
+#endif
+#ifndef _MOREBTN_HXX //autogen
+#include <vcl/morebtn.hxx>
+#endif
+#ifndef _FIELD_HXX //autogen
+#include <vcl/field.hxx>
+#endif
+#ifndef _TOOLBOX_HXX //autogen
+#include <vcl/toolbox.hxx>
+#endif
+#include <vcl/tabctrl.hxx>
+#include <vcl/tabpage.hxx>
+#include <vcl/menu.hxx>
+#include <vcl/status.hxx>
+#include <svtools/prgsbar.hxx>
+#include <svtools/editbrowsebox.hxx>
+#include <vcl/splitwin.hxx>
+#include <vcl/group.hxx>
+#include <vcl/fixed.hxx>
+#include <vcl/wrkwin.hxx>
+#include <osl/diagnose.h>
+#include <vcl/wintypes.hxx>
+#include <svtools/valueset.hxx>
+#include <svtools/roadmap.hxx>
+#include <svl/poolitem.hxx>
+#include <svtools/extensionlistbox.hxx>
+// Hat keinen Includeschutz
+#include <svtools/svtdata.hxx>
+#include <tools/time.hxx>
+#include <svtools/stringtransfer.hxx>
+#include <tools/stream.hxx>
+#include <tools/fsys.hxx>
+#include <svl/stritem.hxx>
+#include <svtools/ttprops.hxx>
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+#include <basic/dispdefs.hxx>
+#include <vos/socket.hxx>
+#include <svl/pickerhistory.hxx>
+#include <com/sun/star/util/XCancellable.hpp>
+
+#include <sot/storage.hxx>
+#include <sot/storinfo.hxx>
+#include "statemnt.hxx"
+#include "scmdstrm.hxx"
+
+#ifndef _RETSRTM_HXX
+#include "retstrm.hxx"
+#endif
+
+#if OSL_DEBUG_LEVEL > 1
+#include "editwin.hxx"
+#endif
+#include "rcontrol.hxx"
+#include <automation/communi.hxx>
+#include "testtool.hxx"
+
+#include "profiler.hxx"
+
+#include "recorder.hxx"
+
+#include "testtool.hrc"
+#include <basic/svtmsg.hrc>
+
+#include <algorithm>
+
+
+using namespace com::sun::star::frame;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::util;
+using namespace com::sun::star::beans;
+using namespace svt;
+
+
+#ifndef SBX_VALUE_DECL_DEFINED
+#define SBX_VALUE_DECL_DEFINED
+SV_DECL_REF(SbxValue)
+#endif
+SV_IMPL_REF(SbxValue)
+
+CommunicationLink *StatementFlow::pCommLink = NULL;
+BOOL StatementFlow::bUseIPC = TRUE;
+BOOL StatementFlow::bSending = FALSE;
+ImplRemoteControl *StatementFlow::pRemoteControl = NULL;
+
+USHORT StatementCommand::nDirPos = 0;
+Dir *StatementCommand::pDir = NULL;
+pfunc_osl_printDebugMessage StatementCommand::pOriginal_osl_DebugMessageFunc = NULL;
+
+
+#define RESET_APPLICATION_TO_BACKING_WINDOW
+
+
+#define SET_WINP_CLOSING(pWin) \
+ pWindowWaitPointer = pWin; \
+ aWindowWaitUId = pControl->GetSmartUniqueOrHelpId(); \
+ aWindowWaitOldHelpId = pWin->GetSmartHelpId(); \
+ aWindowWaitOldUniqueId = pWin->GetSmartUniqueId(); \
+ pWin->SetSmartHelpId( SmartId(4321) ); \
+ pWin->SetSmartUniqueId( SmartId(1234) );
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+StatementFlow::StatementFlow( StatementList *pAfterThis, USHORT nArtP )
+: nArt(nArtP)
+, nParams(0)
+, nSNr1(0)
+, nLNr1(0)
+, aString1()
+, bBool1(FALSE)
+{
+ QueStatement( pAfterThis );
+}
+
+StatementFlow::StatementFlow( ULONG nServiceId, SCmdStream *pCmdIn, ImplRemoteControl *pRC )
+: nArt(0)
+, nParams(0)
+, nSNr1(0)
+, nLNr1(0)
+, aString1()
+, bBool1(FALSE)
+{
+ QueStatement( NULL );
+ bUseIPC = (nServiceId == SI_IPCCommandBlock);
+ pRemoteControl = pRC;
+ pCmdIn->Read( nArt );
+ pCmdIn->Read( nParams );
+
+ if( nParams & PARAM_USHORT_1 ) pCmdIn->Read( nSNr1 );
+ if( nParams & PARAM_ULONG_1 ) pCmdIn->Read( nLNr1 );
+ if( nParams & PARAM_STR_1 ) pCmdIn->Read( aString1 );
+ if( nParams & PARAM_BOOL_1 ) pCmdIn->Read( bBool1 ); // sollte nie auftreten!!
+
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Reading FlowControl: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nArt ) );
+ m_pDbgWin->AddText( " Params:" );
+ if( nParams & PARAM_USHORT_1 ) {m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nSNr1 ) );}
+ if( nParams & PARAM_ULONG_1 ) {m_pDbgWin->AddText( " l1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+ if( nParams & PARAM_STR_1 ) {m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+ if( nParams & PARAM_BOOL_1 ) {m_pDbgWin->AddText( " b2:" );m_pDbgWin->AddText( bBool1 ? "TRUE" : "FALSE" );}
+ m_pDbgWin->AddText( "\n" );
+#endif
+}
+
+void StatementFlow::SendViaSocket()
+{
+ if ( bSending )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "SendViaSocket called recursively. Aborted!!!\n" );
+#endif
+ DBG_ERROR("SendViaSocket called recursively. Aborted!!!");
+ return;
+ }
+ bSending = TRUE;
+ if ( pCommLink )
+ {
+ if ( !pCommLink->TransferDataStream( pRet->GetStream() ) ) // tritt ein Fehler auf, so wird sofort gelscht ...
+ pCommLink = NULL;
+ }
+ else
+ {
+ // Macht nix. Wenn das Basic nicht mehr da ist, ist sowiso alles egal
+ DBG_ERROR("Cannot send results to TestTool");
+ }
+
+ pRet->Reset();
+ bSending = FALSE;
+ IsError = FALSE;
+}
+
+BOOL StatementFlow::Execute()
+{
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Executing Flow: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nArt ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+ switch ( nArt )
+ {
+ case F_EndCommandBlock:
+ {
+
+ if ( !bUseIPC )
+ {
+ // bBool1 wurde im CTOR auf FALSE initialisiert
+ if ( !bBool1 ) // also erster Durchlauf
+ {
+ pRemoteControl->pRetStream = pRet->GetStream();
+ bBool1 = TRUE; // wurde im CTOR auf FALSE initialisiert
+ nRetryCount = nRetryCount * 4;
+ }
+ if ( pRemoteControl->pRetStream && (nRetryCount--) ) // also solange nicht abgeholt
+ {
+ return FALSE; // Bitte einmal vom Callstack runter
+ }
+ }
+
+ }
+ break;
+ }
+
+ Advance();
+ switch ( nArt )
+ {
+ case F_EndCommandBlock:
+ if ( !bUseIPC )
+ { // wird oben abgehandelt
+ pRet->Reset();
+ IsError = FALSE;
+ }
+ else
+ SendViaSocket();
+
+ break;
+
+ case F_Sequence:
+
+ pRet->GenReturn(RET_Sequence,nLNr1);
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Sending Sequence Nr: " );
+ m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );
+ m_pDbgWin->AddText( "\n" );
+ #endif
+
+ break;
+// case RET_:
+ default:
+ DBG_ERROR( "Unknown Flowcontrol" );
+ break;
+ }
+
+ delete this;
+ return TRUE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+// neue Hilfsfunktion, die stetig erweitert werden muss
+static short ImpGetRType( Window *pWin, SmartId aUId )
+{
+ ULONG nUId = aUId.GetNum(); // GetNum() is always zero if no num is defined
+ // GGGg gggg::gggg gggg::ggLL LLLl::llll llll
+ DBG_ASSERT( pWin, "missing Parameter" );
+ short nRT;
+ if( (nUId & 0xE0000000) == 0 ) // keine auto ID
+ nRT = C_NoType;
+ else {
+// if( (nUId & 0x1F) == 0 ) // globale Resource
+ if( (nUId & 0x1FF) == 0 ) // globale Resource GH: soweit ich das verstanden habe 1FF
+ nRT = (short)(C_TabPage - 1 + (nUId >> 29));
+ else
+ nRT = (short)((nUId & 0x00003E00) >> 9);
+ if ( nRT == C_TabPage ) // wegen TabDialog.UId = TabPage.UId
+ nRT = C_NoType;
+ else
+ {
+#ifndef DBG_UTIL
+ return nRT;
+#endif
+ }
+ }
+
+#ifdef DBG_UTIL
+ short n = nRT;
+#endif
+ WindowType eRT = pWin->GetType();
+ switch( eRT ) {
+ case WINDOW_WINDOW: nRT = C_Window ; break;
+
+ case WINDOW_TABCONTROL: nRT = C_TabControl ; break;
+ case WINDOW_RADIOBUTTON: nRT = C_RadioButton ; break;
+ case WINDOW_CHECKBOX: nRT = C_CheckBox ; break;
+ case WINDOW_TRISTATEBOX: nRT = C_TriStateBox ; break;
+ case WINDOW_EDIT: nRT = C_Edit ; break;
+ case WINDOW_MULTILINEEDIT: nRT = C_MultiLineEdit ; break;
+ case WINDOW_MULTILISTBOX: nRT = C_MultiListBox ; break;
+ case WINDOW_LISTBOX: nRT = C_ListBox ; break;
+ case WINDOW_COMBOBOX: nRT = C_ComboBox ; break;
+ case WINDOW_PUSHBUTTON: nRT = C_PushButton ; break;
+ case WINDOW_SPINFIELD: nRT = C_SpinField ; break;
+ case WINDOW_PATTERNFIELD: nRT = C_PatternField ; break;
+ case WINDOW_NUMERICFIELD: nRT = C_NumericField ; break;
+ case WINDOW_METRICFIELD: nRT = C_MetricField ; break;
+ case WINDOW_CURRENCYFIELD: nRT = C_CurrencyField ; break;
+ case WINDOW_DATEFIELD: nRT = C_DateField ; break;
+ case WINDOW_TIMEFIELD: nRT = C_TimeField ; break;
+ case WINDOW_IMAGERADIOBUTTON: nRT = C_ImageRadioButton ; break;
+ case WINDOW_NUMERICBOX: nRT = C_NumericBox ; break;
+ case WINDOW_METRICBOX: nRT = C_MetricBox ; break;
+ case WINDOW_CURRENCYBOX: nRT = C_CurrencyBox ; break;
+ case WINDOW_DATEBOX: nRT = C_DateBox ; break;
+ case WINDOW_TIMEBOX: nRT = C_TimeBox ; break;
+ case WINDOW_IMAGEBUTTON: nRT = C_ImageButton ; break;
+ case WINDOW_MENUBUTTON: nRT = C_MenuButton ; break;
+ case WINDOW_MOREBUTTON: nRT = C_MoreButton ; break;
+
+
+ case WINDOW_TABPAGE: nRT = C_TabPage; break;
+ case WINDOW_MODALDIALOG: nRT = C_ModalDlg; break;
+ case WINDOW_FLOATINGWINDOW: nRT = C_FloatWin; break;
+ case WINDOW_MODELESSDIALOG: nRT = C_ModelessDlg; break;
+ case WINDOW_WORKWINDOW: nRT = C_WorkWin; break;
+ case WINDOW_DOCKINGWINDOW: nRT = C_DockingWin; break;
+
+ case WINDOW_MESSBOX: nRT = C_MessBox; break;
+ case WINDOW_INFOBOX: nRT = C_InfoBox; break;
+ case WINDOW_WARNINGBOX: nRT = C_WarningBox; break;
+ case WINDOW_ERRORBOX: nRT = C_ErrorBox; break;
+ case WINDOW_QUERYBOX: nRT = C_QueryBox; break;
+#if 0 //ifndef VCL
+ case WINDOW_FILEDIALOG: nRT = C_FileDlg; break;
+ case WINDOW_PATHDIALOG: nRT = C_PathDlg; break;
+ case WINDOW_PRINTDIALOG: nRT = C_PrintDlg; break;
+ case WINDOW_PRINTERSETUPDIALOG: nRT = C_PrinterSetupDlg;break;
+ case WINDOW_COLORDIALOG: nRT = C_ColorDlg; break;
+#endif
+ case WINDOW_TABDIALOG: nRT = C_TabDlg; break;
+// case WINDOW_TABDIALOG: nRT = C_SingleTabDlg; break;
+
+ case WINDOW_PATTERNBOX: nRT = C_PatternBox; break;
+ case WINDOW_TOOLBOX: nRT = C_ToolBox; break;
+// Gibts nicht case WINDOW_VALUESET: nRT = C_ValueSet; break;
+ case WINDOW_CONTROL: nRT = C_Control; break;
+ case WINDOW_OKBUTTON: nRT = C_OkButton; break;
+ case WINDOW_CANCELBUTTON: nRT = C_CancelButton; break;
+ case WINDOW_BUTTONDIALOG: nRT = C_ButtonDialog; break;
+ case WINDOW_TREELISTBOX: nRT = C_TreeListBox; break;
+
+ case WINDOW_DIALOG: nRT = C_Dialog; break;
+ }
+#ifdef DBG_UTIL
+ // Die Werte n sind bei den WindowTypen nicht mehr vergeben, werden aber in der AutoID noch verwendet
+ // Sie werden jetzt durch den Typ nRT implementiert.
+ DBG_ASSERT( n == C_NoType || n == nRT
+ || ( n == C_ImageButton && nRT == C_PushButton )
+ || ( n == C_TriStateBox && nRT == C_CheckBox )
+ || ( n == C_ImageRadioButton && nRT == C_RadioButton )
+ , "error in algorithm" );
+#endif
+ return nRT;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+StatementSlot::StatementSlot( SCmdStream *pCmdIn )
+: pItemArr(NULL)
+{
+ QueStatement( NULL );
+ pCmdIn->Read( nFunctionId );
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Reading Slot: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nFunctionId ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+ pCmdIn->Read( nAnzahl );
+ if ( nAnzahl )
+ {
+ switch ( pCmdIn->GetNextType() )
+ {
+ case BinUSHORT: // use old calling method
+ {
+ nAnzahl++;
+ pItemArr = new SfxPoolItem*[nAnzahl];
+ for (USHORT i = 0 ; i+1 < nAnzahl ; i++)
+ pCmdIn->Read( pItemArr[i] );
+ pItemArr[nAnzahl-1] = NULL;
+ }
+ break;
+ case BinString: // new Method
+ {
+ aArgs.realloc(nAnzahl);
+ PropertyValue* pArg = aArgs.getArray();
+ for (USHORT i = 0 ; i < nAnzahl ; i++)
+ pCmdIn->Read( pArg[i] );
+ }
+ break;
+ }
+ }
+}
+
+// Constructor for UnoSlot
+StatementSlot::StatementSlot()
+: nAnzahl( 0 )
+, pItemArr(NULL)
+, nFunctionId( 0 )
+, bMenuClosed(FALSE)
+{}
+
+StatementSlot::StatementSlot( ULONG nSlot, SfxPoolItem* pItem )
+: pItemArr(NULL)
+, bMenuClosed(FALSE)
+{
+ QueStatement( NULL );
+ nFunctionId = USHORT(nSlot);
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Reading Slot: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nFunctionId ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+ if ( pItem )
+ {
+ nAnzahl = 2;
+ pItemArr = new SfxPoolItem*[2];
+ pItemArr[0] = pItem;
+ pItemArr[1] = NULL;
+ }
+ else
+ nAnzahl = 0;
+}
+
+StatementSlot::~StatementSlot()
+{
+ if (nAnzahl)
+ {
+ if ( pItemArr )
+ {
+ for (USHORT i = 0 ; i+1 < nAnzahl ; i++)
+ delete pItemArr[i];
+ delete[] pItemArr;
+ }
+
+ aArgs.realloc( 0 );
+ }
+}
+
+void StatementSlot::AddReferer()
+{
+ HACK( "only to test!" );
+// because slot 6102 /*SID_VERB_START*/ crashes when called with Property Referer
+// We return to the previous behavior (which was a bug realy) of not adding this Property to calls which have no properties at all
+// according to MBA most likely this Property can be removed at all and is maybe only needed for Slots with URLs
+ if ( !nAnzahl )
+ return;
+
+ PropertyValue* pArg;
+
+ nAnzahl++;
+ aArgs.realloc(nAnzahl);
+ pArg = aArgs.getArray();
+ pArg[nAnzahl-1].Name = rtl::OUString::createFromAscii("Referer");
+ pArg[nAnzahl-1].Value <<= ::rtl::OUString::createFromAscii("private:user");
+
+ nAnzahl++;
+ aArgs.realloc(nAnzahl);
+ pArg = aArgs.getArray();
+ pArg[nAnzahl-1].Name = rtl::OUString::createFromAscii("SynchronMode");
+ pArg[nAnzahl-1].Value <<= sal_Bool( TRUE );
+}
+
+class SlotStatusListener : public cppu::WeakImplHelper1< XStatusListener >
+{
+public:
+ SlotStatusListener();
+
+ // XStatusListener
+ virtual void SAL_CALL statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw (::com::sun::star::uno::RuntimeException);
+ // XEventListener
+ virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw (::com::sun::star::uno::RuntimeException);
+
+ // local Members
+ BOOL bDisposed;
+ BOOL bEnabled;
+};
+/*
+struct FeatureStateEvent : public ::com::sun::star::lang::EventObject
+ ::com::sun::star::util::URL FeatureURL;
+ ::rtl::OUString FeatureDescriptor;
+ sal_Bool IsEnabled;
+ sal_Bool Requery;
+ ::com::sun::star::uno::Any State;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > Source;
+*/
+
+SlotStatusListener::SlotStatusListener()
+: bDisposed( FALSE )
+, bEnabled( TRUE )
+{}
+
+// XStatusListener
+void SAL_CALL SlotStatusListener::statusChanged( const ::com::sun::star::frame::FeatureStateEvent& Event ) throw (::com::sun::star::uno::RuntimeException)
+{
+// DBG_ERROR1("FeatureURL: %s", ByteString( String( Event.FeatureURL.Complete ), RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+// DBG_ERROR1("FeatureDescriptor: %s", ByteString( String( Event.FeatureDescriptor ), RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+ bEnabled = Event.IsEnabled;
+// DBG_ASSERT( Event.IsEnabled, "Not enabled" );
+// DBG_ASSERT( !Event.Requery, "Requery" );
+}
+
+// XEventListener
+void SAL_CALL SlotStatusListener::disposing( const ::com::sun::star::lang::EventObject& ) throw (::com::sun::star::uno::RuntimeException)
+{
+ bDisposed = TRUE;
+}
+
+BOOL StatementSlot::Execute()
+{
+ if ( IsError )
+ {
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Skipping Slot: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nFunctionId ) );
+ m_pDbgWin->AddText( "\n" );
+ #endif
+
+ Advance();
+ delete this;
+ return TRUE;
+ }
+
+ InitProfile();
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Executing Slot: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nFunctionId ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+
+ PopupMenu *pPopup = NULL;
+ MenuBar *pMenuBar = NULL;
+ Menu *pMenu;
+
+ GetCurrentMenues( pPopup, pMenuBar, pMenu );
+ if ( pPopup )
+ {
+ if ( !bMenuClosed )
+ {
+ pPopup->EndExecute(0);
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ bMenuClosed = TRUE;
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Closed contextmenu\n" );
+#endif
+ return FALSE;
+ }
+ else if ( nRetryCount-- )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Waiting for contextmenu to close\n" );
+#endif
+ return FALSE;
+ }
+ else
+ ReportError( GEN_RES_STR0( S_MENU_NOT_CLOSING ) );
+ }
+
+ Advance();
+
+ if ( !IsError )
+ {
+ if ( ( nAnzahl == 0 && !getenv("OLDSLOTHANDLING") ) || aArgs.hasElements() )
+ { // trying to call slots via uno
+ AddReferer();
+ if ( !aUnoUrl.Len() )
+ aUnoUrl = CUniString("slot:").Append( String::CreateFromInt32( nFunctionId ) );
+ URL aTargetURL;
+ aTargetURL.Complete = aUnoUrl;
+ Reference < XFramesSupplier > xDesktop = Reference < XFramesSupplier >( ::comphelper::getProcessServiceFactory()->createInstance( CUniString("com.sun.star.frame.Desktop") ), UNO_QUERY );
+ Reference < XFrame > xFrame;
+
+ if ( xDesktop.is() )
+ {
+ xFrame = xDesktop->getActiveFrame();
+ if ( !xFrame.is() )
+ {
+ Reference < XFrames > xFrames;
+ xFrames = xDesktop->getFrames();
+ if ( xFrames.is() && xFrames->getCount() > 0 )
+ {
+ Any aFrame = xFrames->getByIndex( xFrames->getCount() -1 );
+ aFrame >>= xFrame;
+ }
+ }
+ if ( !xFrame.is() )
+ {
+ if ( GetFirstDocFrame() )
+ GetFirstDocFrame()->ToTop();
+ xFrame = xDesktop->getActiveFrame();
+ }
+ }
+
+ if ( xFrame.is() )
+ xDesktop = Reference < XFramesSupplier >( xFrame, UNO_QUERY );
+ else
+ xDesktop.clear();
+
+ while ( xDesktop.is() && xDesktop->getActiveFrame().is() )
+ {
+ xFrame = xDesktop->getActiveFrame();
+#if OSL_DEBUG_LEVEL > 1
+ ::rtl::OUString aName;
+ if ( xFrame.is() )
+ aName = xFrame->getName();
+#endif
+ xDesktop = Reference < XFramesSupplier >( xFrame, UNO_QUERY );
+ }
+
+ if ( !xFrame.is() )
+ ReportError( GEN_RES_STR1( S_UNO_URL_EXECUTE_FAILED_NO_FRAME, aTargetURL.Complete ) );
+ else
+ {
+ Reference < XURLTransformer > xTrans( ::comphelper::getProcessServiceFactory()->createInstance( CUniString("com.sun.star.util.URLTransformer" )), UNO_QUERY );
+ xTrans->parseStrict( aTargetURL );
+
+ Reference < XDispatchProvider > xProv( xFrame, UNO_QUERY );
+ Reference < XDispatch > xDisp;
+ while ( xProv.is() && !xDisp.is() )
+ {
+ xDisp = xProv->queryDispatch( aTargetURL, ::rtl::OUString(), 0 );
+ if ( !xDisp.is() )
+ {
+ xFrame = Reference < XFrame > ( xFrame->getCreator(), UNO_QUERY );
+ xProv = Reference < XDispatchProvider > ( xFrame, UNO_QUERY );
+ }
+ }
+
+ if ( xDisp.is() )
+ {
+ Reference < XStatusListener > xListener = ( XStatusListener* )new SlotStatusListener;
+ xDisp->addStatusListener( xListener, aTargetURL );
+ if ( static_cast< SlotStatusListener* >(xListener.get())->bEnabled )
+ {
+ if ( bIsSlotInExecute )
+ ReportError( GEN_RES_STR0( S_SLOT_IN_EXECUTE ) );
+ else
+ {
+ bIsSlotInExecute = TRUE;
+ xDisp->dispatch( aTargetURL, aArgs );
+ bIsSlotInExecute = FALSE;
+ }
+ }
+ else
+ ReportError( GEN_RES_STR1( S_UNO_URL_EXECUTE_FAILED_DISABLED, aTargetURL.Complete ) );
+ xDisp->removeStatusListener( xListener, aTargetURL );
+ }
+ else
+ ReportError( GEN_RES_STR1( S_UNO_URL_EXECUTE_FAILED_NO_DISPATCHER, aTargetURL.Complete ) );
+ }
+ }
+ else
+ {
+ DirectLog( S_QAError, GEN_RES_STR0( S_DEPRECATED ) );
+ if ( !pTTProperties )
+ pTTProperties = new TTProperties();
+
+ switch ( pTTProperties->ExecuteFunction( nFunctionId, pItemArr, EXECUTEMODE_DIALOGASYNCHRON | nUseBindings ) )
+ {
+ case TT_PR_ERR_NODISPATCHER:
+ {
+ ReportError( SmartId(nFunctionId), GEN_RES_STR0( S_SID_EXECUTE_FAILED_NO_DISPATCHER ) );
+ }
+ break;
+ case TT_PR_ERR_NOEXECUTE:
+ {
+ ReportError(SmartId(nFunctionId), GEN_RES_STR0( S_SID_EXECUTE_FAILED ) );
+ }
+ break;
+ }
+ }
+ }
+
+
+/* Neues Verfahren ab 334!
+ Neue Methode zum einstellen, da Modale Dialoge immer Asynchron aufgerufen werden
+ und echter Returnwert, ob Slot geklappt hat
+ und Testen ob Slot berhaupt durch UI aufgerufen werden kann */
+
+
+ SendProfile( SlotString( nFunctionId ) );
+ delete this;
+ return TRUE;
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+StatementUnoSlot::StatementUnoSlot(SCmdStream *pIn)
+{
+ QueStatement( NULL );
+
+ pIn->Read( aUnoUrl );
+
+#if OSL_DEBUG_LEVEL > 1
+ StatementList::m_pDbgWin->AddText( "UnoUrl:" );
+ StatementList::m_pDbgWin->AddText( aUnoUrl );
+ StatementList::m_pDbgWin->AddText( "\n" );
+#endif
+
+}
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+StatementCommand::StatementCommand( StatementList *pAfterThis, USHORT MethodId, USHORT Params, USHORT Nr1 )
+: nMethodId( MethodId )
+, aSmartMethodId()
+, nParams(Params)
+, nNr1(Nr1)
+, nNr2(0)
+, nNr3(0)
+, nNr4(0)
+, nLNr1(0)
+, aString1()
+, aString2()
+, bBool1(FALSE)
+, bBool2(FALSE)
+{
+ QueStatement( pAfterThis );
+ aSmartMethodId = SmartId( nMethodId );
+
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Directly adding Conmmand:" );
+ m_pDbgWin->AddText( " Methode: " );
+ m_pDbgWin->AddText( aSmartMethodId.GetText() );
+ m_pDbgWin->AddText( " Params:" );
+ if( nParams & PARAM_USHORT_1 ) {m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr1 ) );}
+ if( nParams & PARAM_USHORT_2 ) {m_pDbgWin->AddText( " n2:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr2 ) );}
+ if( nParams & PARAM_USHORT_3 ) {m_pDbgWin->AddText( " n3:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr3 ) );}
+ if( nParams & PARAM_USHORT_4 ) {m_pDbgWin->AddText( " n4:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr4 ) );}
+ if( nParams & PARAM_ULONG_1 ) {m_pDbgWin->AddText( " nl1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+ if( nParams & PARAM_STR_1 ) {m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+ if( nParams & PARAM_STR_2 ) {m_pDbgWin->AddText( " s2:" );m_pDbgWin->AddText( aString2 );}
+ if( nParams & PARAM_BOOL_1 ) {m_pDbgWin->AddText( " b1:" );m_pDbgWin->AddText( bBool1 ? "TRUE" : "FALSE" );}
+ if( nParams & PARAM_BOOL_2 ) {m_pDbgWin->AddText( " b2:" );m_pDbgWin->AddText( bBool2 ? "TRUE" : "FALSE" );}
+ m_pDbgWin->AddText( "\n" );
+#endif
+}
+
+
+StatementCommand::StatementCommand( SCmdStream *pCmdIn )
+: nMethodId(0)
+, aSmartMethodId()
+, nParams(0)
+, nNr1(0)
+, nNr2(0)
+, nNr3(0)
+, nNr4(0)
+, nLNr1(0)
+, aString1()
+, aString2()
+, bBool1(FALSE)
+, bBool2(FALSE)
+{
+ QueStatement( NULL );
+ pCmdIn->Read( nMethodId );
+ aSmartMethodId = SmartId( nMethodId );
+ pCmdIn->Read( nParams );
+
+ if( nParams & PARAM_USHORT_1 ) pCmdIn->Read( nNr1 );
+ if( nParams & PARAM_USHORT_2 ) pCmdIn->Read( nNr2 );
+ if( nParams & PARAM_USHORT_3 ) pCmdIn->Read( nNr3 );
+ if( nParams & PARAM_USHORT_4 ) pCmdIn->Read( nNr4 );
+ if( nParams & PARAM_ULONG_1 ) pCmdIn->Read( nLNr1 );
+ if( nParams & PARAM_STR_1 ) pCmdIn->Read( aString1 );
+ if( nParams & PARAM_STR_2 ) pCmdIn->Read( aString2 );
+ if( nParams & PARAM_BOOL_1 ) pCmdIn->Read( bBool1 );
+ if( nParams & PARAM_BOOL_2 ) pCmdIn->Read( bBool2 );
+
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Reading Conmmand:" );
+ m_pDbgWin->AddText( " Methode: " );
+ m_pDbgWin->AddText( aSmartMethodId.GetText() );
+ m_pDbgWin->AddText( " Params:" );
+ if( nParams & PARAM_USHORT_1 ) {m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr1 ) );}
+ if( nParams & PARAM_USHORT_2 ) {m_pDbgWin->AddText( " n2:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr2 ) );}
+ if( nParams & PARAM_USHORT_3 ) {m_pDbgWin->AddText( " n3:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr3 ) );}
+ if( nParams & PARAM_USHORT_4 ) {m_pDbgWin->AddText( " n4:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr4 ) );}
+ if( nParams & PARAM_ULONG_1 ) {m_pDbgWin->AddText( " nl1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+ if( nParams & PARAM_STR_1 ) {m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+ if( nParams & PARAM_STR_2 ) {m_pDbgWin->AddText( " s2:" );m_pDbgWin->AddText( aString2 );}
+ if( nParams & PARAM_BOOL_1 ) {m_pDbgWin->AddText( " b1:" );m_pDbgWin->AddText( bBool1 ? "TRUE" : "FALSE" );}
+ if( nParams & PARAM_BOOL_2 ) {m_pDbgWin->AddText( " b2:" );m_pDbgWin->AddText( bBool2 ? "TRUE" : "FALSE" );}
+ m_pDbgWin->AddText( "\n" );
+#endif
+
+ if ( nMethodId == RC_AppAbort )
+ {
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "*Deleting all Commands:\n" );
+ #endif
+ bReadingCommands = FALSE;
+ while ( StatementList::pFirst != this ) // Alles Lschen auer mich selbst
+ {
+ StatementList *pDeQue = StatementList::pFirst;
+ pDeQue->Advance();
+ delete pDeQue;
+ }
+ bReadingCommands = TRUE;
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "*Done deleting all Commands:\n" );
+ #endif
+ }
+
+}
+
+void StatementCommand::WriteControlData( Window *pBase, ULONG nConf, BOOL bFirst )
+{
+
+ if ( IsDialog(pBase) && !bFirst )
+ return;
+
+ if ( bFirst )
+ pRet->GenReturn ( RET_WinInfo, SmartId(), (comm_ULONG)nConf | DH_MODE_DATA_VALID, UniString(), TRUE );
+
+ { // Klammerung, so da der String nicht whrend der Rekursion bestehen bleibt
+ String aName;
+ BOOL bSkip = FALSE;
+
+ switch ( pBase->GetType() )
+ {
+ case WINDOW_RADIOBUTTON:
+ case WINDOW_CHECKBOX:
+ case WINDOW_TRISTATEBOX:
+ case WINDOW_PUSHBUTTON:
+ case WINDOW_OKBUTTON:
+ case WINDOW_CANCELBUTTON:
+ case WINDOW_IMAGERADIOBUTTON:
+ case WINDOW_IMAGEBUTTON:
+ case WINDOW_MENUBUTTON:
+ case WINDOW_MOREBUTTON:
+ case WINDOW_TABPAGE:
+ case WINDOW_MODALDIALOG:
+ case WINDOW_FLOATINGWINDOW:
+ case WINDOW_MODELESSDIALOG:
+ case WINDOW_WORKWINDOW:
+ case WINDOW_DOCKINGWINDOW:
+ case WINDOW_CONTROL:
+
+ case WINDOW_FILEDIALOG:
+ case WINDOW_PATHDIALOG:
+ case WINDOW_PRINTDIALOG:
+ case WINDOW_PRINTERSETUPDIALOG:
+ case WINDOW_COLORDIALOG:
+ case WINDOW_TABDIALOG:
+
+ case WINDOW_BUTTONDIALOG:
+
+ case WINDOW_MENUBARWINDOW:
+ aName = pBase->GetText().EraseAllChars('~');
+ break;
+
+ case WINDOW_EDIT:
+ case WINDOW_MULTILINEEDIT:
+ case WINDOW_MULTILISTBOX:
+ case WINDOW_LISTBOX:
+ case WINDOW_COMBOBOX:
+ case WINDOW_SPINFIELD:
+ case WINDOW_PATTERNFIELD:
+ case WINDOW_NUMERICFIELD:
+ case WINDOW_METRICFIELD:
+ case WINDOW_CURRENCYFIELD:
+ case WINDOW_DATEFIELD:
+ case WINDOW_TIMEFIELD:
+ case WINDOW_NUMERICBOX:
+ case WINDOW_METRICBOX:
+ case WINDOW_CURRENCYBOX:
+ case WINDOW_DATEBOX:
+ case WINDOW_TIMEBOX:
+ case WINDOW_PATTERNBOX:
+ case WINDOW_TOOLBOX:
+ aName = pBase->GetQuickHelpText();
+ break;
+
+ case WINDOW_MESSBOX:
+ case WINDOW_INFOBOX:
+ case WINDOW_WARNINGBOX:
+ case WINDOW_ERRORBOX:
+ case WINDOW_QUERYBOX:
+ aName = ((MessBox*)pBase)->GetMessText();
+ break;
+
+ default:
+ if ( pBase->GetSmartUniqueOrHelpId().Equals( SmartId() ) && !( nConf & DH_MODE_ALLWIN ) )
+ bSkip = TRUE;
+ }
+
+ if ( !bSkip )
+ {
+ if ( aName.Len() == 0 )
+ aName = pBase->GetQuickHelpText();
+ if ( aName.Len() == 0 )
+ aName = pBase->GetHelpText();
+ if ( aName.Len() == 0 )
+ aName = pBase->GetText();
+
+
+ String aTypeSuffix;
+ if ( pBase->GetType() == WINDOW_CONTROL )
+ {
+ if ( dynamic_cast< EditBrowseBox* >(pBase) )
+ aTypeSuffix.AppendAscii( "/BrowseBox", 10 );
+ else if ( dynamic_cast< ValueSet* >(pBase) )
+ aTypeSuffix.AppendAscii( "/ValueSet", 9 );
+ else if ( dynamic_cast< ORoadmap* >(pBase) )
+ aTypeSuffix.AppendAscii( "/RoadMap", 8 );
+ else if ( dynamic_cast< IExtensionListBox* >(pBase) )
+ aTypeSuffix.AppendAscii( "/ExtensionListBox" );
+ else
+ aTypeSuffix.AppendAscii( "/Unknown", 8 );
+ }
+
+ SmartId aId = pBase->GetSmartUniqueOrHelpId();
+ if ( aId.HasString() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( aId.GetStr() ), (comm_ULONG)pBase->GetType(),
+ TypeString(pBase->GetType()).Append(aTypeSuffix).AppendAscii(": ").Append(aName), FALSE );
+ if ( !aId.HasString() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( aId.GetNum() ), (comm_ULONG)pBase->GetType(),
+ TypeString(pBase->GetType()).Append(aTypeSuffix).AppendAscii(": ").Append(aName), FALSE );
+
+
+ if ( pBase->GetType() == WINDOW_TOOLBOX ) // Buttons und Controls auf Toolboxen.
+ {
+ ToolBox *pTB = ((ToolBox*)pBase);
+ USHORT i;
+ for ( i = 0; i < pTB->GetItemCount() ; i++ )
+ {
+ aName = String();
+// if ( aName.Len() == 0 )
+// aName = pTB->GetQuickHelpText();
+ if ( aName.Len() == 0 )
+ aName = pTB->GetHelpText( pTB->GetItemId( i ) );
+ if ( aName.Len() == 0 )
+ aName = pTB->GetItemText( pTB->GetItemId( i ) );
+
+ Window *pItemWin;
+ pItemWin = pTB->GetItemWindow( pTB->GetItemId( i ) );
+ if ( pTB->GetItemType( i ) == TOOLBOXITEM_BUTTON && ( !pItemWin || !pItemWin->IsVisible() ) )
+ {
+ if ( pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetItemCommand(pTB->GetItemId( i )) ), (comm_ULONG)WINDOW_BUTTON,
+ TypeString(WINDOW_BUTTON).AppendAscii(": ").Append(aName), FALSE );
+ if ( !pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetHelpId(pTB->GetItemId( i )) ), (comm_ULONG)WINDOW_BUTTON,
+ TypeString(WINDOW_BUTTON).AppendAscii(": ").Append(aName), FALSE );
+ }
+ else
+ {
+ if ( pItemWin )
+ {
+ if ( pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetItemCommand(pTB->GetItemId( i )) ), (comm_ULONG)pItemWin->GetType(),
+ TypeString(pItemWin->GetType()).AppendAscii(": ").Append(aName), FALSE );
+ if ( !pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetHelpId(pTB->GetItemId( i )) ), (comm_ULONG)pItemWin->GetType(),
+ TypeString(pItemWin->GetType()).AppendAscii(": ").Append(aName), FALSE );
+ USHORT ii;
+ for( ii = 0 ; ii < pItemWin->GetChildCount(); ii++ )
+ WriteControlData( pItemWin->GetChild(ii), nConf, FALSE );
+ }
+ else
+ {
+ if ( nConf & DH_MODE_ALLWIN )
+ {
+ String aToolBoxItemType;
+ switch ( pTB->GetItemType( i ) )
+ {
+ case TOOLBOXITEM_DONTKNOW:
+ aToolBoxItemType.AssignAscii("TOOLBOXITEM_DONTKNOW");
+ break;
+ case TOOLBOXITEM_BUTTON:
+ aToolBoxItemType.AssignAscii("TOOLBOXITEM_BUTTON");
+ break;
+ case TOOLBOXITEM_SPACE:
+ aToolBoxItemType.AssignAscii("TOOLBOXITEM_SPACE");
+ break;
+ case TOOLBOXITEM_SEPARATOR:
+ aToolBoxItemType.AssignAscii("TOOLBOXITEM_SEPARATOR");
+ break;
+ case TOOLBOXITEM_BREAK:
+ aToolBoxItemType.AssignAscii("TOOLBOXITEM_BREAK");
+ break;
+ default:
+ DBG_ERROR1( "Unknown TOOLBOXITEM %i", pTB->GetItemType( i ) );
+ }
+ if ( pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetItemCommand(pTB->GetItemId( i )) ), (comm_ULONG)WINDOW_BASE,
+ aToolBoxItemType.AppendAscii(": ").Append(aName), FALSE );
+ if ( !pTB->GetItemCommand(pTB->GetItemId( i )).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pTB->GetHelpId(pTB->GetItemId( i )) ), (comm_ULONG)WINDOW_BASE,
+ aToolBoxItemType.AppendAscii(": ").Append(aName), FALSE );
+ }
+ }
+ }
+ }
+
+ return; // ToolBox ist hier schon komplett abgehandelt.
+ }
+
+
+ if ( pBase->GetType() == WINDOW_BUTTONDIALOG // Buttons auf Buttondialogen mit ID
+ || pBase->GetType() == WINDOW_MESSBOX
+ || pBase->GetType() == WINDOW_INFOBOX
+ || pBase->GetType() == WINDOW_WARNINGBOX
+ || pBase->GetType() == WINDOW_ERRORBOX
+ || pBase->GetType() == WINDOW_QUERYBOX )
+ {
+ ButtonDialog *pBD = ((ButtonDialog*)pBase);
+ USHORT i;
+ for ( i = 0; i < pBD->GetButtonCount() ; i++ )
+ {
+ aName = String();
+ if ( aName.Len() == 0 )
+ aName = pBD->GetPushButton( pBD->GetButtonId(i) )->GetText();
+ String aID;
+ switch ( pBD->GetButtonId(i) )
+ {
+ case BUTTONID_OK:
+ aID.AssignAscii("Ok");
+ break;
+ case BUTTONID_CANCEL:
+ aID.AssignAscii("Cancel");
+ break;
+ case BUTTONID_YES:
+ aID.AssignAscii("Yes");
+ break;
+ case BUTTONID_NO:
+ aID.AssignAscii("No");
+ break;
+ case BUTTONID_RETRY:
+ aID.AssignAscii("Retry");
+ break;
+ case BUTTONID_HELP:
+ aID.AssignAscii("Help");
+ break;
+ default:
+ aID = UniString::CreateFromInt32( pBD->GetButtonId(i) );
+ break;
+ }
+
+ pRet->GenReturn ( RET_WinInfo, SmartId( aID ), (comm_ULONG)pBD->GetPushButton( pBD->GetButtonId(i) )->GetType(), // So da der Text angezeigt wird!
+ TypeString(pBD->GetPushButton( pBD->GetButtonId(i) )->GetType()).AppendAscii(": ").Append(aName)
+ .AppendAscii(" ButtonId = ").Append(aID), FALSE );
+ }
+
+ return; // ButtonDialog ist hier schon komplett abgehandelt.
+ }
+
+
+ Menu* pMenu = GetMatchingMenu( pBase );
+
+ if ( pMenu ) // Menus
+ {
+ USHORT i;
+ for ( i = 0; i < pMenu->GetItemCount() ; i++ )
+ {
+ USHORT nID = pMenu->GetItemId( i );
+
+ aName = String();
+ if ( aName.Len() == 0 )
+ aName = pMenu->GetHelpText( nID );
+ if ( aName.Len() == 0 )
+ aName = pMenu->GetItemText( nID );
+
+
+ if ( pMenu->GetItemType( i ) == MENUITEM_STRING || pMenu->GetItemType( i ) == MENUITEM_IMAGE || pMenu->GetItemType( i ) == MENUITEM_STRINGIMAGE || (nConf & DH_MODE_ALLWIN) )
+ {
+ String aMenuItemType;
+ switch ( pMenu->GetItemType( i ) )
+ {
+ case MENUITEM_STRING:
+ aMenuItemType.AssignAscii("MENUITEM_STRING");
+ break;
+ case MENUITEM_STRINGIMAGE:
+ aMenuItemType.AssignAscii("MENUITEM_STRINGIMAGE");
+ break;
+ case MENUITEM_IMAGE:
+ aMenuItemType.AssignAscii("MENUITEM_IMAGE");
+ break;
+ case MENUITEM_SEPARATOR:
+ aMenuItemType.AssignAscii("MENUITEM_SEPARATOR");
+ break;
+ case MENUITEM_DONTKNOW:
+ aMenuItemType.AssignAscii("MENUITEM_DONTKNOW");
+ break;
+ default:
+ DBG_ERROR1( "Unknown MENUITEM %i", pMenu->GetItemType( i ) );
+ }
+ if ( pMenu->GetItemCommand(nID).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( pMenu->GetItemCommand(nID) ), (comm_ULONG)0,
+ aMenuItemType.AppendAscii(": ").Append(aName), FALSE );
+ if ( !pMenu->GetItemCommand(nID).Len() || ( nConf & DH_MODE_ALLWIN ) )
+ pRet->GenReturn ( RET_WinInfo, SmartId( nID ), (comm_ULONG)0,
+ aMenuItemType.AppendAscii(": ").Append(aName), FALSE );
+ }
+ }
+
+ return; // Menu ist hier schon komplett abgehandelt.
+ }
+ }
+ }
+
+ for( USHORT i = 0 ; i < pBase->GetChildCount(); i++ )
+ WriteControlData( pBase->GetChild(i), nConf, FALSE );
+}
+
+class SysWinContainer : public WorkWindow
+{
+private:
+ ToolBox *pClientWin;
+ DockingWindow *pDock;
+public:
+ SysWinContainer( ToolBox *pClient );
+ ~SysWinContainer();
+ virtual void Resize();
+ virtual void Resizing( Size& rSize );
+};
+
+SysWinContainer::SysWinContainer( ToolBox *pClient )
+: WorkWindow( NULL, WB_BORDER | WB_SIZEMOVE | WB_CLOSEABLE )
+, pClientWin( pClient )
+{
+ pDock = new DockingWindow( this );
+ pClientWin->SetParent( pDock );
+ pClientWin->SetFloatingMode( FALSE );
+ SetText( pClient->GetText() );
+ SetPosPixel( Point( 1,40 ) );
+ Resize();
+ pDock->Show();
+ EnableAlwaysOnTop();
+ Show();
+}
+
+SysWinContainer::~SysWinContainer()
+{
+ delete pDock;
+}
+
+void SysWinContainer::Resize()
+{
+ Size aSize( GetOutputSizePixel() );
+ Resizing( aSize );
+// aSize = pClientWin->GetSizePixel();
+// aSize = pClientWin->CalcWindowSizePixel();
+ if ( aSize != GetSizePixel() )
+ {
+ SetOutputSizePixel( aSize );
+ pDock->SetSizePixel( aSize );
+ pClientWin->SetSizePixel( aSize );
+ }
+}
+
+void SysWinContainer::Resizing( Size& rSize )
+{
+ Size aSize;
+ Size aBestSize;
+ USHORT i;
+ BOOL bHasValue = FALSE;
+ ULONG nBestValue = 0;
+ ULONG nThisValue;
+ for ( i=1 ; i<=1 ; i++ )
+ {
+ aSize = pClientWin->CalcWindowSizePixel( i );
+ nThisValue = Abs( aSize.Width() - rSize.Width() ) + Abs( aSize.Height() - rSize.Height() );
+ if ( !bHasValue || ( nThisValue < nBestValue ) )
+ {
+ nBestValue = nThisValue;
+ aBestSize = aSize;
+ bHasValue = TRUE;
+ }
+ }
+ rSize = aBestSize;
+}
+
+
+class DisplayHidWin : public ToolBox
+{
+ Edit *pEdit;
+ Size aMinEditSize;
+ USHORT nLastItemID;
+ BOOL bIsDraging;
+ BOOL bIsPermanentDraging;
+ void SetDraging( BOOL bNewDraging );
+ Image *pShow, *pShow2;
+ BOOL bConfigChanged;
+ void EnableButtons( ULONG nConf );
+
+ ULONG nEventHookID;
+ static long stub_VCLEventHookProc( NotifyEvent& rEvt, void* pData )
+ {
+ return ((DisplayHidWin*)pData)->VCLEventHook( rEvt );
+ }
+
+ long VCLEventHook( NotifyEvent& rEvt );
+ Window *pLastMouseMoveWin;
+
+ SysWinContainer *pContainer;
+
+ // aborting by pressing shist twice
+ BOOL bOldShift;
+ Time aLatest;
+ USHORT nShiftCount;
+
+public:
+ DisplayHidWin();
+ ~DisplayHidWin();
+
+ virtual void Tracking( const TrackingEvent& rTEvt );
+ virtual void Click();
+ virtual void Select();
+ virtual void SetText( const XubString& rStr );
+
+ void SetDisplayText( const String &aNewText ){ pEdit->SetText(aNewText); }
+ String GetDisplayText() const { return pEdit->GetText(); }
+ BOOL IsDisplayTextModified() const { return pEdit->IsModified(); }
+ void ClearDisplayTextModified() const { pEdit->ClearModifyFlag(); }
+
+ void SetConfig( ULONG nConf );
+ ULONG GetConfig();
+
+ BOOL IsConfigChanged() { return bConfigChanged; }
+ void ConfigSent() { bConfigChanged = FALSE; }
+
+ BOOL IsSendData() { return GetItemState( TT_SEND_DATA ) == STATE_CHECK; }
+// BOOL IsAllWin() { return GetItemState( TT_ALLWIN ) == STATE_CHECK; }
+
+ BOOL IsDraging() { return bIsDraging; }
+
+ Window* LastMouseMoveWin() { return pLastMouseMoveWin; }
+};
+
+DisplayHidWin::DisplayHidWin()
+: ToolBox( StatementList::GetFirstDocFrame(), TTProperties::GetSvtResId(DisplayHidToolBox) )
+, bIsDraging( FALSE )
+, bIsPermanentDraging( FALSE )
+, pShow( NULL )
+, pShow2( NULL )
+, pLastMouseMoveWin( NULL )
+, bOldShift( 0 )
+, nShiftCount( 0 )
+{
+ SetOutStyle( TOOLBOX_STYLE_HANDPOINTER | TOOLBOX_STYLE_FLAT );
+ pEdit = new Edit( this, WB_CENTER | WB_BORDER );
+ aMinEditSize = GetItemRect( TT_OUTPUT ).GetSize();
+/**/ aMinEditSize=Size(20,20);
+ aMinEditSize.Width() *= 12;
+ pEdit->SetSizePixel( aMinEditSize );
+ pEdit->Show();
+ SetItemWindow( TT_OUTPUT, pEdit );
+ Resize();
+ pContainer = new SysWinContainer( this );
+ nEventHookID = Application::AddEventHook( stub_VCLEventHookProc, this );
+}
+
+DisplayHidWin::~DisplayHidWin()
+{
+ Application::RemoveEventHook( nEventHookID );
+ Hide(); // so GetFirstDocFrame won't return ourselves (needed for SOPlayer)
+ SetParent( StatementList::GetFirstDocFrame() );
+ delete pContainer;
+ delete pEdit;
+}
+
+void DisplayHidWin::SetDraging( BOOL bNewDraging )
+{
+ if ( !pShow )
+ pShow = new Image( GetItemImage( TT_SHOW ) );
+ if ( !pShow2 )
+ pShow2 = new Image( Bitmap( TTProperties::GetSvtResId( TT_SHOW2 ) ) );
+
+ if ( bNewDraging )
+ SetItemImage( TT_SHOW, *pShow2 );
+ else
+ SetItemImage( TT_SHOW, *pShow );
+
+ bIsDraging = bNewDraging;
+}
+
+void DisplayHidWin::EnableButtons( ULONG nConf )
+{
+ BOOL bSend = BOOL(nConf & DH_MODE_SEND_DATA);
+ EnableItem( TT_ALLWIN, bSend );
+ EnableItem( TT_KURZNAME, bSend );
+ EnableItem( TT_LANGNAME, bSend );
+}
+
+void DisplayHidWin::Tracking( const TrackingEvent& rTEvt )
+{
+// if ( nLastItemID == TT_SHOW && GetItemState( TT_SHOW ) == STATE_NOCHECK && ( rTEvt.IsTrackingEnded() || rTEvt.IsTrackingCanceled() ) )
+// SetDraging( FALSE );
+ if ( nLastItemID == TT_SHOW && GetItemState( TT_SHOW ) == STATE_NOCHECK )
+ EndTracking( ENDTRACK_CANCEL );
+ ToolBox::Tracking( rTEvt);
+}
+
+void DisplayHidWin::Click()
+{
+ nLastItemID = GetCurItemId();
+ if ( nLastItemID == TT_SHOW )
+ {
+ SetDraging( TRUE );
+ }
+ ToolBox::Click();
+}
+
+void DisplayHidWin::Select()
+{
+ if ( GetItemState( GetCurItemId() ) == STATE_NOCHECK )
+ {
+ SetItemState( GetCurItemId(), STATE_CHECK );
+ if ( GetCurItemId() == TT_SHOW )
+ {
+ bIsPermanentDraging = TRUE;
+ SetDraging( TRUE );
+ }
+ }
+ else
+ {
+ SetItemState( GetCurItemId(), STATE_NOCHECK );
+ if ( GetCurItemId() == TT_SHOW )
+ {
+ bIsPermanentDraging = FALSE;
+ SetDraging( FALSE );
+ }
+ }
+ if ( GetCurItemId() == TT_SEND_DATA )
+ {
+ EnableButtons( GetConfig() );
+ }
+}
+
+void DisplayHidWin::SetConfig( ULONG nConf )
+{
+ SetItemState( TT_KURZNAME, ( nConf & DH_MODE_KURZNAME ) ? STATE_CHECK : STATE_NOCHECK );
+ SetItemState( TT_LANGNAME, ( nConf & DH_MODE_LANGNAME ) ? STATE_CHECK : STATE_NOCHECK );
+ SetItemState( TT_ALLWIN, ( nConf & DH_MODE_ALLWIN ) ? STATE_CHECK : STATE_NOCHECK );
+ SetItemState( TT_SEND_DATA, ( nConf & DH_MODE_SEND_DATA ) ? STATE_CHECK : STATE_NOCHECK );
+ EnableButtons( nConf );
+}
+
+ULONG DisplayHidWin::GetConfig()
+{
+ ULONG nConf = 0;
+ if ( GetItemState( TT_KURZNAME ) == STATE_CHECK )
+ nConf |= DH_MODE_KURZNAME;
+ if ( GetItemState( TT_LANGNAME ) == STATE_CHECK )
+ nConf |= DH_MODE_LANGNAME;
+ if ( GetItemState( TT_ALLWIN ) == STATE_CHECK )
+ nConf |= DH_MODE_ALLWIN;
+ if ( IsSendData() )
+ nConf |= DH_MODE_SEND_DATA;
+
+ return nConf;
+}
+
+void DisplayHidWin::SetText( const XubString& rStr )
+{
+ pContainer->SetText( rStr );
+}
+
+long DisplayHidWin::VCLEventHook( NotifyEvent& rEvt )
+{
+ if ( EVENT_MOUSEMOVE == rEvt.GetType() )
+ {
+ pLastMouseMoveWin = rEvt.GetWindow();
+
+ // check if abort with pressing shift twice
+ MouseEvent* pMEvt = (MouseEvent*)rEvt.GetMouseEvent();
+
+ if ( ( pMEvt->IsShift() && !bOldShift ) ) // Shift pressed
+ {
+ if ( aLatest < Time() )
+ {
+ nShiftCount = 0;
+ aLatest = Time()+Time( 0, 0, 0, 50 );
+ }
+ nShiftCount++;
+ }
+ if ( ( !pMEvt->IsShift() && bOldShift ) ) // Shift released
+ {
+ nShiftCount++;
+ if ( nShiftCount == 4 && aLatest > Time() )
+ {
+ bIsPermanentDraging = FALSE;
+ SetDraging( FALSE );
+ SetItemState( TT_SHOW, STATE_NOCHECK );
+ }
+ }
+ bOldShift = pMEvt->IsShift();
+ }
+ if ( ( ( EVENT_MOUSEBUTTONUP == rEvt.GetType() && rEvt.GetMouseEvent()->GetButtons() == MOUSE_LEFT) || ( EVENT_MOUSEMOVE == rEvt.GetType() && !rEvt.GetMouseEvent()->GetButtons() ) )
+ && IsDraging() && !bIsPermanentDraging )
+ SetDraging( FALSE );
+ return 0;
+}
+
+
+BOOL StatementCommand::DisplayHID()
+{
+ // Return TRUE -> reexecute command
+
+ if ( !bBool2 ) // Wird auf FALSE initialisiert
+ {
+ bBool2 = TRUE; // Wir sind initialisiert.
+ GetTTSettings()->pDisplayInstance = this; // Und haben die Macht (Alle anderen beenden sich)
+
+ if ( !(nParams & PARAM_ULONG_1) )
+ {
+ if( GetTTSettings()->pDisplayHidWin ) // Nichts verndern
+ nLNr1 = GetTTSettings()->pDisplayHidWin->GetConfig();
+ else // Beim ersten Aufruf wollen wir alles richtig einstellen
+ nLNr1 = DH_MODE_KURZNAME | DH_MODE_LANGNAME;
+
+ if( ((nParams & PARAM_BOOL_1) && bBool1) )
+ nLNr1 |= DH_MODE_SEND_DATA;
+ else
+ nLNr1 &= ( ~DH_MODE_SEND_DATA );
+ }
+
+ if ( GetTTSettings()->pDisplayHidWin )
+ GetTTSettings()->pDisplayHidWin->SetConfig( nLNr1 );
+ }
+
+ if ( GetTTSettings()->pDisplayInstance && GetTTSettings()->pDisplayInstance != this )
+ {
+ DBG_WARNING("Mehrere DisplayHID am laufen");
+ return FALSE; // Noch eine andere Instanz macht das gleiche!
+ }
+
+ if ( !GetTTSettings()->pDisplayHidWin )
+ {
+ GetTTSettings()->pDisplayHidWin = new DisplayHidWin();
+ GetTTSettings()->aOriginalCaption = GetTTSettings()->pDisplayHidWin->GetText();
+ GetTTSettings()->pDisplayHidWin->Show();
+ if ( bBool1 )
+ nLNr1 |= DH_MODE_SEND_DATA;
+ GetTTSettings()->pDisplayHidWin->SetConfig( nLNr1 );
+
+ GetTTSettings()->Old = NULL;
+ GetTTSettings()->Act = NULL;
+ GetTTSettings()->pDisplayInstance = this;
+ }
+ else
+ {
+ GetTTSettings()->pDisplayHidWin->GetWindow( WINDOW_OVERLAP )->Enable( TRUE, TRUE );
+ GetTTSettings()->pDisplayHidWin->GetWindow( WINDOW_OVERLAP )->EnableInput( TRUE, TRUE );
+ }
+
+
+ if ( GetTTSettings()->pDisplayHidWin->IsVisible() && !bDying )
+ {
+
+ if ( GetTTSettings()->pDisplayHidWin->IsDraging() )
+ {
+
+
+#define HIGHLIGHT_WIN( WinPtr ) \
+ { \
+ Color aLineColMem = WinPtr->GetLineColor(); \
+ WinPtr->SetLineColor( Color( COL_WHITE ) ); \
+ Color aFillColMem = WinPtr->GetFillColor(); \
+ WinPtr->SetFillColor( Color( COL_LIGHTRED ) ); \
+ RasterOp aROp = WinPtr->GetRasterOp(); \
+ WinPtr->SetRasterOp( ROP_XOR ); \
+ Size aSz = WinPtr->PixelToLogic( WinPtr->GetSizePixel() );\
+ ULONG nMaxCornerRadius = WinPtr->PixelToLogic( Point( 80, 0 ) ).X();\
+ ULONG iCorner = std::max ((ULONG) 8, (ULONG) std::min( nMaxCornerRadius, (ULONG) std::min((ULONG) (aSz.Width() / 6), (ULONG)(aSz.Height() / 6))));\
+ WinPtr->DrawRect(Rectangle(Point(),aSz), iCorner, iCorner);\
+ WinPtr->SetLineColor( aLineColMem ); \
+ WinPtr->SetFillColor( aFillColMem ); \
+ WinPtr->SetRasterOp( aROp ); \
+ }
+
+
+#define SET_WIN( WinPtr ) \
+ if ( StatementList::WinPtrValid(WinPtr) ) \
+ { \
+ HIGHLIGHT_WIN ( WinPtr ); \
+ }
+
+#define RESET_WIN( WinPtr ) \
+ if ( StatementList::WinPtrValid(WinPtr) ) \
+ { \
+ WinPtr->Invalidate( INVALIDATE_NOTRANSPARENT ); \
+ WinPtr->Update(); \
+ }
+
+
+ GetTTSettings()->Old = GetTTSettings()->Act;
+// GetTTSettings()->Act = GetMouseWin();
+ GetTTSettings()->Act = GetTTSettings()->pDisplayHidWin->LastMouseMoveWin();
+
+ if ( !StatementList::WinPtrValid ( GetTTSettings()->Old ) )
+ GetTTSettings()->Old = NULL;
+ if ( !StatementList::WinPtrValid ( GetTTSettings()->Act ) )
+ GetTTSettings()->Act = NULL;
+
+ if ( GetTTSettings()->Act && GetTTSettings()->Act->GetType() == WINDOW_BORDERWINDOW )
+ GetTTSettings()->Act = GetTTSettings()->Act->GetWindow( WINDOW_CLIENT );
+
+ if ( GetTTSettings()->Act != GetTTSettings()->Old )
+ {
+ if ( GetTTSettings()->Old )
+ {
+ RESET_WIN(GetTTSettings()->Old);
+ }
+ if ( GetTTSettings()->Act )
+ {
+ SET_WIN(GetTTSettings()->Act);
+ GetTTSettings()->pDisplayHidWin->SetDisplayText(GetTTSettings()->Act->GetSmartUniqueOrHelpId().GetText().AppendAscii(" WinType: ")
+ .Append(UniString::CreateFromInt64(GetTTSettings()->Act->GetType())).AppendAscii(" ").Append(GetTTSettings()->Act->GetText()));
+ if ( GetTTSettings()->Act && !GetTTSettings()->Act->GetSmartUniqueId().Equals( GetTTSettings()->Act->GetSmartHelpId() ) )
+ GetTTSettings()->pDisplayHidWin->SetText(UniString( TTProperties::GetSvtResId( TT_ALTERNATE_CAPTION ) ).Append(GetTTSettings()->Act->GetSmartHelpId().GetText()));
+ else
+ GetTTSettings()->pDisplayHidWin->SetText( GetTTSettings()->aOriginalCaption );
+ }
+ else
+ GetTTSettings()->pDisplayHidWin->SetDisplayText(CUniString("Kein Window/Control gefunden"));
+ }
+ else if ( GetTTSettings()->Act )
+ {
+// SET_WIN(GetTTSettings()->Act);
+ if ( GetTTSettings()->pDisplayHidWin->IsDisplayTextModified() && GetTTSettings()->pDisplayHidWin->GetDisplayText().Len() > 0 )
+ {
+ GetTTSettings()->Act->SetSmartUniqueId( SmartId( GetTTSettings()->pDisplayHidWin->GetDisplayText().ToInt32() ) );
+ GetTTSettings()->pDisplayHidWin->ClearDisplayTextModified();
+ }
+ }
+/* if ( Application::GetLastInputInterval() > 5000 ) // 5 Sekunden lang nix geschehen
+ {
+ GetTTSettings()->pDisplayHidWin->ToTop( TOTOP_NOGRABFOCUS );
+ }
+*/
+ if ( GetTTSettings()->pDisplayHidWin->IsSendData() /*&& bBool2*/ && GetTTSettings()->Act )
+ {
+ if ( !StatementFlow::bSending )
+ { // Normalerweise syncronisierung ber Protokoll. Hier ist das aber asyncron!!!
+ WriteControlData( GetTTSettings()->Act, GetTTSettings()->pDisplayHidWin->GetConfig() );
+ new StatementFlow( this, F_EndCommandBlock ); // Kommando zum Senden erzeugen und in que eintragen
+ }
+ }
+ } //if ( GetTTSettings()->pDisplayHidWin->IsDraging() )
+ else
+ {
+ if ( GetTTSettings()->Act )
+ {
+ RESET_WIN(GetTTSettings()->Act);
+ GetTTSettings()->Act = NULL;
+ }
+ }
+
+ if ( pFirst == this ) // Sollte immer so sein, aber besser isses
+ if ( pNext ) // Befehle warten auf Ausfhrung
+ { // An Ende neu einsortieren
+ Advance();
+ QueStatement( NULL );
+ }
+// { // Ersten und 2. austauschen.
+// pFirst = pNext;
+// pNext = pNext->pNext;
+// pFirst->pNext = this;
+// }
+
+ }
+ else
+ {
+ delete GetTTSettings()->pDisplayHidWin;
+ GetTTSettings()->pDisplayHidWin = NULL;
+ GetTTSettings()->pDisplayInstance = NULL;
+ }
+
+ return GetTTSettings()->pDisplayHidWin != NULL;
+}
+
+class TranslateWin : public WorkWindow
+{
+private:
+ DECL_LINK( DoAccept, PushButton* );
+ DECL_LINK( DoNext, PushButton* );
+ DECL_LINK( DoSelect, PushButton* );
+ DECL_LINK( DoRestore, PushButton* );
+ DECL_LINK( TranslationChanged, Edit* );
+ DECL_LINK( ShowInplace, Timer* );
+
+ Timer InplaceTimer;
+
+// virtual void MouseButtonUp( const MouseEvent& rMEvt );
+// virtual void MouseMove( const MouseEvent& rMEvt );
+
+ PushButton PushButtonTT_PB_NEXT;
+ GroupBox GroupBoxTT_GB_TRANSLATION;
+ Edit EditTT_E_NEW;
+ GroupBox GroupBoxTT_GB_COMMENT;
+ Edit EditTT_E_COMMENT;
+ PushButton PushButtonTT_PB_ACCEPT;
+ FixedText FixedTextTT_FT_OLD;
+ PushButton PushButtonTT_PB_SELECT;
+ PushButton PushButtonTT_PB_RESTORE;
+
+ Window *Old;
+ Window *Act;
+ Window *pTranslateWin;
+ BOOL bSelecting;
+
+ BOOL bAvailable;
+ BOOL bNext;
+
+ BOOL TestChangedDataSaved();
+
+
+ ULONG nEventHookID;
+ static long stub_VCLEventHookProc( NotifyEvent& rEvt, void* pData )
+ {
+ return ((TranslateWin*)pData)->VCLEventHook( rEvt );
+ }
+
+ long VCLEventHook( NotifyEvent& rEvt );
+
+public:
+ TranslateWin();
+ ~TranslateWin();
+
+ static String MarkShortcutErrors( Window* pBase, BOOL bMark );
+
+ BOOL IsTranslationAvailable(){ return bAvailable; }
+ BOOL IsNextDialog(){ return bNext; }
+ void ResetNextDialog(){ bNext = FALSE; }
+
+ Window* GetTranslationWindow(){ return pTranslateWin; }
+ String GetOriginalText(){ return FixedTextTT_FT_OLD.GetText(); }
+ String GetTranslationText(){ return EditTT_E_NEW.GetText(); }
+ String GetComment(){ return EditTT_E_COMMENT.GetText(); }
+
+ void EnableTranslation();
+};
+
+TranslateWin::TranslateWin()
+: WorkWindow( NULL, TTProperties::GetSvtResId( TT_INLINE_TRANSLATION ) )
+, PushButtonTT_PB_NEXT( this, TTProperties::GetSvtResId( TT_PB_NEXT ) )
+, GroupBoxTT_GB_TRANSLATION( this, TTProperties::GetSvtResId( TT_GB_TRANSLATION ) )
+, EditTT_E_NEW( this, TTProperties::GetSvtResId( TT_E_NEW ) )
+, GroupBoxTT_GB_COMMENT( this, TTProperties::GetSvtResId( TT_GB_COMMENT ) )
+, EditTT_E_COMMENT( this, TTProperties::GetSvtResId( TT_E_COMMENT ) )
+, PushButtonTT_PB_ACCEPT( this, TTProperties::GetSvtResId( TT_PB_ACCEPT ) )
+, FixedTextTT_FT_OLD( this, TTProperties::GetSvtResId( TT_FT_OLD ) )
+, PushButtonTT_PB_SELECT( this, TTProperties::GetSvtResId( TT_PB_SELECT ) )
+, PushButtonTT_PB_RESTORE( this, TTProperties::GetSvtResId( TT_PB_RESTORE ) )
+, Old( NULL )
+, Act( NULL )
+, pTranslateWin( NULL )
+, bSelecting( FALSE )
+, bAvailable( FALSE )
+, bNext( FALSE )
+{
+ FreeResource();
+ PushButtonTT_PB_NEXT.SetClickHdl( LINK( this, TranslateWin, DoNext ) );
+ PushButtonTT_PB_ACCEPT.SetClickHdl( LINK( this, TranslateWin, DoAccept ) );
+ PushButtonTT_PB_SELECT.SetClickHdl( LINK( this, TranslateWin, DoSelect ) );
+ PushButtonTT_PB_RESTORE.SetClickHdl( LINK( this, TranslateWin, DoRestore ) );
+ EditTT_E_NEW.SetModifyHdl( LINK( this, TranslateWin, TranslationChanged ) );
+ InplaceTimer.SetTimeout( 250 );
+ InplaceTimer.SetTimeoutHdl( LINK( this, TranslateWin, ShowInplace ) );
+ EnableAlwaysOnTop();
+ nEventHookID = Application::AddEventHook( stub_VCLEventHookProc, this );
+}
+
+TranslateWin::~TranslateWin()
+{
+ Application::RemoveEventHook( nEventHookID );
+}
+
+BOOL TranslateWin::TestChangedDataSaved()
+{
+ if ( ( EditTT_E_NEW.GetText().CompareTo( FixedTextTT_FT_OLD.GetText() ) != COMPARE_EQUAL
+ || EditTT_E_COMMENT.GetText().Len() )
+ && PushButtonTT_PB_ACCEPT.IsEnabled() )
+ {
+ return MessBox( this, TTProperties::GetSvtResId( TT_DISCARD_CHANGED_DATA ) ).Execute() == RET_YES;
+ }
+ else
+ return TRUE;
+}
+
+IMPL_LINK( TranslateWin, DoAccept, PushButton*, EMPTYARG )
+{
+ PushButtonTT_PB_SELECT.Disable();
+ PushButtonTT_PB_NEXT.Disable();
+ PushButtonTT_PB_RESTORE.Disable();
+ EditTT_E_NEW.Disable();
+ EditTT_E_COMMENT.Disable();
+ PushButtonTT_PB_ACCEPT.Disable();
+ bAvailable = TRUE;
+ return 0;
+}
+
+IMPL_LINK( TranslateWin, DoNext, PushButton*, EMPTYARG )
+{
+ if ( TestChangedDataSaved() )
+ {
+ PushButtonTT_PB_SELECT.Disable();
+ PushButtonTT_PB_NEXT.Disable();
+ PushButtonTT_PB_RESTORE.Disable();
+ EditTT_E_NEW.Disable();
+ EditTT_E_COMMENT.Disable();
+ PushButtonTT_PB_ACCEPT.Disable();
+ bNext = TRUE;
+ }
+ return 0;
+}
+
+IMPL_LINK( TranslateWin, DoSelect, PushButton*, EMPTYARG )
+{
+ if ( bSelecting )
+ {
+// ReleaseMouse();
+ bSelecting = FALSE;
+ }
+ else
+ {
+ if ( TestChangedDataSaved() )
+ {
+ PushButtonTT_PB_RESTORE.Disable();
+// CaptureMouse();
+ bSelecting = TRUE;
+ }
+ }
+ return 0;
+}
+
+IMPL_LINK( TranslateWin, DoRestore, PushButton*, EMPTYARG )
+{
+ String sTT_E_OLD( FixedTextTT_FT_OLD.GetText());
+ sTT_E_OLD.SearchAndReplaceAll( CUniString("\\n"), CUniString("\n") );
+ sTT_E_OLD.SearchAndReplaceAll( CUniString("\\t"), CUniString("\t") );
+
+ String sTT_E_NEW( EditTT_E_NEW.GetText());
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\\n"), CUniString("\n") );
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\\t"), CUniString("\t") );
+
+ if ( StatementList::WinPtrValid( pTranslateWin ) && pTranslateWin->GetText().CompareTo( sTT_E_NEW ) == COMPARE_EQUAL )
+ { // Im ersten schritt nur in der UI zurck
+ pTranslateWin->SetText( sTT_E_OLD );
+ }
+ else
+ { // Im zweite Schritt auch den eingegebenen Text
+ EditTT_E_NEW.SetText( FixedTextTT_FT_OLD.GetText() );
+ PushButtonTT_PB_RESTORE.Disable();
+ }
+ if ( StatementList::WinPtrValid( pTranslateWin ) )
+ MarkShortcutErrors( pTranslateWin->GetWindow( WINDOW_OVERLAP ), TRUE );
+ return 0;
+}
+
+IMPL_LINK( TranslateWin, TranslationChanged, Edit*, pEdit )
+{
+ (void) pEdit; /* avoid warning about unused parameter */
+ PushButtonTT_PB_RESTORE.Enable();
+ InplaceTimer.Start();
+ return 0;
+}
+
+IMPL_LINK( TranslateWin, ShowInplace, Timer*, EMPTYARG )
+{
+ PushButtonTT_PB_RESTORE.Enable();
+ if ( StatementList::WinPtrValid( pTranslateWin ) )
+ {
+ String sTT_E_NEW( EditTT_E_NEW.GetText());
+ // alle CRs UnQuoten
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\\n"), CUniString("\n") );
+ // alle TABSs UnQuoten
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\\t"), CUniString("\t") );
+ pTranslateWin->SetText( sTT_E_NEW );
+
+ MarkShortcutErrors( pTranslateWin->GetWindow( WINDOW_OVERLAP ), TRUE );
+ }
+ return 0;
+}
+
+long TranslateWin::VCLEventHook( NotifyEvent& rEvt )
+{
+ if ( EVENT_MOUSEMOVE == rEvt.GetType() )
+ {
+ if ( bSelecting )
+ {
+ const MouseEvent *pMEvt = rEvt.GetMouseEvent();
+ Old = Act;
+ Act = rEvt.GetWindow();
+
+ if ( Act )
+ {
+ Window *pWin = Act;
+ USHORT i;
+ for ( i = 0 ; i < Act->GetChildCount() ; i++ )
+ {
+ pWin = Act->GetChild(i);
+ Rectangle aWinPosSize( pWin->GetPosPixel(), pWin->GetSizePixel() );
+
+ if ( ( pWin->IsMouseTransparent() || !pWin->IsEnabled() ) && aWinPosSize.IsInside( pMEvt->GetPosPixel() ) )
+ {
+ Act = pWin;
+ break;
+ }
+ }
+ }
+
+ if ( !StatementList::WinPtrValid ( Old ) )
+ Old = NULL;
+
+ if ( Act != Old )
+ {
+ if ( Old )
+ {
+ Window *pWin;
+ if ( Old->IsMouseTransparent() && Old->GET_REAL_PARENT() )
+ pWin = Old->GET_REAL_PARENT();
+ else
+ pWin = Old;
+ RESET_WIN(pWin);
+ }
+ if ( Act )
+ {
+ SET_WIN(Act);
+ FixedTextTT_FT_OLD.SetText( Act->GetText() );
+ }
+ else
+ FixedTextTT_FT_OLD.SetText( String() );
+ }
+ else if ( Act )
+ {
+ // SET_WIN(Act);
+ }
+ /* if ( Application::GetLastInputInterval() > 5000 ) // 5 Sekunden lang nix geschehen
+ {
+ ToTop();
+ }
+ */
+ } //if ( bSelecting )
+ else
+ {
+ if ( Act )
+ {
+ if ( Act->IsMouseTransparent() && Act->GET_REAL_PARENT() )
+ Act = Act->GET_REAL_PARENT();
+ RESET_WIN(Act);
+ Act = NULL;
+ }
+ }
+ }
+ else if ( EVENT_MOUSEBUTTONUP == rEvt.GetType() )
+ {
+ if ( bSelecting )
+ {
+ pTranslateWin = Act;
+ if ( pTranslateWin )
+ {
+ MarkShortcutErrors( pTranslateWin->GetWindow( WINDOW_OVERLAP ), TRUE );
+ // alle CRs quoten (NF)
+ String sTT_E_NEW( pTranslateWin->GetText());
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\n"), CUniString("\\n") );
+ // alle TABSs quoten ()
+ sTT_E_NEW.SearchAndReplaceAll( CUniString("\t"), CUniString("\\t") );
+
+ FixedTextTT_FT_OLD.SetText( sTT_E_NEW );
+ EditTT_E_NEW.SetText( sTT_E_NEW );
+ EditTT_E_NEW.Enable();
+ EditTT_E_NEW.GrabFocus();
+ EditTT_E_COMMENT.SetText( String() );
+ EditTT_E_COMMENT.Enable();
+ PushButtonTT_PB_ACCEPT.Enable();
+ }
+ // ReleaseMouse();
+ bSelecting = FALSE;
+ }
+ }
+
+ return 0;
+}
+
+#define FDS_ACTION_COLLECT 1
+#define FDS_ACTION_MARK 2
+#define FDS_ACTION_UNMARK 3
+
+class FindShortcutErrors: public Search
+{
+ String aShortcuts,aDoubleShortcuts;
+ USHORT nAction;
+public:
+ FindShortcutErrors();
+ virtual BOOL IsWinOK( Window *pWin );
+ void SetAction( USHORT nA );
+ String GetDoubleShortcuts() { return aDoubleShortcuts; }
+};
+
+FindShortcutErrors::FindShortcutErrors()
+: Search( SEARCH_NOOVERLAP | SEARCH_NO_TOPLEVEL_WIN )
+{
+ SetAction( FDS_ACTION_COLLECT ); // Wir fange immer mit sammeln an, ODER??
+}
+
+void FindShortcutErrors::SetAction( USHORT nA )
+{
+ nAction = nA;
+ if ( FDS_ACTION_COLLECT == nAction )
+ {
+ aShortcuts = UniString();
+ aDoubleShortcuts = UniString();
+ }
+}
+
+BOOL FindShortcutErrors::IsWinOK( Window *pWin )
+{
+ if ( pWin->IsReallyVisible() )
+ {
+ String aText = pWin->GetText();
+ xub_StrLen nPos = aText.Search('~');
+ String aShortcut;
+ BOOL bHasAccel = FALSE;
+ if ( nPos != STRING_NOTFOUND )
+ {
+ aShortcut = aText.Copy( nPos+1, 1 );
+ aShortcut.ToLowerAscii();
+ bHasAccel = aShortcut.Len() == 1;
+ }
+
+ switch ( nAction )
+ {
+ case FDS_ACTION_COLLECT:
+ {
+ if ( aShortcuts.Search( aShortcut ) != STRING_NOTFOUND )
+ aDoubleShortcuts += aShortcut;
+ else
+ aShortcuts += aShortcut;
+ }
+ break;
+ case FDS_ACTION_MARK:
+ {
+ BOOL bMissing = FALSE;
+ if ( !bHasAccel && aText.Len() ) // should there be an accelarator defined
+ {
+
+ Window* pChild;
+ pChild = pWin->GetWindow( WINDOW_CLIENT );
+
+ if ( (pChild->GetType() == WINDOW_RADIOBUTTON) ||
+ (pChild->GetType() == WINDOW_IMAGERADIOBUTTON) ||
+ (pChild->GetType() == WINDOW_CHECKBOX) ||
+ (pChild->GetType() == WINDOW_TRISTATEBOX) ||
+ (pChild->GetType() == WINDOW_PUSHBUTTON) )
+ {
+ if ( !pChild->GetText().EqualsAscii( "..." ) )
+ bMissing = TRUE;
+ }
+
+ if ( pChild->GetType() == WINDOW_FIXEDTEXT )
+ {
+ Window* pTempChild = pWin->GetWindow( WINDOW_NEXT );
+ if ( pTempChild )
+ pTempChild = pTempChild->GetWindow( WINDOW_CLIENT );
+
+ if ( pTempChild && pChild->GetText().Len() )
+ {
+ if ( (pTempChild->GetType() == WINDOW_EDIT) ||
+ (pTempChild->GetType() == WINDOW_MULTILINEEDIT) ||
+ (pTempChild->GetType() == WINDOW_SPINFIELD) ||
+ (pTempChild->GetType() == WINDOW_PATTERNFIELD) ||
+ (pTempChild->GetType() == WINDOW_NUMERICFIELD) ||
+ (pTempChild->GetType() == WINDOW_METRICFIELD) ||
+ (pTempChild->GetType() == WINDOW_CURRENCYFIELD) ||
+ (pTempChild->GetType() == WINDOW_DATEFIELD) ||
+ (pTempChild->GetType() == WINDOW_TIMEFIELD) ||
+ (pTempChild->GetType() == WINDOW_LISTBOX) ||
+ (pTempChild->GetType() == WINDOW_MULTILISTBOX) ||
+ (pTempChild->GetType() == WINDOW_COMBOBOX) ||
+ (pTempChild->GetType() == WINDOW_PATTERNBOX) ||
+ (pTempChild->GetType() == WINDOW_NUMERICBOX) ||
+ (pTempChild->GetType() == WINDOW_METRICBOX) ||
+ (pTempChild->GetType() == WINDOW_CURRENCYBOX) ||
+ (pTempChild->GetType() == WINDOW_DATEBOX) ||
+ (pTempChild->GetType() == WINDOW_TIMEBOX) )
+ {
+ bMissing = TRUE;
+ }
+ }
+ }
+ }
+
+ if ( bHasAccel && aDoubleShortcuts.Search( aShortcut ) != STRING_NOTFOUND )
+ {
+ if ( pWin->GetType() == WINDOW_GROUPBOX )
+ pWin->SetControlForeground( Color( COL_LIGHTRED ) );
+ else
+ {
+ pWin->SetControlBackground();
+ Color aCol(COL_GRAY);
+ aCol.SetRed( 0xff );
+ pWin->SetControlBackground( aCol );
+ }
+ }
+ else if ( bMissing )
+ {
+ pWin->SetControlBackground();
+ Color aCol(COL_GRAY);
+ aCol.SetRed( 0xff );
+ aCol.SetGreen( 0xff );
+ pWin->SetControlBackground( aCol );
+ }
+ else
+ {
+ pWin->SetControlForeground();
+ pWin->SetControlBackground();
+ }
+ }
+ break;
+ case FDS_ACTION_UNMARK:
+ {
+ pWin->SetControlForeground();
+ pWin->SetControlBackground();
+ }
+ break;
+ }
+ }
+ else
+ if ( FDS_ACTION_MARK == nAction || FDS_ACTION_UNMARK == nAction )
+ {
+ pWin->SetControlForeground();
+ pWin->SetControlBackground();
+ }
+
+ return FALSE;
+}
+
+String TranslateWin::MarkShortcutErrors( Window* pBase, BOOL bMark )
+{
+ if ( pBase )
+ {
+ FindShortcutErrors aFinder;
+ if ( bMark )
+ {
+ StatementList::SearchAllWin( pBase, aFinder, TRUE ); // collect Shortcuts first
+ aFinder.SetAction( FDS_ACTION_MARK );
+ }
+ else
+ aFinder.SetAction( FDS_ACTION_UNMARK );
+ StatementList::SearchAllWin( pBase, aFinder, TRUE );
+ return aFinder.GetDoubleShortcuts();
+ }
+ return UniString();
+}
+
+void TranslateWin::EnableTranslation()
+{
+ PushButtonTT_PB_SELECT.Enable();
+ PushButtonTT_PB_NEXT.Enable();
+ bAvailable = FALSE;
+ bNext = FALSE;
+}
+
+void StatementCommand::Translate()
+{
+ // Es wurde eine initale UniqueId mitgegeben. Dann nur die dopelten Shortcuts liefern
+ if( (nParams & PARAM_ULONG_1) && nLNr1 )
+ {
+ String aDouble;
+ Window *pWin = SearchTree( SmartId( nLNr1 ) ,FALSE );
+ if ( pWin )
+ {
+ pWin = pWin->GetWindow( WINDOW_OVERLAP );
+ aDouble = TranslateWin::MarkShortcutErrors( pWin, TRUE );
+ }
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aDouble );
+ return;
+ }
+
+ if ( !GetTTSettings()->pTranslateWin )
+ {
+ GetTTSettings()->pTranslateWin = new TranslateWin;
+ GetTTSettings()->bToTop = TRUE;
+ }
+
+ GetTTSettings()->pTranslateWin->Show();
+ if ( GetTTSettings()->bToTop )
+ {
+ GetTTSettings()->pTranslateWin->ToTop();
+ GetTTSettings()->bToTop = FALSE;
+ }
+
+// GetTTSettings()->pTranslateWin->GetWindow( WINDOW_OVERLAP )->Enable( TRUE, TRUE );
+ GetTTSettings()->pTranslateWin->GetWindow( WINDOW_OVERLAP )->EnableInput( TRUE, TRUE );
+
+ if ( GetTTSettings()->pTranslateWin->IsTranslationAvailable() )
+ {
+ String aTranslation;
+ Window* pTranslationWindow = GetTTSettings()->pTranslateWin->GetTranslationWindow();
+
+ DBG_ASSERT( pTranslationWindow, "Kein Translation Window" );
+
+ if ( WinPtrValid( pTranslationWindow ) )
+ {
+ if ( pTranslationWindow->GetType() == WINDOW_BORDERWINDOW && pTranslationWindow->GetWindow( WINDOW_CLIENT ) )
+ {
+ Window* pNew = pTranslationWindow->GetWindow( WINDOW_CLIENT );
+ // Bei Dockingwindoes das kanze Geraffel von Docking Floating berspringen
+ while ( IsDialog( pNew ) && !pNew->GetSmartUniqueOrHelpId().HasAny() && pNew->GetChildCount() == 1 )
+ pNew = pNew->GetChild( 0 );
+ pTranslationWindow = pNew;
+ }
+
+ aTranslation = CUniString("0;");
+
+ aTranslation += pTranslationWindow->GetSmartUniqueOrHelpId().GetText();
+ aTranslation += ';';
+
+ aTranslation += TypeString( pTranslationWindow->GetType() );
+ aTranslation += ';';
+
+ Window* pParentDialog = pTranslationWindow;
+ while ( pParentDialog && !IsDialog( pParentDialog ) )
+ {
+ pParentDialog = pParentDialog->GET_REAL_PARENT();
+ }
+
+ if ( pParentDialog )
+ {
+ aTranslation += pParentDialog->GetSmartUniqueOrHelpId().GetText();
+ aTranslation += ';';
+ aTranslation += TypeString( pParentDialog->GetType() );
+ }
+ else
+ aTranslation.AppendAscii( "0;" ); // Zahl + leerer String
+ aTranslation += ';';
+
+ aTranslation += '\"';
+ aTranslation += GetTTSettings()->pTranslateWin->GetOriginalText();
+ aTranslation += '\"';
+
+ aTranslation += ';';
+
+ aTranslation += '\"';
+ aTranslation += GetTTSettings()->pTranslateWin->GetTranslationText();
+ aTranslation += '\"';
+
+ aTranslation += ';';
+
+ aTranslation += '\"';
+ aTranslation += GetTTSettings()->pTranslateWin->GetComment();
+ aTranslation += '\"';
+
+ // alle CRs quoten (NF)
+ aTranslation.SearchAndReplaceAll( CUniString("\n"), CUniString("\\n") );
+ // alle TABSs quoten ()
+ aTranslation.SearchAndReplaceAll( CUniString("\t"), CUniString("\\t") );
+
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aTranslation );
+ GetTTSettings()->pTranslateWin->EnableTranslation();
+ GetTTSettings()->bToTop = TRUE;
+ }
+ else
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, String() );
+ GetTTSettings()->pTranslateWin->EnableTranslation();
+ ErrorBox err( GetTTSettings()->pTranslateWin, TTProperties::GetSvtResId( TT_NO_CONTROL ));
+ err.Execute();
+ GetTTSettings()->bToTop = TRUE;
+ }
+
+ }
+ else if ( GetTTSettings()->pTranslateWin->IsNextDialog() )
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, CUniString("1") );
+ GetTTSettings()->pTranslateWin->ResetNextDialog();
+ GetTTSettings()->pTranslateWin->LoseFocus();
+ GetTTSettings()->bToTop = TRUE;
+ }
+ else
+ {
+ GetTTSettings()->pTranslateWin->EnableTranslation();
+ pRet->GenReturn ( RET_Value, aSmartMethodId, String() );
+ }
+}
+
+Window* StatementCommand::GetNextOverlap( Window* pBase )
+{ // Findet irgendwelche Overlap-Fenster, die schliebar aussehen
+ // Eventuell mu noch die Auswahl verfeinert werden.
+
+ if ( pBase->GetType() != WINDOW_BORDERWINDOW )
+ pBase = pBase->GetWindow( WINDOW_OVERLAP );
+
+ Window *pControl = NULL;
+ if ( pBase->GetWindow( WINDOW_FIRSTOVERLAP ) )
+ {
+ pControl = GetNextOverlap( pBase->GetWindow( WINDOW_FIRSTOVERLAP ) );
+ }
+
+ if ( !pControl && pBase->GetWindow( WINDOW_NEXT ) )
+ {
+ pControl = GetNextOverlap( pBase->GetWindow( WINDOW_NEXT ) );
+ }
+
+ if ( !pControl )
+ {
+ Window *pTest = pBase->GetWindow( WINDOW_CLIENT );
+ if ( IsAccessable (pTest)
+ && pTest->IsEnabled()
+ && pTest->IsVisible()
+ && ((pTest->GetStyle() & WB_CLOSEABLE ) || (pBase->GetStyle() & WB_CLOSEABLE )) )
+ return pTest;
+ else
+ return NULL;
+ }
+ else
+ return pControl;
+}
+
+Window* StatementCommand::GetNextRecoverWin()
+{
+ // ber die TopLevelWindows der App iterieren
+ Window* pBase = Application::GetFirstTopLevelWindow();
+ Window *pControl = NULL;
+ Window* pMyFirstDocFrame = NULL;
+ while ( pBase )
+ {
+ // zuerst weitere Fenster auf dem Fenster suchen und schliessen
+ pControl = GetNextOverlap( pBase );
+ if ( pControl && pControl->GetType() == WINDOW_HELPTEXTWINDOW )
+ {} // skip it
+ else
+ {
+ if ( pControl && pControl->IsVisible() && !IsFirstDocFrame( pControl ) && !IsIMEWin( pControl ) )
+ {
+ Window* pTB = pControl->GetChild( 0 );
+ if ( pControl->GetChildCount() == 1 && pTB->GetType() == WINDOW_TOOLBOX )
+// return pTB;
+ ; // do not act on floating toolboxes #i38796
+ else
+ return pControl;
+ }
+
+ // dann das Fenster selbst Schliessen
+ // erstes DocWin berspringen
+ // Assumption that Doc Windows are Borderwindows and ButtonDialog and such are not
+ if ( pBase->IsVisible() && !IsFirstDocFrame( pBase ) && pBase->GetType() != WINDOW_BORDERWINDOW && !IsIMEWin( pBase ) )
+ return pBase;
+
+ if ( !pMyFirstDocFrame && IsFirstDocFrame( pBase ) )
+ pMyFirstDocFrame = pBase;
+ }
+
+ pBase = Application::GetNextTopLevelWindow( pBase );
+ }
+#ifdef RESET_APPLICATION_TO_BACKING_WINDOW
+ // close the FirstDocFrame last, It will not be closed, but the Document inside will be closed.
+ if ( IsDocWin( pMyFirstDocFrame ) )
+ return pMyFirstDocFrame;
+#endif // def RESET_APPLICATION_TO_BACKING_WINDOW
+
+ return NULL;
+}
+
+BOOL StatementCommand::Execute()
+{
+ if ( IsError )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Skipping Command: " );
+ m_pDbgWin->AddText( aSmartMethodId.GetText() );
+ m_pDbgWin->AddText( "\n" );
+ #endif
+
+ Advance();
+ delete this;
+ return TRUE;
+ }
+
+ InitProfile();
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Executing Command: " );
+ m_pDbgWin->AddText( aSmartMethodId.GetText() );
+ m_pDbgWin->AddText( "\n" );
+#endif
+
+
+
+
+
+#if OSL_DEBUG_LEVEL > 1
+#define REPORT_WIN_CLOSED(pControl, aInfo) \
+ _REPORT_WIN_CLOSED(pControl, aInfo) \
+ m_pDbgWin->AddText( aInfo.AppendAscii(" \"").Append( pControl->GetText() ).AppendAscii("\" geschlossen, RType = ").Append( TypeString(pControl->GetType()) ).AppendAscii(", UId = ").Append( UIdString(pControl->GetSmartUniqueOrHelpId()) ) );
+#else
+#define REPORT_WIN_CLOSED(pControl, aInfo) _REPORT_WIN_CLOSED(pControl, aInfo)
+#endif
+
+#define REPORT_WIN_CLOSEDc(pControl, aInfo ) \
+ REPORT_WIN_CLOSED(pControl, CUniString(aInfo) )
+
+#define _REPORT_WIN_CLOSED(pControl, aInfo) \
+ if ( aString1.Len() ) \
+ aString1 += '\n'; \
+ aString1 += aInfo; \
+ aString1.AppendAscii(" \""); \
+ aString1 += pControl->GetText(); \
+ aString1.AppendAscii("\" geschlossen, RType = ");\
+ aString1 += TypeString(pControl->GetType()); \
+ aString1.AppendAscii(", UId = "); \
+ aString1 += UIdString(pControl->GetSmartUniqueOrHelpId());
+
+
+ switch ( nMethodId )
+ {
+ case RC_AppDelay:
+ if ( !bBool1 )
+ {
+ nLNr1 = Time().GetTime() + nNr1/10;
+ bBool1 = TRUE;
+ }
+ if ( Time().GetTime() < long(nLNr1) ) // Aktuelle Zeit kleiner Endzeit
+ return FALSE;
+ break;
+ case RC_DisplayHid:
+ if ( DisplayHID() )
+ return FALSE;
+ break;
+ case RC_ResetApplication:
+ {
+ if ( !bBool1 )
+ {
+ nRetryCount = 150; // das sollte reichen.
+ bBool1 = TRUE; // Nur beim ersten mal!
+ nNr1 = 1; // Welcher Button ist dran?
+ nLNr1 = 0; // Speichern des AppWin
+ aString1 = UniString(); // Liste der geschlossenen Fenster
+
+ // So da nacher auch wieder alles auf Default steht
+ nUseBindings = 0;
+ bCatchGPF = TRUE;
+ bUsePostEvents = TRUE;
+
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ }
+ if ( !nRetryCount )
+ ReportError( GEN_RES_STR0( S_RESETAPPLICATION_FAILED_COMPLEX ) );
+
+ Window *pControl = GetNextRecoverWin();
+
+ if ( pControl )
+ {
+ bBool2 = FALSE; // flag for wait when all windows are closed
+ pControl->GrabFocus();
+
+ if ( pControl->GetType() != WINDOW_DOCKINGWINDOW
+ && pControl->GetType() != WINDOW_FLOATINGWINDOW
+ && pControl->GetType() != WINDOW_MODELESSDIALOG
+ && pControl->GetType() != WINDOW_WORKWINDOW
+ && pControl->GetType() != WINDOW_TOOLBOX
+ && pControl->GetType() != WINDOW_BORDERWINDOW
+ && nRetryCount-- )
+ {
+ short nRT = ImpGetRType( pControl, pControl->GetSmartUniqueOrHelpId() );
+
+ if ( nRT == C_TabControl && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ { // Bei Tabcontrol den zugehrigen Tabdialog nehmen
+ pControl = pControl->GET_REAL_PARENT();
+ nRT = ImpGetRType( pControl, pControl->GetSmartUniqueOrHelpId() );
+ }
+
+ switch( nRT )
+ {
+ case C_ModalDlg:
+ case C_Dialog:
+ case C_TabDlg:
+ REPORT_WIN_CLOSEDc(pControl, "Dialog");
+ SET_WINP_CLOSING(pControl);
+ ((SystemWindow*)pControl)->Close();
+ break;
+ case C_WorkWin:
+ break;
+ case C_MessBox:
+ case C_InfoBox:
+ case C_WarningBox:
+ case C_ErrorBox:
+ case C_QueryBox:
+ case C_ButtonDialog:
+ {
+ ButtonDialog* pBD = (ButtonDialog*)pControl;
+ // nNr1 >= 10 bedeutet (Custom)-Buttons durchgehen
+ if ( nNr1 >= 10+pBD->GetButtonCount() ) nNr1 = 1;
+ switch( nNr1 )
+ {
+ case 5:
+ if ( pBD->GetPushButton( BUTTONID_OK ) )
+ {
+ REPORT_WIN_CLOSEDc(pControl, "Message Box (OK)");
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_OK);
+ }
+ nNr1 = 10; // Nochmal alle Buttons der Reihe nach
+ break;
+ case 4:
+ if ( pBD->GetPushButton( BUTTONID_CANCEL ) )
+ {
+ REPORT_WIN_CLOSEDc(pControl, "Message Box (Cancel)");
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_CANCEL);
+ }
+ nNr1++;
+ break;
+ case 3:
+ if ( pBD->GetPushButton( BUTTONID_YES ) )
+ {
+ REPORT_WIN_CLOSEDc(pControl, "Message Box (Yes)");
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_YES);
+ }
+ nNr1++;
+ break;
+ case 2: // BUG 48239
+ case 1:
+ if ( pBD->GetPushButton( BUTTONID_NO ) )
+ {
+ REPORT_WIN_CLOSEDc(pControl, "Message Box (No)");
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_NO);
+ }
+ nNr1++;
+ break;
+ default:
+ {
+ USHORT nID = pBD->GetButtonId( nNr1-10 );
+ if ( nID != BUTTONID_HELP )
+ {
+ REPORT_WIN_CLOSED(pControl, CUniString("Message Box (").Append( UniString::CreateFromInt32(nID) ).AppendAscii(")"));
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(nID);
+ }
+ nNr1++;
+ }
+ }
+ break;
+ }
+ default:
+ DBG_ERROR( "Unknown Windowtype" );
+ REPORT_WIN_CLOSEDc(pControl, "Unknown Windowtype");
+ ReportError( GEN_RES_STR0( S_RESETAPPLICATION_FAILED_UNKNOWN ), pControl->GetType() );
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( " Unbekannter Objekttyp aus UId" );
+ #endif
+ break;
+ }
+ return FALSE;
+ }
+ else
+ {
+ if ( (pControl->GetType() == WINDOW_DOCKINGWINDOW || pControl->GetType() == WINDOW_TOOLBOX) && nRetryCount-- )
+ {
+ if ( (((DockingWindow*)pControl)->GetStyle() | ((DockingWindow*)pControl)->GetFloatStyle()) & WB_CLOSEABLE )
+ {
+ REPORT_WIN_CLOSED(pControl, TypeString(pControl->GetType()));
+ SET_WINP_CLOSING(pControl);
+ ((DockingWindow*)pControl)->Close();
+
+ // Eigentlich nur bei TaskWindows! Hoffen wir mal, da keine anderen DockingWindows dazwischen hauen.
+ if ( (Window*)nLNr1 != pControl )
+ nNr1 = 1; // Zum durchprobieren der Buttons beim Schlieen
+ nLNr1 = (ULONG)pControl;
+
+ return FALSE;
+ }
+ }
+ if ( nRetryCount--
+ && ( (pControl->GetType() == WINDOW_FLOATINGWINDOW)
+ || (pControl->GetType() == WINDOW_MODELESSDIALOG)
+ || (pControl->GetType() == WINDOW_WORKWINDOW)
+ || (pControl->GetType() == WINDOW_BORDERWINDOW) ) )
+ {
+ // if ( pControl->GetStyle() & WB_CLOSEABLE )
+ {
+#ifdef RESET_APPLICATION_TO_BACKING_WINDOW
+ // Special handling for last Document; do not close the Frame, only the Document
+ if ( GetDocWinCount() == 1 && IsDocFrame( pControl ) )
+ {
+ if ( IsDocWin( pControl ) )
+ {
+ if ( GetDocFrameMenuBar( pControl ) )
+ {
+ MenuBar* pMenu = GetDocFrameMenuBar( pControl );
+ if ( pMenu->HasCloser() )
+ {
+ REPORT_WIN_CLOSED( pControl, TypeString(pControl->GetType()));
+ SET_WINP_CLOSING(pControl);
+
+ pMenu->GetCloserHdl().Call( pMenu );
+
+ // nur bei TaskWindows!
+ if ( (Window*)nLNr1 != pControl )
+ nNr1 = 1; // Zum durchprobieren der Buttons beim Schlieen
+ nLNr1 = (ULONG)pControl;
+
+ return FALSE;
+ }
+ }
+ }
+ }
+ else
+#endif // def RESET_APPLICATION_TO_BACKING_WINDOW
+ {
+ REPORT_WIN_CLOSED( pControl, TypeString(pControl->GetType()));
+ SET_WINP_CLOSING(pControl);
+ ((SystemWindow*)pControl)->Close();
+
+ // Eigentlich nur bei TaskWindows!
+ if ( (Window*)nLNr1 != pControl )
+ nNr1 = 1; // Zum durchprobieren der Buttons beim Schlieen
+ nLNr1 = (ULONG)pControl;
+
+ return FALSE;
+ }
+ }
+ }
+ }
+ }
+ // wait for some time if more windows show up
+ // E.g.: Floating toolbars on a Task which was hidden by another Task before
+ if ( !bBool2 )
+ {
+ nLNr1 = Time().GetTime() + 100; // 100 = 1 Second
+ bBool2 = TRUE;
+ }
+ if ( Time().GetTime() < long(nLNr1) ) // Aktuelle Zeit kleiner Endzeit
+ return FALSE;
+ else
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aString1);
+ }
+ break;
+ case RC_WaitSlot:
+ {
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1000; // defaults to 1000 = 1 Sec.
+ if ( !bBool1 )
+ {
+ nLNr1 = Time().GetTime() + nNr1/10;
+ bBool1 = TRUE;
+ }
+
+ if ( !bIsSlotInExecute )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, comm_USHORT(CONST_WSFinished) );
+ else
+ {
+ if ( Time().GetTime() < long(nLNr1) ) // Aktuelle Zeit kleiner Endzeit
+ return FALSE;
+ pRet->GenReturn ( RET_Value, aSmartMethodId, comm_USHORT(CONST_WSTimeout) );
+ }
+ }
+ break;
+ }
+
+
+ Advance();
+
+
+ switch ( nMethodId )
+ {
+ case RC_AppDelay: // Diese Befehle werden anderswo behandelt
+ case RC_DisplayHid:
+ case RC_ResetApplication:
+ case RC_WaitSlot:
+
+ case RC_AppAbort: // Sofortiges Lschen aller Befehle
+ break;
+ case RC_Assert:
+ {
+ ByteString aAssertion( "Diese Assertion wurde vom Testtool per Befehl ausgelst" );
+ aAssertion = ByteString( String( aAssertion, RTL_TEXTENCODING_MS_1252 ), RTL_TEXTENCODING_UTF8 );
+ DBG_ASSERT( !aString1.Len(), ByteString( aString1, RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+ DBG_ASSERT( aString1.Len(), aAssertion.GetBuffer() );
+ OSL_ENSURE( !aString1.Len(), ByteString( aString1, RTL_TEXTENCODING_UTF8 ).GetBuffer() );
+ OSL_ENSURE( aString1.Len(), aAssertion.GetBuffer() );
+ }
+ break;
+ case RC_CaptureAssertions:
+#ifdef DBG_UTIL
+ if( !(nParams & PARAM_BOOL_1) || bBool1 )
+ {
+ DBG_INSTOUTERROR( DBG_OUT_TESTTOOL );
+ osl_setDebugMessageFunc( osl_TestToolDebugPrint );
+ }
+ else
+ {
+ DBG_INSTOUTERROR( DBG_OUT_MSGBOX );
+ osl_setDebugMessageFunc( pOriginal_osl_DebugMessageFunc );
+ }
+#endif
+ break;
+ case RC_Translate:
+ Translate();
+ break;
+ case RC_ApplicationBusy:
+ {
+ BOOL bWait = FALSE;
+ ReportError( GEN_RES_STR0( S_NO_ACTIVE_WINDOW ) );
+// if ( Application::GetAppWindow() )
+// bWait = Application::GetAppWindow()->IsWait();
+ pRet->GenReturn ( RET_Value, aSmartMethodId, bWait );
+ break;
+ }
+ case RC_GetClipboard:
+ {
+ ::rtl::OUString aTemp;
+ ::svt::OStringTransfer::PasteString( aTemp, GetFirstDocFrame() );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, String( aTemp ) );
+ }
+ break;
+ case RC_SetClipboard:
+ ::svt::OStringTransfer::CopyString(aString1,GetFirstDocFrame());
+ break;
+ case RC_WinTree:
+ pRet->GenReturn ( RET_Value, aSmartMethodId, Tree( NULL, 0));
+ break;
+ #if OSL_DEBUG_LEVEL > 1
+ case RC_NoDebug:
+ m_pDbgWin->bQuiet = TRUE;
+ m_pDbgWin->Hide();
+ m_pDbgWin->Clear();
+ break;
+ case RC_Debug:
+ m_pDbgWin->bQuiet = FALSE;
+ m_pDbgWin->Show();
+ break;
+ #endif
+ case RC_GPF:
+ ((TabControl*)NULL)->SetCurPageId( 12345 );
+ break;
+ case RC_GetNextCloseWindow:
+ {
+ Window *pWin = GetActive( WINDOW_BASE ); // WINDOW_ANYTYPE
+ if ( !pWin )
+ ReportError( GEN_RES_STR0( S_NO_ACTIVE_WINDOW ) );
+ else if ( !IsDialog(pWin) )
+ ReportError( GEN_RES_STR0( S_NO_DIALOG_IN_GETACTIVE ) );
+ else
+ pRet->GenReturn( RET_Value, aSmartMethodId, static_cast<comm_ULONG>(pWin->GetSmartUniqueOrHelpId().GetNum())); //GetNum() ULONG != comm_ULONG on 64bit
+ }
+ break;
+ case RC_UseBindings:
+ if( !(nParams & PARAM_BOOL_1) || bBool1 )
+ nUseBindings = SFX_USE_BINDINGS;
+ else
+ nUseBindings = 0;
+ break;
+ case RC_Profile:
+ // Bei folgenden Parametern passiert folgendes:
+ // ein boolean=false Alles Profiling stoppen (Ergebnisse liefern)
+ // ein boolean=true, 1-4 ints Einteilung der Zeiten in Kstchen
+ // kein! boolean keine ints loggen jeden Befehls
+ // kein! boolean 1 int loggen alle int Millisekunden
+ // ein String wird in das Logfile bernommen(sonst passiert nichts)
+ if( !(nParams & PARAM_BOOL_1) || bBool1 )
+ {
+ if ( !pProfiler )
+ {
+ pProfiler = new TTProfiler;
+ InitProfile();
+ }
+
+ if( !(nParams & PARAM_BOOL_1) && (nParams & PARAM_USHORT_1) )
+ { // Autoprofiling: Profile nNr
+ if ( pProfiler->IsProfilingPerCommand() )
+ {
+ pProfiler->StopProfilingPerCommand();
+ }
+ pProfiler->StartAutoProfiling( nNr1 );
+
+ // Der Header ist abhngig vom Modus
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetProfileHeader() );
+ }
+ else if ( nParams & PARAM_USHORT_1 )
+ { // Partitioning initialisieren: Profile true [,nNr][,nNr][,nNr][,nNr]
+ comm_ULONG nAnzahl=0;
+ if ( nParams & PARAM_USHORT_1 ) { nAnzahl++; };
+ if ( nParams & PARAM_USHORT_2 ) { nAnzahl++; };
+ if ( nParams & PARAM_USHORT_3 ) { nAnzahl++; };
+ if ( nParams & PARAM_USHORT_4 ) { nAnzahl++; };
+
+ // Hier werden die Parameter ans Testtool zurck bertragen.
+ // Das ist zwar etwas eigenartig, aber ansonsten msste man im Testtool
+ // die einfache Struktur der Remotebefehle aufbrechen.
+ pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileReset ), nAnzahl );
+
+ // Und die einzelnen Grenzen
+ if ( nParams & PARAM_USHORT_1 ) { pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileBorder1 ), (comm_ULONG)nNr1 ); };
+ if ( nParams & PARAM_USHORT_2 ) { pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileBorder2 ), (comm_ULONG)nNr2 ); };
+ if ( nParams & PARAM_USHORT_3 ) { pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileBorder3 ), (comm_ULONG)nNr3 ); };
+ if ( nParams & PARAM_USHORT_4 ) { pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileBorder4 ), (comm_ULONG)nNr4 ); };
+
+ pProfiler->StartPartitioning();
+ }
+ else if( nParams == PARAM_STR_1 ) // Genau ein String!
+ { // Nur einen String ins Profiling aufnehmen
+ aString1 += '\n';
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), aString1 );
+ }
+ else
+ { // Normales Profiling je Kommando: profile
+ if ( pProfiler->IsAutoProfiling() )
+ {
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetAutoProfiling() );
+ pProfiler->StopAutoProfiling();
+ }
+ pProfiler->StartProfilingPerCommand();
+
+ // Der Header ist abhngig vom Modus
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetProfileHeader() );
+ }
+ }
+ else // Profiling wieder ausschalten: Profile false
+ if ( pProfiler )
+ {
+ if ( pProfiler->IsProfilingPerCommand() )
+ pProfiler->StopProfilingPerCommand();
+
+ if ( pProfiler->IsAutoProfiling() )
+ {
+ pRet->GenReturn( RET_ProfileInfo, SmartId(), pProfiler->GetAutoProfiling() );
+ pProfiler->StopAutoProfiling();
+ }
+
+ if ( pProfiler->IsPartitioning() )
+ {
+ pRet->GenReturn( RET_ProfileInfo, SmartId( S_ProfileDump ), (comm_ULONG)0 );
+ pProfiler->StopPartitioning();
+ }
+
+ delete pProfiler;
+ pProfiler = NULL;
+ }
+ break;
+ case RC_MenuGetItemCount:
+ case RC_MenuGetItemId:
+ case RC_MenuGetItemPos:
+ case RC_MenuIsSeperator:
+ case RC_MenuIsItemChecked:
+ case RC_MenuIsItemEnabled:
+ case RC_MenuGetItemText:
+ case RC_MenuGetItemCommand:
+ case RC_MenuHasSubMenu:
+ case RC_MenuSelect:
+ {
+ PopupMenu *pPopup = NULL;
+ MenuBar *pMenuBar = NULL;
+ Menu *pMenu;
+
+ USHORT nErr = GetCurrentMenues( pPopup, pMenuBar, pMenu );
+
+ if ( !pMenu )
+ {
+ if ( nErr == 1 )
+ ReportError( GEN_RES_STR0( S_NO_POPUP ) );
+ else
+ ReportError( GEN_RES_STR0( S_NO_SUBMENU ) );
+ break;
+ }
+
+ USHORT nItemCount = 0;
+ switch ( nMethodId )
+ {
+ case RC_MenuGetItemCount:
+ case RC_MenuGetItemId:
+ case RC_MenuIsSeperator:
+ {
+ nItemCount = pMenu->GetItemCount();
+ if ( pMenu->GetMenuFlags() & MENU_FLAG_HIDEDISABLEDENTRIES )
+ { // jep, we have to adjust the count
+ BOOL bLastWasSeperator = TRUE; // TRUE for Separator at the top
+ for ( USHORT i = 0 ; i < pMenu->GetItemCount() ; i++ )
+ {
+ if ( !pMenu->IsItemEnabled( pMenu->GetItemId( i ) ) )
+ nItemCount--;
+ else
+ {
+ if ( pMenu->GetItemType( i ) == MENUITEM_SEPARATOR && bLastWasSeperator )
+ nItemCount--;
+ bLastWasSeperator = pMenu->GetItemType( i ) == MENUITEM_SEPARATOR;
+ }
+ }
+ if ( bLastWasSeperator ) // Separator at bottom
+ nItemCount--;
+ }
+ }
+ break;
+ }
+
+ // for certain methods calculate the physical index (reinserting the hidden entries)
+ USHORT nPhysicalIndex = 0;
+ switch ( nMethodId )
+ {
+ case RC_MenuGetItemId:
+ case RC_MenuIsSeperator:
+ {
+ nPhysicalIndex = nNr1;
+ if ( pMenu->GetMenuFlags() & MENU_FLAG_HIDEDISABLEDENTRIES )
+ { // jep, we have to adjust the position
+ BOOL bLastWasSeperator = TRUE; // TRUE for Separator at the top
+ USHORT nVisibleCount = 0;
+ for ( USHORT i = 0 ; i < pMenu->GetItemCount() && nVisibleCount < nNr1 ; i++ )
+ {
+ if ( pMenu->IsItemEnabled( pMenu->GetItemId( i ) )
+ && !( pMenu->GetItemType( i ) == MENUITEM_SEPARATOR && bLastWasSeperator ) )
+ {
+ nVisibleCount++;
+ bLastWasSeperator = pMenu->GetItemType( i ) == MENUITEM_SEPARATOR;
+ }
+ else
+ nPhysicalIndex++;
+ }
+ DBG_ASSERT( nVisibleCount == nNr1, "Adaption of Index failed: nVisibleCount != nNr1" );
+ }
+ }
+ break;
+ }
+
+
+
+ switch ( nMethodId )
+ {
+ case RC_MenuGetItemCount:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)nItemCount );
+ }
+ break;
+ case RC_MenuGetItemId:
+ {
+ if ( ValueOK(aSmartMethodId, RcString( nMethodId ),nNr1,nItemCount) )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)pMenu->GetItemId(nPhysicalIndex-1) );
+ }
+ break;
+ case RC_MenuGetItemPos:
+ {
+ USHORT nLogicalPos = pMenu->GetItemPos(nNr1);
+ if ( MENU_ITEM_NOTFOUND != nLogicalPos && pMenu->GetMenuFlags() & MENU_FLAG_HIDEDISABLEDENTRIES )
+ { // jep, we have to adjust the position
+ if ( !pMenu->IsItemEnabled( nNr1 ) )
+ nLogicalPos = MENU_ITEM_NOTFOUND;
+ else
+ {
+ BOOL bLastWasSeperator = FALSE;
+ for ( int i = nLogicalPos ; i >= 0 ; i-- )
+ {
+ if ( !pMenu->IsItemEnabled( pMenu->GetItemId( sal::static_int_cast< USHORT >(i) ) ) ||
+ ( pMenu->GetItemType( sal::static_int_cast< USHORT >(i) ) == MENUITEM_SEPARATOR && bLastWasSeperator ) )
+ nLogicalPos--;
+ bLastWasSeperator = pMenu->GetItemType( sal::static_int_cast< USHORT >(i) ) == MENUITEM_SEPARATOR;
+ }
+ }
+ }
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)(nLogicalPos+1) );
+ }
+ break;
+ case RC_MenuIsSeperator:
+ {
+ if ( ValueOK(aSmartMethodId, RcString( nMethodId ),nNr1,nItemCount) )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)(pMenu->GetItemType(nPhysicalIndex-1) == MENUITEM_SEPARATOR) );
+ }
+ break;
+ case RC_MenuIsItemChecked:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)pMenu->IsItemChecked(nNr1) );
+ }
+ break;
+ case RC_MenuIsItemEnabled:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)pMenu->IsItemEnabled(nNr1) );
+ }
+ break;
+ case RC_MenuGetItemText:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (String)pMenu->GetItemText(nNr1) );
+ }
+ break;
+ case RC_MenuGetItemCommand:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (String)pMenu->GetItemCommand(nNr1) );
+ }
+ break;
+ case RC_MenuHasSubMenu:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (BOOL)(pMenu->GetPopupMenu(nNr1) != NULL) );
+ }
+ break;
+ case RC_MenuSelect:
+ {
+ if ( pMenu->GetPopupMenu(nNr1) )
+ {
+ if ( !aSubMenuId1.GetNum() )
+ aSubMenuId1 = SmartId(nNr1);
+ else if ( !aSubMenuId2.GetNum() )
+ aSubMenuId2 = SmartId(nNr1);
+ else if ( !aSubMenuId3.GetNum() )
+ aSubMenuId3 = SmartId(nNr1);
+
+ if ( pPopup )
+ pPopup->SelectEntry(nNr1);
+ else
+ pMenuBar->SelectEntry(nNr1);
+ }
+ else
+ {
+ if ( pPopup )
+ {
+ pPopup->EndExecute(nNr1);
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ }
+ else
+ {
+ pMenuBar->SelectEntry(nNr1);
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ }
+ }
+ }
+ break;
+ }
+ }
+ break;
+ case RC_SetControlType:
+ {
+ DirectLog( S_QAError, GEN_RES_STR0( S_DEPRECATED ) );
+ }
+ break;
+ case RC_Kill:
+ case RC_RmDir:
+ case RC_MkDir:
+ case RC_FileCopy:
+ case RC_Name:
+ case RC_Dir:
+ case RC_FileLen:
+ case RC_FileDateTime:
+ {
+ long nErrorcode = FSYS_ERR_OK;
+ switch ( nMethodId )
+ {
+ case RC_Kill:
+ {
+ DirEntry aFile( aString1 );
+ nErrorcode = aFile.GetError();
+ if ( FSYS_ERR_OK == nErrorcode && FileStat( aFile ).IsKind( FSYS_KIND_FILE ) )
+ nErrorcode = aFile.Kill();
+ else
+ nErrorcode = FSYS_ERR_NOTAFILE;
+ }
+ break;
+ case RC_RmDir:
+ {
+ DirEntry aDir( aString1 );
+ nErrorcode = aDir.GetError();
+ if ( FSYS_ERR_OK == nErrorcode && FileStat( aDir ).IsKind( FSYS_KIND_DIR ) )
+ nErrorcode = aDir.Kill();
+ else
+ nErrorcode = FSYS_ERR_NOTADIRECTORY;
+ }
+ break;
+ case RC_MkDir:
+ {
+ DirEntry aDir( aString1 );
+ nErrorcode = aDir.GetError();
+ if ( !nErrorcode && !aDir.MakeDir() )
+ nErrorcode = FSYS_ERR_UNKNOWN;
+// Workaround fr Bug 60693
+// nErrorcode = aDir.GetError();
+ }
+ break;
+ case RC_FileCopy:
+ {
+ nErrorcode = DirEntry( aString1 ).CopyTo( DirEntry( aString2 ), FSYS_ACTION_COPYFILE );
+ }
+ break;
+ case RC_Name:
+ {
+ nErrorcode = DirEntry( aString1 ).MoveTo( DirEntry( aString2 ) );
+ }
+ break;
+ case RC_Dir:
+ {
+
+ String aPath;
+ USHORT nDirFlags = 0;
+// from basic/source/inc/runtime.hxx
+#define Sb_ATTR_NORMAL 0x0000
+#define Sb_ATTR_HIDDEN 0x0002
+#define Sb_ATTR_SYSTEM 0x0004
+#define Sb_ATTR_VOLUME 0x0008
+#define Sb_ATTR_DIRECTORY 0x0010
+#define Sb_ATTR_ARCHIVE 0x0020
+ // copied from Basic and adapted basic/source/runtime/methods.cxx Revision 1.54
+ if ( (nParams & PARAM_STR_1) )
+ {
+ delete pDir;
+ pDir = NULL; // wg. Sonderbehandlung Sb_ATTR_VOLUME
+ DirEntry aEntry( aString1 );
+ FileStat aStat( aEntry );
+ if(!aStat.GetError() && (aStat.GetKind() & FSYS_KIND_FILE))
+ {
+ // OK, only a filename
+ // cut off path (VB4)
+ aPath = aEntry.GetName();
+ }
+ else
+ {
+ USHORT nFlags = 0;
+ if ( (nParams & PARAM_USHORT_1) )
+ nDirFlags = nFlags = nNr1;
+ else
+ nDirFlags = nFlags = Sb_ATTR_HIDDEN | Sb_ATTR_SYSTEM | Sb_ATTR_DIRECTORY;
+
+ // Nur diese Bitmaske ist unter Windows erlaubt
+ #ifdef WIN
+ if( nFlags & ~0x1E )
+ {
+ nDirFlags = 0;
+ StarBASIC::Error( SbERR_BAD_ARGUMENT );
+ }
+ #endif
+ // Sb_ATTR_VOLUME wird getrennt gehandelt
+ if( nDirFlags & Sb_ATTR_VOLUME )
+ aPath = aEntry.GetVolume();
+ else
+ {
+ // Die richtige Auswahl treffen
+ USHORT nMode = FSYS_KIND_FILE;
+ if( nFlags & Sb_ATTR_DIRECTORY )
+ nMode |= FSYS_KIND_DIR;
+ if( nFlags == Sb_ATTR_DIRECTORY )
+ nMode = FSYS_KIND_DIR;
+ pDir = new Dir( aEntry, (DirEntryKind) nMode );
+ nErrorcode = pDir->GetError();
+ nDirPos = 0;
+ }
+ }
+ }
+
+ if( pDir )
+ {
+ for( ;; )
+ {
+ if( nDirPos >= pDir->Count() )
+ {
+ delete pDir;
+ pDir = NULL;
+ aPath.Erase();
+ break;
+ }
+ DirEntry aNextEntry=(*(pDir))[nDirPos++];
+ aPath = aNextEntry.GetName(); //Full();
+ #ifdef WIN
+ aNextEntry.ToAbs();
+ String sFull(aNextEntry.GetFull());
+ unsigned nFlags;
+
+ if (_dos_getfileattr( sFull.GetStr(), &nFlags ))
+ nErrorcode = FSYS_ERR_NOTEXISTS;
+ else
+ {
+ INT16 nCurFlags = nDirFlags;
+ if( (nCurFlags == Sb_ATTR_NORMAL)
+ && !(nFlags & ( _A_HIDDEN | _A_SYSTEM | _A_VOLID | _A_SUBDIR ) ) )
+ break;
+ else if( (nCurFlags & Sb_ATTR_HIDDEN) && (nFlags & _A_HIDDEN) )
+ break;
+ else if( (nCurFlags & Sb_ATTR_SYSTEM) && (nFlags & _A_SYSTEM) )
+ break;
+ else if( (nCurFlags & Sb_ATTR_VOLUME) && (nFlags & _A_VOLID) )
+ break;
+ else if( (nCurFlags & Sb_ATTR_DIRECTORY) && (nFlags & _A_SUBDIR) )
+ break;
+ }
+ #else
+ break;
+ #endif
+ }
+ }
+ if ( !nErrorcode )
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, aPath );
+ }
+
+
+
+/* keep old Implementation for now
+ // neues Verzeichnis einlesen
+ if ( (nParams & PARAM_STR_1) )
+ {
+ if ( pDir )
+ {
+ delete pDir;
+ pDir = NULL;
+ }
+ DirEntryKind aDirEntryKind = FSYS_KIND_FILE | FSYS_KIND_DIR;
+ if ( (nParams & PARAM_USHORT_1) && nNr1 )
+ {
+ if ( nNr1 & 16 )
+ aDirEntryKind = FSYS_KIND_DIR;
+ else
+ ReportError( GEN_RES_STR0( S_SELECTION_BY_ATTRIBUTE_ONLY_DIRECTORIES ) );
+ }
+
+ DirEntry aEntry( aString1 );
+ nErrorcode = aEntry.GetError();
+ if ( !nErrorcode )
+ {
+ nDirPos = 0;
+ FileStat aFS( aEntry );
+ if ( !aFS.IsKind( FSYS_KIND_WILD ) && !aFS.IsKind( FSYS_KIND_DIR ) && aEntry.Exists() )
+ { // Sonderbehandlung fr genau einen Eintrag
+ if ( !aFS.IsKind( FSYS_KIND_DIR ) && ( aDirEntryKind == FSYS_KIND_DIR ) )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, String() );
+ else
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (String)(aEntry.GetName()) );
+
+ break;
+ }
+ else
+ {
+ pDir = new Dir( aEntry, aDirEntryKind );
+ nErrorcode = pDir->GetError();
+ }
+ }
+ }
+
+ if ( !pDir )
+ pDir = new Dir;
+
+ if ( !nErrorcode && ValueOK( aSmartMethodId, GEN_RES_STR0( S_NO_MORE_FILES ), nDirPos+1, pDir->Count()+1 ) )
+ {
+ if ( nDirPos == pDir->Count() )
+ pRet->GenReturn ( RET_Value, aSmartMethodId, String() );
+ else
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (String)((*pDir)[ nDirPos ].GetName()) );
+ nDirPos++;
+ }*/
+ }
+ break;
+ case RC_FileLen:
+ {
+ DirEntry aFile( aString1 );
+ nErrorcode = aFile.GetError();
+ if ( FSYS_ERR_OK == nErrorcode )
+ {
+ FileStat aFS( aFile );
+ pRet->GenReturn ( RET_Value, aSmartMethodId, static_cast<comm_ULONG>(aFS.GetSize()) ); //GetSize() ULONG != comm_ULONG on 64bit
+ nErrorcode = aFS.GetError();
+ }
+ }
+ break;
+ case RC_FileDateTime:
+ {
+ DirEntry aFile( aString1 );
+ nErrorcode = aFile.GetError();
+ if ( FSYS_ERR_OK == nErrorcode )
+ {
+ FileStat aStat( aFile );
+ Time aTime( aStat.TimeModified() );
+ Date aDate( aStat.DateModified() );
+ nErrorcode = aStat.GetError();
+
+ double fSerial = (double)( aDate - Date(30,12,1899) );
+ long nSeconds = aTime.GetHour();
+ nSeconds *= 3600;
+ nSeconds += aTime.GetMin() * 60;
+ nSeconds += aTime.GetSec();
+ double nDays = ((double)nSeconds) / (double)(24.0*3600.0);
+ fSerial += nDays;
+
+ SbxValueRef xValue = new SbxValue( SbxDATE );
+ xValue->PutDate( fSerial );
+
+ pRet->GenReturn ( RET_Value, aSmartMethodId, *xValue );
+ }
+ }
+ break;
+ }
+ switch ( nErrorcode )
+ {
+ case FSYS_ERR_OK:
+ break;
+ case FSYS_ERR_MISPLACEDCHAR:
+ {
+ ReportError( CUniString("MISPLACEDCHAR") );
+ }
+ break;
+ case FSYS_ERR_INVALIDCHAR:
+ {
+ ReportError( CUniString("INVALIDCHAR") );
+ }
+ break;
+ case FSYS_ERR_NOTEXISTS:
+ {
+ ReportError( CUniString("NOTEXISTS") );
+ }
+ break;
+ case FSYS_ERR_ALREADYEXISTS:
+ {
+ ReportError( CUniString("ALREADYEXISTS") );
+ }
+ break;
+ case FSYS_ERR_NOTADIRECTORY:
+ {
+ ReportError( CUniString("NOTADIRECTORY") );
+ }
+ break;
+ case FSYS_ERR_NOTAFILE:
+ {
+ ReportError( CUniString("NOTAFILE") );
+ }
+ break;
+ case FSYS_ERR_INVALIDDEVICE:
+ {
+ ReportError( CUniString("INVALIDDEVICE") );
+ }
+ break;
+ case FSYS_ERR_ACCESSDENIED:
+ {
+ ReportError( CUniString("ACCESSDENIED") );
+ }
+ break;
+ case FSYS_ERR_LOCKVIOLATION:
+ {
+ ReportError( CUniString("LOCKVIOLATION") );
+ }
+ break;
+ case FSYS_ERR_VOLUMEFULL:
+ {
+ ReportError( CUniString("VOLUMEFULL") );
+ }
+ break;
+ case FSYS_ERR_ISWILDCARD:
+ {
+ ReportError( CUniString("ISWILDCARD") );
+ }
+ break;
+ case FSYS_ERR_NOTSUPPORTED:
+ {
+ ReportError( CUniString("NOTSUPPORTED") );
+ }
+ break;
+ case FSYS_ERR_UNKNOWN:
+ {
+ ReportError( CUniString("UNKNOWN") );
+ }
+ break;
+ default:
+ {
+ ReportError( CUniString("Not an FSYS Error") );
+ }
+ }
+
+ }
+ break;
+ case RC_TypeKeysDelay:
+ {
+ if( (nParams & PARAM_BOOL_1) )
+ {
+ bDoTypeKeysDelay = bBool1;
+ }
+ else if( nParams & PARAM_USHORT_1 )
+ {
+ nMinTypeKeysDelay = nNr1;
+ if( nParams & PARAM_USHORT_2 )
+ nMaxTypeKeysDelay = nNr2;
+ else
+ nMaxTypeKeysDelay = nMinTypeKeysDelay;
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_GetMouseStyle:
+ {
+ Pointer aPointer;
+// if ( DragManager::GetDragManager() )
+// aPointer = DragManager::GetDragManager()->GetDragPointer();
+// else
+ {
+ Window *pActualWin = GetMouseWin();
+ if ( pActualWin )
+ aPointer = pActualWin->GetPointer();
+ else
+ {
+ ReportError( GEN_RES_STR1( S_POINTER_OUTSIDE_APPWIN, RcString( nMethodId ) ) );
+ aPointer = Pointer( POINTER_NULL );
+ }
+ }
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_ULONG)aPointer.GetStyle() );
+ }
+ break;
+ case RC_UnpackStorage:
+ {
+ if( (nParams & PARAM_STR_1) )
+ {
+ String aFileName( aString1 );
+ DirEntry aDestPath;
+ if( (nParams & PARAM_STR_2) )
+ aDestPath = DirEntry( aString2 );
+ else
+ {
+ aDestPath = DirEntry( aFileName );
+ aDestPath.SetExtension( CUniString( "plaintext" ) );
+ }
+
+#if OSL_DEBUG_LEVEL > 1
+ USHORT nEntries = Dir( aDestPath, FSYS_KIND_FILE | FSYS_KIND_DIR ).Count();
+ (void) nEntries; /* avoid warning about unused parameter */
+#endif
+ // The Count is only larger than 2 is the path is a directory which is not empty
+ // the Count of 2 results from the "." and ".." directory
+ if ( Dir( aDestPath, FSYS_KIND_FILE | FSYS_KIND_DIR ).Count() > 2 )
+ DirectLog( S_QAError, GEN_RES_STR1( S_DIRECTORY_NOT_EMPTY, aDestPath.GetFull() ) );
+
+ SotStorageRef xStorage = new SotStorage( aFileName, STREAM_STD_READ );
+ if ( xStorage->GetError() )
+ ReportError( GEN_RES_STR2(S_UNPACKING_STORAGE_FAILED, aFileName, aDestPath.GetFull()) );
+ else
+ UnpackStorage( xStorage, aDestPath );
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_CloseSysDialog:
+ case RC_ExistsSysDialog:
+ {
+ if( (nParams & PARAM_USHORT_1) )
+ {
+ Reference < XCancellable > xPicker;
+ switch( nNr1 )
+ {
+ case CONST_FilePicker:
+ {
+ xPicker.set( Reference < XCancellable >( svt::GetTopMostFilePicker(), UNO_QUERY ) );
+ }
+ break;
+ case CONST_FolderPicker:
+ {
+ xPicker.set( Reference < XCancellable >( svt::GetTopMostFolderPicker(), UNO_QUERY ) );
+ }
+ break;
+ default:
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ switch( nMethodId )
+ {
+ case RC_CloseSysDialog:
+ {
+ if ( xPicker.is() )
+ xPicker->cancel();
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_ExistsSysDialog:
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_BOOL)xPicker.is() );
+ }
+ break;
+ default:
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_SAXCheckWellformed:
+ case RC_SAXReadFile:
+
+ case RC_SAXGetNodeType:
+ case RC_SAXGetAttributeCount:
+ case RC_SAXGetAttributeName:
+ case RC_SAXGetAttributeValue:
+ case RC_SAXGetChildCount:
+ case RC_SAXGetElementName:
+ case RC_SAXGetChars:
+
+ case RC_SAXSeekElement:
+ case RC_SAXHasElement:
+ case RC_SAXGetElementPath:
+
+ case RC_SAXRelease:
+ {
+ HandleSAXParser();
+ }
+ break;
+ case RC_RecordMacro:
+ {
+ if ( ! (nParams & PARAM_BOOL_1) )
+ bBool1 = TRUE;
+
+ MacroRecorder::GetMacroRecorder()->SetActionRecord( bBool1 );
+ }
+ break;
+ case RC_GetDocumentCount :
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_USHORT)GetDocWinCount() );
+ }
+ break;
+ case RC_ActivateDocument :
+ {
+ if( nParams & PARAM_USHORT_1 )
+ {
+ if ( ValueOK(aSmartMethodId, RcString( nMethodId ), nNr1, GetDocWinCount() ) )
+ {
+ Window* pWin = GetDocWin( nNr1-1 );
+ if ( pWin )
+ {
+ pWin->ToTop();
+ pWin->GrabFocus();
+ }
+ }
+ }
+ else
+ ReportError( GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ }
+ break;
+ case RC_GetSystemLanguage :
+ {
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (comm_USHORT)Application::GetSettings().GetLanguage() );
+ }
+ break;
+ case RC_CatchGPF :
+ {
+ if( (nParams & PARAM_BOOL_1) )
+ bCatchGPF = bBool1;
+ else
+ bCatchGPF = TRUE;
+ }
+ break;
+ case RC_IsProduct :
+ {
+ BOOL bIsProduct;
+ #ifdef DBG_UTIL
+ bIsProduct = FALSE;
+ #else
+ bIsProduct = TRUE;
+ #endif
+ pRet->GenReturn ( RET_Value, aSmartMethodId, (BOOL)bIsProduct );
+ }
+ break;
+ case RC_UsePostEvents :
+ {
+ if( (nParams & PARAM_BOOL_1) )
+ bUsePostEvents = bBool1;
+ else
+ bUsePostEvents = TRUE;
+ }
+ break;
+ default:
+ ReportError( GEN_RES_STR1( S_UNKNOWN_COMMAND, RcString( nMethodId ) ) );
+ }
+ SendProfile( RcString(nMethodId) );
+ delete this;
+ return TRUE;
+}
+
+
+BOOL StatementCommand::UnpackStorage( SotStorageRef xStorage, DirEntry &aBaseDir )
+{
+ SvStorageInfoList aList;
+ xStorage->FillInfoList( &aList );
+
+ for( USHORT i = 0; i < aList.Count(); i++ )
+ {
+ SvStorageInfo& rInfo = aList.GetObject( i );
+ String aName = rInfo.GetName();
+ DirEntry aPath ( aBaseDir );
+ aPath += DirEntry( aName );
+ BOOL bIsStorage = xStorage->IsStorage( aName );
+ if ( bIsStorage )
+ {
+ SotStorageRef xSubStorage = xStorage->OpenSotStorage( aName, STREAM_STD_READ );
+ if ( xSubStorage->GetError() )
+ {
+ ReportError( GEN_RES_STR2(S_UNPACKING_STORAGE_FAILED, aName, aPath.GetFull()) );
+ return FALSE;
+ }
+ UnpackStorage( xSubStorage, aPath );
+ }
+ else
+ {
+ if ( !aPath.MakeDir( TRUE ) )
+ {
+ ReportError( GEN_RES_STR1(S_CANNOT_CREATE_DIRECTORY, aPath.GetFull()) );
+ return FALSE;
+ }
+ SotStorageStreamRef xStream = xStorage->OpenSotStream( aName, STREAM_STD_READ );
+ SvFileStream aDestination( aPath.GetFull(), STREAM_STD_READWRITE | STREAM_TRUNC );
+ (*xStream) >> aDestination;
+ if ( aDestination.GetError() != ERRCODE_NONE )
+ {
+ ReportError( GEN_RES_STR2(S_UNPACKING_STORAGE_FAILED, aName, aPath.GetFull()) );
+ return FALSE;
+ }
+ aDestination.Close();
+ }
+ }
+ return TRUE;
+}
+
+
+// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
+
+StatementControl::StatementControl( SCmdStream *pCmdIn, USHORT nControlIdType )
+: StatementList()
+, nNr1( 0 )
+, nNr2( 0 )
+, nNr3( 0 )
+, nNr4( 0 )
+, nLNr1( 0 )
+, aString1()
+, aString2()
+, bBool1(FALSE)
+, bBool2(FALSE)
+{
+ QueStatement( NULL );
+ if ( nControlIdType == SIControl )
+ {
+ comm_ULONG nId;
+ pCmdIn->Read( nId );
+ aUId = SmartId( nId );
+ }
+ else if ( nControlIdType == SIStringControl )
+ {
+ String aId;
+ pCmdIn->Read( aId );
+ aUId = SmartId( aId );
+ }
+ else
+ {
+ DBG_ERROR( "Wrong ControlType" );
+ }
+
+ pCmdIn->Read( nMethodId );
+ pCmdIn->Read( nParams );
+
+ if( nParams & PARAM_USHORT_1 ) pCmdIn->Read( nNr1 );
+ if( nParams & PARAM_USHORT_2 ) pCmdIn->Read( nNr2 );
+ if( nParams & PARAM_USHORT_3 ) pCmdIn->Read( nNr3 );
+ if( nParams & PARAM_USHORT_4 ) pCmdIn->Read( nNr4 );
+ if( nParams & PARAM_ULONG_1 ) pCmdIn->Read( nLNr1 );
+ if( nParams & PARAM_STR_1 ) pCmdIn->Read( aString1 );
+ if( nParams & PARAM_STR_2 ) pCmdIn->Read( aString2 );
+ if( nParams & PARAM_BOOL_1 ) pCmdIn->Read( bBool1 );
+ if( nParams & PARAM_BOOL_2 ) pCmdIn->Read( bBool2 );
+
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Reading Control: UId: " );
+ m_pDbgWin->AddText( aUId.GetText() );
+ m_pDbgWin->AddText( " Methode: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nMethodId ) );
+ m_pDbgWin->AddText( " Params:" );
+ if( nParams & PARAM_USHORT_1 ) {m_pDbgWin->AddText( " n1:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr1 ) );}
+ if( nParams & PARAM_USHORT_2 ) {m_pDbgWin->AddText( " n2:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr2 ) );}
+ if( nParams & PARAM_USHORT_3 ) {m_pDbgWin->AddText( " n3:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr3 ) );}
+ if( nParams & PARAM_USHORT_4 ) {m_pDbgWin->AddText( " n4:" );m_pDbgWin->AddText( String::CreateFromInt32( nNr4 ) );}
+ if( nParams & PARAM_ULONG_1 ) {m_pDbgWin->AddText( " nl1:" );m_pDbgWin->AddText( String::CreateFromInt64( nLNr1 ) );}
+ if( nParams & PARAM_STR_1 ) {m_pDbgWin->AddText( " s1:" );m_pDbgWin->AddText( aString1 );}
+ if( nParams & PARAM_STR_2 ) {m_pDbgWin->AddText( " s2:" );m_pDbgWin->AddText( aString2 );}
+/* if( nParams & PARAM_BOOL_1 ) pCmdIn->Read( bBool1 );
+ if( nParams & PARAM_BOOL_2 ) pCmdIn->Read( bBool2 );*/
+ m_pDbgWin->AddText( "\n" );
+#endif
+}
+
+BOOL IsDialog(Window *pWin)
+{ // Alles was von SystemWindow abgeleitet ist
+ if ( !pWin )
+ return FALSE;
+
+ switch (pWin->GetType())
+ {
+ case WINDOW_FLOATINGWINDOW:
+ case WINDOW_DOCKINGWINDOW:
+ case WINDOW_MODELESSDIALOG:
+ case WINDOW_DIALOG:
+ case WINDOW_MODALDIALOG:
+ case WINDOW_WORKWINDOW:
+ case WINDOW_TABDIALOG:
+
+ case WINDOW_MESSBOX:
+ case WINDOW_INFOBOX:
+ case WINDOW_WARNINGBOX:
+ case WINDOW_ERRORBOX:
+ case WINDOW_QUERYBOX:
+ case WINDOW_BUTTONDIALOG:
+ case WINDOW_FILEDIALOG:
+ case WINDOW_PRINTDIALOG:
+ case WINDOW_PRINTERSETUPDIALOG:
+
+// ab hier nicht ansprechbar (da nicht implementiert)
+ case WINDOW_SYSWINDOW:
+ case WINDOW_SYSTEMDIALOG:
+ case WINDOW_COLORDIALOG:
+ case WINDOW_FONTDIALOG:
+ case WINDOW_PATHDIALOG:
+
+
+ return TRUE;
+// break;
+ default:
+ return FALSE;
+// break;
+ }
+}
+
+
+BOOL IsAccessable(Window *pWin)
+{
+ if ( pWin == NULL )
+ return FALSE;
+
+ return pWin->IsEnabled() && pWin->IsInputEnabled();
+}
+
+
+
+// neue Hilfsfunktion
+static Window*ImpGetButton( Window *pBase, WinBits nMask, WinBits nWinBits )
+{
+ USHORT n = pBase->GetChildCount();
+ for( USHORT i = 0 ; i < n; i++ ) {
+ Window *pChild = pBase->GetChild(i);
+ if( pChild->GetType() == WINDOW_OKBUTTON
+ || pChild->GetType() == WINDOW_CANCELBUTTON
+ || pChild->GetType() == WINDOW_HELPBUTTON
+ || pChild->GetType() == WINDOW_PUSHBUTTON )
+ if( !nMask || ( pChild->GetStyle() & nMask ) == nWinBits )
+ return pChild;
+ }
+ return NULL;
+}
+
+BOOL StatementControl::ControlOK( Window *pControl, const sal_Char* cBezeichnung )
+{
+ if ( pControl && ( ( ( IsAccessable(pControl) || (nMethodId & M_WITH_RETURN) ) &&
+ pControl->IsVisible() ) ||
+ aUId.Matches( UID_ACTIVE ) ) )
+ return TRUE;
+ else
+ {
+ UniString aBezeichnung( cBezeichnung, RTL_TEXTENCODING_ASCII_US );
+ if ( aBezeichnung.Len() > 0 )
+ {
+ if (!pControl)
+ ReportError( aUId, GEN_RES_STR1( S_WIN_NOT_FOUND, aBezeichnung ) );
+ else if ( !pControl->IsVisible() )
+ ReportError( aUId, GEN_RES_STR1( S_WIN_INVISIBLE, aBezeichnung ) );
+ else
+ ReportError( aUId, GEN_RES_STR1( S_WIN_DISABLED, aBezeichnung ) );
+ }
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( aBezeichnung.AppendAscii(" NotFound or Disabled or Invisible") );
+ #endif
+
+ return FALSE;
+ }
+}
+
+
+BOOL StatementList::ValueOK( SmartId aId, String aBezeichnung, ULONG nValue, ULONG nMax )
+{
+
+ if ( nMax < nValue )
+ {
+ if ( aBezeichnung.Len() > 0 )
+ ReportError( aId, GEN_RES_STR3( S_NUMBER_TOO_BIG, aBezeichnung, UniString::CreateFromInt32( nValue ), UniString::CreateFromInt32( nMax ) ) );
+ return FALSE;
+ }
+ if ( nValue < 1 )
+ {
+ if ( aBezeichnung.Len() > 0 )
+ ReportError( aId, GEN_RES_STR3c3( S_NUMBER_TOO_SMALL, aBezeichnung, UniString::CreateFromInt32( nValue ), "1" ) );
+ return FALSE;
+ }
+ return TRUE;
+}
+
+USHORT StatementList::GetCurrentMenues( PopupMenu *&pPopup, MenuBar *&pMenuBar, Menu *&pMenu )
+{
+ if ( WinPtrValid( pMenuWindow ) )
+ pMenuBar = pMenuWindow->GetMenuBar();
+
+ if ( pMenuBar ) // use MenuBar as base
+ pMenu = pMenuBar;
+ else // use contextmenu as base
+ {
+ pMenu = PopupMenu::GetActivePopupMenu();
+ pPopup = PopupMenu::GetActivePopupMenu();
+ }
+
+ if ( !pMenu )
+ return 1;
+
+ if ( aSubMenuId1.GetNum() )
+ {
+ pPopup = pMenu->GetPopupMenu(
+ sal::static_int_cast< USHORT >(aSubMenuId1.GetNum()));
+ pMenu = pPopup;
+ }
+
+ if ( pMenu && aSubMenuId2.GetNum() )
+ {
+ pPopup = pMenu->GetPopupMenu(
+ sal::static_int_cast< USHORT >(aSubMenuId2.GetNum()));
+ pMenu = pPopup;
+ }
+
+ if ( pMenu && aSubMenuId3.GetNum() )
+ {
+ pPopup = pMenu->GetPopupMenu(
+ sal::static_int_cast< USHORT >(aSubMenuId3.GetNum()));
+ pMenu = pPopup;
+ }
+
+ return 0;
+}
+
+void StatementControl::AnimateMouse( Window *pControl, TTHotSpots aWohin )
+{
+ Point aZiel;
+
+ switch (aWohin)
+ {
+ case MitteLinks:
+ {
+ long nHeight = pControl->GetSizePixel().Height();
+ aZiel.X() += 5;
+ aZiel.Y() += nHeight / 2;
+ }
+ break;
+ case Mitte:
+ {
+ Size aSize = pControl->GetOutputSizePixel();
+ aZiel.Move( aSize.Width() / 2, aSize.Height() / 2 );
+ }
+ break;
+ case MitteOben:
+ {
+ long nWidth = pControl->GetSizePixel().Width();
+ aZiel.X() += nWidth / 2;
+ aZiel.Y() += 5;
+ }
+ break;
+ }
+ AnimateMouse( pControl, aZiel );
+}
+
+
+void StatementControl::AnimateMouse( Window *pControl, Point aWohin )
+{
+ Point aAkt = pControl->GetPointerPosPixel();
+ Point aZiel = aWohin;
+
+ long nSteps;
+ Point aDiff = aAkt - aZiel;
+
+ if ( Abs(aDiff.X()) < Abs(aDiff.Y()) )
+ nSteps = Abs(aDiff.Y()) / 5;
+ else
+ nSteps = Abs(aDiff.X()) / 5;
+ if ( nSteps == 0 )
+ return;
+
+ aDiff *= 1000;
+ aDiff /= nSteps;
+
+ StatementList::bExecuting = TRUE; // Bah ist das ein ekliger Hack
+ // Das verhindert, da schon der nchste Befehl ausgefhrt wird.
+
+ for ( ; nSteps ; nSteps-- )
+ {
+ if ( Abs((aAkt - pControl->GetPointerPosPixel()).X()) > 5 ||
+ Abs((aAkt - pControl->GetPointerPosPixel()).Y()) > 5 )
+ nSteps = 1;
+ aAkt = aZiel + aDiff * nSteps / 1000;
+ pControl->SetPointerPosPixel(aAkt);
+ SafeReschedule();
+ }
+ pControl->SetPointerPosPixel(aZiel);
+ StatementList::bExecuting = FALSE; // Bah ist das ein ekliger Hack
+}
+
+
+BOOL StatementControl::MaybeDoTypeKeysDelay( Window *pTestWindow )
+{
+ if ( bDoTypeKeysDelay )
+ {
+ ULONG nTimeWait = nMinTypeKeysDelay;
+ if ( nMaxTypeKeysDelay != nMinTypeKeysDelay )
+ nTimeWait += Time::GetSystemTicks() % ( nMaxTypeKeysDelay - nMinTypeKeysDelay );
+ Timer aTimer;
+ aTimer.SetTimeout( nTimeWait );
+ aTimer.Start();
+ StatementList::bExecuting = TRUE; // Bah ist das ein ekliger Hack
+ // Das verhindert, da schon der nchste Befehl ausgefhrt wird.
+ while ( aTimer.IsActive() )
+ {
+ SafeReschedule( TRUE );
+ }
+ StatementList::bExecuting = FALSE; // Bah ist das ein ekliger Hack
+ if ( !WinPtrValid(pTestWindow ) )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_WINDOW_DISAPPEARED, MethodString( nMethodId ) ) );
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+BOOL StatementControl::HandleVisibleControls( Window *pControl )
+{
+ if( pControl ) // Also auch bei Disabled nicht jedoch bei Invisible
+ {
+ switch( nMethodId )
+ {
+ case M_IsEnabled:
+ pRet->GenReturn ( RET_Value, aUId, IsAccessable(pControl) );
+ break;
+ case M_IsVisible:
+ pRet->GenReturn ( RET_Value, aUId, pControl->IsVisible() );
+ break;
+ case M_GetPosX:
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr FloatingWindows
+ if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr TabDialoge
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr Border
+ if ( (nParams & PARAM_BOOL_1) && bBool1 )
+ pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_SPLITWINDOW )
+ {
+ Point aPos = pControl->GetPosPixel();
+ aPos = pControl->GET_REAL_PARENT()->OutputToScreenPixel( aPos );
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)aPos.X() );
+ }
+ else
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetPosPixel().X() );
+ break;
+ case M_GetPosY:
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr FloatingWindows
+ if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr TabDialoge
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr Border
+ if ( (nParams & PARAM_BOOL_1) && bBool1 )
+ pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_SPLITWINDOW )
+ {
+ Point aPos = pControl->GetPosPixel();
+ aPos = pControl->GET_REAL_PARENT()->OutputToScreenPixel( aPos );
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)aPos.Y() );
+ }
+ else
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetPosPixel().Y() );
+ break;
+ case M_GetSizeX:
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr FloatingWindows
+ if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr TabDialoge
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr Border
+ if ( (nParams & PARAM_BOOL_1) && bBool1 )
+ pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetSizePixel().Width() );
+ break;
+ case M_GetSizeY:
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr FloatingWindows
+ if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr TabDialoge
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr Border
+ if ( (nParams & PARAM_BOOL_1) && bBool1 )
+ pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetSizePixel().Height() );
+ break;
+ case M_SnapShot:
+ {
+ if ( pControl->GetType() == WINDOW_DOCKINGWINDOW && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr FloatingWindows
+ if ( pControl->GetType() == WINDOW_TABCONTROL && pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_TABDIALOG )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr TabDialoge
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_BORDERWINDOW )
+ pControl = pControl->GET_REAL_PARENT(); // Sonderbehandlung fr Border
+ if ( (nParams & PARAM_BOOL_1) && bBool1 )
+ pControl = pControl->GetWindow( WINDOW_OVERLAP );
+
+ Bitmap aBmp = pControl->SnapShot();
+ if ( pControl->GetType() == WINDOW_WORKWINDOW )
+ {
+ Point aStart = pControl->GetPosPixel();
+ if ( !(nParams & PARAM_USHORT_4) )
+ {
+ nParams |= PARAM_USHORT_1;
+ nParams |= PARAM_USHORT_2;
+ nParams |= PARAM_USHORT_3;
+ nParams |= PARAM_USHORT_4;
+ nNr1 = (USHORT)-aStart.X();
+ nNr2 = (USHORT)-aStart.Y();
+ nNr3 = (USHORT)pControl->GetSizePixel().Width() + 2*(USHORT)aStart.X();
+ nNr4 = (USHORT)pControl->GetSizePixel().Height() + 2*(USHORT)aStart.Y();
+ }
+ nNr1 = std::max((USHORT)-aStart.X(),nNr1);
+ nNr2 = std::max((USHORT)-aStart.Y(),nNr2);
+ nNr3 = std::min((USHORT)(pControl->GetSizePixel().Width() + 2*(USHORT)aStart.X()),nNr3);
+ nNr4 = std::min((USHORT)(pControl->GetSizePixel().Height() + 2*(USHORT)aStart.Y()),nNr4);
+ }
+ if( nParams & PARAM_USHORT_4 )
+ { // Zuschneiden
+ Point aPt(-nNr1,-nNr2);
+ Size aSz(nNr3,nNr4);
+ VirtualDevice aVDev( *pControl );
+
+ aVDev.SetOutputSizePixel( aSz );
+ aVDev.DrawBitmap( aPt, aBmp );
+ aBmp = aVDev.GetBitmap( Point(), aSz );
+ }
+
+ SvFileStream fOut;
+ fOut.Open(aString1,STREAM_STD_WRITE);
+ aBmp.Write(fOut);
+ if ( fOut.GetError() )
+ ReportError( aUId, GEN_RES_STR1( S_ERROR_SAVING_IMAGE, UniString::CreateFromInt32( fOut.GetError() ) ) );
+ fOut.Close();
+ }
+ break;
+ case M_GetFixedTextCount:
+ {
+ pRet->GenReturn ( RET_Value, aUId, CountWinByRT( pControl, WINDOW_FIXEDTEXT, TRUE ) );
+ }
+ break;
+ case M_GetFixedText:
+ {
+ if( ( nParams & PARAM_USHORT_1 ) == 0 )
+ nNr1 = 1;
+
+ FixedText* pFixedText = (FixedText*)GetWinByRT( pControl, WINDOW_FIXEDTEXT, TRUE, nNr1-1 );
+ if ( pFixedText )
+ pRet->GenReturn ( RET_Value, aUId, pFixedText->GetText() );
+ else
+ ValueOK(aUId, MethodString( nMethodId ),nNr1,CountWinByRT( pControl, WINDOW_FIXEDTEXT, TRUE ) );
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ SendProfile( UIdString( aUId ).Append('.').Append( MethodString( nMethodId ) ) );
+ return TRUE;
+ }
+ return FALSE;
+}
+
+BOOL StatementControl::HandleCommonMethods( Window *pControl )
+{
+ switch( nMethodId ) // Diese knnen an jedem Window ausgefhrt werden
+ {
+ case M_Exists: // Oben schon Behandelt. Unterdrckt hier nur Fehler
+ case M_NotExists:
+ case M_IsEnabled:
+ case M_IsVisible:
+ case M_SnapShot:
+ break;
+ case M_Caption :
+ {
+ if ( pControl->GetText().Len() == 0 && IsDocFrame( pControl->GetWindow( WINDOW_FRAME ) ) )
+ pRet->GenReturn ( RET_Value, aUId, pControl->GetWindow( WINDOW_FRAME )->GetText());
+ else
+ pRet->GenReturn ( RET_Value, aUId, pControl->GetText());
+ }
+ break;
+ case M_GetRT:
+ {
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pControl->GetType() );
+ }
+ break;
+ case M_TypeKeys:
+ {
+ if( !(nParams & PARAM_USHORT_1) ) // Anzahl wiederholungen
+ nNr1 = 1;
+ if( !(nParams & PARAM_BOOL_1) ) // Follow Focus
+ bBool1 = FALSE; // so bleibt das bisherige Verhalten
+
+ if ( !bBool1 ) // Altes Verhalten
+ pControl->GrabFocus();
+ else // If focus is not inside given control we grab it once.
+ {
+ Window *pFocus = GetpApp()->GetFocusWindow();
+ if ( !pFocus || !pControl->IsWindowOrChild( pFocus, TRUE ) )
+ pControl->GrabFocus();
+ }
+
+
+ // maybe this can get removed since we are using GetPreferredKeyInputWindow()
+ if ( pControl->GetType() == WINDOW_COMBOBOX )
+ { // Bei COMBOBOX an das Edit direkt liefern
+ Window *pTemp = NULL;
+ for ( USHORT i = 0 ; i < pControl->GetChildCount() && !pTemp ; i++ )
+ if ( pControl->GetChild( i )->GetType() == WINDOW_EDIT )
+ pTemp = pControl->GetChild( i );
+ if ( pTemp )
+ pControl = pTemp;
+ }
+
+ Window *pDeliverHere = pControl;
+ for (int j = 0; j < nNr1; j++)
+ for (xub_StrLen i = 0; i < aString1.Len(); i++)
+ {
+ if ( StatementList::bUsePostEvents )
+ { // grab focus every time
+ Window *pFocus = GetpApp()->GetFocusWindow();
+ if ( !pFocus || !pControl->IsWindowOrChild( pFocus, TRUE ) )
+ pControl->GrabFocus();
+ }
+ if ( bBool1 ) // Jedesmal das FocusWindow finden
+ {
+ Window *pFocus = GetpApp()->GetFocusWindow();
+ if ( pFocus && pControl->IsWindowOrChild( pFocus, TRUE ) )
+ pDeliverHere = pFocus;
+ else // sonst fallback auf das Basisfenster
+ pDeliverHere = pControl;
+ }
+ pDeliverHere = pDeliverHere->GetPreferredKeyInputWindow();
+ KeyEvent aEvent;
+ if ( ((USHORT)aString1.GetChar(i)) <= 7 )
+ {
+ USHORT nVal = 0;
+ switch (aString1.GetChar(i))
+ {
+ case 1: nVal = aString1.GetChar(i+1) + (aString1.GetChar(i+2) << 8);
+ i += 2;
+ break;
+ case 3: nVal = (aString1.GetChar(i+1) << 8);
+ i++;
+ break;
+ case 5: nVal = aString1.GetChar(i+1);
+ i++;
+ break;
+ case 7: nVal = 0;
+ break;
+ }
+ // #105672#
+ // find out the keycode
+ USHORT nKeygroup = nVal & KEYGROUP_TYPE;
+ USHORT nKeyCode = nVal & KEY_CODE;
+ sal_Unicode aCh;
+ switch (nKeygroup)
+ {
+ case KEYGROUP_NUM:
+ aCh = nKeyCode - KEY_0 + '0';
+ break;
+ case KEYGROUP_ALPHA:
+ aCh = nKeyCode - KEY_A;
+ if ( nVal & KEY_MOD1 )
+ {}
+ else if ( nVal & KEY_SHIFT )
+ aCh += 'A';
+ else
+ aCh += 'a';
+ break;
+ case KEYGROUP_MISC:
+ { // CR ESC TAB BACK
+ ByteString aPrintableMisc("\x0d\x1b\x09\x08 **+-*/.,<>=",16);
+ if ( nKeyCode-KEY_RETURN < aPrintableMisc.Len()
+ && nKeyCode != KEY_INSERT && nKeyCode != KEY_DELETE )
+ aCh = aPrintableMisc.GetChar( nKeyCode-KEY_RETURN );
+ else
+ aCh = 0;
+ }
+ break;
+ case KEYGROUP_CURSOR:
+ case KEYGROUP_FKEYS:
+ default:
+ aCh = 0;
+ }
+ aEvent = KeyEvent(aCh,KeyCode(nVal & 0xFFF,nVal & 0xF000));
+ }
+ else
+ {
+ // CR ESC TAB BACK
+ String aPrintableMisc = CUniString("\x0d\x1b\x09\x08 xx+-*/.,<>=");
+ sal_Unicode aCh = aString1.GetChar(i);
+ if ( aCh >= 'a' && aCh <= 'z' )
+ aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_ALPHA + aCh-'a', 0));
+ else if ( aCh >= 'A' && aCh <= 'Z' )
+ aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_ALPHA + aCh-'a', KEY_SHIFT));
+ else if ( aCh >= '0' && aCh <= '9' )
+ aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_NUM + aCh-'0', 0));
+ else if ( aPrintableMisc.Search(aCh) != STRING_NOTFOUND )
+ aEvent = KeyEvent(aCh, KeyCode(KEYGROUP_MISC + (USHORT)aPrintableMisc.Search(aCh), 0));
+ else // Sollte eigentlich nicht auftreten
+ aEvent = KeyEvent(aCh, KeyCode());
+ }
+ ImplKeyInput( pDeliverHere, aEvent );
+ if ( !MaybeDoTypeKeysDelay( pControl ) )
+ break;
+ else
+ SafeReschedule();SafeReschedule();SafeReschedule();
+ }
+ }
+ break;
+
+#define CalcMouseButton\
+ USHORT nButton = MOUSE_LEFT;\
+ if ( (nParams & PARAM_USHORT_3) )\
+ {\
+ switch ( nNr3 )\
+ {\
+ case 1: nButton = MOUSE_LEFT; break;\
+ case 2: nButton = MOUSE_MIDDLE; break;\
+ case 3: nButton = MOUSE_RIGHT; break;\
+ }\
+ }\
+
+ case M_MouseDown:
+ {
+ CalcMouseButton;
+ Size aS = pControl->GetOutputSizePixel();
+ Point aPos = Point(aS.Width() * nNr1 / 100,aS.Height() * nNr2 / 100);
+ Window *pActualWin = pControl->FindWindow( aPos );
+// AnimateMouse( pControl, aPos );
+
+ if ( pActualWin )
+ aPos = pActualWin->AbsoluteScreenToOutputPixel( pControl->OutputToAbsoluteScreenPixel ( aPos ) );
+// aPos = pActualWin->ScreenToOutputPixel( pControl->OutputToScreenPixel ( aPos ) );
+ else
+ pActualWin = pControl;
+
+ AnimateMouse( pActualWin, aPos );
+ pActualWin->GrabFocus();
+ MouseEvent aMEvnt(aPos,1,MOUSE_SIMPLECLICK|MOUSE_SELECT,nButton);
+ ImplMouseButtonDown( pActualWin, aMEvnt );
+ }
+ break;
+ case M_MouseUp:
+ {
+ CalcMouseButton;
+ Size aS = pControl->GetOutputSizePixel();
+ Point aPos = Point(aS.Width() * nNr1 / 100,aS.Height() * nNr2 / 100);
+ Window *pActualWin = pControl->FindWindow( aPos );
+
+ if ( pActualWin )
+ aPos = pActualWin->AbsoluteScreenToOutputPixel( pControl->OutputToAbsoluteScreenPixel ( aPos ) );
+// aPos = pActualWin->ScreenToOutputPixel( pControl->OutputToScreenPixel ( aPos ) );
+ else
+ pActualWin = pControl;
+
+ AnimateMouse( pActualWin, aPos );
+// pActualWin->GrabFocus();
+ MouseEvent aMEvt( aPos, 1, MOUSE_SIMPLECLICK|MOUSE_SELECT, nButton );
+ ImplMouseButtonUp( pActualWin, aMEvt );
+ }
+ break;
+ case M_MouseMove:
+ {
+ CalcMouseButton;
+ Size aS = pControl->GetOutputSizePixel();
+ Point aPos = Point(aS.Width() * nNr1 / 100,aS.Height() * nNr2 / 100);
+ Window *pActualWin = pControl->FindWindow( aPos );
+
+ if ( pActualWin )
+ {
+ aPos = pActualWin->AbsoluteScreenToOutputPixel( pControl->OutputToAbsoluteScreenPixel ( aPos ) );
+// aPos = pActualWin->ScreenToOutputPixel( pControl->OutputToScreenPixel ( aPos ) );
+ }
+ else
+ pActualWin = pControl;
+
+ AnimateMouse( pActualWin, aPos );
+// pActualWin->GrabFocus();
+ MouseEvent aMEvt( aPos, 0, MOUSE_SIMPLEMOVE|MOUSE_DRAGMOVE, nButton );
+ ImplMouseMove( pActualWin, aMEvt );
+ }
+ break;
+ case M_MouseDoubleClick:
+ {
+ CalcMouseButton;
+ Size aS = pControl->GetOutputSizePixel();
+ Point aPos = Point(aS.Width() * nNr1 / 100,aS.Height() * nNr2 / 100);
+ Window *pActualWin = pControl->FindWindow( aPos );
+
+ if ( pActualWin )
+ {
+ aPos = pActualWin->AbsoluteScreenToOutputPixel( pControl->OutputToAbsoluteScreenPixel ( aPos ) );
+// aPos = pActualWin->ScreenToOutputPixel( pControl->OutputToScreenPixel ( aPos ) );
+ }
+ else
+ pActualWin = pControl;
+
+ AnimateMouse( pActualWin, aPos );
+ pActualWin->GrabFocus();
+ MouseEvent aMEvnt;
+ aMEvnt = MouseEvent(aPos,1,MOUSE_SIMPLECLICK|MOUSE_SELECT,nButton);
+ ImplMouseButtonDown( pActualWin, aMEvnt );
+ ImplMouseButtonUp ( pActualWin, aMEvnt );
+ aMEvnt = MouseEvent(aPos,2,MOUSE_SIMPLECLICK|MOUSE_SELECT,nButton);
+ ImplMouseButtonDown( pActualWin, aMEvnt );
+ ImplMouseButtonUp ( pActualWin, aMEvnt );
+ }
+ break;
+ case M_DisplayPercent:
+ {
+ ModelessDialog *pDlg = new ModelessDialog(NULL);
+ pDlg->SetOutputSizePixel(Size(100,30));
+
+ Edit *pMyEd = new Edit(pDlg,WB_CENTER | WB_BORDER );
+ pMyEd->SetSizePixel(Size(100,30));
+ pDlg->SetText(UniString("Schlieen", RTL_TEXTENCODING_ISO_8859_1));
+ pDlg->Show();
+ pMyEd->Show();
+ ULONG nTime = Time().GetTime();
+
+ while (pDlg->IsVisible())
+ {
+ pDlg->ToTop();
+ for (int i = 1 ; i<10 ; i++)
+ SafeReschedule();
+ Point Pos = pControl->GetPointerPosPixel();
+ Size Siz=pControl->GetOutputSizePixel();
+ if ( Time().GetTime() - nTime > 10 )
+ {
+ nTime = Time().GetTime();
+ pMyEd->SetText(UniString::CreateFromInt32(Pos.X()*100/Siz.Width()).AppendAscii("%x").Append( UniString::CreateFromInt32(Pos.Y()*100/Siz.Height()) ).Append('%'));
+ }
+ }
+
+ delete pMyEd;
+ delete pDlg;
+ }
+ break;
+ case M_OpenContextMenu:
+ {
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ Point aPos;
+ ToolBox* pTB = (ToolBox*)pControl;
+ if ( (pControl->GetType() == WINDOW_TOOLBOX) && pTB->IsMenuEnabled() )
+ {
+ pTB->ExecuteCustomMenu();
+/* Rectangle aRect = pTB->GetMenubuttonRect();
+ AnimateMouse( pControl, aRect.Center() );
+ MouseEvent aMEvnt(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonDown( pTB, aMEvnt );*/
+ }
+ else
+ {
+ BOOL bAtMousePos = ( nParams & PARAM_BOOL_1 ) && bBool1;
+ if ( bAtMousePos )
+ {
+ aPos = pControl->GetPointerPosPixel();
+ Window *pActualWin = pControl->FindWindow( aPos );
+
+ if ( pActualWin )
+ {
+ aPos = pActualWin->AbsoluteScreenToOutputPixel( pControl->OutputToAbsoluteScreenPixel ( aPos ) );
+ // aPos = pActualWin->ScreenToOutputPixel( pControl->OutputToScreenPixel ( aPos ) );
+ pControl = pActualWin;
+ }
+ }
+ CommandEvent aEvent( aPos, COMMAND_CONTEXTMENU, bAtMousePos );
+ ImplCommand( pControl, aEvent );
+ }
+ }
+ break;
+ case M_UseMenu:
+ {
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+
+ while ( pControl && !( ( pControl->GetType() == WINDOW_SYSWINDOW || pControl->GetType() == WINDOW_WORKWINDOW ) && ControlOK( pControl, "" ) ) )
+ pControl = pControl->GET_REAL_PARENT();
+
+ if ( pControl && ((SystemWindow*)pControl)->GetMenuBar() )
+ pMenuWindow = ((SystemWindow*)pControl);
+ else
+ ReportError( GEN_RES_STR1( S_NO_MENU, MethodString( nMethodId ) ) );
+ }
+ break;
+ case M_FadeIn:
+ case M_FadeOut:
+ case M_Pin:
+ case M_IsFadeIn:
+ case M_IsPin:
+ {
+ WindowAlign aWindowAlign = WINDOWALIGN_LEFT;
+ if ( (nParams & PARAM_USHORT_1) )
+ {
+ switch ( nNr1 )
+ {
+ case CONST_ALIGN_LEFT:
+ aWindowAlign = WINDOWALIGN_LEFT;
+ break;
+ case CONST_ALIGN_TOP:
+ aWindowAlign = WINDOWALIGN_TOP;
+ break;
+ case CONST_ALIGN_RIGHT:
+ aWindowAlign = WINDOWALIGN_RIGHT;
+ break;
+ case CONST_ALIGN_BOTTOM:
+ aWindowAlign = WINDOWALIGN_BOTTOM;
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR1( S_INVALID_POSITION, MethodString( nMethodId ) ) );
+ }
+ }
+
+ Window* pTemp = NULL;
+ while ( !pTemp && pControl )
+ {
+ pTemp = GetFadeSplitWin( pControl, aWindowAlign );
+ pControl = pControl->GET_REAL_PARENT();
+ }
+
+ if ( !pTemp )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_SPLITWIN_NOT_FOUND, MethodString( nMethodId ) ) );
+ break;
+ }
+
+ pControl = pTemp; // So da wir unten ohne Fehler durchkommen
+ SplitWindow *pSW = (SplitWindow*) pTemp;
+
+// Rectangle GetAutoHideRect() const;
+// Rectangle GetFadeInRect() const;
+// Rectangle GetFadeOutRect() const;
+
+ switch( nMethodId )
+ {
+ case M_FadeIn:
+ if ( pSW->IsFadeInButtonVisible() )
+ pSW->FadeIn();
+ break;
+ case M_FadeOut:
+ if ( pSW->IsFadeOutButtonVisible() )
+ pSW->FadeOut();
+ break;
+ case M_Pin:
+ if ( ( pSW->GetAutoHideState() && bBool1 )
+ || ( !pSW->GetAutoHideState() && !bBool1 ) )
+ {
+ MouseEvent aMEvnt;
+ Point aPt( pSW->GetAutoHideRect().Center() );
+ aMEvnt = MouseEvent( aPt,1,MOUSE_SIMPLECLICK,MOUSE_LEFT );
+ ImplMouseButtonDown( pControl, aMEvnt, FORCE_DIRECT_CALL );
+ ImplMouseButtonUp ( pControl, aMEvnt, FORCE_DIRECT_CALL );
+ }
+// pSW->AutoHide();
+ break;
+ case M_IsFadeIn:
+ pRet->GenReturn ( RET_Value, aUId, pSW->IsFadeOutButtonVisible() );
+ break;
+ case M_IsPin:
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)!pSW->GetAutoHideState() );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ }
+ SendProfile( UIdString( aUId ).Append('.').Append( MethodString( nMethodId ) ) );
+ }
+ break;
+ case M_StatusGetText:
+ case M_StatusIsProgress:
+ case M_StatusGetItemCount:
+ case M_StatusGetItemId:
+ {
+ StatusBar *pStatus = NULL;
+ while ( !pStatus && pControl )
+ {
+ pStatus = (StatusBar*)GetWinByRT( pControl, WINDOW_STATUSBAR, TRUE );
+ pControl = pControl->GET_REAL_PARENT();
+ }
+
+ if ( !pStatus )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_NO_STATUSBAR, MethodString( nMethodId ) ) );
+ break;
+ }
+
+ switch ( nMethodId )
+ {
+ case M_StatusGetText:
+ {
+ if ( (nParams & PARAM_USHORT_1) )
+ {
+ if ( pStatus->AreItemsVisible() )
+ pRet->GenReturn ( RET_Value, aUId, String(pStatus->GetItemText(nNr1)));
+ else
+ ReportError( aUId, GEN_RES_STR1( S_ITEMS_INVISIBLE, MethodString( nMethodId ) ) );
+ }
+ else
+ {
+ if ( pStatus->AreItemsVisible() )
+ {
+ if ( pStatus->GetItemCount() == 1 )
+ {
+ pRet->GenReturn ( RET_Value, aUId, pStatus->GetItemText( pStatus->GetItemId(0) ));
+ }
+ else
+ {
+ pRet->GenReturn ( RET_Value, aUId, String() );
+ }
+ }
+ else
+ pRet->GenReturn ( RET_Value, aUId, (String)pStatus->GetText() );
+ }
+ }
+ break;
+ case M_StatusIsProgress:
+ {
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)pStatus->IsProgressMode() );
+ }
+ break;
+ case M_StatusGetItemCount:
+ if ( pStatus->AreItemsVisible() )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(pStatus->GetItemCount()));
+ else
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(0));
+ break;
+ case M_StatusGetItemId:
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,pStatus->GetItemCount()) )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(pStatus->GetItemId(nNr1-1)));
+ break;
+ }
+ }
+ break;
+ case M_HasScrollBar:
+ case M_IsScrollBarEnabled:
+ {
+ if ( (nParams | PARAM_USHORT_1) != PARAM_USHORT_1 ) // so there are other params
+ {
+ ReportError( aUId, GEN_RES_STR0( S_INVALID_PARAMETERS ) );
+ break;
+ }
+
+ if( !(nParams & PARAM_USHORT_1) )
+ nNr1 = CONST_ALIGN_RIGHT; // default is right Scrollbar(vertical)
+
+ if ( (nNr1 != CONST_ALIGN_RIGHT) && (nNr1 != CONST_ALIGN_BOTTOM) )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_INVALID_POSITION, MethodString( nMethodId ) ) );
+ break;
+ }
+
+ ScrollBar *pScroll = NULL;
+
+ USHORT nSteps = 2;
+ while ( !pScroll && pControl && nSteps-- )
+ {
+ pScroll = GetScrollBar( pControl, nNr1, TRUE );
+ pControl = pControl->GET_REAL_PARENT();
+ }
+
+ switch ( nMethodId )
+ {
+ case M_HasScrollBar:
+ {
+ if ( pScroll )
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)TRUE );
+ else
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)FALSE );
+ }
+ break;
+ case M_IsScrollBarEnabled:
+ {
+ if ( !pScroll )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_NO_SCROLLBAR, MethodString( nMethodId ) ) );
+ break;
+ }
+ pRet->GenReturn ( RET_Value, aUId, pScroll->IsEnabled() );
+ }
+ break;
+ }
+ }
+ break;
+ default:
+ return FALSE;
+ }
+ return TRUE;
+}
+
+
+BOOL StatementControl::Execute()
+{
+ Window *pControl;
+ BOOL bStatementDone = TRUE;
+
+
+ if ( IsError )
+ {
+ #if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Skipping Window: " );
+ m_pDbgWin->AddText( aUId.GetText() );
+ m_pDbgWin->AddText( " Method: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nMethodId ) );
+ m_pDbgWin->AddText( "\n" );
+ #endif
+ Advance();
+ delete this;
+ return TRUE;
+ }
+
+ InitProfile();
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Executing Window: " );
+ m_pDbgWin->AddText( aUId.GetText() );
+ m_pDbgWin->AddText( " Method: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nMethodId ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+
+
+ if ( aUId.Matches( UID_ACTIVE ) )
+ pControl = GetAnyActive();
+ else
+ {
+ BOOL bSearchButtonOnToolbox = (nParams == PARAM_NONE) && ((M_Click == nMethodId) || (M_TearOff == nMethodId) || (M_IsEnabled == nMethodId) || (M_OpenMenu == nMethodId));
+ bSearchButtonOnToolbox |= (nParams == PARAM_USHORT_1) && (M_GetState == nMethodId);
+ if ( nMethodId == M_TypeKeys || nMethodId == M_MouseDown
+ || nMethodId == M_MouseUp || nMethodId == M_MouseMove
+ || nMethodId == M_SnapShot )
+ {
+ pControl = NULL;
+ if ( /*(nMethodId == M_SnapShot || nMethodId == M_TypeKeys) &&*/ !pControl )
+ pControl = SearchTree( aUId ,bSearchButtonOnToolbox );
+ }
+ else
+ pControl = SearchTree( aUId ,bSearchButtonOnToolbox );
+ }
+
+
+ if ( pControl && pControl->GetType() == WINDOW_TOOLBOX )
+ {
+ if ( !aUId.Matches( pControl->GetSmartUniqueOrHelpId() ) )
+ { // Also wenn wir irgendwas auf einer Toolbox gefunden haben
+ switch ( nMethodId )
+ {
+ case M_Click:
+ case M_TearOff:
+ case M_OpenMenu:
+ case M_GetState:
+ break;
+ case M_IsEnabled:
+ nMethodId = _M_IsEnabled; // Umlabeln, da die Behandlung essentiell anders ist!
+ break;
+ default:
+ pControl = NULL;
+ }
+ }
+ }
+
+
+ switch ( nMethodId )
+ {
+ case M_Exists:
+ case M_NotExists:
+ Time aT;
+ USHORT aSeconds = aT.GetMin()*60+aT.GetSec();
+ if ( !bBool2 ) // wurde im Konstruktor auf FALSE gesetzt
+ {
+ bBool2 = TRUE;
+ nNr2 = aSeconds;
+ if( !(nParams & PARAM_USHORT_1) )
+ nNr1 = 0; // defaultmig sofort zurck
+ }
+ if ( aSeconds < nNr2 ) // Falls die Stunde umgesprungen ist
+ aSeconds += 60*60;
+
+ if ( /* !IsAccessable(pControl)#87019# */ !pControl || !pControl->IsVisible() )
+ pControl = NULL;
+ if ( ((nMethodId == M_Exists) && pControl) ||
+ ((nMethodId == M_NotExists) && !pControl) )
+ { // Wenn Bedingung erfllt
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)TRUE );
+ }
+ else
+ if ( aSeconds <= nNr2 + nNr1 ) // Zeit ist noch nicht abgelaufen
+ return FALSE;
+ else
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)FALSE );
+
+ Advance();
+ delete this;
+ return TRUE;
+// break;
+ }
+
+
+ short nRT = 0;
+
+ if( pControl ) // Das Fenster Existiert irgendwo, kann aber auch hidden sein!
+ {
+ nRT = ImpGetRType( pControl, aUId ); // If not Numeric pControl is used
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Type is: " );
+ m_pDbgWin->AddText( String::CreateFromInt32( nRT ) );
+ m_pDbgWin->AddText( "\n" );
+#endif
+ }
+
+ if ( nRT == C_Window && // Search for WorkWindow to satisfy these commands
+ ( nMethodId == M_Close
+// || nMethodId == M_Size
+// || nMethodId == M_Move
+ || nMethodId == M_IsMax
+ || nMethodId == M_IsMin
+ || nMethodId == M_IsRestore
+ || nMethodId == M_Minimize
+ || nMethodId == M_Maximize
+ || nMethodId == M_Restore ) )
+ {
+ Window* pNewControl = pControl;
+ while ( pNewControl && pNewControl->GetType() != WINDOW_WORKWINDOW )
+ pNewControl = pNewControl->GET_REAL_PARENT();
+
+ if ( pNewControl )
+ {
+ pControl = pNewControl;
+ nRT = C_WorkWin;
+ }
+ }
+
+
+ if ( (!ControlOK( pControl, "" )) && ( nMethodId != M_SnapShot ) && (nRetryCount--))
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( CUniString("Reschedule command (").Append( UniString::CreateFromInt32(nRetryCount) ).AppendAscii(")\n") );
+#endif
+ return FALSE;
+ }
+
+ if( ControlOK( pControl, "" ) )
+ {
+ if ( nMethodId == M_OpenContextMenu && !bBool2 )
+ {
+ pControl->GrabFocus(); // to get asyncron focus on unix
+ bBool2 = TRUE;
+ return FALSE;
+ }
+ // TODO: handle GetFocus for all Methods and Windows like this (remove part below)
+ // See for impact of changed focus for HandleVisibleControls() (taking Snapshots might be different, possible exclude those methods)
+ if (( (nRT == C_TreeListBox) && !bBool2 )
+ && nMethodId != M_TypeKeys // TypeKeys macht das selbst, falls eigenes Focushandling gewnscht
+ && nMethodId != M_MouseDown
+ && nMethodId != M_MouseUp
+ && nMethodId != M_MouseMove
+ /*&& nMethodId != M_MouseDoubleClick*/ )
+ {
+ if ( !pControl->HasFocus() )
+ {
+ pControl->GrabFocus();
+ int i = 10;
+ while ( i-- && !pControl->HasFocus() ) // reschedule a bit
+ {
+ SafeReschedule();
+ if ( !WinPtrValid( pControl ) )
+ return FALSE;
+ }
+ if ( !pControl->HasFocus() ) // to get asyncronous focus
+ {
+ bBool2 = TRUE;
+ return FALSE;
+ }
+ }
+ }
+ }
+
+ Advance();
+
+ if ( HandleVisibleControls( pControl ) )
+ {
+ delete this;
+ return TRUE;
+ }
+ if( ControlOK( pControl, "Window/Control" ) )
+ {
+ if (((( nRT < C_TabPage && nRT > C_TabControl )
+ || nRT == C_PatternBox
+ || nRT == C_ToolBox
+ || nRT == C_ValueSet
+ || nRT == C_Control
+ || nRT == C_TreeListBox
+ )
+ || nMethodId == M_OpenContextMenu )
+ && nMethodId != M_TypeKeys // TypeKeys macht das selbst, falls eigenes Focushandling gewnscht
+ && nMethodId != M_MouseDown
+ && nMethodId != M_MouseUp
+ && nMethodId != M_MouseMove
+ /*&& nMethodId != M_MouseDoubleClick*/ )
+ pControl->GrabFocus();
+
+/* leads to problems because settext sets the text whereas typekeys adds to the text.
+ if ( bDoTypeKeysDelay && nMethodId == M_SetText && ( nParams & PARAM_STR_1 ) )
+ { // Hier wird das Statement auf ein TypeKeys umgebogen
+ nMethodId = M_TypeKeys;
+ nParams = PARAM_BOOL_1 | PARAM_STR_1;
+ bBool1 = TRUE;
+ pControl->GrabFocus();
+ }
+*/
+ if ( !HandleCommonMethods( pControl ) )
+ {
+ switch( nRT )
+ {
+ case C_TabControl:
+ switch( nMethodId )
+ {
+ case M_GetPageId:
+ if ( (nParams & PARAM_USHORT_1) )
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((TabControl*)pControl)->GetPageCount() ) )
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)((TabControl*)pControl)->GetPageId(nNr1-1));
+ }
+ else
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)((TabControl*)pControl)->GetCurPageId());
+ break;
+ case M_GetPageCount:
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)((TabControl*)pControl)->GetPageCount());
+ break;
+ case M_SetPageId:
+ if (((TabControl*)pControl)->GetCurPageId())
+ ((TabControl*)pControl)->DeactivatePage();
+ ((TabControl*)pControl)->SetCurPageId( nNr1 );
+ ((TabControl*)pControl)->ActivatePage();
+ break;
+ case M_SetPageNr:
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((TabControl*)pControl)->GetPageCount() ) )
+ {
+ if (((TabControl*)pControl)->GetCurPageId())
+ ((TabControl*)pControl)->DeactivatePage();
+ ((TabControl*)pControl)->SetCurPageId( ((TabControl*)pControl)->GetPageId( nNr1-1 ) );
+ ((TabControl*)pControl)->ActivatePage();
+ }
+ break;
+ case M_GetPage:
+ pRet->GenReturn ( RET_Value, aUId, ((TabControl*)pControl)->GetTabPage(((TabControl*)pControl)->GetCurPageId())->GetSmartUniqueOrHelpId().GetText());
+ break;
+ case M_SetPage :
+ { // Wegen lokaler Variablen
+ TabControl *pTControl = ((TabControl*)pControl);
+ USHORT nActive = pTControl->GetCurPageId();
+ USHORT i,anz;
+ SmartId aID;
+ SmartId aWantedID;
+ if ( (nParams & PARAM_ULONG_1) )
+ {
+ aWantedID = SmartId( nLNr1 );
+ }
+ else if ( (nParams & PARAM_STR_1) )
+ {
+ aWantedID = SmartId( aString1 );
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+
+ i = pTControl->GetPagePos( pTControl->GetCurPageId() );
+ for ( anz=0 ; anz < pTControl->GetPageCount() && !aID.Matches( aWantedID ) ; anz++ )
+ {
+ pTControl->SelectTabPage( pTControl->GetPageId(i) );
+ /*if (pTControl->GetCurPageId())
+ pTControl->DeactivatePage();
+ pTControl->SetCurPageId( pTControl->GetPageId(i) );
+ pTControl->ActivatePage();*/
+ aID = pTControl->GetTabPage(pTControl->GetCurPageId())->GetSmartUniqueOrHelpId();
+ i++;
+ if ( i >= pTControl->GetPageCount() )
+ i = 0;
+ if ( !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) || !MaybeDoTypeKeysDelay( pTControl ) ) // 3 Mal aufrufen
+ break;
+ }
+ if ( !aID.Matches( aWantedID ) )
+ {
+ pTControl->SelectTabPage( nActive );
+ /*if (pTControl->GetCurPageId())
+ pTControl->DeactivatePage();
+ pTControl->SetCurPageId( nActive );
+ pTControl->ActivatePage();*/
+ ReportError( aWantedID, GEN_RES_STR1( S_TABPAGE_NOT_FOUND, MethodString( nMethodId ) ) );
+ }
+ }
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "TabControl" ) );
+ break;
+ }
+ break;
+ case C_RadioButton:
+ case C_ImageRadioButton:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteLinks);
+ break;
+ case M_IsChecked :
+ pRet->GenReturn ( RET_Value, aUId, ((RadioButton*)pControl)->IsChecked());
+ break;
+ case M_Check :
+ ((RadioButton*)pControl)->Check();
+ ((RadioButton*)pControl)->Click();
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "RadioButton" ) );
+ break;
+ }
+ break;
+ case C_CheckBox:
+ case C_TriStateBox:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteLinks);
+ break;
+ case M_IsChecked :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL( ((TriStateBox*)pControl)->GetState() == STATE_CHECK) );
+ break;
+ case M_IsTristate :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL( ((TriStateBox*)pControl)->GetState() == STATE_DONTKNOW) );
+ break;
+ case M_GetState :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((TriStateBox*)pControl)->GetState()));
+ break;
+ case M_Check :
+ ((TriStateBox*)pControl)->SetState( STATE_CHECK );
+ ((TriStateBox*)pControl)->Click();
+ break;
+ case M_UnCheck :
+ ((TriStateBox*)pControl)->SetState( STATE_NOCHECK );
+ ((TriStateBox*)pControl)->Click();
+ break;
+ case M_TriState :
+ if ( ((TriStateBox*)pControl)->IsTriStateEnabled() )
+ {
+ ((TriStateBox*)pControl)->SetState( STATE_DONTKNOW );
+ ((TriStateBox*)pControl)->Click();
+ }
+ else
+ {
+ ReportError( aUId, GEN_RES_STR0( S_TRISTATE_NOT_ALLOWED ) );
+ }
+ break;
+ case M_Click :
+ {
+ TriStateBox *pTB = ((TriStateBox*)pControl);
+ if ( pTB->GetState() == STATE_NOCHECK )
+ pTB->SetState( STATE_CHECK );
+ else if ( pTB->GetState() == STATE_CHECK )
+ {
+ if ( pTB->IsTriStateEnabled() )
+ pTB->SetState( STATE_DONTKNOW );
+ else
+ pTB->SetState( STATE_NOCHECK );
+ }
+ else
+ pTB->SetState( STATE_NOCHECK );
+ pTB->Click();
+ }
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "TriStateBox" ) );
+ break;
+ }
+ break;
+ case C_Edit:
+ case C_MultiLineEdit:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, aUId, ((Edit*)pControl)->GetText());
+ break;
+ case M_IsWritable:
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL) !((Edit*)pControl)->IsReadOnly() );
+ break;
+ default:
+ if ( ! ((Edit*)pControl)->IsReadOnly() )
+ {
+ switch( nMethodId )
+ {
+ case M_SetText :
+ ((Edit*)pControl)->SetText( aString1 );
+ if ( nRT == C_MultiLineEdit ) // since SetModifyFlag is not virtual we have to do this
+ ((MultiLineEdit*)pControl)->SetModifyFlag();
+ else
+ ((Edit*)pControl)->SetModifyFlag();
+ ((Edit*)pControl)->Modify();
+ if ( ((Edit*)pControl)->GetText().CompareTo(aString1) != COMPARE_EQUAL )
+ ReportError( aUId, GEN_RES_STR1( S_ERROR_IN_SET_TEXT, MethodString( nMethodId ) ) );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "(MultiLine)Edit" ) );
+ break;
+ }
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1c( S_ATTEMPT_TO_WRITE_READONLY, "(MultiLine)Edit" ) );
+ }
+ break;
+ case C_MultiListBox:
+ case C_ListBox:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_GetSelCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((ListBox*)pControl)->GetSelectEntryCount()));
+ break;
+ case M_GetSelIndex :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ {
+ if ( ((ListBox*)pControl)->GetSelectEntryCount() == 0 )
+ {
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(0));
+ break;
+ }
+ nNr1 = 1;
+ }
+ ValueOK(aUId, MethodString( nMethodId ),nNr1,((ListBox*)pControl)->GetSelectEntryCount());
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((ListBox*)pControl)->GetSelectEntryPos(nNr1-1)) +1);
+ break;
+ case M_GetSelText :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ pRet->GenReturn ( RET_Value, aUId, ((ListBox*)pControl)->GetSelectEntry(nNr1-1));
+ break;
+ case M_GetItemCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((ListBox*)pControl)->GetEntryCount()));
+ break;
+ case M_GetItemText :
+ pRet->GenReturn ( RET_Value, aUId, ((ListBox*)pControl)->GetEntry(nNr1-1));
+ break;
+ case M_Select:
+ case M_MultiSelect:
+ {
+ BOOL bUnselectBeforeSelect = ( nMethodId == M_Select );
+ BOOL bFehler = FALSE;
+ if ( ! (nParams & PARAM_BOOL_1) )
+ bBool1 = TRUE;
+
+ if ( nMethodId == M_MultiSelect && nRT == C_ListBox )
+ {
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ListBox" ) );
+ bFehler = TRUE;
+ }
+
+ if ( !bBool1 && nMethodId == M_Select )
+ {
+ ReportError( aUId, GEN_RES_STR1( S_NO_SELECT_FALSE, MethodString( nMethodId ) ) );
+ bFehler = TRUE;
+ }
+
+ if ( !bFehler )
+ {
+ if( nParams & PARAM_STR_1 )
+ {
+ ListBox *pLB = ((ListBox*)pControl);
+ USHORT nPos;
+ if ( (nPos = pLB->GetEntryPos( aString1 )) == LISTBOX_ENTRY_NOTFOUND )
+ ReportError( aUId, GEN_RES_STR2( S_ENTRY_NOT_FOUND, MethodString( nMethodId ), aString1 ) );
+ else
+ {
+ if ( bUnselectBeforeSelect )
+ pLB->SetNoSelection();
+ pLB->SelectEntryPos( nPos, bBool1 );
+ if ( pLB->IsEntryPosSelected( nPos ) ? !bBool1 : bBool1 ) // XOR rein mit BOOL
+ ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), aString1 ) );
+ }
+ }
+ else
+ {
+ ListBox *pLB = ((ListBox*)pControl);
+ pLB = static_cast<ListBox*>(pControl);
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,pLB->GetEntryCount()) )
+ {
+ if ( bUnselectBeforeSelect )
+ pLB->SetNoSelection();
+ pLB->SelectEntryPos( nNr1-1, bBool1 );
+ if ( pLB->IsEntryPosSelected( nNr1-1 ) ? !bBool1 : bBool1 ) // XOR rein mit BOOL
+ ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), UniString::CreateFromInt32( nNr1 ) ) );
+ }
+ }
+ ((ListBox*)pControl)->Select();
+ }
+ }
+ break;
+ case M_SetNoSelection :
+ ((ListBox*)pControl)->SetNoSelection();
+ ((ListBox*)pControl)->Select();
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "(Multi)ListBox" ) );
+ break;
+ }
+ break;
+ case C_ComboBox:
+ case C_PatternBox:
+ case C_NumericBox:
+ case C_MetricBox:
+ case C_CurrencyBox:
+ case C_DateBox:
+ case C_TimeBox:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_GetSelText :
+ pRet->GenReturn ( RET_Value, aUId, ((ComboBox*)pControl)->GetText());
+ break;
+ case M_GetSelIndex :
+ {
+ USHORT nPos = ((ComboBox*)pControl)->GetEntryPos(((ComboBox*)pControl)->GetText());
+ if ( nPos == COMBOBOX_ENTRY_NOTFOUND )
+ nPos = 0;
+ else
+ nPos++;
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG) nPos);
+ }
+ break;
+ case M_GetItemCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((ComboBox*)pControl)->GetEntryCount()));
+ break;
+ case M_GetItemText :
+ pRet->GenReturn ( RET_Value, aUId, ((ComboBox*)pControl)->GetEntry(nNr1-1));
+ break;
+ case M_IsWritable:
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL) !((ComboBox*)pControl)->IsReadOnly() );
+ break;
+ case M_Select :
+ if( nParams & PARAM_USHORT_1 )
+ {
+ if ( !ValueOK(aUId, MethodString( nMethodId ),nNr1,((ComboBox*)pControl)->GetEntryCount()) )
+ break;
+ aString1 = ((ComboBox*)pControl)->GetEntry(nNr1-1);
+ }
+ else
+ {
+ if ( ((ComboBox*)pControl)->GetEntryPos( aString1 ) == COMBOBOX_ENTRY_NOTFOUND )
+ {
+ ReportError( aUId, GEN_RES_STR2( S_ENTRY_NOT_FOUND, MethodString( nMethodId ), aString1 ) );
+ break;
+ }
+ }
+
+
+ ((ComboBox*)pControl)->SetText( aString1 );
+ ((ComboBox*)pControl)->SetModifyFlag();
+ ((ComboBox*)pControl)->Modify();
+ break;
+ case M_SetText :
+ if ( ! ((ComboBox*)pControl)->IsReadOnly() )
+ {
+ if ( ! (nParams & PARAM_STR_1) )
+ aString1 = String();
+ ((ComboBox*)pControl)->SetText( aString1 );
+ ((ComboBox*)pControl)->SetModifyFlag();
+ ((ComboBox*)pControl)->Modify();
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1c( S_ATTEMPT_TO_WRITE_READONLY, "ComboBox" ) );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ComboBox" ) );
+ break;
+ }
+ break;
+ case C_PushButton:
+ case C_OkButton:
+ case C_CancelButton:
+ case C_ImageButton:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_Click :
+ ((PushButton*)pControl)->Click();
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "PushButton" ) );
+ break;
+ }
+ break;
+ case C_MoreButton:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_IsOpen :
+ pRet->GenReturn ( RET_Value, aUId, ((MoreButton*)pControl)->GetState());
+ break;
+ case M_Click :
+ ((MoreButton*)pControl)->Click();
+ break;
+ case M_Open :
+ ((MoreButton*)pControl)->SetState(TRUE);
+ break;
+ case M_Close :
+ ((MoreButton*)pControl)->SetState(FALSE);
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "MoreButton" ) );
+ break;
+ }
+ break;
+ case C_SpinField:
+ case C_PatternField:
+ case C_NumericField:
+ case C_MetricField:
+ case C_CurrencyField:
+ case C_DateField:
+ case C_TimeField:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, aUId, ((SpinField*)pControl)->GetText());
+ break;
+ case M_IsWritable:
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL) !((SpinField*)pControl)->IsReadOnly() );
+ break;
+ case M_SetText :
+ if ( ! ((SpinField*)pControl)->IsReadOnly() )
+ {
+ ((SpinField*)pControl)->SetText( aString1 );
+ ((SpinField*)pControl)->SetModifyFlag();
+ ((SpinField*)pControl)->Modify();
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1c( S_ATTEMPT_TO_WRITE_READONLY, "SpinField" ) );
+ break;
+ case M_More :
+ {
+ if ( !(nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ for (int i = 1; i<= nNr1; i++)
+ {
+ ((SpinField*)pControl)->Up();
+ ((SpinField*)pControl)->SetModifyFlag();
+ ((SpinField*)pControl)->Modify();
+ }
+ }
+ break;
+ case M_Less :
+ {
+ if ( !(nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ for (int i = 1; i<= nNr1; i++)
+ {
+ ((SpinField*)pControl)->Down();
+ ((SpinField*)pControl)->SetModifyFlag();
+ ((SpinField*)pControl)->Modify();
+ }
+ }
+ break;
+ case M_ToMin :
+ ((SpinField*)pControl)->First();
+ ((SpinField*)pControl)->SetModifyFlag();
+ ((SpinField*)pControl)->Modify();
+ break;
+ case M_ToMax :
+ ((SpinField*)pControl)->Last();
+ ((SpinField*)pControl)->SetModifyFlag();
+ ((SpinField*)pControl)->Modify();
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "SpinField" ) );
+ break;
+ }
+ break;
+
+ case C_MenuButton:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_Click :
+ {
+ MouseEvent aMEvnt;
+ Point aPt( pControl->GetSizePixel().Width() / 2, pControl->GetSizePixel().Height() / 2 );
+ aMEvnt = MouseEvent( aPt,1,MOUSE_SIMPLECLICK,MOUSE_LEFT );
+ ImplMouseButtonDown( pControl, aMEvnt, FORCE_DIRECT_CALL );
+ ImplMouseButtonUp ( pControl, aMEvnt, FORCE_DIRECT_CALL );
+ }
+ break;
+ case M_Open :
+ case M_OpenMenu :
+ {
+ MouseEvent aMEvnt;
+ Point aPt( pControl->GetSizePixel().Width() / 2, pControl->GetSizePixel().Height() / 2 );
+ aMEvnt = MouseEvent( aPt,1,MOUSE_SIMPLECLICK,MOUSE_LEFT );
+ ImplMouseButtonDown( pControl, aMEvnt, FORCE_DIRECT_CALL );
+
+ ULONG nStart = Time::GetSystemTicks();
+ ULONG nDelay = pControl->GetSettings().GetMouseSettings().GetActionDelay();
+ while ( ( Time::GetSystemTicks() - nStart ) < nDelay + 100 )
+ SafeReschedule();
+
+ ImplMouseButtonUp ( pControl, aMEvnt, FORCE_DIRECT_CALL );
+
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ }
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "MenuButton" ) );
+ break;
+ }
+ break;
+ case C_ToolBox:
+ {
+ ToolBox *pTB = ((ToolBox*)pControl);
+ if ( !aUId.Matches( pTB->GetSmartUniqueOrHelpId() ) ) // Also Button auf der ToolBox gefunden
+ {
+ if ( (nParams == PARAM_NONE) || (nParams == PARAM_USHORT_1) )
+ { // Wir flschen einen Parameter
+ if ( aUId.HasNumeric() )
+ {
+ nParams = PARAM_ULONG_1;
+ nLNr1 = USHORT( aUId.GetNum() );
+ DBG_ASSERT( nLNr1 <= 0xFFFF, "ID on ToolBox > 0xFFFF" );
+ }
+ else
+ {
+ nParams = PARAM_STR_1;
+ aString1 = aUId.GetStr();
+ }
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ }
+
+#define FIND_ITEM\
+ USHORT nItemPos = 0;\
+ BOOL bItemFound = FALSE;\
+ {\
+ SmartId aButtonId;\
+ if( nParams == PARAM_STR_1 )\
+ aButtonId = SmartId( aString1 );\
+ if( nParams == PARAM_ULONG_1 )\
+ aButtonId = SmartId( nLNr1 );\
+ for ( nItemPos = 0; nItemPos < pTB->GetItemCount() && !aButtonId.Matches(pTB->GetItemCommand(pTB->GetItemId(nItemPos))) &&\
+ !aButtonId.Matches(pTB->GetHelpId(pTB->GetItemId(nItemPos))) ; nItemPos++ ) {}\
+ bItemFound = aButtonId.Matches(pTB->GetItemCommand(pTB->GetItemId(nItemPos))) || aButtonId.Matches(pTB->GetHelpId(pTB->GetItemId(nItemPos)));\
+ if ( !bItemFound )\
+ ReportError( aUId, GEN_RES_STR1( S_HELPID_ON_TOOLBOX_NOT_FOUND, MethodString( nMethodId ) ) );\
+ else\
+ {\
+ if ( !pTB->IsItemEnabled( pTB->GetItemId(nItemPos) ) && nMethodId != _M_IsEnabled )\
+ {\
+ ReportError( aUId, GEN_RES_STR1( S_BUTTON_DISABLED_ON_TOOLBOX, MethodString( nMethodId ) ) );\
+ bItemFound = FALSE;\
+ }\
+ else if ( !pTB->IsItemVisible( pTB->GetItemId(nItemPos) ) )\
+ {\
+ ReportError( aUId, GEN_RES_STR1( S_BUTTON_HIDDEN_ON_TOOLBOX, MethodString( nMethodId ) ) );\
+ bItemFound = FALSE;\
+ }\
+ else\
+ {\
+ if ( pTB->IsMenuEnabled() )\
+ { /* button is in Menu */\
+ }\
+ else\
+ { /* Try the multi line way */\
+ if ( pTB->GetItemRect(pTB->GetItemId(nItemPos)).IsEmpty() )\
+ {\
+ USHORT nLine = pTB->GetCurLine();\
+ do\
+ {\
+ pTB->ShowLine( FALSE );\
+ for ( int i = 1 ; i < 30 ; i++ )\
+ SafeReschedule();\
+ }\
+ while ( pTB->GetCurLine() != nLine && pTB->GetItemRect(pTB->GetItemId(nItemPos)).IsEmpty() );\
+ pTB->Invalidate( pTB->GetScrollRect() );\
+ }\
+ if ( pTB->GetItemRect(pTB->GetItemId(nItemPos)).IsEmpty() )\
+ {\
+ ReportError( aUId, GEN_RES_STR1( S_CANNOT_MAKE_BUTTON_VISIBLE_IN_TOOLBOX, MethodString( nMethodId ) ) );\
+ bItemFound = FALSE;\
+ }\
+ }\
+ }\
+ }\
+ }\
+
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteLinks);
+ break;
+ case M_Click :
+ {
+ FIND_ITEM;
+ if ( bItemFound ) // FIND_ITEM Erfolgreich
+ {
+ Rectangle aRect = pTB->GetItemRect(pTB->GetItemId(nItemPos));
+ if ( aRect.IsEmpty() )
+ {
+ pTB->ExecuteCustomMenu();
+/* aRect = pTB->GetMenubuttonRect();
+ MouseEvent aMEvnt(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonDown( pTB, aMEvnt );*/
+
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+
+ new StatementCommand( this, RC_MenuSelect, PARAM_USHORT_1, pTB->GetItemId(nItemPos) + TOOLBOX_MENUITEM_START );
+ }
+ else
+ {
+ aRect = pTB->GetItemRect(pTB->GetItemId(nItemPos));
+ MouseEvent aMEvnt;
+ aMEvnt = MouseEvent(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonDown( pTB, aMEvnt, FORCE_DIRECT_CALL );
+ ImplMouseButtonUp ( pTB, aMEvnt, FORCE_DIRECT_CALL );
+ }
+ }
+ }
+ break;
+ case M_TearOff :
+ {
+ FIND_ITEM;
+ if ( bItemFound ) // FIND_ITEM Erfolgreich
+ {
+ Rectangle aRect = pTB->GetItemPosDropDownRect( nItemPos );
+ AnimateMouse( pControl, aRect.Center() );
+ MouseEvent aMEvnt(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonDown( pTB, aMEvnt, FORCE_DIRECT_CALL );
+
+ Window *pWin = NULL;
+ // Wait for the window to open.
+ StatementList::bExecuting = TRUE; // Bah ist das ein ekliger Hack
+ { // Das verhindert, da schon der nchste Befehl ausgefhrt wird.
+ Time aDelay;
+ while ( !pWin && ( (pWin = GetPopupFloatingWin()) == NULL ) && ( Time() - aDelay ).GetSec() < 15 )
+ SafeReschedule();
+ }
+ StatementList::bExecuting = FALSE; // Bah ist das ein ekliger Hack
+
+ if ( pWin && pWin->GetType() == WINDOW_FLOATINGWINDOW )
+ {
+ aMEvnt = MouseEvent(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonUp( pTB, aMEvnt, FORCE_DIRECT_CALL );
+ ((FloatingWindow*)pWin)->EndPopupMode( FLOATWIN_POPUPMODEEND_TEAROFF );
+ }
+ else
+ {
+ aMEvnt = MouseEvent(Point(1,-10), 1, MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonUp( pTB, aMEvnt, FORCE_DIRECT_CALL );
+ ReportError( aUId, GEN_RES_STR1( S_TEAROFF_FAILED, MethodString( nMethodId ) ) );
+ }
+ }
+ }
+ break;
+ case M_OpenMenu :
+ {
+ FIND_ITEM;
+ if ( bItemFound ) // FIND_ITEM Erfolgreich
+ {
+ Rectangle aRect = pTB->GetItemPosDropDownRect( nItemPos );
+ AnimateMouse( pControl, aRect.Center() );
+ MouseEvent aMEvnt(aRect.Center(),1,MOUSE_SIMPLECLICK,MOUSE_LEFT);
+ ImplMouseButtonDown( pTB, aMEvnt);
+ ImplMouseButtonUp( pTB, aMEvnt);
+
+ // Das Fenster ist offen.
+ aSubMenuId1 = SmartId();
+ aSubMenuId2 = SmartId();
+ aSubMenuId3 = SmartId();
+ pMenuWindow = NULL;
+ }
+ }
+ break;
+ case _M_IsEnabled:
+ {
+ FIND_ITEM;
+ if ( bItemFound ) // FIND_ITEM Erfolgreich
+ {
+ pRet->GenReturn ( RET_Value, aUId, pTB->IsItemEnabled( pTB->GetItemId(nItemPos) ) );
+ }
+ }
+ break;
+ case M_GetState :
+ {
+ FIND_ITEM;
+ if ( bItemFound ) // FIND_ITEM Erfolgreich
+ {
+ switch (nNr1)
+ {
+ case 0:
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pTB->GetHelpId(pTB->GetItemId(nItemPos)));
+ break;
+ case 1:
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pTB->GetItemType(nItemPos));
+ break;
+ case 2:
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pTB->GetItemState(pTB->GetItemId(nItemPos)));
+ break;
+ case 3:
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pTB->GetItemId(nItemPos));
+ break;
+ default:
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(0));
+ break;
+ }
+ }
+ }
+ break;
+ case M_GetItemText :
+ pRet->GenReturn ( RET_Value, aUId, (String)pTB->GetItemText(nNr1));
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, aUId, (String)pTB->GetText());
+ break;
+ case M_GetItemCount :
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pTB->GetItemCount());
+ break;
+ case M_SetNextToolBox :
+ if ( (nParams & PARAM_STR_1) )
+ pTB->SetNextToolBox( aString1 );
+ else
+ pTB->SetNextToolBox( pTB->GetNextToolBox() );
+ pTB->NextToolBox();
+ break;
+ case M_GetNextToolBox :
+ pRet->GenReturn ( RET_Value, aUId, (String)pTB->GetNextToolBox());
+ break;
+ case M_Dock :
+ case M_Undock :
+ case M_IsDocked :
+ case M_Close:
+ case M_Size:
+ case M_Move:
+ case M_IsMax:
+ case M_Minimize:
+ case M_Maximize:
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ goto DockingWin;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ToolBox" ) );
+ break;
+ }
+ }
+ break;
+
+ case C_TreeListBox:
+ switch( nMethodId )
+ {
+
+
+
+#define GET_NTH_ENTRY_LBOX( First, Next, Anzahl) \
+ SvLBoxEntry *pThisEntry = ((SvTreeListBox*)pControl)->First(); \
+ { \
+ int niTemp = Anzahl; \
+ while ( niTemp-- ) \
+ { \
+ pThisEntry = ((SvTreeListBox*)pControl)->Next( pThisEntry ); \
+ } \
+ }
+
+ case M_GetText : // Get the first text of the given (default=1) line
+ { // should get removed some time
+ SvTreeListBox *pTree = (SvTreeListBox*)pControl;
+ SvLBoxEntry *pThisEntry = pTree->GetCurEntry();
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ if ( pThisEntry )
+ {
+ SvLBoxString* pItem = NULL;
+ USHORT nValidTextItemCount = 0;
+ {
+ USHORT nIndex = 0;
+ SvLBoxItem *pMyItem;
+ while ( ( nValidTextItemCount < nNr1 ) && nIndex < pThisEntry->ItemCount() )
+ {
+ pMyItem = pThisEntry->GetItem( nIndex );
+ if ( pMyItem->IsA() == SV_ITEM_ID_LBOXSTRING )
+ {
+ pItem = (SvLBoxString*)pMyItem;
+ nValidTextItemCount++;
+ }
+ nIndex++;
+ }
+ }
+ if ( ValueOK( aUId, CUniString("GetText"), nNr1, nValidTextItemCount ) )
+ pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+ }
+ else
+ ReportError( aUId, GEN_RES_STR2c2( S_NO_SELECTED_ENTRY, MethodString( nMethodId ), "TreeListBox" ) );
+ }
+ break;
+ case M_GetSelCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((SvLBox*)pControl)->GetSelectionCount()));
+ break;
+ case M_GetItemCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((SvLBox*)pControl)->GetVisibleCount()) );
+ break;
+ case M_GetSelIndex :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ if ( ValueOK(aUId, CUniString("GetSelIndex"),nNr1,((SvLBox*)pControl)->GetSelectionCount()) )
+ {
+ nNr1--;
+ GET_NTH_ENTRY_LBOX( FirstSelected, NextSelected, nNr1);
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( ((SvTreeListBox*)pControl)->GetVisiblePos( pThisEntry )) +1 );
+ }
+ break;
+ case M_Select :
+ if ( ! (nParams & PARAM_BOOL_1) )
+ bBool1 = TRUE;
+ if( nParams & PARAM_STR_1 )
+ {
+/* ListBox *pLB = ((ListBox*)pControl);
+ if ( pLB->GetEntryPos( aString1 ) == LISTBOX_ENTRY_NOTFOUND )
+ ReportError( aUId, GEN_RES_STR2( S_ENTRY_NOT_FOUND, MethodString( nMethodId ), aString1 ) );
+ else
+ {
+ pLB->SelectEntry( aString1, bBool1 );
+ if ( pLB->IsEntrySelected( aString1 ) ? !bBool1 : bBool1 ) // XOR rein mit BOOL
+ ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), aString1 ) );
+ }
+*/ ReportError( aUId, GEN_RES_STR1( S_SELECT_DESELECT_VIA_STRING_NOT_IMPLEMENTED, MethodString( nMethodId ) ) );
+ }
+ else
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ SvLBoxEntry *pEntry = (SvLBoxEntry*)((SvTreeListBox*)pControl)->GetEntryAtVisPos( nNr1-1 );
+ ((SvTreeListBox*)pControl)->Select ( pEntry, bBool1 );
+ }
+ }
+ break;
+ case M_GetSelText :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ if ( ! (nParams & PARAM_USHORT_2) )
+ nNr2 = 1;
+ if ( ValueOK(aUId, CUniString("GetSelText"),nNr1,((SvLBox*)pControl)->GetSelectionCount()) )
+ {
+ nNr1--;
+ GET_NTH_ENTRY_LBOX( FirstSelected, NextSelected, nNr1);
+ if ( ValueOK( aUId, MethodString( nMethodId ),nNr2,pThisEntry->ItemCount() ) )
+ {
+ SvLBoxString* pItem = NULL;
+ if ( ! (nParams & PARAM_USHORT_2) )
+ pItem = (SvLBoxString*)pThisEntry->GetFirstItem( SV_ITEM_ID_LBOXSTRING );
+ else
+ {
+ SvLBoxItem *pMyItem = pThisEntry->GetItem( nNr2-1 );
+ if ( pMyItem->IsA() == SV_ITEM_ID_LBOXSTRING )
+ pItem = (SvLBoxString*)pMyItem;
+ }
+
+ if ( pItem )
+ pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_LIST_BOX_STRING, MethodString( nMethodId ) ) );
+ }
+ }
+ break;
+ case M_GetItemText :
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ SvLBoxEntry *pThisEntry = (SvLBoxEntry*)((SvTreeListBox*)pControl)->GetEntryAtVisPos( nNr1-1 );
+ if ( ! (nParams & PARAM_USHORT_2) )
+ nNr2 = 1;
+ if ( ValueOK( aUId, MethodString( nMethodId ),nNr2,pThisEntry->ItemCount() ) )
+ {
+ SvLBoxString* pItem = NULL;
+ if ( ! (nParams & PARAM_USHORT_2) )
+ pItem = (SvLBoxString*)pThisEntry->GetFirstItem( SV_ITEM_ID_LBOXSTRING );
+ else
+ {
+ SvLBoxItem *pMyItem = pThisEntry->GetItem( nNr2-1 );
+ if ( pMyItem->IsA() == SV_ITEM_ID_LBOXSTRING )
+ pItem = (SvLBoxString*)pMyItem;
+ }
+
+ if ( pItem )
+ pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_LIST_BOX_STRING, MethodString( nMethodId ) ) );
+ }
+ }
+ break;
+ case M_IsChecked :
+ case M_IsTristate :
+ case M_GetState :
+ case M_Check :
+ case M_UnCheck :
+ case M_TriState :
+ {
+ SvTreeListBox *pTree = (SvTreeListBox*)pControl;
+ SvLBoxEntry *pThisEntry = NULL;
+
+ if ( ! (nParams & PARAM_USHORT_1) )
+ {
+ pThisEntry = pTree->GetCurEntry();
+ if ( !pThisEntry )
+ ReportError( aUId, GEN_RES_STR2c2( S_NO_SELECTED_ENTRY, MethodString( nMethodId ), "TreeListBox" ) );
+ }
+ else
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ pThisEntry = (SvLBoxEntry*)pTree->GetEntryAtVisPos( nNr1-1 );
+ }
+ }
+
+ if ( ! (nParams & PARAM_USHORT_2) )
+ nNr2 = 1;
+
+ if ( pThisEntry )
+ {
+ if ( ValueOK( aUId, MethodString( nMethodId ),nNr2,pThisEntry->ItemCount() ) )
+ {
+ SvLBoxButton* pItem = NULL;
+ if ( ! (nParams & PARAM_USHORT_2) )
+ pItem = (SvLBoxButton*)pThisEntry->GetFirstItem( SV_ITEM_ID_LBOXBUTTON );
+ else
+ {
+ SvLBoxItem *pMyItem = pThisEntry->GetItem( nNr2-1 );
+ if ( pMyItem->IsA() == SV_ITEM_ID_LBOXBUTTON )
+ pItem = (SvLBoxButton*)pMyItem;
+ }
+
+ if ( pItem )
+ {
+ switch( nMethodId )
+ {
+ case M_IsChecked :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL( pItem->IsStateChecked() ) );
+ break;
+ case M_IsTristate :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL( pItem->IsStateTristate() ) );
+ break;
+ case M_GetState :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pItem->GetButtonFlags() & ~SV_STATE_MASK ));
+ break;
+ case M_Check :
+ pItem->SetStateChecked();
+ pTree->CheckButtonHdl();
+ pTree->InvalidateEntry( pThisEntry );
+ break;
+ case M_UnCheck :
+ pItem->SetStateUnchecked();
+ pTree->CheckButtonHdl();
+ pTree->InvalidateEntry( pThisEntry );
+ break;
+ case M_TriState :
+ pItem->SetStateTristate();
+ pTree->CheckButtonHdl();
+ pTree->InvalidateEntry( pThisEntry );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ break;
+ }
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_LIST_BOX_BUTTON, MethodString( nMethodId ) ) );
+ }
+ }
+ }
+ break;
+ case M_GetItemType :
+ {
+ SvTreeListBox *pTree = (SvTreeListBox*)pControl;
+ SvLBoxEntry *pThisEntry = NULL;
+
+ if ( ! (nParams & PARAM_USHORT_1) )
+ {
+ pThisEntry = pTree->GetCurEntry();
+ if ( !pThisEntry )
+ ReportError( aUId, GEN_RES_STR2c2( S_NO_SELECTED_ENTRY, MethodString( nMethodId ), "TreeListBox" ) );
+ }
+ else
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ pThisEntry = (SvLBoxEntry*)pTree->GetEntryAtVisPos( nNr1-1 );
+ }
+ }
+
+ if ( pThisEntry )
+ {
+ if ( ! (nParams & PARAM_USHORT_2) )
+ nNr2 = 1;
+ if ( ValueOK( aUId, MethodString( nMethodId ),nNr2,pThisEntry->ItemCount() ) )
+ {
+ SvLBoxItem *pMyItem = pThisEntry->GetItem( nNr2-1 );
+ comm_USHORT nType;
+ switch ( pMyItem->IsA() )
+ {
+ case SV_ITEM_ID_LBOXSTRING: nType = CONST_ItemTypeText ; break;
+ case SV_ITEM_ID_LBOXBMP: nType = CONST_ItemTypeBMP ; break;
+ case SV_ITEM_ID_LBOXBUTTON: nType = CONST_ItemTypeCheckbox ; break;
+ case SV_ITEM_ID_LBOXCONTEXTBMP: nType = CONST_ItemTypeContextBMP ; break;
+ default: nType = CONST_ItemTypeUnknown;
+ }
+ pRet->GenReturn ( RET_Value, aUId, nType );
+ }
+ }
+ }
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "TreeListBox" ) );
+ break;
+ }
+ break;
+ case C_Control:
+ {
+ USHORT nRealControlType = 0;
+ if ( dynamic_cast< EditBrowseBox* >(pControl) )
+ nRealControlType = CONST_CTBrowseBox;
+ else if ( dynamic_cast< ValueSet* >(pControl) )
+ nRealControlType = CONST_CTValueSet;
+ else if ( dynamic_cast< ORoadmap* >(pControl) )
+ nRealControlType = CONST_CTORoadmap;
+ else if ( dynamic_cast< IExtensionListBox* >(pControl) )
+ nRealControlType = CONST_CTIExtensionListBox;
+ else
+ nRealControlType = CONST_CTUnknown;
+
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ default:
+ switch( nRealControlType )
+ {
+ case CONST_CTBrowseBox:
+ {
+ EditBrowseBox* pEBBox = dynamic_cast< EditBrowseBox* >(pControl);
+ switch( nMethodId )
+ {
+
+
+ /*
+
+
+ BOOL MakeFieldVisible( long nRow, USHORT nColId, BOOL bComplete = FALSE );
+ // access to dynamic values of cursor row
+ String GetColumnTitle( USHORT nColumnId ) const;
+ USHORT GetColumnId( USHORT nPos ) const;
+ USHORT GetColumnPos( USHORT nColumnId ) const;
+ // access and movement of cursor
+ long GetCurRow() const { return nCurRow; }
+ USHORT GetCurColumnId() const { return nCurColId; }
+ BOOL GoToRow( long nRow );
+ BOOL GoToRowAndDoNotModifySelection( long nRow );
+ BOOL GoToColumnId( USHORT nColId );
+ BOOL GoToRowColumnId( long nRow, USHORT nColId );
+ // selections
+ void SetNoSelection();
+ void SelectAll();
+ void SelectRow( long nRow, BOOL bSelect = TRUE, BOOL bExpand = TRUE );
+ void SelectColumnPos( USHORT nCol, BOOL bSelect = TRUE )
+ { SelectColumnPos( nCol, bSelect, TRUE); }
+ void SelectColumnId( USHORT nColId, BOOL bSelect = TRUE )
+ { SelectColumnPos( GetColumnPos(nColId), bSelect, TRUE); }
+ long GetSelectRowCount() const;
+ USHORT GetSelectColumnCount() const;
+ BOOL IsRowSelected( long nRow ) const;
+ BOOL IsColumnSelected( USHORT nColumnId ) const;
+ long FirstSelectedRow( BOOL bInverse = FALSE );
+ long LastSelectedRow( BOOL bInverse = FALSE );
+ long PrevSelectedRow();
+ long NextSelectedRow();
+ const MultiSelection* GetSelection() const
+ { return bMultiSelection ? uRow.pSel : 0; }
+ void SetSelection( const MultiSelection &rSelection );
+
+ virtual String GetCellText(long _nRow, USHORT _nColId) const;
+ USHORT GetColumnCount() const { return ColCount(); }
+protected:
+ virtual long GetRowCount() const;
+
+
+ EditBrowseBox
+
+ sal_Bool IsEditing() const {return aController.Is();}
+ void InvalidateStatusCell(long nRow) {RowModified(nRow, 0);}
+ void InvalidateHandleColumn();
+
+ CellControllerRef Controller() const { return aController; }
+ sal_Int32 GetBrowserFlags() const { return m_nBrowserFlags; }
+
+ virtual void ActivateCell(long nRow, sal_uInt16 nCol, sal_Bool bSetCellFocus = sal_True);
+ virtual void DeactivateCell(sal_Bool bUpdate = sal_True);
+
+
+
+ */
+ case M_GetSelText :
+ {
+ pRet->GenReturn ( RET_Value, aUId, pEBBox->GetCellText( pEBBox->GetCurrRow(), pEBBox->GetColumnId( pEBBox->GetCurrColumn() )));
+ }
+ break;
+ case M_GetColumnCount :
+ {
+ USHORT nColCount = pEBBox->GetColumnCount();
+ comm_USHORT nUnfrozenColCount = 0;
+ USHORT i;
+ for ( i=0 ; i < nColCount ; i++ )
+ {
+ if ( !pEBBox->IsFrozen( pEBBox->GetColumnId( i ) ) )
+ nUnfrozenColCount++;
+ }
+ pRet->GenReturn ( RET_Value, aUId, nUnfrozenColCount );
+ }
+ break;
+ case M_GetRowCount :
+ {
+ pRet->GenReturn ( RET_Value, aUId, (comm_ULONG)pEBBox->GetRowCount() );
+ }
+ break;
+ case M_IsEditing :
+ {
+ CellControllerRef aControler;
+ aControler = pEBBox->Controller();
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)aControler.Is() );
+ }
+ break;
+ case M_Select :
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,pEBBox->GetRowCount() ) )
+ {
+ USHORT nColCount = pEBBox->GetColumnCount();
+ comm_USHORT nUnfrozenColCount = 0;
+ USHORT i;
+ for ( i=0 ; i < nColCount ; i++ )
+ {
+ if ( !pEBBox->IsFrozen( pEBBox->GetColumnId( i ) ) )
+ nUnfrozenColCount++;
+ }
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr2,nUnfrozenColCount ) )
+ pEBBox->GoToRowColumnId( nNr1-1, pEBBox->GetColumnId( nNr2 ) );
+ }
+ }
+ break;
+
+
+
+ /*
+ case M_GetSelCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((SvLBox*)pControl)->GetSelectionCount()));
+ break;
+ case M_GetSelIndex :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ if ( ValueOK(aUId, CUniString("GetSelIndex"),nNr1,((SvLBox*)pControl)->GetSelectionCount()) )
+ {
+ nNr1--;
+ COUNT_LBOX( FirstSelected, NextSelected, nNr1);
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( ((SvTreeListBox*)pControl)->GetVisiblePos( pThisEntry )) +1 );
+ }
+ break;
+ case M_GetSelText :
+ if ( ! (nParams & PARAM_USHORT_1) )
+ nNr1 = 1;
+ if ( ValueOK(aUId, CUniString("GetSelText"),nNr1,((SvLBox*)pControl)->GetSelectionCount()) )
+ {
+ nNr1--;
+ COUNT_LBOX( FirstSelected, NextSelected, nNr1);
+ GetFirstValidTextItem( pThisEntry );
+ pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+ }
+ break;
+ case M_GetItemCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(((SvLBox*)pControl)->GetVisibleCount()) );
+ break;
+ case M_GetItemText :
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ SvLBoxEntry *pEntry = (SvLBoxEntry*)((SvTreeListBox*)pControl)->GetEntryAtVisPos( nNr1-1 );
+ GetFirstValidTextItem( pEntry );
+ pRet->GenReturn ( RET_Value, aUId, pItem->GetText() );
+ }
+ break;
+ case M_Select :
+ if ( ! (nParams & PARAM_BOOL_1) )
+ bBool1 = TRUE;
+ if( nParams & PARAM_STR_1 )
+ {
+ / * ListBox *pLB = ((ListBox*)pControl);
+ if ( pLB->GetEntryPos( aString1 ) == LISTBOX_ENTRY_NOTFOUND )
+ ReportError( aUId, GEN_RES_STR2( S_ENTRY_NOT_FOUND, MethodString( nMethodId ), aString1 ) );
+ else
+ {
+ pLB->SelectEntry( aString1, bBool1 );
+ if ( pLB->IsEntrySelected( aString1 ) ? !bBool1 : bBool1 ) // XOR rein mit BOOL
+ ReportError( aUId, GEN_RES_STR2( S_METHOD_FAILED, MethodString( nMethodId ), aString1 ) );
+ }
+ * / ReportError( aUId, GEN_RES_STR1( S_SELECT_DESELECT_VIA_STRING_NOT_IMPLEMENTED, MethodString( nMethodId ) ) );
+ }
+ else
+ {
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,((SvLBox*)pControl)->GetVisibleCount()) )
+ {
+ SvLBoxEntry *pEntry = (SvLBoxEntry*)((SvTreeListBox*)pControl)->GetEntryAtVisPos( nNr1-1 );
+ ((SvTreeListBox*)pControl)->Select ( pEntry, bBool1 );
+ }
+ }
+ break;*/
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "EditBrowseBox" ) );
+ break;
+ }
+ }
+ break;
+ case CONST_CTValueSet:
+ {
+ ValueSet *pVS = dynamic_cast< ValueSet* >(pControl);
+ switch ( nMethodId )
+ {
+ case M_GetItemCount:
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pVS->GetItemCount()));
+ break;
+ case M_GetItemText:
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pVS->GetItemCount() ))
+ pRet->GenReturn ( RET_Value, aUId, pVS->GetItemText( pVS->GetItemId( nNr1-1 ) ) );
+ break;
+ case M_Select:
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pVS->GetItemCount() ))
+ pVS->SelectItem( pVS->GetItemId( nNr1-1 ) );
+ break;
+ case M_GetSelIndex :
+ if ( pVS->IsNoSelection() )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(0));
+ else
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pVS->GetItemPos( pVS->GetSelectItemId() ) +1));
+ break;
+ case M_GetSelText :
+ if ( pVS->IsNoSelection() )
+ pRet->GenReturn ( RET_Value, aUId, String() );
+ else
+ pRet->GenReturn ( RET_Value, aUId, pVS->GetItemText( pVS->GetSelectItemId() ) );
+ break;
+ case M_SetNoSelection :
+ pVS->SetNoSelection();
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "ValueSet" ) );
+ break;
+ }
+ }
+ break;
+ case CONST_CTORoadmap:
+ {
+ ORoadmap *pRM = dynamic_cast< ORoadmap* >(pControl);
+ switch ( nMethodId )
+ {
+ case M_GetItemCount:
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pRM->GetItemCount()));
+ break;
+ case M_GetItemText:
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pRM->GetItemCount() ))
+ pRet->GenReturn ( RET_Value, aUId, pRM->GetRoadmapItemLabel( pRM->GetItemID( nNr1-1 ) ) );
+ break;
+ case M_Select:
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pRM->GetItemCount() ))
+ {
+ if ( pRM->IsRoadmapItemEnabled( pRM->GetItemID( nNr1-1 ) ) )
+ pRM->SelectRoadmapItemByID( pRM->GetItemID( nNr1-1 ) );
+ else
+ ReportError( aUId, GEN_RES_STR1c( S_WIN_DISABLED, "RoadmapItem" ) );
+ }
+ break;
+ case M_GetSelIndex :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pRM->GetItemIndex( pRM->GetCurrentRoadmapItemID() ) +1));
+ break;
+ case M_GetSelText :
+ pRet->GenReturn ( RET_Value, aUId, pRM->GetRoadmapItemLabel( pRM->GetCurrentRoadmapItemID() ) );
+ break;
+ case M_IsItemEnabled :
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pRM->GetItemCount() ))
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)pRM->IsRoadmapItemEnabled( pRM->GetItemID( nNr1-1 ) ) );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "RoadMap" ) );
+ break;
+ }
+ }
+ break;
+ case CONST_CTIExtensionListBox:
+ {
+ IExtensionListBox *pELB = dynamic_cast< IExtensionListBox* >(pControl);
+ switch ( nMethodId )
+ {
+ case M_GetItemCount:
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pELB->getItemCount()));
+ break;
+ case M_GetItemText:
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pELB->getItemCount() ))
+ switch ( nNr2 )
+ {
+ case 1:
+ pRet->GenReturn ( RET_Value, aUId, pELB->getItemName( nNr1 -1 ) );
+ break;
+ case 2:
+ pRet->GenReturn ( RET_Value, aUId, pELB->getItemVersion( nNr1 -1 ) );
+ break;
+ case 3:
+ pRet->GenReturn ( RET_Value, aUId, pELB->getItemDescription( nNr1 -1 ) );
+ break;
+ case 4:
+ pRet->GenReturn ( RET_Value, aUId, pELB->getItemPublisher( nNr1 -1 ) );
+ break;
+ case 5:
+ pRet->GenReturn ( RET_Value, aUId, pELB->getItemPublisherLink( nNr1 -1 ) );
+ break;
+ default:
+ ValueOK( aUId, MethodString( nMethodId ).AppendAscii(" String Number"), nNr2, 5 );
+ }
+ break;
+ case M_Select:
+ if ( (nParams & PARAM_USHORT_1) )
+ {
+ if ( ValueOK( aUId, MethodString( nMethodId ), nNr1, pELB->getItemCount() ))
+ {
+ pELB->select( nNr1-1 );
+ }
+ }
+ else if ( (nParams & PARAM_STR_1) )
+ {
+ pELB->select( aString1 );
+ BOOL bSuccess = TRUE;
+ if ( pELB->getSelIndex() == EXTENSION_LISTBOX_ENTRY_NOTFOUND )
+ bSuccess = FALSE;
+ else
+ {
+ if ( !aString1.Equals( String( pELB->getItemName( pELB->getSelIndex() ) ) ) )
+ bSuccess = FALSE;
+ }
+ if ( !bSuccess )
+ ReportError( aUId, GEN_RES_STR2( S_ENTRY_NOT_FOUND, MethodString( nMethodId ), aString1 ) );
+ }
+ break;
+ case M_GetSelCount :
+ if ( pELB->getSelIndex() == EXTENSION_LISTBOX_ENTRY_NOTFOUND )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( 0 ));
+ else
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( 1 ));
+ break;
+ case M_GetSelIndex :
+ if ( pELB->getSelIndex() == EXTENSION_LISTBOX_ENTRY_NOTFOUND )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( 0 ));
+ else
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG( pELB->getSelIndex() +1));
+ break;
+/* xxxcase M_SetNoSelection :
+ ((ListBox*)pControl)->SetNoSelection();
+ ((ListBox*)pControl)->Select();
+ break; */
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "RoadMap" ) );
+ break;
+ }
+ }
+ break;
+ case CONST_CTUnknown:
+ ReportError( aUId, GEN_RES_STR2( S_UNKNOWN_TYPE, UniString::CreateFromInt32( nRT ), MethodString(nMethodId) ) );
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ break;
+ }
+ }
+ break;
+ }
+ case C_Window:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "Window" ) );
+ break;
+ }
+ break;
+
+ case C_DockingWin:
+ DockingWin:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_Dock :
+ if ( ((DockingWindow*)pControl)->IsFloatingMode() )
+ ((DockingWindow*)pControl)->SetFloatingMode(FALSE);
+ else
+ ReportError( aUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_FLOATING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_Undock :
+ if ( !((DockingWindow*)pControl)->IsFloatingMode() )
+ ((DockingWindow*)pControl)->SetFloatingMode(TRUE);
+ else
+ ReportError( aUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_FLOATING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_IsDocked :
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL) !((DockingWindow*)pControl)->IsFloatingMode());
+ break;
+ case M_Close:
+ //aWindowWaitUId = aUId;
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((DockingWindow*)pControl)->Close();
+ break;
+ case M_Size:
+ case M_Move:
+ case M_IsMax:
+ case M_Minimize:
+ case M_Maximize:
+ if ( ((DockingWindow*)pControl)->IsFloatingMode() )
+ {
+ Window* pFloat = ((DockingWindow*)pControl)->GetFloatingWindow();
+ if ( !pFloat && ((DockingWindow*)pControl)->IsFloatingMode() )
+ {
+ if ( pControl->GET_REAL_PARENT() && pControl->GET_REAL_PARENT()->GetType() == WINDOW_FLOATINGWINDOW )
+ pFloat = pControl->GET_REAL_PARENT();
+ else
+ {
+ DBG_ERROR("FloatingMode set but Parent is no FloatingWindow");
+ }
+ }
+ if ( pFloat && pFloat->GetType() == WINDOW_FLOATINGWINDOW )
+ {
+ pControl = pFloat;
+ goto FloatWin;
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_CANNOT_FIND_FLOATING_WIN, MethodString( nMethodId ) ) );
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_ALLOWED_ONLY_IN_DOCKING_MODE, MethodString( nMethodId ) ) );
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ goto MoreDialog;
+
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "DockingWindow" ) );
+ break;
+ }
+ break;
+ case C_FloatWin:
+ FloatWin:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_IsMax :
+ pRet->GenReturn ( RET_Value, aUId, (comm_BOOL)!((FloatingWindow*)pControl)->IsRollUp());
+ break;
+ case M_Minimize :
+ ((FloatingWindow*)pControl)->RollUp();
+ break;
+ case M_Maximize :
+ ((FloatingWindow*)pControl)->RollDown();
+ break;
+ case M_Size:
+ {
+ if ( pControl->GetStyle() & WB_SIZEABLE )
+ {
+ Size aMin = ((FloatingWindow*)pControl)->GetMinOutputSizePixel();
+ if ( aMin.Width() <= nNr1 && aMin.Height() <= nNr2 )
+ {
+ pControl->SetSizePixel(Size(nNr1,nNr2));
+ pControl->Resize();
+ }
+ else
+ {
+ ReportError( aUId, GEN_RES_STR2( S_SIZE_BELOW_MINIMUM, String::CreateFromInt32( aMin.Width() ), String::CreateFromInt32( aMin.Height() ) ) );
+ }
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_SIZE_NOT_CHANGEABLE, MethodString( nMethodId ) ) );
+ break;
+ }
+ case M_Close:
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((FloatingWindow*)pControl)->Close();
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ case M_Move:
+ goto MoreDialog;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "FloatingWin" ) );
+ break;
+ }
+ break;
+ case C_ModelessDlg:
+ case C_ModalDlg:
+ case C_Dialog:
+ case C_TabDlg:
+ MoreDialog:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_Close:
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((SystemWindow*)pControl)->Close();
+ break;
+ case M_OK:
+ {
+ Window *pChild = GetWinByRT( pControl, WINDOW_OKBUTTON );
+ if( ControlOK( pChild, "OK Button" ) )
+ {
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((Button*)pChild)->Click();
+ }
+ break;
+ }
+ case M_Cancel:
+ {
+ Window *pChild = GetWinByRT( pControl, WINDOW_CANCELBUTTON );
+ if( ControlOK( pChild, "Cancel Button" ) )
+ {
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((Button*)pChild)->Click();
+ }
+ break;
+ }
+ case M_Help:
+ {
+ Window *pChild = GetWinByRT( pControl, WINDOW_HELPBUTTON );
+ if( ControlOK( pChild, "Help Button" ) )
+ ((Button*)pChild)->Click();
+ break;
+ }
+ case M_Default:
+ {
+ Window *pChild = ImpGetButton( pControl, WB_DEFBUTTON, WB_DEFBUTTON );
+ if( ControlOK( pChild, "Default Button" ) )
+ ((Button*)pChild)->Click();
+ break;
+ }
+ case M_Move:
+ {
+ pControl->SetPosPixel(Point(nNr1,nNr2));
+ break;
+ }
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "Dialog" ) );
+ break;
+ }
+ break;
+ case C_WorkWin:
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, MitteOben);
+ break;
+ case M_Close:
+ DBG_ASSERT( aUId.Matches( pControl->GetSmartUniqueOrHelpId() ), "aUID != UniqueOrHelpId");
+ SET_WINP_CLOSING(pControl);
+ ((WorkWindow*)pControl)->Close();
+ break;
+ case M_Size:
+ case M_Move:
+ goto FloatWin;
+// break;
+ case M_IsMax :
+ pRet->GenReturn ( RET_Value, aUId, ((WorkWindow*)pControl)->IsMaximized() );
+ break;
+ case M_IsMin :
+ pRet->GenReturn ( RET_Value, aUId, ((WorkWindow*)pControl)->IsMinimized() );
+ break;
+ case M_IsRestore :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL (!((WorkWindow*)pControl)->IsMaximized() && !((WorkWindow*)pControl)->IsMinimized()) );
+ break;
+ case M_Minimize :
+ ((WorkWindow*)pControl)->Maximize( FALSE );
+ ((WorkWindow*)pControl)->Minimize();
+ break;
+ case M_Maximize :
+ ((WorkWindow*)pControl)->Maximize();
+ break;
+ case M_Restore :
+ ((WorkWindow*)pControl)->Maximize( FALSE );
+ ((WorkWindow*)pControl)->Restore();
+ break;
+ case M_Help: // Alles was unten weiterbehandelt werden soll
+ goto MoreDialog;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "WorkWindow" ) );
+ break;
+ }
+ break;
+ case C_TabPage:
+ ReportError( aUId, GEN_RES_STR1( S_INTERNAL_ERROR, MethodString( nMethodId ) ) );
+ break;
+ case C_MessBox:
+ case C_InfoBox:
+ case C_WarningBox:
+ case C_ErrorBox:
+ case C_QueryBox:
+ {
+ BOOL bDone = TRUE;
+ MessBox* pMB = (MessBox*)pControl;
+ switch( nMethodId )
+ {
+ case M_GetCheckBoxText:
+ pRet->GenReturn ( RET_Value, aUId, pMB->GetCheckBoxText() );
+ break;
+ case M_IsChecked :
+ pRet->GenReturn ( RET_Value, aUId, comm_BOOL( pMB->GetCheckBoxState() == STATE_CHECK) );
+ break;
+ case M_Check :
+ pMB->SetCheckBoxState( TRUE );
+ break;
+ case M_UnCheck :
+ pMB->SetCheckBoxState( FALSE );
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, aUId, pMB->GetMessText());
+ break;
+
+ default:
+ bDone = FALSE;
+ break;
+ }
+ if ( bDone )
+ break; // break the case here else continue at C_ButtonDialog
+ }
+ case C_ButtonDialog:
+ {
+ ButtonDialog* pBD = (ButtonDialog*)pControl;
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "Working MessBox: " );
+ if (pControl->IsVisible())
+ m_pDbgWin->AddText("*(Visible)\n");
+ else
+ m_pDbgWin->AddText("*(nicht Visible)\n");
+#endif
+ switch( nMethodId )
+ {
+ case M_AnimateMouse :
+ AnimateMouse( pControl, Mitte);
+ break;
+ case M_OK:
+#if ( BUTTONID_OK != RET_OK )
+#error BUTTONID_OK != RET_OK
+#endif
+ if ( pBD->GetPushButton( BUTTONID_OK ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_OK);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_OK_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_Cancel:
+ if ( pBD->GetPushButton( BUTTONID_CANCEL ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_CANCEL);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_CANCEL_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_Yes:
+ if ( pBD->GetPushButton( BUTTONID_YES ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_YES);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_YES_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_No:
+ if ( pBD->GetPushButton( BUTTONID_NO ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_NO);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_NO_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_Repeat:
+ if ( pBD->GetPushButton( BUTTONID_RETRY ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_RETRY);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_RETRY_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_Help:
+ if ( pBD->GetPushButton( BUTTONID_HELP ) )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(BUTTONID_HELP);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_HELP_BUTTON, MethodString( nMethodId ) ) );
+ break;
+ case M_Default:
+ {
+ WinBits Style = pControl->GetStyle();
+ if ( Style & WB_DEF_OK )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_OK);
+ }
+ else if ( Style & WB_DEF_CANCEL )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_CANCEL);
+ }
+ else if ( Style & WB_DEF_YES )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_YES);
+ }
+ else if ( Style & WB_DEF_NO )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_NO);
+ }
+ else if ( Style & WB_DEF_RETRY )
+ {
+ SET_WINP_CLOSING(pControl);
+ pBD->EndDialog(RET_RETRY);
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_NO_DEFAULT_BUTTON, MethodString( nMethodId ) ) );
+ }
+ break;
+ case M_GetText :
+ pRet->GenReturn ( RET_Value, aUId, pControl->GetText());
+ break;
+ case M_Click:
+ if ( nParams & PARAM_USHORT_1 )
+ {
+ if ( pBD->GetPushButton( nNr1 ) )
+ {
+ if ( nNr1 != BUTTONID_HELP )
+ {
+ SET_WINP_CLOSING(pControl);
+ }
+ pBD->GetPushButton( nNr1 )->Click();
+ }
+ else
+ ReportError( aUId, GEN_RES_STR2( S_NO_DEFAULT_BUTTON, UniString::CreateFromInt32( nNr1 ), MethodString( nMethodId ) ) );
+ }
+ else
+ ReportError( aUId, GEN_RES_STR1( S_BUTTONID_REQUIRED, MethodString( nMethodId ) ) );
+ break;
+ case M_GetButtonCount :
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(pBD->GetButtonCount()));
+ break;
+ case M_GetButtonId :
+ if ( ValueOK(aUId, MethodString( nMethodId ),nNr1,pBD->GetButtonCount()) )
+ pRet->GenReturn ( RET_Value, aUId, comm_ULONG(pBD->GetButtonId(nNr1-1)));
+ break;
+ default:
+ ReportError( aUId, GEN_RES_STR2c2( S_UNKNOWN_METHOD, MethodString(nMethodId), "MessageBox" ) );
+ break;
+ }
+ break;
+ }
+ default:
+ DBG_ERROR( "Unknown Objekttype from UId or Method not suported" );
+ ReportError( aUId, GEN_RES_STR2( S_UNKNOWN_TYPE, UniString::CreateFromInt32( nRT ), MethodString(nMethodId) ) );
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( " Unknown Objekttype from UId or Method not suported" );
+#endif
+ break;
+ }
+ }
+ for( int i = 0; i < 32; i++ )
+ SafeReschedule();
+ }
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( "\n" );
+#endif
+ if ( bStatementDone )
+ {
+ SendProfile( UIdString( aUId ).Append('.').Append( MethodString( nMethodId ) ) );
+ delete this;
+ }
+ else
+ {
+ if ( nRetryCount-- )
+ {
+#if OSL_DEBUG_LEVEL > 1
+ m_pDbgWin->AddText( CUniString("Reschedule command (requed) (").Append( UniString::CreateFromInt32(nRetryCount) ).AppendAscii(")\n") );
+#endif
+ QueStatement( this ); // will que at the start of the list
+ }
+ else
+ {
+ bStatementDone=TRUE;
+ }
+ }
+ return bStatementDone;
+
+#define FINISH_NEXT
+#define FINISH_SAME
+
+}
diff --git a/automation/source/server/statemnt.hxx b/automation/source/server/statemnt.hxx
new file mode 100644
index 000000000000..4e580a09749c
--- /dev/null
+++ b/automation/source/server/statemnt.hxx
@@ -0,0 +1,500 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+/***************************************************************************
+**
+** Von StatementList werden alle Statements abgeleitet.
+** Es gibt immer nur eine Statementliste, die verpointert ist.
+** jederzeit kann das der Anfang der Kette abgefragt werden.
+**
+**
+**
+**
+**
+**
+**
+***************************************************************************/
+#ifndef _STATEMNT_HXX
+#define _STATEMNT_HXX
+
+#include <vcl/wintypes.hxx>
+#include <tools/string.hxx>
+#include <tools/debug.hxx>
+#include <tools/time.hxx>
+#ifndef _SV_DRAG_HXX //autogen
+//#include <vcl/drag.hxx>
+#endif
+#include <vcl/menu.hxx>
+#include <vcl/svapp.hxx>
+#include <tools/fsys.hxx>
+#include <sot/storage.hxx>
+#include <basic/sbstar.hxx>
+#include <vcl/event.hxx>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <vcl/smartid.hxx>
+#include <automation/commtypes.hxx>
+
+class Window;
+class SystemWindow;
+class Point;
+class SfxPoolItem;
+
+class ScrollBar;
+
+class SCmdStream;
+class RetStream;
+class ImplRemoteControl;
+
+class TTProfiler;
+class TTProperties;
+
+class Dir;
+
+class CommunicationLink;
+
+#if OSL_DEBUG_LEVEL > 1
+class EditWindow;
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+ void SAL_CALL osl_TestToolDebugPrint( const sal_Char *pString );
+#ifdef __cplusplus
+}
+#endif
+
+
+#define IsVisible IsReallyVisible
+#define GET_REAL_PARENT() GetWindow( WINDOW_REALPARENT )
+
+// switch behaviour of ImplMouse* and ImplKeyInput
+#define FORCE_DIRECT_CALL TRUE
+
+typedef USHORT SearchFlags;
+#define SEARCH_NOOVERLAP ((SearchFlags) 0x0001)
+#define SEARCH_NO_TOPLEVEL_WIN ((SearchFlags) 0x0002)
+#define SEARCH_FOCUS_FIRST ((SearchFlags) 0x0004)
+#define SEARCH_FIND_DISABLED ((SearchFlags) 0x0008)
+
+class Search
+{
+ SearchFlags nmSearchFlags;
+public:
+ Search( SearchFlags nSearchFlags = 0): nmSearchFlags(nSearchFlags) {}
+ virtual ~Search() {}
+
+ virtual BOOL IsWinOK( Window *pWin ) = 0;
+ SearchFlags GetSearchFlags() { return nmSearchFlags; }
+ void AddSearchFlags( SearchFlags aNewFlags ) { nmSearchFlags |= aNewFlags; }
+ void RemoveSearchFlags( SearchFlags aRemoveFlags ) { nmSearchFlags &= ( ~aRemoveFlags ); }
+ BOOL HasSearchFlag( SearchFlags aQueryFlag ) { return (nmSearchFlags & aQueryFlag) == aQueryFlag; }
+};
+
+BOOL IsDialog(Window *pWin); // Ist *pWin von SystemWindow abgeleitet (Kann es Active sein)
+BOOL IsAccessable(Window *pWin); // Ist *pWin Zugreifbar (ber IsEnabled und Parents geprft)
+
+
+//class SafePointer : CriticalSection
+class SafePointer
+{
+ SafePointer *pSelf;
+public:
+ SafePointer() { pSelf = this; }
+ virtual ~SafePointer() { DBG_ASSERT(pSelf==this,"Destructor von Nicht existierendem Objekt aufgerufen");
+ pSelf = NULL; }
+// static BOOL IsValid( SafePointer *pThis ) { return pThis == pThis->pSelf; }
+// virtual operator -> (); { DBG_ASSERT(pMyself == this,"-> von Nicht existierendem Objekt aufgerufen"); }
+};
+
+
+class DisplayHidWin;
+class StatementCommand;
+class TranslateWin;
+
+struct TTSettings
+{
+ // DisplayHID
+ StatementCommand *pDisplayInstance;
+ DisplayHidWin *pDisplayHidWin;
+ Window *Old;
+ Window *Act;
+ String aOriginalCaption;
+
+ // Translate
+ TranslateWin *pTranslateWin;
+ BOOL bToTop;
+};
+
+
+TTSettings* GetTTSettings();
+
+
+#define MAX_RETRIES 9
+class StatementList : public SafePointer
+{
+private:
+ StatementList(const StatementList&);
+ StatementList & operator=(const StatementList&);
+
+protected:
+ StatementList();
+ USHORT nRetryCount;
+ void QueStatement(StatementList *pAfterThis);
+ BOOL bStatementInQue;
+ static USHORT nUseBindings;
+
+ static TTProfiler *pProfiler;
+ void InitProfile();
+ void SendProfile( String aText );
+ static StatementList *pCurrentProfileStatement;
+
+ static BOOL bIsInReschedule;
+ static USHORT nModalCount;
+ static Window *pLastFocusWindow; // Wenn dieses sich ndert wird Safe Reschedule abgebrochen
+ static BOOL bWasDragManager; // Wenn dieses sich ndert wird Safe Reschedule abgebrochen
+ static BOOL bWasPopupMenu; // Wenn dieses sich ndert wird Safe Reschedule abgebrochen
+ static BOOL bBasicWasRunning;
+
+ static USHORT nMinTypeKeysDelay; /// Verzgerung der einzelnen Anschlge fr TypeKeys
+ static USHORT nMaxTypeKeysDelay;
+ static BOOL bDoTypeKeysDelay;
+
+ static Window* pFirstDocFrame;
+
+ static BOOL bIsSlotInExecute;
+
+public:
+ static BOOL IsInReschedule() { return bIsInReschedule; }
+ void SafeReschedule( BOOL bYield = FALSE ) // Setzt Flag, so da nicht schon der nchste Befehl ausgefhrt wird
+ {
+ nModalCount = Application::GetModalModeCount();
+ bIsInReschedule = TRUE;
+ pLastFocusWindow = GetpApp()->GetFocusWindow();
+ bWasDragManager = false /*!= DragManager::GetDragManager()*/;
+ bWasPopupMenu = NULL != PopupMenu::GetActivePopupMenu();
+ bBasicWasRunning = StarBASIC::IsRunning();
+ bWasExecuting = bExecuting;
+ if ( bYield )
+ GetpApp()->Yield();
+ else
+ GetpApp()->Reschedule();
+ bExecuting = bWasExecuting;
+ bBasicWasRunning = FALSE;
+ bWasPopupMenu = FALSE;
+ bWasDragManager = FALSE;
+ pLastFocusWindow = NULL;
+ bIsInReschedule = FALSE;
+ nModalCount = 0;
+ }
+ static BOOL MaybeResetSafeReschedule()
+ { // Implementierung mu hier zwar nicht sein, ist aber bersichtlicher so
+ if ( !bIsInReschedule )
+ return FALSE;
+
+ if ( pLastFocusWindow != GetpApp()->GetFocusWindow()
+ || ( Application::GetModalModeCount() > nModalCount )
+// || ( DragManager::GetDragManager() && !bWasDragManager )
+ || ( PopupMenu::GetActivePopupMenu() && !bWasPopupMenu )
+ || ( StarBASIC::IsRunning() && !bBasicWasRunning ) )
+ {
+ bIsInReschedule = FALSE;
+ pLastFocusWindow = NULL;
+ return TRUE;
+ }
+ else
+ return FALSE;
+ }
+ static void NormalReschedule() // Setzt das flag nicht
+ {
+ GetpApp()->Reschedule();
+ }
+#define Reschedule RescheduleNichtBenutzen_StattdessenSafeRescheduleAnStatementList
+
+ static Window* GetMouseWin();
+ static BOOL WinPtrValid(Window *pTest);
+ static Window* SearchAllWin( Window *pBase, Search &aSearch, BOOL MaybeBase = TRUE );
+protected:
+ static Window* SearchClientWin( Window *pBase, Search &aSearch, BOOL MaybeBase = TRUE );
+
+ Window* SearchTree( SmartId aUId, BOOL bSearchButtonOnToolbox = FALSE );
+ Window* GetActive( WindowType nRT, BOOL MaybeBase = TRUE );
+ Window* GetFocus( WindowType nRT, BOOL MaybeBase = TRUE );
+ Window* GetAnyActive( BOOL MaybeBase = TRUE );
+ ScrollBar* GetScrollBar( Window *pBase, USHORT nDirection, BOOL MaybeBase = TRUE );
+ Window* GetPopupFloatingWin( BOOL MaybeBase = TRUE );
+ Menu* GetMatchingMenu( Window* pWin, Menu* pBaseMenu = NULL );
+ Window* GetWinByRT( Window *pBase, WindowType nRT, BOOL MaybeBase = TRUE, USHORT nSkip = 0, BOOL bSearchAll = FALSE );
+ USHORT CountWinByRT( Window *pBase, WindowType nRT, BOOL MaybeBase = TRUE );
+ Window* GetDocWin( USHORT nNr );
+ USHORT GetDocWinCount();
+ Window* GetFadeSplitWin( Window *pBase, WindowAlign nAlign, BOOL MaybeBase = TRUE );
+ BOOL ValueOK(SmartId nId, String aBezeichnung, ULONG nValue, ULONG nMax);
+
+ USHORT GetCurrentMenues( PopupMenu *&pPopup, MenuBar *&pMenuBar, Menu *&pMenu );
+
+public:
+// void AddStatement( StatementList *pNewStatement );
+
+ virtual ~StatementList();
+ void Advance();
+ virtual BOOL Execute() = 0;
+/***************************************************************************
+** Bestimmt erst den nchsten Befehl, setzt Current
+** und fhrt dann aus.
+** Returnwert gibt an, ob Befehl nochmal ausgefhrt
+** werden soll. Dann mu auch der UserEvent verlassen werden, um der Applikation
+** normales Arbeiten zu ermglichen (Dialog schliessen)
+** TRUE bedeutet, dass alles klar gegangen ist
+** FALSE bedeutet nochmal Bitte
+***************************************************************************/
+
+ void ReportError(String aMessage);
+ void ReportError(SmartId aUId, String aMessage);
+ void ReportError(String aMessage, ULONG nWhatever);
+
+ static void DirectLog( ULONG nType, String aString );
+
+ String Tree(Window *pBase, int Indent);
+ String ClientTree(Window *pBase, int Indent);
+
+ StatementList *pNext;
+ static StatementList /**pCurrent,*/ *pFirst;
+ static BOOL bReadingCommands;
+ static SmartId aWindowWaitUId;
+ static Window *pWindowWaitPointer;
+ static SmartId aWindowWaitOldHelpId;
+ static SmartId aWindowWaitOldUniqueId;
+ static RetStream *pRet;
+ static BOOL IsError;
+ static BOOL bDying;
+ static BOOL bExecuting; // Gesetzt, wenn ein Befehl rescheduled ohne einen neuen Befehl zu erlauben
+ BOOL bWasExecuting; // Wurde bei einem MaybeResetSafeReschedule resettet, so wird der Zustand danach wiederhergestellt
+ static SmartId aSubMenuId1; // Untermens bei PopupMenus
+ static SmartId aSubMenuId2; // erstmal 2-Stufig
+ static SmartId aSubMenuId3; // and now even 3 levels #i31512#
+ static SystemWindow *pMenuWindow; // when using MenuBar as base for MenuCommands
+ static TTProperties *pTTProperties; // Hier stehen die SlotIDs aus dem SFX drin
+
+ BOOL CheckWindowWait(); //True heisst, dass Window noch existiert
+ //False -> Window weg;
+ static void SetFirstDocFrame( Window* pWin );
+ static Window* GetFirstDocFrame();
+ static BOOL IsFirstDocFrame( Window* pWin );
+ static BOOL IsDocWin( Window* pWin );
+ static BOOL IsIMEWin( Window* pWin ); // Input Window for CJK under Solaris
+ static BOOL IsDocFrame( Window* pWin );
+ static MenuBar* GetDocFrameMenuBar( Window* pWin );
+ static USHORT GetDocFrameCount();
+
+ static BOOL bCatchGPF;
+
+ static BOOL bUsePostEvents; // use Application::Post*Event or own impl to handle key and mouseevents
+
+#if OSL_DEBUG_LEVEL > 1
+ static EditWindow *m_pDbgWin;
+#endif
+};
+
+class StatementSlot : public StatementList //Slots aufrufen
+{
+protected:
+ USHORT nAnzahl;
+ SfxPoolItem **pItemArr;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue> aArgs;
+ USHORT nFunctionId; // can get removed when the old (numeric) slothandling is removed
+ String aUnoUrl;
+ BOOL bMenuClosed;
+
+ StatementSlot();
+ void AddReferer();
+public:
+ StatementSlot( SCmdStream *pIn );
+ StatementSlot( ULONG nSlot, SfxPoolItem* pItem = NULL );
+ virtual ~StatementSlot();
+ virtual BOOL Execute();
+};
+
+class StatementUnoSlot : public StatementSlot //Uno Slots aufrufen
+{
+public:
+ StatementUnoSlot(SCmdStream *pIn);
+};
+
+class StatementCommand : public StatementList // Befehl ausfhren (wintree, resetaplication ...)
+{
+ friend class ImplRemoteControl;
+protected:
+ USHORT nMethodId;
+ SmartId aSmartMethodId;
+ USHORT nParams;
+ comm_USHORT nNr1,nNr2,nNr3,nNr4;
+ comm_ULONG nLNr1;
+ String aString1,aString2;
+ BOOL bBool1,bBool2;
+
+ Window* GetNextOverlap( Window* pBase );
+ Window* GetNextRecoverWin();
+
+ static USHORT nDirPos;
+ static Dir *pDir;
+ static pfunc_osl_printDebugMessage pOriginal_osl_DebugMessageFunc;
+
+
+ BOOL UnpackStorage( SotStorageRef xStorage, DirEntry &aBaseDir );
+
+ void HandleSAXParser();
+
+public:
+ StatementCommand( SCmdStream *pIn );
+ StatementCommand( StatementList *pAfterThis, USHORT MethodId, USHORT Params, USHORT Nr1 );
+ virtual BOOL Execute();
+ BOOL DisplayHID();
+ void Translate();
+ void WriteControlData( Window *pBase, ULONG nConf, BOOL bFirst = TRUE );
+
+};
+
+
+enum TTHotSpots { MitteLinks, Mitte, MitteOben };
+
+class StatementControl : public StatementList
+{
+protected:
+ SmartId aUId;
+ USHORT nMethodId;
+ USHORT nParams;
+ comm_USHORT nNr1,nNr2,nNr3,nNr4;
+ comm_ULONG nLNr1;
+ String aString1,aString2;
+ BOOL bBool1,bBool2;
+ BOOL ControlOK( Window *pControl, const sal_Char* aBezeichnung );
+ void AnimateMouse( Window *pControl, TTHotSpots aWohin );
+ void AnimateMouse( Window *pControl, Point aWohin );
+
+ BOOL MaybeDoTypeKeysDelay( Window *pTestWindow );
+
+ BOOL HandleVisibleControls( Window *pControl );
+ BOOL HandleCommonMethods( Window *pControl );
+
+public:
+ StatementControl( SCmdStream *pIn, USHORT nControlType );
+ virtual BOOL Execute();
+
+};
+
+class StatementFlow : public StatementList // Kommunikation mit Sequence
+{
+ USHORT nArt;
+
+ USHORT nParams;
+ comm_USHORT nSNr1;
+ comm_ULONG nLNr1;
+ String aString1;
+ BOOL bBool1;
+
+
+public:
+ StatementFlow (ULONG nServiceId, SCmdStream *pIn, ImplRemoteControl *pRC );
+ StatementFlow( StatementList *pAfterThis, USHORT nArtP );
+ virtual BOOL Execute();
+ static CommunicationLink *pCommLink;
+ static BOOL bSending;
+
+ static BOOL bUseIPC; // Soll zur rckmeldung IPC verwendet werden?
+ static ImplRemoteControl *pRemoteControl; // Static fr 2. Constructor
+
+private:
+ void SendViaSocket();
+};
+
+class SearchUID : public Search
+{
+ Window *pMaybeResult;
+ Window *pAlternateResult;
+ SmartId aUId;
+ BOOL bSearchButtonOnToolbox;
+public:
+ SearchUID( SmartId aUIdP, BOOL bSearchButtonOnToolboxP ): Search( SEARCH_FOCUS_FIRST ), pMaybeResult(NULL), pAlternateResult(NULL), aUId(aUIdP), bSearchButtonOnToolbox(bSearchButtonOnToolboxP) {}
+ virtual BOOL IsWinOK( Window *pWin );
+ Window* GetMaybeWin() { return pMaybeResult; }
+ Window* GetAlternateResultWin() { return pAlternateResult; }
+};
+class SearchActive : public Search
+{
+ WindowType nRT;
+public:
+ SearchActive( WindowType nRTP ): nRT(nRTP) {}
+ virtual BOOL IsWinOK( Window *pWin );
+};
+class SearchPopupFloatingWin : public Search
+{
+public:
+ SearchPopupFloatingWin(): Search( SEARCH_FOCUS_FIRST ) {}
+ virtual BOOL IsWinOK( Window *pWin );
+};
+class SearchRT : public Search
+{
+ WindowType mnRT;
+ USHORT mnSkip;
+ USHORT mnCount;
+public:
+ SearchRT( WindowType nRTP, SearchFlags nSearchFlags, USHORT nSkip = 0 ): Search(nSearchFlags), mnRT(nRTP), mnSkip( nSkip ), mnCount( 0 ) {}
+ virtual BOOL IsWinOK( Window *pWin );
+ USHORT GetCount(){ return mnCount; }
+};
+class SearchScroll : public SearchRT
+{
+ USHORT nDirection;
+public:
+ SearchScroll( USHORT nDir, SearchFlags nSearchFlags ): SearchRT(WINDOW_SCROLLBAR, nSearchFlags), nDirection(nDir) {}
+ virtual BOOL IsWinOK( Window *pWin );
+};
+class SearchWinPtr : public Search
+{
+ Window *pTest;
+public:
+ SearchWinPtr( Window *pTestP ): pTest(pTestP) {}
+ virtual BOOL IsWinOK( Window *pWin );
+};
+class SearchFadeSplitWin : public Search
+{
+ WindowAlign nAlign;
+public:
+ SearchFadeSplitWin( WindowAlign nAlignP ): nAlign(nAlignP) {}
+ virtual BOOL IsWinOK( Window *pWin );
+};
+
+
+void ImplKeyInput( Window* pWin, KeyEvent &aKEvnt, BOOL bForceDirect=FALSE );
+void ImplMouseMove( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect=FALSE );
+void ImplMouseButtonDown( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect=FALSE );
+void ImplMouseButtonUp( Window* pWin, MouseEvent &aMEvnt, BOOL bForceDirect=FALSE );
+void ImplCommand( Window* pWin, CommandEvent &aCmdEvnt );
+void ImplEventWait( ULONG nID );
+
+#endif
diff --git a/automation/source/server/svcommstream.cxx b/automation/source/server/svcommstream.cxx
new file mode 100644
index 000000000000..7ff77b30d242
--- /dev/null
+++ b/automation/source/server/svcommstream.cxx
@@ -0,0 +1,48 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#include "svcommstream.hxx"
+
+SvCommStream::SvCommStream( SvStream* pIO ) { pStream = pIO; }
+SvCommStream::~SvCommStream() {}
+
+ICommStream& SvCommStream::operator>>( comm_USHORT& rUShort ) { *pStream >> rUShort; return *this; }
+ICommStream& SvCommStream::operator>>( comm_ULONG& rULong ) { *pStream >> rULong; return *this; }
+ICommStream& SvCommStream::operator>>( comm_BOOL& rChar ) { *pStream >> rChar; return *this; }
+
+ICommStream& SvCommStream::operator<<( comm_USHORT nUShort ) { *pStream << nUShort; return *this; }
+ICommStream& SvCommStream::operator<<( comm_ULONG nULong ) { *pStream << nULong; return *this; }
+ICommStream& SvCommStream::operator<<( comm_BOOL nChar ) { *pStream << nChar; return *this; }
+
+comm_ULONG SvCommStream::Read( void* pData, comm_ULONG nSize ) { return pStream->Read( pData, nSize ); }
+comm_ULONG SvCommStream::Write( const void* pData, comm_ULONG nSize ) { return pStream->Write( pData, nSize ); }
+
+comm_BOOL SvCommStream::IsEof() const { return pStream->IsEof(); }
+comm_ULONG SvCommStream::SeekRel( long nPos ) { return pStream->SeekRel( nPos ); }
diff --git a/automation/source/server/testtool.hrc b/automation/source/server/testtool.hrc
new file mode 100644
index 000000000000..d6a234b74236
--- /dev/null
+++ b/automation/source/server/testtool.hrc
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#define TTSTART 12345
+
+#define DisplayHidToolBox ( TTSTART + 0 )
+#define TT_SHOW 1
+#define TT_SHOW2 ( TTSTART + 1 )
+#define TT_OUTPUT 3
+#define TT_SEND_DATA 4
+#define TT_ALLWIN 5
+#define TT_KURZNAME 6
+#define TT_LANGNAME 7
+#define TT_ALTERNATE_CAPTION ( TTSTART + 2 )
+
+#define TT_INLINE_TRANSLATION ( TTSTART + 3)
+#define TT_GB_TRANSLATION 1
+#define TT_E_NEW 2
+#define TT_FT_OLD 3
+#define TT_GB_COMMENT 4
+#define TT_E_COMMENT 5
+
+#define TT_PB_SELECT 6
+#define TT_PB_RESTORE 7
+#define TT_PB_ACCEPT 8
+#define TT_PB_NEXT 9
+
+#define TT_DISCARD_CHANGED_DATA ( TTSTART + 4 )
+#define TT_NO_CONTROL ( TTSTART + 5 )
+
+
+#define TT_GPF ( TTSTART + 6 )
diff --git a/automation/source/simplecm/communiio.hxx b/automation/source/simplecm/communiio.hxx
new file mode 100644
index 000000000000..5431c9d49621
--- /dev/null
+++ b/automation/source/simplecm/communiio.hxx
@@ -0,0 +1,65 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#include <automation/commtypes.hxx>
+
+#define C_ERROR_NONE 0x0001
+#define C_ERROR_PERMANENT 0x0002
+#define C_ERROR_RETRY 0x0003
+#define C_ERROR_TIMEOUT 0x0004
+
+class ITransmiter
+{
+protected:
+ comm_ULONG nLastSent;
+public:
+ ITransmiter() :nLastSent( 0 ){}
+ virtual ~ITransmiter() {}
+ virtual comm_USHORT TransferBytes( const void* pBuffer, comm_UINT32 nLen ) = 0;
+
+ comm_ULONG GetLastSent() { return nLastSent; }
+};
+
+class IReceiver
+{
+protected:
+ comm_ULONG nLastReceived;
+public:
+ IReceiver() :nLastReceived( 0 ){}
+ virtual ~IReceiver() {;}
+ virtual comm_USHORT ReceiveBytes( void* pBuffer, comm_UINT32 nLen ) = 0;
+
+ comm_ULONG GetLastReceived() { return nLastReceived; }
+};
diff --git a/automation/source/simplecm/makefile.mk b/automation/source/simplecm/makefile.mk
new file mode 100644
index 000000000000..b6318ab4fd46
--- /dev/null
+++ b/automation/source/simplecm/makefile.mk
@@ -0,0 +1,46 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=simplecm
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files --------------------------------------------------------
+
+SLOFILES= \
+ $(SLO)$/tcpio.obj \
+ $(SLO)$/packethandler.obj \
+ $(SLO)$/simplecm.obj \
+
+# --- Targets ------------------------------------------------------
+
+.INCLUDE : target.mk
diff --git a/automation/source/simplecm/packethandler.cxx b/automation/source/simplecm/packethandler.cxx
new file mode 100644
index 000000000000..91f787fbff2f
--- /dev/null
+++ b/automation/source/simplecm/packethandler.cxx
@@ -0,0 +1,334 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#include "packethandler.hxx"
+#include <automation/commtypes.hxx>
+#include <automation/commdefines.hxx>
+#include "communiio.hxx"
+
+/**
+Forces switch to multichannel headers even for old communication Method
+**/
+#define FORCE_MULTI_CHANNEL_HEADERS
+
+
+PacketHandler::PacketHandler( ITransmiter* pTransmitter_, IReceiver* pReceiver_, comm_BOOL bMC )
+: pTransmitter( pTransmitter_ )
+, pReceiver( pReceiver_ )
+, bMultiChannel( bMC )
+{
+}
+
+unsigned char PacketHandler::CalcCheckByte( comm_UINT32 nBytes )
+{
+ comm_UINT16 nRes = 0;
+ nRes += HIBYTE( HIWORD( nBytes ) ) ^ 0xf0;
+ nRes += LOBYTE( HIWORD( nBytes ) ) ^ 0x0f;
+ nRes += HIBYTE( LOWORD( nBytes ) ) ^ 0xf0;
+ nRes += LOBYTE( LOWORD( nBytes ) ) ^ 0x0f;
+
+ nRes ^= HIBYTE( nRes );
+
+ return LOBYTE( nRes );
+}
+
+
+#define READ_SOCKET( pBuffer, nLength )\
+ if ( !bWasError )\
+ {\
+ bWasError |= pReceiver->ReceiveBytes( pBuffer, nLength ) != C_ERROR_NONE;\
+ }
+
+#define READ_SOCKET_LEN( pBuffer, nLength, nTotal )\
+ READ_SOCKET( pBuffer, nLength );\
+ if ( !bWasError )\
+ {nTotal += nLength;}
+
+comm_BOOL PacketHandler::ReceiveData( void* &pData, comm_UINT32 &nLen )
+{
+ DBG_ASSERT( !pData, "pData should be NULL -> memory leak" );
+
+ nLen = 0;
+ pData = NULL;
+ comm_BOOL bWasError = FALSE;
+ comm_BOOL bForceMultiChannelThisPacket = FALSE;
+ if ( pReceiver )
+ {
+ comm_UINT32 nBytes = 0;
+ nReceiveProtocol = CM_PROTOCOL_OLDSTYLE;
+ nReceiveHeaderType = CH_NoHeader;
+
+ READ_SOCKET( &nBytes, sizeof(nBytes) )
+ if ( bWasError )
+ return FALSE;
+
+ if ( 0xFFFFFFFF == nBytes ) // Expliziter Request fr dieses Datenpaket auf MultiChannel umzuschalten
+ {
+ READ_SOCKET( &nBytes, sizeof(nBytes) )
+ if ( bWasError )
+ return FALSE;
+ bForceMultiChannelThisPacket = TRUE;
+ }
+
+ nBytes = NETDWORD( nBytes );
+
+ if ( bMultiChannel || bForceMultiChannelThisPacket )
+ {
+ comm_ULONG nReadSoFar = 0;
+ comm_ULONG nHeaderReadSoFar = 0;
+
+ // Prfbyte fr Lngenangabe
+ unsigned char nLenCheck = 0;
+ READ_SOCKET_LEN( &nLenCheck, 1, nReadSoFar );
+ // Stimmt das Prfbyte?
+ bWasError |= nLenCheck != CalcCheckByte( nBytes );
+
+
+ comm_UINT16 nHeaderBytes;
+ READ_SOCKET_LEN( &nHeaderBytes, 2, nReadSoFar );
+ nHeaderBytes = NETWORD( nHeaderBytes );
+ // reicht der Header ber das Ende hinaus?
+ bWasError |= !(nBytes >= nReadSoFar + nHeaderBytes);
+
+ READ_SOCKET_LEN( &nReceiveHeaderType, 2, nHeaderReadSoFar );
+ nReceiveHeaderType = NETWORD( nReceiveHeaderType );
+
+ switch ( nReceiveHeaderType )
+ {
+ case CH_SimpleMultiChannel:
+ {
+ READ_SOCKET_LEN( &nReceiveProtocol, 2, nHeaderReadSoFar );
+ nReceiveProtocol = NETWORD( nReceiveProtocol );
+ }
+ break;
+ case CH_Handshake:
+ {
+ }
+ break;
+ default:
+ {
+ DBG_ERROR("Unbekannter Headertyp in der Kommunikation");
+ bWasError = TRUE;
+ }
+
+ }
+
+ if ( bWasError )
+ return FALSE;
+
+ /// Lngen anpassen und ggf restheader berlesen.
+ while ( nHeaderBytes > nHeaderReadSoFar )
+ {
+ unsigned char nDummy;
+ READ_SOCKET_LEN( &nDummy, 1, nHeaderReadSoFar );
+ }
+
+ nReadSoFar += nHeaderReadSoFar;
+ nBytes -= nReadSoFar;
+
+ }
+
+ /* @@@ Notes @@@
+ *
+ * 1) a 'void*' allocated via 'new char[]' is always deallocated
+ * via plain 'delete()', not via array 'delete[]()'; it's just
+ * raw memory.
+ *
+ * 2) as the caller of this routine later-on changes ownership
+ * of 'pData' via 'SvMemoryStream::SetBuffer()' (in 'simplecm.cxx',
+ * 'SimpleCommunicationLinkViaSocket::DoReceiveDataStream()'),
+ * the allocator used here for 'void* pData' must match the
+ * deallocator used in 'SvMemoryStream::FreeMemory()', i.e.
+ * '::operator delete()'.
+ */
+ pData = ::operator new(nBytes);
+ READ_SOCKET( pData, nBytes )
+ if ( bWasError )
+ {
+ ::operator delete(pData), pData = 0;
+ return FALSE;
+ }
+ nLen = nBytes;
+ }
+ else
+ bWasError = TRUE;
+
+ return !bWasError;
+}
+
+/*#define WRITE_SOCKET( pBuffer, nLength )\
+ if ( !bWasError )\
+ bWasError |= !pStreamSocket || (pStreamSocket->write( pBuffer, nLength ) != nLength)*/
+
+#define WRITE_SOCKET( pBuffer, nLength )\
+ if ( !bWasError )\
+ {bWasError |= pTransmitter->TransferBytes( pBuffer, nLength ) != C_ERROR_NONE;}
+
+
+
+comm_BOOL PacketHandler::TransferData( const void* pData, comm_UINT32 nLen, CMProtocol nProtocol )
+{
+ comm_UINT32 nBuffer = nLen;
+ comm_BOOL bWasError = FALSE;
+
+#ifndef FORCE_MULTI_CHANNEL_HEADERS
+ if ( bMultiChannel )
+#endif
+ nBuffer += 1+2+2+2; // fr einen CH_SimpleMultiChannel
+
+#ifdef FORCE_MULTI_CHANNEL_HEADERS
+ if ( !bMultiChannel )
+ {
+ comm_UINT32 n32;
+ n32 = 0xffffffff; // Umschalten auf MultiChannel
+ n32 = NETDWORD( n32 );
+ WRITE_SOCKET( &n32, 4 );
+ }
+#endif
+
+
+ comm_UINT32 nNetworkBuffer = NETDWORD( nBuffer );
+ WRITE_SOCKET( &nNetworkBuffer, sizeof(nNetworkBuffer) );
+
+
+#ifndef FORCE_MULTI_CHANNEL_HEADERS
+ if ( bMultiChannel )
+#endif
+ {
+ comm_UINT16 n16;
+ unsigned char c;
+
+ c = CalcCheckByte( nBuffer );
+ WRITE_SOCKET( &c, 1 );
+
+ n16 = 4; // Lnge des Headers fr einen CH_SimpleMultiChannel
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+
+ n16 = CH_SimpleMultiChannel; // Typ des Headers
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+
+ nProtocol = NETWORD( nProtocol );
+ WRITE_SOCKET( &nProtocol, 2 );
+ }
+
+ WRITE_SOCKET( pData, nLen );
+ return !bWasError;
+}
+
+comm_BOOL PacketHandler::SendHandshake( HandshakeType aHandshakeType, const void* pData, comm_UINT32 nLen )
+{
+ comm_BOOL bWasError = FALSE;
+
+ comm_UINT32 nBuffer = 0;
+
+// if ( pMyManager->IsMultiChannel() ) Wir senden immer FFFFFFFF vorweg -> immer MultiChannel (Oder GPF bei lteren)
+ nBuffer += 1+2+2; // fr einen CH_Handshake
+
+ nBuffer += 2; // fr den Typ des Handshakes
+
+ switch ( aHandshakeType )
+ {
+ case CH_REQUEST_HandshakeAlive:
+ nBuffer += 0; // Keine extra Daten
+ break;
+ case CH_RESPONSE_HandshakeAlive:
+ nBuffer += 0; // Keine extra Daten
+ break;
+ case CH_REQUEST_ShutdownLink:
+ nBuffer += 0; // Keine extra Daten
+ break;
+ case CH_ShutdownLink:
+ nBuffer += 0; // Keine extra Daten
+ break;
+ case CH_SUPPORT_OPTIONS:
+ nBuffer += 2 ; // one word extradata for options
+ break;
+ case CH_SetApplication:
+ nBuffer += 0 ; // one word extradata for options
+ break;
+ default:
+ DBG_ERROR("Unknown HandshakeType");
+ }
+
+ if ( pData )
+ nBuffer += nLen; // Extra data in Buffer
+
+ comm_UINT32 n32;
+ n32 = 0xffffffff; // Umschalten auf MultiChannel
+ n32 = NETDWORD( n32 );
+ WRITE_SOCKET( &n32, 4 );
+
+ comm_UINT32 nNetworkBuffer = NETDWORD( nBuffer );
+ WRITE_SOCKET( &nNetworkBuffer, sizeof(nNetworkBuffer) );
+
+
+ comm_UINT16 n16;
+ unsigned char c;
+
+ c = CalcCheckByte( nBuffer );
+ WRITE_SOCKET( &c, 1 );
+
+ n16 = 2; // Lnge des Headers fr einen CH_Handshake
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+
+ n16 = CH_Handshake; // Typ des Headers
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+
+ n16 = aHandshakeType; // Typ des Handshakes
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+
+
+ switch ( aHandshakeType )
+ {
+ case CH_SUPPORT_OPTIONS:
+ n16 = OPT_USE_SHUTDOWN_PROTOCOL;
+ n16 = NETWORD( n16 );
+ WRITE_SOCKET( &n16, 2 );
+ break;
+ }
+
+ if ( pData )
+ WRITE_SOCKET( pData, nLen );
+
+ return !bWasError;
+}
diff --git a/automation/source/simplecm/packethandler.hxx b/automation/source/simplecm/packethandler.hxx
new file mode 100644
index 000000000000..ce0c22c100c9
--- /dev/null
+++ b/automation/source/simplecm/packethandler.hxx
@@ -0,0 +1,69 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+/*************************************************************************
+ *
+ * ATTENTION
+ * This file is intended to work inside and outside the StarOffice environment.
+ * Only adaption of file commtypes.hxx should be necessary. Else it is a bug!
+ *
+ ************************************************************************/
+
+#ifndef _TOOLS_PACKETHANDLER_HXX_
+#define _TOOLS_PACKETHANDLER_HXX_
+
+#include <automation/commtypes.hxx>
+#include <automation/commdefines.hxx>
+
+class ITransmiter;
+class IReceiver;
+
+class PacketHandler
+{
+private:
+ unsigned char CalcCheckByte( comm_UINT32 nBytes );
+ ITransmiter* pTransmitter;
+ IReceiver* pReceiver;
+
+ comm_BOOL bMultiChannel;
+
+protected:
+ comm_UINT16 nReceiveProtocol;
+ comm_UINT16 nReceiveHeaderType;
+
+public:
+ PacketHandler( ITransmiter* pTransmitter_, IReceiver* pReceiver_, comm_BOOL bMC = FALSE );
+
+ comm_UINT16 GetReceiveProtocol() { return nReceiveProtocol; }
+ comm_UINT16 GetReceiveHeaderType() { return nReceiveHeaderType; }
+
+ comm_BOOL ReceiveData( void* &pData, comm_UINT32 &nLen ); /// Recieve DataPacket from Socket
+ virtual comm_BOOL SendHandshake( HandshakeType aHandshakeType, const void* pData = NULL, comm_UINT32 nLen = 0 );
+ virtual comm_BOOL TransferData( const void* pData, comm_UINT32 nLen, CMProtocol nProtocol = CM_PROTOCOL_OLDSTYLE );
+};
+
+#endif
diff --git a/automation/source/simplecm/simplecm.cxx b/automation/source/simplecm/simplecm.cxx
new file mode 100644
index 000000000000..92642e8cd7c5
--- /dev/null
+++ b/automation/source/simplecm/simplecm.cxx
@@ -0,0 +1,702 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+
+#define ENABLE_BYTESTRING_STREAM_OPERATORS
+#include <tools/solar.h>
+#include <automation/simplecm.hxx>
+
+#include <automation/commdefines.hxx>
+#include "packethandler.hxx"
+#include "tcpio.hxx"
+
+#if OSL_DEBUG_LEVEL > 1
+#include <stdio.h>
+void debug_printf( const char *chars )
+{
+ static BOOL bPrint = (getenv("DEBUG") != NULL);
+ if ( bPrint )
+ {
+ printf( chars );
+ fflush( stdout );
+ }
+}
+#endif
+
+CommunicationLink::CommunicationLink( CommunicationManager *pMan )
+: pMyManager(pMan)
+, pServiceData(NULL)
+, nServiceProtocol( 0 )
+, bIsInsideCallback( FALSE )
+, nTotalBytes( 0 )
+, maApplication("Undefined")
+#if OSL_DEBUG_LEVEL > 1
+, bFlag( FALSE )
+, nSomething( 0 )
+#endif
+{
+}
+
+CommunicationLink::~CommunicationLink()
+{
+#if OSL_DEBUG_LEVEL > 1
+ if ( !bFlag ) // bFlag will be set if deletion is expected else we can set a breakpoint
+ bFlag = FALSE;
+#endif
+ if ( pMyManager )
+ pMyManager->DestroyingLink( this );
+}
+
+void CommunicationLink::CallInfoMsg( InfoString aMsg )
+{
+ if ( pMyManager )
+ pMyManager->InfoMsg( aMsg );
+};
+
+CM_InfoType CommunicationLink::GetInfoType()
+{
+ if ( pMyManager )
+ return pMyManager->GetInfoType();
+ else
+ return CM_NO_TEXT;
+}
+
+IMPL_LINK( CommunicationLink, ConnectionClosed, void*, EMPTYARG )
+{
+ if ( pMyManager )
+ pMyManager->CallConnectionClosed( this );
+ return 1;
+}
+
+IMPL_LINK( CommunicationLink, DataReceived, void*, EMPTYARG )
+{
+ if ( pMyManager )
+ pMyManager->CallDataReceived( this );
+ return 1;
+}
+
+BOOL CommunicationLink::DoTransferDataStream( SvStream *pDataStream, CMProtocol nProtocol )
+{
+ INFO_MSG( CByteString("S :").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CByteString("Daten Senden:").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CM_SEND, this );
+ BOOL bWasError = FALSE;
+
+ UINT32 nBuffer;
+ nBuffer = pDataStream->SeekRel(0) +1;
+ bWasError = pPacketHandler->TransferData( ((SvMemoryStream*)pDataStream)->GetData(), nBuffer, nProtocol ) != C_ERROR_NONE;
+
+ if ( bWasError )
+ {
+ INFO_MSG( CByteString("Send Failed:").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CByteString( "Socket wird wegen Fehlers beim Senden geschlossen: ").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CM_ERROR, this );
+ ShutdownCommunication();
+ }
+ return !bWasError;
+}
+
+BOOL CommunicationLink::TransferDataStream( SvStream *pDataStream, CMProtocol nProtocol )
+{
+ aLastAccess = DateTime();
+ nTotalBytes += pDataStream->Seek( STREAM_SEEK_TO_END );
+ return DoTransferDataStream( pDataStream, nProtocol );
+}
+
+void CommunicationLink::SetApplication( const ByteString& aApp )
+{
+ maApplication = aApp;
+}
+
+
+SimpleCommunicationLinkViaSocket::SimpleCommunicationLinkViaSocket( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
+: CommunicationLink( pMan )
+, aCommunicationPartner()
+, aMyName()
+, pStreamSocket( pSocket )
+, pReceiveStream( NULL )
+, bIsRequestShutdownPending( FALSE )
+{
+ pTCPIO = new TCPIO( pStreamSocket );
+ pPacketHandler = new PacketHandler( (ITransmiter*) pTCPIO, pTCPIO, pMyManager->IsMultiChannel() );
+}
+
+SimpleCommunicationLinkViaSocket::~SimpleCommunicationLinkViaSocket()
+{
+ delete pPacketHandler;
+ pPacketHandler = NULL;
+ delete pTCPIO;
+ pTCPIO = NULL;
+ delete pStreamSocket;
+ pStreamSocket = NULL;
+}
+
+void SimpleCommunicationLinkViaSocket::SetStreamSocket( NAMESPACE_VOS(OStreamSocket)* pSocket )
+{
+ if ( pTCPIO )
+ pTCPIO->SetStreamSocket( pSocket );
+ pStreamSocket = pSocket;
+}
+
+BOOL SimpleCommunicationLinkViaSocket::StopCommunication()
+{
+ CommunicationLinkRef rHold(this); // avoid deleting this link before the end of the method
+ if ( !IsCommunicationError() ) // Meaning that the Communication is still runnung
+ {
+#if OSL_DEBUG_LEVEL > 1
+ debug_printf("Sending REQUEST_ShutdownLink\n");
+#endif
+ SendHandshake( CH_REQUEST_ShutdownLink );
+ }
+ WaitForShutdown();
+ return TRUE;
+}
+
+void SimpleCommunicationLinkViaSocket::SetFinalRecieveTimeout()
+{
+ if ( !IsCommunicationError() )
+ {
+ TimeValue aTime = {30, 0}; // 30 seconds
+ pStreamSocket->setRecvTimeout( &aTime );
+ }
+}
+
+BOOL SimpleCommunicationLinkViaSocket::IsCommunicationError()
+{
+ return !pStreamSocket;
+}
+
+ByteString SimpleCommunicationLinkViaSocket::GetCommunicationPartner( CM_NameType eType )
+{
+ if ( pStreamSocket )
+ {
+ switch ( eType )
+ {
+ case CM_DOTTED:
+ {
+ rtl::OUString aDotted;
+ NAMESPACE_VOS(OSocketAddr) *pPeerAdr = new NAMESPACE_VOS(OSocketAddr);
+ pStreamSocket->getPeerAddr( *pPeerAdr );
+ ((NAMESPACE_VOS(OInetSocketAddr*))pPeerAdr)->getDottedAddr( aDotted );
+ delete pPeerAdr;
+ return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ }
+ //break;
+ case CM_FQDN:
+ {
+ if ( !aCommunicationPartner.Len() )
+ {
+ rtl::OUString aFQDN;
+ pStreamSocket->getPeerHost( aFQDN );
+ aCommunicationPartner = ByteString( UniString(aFQDN), RTL_TEXTENCODING_UTF8 );
+ }
+ return aCommunicationPartner;
+ }
+ //break;
+ }
+ }
+ return CByteString( "Unknown" );
+}
+
+ByteString SimpleCommunicationLinkViaSocket::GetMyName( CM_NameType eType )
+{
+ if ( pStreamSocket )
+ {
+ switch ( eType )
+ {
+ case CM_DOTTED:
+ {
+ rtl::OUString aDotted;
+ NAMESPACE_VOS(OSocketAddr) *pPeerAdr = new NAMESPACE_VOS(OSocketAddr);
+ pStreamSocket->getLocalAddr( *pPeerAdr );
+ ((NAMESPACE_VOS(OInetSocketAddr*))pPeerAdr)->getDottedAddr( aDotted );
+ delete pPeerAdr;
+ return ByteString( UniString(aDotted), RTL_TEXTENCODING_UTF8 );
+ }
+ //break;
+ case CM_FQDN:
+ {
+ if ( !aMyName.Len() )
+ {
+ rtl::OUString aFQDN;
+ pStreamSocket->getLocalHost( aFQDN );
+ aMyName = ByteString( UniString(aFQDN), RTL_TEXTENCODING_UTF8 );
+ }
+ return aMyName;
+ }
+ //break;
+ }
+ }
+ return CByteString( "Error" );
+}
+
+SvStream* SimpleCommunicationLinkViaSocket::GetBestCommunicationStream()
+{
+ SvStream* pStream = new SvMemoryStream;
+// pStream->SetNumberFormatInt( NUMBERFORMAT_INT_BIGENDIAN );
+ return pStream;
+}
+
+#define READ_SOCKET( pBuffer, nLength )\
+ if ( !bWasError )\
+ {bWasError |= pTCPIO->ReceiveBytes( pBuffer, nLength ) != C_ERROR_NONE;}
+
+#define READ_SOCKET_LEN( pBuffer, nLength, nTotal )\
+ READ_SOCKET( pBuffer, nLength );\
+ if ( !bWasError )\
+ {nTotal += nLength;}
+
+BOOL SimpleCommunicationLinkViaSocket::DoReceiveDataStream()
+{
+ BOOL bWasError = FALSE;
+ void* pBuffer = NULL;
+ comm_UINT32 nLen;
+ bWasError = pPacketHandler->ReceiveData( pBuffer, nLen ) != C_ERROR_NONE;
+ if ( !bWasError )
+ {
+ pReceiveStream = GetBestCommunicationStream();
+ DBG_ASSERT( pReceiveStream->IsA() == ID_MEMORYSTREAM, "CommunicationStream is not an SvMemoryStream. Communication has to be reimplemented here!");
+ if ( pReceiveStream->IsA() == ID_MEMORYSTREAM )
+ ((SvMemoryStream*)pReceiveStream)->SetBuffer( pBuffer, nLen, TRUE, nLen );
+ DBG_ASSERT( pReceiveStream, "Datastream is NULL");
+ }
+
+ return !bWasError;
+}
+
+void SimpleCommunicationLinkViaSocket::SetApplication( const ByteString& aApp )
+{
+ CommunicationLink::SetApplication( aApp );
+ SvStream* pData = GetBestCommunicationStream();
+ *pData << aApp;
+ SendHandshake( CH_SetApplication, pData );
+ delete pData;
+}
+
+void SimpleCommunicationLinkViaSocket::SetNewPacketAsCurrent()
+{
+ pServiceData = pReceiveStream;
+ nServiceProtocol = pPacketHandler->GetReceiveProtocol();
+ nServiceHeaderType = pPacketHandler->GetReceiveHeaderType();
+}
+
+BOOL SimpleCommunicationLinkViaSocket::SendHandshake( HandshakeType aHandshakeType, SvStream* pData )
+{
+ BOOL bWasError;
+
+ if ( pData )
+ {
+ UINT32 nBuffer;
+ nBuffer = pData->Seek( STREAM_SEEK_TO_END );
+ bWasError = !pPacketHandler->SendHandshake( aHandshakeType, ((SvMemoryStream*)pData)->GetData(), nBuffer );
+ }
+ else
+ bWasError = !pPacketHandler->SendHandshake( aHandshakeType );
+
+
+ if ( bWasError )
+ {
+ INFO_MSG( CByteString("Send Failed:").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CByteString( "Socket wird wegen Fehlers beim Senden geschlossen: ").Append( GetCommunicationPartner( CM_FQDN ) ),
+ CM_ERROR, this );
+ ShutdownCommunication();
+ }
+ else
+ { // set new status
+ switch ( aHandshakeType )
+ {
+ case CH_REQUEST_HandshakeAlive:
+ break;
+ case CH_RESPONSE_HandshakeAlive:
+ break;
+ case CH_REQUEST_ShutdownLink:
+ bIsRequestShutdownPending = TRUE;
+ break;
+ case CH_ShutdownLink:
+ break;
+ case CH_SUPPORT_OPTIONS:
+ break;
+ case CH_SetApplication:
+ break;
+ default:
+ DBG_ERROR("Unknown HandshakeType");
+ }
+ }
+ return !bWasError;
+}
+
+SimpleCommunicationLinkViaSocketWithReceiveCallbacks::SimpleCommunicationLinkViaSocketWithReceiveCallbacks( CommunicationManager *pMan, NAMESPACE_VOS(OStreamSocket) *pSocket )
+: SimpleCommunicationLinkViaSocket( pMan, pSocket )
+{
+}
+
+SimpleCommunicationLinkViaSocketWithReceiveCallbacks::~SimpleCommunicationLinkViaSocketWithReceiveCallbacks()
+{
+ if ( pMyManager && pMyManager->IsLinkValid( this ) && !bIsRequestShutdownPending )
+ StopCommunication();
+}
+
+void SimpleCommunicationLinkViaSocketWithReceiveCallbacks::WaitForShutdown()
+{
+ CommunicationLinkRef rHold(this); // avoid deleting this link before the end of the method
+ SetFinalRecieveTimeout();
+ while ( pMyManager && !IsCommunicationError() )
+ ReceiveDataStream();
+}
+
+BOOL SimpleCommunicationLinkViaSocketWithReceiveCallbacks::ReceiveDataStream()
+{
+ if ( DoReceiveDataStream() )
+ {
+ SetNewPacketAsCurrent();
+ StartCallback();
+ DataReceived();
+ return TRUE;
+ }
+ else
+ {
+ StartCallback();
+ ShutdownCommunication();
+ return FALSE;
+ }
+}
+
+BOOL SimpleCommunicationLinkViaSocketWithReceiveCallbacks::ShutdownCommunication()
+{
+ if ( GetStreamSocket() )
+ GetStreamSocket()->shutdown();
+
+ if ( GetStreamSocket() )
+ GetStreamSocket()->close();
+
+ NAMESPACE_VOS(OStreamSocket) *pTempSocket = GetStreamSocket();
+ SetStreamSocket( NULL );
+ delete pTempSocket;
+
+ ConnectionClosed();
+
+ return TRUE;
+}
+
+
+
+CommunicationManager::CommunicationManager( BOOL bUseMultiChannel )
+: nInfoType( CM_NONE )
+, bIsCommunicationRunning( FALSE )
+, maApplication("Unknown")
+, bIsMultiChannel( bUseMultiChannel )
+{
+}
+
+CommunicationManager::~CommunicationManager()
+{
+ xLastNewLink.Clear();
+}
+
+BOOL CommunicationManager::StartCommunication( String aApp, String aParams )
+{
+ (void) aApp; /* avoid warning about unused parameter */
+ (void) aParams; /* avoid warning about unused parameter */
+ return FALSE;
+}
+
+BOOL CommunicationManager::StartCommunication( ByteString aHost, ULONG nPort )
+{
+ (void) aHost; /* avoid warning about unused parameter */
+ (void) nPort; /* avoid warning about unused parameter */
+ return FALSE;
+}
+
+ByteString CommunicationManager::GetMyName( CM_NameType )
+{
+ rtl::OUString aHostname;
+ NAMESPACE_VOS(OSocketAddr)::getLocalHostname( aHostname );
+ return ByteString( UniString(aHostname), RTL_TEXTENCODING_UTF8 );
+}
+
+void CommunicationManager::CallConnectionOpened( CommunicationLink* pCL )
+{
+ pCL->StartCallback(); // Sollte bereits vor dem Aufruf gerufen werden
+ pCL->aStart = DateTime();
+ pCL->aLastAccess = pCL->aStart;
+ bIsCommunicationRunning = TRUE;
+ pCL->SetApplication( GetApplication() );
+
+ xLastNewLink = pCL;
+
+ INFO_MSG( CByteString("C+:").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CByteString("Verbindung aufgebaut: ").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CM_OPEN, pCL );
+ ConnectionOpened( pCL );
+ pCL->FinishCallback();
+}
+
+void CommunicationManager::CallConnectionClosed( CommunicationLink* pCL )
+{
+ pCL->StartCallback(); // Sollte bereits vor dem Aufruf gerufen werden
+ pCL->aLastAccess = DateTime();
+
+ INFO_MSG( CByteString("C-:").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CByteString("Verbindung abgebrochen: ").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CM_CLOSE, pCL );
+ ConnectionClosed( pCL );
+
+ if ( xLastNewLink == pCL )
+ xLastNewLink.Clear();
+
+ pCL->FinishCallback();
+// delete pCL;
+}
+
+void CommunicationManager::CallDataReceived( CommunicationLink* pCL )
+{
+ pCL->StartCallback(); // Sollte bereits vor dem Aufruf gerufen werden
+ pCL->aLastAccess = DateTime();
+ CommunicationLinkRef rHold(pCL); // Hlt den Zeiger bis zum Ende des calls
+
+ // should be impossible but happens for mysterious reasons
+ if ( !pCL->pServiceData )
+ {
+ DBG_ERROR( "Datastream is NULL" );
+ pCL->FinishCallback();
+ return;
+ }
+
+
+ if ( CH_Handshake == pCL->nServiceHeaderType )
+ {
+ SvStream *pData = pCL->GetServiceData();
+ USHORT nType;
+ pData->SetNumberFormatInt( NUMBERFORMAT_INT_BIGENDIAN ); // Unfortulately it is written this way :((
+ *pData >> nType;
+ pData->SetNumberFormatInt( NUMBERFORMAT_INT_LITTLEENDIAN );
+ switch ( nType )
+ {
+ case CH_REQUEST_HandshakeAlive:
+ {
+ pCL->SendHandshake( CH_RESPONSE_HandshakeAlive );
+ }
+ break;
+ case CH_REQUEST_ShutdownLink:
+ {
+#if OSL_DEBUG_LEVEL > 1
+ debug_printf("Sending ShutdownLink\n");
+#endif
+ pCL->SendHandshake( CH_ShutdownLink );
+ }
+ break;
+ case CH_ShutdownLink:
+ {
+#if OSL_DEBUG_LEVEL > 1
+ debug_printf("Executing ShutdownLink\n");
+#endif
+ pCL->ShutdownCommunication();
+ }
+ break;
+ case CH_SetApplication:
+ {
+ ByteString aApplication;
+ *pData >> aApplication;
+ pCL->CommunicationLink::SetApplication( aApplication );
+#if OSL_DEBUG_LEVEL > 1
+ debug_printf( "Setting Application to " );
+ debug_printf( aApplication.GetBuffer() );
+ debug_printf( "\n" );
+#endif
+ }
+ break;
+
+#if OSL_DEBUG_LEVEL > 1
+ default:
+ {
+ debug_printf("Unknown Handshake received\n");
+ }
+#endif
+ }
+ delete pData;
+ }
+ else
+ {
+ if ( pCL->pServiceData )
+ {
+ pCL->nTotalBytes += pCL->pServiceData->Seek( STREAM_SEEK_TO_END );
+ pCL->pServiceData->Seek( STREAM_SEEK_TO_BEGIN );
+ }
+
+ INFO_MSG( CByteString("D :").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CByteString("Daten Empfangen:").Append( pCL->GetCommunicationPartner( CM_FQDN ) ),
+ CM_RECEIVE, pCL );
+ DataReceived( pCL );
+ }
+ delete pCL->GetServiceData();
+ pCL->FinishCallback();
+}
+
+void CommunicationManager::CallInfoMsg( InfoString aMsg )
+{
+ // Hier wird es wohl kein Housekeeping geben
+ InfoMsg( aMsg );
+}
+
+void CommunicationManager::SetApplication( const ByteString& aApp, BOOL bRunningLinks )
+{
+ maApplication = aApp;
+ if ( bRunningLinks )
+ {
+ USHORT i;
+ for ( i = 0 ; i < GetCommunicationLinkCount() ; i++ )
+ GetCommunicationLink( i )->SetApplication( aApp );
+ }
+}
+
+
+
+SingleCommunicationManager::SingleCommunicationManager( BOOL bUseMultiChannel )
+: CommunicationManager( bUseMultiChannel )
+{
+ xActiveLink = NULL;
+ pInactiveLink = NULL;
+}
+
+SingleCommunicationManager::~SingleCommunicationManager()
+{
+ StopCommunication();
+ if ( pInactiveLink )
+ pInactiveLink->InvalidateManager();
+}
+
+BOOL SingleCommunicationManager::StopCommunication()
+{
+ if ( xActiveLink.Is() )
+ {
+ BOOL bSuccess = xActiveLink->StopCommunication();
+ if ( pInactiveLink )
+ pInactiveLink->InvalidateManager();
+ pInactiveLink = xActiveLink;
+ xActiveLink.Clear();
+ return bSuccess;
+ }
+ return TRUE;
+}
+
+BOOL SingleCommunicationManager::IsLinkValid( CommunicationLink* pCL )
+{
+ return &xActiveLink == pCL;
+}
+
+USHORT SingleCommunicationManager::GetCommunicationLinkCount()
+{
+ return IsCommunicationRunning()?1:0;
+}
+
+CommunicationLinkRef SingleCommunicationManager::GetCommunicationLink( USHORT )
+{
+ return xActiveLink;
+}
+
+void SingleCommunicationManager::CallConnectionOpened( CommunicationLink* pCL )
+{
+ DBG_ASSERT( !xActiveLink.Is(), "Es ist bereits ein CommunicationLink aktiv");
+ if ( xActiveLink.Is() )
+ {
+ if ( pInactiveLink )
+ pInactiveLink->InvalidateManager();
+ pInactiveLink = xActiveLink;
+ xActiveLink->StopCommunication(); // Den alten Link brutal abwrgen
+ }
+ xActiveLink = pCL;
+ CommunicationManager::CallConnectionOpened( pCL );
+}
+
+void SingleCommunicationManager::CallConnectionClosed( CommunicationLink* pCL )
+{
+ CommunicationManager::CallConnectionClosed( pCL );
+
+ DBG_ASSERT( pCL == xActiveLink, "SingleCommunicationManager::CallConnectionClosed mit fremdem Link");
+ if ( pInactiveLink )
+ pInactiveLink->InvalidateManager();
+ pInactiveLink = xActiveLink;
+ xActiveLink.Clear();
+ bIsCommunicationRunning = FALSE;
+}
+
+void SingleCommunicationManager::DestroyingLink( CommunicationLink *pCL )
+{
+ pInactiveLink = NULL;
+ pCL->InvalidateManager();
+}
+
+
+SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSocket( ByteString aHost, ULONG nPort, BOOL bUseMultiChannel )
+: SingleCommunicationManager( bUseMultiChannel )
+, aHostToTalk( aHost )
+, nPortToTalk( nPort )
+{
+}
+
+
+SingleCommunicationManagerClientViaSocket::SingleCommunicationManagerClientViaSocket( BOOL bUseMultiChannel )
+: SingleCommunicationManager( bUseMultiChannel )
+, aHostToTalk()
+, nPortToTalk( 0 )
+{
+}
+
+
+BOOL CommonSocketFunctions::DoStartCommunication( CommunicationManager *pCM, ICommunicationManagerClient *pCMC, ByteString aHost, ULONG nPort )
+{
+ NAMESPACE_VOS(OInetSocketAddr) Addr;
+ NAMESPACE_VOS(OConnectorSocket) *pConnSocket;
+
+ Addr.setAddr( rtl::OUString( UniString( aHost, RTL_TEXTENCODING_UTF8 ) ) );
+ Addr.setPort( nPort );
+
+ TimeValue aTV;
+ aTV.Seconds = 10; // Warte 10 Sekunden
+ aTV.Nanosec = 0;
+ do
+ {
+ pConnSocket = new NAMESPACE_VOS(OConnectorSocket)();
+ pConnSocket->setTcpNoDelay( 1 );
+ if ( pConnSocket->connect( Addr, &aTV ) == NAMESPACE_VOS(ISocketTypes::TResult_Ok) )
+ {
+ pConnSocket->setTcpNoDelay( 1 );
+
+ pCM->CallConnectionOpened( CreateCommunicationLink( pCM, pConnSocket ) );
+ return TRUE;
+ }
+ else
+ delete pConnSocket;
+
+ } while ( pCMC->RetryConnect() );
+
+ return FALSE;
+}
+
diff --git a/automation/source/simplecm/tcpio.cxx b/automation/source/simplecm/tcpio.cxx
new file mode 100644
index 000000000000..5498e3a69774
--- /dev/null
+++ b/automation/source/simplecm/tcpio.cxx
@@ -0,0 +1,71 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#include "tcpio.hxx"
+
+/// implement ITransmiter
+comm_USHORT TCPIO::TransferBytes( const void* pBuffer, comm_UINT32 nLen )
+{
+ vos::OGuard aGuard( aMSocketWriteAccess );
+ if ( !pStreamSocket )
+ {
+ nLastSent = 0;
+ return C_ERROR_PERMANENT;
+ }
+ nLastSent = pStreamSocket->write( pBuffer, nLen );
+ if ( nLastSent == nLen )
+ return C_ERROR_NONE;
+ return C_ERROR_PERMANENT;
+}
+
+
+/// implement IReceiver
+comm_USHORT TCPIO::ReceiveBytes( void* pBuffer, comm_UINT32 nLen )
+{
+ vos::OGuard aGuard( aMSocketReadAccess );
+ if ( !pStreamSocket )
+ {
+ nLastReceived = 0;
+ return C_ERROR_PERMANENT;
+ }
+ nLastReceived = pStreamSocket->read( pBuffer, nLen );
+ if ( nLastReceived == nLen )
+ return C_ERROR_NONE;
+ return C_ERROR_PERMANENT;
+}
+
+
+// helper
+void TCPIO::SetStreamSocket( NAMESPACE_VOS(OStreamSocket) *pSocket )
+{
+ vos::OGuard aRGuard( aMSocketReadAccess );
+ vos::OGuard aWGuard( aMSocketWriteAccess );
+ pStreamSocket = pSocket;
+}
diff --git a/automation/source/simplecm/tcpio.hxx b/automation/source/simplecm/tcpio.hxx
new file mode 100644
index 000000000000..626f164ba0f5
--- /dev/null
+++ b/automation/source/simplecm/tcpio.hxx
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef TCPIO_HXX
+#define TCPIO_HXX
+
+#include <vos/socket.hxx>
+#include <vos/mutex.hxx>
+
+#include "communiio.hxx"
+
+class TCPIO : public ITransmiter, public IReceiver
+{
+private:
+ NAMESPACE_VOS(OStreamSocket) *pStreamSocket;
+ vos::OMutex aMSocketReadAccess;
+ vos::OMutex aMSocketWriteAccess;
+
+public:
+
+ ///
+ TCPIO( NAMESPACE_VOS(OStreamSocket) *pSocket ):pStreamSocket( pSocket ){}
+ virtual ~TCPIO(){}
+
+
+ /// implement ITransmiter
+ virtual comm_USHORT TransferBytes( const void* pBuffer, comm_UINT32 nLen );
+
+ /// implement IReceiver
+ virtual comm_USHORT ReceiveBytes( void* pBuffer, comm_UINT32 nLen );
+
+ // helper
+ void SetStreamSocket( NAMESPACE_VOS(OStreamSocket) *pSocket );
+
+};
+
+#endif
diff --git a/automation/source/testtool/cmdstrm.cxx b/automation/source/testtool/cmdstrm.cxx
new file mode 100644
index 000000000000..4f6d413f4280
--- /dev/null
+++ b/automation/source/testtool/cmdstrm.cxx
@@ -0,0 +1,470 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#ifndef _KEYCOD_HXX //autogen
+#include <vcl/keycod.hxx>
+#endif
+#include <basic/sbx.hxx>
+#include <tools/stream.hxx>
+
+#include "cmdstrm.hxx"
+#include "rcontrol.hxx"
+#include "objtest.hxx"
+#include "sttresid.hxx"
+#include "svcommstream.hxx"
+#include <basic/testtool.hrc>
+
+ControlDefLoad __READONLY_DATA CmdStream::arKeyCodes [] =
+#include <keycodes.hxx>
+CNames *CmdStream::pKeyCodes = NULL;
+
+ResMgr* SttResId::getSttResMgr()
+{
+ static ResMgr* pMgr = NULL;
+ if( ! pMgr )
+ pMgr = CREATEVERSIONRESMGR( stt );
+ return pMgr;
+}
+
+CmdStream::CmdStream()
+{
+ pSammel = new SvMemoryStream();
+ pCommStream = new SvCommStream( pSammel );
+}
+
+CmdStream::~CmdStream()
+{
+ delete pCommStream;
+ delete pSammel;
+}
+
+
+#define PUT_CHAR(ch) \
+ USHORT nMCode = nModify + ch; \
+ USHORT _Code = 1; \
+ if ( (nMCode & 0xFF) == 0 ) \
+ _Code |= 2; \
+ if ( (nMCode >> 8) == 0 ) \
+ _Code |= 4; \
+ Result += (char) _Code; \
+ Result += (char) ( nMCode & 0xFF ); \
+ Result += (char) ( nMCode >> 8 )
+
+
+String CmdStream::WandleKeyEventString( String aKeys )
+{
+ if ( !pKeyCodes )
+ ReadFlatArray(arKeyCodes,pKeyCodes);
+ if ( !pKeyCodes )
+ return aKeys;
+
+ xub_StrLen nPos1 = 0;
+ while ( (nPos1 = aKeys.Search('<',nPos1)) != STRING_NOTFOUND)
+ {
+ xub_StrLen nPos2 = aKeys.Search('>',nPos1);
+ if ( nPos2 != STRING_NOTFOUND )
+ {
+ String Work = aKeys.Copy(nPos1+1,nPos2-nPos1+1-2);
+ aKeys.Erase(nPos1,nPos2-nPos1+1); // Inclusive Spitze Klammern weg
+ String Result, Token;
+ USHORT nModify = 0;
+ while ( Work.Len() > 0 )
+ {
+ Token = Work.GetToken(0,' ');
+ Work.Erase(0,Token.Len()+1);
+ ControlDef WhatName(Token,SmartId());
+ USHORT nElement;
+ if (pKeyCodes->Seek_Entry(&WhatName,&nElement))
+ {
+ USHORT nCode = (USHORT) pKeyCodes->GetObject(nElement)->pData->aUId.GetNum();
+ if ( nCode >= KEY_SHIFT )
+ nModify ^= nCode;
+ else
+ {
+ if ( ( nModify == 0 ) &&
+ (((nCode & 0xFF00) == KEYGROUP_NUM) ||
+ ((nCode & 0xFF00) == KEYGROUP_ALPHA) ||
+ ( nCode == KEY_SPACE) ||
+ ( nCode == KEY_ADD) ||
+ ( nCode == KEY_SUBTRACT) ||
+ ( nCode == KEY_MULTIPLY) ||
+ ( nCode == KEY_DIVIDE) ||
+ ( nCode == KEY_POINT) ||
+ ( nCode == KEY_COMMA) ||
+ ( nCode == KEY_LESS) ||
+ ( nCode == KEY_GREATER) ||
+ ( nCode == KEY_EQUAL) ) )
+ {
+ switch ( nCode )
+ {
+ case KEY_SPACE: Token = ' '; break;
+ case KEY_ADD: Token = '+'; break;
+ case KEY_SUBTRACT: Token = '-'; break;
+ case KEY_MULTIPLY: Token = '*'; break;
+ case KEY_DIVIDE: Token = '/'; break;
+ case KEY_POINT: Token = '.'; break;
+ case KEY_COMMA: Token = ','; break;
+ case KEY_LESS: Token = '<'; break;
+ case KEY_GREATER: Token = '>'; break;
+ case KEY_EQUAL: Token = '='; break;
+ default:
+// if ( nModify == 0 )
+// Token.ToLower();
+// else
+// Token.ToUpper();
+ ;
+ }
+ Result += Token;
+ }
+ else
+ {
+ PUT_CHAR (nCode);
+ }
+ }
+ }
+ else
+ {
+ Result += '<';
+ Result += Token;
+ Result += ' ';
+ Result += String( SttResId( S_INVALID_KEYCODE ) );
+ Result += '>';
+ }
+ }
+ aKeys.Insert(Result,nPos1);
+ nPos1 = nPos1 + Result.Len();
+ }
+ else
+ nPos1 = aKeys.Len() + 1;
+ }
+
+ return aKeys;
+}
+
+
+void CmdStream::WriteSortedParams( SbxArray* rPar, BOOL IsKeyString )
+{
+ USHORT nParams = PARAM_NONE;
+ USHORT nNr1=0,nNr2=0,nNr3=0,nNr4=0;
+ comm_ULONG nLNr1=0;
+ String aString1,aString2;
+ BOOL bBool1=FALSE,bBool2=FALSE;
+
+ if ( rPar )
+ {
+ for ( USHORT i = 1; i < rPar->Count() ; i++)
+ {
+ switch (rPar->Get( i )->GetType())
+ {
+ case SbxLONG: // alles immer als Short �bertragen
+ case SbxULONG:
+ case SbxLONG64:
+ case SbxULONG64:
+ case SbxDOUBLE:
+ case SbxINTEGER:
+ case SbxBYTE:
+ case SbxUSHORT:
+ case SbxINT:
+ case SbxUINT:
+ case SbxSINGLE:
+ if ( (nParams & PARAM_USHORT_1) == 0 )
+ {
+ nParams |= PARAM_USHORT_1;
+ nNr1 = rPar->Get( i )->GetUShort();
+ }
+ else if ( (nParams & PARAM_USHORT_2) == 0 )
+ {
+ nParams |= PARAM_USHORT_2;
+ nNr2 = rPar->Get( i )->GetUShort();
+ }
+ else if ( (nParams & PARAM_USHORT_3) == 0 )
+ {
+ nParams |= PARAM_USHORT_3;
+ nNr3 = rPar->Get( i )->GetUShort();
+ }
+ else if ( (nParams & PARAM_USHORT_4) == 0 )
+ {
+ nParams |= PARAM_USHORT_4;
+ nNr4 = rPar->Get( i )->GetUShort();
+ }
+ else
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ break;
+ case SbxOBJECT: // whenever a control is passed. TabPage, MenuBar
+ {
+ SbxProperty *pMember = NULL;
+ if ( rPar->Get( i )->ISA( SbxObject ) )
+ pMember = ((SbxObject*)rPar->Get( i ))->GetDfltProperty();
+ if ( pMember != NULL )
+ {
+ if ( pMember->GetType() == SbxSTRING )
+ {
+ if ( nParams & PARAM_STR_1 )
+ if ( nParams & PARAM_STR_2 )
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ else
+ {
+ nParams |= PARAM_STR_2;
+ aString2 = pMember->GetString();
+ }
+ else
+ {
+ nParams |= PARAM_STR_1;
+ aString1 = pMember->GetString();
+ }
+ break;
+ }
+ else if ( pMember->GetType() == SbxULONG )
+ {
+ if ( nParams & PARAM_ULONG_1 )
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ else
+ {
+ nParams |= PARAM_ULONG_1;
+ nLNr1 = pMember->GetULong();
+ }
+ }
+ else
+ SbxBase::SetError( SbxERR_NAMED_NOT_FOUND );
+ }
+ else
+ {
+ SbxBase::SetError( SbxERR_NAMED_NOT_FOUND );
+ }
+ }
+ break;
+ case SbxSTRING:
+ case SbxCHAR:
+ if ( nParams & PARAM_STR_1 )
+ if ( nParams & PARAM_STR_2 )
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ else
+ {
+ nParams |= PARAM_STR_2;
+ aString2 = rPar->Get( i )->GetString();
+ }
+ else
+ {
+ nParams |= PARAM_STR_1;
+ aString1 = rPar->Get( i )->GetString();
+ }
+ break;
+ case SbxBOOL:
+ if ( nParams & PARAM_BOOL_1 )
+ if ( nParams & PARAM_BOOL_2 )
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ else
+ {
+ nParams |= PARAM_BOOL_2;
+ bBool2 = rPar->Get( i )->GetBool();
+ }
+ else
+ {
+ nParams |= PARAM_BOOL_1;
+ bBool1 = rPar->Get( i )->GetBool();
+ }
+ break;
+ default:
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ break;
+ }
+ }
+ }
+ Write (nParams);
+ if( nParams & PARAM_USHORT_1 ) Write( nNr1 );
+ if( nParams & PARAM_USHORT_2 ) Write( nNr2 );
+ if( nParams & PARAM_USHORT_3 ) Write( nNr3 );
+ if( nParams & PARAM_USHORT_4 ) Write( nNr4 );
+ if( nParams & PARAM_ULONG_1 ) Write( nLNr1 );
+ if( nParams & PARAM_STR_1 ) Write( aString1, IsKeyString );
+ if( nParams & PARAM_STR_2 ) Write( aString2, IsKeyString );
+ if( nParams & PARAM_BOOL_1 ) Write( bBool1 );
+ if( nParams & PARAM_BOOL_2 ) Write( bBool2 );
+}
+
+void CmdStream::GenCmdCommand( USHORT nNr, SbxArray* rPar )
+{
+ Write(USHORT(SICommand));
+ Write(nNr);
+ WriteSortedParams(rPar, (nNr & M_KEY_STRING) != 0 );
+}
+
+void CmdStream::GenCmdSlot( USHORT nNr, SbxArray* rPar )
+{
+ Write(USHORT(SISlot));
+ Write(nNr);
+ if (rPar)
+ {
+ USHORT nAnz = (rPar->Count()-1) >> 1; // Geteilt durch 2
+ Write(nAnz);
+ BOOL bWriteUnoSlot = rPar->Get( 1 )->GetType() == SbxSTRING;
+
+ for (USHORT n = 1 ; n <= nAnz ; n++)
+ {
+ /// #59513# nicht mehr ben�tigt
+// ULONG nUserData = rPar->Get( 2*n-1 )->GetUserData();
+// rPar->Get( 2*n-1 )->SetUserData(ID_DoNothing); // Verhindert Ausf�hrung der Slots, die als Parameter �bergeben sind.
+
+ if ( bWriteUnoSlot )
+ Write(rPar->Get( 2*n-1 )->GetString());
+ else
+ Write(rPar->Get( 2*n-1 )->GetUShort());
+ switch (rPar->Get( 2*n )->GetType())
+ {
+ case SbxINTEGER:
+ case SbxBYTE:
+ case SbxUSHORT:
+ case SbxINT:
+ case SbxUINT:
+ case SbxSINGLE:
+ if ( !bWriteUnoSlot )
+ Write( (USHORT)BinUSHORT );
+ Write(rPar->Get( 2*n )->GetUShort());
+ break;
+ case SbxLONG:
+ case SbxULONG:
+ case SbxLONG64:
+ case SbxULONG64:
+ case SbxDOUBLE:
+ if ( !bWriteUnoSlot )
+ Write( (USHORT)BinULONG );
+ Write(rPar->Get( 2*n )->GetULong());
+ break;
+ case SbxSTRING:
+ case SbxCHAR:
+ if ( !bWriteUnoSlot )
+ Write( (USHORT)BinString);
+ Write((String)rPar->Get( 2*n )->GetString()); // Cast f�r OS/2
+ break;
+ case SbxBOOL:
+ if ( !bWriteUnoSlot )
+ Write( (USHORT)BinBool);
+ Write(rPar->Get( 2*n )->GetBool());
+ break;
+ default:
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ break;
+ }
+
+ /// #59513# nicht mehr ben�tigt ( siehe oben )
+// rPar->Get( 2*n-1 )->SetUserData(nUserData); // Und wieder zur�cksetzen, so da� auch alles sauber ist.
+ }
+ }
+ else
+ Write(USHORT(0));
+}
+
+void CmdStream::GenCmdUNOSlot( const String &aURL )
+{
+ Write( USHORT(SIUnoSlot) );
+/* Write( USHORT(0) ); // Hier wird im Office die SID_OPENURL Eingetragen.
+ // Dies mu� nat�rlich im Office hart verdratet werden und nicht hier,
+ // da sich die ID ja mal �ndern kann.
+
+ // Da auch die ID f�r das PoolItem im Office entnommen werden mu� hier also kein PoolItem
+ // gesendet werden.
+
+ Write( USHORT(0) ); // Anzahl PoolItems
+
+ // Stattdessen wird noch eine extra String gesendet, der dann Officeseitig in ein
+ // SfxStringItem mit entsprechender ID gewandelt wird.
+ Write( aURL ); // String f�r das PoolItem*/
+
+ Write( aURL ); // Die UNO URL eben
+}
+
+void CmdStream::GenCmdControl( comm_ULONG nUId, USHORT nMethodId, SbxArray* rPar )
+{
+ Write(USHORT(SIControl));
+ Write(nUId);
+ Write(nMethodId);
+ WriteSortedParams(rPar, (nMethodId & M_KEY_STRING) != 0 );
+}
+
+void CmdStream::GenCmdControl( String aUId, USHORT nMethodId, SbxArray* rPar )
+{
+ Write(USHORT(SIStringControl));
+ Write(aUId);
+ Write(nMethodId);
+ WriteSortedParams(rPar, (nMethodId & M_KEY_STRING) != 0 );
+}
+
+void CmdStream::GenCmdFlow( USHORT nArt )
+{
+ Write(USHORT(SIFlow));
+ Write(nArt);
+ Write(USHORT(PARAM_NONE)); // Typ der folgenden Parameter
+}
+
+void CmdStream::GenCmdFlow( USHORT nArt, USHORT nNr1 )
+{
+ Write(USHORT(SIFlow));
+ Write(nArt);
+ Write(USHORT(PARAM_USHORT_1)); // Typ der folgenden Parameter
+ Write(nNr1);
+}
+
+void CmdStream::GenCmdFlow( USHORT nArt, comm_ULONG nNr1 )
+{
+ Write(USHORT(SIFlow));
+ Write(nArt);
+ Write(USHORT(PARAM_ULONG_1)); // Typ der folgenden Parameter
+ Write(nNr1);
+}
+
+void CmdStream::GenCmdFlow( USHORT nArt, String aString1 )
+{
+ Write(USHORT(SIFlow));
+ Write(nArt);
+ Write(USHORT(PARAM_STR_1)); // Typ der folgenden Parameter
+ Write(aString1);
+}
+
+void CmdStream::Write( String aString, BOOL IsKeyString )
+{
+ if ( IsKeyString )
+ Write( WandleKeyEventString( aString ), FALSE );
+ else
+ Write( aString.GetBuffer(), aString.Len() );
+}
+
+SvMemoryStream* CmdStream::GetStream()
+{
+ return pSammel;
+}
+
+void CmdStream::Reset( comm_ULONG nSequence )
+{
+ delete pCommStream;
+ delete pSammel;
+ pSammel = new SvMemoryStream();
+ pCommStream = new SvCommStream( pSammel );
+ GenCmdFlow (F_Sequence,nSequence);
+}
+
diff --git a/automation/source/testtool/cmdstrm.hxx b/automation/source/testtool/cmdstrm.hxx
new file mode 100644
index 000000000000..857517483280
--- /dev/null
+++ b/automation/source/testtool/cmdstrm.hxx
@@ -0,0 +1,78 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _CMDSTRM_HXX
+#define _CMDSTRM_HXX
+
+#include <objtest.hxx>
+#include <testapp.hxx>
+#include "cmdbasestream.hxx"
+
+class CmdStream : public CmdBaseStream
+{
+public:
+ CmdStream();
+ ~CmdStream();
+
+ void WriteSortedParams( SbxArray* rPar, BOOL IsKeyString = FALSE );
+
+ void GenCmdCommand( USHORT nNr, SbxArray* rPar );
+
+ void GenCmdSlot( USHORT nNr, SbxArray* rPar );
+
+ void GenCmdUNOSlot( const String &aURL );
+
+ void GenCmdControl( comm_ULONG nUId, USHORT nMethodId, SbxArray* rPar );
+ void GenCmdControl( String aUId, USHORT nMethodId, SbxArray* rPar );
+
+
+ void GenCmdFlow( USHORT nArt );
+ void GenCmdFlow( USHORT nArt, USHORT nNr1 );
+ void GenCmdFlow( USHORT nArt, comm_ULONG nNr1 );
+ void GenCmdFlow( USHORT nArt, String aString1 );
+
+ void Reset(comm_ULONG nSequence);
+
+ SvMemoryStream* GetStream();
+
+ static CNames *pKeyCodes; // Namen der Sondertasten MOD1, F1, LEFT ...
+ static ControlDefLoad __READONLY_DATA arKeyCodes [];
+
+private:
+ String WandleKeyEventString( String aKeys ); // Nutzt pKeyCodes. <RETURN> <SHIFT LEFT LEFT>
+
+ using CmdBaseStream::Write;
+ void Write( comm_USHORT nNr ){CmdBaseStream::Write( nNr );}
+ void Write( comm_ULONG nNr ){CmdBaseStream::Write( nNr );}
+ void Write( const comm_UniChar* aString, comm_USHORT nLenInChars ){CmdBaseStream::Write( aString, nLenInChars );}
+ void Write( comm_BOOL bBool ){CmdBaseStream::Write( bBool );}
+// new
+ void Write( String aString, BOOL IsKeyString = FALSE );
+
+ SvMemoryStream *pSammel;
+};
+
+#endif
diff --git a/automation/source/testtool/comm_bas.cxx b/automation/source/testtool/comm_bas.cxx
new file mode 100644
index 000000000000..e35448c012c5
--- /dev/null
+++ b/automation/source/testtool/comm_bas.cxx
@@ -0,0 +1,442 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#include "comm_bas.hxx"
+#include <tools/errcode.hxx>
+#include <basic/sbxobj.hxx>
+#include <basic/sbx.hxx>
+#ifndef __SBX_SBXVARIABLE_HXX //autogen
+#include <basic/sbxvar.hxx>
+#endif
+#include <vcl/svapp.hxx>
+#include <automation/communi.hxx>
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+
+// Der CommunicationManager hat folgende Elemente:
+// 1) Properties:
+// Keine
+// 2) Methoden:
+// CommunicationLink StartCommunication( Host, Port )
+// StopAllCommunication // Alle Kommunikation wird abgebrochen
+// BOOL IsCommunicationRunning // Luft noch irgendwas
+// String GetMyName Der eigene Name
+// BOOL IsLinkValid( CommunicationLink ) // Ist dieser Link noch gltig
+// SetCommunicationEventHandler( String ) // Diese Funktion wird aufgerufen bei jedem Event
+
+// Der CommunicationLink hat folgende Elemente:
+// 1) Properties:
+// Keine
+// 2) Methoden:
+// StopCommunication Die Kommunikation wird abgebrochen
+// String GetMyName Der eigene Name
+// String GetHostName Der Name des Anderen
+// Send(String ) String an den Partner schicken
+// String GetString Ergebnis des letzten Empfangs
+
+
+// Diese Implementation ist ein Beispiel fuer eine tabellengesteuerte
+// Version, die sehr viele Elemente enthalten kann. Die Elemente werden
+// je nach Bedarf aus der Tabelle in das Objekt uebernommen.
+
+// Das nArgs-Feld eines Tabelleneintrags ist wie folgt verschluesselt:
+
+#define _ARGSMASK 0x00FF // Bis zu 255 Argumente
+#define _RWMASK 0x0F00 // Maske fuer R/W-Bits
+#define _TYPEMASK 0xF000 // Maske fuer den Typ des Eintrags
+
+#define _READ 0x0100 // kann gelesen werden
+#define _BWRITE 0x0200 // kann as Lvalue verwendet werden
+#define _LVALUE _BWRITE // kann as Lvalue verwendet werden
+#define _READWRITE 0x0300 // beides
+#define _OPT 0x0400 // TRUE: optionaler Parameter
+#define _METHOD 0x1000 // Masken-Bit fuer eine Methode
+#define _PROPERTY 0x2000 // Masken-Bit fuer eine Property
+#define _COLL 0x4000 // Masken-Bit fuer eine Collection
+ // Kombination von oberen Bits:
+#define _FUNCTION 0x1100 // Maske fuer Function
+#define _LFUNCTION 0x1300 // Maske fuer Function, die auch als Lvalue geht
+#define _ROPROP 0x2100 // Maske Read Only-Property
+#define _WOPROP 0x2200 // Maske Write Only-Property
+#define _RWPROP 0x2300 // Maske Read/Write-Property
+#define _COLLPROP 0x4100 // Maske Read-Collection-Element
+
+#define COLLNAME "Elements" // Name der Collection, hier mal hart verdrahtet
+
+
+
+CommunicationWrapper::Methods CommunicationWrapper::aManagerMethods[] = {
+// Neue Kommunikation aufbauen
+{ "StartCommunication", SbxEMPTY, &CommunicationWrapper::MStartCommunication, 2 | _FUNCTION },
+ // Zwei Named Parameter
+ { "Host", SbxSTRING, NULL, 0 },
+ { "Port", SbxLONG, NULL, 0 },
+// Alle Kommunikation wird abgebrochen
+{ "StopAllCommunication", SbxEMPTY, &CommunicationWrapper::MStopAllCommunication, 0 | _FUNCTION },
+// Luft noch irgendwas
+{ "IsCommunicationRunning", SbxBOOL, &CommunicationWrapper::MIsCommunicationRunning, 0 | _FUNCTION },
+// Hostname als FQDN erfragen
+{ "GetMyName", SbxSTRING, &CommunicationWrapper::MGetMyName, 0 | _FUNCTION },
+// Abfragen ob der Link berhaupt noch gltig ist
+{ "IsLinkValid", SbxBOOL, &CommunicationWrapper::MIsLinkValid, 1 | _FUNCTION },
+ // Ein Named Parameter
+ { "Link", SbxOBJECT, NULL, 0 },
+// Dieser Handler wird dauernd gerufen
+{ "SetCommunicationEventHandler", SbxEMPTY, &CommunicationWrapper::MSetCommunicationEventHandler, 1 | _FUNCTION },
+ // Ein Named Parameter
+ { "FuncName", SbxSTRING, NULL, 0 },
+
+{ NULL, SbxNULL, NULL, -1 }}; // Tabellenende
+
+
+
+
+
+
+CommunicationWrapper::Methods CommunicationWrapper::aLinkMethods[] = {
+// Die Kommunikation wird abgebrochen
+{ "StopCommunication", SbxEMPTY, &CommunicationWrapper::LStopCommunication, 0 | _FUNCTION },
+// Der eigene Name
+{ "GetMyName", SbxSTRING, &CommunicationWrapper::LGetMyName, 0 | _FUNCTION },
+// Der Name des Anderen
+{ "GetHostName", SbxSTRING, &CommunicationWrapper::LGetHostName, 0 | _FUNCTION },
+// String an den Partner schicken
+{ "Send", SbxEMPTY, &CommunicationWrapper::LSend, 1 | _FUNCTION },
+ // Ein Named Parameter
+ { "SendString", SbxSTRING, NULL, 0 },
+// Ergebnis des letzten Empfangs
+{ "GetString", SbxSTRING, &CommunicationWrapper::LGetString, 0 | _FUNCTION },
+
+{ NULL, SbxNULL, NULL, -1 }}; // Tabellenende
+
+
+
+
+
+// Konstruktor fr den Manager
+CommunicationWrapper::CommunicationWrapper( const String& rClass ) : SbxObject( rClass )
+, m_pLink( NULL )
+, m_bIsManager( TRUE )
+, m_bCatchOpen( FALSE )
+, m_pNewLink( NULL )
+{
+// SetName( CUniString("Manager") );
+ m_pMethods = &aManagerMethods[0];
+ m_pManager = new CommunicationManagerClientViaSocket;
+ m_pManager->SetConnectionOpenedHdl( LINK( this, CommunicationWrapper, Open ) );
+ m_pManager->SetConnectionClosedHdl( LINK( this, CommunicationWrapper, Close ) );
+ m_pManager->SetDataReceivedHdl( LINK( this, CommunicationWrapper, Data ) );
+}
+
+// Konstruktor fr den Link
+CommunicationWrapper::CommunicationWrapper( CommunicationLink *pThisLink ) : SbxObject( CUniString("Link") )
+, m_pLink( pThisLink )
+, m_bIsManager( FALSE )
+, m_bCatchOpen( FALSE )
+, m_pNewLink( NULL )
+{
+ m_pMethods = &aLinkMethods[0];
+ m_pManager = (CommunicationManagerClientViaSocket*)pThisLink->GetCommunicationManager();
+}
+
+// Destruktor
+CommunicationWrapper::~CommunicationWrapper()
+{
+ if ( m_bIsManager )
+ delete m_pManager;
+}
+
+
+// Suche nach einem Element:
+// Hier wird linear durch die Methodentabelle gegangen, bis eine
+// passende Methode gefunden wurde.
+// Wenn die Methode/Property nicht gefunden wurde, nur NULL ohne
+// Fehlercode zurueckliefern, da so auch eine ganze Chain von
+// Objekten nach der Methode/Property befragt werden kann.
+
+SbxVariable* CommunicationWrapper::Find( const String& rName, SbxClassType t )
+{
+ // Ist das Element bereits vorhanden?
+ SbxVariable* pRes = SbxObject::Find( rName, t );
+ if( !pRes && t != SbxCLASS_OBJECT )
+ {
+ // sonst suchen
+ Methods* p = m_pMethods;
+ short nIndex = 0;
+ BOOL bFound = FALSE;
+ while( p->nArgs != -1 )
+ {
+ if( rName.CompareIgnoreCaseToAscii( p->pName ) == COMPARE_EQUAL )
+ {
+ bFound = TRUE; break;
+ }
+ nIndex += ( p->nArgs & _ARGSMASK ) + 1;
+ p = m_pMethods + nIndex;
+ }
+ if( bFound )
+ {
+ // Args-Felder isolieren:
+ short nAccess = ( p->nArgs & _RWMASK ) >> 8;
+ short nType = ( p->nArgs & _TYPEMASK );
+ String aName( p->pName, RTL_TEXTENCODING_ASCII_US );
+ SbxClassType eCT = SbxCLASS_OBJECT;
+ if( nType & _PROPERTY )
+ eCT = SbxCLASS_PROPERTY;
+ else if( nType & _METHOD )
+ eCT = SbxCLASS_METHOD;
+ pRes = Make( aName, eCT, p->eType );
+ // Wir setzen den Array-Index + 1, da ja noch andere
+ // Standard-Properties existieren, die auch aktiviert
+ // werden muessen.
+ pRes->SetUserData( nIndex + 1 );
+ pRes->SetFlags( nAccess );
+ }
+ }
+ return pRes;
+}
+
+// Aktivierung eines Elements oder Anfordern eines Infoblocks
+
+void CommunicationWrapper::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCT,
+ const SfxHint& rHint, const TypeId& rHT )
+{
+ const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+ if( pHint )
+ {
+ SbxVariable* pVar = pHint->GetVar();
+ SbxArray* pPar = pVar->GetParameters();
+ USHORT nIndex = (USHORT) pVar->GetUserData();
+ // kein Index: weiterreichen!
+ if( nIndex )
+ {
+ ULONG t = pHint->GetId();
+ if( t == SBX_HINT_INFOWANTED )
+ pVar->SetInfo( GetInfo( (short) pVar->GetUserData() ) );
+ else
+ {
+ BOOL bWrite = FALSE;
+ if( t == SBX_HINT_DATACHANGED )
+ bWrite = TRUE;
+ if( t == SBX_HINT_DATAWANTED || bWrite )
+ {
+ // Parameter-Test fuer Methoden:
+ USHORT nPar = m_pMethods[ --nIndex ].nArgs & 0x00FF;
+ // Element 0 ist der Returnwert
+ if( ( !pPar && nPar )
+ || ( pPar && pPar->Count() != nPar+1 ) )
+ SetError( SbxERR_WRONG_ARGS );
+ // Alles klar, man kann den Call ausfuehren
+ else
+ {
+ (this->*(m_pMethods[ nIndex ].pFunc))( pVar, pPar, bWrite );
+ }
+ }
+ }
+ }
+ SbxObject::SFX_NOTIFY( rBC, rBCT, rHint, rHT );
+ }
+}
+
+// Zusammenbau der Infostruktur fuer einzelne Elemente
+
+SbxInfo* CommunicationWrapper::GetInfo( short nIdx )
+{
+ Methods* p = &m_pMethods[ nIdx ];
+ // Wenn mal eine Hilfedatei zur Verfuegung steht:
+ // SbxInfo* pInfo = new SbxInfo( Hilfedateiname, p->nHelpId );
+ SbxInfo* pRetInfo = new SbxInfo;
+ short nPar = p->nArgs & _ARGSMASK;
+ for( short i = 0; i < nPar; i++ )
+ {
+ p++;
+ String aName( p->pName, RTL_TEXTENCODING_ASCII_US );
+ USHORT nIFlags = ( p->nArgs >> 8 ) & 0x03;
+ if( p->nArgs & _OPT )
+ nIFlags |= SBX_OPTIONAL;
+ pRetInfo->AddParam( aName, p->eType, nIFlags );
+ }
+ return pRetInfo;
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+
+// Hilfsmethoden fr den Manager
+
+IMPL_LINK( CommunicationWrapper, Open, CommunicationLink*, pLink )
+{
+ if ( m_bCatchOpen )
+ m_pNewLink = pLink;
+ else
+ Events( CUniString("Open"), pLink );
+ return 1;
+}
+
+IMPL_LINK( CommunicationWrapper, Close, CommunicationLink*, pLink )
+{
+ Events( CUniString("Close"), pLink );
+ return 1;
+}
+
+IMPL_LINK( CommunicationWrapper, Data, CommunicationLink*, pLink )
+{
+ Events( CUniString("Data"), pLink );
+ return 1;
+}
+
+void CommunicationWrapper::Events( String aType, CommunicationLink* pLink )
+{
+ if ( m_aEventHandlerName.Len() )
+ {
+ SbxArrayRef pPar = new SbxArray( SbxVARIANT );
+ pPar->Put( new SbxVariable( SbxSTRING ), 1 );
+ pPar->Get( 1 )->PutString( aType );
+
+ pPar->Put( new SbxVariable( SbxOBJECT ), 2 );
+ pPar->Get( 2 )->PutObject( new CommunicationWrapper( pLink ) );
+
+ Call( m_aEventHandlerName, pPar );
+ }
+ else
+ delete pLink->GetServiceData(); // Stream wegschmeissen um nicht zu blockieren
+}
+
+
+////////////////////////////////////////////////////////////////////////////
+
+// Properties und Methoden legen beim Get (bPut = FALSE) den Returnwert
+// im Element 0 des Argv ab; beim Put (bPut = TRUE) wird der Wert aus
+// Element 0 gespeichert.
+
+// Die Methoden:
+
+// Manager
+void CommunicationWrapper::MStartCommunication( SbxVariable* pVar, SbxArray* pPar, BOOL /*bWrite*/ )
+{ // CommunicationLink StartCommunication( Host, Port )
+ m_bCatchOpen = TRUE;
+ if ( m_pManager->StartCommunication( ByteString( pPar->Get( 1 )->GetString(), RTL_TEXTENCODING_UTF8 ), pPar->Get( 2 )->GetULong() ) )
+ {
+ while ( !m_pNewLink )
+ GetpApp()->Reschedule();
+ m_bCatchOpen = FALSE;
+ CommunicationWrapper *pNewLinkWrapper = new CommunicationWrapper( m_pNewLink );
+ m_pNewLink = NULL;
+ pVar->PutObject( pNewLinkWrapper );
+ }
+
+}
+
+void CommunicationWrapper::MStopAllCommunication( SbxVariable* /*pVar*/, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // StopAllCommunication // Alle Kommunikation wird abgebrochen
+ m_pManager->StopCommunication();
+}
+
+void CommunicationWrapper::MIsCommunicationRunning( SbxVariable* pVar, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // BOOL IsCommunicationRunning // Luft noch irgendwas
+ pVar->PutBool( m_pManager->IsCommunicationRunning() );
+}
+
+void CommunicationWrapper::MGetMyName( SbxVariable* pVar, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // String GetMyName Der eigene Name
+ pVar->PutString( UniString( m_pManager->GetMyName( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
+}
+
+void CommunicationWrapper::MIsLinkValid( SbxVariable* pVar, SbxArray* pPar, BOOL /*bWrite*/ )
+{ // BOOL IsLinkValid( CommunicationLink ) // Ist dieser Link noch gltig
+ CommunicationWrapper *pWrapper = (CommunicationWrapper*)(pPar->Get( 1 )->GetObject());
+ pVar->PutBool( m_pManager->IsLinkValid( pWrapper->GetCommunicationLink() ) );
+}
+
+void CommunicationWrapper::MSetCommunicationEventHandler( SbxVariable* /*pVar*/, SbxArray* pPar, BOOL /*bWrite*/ )
+{ // SetCommunicationEventHandler( String ) // Diese Funktion wird aufgerufen bei jedem Event
+ m_aEventHandlerName = pPar->Get( 1 )->GetString();
+}
+
+
+
+
+
+// Link
+void CommunicationWrapper::LStopCommunication( SbxVariable* /*pVar*/, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // StopCommunication Die Kommunikation wird abgebrochen
+ m_pLink->StopCommunication();
+}
+
+void CommunicationWrapper::LGetMyName( SbxVariable* pVar, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // String GetMyName Der eigene Name
+ pVar->PutString( UniString( m_pLink->GetMyName( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
+}
+
+void CommunicationWrapper::LGetHostName( SbxVariable* pVar, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // String GetHostName Der Name des Anderen
+ pVar->PutString( UniString( m_pLink->GetCommunicationPartner( CM_FQDN ), RTL_TEXTENCODING_UTF8 ) );
+}
+
+void CommunicationWrapper::LSend( SbxVariable* /*pVar*/, SbxArray* pPar, BOOL /*bWrite*/ )
+{ // Send(String ) String an den Partner schicken
+ SvStream *pSendStream = m_pLink->GetBestCommunicationStream();
+ String aSendString = pPar->Get( 1 )->GetString();
+ pSendStream->WriteByteString( aSendString, RTL_TEXTENCODING_UTF8 );
+ m_pLink->TransferDataStream( pSendStream );
+ delete pSendStream;
+}
+
+void CommunicationWrapper::LGetString( SbxVariable* pVar, SbxArray* /*pPar*/, BOOL /*bWrite*/ )
+{ // String GetString Ergebnis des letzten Empfangs
+ SvStream *pReceiveStream = m_pLink->GetServiceData();
+ if ( pReceiveStream )
+ {
+ ULONG nLength = pReceiveStream->Seek( STREAM_SEEK_TO_END );
+ pReceiveStream->Seek( STREAM_SEEK_TO_BEGIN );
+ char *pBuffer = new char[nLength];
+ pReceiveStream->Read( pBuffer, nLength );
+ String aReceive(
+ pBuffer, sal::static_int_cast< xub_StrLen >( nLength ),
+ RTL_TEXTENCODING_UTF8 );
+ delete [] pBuffer;
+ pVar->PutString( aReceive );
+ delete pReceiveStream;
+ }
+ else
+ pVar->PutString( UniString() );
+}
+
+
+
+// Die Factory legt unser Objekte an.
+
+SbxObject* CommunicationFactory::CreateObject( const String& rClass )
+{
+ if( rClass.CompareIgnoreCaseToAscii( "CommunicationManager" ) == COMPARE_EQUAL )
+ return new CommunicationWrapper( rClass );
+ return NULL;
+}
+
diff --git a/automation/source/testtool/comm_bas.hxx b/automation/source/testtool/comm_bas.hxx
new file mode 100644
index 000000000000..d39f0895eefd
--- /dev/null
+++ b/automation/source/testtool/comm_bas.hxx
@@ -0,0 +1,120 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _COMM_BAS_HXX
+#define _COMM_BAS_HXX
+
+#include <basic/sbxfac.hxx>
+#ifndef __SBX_SBXVARIABLE_HXX //autogen
+#include <basic/sbxvar.hxx>
+#endif
+#include <basic/sbxobj.hxx>
+
+class CommunicationManagerClientViaSocket;
+class CommunicationLink;
+
+class CommunicationWrapper : public SbxObject // Einer fr Manager und Links
+{
+ // Definition eines Tabelleneintrags. Dies wird hier gemacht,
+ // da dadurch die Methoden und Properties als private deklariert
+ // werden koennen.
+#if defined ( ICC ) || defined ( HPUX ) || defined ( C50 ) || defined ( C52 )
+public:
+#endif
+ typedef void( CommunicationWrapper::*pMeth )
+ ( SbxVariable* pThis, SbxArray* pArgs, BOOL bWrite );
+#if defined ( ICC ) || defined ( HPUX )
+private:
+#endif
+
+ struct Methods {
+ const char* pName; // Name des Eintrags
+ SbxDataType eType; // Datentyp
+ pMeth pFunc; // Function Pointer
+ short nArgs; // Argumente und Flags
+ };
+ static Methods aManagerMethods[]; // Methodentabelle
+ static Methods aLinkMethods[]; // Methodentabelle
+ Methods *m_pMethods; // Aktuelle Methodentabelle
+
+ // Methoden
+ // Manager
+ void MStartCommunication( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void MStopAllCommunication( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void MIsCommunicationRunning( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void MGetMyName( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void MIsLinkValid( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void MSetCommunicationEventHandler( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+
+ // Link
+ void LStopCommunication( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void LGetMyName( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void LGetHostName( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void LSend( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+ void LGetString( SbxVariable* pVar, SbxArray* pPar, BOOL bWrite );
+
+ // Interne Member und Methoden
+ CommunicationManagerClientViaSocket *m_pManager;
+ CommunicationLink *m_pLink;
+ BOOL m_bIsManager; // Ist es kein Manager, so ist es ein Link
+
+ // Kram fr Manager
+ DECL_LINK( Open, CommunicationLink* );
+ DECL_LINK( Close, CommunicationLink* );
+ DECL_LINK( Data, CommunicationLink* );
+ void Events( String aType, CommunicationLink* pLink );
+ BOOL m_bCatchOpen;
+ CommunicationLink *m_pNewLink;
+ String m_aEventHandlerName;
+
+ using SbxVariable::GetInfo;
+ // Infoblock auffuellen
+ SbxInfo* GetInfo( short nIdx );
+
+ // Broadcaster Notification
+ virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
+ const SfxHint& rHint, const TypeId& rHintType );
+public:
+ CommunicationWrapper( const String& );
+ CommunicationWrapper( CommunicationLink *pThisLink );
+ ~CommunicationWrapper();
+ // Suchen eines Elements
+ virtual SbxVariable* Find( const String&, SbxClassType );
+
+ CommunicationLink* GetCommunicationLink() { return m_pLink; }
+};
+
+
+// Die dazugehoerige Factory:
+
+class CommunicationFactory : public SbxFactory
+{
+public:
+ virtual SbxObject* CreateObject( const String& );
+};
+
+#endif
diff --git a/automation/source/testtool/cretstrm.cxx b/automation/source/testtool/cretstrm.cxx
new file mode 100644
index 000000000000..a6850b1c2cc4
--- /dev/null
+++ b/automation/source/testtool/cretstrm.cxx
@@ -0,0 +1,73 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+#ifndef _CRetStream_HXX
+#include "cretstrm.hxx"
+#endif
+#include <tools/debug.hxx>
+#include "rcontrol.hxx"
+#include "svcommstream.hxx"
+
+
+SV_IMPL_REF(SbxBase)
+
+CRetStream::CRetStream(SvStream *pIn)
+{
+ pSammel = pIn;
+ delete pCommStream;
+ pCommStream = new SvCommStream( pSammel );
+}
+
+CRetStream::~CRetStream()
+{
+ delete pCommStream;
+}
+
+void CRetStream::Read ( String &aString )
+{
+ comm_UniChar* pStr;
+ USHORT nLenInChars;
+ CmdBaseStream::Read( pStr, nLenInChars );
+
+ aString = String( pStr, nLenInChars );
+ delete [] pStr;
+}
+
+void CRetStream::Read( SbxValue &aValue )
+{
+ *pSammel >> nId;
+ if (nId != BinSbxValue)
+ {
+ DBG_ERROR1( "Falscher Typ im Stream: Erwartet SbxValue, gefunden :%hu", nId );
+ }
+ SbxBaseRef xBase = SbxBase::Load( *pSammel );
+ if ( IS_TYPE( SbxValue, xBase ) )
+ aValue = *PTR_CAST( SbxValue, &xBase );
+}
+
diff --git a/automation/source/testtool/cretstrm.hxx b/automation/source/testtool/cretstrm.hxx
new file mode 100644
index 000000000000..75229bb32cb7
--- /dev/null
+++ b/automation/source/testtool/cretstrm.hxx
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _CRETSTRM_HXX
+#define _CRETSTRM_HXX
+
+#include <tools/stream.hxx>
+#include <basic/sbxvar.hxx>
+
+#include "cmdbasestream.hxx"
+
+class CRetStream : public CmdBaseStream
+{
+ SvStream *pSammel;
+ USHORT nId;
+
+public:
+ CRetStream( SvStream *pIn );
+ ~CRetStream();
+
+ using CmdBaseStream::Read;
+ void Read ( comm_USHORT &nNr ){CmdBaseStream::Read ( nNr );}
+ void Read ( comm_ULONG &nNr ){CmdBaseStream::Read ( nNr );}
+// void Read ( comm_UniChar* &aString, comm_USHORT &nLenInChars ){CmdBaseStream::Read ( aString, nLenInChars );}
+ virtual void Read ( SmartId* &pId ){CmdBaseStream::Read ( pId );}
+ void Read ( comm_BOOL &bBool ){CmdBaseStream::Read ( bBool );}
+// new
+ void Read( String &aString );
+ void Read( SbxValue &aValue );
+};
+
+#endif
diff --git a/automation/source/testtool/filter.pl b/automation/source/testtool/filter.pl
new file mode 100644
index 000000000000..79b7add5c5b3
--- /dev/null
+++ b/automation/source/testtool/filter.pl
@@ -0,0 +1,143 @@
+#!/usr/bin/perl
+#*************************************************************************
+#*
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#************************************************************************/
+
+$debug = "";
+$ctrue = 1;
+$cfalse = 0;
+# reads a block
+# Parameter: FileHandle
+# list of Regular Expressions which terminate the block.
+# for '#ifdef' block would then be ("^#else\$", "^#endif\$")
+
+sub read_block {
+
+ local($file) = @_;
+ print "reading block '$file' ",scalar(@_),"\n" if $debug;
+ while ( <$file> ) {
+ chop;
+ s/\s*$//; # remove trailing whitespaces
+ s/^\s*//; # remove leading whitespaces
+ print "Input : \"$_\"\n" if $debug;
+ s/\/\/.*//; # Remove line comment
+ s/\/\*.*?\*\///g; # remove comments within one line
+ s/\s+/ /g; # Change all whitespace into a single blank
+ s/ *$//; # Remove whitespace at end
+ s/^# /#/; # Change # <command> to #<command>
+
+
+ @line = split(/ /,$_,3);
+
+ $_ = $line[0];
+ if ( $_ && /^#/ ) { # Line starts with '#' -> preprocessor command
+ print "proccessing line: @line\n" if $debug;
+ if (/#define/)
+ {
+ if ( $line[1] =~ /^$namefilter/ )
+ {
+ $mykey = $line[1];
+ $mykey =~ s/^$namefilter//;
+ $count += 1;
+ print OUT "$mykey ", $line[2], "\n";
+ print OUT2 "\t{ \"$mykey\", ", $line[2] ," },\n";
+ }
+ }
+ }
+ }
+ print "Leaving read_block at the end\n" if $debug;
+}
+
+sub convert_path {
+
+ $_ = $_[0];
+ $GUI = $ENV {"GUI"};
+ $use_shell = $ENV {"USE_SHELL"};
+ if ( $GUI eq "WNT" )
+ {
+ if ( defined( $use_shell ) && "$use_shell" eq "4nt" )
+ {
+ s/\//\\/g;
+ }
+ }
+ $_;
+}
+
+# Read a file.
+# first parameter ist the filename
+sub read_file {
+
+ local ($filename,$file) = @_;
+ $file++; # String increment
+ local $TempFileName = &convert_path( $basename."/".$filename );
+ print "reading file $TempFileName as $file\n" if $debug;
+ open($file, $TempFileName) || die "error: Could not open file $TempFileName. ";
+
+ &read_block($file); # read data
+ close($file);
+ print "done reading $filename\n" if $debug;
+}
+
+# main starts here
+
+print &convert_path ("/\n\n\n") if ( $debug );
+
+
+$basename = ".";
+$basename = $ARGV[0] if defined($ARGV[0]);
+
+$filename = "app.hrc";
+$filename = $ARGV[1] if defined($ARGV[1]);
+
+
+$outfilebase = $filename;
+$outfilebase =~ s/\.[^.]+$//; # cut off suffix
+$outfilebase = $ARGV[2] if defined($ARGV[2]);
+
+
+$namefilter = $ARGV[3] if defined($ARGV[3]);
+
+
+print "Generating $outfilebase:\n";
+
+$count = 0;
+
+open(OUT,">$outfilebase");
+open(OUT2,">$outfilebase.hxx");
+print OUT2 "\{\n";
+
+&read_file ($filename,"f00");
+
+print OUT2 "\t{ \"\" ,0 }\n\};\n";
+
+close(OUT);
+close(OUT2);
+
+if ( $count == 0 )
+{
+ die "Error: No Entries Found generating \"$outfilebase.hxx\". Testtool will not work!"
+}
+
diff --git a/automation/source/testtool/httprequest.cxx b/automation/source/testtool/httprequest.cxx
new file mode 100644
index 000000000000..1e45fd1fc976
--- /dev/null
+++ b/automation/source/testtool/httprequest.cxx
@@ -0,0 +1,239 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+#include <stdio.h>
+#include "httprequest.hxx"
+#include <vos/socket.hxx>
+#include <tools/debug.hxx>
+
+
+void HttpRequest::Init()
+{
+ nResultId = 0;
+ aHeader.Erase();
+ aContentType.Erase();
+ delete pStream;
+ pStream = NULL;
+}
+
+HttpRequest::HttpRequest()
+: nStatus( HTTP_INIT )
+, nResultId( 0 )
+, pStream( NULL )
+{}
+
+HttpRequest::~HttpRequest()
+{
+ delete pStream;
+ pStream = NULL;
+}
+
+void HttpRequest::SetRequest( ByteString aHost, ByteString aPath, USHORT nPort )
+{
+ nStatus = HTTP_REQUEST_SET;
+ Init();
+ aRequestHost = aHost;
+ aRequestPath = aPath;
+ nRequestPort = nPort;
+}
+
+void HttpRequest::SetProxy( ByteString aHost, USHORT nPort )
+{
+ nStatus = HTTP_REQUEST_SET;
+ Init();
+ aProxyHost = aHost;
+ nProxyPort = nPort;
+}
+
+BOOL HttpRequest::Execute()
+{
+ nStatus = HTTP_REQUEST_PENDING;
+ Init();
+
+ // Open channel to standard redir host
+ NAMESPACE_VOS(OInetSocketAddr) aConnectAddr;
+
+ if ( aProxyHost.Len() )
+ {
+ aConnectAddr.setAddr( rtl::OUString( UniString( aProxyHost, RTL_TEXTENCODING_UTF8 ) ) );
+ aConnectAddr.setPort( nProxyPort );
+ }
+ else
+ {
+ aConnectAddr.setAddr( rtl::OUString( UniString( aRequestHost, RTL_TEXTENCODING_UTF8 ) ) );
+ aConnectAddr.setPort( nRequestPort );
+ }
+
+ TimeValue aTV;
+ aTV.Seconds = 10; // Warte 10 Sekunden
+ aTV.Nanosec = 0;
+
+ pOutSocket = new NAMESPACE_VOS(OConnectorSocket)();
+ if ( pOutSocket->connect( aConnectAddr, &aTV ) == NAMESPACE_VOS(ISocketTypes::TResult_Ok) )
+ {
+// pOutSocket->setTcpNoDelay( 1 );
+ }
+ else
+ {
+ delete pOutSocket;
+ nStatus = HTTP_REQUEST_ERROR;
+ return FALSE;
+ }
+
+
+ SendString( pOutSocket, "GET " );
+ if ( aProxyHost.Len() )
+ {
+ //GET http://staroffice-doc.germany.sun.com/cgi-bin/htdig/binarycopy.sh?CopyIt=++CopyIt++ HTTP/1.0
+ SendString( pOutSocket, "http://" );
+ SendString( pOutSocket, aRequestHost );
+ SendString( pOutSocket, ":" );
+ SendString( pOutSocket, ByteString::CreateFromInt32( nRequestPort ) );
+ SendString( pOutSocket, aRequestPath );
+ SendString( pOutSocket, " HTTP/1.0\n" );
+
+ SendString( pOutSocket, "Proxy-Connection: Keep-Alive\n" );
+ }
+ else
+ {
+ //GET /cgi-bin/htdig/binarycopy.sh?CopyIt=++CopyIt++ HTTP/1.0
+ SendString( pOutSocket, aRequestPath );
+ SendString( pOutSocket, " HTTP/1.0\n" );
+
+ SendString( pOutSocket, "Connection: Keep-Alive\n" );
+ }
+
+ SendString( pOutSocket, "User-Agent: Mozilla/4.7 [de] (Linux; I)" );
+ SendString( pOutSocket, "Host: " );
+ SendString( pOutSocket, aRequestHost );
+ // Terminate with empty line
+ SendString( pOutSocket, "\n\n" );
+
+
+
+#define BUFFRE_SIZE 0x10000 // 64K Buffer
+ char* pBuffer = new char[ BUFFRE_SIZE ];
+
+ BOOL bWasError = ( nStatus != HTTP_REQUEST_PENDING );
+
+ ULONG nDataRead;
+ pStream = new SvMemoryStream( 0x10000, 0x10000 );
+ while ( !bWasError )
+ {
+ bWasError |= ( BUFFRE_SIZE != ( nDataRead = pOutSocket->read( pBuffer, BUFFRE_SIZE ) ) );
+
+ pStream->Write( pBuffer, nDataRead );
+ }
+
+ delete [] pBuffer;
+ pOutSocket->shutdown();
+ pOutSocket->close();
+
+ pStream->Seek( 0 );
+
+ ByteString aLine;
+ BOOL bInsideHeader = TRUE;
+ while ( bInsideHeader )
+ {
+ pStream->ReadLine( aLine );
+ if ( !aLine.Len() )
+ bInsideHeader = FALSE;
+ else
+ {
+ if ( IsItem( "HTTP/", aLine ) )
+ nResultId = (USHORT)aLine.GetToken( 1, ' ' ).ToInt32();
+ if ( IsItem( "Content-Type:", aLine ) )
+ {
+ aContentType = aLine.Copy( 13 );
+ aContentType.EraseLeadingAndTrailingChars();
+ }
+ aHeader += aLine;
+ aHeader += "\n";
+ }
+ }
+
+ if ( nStatus == HTTP_REQUEST_PENDING )
+ {
+ nStatus = HTTP_REQUEST_DONE;
+ return TRUE;
+ }
+ else
+ {
+ nStatus = HTTP_REQUEST_ERROR;
+ return FALSE;
+ }
+}
+/*
+HTTP/1.1 200 OK
+Date: Tue, 22 Jan 2002 14:16:20 GMT
+Server: Apache/1.3.14 (Unix) (SuSE/Linux) mod_throttle/3.0 mod_layout/1.0 mod_f
+astcgi/2.2.2 mod_jk
+Set-Cookie2: JSESSIONID=ffkpgb7tm1;Version=1;Discard;Path="/bugtracker"
+Set-Cookie: JSESSIONID=ffkpgb7tm1;Path=/bugtracker
+Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.0; Linux
+ 2.4.0-4GB i386; java.vendor=Sun Microsystems Inc.)
+Connection: close
+Content-Type: text/xml; charset=ISO-8859-1
+ */
+void HttpRequest::SendString( vos::OStreamSocket* pSocket , ByteString aText )
+{
+ if ( nStatus == HTTP_REQUEST_PENDING )
+ pSocket->write( aText.GetBuffer(), aText.Len() );
+}
+
+BOOL HttpRequest::IsItem( ByteString aItem, ByteString aLine )
+{
+ return aItem.Match( aLine ) == STRING_MATCH;
+}
+
+
+void HttpRequest::Abort()
+{
+ if ( pOutSocket )
+ {
+ nStatus = HTTP_REQUEST_ERROR;
+ pOutSocket->shutdown();
+ pOutSocket->close();
+ }
+}
+
+
+
+
+SvMemoryStream* HttpRequest::GetBody()
+{
+ return pStream;
+}
+
+USHORT HttpRequest::GetStatus()
+{
+ return nStatus;
+}
+
diff --git a/automation/source/testtool/httprequest.hxx b/automation/source/testtool/httprequest.hxx
new file mode 100644
index 000000000000..44234239b81f
--- /dev/null
+++ b/automation/source/testtool/httprequest.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _HTTPREQUEST_HXX_
+#define _HTTPREQUEST_HXX_
+
+#define HTTP_INIT 0
+#define HTTP_REQUEST_SET 1
+#define HTTP_REQUEST_PENDING 2
+#define HTTP_REQUEST_DONE 3
+#define HTTP_REQUEST_ERROR 4
+
+#include <tools/string.hxx>
+#include <tools/stream.hxx>
+
+namespace vos
+{
+ class OStreamSocket;
+ class OConnectorSocket;
+}
+
+class HttpRequest
+{
+ ByteString aRequestPath;
+ ByteString aRequestHost;
+ USHORT nRequestPort;
+ ByteString aProxyHost;
+ USHORT nProxyPort;
+
+ USHORT nStatus;
+ vos::OConnectorSocket *pOutSocket;
+
+ ByteString aHeader;
+ USHORT nResultId;
+ ByteString aContentType;
+ SvMemoryStream* pStream;
+
+ void SendString( vos::OStreamSocket* pSocket, ByteString aText );
+ BOOL IsItem( ByteString aItem, ByteString aLine );
+ void Init();
+public:
+ HttpRequest();
+ ~HttpRequest();
+
+ void SetRequest( ByteString aHost, ByteString aPath, USHORT nPort );
+ void SetProxy( ByteString aHost, USHORT nPort );
+
+ BOOL Execute();
+ void Abort();
+
+ ByteString GetHeader() { return aHeader; }
+ SvMemoryStream* GetBody();
+
+ ByteString GetContentType() { return aContentType; }
+ USHORT GetResultId() { return nResultId; }
+
+ USHORT GetStatus();
+
+};
+
+#endif
diff --git a/automation/source/testtool/makefile.mk b/automation/source/testtool/makefile.mk
new file mode 100644
index 000000000000..962f9d6e2694
--- /dev/null
+++ b/automation/source/testtool/makefile.mk
@@ -0,0 +1,114 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ=..$/..
+
+PRJNAME=automation
+TARGET=testtool
+
+# --- Settings ------------------------------------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Allgemein ------------------------------------------------------------
+
+OBJFILES = \
+ $(OBJ)$/cmdstrm.obj \
+ $(OBJ)$/cretstrm.obj \
+ $(OBJ)$/objtest.obj \
+ $(OBJ)$/tcommuni.obj \
+ $(OBJ)$/comm_bas.obj \
+ $(OBJ)$/httprequest.obj \
+
+
+EXCEPTIONSFILES= \
+ $(OBJ)$/tcommuni.obj \
+ $(OBJ)$/cmdstrm.obj \
+ $(OBJ)$/objtest.obj
+
+HXXFILES = $(INCCOM)$/keycodes.hxx \
+ $(INCCOM)$/classes.hxx \
+ $(INCCOM)$/r_cmds.hxx \
+ $(INCCOM)$/res_type.hxx
+
+.IF "$(GUI)" == "WNT"
+OBJFILES += $(OBJ)$/sysdir_win.obj
+OBJFILES += $(OBJ)$/registry_win.obj
+.ENDIF
+# --- Targets ------------------------------------------------------------
+
+.INCLUDE : target.mk
+
+
+$(OBJFILES) : $(HXXFILES)
+$(HXXFILES) : $(MISC)$/xfilter.pl
+
+
+$(INCCOM)$/keycodes.hxx : $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/vcl$/keycodes.hxx \
+ $(MISC)$/xfilter.pl
+ $(PERL) $(MISC)$/xfilter.pl $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT) vcl$/keycodes.hxx $(INCCOM)$/keycodes KEY_
+
+$(INCCOM)$/classes.hxx : ..$/inc$/rcontrol.hxx \
+ $(MISC)$/xfilter.pl
+ $(PERL) $(MISC)$/xfilter.pl ..$/inc rcontrol.hxx $(INCCOM)$/classes M_
+
+$(INCCOM)$/r_cmds.hxx : ..$/inc$/rcontrol.hxx \
+ $(MISC)$/xfilter.pl
+ $(PERL) $(MISC)$/xfilter.pl ..$/inc rcontrol.hxx $(INCCOM)$/r_cmds RC_
+
+$(INCCOM)$/res_type.hxx : $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT)$/tools$/wintypes.hxx \
+ $(MISC)$/xfilter.pl
+ $(PERL) $(MISC)$/xfilter.pl $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT) tools$/wintypes.hxx $(INCCOM)$/res_type WINDOW_
+
+
+
+$(MISC)$/xfilter.pl : filter.pl
+.IF "$(GUI)" == "UNX" || "$(USE_SHELL)"!="4nt"
+ tr -d "\015" < filter.pl > $(MISC)$/xfilter.pl
+ chmod 664 $(MISC)$/xfilter.pl
+.ELSE
+ $(COPY) filter.pl $(MISC)$/xfilter.pl
+ attrib -r $(MISC)$/xfilter.pl
+.ENDIF
+
+
+
+.IF "$(GUI)"=="UNX"
+INIFILESUFFIX=rc
+BRANDPATH=none
+.ELIF "$(GUI)"=="WNT" || "$(GUI)"=="OS2"
+INIFILESUFFIX=.ini
+BRANDPATH=..
+.END
+
+$(BIN)$/testtool$(INIFILESUFFIX): testtool.ini
+ $(SED) -e s/$(EMQ)!INIFILESUFFIX$(EMQ)!/$(INIFILESUFFIX)/ \
+ -e s/$(EMQ)!BRANDPATH$(EMQ)!/$(BRANDPATH)/ < $< > $@
+
+ALLTAR: \
+ $(BIN)$/testtool$(INIFILESUFFIX)
+
diff --git a/automation/source/testtool/objtest.cxx b/automation/source/testtool/objtest.cxx
new file mode 100644
index 000000000000..461dff80b13d
--- /dev/null
+++ b/automation/source/testtool/objtest.cxx
@@ -0,0 +1,4266 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_automation.hxx"
+
+/*#include <com/sun/star/devtools/XIServerProxy.hpp>
+#include <com/sun/star/devtools/XInformationClient.hpp>
+using namespace com::sun::star::devtools;
+*/
+#ifdef OS2
+#define INCL_DOS
+//#include <vcl/sysdep.hxx>
+#ifndef _SVPM_H
+#include <svpm.h>
+#endif
+#endif
+
+#include "sysdir_win.hxx"
+#include "registry_win.hxx"
+#include "sttresid.hxx"
+#include <osl/file.hxx>
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _SOUND_HXX //autogen
+#include <vcl/sound.hxx>
+#endif
+#include <tools/config.hxx>
+#ifndef _APP_HXX //autogen
+#include <vcl/svapp.hxx>
+#endif
+#include <svtools/stringtransfer.hxx>
+#include <svl/brdcst.hxx>
+//#ifndef _SBXCLASS_HXX //autogen
+#include <basic/sbx.hxx>
+//#endif
+#include <com/sun/star/uno/Any.hxx>
+#ifndef _COM_SUN_STAR_FRAME_XDESKTOP_HXX_
+#include <com/sun/star/frame/XDesktop.hpp>
+#endif
+#include <comphelper/processfactory.hxx>
+#include <com/sun/star/bridge/XBridgeFactory.hpp>
+#include <com/sun/star/connection/XConnector.hpp>
+#include <com/sun/star/connection/XConnection.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XNamingService.hpp>
+
+#include <cppuhelper/servicefactory.hxx>
+
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::frame;
+using namespace com::sun::star::bridge;
+using namespace com::sun::star::connection;
+using namespace rtl;
+
+
+#include <svtools/svmedit.hxx>
+
+#ifdef UNX
+#include <unistd.h> // readlink
+#include <errno.h>
+#endif
+
+#include <basic/sbuno.hxx>
+
+//#include <basic/basrid.hxx>
+#include <basic/basicrt.hxx>
+#ifndef _BASIC_TTRESHLP_HXX
+#include <basic/ttstrhlp.hxx>
+#endif
+#include "tcommuni.hxx"
+#include "comm_bas.hxx"
+#include <cretstrm.hxx>
+
+#include "objtest.hxx"
+#include "rcontrol.hxx"
+
+#include <basic/testtool.hrc>
+#include <basic/ttmsg.hrc>
+
+#include <basic/mybasic.hxx>
+#include <basic/testtool.hxx>
+#include <basic/sbstar.hxx>
+
+#include <algorithm>
+
+#ifndef SBX_VALUE_DECL_DEFINED
+#define SBX_VALUE_DECL_DEFINED
+SV_DECL_REF(SbxValue)
+#endif
+SV_IMPL_REF(SbxValue)
+
+static CommunicationFactory aComManFac;
+
+#define cMyDelim ' '
+#define P_FEHLERLISTE pFehlerListe
+#define KEEP_SEQUENCES 100 // Keep Names of last 100 Calls
+
+
+ControlDefLoad __READONLY_DATA Controls::arClasses [] =
+#include "classes.hxx"
+CNames *Controls::pClasses = NULL;
+
+ControlDefLoad __READONLY_DATA TestToolObj::arR_Cmds [] =
+#include "r_cmds.hxx"
+CNames *TestToolObj::pRCommands = NULL;
+CErrors *TestToolObj::pFehlerListe = NULL; // Hier werden die Fehler des Testtools gespeichert
+
+
+DBG_NAME( ControlItem )
+DBG_NAME( ControlDef )
+
+ControlItem::ControlItem( const sal_Char *Name, SmartId aUIdP )
+{
+DBG_CTOR(ControlItem,0);
+ InitData();
+ pData->Kurzname.AssignAscii( Name );
+ pData->aUId = aUIdP;
+}
+
+ControlItem::ControlItem( const String &Name, SmartId aUIdP )
+{
+DBG_CTOR(ControlItem,0);
+ InitData();
+ pData->Kurzname = Name;
+ pData->aUId = aUIdP;
+}
+
+/*ControlItem::ControlItem( const String &Name, const String &URL, const URLType aType )
+{
+DBG_CTOR(ControlItem,0);
+ InitData();
+ pData->Kurzname = Name;
+ pData->aURL = URL;
+ pData->nUId = aType;
+}
+
+ControlItem::ControlItem( const String &Name, const String &URL, const ULONG nUId )
+{
+DBG_CTOR(ControlItem,0);
+ InitData();
+ pData->Kurzname = Name;
+ pData->aURL = URL;
+ pData->nUId = nUId;
+}
+
+ControlItem::ControlItem( const char *Name, const String &URL, const ULONG nUId )
+{
+DBG_CTOR(ControlItem,0);
+ InitData();
+ pData->Kurzname.AssignAscii( Name );
+ pData->aURL = URL;
+ pData->nUId = nUId;
+} */
+
+
+ControlItem::ControlItem( ControlData *pDataP )
+{
+DBG_CTOR(ControlItem,0);
+ pData = pDataP;
+}
+
+ControlSon::~ControlSon()
+{
+ if (pSons)
+ {
+ delete pSons;
+ pSons = NULL;
+ }
+}
+
+ControlItemSon::ControlItemSon(const String &Name, SmartId aUIdP )
+: ControlItem( Name, aUIdP )
+{}
+
+/*ControlItemSon::ControlItemSon(const String &Name, const String &URL, const URLType aType )
+: ControlItem( Name, URL, aType )
+{}
+
+ControlItemSon::ControlItemSon(const String &Name, const String &URL, const ULONG nUId )
+: ControlItem( Name, URL, nUId )
+{}
+
+ControlItemSon::ControlItemSon(const char *Name, const String &URL, const ULONG nUId )
+: ControlItem( Name, URL, nUId )
+{}*/
+
+
+
+BOOL ControlDef::operator < (const ControlItem &rPar)
+{
+ return pData->Kurzname.CompareIgnoreCaseToAscii(rPar.pData->Kurzname) == COMPARE_LESS;
+}
+
+BOOL ControlDef::operator == (const ControlItem &rPar)
+{
+ return pData->Kurzname.CompareIgnoreCaseToAscii(rPar.pData->Kurzname) == COMPARE_EQUAL;
+}
+
+void ControlDef::Write( SvStream &aStream )
+{
+ if ( pSons )
+ aStream.WriteByteString( String('*').Append( pData->Kurzname ), RTL_TEXTENCODING_UTF8 );
+ else
+ aStream.WriteByteString( pData->Kurzname, RTL_TEXTENCODING_UTF8 );
+ aStream << ((USHORT)pData->aUId.HasNumeric());
+ if ( pData->aUId.HasString() )
+ aStream.WriteByteString( pData->aUId.GetStr(), RTL_TEXTENCODING_UTF8 );
+ else
+ aStream << static_cast<comm_ULONG>(pData->aUId.GetNum()); //GetNum() ULONG != comm_ULONG on 64bit
+ if ( pSons )
+ for ( USHORT i = 0 ; pSons->Count() > i ; i++ )
+ ((ControlDef*)(*pSons)[i])->Write(aStream);
+}
+
+ControlDef::ControlDef(const String &Name, SmartId aUIdP )
+: ControlItemSon( Name, aUIdP)
+{
+ DBG_CTOR(ControlDef,0);
+}
+
+/*ControlDef::ControlDef(const String &Name, const String &URL, const URLType aType )
+: ControlItemSon( Name, URL, aType )
+{
+ DBG_CTOR(ControlDef,0);
+} */
+
+ControlDef::ControlDef(const String &aOldName, const String &aNewName, ControlDef *pOriginal, BOOL bWithSons )
+: ControlItemSon("", pOriginal->pData->aUId)
+{
+ DBG_CTOR(ControlDef,0);
+ if ( pOriginal->pData->Kurzname == aOldName )
+ pData->Kurzname = aNewName;
+ else
+ pData->Kurzname = pOriginal->pData->Kurzname;
+
+ if ( bWithSons && pOriginal->pSons )
+ {
+ pSons = new CNames();
+ for ( USHORT i = 0; i < pOriginal->pSons->Count() ; i++)
+ {
+ ControlDef *pNewDef;
+ pNewDef = new ControlDef( aOldName, aNewName, pOriginal->SonGetObject(i) ,TRUE );
+ if (! SonInsert(pNewDef))
+ {
+ DBG_ERROR("Name Doppelt im CopyConstructor. Neuer Name = Controlname!!");
+ delete pNewDef;
+ }
+ }
+
+ }
+ else
+ pSons = NULL;
+}
+
+BOOL ControlItemUId::operator < (const ControlItem &rPar)
+{
+ return pData->aUId < rPar.pData->aUId;
+}
+
+BOOL ControlItemUId::operator == (const ControlItem &rPar)
+{
+ return pData->aUId == rPar.pData->aUId;
+}
+
+SV_IMPL_OP_PTRARR_SORT( CNames, ControlItem* )
+
+void CRevNames::Insert( String aName, SmartId aUId, ULONG nSeq )
+{
+ ControlItem *pRN = new ReverseName(aName,aUId,nSeq);
+ USHORT nPos;
+ if ( Seek_Entry(pRN,&nPos) )
+ DeleteAndDestroy(nPos);
+
+ if ( !CNames::C40_PTR_INSERT( ControlItem, pRN) )
+ {
+ DBG_ERROR("Interner Fehler beim Speichern der Lokalen KurzNamen");
+ delete pRN;
+ }
+
+}
+
+String CRevNames::GetName( SmartId aUId )
+{
+ ReverseName *pRN = new ReverseName(UniString(),aUId,0);
+ USHORT nPos;
+ BOOL bSeekOK = Seek_Entry(pRN,&nPos);
+
+ delete pRN;
+ if ( bSeekOK )
+ return GetObject(nPos)->pData->Kurzname;
+ else
+ {
+ if ( aUId.Matches( UID_ACTIVE ) )
+ return CUniString("Active");
+ else
+ return GEN_RES_STR1( S_NAME_NOT_THERE, aUId.GetText() );
+ }
+}
+
+void CRevNames::Invalidate ( ULONG nSeq )
+{
+ USHORT i;
+ for (i = 0; i < Count() ;)
+ {
+ if (((ReverseName*)GetObject(i))->LastSequence < nSeq)
+ DeleteAndDestroy(i);
+ else
+ i++;
+ }
+}
+
+
+SV_IMPL_PTRARR(CErrors, ErrorEntry*)
+
+
+SbxTransportMethod::SbxTransportMethod( SbxDataType DT )
+: SbxMethod(CUniString("Dummy"),DT)
+{
+ nValue = 0;
+}
+
+
+TestToolObj::TestToolObj( String aName, String aFilePath ) // Interner Aufruf
+: SbxObject( aName )
+, bUseIPC(FALSE)
+, bReturnOK(TRUE)
+, nSequence(KEEP_SEQUENCES)
+, ProgPath()
+, IsBlock(FALSE)
+, SingleCommandBlock(TRUE)
+, m_pControls(NULL)
+, m_pNameKontext(NULL)
+, m_pSIds(NULL)
+, m_pReverseSlots(NULL)
+, m_pReverseControls(NULL)
+, m_pReverseControlsSon(NULL)
+, m_pReverseUIds(NULL)
+, pCommunicationManager(NULL)
+, aDialogHandlerName()
+, nWindowHandlerCallLevel(0)
+, nIdleCount(0)
+{
+ pImpl = new ImplTestToolObj;
+ pImpl->ProgParam = String();
+ pImpl->aFileBase = DirEntry(aFilePath);
+// pImpl->aLogFileBase = DirEntry();
+ pImpl->aHIDDir = DirEntry(aFilePath);
+ pImpl->bIsStart = FALSE;
+ pImpl->pMyBasic = NULL;
+
+ pImpl->aServerTimeout = Time(0,1,00); // 1:00 Minuten fest
+ InitTestToolObj();
+}
+
+TestToolObj::TestToolObj( String aName, MyBasic* pBas ) // Aufruf im Testtool
+: SbxObject( aName )
+, bUseIPC(TRUE)
+, bReturnOK(TRUE)
+, nSequence(KEEP_SEQUENCES)
+, ProgPath()
+, IsBlock(FALSE)
+, SingleCommandBlock(TRUE)
+, m_pControls(NULL)
+, m_pNameKontext(NULL)
+, m_pSIds(NULL)
+, m_pReverseSlots(NULL)
+, m_pReverseControls(NULL)
+, m_pReverseControlsSon(NULL)
+, m_pReverseUIds(NULL)
+, pCommunicationManager(NULL)
+, aDialogHandlerName()
+, nWindowHandlerCallLevel(0)
+, nIdleCount(0)
+{
+ pImpl = new ImplTestToolObj;
+ pImpl->ProgParam = String();
+ pImpl->bIsStart = FALSE;
+ pImpl->pMyBasic = pBas;
+
+ LoadIniFile();
+ InitTestToolObj();
+
+ pCommunicationManager = new CommunicationManagerClientViaSocketTT();
+ pCommunicationManager->SetDataReceivedHdl( LINK( this, TestToolObj, ReturnResultsLink ));
+}
+
+void TestToolObj::LoadIniFile() // Laden der IniEinstellungen, die durch den ConfigDialog ge�ndert werden k�nnen
+{
+#define GETSET(aVar, KeyName, Dafault) \
+ { \
+ ByteString __##aVar##__; \
+ __##aVar##__ = aConf.ReadKey(KeyName); \
+ if ( !__##aVar##__.Len() ) \
+ { \
+ __##aVar##__ = Dafault; \
+ aConf.WriteKey(KeyName, __##aVar##__); \
+ } \
+ aVar = UniString( __##aVar##__, RTL_TEXTENCODING_UTF8 );\
+ }
+
+#define NEWOLD( NewKey, OldKey ) \
+ { \
+ ByteString aValue; \
+ if ( ( (aValue = aConf.ReadKey( OldKey )).Len() ) && !aConf.ReadKey( NewKey ).Len() ) \
+ aConf.WriteKey( NewKey, aValue ); \
+ }
+
+
+ Config aConf(Config::GetConfigName( Config::GetDefDirectory(), CUniString("testtool") ));
+ aConf.SetGroup("Misc");
+ ByteString aCurrentProfile = aConf.ReadKey( "CurrentProfile", "Path" );
+ aConf.SetGroup( aCurrentProfile );
+
+ NEWOLD( "BaseDir", "Basisverzeichnis" )
+ String aFB;
+ GETSET( aFB, "BaseDir", "" );
+ pImpl->aFileBase = DirEntry(aFB);
+
+ // remove old keys
+ if ( aConf.ReadKey("KeyCodes + Classes").Len() != 0 ||
+ aConf.ReadKey("KeyCodes + Classes + Res_Type").Len() != 0 )
+ {
+ aConf.DeleteKey("KeyCodes + Classes + Res_Type");
+ aConf.DeleteKey("KeyCodes + Classes");
+ }
+
+ NEWOLD( "LogBaseDir", "LogBasisverzeichnis" )
+ String aLFB;
+ GETSET( aLFB, "LogBaseDir", ByteString( aFB, RTL_TEXTENCODING_UTF8 ) );
+ pImpl->aLogFileBase = DirEntry(aLFB);
+
+ NEWOLD( "HIDDir", "HIDVerzeichnis" )
+ String aHID;
+ GETSET( aHID, "HIDDir", "" );
+ pImpl->aHIDDir = DirEntry(aHID);
+
+
+ aConf.SetGroup("Misc");
+
+ String aST;
+ GETSET( aST, "ServerTimeout", ByteString::CreateFromInt64(Time(0,0,45).GetTime()) ); // 45 Sekunden Initial
+ pImpl->aServerTimeout = Time(ULONG(aST.ToInt64()));
+
+ String aSOSE;
+ aCurrentProfile = aConf.ReadKey( "CurrentProfile", "Misc" );
+ aConf.SetGroup( aCurrentProfile );
+ GETSET( aSOSE, "StopOnSyntaxError", "0" );
+ pImpl->bStopOnSyntaxError = aSOSE.EqualsAscii("1");
+
+
+ aConf.SetGroup("GUI Platform");
+
+ String aGP;
+ ByteString abGP;
+#ifdef WNT
+ abGP.Append( "501" ); // WinXP
+#elif defined SOLARIS && defined SPARC
+ abGP.Append( "01" ); // Solaris SPARC
+#elif defined SCO
+ abGP.Append( "02" ); // SCO UNIX
+#elif defined LINUX && defined INTEL
+ abGP.Append( "03" ); // Linux
+#elif defined AIX
+ abGP.Append( "04" );
+#elif defined SOLARIS && defined INTEL
+ abGP.Append( "05" ); // Solaris x86
+#elif defined HPUX
+ abGP.Append( "07" );
+#elif defined FREEBSD
+ abGP.Append( "08" );
+#elif defined MACOSX
+ abGP.Append( "12" );
+#elif defined LINUX && defined PPC
+ abGP.Append( "13" );
+#elif defined NETBSD
+ abGP.Append( "14" );
+#elif defined LINUX && defined X86_64
+ abGP.Append( "15" ); // Linux x86-64
+#elif defined LINUX && defined SPARC
+ abGP.Append( "16" ); // Linux SPARC
+#elif defined OS2
+ abGP.Append( "17" );
+#elif defined LINUX && defined MIPS
+ abGP.Append( "18" ); // Linux MIPS
+#elif defined LINUX && defined ARM
+ abGP.Append( "19" ); // Linux ARM
+#elif defined LINUX && defined IA64
+ abGP.Append( "20" ); // Linux ia64
+#elif defined LINUX && defined S390
+ abGP.Append( "21" ); // Linux S390
+#elif defined LINUX && defined HPPA
+ abGP.Append( "22" ); // Linux PA-RISC
+#else
+#error ("unknown platform. please request an ID for your platform on qa/dev")
+#endif
+ GETSET( aGP, "Current", abGP );
+
+// #i68804# Write default Communication section to testtoolrc/.ini
+// this is not fastest but too keep defaultsettings in one place in the code
+ GetHostConfig();
+ GetTTPortConfig();
+ GetUnoPortConfig();
+}
+
+#define MAKE_TT_KEYWORD( cName, aType, aResultType, nID ) \
+{ \
+ SbxVariableRef pMeth; \
+ pMeth = Make( CUniString(cName), aType, aResultType ); \
+ pMeth->SetUserData( nID ); \
+}
+
+// SetUserData mu irgendwas sein, sonst wird es im Find rausgefiltert!!!
+#define MAKE_USHORT_CONSTANT(cName, nValue) \
+ { \
+ SbxProperty *pVal = new SbxProperty( CUniString( cName) , SbxINTEGER ); \
+ pVal->PutInteger( nValue ) ; \
+ pVal->SetUserData( 32000 ); \
+ Insert( pVal ); \
+ }
+
+#define RTLNAME "@SBRTL" // copied from basic/source/classes/sb.cxx
+
+void TestToolObj::InitTestToolObj()
+{
+ pImpl->nNumBorders = 0; // F�r Profiling mit k�stchen
+
+ pImpl->nMinRemoteCommandDelay = 0;
+ pImpl->nMaxRemoteCommandDelay = 0;
+ pImpl->bDoRemoteCommandDelay = FALSE;
+
+ pImpl->bLnaguageExtensionLoaded= FALSE;
+ pImpl->pTTSfxBroadcaster = NULL;
+
+ pImpl->nErrorCount = 0;
+ pImpl->nWarningCount = 0;
+ pImpl->nQAErrorCount = 0;
+ pImpl->nIncludeFileWarningCount = 0;
+
+ pImpl->xErrorList = new SbxDimArray( SbxSTRING );
+ pImpl->xWarningList = new SbxDimArray( SbxSTRING );
+ pImpl->xQAErrorList = new SbxDimArray( SbxSTRING );
+ pImpl->xIncludeFileWarningList = new SbxDimArray( SbxSTRING );
+
+ pImpl->nTestCaseLineNr = 0;
+
+ pImpl->bEnableQaErrors = TRUE;
+ pImpl->bDebugFindNoErrors = FALSE;
+
+ pImpl->pChildEnv = new Environment;
+
+ if (!pFehlerListe)
+ pFehlerListe = new CErrors; // Vor allem anderen. Wer weiss, wer alles einen Fehler ausl�st.
+
+ In = new CmdStream();
+
+ pShortNames = new CRevNames;
+
+ pImpl->pHttpRequest = NULL;
+
+// overwrite standard "wait" method, cause we can do better than that!!
+// Insert Object into SbiStdObject but change listening.
+ SbxVariable* pRTL = pImpl->pMyBasic->Find( CUniString(RTLNAME), SbxCLASS_DONTCARE );
+ SbxObject* pRTLObject = PTR_CAST( SbxObject, pRTL );
+ if ( pRTLObject )
+ {
+ SbxVariableRef pWait;
+ pWait = pRTLObject->Make( CUniString("Wait"), SbxCLASS_METHOD, SbxNULL );
+ pWait->SetUserData( ID_Wait );
+ // change listener here
+ pRTLObject->EndListening( pWait->GetBroadcaster(), TRUE );
+ StartListening( pWait->GetBroadcaster(), TRUE );
+ }
+ else
+ {
+ DBG_ERROR("Testtool: Could not replace Wait method");
+ }
+
+ MAKE_TT_KEYWORD( "Kontext", SbxCLASS_METHOD, SbxNULL, ID_Kontext );
+ MAKE_TT_KEYWORD( "GetNextError", SbxCLASS_VARIABLE, SbxVARIANT, ID_GetError );
+ MAKE_TT_KEYWORD( "Start", SbxCLASS_METHOD, SbxSTRING, ID_Start );
+// pMeth = Make( "Kill", SbxCLASS_METHOD, SbxNULL );
+// pMeth->SetUserData( ID_Kill );
+ /* pMeth = Make( "TestReset", SbxCLASS_METHOD, SbxNULL );
+ pMeth->SetUserData( ID_Reset );*/
+ MAKE_TT_KEYWORD( "Use", SbxCLASS_METHOD, SbxNULL, ID_Use );
+ MAKE_TT_KEYWORD( "StartUse", SbxCLASS_METHOD, SbxNULL, ID_StartUse );
+ MAKE_TT_KEYWORD( "FinishUse", SbxCLASS_METHOD, SbxNULL, ID_FinishUse );
+
+ MAKE_TT_KEYWORD( "CaseLog", SbxCLASS_METHOD, SbxNULL, ID_CaseLog );
+ MAKE_TT_KEYWORD( "ExceptLog", SbxCLASS_METHOD, SbxNULL, ID_ExceptLog );
+ MAKE_TT_KEYWORD( "PrintLog", SbxCLASS_METHOD, SbxNULL, ID_PrintLog );
+ MAKE_TT_KEYWORD( "WarnLog", SbxCLASS_METHOD, SbxNULL, ID_WarnLog );
+ MAKE_TT_KEYWORD( "ErrorLog", SbxCLASS_METHOD, SbxNULL, ID_ErrorLog );
+ MAKE_TT_KEYWORD( "QAErrorLog", SbxCLASS_METHOD, SbxNULL, ID_QAErrorLog );
+ MAKE_TT_KEYWORD( "EnableQaErrors", SbxCLASS_PROPERTY, SbxBOOL, ID_EnableQaErrors );
+ MAKE_TT_KEYWORD( "MaybeAddErr", SbxCLASS_METHOD, SbxNULL, ID_MaybeAddErr );
+ MAKE_TT_KEYWORD( "ClearError", SbxCLASS_METHOD, SbxNULL, ID_ClearError );
+ MAKE_TT_KEYWORD( "SaveIDs", SbxCLASS_METHOD, SbxBOOL, ID_SaveIDs );
+ MAKE_TT_KEYWORD( "AutoExecute", SbxCLASS_PROPERTY, SbxBOOL, ID_AutoExecute ); // Achtung! PROPERTY Also eine Variable
+ MAKE_TT_KEYWORD( "Execute", SbxCLASS_METHOD, SbxNULL, ID_Execute );
+ MAKE_TT_KEYWORD( "StopOnSyntaxError", SbxCLASS_PROPERTY, SbxBOOL, ID_StopOnSyntaxError );
+
+/* Dialog Handler werden gebraucht, wenn im internen Testtool ein Dialog
+ hochgerissen wird. Nach versenden der Remote-Kommandos wird IdleHandler aktiviert.
+ Er testet, ob das Reschedule zum WaitForAnswer zur�ckkehrt. Bleibt das aus, so
+ wird erst der RemoteHandler zur�ckgesetzt und dann die Handler-Sub im Basic
+ gerufen.(Entkoppelt �ber PostUserEvent.)
+
+ In returndaten_verarbeiten wird flag f�r ausf�hrung des n�chsten remote-befehls
+ r�ckgesetzt. Der Handler wird damit auch entwertet. Er gilt also nur f�r den
+ n�chsten Remotebefehl.
+*/
+ MAKE_TT_KEYWORD( "DialogHandler", SbxCLASS_METHOD, SbxNULL, ID_DialogHandler );
+
+ MAKE_TT_KEYWORD( "GetUnoApp", SbxCLASS_METHOD, SbxOBJECT, ID_GetUnoApp );
+ MAKE_TT_KEYWORD( "GetIServer", SbxCLASS_METHOD, SbxOBJECT, ID_GetIServer );
+
+ MAKE_TT_KEYWORD( "RemoteCommandDelay", SbxCLASS_METHOD, SbxNULL, ID_RemoteCommandDelay );
+
+ MAKE_TT_KEYWORD( "GetApplicationPath", SbxCLASS_METHOD, SbxSTRING, ID_GetApplicationPath );
+ MAKE_TT_KEYWORD( "GetCommonApplicationPath", SbxCLASS_METHOD, SbxSTRING, ID_GetCommonApplicationPath );
+ MAKE_TT_KEYWORD( "MakeIniFileName", SbxCLASS_METHOD, SbxSTRING, ID_MakeIniFileName );
+
+/// active constants returning error and warning count
+ MAKE_TT_KEYWORD( "GetErrorCount", SbxCLASS_METHOD, SbxULONG, ID_GetErrorCount );
+ MAKE_TT_KEYWORD( "GetWarningCount", SbxCLASS_METHOD, SbxULONG, ID_GetWarningCount );
+ MAKE_TT_KEYWORD( "GetQAErrorCount", SbxCLASS_METHOD, SbxULONG, ID_GetQAErrorCount );
+ MAKE_TT_KEYWORD( "GetUseFileWarningCount", SbxCLASS_METHOD, SbxULONG, ID_GetUseFileWarningCount );
+
+ MAKE_TT_KEYWORD( "GetErrorList", SbxCLASS_METHOD, SbxOBJECT, ID_GetErrorList );
+ MAKE_TT_KEYWORD( "GetWarningList", SbxCLASS_METHOD, SbxOBJECT, ID_GetWarningList );
+ MAKE_TT_KEYWORD( "GetQAErrorList", SbxCLASS_METHOD, SbxOBJECT, ID_GetQAErrorList );
+ MAKE_TT_KEYWORD( "GetUseFileWarningList", SbxCLASS_METHOD, SbxOBJECT, ID_GetUseFileWarningList );
+
+ MAKE_TT_KEYWORD( "GetTestCaseName", SbxCLASS_METHOD, SbxSTRING, ID_GetTestCaseName );
+ MAKE_TT_KEYWORD( "GetTestCaseFileName", SbxCLASS_METHOD, SbxSTRING, ID_GetTestCaseFileName );
+ MAKE_TT_KEYWORD( "GetTestCaseLineNr", SbxCLASS_METHOD, SbxUSHORT, ID_GetTestCaseLineNr );
+
+ MAKE_TT_KEYWORD( "SetChildEnv", SbxCLASS_METHOD, SbxNULL, ID_SetChildEnv );
+ MAKE_TT_KEYWORD( "GetChildEnv", SbxCLASS_METHOD, SbxSTRING, ID_GetChildEnv );
+
+ MAKE_TT_KEYWORD( "GetLinkDestination", SbxCLASS_METHOD, SbxSTRING, ID_GetLinkDestination );
+ MAKE_TT_KEYWORD( "GetRegistryValue", SbxCLASS_METHOD, SbxSTRING, ID_GetRegistryValue );
+
+ MAKE_TT_KEYWORD( "KillApp", SbxCLASS_METHOD, SbxNULL, ID_KillApp );
+
+ MAKE_TT_KEYWORD( "HTTPSend", SbxCLASS_METHOD, SbxUSHORT, ID_HTTPSend );
+ MAKE_TT_KEYWORD( "HTTPSetProxy", SbxCLASS_METHOD, SbxNULL, ID_HTTPSetProxy );
+
+ // Load the Remote Commands from list
+ if ( !pRCommands ) // Ist static, wird also nur einmal geladen
+ ReadFlatArray( arR_Cmds, pRCommands );
+ USHORT i;
+ for ( i = 0 ; i < pRCommands->Count() ; i++ )
+ {
+ SbxTransportMethod *pMeth = new SbxTransportMethod( SbxVARIANT );
+ pMeth->SetName( pRCommands->GetObject( i )->pData->Kurzname );
+ pMeth->SetUserData( ID_RemoteCommand );
+ pMeth->nValue = pRCommands->GetObject( i )->pData->aUId.GetNum();
+ Insert( pMeth );
+ StartListening( pMeth->GetBroadcaster(), TRUE );
+ }
+
+// Konstanten f�r SetControlType
+ MAKE_USHORT_CONSTANT("CTBrowseBox",CONST_CTBrowseBox);
+ MAKE_USHORT_CONSTANT("CTValueSet",CONST_CTValueSet);
+
+// Konstanten f�r das Alignment des gesuchten Splitters
+ MAKE_USHORT_CONSTANT("AlignLeft",CONST_ALIGN_LEFT);
+ MAKE_USHORT_CONSTANT("AlignTop",CONST_ALIGN_TOP);
+ MAKE_USHORT_CONSTANT("AlignRight",CONST_ALIGN_RIGHT);
+ MAKE_USHORT_CONSTANT("AlignBottom",CONST_ALIGN_BOTTOM);
+
+/// What dialog to use in RC_CloseSysDialog or RC_ExistsSysDialog
+ MAKE_USHORT_CONSTANT("FilePicker",CONST_FilePicker);
+ MAKE_USHORT_CONSTANT("FolderPicker",CONST_FolderPicker);
+
+/// NodeTypes of the SAX Parser
+ MAKE_USHORT_CONSTANT("NodeTypeCharacter",CONST_NodeTypeCharacter);
+ MAKE_USHORT_CONSTANT("NodeTypeElement",CONST_NodeTypeElement);
+ MAKE_USHORT_CONSTANT("NodeTypeComment",CONST_NodeTypeComment);
+
+
+/// ItemTypes for TreeListBox and maybe others
+ MAKE_USHORT_CONSTANT("ItemTypeText",CONST_ItemTypeText);
+ MAKE_USHORT_CONSTANT("ItemTypeBMP",CONST_ItemTypeBMP);
+ MAKE_USHORT_CONSTANT("ItemTypeCheckbox",CONST_ItemTypeCheckbox);
+ MAKE_USHORT_CONSTANT("ItemTypeContextBMP",CONST_ItemTypeContextBMP);
+ MAKE_USHORT_CONSTANT("ItemTypeUnknown",CONST_ItemTypeUnknown);
+
+
+/// Return values for WaitSlot
+ MAKE_USHORT_CONSTANT("WSTimeout",CONST_WSTimeout);
+ MAKE_USHORT_CONSTANT("WSAborted",CONST_WSAborted);
+ MAKE_USHORT_CONSTANT("WSFinished",CONST_WSFinished);
+
+
+ pImpl->pControlsObj = new Controls( CUniString("GetNextCloseWindow") );
+ pImpl->pControlsObj->SetType( SbxVARIANT );
+ Insert( pImpl->pControlsObj );
+ pImpl->pControlsObj->SetUserData( ID_GetNextCloseWindow );
+ pImpl->pControlsObj->ChangeListener( this );
+
+ for ( i=0;i<VAR_POOL_SIZE;i++)
+ {
+/* pMyVar = new SbxObject( "Dummy" );
+ pMyVar->SetType( SbxVARIANT );*/
+
+// pMyVar = new SbxMethod( "Dummy", SbxVARIANT );
+
+ pImpl->pMyVars[i] = new SbxTransportMethod( SbxVARIANT );
+ pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(String::CreateFromInt32(i) ) );
+
+ Insert( pImpl->pMyVars[i] );
+// StartListening( pMyVars[i]->GetBroadcaster(), TRUE );
+
+ }
+
+ m_pControls = new CNames();
+ m_pSIds = new CNames();
+ m_pNameKontext = m_pControls;
+
+ nMyVar = 0;
+
+ pImpl->pMyBasic->AddFactory( &aComManFac );
+
+
+// Das ist zum testen des IPC
+
+/* int sent = 0;
+
+ ModelessDialog *pDlg = new ModelessDialog(NULL);
+ pDlg->SetOutputSizePixel(Size(100,30));
+
+ Edit *pMyEd = new Edit(pDlg,WB_CENTER | WB_BORDER);
+ pMyEd->SetSizePixel(Size(100,30));
+ pDlg->Show();
+ pMyEd->Show();
+ Time aTime;
+
+ String VollePackung;
+ VollePackung.Fill(32760,'*');
+
+ BeginBlock(); // zum warm werden
+ EndBlock();
+ ResetError();
+
+ while ( pDlg->IsVisible() && !IsError() )
+ {
+ BeginBlock();
+ In->GenCmdFlow (124,VollePackung);
+ EndBlock();
+ pMyEd->SetText(String("Test Nr. ") + String(++sent));
+ while ( aTime.Get100Sec() / 10 == Time().Get100Sec() / 10 );
+ aTime = Time();
+ }
+
+ delete pMyEd;
+ delete pDlg;
+*/
+// Test ende
+
+
+}
+
+TestToolObj::~TestToolObj()
+{
+ pImpl->pMyBasic->RemoveFactory( &aComManFac );
+ EndListening( ((StarBASIC*)GetParent())->GetBroadcaster() );
+ pImpl->pNextReturn.Clear();
+
+ pImpl->pControlsObj.Clear();
+
+ for ( int i = 0 ; i < VAR_POOL_SIZE ; i++ )
+ {
+ pImpl->pMyVars[i].Clear();
+ }
+
+ if (m_pControls)
+ delete m_pControls;
+ if (m_pReverseSlots)
+ delete m_pReverseSlots;
+ if (m_pReverseControls)
+ delete m_pReverseControls;
+ if (m_pReverseControlsSon)
+ delete m_pReverseControlsSon;
+ if (m_pReverseUIds)
+ delete m_pReverseUIds;
+ if (m_pSIds)
+ delete m_pSIds;
+ if (pFehlerListe)
+ {
+ delete pFehlerListe;
+ pFehlerListe = NULL; // da pFehlerListe static ist!!
+ }
+ if ( pCommunicationManager )
+ {
+ pCommunicationManager->StopCommunication();
+ delete pCommunicationManager;
+ }
+ delete In;
+ if ( pImpl->pTTSfxBroadcaster )
+ delete pImpl->pTTSfxBroadcaster;
+ delete pImpl->pChildEnv;
+
+ pImpl->xErrorList.Clear();
+ pImpl->xWarningList.Clear();
+ pImpl->xQAErrorList.Clear();
+ pImpl->xIncludeFileWarningList.Clear();
+
+ delete pImpl;
+
+ delete pShortNames;
+}
+
+SfxBroadcaster& TestToolObj::GetTTBroadcaster()
+{
+ if ( !pImpl->pTTSfxBroadcaster )
+ pImpl->pTTSfxBroadcaster = new SfxBroadcaster;
+ return *pImpl->pTTSfxBroadcaster;
+}
+
+void TestToolObj::ReadNames( String Filename, CNames *&pNames, CNames *&pUIds, BOOL bIsFlat )
+{
+/*******************************************************************************
+**
+** Folgende Dateiendungen sind vorhanden
+**
+** hid.lst Langname UId
+** *.sid Slot Ids Kurzname Langname Datei ist flach
+** *.win Controlname Langname Datei mit *name und +name Notation
+**
+**
+*******************************************************************************/
+
+
+ SvFileStream Stream;
+ String aLine,aShortname,aLongname;
+ SmartId aUId;
+ xub_StrLen nLineNr;
+ USHORT nElement;
+ ControlDef *pNewDef, *pNewDef2;
+ ControlDef *pFatherDef = NULL;
+
+ nLineNr = 0; // Wir sind ja noch vor der Datei
+
+ if (! pUIds)
+ {
+ String aFileName = (pImpl->aHIDDir + DirEntry(CUniString("hid.lst"))).GetFull();
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_READING_LONGNAMES)), aFileName );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ ReadFlat( aFileName ,pUIds, TRUE );
+ if ( !pUIds )
+ return;
+ pNewDef = new ControlDef("Active",SmartId(0));
+ const ControlItem *pItem = pNewDef;
+ if (! pUIds->Insert(pItem))
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1c( S_DOUBLE_NAME, "Active" ), Filename, nLineNr );
+ delete pNewDef;
+ }
+
+ }
+
+ ADD_MESSAGE_LOG( Filename );
+
+ Stream.Open(Filename, STREAM_STD_READ);
+ if (!Stream.IsOpen())
+ {
+ ADD_ERROR(ERR_NO_FILE,GEN_RES_STR1(S_CANNOT_OPEN_FILE, Filename));
+ return;
+ }
+
+ if ( bIsFlat && !pNames )
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_READING_SLOT_IDS)), Filename );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ else
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_READING_CONTROLS)), Filename );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ if ( !pNames )
+ pNames = new CNames();
+
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_ENTERWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ while (!Stream.IsEof())
+ {
+ nLineNr++;
+
+ Stream.ReadByteStringLine(aLine, RTL_TEXTENCODING_IBM_850);
+ aLine.EraseLeadingChars();
+ aLine.EraseTrailingChars();
+ while ( aLine.SearchAscii(" ") != STRING_NOTFOUND )
+ aLine.SearchAndReplaceAllAscii(" ",UniString(' '));
+ if (aLine.Len() == 0) continue;
+ if (aLine.Copy(0,4).CompareIgnoreCaseToAscii("Rem ") == COMPARE_EQUAL) continue;
+ if (aLine.Copy(0,1).CompareToAscii("'") == COMPARE_EQUAL) continue;
+
+ if ( (aLine.GetTokenCount(cMyDelim) < 2 || aLine.GetTokenCount(cMyDelim) > 3) && aLine.CompareIgnoreCaseToAscii("*Active") != COMPARE_EQUAL )
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_INVALID_LINE, aLine ), Filename, nLineNr );
+ continue;
+ }
+
+ aShortname = aLine.GetToken(0,cMyDelim);
+ aLongname = aLine.GetToken(1,cMyDelim);
+
+ String aFirstAllowedExtra, aAllowed;
+ aFirstAllowedExtra.AssignAscii("+*");
+ aAllowed.AssignAscii("_");
+ xub_StrLen nIndex = 0;
+ BOOL bOK = TRUE;
+
+ while ( bOK && nIndex < aShortname.Len() )
+ {
+ sal_Unicode aChar = aShortname.GetChar( nIndex );
+ BOOL bOKThis = FALSE;
+ bOKThis |= ( aAllowed.Search( aChar ) != STRING_NOTFOUND );
+ if ( !nIndex )
+ bOKThis |= ( aFirstAllowedExtra.Search( aChar ) != STRING_NOTFOUND );
+ bOKThis |= ( aChar >= 'A' && aChar <= 'Z' );
+ bOKThis |= ( aChar >= 'a' && aChar <= 'z' );
+ bOKThis |= ( aChar >= '0' && aChar <= '9' );
+
+ bOK &= bOKThis;
+ nIndex++;
+ }
+ if ( !bOK )
+ {
+ ADD_WARNING_LOG2( CUniString("Zeile \"").Append(aLine).AppendAscii("\" enth�lt ung�ltige Zeichen."), Filename, nLineNr );
+ continue;
+ }
+
+ BOOL bUnoName = ( aLongname.Copy( 0, 5 ).EqualsIgnoreCaseAscii( ".uno:" )
+ || aLongname.Copy( 0, 4 ).EqualsIgnoreCaseAscii( "http" )
+ || aLongname.Copy( 0, 15 ).EqualsIgnoreCaseAscii( "private:factory" )
+ || aLongname.Copy( 0, 8 ).EqualsIgnoreCaseAscii( "service:" )
+ || aLongname.Copy( 0, 6 ).EqualsIgnoreCaseAscii( "macro:" )
+ || aLongname.Copy( 0, 8 ).EqualsIgnoreCaseAscii( ".HelpId:" ) );
+ // generic method to mark longnames as symbolic
+ if ( aLongname.Copy( 0, 4 ).EqualsIgnoreCaseAscii( "sym:" ) )
+ {
+ bUnoName = TRUE;
+ aLongname.Erase( 0, 4 );
+ }
+ BOOL bMozillaName = ( !bIsFlat && aLongname.Copy( 0, 4 ).EqualsIgnoreCaseAscii( ".moz" ) );
+
+ if ( aShortname.GetChar(0) == '+' ) // Kompletten Eintrag kopieren
+ {
+ aShortname.Erase(0,1);
+ ControlDef WhatName(aLongname,SmartId());
+ ControlDef *OldTree;
+ if (pNames->Seek_Entry(&WhatName,&nElement))
+ {
+ OldTree = (ControlDef*)pNames->GetObject(nElement);
+ pNewDef = new ControlDef(aLongname,aShortname,OldTree,TRUE);
+
+ const ControlItem *pItem = pNewDef;
+ if (! pNames->Insert(pItem))
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_DOUBLE_NAME, aLine ), Filename, nLineNr );
+ delete pNewDef;
+ pFatherDef = NULL;
+ }
+ else
+ {
+ pFatherDef = pNewDef;
+ }
+ }
+ else
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_SHORTNAME_UNKNOWN, aLine ), Filename, nLineNr );
+ continue;
+ }
+
+ }
+ else
+ {
+
+ if (aShortname.CompareIgnoreCaseToAscii("*Active") == COMPARE_EQUAL)
+ aUId = SmartId( UID_ACTIVE );
+ else if ( !bUnoName && !bMozillaName )
+ { // Bestimmen der ID aus der Hid.Lst
+ ControlDef WhatName(aLongname,SmartId());
+ if (pUIds->Seek_Entry(&WhatName,&nElement))
+ aUId = pUIds->GetObject(nElement)->pData->aUId;
+ else
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_LONGNAME_UNKNOWN, aLine ), Filename, nLineNr );
+ continue;
+ }
+ }
+ else
+ {
+ if ( bUnoName )
+ aUId = SmartId( aLongname );
+ else if ( bMozillaName )
+ aUId = SmartId( aLongname );
+ else
+ {
+ DBG_ERROR("Unknown URL schema");
+ }
+ }
+
+
+
+ if (aShortname.GetChar(0) == '*' || bIsFlat) // Globaler Kurzname (Dialogname oder SId)
+ {
+ if (!bIsFlat)
+ aShortname.Erase(0,1);
+
+ pNewDef = new ControlDef(aShortname,aUId);
+
+ if (!bIsFlat)
+ {
+ pNewDef->Sons( new CNames() );
+
+ pNewDef2 = new ControlDef(aShortname,aUId);
+ if (!pNewDef->SonInsert( pNewDef2 )) // Dialog in eigenen Namespace eintragen
+ {
+ delete pNewDef2;
+ DBG_ERROR(" !!!! ACHTUNG !!!! Fehler beim einf�gen in leere Liste!");
+ }
+ }
+
+ const ControlItem *pItem = pNewDef;
+ if (! pNames->Insert(pItem))
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_DOUBLE_NAME, aLine ), Filename, nLineNr );
+ delete pNewDef;
+ pFatherDef = NULL;
+ }
+ else
+ {
+ pFatherDef = pNewDef;
+ }
+ }
+ else
+ {
+ if (!pFatherDef)
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR0( S_FIRST_SHORTNAME_REQ_ASTRX ), Filename, nLineNr );
+ }
+ else
+ {
+ pNewDef = new ControlDef(aShortname,aUId);
+ if (! pFatherDef->SonInsert(pNewDef))
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_DOUBLE_NAME, aLine ), Filename, nLineNr );
+ delete pNewDef;
+ }
+ }
+ }
+ }
+ GetpApp()->Reschedule();
+ }
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_LEAVEWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_HIDE_ACTION );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ Stream.Close();
+}
+
+
+void TestToolObj::AddName(String &aBisher, String &aNeu )
+{
+ String aSl( '/' );
+ if ( UniString(aSl).Append(aBisher).Append(aSl).ToUpperAscii().Search( UniString(aSl).Append(aNeu).Append(aSl).ToUpperAscii() ) == STRING_NOTFOUND )
+ {
+ aBisher += aSl;
+ aBisher += aNeu;
+ }
+}
+
+
+void TestToolObj::ReadFlat( String Filename, CNames *&pNames, BOOL bSortByName )
+// Wenn bSortByName == FALSE, dann nach UId Sortieren (ControlItemUId statt ControlDef)
+{
+ SvFileStream Stream;
+ String aLine,aLongname;
+ SmartId aUId;
+ xub_StrLen nLineNr;
+ ControlItem *pNewItem;
+ USHORT nDoubleCount = 0;
+
+ Stream.Open(Filename, STREAM_STD_READ);
+
+ if (!Stream.IsOpen())
+ {
+ ADD_ERROR(ERR_NO_FILE,GEN_RES_STR1(S_CANNOT_OPEN_FILE, Filename));
+ return;
+ }
+
+ nLineNr = 0; // Wir sind ja noch vor der Datei
+
+ if ( !pNames )
+ pNames = new CNames();
+
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_ENTERWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ ADD_MESSAGE_LOG( Filename );
+ while (!Stream.IsEof())
+ {
+ nLineNr++;
+
+ Stream.ReadByteStringLine(aLine, RTL_TEXTENCODING_IBM_850);
+ aLine.EraseLeadingChars();
+ aLine.EraseTrailingChars();
+ while ( aLine.SearchAscii(" ") != STRING_NOTFOUND )
+ aLine.SearchAndReplaceAllAscii(" ",UniString(' '));
+ if (aLine.Len() == 0) continue;
+
+ if ( (aLine.GetTokenCount(cMyDelim) < 2 || aLine.GetTokenCount(cMyDelim) > 3) && aLine.CompareIgnoreCaseToAscii("*Active") != COMPARE_EQUAL )
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_INVALID_LINE, aLine ), Filename, nLineNr );
+ continue;
+ }
+
+ aLongname = aLine.GetToken(0,cMyDelim);
+ aUId = SmartId( (ULONG)aLine.GetToken(1,cMyDelim).ToInt64() );
+
+ if ( bSortByName )
+ pNewItem = new ControlDef( aLongname, aUId );
+ else
+ pNewItem = new ControlItemUId( aLongname, aUId );
+ if ( !pNames->C40_PTR_INSERT( ControlItem, pNewItem ) )
+ {
+ if ( bSortByName )
+ {
+ if ( nDoubleCount++ < 10 )
+ {
+ ADD_WARNING_LOG2( GEN_RES_STR1( S_DOUBLE_NAME, aLine ), Filename, nLineNr );
+ }
+ }
+ else
+ {
+ USHORT nNr;
+ pNames->Seek_Entry( pNewItem, &nNr );
+ AddName( pNames->GetObject(nNr)->pData->Kurzname, pNewItem->pData->Kurzname );
+ }
+ delete pNewItem;
+ }
+ GetpApp()->Reschedule();
+ }
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_LEAVEWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ Stream.Close();
+#ifdef DBG_UTIL
+// int i;
+// for ( i = 0 ; i < pNames->Count() ; i++ )
+// {
+// DBG_ERROR( pNames->GetObject(i)->pData->Kurzname );
+// }
+#endif
+}
+
+void ReadFlatArray( const ControlDefLoad arWas [], CNames *&pNames )
+{
+ USHORT nIndex = 0;
+
+ if ( !pNames )
+ pNames = new CNames();
+
+ while ( String::CreateFromAscii(arWas[nIndex].Kurzname).Len() > 0 )
+ {
+ SmartId aUId (arWas[nIndex].nUId);
+ const ControlItem *pX = new ControlDef( arWas[nIndex].Kurzname, aUId);
+ pNames->C40_PTR_INSERT(ControlItem, pX);
+ nIndex++;
+ }
+}
+
+void TestToolObj::WaitForAnswer ()
+{
+ if ( bUseIPC )
+ {
+ #ifdef DBG_UTILx
+ USHORT nSysWinModeMemo = GetpApp()->GetSystemWindowMode();
+ GetpApp()->SetSystemWindowMode( 0 );
+ ModelessDialog aDlg(NULL);
+ aDlg.SetOutputSizePixel(Size(200,0));
+ aDlg.SetText(CUniString("Waiting for Answer"));
+ aDlg.Show( TRUE, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
+ GetpApp()->SetSystemWindowMode( nSysWinModeMemo );
+ #endif
+ BOOL bWasRealWait = !bReturnOK;
+ BasicRuntime aRun( NULL );
+ if ( BasicRuntimeAccess::HasRuntime() )
+ aRun = BasicRuntimeAccess::GetRuntime();
+
+ // this timer to terminate Yield below
+ Timer aTimer;
+ aTimer.SetTimeout( pImpl->aServerTimeout.GetMSFromTime() );
+ aTimer.Start();
+ while ( !bReturnOK && aTimer.IsActive() && pCommunicationManager->IsCommunicationRunning()
+ && aRun.IsValid() && aRun.IsRun() )
+ {
+ #ifdef OS2
+ DosSleep(100);
+ #endif
+ GetpApp()->Yield();
+ if ( BasicRuntimeAccess::HasRuntime() )
+ aRun = BasicRuntimeAccess::GetRuntime();
+ else
+ aRun = BasicRuntime( NULL );
+ }
+ if ( bWasRealWait && aDialogHandlerName.Len() > 0 ) // Damit das ganze auch im Testtool l�uft
+ CallDialogHandler(GetpApp());
+ }
+ else
+ {
+ Time Ende;
+
+ Ende += pImpl->aServerTimeout;
+ SvStream *pTemp = NULL;
+
+ while ( !bReturnOK && Ende > Time() )
+ {
+// pTemp = PlugInApplication::GetPlugInApp()->GetReturnFromExecute();
+ if ( pTemp )
+ {
+ ReturnResults( pTemp );
+ bReturnOK = TRUE;
+ }
+ else
+ {
+ GetpApp()->Reschedule();
+ }
+ nIdleCount = 0;
+ }
+ }
+
+
+ if ( !bReturnOK )
+ {
+ ADD_ERROR(ERR_EXEC_TIMEOUT,GEN_RES_STR1(S_TIMOUT_WAITING, String::CreateFromInt64(nSequence)));
+ bReturnOK = TRUE;
+ nSequence++;
+ }
+}
+
+
+IMPL_LINK( TestToolObj, IdleHdl, Application*, EMPTYARG )
+{
+ if ( !bReturnOK )
+ nIdleCount++;
+ if ( nIdleCount > 10 ) // d.h. Schon 10 mal hier gewesen und noch keinmal im WaitForAnswer
+ {
+ GetpApp()->RemoveIdleHdl( LINK( this, TestToolObj, IdleHdl ) );
+ GetpApp()->PostUserEvent( LINK( this, TestToolObj, CallDialogHandler ) );
+ }
+ return 0;
+}
+
+IMPL_LINK( TestToolObj, CallDialogHandler, Application*, EMPTYARG )
+{
+ nWindowHandlerCallLevel++;
+ String aHandlerName(aDialogHandlerName);
+ aDialogHandlerName.Erase();
+
+ ULONG nRememberSequence = nSequence; // Da sich die Sequence im DialogHandler �ndert
+ ((StarBASIC*)GetParent())->Call( aHandlerName );
+ nSequence = nRememberSequence;
+ // Die Sequenznummern werden dann zwar doppelt vergeben, aber wen k�mmerts.
+
+ nWindowHandlerCallLevel--;
+ return 0;
+}
+
+
+void TestToolObj::BeginBlock()
+{
+ WaitForAnswer();
+ if ( IsError() )
+ return;
+
+ DBG_ASSERT(!IsBlock,"BeginBlock innerhalb eines Blockes");
+ In->Reset(nSequence);
+ IsBlock = TRUE;
+}
+
+
+void TestToolObj::SendViaSocket()
+{
+ if ( !pCommunicationManager )
+ {
+ DBG_ERROR("Kein CommunicationManager vorhanden!!");
+ return;
+ }
+
+ if ( !pCommunicationManager->IsCommunicationRunning() )
+ {
+ // first try to run basic sub "startTheOffice" see i86540
+ SbxVariable* pMeth = pImpl->pMyBasic->Find( CUniString( "startTheOffice" ), SbxCLASS_DONTCARE);
+ if( !pImpl->bIsStart && pMeth && pMeth->ISA(SbxMethod) )
+ {
+ pImpl->pMyBasic->Call( CUniString( "startTheOffice" ) );
+ }
+ else
+ {
+ pImpl->pMyBasic->ResetError(); // reset error produced by failed Find above
+ if ( !pCommunicationManager->StartCommunication( ProgPath, pImpl->ProgParam, pImpl->pChildEnv ) )
+ {
+ ADD_ERROR(ERR_RESTART_FAIL,GEN_RES_STR1(S_APPLICATION_START_FAILED, ProgPath));
+ }
+ else
+ {
+ if ( !pImpl->bIsStart )
+ {
+ ADD_ERROR(ERR_RESTART,GEN_RES_STR0(S_APPLICATION_RESTARTED));
+ }
+ }
+ }
+ }
+
+ bReturnOK = FALSE;
+ if ( pCommunicationManager->GetLastNewLink() )
+ {
+ if ( !pCommunicationManager->GetLastNewLink()->TransferDataStream( In->GetStream() ) )
+ {
+ ADD_ERROR(ERR_SEND_TIMEOUT,GEN_RES_STR1(S_TIMOUT_SENDING, String::CreateFromInt64(nSequence)));
+ nSequence++;
+ bReturnOK = TRUE; // Kein Return zu erwarten
+ }
+ }
+ else
+ {
+ ADD_ERROR(ERR_SEND_TIMEOUT,GEN_RES_STR1(S_NO_CONNECTION, String::CreateFromInt64(nSequence)));
+ nSequence++;
+ bReturnOK = TRUE; // Kein Return zu erwarten
+ }
+
+}
+
+void TestToolObj::EndBlock()
+{
+ if (IsBlock)
+ {
+ pImpl->LocalStarttime = Time::GetSystemTicks(); // Setzen der Anfangszeit f�r Performancemessung
+
+ In->GenCmdFlow (F_EndCommandBlock);
+
+ if ( pImpl->bDoRemoteCommandDelay )
+ {
+ ULONG nTimeWait = pImpl->nMinRemoteCommandDelay;
+ if ( pImpl->nMaxRemoteCommandDelay != pImpl->nMinRemoteCommandDelay )
+ nTimeWait += Time::GetSystemTicks() % ( pImpl->nMaxRemoteCommandDelay - pImpl->nMinRemoteCommandDelay );
+ Timer aTimer;
+ aTimer.SetTimeout( nTimeWait );
+ aTimer.Start();
+ while ( aTimer.IsActive() && pCommunicationManager->IsCommunicationRunning() )
+ {
+ #ifdef OS2
+ DosSleep(100);
+ #endif
+ GetpApp()->Yield();
+ }
+ }
+
+ if ( bUseIPC )
+ SendViaSocket();
+ else
+ {
+// PlugInApplication::GetPlugInApp()->ExecuteRemoteStatements( In->GetStream() );
+ bReturnOK = FALSE;
+ if ( aDialogHandlerName.Len() > 0 )
+ GetpApp()->InsertIdleHdl( LINK( this, TestToolObj, IdleHdl ), 1 );
+ }
+ IsBlock = FALSE;
+ }
+ else
+ {
+ DBG_ERROR("EndBlock au�erhalb eines Blockes");
+ }
+}
+
+
+BOOL TestToolObj::Load( String aFileName, SbModule *pMod )
+{
+ BOOL bOk = TRUE;
+ SvFileStream aStrm( aFileName, STREAM_STD_READ );
+ if( aStrm.IsOpen() )
+ {
+ String aText, aLine;
+ BOOL bIsFirstLine = TRUE;
+ rtl_TextEncoding aFileEncoding = RTL_TEXTENCODING_IBM_850;
+ while( !aStrm.IsEof() && bOk )
+ {
+ aStrm.ReadByteStringLine( aLine, aFileEncoding );
+ if ( bIsFirstLine && IsTTSignatureForUnicodeTextfile( aLine ) )
+ aFileEncoding = RTL_TEXTENCODING_UTF8;
+ else
+ {
+ if ( !bIsFirstLine )
+ aText += '\n';
+ aText += aLine;
+ bIsFirstLine = FALSE;
+ }
+ if( aStrm.GetError() != SVSTREAM_OK )
+ bOk = FALSE;
+ }
+ aText.ConvertLineEnd();
+ pMod->SetName(CUniString("--").Append(aFileName));
+
+ pMod->SetComment( GetRevision( aText ) );
+
+ SbModule* pOldModule = MyBasic::GetCompileModule();
+ MyBasic::SetCompileModule( pMod );
+
+ pMod->SetSource( PreCompile( aText ) );
+
+ MyBasic::SetCompileModule( pOldModule );
+ if ( WasPrecompilerError() )
+ bOk = FALSE;
+
+ }
+ else
+ bOk = FALSE;
+ return bOk;
+}
+
+
+BOOL TestToolObj::ReadNamesBin( String Filename, CNames *&pSIds, CNames *&pControls )
+{
+ SvFileStream aStream;
+ String aName,aURL;
+ SmartId aUId;
+ ControlDef *pNewDef, *pNewDef2;
+ ControlDef *pFatherDef = NULL;
+
+
+ aStream.Open(Filename, STREAM_STD_READ);
+ if (!aStream.IsOpen())
+ {
+ ADD_ERROR(ERR_NO_FILE,GEN_RES_STR1(S_CANNOT_OPEN_FILE, Filename));
+ return FALSE;
+ }
+
+ if ( !pSIds )
+ pSIds = new CNames();
+ if ( !pControls )
+ pControls = new CNames();
+
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_ENTERWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ USHORT nAnz;
+ aStream >> nAnz;
+ CNames *pNames = pSIds; // first read all the slots
+ BOOL bIsFlat = TRUE; // Slots do not have children
+
+ while ( nAnz && !aStream.IsEof() )
+ {
+
+ aStream.ReadByteString( aName, RTL_TEXTENCODING_UTF8 );
+
+ USHORT nType;
+ aStream >> nType;
+ if ( !nType /* HasNumeric() */)
+ {
+ String aStrId;
+ aStream.ReadByteString( aStrId, RTL_TEXTENCODING_UTF8 );
+ aUId = SmartId( aStrId );
+ }
+ else
+ {
+ comm_ULONG nUId;
+ aStream >> nUId;
+ aUId = SmartId( nUId );
+ }
+
+ if (aName.GetChar(0) == '*' || bIsFlat ) // Globaler Kurzname (Dialogname oder SId)
+ {
+ if (!bIsFlat)
+ aName.Erase(0,1);
+ pNewDef = new ControlDef(aName,aUId);
+
+ if (!bIsFlat)
+ {
+ pNewDef->Sons(new CNames());
+
+ pNewDef2 = new ControlDef(aName,aUId); // Noch einen machen
+ if (!pNewDef->SonInsert(pNewDef2)) // Dialog in eigenen Namespace eintragen
+ {
+ delete pNewDef2;
+ DBG_ERROR(" !!!! ACHTUNG !!!! Fehler beim einf�gen in leere Liste!");
+ }
+ }
+
+ const ControlItem *pItem = pNewDef;
+ if (! pNames->Insert(pItem))
+ {
+ DBG_ERROR(" !!!! ACHTUNG !!!! Fehler beim einf�gen eines namens!");
+ delete pNewDef;
+ pFatherDef = NULL;
+ }
+ else
+ {
+ pFatherDef = pNewDef;
+ }
+ }
+ else
+ {
+ if (!pFatherDef)
+ {
+ DBG_ERROR( "Internal Error: Erster Kurzname mu� mit * beginnen. �berspringe." );
+ }
+ else
+ {
+ pNewDef = new ControlDef(aName,aUId);
+ if (! pFatherDef->SonInsert(pNewDef))
+ {
+ delete pNewDef;
+ DBG_ERROR(" !!!! ACHTUNG !!!! Fehler beim einf�gen eines namens!");
+ }
+ }
+ }
+
+
+ nAnz--;
+ if ( !nAnz && bIsFlat ) // We have read all slots
+ {
+ aStream >> nAnz;
+ pNames = pControls; // Now read the controls
+ bIsFlat = FALSE; // Controls *do* have children
+ }
+
+
+ GetpApp()->Reschedule();
+ }
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_LEAVEWAIT );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ aStream.Close();
+ return TRUE;
+}
+
+
+BOOL TestToolObj::WriteNamesBin( String Filename, CNames *pSIds, CNames *pControls )
+{
+ BOOL bOk = TRUE;
+ SvFileStream aStrm( String(Filename).AppendAscii(".bin"), STREAM_STD_WRITE );
+ if( aStrm.IsOpen() )
+ {
+ USHORT i;
+ if ( pSIds )
+ {
+ aStrm << pSIds->Count();
+ for ( i = 0 ; pSIds->Count() > i && bOk ; i++ )
+ {
+ ((ControlDef*)(*pSIds)[i])->Write(aStrm);
+ if( aStrm.GetError() != SVSTREAM_OK )
+ bOk = FALSE;
+ }
+ }
+ else
+ aStrm << USHORT( 0 );
+
+ if ( pControls )
+ {
+ aStrm << pControls->Count();
+ for ( i = 0 ; pControls->Count() > i && bOk ; i++ )
+ {
+ ((ControlDef*)(*pControls)[i])->Write(aStrm);
+ if( aStrm.GetError() != SVSTREAM_OK )
+ bOk = FALSE;
+ }
+ }
+ else
+ aStrm << USHORT( 0 );
+ }
+ else
+ bOk = FALSE;
+ return bOk;
+}
+
+
+void TestToolObj::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
+ const SfxHint& rHint, const TypeId& )
+{
+ static CNames *pUIds = NULL; // Halten der hid.lst
+
+ const SbxHint* p = PTR_CAST(SbxHint,&rHint);
+ if( p )
+ {
+ SbxVariable* pVar = p->GetVar();
+ SbxArray* rPar = pVar->GetParameters();
+
+ ULONG nHintId = p->GetId();
+ ULONG nHintUserData = pVar->GetUserData();
+ if( nHintId == SBX_HINT_DATAWANTED )
+ {
+ nMyVar = 0;
+ switch( nHintUserData )
+ {
+ case ID_Kontext:
+ if ( !rPar )
+ {
+ m_pNameKontext = m_pControls;
+
+ // So da� nicht immer mal wieder was aus einem alten Kontext dazwischenhaut
+ for (USHORT i=0;i<VAR_POOL_SIZE;i++)
+ {
+ pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
+ }
+ }
+ else if ( rPar && rPar->Count() == 2 )
+ {
+ USHORT nElement;
+ SbxVariableRef pArg = rPar->Get( 1 );
+ String aKontext = pArg->GetString();
+ ControlDef WhatName(aKontext,SmartId());
+ if (m_pControls && m_pControls->Seek_Entry(&WhatName,&nElement))
+ {
+ m_pNameKontext = ((ControlDef*)m_pControls->GetObject(nElement))->GetSons();
+
+ // So da� nicht immer mal wieder was aus einem alten Kontext dazwischenhaut
+ for (USHORT i=0;i<VAR_POOL_SIZE;i++)
+ {
+ pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
+ }
+ }
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_Start:
+ if ( rPar && rPar->Count() >= 2 )
+ {
+ SbxVariableRef pArg = rPar->Get( 1 );
+ ProgPath = pArg->GetString();
+ if ( rPar && rPar->Count() >= 3 )
+ {
+ pArg = rPar->Get( 2 );
+ pImpl->ProgParam = pArg->GetString();
+ }
+ else
+ pImpl->ProgParam.Erase();
+
+ String aTmpStr(ProgPath);
+ aTmpStr += ' ';
+ aTmpStr += pImpl->ProgParam;
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_STARTING_APPLICATION)), aTmpStr );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ pImpl->bIsStart = TRUE;
+ BeginBlock();
+ EndBlock();
+ pImpl->bIsStart = FALSE;
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_HIDE_ACTION );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ }
+ break;
+ case ID_KillApp:
+ pCommunicationManager->KillApplication();
+ break;
+ case ID_SaveIDs:
+ if ( rPar && rPar->Count() >= 2 ) // Genau ein Parameter
+ {
+ SbxVariableRef pArg = rPar->Get( 1 );
+ DirEntry FilePath = pImpl->aFileBase + DirEntry(pArg->GetString(),FSYS_STYLE_VFAT);
+ WriteNamesBin( FilePath.GetFull(), m_pSIds, m_pControls );
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_AutoExecute:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ pVar->PutBool(SingleCommandBlock);
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_Execute:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ EndBlock();
+ BeginBlock();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_DialogHandler:
+ if ( rPar && rPar->Count() >= 2 ) // Genau ein Parameter
+ {
+ SbxVariableRef pArg = rPar->Get( 1 );
+ aDialogHandlerName = pArg->GetString();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_GetError:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ WaitForAnswer();
+ if ( IS_ERROR() )
+ {
+// pVar->PutULong( GET_ERROR()->nError );
+ pVar->PutString( GET_ERROR()->aText );
+ POP_ERROR();
+ }
+ else
+ {
+// pVar->PutULong( 0 );
+ pVar->PutString( String() );
+ }
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_StartUse:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ {
+ BasicRuntime aRun = BasicRuntimeAccess::GetRuntime();
+ aLogFileName = DirEntry(aRun.GetModuleName(SbxNAME_NONE)).GetBase().AppendAscii(".res");
+ }
+
+ ADD_RUN_LOG();
+ ADD_CASE_LOG(GEN_RES_STR0(S_READING_FILE));
+
+ pCommunicationManager->StopCommunication();
+ // Wait for asynchronous events to be processed, so communication will be restarted properly
+ while ( pCommunicationManager->IsCommunicationRunning() )
+ Application::Reschedule();
+
+ SingleCommandBlock = TRUE; // Bug 57188
+ IsBlock = FALSE;
+
+// pCommunicationManager->StartCommunication();
+
+ for (USHORT i=0;i<VAR_POOL_SIZE;i++)
+ {
+ pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
+ }
+ nMyVar = 0;
+
+ if (m_pControls)
+ {
+ delete m_pControls;
+ m_pControls = NULL;
+ }
+ if (m_pReverseSlots)
+ {
+ delete m_pReverseSlots;
+ m_pReverseSlots = NULL;
+ }
+ if (m_pReverseControls)
+ {
+ delete m_pReverseControls;
+ m_pReverseControls = NULL;
+ }
+ if (m_pReverseControlsSon)
+ {
+ delete m_pReverseControlsSon;
+ m_pReverseControlsSon = NULL;
+ }
+ if (m_pSIds)
+ {
+ delete m_pSIds;
+ m_pSIds = NULL;
+ }
+ if (pUIds)
+ {
+ delete pUIds;
+ pUIds = NULL;
+ }
+ if (m_pReverseUIds)
+ {
+ delete m_pReverseUIds;
+ m_pReverseUIds = NULL;
+ }
+ m_pNameKontext = m_pControls;
+ pImpl->bLnaguageExtensionLoaded = FALSE;
+ SfxSimpleHint aHint( SBX_HINT_LANGUAGE_EXTENSION_LOADED );
+ GetTTBroadcaster().Broadcast( aHint );
+
+ pImpl->nMinRemoteCommandDelay = 0;
+ pImpl->nMaxRemoteCommandDelay = 0;
+ pImpl->bDoRemoteCommandDelay = FALSE;
+ pImpl->aTestCaseName.Erase();
+ pImpl->aTestCaseFileName.Erase();
+ pImpl->nTestCaseLineNr = 0;
+
+ pImpl->bEnableQaErrors = TRUE;
+ pImpl->bDebugFindNoErrors = FALSE;
+
+ pImpl->pChildEnv->clear();
+
+ String aName( CUniString( "StopOnSyntaxError" ) );
+ SbxVariableRef xStopOnSyntaxError = SbxObject::Find( aName, SbxCLASS_PROPERTY );
+ if ( xStopOnSyntaxError.Is() )
+ xStopOnSyntaxError->PutBool( pImpl->bStopOnSyntaxError );
+ else
+ SetError( SbxERR_BAD_ACTION );
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_Use:
+ if ( rPar && rPar->Count() >= 2 )
+ {
+ SbxVariableRef pArg = rPar->Get( 1 );
+ DirEntry FilePath(pArg->GetString(),FSYS_STYLE_VFAT);
+ if ( !FilePath.IsAbs() )
+ FilePath = pImpl->aFileBase + FilePath;
+ String Ext = FilePath.GetExtension();
+ if ( Ext.CompareIgnoreCaseToAscii("Win") == COMPARE_EQUAL )
+ {
+ ReadNames( FilePath.GetFull(),m_pControls,pUIds);
+ pImpl->bLnaguageExtensionLoaded = TRUE;
+ SfxSimpleHint aHint( SBX_HINT_LANGUAGE_EXTENSION_LOADED );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ else if ( Ext.CompareIgnoreCaseToAscii("Sid") == COMPARE_EQUAL )
+ {
+ ReadNames( FilePath.GetFull(),m_pSIds,pUIds,FLAT);
+ pImpl->bLnaguageExtensionLoaded = TRUE;
+ SfxSimpleHint aHint( SBX_HINT_LANGUAGE_EXTENSION_LOADED );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ else if ( Ext.CompareIgnoreCaseToAscii("Bin") == COMPARE_EQUAL )
+ {
+ ReadNamesBin( FilePath.GetFull(), m_pSIds, m_pControls );
+ pImpl->bLnaguageExtensionLoaded = TRUE;
+ SfxSimpleHint aHint( SBX_HINT_LANGUAGE_EXTENSION_LOADED );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ else if ( Ext.CompareIgnoreCaseToAscii("Inc") == COMPARE_EQUAL )
+ {
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_READING_BASIC_MODULE)), FilePath.GetFull() );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ String aFullPathname = FilePath.GetFull();
+ StarBASIC *pBasic = (StarBASIC*)GetParent();
+ if ( !aModuleWinExistsHdl.Call( &aFullPathname ) &&
+ !pBasic->FindModule( CUniString( "--" ).Append(aFullPathname) ) )
+ {
+ SbModule *pMod;
+ pMod = pBasic->MakeModule( CUniString("--"), String() );
+ pMod->Clear();
+ if ( Load( aFullPathname, pMod ) )
+ {
+ if ( !IS_ERROR() )
+ {
+ pBasic->Compile( pMod );
+ pMod->RunInit();
+ }
+ }
+ else
+ {
+ ADD_ERROR( SbxERR_CANNOT_LOAD, FilePath.GetFull() );
+ }
+ }
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_HIDE_ACTION );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ }
+ else
+ {
+ ADD_ERROR(SbxERR_CANNOT_LOAD,FilePath.GetFull());
+ }
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_FinishUse:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ ADD_CASE_LOG( String() ); // Case abschliessen
+ if (!m_pControls)
+ m_pControls = new CNames();
+
+ if (!m_pSIds)
+ m_pSIds = new CNames();
+
+ if (pUIds)
+ { // save some memory
+ delete pUIds;
+ pUIds = NULL;
+ }
+
+ m_pNameKontext = m_pControls;
+
+ if ( pImpl->bLnaguageExtensionLoaded )
+ {
+ SfxSimpleHint aHint( SBX_HINT_LANGUAGE_EXTENSION_LOADED );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ pImpl->nIncludeFileWarningCount = pImpl->nWarningCount;
+ pImpl->nWarningCount = 0;
+
+ *pImpl->xIncludeFileWarningList = *pImpl->xWarningList;
+ pImpl->xWarningList->SbxArray::Clear();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_CaseLog:
+ if ( rPar ) // rPar != NULL <=> Es gibt Parameter
+ {
+ USHORT n;
+ String aX;
+ for ( n = 1; n < rPar->Count(); n++ )
+ {
+ SbxVariableRef pArg = rPar->Get( n );
+ aX += pArg->GetString();
+ }
+ pImpl->aTestCaseName = aX;
+ if ( pImpl->aTestCaseName.Len() && BasicRuntimeAccess::HasRuntime() )
+ {
+ BasicRuntime aRun = BasicRuntimeAccess::GetRuntime();
+ pImpl->aTestCaseFileName = aRun.GetModuleName(SbxNAME_SHORT_TYPES);
+ if ( pImpl->aTestCaseFileName.Copy(0,2).CompareToAscii( "--" ) == COMPARE_EQUAL )
+ pImpl->aTestCaseFileName.Erase(0,2);
+ pImpl->nTestCaseLineNr = aRun.GetLine();
+ }
+ else
+ {
+ pImpl->aTestCaseFileName.Erase();
+ pImpl->nTestCaseLineNr = 0;
+ }
+ ADD_CASE_LOG( aX );
+ }
+ break;
+ case ID_ExceptLog:
+ if ( IS_ERROR() )
+ {
+ BasicRuntime aRun = BasicRuntimeAccess::GetRuntime();
+ BOOL bWasNewError = FALSE;
+
+ if ( BasicRuntimeAccess::HasStack() )
+ {
+ for ( USHORT i = 0 ; i < BasicRuntimeAccess::GetStackEntryCount() -1 ; i++ )
+ {
+ BasicErrorStackEntry aThisEntry = BasicRuntimeAccess::GetStackEntry(i);
+ if ( !bWasNewError )
+ {
+ bWasNewError = TRUE;
+ ADD_ERROR_LOG( GET_ERROR()->aText, aThisEntry.GetModuleName(SbxNAME_SHORT_TYPES),
+ aThisEntry.GetLine(), aThisEntry.GetCol1(), aThisEntry.GetCol2(), aThisEntry.GetSourceRevision() );
+ }
+ ADD_CALL_STACK_LOG( String(aThisEntry.GetModuleName(SbxNAME_SHORT_TYPES))
+ .AppendAscii(": ").Append(aThisEntry.GetMethodName(SbxNAME_SHORT_TYPES)),
+ aThisEntry.GetModuleName(SbxNAME_SHORT_TYPES),
+ aThisEntry.GetLine(), aThisEntry.GetCol1(), aThisEntry.GetCol2() );
+
+ }
+ BasicRuntimeAccess::DeleteStack();
+ }
+
+ BOOL bIsFirst = TRUE;
+ while ( aRun.IsValid() )
+ {
+ xub_StrLen nErrLn;
+ xub_StrLen nCol1;
+ xub_StrLen nCol2;
+ if ( bIsFirst )
+ {
+ bIsFirst = FALSE;
+ nErrLn = GET_ERROR()->nLine;
+ nCol1 = GET_ERROR()->nCol1;
+ nCol2 = GET_ERROR()->nCol2;
+ }
+ else
+ {
+ nErrLn = aRun.GetLine();
+ nCol1 = aRun.GetCol1();
+ nCol2 = aRun.GetCol2();
+ }
+
+ if ( !bWasNewError )
+ {
+ bWasNewError = TRUE;
+ ADD_ERROR_LOG( GET_ERROR()->aText, aRun.GetModuleName(SbxNAME_SHORT_TYPES),
+ nErrLn, nCol1, nCol2, aRun.GetSourceRevision() );
+ }
+ ADD_CALL_STACK_LOG( String(aRun.GetModuleName(SbxNAME_SHORT_TYPES))
+ .AppendAscii(": ").Append(aRun.GetMethodName(SbxNAME_SHORT_TYPES)),
+ aRun.GetModuleName(SbxNAME_SHORT_TYPES),
+ nErrLn, nCol1, nCol2 );
+ aRun = aRun.GetNextRuntime();
+ }
+ }
+ break;
+ case ID_ErrorLog:
+ if ( IS_ERROR() )
+ {
+ BasicRuntime aRun = BasicRuntimeAccess::GetRuntime();
+ if ( BasicRuntimeAccess::HasStack() )
+ {
+ BasicErrorStackEntry aThisEntry = BasicRuntimeAccess::GetStackEntry( 0 );
+ ADD_ERROR_LOG( GET_ERROR()->aText, aThisEntry.GetModuleName(SbxNAME_SHORT_TYPES),
+ aThisEntry.GetLine(), aThisEntry.GetCol1(), aThisEntry.GetCol2(), aThisEntry.GetSourceRevision() );
+ BasicRuntimeAccess::DeleteStack();
+ }
+ else
+ {
+ ADD_ERROR_LOG( GET_ERROR()->aText, aRun.GetModuleName(SbxNAME_SHORT_TYPES),
+ StarBASIC::GetErl(), aRun.GetCol1(), aRun.GetCol2(), aRun.GetSourceRevision() );
+ }
+ }
+ break;
+ case ID_QAErrorLog:
+ if ( rPar ) // rPar != NULL <=> Es gibt Parameter
+ {
+ USHORT n;
+ String aSammel;
+ for ( n = 1; n < rPar->Count(); n++ )
+ {
+ SbxVariableRef pArg = rPar->Get( n );
+ aSammel += pArg->GetString();
+ }
+ ADD_QA_ERROR_LOG( aSammel );
+ }
+ break;
+ case ID_PrintLog:
+ if ( rPar ) // rPar != NULL <=> Es gibt Parameter
+ {
+ USHORT n;
+ String aSammel;
+ for ( n = 1; n < rPar->Count(); n++ )
+ {
+ SbxVariableRef pArg = rPar->Get( n );
+ aSammel += pArg->GetString();
+ }
+ ADD_MESSAGE_LOG( aSammel );
+ }
+ break;
+ case ID_WarnLog:
+ if ( rPar ) // rPar != NULL <=> Es gibt Parameter
+ {
+ USHORT n;
+ String aSammel;
+ for ( n = 1; n < rPar->Count(); n++ )
+ {
+ SbxVariableRef pArg = rPar->Get( n );
+ aSammel += pArg->GetString();
+ }
+ ADD_WARNING_LOG( aSammel );
+
+ }
+ break;
+ case ID_ClearError:
+ while ( IS_ERROR() )
+ {
+ POP_ERROR();
+ }
+ break;
+ case ID_MaybeAddErr:
+ if ( ((StarBASIC*)GetParent())->GetErrBasic() && ( !IS_ERROR() ||
+ pFehlerListe->GetObject(pFehlerListe->Count()-1)->nError != ((StarBASIC*)GetParent())->GetErrBasic() ) )
+ {
+ ((StarBASIC*)GetParent())->MakeErrorText(((StarBASIC*)GetParent())->GetErrBasic(),String());
+ ADD_ERROR_QUIET(((StarBASIC*)GetParent())->GetErrBasic() , ((StarBASIC*)GetParent())->GetErrorText())
+ }
+ break;
+ case ID_GetNextCloseWindow:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ SetError( SbxERR_NOTIMP );
+ break;
+
+// Das ist total rotten und mu� wohl komplett neu!!
+
+
+/* BOOL bWasBlock = IsBlock;
+ if ( !IsBlock ) // Impliziter call bei Aufruf mit Methode
+ if ( SingleCommandBlock )
+ BeginBlock();
+// if ( !IsError() )
+// In->GenCmdSlot (128,rPar);
+// ((Controls*)pVar)->pMethodVar->nValue = 128;
+
+ ULONG nOldValue = ((Controls*)pVar)->GetULong();
+ // Setzen, so da� beim Return der Wert stimmt
+ ((Controls*)pVar)->PutULong( 128 );
+ pImpl->pNextReturn = ((Controls*)pVar)->pMethodVar;
+ if ( SingleCommandBlock )
+ EndBlock();
+ WaitForAnswer();
+ if ( bWasBlock )
+ if ( SingleCommandBlock )
+ BeginBlock();
+ ((Controls*)pVar)->PutULong( nOldValue );
+
+ // R�cksetzen, so da� beim n�chsten Aufruf alles klappt
+// ((Controls*)pVar)->SetUserData( 128 );
+
+
+// ((Controls*)pVar)->SetName("xxx");
+ // Setzen und r�cksetzen der ID, so dass der Notify ohne Wirkung bleibt.
+ ((Controls*)pVar)->pMethodVar->SetUserData(ID_ErrorDummy);
+ ((Controls*)pVar)->PutULong( ((Controls*)pVar)->pMethodVar->GetULong() );
+ ((Controls*)pVar)->pMethodVar->SetUserData(ID_Control);
+
+ pShortNames->Insert( CUniString("xxx"), SmartId( ((Controls*)pVar)->pMethodVar->nValue ), nSequence );
+
+ nOldValue = ((Controls*)pVar)->GetULong();
+
+ SbxVariable *pMember;
+ if ( ! (pMember = ((Controls*)pVar)->Find(CUniString("ID"),SbxCLASS_DONTCARE)) )
+ {
+ pMember = new SbxProperty(CUniString("ID"),SbxVARIANT);
+ ((Controls*)pVar)->Insert(pMember);
+ }
+ pMember->PutULong(((Controls*)pVar)->pMethodVar->nValue);
+
+ if ( ! (pMember = ((Controls*)pVar)->Find(CUniString("name"),SbxCLASS_DONTCARE)) )
+ {
+ pMember = NULL;
+ }
+ else
+ pMember->PutString(CUniString("xxx"));
+
+ */
+
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_RemoteCommand:
+ {
+ if ( SingleCommandBlock )
+ BeginBlock();
+ else
+ if ( ((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ SetError( SbxERR_NOTIMP );
+ }
+ if ( !IsError() )
+ In->GenCmdCommand ((USHORT)(((SbxTransportMethod*)pVar)->nValue),rPar);
+ if ( !IsError() && ((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ pImpl->pNextReturn = ((SbxTransportMethod*)pVar);
+ aNextReturnId = SmartId( ((SbxTransportMethod*)pVar)->nValue );
+ }
+ if ( SingleCommandBlock )
+ EndBlock();
+ if ( !IsError() && (USHORT)((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ WaitForAnswer();
+ }
+ // f�r einige noch etwas Nachbehandlung
+ switch ( ((SbxTransportMethod*)pVar)->nValue )
+ {
+ case RC_WinTree:
+// ::svt::OStringTransfer::CopyString(pVar->GetString(), pSomeWindowIDontHave );
+ break;
+ }
+
+ }
+ break;
+ case ID_Dispatch:
+ if ( !rPar || (rPar->Count() % 2) == 1 ) // rPar = NULL <=> Kein Parameter ansonsten Gerade Anzahl(Ungerade, da immer Anzahl+1
+ {
+ if ( SingleCommandBlock )
+ BeginBlock();
+ if ( !IsError() )
+ In->GenCmdSlot ( (USHORT)((SbxTransportMethod*)pVar)->nValue, rPar );
+ pVar->PutInteger( (USHORT)((SbxTransportMethod*)pVar)->nValue );
+ if ( SingleCommandBlock )
+ EndBlock();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_UNODispatch:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter ansonsten Gerade Anzahl(Ungerade, da immer Anzahl+1
+ {
+ if ( SingleCommandBlock )
+ BeginBlock();
+ if ( !IsError() )
+ In->GenCmdUNOSlot ( ((SbxTransportMethod*)pVar)->aUnoSlot );
+ pVar->PutString( ((SbxTransportMethod*)pVar)->aUnoSlot );
+ if ( SingleCommandBlock )
+ EndBlock();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_Control:
+ case ID_StringControl:
+ // if only the object is given in the script we don't have to do anything (object stands for itself)
+ if ( !pVar->ISA( SbxObject ) )
+ {
+ if ( SingleCommandBlock )
+ BeginBlock();
+ else
+ if ( ((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ SetError( SbxERR_NOTIMP );
+ }
+ if ( !IsError() )
+ {
+ SbxVariable *pMember = NULL;
+ if ( pVar->GetParent() )
+ pMember = pVar->GetParent()->Find(CUniString("ID"),SbxCLASS_DONTCARE);
+ if ( pMember == NULL )
+ {
+ SetError( SbxERR_NAMED_NOT_FOUND );
+ }
+ else
+ {
+ if ( nHintUserData == ID_Control )
+ {
+ In->GenCmdControl (pMember->GetULong(),
+ (USHORT)((SbxTransportMethod*)pVar)->nValue, rPar);
+ aNextReturnId = SmartId( pMember->GetULong() );
+ }
+ else
+ {
+ In->GenCmdControl (pMember->GetString(),
+ (USHORT)((SbxTransportMethod*)pVar)->nValue, rPar);
+ aNextReturnId = SmartId( pMember->GetString() );
+ }
+ }
+
+ if ( !IsError() && ((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ pImpl->pNextReturn = ((SbxTransportMethod*)pVar);
+ }
+ else
+ {
+ pImpl->pNextReturn = NULL;
+ aNextReturnId = SmartId();
+ }
+
+ }
+ if ( SingleCommandBlock )
+ EndBlock();
+ if ( !IsError() && (USHORT)((SbxTransportMethod*)pVar)->nValue & M_WITH_RETURN )
+ {
+ WaitForAnswer();
+ }
+ }
+
+ break;
+ case ID_GetUnoApp:
+ {
+ // Hier wird der Remote UNO Kram gestartet
+ // Eintrag in die Konfiguration unter
+ // org.openoffice.Office.Common/Start/Connection
+ // socket,host=0,port=12345;iiop;XBla
+ // oder
+ // socket,host=0,port=12345;urp;;XBla
+
+ String aString;
+ aString.AppendAscii( "socket,host=" );
+ aString += GetHostConfig();
+ aString.AppendAscii( ",port=" );
+ aString += String::CreateFromInt32( GetUnoPortConfig() );
+
+ Reference< XMultiServiceFactory > smgr_xMultiserviceFactory;
+ try
+ {
+ Reference< XMultiServiceFactory > xSMgr = comphelper::getProcessServiceFactory();
+// is allways there
+/* if ( ! xSMgr.is() )
+ {
+ xSMgr = ::cppu::createRegistryServiceFactory(OUString(RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")), sal_True );
+ if ( xSMgr.is() )
+ comphelper::setProcessServiceFactory( xSMgr );
+ }*/
+
+ OUString aURL( aString );
+ Reference< XConnector > xConnector( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Connector") ) ), UNO_QUERY );
+ Reference< XConnection > xConnection( xConnector->connect( aURL ) );
+
+ Reference< XBridgeFactory > xBridgeFactory( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.bridge.BridgeFactory") ) ), UNO_QUERY );
+ Reference< XBridge > xBridge( xBridgeFactory->createBridge(
+ OUString(), OUString( RTL_CONSTASCII_USTRINGPARAM("urp") ),
+ xConnection, Reference< XInstanceProvider >() ) );
+
+ // Reference< XInterface > xRet( xBridge->getInstance( OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop")) ) );
+ Reference< XInterface > xRet( xBridge->getInstance( OUString( RTL_CONSTASCII_USTRINGPARAM("StarOffice.ServiceManager")) ) );
+
+ // Reference< XNamingService > xNamingService(xRet, UNO_QUERY);
+
+ // Reference< XInterface > smgr = xNamingService->getRegisteredObject( OUString( RTL_CONSTASCII_USTRINGPARAM("StarOffice.ServiceManager" ) ) );
+
+ smgr_xMultiserviceFactory = Reference< XMultiServiceFactory >(xRet, UNO_QUERY);
+ //MBA fragen!!
+ }
+ catch( class Exception & rEx)
+ {
+ ADD_ERROR(SbxERR_BAD_ACTION, String( rEx.Message ) );
+ }
+ catch( ... )
+ {
+ ADD_ERROR(SbxERR_BAD_ACTION, CUniString( "Unknown Error" ) );
+ }
+
+ if( smgr_xMultiserviceFactory.is() )
+ {
+ Any aAny;
+// aAny <<= xBridge;
+ aAny <<= smgr_xMultiserviceFactory;
+
+ SbxObjectRef xMySbxObj = GetSbUnoObject( CUniString("RemoteUnoAppFuerTesttool"), aAny );
+ if ( xMySbxObj.Is() )
+ pVar->PutObject( xMySbxObj );
+ }
+ }
+ break;
+ case ID_GetIServer:
+ {
+ // Hier wird der Remote UNO Kram gestartet
+
+ String aString;
+// aString += GetHostConfig();
+// aString.AppendAscii( ":" );
+// aString += String::CreateFromInt32( GetUnoPortConfig() );
+
+ Reference< XMultiServiceFactory > xSMgr /* = comphelper::getProcessServiceFactory()*/;
+// if ( ! xSMgr.is() )
+ {
+ xSMgr = ::cppu::createRegistryServiceFactory(OUString(RTL_CONSTASCII_USTRINGPARAM("g:\\iserverproxy.rdb")), sal_True);
+// comphelper::setProcessServiceFactory( xSMgr );
+ }
+
+ OUString aURL( aString );
+ Reference< XConnector > xConnector( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.connection.Connector") ) ), UNO_QUERY );
+ Reference< XConnection > xConnection( xConnector->connect( OUString( RTL_CONSTASCII_USTRINGPARAM("socket,host=grande,port=7453")) ) );
+
+ Reference< XBridgeFactory > xBridgeFactory( xSMgr->createInstance(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.bridge.BridgeFactory") ) ), UNO_QUERY );
+ Reference< XBridge > xBridge( xBridgeFactory->createBridge(
+ OUString(), OUString( RTL_CONSTASCII_USTRINGPARAM("urp") ),
+ xConnection, Reference< XInstanceProvider >() ) );
+
+ Reference< XInterface > xRet( xBridge->getInstance( OUString( RTL_CONSTASCII_USTRINGPARAM("XIServerProxy")) ) );
+
+
+/* Reference< XIServerProxy > xIS( xRet, UNO_QUERY );
+ if ( xIS.is() )
+ {
+ String aHost( xIS->getIServerHost() );
+
+// Reference < XInformationClient > xIC = xIS->createIServerClient( "XInformationClient" );
+ Reference < XInformationClient > xIC = xIS->createInformationClient();
+ xIC->getTree(OUString::createFromAscii("r:\\b_server\\config\\stand.lst"), OUString() );
+
+
+ Reference< XTypeProvider > xTP( xRet, UNO_QUERY );
+ Sequence < com::sun::star::uno::Type > s = xTP->getTypes();
+ }
+ */
+
+ if( xRet.is() )
+ {
+ Any aAny;
+ aAny <<= xRet;
+
+ SbxObjectRef xMySbxObj = GetSbUnoObject( CUniString("IServerProxy"), aAny );
+ if ( xMySbxObj.Is() )
+ pVar->PutObject( xMySbxObj );
+ }
+ // In Basic:
+ // msgbox dbg_SupportedInterfaces
+ // msgbox dbg_Properties
+ // msgbox dbg_Methods
+ }
+ break;
+ case ID_RemoteCommandDelay:
+ if ( rPar && rPar->Count() >= 2 && rPar->Count() <=3 )
+ {
+ switch (rPar->Get( 1 )->GetType())
+ {
+ case SbxLONG: // alles immer als Short �bertragen
+ case SbxULONG:
+ case SbxLONG64:
+ case SbxULONG64:
+ case SbxDOUBLE:
+ case SbxINTEGER:
+ case SbxBYTE:
+ case SbxUSHORT:
+ case SbxINT:
+ case SbxUINT:
+ case SbxSINGLE:
+ pImpl->nMinRemoteCommandDelay = rPar->Get( 1 )->GetULong();
+ if ( rPar->Count() == 3 )
+ pImpl->nMaxRemoteCommandDelay = rPar->Get( 2 )->GetULong();
+ else
+ pImpl->nMaxRemoteCommandDelay = pImpl->nMinRemoteCommandDelay;
+ break;
+ case SbxBOOL:
+ pImpl->bDoRemoteCommandDelay = rPar->Get( 1 )->GetBool();
+ break;
+ default:
+ SbxBase::SetError( SbxERR_WRONG_ARGS );
+ break;
+ }
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_GetApplicationPath:
+ if ( !rPar )
+ {
+ OUString aUrl = Config::GetDefDirectory();
+ OUString aPath;
+ osl::FileBase::getSystemPathFromFileURL( aUrl, aPath );
+ pVar->PutString( String( aPath ) );
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_GetCommonApplicationPath:
+ if ( !rPar )
+ {
+#ifdef WNT
+ //////// adapted this from setup2\win\source\system\winos.cxx
+ String aSysPath;
+ aSysPath = _SHGetSpecialFolder_COMMON_APPDATA();
+ if ( aSysPath.Len() )
+ {
+ pVar->PutString( aSysPath );
+ }
+ else // default to ID_GetApplicationPath (same as in setup)
+ {
+ OUString aUrl = Config::GetDefDirectory();
+ OUString aPath;
+ osl::FileBase::getSystemPathFromFileURL( aUrl, aPath );
+ pVar->PutString( String( aPath ) );
+ }
+#elif defined OS2
+ {
+ char* etc = getenv("ETC");
+ if (etc)
+ pVar->PutString( CUniString( etc ) );
+ else
+ pVar->PutString( CUniString( "/etc" ) );
+ }
+#else
+#if UNX
+ pVar->PutString( CUniString( "/etc" ) );
+#else
+#error not implemented
+#endif
+#endif
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_MakeIniFileName:
+ if ( rPar && rPar->Count() == 2 )
+ {
+ OUString aUrl = Config::GetConfigName( String(), rPar->Get( 1 )->GetString() );
+ OUString aPath;
+ osl::FileBase::getSystemPathFromFileURL( aUrl, aPath );
+ pVar->PutString( String( aPath ) );
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_Wait:
+ {
+ if( rPar && rPar->Count() == 2 )
+ {
+ long nWait = rPar->Get(1)->GetLong();
+ if( nWait >= 0 )
+ {
+#ifdef DEBUG
+ Time aStart;
+#endif
+ Timer aTimer;
+ aTimer.SetTimeout( nWait );
+ aTimer.Start();
+ while ( aTimer.IsActive() )
+ Application::Yield();
+#ifdef DEBUG
+ Time aEnd;
+ Time aDiff = aEnd - aStart;
+ long aMS = long( aDiff.GetMSFromTime() );
+ if ( Abs( aMS - nWait ) > 100 )
+ {
+ DBG_ERROR1("Wait was off limit by %i", aDiff.GetMSFromTime() - nWait );
+ }
+#endif
+ }
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_GetErrorCount:
+ {
+ pVar->PutULong( pImpl->nErrorCount );
+ }
+ break;
+ case ID_GetWarningCount:
+ {
+ pVar->PutULong( pImpl->nWarningCount );
+ }
+ break;
+ case ID_GetQAErrorCount:
+ {
+ pVar->PutULong( pImpl->nQAErrorCount );
+ }
+ break;
+ case ID_GetUseFileWarningCount:
+ {
+ pVar->PutULong( pImpl->nIncludeFileWarningCount );
+ }
+ break;
+ case ID_GetErrorList:
+ {
+ if ( ! pImpl->xErrorList->GetDims() )
+ pImpl->xErrorList->AddDim( 1, 32000 );
+ pVar->PutObject( pImpl->xErrorList );
+ }
+ break;
+ case ID_GetWarningList:
+ {
+ if ( ! pImpl->xWarningList->GetDims() )
+ pImpl->xWarningList->AddDim( 1, 32000 );
+ pVar->PutObject( pImpl->xWarningList );
+ }
+ break;
+ case ID_GetQAErrorList:
+ {
+ if ( ! pImpl->xQAErrorList->GetDims() )
+ pImpl->xQAErrorList->AddDim( 1, 32000 );
+ pVar->PutObject( pImpl->xQAErrorList );
+ }
+ break;
+ case ID_GetUseFileWarningList:
+ {
+ if ( ! pImpl->xIncludeFileWarningList->GetDims() )
+ pImpl->xIncludeFileWarningList->AddDim( 1, 32000 );
+ pVar->PutObject( pImpl->xIncludeFileWarningList );
+ }
+ break;
+ case ID_GetTestCaseName:
+ {
+ pVar->PutString( pImpl->aTestCaseName );
+ }
+ break;
+ case ID_GetTestCaseFileName:
+ {
+ pVar->PutString( pImpl->aTestCaseFileName );
+ }
+ break;
+ case ID_GetTestCaseLineNr:
+ {
+ pVar->PutUShort( pImpl->nTestCaseLineNr );
+ }
+ break;
+ case ID_SetChildEnv:
+ {
+ if( rPar && rPar->Count() == 3 )
+ {
+ pImpl->pChildEnv->erase( rPar->Get(1)->GetString() );
+ pImpl->pChildEnv->insert( EnvironmentVariable( rPar->Get(1)->GetString(), rPar->Get(2)->GetString() ) );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_GetChildEnv:
+ {
+ if( rPar && rPar->Count() == 2 )
+ {
+ Environment::const_iterator aIter = pImpl->pChildEnv->find( rPar->Get(1)->GetString() );
+ if ( aIter != pImpl->pChildEnv->end() )
+ pVar->PutString( (*aIter).second );
+ else
+ pVar->PutString( String() );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_GetLinkDestination:
+ {
+ if( rPar && rPar->Count() == 2 )
+ {
+ String aSource,aDest;
+ aSource = rPar->Get(1)->GetString();
+#ifdef UNX
+ ByteString aByteSource( aSource, osl_getThreadTextEncoding() );
+ char cDest[1024];
+ int nLen = 0;
+ if ( ( nLen = readlink( aByteSource.GetBuffer(), cDest, sizeof(cDest) ) ) >= 0 )
+ {
+ aDest = String( cDest, nLen, osl_getThreadTextEncoding() );
+ }
+ else
+ {
+ int nErr = errno;
+ switch ( nErr )
+ {
+ case EINVAL: aDest = aSource;
+ break;
+ default:
+ SetError( SbERR_ACCESS_ERROR );
+ }
+ }
+#else
+ aDest = aSource;
+#endif
+ pVar->PutString( aDest );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_GetRegistryValue:
+ {
+ if( rPar && rPar->Count() == 3 )
+ {
+ String aValue;
+#ifdef WNT
+ aValue = ReadRegistry( rPar->Get(1)->GetString(), rPar->Get(2)->GetString() );
+#endif
+ pVar->PutString( aValue );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_HTTPSend:
+ {
+ if( rPar && ( rPar->Count() == 4 || rPar->Count() == 5 ) )
+ {
+ if ( !pImpl->pHttpRequest )
+ pImpl->pHttpRequest = new HttpRequest;
+ pImpl->pHttpRequest->SetRequest( ByteString( rPar->Get(1)->GetString(), RTL_TEXTENCODING_ASCII_US ), ByteString( rPar->Get(2)->GetString(), RTL_TEXTENCODING_ASCII_US ), rPar->Get(3)->GetUShort() );
+
+ if ( pImpl->pHttpRequest->Execute() )
+ {
+ if ( rPar->Count() == 5 )
+ { // filename is given
+ SvFileStream aDestination( rPar->Get(4)->GetString(), STREAM_STD_READWRITE | STREAM_TRUNC );
+ (*(pImpl->pHttpRequest->GetBody())) >> aDestination;
+ if ( aDestination.GetError() != ERRCODE_NONE )
+ SetError( SbERR_ACCESS_ERROR );
+ aDestination.Close();
+ }
+ pVar->PutUShort( pImpl->pHttpRequest->GetResultId() );
+ }
+ else
+ SetError( SbERR_ACCESS_ERROR );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ case ID_HTTPSetProxy:
+ {
+ if( rPar && rPar->Count() == 3 )
+ {
+ if ( !pImpl->pHttpRequest )
+ pImpl->pHttpRequest = new HttpRequest;
+ pImpl->pHttpRequest->SetProxy( ByteString( rPar->Get(1)->GetString(), RTL_TEXTENCODING_ASCII_US ), rPar->Get(2)->GetUShort() );
+ }
+ else
+ SetError( SbERR_BAD_NUMBER_OF_ARGS );
+ }
+ break;
+ } // switch( nHintUserData )
+ } // if( nHintId == SBX_HINT_DATAWANTED )
+ else if( nHintId == SBX_HINT_DATACHANGED )
+ {
+ switch( nHintUserData )
+ {
+ case ID_AutoExecute:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ {
+ SingleCommandBlock = pVar->GetBool();
+ if ( SingleCommandBlock )
+ EndBlock();
+ else
+ BeginBlock();
+ }
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ case ID_EnableQaErrors:
+ if ( !rPar ) // rPar = NULL <=> Kein Parameter
+ pImpl->bEnableQaErrors = pVar->GetBool();
+ else
+ SetError( SbxERR_WRONG_ARGS );
+ break;
+ }
+ } // if( nHintId == SBX_HINT_DATACHANGED )
+ else if( nHintId == SBX_HINT_BASICSTART )
+ {
+ pImpl->nErrorCount = 0;
+ pImpl->nWarningCount = 0;
+ pImpl->nQAErrorCount = 0;
+ pImpl->nIncludeFileWarningCount = 0;
+
+ pImpl->xErrorList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xWarningList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xQAErrorList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xIncludeFileWarningList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+
+ if (pFehlerListe)
+ delete pFehlerListe;
+ pFehlerListe = new CErrors;
+
+ for (USHORT i=0;i<VAR_POOL_SIZE;i++)
+ {
+ pImpl->pMyVars[i]->SetName( CUniString("VarDummy").Append(UniString::CreateFromInt32(i)) );
+ }
+ nMyVar = 0;
+
+ } // if( nHintId == SBX_HINT_BASICSTART )
+ else if( nHintId == SBX_HINT_BASICSTOP )
+ {
+ // Log summary to journal
+ ADD_CASE_LOG( String() ); // Case abschliessen
+ ADD_MESSAGE_LOG( CUniString("***************************************************") );
+ if ( pImpl->nErrorCount )
+ {
+ ADD_WARNING_LOG( GEN_RES_STR1( S_ERRORS_DETECTED, String::CreateFromInt32( pImpl->nErrorCount ) ) );
+ pImpl->nWarningCount--; // Anpassen, da diese Warnung nicht in die Statistik soll
+ }
+ else
+ ADD_MESSAGE_LOG( GEN_RES_STR0( S_NO_ERRORS_DETECTED ) );
+
+ if ( pImpl->nWarningCount )
+ ADD_WARNING_LOG( GEN_RES_STR1( S_WARNINGS_DETECTED, String::CreateFromInt32( pImpl->nWarningCount ) ) )
+ else
+ ADD_MESSAGE_LOG( GEN_RES_STR0( S_NO_WARNINGS_DETECTED ) );
+
+ if ( pImpl->nIncludeFileWarningCount )
+ ADD_WARNING_LOG( GEN_RES_STR1( S_INCLUDE_FILE_WARNINGS_DETECTED, String::CreateFromInt32( pImpl->nIncludeFileWarningCount ) ) )
+ else
+ ADD_MESSAGE_LOG( GEN_RES_STR0( S_NO_INCLUDE_FILE_WARNINGS_DETECTED ) );
+ ADD_MESSAGE_LOG( CUniString("***************************************************") );
+
+ pImpl->nErrorCount = 0;
+ pImpl->nWarningCount = 0;
+ pImpl->nQAErrorCount = 0;
+ pImpl->nIncludeFileWarningCount = 0;
+
+ pImpl->xErrorList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xWarningList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xQAErrorList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ pImpl->xIncludeFileWarningList->SbxArray::Clear(); // call SbxArray::Clear because SbxVarArray::Clear only clears dimensions but no content
+ } // if( nHintId == SBX_HINT_BASICSTOP )
+ WaitForAnswer();
+ if ( IsError() && ( !IS_ERROR() || GET_ERROR()->nError != GetError() ) )
+ {
+ ((StarBASIC*)GetParent())->MakeErrorText(GetError(),String());
+ ADD_ERROR_QUIET(GetError(),String(pVar->GetName()).AppendAscii(": ").
+ Append(((StarBASIC*)GetParent())->GetErrorText()));
+ }
+ }
+}
+
+void TestToolObj::DebugFindNoErrors( BOOL bDebugFindNoErrors )
+{
+ pImpl->bDebugFindNoErrors = bDebugFindNoErrors;
+}
+
+SbxVariable* TestToolObj::Find( const String& aStr, SbxClassType aType)
+{
+ if ( BasicRuntimeAccess::IsRunInit() ) // wegen Find im "Global" Befehl des Basic
+ return NULL;
+
+ SbxVariableRef Old = SbxObject::Find(aStr, aType );
+ // do not return any objects from pMyVars[]
+ if (Old && Old->GetUserData() != ID_Dispatch
+ && Old->GetUserData() != ID_UNODispatch
+ && Old->GetUserData() != ID_ErrorDummy
+ && Old->GetUserData() != 0 )
+ return Old;
+ else if ( aStr.SearchAscii(":") != STRING_NOTFOUND )
+ { // ignore qualified names e.g. main:FormWizard If this was removed an error would be generated
+ }
+ else
+ {
+
+ USHORT nElement;
+ ControlDef *pWhatName = new ControlDef(aStr,SmartId());
+
+ /// nach Controls suchen
+ if (m_pNameKontext && m_pNameKontext->Seek_Entry(pWhatName,&nElement))
+ {
+ delete pWhatName;
+ pWhatName = ((ControlDef*)m_pNameKontext->GetObject(nElement));
+
+//// new Controls Object every time
+ pImpl->pControlsObj = new Controls( pWhatName->pData->Kurzname );
+ pImpl->pControlsObj->SetType( SbxOBJECT );
+ pImpl->pControlsObj->ChangeListener( this );
+
+
+ // Will be set on method-child further down
+ if ( pWhatName->pData->aUId.HasNumeric() )
+ pImpl->pControlsObj->SetUserData( ID_Control );
+ else
+ pImpl->pControlsObj->SetUserData( ID_StringControl );
+
+ pShortNames->Insert(pWhatName->pData->Kurzname,pWhatName->pData->aUId,nSequence);
+
+ SbxVariable *pMember = pImpl->pControlsObj->Find(CUniString("ID"),SbxCLASS_DONTCARE);
+ if ( pMember == NULL )
+ {
+ SbxProperty* pID = new SbxProperty(CUniString("ID"),SbxVARIANT);
+ pImpl->pControlsObj->Insert(pID);
+ pImpl->pControlsObj->SetDfltProperty(pID);
+ pMember = pID;
+ }
+ if ( pWhatName->pData->aUId.HasNumeric() )
+ pMember->PutULong(pWhatName->pData->aUId.GetNum());
+ else
+ pMember->PutString(pWhatName->pData->aUId.GetStr());
+
+ pMember = pImpl->pControlsObj->Find(CUniString("name"),SbxCLASS_DONTCARE);
+ if ( pMember != NULL )
+ pMember->PutString(pWhatName->pData->Kurzname);
+
+ return pImpl->pControlsObj;
+ }
+
+ /// Nach slots suchen
+ if (m_pSIds && m_pSIds->Seek_Entry(pWhatName,&nElement))
+ {
+ SbxTransportMethodRef pMyVar;
+ pMyVar = pImpl->pMyVars[nMyVar++];
+ if ( nMyVar >= VAR_POOL_SIZE )
+ nMyVar = 0;
+ delete pWhatName;
+ pWhatName = ( (ControlDef*)m_pSIds->GetObject( nElement ) );
+ pMyVar->SetName( pWhatName->pData->Kurzname );
+
+ if ( pWhatName->pData->aUId.HasNumeric() )
+ {
+ pMyVar->SetUserData( ID_Dispatch );
+ pMyVar->nValue = pWhatName->pData->aUId.GetNum();
+ pShortNames->Insert( aStr, pWhatName->pData->aUId, nSequence );
+ }
+ else
+ {
+ pMyVar->SetUserData( ID_UNODispatch );
+ pMyVar->aUnoSlot = pWhatName->pData->aUId.GetStr();
+ }
+ return pMyVar;
+ }
+
+ /// es kann sich noch um eine SlotID handeln, die numerisch abgefragt wird, statt ausgef�hrt zu werden
+ if ( aStr.Copy( aStr.Len()-3, 3 ).CompareIgnoreCaseToAscii("_ID") == COMPARE_EQUAL && m_pSIds )
+ {
+ delete pWhatName;
+ pWhatName = new ControlDef( aStr.Copy( 0, aStr.Len()-3 ), SmartId() );
+ if ( m_pSIds->Seek_Entry( pWhatName, &nElement ) )
+ { // Nach slots suchen
+ SbxVariable *pReturn = new SbxVariable;
+ delete pWhatName;
+ pWhatName = ( (ControlDef*)m_pSIds->GetObject( nElement ) );
+ pReturn->SetName( pWhatName->pData->Kurzname );
+
+ if ( pWhatName->pData->aUId.HasNumeric() )
+ pReturn->PutULong(pWhatName->pData->aUId.GetNum());
+ else
+ pReturn->PutString(pWhatName->pData->aUId.GetStr());
+ return pReturn;
+ }
+ }
+ if ( !pImpl->bDebugFindNoErrors )
+ {
+ ADD_ERROR(SbxERR_PROC_UNDEFINED,GEN_RES_STR1(S_UNKNOWN_SLOT_CONTROL, aStr) );
+ }
+ }
+ return NULL;
+}
+
+String TestToolObj::GetRevision( String const &aSourceIn )
+{
+ // search $Revision: 1.40 $
+ xub_StrLen nPos;
+ if ( ( nPos = aSourceIn.SearchAscii( "$Revision:" ) ) != STRING_NOTFOUND )
+ return aSourceIn.Copy( nPos+ 10, aSourceIn.SearchAscii( "$", nPos+10 ) -nPos-10);
+ else
+ return String::CreateFromAscii("No Revision found");
+}
+
+BOOL TestToolObj::CError( ULONG code, const String& rMsg, xub_StrLen l, xub_StrLen c1, xub_StrLen c2 )
+{
+ bWasPrecompilerError = TRUE;
+ if ( aCErrorHdl.IsSet() )
+ {
+ ErrorEntry aErrorEntry( code, rMsg, l, c1, c2 );
+ return (BOOL)aCErrorHdl.Call( &aErrorEntry );
+ }
+ else
+ {
+ ADD_ERROR( code, rMsg )
+ return TRUE;
+ }
+}
+
+void TestToolObj::CalcPosition( String const &aSource, xub_StrLen nPos, xub_StrLen &l, xub_StrLen &c )
+{
+ l = 1;
+ xub_StrLen nAkt = 0;
+ xub_StrLen nNext;
+ while ( (nNext = aSource.Search( '\n', nAkt )) != STRING_NOTFOUND && nNext < nPos )
+ {
+ l++;
+ nAkt = nNext+1;
+ }
+ c = nPos - nAkt;
+}
+
+
+#define CATCH_LABEL CUniString( "ctch" )
+#define CATCHRES_LABEL CUniString( "ctchres" )
+#define ENDCATCH_LABEL CUniString( "endctch" )
+
+BOOL IsAlphaChar( sal_Unicode cChar )
+{
+ return ( cChar >= 'a' && cChar <= 'z' ) ||
+ ( cChar >= 'A' && cChar <= 'Z' );
+}
+
+BOOL IsInsideString( const String& aSource, const xub_StrLen nStart )
+{
+ BOOL bInside = FALSE;
+ xub_StrLen nPos = nStart-1;
+
+ while ( nPos && aSource.GetChar(nPos) != _CR && aSource.GetChar(nPos) != _LF )
+ {
+ if ( aSource.GetChar(nPos) == '"' )
+ bInside = !bInside;
+ nPos--;
+ }
+ return bInside;
+}
+
+BOOL IsValidHit( const String& aSource, const xub_StrLen nStart, const xub_StrLen nEnd )
+{
+ return !IsAlphaChar( aSource.GetChar(nStart-1) ) && !IsAlphaChar( aSource.GetChar(nEnd+1))
+ && !IsInsideString( aSource, nStart );
+}
+
+
+xub_StrLen TestToolObj::ImplSearch( const String &aSource, const xub_StrLen nStart, const xub_StrLen nEnd, const String &aSearch, const xub_StrLen nSearchStart )
+{
+ xub_StrLen nPos = aSource.Search( aSearch, std::max( nSearchStart, nStart ) );
+ if ( nPos > nEnd - aSearch.Len() || nPos == STRING_NOTFOUND )
+ return STRING_NOTFOUND;
+ else
+ {
+ if ( IsValidHit( aSource, nPos, nPos+aSearch.Len()-1 ) )
+ return nPos;
+ else
+ return ImplSearch( aSource, nStart, nEnd, aSearch, nPos+aSearch.Len() );
+ }
+}
+
+xub_StrLen TestToolObj::PreCompilePart( String &aSource, xub_StrLen nStart, xub_StrLen nEnd, String aFinalErrorLabel, USHORT &nLabelCount )
+{
+ xub_StrLen nTry,nCatch,nEndcatch;
+ if( (nTry = ImplSearch( aSource, nStart, nEnd, CUniString("try"), nStart )) == STRING_NOTFOUND )
+ return nEnd;
+ if ( (nCatch = ImplSearch( aSource, nStart, nEnd, CUniString("catch"), nTry )) == STRING_NOTFOUND )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nTry, l, c );
+ CError( SbERR_BAD_BLOCK, CUniString("catch"), l, c, c+2 );
+ return nEnd;
+ }
+ if ( (nEndcatch = ImplSearch( aSource, nStart, nEnd, CUniString("endcatch"), nCatch )) == STRING_NOTFOUND )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nCatch, l, c );
+ CError( SbERR_BAD_BLOCK, CUniString("endcatch"), l, c, c+4 );
+ return nEnd;
+ }
+
+ nLabelCount++;
+ String aStr = String::CreateFromInt32( nLabelCount );
+ String aCatchLabel(CATCH_LABEL);
+ aCatchLabel += aStr;
+ String aCatchresLabel(CATCHRES_LABEL);
+ aCatchresLabel += aStr;
+ String aEndcatchLabel( ENDCATCH_LABEL);
+ aEndcatchLabel += aStr;
+
+ xub_StrLen nTry2 = 0;
+ while ( !WasPrecompilerError() && (nTry2 = ImplSearch( aSource, nStart, nEnd, CUniString("try"), nTry+1 )) != STRING_NOTFOUND )
+ { // Wir rekursieren erstmal mit dem 2. Try
+ if ( nTry2 < nCatch )
+ nEnd += PreCompilePart( aSource, nTry2, nEndcatch+8, aCatchLabel, nLabelCount ) - nEndcatch-8;
+ else
+ nEnd = PreCompilePart( aSource, nTry2, nEnd, aFinalErrorLabel, nLabelCount );
+
+ if ( (nCatch = ImplSearch( aSource, nStart, nEnd, CUniString("catch"), nTry )) == STRING_NOTFOUND )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nTry, l, c );
+ CError( SbERR_BAD_BLOCK, CUniString("catch"), l, c, c+2 );
+ return nEnd;
+ }
+ if ( (nEndcatch = ImplSearch( aSource, nStart, nEnd, CUniString("endcatch"), nCatch )) == STRING_NOTFOUND )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nCatch, l, c );
+ CError( SbERR_BAD_BLOCK, CUniString("endcatch"), l, c, c+4 );
+ return nEnd;
+ }
+ }
+
+ String aReplacement;
+ int nTotalLength = -3 -5 -8; // try, catch und endcatch fallen raus
+
+ aReplacement.AppendAscii( "on error goto " );
+ aReplacement += aCatchLabel;
+ aSource.SearchAndReplaceAscii( "try", aReplacement, nTry );
+ nTotalLength += aReplacement.Len();
+
+
+// on error goto endcse
+// goto endctchXX
+// ctchXX:
+// if err = 35 or err = 18 then : resume : endif :
+// MaybeAddErr
+// on error goto endcse
+// resume ctchresXX
+// ctchresXX:
+ aReplacement.Erase();
+ aReplacement.AppendAscii( "on error goto " );
+ aReplacement += aFinalErrorLabel;
+ aReplacement.AppendAscii( " : goto " );
+ aReplacement += aEndcatchLabel;
+ aReplacement.AppendAscii( " : " );
+ aReplacement += aCatchLabel;
+ aReplacement.AppendAscii( ": if err = 35 or err = 18 then : on error goto 0 : resume : endif" );
+ aReplacement.AppendAscii( " : MaybeAddErr : on error goto " );
+ aReplacement += aFinalErrorLabel;
+ aReplacement.AppendAscii( " : resume " );
+ aReplacement += aCatchresLabel;
+ aReplacement.AppendAscii( " : " );
+ aReplacement += aCatchresLabel;
+ aReplacement.AppendAscii( ": " );
+ aSource.SearchAndReplaceAscii( "catch", aReplacement, nCatch );
+ nTotalLength += aReplacement.Len();
+
+
+ aReplacement.Erase();
+ aReplacement.AppendAscii("ClearError : ");
+ aReplacement += aEndcatchLabel;
+ aReplacement.AppendAscii(": ");
+ aSource.SearchAndReplaceAscii( "endcatch", aReplacement, nEndcatch );
+ nTotalLength += aReplacement.Len();
+
+ if ( aSource.Len() >= STRING_MAXLEN )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nEndcatch, l, c );
+ CError( SbERR_PROG_TOO_LARGE, CUniString("endcatch"), l, c, c+2 );
+ }
+
+ return xub_StrLen( nEnd + nTotalLength );
+}
+
+
+void TestToolObj::PreCompileDispatchParts( String &aSource, String aStart, String aEnd, String aFinalLable )
+{
+ USHORT nLabelCount = 0;
+ xub_StrLen nPartPos = 0;
+
+ while ( !WasPrecompilerError() && (nPartPos = ImplSearch( aSource, nPartPos, aSource.Len(), aStart )) != STRING_NOTFOUND )
+ {
+ xub_StrLen nEndPart = ImplSearch( aSource, nPartPos, aSource.Len(), aEnd );
+ if ( nEndPart == STRING_NOTFOUND )
+ return;
+ nPartPos = PreCompilePart( aSource, nPartPos, nEndPart, aFinalLable, nLabelCount );
+ nPartPos = nPartPos + aEnd.Len();
+ }
+}
+
+
+BOOL TestToolObj::WasPrecompilerError()
+{
+ return bWasPrecompilerError;
+}
+
+String TestToolObj::PreCompile( String const &aSourceIn )
+{
+ // Im CTOR zu fr�h, und hier grade nicg rechtzeitig. Start und Stop von Programmausf�hrung
+ StartListening( ((StarBASIC*)GetParent())->GetBroadcaster(), TRUE );
+
+ xub_StrLen nTestCase;
+ xub_StrLen nEndCase;
+ xub_StrLen nStartPos = 0;
+ String aSource(aSourceIn);
+ bWasPrecompilerError = FALSE;
+
+HACK("Ich gestehe alles: Ich war zu faul das richtig zu machen.")
+ aSource = String(' ').Append( aSource ); // Da Schl�sselworte an Position 0 sonst nicht gefunden werden
+
+
+// Erstmal alle "'" Kommentare raus
+
+ xub_StrLen nComment;
+ while ( (nComment = aSource.SearchAscii("'",nStartPos)) != STRING_NOTFOUND )
+ {
+ USHORT nStringEndCount = 0;
+ xub_StrLen nIndex = nComment;
+ while ( nIndex && aSource.GetChar(nIndex) != '\n' )
+ {
+ if ( aSource.GetChar(nIndex) == '"' )
+ nStringEndCount++;
+ nIndex--;
+ }
+ if ( (nStringEndCount & 1) == 0 ) // Wir waren also nicht innerhalb eines Strings
+ {
+ xub_StrLen nComEnd = aSource.SearchAscii("\n",nComment);
+
+ while ( aSource.GetChar(nComEnd) == _CR || aSource.GetChar(nComEnd) == _LF )
+ nComEnd--;
+
+ nComEnd++;
+
+ aSource.Erase(nComment,nComEnd-nComment);
+ }
+ else
+ nComment++;
+ nStartPos = nComment;
+ }
+
+
+ PreCompileDispatchParts( aSource, CUniString("sub"), CUniString("end sub"), CUniString("0") );
+ PreCompileDispatchParts( aSource, CUniString("function"), CUniString("end function"), CUniString("0") );
+ PreCompileDispatchParts( aSource, CUniString("testcase"), CUniString("endcase"), CUniString("endcse") );
+
+
+ xub_StrLen nMainPos = ImplSearch( aSource, 0, aSource.Len(), CUniString("sub main") );
+ aSource.SearchAndReplaceAscii("sub main",CUniString("Sub Main StartUse : LoadIncludeFiles : FinishUse "), nMainPos );
+ if ( aSource.Len() >= STRING_MAXLEN )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, nMainPos, l, c );
+ CError( SbERR_PROG_TOO_LARGE, CUniString("endcatch"), l, c, c+2 );
+ }
+
+ while ( (nTestCase = ImplSearch( aSource, 0, aSource.Len(), CUniString("testcase") ) ) != STRING_NOTFOUND )
+ {
+ xub_StrLen nTcEnd = aSource.SearchAscii("\n",nTestCase);
+
+ while ( aSource.GetChar(nTcEnd) == _CR || aSource.GetChar(nTcEnd) == _LF )
+ nTcEnd--;
+
+ nTcEnd++;
+
+ if ( aSource.SearchAscii(":",nTestCase) < nTcEnd )
+ nTcEnd = aSource.SearchAscii(":",nTestCase) -1;
+ String aSuffix = aSource.Copy(nTestCase+8,nTcEnd-nTestCase-8);
+ USHORT nOldLen;
+ do
+ {
+ nOldLen = aSuffix.Len();
+ aSuffix.EraseLeadingAndTrailingChars( ' ' );
+ aSuffix.EraseLeadingAndTrailingChars( 0x09 );
+ } while ( nOldLen != aSuffix.Len() );
+ aSource.Erase(nTestCase,nTcEnd-nTestCase);
+ aSource.Insert(CUniString("Sub ").Append(aSuffix).AppendAscii(" CaseLog \"").Append(aSuffix).AppendAscii("\" : on error goto endcse : TestEnter "),nTestCase);
+ }
+
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // Attention!!! The lable endsub is officially used to exit a sub instead of using 'exit sub' or 'return'
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////
+ while ( (nEndCase = ImplSearch( aSource, 0, aSource.Len(), CUniString("endcase") ) ) != STRING_NOTFOUND )
+ aSource.SearchAndReplaceAscii("endcase",CUniString("goto endsub : endcse: if ( err = 35 and StopOnSyntaxError ) or err = 18 then : on error goto 0 : resume : endif : MaybeAddErr : ExceptLog : resume endcse_res : endcse_res: on error goto 0 : endsub: TestExit : ClearError : CaseLog \"\" : end sub "), nEndCase );
+
+ if ( aSource.Len() >= STRING_MAXLEN )
+ {
+ xub_StrLen l,c;
+ CalcPosition( aSource, 0, l, c );
+ CError( SbERR_PROG_TOO_LARGE, CUniString("endcatch"), l, c, c+2 );
+ }
+ return aSource;
+}
+
+void TestToolObj::AddToListByNr( CNames *&pControls, ControlItemUId *&pNewItem )
+{
+ USHORT nNr;
+ if ( pControls->Seek_Entry( pNewItem, &nNr ) )
+ {
+ AddName( pControls->GetObject(nNr)->pData->Kurzname, pNewItem->pData->Kurzname );
+ delete pNewItem;
+ pNewItem = (ControlItemUId*)pControls->GetObject(nNr); // f�r einf�gen der S�hne
+ }
+ else
+ {
+ ControlItem* pNI = pNewItem;
+ pControls->C40_PTR_INSERT(ControlItem,pNI);
+ }
+}
+
+IMPL_LINK( TestToolObj, ReturnResultsLink, CommunicationLink*, pCommLink )
+{
+ return ReturnResults( pCommLink->GetServiceData() );
+}
+
+void TestToolObj::ReadHidLstByNumber()
+{
+ // Die Hid.Lst nach Nummern sortiert einlesen
+ if ( !m_pReverseUIds )
+ {
+ String aName = (pImpl->aHIDDir + DirEntry(CUniString("hid.lst"))).GetFull();
+
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_SHOW_ACTION, String(SttResId(S_READING_LONGNAMES)), aName );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+
+ ReadFlat( aName, m_pReverseUIds, FALSE );
+
+ {
+ TTExecutionStatusHint aHint( TT_EXECUTION_HIDE_ACTION );
+ GetTTBroadcaster().Broadcast( aHint );
+ }
+ }
+}
+
+void TestToolObj::SortControlsByNumber( BOOL bIncludeActive )
+{
+ // Die Controls einmal hirarchisch und einmal alle flach nach nummer sortiert
+ if ( !m_pReverseControls && !m_pReverseControlsSon && m_pControls )
+ {
+ m_pReverseControls = new CNames;
+ m_pReverseControlsSon = new CNames;
+ USHORT nWin,nCont;
+ const String aSl('/');
+ for ( nWin = 0 ; nWin < m_pControls->Count() ; nWin++ )
+ {
+ String aFatherName( m_pControls->GetObject(nWin)->pData->Kurzname );
+ ControlItemUId *pNewFather = new ControlItemUIdSon(aFatherName,m_pControls->GetObject(nWin)->pData->aUId);
+ AddToListByNr( m_pReverseControlsSon, pNewFather );
+ if (! ((ControlItemUIdSon*)pNewFather)->GetSons() )
+ ((ControlItemUIdSon*)pNewFather)->Sons( new CNames );
+
+ // Existieren S�hne, diese in beide Listen eintragen
+ CNames *pControlList = ((ControlItemSon*)m_pControls->GetObject(nWin))->GetSons();
+ if ( pControlList )
+ for ( nCont = 0 ; nCont < pControlList->Count() ; nCont++ )
+ {
+ ControlItemUId *pNewItem;
+
+ String aCombinedName( aFatherName );
+ aCombinedName.AppendAscii( ":" );
+ aCombinedName.Append( pControlList->GetObject(nCont)->pData->Kurzname );
+ pNewItem = new ControlItemUId( aCombinedName, pControlList->GetObject(nCont)->pData->aUId );
+ AddToListByNr( m_pReverseControls, pNewItem );
+
+ pNewItem = new ControlItemUId( pControlList->GetObject(nCont)->pData->Kurzname, pControlList->GetObject(nCont)->pData->aUId );
+ AddToListByNr( ((ControlItemUIdSon*)pNewFather)->GetSons(), pNewItem );
+ }
+ }
+ if ( !bIncludeActive )
+ {
+ ControlItem *pZeroItem = new ControlItemUId( UniString(), SmartId(0) );
+ USHORT nNr;
+ if ( m_pReverseControls->Seek_Entry( pZeroItem, &nNr ) )
+ {
+ m_pReverseControls->DeleteAndDestroy( nNr );
+// um VorlagenLaden/UntergeordneteIniDatei/SpeichernDlg/OrdnerDlg/OeffnenDlg/MessageBox/LetzteVersion/GrafikEinfuegenDlg/FarbeDlg/ExportierenDlg/DruckerEinrichten/DruckenDlg/DateiEinfuegenDlg/Active zu verhindern
+ }
+/* if ( m_pReverseControlsSon->Seek_Entry( pZeroItem, &nNr ) )
+ {
+ m_pReverseControlsSon->DeleteAndDestroy( nNr );
+// um VorlagenLaden/UntergeordneteIniDatei/SpeichernDlg/OrdnerDlg/OeffnenDlg/MessageBox/LetzteVersion/GrafikEinfuegenDlg/FarbeDlg/ExportierenDlg/DruckerEinrichten/DruckenDlg/DateiEinfuegenDlg/Active zu verhindern
+ }*/
+ delete pZeroItem;
+ }
+ }
+}
+
+
+BOOL TestToolObj::ReturnResults( SvStream *pIn )
+{
+
+ USHORT nId;
+ ULONG nClearSequence = 0;
+ BOOL bSequenceOK = TRUE;
+ CNames *pReverseControlsKontext = NULL;
+
+ CRetStream *pRetStream = new CRetStream(pIn);
+
+ pRetStream->Read( nId );
+ while( !pIn->IsEof() )
+ {
+ switch( nId )
+ {
+ case SIReturn:
+ {
+ USHORT nRet,nParams;
+ SmartId aUId;
+ pRetStream->Read(nRet);
+ if ( pRetStream->GetNextType() == BinString )
+ {
+ String aUStrId; // UniqueStringID Used for Mozilla Integration
+ pRetStream->Read( aUStrId );
+ aUId = SmartId( aUStrId );
+ }
+ else
+ {
+ comm_ULONG nUId;
+ pRetStream->Read( nUId ); // bei Sequence einfach die Sequence
+ aUId = SmartId( nUId );
+ }
+ pRetStream->Read(nParams);
+
+ USHORT nNr1 = 0;
+ comm_ULONG nLNr1 = 0;
+ String aString1;
+ BOOL bBool1 = FALSE;
+ SbxValueRef xValue1 = new SbxValue;
+
+ if( nParams & PARAM_USHORT_1 )
+ pRetStream->Read( nNr1 );
+ if( nParams & PARAM_ULONG_1 )
+ pRetStream->Read( nLNr1 );
+ if( nParams & PARAM_STR_1 )
+ {
+ pRetStream->Read( aString1 );
+ ReplaceNumbers ( aString1 );
+ }
+ else
+ aString1.Erase();
+ if( nParams & PARAM_BOOL_1 )
+ pRetStream->Read( bBool1 );
+ if( nParams & PARAM_SBXVALUE_1 )
+ pRetStream->Read( *xValue1 );
+ switch (nRet)
+ {
+ case RET_Sequence:
+ {
+ ULONG nUId = aUId.GetNum();
+ if ( nSequence != nUId )
+ {
+ bSequenceOK = FALSE;
+ ADD_ERROR(SbxERR_BAD_ACTION, GEN_RES_STR2(S_RETURN_SEQUENCE_MISSMATCH, String::CreateFromInt64(nUId), String::CreateFromInt64(nSequence)) );
+ }
+ else
+ {
+ nClearSequence = nUId;
+ }
+ }
+ break;
+ case RET_Value:
+ if ( pImpl->pNextReturn )
+ {
+// ULONG nHintUserData = pImpl->pNextReturn->GetParent()->GetUserData();
+// pImpl->pNextReturn->GetParent()->SetUserData(0);
+// if ( nUId == pImpl->pNextReturn->GetParent()->GetULong() )
+ if ( aNextReturnId.Matches( aUId ) )
+ {
+ if( nParams & PARAM_ULONG_1 )
+ {
+ if ( nLNr1 > 0x7fffffff )
+ pImpl->pNextReturn->PutLong( long(nLNr1 - 0xffffffff) -1 );
+ else
+ pImpl->pNextReturn->PutULong( nLNr1 );
+ }
+ if( nParams & PARAM_USHORT_1 ) pImpl->pNextReturn->PutUShort( nNr1 );
+ if( nParams & PARAM_STR_1 ) pImpl->pNextReturn->PutString( aString1 );
+ if( nParams & PARAM_BOOL_1 ) pImpl->pNextReturn->PutBool( bBool1 );
+